@absolutejs/absolute 0.19.0-beta.808 → 0.19.0-beta.809
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/angular/browser.js +9801 -57
- package/dist/angular/browser.js.map +246 -4
- package/dist/angular/components/core/streamingSlotRegistrar.js +1 -1
- package/dist/angular/components/core/streamingSlotRegistry.js +2 -2
- package/dist/angular/index.js +14877 -60
- package/dist/angular/index.js.map +281 -4
- package/dist/angular/server.js +5610 -45
- package/dist/angular/server.js.map +51 -3
- package/dist/build.js +18092 -45
- package/dist/build.js.map +99 -3
- package/dist/cli/index.js +317 -86
- package/dist/client/index.js +1100 -40
- package/dist/client/index.js.map +24 -4
- package/dist/core/streamingSlotRegistrar.js +108 -11
- package/dist/core/streamingSlotRegistrar.js.map +4 -3
- package/dist/core/streamingSlotRegistry.js +169 -7
- package/dist/core/streamingSlotRegistry.js.map +5 -3
- package/dist/index.js +19957 -547
- package/dist/index.js.map +116 -3
- package/dist/islands/browser.js +228 -9
- package/dist/islands/browser.js.map +9 -4
- package/dist/islands/index.js +1908 -17
- package/dist/islands/index.js.map +27 -3
- package/dist/react/browser.js +328 -12
- package/dist/react/browser.js.map +12 -4
- package/dist/react/components/index.js +167 -16
- package/dist/react/components/index.js.map +6 -3
- package/dist/react/hooks/index.js +183 -8
- package/dist/react/hooks/index.js.map +7 -3
- package/dist/react/index.js +3627 -36
- package/dist/react/index.js.map +45 -4
- package/dist/react/jsxDevRuntimeCompat.js +61 -2
- package/dist/react/jsxDevRuntimeCompat.js.map +2 -2
- package/dist/react/server.js +1789 -18
- package/dist/react/server.js.map +21 -3
- package/dist/src/angular/injectorPatch.d.ts +1 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/svelte/browser.js +247 -12
- package/dist/svelte/browser.js.map +10 -3
- package/dist/svelte/index.js +3732 -37
- package/dist/svelte/index.js.map +47 -4
- package/dist/svelte/server.js +2794 -21
- package/dist/svelte/server.js.map +27 -3
- package/dist/vue/browser.js +348 -12
- package/dist/vue/browser.js.map +12 -4
- package/dist/vue/components/Image.js +240 -7
- package/dist/vue/components/Image.js.map +6 -3
- package/dist/vue/components/index.js +544 -11
- package/dist/vue/components/index.js.map +9 -3
- package/dist/vue/index.js +4212 -52
- package/dist/vue/index.js.map +50 -4
- package/dist/vue/server.js +1849 -18
- package/dist/vue/server.js.map +21 -3
- package/package.json +1 -1
- package/dist/chunk-0867j0r0.js +0 -136
- package/dist/chunk-0867j0r0.js.map +0 -10
- package/dist/chunk-0kdc6r16.js +0 -20
- package/dist/chunk-0kdc6r16.js.map +0 -10
- package/dist/chunk-102fp7xe.js +0 -63
- package/dist/chunk-102fp7xe.js.map +0 -10
- package/dist/chunk-11zpfqz6.js +0 -19
- package/dist/chunk-11zpfqz6.js.map +0 -10
- package/dist/chunk-1rfh7hw9.js +0 -319
- package/dist/chunk-1rfh7hw9.js.map +0 -11
- package/dist/chunk-25v9t56f.js +0 -29
- package/dist/chunk-25v9t56f.js.map +0 -11
- package/dist/chunk-2f21eenc.js +0 -21
- package/dist/chunk-2f21eenc.js.map +0 -10
- package/dist/chunk-2ga2znex.js +0 -13
- package/dist/chunk-2ga2znex.js.map +0 -9
- package/dist/chunk-30yrw0f6.js +0 -33
- package/dist/chunk-30yrw0f6.js.map +0 -10
- package/dist/chunk-38jwhqcw.js +0 -4410
- package/dist/chunk-38jwhqcw.js.map +0 -28
- package/dist/chunk-3g91wb4f.js +0 -358
- package/dist/chunk-3g91wb4f.js.map +0 -10
- package/dist/chunk-3yjzpcne.js +0 -34
- package/dist/chunk-3yjzpcne.js.map +0 -10
- package/dist/chunk-41bf6aqt.js +0 -17
- package/dist/chunk-41bf6aqt.js.map +0 -9
- package/dist/chunk-4d39r92n.js +0 -81
- package/dist/chunk-4d39r92n.js.map +0 -10
- package/dist/chunk-5003emhv.js +0 -17
- package/dist/chunk-5003emhv.js.map +0 -10
- package/dist/chunk-5f67rsed.js +0 -466
- package/dist/chunk-5f67rsed.js.map +0 -10
- package/dist/chunk-5fhp1jap.js +0 -9169
- package/dist/chunk-5fhp1jap.js.map +0 -236
- package/dist/chunk-6pdj08z3.js +0 -73
- package/dist/chunk-6pdj08z3.js.map +0 -12
- package/dist/chunk-6qjbrt0k.js +0 -13
- package/dist/chunk-6qjbrt0k.js.map +0 -9
- package/dist/chunk-6sccb4jr.js +0 -14
- package/dist/chunk-6sccb4jr.js.map +0 -9
- package/dist/chunk-798spvzv.js +0 -50
- package/dist/chunk-798spvzv.js.map +0 -10
- package/dist/chunk-7fw6x3js.js +0 -131
- package/dist/chunk-7fw6x3js.js.map +0 -11
- package/dist/chunk-7kjj42xm.js +0 -11
- package/dist/chunk-7kjj42xm.js.map +0 -10
- package/dist/chunk-7mtstdqn.js +0 -90
- package/dist/chunk-7mtstdqn.js.map +0 -10
- package/dist/chunk-851whwc7.js +0 -17
- package/dist/chunk-851whwc7.js.map +0 -10
- package/dist/chunk-85n68sy6.js +0 -103
- package/dist/chunk-85n68sy6.js.map +0 -10
- package/dist/chunk-8kcfffry.js +0 -35
- package/dist/chunk-8kcfffry.js.map +0 -10
- package/dist/chunk-8qqxc1h2.js +0 -426
- package/dist/chunk-8qqxc1h2.js.map +0 -14
- package/dist/chunk-92fsjfpp.js +0 -1731
- package/dist/chunk-92fsjfpp.js.map +0 -11
- package/dist/chunk-93sqk7be.js +0 -139
- package/dist/chunk-93sqk7be.js.map +0 -12
- package/dist/chunk-94gvx0hg.js +0 -28
- package/dist/chunk-94gvx0hg.js.map +0 -10
- package/dist/chunk-9c5tj4k3.js +0 -130
- package/dist/chunk-9c5tj4k3.js.map +0 -10
- package/dist/chunk-9ve9jq72.js +0 -203
- package/dist/chunk-9ve9jq72.js.map +0 -10
- package/dist/chunk-9xrsjeem.js +0 -12
- package/dist/chunk-9xrsjeem.js.map +0 -9
- package/dist/chunk-a9mvyp04.js +0 -87
- package/dist/chunk-a9mvyp04.js.map +0 -10
- package/dist/chunk-b3gbnrwe.js +0 -21
- package/dist/chunk-b3gbnrwe.js.map +0 -10
- package/dist/chunk-bmgqm774.js +0 -65
- package/dist/chunk-bmgqm774.js.map +0 -9
- package/dist/chunk-bxfghpma.js +0 -69
- package/dist/chunk-bxfghpma.js.map +0 -10
- package/dist/chunk-c1jfjnka.js +0 -74
- package/dist/chunk-c1jfjnka.js.map +0 -10
- package/dist/chunk-cbkrwmvh.js +0 -80
- package/dist/chunk-cbkrwmvh.js.map +0 -10
- package/dist/chunk-cdxd7sy2.js +0 -71
- package/dist/chunk-cdxd7sy2.js.map +0 -10
- package/dist/chunk-cg95827x.js +0 -21
- package/dist/chunk-cg95827x.js.map +0 -10
- package/dist/chunk-cm0g4q6w.js +0 -149
- package/dist/chunk-cm0g4q6w.js.map +0 -10
- package/dist/chunk-cwfy538a.js +0 -51
- package/dist/chunk-cwfy538a.js.map +0 -9
- package/dist/chunk-d7mwkzry.js +0 -261
- package/dist/chunk-d7mwkzry.js.map +0 -10
- package/dist/chunk-d8w0qm28.js +0 -184
- package/dist/chunk-d8w0qm28.js.map +0 -11
- package/dist/chunk-d9c0am65.js +0 -12
- package/dist/chunk-d9c0am65.js.map +0 -10
- package/dist/chunk-daqghmg8.js +0 -12
- package/dist/chunk-daqghmg8.js.map +0 -9
- package/dist/chunk-e3r9fxaa.js +0 -149
- package/dist/chunk-e3r9fxaa.js.map +0 -10
- package/dist/chunk-e8eecyrq.js +0 -244
- package/dist/chunk-e8eecyrq.js.map +0 -10
- package/dist/chunk-ex2hxe0v.js +0 -160
- package/dist/chunk-ex2hxe0v.js.map +0 -11
- package/dist/chunk-fak944et.js +0 -91
- package/dist/chunk-fak944et.js.map +0 -10
- package/dist/chunk-ff70rnhd.js +0 -672
- package/dist/chunk-ff70rnhd.js.map +0 -15
- package/dist/chunk-fygx2ymm.js +0 -118
- package/dist/chunk-fygx2ymm.js.map +0 -12
- package/dist/chunk-g15qj669.js +0 -271
- package/dist/chunk-g15qj669.js.map +0 -11
- package/dist/chunk-gd6wmknh.js +0 -121
- package/dist/chunk-gd6wmknh.js.map +0 -11
- package/dist/chunk-gf0ygptk.js +0 -85
- package/dist/chunk-gf0ygptk.js.map +0 -11
- package/dist/chunk-gytkmthr.js +0 -220
- package/dist/chunk-gytkmthr.js.map +0 -10
- package/dist/chunk-h5bbfn3n.js +0 -28
- package/dist/chunk-h5bbfn3n.js.map +0 -11
- package/dist/chunk-h6mye9r3.js +0 -93
- package/dist/chunk-h6mye9r3.js.map +0 -10
- package/dist/chunk-hcsmxw1v.js +0 -85
- package/dist/chunk-hcsmxw1v.js.map +0 -10
- package/dist/chunk-hyjs4bqs.js +0 -8
- package/dist/chunk-hyjs4bqs.js.map +0 -10
- package/dist/chunk-j88z31ep.js +0 -25
- package/dist/chunk-j88z31ep.js.map +0 -10
- package/dist/chunk-jn91vzkh.js +0 -66
- package/dist/chunk-jn91vzkh.js.map +0 -10
- package/dist/chunk-jpkjdgsk.js +0 -167
- package/dist/chunk-jpkjdgsk.js.map +0 -11
- package/dist/chunk-jwxt8gnp.js +0 -13
- package/dist/chunk-jwxt8gnp.js.map +0 -9
- package/dist/chunk-kk8w9rh5.js +0 -195
- package/dist/chunk-kk8w9rh5.js.map +0 -10
- package/dist/chunk-m97ze5hz.js +0 -46
- package/dist/chunk-m97ze5hz.js.map +0 -10
- package/dist/chunk-mbazhahf.js +0 -60
- package/dist/chunk-mbazhahf.js.map +0 -10
- package/dist/chunk-mgfwq18r.js +0 -15
- package/dist/chunk-mgfwq18r.js.map +0 -9
- package/dist/chunk-mtgf69xn.js +0 -88
- package/dist/chunk-mtgf69xn.js.map +0 -10
- package/dist/chunk-mtxzyxpg.js +0 -102
- package/dist/chunk-mtxzyxpg.js.map +0 -10
- package/dist/chunk-nehhtthw.js +0 -225
- package/dist/chunk-nehhtthw.js.map +0 -10
- package/dist/chunk-p5504p14.js +0 -16
- package/dist/chunk-p5504p14.js.map +0 -10
- package/dist/chunk-pnscgw95.js +0 -90
- package/dist/chunk-pnscgw95.js.map +0 -10
- package/dist/chunk-pvpp4pvs.js +0 -17
- package/dist/chunk-pvpp4pvs.js.map +0 -10
- package/dist/chunk-qh75agse.js +0 -95
- package/dist/chunk-qh75agse.js.map +0 -10
- package/dist/chunk-qxq2zcty.js +0 -52
- package/dist/chunk-qxq2zcty.js.map +0 -10
- package/dist/chunk-r6e8pytx.js +0 -22
- package/dist/chunk-r6e8pytx.js.map +0 -9
- package/dist/chunk-r7jmgqnw.js +0 -114
- package/dist/chunk-r7jmgqnw.js.map +0 -10
- package/dist/chunk-s6defjk2.js +0 -116
- package/dist/chunk-s6defjk2.js.map +0 -10
- package/dist/chunk-sd39p726.js +0 -619
- package/dist/chunk-sd39p726.js.map +0 -10
- package/dist/chunk-swrnzs4c.js +0 -63
- package/dist/chunk-swrnzs4c.js.map +0 -10
- package/dist/chunk-tfe3sb44.js +0 -33
- package/dist/chunk-tfe3sb44.js.map +0 -10
- package/dist/chunk-tjr0kcev.js +0 -41
- package/dist/chunk-tjr0kcev.js.map +0 -9
- package/dist/chunk-tx9edm1x.js +0 -34
- package/dist/chunk-tx9edm1x.js.map +0 -10
- package/dist/chunk-txhm2vb5.js +0 -18
- package/dist/chunk-txhm2vb5.js.map +0 -9
- package/dist/chunk-v5vmsxmy.js +0 -526
- package/dist/chunk-v5vmsxmy.js.map +0 -12
- package/dist/chunk-vjhxm8n2.js +0 -29
- package/dist/chunk-vjhxm8n2.js.map +0 -9
- package/dist/chunk-vkrpm7kc.js +0 -247
- package/dist/chunk-vkrpm7kc.js.map +0 -12
- package/dist/chunk-w3m4m5we.js +0 -4925
- package/dist/chunk-w3m4m5we.js.map +0 -12
- package/dist/chunk-wrxtn9ve.js +0 -18
- package/dist/chunk-wrxtn9ve.js.map +0 -10
- package/dist/chunk-wwzvp0zn.js +0 -192
- package/dist/chunk-wwzvp0zn.js.map +0 -10
- package/dist/chunk-x09cskqd.js +0 -377
- package/dist/chunk-x09cskqd.js.map +0 -10
- package/dist/chunk-xnt8c6h2.js +0 -576
- package/dist/chunk-xnt8c6h2.js.map +0 -10
- package/dist/chunk-xw0tx842.js +0 -13
- package/dist/chunk-xw0tx842.js.map +0 -9
- package/dist/chunk-xx5b6b9m.js +0 -69
- package/dist/chunk-xx5b6b9m.js.map +0 -10
- package/dist/chunk-xz1kdswj.js +0 -21
- package/dist/chunk-xz1kdswj.js.map +0 -9
- package/dist/chunk-y84qnsd3.js +0 -32
- package/dist/chunk-y84qnsd3.js.map +0 -10
- package/dist/chunk-ywjn0rad.js +0 -14
- package/dist/chunk-ywjn0rad.js.map +0 -9
- package/dist/chunk-z9nvhm6r.js +0 -13
- package/dist/chunk-z9nvhm6r.js.map +0 -9
- package/dist/chunk-zhmvdpk6.js +0 -15
- package/dist/chunk-zhmvdpk6.js.map +0 -9
- package/dist/chunk-zrg9d4zw.js +0 -784
- package/dist/chunk-zrg9d4zw.js.map +0 -10
package/dist/build.js.map
CHANGED
|
@@ -1,9 +1,105 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": [],
|
|
3
|
+
"sources": ["../src/constants.ts", "../src/core/islandManifest.ts", "../src/utils/getDurationString.ts", "../src/utils/startupBanner.ts", "../src/utils/logger.ts", "../src/utils/normalizePath.ts", "../src/utils/stringModifiers.ts", "../src/build/generateManifest.ts", "../src/core/islands.ts", "../src/build/islandEntries.ts", "../src/build/generateReactIndexes.ts", "../src/build/wrapHTMLScript.ts", "../src/build/htmlScriptHMRPlugin.ts", "../src/client/streamSwap.ts", "../src/utils/escapeScriptContent.ts", "../src/utils/streamingSlots.ts", "../src/angular/resolveAngularPackage.ts", "../src/angular/angularPatch.ts", "../src/angular/angularDeps.ts", "../src/utils/registerClientScript.ts", "../src/angular/httpTransferCache.ts", "../src/angular/requestProviders.ts", "../src/angular/ssrRender.ts", "../src/angular/islands.ts", "../src/core/islandSsr.ts", "../src/build/resolvePackageImport.ts", "../src/svelte/lowerIslandSyntax.ts", "../src/svelte/lowerAwaitSlotSyntax.ts", "../src/build/stylePreprocessor.ts", "../src/core/svelteServerModule.ts", "../src/core/islandMarkupAttributes.ts", "../src/core/renderIslandMarkup.ts", "../src/core/currentIslandRegistry.ts", "../src/core/staticStreaming.ts", "../src/build/staticIslandPages.ts", "../src/build/outputLogs.ts", "../src/build/scanEntryPoints.ts", "../src/build/scanConventions.ts", "../src/build/scanCssEntryPoints.ts", "../node_modules/tailwindcss/dist/chunk-HTB5LLOP.mjs", "../node_modules/tailwindcss/dist/chunk-P5FH2LZE.mjs", "../node_modules/tailwindcss/dist/chunk-U7LQKMN6.mjs", "../node_modules/tailwindcss/dist/lib.mjs", "../src/build/tailwindCompiler.ts", "../src/build/compileTailwind.ts", "../src/utils/imageProcessing.ts", "../src/build/optimizeHtmlImages.ts", "../src/cli/scripts/telemetry.ts", "../src/cli/telemetryEvent.ts", "../src/build/updateAssetPaths.ts", "../src/dev/buildHMRClient.ts", "../src/build/nativeRewrite.ts", "../src/build/rewriteReactImports.ts", "../src/core/devVendorPaths.ts", "../src/build/angularLinkerPlugin.ts", "../src/utils/cleanStaleOutputs.ts", "../src/utils/cleanup.ts", "../src/utils/commonAncestor.ts", "../src/utils/validateSafePath.ts", "../src/islands/sourceMetadata.ts", "../src/svelte/renderToReadableStream.ts", "../src/build/compileSvelte.ts", "../src/build/compileVue.ts", "../src/angular/lowerDeferSyntax.ts", "../src/build/compileAngular.ts", "../src/build/buildReactVendor.ts", "../src/build/vendorEntrySource.ts", "../src/build/buildAngularVendor.ts", "../src/build/buildVueVendor.ts", "../src/build/buildSvelteVendor.ts", "../src/build/rewriteImports.ts", "../src/core/build.ts", "../src/dev/dependencyGraph.ts", "../src/dev/moduleVersionTracker.ts", "../src/dev/configResolver.ts", "../src/dev/clientManager.ts", "../src/dev/pathUtils.ts", "../src/dev/fileWatcher.ts", "../src/dev/assetStore.ts", "../src/islands/pageMetadata.ts", "../src/dev/fileHashTracker.ts", "../src/dev/transformCache.ts", "../src/dev/reactComponentClassifier.ts", "../src/dev/moduleMapper.ts", "../types/websocket.ts", "../types/typeGuards.ts", "../src/dev/webSocket.ts", "../src/core/ssrCache.ts", "../src/dev/moduleServer.ts", "../src/dev/simpleHTMLHMR.ts", "../src/dev/simpleHTMXHMR.ts", "../src/dev/rebuildTrigger.ts", "../src/utils/startupTimings.ts", "../src/build/buildDepVendor.ts", "../src/core/devBuild.ts", "../src/build.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
+
"export const ANGULAR_INIT_TIMEOUT_MS = 500;\nexport const ANSI_ESCAPE_CODE = 27;\nexport const ANSI_ESCAPE_LENGTH = 3;\nexport const ASCII_SPACE = 32;\nexport const BASE_36_RADIX = 36;\nexport const BUN_BUILD_WARNING_SUPPRESSION =\n\t'wildcard sideEffects are not supported yet';\nexport const BODY_SLICE_LENGTH = 2000;\nexport const BYTES_PER_KILOBYTE = 1024;\nexport const CLI_ARGS_OFFSET = 3;\nexport const CSS_ERROR_RESOLVE_DELAY_MS = 50;\nexport const CSS_MAX_CHECK_ATTEMPTS = 10;\nexport const CSS_MAX_PARSE_TIMEOUT_MS = 500;\nexport const CSS_SHEET_READY_TIMEOUT_MS = 100;\nexport const DEFAULT_CHUNK_SIZE = 16_384;\nexport const DEFAULT_DEBOUNCE_MS = 15;\nexport const DEFAULT_PORT = 3000;\nexport const DEV_SERVER_RESTART_DEBOUNCE_MS = 100;\nexport const DOM_UPDATE_DELAY_MS = 50;\nexport const FILE_PROTOCOL_PREFIX_LENGTH = 7;\nexport const FOCUS_ID_PREFIX_LENGTH = 3;\nexport const FOCUS_IDX_PREFIX_LENGTH = 4;\nexport const FOCUS_NAME_PREFIX_LENGTH = 5;\nexport const HMR_UPDATE_TIMEOUT_MS = 2000;\nexport const HOOK_SIGNATURE_LENGTH = 12;\nexport const EXCLUDE_LAST_OFFSET = -1;\nexport const HTTP_STATUS_OK = 200;\nexport const HTTP_STATUS_BAD_REQUEST = 400;\nexport const HTTP_STATUS_NOT_FOUND = 404;\nexport const HOURS_IN_DAY = 24;\nexport const HOURS_IN_HALF_DAY = 12;\nexport const IMAGE_DEFAULT_DEVICE_SIZES = [\n\t640, 750, 828, 1080, 1200, 1920, 2048, 3840\n];\nexport const IMAGE_DEFAULT_IMAGE_SIZES = [16, 32, 48, 64, 96, 128, 256, 384];\nexport const IMAGE_DEFAULT_QUALITY = 75;\nexport const IMAGE_GLOB_SUFFIX_LENGTH = 2;\nexport const MAX_ERROR_LENGTH = 200;\nexport const MAX_RECONNECT_ATTEMPTS = 60;\nexport const MILLISECONDS_IN_A_SECOND = 1000;\nexport const MINUTES_IN_AN_HOUR = 60;\nexport const SECONDS_IN_A_MINUTE = 60;\nexport const MILLISECONDS_IN_A_MINUTE =\n\tMILLISECONDS_IN_A_SECOND * SECONDS_IN_A_MINUTE;\nexport const MILLISECONDS_IN_A_DAY =\n\tMILLISECONDS_IN_A_SECOND *\n\tSECONDS_IN_A_MINUTE *\n\tMINUTES_IN_AN_HOUR *\n\tHOURS_IN_DAY;\nexport const OVERLAY_FADE_DURATION_MS = 150;\nexport const PING_INTERVAL_MS = 30_000;\nexport const RAF_BATCH_COUNT = 3;\nexport const RANDOM_ID_END_INDEX = 11;\nexport const REBUILD_BATCH_DELAY_MS = 10;\nexport const REBUILD_RELOAD_DELAY_MS = 200;\nexport const RECONNECT_INITIAL_DELAY_MS = 500;\nexport const RECONNECT_POLL_INTERVAL_MS = 300;\nexport const REACT_STREAM_SLOT_FAST_DELAY_MS = 5;\nexport const REACT_STREAM_SLOT_SLOW_DELAY_MS = 20;\nexport const SIGINT_EXIT_CODE = 130;\nexport const SIGTERM_EXIT_CODE = 143;\nexport const SVELTE_CSS_LOAD_TIMEOUT_MS = 500;\nexport const TIME_PRECISION = 2;\nexport const TWO_THIRDS = 2 / 3;\nexport const UNFOUND_INDEX = -1;\nexport const WEBSOCKET_NORMAL_CLOSURE = 1000;\nexport const WORKSPACE_COMMAND_ARGS_OFFSET = 3;\nexport const WORKSPACE_FAILURE_LOG_PRINT_LIMIT = 30;\nexport const WORKSPACE_FAILURE_RECENT_LOG_LIMIT = 60;\nexport const WORKSPACE_READY_ATTEMPT_TIMEOUT_MS = 5_000;\nexport const WORKSPACE_READY_PROBE_INTERVAL_MS = 250;\nexport const WORKSPACE_READY_TIMEOUT_MS = 30_000;\nexport const WORKSPACE_SHUTDOWN_TIMEOUT_MS = 10_000;\nexport const WORKSPACE_TUI_DEFAULT_HEIGHT = 28;\nexport const WORKSPACE_TUI_DEFAULT_WIDTH = 100;\nexport const WORKSPACE_TUI_ESCAPE_SEQUENCE_TIMEOUT_MS = 30;\nexport const WORKSPACE_TUI_FOOTER_LINE_COUNT = 3;\nexport const WORKSPACE_TUI_MIN_LOG_HEIGHT = 3;\nexport const WORKSPACE_TUI_MIN_SERVICE_NAME_WIDTH = 7;\nexport const WORKSPACE_TUI_MIN_TARGET_WIDTH = 8;\nexport const WORKSPACE_TUI_MIN_WRAP_WIDTH = 12;\nexport const WORKSPACE_TUI_PROMPT_CURSOR_OFFSET = 3;\nexport const WORKSPACE_TUI_RECENT_LOG_LIMIT = 40;\nexport const WORKSPACE_TUI_RENDER_DEBOUNCE_MS = 16;\nexport const WORKSPACE_TUI_STATUS_WIDTH = 10;\nexport const WORKSPACE_TUI_TARGET_PADDING_WIDTH = 6;\nexport const WORKSPACE_TUI_VISIBILITY_WIDTH = 8;\n",
|
|
6
|
+
"import type { IslandFramework } from '../../types/island';\n\nconst toIslandFrameworkSegment = (framework: IslandFramework) =>\n\tframework[0]?.toUpperCase() + framework.slice(1);\n\nconst collectFrameworkIslands = (\n\tmanifest: Record<string, string>,\n\tprefix: string\n) => {\n\tconst entries: Record<string, string> = {};\n\tlet found = false;\n\n\tfor (const [key, value] of Object.entries(manifest)) {\n\t\tif (!key.startsWith(prefix)) continue;\n\n\t\tconst component = key.slice(prefix.length);\n\t\tif (!component) continue;\n\n\t\tentries[component] = value;\n\t\tfound = true;\n\t}\n\n\treturn found ? entries : undefined;\n};\n\nexport const getIslandManifestEntries = (manifest: Record<string, string>) => {\n\tconst islands: Partial<Record<IslandFramework, Record<string, string>>> =\n\t\t{};\n\tconst frameworks: IslandFramework[] = ['react', 'svelte', 'vue', 'angular'];\n\n\tfor (const framework of frameworks) {\n\t\tconst prefix = `Island${toIslandFrameworkSegment(framework)}`;\n\t\tconst entries = collectFrameworkIslands(manifest, prefix);\n\t\tif (entries) islands[framework] = entries;\n\t}\n\n\treturn islands;\n};\nexport const getIslandManifestKey = (\n\tframework: IslandFramework,\n\tcomponent: string\n) => `Island${toIslandFrameworkSegment(framework)}${component}`;\n",
|
|
7
|
+
"import {\n\tMILLISECONDS_IN_A_SECOND,\n\tTIME_PRECISION,\n\tMILLISECONDS_IN_A_MINUTE\n} from '../constants';\n\nexport const getDurationString = (duration: number) => {\n\tlet durationString;\n\n\tif (duration < MILLISECONDS_IN_A_SECOND) {\n\t\tdurationString = `${duration.toFixed(TIME_PRECISION)}ms`;\n\t} else if (duration < MILLISECONDS_IN_A_MINUTE) {\n\t\tdurationString = `${(duration / MILLISECONDS_IN_A_SECOND).toFixed(TIME_PRECISION)}s`;\n\t} else {\n\t\tconst totalSeconds = Math.round(duration / MILLISECONDS_IN_A_SECOND);\n\t\tconst minutes = Math.floor(totalSeconds / 60);\n\t\tconst seconds = totalSeconds % 60;\n\t\tdurationString =\n\t\t\tseconds === 0 ? `${minutes}m` : `${minutes}m ${seconds}s`;\n\t}\n\n\treturn durationString;\n};\n",
|
|
8
|
+
"import { HOURS_IN_HALF_DAY } from '../constants';\nimport { getDurationString } from './getDurationString';\n\nconst colors = {\n\tbold: '\\x1b[1m',\n\tcyan: '\\x1b[36m',\n\tdim: '\\x1b[2m',\n\tgreen: '\\x1b[32m',\n\treset: '\\x1b[0m'\n} as const;\n\nconst MONTHS = [\n\t'Jan',\n\t'Feb',\n\t'Mar',\n\t'Apr',\n\t'May',\n\t'Jun',\n\t'Jul',\n\t'Aug',\n\t'Sep',\n\t'Oct',\n\t'Nov',\n\t'Dec'\n] as const;\n\nexport const formatTimestamp = () => {\n\tconst now = new Date();\n\tconst month = MONTHS[now.getMonth()];\n\tconst day = now.getDate().toString().padStart(2, '0');\n\tlet hours = now.getHours();\n\tconst minutes = now.getMinutes().toString().padStart(2, '0');\n\tconst seconds = now.getSeconds().toString().padStart(2, '0');\n\tconst ampm = hours >= HOURS_IN_HALF_DAY ? 'PM' : 'AM';\n\thours = hours % HOURS_IN_HALF_DAY || HOURS_IN_HALF_DAY;\n\n\treturn `${month} ${day} ${hours}:${minutes}:${seconds} ${ampm}`;\n};\n\nexport const startupBanner = (options: {\n\tversion: string;\n\treadyDuration: number;\n\tbuildDuration?: number;\n\tport: string | number;\n\thost: string;\n\tnetworkUrl?: string;\n\tprotocol?: string;\n}) => {\n\tconst {\n\t\tversion,\n\t\treadyDuration,\n\t\tbuildDuration,\n\t\tport,\n\t\thost,\n\t\tnetworkUrl,\n\t\tprotocol = 'http'\n\t} = options;\n\tconst name = `${colors.cyan}${colors.bold}ABSOLUTEJS${colors.reset}`;\n\tconst ver = `${colors.dim}v${version}${colors.reset}`;\n\tconst time = `${colors.dim}ready in${colors.reset} ${colors.bold}${getDurationString(readyDuration)}${colors.reset}`;\n\tconst build =\n\t\ttypeof buildDuration === 'number' && Number.isFinite(buildDuration)\n\t\t\t? ` ${colors.dim}(build ${getDurationString(buildDuration)})${colors.reset}`\n\t\t\t: '';\n\tconsole.log('');\n\tconsole.log(` ${name} ${ver} ${time}${build}`);\n\tconsole.log('');\n\tconsole.log(\n\t\t` ${colors.green}➜${colors.reset} ${colors.bold}Local:${colors.reset} ${protocol}://${host === '0.0.0.0' ? 'localhost' : host}:${port}/`\n\t);\n\tif (networkUrl) {\n\t\tconsole.log(\n\t\t\t` ${colors.green}➜${colors.reset} ${colors.bold}Network:${colors.reset} ${networkUrl}`\n\t\t);\n\t}\n\tconsole.log('');\n};\n",
|
|
9
|
+
"/**\n * Centralized logger utility for AbsoluteJS\n * Provides formatted output with ANSI colors and timestamps\n */\n\nimport { formatTimestamp, startupBanner } from './startupBanner';\n\nexport { formatTimestamp };\n\n// ANSI color codes\nconst colors = {\n\tblue: '\\x1b[34m',\n\tbold: '\\x1b[1m',\n\t// Core colors\n\tcyan: '\\x1b[36m',\n\tdim: '\\x1b[2m',\n\tgreen: '\\x1b[32m',\n\tmagenta: '\\x1b[35m',\n\tred: '\\x1b[31m',\n\treset: '\\x1b[0m',\n\twhite: '\\x1b[37m',\n\tyellow: '\\x1b[33m'\n} as const;\n\n// Framework color mapping\nconst frameworkColors: Record<string, string> = {\n\tangular: colors.magenta,\n\tassets: colors.dim,\n\tcss: colors.cyan,\n\thtml: colors.white,\n\thtmx: colors.white,\n\treact: colors.blue,\n\tsvelte: colors.yellow,\n\tvue: colors.green\n};\n\n/**\n * Format a file path for display (relative, clean)\n */\nconst formatPath = (filePath: string) => {\n\tconst cwd = process.cwd();\n\tlet relative = filePath.startsWith(cwd)\n\t\t? filePath.slice(cwd.length + 1)\n\t\t: filePath;\n\t// Normalize slashes\n\trelative = relative.replace(/\\\\/g, '/');\n\t// Ensure it starts with /\n\tif (!relative.startsWith('/')) {\n\t\trelative = `/${relative}`;\n\t}\n\n\treturn relative;\n};\n\n/**\n * Get color for a framework\n */\nconst getFrameworkColor = (framework: string) =>\n\tframeworkColors[framework] || colors.white;\n\n/**\n * Core logging function\n */\nconst log = (\n\taction: string,\n\toptions?: {\n\t\tframework?: string;\n\t\tduration?: number;\n\t\tpath?: string;\n\t\tcolor?: string;\n\t}\n) => {\n\tconst timestamp = `${colors.dim}${formatTimestamp()}${colors.reset}`;\n\tconst tag = `${colors.cyan}[hmr]${colors.reset}`;\n\n\tlet message = action;\n\n\t// Apply framework color to path if present\n\tif (options?.path) {\n\t\tconst pathColor = options.framework\n\t\t\t? getFrameworkColor(options.framework)\n\t\t\t: colors.white;\n\t\tmessage += ` ${pathColor}${formatPath(options.path)}${colors.reset}`;\n\t}\n\n\t// Add duration if present\n\tif (options?.duration !== undefined) {\n\t\tmessage += ` ${colors.dim}(${options.duration}ms)${colors.reset}`;\n\t}\n\n\tconsole.log(`${timestamp} ${tag} ${message}`);\n};\n\n/**\n * Startup banner\n */\nexport const logReady = startupBanner;\n\n/**\n * CSS update message\n * Format: \"10:30:45 AM [hmr] css update /styles/main.css (125ms)\"\n */\nexport const logCssUpdate = (\n\tpath: string,\n\tframework?: string,\n\tduration?: number\n) => {\n\tlog('css update', { duration, framework: framework ?? 'css', path });\n};\n\n/**\n * Build error\n * Format: \"10:30:45 AM [hmr] error Build failed: ...\"\n */\nexport const logError = (message: string, error?: Error | string) => {\n\tconst timestamp = `${colors.dim}${formatTimestamp()}${colors.reset}`;\n\tconst tag = `${colors.red}[hmr]${colors.reset}`;\n\tconst errorMsg = error instanceof Error ? error.message : error;\n\tconst fullMessage = `${colors.red}error${colors.reset} ${message}${errorMsg ? `: ${errorMsg}` : ''}`;\n\tconsole.error(`${timestamp} ${tag} ${fullMessage}`);\n};\n\n/**\n * HMR update message\n * Format: \"10:30:45 AM [hmr] hmr update /pages/App.tsx\"\n */\nexport const logHmrUpdate = (\n\tpath: string,\n\tframework?: string,\n\tduration?: number\n) => {\n\tlog('hmr update', { duration, framework, path });\n};\n\n/**\n * Generic info message\n */\nexport const logInfo = (message: string) => {\n\tlog(message);\n};\n\n/**\n * Page reload message\n * Format: \"10:30:45 AM [hmr] page reload /src/App.tsx (125ms)\"\n */\nexport const logPageReload = (\n\tpath: string,\n\tframework?: string,\n\tduration?: number\n) => {\n\tlog('page reload', { duration, framework, path });\n};\n\n/**\n * Script update message\n * Format: \"10:30:45 AM [hmr] script update /scripts/counter.ts (125ms)\"\n */\nexport const logScriptUpdate = (\n\tpath: string,\n\tframework?: string,\n\tduration?: number\n) => {\n\tlog('script update', { duration, framework, path });\n};\n\n/**\n * Server module reloaded (Bun --hot triggered a server-side change)\n */\nexport const logServerReload = () => {\n\tlog(`${colors.cyan}server module reloaded${colors.reset}`);\n};\n\n/**\n * Warning message\n * Format: \"10:30:45 AM [hmr] warning ...\"\n */\nexport const logWarn = (message: string) => {\n\tconst timestamp = `${colors.dim}${formatTimestamp()}${colors.reset}`;\n\tconst tag = `${colors.yellow}[hmr]${colors.reset}`;\n\tconsole.log(\n\t\t`${timestamp} ${tag} ${colors.yellow}warning ${message}${colors.reset}`\n\t);\n};\n",
|
|
10
|
+
"/**\n * Normalize file paths to use forward slashes for cross-platform compatibility.\n * Windows uses backslashes, but this codebase standardizes on forward slashes.\n */\nexport const normalizePath = (path: string) => path.replace(/\\\\/g, '/');\n\n/**\n * Normalize all paths in an array.\n */\nexport const normalizePaths = (paths: string[]) => paths.map(normalizePath);\n",
|
|
11
|
+
"const normalizeSlug = (str: string) =>\n\tstr\n\t\t.trim()\n\t\t.replace(/\\s+/g, '-')\n\t\t.replace(/[^A-Za-z0-9\\-_]+/g, '')\n\t\t.replace(/[-_]{2,}/g, '-');\n\nexport const toKebab = (str: string) =>\n\tnormalizeSlug(str)\n\t\t.replace(/([a-z0-9])([A-Z])/g, '$1-$2')\n\t\t.toLowerCase();\nexport const toPascal = (str: string) => {\n\tif (!str.includes('-') && !str.includes('_')) {\n\t\treturn str.charAt(0).toUpperCase() + str.slice(1);\n\t}\n\n\treturn normalizeSlug(str)\n\t\t.split(/[-_]/)\n\t\t.filter(Boolean)\n\t\t.map(\n\t\t\t(segment) =>\n\t\t\t\tsegment.charAt(0).toUpperCase() + segment.slice(1).toLowerCase()\n\t\t)\n\t\t.join('');\n};\nexport const toScreamingSnake = (str: string) =>\n\tstr.replace(/([a-z0-9])([A-Z])/g, '$1_$2').toUpperCase();\n",
|
|
12
|
+
"import { extname } from 'node:path';\nimport type { BuildArtifact } from 'bun';\nimport { UNFOUND_INDEX } from '../constants';\nimport { getIslandManifestKey } from '../core/islandManifest';\nimport { logWarn } from '../utils/logger';\nimport { normalizePath } from '../utils/normalizePath';\nimport { toPascal } from '../utils/stringModifiers';\n\nconst getManifestKey = (\n\tfolder: string | undefined,\n\tpascalName: string,\n\tisClientComponent: boolean,\n\tisReact: boolean,\n\tisVue: boolean,\n\tisSvelte: boolean,\n\tisAngular: boolean\n) => {\n\tif (folder === 'indexes') return `${pascalName}Index`;\n\tif (isClientComponent) return `${pascalName}Client`;\n\tif (folder !== 'pages') return pascalName;\n\n\t// Only add \"Page\" suffix for React pages\n\t// Vue and Svelte pages use their base PascalCase name\n\tif (isReact) return `${pascalName}Page`;\n\tif (isVue || isSvelte || isAngular) return pascalName;\n\n\t// Default behavior for other frameworks\n\treturn `${pascalName}Page`;\n};\n\nconst getCssKey = (pascalName: string, segments: string[]) => {\n\tconst isFromVue = segments.some((seg) => seg === 'vue');\n\tif (isFromVue && segments.includes('css'))\n\t\treturn `${pascalName}CompiledCSS`;\n\n\tconst isFromReact = segments.some((seg) => seg === 'react');\n\tconst isFromSvelte = segments.some((seg) => seg === 'svelte');\n\tconst isFromAngular = segments.some((seg) => seg === 'angular');\n\tif (isFromReact || isFromVue || isFromSvelte || isFromAngular)\n\t\treturn `${pascalName}BundledCSS`;\n\n\treturn `${pascalName}CSS`;\n};\n\nconst getArtifactBaseName = (fileName: string, hash: string | null) => {\n\tconst ext = extname(fileName);\n\tconst stem = ext ? fileName.slice(0, -ext.length) : fileName;\n\tif (!hash) return stem;\n\n\tconst hashSuffix = `.${hash}`;\n\tif (stem.endsWith(hashSuffix)) return stem.slice(0, -hashSuffix.length);\n\n\treturn stem;\n};\n\nexport const generateManifest = (outputs: BuildArtifact[], buildPath: string) =>\n\toutputs.reduce<Record<string, string>>((manifest, artifact) => {\n\t\t// Normalize both paths for consistent comparison across platforms\n\t\tconst normalizedArtifactPath = normalizePath(artifact.path);\n\t\tconst normalizedBuildPath = normalizePath(buildPath);\n\n\t\tlet relative = normalizedArtifactPath.startsWith(normalizedBuildPath)\n\t\t\t? normalizedArtifactPath.slice(normalizedBuildPath.length)\n\t\t\t: normalizedArtifactPath;\n\t\trelative = relative.replace(/^\\/+/, '');\n\n\t\tconst segments = relative.split('/');\n\t\tconst fileWithHash = segments.pop();\n\t\tif (!fileWithHash) return manifest;\n\n\t\tconst baseName = getArtifactBaseName(fileWithHash, artifact.hash);\n\t\tif (!baseName) return manifest;\n\n\t\tconst pascalName = toPascal(baseName);\n\t\tconst ext = extname(fileWithHash);\n\t\tconst islandIndex = segments.findIndex((seg) => seg === 'islands');\n\n\t\tif (ext === '.css') {\n\t\t\t// Server bundles auto-emit a sibling .css for any CSS imported by\n\t\t\t// the SSR entry (Vue scoped styles, etc.). It's never linked from\n\t\t\t// HTML — the indexes-pass CSS is — so skip it to avoid clobbering\n\t\t\t// the same `${Page}BundledCSS` key.\n\t\t\tif (segments.includes('server')) return manifest;\n\n\t\t\t// Distinguish CSS from different sources to avoid key collisions.\n\t\t\t// CSS co-emitted from a JS bundle (e.g. CSS Modules) lives under a\n\t\t\t// framework path like react/generated/indexes/, while global\n\t\t\t// stylesheets from the styles directory land directly in indexes/.\n\t\t\t// Vue compiled SFC styles live in assets/css/.\n\t\t\tconst cssKey = getCssKey(pascalName, segments);\n\n\t\t\tif (manifest[cssKey] && manifest[cssKey] !== `/${relative}`)\n\t\t\t\tlogWarn(\n\t\t\t\t\t`Duplicate manifest key \"${cssKey}\" — \"${manifest[cssKey]}\" will be overwritten by \"/${relative}\". Use unique page names across frameworks.`\n\t\t\t\t);\n\n\t\t\tmanifest[cssKey] = `/${relative}`;\n\n\t\t\treturn manifest;\n\t\t}\n\n\t\tconst frameworkSegment =\n\t\t\tislandIndex > UNFOUND_INDEX ? segments[islandIndex + 1] : undefined;\n\t\tif (\n\t\t\tframeworkSegment === 'react' ||\n\t\t\tframeworkSegment === 'svelte' ||\n\t\t\tframeworkSegment === 'vue' ||\n\t\t\tframeworkSegment === 'angular'\n\t\t) {\n\t\t\tconst manifestKey = getIslandManifestKey(\n\t\t\t\tframeworkSegment,\n\t\t\t\tpascalName\n\t\t\t);\n\t\t\tmanifest[manifestKey] = `/${relative}`;\n\n\t\t\treturn manifest;\n\t\t}\n\n\t\tconst idx = segments.findIndex(\n\t\t\t(seg) => seg === 'indexes' || seg === 'pages' || seg === 'client'\n\t\t);\n\t\tconst folder = idx > UNFOUND_INDEX ? segments[idx] : segments[0];\n\n\t\t// Detect framework from path segments\n\t\tconst isReact = segments.some((seg) => seg === 'react');\n\t\tconst isVue = segments.some((seg) => seg === 'vue');\n\t\tconst isSvelte = segments.some((seg) => seg === 'svelte');\n\t\tconst isAngular = segments.some((seg) => seg === 'angular');\n\n\t\t// Check if this is a client component (for official HMR)\n\t\tconst isClientComponent = segments.includes('client');\n\n\t\tconst manifestKey = getManifestKey(\n\t\t\tfolder,\n\t\t\tpascalName,\n\t\t\tisClientComponent,\n\t\t\tisReact,\n\t\t\tisVue,\n\t\t\tisSvelte,\n\t\t\tisAngular\n\t\t);\n\t\tif (manifest[manifestKey] && manifest[manifestKey] !== `/${relative}`) {\n\t\t\tlogWarn(\n\t\t\t\t`Duplicate manifest key \"${manifestKey}\" — \"${manifest[manifestKey]}\" will be overwritten by \"/${relative}\". Use unique page names across frameworks.`\n\t\t\t);\n\t\t}\n\t\tmanifest[manifestKey] = `/${relative}`;\n\n\t\treturn manifest;\n\t}, {});\n",
|
|
13
|
+
"import type {\n\tIslandComponentDefinition,\n\tIslandRegistry,\n\tIslandRegistryInput\n} from '../../types/island';\n\nexport const defineIslandComponent = <Component>(\n\tcomponent: Component,\n\toptions: {\n\t\texport?: string;\n\t\tsource: string;\n\t}\n): IslandComponentDefinition<Component> => ({\n\tcomponent,\n\texport: options.export,\n\tsource: options.source\n});\nexport const defineIslandRegistry = <T extends IslandRegistryInput>(\n\tregistry: IslandRegistry<T>\n) => registry;\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n\ttypeof value === 'object' && value !== null;\n\nexport const getIslandBuildReference = <Component>(\n\tcomponent: Component | IslandComponentDefinition<Component>\n) => {\n\tif (!isIslandComponentDefinition(component)) return null;\n\n\treturn {\n\t\texport: component.export,\n\t\tsource: component.source\n\t};\n};\nexport const isIslandComponentDefinition = <Component>(\n\tvalue: Component | IslandComponentDefinition<Component>\n): value is IslandComponentDefinition<Component> =>\n\tisRecord(value) &&\n\t'component' in value &&\n\t'source' in value &&\n\ttypeof value.source === 'string';\n\nexport function getIslandComponent<Component>(component: Component): Component;\nexport function getIslandComponent<Component>(\n\tcomponent: IslandComponentDefinition<Component>\n): Component;\nexport function getIslandComponent<Component>(\n\tcomponent: Component | IslandComponentDefinition<Component>\n) {\n\tif (isIslandComponentDefinition(component)) {\n\t\treturn component.component;\n\t}\n\n\treturn component;\n}\nexport const parseIslandProps = (rawProps: string | null) => {\n\tif (!rawProps) return {};\n\n\treturn JSON.parse(rawProps);\n};\nexport const serializeIslandProps = (props: unknown) =>\n\tJSON.stringify(props ?? {});\n\nexport {\n\tgetIslandManifestEntries,\n\tgetIslandManifestKey\n} from './islandManifest';\n",
|
|
14
|
+
"import { mkdirSync, rmSync, writeFileSync } from 'node:fs';\nimport { dirname, extname, join, relative, resolve } from 'node:path';\nimport ts from 'typescript';\nimport type { IslandFramework, IslandRegistryInput } from '../../types/island';\nimport { getIslandBuildReference } from '../core/islands';\n\ntype RegistryModuleExport = {\n\tdefault?: unknown;\n\tislandRegistry?: unknown;\n};\n\ntype IslandBuildEntry = {\n\tcomponent: string;\n\tentryPath: string;\n\tframework: IslandFramework;\n};\n\ntype IslandDefinition = {\n\tbuildReference: {\n\t\texport?: string;\n\t\tsource: string;\n\t} | null;\n\tcomponent: string;\n\tframework: IslandFramework;\n};\n\ntype IslandRegistryBuildInfo = {\n\tdefinitions: IslandDefinition[];\n\thasNamedExport: boolean;\n\tregistry: IslandRegistryInput;\n\tresolvedRegistryPath: string;\n};\n\ntype ParsedImportReference = {\n\texport?: string;\n\tsource: string;\n};\n\ntype ParsedRegistryBuildInfo = {\n\tdefinitions: IslandDefinition[];\n\thasNamedExport: boolean;\n\tregistry: IslandRegistryInput;\n};\n\ntype IslandEntryPathMaps = Partial<\n\tRecord<IslandFramework, Map<string, string>>\n>;\n\nconst frameworks: IslandFramework[] = ['react', 'svelte', 'vue', 'angular'];\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n\ttypeof value === 'object' && value !== null;\n\nconst resolveRegistryExport = (mod: RegistryModuleExport) => {\n\tif (isRecord(mod.islandRegistry)) return mod.islandRegistry;\n\tif (isRecord(mod.default)) return mod.default;\n\n\tthrow new Error(\n\t\t'Island registry module must export `islandRegistry` or a default registry object.'\n\t);\n};\n\nconst hasSvelteImport = (source: string) =>\n\t/from\\s+['\"][^'\"]+\\.svelte['\"]/.test(source);\n\nconst normalizeImportPath = (wrapperPath: string, targetPath: string) => {\n\tconst importPath = relative(dirname(wrapperPath), targetPath).replace(\n\t\t/\\\\/g,\n\t\t'/'\n\t);\n\n\treturn importPath.startsWith('.') ? importPath : `./${importPath}`;\n};\n\nconst isIdentifier = (value: string) =>\n\t/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(value);\n\nconst resolveIslandSourcePath = (registryPath: string, sourcePath: string) => {\n\tif (sourcePath.startsWith('file://')) {\n\t\treturn new URL(sourcePath).pathname;\n\t}\n\n\treturn resolve(dirname(registryPath), sourcePath);\n};\n\nconst getObjectPropertyName = (name: ts.PropertyName) => {\n\tif (ts.isIdentifier(name) || ts.isStringLiteral(name)) {\n\t\treturn name.text;\n\t}\n\n\treturn null;\n};\n\nconst collectDefaultImport = (\n\timports: Map<string, ParsedImportReference>,\n\timportClause: ts.ImportClause,\n\tsource: string\n) => {\n\tif (!importClause.name) return;\n\n\timports.set(importClause.name.text, {\n\t\texport: 'default',\n\t\tsource\n\t});\n};\n\nconst collectNamedImports = (\n\timports: Map<string, ParsedImportReference>,\n\timportClause: ts.ImportClause,\n\tsource: string\n) => {\n\tconst bindings = importClause.namedBindings;\n\tif (!bindings || !ts.isNamedImports(bindings)) return;\n\n\tfor (const element of bindings.elements) {\n\t\timports.set(element.name.text, {\n\t\t\texport: element.propertyName?.text ?? element.name.text,\n\t\t\tsource\n\t\t});\n\t}\n};\n\nconst isIslandRegistryHelperImport = (source: string) =>\n\tsource === '@absolutejs/absolute/islands' ||\n\tsource.endsWith('/islands') ||\n\tsource.endsWith('/core/islands');\n\nconst collectRegistryHelperImports = (\n\timportClause: ts.ImportClause,\n\tsource: string,\n\tregistryFactoryNames: Set<string>,\n\tregistryNamespaceNames: Set<string>\n) => {\n\tif (!isIslandRegistryHelperImport(source)) return;\n\n\tconst bindings = importClause.namedBindings;\n\tif (!bindings) return;\n\n\tif (ts.isNamespaceImport(bindings)) {\n\t\tregistryNamespaceNames.add(bindings.name.text);\n\n\t\treturn;\n\t}\n\n\tfor (const element of bindings.elements) {\n\t\tconst importedName = element.propertyName?.text ?? element.name.text;\n\t\tif (importedName === 'defineIslandRegistry') {\n\t\t\tregistryFactoryNames.add(element.name.text);\n\t\t}\n\t}\n};\n\nconst createRegistryEntryValue = (reference: ParsedImportReference) => ({\n\tcomponent: reference.source,\n\texport: reference.export,\n\tsource: reference.source\n});\n\nconst addRegistryEntries = (\n\tframeworkNode: ts.ObjectLiteralExpression,\n\tframework: IslandFramework,\n\timports: Map<string, ParsedImportReference>,\n\tdefinitions: IslandDefinition[],\n\tregistry: IslandRegistryInput\n) => {\n\tconst frameworkRegistry = registry[framework] ?? {};\n\tregistry[framework] = frameworkRegistry;\n\n\tfor (const property of frameworkNode.properties) {\n\t\tif (\n\t\t\t!ts.isPropertyAssignment(property) &&\n\t\t\t!ts.isShorthandPropertyAssignment(property)\n\t\t)\n\t\t\tcontinue;\n\n\t\tconst componentName = getObjectPropertyName(property.name);\n\t\tif (!componentName) continue;\n\n\t\tconst initializer = ts.isPropertyAssignment(property)\n\t\t\t? property.initializer\n\t\t\t: property.name;\n\t\tif (!ts.isIdentifier(initializer)) continue;\n\n\t\tconst reference = imports.get(initializer.text);\n\t\tif (!reference) continue;\n\n\t\tframeworkRegistry[componentName] = createRegistryEntryValue(reference);\n\t\tdefinitions.push({\n\t\t\tbuildReference: reference,\n\t\t\tcomponent: componentName,\n\t\t\tframework\n\t\t});\n\t}\n};\n\nconst processDefineIslandRegistry = (\n\tnode: ts.CallExpression,\n\timports: Map<string, ParsedImportReference>,\n\tdefinitions: IslandDefinition[],\n\tregistry: IslandRegistryInput\n) => {\n\tconst [firstArg] = node.arguments;\n\tif (!firstArg || !ts.isObjectLiteralExpression(firstArg)) return;\n\n\tconst validFrameworks: IslandFramework[] = [\n\t\t'react',\n\t\t'svelte',\n\t\t'vue',\n\t\t'angular'\n\t];\n\tfor (const property of firstArg.properties) {\n\t\tif (!ts.isPropertyAssignment(property)) continue;\n\t\tconst frameworkName = getObjectPropertyName(property.name);\n\t\tif (!frameworkName) continue;\n\t\tconst framework = validFrameworks.find((f) => f === frameworkName);\n\t\tif (!framework) continue;\n\t\tif (!ts.isObjectLiteralExpression(property.initializer)) continue;\n\n\t\taddRegistryEntries(\n\t\t\tproperty.initializer,\n\t\t\tframework,\n\t\t\timports,\n\t\t\tdefinitions,\n\t\t\tregistry\n\t\t);\n\t}\n};\n\nconst walkRegistryNode = (\n\tnode: ts.Node,\n\timports: Map<string, ParsedImportReference>,\n\tregistryFactoryNames: Set<string>,\n\tregistryNamespaceNames: Set<string>,\n\tdefinitions: IslandDefinition[],\n\tregistry: IslandRegistryInput\n) => {\n\tif (\n\t\tts.isCallExpression(node) &&\n\t\tisDefineIslandRegistryCall(\n\t\t\tnode.expression,\n\t\t\tregistryFactoryNames,\n\t\t\tregistryNamespaceNames\n\t\t)\n\t) {\n\t\tprocessDefineIslandRegistry(node, imports, definitions, registry);\n\t}\n\n\tts.forEachChild(node, (child) =>\n\t\twalkRegistryNode(\n\t\t\tchild,\n\t\t\timports,\n\t\t\tregistryFactoryNames,\n\t\t\tregistryNamespaceNames,\n\t\t\tdefinitions,\n\t\t\tregistry\n\t\t)\n\t);\n};\n\nconst isDefineIslandRegistryCall = (\n\texpression: ts.Expression,\n\tregistryFactoryNames: Set<string>,\n\tregistryNamespaceNames: Set<string>\n) => {\n\tif (ts.isIdentifier(expression)) {\n\t\treturn registryFactoryNames.has(expression.text);\n\t}\n\n\treturn (\n\t\tts.isPropertyAccessExpression(expression) &&\n\t\texpression.name.text === 'defineIslandRegistry' &&\n\t\tts.isIdentifier(expression.expression) &&\n\t\tregistryNamespaceNames.has(expression.expression.text)\n\t);\n};\n\nconst hasIslandRegistryNamedExport = (sourceFile: ts.SourceFile) => {\n\tfor (const statement of sourceFile.statements) {\n\t\tif (\n\t\t\tts.isVariableStatement(statement) &&\n\t\t\tstatement.modifiers?.some(\n\t\t\t\t(modifier) => modifier.kind === ts.SyntaxKind.ExportKeyword\n\t\t\t) &&\n\t\t\tstatement.declarationList.declarations.some(\n\t\t\t\t(declaration) =>\n\t\t\t\t\tts.isIdentifier(declaration.name) &&\n\t\t\t\t\tdeclaration.name.text === 'islandRegistry'\n\t\t\t)\n\t\t) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (!ts.isExportDeclaration(statement) || !statement.exportClause)\n\t\t\tcontinue;\n\t\tif (!ts.isNamedExports(statement.exportClause)) continue;\n\n\t\tif (\n\t\t\tstatement.exportClause.elements.some(\n\t\t\t\t(element) => element.name.text === 'islandRegistry'\n\t\t\t)\n\t\t) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n};\n\nconst collectImportDeclarations = (\n\tsourceFile: ts.SourceFile,\n\tregistryPath: string,\n\timports: Map<string, ParsedImportReference>,\n\tregistryFactoryNames: Set<string>,\n\tregistryNamespaceNames: Set<string>\n) => {\n\tfor (const statement of sourceFile.statements) {\n\t\tif (\n\t\t\t!ts.isImportDeclaration(statement) ||\n\t\t\t!ts.isStringLiteral(statement.moduleSpecifier)\n\t\t)\n\t\t\tcontinue;\n\n\t\tconst { importClause } = statement;\n\t\tif (!importClause) continue;\n\n\t\tconst source = resolveIslandSourcePath(\n\t\t\tregistryPath,\n\t\t\tstatement.moduleSpecifier.text\n\t\t);\n\n\t\tcollectDefaultImport(imports, importClause, source);\n\t\tcollectNamedImports(imports, importClause, source);\n\t\tcollectRegistryHelperImports(\n\t\t\timportClause,\n\t\t\tstatement.moduleSpecifier.text,\n\t\t\tregistryFactoryNames,\n\t\t\tregistryNamespaceNames\n\t\t);\n\t}\n};\n\nconst parseIslandRegistryBuildInfo = (\n\tregistrySource: string,\n\tregistryPath: string\n): ParsedRegistryBuildInfo => {\n\tconst sourceFile = ts.createSourceFile(\n\t\tregistryPath,\n\t\tregistrySource,\n\t\tts.ScriptTarget.Latest,\n\t\ttrue,\n\t\tts.ScriptKind.TS\n\t);\n\tconst imports = new Map<string, ParsedImportReference>();\n\tconst registryFactoryNames = new Set<string>(['defineIslandRegistry']);\n\tconst registryNamespaceNames = new Set<string>();\n\tconst definitions: IslandDefinition[] = [];\n\tconst registry: IslandRegistryInput = {};\n\n\tcollectImportDeclarations(\n\t\tsourceFile,\n\t\tregistryPath,\n\t\timports,\n\t\tregistryFactoryNames,\n\t\tregistryNamespaceNames\n\t);\n\twalkRegistryNode(\n\t\tsourceFile,\n\t\timports,\n\t\tregistryFactoryNames,\n\t\tregistryNamespaceNames,\n\t\tdefinitions,\n\t\tregistry\n\t);\n\n\treturn {\n\t\tdefinitions,\n\t\thasNamedExport: hasIslandRegistryNamedExport(sourceFile),\n\t\tregistry\n\t};\n};\n\nconst loadDynamicIslandRegistryBuildInfo = async (\n\tresolvedRegistryPath: string\n) => {\n\tconst registryModule: RegistryModuleExport = await import(\n\t\tresolvedRegistryPath\n\t);\n\tconst registry: IslandRegistryInput = resolveRegistryExport(registryModule);\n\tconst definitions = frameworks.flatMap((framework) => {\n\t\tconst frameworkRegistry = registry[framework];\n\t\tif (!isRecord(frameworkRegistry)) return [];\n\n\t\treturn Object.entries(frameworkRegistry).map(([component, value]) => ({\n\t\t\tbuildReference: getIslandBuildReference(value),\n\t\t\tcomponent,\n\t\t\tframework\n\t\t}));\n\t});\n\n\treturn {\n\t\tdefinitions,\n\t\thasNamedExport: isRecord(registryModule.islandRegistry),\n\t\tregistry\n\t};\n};\n\nconst createRegistryImportCode = (\n\twrapperPath: string,\n\tregistryPath: string,\n\thasNamedExport: boolean\n) => {\n\tconst normalizedPath = normalizeImportPath(wrapperPath, registryPath);\n\n\tif (hasNamedExport) {\n\t\treturn {\n\t\t\timportStatement: `import { islandRegistry as __absoluteIslandRegistry } from ${JSON.stringify(normalizedPath)};`,\n\t\t\tregistryReference: '__absoluteIslandRegistry'\n\t\t};\n\t}\n\n\treturn {\n\t\timportStatement: `import __absoluteIslandRegistry from ${JSON.stringify(normalizedPath)};`,\n\t\tregistryReference: '__absoluteIslandRegistry'\n\t};\n};\n\nconst createDirectEntrySource = (\n\twrapperPath: string,\n\timportPath: string,\n\texportName?: string\n) => {\n\tconst normalizedImportPath = normalizeImportPath(wrapperPath, importPath);\n\tif (!exportName || exportName === 'default') {\n\t\treturn `export { default } from ${JSON.stringify(normalizedImportPath)};\\n`;\n\t}\n\n\treturn `export { ${exportName} as default } from ${JSON.stringify(normalizedImportPath)};\\n`;\n};\n\nconst createRegistryEntrySource = (\n\twrapperPath: string,\n\tregistryPath: string,\n\thasNamedExport: boolean,\n\tframework: IslandFramework,\n\tcomponent: string\n) => {\n\tconst { importStatement, registryReference } = createRegistryImportCode(\n\t\twrapperPath,\n\t\tregistryPath,\n\t\thasNamedExport\n\t);\n\tconst frameworkAccess = isIdentifier(framework)\n\t\t? `${registryReference}.${framework}`\n\t\t: `${registryReference}[${JSON.stringify(framework)}]`;\n\tconst componentAccess = isIdentifier(component)\n\t\t? `${frameworkAccess}.${component}`\n\t\t: `${frameworkAccess}[${JSON.stringify(component)}]`;\n\n\treturn `${importStatement}\n\nconst component = ${componentAccess};\n\nexport default component;\n`;\n};\n\nconst shouldUseCompiledClientPath = (\n\tframework: IslandFramework,\n\tsourcePath: string\n) => {\n\tif (framework === 'svelte') {\n\t\treturn /\\.svelte(?:\\.(?:ts|js))?$/.test(sourcePath);\n\t}\n\n\tif (framework === 'vue') {\n\t\treturn extname(sourcePath) === '.vue';\n\t}\n\n\tif (framework === 'angular') {\n\t\treturn /\\.(?:ts|js|tsx|jsx|mjs|cjs)$/.test(sourcePath);\n\t}\n\n\treturn false;\n};\n\nexport const collectIslandFrameworkSources = (\n\tbuildInfo: IslandRegistryBuildInfo\n) => {\n\tconst sources: Partial<Record<IslandFramework, string[]>> = {};\n\n\tfor (const definition of buildInfo.definitions) {\n\t\tconst { buildReference } = definition;\n\t\tif (!buildReference) continue;\n\n\t\tconst resolvedSourcePath = resolveIslandSourcePath(\n\t\t\tbuildInfo.resolvedRegistryPath,\n\t\t\tbuildReference.source\n\t\t);\n\t\tif (\n\t\t\t!shouldUseCompiledClientPath(\n\t\t\t\tdefinition.framework,\n\t\t\t\tresolvedSourcePath\n\t\t\t)\n\t\t)\n\t\t\tcontinue;\n\n\t\tconst frameworkSources = sources[definition.framework] ?? [];\n\t\tif (frameworkSources.includes(resolvedSourcePath)) continue;\n\n\t\tframeworkSources.push(resolvedSourcePath);\n\t\tsources[definition.framework] = frameworkSources;\n\t}\n\n\treturn sources;\n};\nexport const generateIslandEntryPoints = async ({\n\tbuildInfo,\n\tbuildPath,\n\tclientPathMaps = {}\n}: {\n\tbuildInfo: IslandRegistryBuildInfo;\n\tbuildPath: string;\n\tclientPathMaps?: IslandEntryPathMaps;\n}) => {\n\tconst generatedRoot = join(buildPath, '_island_entries');\n\n\trmSync(generatedRoot, { force: true, recursive: true });\n\n\tconst entries: IslandBuildEntry[] = [];\n\n\tfor (const definition of buildInfo.definitions) {\n\t\tconst entryPath = join(\n\t\t\tgeneratedRoot,\n\t\t\t'islands',\n\t\t\tdefinition.framework,\n\t\t\t`${definition.component}.ts`\n\t\t);\n\t\tconst { buildReference } = definition;\n\t\tconst source = buildReference\n\t\t\t? resolveIslandSourcePath(\n\t\t\t\t\tbuildInfo.resolvedRegistryPath,\n\t\t\t\t\tbuildReference.source\n\t\t\t\t)\n\t\t\t: null;\n\t\tconst compiledSourcePath =\n\t\t\tsource && shouldUseCompiledClientPath(definition.framework, source)\n\t\t\t\t? clientPathMaps[definition.framework]?.get(source)\n\t\t\t\t: undefined;\n\t\tconst entrySource =\n\t\t\tsource &&\n\t\t\t(compiledSourcePath ||\n\t\t\t\t!shouldUseCompiledClientPath(definition.framework, source))\n\t\t\t\t? createDirectEntrySource(\n\t\t\t\t\t\tentryPath,\n\t\t\t\t\t\tcompiledSourcePath ?? source,\n\t\t\t\t\t\tcompiledSourcePath ? undefined : buildReference?.export\n\t\t\t\t\t)\n\t\t\t\t: createRegistryEntrySource(\n\t\t\t\t\t\tentryPath,\n\t\t\t\t\t\tbuildInfo.resolvedRegistryPath,\n\t\t\t\t\t\tbuildInfo.hasNamedExport,\n\t\t\t\t\t\tdefinition.framework,\n\t\t\t\t\t\tdefinition.component\n\t\t\t\t\t);\n\n\t\tmkdirSync(dirname(entryPath), { recursive: true });\n\t\twriteFileSync(entryPath, entrySource);\n\t\tentries.push({\n\t\t\tcomponent: definition.component,\n\t\t\tentryPath,\n\t\t\tframework: definition.framework\n\t\t});\n\t}\n\n\treturn {\n\t\tentries,\n\t\tgeneratedRoot\n\t};\n};\nexport const loadIslandRegistryBuildInfo = async (\n\tregistryPath: string\n): Promise<IslandRegistryBuildInfo> => {\n\tconst resolvedRegistryPath = resolve(registryPath);\n\tconst registrySource = Bun.file(resolvedRegistryPath);\n\tconst registrySourceText = await registrySource.text();\n\tconst parsedInfo = parseIslandRegistryBuildInfo(\n\t\tregistrySourceText,\n\t\tresolvedRegistryPath\n\t);\n\tif (parsedInfo.definitions.length > 0) {\n\t\treturn {\n\t\t\tdefinitions: parsedInfo.definitions,\n\t\t\thasNamedExport: parsedInfo.hasNamedExport,\n\t\t\tregistry: parsedInfo.registry,\n\t\t\tresolvedRegistryPath\n\t\t};\n\t}\n\tif (hasSvelteImport(registrySourceText)) {\n\t\tthrow new Error(\n\t\t\t'Unable to statically analyze the island registry. Registries that import .svelte files must use defineIslandRegistry({ ... }) with direct imported component references.'\n\t\t);\n\t}\n\n\tconst dynamicInfo =\n\t\tawait loadDynamicIslandRegistryBuildInfo(resolvedRegistryPath);\n\n\treturn {\n\t\tdefinitions: dynamicInfo.definitions,\n\t\thasNamedExport: dynamicInfo.hasNamedExport,\n\t\tregistry: dynamicInfo.registry,\n\t\tresolvedRegistryPath\n\t};\n};\n",
|
|
15
|
+
"import { existsSync, mkdirSync } from 'fs';\nimport { readdir, rm, writeFile } from 'fs/promises';\nimport { basename, join, relative, resolve, sep } from 'path';\nimport { Glob } from 'bun';\nimport { toPascal } from '../utils/stringModifiers';\n\nconst indexContentCache = new Map<string, string>();\n\nconst resolveDevClientDir = () => {\n\tconst projectRoot = process.cwd();\n\tconst fromSource = resolve(import.meta.dir, '../dev/client');\n\n\t// Only use the source path if it exists AND is within the project root\n\t// (i.e., we're developing absolutejs itself, not using it as a dependency)\n\tif (existsSync(fromSource) && fromSource.startsWith(projectRoot)) {\n\t\treturn fromSource;\n\t}\n\n\t// When running from a published npm package, use the installed copy\n\tconst fromNodeModules = resolve(\n\t\tprojectRoot,\n\t\t'node_modules/@absolutejs/absolute/dist/dev/client'\n\t);\n\tif (existsSync(fromNodeModules)) return fromNodeModules;\n\n\treturn resolve(import.meta.dir, './dev/client');\n};\n\nconst devClientDir = resolveDevClientDir();\n\nconst errorOverlayPath = join(devClientDir, 'errorOverlay.ts').replace(\n\t/\\\\/g,\n\t'/'\n);\n\nconst hmrClientPath = join(devClientDir, 'hmrClient.ts').replace(/\\\\/g, '/');\n\nconst refreshSetupPath = join(devClientDir, 'reactRefreshSetup.ts').replace(\n\t/\\\\/g,\n\t'/'\n);\n\nexport const generateReactIndexFiles = async (\n\treactPagesDirectory: string,\n\treactIndexesDirectory: string,\n\tisDev = false\n) => {\n\tif (!existsSync(reactIndexesDirectory)) {\n\t\tmkdirSync(reactIndexesDirectory, { recursive: true });\n\t}\n\n\tconst CONVENTION_RE = /^(?:(.+)\\.)?(error|loading|not-found)\\.[^.]+$/;\n\tconst pagesGlob = new Glob('*.{jsx,tsx}');\n\tconst files: string[] = [];\n\tfor await (const file of pagesGlob.scan({ cwd: reactPagesDirectory })) {\n\t\tif (CONVENTION_RE.test(file)) continue;\n\t\tfiles.push(file);\n\t}\n\n\t// Remove stale indexes whose source pages no longer exist\n\tconst currentPageNames = new Set(\n\t\tfiles.map((file) => basename(file).split('.')[0])\n\t);\n\n\tconst emptyStringArray: string[] = [];\n\n\tconst existingIndexes = await readdir(reactIndexesDirectory).catch(\n\t\t() => emptyStringArray\n\t);\n\n\tconst staleIndexes = existingIndexes.filter((indexFile) => {\n\t\tconst indexName = indexFile.replace(/\\.tsx$/, '');\n\n\t\treturn indexName !== '_refresh' && !currentPageNames.has(indexName);\n\t});\n\n\tif (staleIndexes.length > 0) {\n\t\tawait Promise.all(\n\t\t\tstaleIndexes.map((indexFile) => {\n\t\t\t\tindexContentCache.delete(\n\t\t\t\t\tjoin(reactIndexesDirectory, indexFile)\n\t\t\t\t);\n\n\t\t\t\treturn rm(join(reactIndexesDirectory, indexFile), {\n\t\t\t\t\tforce: true\n\t\t\t\t});\n\t\t\t})\n\t\t);\n\t}\n\n\t// Compute relative path from indexes dir to pages dir for imports\n\tconst pagesRelPath = relative(\n\t\tresolve(reactIndexesDirectory),\n\t\tresolve(reactPagesDirectory)\n\t)\n\t\t.split(sep)\n\t\t.join('/');\n\n\tconst promises = files.map(async (file) => {\n\t\tconst fileName = basename(file);\n\t\tconst componentName = fileName.split('.')[0]!;\n\t\tconst pascalComponentName = toPascal(componentName);\n\n\t\tconst hmrPreamble = isDev\n\t\t\t? [\n\t\t\t\t\t`window.__HMR_FRAMEWORK__ = \"react\";`,\n\t\t\t\t\t`window.__REACT_COMPONENT_KEY__ = \"${componentName}Index\";`,\n\t\t\t\t\t`import '${refreshSetupPath}';`,\n\t\t\t\t\t`import '${hmrClientPath}';`,\n\t\t\t\t\t`import { showErrorOverlay, hideErrorOverlay } from '${errorOverlayPath}';\\n`\n\t\t\t\t]\n\t\t\t: [];\n\n\t\tconst reactImports = isDev\n\t\t\t? [\n\t\t\t\t\t`import { hydrateRoot, createRoot } from 'react-dom/client';`,\n\t\t\t\t\t`import { createElement, Component } from 'react';`\n\t\t\t\t]\n\t\t\t: [\n\t\t\t\t\t`import { hydrateRoot, createRoot } from 'react-dom/client';`,\n\t\t\t\t\t`import { createElement } from 'react';`\n\t\t\t\t];\n\n\t\tconst errorBoundaryDef = isDev\n\t\t\t? [\n\t\t\t\t\t`\\n// Dev-only Error Boundary to catch React render errors`,\n\t\t\t\t\t`class ErrorBoundary extends Component {`,\n\t\t\t\t\t`\\tconstructor(props) {`,\n\t\t\t\t\t`\\t\\tsuper(props);`,\n\t\t\t\t\t`\\t\\tthis.state = { hasError: false };`,\n\t\t\t\t\t`\\t\\twindow.__ERROR_BOUNDARY__ = this;`,\n\t\t\t\t\t`\\t}`,\n\t\t\t\t\t`\\tstatic getDerivedStateFromError() {`,\n\t\t\t\t\t`\\t\\treturn { hasError: true };`,\n\t\t\t\t\t`\\t}`,\n\t\t\t\t\t`\\tcomponentDidCatch(error) {`,\n\t\t\t\t\t`\\t\\tshowErrorOverlay({`,\n\t\t\t\t\t`\\t\\t\\tframework: 'react',`,\n\t\t\t\t\t`\\t\\t\\tkind: 'runtime',`,\n\t\t\t\t\t`\\t\\t\\tmessage: error && error.stack ? error.stack : String(error)`,\n\t\t\t\t\t`\\t\\t});`,\n\t\t\t\t\t`\\t}`,\n\t\t\t\t\t`\\tcomponentDidUpdate(prevProps, prevState) {`,\n\t\t\t\t\t`\\t\\tif (prevState.hasError && !this.state.hasError) {`,\n\t\t\t\t\t`\\t\\t\\thideErrorOverlay();`,\n\t\t\t\t\t`\\t\\t}`,\n\t\t\t\t\t`\\t}`,\n\t\t\t\t\t`\\treset() {`,\n\t\t\t\t\t`\\t\\tthis.setState({ hasError: false });`,\n\t\t\t\t\t`\\t}`,\n\t\t\t\t\t`\\trender() {`,\n\t\t\t\t\t`\\t\\tif (this.state.hasError) return null;`,\n\t\t\t\t\t``,\n\t\t\t\t\t`\\t\\treturn this.props.children;`,\n\t\t\t\t\t`\\t}`,\n\t\t\t\t\t`}\\n`\n\t\t\t\t]\n\t\t\t: [];\n\n\t\tconst content = [\n\t\t\t...hmrPreamble,\n\t\t\t...reactImports,\n\t\t\t`import * as PageModule from '${pagesRelPath}/${componentName}';\\n`,\n\t\t\t...errorBoundaryDef,\n\t\t\t`// Hydration with error handling and fallback`,\n\t\t\t`const isDev = ${isDev};`,\n\t\t\t`const componentPath = '${pagesRelPath}/${componentName}';\\n`,\n\t\t\t`function resolvePageComponent(module, candidateNames) {`,\n\t\t\t`\\tfor (const name of candidateNames) {`,\n\t\t\t`\\t\\tconst value = module[name];`,\n\t\t\t`\\t\\tif (typeof value === 'function' || (value && typeof value === 'object')) return value;`,\n\t\t\t`\\t}`,\n\t\t\t`\\tfor (const [name, value] of Object.entries(module)) {`,\n\t\t\t`\\t\\tif (!/^[A-Z]/.test(name)) continue;`,\n\t\t\t`\\t\\tif (typeof value === 'function' || (value && typeof value === 'object')) return value;`,\n\t\t\t`\\t}`,\n\t\t\t`\\tthrow new Error('React page module ' + componentPath + ' does not export a component. Expected default, ${pascalComponentName}, ${componentName}, or any PascalCase export.');`,\n\t\t\t`}`,\n\t\t\t`const PageComponent = resolvePageComponent(PageModule, ['default', '${pascalComponentName}', '${componentName}']);\\n`,\n\t\t\t`function isHydrationError(error) {`,\n\t\t\t`\\tif (!error) return false;`,\n\t\t\t`\\tconst errorMessage = error instanceof Error ? error.message : String(error);`,\n\t\t\t`\\tconst errorString = String(error);`,\n\t\t\t`\\tconst fullMessage = errorMessage + ' ' + errorString;`,\n\t\t\t`\\tconst hydrationKeywords = ['hydration', 'Hydration', 'mismatch', 'Mismatch', 'did not match', 'server rendered HTML', 'server HTML', 'client HTML', 'Hydration failed'];`,\n\t\t\t`\\tconst isHydration = hydrationKeywords.some(keyword => fullMessage.includes(keyword));`,\n\t\t\t`\\t`,\n\t\t\t`\\t// Ignore whitespace-only mismatches in <head> - these are harmless formatting differences`,\n\t\t\t`\\t// The error often shows: + <link...> vs - {\"\\\\n \"} which is just formatting`,\n\t\t\t`\\tif (isHydration) {`,\n\t\t\t`\\t\\t// Check if this is a head/link/stylesheet related mismatch`,\n\t\t\t`\\t\\tconst isHeadRelated = fullMessage.includes('<head') || fullMessage.includes('</head>') || fullMessage.includes('head>') || fullMessage.includes('<link') || fullMessage.includes('link>') || fullMessage.includes('stylesheet') || fullMessage.includes('fonts.googleapis') || fullMessage.includes('rel=\"stylesheet\"');`,\n\t\t\t`\\t\\t`,\n\t\t\t`\\t\\t// Check if the mismatch involves only whitespace/newlines`,\n\t\t\t`\\t\\t// Pattern: looks for {\"\\\\n\"} or {\"\\\\n \"} or similar whitespace-only content`,\n\t\t\t`\\t\\t// Also check for patterns like: - {\"\\\\n \"} or + <link...>`,\n\t\t\t`\\t\\tconst hasWhitespacePattern = /\\\\{\\\\s*[\"']\\\\\\\\n[^\"']*[\"']\\\\s*\\\\}/.test(fullMessage) || /\\\\{\\\\s*[\"'][\\\\\\\\n\\\\\\\\r\\\\\\\\s]+[\"']\\\\s*\\\\}/.test(fullMessage) || /-\\\\s*\\\\{\\\\s*[\"'][\\\\\\\\n\\\\\\\\r\\\\\\\\s]+[\"']\\\\s*\\\\}/.test(fullMessage);`,\n\t\t\t`\\t\\tconst isWhitespaceOnly = /^[\\\\s\\\\n\\\\r]*$/.test(errorString) || /^[\\\\s\\\\n\\\\r]*$/.test(errorMessage);`,\n\t\t\t`\\t\\tconst hasNewlinePattern = fullMessage.includes('\\\\\\\\n') || fullMessage.includes('\\\\\\\\r') || fullMessage.includes('\\\\n') || fullMessage.includes('\\\\r');`,\n\t\t\t`\\t\\t`,\n\t\t\t`\\t\\t// If it's head-related and involves whitespace/newlines, ignore it`,\n\t\t\t`\\t\\tif (isHeadRelated && (hasWhitespacePattern || isWhitespaceOnly || hasNewlinePattern)) {`,\n\t\t\t`\\t\\t\\treturn false; // Don't treat whitespace-only head mismatches as errors`,\n\t\t\t`\\t\\t}`,\n\t\t\t`\\t}`,\n\t\t\t`\\treturn isHydration;`,\n\t\t\t`}\\n`,\n\t\t\t`function logHydrationError(error, componentName) {`,\n\t\t\t`\\tif (!isDev) return;`,\n\t\t\t`\\tif (window.__HMR_WS__ && window.__HMR_WS__.readyState === WebSocket.OPEN) {`,\n\t\t\t`\\t\\ttry {`,\n\t\t\t`\\t\\t\\twindow.__HMR_WS__.send(JSON.stringify({`,\n\t\t\t`\\t\\t\\t\\ttype: 'hydration-error',`,\n\t\t\t`\\t\\t\\t\\tdata: {`,\n\t\t\t`\\t\\t\\t\\t\\tcomponentName: '${componentName}',`,\n\t\t\t`\\t\\t\\t\\t\\tcomponentPath: componentPath,`,\n\t\t\t`\\t\\t\\t\\t\\terror: error instanceof Error ? error.message : String(error),`,\n\t\t\t`\\t\\t\\t\\t\\ttimestamp: Date.now()`,\n\t\t\t`\\t\\t\\t\\t}`,\n\t\t\t`\\t\\t\\t}));`,\n\t\t\t`\\t\\t} catch (err) {}`,\n\t\t\t`\\t}`,\n\t\t\t`}\\n`,\n\t\t\t`// Track if we've already switched to client-only mode`,\n\t\t\t`let hasSwitchedToClientOnly = false;`,\n\t\t\t`let hydrationErrorDetected = false;\\n`,\n\t\t\t`function handleHydrationFallback(error) {`,\n\t\t\t`\\tif (hasSwitchedToClientOnly) return; // Already handled`,\n\t\t\t`\\thasSwitchedToClientOnly = true;`,\n\t\t\t`\\thydrationErrorDetected = true;\\n`,\n\t\t\t`\\tlogHydrationError(error, '${componentName}');\\n`,\n\t\t\t`\\t// Fallback: client-only render (no hydration)`,\n\t\t\t`\\ttry {`,\n\t\t\t`\\t\\t// Unmount existing root if it exists`,\n\t\t\t`\\t\\tif (window.__REACT_ROOT__ && typeof window.__REACT_ROOT__.unmount === 'function') {`,\n\t\t\t`\\t\\t\\ttry {`,\n\t\t\t`\\t\\t\\twindow.__REACT_ROOT__.unmount();`,\n\t\t\t`\\t\\t\\t} catch (e) {`,\n\t\t\t`\\t\\t\\t\\t// Ignore unmount errors`,\n\t\t\t`\\t\\t\\t}`,\n\t\t\t`\\t\\t}\\n`,\n\t\t\t`\\t\\t// Render into the same root container when falling back to client-only`,\n\t\t\t`\\t\\tconst root = createRoot(container);`,\n\t\t\t`\\t\\troot.render(${isDev ? `createElement(ErrorBoundary, null, createElement(PageComponent, mergedProps))` : `createElement(PageComponent, mergedProps)`});`,\n\t\t\t`\\t\\twindow.__REACT_ROOT__ = root;`,\n\t\t\t`\\t\\twindow.__HMR_CLIENT_ONLY_MODE__ = true;`,\n\t\t\t`\\t} catch (fallbackError) {`,\n\t\t\t`\\t\\twindow.location.reload();`,\n\t\t\t`\\t}`,\n\t\t\t`}\\n`,\n\t\t\t`// HMR State Preservation: Check for preserved state and merge with initial props`,\n\t\t\t`// This allows state to be preserved across HMR updates without modifying component files`,\n\t\t\t`let preservedState = (typeof window !== 'undefined' && window.__HMR_PRESERVED_STATE__) ? window.__HMR_PRESERVED_STATE__ : {};\\n`,\n\t\t\t`// Also check sessionStorage for state that survived a page reload (for React HMR)`,\n\t\t\t`if (typeof window !== 'undefined' && typeof sessionStorage !== 'undefined') {`,\n\t\t\t`\\tconst hmrStateJson = sessionStorage.getItem('__REACT_HMR_STATE__');`,\n\t\t\t`\\tif (hmrStateJson) {`,\n\t\t\t`\\t\\ttry {`,\n\t\t\t`\\t\\t\\tconst hmrState = JSON.parse(hmrStateJson);`,\n\t\t\t`\\t\\t\\tpreservedState = { ...preservedState, ...hmrState };`,\n\t\t\t`\\t\\t\\tsessionStorage.removeItem('__REACT_HMR_STATE__');`,\n\t\t\t`\\t\\t} catch (e) {}`,\n\t\t\t`\\t}`,\n\t\t\t`}\\n`,\n\t\t\t`const mergedProps = { ...(window.__INITIAL_PROPS__ || {}), ...preservedState };`,\n\t\t\t`// Clear preserved state after using it (so it doesn't persist across multiple updates)`,\n\t\t\t`if (typeof window !== 'undefined') {`,\n\t\t\t`\\twindow.__HMR_PRESERVED_STATE__ = undefined;`,\n\t\t\t`}\\n`,\n\t\t\t`// Attempt hydration with error handling`,\n\t\t\t`// Use document (not document.body) when the page renders <html><head><body>`,\n\t\t\t`// to avoid \"In HTML, <html> cannot be a child of <body>\" hydration error`,\n\t\t\t`const container = typeof document !== 'undefined' ? document : null;`,\n\t\t\t`if (!container) {`,\n\t\t\t`\\tthrow new Error('React root container not found: document is null');`,\n\t\t\t`}\\n`,\n\t\t\t`// Guard: only hydrate on first load. During HMR re-imports, skip hydration`,\n\t\t\t`// so React Fast Refresh can swap components in-place and preserve state.`,\n\t\t\t`if (!window.__REACT_ROOT__) {`,\n\t\t\t`\\tlet root;`,\n\t\t\t`\\t// After HMR, SSR is skipped to avoid stale content flash — render client-only`,\n\t\t\t`\\tif (window.__SSR_DIRTY__) {`,\n\t\t\t`\\t\\troot = createRoot(container);`,\n\t\t\t`\\t\\troot.render(${isDev ? `createElement(ErrorBoundary, null, createElement(PageComponent, mergedProps))` : `createElement(PageComponent, mergedProps)`});`,\n\t\t\t`\\t\\twindow.__REACT_ROOT__ = root;`,\n\t\t\t`\\t} else {`,\n\t\t\t`\\ttry {`,\n\t\t\t`\\t\\t// Use onRecoverableError to catch hydration errors (React 19)`,\n\t\t\t`\\t\\troot = hydrateRoot(`,\n\t\t\t`\\t\\t\\tcontainer,`,\n\t\t\t`\\t\\t\\t${isDev ? `createElement(ErrorBoundary, null, createElement(PageComponent, mergedProps))` : `createElement(PageComponent, mergedProps)`},`,\n\t\t\t`\\t\\t\\t{`,\n\t\t\t`\\t\\t\\t\\tonRecoverableError: (error) => {`,\n\t\t\t`\\t\\t\\t\\t\\t// Check if this is a hydration error (isHydrationError filters out whitespace-only head mismatches)`,\n\t\t\t`\\t\\t\\t\\t\\tif (isDev && isHydrationError(error)) {`,\n\t\t\t`\\t\\t\\t\\t\\t\\t// Real hydration error - handle it`,\n\t\t\t`\\t\\t\\t\\t\\t\\thandleHydrationFallback(error);`,\n\t\t\t`\\t\\t\\t\\t\\t} else {`,\n\t\t\t`\\t\\t\\t\\t\\t\\t// Not a hydration error, or it's a whitespace-only mismatch that was filtered out`,\n\t\t\t`\\t\\t\\t\\t\\t\\t// Check if it's a whitespace-only head mismatch using the same logic as isHydrationError`,\n\t\t\t`\\t\\t\\t\\t\\t\\tconst errorMessage = error instanceof Error ? error.message : String(error);`,\n\t\t\t`\\t\\t\\t\\t\\t\\tconst errorString = String(error);`,\n\t\t\t`\\t\\t\\t\\t\\t\\tconst fullMessage = errorMessage + ' ' + errorString;`,\n\t\t\t`\\t\\t\\t\\t\\t\\tconst hydrationKeywords = ['hydration', 'Hydration', 'mismatch', 'Mismatch', 'did not match', 'server rendered HTML', 'server HTML', 'client HTML', 'Hydration failed'];`,\n\t\t\t`\\t\\t\\t\\t\\t\\tconst isHydration = hydrationKeywords.some(keyword => fullMessage.includes(keyword));`,\n\t\t\t`\\t\\t\\t\\t\\t\\tif (isHydration) {`,\n\t\t\t`\\t\\t\\t\\t\\t\\t\\t// Check if this is a head/link/stylesheet related mismatch`,\n\t\t\t`\\t\\t\\t\\t\\t\\t\\tconst isHeadRelated = fullMessage.includes('<head') || fullMessage.includes('</head>') || fullMessage.includes('head>') || fullMessage.includes('<link') || fullMessage.includes('link>') || fullMessage.includes('stylesheet') || fullMessage.includes('fonts.googleapis') || fullMessage.includes('rel=\"stylesheet\"');`,\n\t\t\t`\\t\\t\\t\\t\\t\\t\\t// Check if the mismatch involves only whitespace/newlines`,\n\t\t\t`\\t\\t\\t\\t\\t\\t\\tconst hasWhitespacePattern = /\\\\{\\\\s*[\"']\\\\\\\\n[^\"']*[\"']\\\\s*\\\\}/.test(fullMessage) || /\\\\{\\\\s*[\"'][\\\\\\\\n\\\\\\\\r\\\\\\\\s]+[\"']\\\\s*\\\\}/.test(fullMessage) || /-\\\\s*\\\\{\\\\s*[\"'][\\\\\\\\n\\\\\\\\r\\\\\\\\s]+[\"']\\\\s*\\\\}/.test(fullMessage);`,\n\t\t\t`\\t\\t\\t\\t\\t\\t\\tconst isWhitespaceOnly = /^[\\\\s\\\\n\\\\r]*$/.test(errorString) || /^[\\\\s\\\\n\\\\r]*$/.test(errorMessage);`,\n\t\t\t`\\t\\t\\t\\t\\t\\t\\tconst hasNewlinePattern = fullMessage.includes('\\\\\\\\n') || fullMessage.includes('\\\\\\\\r') || fullMessage.includes('\\\\n') || fullMessage.includes('\\\\r');`,\n\t\t\t`\\t\\t\\t\\t\\t\\t\\t// If it's head-related and involves whitespace/newlines, silently ignore it`,\n\t\t\t`\\t\\t\\t\\t\\t\\t\\tif (isHeadRelated && (hasWhitespacePattern || isWhitespaceOnly || hasNewlinePattern)) {`,\n\t\t\t`\\t\\t\\t\\t\\t\\t\\t\\t// Already logged by isHydrationError, just return silently`,\n\t\t\t`\\t\\t\\t\\t\\t\\t\\t\\treturn;`,\n\t\t\t`\\t\\t\\t\\t\\t\\t\\t}`,\n\t\t\t`\\t\\t\\t\\t\\t\\t}`,\n\t\t\t`\\t\\t\\t\\t\\t\\t// Log other recoverable errors`,\n\t\t\t`\\t\\t\\t\\t\\t\\tconsole.error('React recoverable error:', error);`,\n\t\t\t`\\t\\t\\t\\t\\t}`,\n\t\t\t`\\t\\t\\t\\t}`,\n\t\t\t`\\t\\t\\t}`,\n\t\t\t`\\t\\t);`,\n\t\t\t`\\t\\twindow.__REACT_ROOT__ = root;`,\n\t\t\t`\\t} catch (error) {`,\n\t\t\t`\\t\\t// Catch synchronous errors (shouldn't happen with hydrateRoot, but safety net)`,\n\t\t\t`\\t\\tif (isDev && isHydrationError(error)) {`,\n\t\t\t`\\t\\t\\thandleHydrationFallback(error);`,\n\t\t\t`\\t\\t} else {`,\n\t\t\t`\\t\\t\\tthrow error;`,\n\t\t\t`\\t\\t}`,\n\t\t\t`\\t}`,\n\t\t\t`\\t} // end else (normal hydration path)\\n`,\n\t\t\t`\\t// Also listen for hydration errors via console.error (React logs them there)`,\n\t\t\t`\\tif (isDev) {`,\n\t\t\t`\\t\\tconst originalError = console.error;`,\n\t\t\t`\\t\\tconsole.error = function(...args) {`,\n\t\t\t`\\t\\t\\tconst errorMessage = args.map(arg => {`,\n\t\t\t`\\t\\t\\t\\tif (arg instanceof Error) return arg.message;`,\n\t\t\t`\\t\\t\\t\\treturn String(arg);`,\n\t\t\t`\\t\\t\\t}).join(' ');`,\n\t\t\t`\\t\\t\\t`,\n\t\t\t`\\t\\t\\t// Check if this is a hydration error`,\n\t\t\t`\\t\\t\\tif (isHydrationError({ message: errorMessage }) && !hydrationErrorDetected) {`,\n\t\t\t`\\t\\t\\t\\thydrationErrorDetected = true;`,\n\t\t\t`\\t\\t\\t\\t// Create a synthetic error for fallback`,\n\t\t\t`\\t\\t\\t\\tconst syntheticError = new Error(errorMessage);`,\n\t\t\t`\\t\\t\\t\\t// Use setTimeout to ensure this happens after React's error handling`,\n\t\t\t`\\t\\t\\t\\tsetTimeout(() => {`,\n\t\t\t`\\t\\t\\t\\t\\thandleHydrationFallback(syntheticError);`,\n\t\t\t`\\t\\t\\t\\t}, 0);`,\n\t\t\t`\\t\\t\\t}`,\n\t\t\t`\\t\\t\\t`,\n\t\t\t`\\t\\t\\t// Call original console.error`,\n\t\t\t`\\t\\t\\toriginalError.apply(console, args);`,\n\t\t\t`\\t\\t};`,\n\t\t\t`\\t}`,\n\t\t\t`}`,\n\t\t\t...(isDev\n\t\t\t\t? [\n\t\t\t\t\t\t`\\n// Pre-warm: import the page module from the module server`,\n\t\t\t\t\t\t`// immediately so the browser caches all /@src/ URLs.`,\n\t\t\t\t\t\t`import('/@src/${relative(process.cwd(), resolve(reactPagesDirectory, `${componentName}.tsx`)).replace(/\\\\/g, '/')}').catch(() => {});`\n\t\t\t\t\t]\n\t\t\t\t: [])\n\t\t].join('\\n');\n\n\t\tconst indexPath = join(reactIndexesDirectory, `${componentName}.tsx`);\n\t\tconst hasher = new Bun.CryptoHasher('md5');\n\t\thasher.update(content);\n\t\tconst contentHash = hasher.digest('hex');\n\n\t\tif (\n\t\t\tindexContentCache.get(indexPath) === contentHash &&\n\t\t\texistsSync(indexPath)\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tindexContentCache.set(indexPath, contentHash);\n\t\tawait writeFile(indexPath, content);\n\t});\n\tawait Promise.all(promises);\n\n\t// Generate a dummy entry that imports React so code splitting extracts\n\t// React into a shared chunk. This lets HMR re-import component entries\n\t// without creating a duplicate React instance.\n\t// IMPORTANT: reactRefreshSetup MUST be imported BEFORE react so that\n\t// injectIntoGlobalHook patches window.__REACT_DEVTOOLS_GLOBAL_HOOK__\n\t// before React initializes and checks it. Without this, the Refresh\n\t// Runtime can't reach React's reconciler and performReactRefresh()\n\t// silently does nothing.\n\tif (!isDev) {\n\t\treturn;\n\t}\n\n\tconst refreshPath = join(reactIndexesDirectory, '_refresh.tsx');\n\n\tif (!existsSync(refreshPath)) {\n\t\tawait writeFile(\n\t\t\trefreshPath,\n\t\t\t`import '${refreshSetupPath}';\\nimport 'react';\\nimport 'react-dom/client';\\n`\n\t\t);\n\t}\n};\n",
|
|
16
|
+
"/**\n * Wraps HTML/HTMX TypeScript/JavaScript scripts with import.meta.hot support\n * for granular HMR updates. This allows script changes to hot-reload\n * without triggering a full HTML page rebuild.\n *\n * The wrapper is minimal - it just adds import.meta.hot.accept() so Bun\n * knows this module can be hot-reloaded. Event listener cleanup is handled\n * by the HMR client (cloning elements before script re-execution).\n */\n\n/**\n * Wrap a script with HMR support using Bun's import.meta.hot API\n * @param code - The original script code\n * @param scriptId - Unique identifier for this script (usually the file path)\n * @returns Wrapped code with HMR support\n */\nexport const isHTMLScript = (\n\tfilePath: string,\n\thtmlDir?: string,\n\thtmxDir?: string\n) => {\n\tconst normalizedPath = filePath.replace(/\\\\/g, '/');\n\tconst isScript = /\\.(ts|js|tsx|jsx)$/.test(normalizedPath);\n\n\tif (!isScript) return false;\n\n\t// Check if it's in the HTML or HTMX directory\n\tif (htmlDir) {\n\t\tconst normalizedHtmlDir = htmlDir.replace(/\\\\/g, '/');\n\t\tif (normalizedPath.startsWith(normalizedHtmlDir)) return true;\n\t}\n\n\tif (htmxDir) {\n\t\tconst normalizedHtmxDir = htmxDir.replace(/\\\\/g, '/');\n\t\tif (normalizedPath.startsWith(normalizedHtmxDir)) return true;\n\t}\n\n\treturn false;\n};\nexport const wrapHTMLScriptWithHMR = (code: string, scriptId: string) => {\n\tconst escapedId = JSON.stringify(scriptId);\n\n\treturn `${code}\n\n// HMR acceptance - allows this script to be hot-reloaded\nif (typeof import.meta !== \"undefined\" && import.meta.hot) {\n import.meta.hot.accept();\n console.log('[HMR] Script ready:', ${escapedId});\n}\n`;\n};\n",
|
|
17
|
+
"/**\n * Bun build plugin that wraps HTML/HTMX scripts with import.meta.hot support\n * for granular HMR. This allows script changes to hot-reload independently\n * without triggering a full HTML page rebuild.\n */\n\nimport type { BunPlugin } from 'bun';\nimport { wrapHTMLScriptWithHMR } from './wrapHTMLScript';\n\nconst scriptLoaders = new Set(['ts', 'js', 'tsx', 'jsx'] as const);\nconst toLoader = (ext: string) => {\n\tfor (const loader of scriptLoaders) {\n\t\tif (loader === ext) return loader;\n\t}\n\n\treturn 'ts' as const;\n};\n\n/**\n * Creates a Bun build plugin that wraps HTML/HTMX scripts with HMR support\n * @param htmlDir - The HTML directory path (normalized with forward slashes)\n * @param htmxDir - The HTMX directory path (normalized with forward slashes)\n * @returns Bun build plugin\n */\nexport const createHTMLScriptHMRPlugin = (\n\thtmlDir?: string,\n\thtmxDir?: string\n): BunPlugin => ({\n\t\tname: 'html-script-hmr',\n\t\tsetup(build) {\n\t\t\t// Only apply to TypeScript/JavaScript files\n\t\t\tbuild.onLoad({ filter: /\\.(ts|js|tsx|jsx)$/ }, async (args) => {\n\t\t\t\tconst normalizedPath = args.path.replace(/\\\\/g, '/');\n\n\t\t\t\t// Check if this file is in the HTML or HTMX scripts directory\n\t\t\t\tconst isHtmlScript =\n\t\t\t\t\thtmlDir &&\n\t\t\t\t\tnormalizedPath.includes(htmlDir.replace(/\\\\/g, '/')) &&\n\t\t\t\t\tnormalizedPath.includes('/scripts/');\n\t\t\t\tconst isHtmxScript =\n\t\t\t\t\thtmxDir &&\n\t\t\t\t\tnormalizedPath.includes(htmxDir.replace(/\\\\/g, '/')) &&\n\t\t\t\t\tnormalizedPath.includes('/scripts/');\n\n\t\t\t\tif (!isHtmlScript && !isHtmxScript) {\n\t\t\t\t\t// Not an HTML/HTMX script, let Bun handle it normally\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\n\t\t\t\t// Read the original script content\n\t\t\t\tconst text = await Bun.file(args.path).text();\n\n\t\t\t\t// Wrap with HMR support\n\t\t\t\tconst wrapped = wrapHTMLScriptWithHMR(text, normalizedPath);\n\n\t\t\t\t// Determine the loader based on file extension\n\t\t\t\tconst ext = args.path.split('.').pop() ?? 'ts';\n\t\t\t\tconst loader = toLoader(ext);\n\n\t\t\t\treturn {\n\t\t\t\t\tcontents: wrapped,\n\t\t\t\t\tloader\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\t});\n",
|
|
18
|
+
"type AbsoluteSlotWindow = Window & {\n\t__ABS_SLOT_ENQUEUE__?: (id: string, payload: unknown) => void;\n\t__ABS_SLOT_FLUSH__?: () => void;\n\t__ABS_SLOT_CONSUMERS__?: Record<\n\t\tstring,\n\t\t((payload: unknown) => boolean | void) | undefined\n\t>;\n\t__ABS_SLOT_HYDRATION_PENDING__?: boolean;\n\t__ABS_SLOT_PENDING__?: Record<string, unknown>;\n\t__ABS_SLOT_RUNTIME__?: boolean;\n};\n\nconst streamSwapRuntime = () => {\n\tconst absoluteWindow: AbsoluteSlotWindow = window;\n\tconst SLOT_PATCH_EVENT = 'absolutejs:slot-patch';\n\tif (absoluteWindow.__ABS_SLOT_RUNTIME__ === true) return;\n\tabsoluteWindow.__ABS_SLOT_RUNTIME__ = true;\n\tabsoluteWindow.__ABS_SLOT_CONSUMERS__ =\n\t\tabsoluteWindow.__ABS_SLOT_CONSUMERS__ ?? {};\n\tabsoluteWindow.__ABS_SLOT_PENDING__ =\n\t\tabsoluteWindow.__ABS_SLOT_PENDING__ ?? {};\n\tconst consumers = absoluteWindow.__ABS_SLOT_CONSUMERS__;\n\tconst pending = absoluteWindow.__ABS_SLOT_PENDING__;\n\tconst isObjectRecord = (value: unknown): value is Record<string, unknown> =>\n\t\tBoolean(value) && typeof value === 'object';\n\tconst isPatchedPendingEntry = (\n\t\tvalue: unknown\n\t): value is {\n\t\tdomPatched: true;\n\t\tpayload: unknown;\n\t} => {\n\t\tif (!isObjectRecord(value)) return false;\n\n\t\treturn value.domPatched === true && 'payload' in value;\n\t};\n\tconst unwrapPendingPayload = (value: unknown) =>\n\t\tisPatchedPendingEntry(value) ? value.payload : value;\n\tconst canApplyImmediately = () =>\n\t\tabsoluteWindow.__ABS_SLOT_HYDRATION_PENDING__ !== true;\n\tconst isAngularDeferPayload = (payload: unknown) => {\n\t\tif (!isObjectRecord(payload)) return false;\n\n\t\treturn payload.kind === 'angular-defer';\n\t};\n\tconst isVueSuspensePayload = (payload: unknown) => {\n\t\tif (!isObjectRecord(payload)) return false;\n\n\t\treturn payload.kind === 'vue-suspense';\n\t};\n\tconst resolveHtml = (payload: unknown) => {\n\t\tif (!isObjectRecord(payload)) {\n\t\t\treturn typeof payload === 'string' ? payload : '';\n\t\t}\n\t\tif (typeof payload.html === 'string') {\n\t\t\treturn payload.html;\n\t\t}\n\n\t\treturn '';\n\t};\n\n\tconst apply = (id: string, pendingEntry: unknown) => {\n\t\tconst payload = unwrapPendingPayload(pendingEntry);\n\t\tif (!canApplyImmediately()) {\n\t\t\tpending[id] = payload;\n\n\t\t\treturn;\n\t\t}\n\t\tconst consumer = consumers[id];\n\t\tif (typeof consumer !== 'function') {\n\t\t\tapplyToDom(id, payload, pendingEntry);\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst handled = consumer(payload);\n\t\tif (handled !== false) {\n\t\t\tdelete pending[id];\n\n\t\t\treturn;\n\t\t}\n\n\t\tapplyToDom(id, payload, pendingEntry);\n\t};\n\tconst applyToDom = (\n\t\tid: string,\n\t\tpayload: unknown,\n\t\tpendingEntry: unknown\n\t) => {\n\t\tif (isAngularDeferPayload(payload)) {\n\t\t\tpending[id] = payload;\n\n\t\t\treturn;\n\t\t}\n\t\tconst node = document.getElementById(id);\n\t\tif (!node) {\n\t\t\tpending[id] = payload;\n\n\t\t\treturn;\n\t\t}\n\t\tconst html = resolveHtml(payload);\n\t\tif (\n\t\t\tisVueSuspensePayload(payload) &&\n\t\t\tisPatchedPendingEntry(pendingEntry)\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tnode.innerHTML = html;\n\t\tnode.setAttribute('data-absolute-slot-state', 'resolved');\n\t\twindow.dispatchEvent(\n\t\t\tnew CustomEvent(SLOT_PATCH_EVENT, {\n\t\t\t\tdetail: { html, id, payload }\n\t\t\t})\n\t\t);\n\t\tif (isVueSuspensePayload(payload)) {\n\t\t\tpending[id] = { domPatched: true, payload };\n\n\t\t\treturn;\n\t\t}\n\t\tdelete pending[id];\n\t};\n\n\tconst flush = () => {\n\t\tfor (const id in pending) {\n\t\t\tif (!Object.prototype.hasOwnProperty.call(pending, id)) continue;\n\t\t\tapply(id, pending[id] ?? '');\n\t\t}\n\t};\n\n\tabsoluteWindow.__ABS_SLOT_FLUSH__ = flush;\n\tabsoluteWindow.__ABS_SLOT_ENQUEUE__ = (id: string, payload: unknown) => {\n\t\tapply(id, payload);\n\t};\n\n\tif (typeof MutationObserver === 'function') {\n\t\tconst observer = new MutationObserver(flush);\n\t\tconst root = document.documentElement ?? document.body ?? document;\n\t\tobserver.observe(root, { childList: true, subtree: true });\n\t}\n\n\tif (document.readyState === 'loading') {\n\t\tdocument.addEventListener('DOMContentLoaded', flush, { once: true });\n\t}\n\tflush();\n};\n\nconst stripFunctionWrapper = (value: string) => {\n\tconst start = value.indexOf('{');\n\tconst end = value.lastIndexOf('}');\n\tif (start < 0 || end <= start) return '';\n\n\treturn value.slice(start + 1, end);\n};\n\nexport const getStreamSwapRuntimeScript = () =>\n\t`(function(){${stripFunctionWrapper(streamSwapRuntime.toString())}})();`;\n",
|
|
19
|
+
"const ESCAPE_LOOKUP: Record<string, string> = {\n\t'\\u2028': '\\\\u2028',\n\t'\\u2029': '\\\\u2029',\n\t'<': '\\\\u003C'\n};\n\nconst ESCAPE_REGEX = /[<\\u2028\\u2029]/g;\n\nexport const escapeScriptContent = (content: string) =>\n\tcontent.replace(ESCAPE_REGEX, (char) => {\n\t\tconst escaped = ESCAPE_LOOKUP[char];\n\n\t\treturn escaped !== undefined ? escaped : char;\n\t});\n",
|
|
20
|
+
"import { getStreamSwapRuntimeScript } from '../client/streamSwap';\nimport { BASE_36_RADIX, RANDOM_ID_END_INDEX } from '../constants';\nimport { escapeScriptContent } from './escapeScriptContent';\n\nconst SLOT_ID_PREFIX = 'abs-slot-';\nconst CLOSING_BODY_TAG = '</body>';\nconst CLOSING_HEAD_TAG = '</head>';\nconst CLOSING_BODY_TAG_LENGTH = CLOSING_BODY_TAG.length;\nconst CLOSING_HEAD_TAG_LENGTH = CLOSING_HEAD_TAG.length;\nconst CLOSING_PAGE_TAG_REGEX = /<\\/body>\\s*<\\/html>\\s*$/i;\nconst STREAMING_RUNTIME_GLOBAL = '__ABS_SLOT_ENQUEUE__';\nconst STREAMING_PENDING_GLOBAL = '__ABS_SLOT_PENDING__';\nconst STREAM_TAIL_LOOKBEHIND = 128;\nconst STREAMING_SLOT_TIMEOUT_MS = 5_000;\nconst STREAMING_SLOT_MAX_PER_RESPONSE = 128;\nconst STREAMING_SLOT_MAX_HTML_BYTES = 64_000;\n\ntype SlotResolver = () => Promise<unknown> | unknown;\ntype SlotErrorHandler = (error: unknown, slot: StreamingSlot) => void;\ntype StreamReader = ReadableStreamDefaultReader<string | Uint8Array>;\ntype StreamReadPromise = ReturnType<StreamReader['read']>;\nexport type StreamingSlotMetricType =\n\t| 'prepared'\n\t| 'dropped'\n\t| 'resolved'\n\t| 'patched'\n\t| 'timeout'\n\t| 'size_exceeded'\n\t| 'error';\nexport type StreamingSlotMetric = {\n\ttype: StreamingSlotMetricType;\n\tslotId: string;\n\tdurationMs?: number;\n\tbytes?: number;\n\treason?: string;\n\terror?: unknown;\n};\nexport type StreamingSlotMetricHandler = (metric: StreamingSlotMetric) => void;\n\nexport type StreamingSlotPolicy = {\n\ttimeoutMs?: number;\n\tfallbackHtml?: unknown;\n\terrorHtml?: unknown;\n\tmaxSlotsPerResponse?: number;\n\tmaxSlotHtmlSizeBytes?: number;\n\tonError?: SlotErrorHandler;\n\tonSlotMetric?: StreamingSlotMetricHandler;\n};\n\ntype StreamingSlotPolicyValue = {\n\ttimeoutMs: number;\n\tfallbackHtml: string;\n\terrorHtml?: string;\n\tmaxSlotsPerResponse: number;\n\tmaxSlotHtmlSizeBytes: number;\n\tonError?: SlotErrorHandler;\n\tonSlotMetric?: StreamingSlotMetricHandler;\n};\n\nexport type StreamingSlot = {\n\terrorHtml?: unknown;\n\tfallbackHtml?: unknown;\n\tid: string;\n\ttimeoutMs?: number;\n\tresolve: SlotResolver;\n};\n\nexport type StreamingSlotPatchPayload =\n\t| string\n\t| {\n\t\t\t[key: string]: unknown;\n\t\t\thtml: string;\n\t };\n\ntype DeferredStreamingSlot = Omit<StreamingSlot, 'id'> & { id?: string };\n\nexport type AppendStreamingSlotsOptions = {\n\tinjectRuntime?: boolean;\n\tnonce?: string;\n\truntimePreludeScript?: string;\n\tpolicy?: StreamingSlotPolicy;\n\tonSlotMetric?: StreamingSlotMetricHandler;\n\tonError?: (error: unknown, slot: StreamingSlot) => void;\n\truntimePlacement?: 'body' | 'head';\n};\n\nexport type StreamOutOfOrderSlotsOptions = {\n\tfooterHtml?: string;\n\theaderHtml?: string;\n\tnonce?: string;\n\tpolicy?: StreamingSlotPolicy;\n\tonSlotMetric?: StreamingSlotMetricHandler;\n\tonError?: (error: unknown, slot: StreamingSlot) => void;\n\tslots: DeferredStreamingSlot[];\n};\n\nconst createSlotPatchStatement = (\n\tid: string,\n\tpayload: StreamingSlotPatchPayload\n) =>\n\t`(window.${STREAMING_RUNTIME_GLOBAL}||function(i,p){window.${STREAMING_PENDING_GLOBAL}=window.${STREAMING_PENDING_GLOBAL}||{};window.${STREAMING_PENDING_GLOBAL}[i]=p;})(${JSON.stringify(id)},${JSON.stringify(payload)});`;\n\nconst createNonceAttr = (nonce?: string) => (nonce ? ` nonce=\"${nonce}\"` : '');\n\nexport const createStreamingSlotId = () =>\n\t`${SLOT_ID_PREFIX}${Math.random().toString(BASE_36_RADIX).slice(2, RANDOM_ID_END_INDEX)}`;\nexport const getStreamingSlotsRuntimeScript = () =>\n\tgetStreamSwapRuntimeScript();\nexport const injectHtmlIntoBody = (html: string, injection: string) => {\n\tconst closingBodyIndex = html.indexOf(CLOSING_BODY_TAG);\n\tif (closingBodyIndex >= 0) {\n\t\treturn `${html.slice(0, closingBodyIndex)}${injection}${html.slice(closingBodyIndex)}`;\n\t}\n\n\treturn `${html}${injection}`;\n};\nexport const injectHtmlIntoHead = (html: string, injection: string) => {\n\tconst closingHeadIndex = html.indexOf(CLOSING_HEAD_TAG);\n\tif (closingHeadIndex >= 0) {\n\t\treturn `${html.slice(0, closingHeadIndex)}${injection}${html.slice(closingHeadIndex)}`;\n\t}\n\n\treturn `${html}${injection}`;\n};\nexport const renderStreamingSlotPatchTag = (\n\tid: string,\n\tpayload: StreamingSlotPatchPayload,\n\tnonce?: string\n) =>\n\t`<script${createNonceAttr(nonce)}>${escapeScriptContent(\n\t\tcreateSlotPatchStatement(id, payload)\n\t)}</script>`;\nexport const renderStreamingSlotPlaceholder = (id: string, fallbackHtml = '') =>\n\t`<div id=\"${id}\" data-absolute-slot=\"true\" data-absolute-slot-state=\"fallback\">${fallbackHtml}</div>`;\nexport const renderStreamingSlotsRuntimeTag = (\n\tnonce?: string,\n\truntimePreludeScript?: string\n) => {\n\tconst runtimeBody = [\n\t\truntimePreludeScript?.trim() ? runtimePreludeScript.trim() : '',\n\t\tgetStreamingSlotsRuntimeScript()\n\t]\n\t\t.filter(Boolean)\n\t\t.join(';');\n\n\treturn `<script${createNonceAttr(nonce)}>${escapeScriptContent(runtimeBody)}</script>`;\n};\n\nconst toUint8 = (value: string, encoder: TextEncoder) => encoder.encode(value);\n\ntype SafeHtmlLike = {\n\tchangingThisBreaksApplicationSecurity: string;\n};\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n\tBoolean(value) && typeof value === 'object';\n\nconst isSafeHtmlLike = (value: unknown): value is SafeHtmlLike =>\n\tisRecord(value) &&\n\ttypeof value.changingThisBreaksApplicationSecurity === 'string';\n\nconst normalizeSafeHtml = (value: unknown) => {\n\tif (isSafeHtmlLike(value)) {\n\t\treturn value.changingThisBreaksApplicationSecurity;\n\t}\n\n\treturn value;\n};\n\nlet currentStreamingSlotPolicy: StreamingSlotPolicyValue = {\n\terrorHtml: undefined,\n\tfallbackHtml: '',\n\tmaxSlotHtmlSizeBytes: STREAMING_SLOT_MAX_HTML_BYTES,\n\tmaxSlotsPerResponse: STREAMING_SLOT_MAX_PER_RESPONSE,\n\ttimeoutMs: STREAMING_SLOT_TIMEOUT_MS\n};\n\nconst clonePolicy = (\n\tpolicy: StreamingSlotPolicyValue\n): StreamingSlotPolicyValue => ({\n\t...policy\n});\n\nconst normalizeSlotBytes = (value: unknown, fallback: number) => {\n\tif (typeof value === 'number' && Number.isFinite(value) && value >= 0) {\n\t\treturn Math.floor(value);\n\t}\n\n\treturn fallback;\n};\n\nconst normalizeSlotText = (value: unknown, fallback: string) => {\n\tconst normalizedValue = normalizeSafeHtml(value);\n\n\treturn typeof normalizedValue === 'string' ? normalizedValue : fallback;\n};\nconst normalizeSlotError = (\n\tvalue: unknown,\n\tfallback: string | undefined = undefined\n) => {\n\tconst safeValue = normalizeSafeHtml(value);\n\tif (typeof safeValue === 'string') return safeValue;\n\n\treturn fallback;\n};\nconst hasPolicyValue = (\n\tpolicy: StreamingSlotPolicy,\n\tkey: keyof StreamingSlotPolicy\n) => Object.prototype.hasOwnProperty.call(policy, key);\n\nconst applyStreamingSlotPolicyOverrides = (\n\tbase: StreamingSlotPolicyValue,\n\toverridePolicy: StreamingSlotPolicy = {}\n) => ({\n\terrorHtml: hasPolicyValue(overridePolicy, 'errorHtml')\n\t\t? normalizeSlotError(overridePolicy.errorHtml)\n\t\t: base.errorHtml,\n\tfallbackHtml: hasPolicyValue(overridePolicy, 'fallbackHtml')\n\t\t? normalizeSlotText(overridePolicy.fallbackHtml, '')\n\t\t: base.fallbackHtml,\n\tmaxSlotHtmlSizeBytes: hasPolicyValue(overridePolicy, 'maxSlotHtmlSizeBytes')\n\t\t? normalizeSlotBytes(\n\t\t\t\toverridePolicy.maxSlotHtmlSizeBytes,\n\t\t\t\tbase.maxSlotHtmlSizeBytes\n\t\t\t)\n\t\t: base.maxSlotHtmlSizeBytes,\n\tmaxSlotsPerResponse: hasPolicyValue(overridePolicy, 'maxSlotsPerResponse')\n\t\t? normalizeSlotBytes(\n\t\t\t\toverridePolicy.maxSlotsPerResponse,\n\t\t\t\tbase.maxSlotsPerResponse\n\t\t\t)\n\t\t: base.maxSlotsPerResponse,\n\tonError: hasPolicyValue(overridePolicy, 'onError')\n\t\t? overridePolicy.onError\n\t\t: base.onError,\n\tonSlotMetric: hasPolicyValue(overridePolicy, 'onSlotMetric')\n\t\t? overridePolicy.onSlotMetric\n\t\t: base.onSlotMetric,\n\ttimeoutMs: hasPolicyValue(overridePolicy, 'timeoutMs')\n\t\t? normalizeSlotBytes(overridePolicy.timeoutMs, base.timeoutMs)\n\t\t: base.timeoutMs\n});\n\nconst createCombinedSlotErrorHandler = (\n\tpolicyOnError?: SlotErrorHandler,\n\tenhancerOnError?: SlotErrorHandler\n) => {\n\tif (!policyOnError && !enhancerOnError) return undefined;\n\n\treturn (error: unknown, slot: StreamingSlot) => {\n\t\tpolicyOnError?.(error, slot);\n\t\tenhancerOnError?.(error, slot);\n\t};\n};\n\nconst createCombinedSlotMetricHandler = (\n\tpolicyOnSlotMetric?: StreamingSlotMetricHandler,\n\tcallOnSlotMetric?: StreamingSlotMetricHandler\n) => {\n\tif (!policyOnSlotMetric && !callOnSlotMetric) return undefined;\n\n\treturn (metric: StreamingSlotMetric) => {\n\t\tpolicyOnSlotMetric?.(metric);\n\t\tcallOnSlotMetric?.(metric);\n\t};\n};\n\nconst resolveStreamingSlotPolicy = (\n\toverridePolicy: StreamingSlotPolicy = {}\n) => {\n\tconst base = getStreamingSlotPolicy();\n\n\treturn applyStreamingSlotPolicyOverrides(base, overridePolicy);\n};\n\nexport const getStreamingSlotPolicy = () =>\n\tclonePolicy(currentStreamingSlotPolicy);\n\nexport const setStreamingSlotPolicy = (policy: StreamingSlotPolicy = {}) => {\n\tconst base = getStreamingSlotPolicy();\n\n\tcurrentStreamingSlotPolicy = applyStreamingSlotPolicyOverrides(\n\t\tbase,\n\t\tpolicy\n\t);\n};\n\nexport const withStreamingSlotPolicy = async <T>(\n\tpolicy: StreamingSlotPolicy,\n\tcallback: () => Promise<T> | T\n) => {\n\tconst previous = getStreamingSlotPolicy();\n\n\tsetStreamingSlotPolicy(policy);\n\ttry {\n\t\treturn await callback();\n\t} finally {\n\t\tcurrentStreamingSlotPolicy = previous;\n\t}\n};\n\nconst emitSlotMetric = (\n\tmetric: StreamingSlotMetric,\n\tonSlotMetric?: StreamingSlotMetricHandler\n) => {\n\tonSlotMetric?.(metric);\n};\n\nconst createTimeoutError = (slot: StreamingSlot, timeoutMs: number) => {\n\tconst error = Object.assign(\n\t\tnew Error(`Streaming slot \"${slot.id}\" timed out after ${timeoutMs}ms`),\n\t\t{ __absTimeout: true }\n\t);\n\n\treturn error;\n};\n\nconst isSlotPatchPayloadObject = (\n\tvalue: unknown\n): value is Record<string, unknown> & { html: unknown } =>\n\tisRecord(value) && 'html' in value;\n\nconst isTimeoutError = (\n\terror: unknown\n): error is Error & { __absTimeout: true } =>\n\tisRecord(error) && error.__absTimeout === true;\n\nconst toStreamingSlot = (\n\tslot: DeferredStreamingSlot,\n\tpolicy: StreamingSlotPolicyValue\n): StreamingSlot => ({\n\terrorHtml: slot.errorHtml === undefined ? policy.errorHtml : slot.errorHtml,\n\tfallbackHtml: normalizeSlotText(slot.fallbackHtml, policy.fallbackHtml),\n\tid: slot.id ?? createStreamingSlotId(),\n\tresolve: slot.resolve,\n\ttimeoutMs: normalizeSlotBytes(slot.timeoutMs, policy.timeoutMs)\n});\n\nconst prepareSlots = ({\n\tpolicy,\n\tslots,\n\tonError,\n\tonSlotMetric\n}: {\n\tpolicy: StreamingSlotPolicyValue;\n\tslots: DeferredStreamingSlot[];\n\tonError?: SlotErrorHandler;\n\tonSlotMetric?: StreamingSlotMetricHandler;\n}) => {\n\tconst preparedSlots = slots.map((slot) => toStreamingSlot(slot, policy));\n\tconst emitPreparedSlotMetric = (slot: StreamingSlot) => {\n\t\temitSlotMetric(\n\t\t\t{\n\t\t\t\tslotId: slot.id,\n\t\t\t\ttype: 'prepared'\n\t\t\t},\n\t\t\tonSlotMetric\n\t\t);\n\t};\n\tconst dropPreparedSlot = (slot: StreamingSlot, reason: string) => {\n\t\tonError?.(new Error(reason), slot);\n\t\temitSlotMetric(\n\t\t\t{\n\t\t\t\treason,\n\t\t\t\tslotId: slot.id,\n\t\t\t\ttype: 'dropped'\n\t\t\t},\n\t\t\tonSlotMetric\n\t\t);\n\t};\n\n\tconst { maxSlotsPerResponse } = policy;\n\tif (maxSlotsPerResponse === 0) {\n\t\tpreparedSlots.forEach((slot) =>\n\t\t\tdropPreparedSlot(slot, 'maxSlotsPerResponse is 0')\n\t\t);\n\n\t\treturn [];\n\t}\n\n\tif (preparedSlots.length <= maxSlotsPerResponse) {\n\t\tpreparedSlots.forEach(emitPreparedSlotMetric);\n\n\t\treturn preparedSlots;\n\t}\n\n\tconst keptSlots = preparedSlots.slice(0, maxSlotsPerResponse);\n\tconst droppedSlots = preparedSlots.slice(maxSlotsPerResponse);\n\tdroppedSlots.forEach((slot) => {\n\t\tdropPreparedSlot(\n\t\t\tslot,\n\t\t\t`Streaming slot \"${slot.id}\" dropped because ${maxSlotsPerResponse} slots is the configured maximum`\n\t\t);\n\t});\n\tkeptSlots.forEach(emitPreparedSlotMetric);\n\n\treturn keptSlots;\n};\n\nconst htmlByteLength = (value: string, encoder: TextEncoder) =>\n\tencoder.encode(value).length;\n\ntype ResolvedStreamingSlot = {\n\tpayload: StreamingSlotPatchPayload | null;\n\tid: string;\n\tdurationMs: number;\n\tbytes: number;\n};\n\nconst normalizeSlotPatchPayload = (value: unknown) => {\n\tconst safeValue = normalizeSafeHtml(value);\n\tif (\n\t\tisSlotPatchPayloadObject(safeValue) &&\n\t\ttypeof safeValue.html === 'string'\n\t) {\n\t\treturn {\n\t\t\t...safeValue,\n\t\t\thtml: normalizeSlotText(safeValue.html, '')\n\t\t};\n\t}\n\n\treturn typeof safeValue === 'string' ? safeValue : `${safeValue}`;\n};\n\nconst getPayloadHtml = (payload: StreamingSlotPatchPayload) =>\n\ttypeof payload === 'string' ? payload : payload.html;\n\nconst enqueueEncodedText = (\n\tcontroller: ReadableStreamDefaultController<Uint8Array>,\n\tencoder: TextEncoder,\n\tvalue: string\n) => {\n\tif (value.length === 0) {\n\t\treturn;\n\t}\n\n\tcontroller.enqueue(encoder.encode(value));\n};\n\nconst readStreamingRuntimeChunk = async (\n\treader: ReadableStreamDefaultReader<string | Uint8Array>\n) => {\n\tconst { done, value } = await reader.read();\n\tif (done || !value) {\n\t\treturn { done, value: undefined };\n\t}\n\n\treturn { done, value };\n};\n\nconst applyBaseWinnerState = (\n\tstate: {\n\t\tbaseDone: boolean;\n\t\tbaseRead: StreamReadPromise;\n\t\tfooter: string;\n\t\thandled: boolean;\n\t\ttail: string;\n\t},\n\twinner:\n\t\t| {\n\t\t\t\tdone: boolean;\n\t\t\t\tkind: 'base';\n\t\t\t\tvalue?: string | Uint8Array;\n\t\t }\n\t\t| {\n\t\t\t\tkind: 'slot';\n\t\t\t\toriginal: Promise<{\n\t\t\t\t\tpayload: StreamingSlotPatchPayload | null;\n\t\t\t\t\tid: string;\n\t\t\t\t\tdurationMs: number;\n\t\t\t\t\tbytes: number;\n\t\t\t\t}>;\n\t\t\t\tresult: {\n\t\t\t\t\tpayload: StreamingSlotPatchPayload | null;\n\t\t\t\t\tid: string;\n\t\t\t\t\tdurationMs: number;\n\t\t\t\t\tbytes: number;\n\t\t\t\t};\n\t\t },\n\thandleResolved: (winner: {\n\t\tkind: 'slot';\n\t\toriginal: Promise<{\n\t\t\tpayload: StreamingSlotPatchPayload | null;\n\t\t\tid: string;\n\t\t\tdurationMs: number;\n\t\t\tbytes: number;\n\t\t}>;\n\t\tresult: {\n\t\t\tpayload: StreamingSlotPatchPayload | null;\n\t\t\tid: string;\n\t\t\tdurationMs: number;\n\t\t\tbytes: number;\n\t\t};\n\t}) => void\n) => {\n\tif (!state.handled && winner.kind === 'slot') {\n\t\thandleResolved(winner);\n\t}\n\n\treturn state;\n};\n\nconst resolveOversizedSlotPayload = (input: {\n\tencoder: TextEncoder;\n\thtml: string;\n\tmaxSlotHtmlSizeBytes: number;\n\tonError?: SlotErrorHandler;\n\tonSlotMetric?: StreamingSlotMetricHandler;\n\tslot: StreamingSlot;\n\tstart: number;\n}) => {\n\tconst {\n\t\tencoder,\n\t\thtml,\n\t\tmaxSlotHtmlSizeBytes,\n\t\tonError,\n\t\tonSlotMetric,\n\t\tslot,\n\t\tstart\n\t} = input;\n\tconst bytes = htmlByteLength(html, encoder);\n\tif (bytes <= maxSlotHtmlSizeBytes) {\n\t\treturn null;\n\t}\n\n\tconst error = new Error(\n\t\t`Streaming slot \"${slot.id}\" exceeded max payload size of ${maxSlotHtmlSizeBytes} bytes`\n\t);\n\tconst durationMs = Date.now() - start;\n\tonError?.(error, slot);\n\temitSlotMetric(\n\t\t{\n\t\t\tbytes,\n\t\t\tdurationMs,\n\t\t\terror,\n\t\t\tslotId: slot.id,\n\t\t\ttype: 'size_exceeded'\n\t\t},\n\t\tonSlotMetric\n\t);\n\n\tconst fallbackHtml = normalizeSlotError(slot.errorHtml, undefined);\n\n\treturn {\n\t\tbytes:\n\t\t\tfallbackHtml === undefined\n\t\t\t\t? 0\n\t\t\t\t: htmlByteLength(fallbackHtml, encoder),\n\t\tdurationMs,\n\t\tid: slot.id,\n\t\tpayload: fallbackHtml === undefined ? null : fallbackHtml\n\t};\n};\n\nconst raceWithTimeout = (promise: Promise<unknown>, slot: StreamingSlot) => {\n\tconst { timeoutMs } = slot;\n\tif (typeof timeoutMs !== 'number' || timeoutMs <= 0) {\n\t\treturn promise;\n\t}\n\n\tconst { promise: timeoutPromise, reject } =\n\t\tPromise.withResolvers<StreamingSlotPatchPayload>();\n\n\tsetTimeout(() => {\n\t\treject(createTimeoutError(slot, timeoutMs));\n\t}, timeoutMs);\n\n\treturn Promise.race([promise, timeoutPromise]);\n};\n\nconst resolveSlot = async (\n\tslot: StreamingSlot,\n\tonError?: SlotErrorHandler,\n\tpolicy?: StreamingSlotPolicyValue,\n\tonSlotMetric?: StreamingSlotMetricHandler\n) => {\n\tconst safePolicy = policy ?? getStreamingSlotPolicy();\n\tconst encoder = new TextEncoder();\n\tconst start = Date.now();\n\ttry {\n\t\tconst maybeAsyncValue = Promise.resolve(slot.resolve());\n\t\tconst resolved = await raceWithTimeout(maybeAsyncValue, slot);\n\t\tconst payload = normalizeSlotPatchPayload(resolved);\n\t\tconst html = getPayloadHtml(payload);\n\t\tconst oversizedResult =\n\t\t\tsafePolicy.maxSlotHtmlSizeBytes > 0\n\t\t\t\t? resolveOversizedSlotPayload({\n\t\t\t\t\t\tencoder,\n\t\t\t\t\t\thtml,\n\t\t\t\t\t\tmaxSlotHtmlSizeBytes: safePolicy.maxSlotHtmlSizeBytes,\n\t\t\t\t\t\tonError,\n\t\t\t\t\t\tonSlotMetric,\n\t\t\t\t\t\tslot,\n\t\t\t\t\t\tstart\n\t\t\t\t\t})\n\t\t\t\t: null;\n\t\tif (oversizedResult) {\n\t\t\treturn oversizedResult;\n\t\t}\n\t\tconst durationMs = Date.now() - start;\n\t\tconst bytes = htmlByteLength(html, encoder);\n\t\temitSlotMetric(\n\t\t\t{\n\t\t\t\tbytes,\n\t\t\t\tdurationMs,\n\t\t\t\tslotId: slot.id,\n\t\t\t\ttype: 'resolved'\n\t\t\t},\n\t\t\tonSlotMetric\n\t\t);\n\n\t\treturn {\n\t\t\tbytes,\n\t\t\tdurationMs,\n\t\t\tid: slot.id,\n\t\t\tpayload\n\t\t};\n\t} catch (error) {\n\t\tconst durationMs = Date.now() - start;\n\t\tonError?.(error, slot);\n\t\temitSlotMetric(\n\t\t\t{\n\t\t\t\tdurationMs,\n\t\t\t\terror,\n\t\t\t\tslotId: slot.id,\n\t\t\t\ttype: isTimeoutError(error) ? 'timeout' : 'error'\n\t\t\t},\n\t\t\tonSlotMetric\n\t\t);\n\t\tconst html = normalizeSlotError(slot.errorHtml, undefined);\n\t\tif (html) {\n\t\t\treturn {\n\t\t\t\tbytes: htmlByteLength(html, encoder),\n\t\t\t\tdurationMs,\n\t\t\t\tid: slot.id,\n\t\t\t\tpayload: html\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tbytes: 0,\n\t\t\tdurationMs,\n\t\t\tid: slot.id,\n\t\t\tpayload: null\n\t\t};\n\t}\n};\n\nconst nextResolvedSlot = async (\n\tpending: Array<Promise<ResolvedStreamingSlot>>\n) => {\n\tconst wrapped = pending.map((promise) =>\n\t\tpromise.then((result) => ({\n\t\t\toriginal: promise,\n\t\t\tresult\n\t\t}))\n\t);\n\n\treturn Promise.race(wrapped);\n};\n\nconst streamChunkToString = (\n\tvalue: string | Uint8Array,\n\tdecoder: TextDecoder\n) =>\n\ttypeof value === 'string' ? value : decoder.decode(value, { stream: true });\n\nexport const appendStreamingSlotPatchesToStream = (\n\tstream: ReadableStream<string | Uint8Array>,\n\tslots: DeferredStreamingSlot[] = [],\n\t{\n\t\tinjectRuntime = true,\n\t\tnonce,\n\t\tonError,\n\t\tonSlotMetric,\n\t\tpolicy,\n\t\truntimePreludeScript,\n\t\truntimePlacement = 'head'\n\t}: AppendStreamingSlotsOptions = {}\n) => {\n\tconst resolvedPolicy = resolveStreamingSlotPolicy(policy);\n\tconst combinedOnError = createCombinedSlotErrorHandler(\n\t\tresolvedPolicy.onError,\n\t\tonError\n\t);\n\tconst combinedOnSlotMetric = createCombinedSlotMetricHandler(\n\t\tresolvedPolicy.onSlotMetric,\n\t\tonSlotMetric\n\t);\n\tconst effectivePolicy: StreamingSlotPolicyValue = {\n\t\t...resolvedPolicy,\n\t\tonSlotMetric: combinedOnSlotMetric\n\t};\n\tconst preparedSlots = prepareSlots({\n\t\tonError: combinedOnError,\n\t\tonSlotMetric: combinedOnSlotMetric,\n\t\tpolicy: effectivePolicy,\n\t\tslots\n\t});\n\tif (preparedSlots.length === 0) return stream;\n\n\tconst source = injectRuntime\n\t\t? injectStreamingRuntimeIntoStream(\n\t\t\t\tstream,\n\t\t\t\tnonce,\n\t\t\t\truntimePlacement,\n\t\t\t\truntimePreludeScript\n\t\t\t)\n\t\t: stream;\n\tconst encoder = new TextEncoder();\n\tconst decoder = new TextDecoder();\n\tconst reader = source.getReader();\n\tconst pending: Array<Promise<ResolvedStreamingSlot>> = preparedSlots.map(\n\t\t(slot) =>\n\t\t\tresolveSlot(\n\t\t\t\tslot,\n\t\t\t\tcombinedOnError,\n\t\t\t\teffectivePolicy,\n\t\t\t\tcombinedOnSlotMetric\n\t\t\t)\n\t);\n\tconst createRaceCandidates = (\n\t\tbaseDone: boolean,\n\t\tbaseRead: StreamReadPromise\n\t) => {\n\t\tconst racers: Array<\n\t\t\tPromise<\n\t\t\t\t| {\n\t\t\t\t\t\tdone: boolean;\n\t\t\t\t\t\tkind: 'base';\n\t\t\t\t\t\tvalue?: string | Uint8Array;\n\t\t\t\t }\n\t\t\t\t| {\n\t\t\t\t\t\tkind: 'slot';\n\t\t\t\t\t\toriginal: Promise<{\n\t\t\t\t\t\t\tpayload: StreamingSlotPatchPayload | null;\n\t\t\t\t\t\t\tid: string;\n\t\t\t\t\t\t\tdurationMs: number;\n\t\t\t\t\t\t\tbytes: number;\n\t\t\t\t\t\t}>;\n\t\t\t\t\t\tresult: {\n\t\t\t\t\t\t\tpayload: StreamingSlotPatchPayload | null;\n\t\t\t\t\t\t\tid: string;\n\t\t\t\t\t\t\tdurationMs: number;\n\t\t\t\t\t\t\tbytes: number;\n\t\t\t\t\t\t};\n\t\t\t\t }\n\t\t\t>\n\t\t> = [];\n\n\t\tif (!baseDone) {\n\t\t\tracers.push(\n\t\t\t\tbaseRead.then(({ done, value }) => ({\n\t\t\t\t\tdone,\n\t\t\t\t\tkind: 'base' as const,\n\t\t\t\t\tvalue\n\t\t\t\t}))\n\t\t\t);\n\t\t}\n\t\tif (pending.length > 0) {\n\t\t\tracers.push(\n\t\t\t\tnextResolvedSlot(pending).then((resolved) => ({\n\t\t\t\t\tkind: 'slot' as const,\n\t\t\t\t\t...resolved\n\t\t\t\t}))\n\t\t\t);\n\t\t}\n\n\t\treturn racers;\n\t};\n\tconst flushTailLookbehind = (\n\t\tcontroller: ReadableStreamDefaultController<Uint8Array>,\n\t\ttail: string\n\t) => {\n\t\tif (tail.length <= STREAM_TAIL_LOOKBEHIND) {\n\t\t\treturn tail;\n\t\t}\n\n\t\tconst content = tail.slice(0, tail.length - STREAM_TAIL_LOOKBEHIND);\n\t\tcontroller.enqueue(encoder.encode(content));\n\n\t\treturn tail.slice(-STREAM_TAIL_LOOKBEHIND);\n\t};\n\tconst finalizeCompletedBaseWinner = (\n\t\tcontroller: ReadableStreamDefaultController<Uint8Array>,\n\t\tdecodedTail: string,\n\t\tbaseRead: StreamReadPromise\n\t) => {\n\t\tconst footerStart = decodedTail.search(CLOSING_PAGE_TAG_REGEX);\n\t\tif (footerStart < 0) {\n\t\t\tenqueueEncodedText(controller, encoder, decodedTail);\n\n\t\t\treturn {\n\t\t\t\tbaseDone: true,\n\t\t\t\tbaseRead,\n\t\t\t\tfooter: '',\n\t\t\t\thandled: true,\n\t\t\t\ttail: ''\n\t\t\t};\n\t\t}\n\n\t\tconst content = decodedTail.slice(0, footerStart);\n\t\tconst nextFooter = decodedTail.slice(footerStart);\n\t\tenqueueEncodedText(controller, encoder, content);\n\n\t\treturn {\n\t\t\tbaseDone: true,\n\t\t\tbaseRead,\n\t\t\tfooter: nextFooter,\n\t\t\thandled: true,\n\t\t\ttail: ''\n\t\t};\n\t};\n\tconst handleBaseWinner = (\n\t\tcontroller: ReadableStreamDefaultController<Uint8Array>,\n\t\twinner:\n\t\t\t| {\n\t\t\t\t\tdone: boolean;\n\t\t\t\t\tkind: 'base';\n\t\t\t\t\tvalue?: string | Uint8Array;\n\t\t\t }\n\t\t\t| {\n\t\t\t\t\tkind: 'slot';\n\t\t\t\t\toriginal: Promise<{\n\t\t\t\t\t\tpayload: StreamingSlotPatchPayload | null;\n\t\t\t\t\t\tid: string;\n\t\t\t\t\t\tdurationMs: number;\n\t\t\t\t\t\tbytes: number;\n\t\t\t\t\t}>;\n\t\t\t\t\tresult: {\n\t\t\t\t\t\tpayload: StreamingSlotPatchPayload | null;\n\t\t\t\t\t\tid: string;\n\t\t\t\t\t\tdurationMs: number;\n\t\t\t\t\t\tbytes: number;\n\t\t\t\t\t};\n\t\t\t },\n\t\tbaseRead: StreamReadPromise,\n\t\ttail: string,\n\t\tfooter: string\n\t) => {\n\t\tif (winner.kind !== 'base') {\n\t\t\treturn { baseDone: false, baseRead, footer, handled: false, tail };\n\t\t}\n\n\t\tif (winner.done) {\n\t\t\treturn finalizeCompletedBaseWinner(\n\t\t\t\tcontroller,\n\t\t\t\ttail + decoder.decode(),\n\t\t\t\tbaseRead\n\t\t\t);\n\t\t}\n\n\t\tif (!winner.value) {\n\t\t\treturn { baseDone: false, baseRead, footer, handled: true, tail };\n\t\t}\n\n\t\tconst nextTail = flushTailLookbehind(\n\t\t\tcontroller,\n\t\t\ttail + streamChunkToString(winner.value, decoder)\n\t\t);\n\n\t\treturn {\n\t\t\tbaseDone: false,\n\t\t\tbaseRead: reader.read(),\n\t\t\tfooter,\n\t\t\thandled: true,\n\t\t\ttail: nextTail\n\t\t};\n\t};\n\tconst handleResolvedSlot = (\n\t\tcontroller: ReadableStreamDefaultController<Uint8Array>,\n\t\twinner: {\n\t\t\tkind: 'slot';\n\t\t\toriginal: Promise<{\n\t\t\t\tpayload: StreamingSlotPatchPayload | null;\n\t\t\t\tid: string;\n\t\t\t\tdurationMs: number;\n\t\t\t\tbytes: number;\n\t\t\t}>;\n\t\t\tresult: {\n\t\t\t\tpayload: StreamingSlotPatchPayload | null;\n\t\t\t\tid: string;\n\t\t\t\tdurationMs: number;\n\t\t\t\tbytes: number;\n\t\t\t};\n\t\t}\n\t) => {\n\t\tconst index = pending.indexOf(winner.original);\n\t\tif (index >= 0) pending.splice(index, 1);\n\t\tif (winner.result.payload === null) {\n\t\t\treturn;\n\t\t}\n\n\t\temitSlotMetric(\n\t\t\t{\n\t\t\t\tbytes: winner.result.bytes,\n\t\t\t\tdurationMs: winner.result.durationMs,\n\t\t\t\tslotId: winner.result.id,\n\t\t\t\ttype: 'patched'\n\t\t\t},\n\t\t\tcombinedOnSlotMetric\n\t\t);\n\n\t\tcontroller.enqueue(\n\t\t\tencoder.encode(\n\t\t\t\trenderStreamingSlotPatchTag(\n\t\t\t\t\twinner.result.id,\n\t\t\t\t\twinner.result.payload,\n\t\t\t\t\tnonce\n\t\t\t\t)\n\t\t\t)\n\t\t);\n\t};\n\n\tconst runPatchedStreamLoop = async (\n\t\tcontroller: ReadableStreamDefaultController<Uint8Array>\n\t) => {\n\t\tlet baseDone = false;\n\t\tlet baseRead = reader.read();\n\t\tlet tail = '';\n\t\tlet footer = '';\n\t\tconst readNextRaceWinner = async () => {\n\t\t\tconst racers = createRaceCandidates(baseDone, baseRead);\n\t\t\tif (racers.length === 0) {\n\t\t\t\treturn footer;\n\t\t\t}\n\n\t\t\tconst winner = await Promise.race(racers);\n\t\t\tconst baseWinnerState = applyBaseWinnerState(\n\t\t\t\thandleBaseWinner(controller, winner, baseRead, tail, footer),\n\t\t\t\twinner,\n\t\t\t\t(slotWinner) => {\n\t\t\t\t\thandleResolvedSlot(controller, slotWinner);\n\t\t\t\t}\n\t\t\t);\n\t\t\t({ baseDone, baseRead, footer, tail } = baseWinnerState);\n\t\t\tif (baseDone && pending.length === 0) {\n\t\t\t\treturn footer;\n\t\t\t}\n\n\t\t\treturn readNextRaceWinner();\n\t\t};\n\n\t\treturn readNextRaceWinner();\n\t};\n\n\treturn new ReadableStream<Uint8Array>({\n\t\tasync start(controller) {\n\t\t\ttry {\n\t\t\t\tconst footer = await runPatchedStreamLoop(controller);\n\t\t\t\tenqueueEncodedText(controller, encoder, footer);\n\t\t\t\tcontroller.close();\n\t\t\t} catch (error) {\n\t\t\t\tcontroller.error(error);\n\t\t\t}\n\t\t}\n\t});\n};\nexport const injectStreamingRuntimeIntoStream = (\n\tstream: ReadableStream<string | Uint8Array>,\n\tnonce?: string,\n\truntimePlacement: 'body' | 'head' = 'head',\n\truntimePreludeScript?: string\n) => {\n\tconst runtimeTag = renderStreamingSlotsRuntimeTag(\n\t\tnonce,\n\t\truntimePreludeScript\n\t);\n\tconst encoder = new TextEncoder();\n\tconst decoder = new TextDecoder();\n\tconst closingTag =\n\t\truntimePlacement === 'body' ? CLOSING_BODY_TAG : CLOSING_HEAD_TAG;\n\tconst lookbehind =\n\t\t(runtimePlacement === 'body'\n\t\t\t? CLOSING_BODY_TAG_LENGTH\n\t\t\t: CLOSING_HEAD_TAG_LENGTH) - 1;\n\tconst flushRuntimeLookbehind = (\n\t\tcontroller: ReadableStreamDefaultController<Uint8Array>,\n\t\tpending: string\n\t) => {\n\t\tif (pending.length <= lookbehind) {\n\t\t\treturn pending;\n\t\t}\n\n\t\tconst safeText = pending.slice(0, pending.length - lookbehind);\n\t\tcontroller.enqueue(encoder.encode(safeText));\n\n\t\treturn pending.slice(-lookbehind);\n\t};\n\tconst injectRuntimeIntoPending = (pending: string) =>\n\t\truntimePlacement === 'body'\n\t\t\t? injectHtmlIntoBody(pending, runtimeTag)\n\t\t\t: injectHtmlIntoHead(pending, runtimeTag);\n\tconst processRuntimePending = (\n\t\tcontroller: ReadableStreamDefaultController<Uint8Array>,\n\t\tpending: string,\n\t\tinjected: boolean\n\t) => {\n\t\tif (injected) {\n\t\t\tcontroller.enqueue(encoder.encode(pending));\n\n\t\t\treturn { injected, pending: '' };\n\t\t}\n\n\t\tconst closingTagIndex = pending.indexOf(closingTag);\n\t\tif (closingTagIndex >= 0) {\n\t\t\tconst withRuntime = `${pending.slice(0, closingTagIndex)}${runtimeTag}${pending.slice(closingTagIndex)}`;\n\t\t\tcontroller.enqueue(encoder.encode(withRuntime));\n\n\t\t\treturn { injected: true, pending: '' };\n\t\t}\n\n\t\treturn {\n\t\t\tinjected,\n\t\t\tpending: flushRuntimeLookbehind(controller, pending)\n\t\t};\n\t};\n\n\treturn new ReadableStream<Uint8Array>({\n\t\tasync start(controller) {\n\t\t\tconst reader = stream.getReader();\n\t\t\tlet injected = false;\n\t\t\tlet pending = '';\n\t\t\tconst enqueuePending = () =>\n\t\t\t\tenqueueEncodedText(controller, encoder, pending);\n\t\t\tconst consumeRuntimeChunk = async () => {\n\t\t\t\tconst { done, value } = await readStreamingRuntimeChunk(reader);\n\t\t\t\tif (done || !value) {\n\t\t\t\t\treturn done;\n\t\t\t\t}\n\n\t\t\t\tpending += streamChunkToString(value, decoder);\n\t\t\t\t({ injected, pending } = processRuntimePending(\n\t\t\t\t\tcontroller,\n\t\t\t\t\tpending,\n\t\t\t\t\tinjected\n\t\t\t\t));\n\n\t\t\t\treturn false;\n\t\t\t};\n\n\t\t\tconst runRuntimeInjectionLoop = async () => {\n\t\t\t\tconst done = await consumeRuntimeChunk();\n\t\t\t\tif (done) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tawait runRuntimeInjectionLoop();\n\t\t\t};\n\n\t\t\ttry {\n\t\t\t\tawait runRuntimeInjectionLoop();\n\n\t\t\t\tpending += decoder.decode();\n\t\t\t\tpending = injected\n\t\t\t\t\t? pending\n\t\t\t\t\t: injectRuntimeIntoPending(pending);\n\t\t\t\tenqueuePending();\n\t\t\t\tcontroller.close();\n\t\t\t} catch (error) {\n\t\t\t\tcontroller.error(error);\n\t\t\t}\n\t\t}\n\t});\n};\nexport const streamOutOfOrderSlots = ({\n\tfooterHtml = '',\n\theaderHtml = '',\n\tnonce,\n\tpolicy,\n\tonSlotMetric,\n\tonError,\n\tslots\n}: StreamOutOfOrderSlotsOptions) => {\n\tconst resolvedPolicy = resolveStreamingSlotPolicy(policy);\n\tconst combinedOnError = createCombinedSlotErrorHandler(\n\t\tresolvedPolicy.onError,\n\t\tonError\n\t);\n\tconst combinedOnSlotMetric = createCombinedSlotMetricHandler(\n\t\tresolvedPolicy.onSlotMetric,\n\t\tonSlotMetric\n\t);\n\tconst effectivePolicy: StreamingSlotPolicyValue = {\n\t\t...resolvedPolicy,\n\t\tonSlotMetric: combinedOnSlotMetric\n\t};\n\tconst preparedSlots = prepareSlots({\n\t\tonError: combinedOnError,\n\t\tonSlotMetric: combinedOnSlotMetric,\n\t\tpolicy: effectivePolicy,\n\t\tslots\n\t});\n\tconst encoder = new TextEncoder();\n\tconst createPendingSlots = (\n\t\tcontroller: ReadableStreamDefaultController<Uint8Array>\n\t) =>\n\t\tpreparedSlots.map((slot) => {\n\t\t\tconst fallback = renderStreamingSlotPlaceholder(\n\t\t\t\tslot.id,\n\t\t\t\tnormalizeSlotText(slot.fallbackHtml, '')\n\t\t\t);\n\t\t\tcontroller.enqueue(toUint8(fallback, encoder));\n\n\t\t\treturn resolveSlot(\n\t\t\t\tslot,\n\t\t\t\tcombinedOnError,\n\t\t\t\teffectivePolicy,\n\t\t\t\tcombinedOnSlotMetric\n\t\t\t);\n\t\t});\n\tconst handleResolvedPreparedSlot = async (\n\t\tcontroller: ReadableStreamDefaultController<Uint8Array>,\n\t\tpending: Array<\n\t\t\tPromise<{\n\t\t\t\tpayload: StreamingSlotPatchPayload | null;\n\t\t\t\tid: string;\n\t\t\t\tdurationMs: number;\n\t\t\t\tbytes: number;\n\t\t\t}>\n\t\t>\n\t) => {\n\t\tconst { original, result } = await nextResolvedSlot(pending);\n\t\tconst index = pending.indexOf(original);\n\t\tif (index >= 0) pending.splice(index, 1);\n\t\tif (result.payload === null) {\n\t\t\treturn;\n\t\t}\n\n\t\temitSlotMetric(\n\t\t\t{\n\t\t\t\tbytes: result.bytes,\n\t\t\t\tdurationMs: result.durationMs,\n\t\t\t\tslotId: result.id,\n\t\t\t\ttype: 'patched'\n\t\t\t},\n\t\t\tcombinedOnSlotMetric\n\t\t);\n\t\tcontroller.enqueue(\n\t\t\ttoUint8(\n\t\t\t\trenderStreamingSlotPatchTag(result.id, result.payload, nonce),\n\t\t\t\tencoder\n\t\t\t)\n\t\t);\n\t};\n\n\tconst streamPreparedSlots = async (\n\t\tcontroller: ReadableStreamDefaultController<Uint8Array>\n\t) => {\n\t\tconst pending = createPendingSlots(controller);\n\t\tconst streamNextPreparedSlot = async () => {\n\t\t\tif (pending.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tawait handleResolvedPreparedSlot(controller, pending);\n\n\t\t\tawait streamNextPreparedSlot();\n\t\t};\n\n\t\tawait streamNextPreparedSlot();\n\t};\n\tconst resolveHeaderHtml = () => {\n\t\tconst needsRuntimeTag =\n\t\t\tpreparedSlots.length > 0 &&\n\t\t\t!headerHtml.includes(STREAMING_RUNTIME_GLOBAL);\n\t\tif (!needsRuntimeTag) {\n\t\t\treturn headerHtml;\n\t\t}\n\n\t\treturn injectHtmlIntoHead(\n\t\t\theaderHtml,\n\t\t\trenderStreamingSlotsRuntimeTag(nonce)\n\t\t);\n\t};\n\n\treturn new ReadableStream<Uint8Array>({\n\t\tasync start(controller) {\n\t\t\ttry {\n\t\t\t\tconst header = resolveHeaderHtml();\n\t\t\t\tcontroller.enqueue(toUint8(header, encoder));\n\t\t\t\tawait streamPreparedSlots(controller);\n\n\t\t\t\tenqueueEncodedText(controller, encoder, footerHtml);\n\t\t\t\tcontroller.close();\n\t\t\t} catch (error) {\n\t\t\t\tcontroller.error(error);\n\t\t\t}\n\t\t}\n\t});\n};\n",
|
|
21
|
+
"import { existsSync, readFileSync } from 'node:fs';\nimport { join, resolve } from 'node:path';\n\n/**\n * Resolve Angular package paths from the compiled runtime node_modules first,\n * then the app's process.cwd()/node_modules, falling back to the bare specifier.\n * This prevents Bun's baked import.meta.dir from resolving Angular packages\n * from the absolutejs source tree instead of the consumer's project when\n * running from a published npm package.\n */\nexport const resolveAngularPackageDir = (specifier: string) => {\n\tconst fromCompiledRuntime = process.env.ABSOLUTE_BUILD_DIR\n\t\t? resolve(process.env.ABSOLUTE_BUILD_DIR, 'node_modules', specifier)\n\t\t: null;\n\tif (fromCompiledRuntime && existsSync(fromCompiledRuntime)) {\n\t\treturn fromCompiledRuntime;\n\t}\n\n\tconst fromProject = resolve(process.cwd(), 'node_modules', specifier);\n\n\tif (existsSync(fromProject)) {\n\t\treturn fromProject;\n\t}\n\n\treturn null;\n};\n\nconst resolvePackageEntry = (packageDir: string) => {\n\ttry {\n\t\tconst pkg = JSON.parse(\n\t\t\treadFileSync(join(packageDir, 'package.json'), 'utf-8')\n\t\t);\n\t\tconst rootExport = pkg.exports?.['.'];\n\t\tconst entry =\n\t\t\t(typeof rootExport === 'string'\n\t\t\t\t? rootExport\n\t\t\t\t: rootExport?.default) ??\n\t\t\tpkg.module ??\n\t\t\tpkg.main ??\n\t\t\t'index.js';\n\n\t\treturn join(packageDir, entry);\n\t} catch {\n\t\treturn packageDir;\n\t}\n};\n\nexport const resolveAngularPackage = (specifier: string) => {\n\tconst packageDir = resolveAngularPackageDir(specifier);\n\tif (packageDir) return resolvePackageEntry(packageDir);\n\n\treturn specifier;\n};\n\nconst toSafeVendorName = (specifier: string) =>\n\tspecifier.replace(/^@/, '').replace(/\\//g, '_');\n\n/** Prefer the linked Bun-target vendor file built by\n * `buildAngularServerVendor`. The file is at\n * `<ABSOLUTE_BUILD_DIR>/angular/vendor/server/<safe>.js`, which is what every\n * server bundle's `@angular/*` imports get rewritten to point at. Sharing\n * this path keeps SSR's class identity unified — the dual-package hazard\n * that produces NG0201 only appears when the runtime imports a *different*\n * copy from the bundles. Falls back to `resolveAngularPackage` (node_modules)\n * when no vendor file is available — e.g. running tests outside an\n * absolutejs build, or before the vendor pass completes. */\nexport const resolveAngularRuntimePath = (specifier: string) => {\n\tconst buildDir = process.env.ABSOLUTE_BUILD_DIR;\n\tif (buildDir) {\n\t\tconst vendorPath = join(\n\t\t\tbuildDir,\n\t\t\t'angular',\n\t\t\t'vendor',\n\t\t\t'server',\n\t\t\t`${toSafeVendorName(specifier)}.js`\n\t\t);\n\t\tif (existsSync(vendorPath)) return vendorPath;\n\t}\n\n\treturn resolveAngularPackage(specifier);\n};\n",
|
|
22
|
+
"import { resolveAngularRuntimePath } from './resolveAngularPackage';\n\n// Patches Angular SSR's DominoAdapter to guard against null doc.head\n\nconst ensureHead = (doc: Document) => {\n\tif (!doc || doc.head || !doc.documentElement) {\n\t\treturn;\n\t}\n\n\tconst head = doc.createElement('head');\n\tdoc.documentElement.insertBefore(head, doc.documentElement.firstChild);\n};\n\n// Domino's Element does not implement layout APIs that browser components\n// (e.g. ngx-datatable, swiper, drag-drop) call eagerly during change detection.\n// Returning a zeroed DOMRect lets those components render in SSR without\n// crashing — the real values get computed once the page hydrates client-side.\nconst SSR_LAYOUT_RECT = Object.freeze({\n\tbottom: 0,\n\theight: 0,\n\tleft: 0,\n\tright: 0,\n\ttop: 0,\n\twidth: 0,\n\tx: 0,\n\ty: 0,\n\ttoJSON() {\n\t\treturn this;\n\t}\n});\nlet layoutPatchApplied = false;\nconst collectPrototypeChain = (instance: object | null) => {\n\tconst protos: object[] = [];\n\tlet current: object | null = instance\n\t\t? Object.getPrototypeOf(instance)\n\t\t: null;\n\twhile (current && current !== Object.prototype) {\n\t\tprotos.push(current);\n\t\tcurrent = Object.getPrototypeOf(current);\n\t}\n\n\treturn protos;\n};\n\nconst patchElementLayout = (doc: Document) => {\n\tif (layoutPatchApplied || !doc) {\n\t\treturn;\n\t}\n\tlet element: Element;\n\ttry {\n\t\telement = doc.createElement('div');\n\t} catch {\n\t\treturn;\n\t}\n\t// Walk the entire prototype chain so HTMLElement → Element → Node all get\n\t// the layout shims. Domino's base Element.prototype is several hops above\n\t// HTMLDivElement.prototype, and 3rd-party libs call methods anywhere along\n\t// the chain.\n\tconst protos = collectPrototypeChain(element);\n\tif (protos.length === 0) return;\n\n\tconst copyLayoutRect = (rect: typeof SSR_LAYOUT_RECT) => ({ ...rect });\n\tconst createLayoutRect = () => copyLayoutRect(SSR_LAYOUT_RECT);\n\tconst getClientRects = () => [];\n\tconst noop = () => undefined;\n\tconst numericProps = [\n\t\t'clientWidth',\n\t\t'clientHeight',\n\t\t'clientLeft',\n\t\t'clientTop',\n\t\t'offsetWidth',\n\t\t'offsetHeight',\n\t\t'offsetLeft',\n\t\t'offsetTop',\n\t\t'scrollWidth',\n\t\t'scrollHeight',\n\t\t'scrollLeft',\n\t\t'scrollTop'\n\t];\n\n\tfor (const proto of protos) {\n\t\tconst define = (name: string, value: unknown) => {\n\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(proto, name);\n\t\t\tif (typeof descriptor?.value === 'function') return;\n\n\t\t\tObject.defineProperty(proto, name, {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue,\n\t\t\t\twritable: true\n\t\t\t});\n\t\t};\n\n\t\tdefine('getBoundingClientRect', createLayoutRect);\n\t\tdefine('getClientRects', getClientRects);\n\t\tdefine('scrollTo', noop);\n\t\tdefine('scrollBy', noop);\n\t\tdefine('scrollIntoView', noop);\n\t\tdefine('focus', noop);\n\t\tdefine('blur', noop);\n\n\t\tfor (const prop of numericProps) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(proto, prop);\n\t\t\tif (desc) continue;\n\t\t\tObject.defineProperty(proto, prop, {\n\t\t\t\tconfigurable: true,\n\t\t\t\tget: () => 0\n\t\t\t});\n\t\t}\n\t}\n\n\tlayoutPatchApplied = true;\n};\n\nexport const applyPatches = async () => {\n\tconst { ɵDominoAdapter } = await import(\n\t\tresolveAngularRuntimePath('@angular/platform-server')\n\t);\n\tif (!ɵDominoAdapter?.prototype) {\n\t\tconsole.warn(\n\t\t\t'[Angular Patch] ɵDominoAdapter not found, skipping patches'\n\t\t);\n\n\t\treturn false;\n\t}\n\n\t// Patch the layout shims onto Domino's Element prototypes immediately\n\t// (don't wait for the first createHtmlDocument call). Components that\n\t// hold an ElementRef from the very first change-detection pass call\n\t// these methods before the lazy patch path would have run.\n\ttry {\n\t\tconst adapter = new ɵDominoAdapter();\n\t\tconst seedDoc =\n\t\t\ttypeof adapter.createHtmlDocument === 'function'\n\t\t\t\t? adapter.createHtmlDocument()\n\t\t\t\t: typeof adapter.getDefaultDocument === 'function'\n\t\t\t\t\t? adapter.getDefaultDocument()\n\t\t\t\t\t: null;\n\t\tif (seedDoc) {\n\t\t\tpatchElementLayout(seedDoc);\n\t\t\tconst probe = seedDoc.createElement('div') as Element & {\n\t\t\t\tgetBoundingClientRect?: () => DOMRect;\n\t\t\t};\n\t\t\tif (typeof probe.getBoundingClientRect !== 'function') {\n\t\t\t\tconsole.warn(\n\t\t\t\t\t'[Angular Patch] Layout shim did not stick on probe element prototype chain'\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t} catch (error) {\n\t\tconsole.warn(\n\t\t\t'[Angular Patch] Could not eagerly patch Element prototypes:',\n\t\t\terror\n\t\t);\n\t}\n\n\tconst proto = ɵDominoAdapter.prototype;\n\n\tconst origGetBaseHref = proto.getBaseHref;\n\tproto.getBaseHref = function (doc: Document) {\n\t\tif (!doc || !doc.head || typeof doc.head.children === 'undefined') {\n\t\t\treturn '';\n\t\t}\n\n\t\treturn origGetBaseHref.call(this, doc);\n\t};\n\n\tconst origCreateHtmlDocument = proto.createHtmlDocument;\n\tproto.createHtmlDocument = function () {\n\t\tconst doc = origCreateHtmlDocument.call(this);\n\t\tensureHead(doc);\n\t\tpatchElementLayout(doc);\n\n\t\treturn doc;\n\t};\n\n\tconst origGetDefaultDocument = proto.getDefaultDocument;\n\tproto.getDefaultDocument = function () {\n\t\tconst doc = origGetDefaultDocument.call(this);\n\t\tensureHead(doc);\n\t\tpatchElementLayout(doc);\n\n\t\treturn doc;\n\t};\n\n\treturn true;\n};\n",
|
|
23
|
+
"import type { AngularDeps } from '../../types/angular';\nimport { resolveAngularRuntimePath } from './resolveAngularPackage';\n\nconst initDominoAdapter = (platformServer: {\n\tɵDominoAdapter?: { makeCurrent?: () => void };\n}) => {\n\ttry {\n\t\tplatformServer.ɵDominoAdapter?.makeCurrent?.();\n\t} catch (err) {\n\t\tconsole.error('Failed to initialize DominoAdapter:', err);\n\t}\n};\n\nconst loadAngularDeps = async () => {\n\t// JIT compiler is only needed in development, where user pages are\n\t// runtime-compiled by `compileAngularFileJIT` and emit partial\n\t// declarations that need the compiler facade to link. In production\n\t// the linker has already processed every partial declaration into\n\t// final ɵdir/ɵcmp/ɵfac at vendor build time, so the compiler isn't\n\t// imported and isn't part of the prod vendor bundle.\n\tif (process.env.NODE_ENV !== 'production') {\n\t\tawait import(resolveAngularRuntimePath('@angular/compiler'));\n\t}\n\n\t// angularPatch imports @angular/platform-server internally, so it\n\t// must also run after the compiler is available.\n\tconst { applyPatches } = await import('./angularPatch');\n\tawait applyPatches();\n\n\t// Now safe to load all Angular packages in parallel\n\tconst [platformBrowser, platformServer, common, core] = await Promise.all([\n\t\timport(resolveAngularRuntimePath('@angular/platform-browser')),\n\t\timport(resolveAngularRuntimePath('@angular/platform-server')),\n\t\timport(resolveAngularRuntimePath('@angular/common')),\n\t\timport(resolveAngularRuntimePath('@angular/core'))\n\t]);\n\n\tif (process.env.NODE_ENV !== 'development') {\n\t\tcore.enableProdMode();\n\t}\n\n\tinitDominoAdapter(platformServer);\n\n\treturn {\n\t\tAPP_BASE_HREF: common.APP_BASE_HREF,\n\t\tbootstrapApplication: platformBrowser.bootstrapApplication,\n\t\tDomSanitizer: platformBrowser.DomSanitizer,\n\t\tENVIRONMENT_INITIALIZER: core.ENVIRONMENT_INITIALIZER,\n\t\tinject: core.inject,\n\t\tprovideClientHydration: platformBrowser.provideClientHydration,\n\t\tprovideServerRendering: platformServer.provideServerRendering,\n\t\tprovideZonelessChangeDetection: core.provideZonelessChangeDetection,\n\t\treflectComponentType: core.reflectComponentType,\n\t\trenderApplication: platformServer.renderApplication,\n\t\tREQUEST: core.REQUEST,\n\t\tREQUEST_CONTEXT: core.REQUEST_CONTEXT,\n\t\tRESPONSE_INIT: core.RESPONSE_INIT,\n\t\tSanitizer: core.Sanitizer,\n\t\tSecurityContext: core.SecurityContext,\n\t\twithHttpTransferCacheOptions:\n\t\t\tplatformBrowser.withHttpTransferCacheOptions\n\t};\n};\n\nlet angularDeps: Promise<AngularDeps> | null = null;\n\nexport const getAngularDeps = () => {\n\tif (!angularDeps) {\n\t\tangularDeps = loadAngularDeps();\n\t}\n\n\treturn angularDeps;\n};\n",
|
|
24
|
+
"/**\n * Utility for registering client-side scripts that need to run after Angular SSR hydration.\n *\n * This is necessary because Angular's lifecycle hooks don't always run reliably on the client\n * after SSR hydration, especially for event listeners attached to DOM elements.\n *\n * Usage in Angular components:\n * ```typescript\n * import { registerClientScript } from '@absolutejs/absolute';\n *\n * // Register an event listener script\n * registerClientScript(() => {\n * const element = document.querySelector('.my-element');\n * if (element) {\n * element.addEventListener('click', () => {\n * console.log('Clicked!');\n * });\n * }\n * });\n * ```\n *\n * The script will be automatically injected into the HTML response and executed on the client.\n */\n\n// Request-scoped registry for client scripts\n// Each request gets its own set of scripts to inject\nconst scriptRegistry = new Map<string, Set<() => void>>();\n\n// Generate a unique request ID for tracking scripts per request\nlet requestCounter = 0;\nconst getRequestId = () => `req_${Date.now()}_${++requestCounter}`;\n\n// Allow SSR frameworks to inject a request context getter (e.g. AsyncLocalStorage)\nlet ssrContextGetter: (() => string | undefined) | null = null;\nexport const getSsrContextId = () =>\n\tssrContextGetter?.() ||\n\tObject.getOwnPropertyDescriptor(globalThis, '__absolutejs_requestId')\n\t\t?.value;\nexport const registerClientScript = (\n\tscript: () => void,\n\trequestId?: string\n) => {\n\t// Try to get requestId from explicit arg, then Async Context, then global fallback\n\tconst id = requestId || getSsrContextId() || getRequestId();\n\n\tif (!scriptRegistry.has(id)) {\n\t\tscriptRegistry.set(id, new Set());\n\t}\n\n\tscriptRegistry.get(id)?.add(script);\n\n\treturn id;\n};\nexport const setSsrContextGetter = (getter: () => string | undefined) => {\n\tssrContextGetter = getter;\n};\n\n// Make registerClientScript available globally during SSR for Angular components\n// Using type assertion for globalThis extension\nif (typeof globalThis !== 'undefined') {\n\tObject.assign(globalThis, { registerClientScript });\n}\n\n/**\n * Get all registered scripts for a request and clear them.\n * This is called by the page handler after rendering.\n *\n * @param requestId - The request ID to get scripts for\n * @returns Array of script functions, or empty array if none registered\n */\nexport const clearAllClientScripts = () => {\n\tscriptRegistry.clear();\n};\nexport const generateClientScriptCode = (scripts: (() => void)[]) => {\n\tif (scripts.length === 0) {\n\t\treturn '';\n\t}\n\n\t// Convert functions to strings and wrap in IIFE\n\tconst scriptCode = scripts\n\t\t.map((script, index) => {\n\t\t\t// Get the function body as a string\n\t\t\tconst funcString = script.toString();\n\n\t\t\t// Extract the body (everything between { and })\n\t\t\tconst bodyMatch = funcString.match(/\\{([\\s\\S]*)\\}/);\n\t\t\tif (!bodyMatch || !bodyMatch[1]) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tconst body = bodyMatch[1].trim();\n\n\t\t\t// Wrap in IIFE with MutationObserver for DOM readiness\n\t\t\treturn `\n\t(function() {\n\t\tvar executed = false;\n\t\tfunction executeScript_${index}() {\n\t\t\tif (executed) return;\n\t\t\texecuted = true;\n\t\t\t${body}\n\t\t}\n\n\t\tif (document.readyState === 'complete' || document.readyState === 'interactive') {\n\t\t\texecuteScript_${index}();\n\t\t} else {\n\t\t\tdocument.addEventListener('DOMContentLoaded', executeScript_${index});\n\t\t}\n\n\t\t// Watch for hydration-added elements\n\t\tvar observer = new MutationObserver(function() {\n\t\t\texecuteScript_${index}();\n\t\t\tif (executed) observer.disconnect();\n\t\t});\n\t\tif (!executed) {\n\t\t\tobserver.observe(document.body || document.documentElement, { childList: true, subtree: true });\n\t\t}\n\n\t\t// Single fallback timeout\n\t\tsetTimeout(function() {\n\t\t\texecuteScript_${index}();\n\t\t\tobserver.disconnect();\n\t\t}, 1000);\n\t})();`;\n\t\t})\n\t\t.join('\\n');\n\n\treturn `<script>\n(function() {\n${scriptCode}\n})();\n</script>`;\n};\nexport const getAndClearClientScripts = (requestId?: string) => {\n\tconst id = requestId || ssrContextGetter?.();\n\tif (!id) return [];\n\n\tconst scripts = scriptRegistry.get(id);\n\tif (!scripts) {\n\t\treturn [];\n\t}\n\n\tconst scriptArray = Array.from(scripts);\n\tscriptRegistry.delete(id);\n\n\treturn scriptArray;\n};\n",
|
|
25
|
+
"import type { HttpTransferCacheOptions } from '@angular/common/http';\n\nexport const ABSOLUTE_HTTP_TRANSFER_CACHE_SKIP_HEADER = 'x-skip-transfer-cache';\n\nexport type AbsoluteHttpTransferCacheOptions = Omit<\n\tHttpTransferCacheOptions,\n\t'filter'\n> & {\n\tfilter?: NonNullable<HttpTransferCacheOptions['filter']>;\n\tskipHeader?: string;\n};\n\nexport const buildAbsoluteHttpTransferCacheOptions = (\n\toptions: AbsoluteHttpTransferCacheOptions = {}\n) => {\n\tconst {\n\t\tfilter: userFilter,\n\t\tskipHeader = ABSOLUTE_HTTP_TRANSFER_CACHE_SKIP_HEADER,\n\t\t...angularOptions\n\t} = options;\n\n\treturn {\n\t\tincludePostRequests: false,\n\t\tincludeRequestsWithAuthHeaders: false,\n\t\t...angularOptions,\n\t\tfilter: (request) =>\n\t\t\t!request.headers.has(skipHeader) && (userFilter?.(request) ?? true)\n\t} satisfies HttpTransferCacheOptions;\n};\n",
|
|
26
|
+
"import type { AngularDeps } from '../../types/angular';\n\nexport { REQUEST, REQUEST_CONTEXT, RESPONSE_INIT } from '@angular/core';\n\nexport const buildRequestProviders = (\n\tdeps: AngularDeps,\n\trequest: Request | undefined,\n\trequestContext: unknown,\n\tresponseInit: ResponseInit | undefined\n) => [\n\t{ provide: deps.REQUEST, useValue: request ?? null },\n\t{ provide: deps.REQUEST_CONTEXT, useValue: requestContext ?? null },\n\t{ provide: deps.RESPONSE_INIT, useValue: responseInit ?? null }\n];\n",
|
|
27
|
+
"import type { EnvironmentProviders, Provider, Type } from '@angular/core';\nimport type { BootstrapContext } from '@angular/platform-browser';\nimport type { AngularDeps, CachedRouteData } from '../../types/angular';\nimport { toScreamingSnake } from '../utils/stringModifiers';\nimport {\n\tgetAndClearClientScripts,\n\tgenerateClientScriptCode\n} from '../utils/registerClientScript';\nimport { buildAbsoluteHttpTransferCacheOptions } from './httpTransferCache';\nimport { buildRequestProviders } from './requestProviders';\n\n// --- Last-used props cache for HMR ---\n// Stores { props, headTag } from the most recent real request per route\n// so HMR re-renders with the same data the user last saw (Vite/Next behavior).\n\nconst routePropsCache = new Map<string, CachedRouteData>();\n\nexport const cacheRouteData = (pagePath: string, data: CachedRouteData) => {\n\tconst cacheKey = pagePath.split('?')[0] ?? pagePath;\n\troutePropsCache.set(cacheKey, data);\n};\nexport const getCachedRouteData = (pagePath: string) =>\n\troutePropsCache.get(pagePath);\n\n// --- Selector cache ---\n\nconst selectorCache = new Map<string, string>();\nexport const buildProviders = (\n\tdeps: AngularDeps,\n\tsanitizer: InstanceType<AngularDeps['DomSanitizer']>,\n\tmaybeProps: Record<string, unknown> | undefined,\n\ttokenMap: Map<string, unknown>,\n\trequest: Request | undefined,\n\trequestContext: unknown,\n\tresponseInit: ResponseInit | undefined,\n\tuserProviders: ReadonlyArray<Provider | EnvironmentProviders> = []\n) => {\n\tconst providers: (Provider | EnvironmentProviders)[] = [\n\t\tdeps.provideServerRendering(),\n\t\tdeps.provideClientHydration(\n\t\t\tdeps.withHttpTransferCacheOptions(\n\t\t\t\tbuildAbsoluteHttpTransferCacheOptions()\n\t\t\t)\n\t\t),\n\t\tdeps.provideZonelessChangeDetection(),\n\t\t{ provide: deps.APP_BASE_HREF, useValue: '/' },\n\t\t{\n\t\t\tprovide: deps.DomSanitizer,\n\t\t\tuseValue: sanitizer\n\t\t},\n\t\t{ provide: deps.Sanitizer, useValue: sanitizer },\n\t\t...buildRequestProviders(deps, request, requestContext, responseInit),\n\t\t...userProviders\n\t];\n\n\tif (!maybeProps) {\n\t\treturn providers;\n\t}\n\n\tconst propProviders = Object.entries(maybeProps)\n\t\t.map(([propName, propValue]) => ({\n\t\t\ttoken: tokenMap.get(toScreamingSnake(propName)),\n\t\t\tvalue: propValue\n\t\t}))\n\t\t.filter((entry) => entry.token)\n\t\t.map((entry) => ({ provide: entry.token, useValue: entry.value }));\n\n\treturn [...providers, ...propProviders];\n};\nexport const clearSelectorCache = () => selectorCache.clear();\n\nconst isInjectionToken = (value: unknown) => {\n\tif (!value || typeof value !== 'object') {\n\t\treturn false;\n\t}\n\n\treturn (\n\t\t'ngMetadataName' in value && value.ngMetadataName === 'InjectionToken'\n\t);\n};\n\nexport const discoverTokens = (pageModule: Record<string, unknown>) =>\n\tnew Map(\n\t\tObject.entries(pageModule).filter(([, value]) =>\n\t\t\tisInjectionToken(value)\n\t\t)\n\t);\nexport const resolveSelector = (\n\tdeps: AngularDeps,\n\tpagePath: string,\n\tPageComponent: Type<unknown>\n) => {\n\tconst cached = selectorCache.get(pagePath);\n\tif (cached) {\n\t\treturn cached;\n\t}\n\n\tconst selector =\n\t\tdeps.reflectComponentType(PageComponent)?.selector ?? 'ng-app';\n\tselectorCache.set(pagePath, selector);\n\n\treturn selector;\n};\n\n// --- Inject HTML helper ---\n\nconst injectBeforeClose = (html: string, snippet: string) => {\n\tif (html.includes('</body>')) {\n\t\treturn html.replace('</body>', `${snippet}</body>`);\n\t}\n\tif (html.includes('</html>')) {\n\t\treturn html.replace('</html>', `${snippet}</html>`);\n\t}\n\n\treturn html + snippet;\n};\n\n// --- Post-render HTML injection ---\n\nexport const injectSsrScripts = (\n\thtml: string,\n\trequestId: string,\n\tindexPath: string,\n\tprops?: Record<string, unknown>\n) => {\n\tlet result = html;\n\n\tconst registeredScripts = getAndClearClientScripts(requestId);\n\tif (registeredScripts.length > 0) {\n\t\tresult = injectBeforeClose(\n\t\t\tresult,\n\t\t\tgenerateClientScriptCode(registeredScripts)\n\t\t);\n\t}\n\n\tif (props) {\n\t\tresult = injectBeforeClose(\n\t\t\tresult,\n\t\t\t`<script>window.__ABS_ANGULAR_PAGE_PROPS__ = ${JSON.stringify(props)};</script>`\n\t\t);\n\t}\n\n\tif (indexPath) {\n\t\tconst escapedIndexPath = JSON.stringify(indexPath);\n\t\tresult = injectBeforeClose(\n\t\t\tresult,\n\t\t\t`<script>import(${escapedIndexPath});</script>`\n\t\t);\n\t}\n\n\treturn result;\n};\nexport const renderAngularApp = async (\n\tdeps: AngularDeps,\n\tPageComponent: Type<unknown>,\n\tproviders: (Provider | EnvironmentProviders)[],\n\tdocument: string | Document,\n\turl: string = '/'\n) => {\n\tconst bootstrap = (context: BootstrapContext) =>\n\t\tdeps.bootstrapApplication(PageComponent, { providers }, context);\n\n\treturn withSuppressedAngularDevLogs(() =>\n\t\tdeps.renderApplication(bootstrap, {\n\t\t\tdocument,\n\t\t\tplatformProviders: [],\n\t\t\turl\n\t\t})\n\t);\n};\nexport const withSuppressedAngularDevLogs = async <T>(\n\trender: () => Promise<T>\n) => {\n\tconst origLog = console.log;\n\tconsole.log = (...args: unknown[]) => {\n\t\tif (\n\t\t\ttypeof args[0] === 'string' &&\n\t\t\targs[0].includes('development mode')\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\torigLog.apply(console, args);\n\t};\n\n\ttry {\n\t\treturn await render();\n\t} finally {\n\t\tconsole.log = origLog;\n\t}\n};\n",
|
|
28
|
+
"import { getAngularDeps } from './angularDeps';\nimport { withSuppressedAngularDevLogs } from './ssrRender';\nimport { getSsrContextId } from '../utils/registerClientScript';\n\nconst angularIslandSelector = 'abs-angular-island';\n\nexport const isAngularComponent = (\n\tvalue: unknown\n): value is import('@angular/core').Type<object> => typeof value === 'function';\n\nexport const getAngularIslandSelector = (_islandId: string) =>\n\tangularIslandSelector;\n\nconst getSelectorFromRenderedIsland = (rootElement: HTMLElement) => {\n\tconst firstChild = rootElement.firstElementChild;\n\tif (!(firstChild instanceof HTMLElement)) {\n\t\treturn null;\n\t}\n\n\tconst selector = firstChild.tagName.toLowerCase();\n\n\treturn selector.length > 0 ? selector : null;\n};\n\nconst getClientAngularComponentSelector = (\n\tcomponent: import('@angular/core').Type<object>\n) => {\n\tconst maybeDef = Reflect.get(component, 'ɵcmp');\n\tif (typeof maybeDef !== 'object' || maybeDef === null) {\n\t\treturn null;\n\t}\n\n\tconst maybeSelectors = Reflect.get(maybeDef, 'selectors');\n\tif (!Array.isArray(maybeSelectors)) {\n\t\treturn null;\n\t}\n\n\tconst [firstSelectorGroup] = maybeSelectors;\n\tif (!Array.isArray(firstSelectorGroup)) {\n\t\treturn null;\n\t}\n\n\tconst [selector] = firstSelectorGroup;\n\n\treturn typeof selector === 'string' && selector.length > 0\n\t\t? selector\n\t\t: null;\n};\n\nconst createAngularIslandApp = async () => {\n\tconst { EnvironmentInjector, provideZonelessChangeDetection } =\n\t\tawait import('@angular/core');\n\tconst { createApplication } = await import('@angular/platform-browser');\n\tconst app = await createApplication({\n\t\tproviders: [provideZonelessChangeDetection()]\n\t});\n\tconst environmentInjector = app.injector.get(EnvironmentInjector);\n\n\treturn { app, environmentInjector };\n};\n\nlet angularIslandAppPromise: Promise<{\n\tapp: import('@angular/core').ApplicationRef;\n\tenvironmentInjector: import('@angular/core').EnvironmentInjector;\n}> | null = null;\n\nconst getAngularIslandApp = async () => {\n\tif (!angularIslandAppPromise) {\n\t\tangularIslandAppPromise = createAngularIslandApp();\n\t}\n\n\treturn angularIslandAppPromise;\n};\n\ntype AngularIslandWrapperMetadata = {\n\tdeps: Awaited<ReturnType<typeof getAngularDeps>>;\n\tpropsToken: import('@angular/core').InjectionToken<Record<string, unknown>>;\n\tselector: string;\n\tWrapperComponent: import('@angular/core').Type<object>;\n};\n\nconst wrapperMetadataCache = new Map<\n\tstring,\n\tPromise<AngularIslandWrapperMetadata>\n>();\nconst requestRenderCache = new Map<string, Map<string, string>>();\n\nconst getRequestRenderCache = () => {\n\tconst requestId = getSsrContextId();\n\tif (!requestId) {\n\t\treturn null;\n\t}\n\n\tconst cached = requestRenderCache.get(requestId);\n\tif (cached) {\n\t\treturn cached;\n\t}\n\n\tconst renderCache = new Map<string, string>();\n\trequestRenderCache.set(requestId, renderCache);\n\n\treturn renderCache;\n};\n\nconst getAngularIslandWrapperKey = (\n\tcomponent: import('@angular/core').Type<object>,\n\t_islandId: string\n) => {\n\tconst componentName =\n\t\ttypeof component.name === 'string' && component.name.length > 0\n\t\t\t? component.name\n\t\t\t: 'AngularIsland';\n\n\treturn `${componentName}:${angularIslandSelector}`;\n};\n\nconst getIslandRenderCacheKey = (\n\tcomponent: import('@angular/core').Type<object>,\n\tprops: Record<string, unknown>\n) => {\n\tconst componentName =\n\t\ttypeof component.name === 'string' && component.name.length > 0\n\t\t\t? component.name\n\t\t\t: 'AngularIsland';\n\n\treturn `${componentName}:${JSON.stringify(props)}`;\n};\n\nconst buildAngularIslandWrapperMetadata = async (\n\tcomponent: import('@angular/core').Type<object>,\n\tislandId: string,\n\twrapperKey: string\n) => {\n\tconst { Component, InjectionToken, inject } = await import('@angular/core');\n\tconst { NgComponentOutlet } = await import('@angular/common');\n\tconst deps = await getAngularDeps();\n\tconst selector = getAngularIslandSelector(islandId);\n\tconst propsToken = new InjectionToken<Record<string, unknown>>(\n\t\t`${wrapperKey}:props`\n\t);\n\n\tclass AngularIslandWrapperComponent {\n\t\tcomponent = component;\n\t\tprops = inject(propsToken);\n\t}\n\n\treturn {\n\t\tdeps,\n\t\tpropsToken,\n\t\tselector,\n\t\tWrapperComponent: Component({\n\t\t\timports: [NgComponentOutlet, component],\n\t\t\tselector,\n\t\t\tstandalone: true,\n\t\t\ttemplate:\n\t\t\t\t'<ng-container *ngComponentOutlet=\"component; inputs: props\"></ng-container>'\n\t\t})(AngularIslandWrapperComponent)\n\t};\n};\n\nconst createAngularIslandWrapper = async (\n\tcomponent: import('@angular/core').Type<object>,\n\tislandId: string\n) => {\n\tconst wrapperKey = getAngularIslandWrapperKey(component, islandId);\n\tconst cached = wrapperMetadataCache.get(wrapperKey);\n\tif (cached) {\n\t\treturn cached;\n\t}\n\n\tconst metadataPromise = buildAngularIslandWrapperMetadata(\n\t\tcomponent,\n\t\tislandId,\n\t\twrapperKey\n\t);\n\n\twrapperMetadataCache.set(wrapperKey, metadataPromise);\n\n\treturn metadataPromise;\n};\n\nconst extractAngularIslandRoot = (html: string, selector: string) => {\n\tconst openTag = `<${selector}`;\n\tconst start = html.indexOf(openTag);\n\tif (start < 0) {\n\t\tthrow new Error(`Could not find Angular island root \"${selector}\".`);\n\t}\n\n\tconst endTag = `</${selector}>`;\n\tconst end = html.indexOf(endTag, start);\n\tif (end < 0) {\n\t\tthrow new Error(`Could not close Angular island root \"${selector}\".`);\n\t}\n\n\treturn html.slice(start, end + endTag.length);\n};\n\nexport const mountAngularIsland = async <Props extends Record<string, unknown>>(\n\tcomponent: import('@angular/core').Type<object>,\n\telement: HTMLElement,\n\tprops: Props,\n\tislandId: string\n) => {\n\tawait import('@angular/compiler');\n\tconst { createComponent, inputBinding } = await import('@angular/core');\n\tconst selector = getAngularIslandSelector(islandId);\n\tconst { app, environmentInjector } = await getAngularIslandApp();\n\n\tlet rootElement = element.querySelector(selector);\n\tif (!(rootElement instanceof HTMLElement)) {\n\t\telement.innerHTML = `<${selector}></${selector}>`;\n\t\trootElement = element.querySelector(selector);\n\t}\n\tif (!(rootElement instanceof HTMLElement)) return app;\n\n\tconst componentSelector =\n\t\tgetClientAngularComponentSelector(component) ??\n\t\tgetSelectorFromRenderedIsland(rootElement);\n\tif (!componentSelector) return app;\n\n\trootElement.innerHTML = `<${componentSelector}></${componentSelector}>`;\n\tconst hostElement = rootElement.querySelector(componentSelector);\n\tif (!(hostElement instanceof HTMLElement)) return app;\n\n\tconst bindings = Object.entries(props).map(([key, value]) =>\n\t\tinputBinding(key, () => value)\n\t);\n\tconst componentRef = createComponent(component, {\n\t\tbindings,\n\t\tenvironmentInjector,\n\t\thostElement\n\t});\n\tapp.attachView(componentRef.hostView);\n\tcomponentRef.changeDetectorRef.detectChanges();\n\twindow.__ABS_ANGULAR_ISLAND_APPS__ ??= [];\n\twindow.__ABS_ANGULAR_ISLAND_APPS__.push(app);\n\n\treturn app;\n};\nexport const renderAngularIslandToHtml = async <\n\tProps extends Record<string, unknown>\n>(\n\tcomponent: import('@angular/core').Type<object>,\n\tprops: Props,\n\tislandId: string\n) => {\n\tconst requestCache = getRequestRenderCache();\n\tconst renderCacheKey = getIslandRenderCacheKey(component, props);\n\tconst cachedHtml = requestCache?.get(renderCacheKey);\n\tif (cachedHtml) {\n\t\treturn cachedHtml;\n\t}\n\n\tconst { deps, propsToken, selector, WrapperComponent } =\n\t\tawait createAngularIslandWrapper(component, islandId);\n\n\tconst providers: (\n\t\t| import('@angular/core').Provider\n\t\t| import('@angular/core').EnvironmentProviders\n\t)[] = [\n\t\tdeps.provideServerRendering(),\n\t\tdeps.provideZonelessChangeDetection(),\n\t\t{ provide: deps.APP_BASE_HREF, useValue: '/' },\n\t\t{ provide: propsToken, useValue: props }\n\t];\n\tconst document = `<!DOCTYPE html><html><body><${selector}></${selector}></body></html>`;\n\tconst html = await withSuppressedAngularDevLogs(() =>\n\t\tdeps.renderApplication(\n\t\t\t(context) =>\n\t\t\t\tdeps.bootstrapApplication(\n\t\t\t\t\tWrapperComponent,\n\t\t\t\t\t{ providers },\n\t\t\t\t\tcontext\n\t\t\t\t),\n\t\t\t{\n\t\t\t\tdocument,\n\t\t\t\tplatformProviders: [],\n\t\t\t\turl: '/'\n\t\t\t}\n\t\t)\n\t);\n\tconst islandHtml = extractAngularIslandRoot(html, selector);\n\trequestCache?.set(renderCacheKey, islandHtml);\n\n\treturn islandHtml;\n};\n",
|
|
29
|
+
"type ReactComponentType<Props extends Record<string, unknown>> =\n\timport('react').ComponentType<Props>;\n\nconst renderAngularIslandToHtmlInternal = async (\n\tcomponent: import('@angular/core').Type<object>,\n\tprops: Record<string, unknown>,\n\tislandId: string\n) => {\n\tconst { renderAngularIslandToHtml } = await import('../angular/islands');\n\n\treturn renderAngularIslandToHtml(component, props, islandId);\n};\nexport const renderAngularIslandToHtml = renderAngularIslandToHtmlInternal;\nexport const renderReactIslandToHtml = <Props extends Record<string, unknown>>(\n\tcomponent: ReactComponentType<Props>,\n\tprops: Props\n) =>\n\timport('react').then(({ createElement }) =>\n\t\timport('react-dom/server').then(({ renderToStaticMarkup }) =>\n\t\t\trenderToStaticMarkup(createElement(component, props))\n\t\t)\n\t);\nexport const renderSvelteIslandToHtml = <Props extends Record<string, unknown>>(\n\tcomponent: import('svelte').Component<Props>,\n\tprops: Props\n) =>\n\timport('svelte/server').then(({ render }) => {\n\t\tconst { body } = render(component, { props });\n\n\t\treturn body;\n\t});\nexport const renderVueIslandToHtml = <Props extends Record<string, unknown>>(\n\tcomponent: import('vue').Component<Props>,\n\tprops: Props\n) =>\n\timport('vue').then(({ createSSRApp, h: createVueVNode }) => {\n\t\tconst app = createSSRApp({\n\t\t\trender: () => createVueVNode(component, props)\n\t\t});\n\n\t\treturn import('vue/server-renderer').then(({ renderToString }) =>\n\t\t\trenderToString(app)\n\t\t);\n\t});\n",
|
|
30
|
+
"import { resolve, join } from 'node:path';\nimport { existsSync, readFileSync } from 'node:fs';\n\n/**\n * Resolve a bare module import (e.g. \"@absolutejs/absolute/svelte/components/Image.svelte\")\n * to an absolute file path by reading the package's exports map in package.json.\n *\n * Returns the resolved absolute path, or null if the import can't be resolved.\n */\ntype ExportConditions = 'browser' | 'import';\n\nconst resolveExportPath = (\n\tentry: unknown,\n\tconditions: ExportConditions[]\n) => {\n\tif (typeof entry === 'string') return entry;\n\tif (!entry || typeof entry !== 'object') return null;\n\n\tfor (const condition of conditions) {\n\t\tconst target = Reflect.get(entry, condition);\n\t\tif (typeof target === 'string') {\n\t\t\treturn target;\n\t\t}\n\t}\n\n\treturn null;\n};\n\nexport const resolvePackageImport = (\n\tspecifier: string,\n\tconditions: ExportConditions[] = ['import']\n) => {\n\t// Only handle bare module imports (not relative or absolute paths)\n\tif (specifier.startsWith('.') || specifier.startsWith('/')) return null;\n\n\t// Split into package name and subpath\n\tconst parts = specifier.split('/');\n\tconst isScoped = specifier.startsWith('@');\n\tconst packageName = isScoped ? `${parts[0]}/${parts[1]}` : parts[0];\n\tconst subpath = isScoped ? parts.slice(2).join('/') : parts.slice(1).join('/');\n\tconst exportKey = subpath ? `./${subpath}` : '.';\n\n\tconst currentPackageJsonPath = resolve(process.cwd(), 'package.json');\n\tconst currentPackageJson = existsSync(currentPackageJsonPath)\n\t\t? JSON.parse(readFileSync(currentPackageJsonPath, 'utf-8'))\n\t\t: null;\n\tconst currentPackageDir =\n\t\tcurrentPackageJson?.name === packageName ? process.cwd() : null;\n\tconst packageDir =\n\t\tcurrentPackageDir ?? resolve(process.cwd(), 'node_modules', packageName ?? '');\n\tconst packageJsonPath = join(packageDir, 'package.json');\n\n\tif (!existsSync(packageJsonPath)) return null;\n\n\ttry {\n\t\tconst packageJson =\n\t\t\tcurrentPackageDir && currentPackageJson\n\t\t\t\t? currentPackageJson\n\t\t\t\t: JSON.parse(readFileSync(packageJsonPath, 'utf-8'));\n\t\tconst {exports} = packageJson;\n\n\t\tif (!exports) return null;\n\n\t\t// Try exact match first, then try without extension for .svelte/.vue files\n\t\tconst entry = exports[exportKey];\n\n\t\tif (!entry) return null;\n\n\t\tconst importPath = resolveExportPath(entry, conditions);\n\n\t\tif (!importPath) return null;\n\n\t\tif (currentPackageDir && importPath.startsWith('./dist/')) {\n\t\t\tconst sourceCandidate = resolve(\n\t\t\t\tpackageDir,\n\t\t\t\timportPath.replace(/^\\.\\/dist\\//, './src/')\n\t\t\t);\n\t\t\tif (existsSync(sourceCandidate)) {\n\t\t\t\treturn sourceCandidate;\n\t\t\t}\n\t\t}\n\n\t\tconst resolved = resolve(packageDir, importPath);\n\n\t\treturn existsSync(resolved) ? resolved : null;\n\t} catch {\n\t\treturn null;\n\t}\n};\n",
|
|
31
|
+
"import { BASE_36_RADIX } from '../constants';\n\nconst ISLAND_TAG_RE = /<Island\\b([\\s\\S]*?)\\/>/g;\n\nconst extractBracedExpression = (text: string, braceStart: number) => {\n\tlet depth = 0;\n\tfor (let index = braceStart; index < text.length; index += 1) {\n\t\tconst char = text[index];\n\t\tif (char === '{') depth += 1;\n\t\tif (char === '}') depth -= 1;\n\t\tif (depth === 0) {\n\t\t\treturn text.slice(braceStart + 1, index).trim();\n\t\t}\n\t}\n\n\treturn null;\n};\n\nconst extractIslandAttribute = (attributeString: string, name: string) => {\n\tconst quotedMatch = attributeString.match(\n\t\tnew RegExp(`\\\\b${name}\\\\s*=\\\\s*[\"']([^\"']+)[\"']`)\n\t);\n\tif (quotedMatch?.[1]) {\n\t\treturn { expression: JSON.stringify(quotedMatch[1]), found: true };\n\t}\n\n\tconst attributeIndex = attributeString.search(\n\t\tnew RegExp(`\\\\b${name}\\\\s*=\\\\s*\\\\{`)\n\t);\n\tif (attributeIndex < 0) {\n\t\treturn { expression: '', found: false };\n\t}\n\n\tconst braceStart = attributeString.indexOf('{', attributeIndex);\n\tif (braceStart < 0) {\n\t\treturn { expression: '', found: false };\n\t}\n\n\tconst expression = extractBracedExpression(attributeString, braceStart);\n\tif (expression === null) {\n\t\treturn { expression: '', found: false };\n\t}\n\n\treturn { expression, found: true };\n};\n\nexport const lowerSvelteIslandSyntax = (\n\tsource: string,\n\t_mode: 'server' | 'client' = 'server'\n) => {\n\tif (!source.includes('<Island')) {\n\t\treturn { code: source, transformed: false };\n\t}\n\n\tlet islandIndex = 0;\n\tconst transformedMarkup = source.replace(\n\t\tISLAND_TAG_RE,\n\t\t(fullMatch, attributeString: string) => {\n\t\t\tconst framework = extractIslandAttribute(\n\t\t\t\tattributeString,\n\t\t\t\t'framework'\n\t\t\t);\n\t\t\tconst component = extractIslandAttribute(\n\t\t\t\tattributeString,\n\t\t\t\t'component'\n\t\t\t);\n\t\t\tif (!framework.found || !component.found) {\n\t\t\t\treturn fullMatch;\n\t\t\t}\n\n\t\t\tconst hydrate = extractIslandAttribute(attributeString, 'hydrate');\n\t\t\tconst props = extractIslandAttribute(attributeString, 'props');\n\t\t\tconst slotId = `absolute-svelte-island-${islandIndex.toString(BASE_36_RADIX)}`;\n\t\t\tislandIndex += 1;\n\n\t\t\tconst resolveExpression = `await __absoluteResolveIslandHtml(${JSON.stringify(\n\t\t\t\tslotId\n\t\t\t)}, { component: ${component.expression}, framework: ${framework.expression}, hydrate: ${\n\t\t\t\thydrate.found ? hydrate.expression : JSON.stringify('load')\n\t\t\t}, props: ${props.found ? props.expression : '{}'} })`;\n\n\t\t\treturn `<div data-absolute-island-slot=\"${slotId}\" style=\"display: contents\">{@html ${resolveExpression}}</div>`;\n\t\t}\n\t);\n\n\tconst importLine =\n\t\t'import { resolveIslandHtml as __absoluteResolveIslandHtml } from \"@absolutejs/absolute/svelte\";';\n\n\tif (transformedMarkup.includes('<script')) {\n\t\treturn {\n\t\t\tcode: transformedMarkup.replace(\n\t\t\t\t/<script(\\s[^>]*)?>/,\n\t\t\t\t(match) => `${match}\\n${importLine}\\n`\n\t\t\t),\n\t\t\ttransformed: true\n\t\t};\n\t}\n\n\treturn {\n\t\tcode: `<script lang=\"ts\">\\n${importLine}\\n</script>\\n${transformedMarkup}`,\n\t\ttransformed: true\n\t};\n};\n",
|
|
32
|
+
"import { BASE_36_RADIX } from '../constants';\n\nconst AWAIT_BLOCK_RE =\n\t/\\{#await\\s+([^}]+)\\}([\\s\\S]*?)\\{:then(?:\\s+([A-Za-z_$][\\w$]*))?\\}([\\s\\S]*?)(?:\\{:catch(?:\\s+([A-Za-z_$][\\w$]*))?\\}([\\s\\S]*?))?\\{\\/await\\}/g;\n\nconst escapeTemplateLiteral = (value: string) =>\n\tvalue\n\t\t.replaceAll('\\\\', '\\\\\\\\')\n\t\t.replaceAll('`', '\\\\`')\n\t\t.replaceAll('${', '\\\\${');\n\nconst markupToTemplateLiteral = (markup: string) => {\n\tconst escaped = escapeTemplateLiteral(markup.trim());\n\tconst withExpressions = escaped.replace(\n\t\t/\\{([^{}]+)\\}/g,\n\t\t(_, expression) => `\\${${String(expression).trim()}}`\n\t);\n\n\treturn `\\`${withExpressions}\\``;\n};\n\nexport const lowerSvelteAwaitSlotSyntax = (source: string) => {\n\tif (!source.includes('{#await')) {\n\t\treturn { code: source, transformed: false };\n\t}\n\n\tlet awaitIndex = 0;\n\tlet transformed = false;\n\tconst lowered = source.replace(\n\t\tAWAIT_BLOCK_RE,\n\t\t(\n\t\t\tfullMatch,\n\t\t\tawaitExpression: string,\n\t\t\tpendingMarkup: string,\n\t\t\tthenIdentifier: string | undefined,\n\t\t\tthenMarkup: string,\n\t\t\tcatchIdentifier: string | undefined,\n\t\t\tcatchMarkup: string | undefined\n\t\t) => {\n\t\t\tconst trimmedAwaitExpression = awaitExpression.trim();\n\t\t\tif (!trimmedAwaitExpression) {\n\t\t\t\treturn fullMatch;\n\t\t\t}\n\n\t\t\tconst slotId = `absolute-svelte-await-${awaitIndex.toString(BASE_36_RADIX)}`;\n\t\t\tawaitIndex += 1;\n\t\t\ttransformed = true;\n\n\t\t\tconst thenValueIdentifier =\n\t\t\t\tthenIdentifier?.trim() || '__awaitValue';\n\t\t\tconst catchValueIdentifier =\n\t\t\t\tcatchIdentifier?.trim() || '__awaitError';\n\t\t\tconst fallbackHtml = markupToTemplateLiteral(pendingMarkup);\n\t\t\tconst resolvedHtml = markupToTemplateLiteral(thenMarkup);\n\t\t\tconst rejectedHtml =\n\t\t\t\ttypeof catchMarkup === 'string'\n\t\t\t\t\t? markupToTemplateLiteral(catchMarkup)\n\t\t\t\t\t: null;\n\t\t\tconst catchBranch = rejectedHtml\n\t\t\t\t? `catch (${catchValueIdentifier}) { return ${rejectedHtml}; }`\n\t\t\t\t: 'catch (_absoluteAwaitError) { throw _absoluteAwaitError; }';\n\n\t\t\treturn `<AbsoluteAwaitSlot id=\"${slotId}\" fallbackHtml={${fallbackHtml}} resolve={async () => { try { const ${thenValueIdentifier} = await (${trimmedAwaitExpression}); return ${resolvedHtml}; } ${catchBranch} }} />`;\n\t\t}\n\t);\n\n\tif (!transformed) {\n\t\treturn { code: source, transformed: false };\n\t}\n\n\tconst importLine =\n\t\t'import AbsoluteAwaitSlot from \"@absolutejs/absolute/svelte/components/AwaitSlot.svelte\";';\n\n\tif (lowered.includes('<script')) {\n\t\treturn {\n\t\t\tcode: lowered.replace(\n\t\t\t\t/<script(\\s[^>]*)?>/,\n\t\t\t\t(match) => `${match}\\n${importLine}\\n`\n\t\t\t),\n\t\t\ttransformed: true\n\t\t};\n\t}\n\n\treturn {\n\t\tcode: `<script lang=\"ts\">\\n${importLine}\\n</script>\\n${lowered}`,\n\t\ttransformed: true\n\t};\n};\n",
|
|
33
|
+
"import { createHash } from 'node:crypto';\nimport { existsSync, readFileSync } from 'node:fs';\nimport { readFile } from 'node:fs/promises';\nimport { createRequire } from 'node:module';\nimport {\n\tdirname,\n\textname,\n\tisAbsolute,\n\tjoin,\n\trelative,\n\tresolve\n} from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport type { BunPlugin } from 'bun';\nimport type {\n\tLessPreprocessorOptions,\n\tPostCSSConfig,\n\tSassPreprocessorOptions,\n\tStylePreprocessorConfig,\n\tStylusPreprocessorOptions\n} from '../../types/build';\n\nconst CSS_EXTENSION_PATTERN = /\\.css$/i;\nconst STYLE_EXTENSION_PATTERN = /\\.(s[ac]ss|less|styl(?:us)?)$/i;\nconst STYLE_MODULE_EXTENSION_PATTERN = /\\.module\\.(s[ac]ss|less|styl(?:us)?)$/i;\nconst STYLE_LANGUAGE_PATTERN = /^(s[ac]ss|less|styl(?:us)?)$/i;\nconst importOptionalPeer = new Function(\n\t'specifier',\n\t'return import(specifier)'\n) as <T>(specifier: string) => Promise<T>;\nconst requireOptionalPeer = new Function(\n\t'specifier',\n\t'return require(specifier)'\n) as <T>(specifier: string) => T;\nconst requireFromCwd = createRequire(join(process.cwd(), 'package.json'));\n\nexport const isPreprocessableStylePath = (filePath: string) =>\n\tSTYLE_EXTENSION_PATTERN.test(filePath);\n\nexport const isStyleModulePath = (filePath: string) =>\n\tSTYLE_MODULE_EXTENSION_PATTERN.test(filePath);\n\nexport const isStylePath = (filePath: string) =>\n\t/\\.(css|s[ac]ss|less|styl(?:us)?)$/i.test(filePath);\n\nexport const getStyleBaseName = (filePath: string) =>\n\tfilePath.replace(/\\.(css|s[ac]ss|less|styl(?:us)?)$/i, '');\n\nconst getStyleLanguage = (filePathOrLanguage: string) => {\n\tconst normalized = filePathOrLanguage.toLowerCase();\n\tif (normalized === 'scss' || normalized.endsWith('.scss')) return 'scss';\n\tif (normalized === 'sass' || normalized.endsWith('.sass')) return 'sass';\n\tif (normalized === 'less' || normalized.endsWith('.less')) return 'less';\n\tif (\n\t\tnormalized === 'styl' ||\n\t\tnormalized === 'stylus' ||\n\t\tnormalized.endsWith('.styl') ||\n\t\tnormalized.endsWith('.stylus')\n\t)\n\t\treturn 'stylus';\n\n\treturn null;\n};\n\nconst missingDependencyError = (name: string, filePath: string) =>\n\tnew Error(\n\t\t`Unable to compile ${filePath}: install optional dependency \"${name}\" to use this stylesheet preprocessor.`\n\t);\n\n/* Re-throw a preprocessor error with the filename + a one-line summary\n prefixed so the dev server's `[hmr] error` log doesn't print\n `Server error: undefined`. Sass / Less / Stylus all attach useful\n metadata (line, column, snippet) to their errors but the property\n names differ — we surface whatever's available. */\nconst throwPreprocessorError = (\n\terror: unknown,\n\tfilePath: string,\n\tlanguage: StyleLanguage\n): never => {\n\tif (!(error instanceof Error)) {\n\t\tthrow new Error(\n\t\t\t`${language} compile failed in ${filePath}: ${String(error)}`\n\t\t);\n\t}\n\n\tconst detail = error as Error & {\n\t\tline?: number;\n\t\tcolumn?: number;\n\t\textract?: string[];\n\t\tformatted?: string;\n\t\tspan?: { start?: { line?: number; column?: number } };\n\t};\n\tconst sassLine = detail.span?.start?.line;\n\tconst sassCol = detail.span?.start?.column;\n\tconst line = detail.line ?? sassLine;\n\tconst column = detail.column ?? sassCol;\n\tconst location =\n\t\ttypeof line === 'number'\n\t\t\t? `:${line}${typeof column === 'number' ? `:${column}` : ''}`\n\t\t\t: '';\n\tconst message = detail.formatted ?? detail.message;\n\tconst wrapped = new Error(\n\t\t`${language} compile failed in ${filePath}${location}\\n${message}`\n\t);\n\twrapped.cause = error;\n\tthrow wrapped;\n};\n\nconst requireOptionalPeerSync = <T>(specifier: string) => {\n\ttry {\n\t\treturn requireFromCwd(specifier) as T;\n\t} catch {\n\t\treturn requireOptionalPeer<T>(specifier);\n\t}\n};\n\nconst normalizeLoadPaths = (filePath: string, paths: string[] = []) => [\n\tdirname(filePath),\n\tprocess.cwd(),\n\t...paths.map((path) => resolve(process.cwd(), path))\n];\n\ntype StyleLanguage = NonNullable<ReturnType<typeof getStyleLanguage>>;\n\ntype AliasEntry = {\n\tpattern: string;\n\treplacements: string[];\n};\n\nlet tsconfigAliasCache:\n\t| { cwd: string; aliases: AliasEntry[]; baseUrl: string }\n\t| undefined;\n\nconst stripJsonComments = (source: string) =>\n\tsource.replace(/\\/\\*[\\s\\S]*?\\*\\//g, '').replace(/(^|[^:])\\/\\/.*$/gm, '$1');\n\nconst normalizeAliasEntries = (\n\taliases: Record<string, string | string[]> | undefined\n) =>\n\tObject.entries(aliases ?? {}).map(([pattern, value]) => ({\n\t\tpattern,\n\t\treplacements: Array.isArray(value) ? value : [value]\n\t}));\n\nconst readTsconfigAliases = () => {\n\tconst cwd = process.cwd();\n\tif (tsconfigAliasCache?.cwd === cwd) return tsconfigAliasCache;\n\n\tconst tsconfigPath = resolve(cwd, 'tsconfig.json');\n\tconst empty = { aliases: [], baseUrl: cwd, cwd };\n\tif (!existsSync(tsconfigPath)) {\n\t\ttsconfigAliasCache = empty;\n\t\treturn empty;\n\t}\n\n\ttry {\n\t\tconst parsed = JSON.parse(\n\t\t\tstripJsonComments(readFileSync(tsconfigPath, 'utf-8'))\n\t\t);\n\t\tconst compilerOptions = parsed.compilerOptions ?? {};\n\t\tconst baseUrl = resolve(cwd, compilerOptions.baseUrl ?? '.');\n\t\ttsconfigAliasCache = {\n\t\t\taliases: normalizeAliasEntries(compilerOptions.paths),\n\t\t\tbaseUrl,\n\t\t\tcwd\n\t\t};\n\t} catch {\n\t\ttsconfigAliasCache = empty;\n\t}\n\n\treturn tsconfigAliasCache;\n};\n\nconst getAliasEntries = (config: StylePreprocessorConfig | undefined) => {\n\tconst tsconfig = readTsconfigAliases();\n\treturn {\n\t\taliases: [\n\t\t\t...normalizeAliasEntries(config?.aliases),\n\t\t\t...tsconfig.aliases\n\t\t],\n\t\tbaseUrl: tsconfig.baseUrl\n\t};\n};\n\nconst aliasPatternToRegExp = (pattern: string) =>\n\tnew RegExp(\n\t\t`^${pattern\n\t\t\t.split('*')\n\t\t\t.map((part) => part.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'))\n\t\t\t.join('(.+)')}$`\n\t);\n\nconst resolveAliasTargets = (\n\tspecifier: string,\n\tconfig: StylePreprocessorConfig | undefined\n) => {\n\tconst { aliases, baseUrl } = getAliasEntries(config);\n\tconst targets: string[] = [];\n\n\tfor (const alias of aliases) {\n\t\tconst match = specifier.match(aliasPatternToRegExp(alias.pattern));\n\t\tif (!match) continue;\n\t\tconst wildcard = match[1] ?? '';\n\t\tfor (const replacement of alias.replacements) {\n\t\t\ttargets.push(resolve(baseUrl, replacement.replace('*', wildcard)));\n\t\t}\n\t}\n\n\treturn targets;\n};\n\nconst getLanguageExtensions = (language: StyleLanguage) => {\n\tif (language === 'less') return ['.less', '.css'];\n\tif (language === 'stylus') return ['.styl', '.stylus', '.css'];\n\treturn ['.scss', '.sass', '.css'];\n};\n\nconst getCandidatePaths = (basePath: string, language: StyleLanguage) => {\n\tconst ext = extname(basePath);\n\tconst paths = ext\n\t\t? [basePath]\n\t\t: getLanguageExtensions(language).flatMap((extension) => [\n\t\t\t\t`${basePath}${extension}`,\n\t\t\t\tjoin(basePath, `index${extension}`)\n\t\t\t]);\n\n\tif (language === 'scss' || language === 'sass') {\n\t\treturn paths.flatMap((path) => {\n\t\t\tconst dir = dirname(path);\n\t\t\tconst base = path.slice(dir.length + 1);\n\t\t\treturn [path, join(dir, `_${base}`)];\n\t\t});\n\t}\n\n\treturn paths;\n};\n\nconst resolveImportPath = (\n\tspecifier: string,\n\tfromDirectory: string,\n\tloadPaths: string[],\n\tlanguage: StyleLanguage,\n\tconfig: StylePreprocessorConfig | undefined\n) => {\n\tconst rawCandidates = [\n\t\t...resolveAliasTargets(specifier, config),\n\t\tisAbsolute(specifier) ? specifier : resolve(fromDirectory, specifier),\n\t\t...loadPaths.map((path) => resolve(path, specifier))\n\t];\n\n\tfor (const candidate of rawCandidates.flatMap((path) =>\n\t\tgetCandidatePaths(path, language)\n\t)) {\n\t\tif (existsSync(candidate)) return candidate;\n\t}\n\n\treturn null;\n};\n\nconst isExternalCssUrl = (url: string) =>\n\t/^(?:[a-z][a-z0-9+.-]*:|\\/\\/|#|\\/)/i.test(url);\n\nconst splitCssUrl = (url: string) => {\n\tconst markerIndex = url.search(/[?#]/);\n\tif (markerIndex === -1) return { marker: '', path: url };\n\treturn {\n\t\tmarker: url.slice(markerIndex),\n\t\tpath: url.slice(0, markerIndex)\n\t};\n};\n\nconst rebaseCssUrls = (\n\tcontents: string,\n\tsourceFile: string,\n\tentryFile: string\n) => {\n\tconst sourceDir = dirname(sourceFile);\n\tconst entryDir = dirname(entryFile);\n\tif (sourceDir === entryDir) return contents;\n\n\treturn contents.replace(\n\t\t/url\\(\\s*(['\"]?)([^'\")]+)\\1\\s*\\)/gi,\n\t\t(match, quote: string, rawUrl: string) => {\n\t\t\tconst trimmedUrl = rawUrl.trim();\n\t\t\tif (!trimmedUrl || isExternalCssUrl(trimmedUrl)) return match;\n\t\t\tconst { marker, path } = splitCssUrl(trimmedUrl);\n\t\t\tconst rebased = relative(\n\t\t\t\tentryDir,\n\t\t\t\tresolve(sourceDir, path)\n\t\t\t).replace(/\\\\/g, '/');\n\t\t\tconst normalized = rebased.startsWith('.')\n\t\t\t\t? rebased\n\t\t\t\t: `./${rebased}`;\n\t\t\tconst nextQuote = quote || '\"';\n\t\t\treturn `url(${nextQuote}${normalized}${marker}${nextQuote})`;\n\t\t}\n\t);\n};\n\nconst rewriteAliasedStyleImports = (\n\tcontents: string,\n\tsourceFile: string,\n\tloadPaths: string[],\n\tlanguage: StyleLanguage,\n\tconfig: StylePreprocessorConfig | undefined\n) =>\n\tcontents.replace(\n\t\t/(@(?:use|forward|import|require)\\s+)([\"'])([^\"']+)\\2/g,\n\t\t(match, prefix: string, quote: string, specifier: string) => {\n\t\t\tif (\n\t\t\t\tspecifier.startsWith('.') ||\n\t\t\t\tisAbsolute(specifier) ||\n\t\t\t\tisExternalCssUrl(specifier)\n\t\t\t)\n\t\t\t\treturn match;\n\n\t\t\tconst resolved = resolveImportPath(\n\t\t\t\tspecifier,\n\t\t\t\tdirname(sourceFile),\n\t\t\t\tloadPaths,\n\t\t\t\tlanguage,\n\t\t\t\tconfig\n\t\t\t);\n\t\t\treturn resolved ? `${prefix}${quote}${resolved}${quote}` : match;\n\t\t}\n\t);\n\nconst preprocessLoadedStyle = (\n\tcontents: string,\n\tsourceFile: string,\n\tentryFile: string,\n\tloadPaths: string[] = [],\n\tlanguage?: StyleLanguage,\n\tconfig?: StylePreprocessorConfig\n) => {\n\tconst rebased = rebaseCssUrls(contents, sourceFile, entryFile);\n\treturn language\n\t\t? rewriteAliasedStyleImports(\n\t\t\t\trebased,\n\t\t\t\tsourceFile,\n\t\t\t\tloadPaths,\n\t\t\t\tlanguage,\n\t\t\t\tconfig\n\t\t\t)\n\t\t: rebased;\n};\n\nconst extractCssModuleExports = (css: string) => {\n\tconst exports: Record<string, string> = {};\n\tconst nextCss = css.replace(/:export\\s*\\{([^}]*)\\}/g, (_, body: string) => {\n\t\tfor (const declaration of body.split(';')) {\n\t\t\tconst separator = declaration.indexOf(':');\n\t\t\tif (separator === -1) continue;\n\t\t\tconst key = declaration.slice(0, separator).trim();\n\t\t\tconst value = declaration.slice(separator + 1).trim();\n\t\t\tif (key && value) exports[key] = value;\n\t\t}\n\t\treturn '';\n\t});\n\n\treturn { css: nextCss, exports };\n};\n\nconst getSassOptions = (\n\tconfig: StylePreprocessorConfig | undefined,\n\tlanguage: 'sass' | 'scss'\n): SassPreprocessorOptions => ({\n\t...(config?.sass ?? {}),\n\t...(language === 'scss' ? (config?.scss ?? {}) : {})\n});\n\nconst getLessOptions = (\n\tconfig: StylePreprocessorConfig | undefined\n): LessPreprocessorOptions => config?.less ?? {};\n\nconst getStylusOptions = (\n\tconfig: StylePreprocessorConfig | undefined\n): StylusPreprocessorOptions => config?.stylus ?? {};\n\nexport const createStyleTransformConfig = (\n\tstylePreprocessors?: StylePreprocessorConfig,\n\tpostcss?: PostCSSConfig\n): StylePreprocessorConfig | undefined =>\n\tpostcss === undefined\n\t\t? stylePreprocessors\n\t\t: { ...(stylePreprocessors ?? {}), postcss };\n\nconst withAdditionalData = (\n\tcontents: string,\n\tadditionalData: string | undefined\n) => (additionalData ? `${additionalData}\\n${contents}` : contents);\n\ntype PostCSSRuntimeConfig = {\n\toptions?: Record<string, unknown>;\n\tplugins?: unknown[] | Record<string, unknown>;\n};\n\nconst normalizePostcssModule = (mod: unknown) => {\n\tif (mod && typeof mod === 'object' && 'default' in mod) {\n\t\treturn (mod as { default?: unknown }).default ?? mod;\n\t}\n\n\treturn mod;\n};\n\nconst loadPostcssConfigFile = async (\n\tconfigPath: string\n): Promise<PostCSSRuntimeConfig> => {\n\tconst resolved = resolve(process.cwd(), configPath);\n\tconst loaded =\n\t\tresolved.endsWith('.cjs') || resolved.endsWith('.cts')\n\t\t\t? requireOptionalPeerSync<unknown>(resolved)\n\t\t\t: await importOptionalPeer<unknown>(\n\t\t\t\t\t`${new URL(`file://${resolved}`).href}?t=${Date.now()}`\n\t\t\t\t);\n\tconst config = normalizePostcssModule(loaded);\n\tconst value =\n\t\ttypeof config === 'function'\n\t\t\t? await (\n\t\t\t\t\tconfig as (context: {\n\t\t\t\t\t\tcwd: string;\n\t\t\t\t\t\tenv?: string;\n\t\t\t\t\t}) => unknown\n\t\t\t\t)({\n\t\t\t\t\tcwd: process.cwd(),\n\t\t\t\t\tenv: process.env.NODE_ENV\n\t\t\t\t})\n\t\t\t: config;\n\n\treturn (normalizePostcssModule(value) ?? {}) as PostCSSRuntimeConfig;\n};\n\nconst normalizePostcssPlugins = (\n\tplugins: unknown[] | Record<string, unknown> | undefined\n) => {\n\tif (!plugins) return [];\n\tif (Array.isArray(plugins)) return plugins.filter(Boolean);\n\n\tconst resolved: unknown[] = [];\n\tfor (const [specifier, options] of Object.entries(plugins)) {\n\t\tif (options === false) continue;\n\t\tconst mod = normalizePostcssModule(\n\t\t\trequireOptionalPeerSync<unknown>(specifier)\n\t\t);\n\t\tconst plugin =\n\t\t\ttypeof mod === 'function'\n\t\t\t\t? (mod as (options?: unknown) => unknown)(\n\t\t\t\t\t\toptions === true ? undefined : options\n\t\t\t\t\t)\n\t\t\t\t: mod;\n\t\tif (plugin) resolved.push(plugin);\n\t}\n\n\treturn resolved;\n};\n\nconst resolvePostcssConfig = async (\n\tconfig: StylePreprocessorConfig | undefined\n) => {\n\tconst inlineConfig = config?.postcss;\n\tif (!inlineConfig) return null;\n\n\tconst fileConfig = inlineConfig.config\n\t\t? await loadPostcssConfigFile(inlineConfig.config)\n\t\t: {};\n\tconst plugins = [\n\t\t...normalizePostcssPlugins(fileConfig.plugins),\n\t\t...normalizePostcssPlugins(inlineConfig.plugins)\n\t];\n\n\tif (plugins.length === 0) return null;\n\n\treturn {\n\t\toptions: {\n\t\t\t...(fileConfig.options ?? {}),\n\t\t\t...(inlineConfig.options ?? {})\n\t\t},\n\t\tplugins\n\t};\n};\n\nconst runPostcss = async (\n\tcss: string,\n\tfilePath: string,\n\tconfig: StylePreprocessorConfig | undefined\n) => {\n\tconst postcssConfig = await resolvePostcssConfig(config);\n\tif (!postcssConfig) return css;\n\n\tlet postcssModule: typeof import('postcss') & {\n\t\tdefault?: typeof import('postcss');\n\t};\n\ttry {\n\t\tpostcssModule =\n\t\t\tawait importOptionalPeer<typeof postcssModule>('postcss');\n\t} catch {\n\t\tthrow missingDependencyError('postcss', filePath);\n\t}\n\tconst postcss = postcssModule.default ?? postcssModule;\n\tconst result = await postcss(\n\t\tpostcssConfig.plugins as import('postcss').AcceptedPlugin[]\n\t).process(css, {\n\t\tfrom: filePath,\n\t\tmap: false,\n\t\t...postcssConfig.options\n\t});\n\n\treturn result.css;\n};\n\nconst createSassImporter = (\n\tentryFile: string,\n\tloadPaths: string[],\n\tlanguage: 'sass' | 'scss',\n\tconfig: StylePreprocessorConfig | undefined,\n\tdeps?: Set<string>\n) => ({\n\tcanonicalize(specifier: string, options: { containingUrl?: URL | null }) {\n\t\tconst fromDirectory = options.containingUrl\n\t\t\t? dirname(fileURLToPath(options.containingUrl))\n\t\t\t: dirname(entryFile);\n\t\tconst resolved = resolveImportPath(\n\t\t\tspecifier,\n\t\t\tfromDirectory,\n\t\t\tloadPaths,\n\t\t\tlanguage,\n\t\t\tconfig\n\t\t);\n\t\treturn resolved ? new URL(`file://${resolved}`) : null;\n\t},\n\tload(canonicalUrl: URL) {\n\t\tconst filePath = fileURLToPath(canonicalUrl);\n\t\tdeps?.add(filePath);\n\t\tconst fileLanguage = getStyleLanguage(filePath);\n\t\tif (\n\t\t\tfileLanguage !== 'scss' &&\n\t\t\tfileLanguage !== 'sass' &&\n\t\t\tfileLanguage !== null\n\t\t)\n\t\t\treturn null;\n\n\t\treturn {\n\t\t\tcontents: preprocessLoadedStyle(\n\t\t\t\treadFileSync(filePath, 'utf-8'),\n\t\t\t\tfilePath,\n\t\t\t\tentryFile,\n\t\t\t\tloadPaths,\n\t\t\t\tlanguage,\n\t\t\t\tconfig\n\t\t\t),\n\t\t\tsyntax: filePath.endsWith('.sass')\n\t\t\t\t? ('indented' as const)\n\t\t\t\t: ('scss' as const)\n\t\t};\n\t}\n});\n\nconst createLessFileManager = (\n\tentryFile: string,\n\tloadPaths: string[],\n\tconfig: StylePreprocessorConfig | undefined,\n\tdeps?: Set<string>\n) => ({\n\tinstall(\n\t\tless: { FileManager: new () => Record<string, unknown> },\n\t\tpluginManager: { addFileManager(manager: unknown): void }\n\t) {\n\t\tconst baseManager = new less.FileManager();\n\t\tconst manager = Object.create(baseManager) as Record<string, unknown>;\n\t\tmanager.supports = (filename: string, currentDirectory: string) =>\n\t\t\tBoolean(\n\t\t\t\tresolveImportPath(\n\t\t\t\t\tfilename,\n\t\t\t\t\tresolve(currentDirectory),\n\t\t\t\t\tloadPaths,\n\t\t\t\t\t'less',\n\t\t\t\t\tconfig\n\t\t\t\t)\n\t\t\t);\n\t\tmanager.loadFile = async (\n\t\t\tfilename: string,\n\t\t\tcurrentDirectory: string\n\t\t) => {\n\t\t\tconst resolved = resolveImportPath(\n\t\t\t\tfilename,\n\t\t\t\tresolve(currentDirectory),\n\t\t\t\tloadPaths,\n\t\t\t\t'less',\n\t\t\t\tconfig\n\t\t\t);\n\t\t\tif (!resolved) {\n\t\t\t\tthrow new Error(`Unable to resolve Less import \"${filename}\"`);\n\t\t\t}\n\t\t\tdeps?.add(resolved);\n\n\t\t\treturn {\n\t\t\t\tcontents: preprocessLoadedStyle(\n\t\t\t\t\tawait readFile(resolved, 'utf-8'),\n\t\t\t\t\tresolved,\n\t\t\t\t\tentryFile,\n\t\t\t\t\tloadPaths,\n\t\t\t\t\t'less',\n\t\t\t\t\tconfig\n\t\t\t\t),\n\t\t\t\tfilename: resolved\n\t\t\t};\n\t\t};\n\t\tpluginManager.addFileManager(manager);\n\t}\n});\n\nconst renderStylus = async (\n\tcontents: string,\n\tfilePath: string,\n\tloadPaths: string[],\n\toptions: StylusPreprocessorOptions,\n\tdeps?: Set<string>\n) => {\n\tlet stylus: typeof import('stylus');\n\ttry {\n\t\tconst stylusModule = await importOptionalPeer<\n\t\t\ttypeof import('stylus') & { default?: typeof import('stylus') }\n\t\t>('stylus');\n\t\tstylus = stylusModule.default ?? stylusModule;\n\t} catch {\n\t\tthrow missingDependencyError('stylus', filePath);\n\t}\n\n\treturn new Promise<string>((resolveCss, reject) => {\n\t\tconst renderer = stylus(contents);\n\t\trenderer.set('filename', filePath);\n\t\tfor (const [key, value] of Object.entries(options.options ?? {})) {\n\t\t\trenderer.set(key, value);\n\t\t}\n\t\tfor (const path of loadPaths) renderer.include(path);\n\t\trenderer.render((error, css) => {\n\t\t\tif (error) {\n\t\t\t\treject(error);\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Stylus exposes its dependency list after a successful render.\n\t\t\tif (deps) {\n\t\t\t\tconst stylusDeps = (\n\t\t\t\t\trenderer as unknown as { deps?: () => string[] }\n\t\t\t\t).deps?.();\n\t\t\t\tif (Array.isArray(stylusDeps)) {\n\t\t\t\t\tfor (const dep of stylusDeps) deps.add(resolve(dep));\n\t\t\t\t}\n\t\t\t}\n\t\t\tresolveCss(css ?? '');\n\t\t});\n\t});\n};\n\n/* Compile-time bookkeeping shared with the dev server.\n\n `styleDependencyGraph` maps every entry stylesheet (anything that ran\n through `compileStyleSource`) to the absolute paths of every partial\n it imported during that compile. The dev rebuild trigger reads this to\n know which entries to invalidate when a partial like `_tokens.scss`\n changes.\n\n `styleOutputHashes` records the SHA-1 of each entry's last-emitted CSS\n so callers can skip re-broadcasting / re-writing identical output. */\nconst styleDependencyGraph = new Map<string, Set<string>>();\nconst styleOutputHashes = new Map<string, string>();\n\nconst recordStyleDeps = (entry: string, deps: Set<string>) => {\n\tconst key = resolve(entry);\n\tconst stripped = new Set<string>();\n\tfor (const dep of deps) {\n\t\tconst resolved = resolve(dep);\n\t\tif (resolved !== key) stripped.add(resolved);\n\t}\n\tstyleDependencyGraph.set(key, stripped);\n};\n\n/* Record that a JS/TS/Vue/Svelte/etc. file imports a stylesheet (typically\n a `.module.scss` or other style import via JS). This is the JS-side dep\n tracking that complements the CSS-side `@import` graph: when the style\n file changes, the dev server uses `findStyleEntriesImporting` to find\n the JS file that imports it and queues that for rebuild. Without this,\n editing `Foo.module.scss` would only re-emit the CSS module's own\n compiled output without re-running the bundler against the importing\n component, so the new hashed class names never reach the bundle. */\nexport const addStyleImporter = (importerPath: string, stylePath: string) => {\n\tconst key = resolve(importerPath);\n\tconst target = resolve(stylePath);\n\tconst deps = styleDependencyGraph.get(key) ?? new Set<string>();\n\tdeps.add(target);\n\tstyleDependencyGraph.set(key, deps);\n};\n\n/* Files that import the given path. Used by the dev server to rebuild\n importers when a partial changes — there's no import-graph traversal,\n so callers should pass already-resolved absolute paths. */\nexport const findStyleEntriesImporting = (changedPath: string) => {\n\tconst target = resolve(changedPath);\n\tconst importers: string[] = [];\n\tfor (const [entry, deps] of styleDependencyGraph) {\n\t\tif (deps.has(target)) importers.push(entry);\n\t}\n\n\treturn importers;\n};\n\n/* Hash the just-emitted CSS for an entry; returns `true` only when the\n output actually differs from the previous compile. The dev path uses\n this to suppress style-update broadcasts on whitespace-only edits. */\nexport const recordStyleOutput = (entry: string, css: string) => {\n\tconst key = resolve(entry);\n\tconst hash = createHash('sha1').update(css).digest('hex');\n\tconst previous = styleOutputHashes.get(key);\n\tstyleOutputHashes.set(key, hash);\n\n\treturn previous !== hash;\n};\n\n/* Drop cached state for an entry — used when the file is deleted or the\n dev server is shutting down. */\nexport const forgetStyleEntry = (entry: string) => {\n\tconst key = resolve(entry);\n\tstyleDependencyGraph.delete(key);\n\tstyleOutputHashes.delete(key);\n};\n\nexport const compileStyleSource = async (\n\tfilePath: string,\n\tsource?: string,\n\tlanguageHint?: string,\n\tconfig?: StylePreprocessorConfig\n) => {\n\tconst language = getStyleLanguage(languageHint ?? filePath);\n\tconst rawContents = source ?? (await readFile(filePath, 'utf-8'));\n\t// Collect every partial / @import / @use that the compiler touches.\n\t// Stored on `styleDependencyGraph` after compile so the dev server\n\t// can invalidate this entry when one of its imports changes.\n\tconst deps = new Set<string>();\n\n\tif (language === 'scss' || language === 'sass') {\n\t\tconst options = getSassOptions(config, language);\n\t\tconst packageName = options.implementation ?? 'sass';\n\t\tlet sass: typeof import('sass');\n\t\ttry {\n\t\t\tsass = await importOptionalPeer<typeof import('sass')>(packageName);\n\t\t} catch {\n\t\t\tthrow missingDependencyError(packageName, filePath);\n\t\t}\n\n\t\tconst contents = withAdditionalData(\n\t\t\trawContents,\n\t\t\toptions.additionalData\n\t\t);\n\t\tconst loadPaths = normalizeLoadPaths(filePath, options.loadPaths);\n\t\ttry {\n\t\t\tconst result = sass.compileString(contents, {\n\t\t\t\timporters: [\n\t\t\t\t\tcreateSassImporter(\n\t\t\t\t\t\tfilePath,\n\t\t\t\t\t\tloadPaths,\n\t\t\t\t\t\tlanguage,\n\t\t\t\t\t\tconfig,\n\t\t\t\t\t\tdeps\n\t\t\t\t\t)\n\t\t\t\t],\n\t\t\t\tloadPaths,\n\t\t\t\tstyle: 'expanded',\n\t\t\t\tsyntax: language === 'sass' ? 'indented' : 'scss',\n\t\t\t\turl: new URL(`file://${filePath}`)\n\t\t\t});\n\n\t\t\tconst css = await runPostcss(result.css, filePath, config);\n\t\t\trecordStyleDeps(filePath, deps);\n\n\t\t\treturn css;\n\t\t} catch (error) {\n\t\t\tthrowPreprocessorError(error, filePath, language);\n\t\t}\n\t}\n\n\tif (language === 'less') {\n\t\tconst options = getLessOptions(config);\n\t\ttype LessRender = typeof import('less').render;\n\t\tlet lessModule: {\n\t\t\tdefault?: { render: LessRender };\n\t\t\trender?: LessRender;\n\t\t};\n\t\ttry {\n\t\t\tlessModule = await importOptionalPeer<typeof lessModule>('less');\n\t\t} catch {\n\t\t\tthrow missingDependencyError('less', filePath);\n\t\t}\n\t\tconst less = lessModule.render ? lessModule : lessModule.default;\n\t\tconst render = less?.render;\n\t\tif (!render) throw missingDependencyError('less', filePath);\n\n\t\tconst contents = withAdditionalData(\n\t\t\trawContents,\n\t\t\toptions.additionalData\n\t\t);\n\t\tconst loadPaths = normalizeLoadPaths(filePath, options.paths);\n\t\ttry {\n\t\t\tconst result = await render(contents, {\n\t\t\t\t...(options.options ?? {}),\n\t\t\t\tfilename: filePath,\n\t\t\t\tpaths: loadPaths,\n\t\t\t\tplugins: [\n\t\t\t\t\t...((options.options?.plugins as unknown[]) ?? []),\n\t\t\t\t\tcreateLessFileManager(filePath, loadPaths, config, deps)\n\t\t\t\t]\n\t\t\t});\n\n\t\t\tconst css = await runPostcss(result.css, filePath, config);\n\t\t\trecordStyleDeps(filePath, deps);\n\n\t\t\treturn css;\n\t\t} catch (error) {\n\t\t\tthrowPreprocessorError(error, filePath, 'less');\n\t\t}\n\t}\n\n\tif (language === 'stylus') {\n\t\tconst options = getStylusOptions(config);\n\t\tconst loadPaths = normalizeLoadPaths(filePath, options.paths);\n\t\tconst contents = withAdditionalData(\n\t\t\tpreprocessLoadedStyle(\n\t\t\t\trawContents,\n\t\t\t\tfilePath,\n\t\t\t\tfilePath,\n\t\t\t\tloadPaths,\n\t\t\t\t'stylus',\n\t\t\t\tconfig\n\t\t\t),\n\t\t\toptions.additionalData\n\t\t);\n\n\t\ttry {\n\t\t\tconst css = await runPostcss(\n\t\t\t\tawait renderStylus(\n\t\t\t\t\tcontents,\n\t\t\t\t\tfilePath,\n\t\t\t\t\tloadPaths,\n\t\t\t\t\toptions,\n\t\t\t\t\tdeps\n\t\t\t\t),\n\t\t\t\tfilePath,\n\t\t\t\tconfig\n\t\t\t);\n\t\t\trecordStyleDeps(filePath, deps);\n\n\t\t\treturn css;\n\t\t} catch (error) {\n\t\t\tthrowPreprocessorError(error, filePath, 'stylus');\n\t\t}\n\t}\n\n\treturn runPostcss(rawContents, filePath, config);\n};\n\nexport const createStylePreprocessorPlugin = (\n\tconfig?: StylePreprocessorConfig\n): BunPlugin => ({\n\tname: 'absolute-style-preprocessor',\n\tsetup(build) {\n\t\tconst cssModuleSources = new Map<\n\t\t\tstring,\n\t\t\t{ css: string; exports: Record<string, string> }\n\t\t>();\n\n\t\tbuild.onResolve({ filter: /^absolute-style-module:/ }, ({ path }) => ({\n\t\t\tnamespace: 'absolute-style-module',\n\t\t\tpath: path.slice('absolute-style-module:'.length)\n\t\t}));\n\n\t\tbuild.onLoad(\n\t\t\t{ filter: /\\.module\\.css$/i, namespace: 'absolute-style-module' },\n\t\t\tasync ({ path }) => {\n\t\t\t\tconst source = cssModuleSources.get(path);\n\t\t\t\tif (!source) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Unable to resolve CSS module source for ${path}`\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tcontents: source.css,\n\t\t\t\t\tloader: 'css'\n\t\t\t\t};\n\t\t\t}\n\t\t);\n\n\t\tbuild.onLoad({ filter: STYLE_EXTENSION_PATTERN }, async ({ path }) => {\n\t\t\tif (isStyleModulePath(path)) {\n\t\t\t\tconst cssModulePath = path.replace(\n\t\t\t\t\tSTYLE_EXTENSION_PATTERN,\n\t\t\t\t\t'.css'\n\t\t\t\t);\n\t\t\t\tconst compiled = await compileStyleSource(\n\t\t\t\t\tpath,\n\t\t\t\t\tundefined,\n\t\t\t\t\tundefined,\n\t\t\t\t\tconfig\n\t\t\t\t);\n\t\t\t\tconst { css, exports } = extractCssModuleExports(compiled);\n\t\t\t\tcssModuleSources.set(cssModulePath, { css, exports });\n\t\t\t\tconst exportSource =\n\t\t\t\t\tObject.keys(exports).length > 0\n\t\t\t\t\t\t? `import styles from ${JSON.stringify(`absolute-style-module:${cssModulePath}`)}; export default Object.assign({}, styles, ${JSON.stringify(exports)});`\n\t\t\t\t\t\t: `export { default } from ${JSON.stringify(`absolute-style-module:${cssModulePath}`)};`;\n\n\t\t\t\treturn {\n\t\t\t\t\tcontents: exportSource,\n\t\t\t\t\tloader: 'js'\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcontents: await compileStyleSource(\n\t\t\t\t\tpath,\n\t\t\t\t\tundefined,\n\t\t\t\t\tundefined,\n\t\t\t\t\tconfig\n\t\t\t\t),\n\t\t\t\tloader: 'css'\n\t\t\t};\n\t\t});\n\n\t\tbuild.onLoad({ filter: CSS_EXTENSION_PATTERN }, async ({ path }) => ({\n\t\t\tcontents: await compileStyleSource(\n\t\t\t\tpath,\n\t\t\t\tundefined,\n\t\t\t\tundefined,\n\t\t\t\tconfig\n\t\t\t),\n\t\t\tloader: 'css'\n\t\t}));\n\t}\n});\n\nexport const stylePreprocessorPlugin = createStylePreprocessorPlugin();\n\nexport const createSvelteStylePreprocessor = (\n\tconfig?: StylePreprocessorConfig\n) => ({\n\tstyle: async ({\n\t\tattributes,\n\t\tcontent,\n\t\tfilename\n\t}: {\n\t\tattributes: Record<string, string | boolean>;\n\t\tcontent: string;\n\t\tfilename?: string;\n\t}) => {\n\t\tconst language =\n\t\t\ttypeof attributes.lang === 'string'\n\t\t\t\t? attributes.lang\n\t\t\t\t: typeof attributes.type === 'string'\n\t\t\t\t\t? attributes.type.replace(/^text\\//, '')\n\t\t\t\t\t: null;\n\t\tif (!language || !STYLE_LANGUAGE_PATTERN.test(language)) return;\n\n\t\tconst path = filename ?? `style.${language}`;\n\n\t\treturn {\n\t\t\tcode: await compileStyleSource(path, content, language, config)\n\t\t};\n\t}\n});\n\nexport const compileStyleFileIfNeeded = async (\n\tfilePath: string,\n\tconfig?: StylePreprocessorConfig\n) => {\n\tif (!isPreprocessableStylePath(filePath)) {\n\t\treturn runPostcss(await readFile(filePath, 'utf-8'), filePath, config);\n\t}\n\n\treturn compileStyleSource(filePath, undefined, undefined, config);\n};\n\nexport const compileStyleFileIfNeededSync = (\n\tfilePath: string,\n\tconfig?: StylePreprocessorConfig\n) => {\n\tconst rawContents = readFileSync(filePath, 'utf-8');\n\tconst language = getStyleLanguage(filePath);\n\tif (config?.postcss) {\n\t\tthrow new Error(\n\t\t\t`Unable to compile ${filePath}: PostCSS preprocessing is async-only.`\n\t\t);\n\t}\n\tif (language === 'scss' || language === 'sass') {\n\t\tconst options = getSassOptions(config, language);\n\t\tconst packageName = options.implementation ?? 'sass';\n\t\tlet sass: typeof import('sass');\n\t\ttry {\n\t\t\tsass = requireOptionalPeerSync<typeof import('sass')>(packageName);\n\t\t} catch {\n\t\t\tthrow missingDependencyError(packageName, filePath);\n\t\t}\n\n\t\tconst contents = withAdditionalData(\n\t\t\trawContents,\n\t\t\toptions.additionalData\n\t\t);\n\t\tconst loadPaths = normalizeLoadPaths(filePath, options.loadPaths);\n\t\treturn sass.compileString(contents, {\n\t\t\timporters: [\n\t\t\t\tcreateSassImporter(filePath, loadPaths, language, config)\n\t\t\t],\n\t\t\tloadPaths,\n\t\t\tstyle: 'expanded',\n\t\t\tsyntax: language === 'sass' ? 'indented' : 'scss',\n\t\t\turl: new URL(`file://${filePath}`)\n\t\t}).css;\n\t}\n\tif (language === 'less') {\n\t\tthrow new Error(\n\t\t\t`Unable to compile ${filePath}: Less styleUrl preprocessing is async-only. Import the Less file from a bundled entrypoint or use SCSS/CSS for Angular styleUrl.`\n\t\t);\n\t}\n\tif (language === 'stylus') {\n\t\tthrow new Error(\n\t\t\t`Unable to compile ${filePath}: Stylus styleUrl preprocessing is async-only. Import the Stylus file from a bundled entrypoint or use SCSS/CSS for Angular styleUrl.`\n\t\t);\n\t}\n\n\treturn rawContents;\n};\n\nexport const getCssOutputExtension = (filePath: string) =>\n\tisPreprocessableStylePath(filePath) ? '.css' : extname(filePath);\n",
|
|
34
|
+
"import type { Dirent } from 'node:fs';\nimport { mkdir, readdir } from 'node:fs/promises';\nimport { basename, dirname, extname, join, relative, resolve } from 'node:path';\nimport { resolvePackageImport } from '../build/resolvePackageImport';\nimport { lowerSvelteIslandSyntax } from '../svelte/lowerIslandSyntax';\nimport { lowerSvelteAwaitSlotSyntax } from '../svelte/lowerAwaitSlotSyntax';\nimport { createSvelteStylePreprocessor } from '../build/stylePreprocessor';\n\nconst serverCacheRoot = join(process.cwd(), '.absolutejs', 'islands', 'svelte');\n\nconst compiledModuleCache = new Map<string, string>();\nconst originalSourcePathCache = new Map<string, string>();\n\nconst transpiler = new Bun.Transpiler({\n\tloader: 'ts',\n\ttarget: 'browser'\n});\n\nconst ensureRelativeImportPath = (from: string, target: string) => {\n\tconst importPath = relative(dirname(from), target).replace(/\\\\/g, '/');\n\n\treturn importPath.startsWith('.') ? importPath : `./${importPath}`;\n};\n\nconst processDirectoryEntries = (\n\tentries: Dirent<string>[],\n\tdir: string,\n\ttargetFileName: string,\n\tstack: string[]\n) => {\n\tfor (const entry of entries) {\n\t\tconst entryPath = join(dir, entry.name);\n\t\tif (entry.isDirectory()) stack.push(entryPath);\n\n\t\tif (entry.isFile() && entry.name === targetFileName) {\n\t\t\treturn entryPath;\n\t\t}\n\t}\n\n\treturn null;\n};\n\nconst searchDirectoryLevel = async (dirs: string[], targetFileName: string) => {\n\tif (dirs.length === 0) return null;\n\n\tconst nextStack: string[] = [];\n\tconst dirEntries = await Promise.all(\n\t\tdirs.map(async (dir) => ({\n\t\t\tdir,\n\t\t\tentries: await readdir(dir, {\n\t\t\t\tencoding: 'utf-8',\n\t\t\t\twithFileTypes: true\n\t\t\t})\n\t\t}))\n\t);\n\n\tfor (const { dir, entries } of dirEntries) {\n\t\tconst found = processDirectoryEntries(\n\t\t\tentries,\n\t\t\tdir,\n\t\t\ttargetFileName,\n\t\t\tnextStack\n\t\t);\n\t\tif (found) return found;\n\t}\n\n\treturn searchDirectoryLevel(nextStack, targetFileName);\n};\n\nconst findSourceFileByBasename = async (\n\tsearchRoot: string,\n\ttargetFileName: string\n) => searchDirectoryLevel([searchRoot], targetFileName);\n\nconst normalizeBuiltSvelteFileName = (sourcePath: string) =>\n\tbasename(sourcePath).replace(/-[a-z0-9]{6,}(?=\\.svelte$)/i, '');\n\nconst resolveOriginalSourcePath = async (sourcePath: string) => {\n\tconst cachedPath = originalSourcePathCache.get(sourcePath);\n\tif (cachedPath !== undefined) {\n\t\treturn cachedPath;\n\t}\n\n\tif (\n\t\t!sourcePath.includes(\n\t\t\t`${join(process.cwd(), 'build')}${process.platform === 'win32' ? '' : '/'}`\n\t\t) &&\n\t\t!sourcePath.includes('/build/')\n\t) {\n\t\toriginalSourcePathCache.set(sourcePath, sourcePath);\n\n\t\treturn sourcePath;\n\t}\n\n\tconst resolvedSourcePath = await findSourceFileByBasename(\n\t\tjoin(process.cwd(), 'src'),\n\t\tnormalizeBuiltSvelteFileName(sourcePath)\n\t);\n\tconst nextPath = resolvedSourcePath ?? sourcePath;\n\toriginalSourcePathCache.set(sourcePath, nextPath);\n\n\treturn nextPath;\n};\n\nconst resolveRelativeModule = async (spec: string, from: string) => {\n\tif (!spec.startsWith('.')) {\n\t\treturn null;\n\t}\n\n\tconst basePath = resolve(dirname(from), spec);\n\tconst candidates = [\n\t\tbasePath,\n\t\t`${basePath}.ts`,\n\t\t`${basePath}.js`,\n\t\t`${basePath}.mjs`,\n\t\t`${basePath}.cjs`,\n\t\t`${basePath}.json`,\n\t\tjoin(basePath, 'index.ts'),\n\t\tjoin(basePath, 'index.js'),\n\t\tjoin(basePath, 'index.mjs'),\n\t\tjoin(basePath, 'index.cjs'),\n\t\tjoin(basePath, 'index.json')\n\t];\n\n\tconst existResults = await Promise.all(\n\t\tcandidates.map((candidate) => Bun.file(candidate).exists())\n\t);\n\tconst foundIndex = existResults.indexOf(true);\n\n\treturn foundIndex >= 0 ? (candidates[foundIndex] ?? null) : null;\n};\n\nconst getCachedModulePath = (sourcePath: string) => {\n\tconst relativeSourcePath = relative(process.cwd(), sourcePath).replace(\n\t\t/\\\\/g,\n\t\t'/'\n\t);\n\tconst normalizedSourcePath = relativeSourcePath.startsWith('..')\n\t\t? sourcePath.replace(/[:\\\\/]/g, '_')\n\t\t: relativeSourcePath;\n\n\treturn join(serverCacheRoot, `${normalizedSourcePath}.server.js`);\n};\n\nconst resolveSvelteImport = async (spec: string, from: string) => {\n\tif (!spec.startsWith('.') && !spec.startsWith('/')) {\n\t\tconst resolved = resolvePackageImport(spec);\n\n\t\treturn resolved && resolved.endsWith('.svelte') ? resolved : null;\n\t}\n\n\tif (spec.startsWith('/')) {\n\t\treturn spec;\n\t}\n\n\tif (!spec.startsWith('.')) {\n\t\treturn null;\n\t}\n\n\tconst explicitPath = resolve(dirname(from), spec);\n\tif (extname(explicitPath) === '.svelte') {\n\t\treturn explicitPath;\n\t}\n\n\tconst candidate = `${explicitPath}.svelte`;\n\tif ((await Bun.file(candidate).exists()) === true) {\n\t\treturn candidate;\n\t}\n\n\treturn null;\n};\n\nconst writeIfChanged = async (path: string, content: string) => {\n\tconst targetFile = Bun.file(path);\n\tconst exists = await targetFile.exists();\n\tif (exists) {\n\t\tconst currentContent = await targetFile.text();\n\t\tif (currentContent === content) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\tawait Bun.write(path, content);\n};\n\nexport const compileSvelteServerModule = async (sourcePath: string) => {\n\tconst cachedModulePath = compiledModuleCache.get(sourcePath);\n\tif (cachedModulePath) {\n\t\treturn cachedModulePath;\n\t}\n\n\tconst resolutionSourcePath = await resolveOriginalSourcePath(sourcePath);\n\tconst source = await Bun.file(sourcePath).text();\n\tconst { compile, preprocess } = await import('svelte/compiler');\n\tconst loweredAwaitSource = lowerSvelteAwaitSlotSyntax(source);\n\tconst loweredSource = lowerSvelteIslandSyntax(\n\t\tloweredAwaitSource.code,\n\t\t'server'\n\t);\n\tconst preprocessed = await preprocess(\n\t\tloweredSource.code,\n\t\tcreateSvelteStylePreprocessor()\n\t);\n\tlet transpiled =\n\t\tsourcePath.endsWith('.ts') || sourcePath.endsWith('.svelte.ts')\n\t\t\t? transpiler.transformSync(preprocessed.code)\n\t\t\t: preprocessed.code;\n\tconst childImportSpecs = Array.from(\n\t\ttranspiled.matchAll(/from\\s+['\"]([^'\"]+)['\"]/g)\n\t)\n\t\t.map((match) => match[1])\n\t\t.filter((value): value is string => value !== undefined);\n\tconst resolvedChildModules = await Promise.all(\n\t\tchildImportSpecs.map((spec) =>\n\t\t\tresolveSvelteImport(spec, resolutionSourcePath)\n\t\t)\n\t);\n\tconst resolvedModuleImports = await Promise.all(\n\t\tchildImportSpecs.map((spec) =>\n\t\t\tresolveRelativeModule(spec, resolutionSourcePath)\n\t\t)\n\t);\n\tconst childModulePaths = new Map<string, string>();\n\tconst rewrittenModulePaths = new Map<string, string>();\n\n\tconst compiledChildren = await Promise.all(\n\t\tchildImportSpecs.map(async (spec, index) => {\n\t\t\tconst resolvedChild = resolvedChildModules[index];\n\t\t\tif (!spec || !resolvedChild) return null;\n\n\t\t\treturn {\n\t\t\t\tcompiledPath: await compileSvelteServerModule(resolvedChild),\n\t\t\t\tresolvedChild,\n\t\t\t\tspec\n\t\t\t};\n\t\t})\n\t);\n\n\tfor (const result of compiledChildren) {\n\t\tif (!result) continue;\n\t\tchildModulePaths.set(result.spec, result.compiledPath);\n\t\tchildModulePaths.set(result.resolvedChild, result.compiledPath);\n\t}\n\n\tfor (let index = 0; index < childImportSpecs.length; index += 1) {\n\t\tconst spec = childImportSpecs[index];\n\t\tconst resolvedModuleImport = resolvedModuleImports[index];\n\t\tif (!spec || !resolvedModuleImport) continue;\n\t\tif (resolvedChildModules[index]) continue;\n\n\t\trewrittenModulePaths.set(\n\t\t\tspec,\n\t\t\tensureRelativeImportPath(\n\t\t\t\tgetCachedModulePath(sourcePath),\n\t\t\t\tresolvedModuleImport\n\t\t\t)\n\t\t);\n\t}\n\n\tfor (const [spec, resolvedModuleImport] of rewrittenModulePaths) {\n\t\ttranspiled = transpiled.replaceAll(spec, resolvedModuleImport);\n\t}\n\n\tlet compiledCode = compile(transpiled, {\n\t\tcss: 'injected',\n\t\texperimental: {\n\t\t\tasync: loweredAwaitSource.transformed || loweredSource.transformed\n\t\t},\n\t\tfilename: resolutionSourcePath,\n\t\tgenerate: 'server'\n\t}).js.code;\n\n\tfor (const [spec, compiledChildPath] of childModulePaths) {\n\t\tcompiledCode = compiledCode.replaceAll(\n\t\t\tspec,\n\t\t\tensureRelativeImportPath(\n\t\t\t\tgetCachedModulePath(sourcePath),\n\t\t\t\tcompiledChildPath\n\t\t\t)\n\t\t);\n\t}\n\n\tfor (const [spec, resolvedModuleImport] of rewrittenModulePaths) {\n\t\tcompiledCode = compiledCode.replaceAll(spec, resolvedModuleImport);\n\t}\n\n\tconst compiledModulePath = getCachedModulePath(sourcePath);\n\tawait mkdir(dirname(compiledModulePath), { recursive: true });\n\tawait writeIfChanged(compiledModulePath, compiledCode);\n\tcompiledModuleCache.set(sourcePath, compiledModulePath);\n\n\treturn compiledModulePath;\n};\n",
|
|
35
|
+
"import type { RuntimeIslandRenderProps } from '../../types/island';\nimport { serializeIslandProps } from './islands';\n\ntype IslandMarkerAttributes = {\n\t'data-component': string;\n\t'data-framework': string;\n\t'data-hydrate': string;\n\t'data-island': 'true';\n\t'data-island-id'?: string;\n\t'data-props': string;\n};\n\nexport const getIslandMarkerAttributes = (\n\tprops: RuntimeIslandRenderProps,\n\tislandId?: string\n): IslandMarkerAttributes => ({\n\t'data-component': props.component,\n\t'data-framework': props.framework,\n\t'data-hydrate': props.hydrate ?? 'load',\n\t'data-island': 'true',\n\t...(islandId ? { 'data-island-id': islandId } : {}),\n\t'data-props': serializeIslandProps(props.props)\n});\n\nconst escapeHtmlAttribute = (value: string) =>\n\tvalue\n\t\t.replaceAll('&', '&')\n\t\t.replaceAll('\"', '"')\n\t\t.replaceAll('<', '<')\n\t\t.replaceAll('>', '>');\n\nexport const serializeIslandAttributes = (attributes: Record<string, string>) =>\n\tObject.entries(attributes)\n\t\t.map(([key, value]) => `${key}=\"${escapeHtmlAttribute(value)}\"`)\n\t\t.join(' ');\n",
|
|
36
|
+
"import type {\n\tIslandRegistry,\n\tIslandRegistryInput,\n\tRuntimeIslandRenderProps\n} from '../../types/island';\nimport {\n\trenderAngularIslandToHtml,\n\trenderReactIslandToHtml,\n\trenderSvelteIslandToHtml,\n\trenderVueIslandToHtml\n} from './islandSsr';\nimport { compileSvelteServerModule } from './svelteServerModule';\nimport {\n\tgetIslandMarkerAttributes,\n\tserializeIslandAttributes\n} from './islandMarkupAttributes';\nimport { getIslandBuildReference, getIslandComponent } from './islands';\n\nlet islandSequence = 0;\nconst resolvedServerComponentCache = new Map<unknown, Promise<unknown>>();\nconst resolvedServerBuildComponentCache = new Map<string, Promise<unknown>>();\n\nconst nextIslandId = () => {\n\tislandSequence += 1;\n\n\treturn `island-${islandSequence}`;\n};\n\ntype AngularServerIslandComponent = import('@angular/core').Type<object>;\ntype ReactServerIslandComponent = import('react').ComponentType<\n\tRecord<string, unknown>\n>;\ntype SvelteServerIslandComponent = import('svelte').Component<\n\tRecord<string, unknown>\n>;\ntype VueServerIslandComponent = import('vue').Component<\n\tRecord<string, unknown>\n>;\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n\ttypeof value === 'object' && value !== null;\n\nconst isReactServerIslandComponent = (\n\tvalue: unknown\n): value is ReactServerIslandComponent => typeof value === 'function';\n\nconst isSvelteServerIslandComponent = (\n\tvalue: unknown\n): value is SvelteServerIslandComponent => typeof value === 'function';\n\nconst isVueServerIslandComponent = (\n\tvalue: unknown\n): value is VueServerIslandComponent =>\n\ttypeof value === 'function' || isRecord(value);\n\nconst isAngularServerIslandComponent = (\n\tvalue: unknown\n): value is AngularServerIslandComponent => typeof value === 'function';\n\nconst resolveBuildReferencePath = (source: string, registryPath: string) => {\n\tif (source.startsWith('file://')) return new URL(source).pathname;\n\tif (source.startsWith('.')) return new URL(source, registryPath).pathname;\n\n\treturn source;\n};\n\nconst loadAndCompileServerBuildComponent = async (\n\tbuildReferencePath: string\n) => {\n\tconst compiledModulePath =\n\t\tawait compileSvelteServerModule(buildReferencePath);\n\tconst loadedModule = await import(compiledModulePath);\n\n\treturn 'default' in loadedModule ? loadedModule.default : loadedModule;\n};\n\nconst loadServerBuildComponent = async (buildReferencePath: string) => {\n\tconst cachedBuildComponent =\n\t\tresolvedServerBuildComponentCache.get(buildReferencePath);\n\tif (cachedBuildComponent) {\n\t\treturn cachedBuildComponent;\n\t}\n\n\tconst loadPromise = loadAndCompileServerBuildComponent(buildReferencePath);\n\tresolvedServerBuildComponentCache.set(buildReferencePath, loadPromise);\n\n\treturn loadPromise;\n};\n\nconst loadServerImportComponent = async (\n\tresolvedComponent: string,\n\texportName?: string\n) => {\n\tconst resolvedModulePath = resolvedComponent.startsWith('.')\n\t\t? new URL(resolvedComponent, import.meta.url).pathname\n\t\t: resolvedComponent;\n\tconst importTarget = resolvedModulePath.endsWith('.svelte')\n\t\t? await compileSvelteServerModule(resolvedModulePath)\n\t\t: resolvedModulePath;\n\tconst loadedModule = await import(importTarget);\n\n\tif (exportName && exportName !== 'default' && exportName in loadedModule) {\n\t\treturn loadedModule[exportName];\n\t}\n\n\treturn 'default' in loadedModule ? loadedModule.default : loadedModule;\n};\n\nconst resolveIslandComponent = async (component: unknown) => {\n\tconst buildReference = getIslandBuildReference(component);\n\tconst buildReferencePath = buildReference?.source\n\t\t? resolveBuildReferencePath(buildReference.source, import.meta.url)\n\t\t: null;\n\tif (buildReferencePath?.endsWith('.svelte')) {\n\t\treturn loadServerBuildComponent(buildReferencePath);\n\t}\n\tif (buildReferencePath) {\n\t\treturn loadServerImportComponent(\n\t\t\tbuildReferencePath,\n\t\t\tbuildReference?.export\n\t\t);\n\t}\n\n\tconst resolvedComponent = getIslandComponent(component);\n\tif (typeof resolvedComponent !== 'string') {\n\t\treturn resolvedComponent;\n\t}\n\n\treturn loadServerImportComponent(resolvedComponent);\n};\n\nconst resolveServerIslandComponent = async (component: unknown) => {\n\tconst cachedResolvedComponent = resolvedServerComponentCache.get(component);\n\tif (cachedResolvedComponent) {\n\t\treturn cachedResolvedComponent;\n\t}\n\n\tconst resolutionPromise = resolveIslandComponent(component);\n\n\tresolvedServerComponentCache.set(component, resolutionPromise);\n\n\treturn resolutionPromise;\n};\n\nconst resolveReactServerIslandComponent = async (component: unknown) => {\n\tconst resolvedComponent = await resolveServerIslandComponent(component);\n\tif (!isReactServerIslandComponent(resolvedComponent)) {\n\t\tthrow new Error(\n\t\t\t'Resolved React island is not a valid React component.'\n\t\t);\n\t}\n\n\treturn resolvedComponent;\n};\n\nconst resolveSvelteServerIslandComponent = async (component: unknown) => {\n\tconst resolvedComponent = await resolveServerIslandComponent(component);\n\tif (!isSvelteServerIslandComponent(resolvedComponent)) {\n\t\tthrow new Error(\n\t\t\t'Resolved Svelte island is not a valid Svelte component.'\n\t\t);\n\t}\n\n\treturn resolvedComponent;\n};\n\nconst resolveVueServerIslandComponent = async (component: unknown) => {\n\tconst resolvedComponent = await resolveServerIslandComponent(component);\n\tif (!isVueServerIslandComponent(resolvedComponent)) {\n\t\tthrow new Error('Resolved Vue island is not a valid Vue component.');\n\t}\n\n\treturn resolvedComponent;\n};\n\nconst resolveAngularServerIslandComponent = async (component: unknown) => {\n\tconst resolvedComponent = await resolveServerIslandComponent(component);\n\tif (!isAngularServerIslandComponent(resolvedComponent)) {\n\t\tthrow new Error(\n\t\t\t'Resolved Angular island is not a valid Angular component.'\n\t\t);\n\t}\n\n\treturn resolvedComponent;\n};\n\nexport const renderIslandMarkup = async <T extends IslandRegistryInput>(\n\tregistry: IslandRegistry<T> | T,\n\tprops: RuntimeIslandRenderProps\n) => {\n\tconst result = await renderIslandResult(registry, props);\n\n\treturn `<div ${serializeIslandAttributes(result.attributes)}>${result.html}</div>`;\n};\nexport const renderIslandResult = async <T extends IslandRegistryInput>(\n\tregistry: IslandRegistry<T> | T,\n\tprops: RuntimeIslandRenderProps\n) => {\n\tconst islandId = nextIslandId();\n\tconst attributes = getIslandMarkerAttributes(props);\n\n\tif (props.framework === 'react') {\n\t\tconst entry = registry.react?.[props.component];\n\t\tif (!entry) {\n\t\t\tthrow new Error(\n\t\t\t\t`Island component \"${props.component}\" is not registered for framework \"react\".`\n\t\t\t);\n\t\t}\n\t\tconst component = await resolveReactServerIslandComponent(entry);\n\t\tconst html = await renderReactIslandToHtml(component, props.props);\n\n\t\treturn { attributes, html };\n\t}\n\n\tif (props.framework === 'svelte') {\n\t\tconst entry = registry.svelte?.[props.component];\n\t\tif (!entry) {\n\t\t\tthrow new Error(\n\t\t\t\t`Island component \"${props.component}\" is not registered for framework \"svelte\".`\n\t\t\t);\n\t\t}\n\t\tconst component = await resolveSvelteServerIslandComponent(entry);\n\t\tconst html = await renderSvelteIslandToHtml(component, props.props);\n\n\t\treturn { attributes, html };\n\t}\n\n\tif (props.framework === 'vue') {\n\t\tconst entry = registry.vue?.[props.component];\n\t\tif (!entry) {\n\t\t\tthrow new Error(\n\t\t\t\t`Island component \"${props.component}\" is not registered for framework \"vue\".`\n\t\t\t);\n\t\t}\n\t\tconst component = await resolveVueServerIslandComponent(entry);\n\t\tconst html = await renderVueIslandToHtml(component, props.props);\n\n\t\treturn { attributes, html };\n\t}\n\n\tif (props.framework === 'angular') {\n\t\tconst entry = registry.angular?.[props.component];\n\t\tif (!entry) {\n\t\t\tthrow new Error(\n\t\t\t\t`Island component \"${props.component}\" is not registered for framework \"angular\".`\n\t\t\t);\n\t\t}\n\t\tconst component = await resolveAngularServerIslandComponent(entry);\n\t\tconst html = await renderAngularIslandToHtml(\n\t\t\tcomponent,\n\t\t\tprops.props,\n\t\t\tislandId\n\t\t);\n\n\t\treturn {\n\t\t\tattributes: {\n\t\t\t\t...getIslandMarkerAttributes(props, islandId)\n\t\t\t},\n\t\t\thtml\n\t\t};\n\t}\n\n\tthrow new Error(\n\t\t`Framework \"${props.framework}\" is not implemented in this prototype.`\n\t);\n};\n",
|
|
37
|
+
"import type { IslandRegistryInput } from '../../types/island';\n\ndeclare global {\n\tvar __absoluteIslandRegistry: IslandRegistryInput | undefined;\n}\n\nexport const getCurrentIslandRegistry = () =>\n\tglobalThis.__absoluteIslandRegistry;\nexport const requireCurrentIslandRegistry = () => {\n\tconst registry = globalThis.__absoluteIslandRegistry;\n\tif (!registry) {\n\t\tthrow new Error(\n\t\t\t'No island registry is active. Configure `islands.registry` in absolute.config.ts before rendering <Island />.'\n\t\t);\n\t}\n\n\treturn registry;\n};\nexport const setCurrentIslandRegistry = (\n\tregistry: IslandRegistryInput | undefined\n) => {\n\tglobalThis.__absoluteIslandRegistry = registry;\n};\n",
|
|
38
|
+
"import { statSync } from 'node:fs';\nimport { extname } from 'node:path';\nimport { pathToFileURL } from 'node:url';\nimport type {\n\tStreamingSlot,\n\tStreamingSlotPatchPayload\n} from '../utils/streamingSlots';\n\nexport type StaticStreamingSlotResolver = () =>\n\t| Promise<StreamingSlotPatchPayload>\n\t| StreamingSlotPatchPayload;\n\nexport type StaticStreamingSlotDefinition = {\n\tresolve: StaticStreamingSlotResolver;\n\ttimeoutMs?: number;\n\terrorHtml?: string;\n};\n\nexport type StaticStreamingSlotDefinitions = Record<\n\tstring,\n\tStaticStreamingSlotResolver | StaticStreamingSlotDefinition\n>;\n\nexport const defineStaticStreamingSlots = <\n\tconst T extends StaticStreamingSlotDefinitions\n>(\n\tslots: T\n) => slots;\n\nconst STATIC_SLOT_TAG_RE =\n\t/<abs-stream-slot\\b([^>]*?)(?:\\/>|>([\\s\\S]*?)<\\/abs-stream-slot>)/gi;\nconst ATTRIBUTE_RE =\n\t/([A-Za-z_:][-A-Za-z0-9_:.]*)\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)')/g;\n\ntype StaticStreamingTagDefinition = {\n\terrorHtml?: string;\n\tfallbackHtml: string;\n\tid: string;\n\tresolver: string;\n\ttimeoutMs?: number;\n};\n\nconst parseAttributes = (attributeString: string) => {\n\tconst attributes = new Map<string, string>();\n\tconst setAttributeFromMatch = (matchParts: RegExpExecArray) => {\n\t\tconst [, key, doubleQuotedValue, singleQuotedValue] = matchParts;\n\t\tif (!key) {\n\t\t\treturn;\n\t\t}\n\n\t\tattributes.set(key, doubleQuotedValue ?? singleQuotedValue ?? '');\n\t};\n\n\tlet match = ATTRIBUTE_RE.exec(attributeString);\n\twhile (match) {\n\t\tsetAttributeFromMatch(match);\n\t\tmatch = ATTRIBUTE_RE.exec(attributeString);\n\t}\n\n\tATTRIBUTE_RE.lastIndex = 0;\n\n\treturn attributes;\n};\n\nconst parseTimeout = (value: string | undefined) => {\n\tif (!value) return undefined;\n\tconst parsed = Number(value);\n\tif (!Number.isFinite(parsed) || parsed < 0) {\n\t\tthrow new Error(\n\t\t\t`Invalid <abs-stream-slot timeout-ms=\"${value}\">. Expected a non-negative number.`\n\t\t);\n\t}\n\n\treturn parsed;\n};\n\nconst parseStaticStreamingTag = (\n\tattributeString: string,\n\tinnerHtml: string | undefined\n): StaticStreamingTagDefinition => {\n\tconst attributes = parseAttributes(attributeString);\n\tconst resolver = attributes.get('resolver');\n\tif (!resolver) {\n\t\tthrow new Error(\n\t\t\t'Static <abs-stream-slot> requires a \"resolver\" attribute.'\n\t\t);\n\t}\n\n\tconst id = attributes.get('id') ?? resolver;\n\n\treturn {\n\t\terrorHtml: attributes.get('error-html') ?? undefined,\n\t\tfallbackHtml:\n\t\t\tinnerHtml?.trim() ?? attributes.get('fallback-html') ?? '',\n\t\tid,\n\t\tresolver,\n\t\ttimeoutMs: parseTimeout(attributes.get('timeout-ms') ?? undefined)\n\t};\n};\n\nexport const extractStaticStreamingTags = (html: string) => {\n\tconst tagRe = new RegExp(STATIC_SLOT_TAG_RE);\n\tconst tags: StaticStreamingTagDefinition[] = [];\n\tlet match = tagRe.exec(html);\n\n\twhile (match) {\n\t\tconst [, rawAttributeString, innerHtml] = match;\n\t\ttags.push(parseStaticStreamingTag(rawAttributeString ?? '', innerHtml));\n\t\tmatch = tagRe.exec(html);\n\t}\n\n\treturn tags;\n};\n\nconst toStaticStreamingSlotDefinition = (\n\tvalue: StaticStreamingSlotResolver | StaticStreamingSlotDefinition\n) => (typeof value === 'function' ? { resolve: value } : value);\n\nconst isObjectRecord = (value: unknown): value is Record<string, unknown> =>\n\ttypeof value === 'object' && value !== null;\n\nconst toStaticStreamingDefinitionEntry = (\n\tentry: unknown\n): StaticStreamingSlotDefinition | StaticStreamingSlotResolver | null => {\n\tif (typeof entry === 'function') {\n\t\treturn () => entry();\n\t}\n\n\tif (!isObjectRecord(entry) || typeof entry.resolve !== 'function') {\n\t\treturn null;\n\t}\n\tconst { resolve } = entry;\n\n\treturn {\n\t\terrorHtml:\n\t\t\ttypeof entry.errorHtml === 'string' ? entry.errorHtml : undefined,\n\t\ttimeoutMs:\n\t\t\ttypeof entry.timeoutMs === 'number' ? entry.timeoutMs : undefined,\n\t\tresolve: () => resolve()\n\t};\n};\n\nconst toStaticStreamingSlotDefinitions = (value: unknown) => {\n\tif (!isObjectRecord(value)) {\n\t\treturn null;\n\t}\n\n\tconst definitions: StaticStreamingSlotDefinitions = {};\n\tfor (const [key, entry] of Object.entries(value)) {\n\t\tconst definition = toStaticStreamingDefinitionEntry(entry);\n\t\tif (!definition) {\n\t\t\treturn null;\n\t\t}\n\n\t\tdefinitions[key] = definition;\n\t}\n\n\treturn definitions;\n};\n\ntype StaticStreamingModuleExports = {\n\tdefault?: unknown;\n\tstreamingSlots?: unknown;\n};\n\nconst resolveStaticStreamingDefinitions = (\n\tmoduleExports: StaticStreamingModuleExports\n) =>\n\ttoStaticStreamingSlotDefinitions(moduleExports.streamingSlots) ??\n\ttoStaticStreamingSlotDefinitions(moduleExports.default);\n\nconst serverModuleExtensions = [\n\t'.server.ts',\n\t'.server.js',\n\t'.server.mjs',\n\t'.slots.ts',\n\t'.slots.js',\n\t'.slots.mjs'\n] as const;\n\nconst resolveSidecarCandidates = (pagePath: string) => {\n\tconst pageExt = extname(pagePath);\n\tif (!pageExt) return [];\n\n\tconst pageStem = pagePath.slice(0, -pageExt.length);\n\n\treturn serverModuleExtensions.map((extension) => `${pageStem}${extension}`);\n};\n\nconst fileExists = async (path: string) => Bun.file(path).exists();\n\nconst loadStaticStreamingModule = async (pagePath: string) => {\n\tconst loadCandidate = async (candidates: string[]) => {\n\t\tconst [candidate, ...remaining] = candidates;\n\t\tif (!candidate) {\n\t\t\treturn null;\n\t\t}\n\t\tif (!(await fileExists(candidate))) {\n\t\t\treturn loadCandidate(remaining);\n\t\t}\n\n\t\tconst version = statSync(candidate).mtimeMs;\n\t\tconst moduleUrl = new URL(pathToFileURL(candidate).href);\n\t\tmoduleUrl.searchParams.set('t', String(version));\n\n\t\tconst moduleExports: StaticStreamingModuleExports = await import(\n\t\t\tmoduleUrl.href\n\t\t);\n\t\tconst definitions = resolveStaticStreamingDefinitions(moduleExports);\n\t\tif (!definitions) {\n\t\t\tthrow new Error(\n\t\t\t\t`Static streaming module \"${candidate}\" must export a default value or named \"streamingSlots\" object.`\n\t\t\t);\n\t\t}\n\n\t\treturn definitions;\n\t};\n\n\treturn loadCandidate(resolveSidecarCandidates(pagePath));\n};\n\nexport const loadStaticStreamingSlots = async (\n\tpagePath: string,\n\thtml: string\n) => {\n\tconst tagDefinitions = extractStaticStreamingTags(html);\n\tif (tagDefinitions.length === 0) {\n\t\treturn [];\n\t}\n\n\tconst definitions = await loadStaticStreamingModule(pagePath);\n\tif (!definitions) {\n\t\tthrow new Error(\n\t\t\t`Static page \"${pagePath}\" uses <abs-stream-slot> but no page-adjacent server module was found. Create a sibling \".server.ts\" file that exports defineStaticStreamingSlots({...}).`\n\t\t);\n\t}\n\n\treturn tagDefinitions.map((tag) => {\n\t\tconst entry = definitions[tag.resolver];\n\t\tif (!entry) {\n\t\t\tthrow new Error(\n\t\t\t\t`Static streaming resolver \"${tag.resolver}\" was not found for \"${pagePath}\".`\n\t\t\t);\n\t\t}\n\n\t\tconst definition = toStaticStreamingSlotDefinition(entry);\n\n\t\treturn {\n\t\t\terrorHtml: tag.errorHtml ?? definition.errorHtml,\n\t\t\tfallbackHtml: tag.fallbackHtml,\n\t\t\tid: tag.id,\n\t\t\tresolve: definition.resolve,\n\t\t\ttimeoutMs: tag.timeoutMs ?? definition.timeoutMs\n\t\t} satisfies StreamingSlot;\n\t});\n};\n",
|
|
39
|
+
"import { readFileSync, writeFileSync } from 'node:fs';\nimport type {\n\tIslandFramework,\n\tIslandHydrate,\n\tIslandRegistryInput,\n\tRuntimeIslandRenderProps\n} from '../../types/island';\nimport { renderStreamingSlotPlaceholder } from '../utils/streamingSlots';\nimport { renderIslandMarkup } from '../core/renderIslandMarkup';\nimport { loadIslandRegistryBuildInfo } from './islandEntries';\nimport { requireCurrentIslandRegistry } from '../core/currentIslandRegistry';\nimport { extractStaticStreamingTags } from '../core/staticStreaming';\n\nconst ISLAND_TAG_RE_SOURCE =\n\t'<(?:absolute-island|island)\\\\b([^>]*?)(?:\\\\/\\\\>|>(?:[\\\\s\\\\S]*?)<\\\\/(?:absolute-island|island)>)';\nconst ATTRIBUTE_RE_SOURCE =\n\t'([A-Za-z_:][-A-Za-z0-9_:.]*)\\\\s*=\\\\s*(?:\"([^\"]*)\"|\\'([^\\']*)\\')';\n\nconst islandFrameworks: IslandFramework[] = [\n\t'react',\n\t'svelte',\n\t'vue',\n\t'angular'\n];\n\nconst islandHydrationModes = ['load', 'idle', 'visible', 'none'] as const;\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n\ttypeof value === 'object' && value !== null;\n\nconst isIslandFramework = (value: string): value is IslandFramework =>\n\tislandFrameworks.some((framework) => framework === value);\n\nconst isIslandHydrationMode = (\n\tvalue: string\n): value is IslandHydrate =>\n\tislandHydrationModes.some((mode) => mode === value);\n\ntype HTMLAttributeMap = Map<string, string>;\n\nconst parseHtmlAttributes = (attributeString: string): HTMLAttributeMap => {\n\tconst attributeRe = new RegExp(ATTRIBUTE_RE_SOURCE, 'g');\n\tconst attributes = new Map<string, string>();\n\tlet match = attributeRe.exec(attributeString);\n\n\twhile (match) {\n\t\tconst [, key, doubleQuotedValue, singleQuotedValue] = match;\n\t\tmatch = attributeRe.exec(attributeString);\n\t\tif (!key) continue;\n\n\t\tconst value = doubleQuotedValue ?? singleQuotedValue ?? '';\n\t\tattributes.set(key, value);\n\t}\n\n\treturn attributes;\n};\n\nconst parseIslandTag = (\n\tattributeString: string\n): RuntimeIslandRenderProps | null => {\n\tconst attributes = parseHtmlAttributes(attributeString);\n\tconst framework = attributes.get('framework');\n\tconst component = attributes.get('component');\n\tconst hydrate = attributes.get('hydrate') ?? 'load';\n\tconst propsSource = attributes.get('props') ?? '{}';\n\n\tif (!framework || !component) {\n\t\treturn null;\n\t}\n\n\tif (!isIslandFramework(framework)) {\n\t\tthrow new Error(`Unsupported static island framework \"${framework}\".`);\n\t}\n\n\tif (!isIslandHydrationMode(hydrate)) {\n\t\tthrow new Error(`Unsupported static island hydrate mode \"${hydrate}\".`);\n\t}\n\n\tlet parsedProps: Record<string, unknown>;\n\ttry {\n\t\tconst candidate: unknown = JSON.parse(propsSource);\n\t\tparsedProps = isRecord(candidate) ? candidate : {};\n\t} catch (error) {\n\t\tthrow new Error(\n\t\t\t`Failed to parse static island props JSON for ${framework}:${component}: ${\n\t\t\t\terror instanceof Error ? error.message : String(error)\n\t\t\t}`,\n\t\t\t{ cause: error }\n\t\t);\n\t}\n\n\treturn {\n\t\tcomponent,\n\t\tframework,\n\t\thydrate,\n\t\tprops: parsedProps\n\t};\n};\n\nexport const transformStaticPageHtml = async (\n\toriginalHtml: string,\n\tregistry: IslandRegistryInput\n) => {\n\tconst islandTagRe = new RegExp(ISLAND_TAG_RE_SOURCE, 'gi');\n\tif (!islandTagRe.test(originalHtml)) {\n\t\treturn originalHtml;\n\t}\n\n\tislandTagRe.lastIndex = 0;\n\n\tconst segments: { before: string; props: ReturnType<typeof parseIslandTag>; fullMatch: string }[] = [];\n\tlet lastIndex = 0;\n\tlet match = islandTagRe.exec(originalHtml);\n\n\twhile (match) {\n\t\tconst [fullMatch, rawAttributeString] = match;\n\t\tconst attributeString = rawAttributeString ?? '';\n\t\tsegments.push({\n\t\t\tbefore: originalHtml.slice(lastIndex, match.index),\n\t\t\tfullMatch,\n\t\t\tprops: parseIslandTag(attributeString)\n\t\t});\n\t\tlastIndex = match.index + fullMatch.length;\n\t\tmatch = islandTagRe.exec(originalHtml);\n\t}\n\n\tconst renderedSegments = await Promise.all(\n\t\tsegments.map(async (segment) =>\n\t\t\tsegment.before + (segment.props ? await renderIslandMarkup(registry, segment.props) : segment.fullMatch)\n\t\t)\n\t);\n\n\treturn renderedSegments.join('') + originalHtml.slice(lastIndex);\n};\n\nconst HTMX_STREAM_SLOT_TAG_RE =\n\t/<abs-htmx-stream-slot\\b([^>]*?)(?:\\/>|>([\\s\\S]*?)<\\/abs-htmx-stream-slot>)/gi;\n\nconst requireAttribute = (\n\tattributes: HTMLAttributeMap,\n\tname: string\n) => {\n\tconst value = attributes.get(name)?.trim();\n\tif (!value) {\n\t\tthrow new Error(\n\t\t\t`Static <abs-htmx-stream-slot> requires a \"${name}\" attribute.`\n\t\t);\n\t}\n\n\treturn value;\n};\n\nconst injectAttributesIntoSingleRootElement = (\n\tfallbackHtml: string,\n\tattributes: HTMLAttributeMap\n) => {\n\tconst trimmed = fallbackHtml.trim();\n\tif (!trimmed) {\n\t\tthrow new Error(\n\t\t\t'Static <abs-htmx-stream-slot> requires fallback HTML inside the element body.'\n\t\t);\n\t}\n\n\tconst openingTagMatch = trimmed.match(/^<([A-Za-z][\\w:-]*)([^>]*)>/);\n\tif (!openingTagMatch) {\n\t\tthrow new Error(\n\t\t\t'Static <abs-htmx-stream-slot> fallback must start with a single root HTML element.'\n\t\t);\n\t}\n\n\tconst attributeSource = [...attributes.entries()]\n\t\t.map(([key, value]) => `${key}=\"${value}\"`)\n\t\t.join(' ');\n\tif (!attributeSource) {\n\t\treturn trimmed;\n\t}\n\n\tconst [openingTag, tagName, rawExistingAttributes = ''] = openingTagMatch;\n\tconst existingAttributes = rawExistingAttributes.trim();\n\tconst mergedAttributes = existingAttributes\n\t\t? `${existingAttributes} ${attributeSource}`\n\t\t: attributeSource;\n\n\treturn trimmed.replace(openingTag, `<${tagName} ${mergedAttributes}>`);\n};\n\nexport const transformStaticHTMXStreamSlotHtml = (originalHtml: string) => {\n\tlet nextIndex = 0;\n\tlet result = '';\n\tlet match = HTMX_STREAM_SLOT_TAG_RE.exec(originalHtml);\n\n\twhile (match) {\n\t\tconst [fullMatch, rawAttributeString = '', innerHtml = ''] = match;\n\t\tconst attributes = parseHtmlAttributes(rawAttributeString);\n\t\tconst loweredAttributes = new Map<string, string>([\n\t\t\t['hx-get', requireAttribute(attributes, 'src')],\n\t\t\t['hx-trigger', attributes.get('trigger') ?? 'load'],\n\t\t\t['hx-swap', attributes.get('swap') ?? 'outerHTML'],\n\t\t\t['hx-target', attributes.get('target') ?? 'this']\n\t\t]);\n\n\t\tresult += originalHtml.slice(nextIndex, match.index);\n\t\tresult += injectAttributesIntoSingleRootElement(innerHtml, loweredAttributes);\n\t\tnextIndex = match.index + fullMatch.length;\n\t\tmatch = HTMX_STREAM_SLOT_TAG_RE.exec(originalHtml);\n\t}\n\n\treturn result + originalHtml.slice(nextIndex);\n};\n\nexport const transformStaticStreamingSlotHtml = (originalHtml: string) => {\n\tconst slotDefinitions = extractStaticStreamingTags(originalHtml);\n\tif (slotDefinitions.length === 0) {\n\t\treturn originalHtml;\n\t}\n\n\tconst tagRe =\n\t\t/<abs-stream-slot\\b([^>]*?)(?:\\/>|>([\\s\\S]*?)<\\/abs-stream-slot>)/gi;\n\tlet nextIndex = 0;\n\tlet slotIndex = 0;\n\tlet result = '';\n\tlet match = tagRe.exec(originalHtml);\n\n\twhile (match) {\n\t\tconst [fullMatch] = match;\n\t\tconst tag = slotDefinitions[slotIndex++];\n\t\tif (!tag) {\n\t\t\tthrow new Error(\n\t\t\t\t'Static streaming slot transform lost sync with parsed slot definitions.'\n\t\t\t);\n\t\t}\n\t\tresult += originalHtml.slice(nextIndex, match.index);\n\t\tresult += renderStreamingSlotPlaceholder(tag.id, tag.fallbackHtml);\n\t\tnextIndex = match.index + fullMatch.length;\n\t\tmatch = tagRe.exec(originalHtml);\n\t}\n\n\treturn result + originalHtml.slice(nextIndex);\n};\n\nconst transformStaticPage = async (\n\tpagePath: string,\n\tregistry: IslandRegistryInput\n) => {\n\tconst originalHtml = readFileSync(pagePath, 'utf-8');\n\tconst transformedHtml = await transformStaticPageHtml(\n\t\toriginalHtml,\n\t\tregistry\n\t);\n\n\tif (transformedHtml !== originalHtml) {\n\t\twriteFileSync(pagePath, transformedHtml);\n\t}\n};\n\nexport const transformCurrentStaticPageHtml = async (\n\thtml: string,\n\toptions: {\n\t\tenableHTMXStreaming?: boolean;\n\t\tenableStaticStreaming?: boolean;\n\t} = {}\n) => {\n\tconst transformedHTMXStreamingHtml =\n\t\toptions.enableHTMXStreaming === false\n\t\t\t? html\n\t\t\t: transformStaticHTMXStreamSlotHtml(html);\n\tconst transformedStreamingHtml =\n\t\toptions.enableStaticStreaming === false\n\t\t\t? transformedHTMXStreamingHtml\n\t\t\t: transformStaticStreamingSlotHtml(transformedHTMXStreamingHtml);\n\tconst islandTagRe = new RegExp(ISLAND_TAG_RE_SOURCE, 'i');\n\tif (!islandTagRe.test(transformedStreamingHtml)) {\n\t\treturn transformedStreamingHtml;\n\t}\n\n\treturn transformStaticPageHtml(\n\t\ttransformedStreamingHtml,\n\t\trequireCurrentIslandRegistry()\n\t);\n};\nexport const transformStaticPagesWithIslands = async (\n\tregistryPath: string | undefined,\n\tpagePaths: string[]\n) => {\n\tif (!registryPath || pagePaths.length === 0) {\n\t\treturn;\n\t}\n\n\tconst { registry } = await loadIslandRegistryBuildInfo(registryPath);\n\n\tawait Promise.all(\n\t\tpagePaths.map((pagePath) => transformStaticPage(pagePath, registry))\n\t);\n};\n",
|
|
40
|
+
"import { BUN_BUILD_WARNING_SUPPRESSION } from '../constants';\n\nexport const outputLogs = (logs: (BuildMessage | ResolveMessage)[]) => {\n\tfor (const log of logs) {\n\t\tif (\n\t\t\t// TODO: When bun supports wildcard sideEffects, remove this suppression\n\t\t\tlog.message.includes(BUN_BUILD_WARNING_SUPPRESSION)\n\t\t)\n\t\t\tcontinue;\n\n\t\tif (log.level === 'error') console.error(log);\n\t\telse if (log.level === 'warning') console.warn(log);\n\t\telse console.info(log);\n\t}\n};\n",
|
|
41
|
+
"import { existsSync } from 'node:fs';\nimport { Glob } from 'bun';\n\nexport const scanEntryPoints = async (dir: string, pattern: string) => {\n\t// Gracefully handle missing directories — this happens during framework\n\t// scaffolding when the config references a directory being created.\n\tif (!existsSync(dir)) return [];\n\n\tconst entryPaths: string[] = [];\n\tconst glob = new Glob(pattern);\n\tfor await (const file of glob.scan({ absolute: true, cwd: dir })) {\n\t\tentryPaths.push(file);\n\t}\n\n\treturn entryPaths;\n};\n",
|
|
42
|
+
"import { basename } from 'node:path';\nimport { Glob } from 'bun';\nimport { existsSync } from 'node:fs';\nimport type {\n\tFrameworkConventionEntry,\n\tPageConventions,\n\tFrameworkConventions\n} from '../../types/conventions';\n\nconst CONVENTION_RE = /^(?:(.+)\\.)?(error|loading|not-found)\\.[^.]+$/;\n\nconst classifyFile = (\n\tfile: string,\n\tpageFiles: string[],\n\tdefaults: FrameworkConventions,\n\tpages: Record<string, PageConventions>\n) => {\n\tconst fileName = basename(file);\n\tconst match = CONVENTION_RE.exec(fileName);\n\n\tif (!match) {\n\t\tpageFiles.push(file);\n\n\t\treturn;\n\t}\n\n\tconst [, pageName, kind] = match;\n\n\tif (!pageName) {\n\t\tif (kind === 'error') defaults.error = file;\n\t\telse if (kind === 'loading') defaults.loading = file;\n\t\telse if (kind === 'not-found') defaults.notFound = file;\n\n\t\treturn;\n\t}\n\n\tif (!pages[pageName]) pages[pageName] = {};\n\n\tif (kind === 'error') pages[pageName].error = file;\n\telse if (kind === 'loading') pages[pageName].loading = file;\n};\n\nexport const scanConventions = async (\n\tpagesDir: string,\n\tpattern: string\n) => {\n\tif (!existsSync(pagesDir)) {\n\t\tconst pageFiles: string[] = [];\n\n\t\treturn { conventions: undefined, pageFiles };\n\t}\n\n\tconst pageFiles: string[] = [];\n\tconst defaults: FrameworkConventions = {};\n\tconst pages: Record<string, PageConventions> = {};\n\n\tconst glob = new Glob(pattern);\n\tfor await (const file of glob.scan({ absolute: true, cwd: pagesDir })) {\n\t\tclassifyFile(file, pageFiles, defaults, pages);\n\t}\n\n\tconst hasConventions =\n\t\tdefaults.error !== undefined ||\n\t\tdefaults.loading !== undefined ||\n\t\tdefaults.notFound !== undefined ||\n\t\tObject.keys(pages).length > 0;\n\n\tconst conventions: FrameworkConventionEntry | undefined = hasConventions\n\t\t? {\n\t\t\t\t...(defaults.error || defaults.loading || defaults.notFound\n\t\t\t\t\t? { defaults }\n\t\t\t\t\t: {}),\n\t\t\t\t...(Object.keys(pages).length > 0 ? { pages } : {})\n\t\t\t}\n\t\t: undefined;\n\n\treturn { conventions, pageFiles };\n};\n",
|
|
43
|
+
"import { existsSync } from 'node:fs';\nimport { Glob } from 'bun';\nimport { normalizePath } from '../utils/normalizePath';\nimport { isStyleModulePath } from './stylePreprocessor';\n\nexport const scanCssEntryPoints = async (dir: string, ignore?: string[]) => {\n\t// Gracefully handle missing directories — this happens during framework\n\t// scaffolding when the config references a directory being created.\n\tif (!existsSync(dir)) return [];\n\n\tconst entryPaths: string[] = [];\n\tconst glob = new Glob('**/*.{css,scss,sass,less,styl,stylus}');\n\tfor await (const file of glob.scan({ absolute: true, cwd: dir })) {\n\t\tconst normalized = normalizePath(file);\n\t\tif (\n\t\t\tisStyleModulePath(normalized) ||\n\t\t\tignore?.some((pattern) => normalized.includes(pattern))\n\t\t)\n\t\t\tcontinue;\n\n\t\tentryPaths.push(file);\n\t}\n\n\treturn entryPaths;\n};\n",
|
|
44
|
+
"var l={inherit:\"inherit\",current:\"currentcolor\",transparent:\"transparent\",black:\"#000\",white:\"#fff\",slate:{50:\"oklch(98.4% 0.003 247.858)\",100:\"oklch(96.8% 0.007 247.896)\",200:\"oklch(92.9% 0.013 255.508)\",300:\"oklch(86.9% 0.022 252.894)\",400:\"oklch(70.4% 0.04 256.788)\",500:\"oklch(55.4% 0.046 257.417)\",600:\"oklch(44.6% 0.043 257.281)\",700:\"oklch(37.2% 0.044 257.287)\",800:\"oklch(27.9% 0.041 260.031)\",900:\"oklch(20.8% 0.042 265.755)\",950:\"oklch(12.9% 0.042 264.695)\"},gray:{50:\"oklch(98.5% 0.002 247.839)\",100:\"oklch(96.7% 0.003 264.542)\",200:\"oklch(92.8% 0.006 264.531)\",300:\"oklch(87.2% 0.01 258.338)\",400:\"oklch(70.7% 0.022 261.325)\",500:\"oklch(55.1% 0.027 264.364)\",600:\"oklch(44.6% 0.03 256.802)\",700:\"oklch(37.3% 0.034 259.733)\",800:\"oklch(27.8% 0.033 256.848)\",900:\"oklch(21% 0.034 264.665)\",950:\"oklch(13% 0.028 261.692)\"},zinc:{50:\"oklch(98.5% 0 0)\",100:\"oklch(96.7% 0.001 286.375)\",200:\"oklch(92% 0.004 286.32)\",300:\"oklch(87.1% 0.006 286.286)\",400:\"oklch(70.5% 0.015 286.067)\",500:\"oklch(55.2% 0.016 285.938)\",600:\"oklch(44.2% 0.017 285.786)\",700:\"oklch(37% 0.013 285.805)\",800:\"oklch(27.4% 0.006 286.033)\",900:\"oklch(21% 0.006 285.885)\",950:\"oklch(14.1% 0.005 285.823)\"},neutral:{50:\"oklch(98.5% 0 0)\",100:\"oklch(97% 0 0)\",200:\"oklch(92.2% 0 0)\",300:\"oklch(87% 0 0)\",400:\"oklch(70.8% 0 0)\",500:\"oklch(55.6% 0 0)\",600:\"oklch(43.9% 0 0)\",700:\"oklch(37.1% 0 0)\",800:\"oklch(26.9% 0 0)\",900:\"oklch(20.5% 0 0)\",950:\"oklch(14.5% 0 0)\"},stone:{50:\"oklch(98.5% 0.001 106.423)\",100:\"oklch(97% 0.001 106.424)\",200:\"oklch(92.3% 0.003 48.717)\",300:\"oklch(86.9% 0.005 56.366)\",400:\"oklch(70.9% 0.01 56.259)\",500:\"oklch(55.3% 0.013 58.071)\",600:\"oklch(44.4% 0.011 73.639)\",700:\"oklch(37.4% 0.01 67.558)\",800:\"oklch(26.8% 0.007 34.298)\",900:\"oklch(21.6% 0.006 56.043)\",950:\"oklch(14.7% 0.004 49.25)\"},red:{50:\"oklch(97.1% 0.013 17.38)\",100:\"oklch(93.6% 0.032 17.717)\",200:\"oklch(88.5% 0.062 18.334)\",300:\"oklch(80.8% 0.114 19.571)\",400:\"oklch(70.4% 0.191 22.216)\",500:\"oklch(63.7% 0.237 25.331)\",600:\"oklch(57.7% 0.245 27.325)\",700:\"oklch(50.5% 0.213 27.518)\",800:\"oklch(44.4% 0.177 26.899)\",900:\"oklch(39.6% 0.141 25.723)\",950:\"oklch(25.8% 0.092 26.042)\"},orange:{50:\"oklch(98% 0.016 73.684)\",100:\"oklch(95.4% 0.038 75.164)\",200:\"oklch(90.1% 0.076 70.697)\",300:\"oklch(83.7% 0.128 66.29)\",400:\"oklch(75% 0.183 55.934)\",500:\"oklch(70.5% 0.213 47.604)\",600:\"oklch(64.6% 0.222 41.116)\",700:\"oklch(55.3% 0.195 38.402)\",800:\"oklch(47% 0.157 37.304)\",900:\"oklch(40.8% 0.123 38.172)\",950:\"oklch(26.6% 0.079 36.259)\"},amber:{50:\"oklch(98.7% 0.022 95.277)\",100:\"oklch(96.2% 0.059 95.617)\",200:\"oklch(92.4% 0.12 95.746)\",300:\"oklch(87.9% 0.169 91.605)\",400:\"oklch(82.8% 0.189 84.429)\",500:\"oklch(76.9% 0.188 70.08)\",600:\"oklch(66.6% 0.179 58.318)\",700:\"oklch(55.5% 0.163 48.998)\",800:\"oklch(47.3% 0.137 46.201)\",900:\"oklch(41.4% 0.112 45.904)\",950:\"oklch(27.9% 0.077 45.635)\"},yellow:{50:\"oklch(98.7% 0.026 102.212)\",100:\"oklch(97.3% 0.071 103.193)\",200:\"oklch(94.5% 0.129 101.54)\",300:\"oklch(90.5% 0.182 98.111)\",400:\"oklch(85.2% 0.199 91.936)\",500:\"oklch(79.5% 0.184 86.047)\",600:\"oklch(68.1% 0.162 75.834)\",700:\"oklch(55.4% 0.135 66.442)\",800:\"oklch(47.6% 0.114 61.907)\",900:\"oklch(42.1% 0.095 57.708)\",950:\"oklch(28.6% 0.066 53.813)\"},lime:{50:\"oklch(98.6% 0.031 120.757)\",100:\"oklch(96.7% 0.067 122.328)\",200:\"oklch(93.8% 0.127 124.321)\",300:\"oklch(89.7% 0.196 126.665)\",400:\"oklch(84.1% 0.238 128.85)\",500:\"oklch(76.8% 0.233 130.85)\",600:\"oklch(64.8% 0.2 131.684)\",700:\"oklch(53.2% 0.157 131.589)\",800:\"oklch(45.3% 0.124 130.933)\",900:\"oklch(40.5% 0.101 131.063)\",950:\"oklch(27.4% 0.072 132.109)\"},green:{50:\"oklch(98.2% 0.018 155.826)\",100:\"oklch(96.2% 0.044 156.743)\",200:\"oklch(92.5% 0.084 155.995)\",300:\"oklch(87.1% 0.15 154.449)\",400:\"oklch(79.2% 0.209 151.711)\",500:\"oklch(72.3% 0.219 149.579)\",600:\"oklch(62.7% 0.194 149.214)\",700:\"oklch(52.7% 0.154 150.069)\",800:\"oklch(44.8% 0.119 151.328)\",900:\"oklch(39.3% 0.095 152.535)\",950:\"oklch(26.6% 0.065 152.934)\"},emerald:{50:\"oklch(97.9% 0.021 166.113)\",100:\"oklch(95% 0.052 163.051)\",200:\"oklch(90.5% 0.093 164.15)\",300:\"oklch(84.5% 0.143 164.978)\",400:\"oklch(76.5% 0.177 163.223)\",500:\"oklch(69.6% 0.17 162.48)\",600:\"oklch(59.6% 0.145 163.225)\",700:\"oklch(50.8% 0.118 165.612)\",800:\"oklch(43.2% 0.095 166.913)\",900:\"oklch(37.8% 0.077 168.94)\",950:\"oklch(26.2% 0.051 172.552)\"},teal:{50:\"oklch(98.4% 0.014 180.72)\",100:\"oklch(95.3% 0.051 180.801)\",200:\"oklch(91% 0.096 180.426)\",300:\"oklch(85.5% 0.138 181.071)\",400:\"oklch(77.7% 0.152 181.912)\",500:\"oklch(70.4% 0.14 182.503)\",600:\"oklch(60% 0.118 184.704)\",700:\"oklch(51.1% 0.096 186.391)\",800:\"oklch(43.7% 0.078 188.216)\",900:\"oklch(38.6% 0.063 188.416)\",950:\"oklch(27.7% 0.046 192.524)\"},cyan:{50:\"oklch(98.4% 0.019 200.873)\",100:\"oklch(95.6% 0.045 203.388)\",200:\"oklch(91.7% 0.08 205.041)\",300:\"oklch(86.5% 0.127 207.078)\",400:\"oklch(78.9% 0.154 211.53)\",500:\"oklch(71.5% 0.143 215.221)\",600:\"oklch(60.9% 0.126 221.723)\",700:\"oklch(52% 0.105 223.128)\",800:\"oklch(45% 0.085 224.283)\",900:\"oklch(39.8% 0.07 227.392)\",950:\"oklch(30.2% 0.056 229.695)\"},sky:{50:\"oklch(97.7% 0.013 236.62)\",100:\"oklch(95.1% 0.026 236.824)\",200:\"oklch(90.1% 0.058 230.902)\",300:\"oklch(82.8% 0.111 230.318)\",400:\"oklch(74.6% 0.16 232.661)\",500:\"oklch(68.5% 0.169 237.323)\",600:\"oklch(58.8% 0.158 241.966)\",700:\"oklch(50% 0.134 242.749)\",800:\"oklch(44.3% 0.11 240.79)\",900:\"oklch(39.1% 0.09 240.876)\",950:\"oklch(29.3% 0.066 243.157)\"},blue:{50:\"oklch(97% 0.014 254.604)\",100:\"oklch(93.2% 0.032 255.585)\",200:\"oklch(88.2% 0.059 254.128)\",300:\"oklch(80.9% 0.105 251.813)\",400:\"oklch(70.7% 0.165 254.624)\",500:\"oklch(62.3% 0.214 259.815)\",600:\"oklch(54.6% 0.245 262.881)\",700:\"oklch(48.8% 0.243 264.376)\",800:\"oklch(42.4% 0.199 265.638)\",900:\"oklch(37.9% 0.146 265.522)\",950:\"oklch(28.2% 0.091 267.935)\"},indigo:{50:\"oklch(96.2% 0.018 272.314)\",100:\"oklch(93% 0.034 272.788)\",200:\"oklch(87% 0.065 274.039)\",300:\"oklch(78.5% 0.115 274.713)\",400:\"oklch(67.3% 0.182 276.935)\",500:\"oklch(58.5% 0.233 277.117)\",600:\"oklch(51.1% 0.262 276.966)\",700:\"oklch(45.7% 0.24 277.023)\",800:\"oklch(39.8% 0.195 277.366)\",900:\"oklch(35.9% 0.144 278.697)\",950:\"oklch(25.7% 0.09 281.288)\"},violet:{50:\"oklch(96.9% 0.016 293.756)\",100:\"oklch(94.3% 0.029 294.588)\",200:\"oklch(89.4% 0.057 293.283)\",300:\"oklch(81.1% 0.111 293.571)\",400:\"oklch(70.2% 0.183 293.541)\",500:\"oklch(60.6% 0.25 292.717)\",600:\"oklch(54.1% 0.281 293.009)\",700:\"oklch(49.1% 0.27 292.581)\",800:\"oklch(43.2% 0.232 292.759)\",900:\"oklch(38% 0.189 293.745)\",950:\"oklch(28.3% 0.141 291.089)\"},purple:{50:\"oklch(97.7% 0.014 308.299)\",100:\"oklch(94.6% 0.033 307.174)\",200:\"oklch(90.2% 0.063 306.703)\",300:\"oklch(82.7% 0.119 306.383)\",400:\"oklch(71.4% 0.203 305.504)\",500:\"oklch(62.7% 0.265 303.9)\",600:\"oklch(55.8% 0.288 302.321)\",700:\"oklch(49.6% 0.265 301.924)\",800:\"oklch(43.8% 0.218 303.724)\",900:\"oklch(38.1% 0.176 304.987)\",950:\"oklch(29.1% 0.149 302.717)\"},fuchsia:{50:\"oklch(97.7% 0.017 320.058)\",100:\"oklch(95.2% 0.037 318.852)\",200:\"oklch(90.3% 0.076 319.62)\",300:\"oklch(83.3% 0.145 321.434)\",400:\"oklch(74% 0.238 322.16)\",500:\"oklch(66.7% 0.295 322.15)\",600:\"oklch(59.1% 0.293 322.896)\",700:\"oklch(51.8% 0.253 323.949)\",800:\"oklch(45.2% 0.211 324.591)\",900:\"oklch(40.1% 0.17 325.612)\",950:\"oklch(29.3% 0.136 325.661)\"},pink:{50:\"oklch(97.1% 0.014 343.198)\",100:\"oklch(94.8% 0.028 342.258)\",200:\"oklch(89.9% 0.061 343.231)\",300:\"oklch(82.3% 0.12 346.018)\",400:\"oklch(71.8% 0.202 349.761)\",500:\"oklch(65.6% 0.241 354.308)\",600:\"oklch(59.2% 0.249 0.584)\",700:\"oklch(52.5% 0.223 3.958)\",800:\"oklch(45.9% 0.187 3.815)\",900:\"oklch(40.8% 0.153 2.432)\",950:\"oklch(28.4% 0.109 3.907)\"},rose:{50:\"oklch(96.9% 0.015 12.422)\",100:\"oklch(94.1% 0.03 12.58)\",200:\"oklch(89.2% 0.058 10.001)\",300:\"oklch(81% 0.117 11.638)\",400:\"oklch(71.2% 0.194 13.428)\",500:\"oklch(64.5% 0.246 16.439)\",600:\"oklch(58.6% 0.253 17.585)\",700:\"oklch(51.4% 0.222 16.935)\",800:\"oklch(45.5% 0.188 13.697)\",900:\"oklch(41% 0.159 10.272)\",950:\"oklch(27.1% 0.105 12.094)\"}};export{l as a};\n",
|
|
45
|
+
"import{a as S}from\"./chunk-HTB5LLOP.mjs\";var O=new Set([\"black\",\"silver\",\"gray\",\"white\",\"maroon\",\"red\",\"purple\",\"fuchsia\",\"green\",\"lime\",\"olive\",\"yellow\",\"navy\",\"blue\",\"teal\",\"aqua\",\"aliceblue\",\"antiquewhite\",\"aqua\",\"aquamarine\",\"azure\",\"beige\",\"bisque\",\"black\",\"blanchedalmond\",\"blue\",\"blueviolet\",\"brown\",\"burlywood\",\"cadetblue\",\"chartreuse\",\"chocolate\",\"coral\",\"cornflowerblue\",\"cornsilk\",\"crimson\",\"cyan\",\"darkblue\",\"darkcyan\",\"darkgoldenrod\",\"darkgray\",\"darkgreen\",\"darkgrey\",\"darkkhaki\",\"darkmagenta\",\"darkolivegreen\",\"darkorange\",\"darkorchid\",\"darkred\",\"darksalmon\",\"darkseagreen\",\"darkslateblue\",\"darkslategray\",\"darkslategrey\",\"darkturquoise\",\"darkviolet\",\"deeppink\",\"deepskyblue\",\"dimgray\",\"dimgrey\",\"dodgerblue\",\"firebrick\",\"floralwhite\",\"forestgreen\",\"fuchsia\",\"gainsboro\",\"ghostwhite\",\"gold\",\"goldenrod\",\"gray\",\"green\",\"greenyellow\",\"grey\",\"honeydew\",\"hotpink\",\"indianred\",\"indigo\",\"ivory\",\"khaki\",\"lavender\",\"lavenderblush\",\"lawngreen\",\"lemonchiffon\",\"lightblue\",\"lightcoral\",\"lightcyan\",\"lightgoldenrodyellow\",\"lightgray\",\"lightgreen\",\"lightgrey\",\"lightpink\",\"lightsalmon\",\"lightseagreen\",\"lightskyblue\",\"lightslategray\",\"lightslategrey\",\"lightsteelblue\",\"lightyellow\",\"lime\",\"limegreen\",\"linen\",\"magenta\",\"maroon\",\"mediumaquamarine\",\"mediumblue\",\"mediumorchid\",\"mediumpurple\",\"mediumseagreen\",\"mediumslateblue\",\"mediumspringgreen\",\"mediumturquoise\",\"mediumvioletred\",\"midnightblue\",\"mintcream\",\"mistyrose\",\"moccasin\",\"navajowhite\",\"navy\",\"oldlace\",\"olive\",\"olivedrab\",\"orange\",\"orangered\",\"orchid\",\"palegoldenrod\",\"palegreen\",\"paleturquoise\",\"palevioletred\",\"papayawhip\",\"peachpuff\",\"peru\",\"pink\",\"plum\",\"powderblue\",\"purple\",\"rebeccapurple\",\"red\",\"rosybrown\",\"royalblue\",\"saddlebrown\",\"salmon\",\"sandybrown\",\"seagreen\",\"seashell\",\"sienna\",\"silver\",\"skyblue\",\"slateblue\",\"slategray\",\"slategrey\",\"snow\",\"springgreen\",\"steelblue\",\"tan\",\"teal\",\"thistle\",\"tomato\",\"turquoise\",\"violet\",\"wheat\",\"white\",\"whitesmoke\",\"yellow\",\"yellowgreen\",\"transparent\",\"currentcolor\",\"canvas\",\"canvastext\",\"linktext\",\"visitedtext\",\"activetext\",\"buttonface\",\"buttontext\",\"buttonborder\",\"field\",\"fieldtext\",\"highlight\",\"highlighttext\",\"selecteditem\",\"selecteditemtext\",\"mark\",\"marktext\",\"graytext\",\"accentcolor\",\"accentcolortext\"]),R=/^(rgba?|hsla?|hwb|color|(ok)?(lab|lch)|light-dark|color-mix)\\(/i;function v(e){return e.charCodeAt(0)===35||R.test(e)||O.has(e.toLowerCase())}var E=[\"calc\",\"min\",\"max\",\"clamp\",\"mod\",\"rem\",\"sin\",\"cos\",\"tan\",\"asin\",\"acos\",\"atan\",\"atan2\",\"pow\",\"sqrt\",\"hypot\",\"log\",\"exp\",\"round\"],h=[\"anchor-size\"],A=new RegExp(`(${h.join(\"|\")})\\\\(`,\"g\");function b(e){return e.indexOf(\"(\")!==-1&&E.some(r=>e.includes(`${r}(`))}function ie(e){if(!E.some(n=>e.includes(n)))return e;let r=!1;h.some(n=>e.includes(n))&&(A.lastIndex=0,e=e.replace(A,(n,o)=>(r=!0,`$${h.indexOf(o)}$(`)));let t=\"\",i=[];for(let n=0;n<e.length;n++){let o=e[n];if(o===\"(\"){t+=o;let m=n;for(let c=n-1;c>=0;c--){let x=e.charCodeAt(c);if(x>=48&&x<=57)m=c;else if(x>=97&&x<=122)m=c;else break}let a=e.slice(m,n);if(E.includes(a)){i.unshift(!0);continue}else if(i[0]&&a===\"\"){i.unshift(!0);continue}i.unshift(!1);continue}else if(o===\")\")t+=o,i.shift();else if(o===\",\"&&i[0]){t+=\", \";continue}else{if(o===\" \"&&i[0]&&t[t.length-1]===\" \")continue;if((o===\"+\"||o===\"*\"||o===\"/\"||o===\"-\")&&i[0]){let m=t.trimEnd(),a=m[m.length-1];if(a===\"+\"||a===\"*\"||a===\"/\"||a===\"-\"){t+=o;continue}else if(a===\"(\"||a===\",\"){t+=o;continue}else e[n-1]===\" \"?t+=`${o} `:t+=` ${o} `}else if(i[0]&&e.startsWith(\"to-zero\",n)){let m=n;n+=7,t+=e.slice(m,n+1)}else t+=o}}return r?t.replace(/\\$(\\d+)\\$/g,(n,o)=>h[o]??n):t}var y=new Uint8Array(256);function g(e,r){let t=0,i=[],n=0,o=e.length,m=r.charCodeAt(0);for(let a=0;a<o;a++){let c=e.charCodeAt(a);if(t===0&&c===m){i.push(e.slice(n,a)),n=a+1;continue}switch(c){case 92:a+=1;break;case 39:case 34:for(;++a<o;){let x=e.charCodeAt(a);if(x===92){a+=1;continue}if(x===c)break}break;case 40:y[t]=41,t++;break;case 91:y[t]=93,t++;break;case 123:y[t]=125,t++;break;case 93:case 125:case 41:t>0&&c===y[t-1]&&t--;break}}return i.push(e.slice(n)),i}var _={color:v,length:w,percentage:C,ratio:j,number:N,integer:p,url:z,position:Q,\"bg-size\":X,\"line-width\":I,image:H,\"family-name\":q,\"generic-name\":P,\"absolute-size\":B,\"relative-size\":W,angle:ee,vector:re};function pe(e,r){if(e.startsWith(\"var(\"))return null;for(let t of r)if(_[t]?.(e))return t;return null}var D=/^url\\(.*\\)$/;function z(e){return D.test(e)}function I(e){return g(e,\" \").every(r=>w(r)||N(r)||r===\"thin\"||r===\"medium\"||r===\"thick\")}var F=/^(?:element|image|cross-fade|image-set)\\(/,$=/^(repeating-)?(conic|linear|radial)-gradient\\(/;function H(e){let r=0;for(let t of g(e,\",\"))if(!t.startsWith(\"var(\")){if(z(t)){r+=1;continue}if($.test(t)){r+=1;continue}if(F.test(t)){r+=1;continue}return!1}return r>0}function P(e){return e===\"serif\"||e===\"sans-serif\"||e===\"monospace\"||e===\"cursive\"||e===\"fantasy\"||e===\"system-ui\"||e===\"ui-serif\"||e===\"ui-sans-serif\"||e===\"ui-monospace\"||e===\"ui-rounded\"||e===\"math\"||e===\"emoji\"||e===\"fangsong\"}function q(e){let r=0;for(let t of g(e,\",\")){let i=t.charCodeAt(0);if(i>=48&&i<=57)return!1;t.startsWith(\"var(\")||(r+=1)}return r>0}function B(e){return e===\"xx-small\"||e===\"x-small\"||e===\"small\"||e===\"medium\"||e===\"large\"||e===\"x-large\"||e===\"xx-large\"||e===\"xxx-large\"}function W(e){return e===\"larger\"||e===\"smaller\"}var u=/[+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?/,M=new RegExp(`^${u.source}$`);function N(e){return M.test(e)||b(e)}var G=new RegExp(`^${u.source}%$`);function C(e){return G.test(e)||b(e)}var V=new RegExp(`^${u.source}s*/s*${u.source}$`);function j(e){return V.test(e)||b(e)}var K=[\"cm\",\"mm\",\"Q\",\"in\",\"pc\",\"pt\",\"px\",\"em\",\"ex\",\"ch\",\"rem\",\"lh\",\"rlh\",\"vw\",\"vh\",\"vmin\",\"vmax\",\"vb\",\"vi\",\"svw\",\"svh\",\"lvw\",\"lvh\",\"dvw\",\"dvh\",\"cqw\",\"cqh\",\"cqi\",\"cqb\",\"cqmin\",\"cqmax\"],Y=new RegExp(`^${u.source}(${K.join(\"|\")})$`);function w(e){return Y.test(e)||b(e)}function Q(e){let r=0;for(let t of g(e,\" \")){if(t===\"center\"||t===\"top\"||t===\"right\"||t===\"bottom\"||t===\"left\"){r+=1;continue}if(!t.startsWith(\"var(\")){if(w(t)||C(t)){r+=1;continue}return!1}}return r>0}function X(e){let r=0;for(let t of g(e,\",\")){if(t===\"cover\"||t===\"contain\"){r+=1;continue}let i=g(t,\" \");if(i.length!==1&&i.length!==2)return!1;if(i.every(n=>n===\"auto\"||w(n)||C(n))){r+=1;continue}}return r>0}var J=[\"deg\",\"rad\",\"grad\",\"turn\"],Z=new RegExp(`^${u.source}(${J.join(\"|\")})$`);function ee(e){return Z.test(e)}var te=new RegExp(`^${u.source} +${u.source} +${u.source}$`);function re(e){return te.test(e)}function p(e){let r=Number(e);return Number.isInteger(r)&&r>=0&&String(r)===String(e)}function ge(e){let r=Number(e);return Number.isInteger(r)&&r>0&&String(r)===String(e)}function ue(e){return T(e,.25)}function de(e){return T(e,.25)}function T(e,r){let t=Number(e);return t>=0&&t%r===0&&String(t)===String(e)}function f(e){return{__BARE_VALUE__:e}}var l=f(e=>{if(p(e.value))return e.value}),s=f(e=>{if(p(e.value))return`${e.value}%`}),d=f(e=>{if(p(e.value))return`${e.value}px`}),L=f(e=>{if(p(e.value))return`${e.value}ms`}),k=f(e=>{if(p(e.value))return`${e.value}deg`}),ne=f(e=>{if(e.fraction===null)return;let[r,t]=g(e.fraction,\"/\");if(!(!p(r)||!p(t)))return e.fraction}),U=f(e=>{if(p(Number(e.value)))return`repeat(${e.value}, minmax(0, 1fr))`}),ye={accentColor:({theme:e})=>e(\"colors\"),animation:{none:\"none\",spin:\"spin 1s linear infinite\",ping:\"ping 1s cubic-bezier(0, 0, 0.2, 1) infinite\",pulse:\"pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite\",bounce:\"bounce 1s infinite\"},aria:{busy:'busy=\"true\"',checked:'checked=\"true\"',disabled:'disabled=\"true\"',expanded:'expanded=\"true\"',hidden:'hidden=\"true\"',pressed:'pressed=\"true\"',readonly:'readonly=\"true\"',required:'required=\"true\"',selected:'selected=\"true\"'},aspectRatio:{auto:\"auto\",square:\"1 / 1\",video:\"16 / 9\",...ne},backdropBlur:({theme:e})=>e(\"blur\"),backdropBrightness:({theme:e})=>({...e(\"brightness\"),...s}),backdropContrast:({theme:e})=>({...e(\"contrast\"),...s}),backdropGrayscale:({theme:e})=>({...e(\"grayscale\"),...s}),backdropHueRotate:({theme:e})=>({...e(\"hueRotate\"),...k}),backdropInvert:({theme:e})=>({...e(\"invert\"),...s}),backdropOpacity:({theme:e})=>({...e(\"opacity\"),...s}),backdropSaturate:({theme:e})=>({...e(\"saturate\"),...s}),backdropSepia:({theme:e})=>({...e(\"sepia\"),...s}),backgroundColor:({theme:e})=>e(\"colors\"),backgroundImage:{none:\"none\",\"gradient-to-t\":\"linear-gradient(to top, var(--tw-gradient-stops))\",\"gradient-to-tr\":\"linear-gradient(to top right, var(--tw-gradient-stops))\",\"gradient-to-r\":\"linear-gradient(to right, var(--tw-gradient-stops))\",\"gradient-to-br\":\"linear-gradient(to bottom right, var(--tw-gradient-stops))\",\"gradient-to-b\":\"linear-gradient(to bottom, var(--tw-gradient-stops))\",\"gradient-to-bl\":\"linear-gradient(to bottom left, var(--tw-gradient-stops))\",\"gradient-to-l\":\"linear-gradient(to left, var(--tw-gradient-stops))\",\"gradient-to-tl\":\"linear-gradient(to top left, var(--tw-gradient-stops))\"},backgroundOpacity:({theme:e})=>e(\"opacity\"),backgroundPosition:{bottom:\"bottom\",center:\"center\",left:\"left\",\"left-bottom\":\"left bottom\",\"left-top\":\"left top\",right:\"right\",\"right-bottom\":\"right bottom\",\"right-top\":\"right top\",top:\"top\"},backgroundSize:{auto:\"auto\",cover:\"cover\",contain:\"contain\"},blur:{0:\"0\",none:\"\",sm:\"4px\",DEFAULT:\"8px\",md:\"12px\",lg:\"16px\",xl:\"24px\",\"2xl\":\"40px\",\"3xl\":\"64px\"},borderColor:({theme:e})=>({DEFAULT:\"currentcolor\",...e(\"colors\")}),borderOpacity:({theme:e})=>e(\"opacity\"),borderRadius:{none:\"0px\",sm:\"0.125rem\",DEFAULT:\"0.25rem\",md:\"0.375rem\",lg:\"0.5rem\",xl:\"0.75rem\",\"2xl\":\"1rem\",\"3xl\":\"1.5rem\",full:\"9999px\"},borderSpacing:({theme:e})=>e(\"spacing\"),borderWidth:{DEFAULT:\"1px\",0:\"0px\",2:\"2px\",4:\"4px\",8:\"8px\",...d},boxShadow:{sm:\"0 1px 2px 0 rgb(0 0 0 / 0.05)\",DEFAULT:\"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)\",md:\"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)\",lg:\"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)\",xl:\"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)\",\"2xl\":\"0 25px 50px -12px rgb(0 0 0 / 0.25)\",inner:\"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)\",none:\"none\"},boxShadowColor:({theme:e})=>e(\"colors\"),brightness:{0:\"0\",50:\".5\",75:\".75\",90:\".9\",95:\".95\",100:\"1\",105:\"1.05\",110:\"1.1\",125:\"1.25\",150:\"1.5\",200:\"2\",...s},caretColor:({theme:e})=>e(\"colors\"),colors:()=>({...S}),columns:{auto:\"auto\",1:\"1\",2:\"2\",3:\"3\",4:\"4\",5:\"5\",6:\"6\",7:\"7\",8:\"8\",9:\"9\",10:\"10\",11:\"11\",12:\"12\",\"3xs\":\"16rem\",\"2xs\":\"18rem\",xs:\"20rem\",sm:\"24rem\",md:\"28rem\",lg:\"32rem\",xl:\"36rem\",\"2xl\":\"42rem\",\"3xl\":\"48rem\",\"4xl\":\"56rem\",\"5xl\":\"64rem\",\"6xl\":\"72rem\",\"7xl\":\"80rem\",...l},container:{},content:{none:\"none\"},contrast:{0:\"0\",50:\".5\",75:\".75\",100:\"1\",125:\"1.25\",150:\"1.5\",200:\"2\",...s},cursor:{auto:\"auto\",default:\"default\",pointer:\"pointer\",wait:\"wait\",text:\"text\",move:\"move\",help:\"help\",\"not-allowed\":\"not-allowed\",none:\"none\",\"context-menu\":\"context-menu\",progress:\"progress\",cell:\"cell\",crosshair:\"crosshair\",\"vertical-text\":\"vertical-text\",alias:\"alias\",copy:\"copy\",\"no-drop\":\"no-drop\",grab:\"grab\",grabbing:\"grabbing\",\"all-scroll\":\"all-scroll\",\"col-resize\":\"col-resize\",\"row-resize\":\"row-resize\",\"n-resize\":\"n-resize\",\"e-resize\":\"e-resize\",\"s-resize\":\"s-resize\",\"w-resize\":\"w-resize\",\"ne-resize\":\"ne-resize\",\"nw-resize\":\"nw-resize\",\"se-resize\":\"se-resize\",\"sw-resize\":\"sw-resize\",\"ew-resize\":\"ew-resize\",\"ns-resize\":\"ns-resize\",\"nesw-resize\":\"nesw-resize\",\"nwse-resize\":\"nwse-resize\",\"zoom-in\":\"zoom-in\",\"zoom-out\":\"zoom-out\"},divideColor:({theme:e})=>e(\"borderColor\"),divideOpacity:({theme:e})=>e(\"borderOpacity\"),divideWidth:({theme:e})=>({...e(\"borderWidth\"),...d}),dropShadow:{sm:\"0 1px 1px rgb(0 0 0 / 0.05)\",DEFAULT:[\"0 1px 2px rgb(0 0 0 / 0.1)\",\"0 1px 1px rgb(0 0 0 / 0.06)\"],md:[\"0 4px 3px rgb(0 0 0 / 0.07)\",\"0 2px 2px rgb(0 0 0 / 0.06)\"],lg:[\"0 10px 8px rgb(0 0 0 / 0.04)\",\"0 4px 3px rgb(0 0 0 / 0.1)\"],xl:[\"0 20px 13px rgb(0 0 0 / 0.03)\",\"0 8px 5px rgb(0 0 0 / 0.08)\"],\"2xl\":\"0 25px 25px rgb(0 0 0 / 0.15)\",none:\"0 0 #0000\"},fill:({theme:e})=>e(\"colors\"),flex:{1:\"1 1 0%\",auto:\"1 1 auto\",initial:\"0 1 auto\",none:\"none\"},flexBasis:({theme:e})=>({auto:\"auto\",\"1/2\":\"50%\",\"1/3\":\"33.333333%\",\"2/3\":\"66.666667%\",\"1/4\":\"25%\",\"2/4\":\"50%\",\"3/4\":\"75%\",\"1/5\":\"20%\",\"2/5\":\"40%\",\"3/5\":\"60%\",\"4/5\":\"80%\",\"1/6\":\"16.666667%\",\"2/6\":\"33.333333%\",\"3/6\":\"50%\",\"4/6\":\"66.666667%\",\"5/6\":\"83.333333%\",\"1/12\":\"8.333333%\",\"2/12\":\"16.666667%\",\"3/12\":\"25%\",\"4/12\":\"33.333333%\",\"5/12\":\"41.666667%\",\"6/12\":\"50%\",\"7/12\":\"58.333333%\",\"8/12\":\"66.666667%\",\"9/12\":\"75%\",\"10/12\":\"83.333333%\",\"11/12\":\"91.666667%\",full:\"100%\",...e(\"spacing\")}),flexGrow:{0:\"0\",DEFAULT:\"1\",...l},flexShrink:{0:\"0\",DEFAULT:\"1\",...l},fontFamily:{sans:[\"ui-sans-serif\",\"system-ui\",\"sans-serif\",'\"Apple Color Emoji\"','\"Segoe UI Emoji\"','\"Segoe UI Symbol\"','\"Noto Color Emoji\"'],serif:[\"ui-serif\",\"Georgia\",\"Cambria\",'\"Times New Roman\"',\"Times\",\"serif\"],mono:[\"ui-monospace\",\"SFMono-Regular\",\"Menlo\",\"Monaco\",\"Consolas\",'\"Liberation Mono\"','\"Courier New\"',\"monospace\"]},fontSize:{xs:[\"0.75rem\",{lineHeight:\"1rem\"}],sm:[\"0.875rem\",{lineHeight:\"1.25rem\"}],base:[\"1rem\",{lineHeight:\"1.5rem\"}],lg:[\"1.125rem\",{lineHeight:\"1.75rem\"}],xl:[\"1.25rem\",{lineHeight:\"1.75rem\"}],\"2xl\":[\"1.5rem\",{lineHeight:\"2rem\"}],\"3xl\":[\"1.875rem\",{lineHeight:\"2.25rem\"}],\"4xl\":[\"2.25rem\",{lineHeight:\"2.5rem\"}],\"5xl\":[\"3rem\",{lineHeight:\"1\"}],\"6xl\":[\"3.75rem\",{lineHeight:\"1\"}],\"7xl\":[\"4.5rem\",{lineHeight:\"1\"}],\"8xl\":[\"6rem\",{lineHeight:\"1\"}],\"9xl\":[\"8rem\",{lineHeight:\"1\"}]},fontWeight:{thin:\"100\",extralight:\"200\",light:\"300\",normal:\"400\",medium:\"500\",semibold:\"600\",bold:\"700\",extrabold:\"800\",black:\"900\"},gap:({theme:e})=>e(\"spacing\"),gradientColorStops:({theme:e})=>e(\"colors\"),gradientColorStopPositions:{\"0%\":\"0%\",\"5%\":\"5%\",\"10%\":\"10%\",\"15%\":\"15%\",\"20%\":\"20%\",\"25%\":\"25%\",\"30%\":\"30%\",\"35%\":\"35%\",\"40%\":\"40%\",\"45%\":\"45%\",\"50%\":\"50%\",\"55%\":\"55%\",\"60%\":\"60%\",\"65%\":\"65%\",\"70%\":\"70%\",\"75%\":\"75%\",\"80%\":\"80%\",\"85%\":\"85%\",\"90%\":\"90%\",\"95%\":\"95%\",\"100%\":\"100%\",...s},grayscale:{0:\"0\",DEFAULT:\"100%\",...s},gridAutoColumns:{auto:\"auto\",min:\"min-content\",max:\"max-content\",fr:\"minmax(0, 1fr)\"},gridAutoRows:{auto:\"auto\",min:\"min-content\",max:\"max-content\",fr:\"minmax(0, 1fr)\"},gridColumn:{auto:\"auto\",\"span-1\":\"span 1 / span 1\",\"span-2\":\"span 2 / span 2\",\"span-3\":\"span 3 / span 3\",\"span-4\":\"span 4 / span 4\",\"span-5\":\"span 5 / span 5\",\"span-6\":\"span 6 / span 6\",\"span-7\":\"span 7 / span 7\",\"span-8\":\"span 8 / span 8\",\"span-9\":\"span 9 / span 9\",\"span-10\":\"span 10 / span 10\",\"span-11\":\"span 11 / span 11\",\"span-12\":\"span 12 / span 12\",\"span-full\":\"1 / -1\"},gridColumnEnd:{auto:\"auto\",1:\"1\",2:\"2\",3:\"3\",4:\"4\",5:\"5\",6:\"6\",7:\"7\",8:\"8\",9:\"9\",10:\"10\",11:\"11\",12:\"12\",13:\"13\",...l},gridColumnStart:{auto:\"auto\",1:\"1\",2:\"2\",3:\"3\",4:\"4\",5:\"5\",6:\"6\",7:\"7\",8:\"8\",9:\"9\",10:\"10\",11:\"11\",12:\"12\",13:\"13\",...l},gridRow:{auto:\"auto\",\"span-1\":\"span 1 / span 1\",\"span-2\":\"span 2 / span 2\",\"span-3\":\"span 3 / span 3\",\"span-4\":\"span 4 / span 4\",\"span-5\":\"span 5 / span 5\",\"span-6\":\"span 6 / span 6\",\"span-7\":\"span 7 / span 7\",\"span-8\":\"span 8 / span 8\",\"span-9\":\"span 9 / span 9\",\"span-10\":\"span 10 / span 10\",\"span-11\":\"span 11 / span 11\",\"span-12\":\"span 12 / span 12\",\"span-full\":\"1 / -1\"},gridRowEnd:{auto:\"auto\",1:\"1\",2:\"2\",3:\"3\",4:\"4\",5:\"5\",6:\"6\",7:\"7\",8:\"8\",9:\"9\",10:\"10\",11:\"11\",12:\"12\",13:\"13\",...l},gridRowStart:{auto:\"auto\",1:\"1\",2:\"2\",3:\"3\",4:\"4\",5:\"5\",6:\"6\",7:\"7\",8:\"8\",9:\"9\",10:\"10\",11:\"11\",12:\"12\",13:\"13\",...l},gridTemplateColumns:{none:\"none\",subgrid:\"subgrid\",1:\"repeat(1, minmax(0, 1fr))\",2:\"repeat(2, minmax(0, 1fr))\",3:\"repeat(3, minmax(0, 1fr))\",4:\"repeat(4, minmax(0, 1fr))\",5:\"repeat(5, minmax(0, 1fr))\",6:\"repeat(6, minmax(0, 1fr))\",7:\"repeat(7, minmax(0, 1fr))\",8:\"repeat(8, minmax(0, 1fr))\",9:\"repeat(9, minmax(0, 1fr))\",10:\"repeat(10, minmax(0, 1fr))\",11:\"repeat(11, minmax(0, 1fr))\",12:\"repeat(12, minmax(0, 1fr))\",...U},gridTemplateRows:{none:\"none\",subgrid:\"subgrid\",1:\"repeat(1, minmax(0, 1fr))\",2:\"repeat(2, minmax(0, 1fr))\",3:\"repeat(3, minmax(0, 1fr))\",4:\"repeat(4, minmax(0, 1fr))\",5:\"repeat(5, minmax(0, 1fr))\",6:\"repeat(6, minmax(0, 1fr))\",7:\"repeat(7, minmax(0, 1fr))\",8:\"repeat(8, minmax(0, 1fr))\",9:\"repeat(9, minmax(0, 1fr))\",10:\"repeat(10, minmax(0, 1fr))\",11:\"repeat(11, minmax(0, 1fr))\",12:\"repeat(12, minmax(0, 1fr))\",...U},height:({theme:e})=>({auto:\"auto\",\"1/2\":\"50%\",\"1/3\":\"33.333333%\",\"2/3\":\"66.666667%\",\"1/4\":\"25%\",\"2/4\":\"50%\",\"3/4\":\"75%\",\"1/5\":\"20%\",\"2/5\":\"40%\",\"3/5\":\"60%\",\"4/5\":\"80%\",\"1/6\":\"16.666667%\",\"2/6\":\"33.333333%\",\"3/6\":\"50%\",\"4/6\":\"66.666667%\",\"5/6\":\"83.333333%\",full:\"100%\",screen:\"100vh\",svh:\"100svh\",lvh:\"100lvh\",dvh:\"100dvh\",min:\"min-content\",max:\"max-content\",fit:\"fit-content\",...e(\"spacing\")}),hueRotate:{0:\"0deg\",15:\"15deg\",30:\"30deg\",60:\"60deg\",90:\"90deg\",180:\"180deg\",...k},inset:({theme:e})=>({auto:\"auto\",\"1/2\":\"50%\",\"1/3\":\"33.333333%\",\"2/3\":\"66.666667%\",\"1/4\":\"25%\",\"2/4\":\"50%\",\"3/4\":\"75%\",full:\"100%\",...e(\"spacing\")}),invert:{0:\"0\",DEFAULT:\"100%\",...s},keyframes:{spin:{to:{transform:\"rotate(360deg)\"}},ping:{\"75%, 100%\":{transform:\"scale(2)\",opacity:\"0\"}},pulse:{\"50%\":{opacity:\".5\"}},bounce:{\"0%, 100%\":{transform:\"translateY(-25%)\",animationTimingFunction:\"cubic-bezier(0.8,0,1,1)\"},\"50%\":{transform:\"none\",animationTimingFunction:\"cubic-bezier(0,0,0.2,1)\"}}},letterSpacing:{tighter:\"-0.05em\",tight:\"-0.025em\",normal:\"0em\",wide:\"0.025em\",wider:\"0.05em\",widest:\"0.1em\"},lineHeight:{none:\"1\",tight:\"1.25\",snug:\"1.375\",normal:\"1.5\",relaxed:\"1.625\",loose:\"2\",3:\".75rem\",4:\"1rem\",5:\"1.25rem\",6:\"1.5rem\",7:\"1.75rem\",8:\"2rem\",9:\"2.25rem\",10:\"2.5rem\"},listStyleType:{none:\"none\",disc:\"disc\",decimal:\"decimal\"},listStyleImage:{none:\"none\"},margin:({theme:e})=>({auto:\"auto\",...e(\"spacing\")}),lineClamp:{1:\"1\",2:\"2\",3:\"3\",4:\"4\",5:\"5\",6:\"6\",...l},maxHeight:({theme:e})=>({none:\"none\",full:\"100%\",screen:\"100vh\",svh:\"100svh\",lvh:\"100lvh\",dvh:\"100dvh\",min:\"min-content\",max:\"max-content\",fit:\"fit-content\",...e(\"spacing\")}),maxWidth:({theme:e})=>({none:\"none\",xs:\"20rem\",sm:\"24rem\",md:\"28rem\",lg:\"32rem\",xl:\"36rem\",\"2xl\":\"42rem\",\"3xl\":\"48rem\",\"4xl\":\"56rem\",\"5xl\":\"64rem\",\"6xl\":\"72rem\",\"7xl\":\"80rem\",full:\"100%\",min:\"min-content\",max:\"max-content\",fit:\"fit-content\",prose:\"65ch\",...e(\"spacing\")}),minHeight:({theme:e})=>({full:\"100%\",screen:\"100vh\",svh:\"100svh\",lvh:\"100lvh\",dvh:\"100dvh\",min:\"min-content\",max:\"max-content\",fit:\"fit-content\",...e(\"spacing\")}),minWidth:({theme:e})=>({full:\"100%\",min:\"min-content\",max:\"max-content\",fit:\"fit-content\",...e(\"spacing\")}),objectPosition:{bottom:\"bottom\",center:\"center\",left:\"left\",\"left-bottom\":\"left bottom\",\"left-top\":\"left top\",right:\"right\",\"right-bottom\":\"right bottom\",\"right-top\":\"right top\",top:\"top\"},opacity:{0:\"0\",5:\"0.05\",10:\"0.1\",15:\"0.15\",20:\"0.2\",25:\"0.25\",30:\"0.3\",35:\"0.35\",40:\"0.4\",45:\"0.45\",50:\"0.5\",55:\"0.55\",60:\"0.6\",65:\"0.65\",70:\"0.7\",75:\"0.75\",80:\"0.8\",85:\"0.85\",90:\"0.9\",95:\"0.95\",100:\"1\",...s},order:{first:\"-9999\",last:\"9999\",none:\"0\",1:\"1\",2:\"2\",3:\"3\",4:\"4\",5:\"5\",6:\"6\",7:\"7\",8:\"8\",9:\"9\",10:\"10\",11:\"11\",12:\"12\",...l},outlineColor:({theme:e})=>e(\"colors\"),outlineOffset:{0:\"0px\",1:\"1px\",2:\"2px\",4:\"4px\",8:\"8px\",...d},outlineWidth:{0:\"0px\",1:\"1px\",2:\"2px\",4:\"4px\",8:\"8px\",...d},padding:({theme:e})=>e(\"spacing\"),placeholderColor:({theme:e})=>e(\"colors\"),placeholderOpacity:({theme:e})=>e(\"opacity\"),ringColor:({theme:e})=>({DEFAULT:\"currentcolor\",...e(\"colors\")}),ringOffsetColor:({theme:e})=>e(\"colors\"),ringOffsetWidth:{0:\"0px\",1:\"1px\",2:\"2px\",4:\"4px\",8:\"8px\",...d},ringOpacity:({theme:e})=>({DEFAULT:\"0.5\",...e(\"opacity\")}),ringWidth:{DEFAULT:\"3px\",0:\"0px\",1:\"1px\",2:\"2px\",4:\"4px\",8:\"8px\",...d},rotate:{0:\"0deg\",1:\"1deg\",2:\"2deg\",3:\"3deg\",6:\"6deg\",12:\"12deg\",45:\"45deg\",90:\"90deg\",180:\"180deg\",...k},saturate:{0:\"0\",50:\".5\",100:\"1\",150:\"1.5\",200:\"2\",...s},scale:{0:\"0\",50:\".5\",75:\".75\",90:\".9\",95:\".95\",100:\"1\",105:\"1.05\",110:\"1.1\",125:\"1.25\",150:\"1.5\",...s},screens:{sm:\"40rem\",md:\"48rem\",lg:\"64rem\",xl:\"80rem\",\"2xl\":\"96rem\"},scrollMargin:({theme:e})=>e(\"spacing\"),scrollPadding:({theme:e})=>e(\"spacing\"),sepia:{0:\"0\",DEFAULT:\"100%\",...s},skew:{0:\"0deg\",1:\"1deg\",2:\"2deg\",3:\"3deg\",6:\"6deg\",12:\"12deg\",...k},space:({theme:e})=>e(\"spacing\"),spacing:{px:\"1px\",0:\"0px\",.5:\"0.125rem\",1:\"0.25rem\",1.5:\"0.375rem\",2:\"0.5rem\",2.5:\"0.625rem\",3:\"0.75rem\",3.5:\"0.875rem\",4:\"1rem\",5:\"1.25rem\",6:\"1.5rem\",7:\"1.75rem\",8:\"2rem\",9:\"2.25rem\",10:\"2.5rem\",11:\"2.75rem\",12:\"3rem\",14:\"3.5rem\",16:\"4rem\",20:\"5rem\",24:\"6rem\",28:\"7rem\",32:\"8rem\",36:\"9rem\",40:\"10rem\",44:\"11rem\",48:\"12rem\",52:\"13rem\",56:\"14rem\",60:\"15rem\",64:\"16rem\",72:\"18rem\",80:\"20rem\",96:\"24rem\"},stroke:({theme:e})=>({none:\"none\",...e(\"colors\")}),strokeWidth:{0:\"0\",1:\"1\",2:\"2\",...l},supports:{},data:{},textColor:({theme:e})=>e(\"colors\"),textDecorationColor:({theme:e})=>e(\"colors\"),textDecorationThickness:{auto:\"auto\",\"from-font\":\"from-font\",0:\"0px\",1:\"1px\",2:\"2px\",4:\"4px\",8:\"8px\",...d},textIndent:({theme:e})=>e(\"spacing\"),textOpacity:({theme:e})=>e(\"opacity\"),textUnderlineOffset:{auto:\"auto\",0:\"0px\",1:\"1px\",2:\"2px\",4:\"4px\",8:\"8px\",...d},transformOrigin:{center:\"center\",top:\"top\",\"top-right\":\"top right\",right:\"right\",\"bottom-right\":\"bottom right\",bottom:\"bottom\",\"bottom-left\":\"bottom left\",left:\"left\",\"top-left\":\"top left\"},transitionDelay:{0:\"0s\",75:\"75ms\",100:\"100ms\",150:\"150ms\",200:\"200ms\",300:\"300ms\",500:\"500ms\",700:\"700ms\",1e3:\"1000ms\",...L},transitionDuration:{DEFAULT:\"150ms\",0:\"0s\",75:\"75ms\",100:\"100ms\",150:\"150ms\",200:\"200ms\",300:\"300ms\",500:\"500ms\",700:\"700ms\",1e3:\"1000ms\",...L},transitionProperty:{none:\"none\",all:\"all\",DEFAULT:\"color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter\",colors:\"color, background-color, border-color, outline-color, text-decoration-color, fill, stroke\",opacity:\"opacity\",shadow:\"box-shadow\",transform:\"transform\"},transitionTimingFunction:{DEFAULT:\"cubic-bezier(0.4, 0, 0.2, 1)\",linear:\"linear\",in:\"cubic-bezier(0.4, 0, 1, 1)\",out:\"cubic-bezier(0, 0, 0.2, 1)\",\"in-out\":\"cubic-bezier(0.4, 0, 0.2, 1)\"},translate:({theme:e})=>({\"1/2\":\"50%\",\"1/3\":\"33.333333%\",\"2/3\":\"66.666667%\",\"1/4\":\"25%\",\"2/4\":\"50%\",\"3/4\":\"75%\",full:\"100%\",...e(\"spacing\")}),size:({theme:e})=>({auto:\"auto\",\"1/2\":\"50%\",\"1/3\":\"33.333333%\",\"2/3\":\"66.666667%\",\"1/4\":\"25%\",\"2/4\":\"50%\",\"3/4\":\"75%\",\"1/5\":\"20%\",\"2/5\":\"40%\",\"3/5\":\"60%\",\"4/5\":\"80%\",\"1/6\":\"16.666667%\",\"2/6\":\"33.333333%\",\"3/6\":\"50%\",\"4/6\":\"66.666667%\",\"5/6\":\"83.333333%\",\"1/12\":\"8.333333%\",\"2/12\":\"16.666667%\",\"3/12\":\"25%\",\"4/12\":\"33.333333%\",\"5/12\":\"41.666667%\",\"6/12\":\"50%\",\"7/12\":\"58.333333%\",\"8/12\":\"66.666667%\",\"9/12\":\"75%\",\"10/12\":\"83.333333%\",\"11/12\":\"91.666667%\",full:\"100%\",min:\"min-content\",max:\"max-content\",fit:\"fit-content\",...e(\"spacing\")}),width:({theme:e})=>({auto:\"auto\",\"1/2\":\"50%\",\"1/3\":\"33.333333%\",\"2/3\":\"66.666667%\",\"1/4\":\"25%\",\"2/4\":\"50%\",\"3/4\":\"75%\",\"1/5\":\"20%\",\"2/5\":\"40%\",\"3/5\":\"60%\",\"4/5\":\"80%\",\"1/6\":\"16.666667%\",\"2/6\":\"33.333333%\",\"3/6\":\"50%\",\"4/6\":\"66.666667%\",\"5/6\":\"83.333333%\",\"1/12\":\"8.333333%\",\"2/12\":\"16.666667%\",\"3/12\":\"25%\",\"4/12\":\"33.333333%\",\"5/12\":\"41.666667%\",\"6/12\":\"50%\",\"7/12\":\"58.333333%\",\"8/12\":\"66.666667%\",\"9/12\":\"75%\",\"10/12\":\"83.333333%\",\"11/12\":\"91.666667%\",full:\"100%\",screen:\"100vw\",svw:\"100svw\",lvw:\"100lvw\",dvw:\"100dvw\",min:\"min-content\",max:\"max-content\",fit:\"fit-content\",...e(\"spacing\")}),willChange:{auto:\"auto\",scroll:\"scroll-position\",contents:\"contents\",transform:\"transform\"},zIndex:{auto:\"auto\",0:\"0\",10:\"10\",20:\"20\",30:\"30\",40:\"40\",50:\"50\",...l}};export{ie as a,g as b,pe as c,p as d,ge as e,ue as f,de as g,ye as h};\n",
|
|
46
|
+
"import{a as Tt,b as U,c as J,d as E,e as lt,f as pe,g as Ue,h as Pt}from\"./chunk-P5FH2LZE.mjs\";import{a as Et}from\"./chunk-HTB5LLOP.mjs\";var Rt=\"4.1.7\";var Ve=92,Ie=47,Fe=42,ei=34,ti=39,ri=58,Le=59,ie=10,ze=13,Ne=32,Me=9,Ot=123,at=125,ft=40,Kt=41,ii=91,ni=93,_t=45,st=64,oi=33;function me(r,t){let i=t?.from?{file:t.from,code:r}:null;r[0]===\"\\uFEFF\"&&(r=\" \"+r.slice(1));let e=[],n=[],s=[],a=null,c=null,u=\"\",f=\"\",g=0,p;for(let m=0;m<r.length;m++){let w=r.charCodeAt(m);if(!(w===ze&&(p=r.charCodeAt(m+1),p===ie)))if(w===Ve)u===\"\"&&(g=m),u+=r.slice(m,m+2),m+=1;else if(w===Ie&&r.charCodeAt(m+1)===Fe){let v=m;for(let k=m+2;k<r.length;k++)if(p=r.charCodeAt(k),p===Ve)k+=1;else if(p===Fe&&r.charCodeAt(k+1)===Ie){m=k+1;break}let x=r.slice(v,m+1);if(x.charCodeAt(2)===oi){let k=We(x.slice(2,-2));n.push(k),i&&(k.src=[i,v,m+1],k.dst=[i,v,m+1])}}else if(w===ti||w===ei){let v=m;for(let x=m+1;x<r.length;x++)if(p=r.charCodeAt(x),p===Ve)x+=1;else if(p===w){m=x;break}else{if(p===Le&&(r.charCodeAt(x+1)===ie||r.charCodeAt(x+1)===ze&&r.charCodeAt(x+2)===ie))throw new Error(`Unterminated string: ${r.slice(v,x+1)+String.fromCharCode(w)}`);if(p===ie||p===ze&&r.charCodeAt(x+1)===ie)throw new Error(`Unterminated string: ${r.slice(v,x)+String.fromCharCode(w)}`)}u+=r.slice(v,m+1)}else{if((w===Ne||w===ie||w===Me)&&(p=r.charCodeAt(m+1))&&(p===Ne||p===ie||p===Me||p===ze&&(p=r.charCodeAt(m+2))&&p==ie))continue;if(w===ie){if(u.length===0)continue;p=u.charCodeAt(u.length-1),p!==Ne&&p!==ie&&p!==Me&&(u+=\" \")}else if(w===_t&&r.charCodeAt(m+1)===_t&&u.length===0){let v=\"\",x=m,k=-1;for(let b=m+2;b<r.length;b++)if(p=r.charCodeAt(b),p===Ve)b+=1;else if(p===Ie&&r.charCodeAt(b+1)===Fe){for(let S=b+2;S<r.length;S++)if(p=r.charCodeAt(S),p===Ve)S+=1;else if(p===Fe&&r.charCodeAt(S+1)===Ie){b=S+1;break}}else if(k===-1&&p===ri)k=u.length+b-x;else if(p===Le&&v.length===0){u+=r.slice(x,b),m=b;break}else if(p===ft)v+=\")\";else if(p===ii)v+=\"]\";else if(p===Ot)v+=\"}\";else if((p===at||r.length-1===b)&&v.length===0){m=b-1,u+=r.slice(x,b);break}else(p===Kt||p===ni||p===at)&&v.length>0&&r[b]===v[v.length-1]&&(v=v.slice(0,-1));let N=ut(u,k);if(!N)throw new Error(\"Invalid custom property, expected a value\");i&&(N.src=[i,x,m],N.dst=[i,x,m]),a?a.nodes.push(N):e.push(N),u=\"\"}else if(w===Le&&u.charCodeAt(0)===st)c=Se(u),i&&(c.src=[i,g,m],c.dst=[i,g,m]),a?a.nodes.push(c):e.push(c),u=\"\",c=null;else if(w===Le&&f[f.length-1]!==\")\"){let v=ut(u);if(!v)throw u.length===0?new Error(\"Unexpected semicolon\"):new Error(`Invalid declaration: \\`${u.trim()}\\``);i&&(v.src=[i,g,m],v.dst=[i,g,m]),a?a.nodes.push(v):e.push(v),u=\"\"}else if(w===Ot&&f[f.length-1]!==\")\")f+=\"}\",c=H(u.trim()),i&&(c.src=[i,g,m],c.dst=[i,g,m]),a&&a.nodes.push(c),s.push(a),a=c,u=\"\",c=null;else if(w===at&&f[f.length-1]!==\")\"){if(f===\"\")throw new Error(\"Missing opening {\");if(f=f.slice(0,-1),u.length>0)if(u.charCodeAt(0)===st)c=Se(u),i&&(c.src=[i,g,m],c.dst=[i,g,m]),a?a.nodes.push(c):e.push(c),u=\"\",c=null;else{let x=u.indexOf(\":\");if(a){let k=ut(u,x);if(!k)throw new Error(`Invalid declaration: \\`${u.trim()}\\``);i&&(k.src=[i,g,m],k.dst=[i,g,m]),a.nodes.push(k)}}let v=s.pop()??null;v===null&&a&&e.push(a),a=v,u=\"\",c=null}else if(w===ft)f+=\")\",u+=\"(\";else if(w===Kt){if(f[f.length-1]!==\")\")throw new Error(\"Missing opening (\");f=f.slice(0,-1),u+=\")\"}else{if(u.length===0&&(w===Ne||w===ie||w===Me))continue;u===\"\"&&(g=m),u+=String.fromCharCode(w)}}}if(u.charCodeAt(0)===st){let m=Se(u);i&&(m.src=[i,g,r.length],m.dst=[i,g,r.length]),e.push(m)}if(f.length>0&&a){if(a.kind===\"rule\")throw new Error(`Missing closing } at ${a.selector}`);if(a.kind===\"at-rule\")throw new Error(`Missing closing } at ${a.name} ${a.params}`)}return n.length>0?n.concat(e):e}function Se(r,t=[]){let i=r,e=\"\";for(let n=5;n<r.length;n++){let s=r.charCodeAt(n);if(s===Ne||s===ft){i=r.slice(0,n),e=r.slice(n);break}}return z(i.trim(),e.trim(),t)}function ut(r,t=r.indexOf(\":\")){if(t===-1)return null;let i=r.indexOf(\"!important\",t+1);return l(r.slice(0,t).trim(),r.slice(t+1,i===-1?r.length:i).trim(),i!==-1)}function fe(r){if(arguments.length===0)throw new TypeError(\"`CSS.escape` requires an argument.\");let t=String(r),i=t.length,e=-1,n,s=\"\",a=t.charCodeAt(0);if(i===1&&a===45)return\"\\\\\"+t;for(;++e<i;){if(n=t.charCodeAt(e),n===0){s+=\"\\uFFFD\";continue}if(n>=1&&n<=31||n===127||e===0&&n>=48&&n<=57||e===1&&n>=48&&n<=57&&a===45){s+=\"\\\\\"+n.toString(16)+\" \";continue}if(n>=128||n===45||n===95||n>=48&&n<=57||n>=65&&n<=90||n>=97&&n<=122){s+=t.charAt(e);continue}s+=\"\\\\\"+t.charAt(e)}return s}function ge(r){return r.replace(/\\\\([\\dA-Fa-f]{1,6}[\\t\\n\\f\\r ]?|[\\S\\s])/g,t=>t.length>2?String.fromCodePoint(Number.parseInt(t.slice(1).trim(),16)):t[1])}var Dt=new Map([[\"--font\",[\"--font-weight\",\"--font-size\"]],[\"--inset\",[\"--inset-shadow\",\"--inset-ring\"]],[\"--text\",[\"--text-color\",\"--text-decoration-color\",\"--text-decoration-thickness\",\"--text-indent\",\"--text-shadow\",\"--text-underline-offset\"]]]);function jt(r,t){return(Dt.get(t)??[]).some(i=>r===i||r.startsWith(`${i}-`))}var Be=class{constructor(t=new Map,i=new Set([])){this.values=t;this.keyframes=i}prefix=null;add(t,i,e=0,n){if(t.endsWith(\"-*\")){if(i!==\"initial\")throw new Error(`Invalid theme value \\`${i}\\` for namespace \\`${t}\\``);t===\"--*\"?this.values.clear():this.clearNamespace(t.slice(0,-2),0)}if(e&4){let s=this.values.get(t);if(s&&!(s.options&4))return}i===\"initial\"?this.values.delete(t):this.values.set(t,{value:i,options:e,src:n})}keysInNamespaces(t){let i=[];for(let e of t){let n=`${e}-`;for(let s of this.values.keys())s.startsWith(n)&&s.indexOf(\"--\",2)===-1&&(jt(s,e)||i.push(s.slice(n.length)))}return i}get(t){for(let i of t){let e=this.values.get(i);if(e)return e.value}return null}hasDefault(t){return(this.getOptions(t)&4)===4}getOptions(t){return t=ge(this.#r(t)),this.values.get(t)?.options??0}entries(){return this.prefix?Array.from(this.values,t=>(t[0]=this.prefixKey(t[0]),t)):this.values.entries()}prefixKey(t){return this.prefix?`--${this.prefix}-${t.slice(2)}`:t}#r(t){return this.prefix?`--${t.slice(3+this.prefix.length)}`:t}clearNamespace(t,i){let e=Dt.get(t)??[];e:for(let n of this.values.keys())if(n.startsWith(t)){if(i!==0&&(this.getOptions(n)&i)!==i)continue;for(let s of e)if(n.startsWith(s))continue e;this.values.delete(n)}}#e(t,i){for(let e of i){let n=t!==null?`${e}-${t}`:e;if(!this.values.has(n))if(t!==null&&t.includes(\".\")){if(n=`${e}-${t.replaceAll(\".\",\"_\")}`,!this.values.has(n))continue}else continue;if(!jt(n,e))return n}return null}#t(t){let i=this.values.get(t);if(!i)return null;let e=null;return i.options&2&&(e=i.value),`var(${fe(this.prefixKey(t))}${e?`, ${e}`:\"\"})`}markUsedVariable(t){let i=ge(this.#r(t)),e=this.values.get(i);if(!e)return!1;let n=e.options&16;return e.options|=16,!n}resolve(t,i,e=0){let n=this.#e(t,i);if(!n)return null;let s=this.values.get(n);return(e|s.options)&1?s.value:this.#t(n)}resolveValue(t,i){let e=this.#e(t,i);return e?this.values.get(e).value:null}resolveWith(t,i,e=[]){let n=this.#e(t,i);if(!n)return null;let s={};for(let c of e){let u=`${n}${c}`,f=this.values.get(u);f&&(f.options&1?s[c]=f.value:s[c]=this.#t(u))}let a=this.values.get(n);return a.options&1?[a.value,s]:[this.#t(n),s]}namespace(t){let i=new Map,e=`${t}-`;for(let[n,s]of this.values)n===t?i.set(null,s.value):n.startsWith(`${e}-`)?i.set(n.slice(t.length),s.value):n.startsWith(e)&&i.set(n.slice(e.length),s.value);return i}addKeyframes(t){this.keyframes.add(t)}getKeyframes(){return Array.from(this.keyframes)}};var W=class extends Map{constructor(i){super();this.factory=i}get(i){let e=super.get(i);return e===void 0&&(e=this.factory(i,this),this.set(i,e)),e}};function dt(r){return{kind:\"word\",value:r}}function li(r,t){return{kind:\"function\",value:r,nodes:t}}function ai(r){return{kind:\"separator\",value:r}}function ee(r,t,i=null){for(let e=0;e<r.length;e++){let n=r[e],s=!1,a=0,c=t(n,{parent:i,replaceWith(u){s||(s=!0,Array.isArray(u)?u.length===0?(r.splice(e,1),a=0):u.length===1?(r[e]=u[0],a=1):(r.splice(e,1,...u),a=u.length):r[e]=u)}})??0;if(s){c===0?e--:e+=a-1;continue}if(c===2)return 2;if(c!==1&&n.kind===\"function\"&&ee(n.nodes,t,n)===2)return 2}}function Y(r){let t=\"\";for(let i of r)switch(i.kind){case\"word\":case\"separator\":{t+=i.value;break}case\"function\":t+=i.value+\"(\"+Y(i.nodes)+\")\"}return t}var Ut=92,si=41,It=58,Ft=44,ui=34,Lt=61,zt=62,Mt=60,Wt=10,fi=40,ci=39,Bt=47,qt=32,Gt=9;function B(r){r=r.replaceAll(`\\r\n`,`\n`);let t=[],i=[],e=null,n=\"\",s;for(let a=0;a<r.length;a++){let c=r.charCodeAt(a);switch(c){case Ut:{n+=r[a]+r[a+1],a++;break}case It:case Ft:case Lt:case zt:case Mt:case Wt:case Bt:case qt:case Gt:{if(n.length>0){let p=dt(n);e?e.nodes.push(p):t.push(p),n=\"\"}let u=a,f=a+1;for(;f<r.length&&(s=r.charCodeAt(f),!(s!==It&&s!==Ft&&s!==Lt&&s!==zt&&s!==Mt&&s!==Wt&&s!==Bt&&s!==qt&&s!==Gt));f++);a=f-1;let g=ai(r.slice(u,f));e?e.nodes.push(g):t.push(g);break}case ci:case ui:{let u=a;for(let f=a+1;f<r.length;f++)if(s=r.charCodeAt(f),s===Ut)f+=1;else if(s===c){a=f;break}n+=r.slice(u,a+1);break}case fi:{let u=li(n,[]);n=\"\",e?e.nodes.push(u):t.push(u),i.push(u),e=u;break}case si:{let u=i.pop();if(n.length>0){let f=dt(n);u.nodes.push(f),n=\"\"}i.length>0?e=i[i.length-1]:e=null;break}default:n+=String.fromCharCode(c)}}return n.length>0&&t.push(dt(n)),t}function qe(r){let t=[];return ee(B(r),i=>{if(!(i.kind!==\"function\"||i.value!==\"var\"))return ee(i.nodes,e=>{e.kind!==\"word\"||e.value[0]!==\"-\"||e.value[1]!==\"-\"||t.push(e.value)}),1}),t}var pi=64;function M(r,t=[]){return{kind:\"rule\",selector:r,nodes:t}}function z(r,t=\"\",i=[]){return{kind:\"at-rule\",name:r,params:t,nodes:i}}function H(r,t=[]){return r.charCodeAt(0)===pi?Se(r,t):M(r,t)}function l(r,t,i=!1){return{kind:\"declaration\",property:r,value:t,important:i}}function We(r){return{kind:\"comment\",value:r}}function le(r,t){return{kind:\"context\",context:r,nodes:t}}function I(r){return{kind:\"at-root\",nodes:r}}function D(r,t,i=[],e={}){for(let n=0;n<r.length;n++){let s=r[n],a=i[i.length-1]??null;if(s.kind===\"context\"){if(D(s.nodes,t,i,{...e,...s.context})===2)return 2;continue}i.push(s);let c=!1,u=0,f=t(s,{parent:a,context:e,path:i,replaceWith(g){c||(c=!0,Array.isArray(g)?g.length===0?(r.splice(n,1),u=0):g.length===1?(r[n]=g[0],u=1):(r.splice(n,1,...g),u=g.length):(r[n]=g,u=1))}})??0;if(i.pop(),c){f===0?n--:n+=u-1;continue}if(f===2)return 2;if(f!==1&&\"nodes\"in s){i.push(s);let g=D(s.nodes,t,i,e);if(i.pop(),g===2)return 2}}}function Ge(r,t,i=[],e={}){for(let n=0;n<r.length;n++){let s=r[n],a=i[i.length-1]??null;if(s.kind===\"rule\"||s.kind===\"at-rule\")i.push(s),Ge(s.nodes,t,i,e),i.pop();else if(s.kind===\"context\"){Ge(s.nodes,t,i,{...e,...s.context});continue}i.push(s),t(s,{parent:a,context:e,path:i,replaceWith(c){Array.isArray(c)?c.length===0?r.splice(n,1):c.length===1?r[n]=c[0]:r.splice(n,1,...c):r[n]=c,n+=c.length-1}}),i.pop()}}function ve(r,t,i=3){let e=[],n=new Set,s=new W(()=>new Set),a=new W(()=>new Set),c=new Set,u=new Set,f=[],g=[],p=new W(()=>new Set);function m(v,x,k={},N=0){if(v.kind===\"declaration\"){if(v.property===\"--tw-sort\"||v.value===void 0||v.value===null)return;if(k.theme&&v.property[0]===\"-\"&&v.property[1]===\"-\"){if(v.value===\"initial\"){v.value=void 0;return}k.keyframes||s.get(x).add(v)}if(v.value.includes(\"var(\"))if(k.theme&&v.property[0]===\"-\"&&v.property[1]===\"-\")for(let b of qe(v.value))p.get(b).add(v.property);else t.trackUsedVariables(v.value);if(v.property===\"animation\")for(let b of Jt(v.value))u.add(b);i&2&&v.value.includes(\"color-mix(\")&&a.get(x).add(v),x.push(v)}else if(v.kind===\"rule\")if(v.selector===\"&\")for(let b of v.nodes){let S=[];m(b,S,k,N+1),S.length>0&&x.push(...S)}else{let b={...v,nodes:[]};for(let S of v.nodes)m(S,b.nodes,k,N+1);b.nodes.length>0&&x.push(b)}else if(v.kind===\"at-rule\"&&v.name===\"@property\"&&N===0){if(n.has(v.params))return;if(i&1){let S=v.params,P=null,j=!1;for(let F of v.nodes)F.kind===\"declaration\"&&(F.property===\"initial-value\"?P=F.value:F.property===\"inherits\"&&(j=F.value===\"true\"));let K=l(S,P??\"initial\");K.src=v.src,j?f.push(K):g.push(K)}n.add(v.params);let b={...v,nodes:[]};for(let S of v.nodes)m(S,b.nodes,k,N+1);x.push(b)}else if(v.kind===\"at-rule\"){v.name===\"@keyframes\"&&(k={...k,keyframes:!0});let b={...v,nodes:[]};for(let S of v.nodes)m(S,b.nodes,k,N+1);v.name===\"@keyframes\"&&k.theme&&c.add(b),(b.nodes.length>0||b.name===\"@layer\"||b.name===\"@charset\"||b.name===\"@custom-media\"||b.name===\"@namespace\"||b.name===\"@import\")&&x.push(b)}else if(v.kind===\"at-root\")for(let b of v.nodes){let S=[];m(b,S,k,0);for(let P of S)e.push(P)}else if(v.kind===\"context\"){if(v.context.reference)return;for(let b of v.nodes)m(b,x,{...k,...v.context},N)}else v.kind===\"comment\"&&x.push(v)}let w=[];for(let v of r)m(v,w,{},0);e:for(let[v,x]of s)for(let k of x){if(Ht(k.property,t.theme,p)){if(k.property.startsWith(t.theme.prefixKey(\"--animate-\")))for(let S of Jt(k.value))u.add(S);continue}let b=v.indexOf(k);if(v.splice(b,1),v.length===0){let S=mi(w,P=>P.kind===\"rule\"&&P.nodes===v);if(!S||S.length===0)continue e;S.unshift({kind:\"at-root\",nodes:w});do{let P=S.pop();if(!P)break;let j=S[S.length-1];if(!j||j.kind!==\"at-root\"&&j.kind!==\"at-rule\")break;let K=j.nodes.indexOf(P);if(K===-1)break;j.nodes.splice(K,1)}while(!0);continue e}}for(let v of c)if(!u.has(v.params)){let x=e.indexOf(v);e.splice(x,1)}if(w=w.concat(e),i&2)for(let[v,x]of a)for(let k of x){let N=v.indexOf(k);if(N===-1||k.value==null)continue;let b=B(k.value),S=!1;if(ee(b,(K,{replaceWith:F})=>{if(K.kind!==\"function\"||K.value!==\"color-mix\")return;let O=!1,G=!1;if(ee(K.nodes,(L,{replaceWith:q})=>{if(L.kind==\"word\"&&L.value.toLowerCase()===\"currentcolor\"){G=!0,S=!0;return}let X=L,re=null,o=new Set;do{if(X.kind!==\"function\"||X.value!==\"var\")return;let d=X.nodes[0];if(!d||d.kind!==\"word\")return;let h=d.value;if(o.has(h)){O=!0;return}if(o.add(h),S=!0,re=t.theme.resolveValue(null,[d.value]),!re){O=!0;return}if(re.toLowerCase()===\"currentcolor\"){G=!0;return}re.startsWith(\"var(\")?X=B(re)[0]:X=null}while(X);q({kind:\"word\",value:re})}),O||G){let L=K.nodes.findIndex(X=>X.kind===\"separator\"&&X.value.trim().includes(\",\"));if(L===-1)return;let q=K.nodes.length>L?K.nodes[L+1]:null;if(!q)return;F(q)}else if(S){let L=K.nodes[2];L.kind===\"word\"&&(L.value===\"oklab\"||L.value===\"oklch\"||L.value===\"lab\"||L.value===\"lch\")&&(L.value=\"srgb\")}}),!S)continue;let P={...k,value:Y(b)},j=H(\"@supports (color: color-mix(in lab, red, red))\",[k]);j.src=k.src,v.splice(N,1,P,j)}if(i&1){let v=[];if(f.length>0){let x=H(\":root, :host\",f);x.src=f[0].src,v.push(x)}if(g.length>0){let x=H(\"*, ::before, ::after, ::backdrop\",g);x.src=g[0].src,v.push(x)}if(v.length>0){let x=w.findIndex(b=>!(b.kind===\"comment\"||b.kind===\"at-rule\"&&(b.name===\"@charset\"||b.name===\"@import\"))),k=z(\"@layer\",\"properties\",[]);k.src=v[0].src,w.splice(x<0?w.length:x,0,k);let N=H(\"@layer properties\",[z(\"@supports\",\"((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b))))\",v)]);N.src=v[0].src,N.nodes[0].src=v[0].src,w.push(N)}}return w}function ne(r,t){let i=0,e={file:null,code:\"\"};function n(a,c=0){let u=\"\",f=\" \".repeat(c);if(a.kind===\"declaration\"){if(u+=`${f}${a.property}: ${a.value}${a.important?\" !important\":\"\"};\n`,t){i+=f.length;let g=i;i+=a.property.length,i+=2,i+=a.value?.length??0,a.important&&(i+=11);let p=i;i+=2,a.dst=[e,g,p]}}else if(a.kind===\"rule\"){if(u+=`${f}${a.selector} {\n`,t){i+=f.length;let g=i;i+=a.selector.length,i+=1;let p=i;a.dst=[e,g,p],i+=2}for(let g of a.nodes)u+=n(g,c+1);u+=`${f}}\n`,t&&(i+=f.length,i+=2)}else if(a.kind===\"at-rule\"){if(a.nodes.length===0){let g=`${f}${a.name} ${a.params};\n`;if(t){i+=f.length;let p=i;i+=a.name.length,i+=1,i+=a.params.length;let m=i;i+=2,a.dst=[e,p,m]}return g}if(u+=`${f}${a.name}${a.params?` ${a.params} `:\" \"}{\n`,t){i+=f.length;let g=i;i+=a.name.length,a.params&&(i+=1,i+=a.params.length),i+=1;let p=i;a.dst=[e,g,p],i+=2}for(let g of a.nodes)u+=n(g,c+1);u+=`${f}}\n`,t&&(i+=f.length,i+=2)}else if(a.kind===\"comment\"){if(u+=`${f}/*${a.value}*/\n`,t){i+=f.length;let g=i;i+=2+a.value.length+2;let p=i;a.dst=[e,g,p],i+=1}}else if(a.kind===\"context\"||a.kind===\"at-root\")return\"\";return u}let s=\"\";for(let a of r)s+=n(a,0);return e.code=s,s}function mi(r,t){let i=[];return D(r,(e,{path:n})=>{if(t(e))return i=[...n],2}),i}function Ht(r,t,i,e=new Set){if(e.has(r)||(e.add(r),t.getOptions(r)&24))return!0;{let s=i.get(r)??[];for(let a of s)if(Ht(a,t,i,e))return!0}return!1}function Jt(r){return r.split(/[\\s,]+/)}function ce(r){if(r.indexOf(\"(\")===-1)return be(r);let t=B(r);return mt(t),r=Y(t),r=Tt(r),r}function be(r,t=!1){let i=\"\";for(let e=0;e<r.length;e++){let n=r[e];n===\"\\\\\"&&r[e+1]===\"_\"?(i+=\"_\",e+=1):n===\"_\"&&!t?i+=\" \":i+=n}return i}function mt(r){for(let t of r)switch(t.kind){case\"function\":{if(t.value===\"url\"||t.value.endsWith(\"_url\")){t.value=be(t.value);break}if(t.value===\"var\"||t.value.endsWith(\"_var\")||t.value===\"theme\"||t.value.endsWith(\"_theme\")){t.value=be(t.value);for(let i=0;i<t.nodes.length;i++){if(i==0&&t.nodes[i].kind===\"word\"){t.nodes[i].value=be(t.nodes[i].value,!0);continue}mt([t.nodes[i]])}break}t.value=be(t.value),mt(t.nodes);break}case\"separator\":case\"word\":{t.value=be(t.value);break}default:gi(t)}}function gi(r){throw new Error(`Unexpected value: ${r}`)}var gt=new Uint8Array(256);function se(r){let t=0,i=r.length;for(let e=0;e<i;e++){let n=r.charCodeAt(e);switch(n){case 92:e+=1;break;case 39:case 34:for(;++e<i;){let s=r.charCodeAt(e);if(s===92){e+=1;continue}if(s===n)break}break;case 40:gt[t]=41,t++;break;case 91:gt[t]=93,t++;break;case 123:break;case 93:case 125:case 41:if(t===0)return!1;t>0&&n===gt[t-1]&&t--;break;case 59:if(t===0)return!1;break}}return!0}var hi=58,Yt=45,Zt=97,Qt=122;function*Xt(r,t){let i=U(r,\":\");if(t.theme.prefix){if(i.length===1||i[0]!==t.theme.prefix)return null;i.shift()}let e=i.pop(),n=[];for(let p=i.length-1;p>=0;--p){let m=t.parseVariant(i[p]);if(m===null)return;n.push(m)}let s=!1;e[e.length-1]===\"!\"?(s=!0,e=e.slice(0,-1)):e[0]===\"!\"&&(s=!0,e=e.slice(1)),t.utilities.has(e,\"static\")&&!e.includes(\"[\")&&(yield{kind:\"static\",root:e,variants:n,important:s,raw:r});let[a,c=null,u]=U(e,\"/\");if(u)return;let f=c===null?null:ht(c);if(c!==null&&f===null)return;if(a[0]===\"[\"){if(a[a.length-1]!==\"]\")return;let p=a.charCodeAt(1);if(p!==Yt&&!(p>=Zt&&p<=Qt))return;a=a.slice(1,-1);let m=a.indexOf(\":\");if(m===-1||m===0||m===a.length-1)return;let w=a.slice(0,m),v=ce(a.slice(m+1));if(!se(v))return;yield{kind:\"arbitrary\",property:w,value:v,modifier:f,variants:n,important:s,raw:r};return}let g;if(a[a.length-1]===\"]\"){let p=a.indexOf(\"-[\");if(p===-1)return;let m=a.slice(0,p);if(!t.utilities.has(m,\"functional\"))return;let w=a.slice(p+1);g=[[m,w]]}else if(a[a.length-1]===\")\"){let p=a.indexOf(\"-(\");if(p===-1)return;let m=a.slice(0,p);if(!t.utilities.has(m,\"functional\"))return;let w=a.slice(p+2,-1),v=U(w,\":\"),x=null;if(v.length===2&&(x=v[0],w=v[1]),w[0]!==\"-\"||w[1]!==\"-\"||!se(w))return;g=[[m,x===null?`[var(${w})]`:`[${x}:var(${w})]`]]}else g=tr(a,p=>t.utilities.has(p,\"functional\"));for(let[p,m]of g){let w={kind:\"functional\",root:p,modifier:f,value:null,variants:n,important:s,raw:r};if(m===null){yield w;continue}{let v=m.indexOf(\"[\");if(v!==-1){if(m[m.length-1]!==\"]\")return;let k=ce(m.slice(v+1,-1));if(!se(k))continue;let N=\"\";for(let b=0;b<k.length;b++){let S=k.charCodeAt(b);if(S===hi){N=k.slice(0,b),k=k.slice(b+1);break}if(!(S===Yt||S>=Zt&&S<=Qt))break}if(k.length===0||k.trim().length===0)continue;w.value={kind:\"arbitrary\",dataType:N||null,value:k}}else{let k=c===null||w.modifier?.kind===\"arbitrary\"?null:`${m}/${c}`;w.value={kind:\"named\",value:m,fraction:k}}}yield w}}function ht(r){if(r[0]===\"[\"&&r[r.length-1]===\"]\"){let t=ce(r.slice(1,-1));return!se(t)||t.length===0||t.trim().length===0?null:{kind:\"arbitrary\",value:t}}return r[0]===\"(\"&&r[r.length-1]===\")\"?(r=r.slice(1,-1),r[0]!==\"-\"||r[1]!==\"-\"||!se(r)?null:(r=`var(${r})`,{kind:\"arbitrary\",value:ce(r)})):{kind:\"named\",value:r}}function er(r,t){if(r[0]===\"[\"&&r[r.length-1]===\"]\"){if(r[1]===\"@\"&&r.includes(\"&\"))return null;let i=ce(r.slice(1,-1));if(!se(i)||i.length===0||i.trim().length===0)return null;let e=i[0]===\">\"||i[0]===\"+\"||i[0]===\"~\";return!e&&i[0]!==\"@\"&&!i.includes(\"&\")&&(i=`&:is(${i})`),{kind:\"arbitrary\",selector:i,relative:e}}{let[i,e=null,n]=U(r,\"/\");if(n)return null;let s=tr(i,a=>t.variants.has(a));for(let[a,c]of s)switch(t.variants.kind(a)){case\"static\":return c!==null||e!==null?null:{kind:\"static\",root:a};case\"functional\":{let u=e===null?null:ht(e);if(e!==null&&u===null)return null;if(c===null)return{kind:\"functional\",root:a,modifier:u,value:null};if(c[c.length-1]===\"]\"){if(c[0]!==\"[\")continue;let f=ce(c.slice(1,-1));return!se(f)||f.length===0||f.trim().length===0?null:{kind:\"functional\",root:a,modifier:u,value:{kind:\"arbitrary\",value:f}}}if(c[c.length-1]===\")\"){if(c[0]!==\"(\")continue;let f=ce(c.slice(1,-1));return!se(f)||f.length===0||f.trim().length===0||f[0]!==\"-\"||f[1]!==\"-\"?null:{kind:\"functional\",root:a,modifier:u,value:{kind:\"arbitrary\",value:`var(${f})`}}}return{kind:\"functional\",root:a,modifier:u,value:{kind:\"named\",value:c}}}case\"compound\":{if(c===null)return null;let u=t.parseVariant(c);if(u===null||!t.variants.compoundsWith(a,u))return null;let f=e===null?null:ht(e);return e!==null&&f===null?null:{kind:\"compound\",root:a,modifier:f,variant:u}}}}return null}function*tr(r,t){t(r)&&(yield[r,null]);let i=r.lastIndexOf(\"-\");for(;i>0;){let e=r.slice(0,i);if(t(e)){let n=[e,r.slice(i+1)];if(n[1]===\"\")break;yield n}i=r.lastIndexOf(\"-\",i-1)}r[0]===\"@\"&&t(\"@\")&&(yield[\"@\",r.slice(1)])}function rr(r,t){let i=[];for(let n of t.variants)i.unshift(He(n));r.theme.prefix&&i.unshift(r.theme.prefix);let e=\"\";if(t.kind===\"static\"&&(e+=t.root),t.kind===\"functional\"&&(e+=t.root,t.value))if(t.value.kind===\"arbitrary\"){if(t.value!==null){let n=wt(t.value.value),s=n?t.value.value.slice(4,-1):t.value.value,[a,c]=n?[\"(\",\")\"]:[\"[\",\"]\"];t.value.dataType?e+=`-${a}${t.value.dataType}:${ke(s)}${c}`:e+=`-${a}${ke(s)}${c}`}}else t.value.kind===\"named\"&&(e+=`-${t.value.value}`);return t.kind===\"arbitrary\"&&(e+=`[${t.property}:${ke(t.value)}]`),(t.kind===\"arbitrary\"||t.kind===\"functional\")&&(e+=ir(t.modifier)),t.important&&(e+=\"!\"),i.push(e),i.join(\":\")}function ir(r){if(r===null)return\"\";let t=wt(r.value),i=t?r.value.slice(4,-1):r.value,[e,n]=t?[\"(\",\")\"]:[\"[\",\"]\"];return r.kind===\"arbitrary\"?`/${e}${ke(i)}${n}`:r.kind===\"named\"?`/${r.value}`:\"\"}function He(r){if(r.kind===\"static\")return r.root;if(r.kind===\"arbitrary\")return`[${ke(yi(r.selector))}]`;let t=\"\";if(r.kind===\"functional\"){t+=r.root;let i=r.root!==\"@\";if(r.value)if(r.value.kind===\"arbitrary\"){let e=wt(r.value.value),n=e?r.value.value.slice(4,-1):r.value.value,[s,a]=e?[\"(\",\")\"]:[\"[\",\"]\"];t+=`${i?\"-\":\"\"}${s}${ke(n)}${a}`}else r.value.kind===\"named\"&&(t+=`${i?\"-\":\"\"}${r.value.value}`)}return r.kind===\"compound\"&&(t+=r.root,t+=\"-\",t+=He(r.variant)),(r.kind===\"functional\"||r.kind===\"compound\")&&(t+=ir(r.modifier)),t}var vi=new W(r=>{let t=B(r),i=new Set;return ee(t,(e,{parent:n})=>{let s=n===null?t:n.nodes??[];if(e.kind===\"word\"&&(e.value===\"+\"||e.value===\"-\"||e.value===\"*\"||e.value===\"/\")){let a=s.indexOf(e)??-1;if(a===-1)return;let c=s[a-1];if(c?.kind!==\"separator\"||c.value!==\" \")return;let u=s[a+1];if(u?.kind!==\"separator\"||u.value!==\" \")return;i.add(c),i.add(u)}else e.kind===\"separator\"&&e.value.trim()===\"/\"?e.value=\"/\":e.kind===\"separator\"&&e.value.length>0&&e.value.trim()===\"\"?(s[0]===e||s[s.length-1]===e)&&i.add(e):e.kind===\"separator\"&&e.value.trim()===\",\"&&(e.value=\",\")}),i.size>0&&ee(t,(e,{replaceWith:n})=>{i.has(e)&&(i.delete(e),n([]))}),vt(t),Y(t)});function ke(r){return vi.get(r)}var wi=new W(r=>{let t=B(r);return t.length===3&&t[0].kind===\"word\"&&t[0].value===\"&\"&&t[1].kind===\"separator\"&&t[1].value===\":\"&&t[2].kind===\"function\"&&t[2].value===\"is\"?Y(t[2].nodes):r});function yi(r){return wi.get(r)}function vt(r){for(let t of r)switch(t.kind){case\"function\":{if(t.value===\"url\"||t.value.endsWith(\"_url\")){t.value=Te(t.value);break}if(t.value===\"var\"||t.value.endsWith(\"_var\")||t.value===\"theme\"||t.value.endsWith(\"_theme\")){t.value=Te(t.value);for(let i=0;i<t.nodes.length;i++)vt([t.nodes[i]]);break}t.value=Te(t.value),vt(t.nodes);break}case\"separator\":t.value=Te(t.value);break;case\"word\":{(t.value[0]!==\"-\"||t.value[1]!==\"-\")&&(t.value=Te(t.value));break}default:ki(t)}}var bi=new W(r=>{let t=B(r);return t.length===1&&t[0].kind===\"function\"&&t[0].value===\"var\"});function wt(r){return bi.get(r)}function ki(r){throw new Error(`Unexpected value: ${r}`)}function Te(r){return r.replaceAll(\"_\",String.raw`\\_`).replaceAll(\" \",\"_\")}function we(r,t,i){if(r===t)return 0;let e=r.indexOf(\"(\"),n=t.indexOf(\"(\"),s=e===-1?r.replace(/[\\d.]+/g,\"\"):r.slice(0,e),a=n===-1?t.replace(/[\\d.]+/g,\"\"):t.slice(0,n),c=(s===a?0:s<a?-1:1)||(i===\"asc\"?parseInt(r)-parseInt(t):parseInt(t)-parseInt(r));return Number.isNaN(c)?r<t?-1:1:c}var xi=new Set([\"inset\",\"inherit\",\"initial\",\"revert\",\"unset\"]),nr=/^-?(\\d+|\\.\\d+)(.*?)$/g;function Ee(r,t){return U(r,\",\").map(e=>{e=e.trim();let n=U(e,\" \").filter(f=>f.trim()!==\"\"),s=null,a=null,c=null;for(let f of n)xi.has(f)||(nr.test(f)?(a===null?a=f:c===null&&(c=f),nr.lastIndex=0):s===null&&(s=f));if(a===null||c===null)return e;let u=t(s??\"currentcolor\");return s!==null?e.replace(s,u):`${e} ${u}`}).join(\", \")}var Ai=/^-?[a-z][a-zA-Z0-9/%._-]*$/,Ci=/^-?[a-z][a-zA-Z0-9/%._-]*-\\*$/,Ze=[\"0\",\"0.5\",\"1\",\"1.5\",\"2\",\"2.5\",\"3\",\"3.5\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"10\",\"11\",\"12\",\"14\",\"16\",\"20\",\"24\",\"28\",\"32\",\"36\",\"40\",\"44\",\"48\",\"52\",\"56\",\"60\",\"64\",\"72\",\"80\",\"96\"],yt=class{utilities=new W(()=>[]);completions=new Map;static(t,i){this.utilities.get(t).push({kind:\"static\",compileFn:i})}functional(t,i,e){this.utilities.get(t).push({kind:\"functional\",compileFn:i,options:e})}has(t,i){return this.utilities.has(t)&&this.utilities.get(t).some(e=>e.kind===i)}get(t){return this.utilities.has(t)?this.utilities.get(t):[]}getCompletions(t){return this.completions.get(t)?.()??[]}suggest(t,i){this.completions.set(t,i)}keys(t){let i=[];for(let[e,n]of this.utilities.entries())for(let s of n)if(s.kind===t){i.push(e);break}return i}};function $(r,t,i){return z(\"@property\",r,[l(\"syntax\",i?`\"${i}\"`:'\"*\"'),l(\"inherits\",\"false\"),...t?[l(\"initial-value\",t)]:[]])}function Z(r,t){if(t===null)return r;let i=Number(t);return Number.isNaN(i)||(t=`${i*100}%`),t===\"100%\"?r:`color-mix(in oklab, ${r} ${t}, transparent)`}function lr(r,t){let i=Number(t);return Number.isNaN(i)||(t=`${i*100}%`),`oklab(from ${r} l a b / ${t})`}function Q(r,t,i){if(!t)return r;if(t.kind===\"arbitrary\")return Z(r,t.value);let e=i.resolve(t.value,[\"--opacity\"]);return e?Z(r,e):Ue(t.value)?Z(r,`${t.value}%`):null}function te(r,t,i){let e=null;switch(r.value.value){case\"inherit\":{e=\"inherit\";break}case\"transparent\":{e=\"transparent\";break}case\"current\":{e=\"currentcolor\";break}default:{e=t.resolve(r.value.value,i);break}}return e?Q(e,r.modifier,t):null}var ar=/(\\d+)_(\\d+)/g;function sr(r){let t=new yt;function i(o,d){function*h(y){for(let C of r.keysInNamespaces(y))yield C.replace(ar,(R,V,T)=>`${V}.${T}`)}let A=[\"1/2\",\"1/3\",\"2/3\",\"1/4\",\"2/4\",\"3/4\",\"1/5\",\"2/5\",\"3/5\",\"4/5\",\"1/6\",\"2/6\",\"3/6\",\"4/6\",\"5/6\",\"1/12\",\"2/12\",\"3/12\",\"4/12\",\"5/12\",\"6/12\",\"7/12\",\"8/12\",\"9/12\",\"10/12\",\"11/12\"];t.suggest(o,()=>{let y=[];for(let C of d()){if(typeof C==\"string\"){y.push({values:[C],modifiers:[]});continue}let R=[...C.values??[],...h(C.valueThemeKeys??[])],V=[...C.modifiers??[],...h(C.modifierThemeKeys??[])];C.supportsFractions&&R.push(...A),C.hasDefaultValue&&R.unshift(null),y.push({supportsNegative:C.supportsNegative,values:R,modifiers:V})}return y})}function e(o,d){t.static(o,()=>d.map(h=>typeof h==\"function\"?h():l(h[0],h[1])))}function n(o,d){function h({negative:A}){return y=>{let C=null,R=null;if(y.value)if(y.value.kind===\"arbitrary\"){if(y.modifier)return;C=y.value.value,R=y.value.dataType}else{if(C=r.resolve(y.value.fraction??y.value.value,d.themeKeys??[]),C===null&&d.supportsFractions&&y.value.fraction){let[V,T]=U(y.value.fraction,\"/\");if(!E(V)||!E(T))return;C=`calc(${y.value.fraction} * 100%)`}if(C===null&&A&&d.handleNegativeBareValue){if(C=d.handleNegativeBareValue(y.value),!C?.includes(\"/\")&&y.modifier)return;if(C!==null)return d.handle(C,null)}if(C===null&&d.handleBareValue&&(C=d.handleBareValue(y.value),!C?.includes(\"/\")&&y.modifier))return}else{if(y.modifier)return;C=d.defaultValue!==void 0?d.defaultValue:r.resolve(null,d.themeKeys??[])}if(C!==null)return d.handle(A?`calc(${C} * -1)`:C,R)}}d.supportsNegative&&t.functional(`-${o}`,h({negative:!0})),t.functional(o,h({negative:!1})),i(o,()=>[{supportsNegative:d.supportsNegative,valueThemeKeys:d.themeKeys??[],hasDefaultValue:d.defaultValue!==void 0&&d.defaultValue!==null,supportsFractions:d.supportsFractions}])}function s(o,d){t.functional(o,h=>{if(!h.value)return;let A=null;if(h.value.kind===\"arbitrary\"?(A=h.value.value,A=Q(A,h.modifier,r)):A=te(h,r,d.themeKeys),A!==null)return d.handle(A)}),i(o,()=>[{values:[\"current\",\"inherit\",\"transparent\"],valueThemeKeys:d.themeKeys,modifiers:Array.from({length:21},(h,A)=>`${A*5}`)}])}function a(o,d,h,{supportsNegative:A=!1,supportsFractions:y=!1}={}){A&&t.static(`-${o}-px`,()=>h(\"-1px\")),t.static(`${o}-px`,()=>h(\"1px\")),n(o,{themeKeys:d,supportsFractions:y,supportsNegative:A,defaultValue:null,handleBareValue:({value:C})=>{let R=r.resolve(null,[\"--spacing\"]);return!R||!pe(C)?null:`calc(${R} * ${C})`},handleNegativeBareValue:({value:C})=>{let R=r.resolve(null,[\"--spacing\"]);return!R||!pe(C)?null:`calc(${R} * -${C})`},handle:h}),i(o,()=>[{values:r.get([\"--spacing\"])?Ze:[],supportsNegative:A,supportsFractions:y,valueThemeKeys:d}])}e(\"sr-only\",[[\"position\",\"absolute\"],[\"width\",\"1px\"],[\"height\",\"1px\"],[\"padding\",\"0\"],[\"margin\",\"-1px\"],[\"overflow\",\"hidden\"],[\"clip\",\"rect(0, 0, 0, 0)\"],[\"white-space\",\"nowrap\"],[\"border-width\",\"0\"]]),e(\"not-sr-only\",[[\"position\",\"static\"],[\"width\",\"auto\"],[\"height\",\"auto\"],[\"padding\",\"0\"],[\"margin\",\"0\"],[\"overflow\",\"visible\"],[\"clip\",\"auto\"],[\"white-space\",\"normal\"]]),e(\"pointer-events-none\",[[\"pointer-events\",\"none\"]]),e(\"pointer-events-auto\",[[\"pointer-events\",\"auto\"]]),e(\"visible\",[[\"visibility\",\"visible\"]]),e(\"invisible\",[[\"visibility\",\"hidden\"]]),e(\"collapse\",[[\"visibility\",\"collapse\"]]),e(\"static\",[[\"position\",\"static\"]]),e(\"fixed\",[[\"position\",\"fixed\"]]),e(\"absolute\",[[\"position\",\"absolute\"]]),e(\"relative\",[[\"position\",\"relative\"]]),e(\"sticky\",[[\"position\",\"sticky\"]]);for(let[o,d]of[[\"inset\",\"inset\"],[\"inset-x\",\"inset-inline\"],[\"inset-y\",\"inset-block\"],[\"start\",\"inset-inline-start\"],[\"end\",\"inset-inline-end\"],[\"top\",\"top\"],[\"right\",\"right\"],[\"bottom\",\"bottom\"],[\"left\",\"left\"]])e(`${o}-auto`,[[d,\"auto\"]]),e(`${o}-full`,[[d,\"100%\"]]),e(`-${o}-full`,[[d,\"-100%\"]]),a(o,[\"--inset\",\"--spacing\"],h=>[l(d,h)],{supportsNegative:!0,supportsFractions:!0});e(\"isolate\",[[\"isolation\",\"isolate\"]]),e(\"isolation-auto\",[[\"isolation\",\"auto\"]]),e(\"z-auto\",[[\"z-index\",\"auto\"]]),n(\"z\",{supportsNegative:!0,handleBareValue:({value:o})=>E(o)?o:null,themeKeys:[\"--z-index\"],handle:o=>[l(\"z-index\",o)]}),i(\"z\",()=>[{supportsNegative:!0,values:[\"0\",\"10\",\"20\",\"30\",\"40\",\"50\"],valueThemeKeys:[\"--z-index\"]}]),e(\"order-first\",[[\"order\",\"-9999\"]]),e(\"order-last\",[[\"order\",\"9999\"]]),e(\"order-none\",[[\"order\",\"0\"]]),n(\"order\",{supportsNegative:!0,handleBareValue:({value:o})=>E(o)?o:null,themeKeys:[\"--order\"],handle:o=>[l(\"order\",o)]}),i(\"order\",()=>[{supportsNegative:!0,values:Array.from({length:12},(o,d)=>`${d+1}`),valueThemeKeys:[\"--order\"]}]),e(\"col-auto\",[[\"grid-column\",\"auto\"]]),n(\"col\",{supportsNegative:!0,handleBareValue:({value:o})=>E(o)?o:null,themeKeys:[\"--grid-column\"],handle:o=>[l(\"grid-column\",o)]}),e(\"col-span-full\",[[\"grid-column\",\"1 / -1\"]]),n(\"col-span\",{handleBareValue:({value:o})=>E(o)?o:null,handle:o=>[l(\"grid-column\",`span ${o} / span ${o}`)]}),e(\"col-start-auto\",[[\"grid-column-start\",\"auto\"]]),n(\"col-start\",{supportsNegative:!0,handleBareValue:({value:o})=>E(o)?o:null,themeKeys:[\"--grid-column-start\"],handle:o=>[l(\"grid-column-start\",o)]}),e(\"col-end-auto\",[[\"grid-column-end\",\"auto\"]]),n(\"col-end\",{supportsNegative:!0,handleBareValue:({value:o})=>E(o)?o:null,themeKeys:[\"--grid-column-end\"],handle:o=>[l(\"grid-column-end\",o)]}),i(\"col-span\",()=>[{values:Array.from({length:12},(o,d)=>`${d+1}`),valueThemeKeys:[]}]),i(\"col-start\",()=>[{supportsNegative:!0,values:Array.from({length:13},(o,d)=>`${d+1}`),valueThemeKeys:[\"--grid-column-start\"]}]),i(\"col-end\",()=>[{supportsNegative:!0,values:Array.from({length:13},(o,d)=>`${d+1}`),valueThemeKeys:[\"--grid-column-end\"]}]),e(\"row-auto\",[[\"grid-row\",\"auto\"]]),n(\"row\",{supportsNegative:!0,handleBareValue:({value:o})=>E(o)?o:null,themeKeys:[\"--grid-row\"],handle:o=>[l(\"grid-row\",o)]}),e(\"row-span-full\",[[\"grid-row\",\"1 / -1\"]]),n(\"row-span\",{themeKeys:[],handleBareValue:({value:o})=>E(o)?o:null,handle:o=>[l(\"grid-row\",`span ${o} / span ${o}`)]}),e(\"row-start-auto\",[[\"grid-row-start\",\"auto\"]]),n(\"row-start\",{supportsNegative:!0,handleBareValue:({value:o})=>E(o)?o:null,themeKeys:[\"--grid-row-start\"],handle:o=>[l(\"grid-row-start\",o)]}),e(\"row-end-auto\",[[\"grid-row-end\",\"auto\"]]),n(\"row-end\",{supportsNegative:!0,handleBareValue:({value:o})=>E(o)?o:null,themeKeys:[\"--grid-row-end\"],handle:o=>[l(\"grid-row-end\",o)]}),i(\"row-span\",()=>[{values:Array.from({length:12},(o,d)=>`${d+1}`),valueThemeKeys:[]}]),i(\"row-start\",()=>[{supportsNegative:!0,values:Array.from({length:13},(o,d)=>`${d+1}`),valueThemeKeys:[\"--grid-row-start\"]}]),i(\"row-end\",()=>[{supportsNegative:!0,values:Array.from({length:13},(o,d)=>`${d+1}`),valueThemeKeys:[\"--grid-row-end\"]}]),e(\"float-start\",[[\"float\",\"inline-start\"]]),e(\"float-end\",[[\"float\",\"inline-end\"]]),e(\"float-right\",[[\"float\",\"right\"]]),e(\"float-left\",[[\"float\",\"left\"]]),e(\"float-none\",[[\"float\",\"none\"]]),e(\"clear-start\",[[\"clear\",\"inline-start\"]]),e(\"clear-end\",[[\"clear\",\"inline-end\"]]),e(\"clear-right\",[[\"clear\",\"right\"]]),e(\"clear-left\",[[\"clear\",\"left\"]]),e(\"clear-both\",[[\"clear\",\"both\"]]),e(\"clear-none\",[[\"clear\",\"none\"]]);for(let[o,d]of[[\"m\",\"margin\"],[\"mx\",\"margin-inline\"],[\"my\",\"margin-block\"],[\"ms\",\"margin-inline-start\"],[\"me\",\"margin-inline-end\"],[\"mt\",\"margin-top\"],[\"mr\",\"margin-right\"],[\"mb\",\"margin-bottom\"],[\"ml\",\"margin-left\"]])e(`${o}-auto`,[[d,\"auto\"]]),a(o,[\"--margin\",\"--spacing\"],h=>[l(d,h)],{supportsNegative:!0});e(\"box-border\",[[\"box-sizing\",\"border-box\"]]),e(\"box-content\",[[\"box-sizing\",\"content-box\"]]),e(\"line-clamp-none\",[[\"overflow\",\"visible\"],[\"display\",\"block\"],[\"-webkit-box-orient\",\"horizontal\"],[\"-webkit-line-clamp\",\"unset\"]]),n(\"line-clamp\",{themeKeys:[\"--line-clamp\"],handleBareValue:({value:o})=>E(o)?o:null,handle:o=>[l(\"overflow\",\"hidden\"),l(\"display\",\"-webkit-box\"),l(\"-webkit-box-orient\",\"vertical\"),l(\"-webkit-line-clamp\",o)]}),i(\"line-clamp\",()=>[{values:[\"1\",\"2\",\"3\",\"4\",\"5\",\"6\"],valueThemeKeys:[\"--line-clamp\"]}]),e(\"block\",[[\"display\",\"block\"]]),e(\"inline-block\",[[\"display\",\"inline-block\"]]),e(\"inline\",[[\"display\",\"inline\"]]),e(\"hidden\",[[\"display\",\"none\"]]),e(\"inline-flex\",[[\"display\",\"inline-flex\"]]),e(\"table\",[[\"display\",\"table\"]]),e(\"inline-table\",[[\"display\",\"inline-table\"]]),e(\"table-caption\",[[\"display\",\"table-caption\"]]),e(\"table-cell\",[[\"display\",\"table-cell\"]]),e(\"table-column\",[[\"display\",\"table-column\"]]),e(\"table-column-group\",[[\"display\",\"table-column-group\"]]),e(\"table-footer-group\",[[\"display\",\"table-footer-group\"]]),e(\"table-header-group\",[[\"display\",\"table-header-group\"]]),e(\"table-row-group\",[[\"display\",\"table-row-group\"]]),e(\"table-row\",[[\"display\",\"table-row\"]]),e(\"flow-root\",[[\"display\",\"flow-root\"]]),e(\"flex\",[[\"display\",\"flex\"]]),e(\"grid\",[[\"display\",\"grid\"]]),e(\"inline-grid\",[[\"display\",\"inline-grid\"]]),e(\"contents\",[[\"display\",\"contents\"]]),e(\"list-item\",[[\"display\",\"list-item\"]]),e(\"field-sizing-content\",[[\"field-sizing\",\"content\"]]),e(\"field-sizing-fixed\",[[\"field-sizing\",\"fixed\"]]),e(\"aspect-auto\",[[\"aspect-ratio\",\"auto\"]]),e(\"aspect-square\",[[\"aspect-ratio\",\"1 / 1\"]]),n(\"aspect\",{themeKeys:[\"--aspect\"],handleBareValue:({fraction:o})=>{if(o===null)return null;let[d,h]=U(o,\"/\");return!E(d)||!E(h)?null:o},handle:o=>[l(\"aspect-ratio\",o)]});for(let[o,d]of[[\"full\",\"100%\"],[\"svw\",\"100svw\"],[\"lvw\",\"100lvw\"],[\"dvw\",\"100dvw\"],[\"svh\",\"100svh\"],[\"lvh\",\"100lvh\"],[\"dvh\",\"100dvh\"],[\"min\",\"min-content\"],[\"max\",\"max-content\"],[\"fit\",\"fit-content\"]])e(`size-${o}`,[[\"--tw-sort\",\"size\"],[\"width\",d],[\"height\",d]]),e(`w-${o}`,[[\"width\",d]]),e(`h-${o}`,[[\"height\",d]]),e(`min-w-${o}`,[[\"min-width\",d]]),e(`min-h-${o}`,[[\"min-height\",d]]),e(`max-w-${o}`,[[\"max-width\",d]]),e(`max-h-${o}`,[[\"max-height\",d]]);e(\"size-auto\",[[\"--tw-sort\",\"size\"],[\"width\",\"auto\"],[\"height\",\"auto\"]]),e(\"w-auto\",[[\"width\",\"auto\"]]),e(\"h-auto\",[[\"height\",\"auto\"]]),e(\"min-w-auto\",[[\"min-width\",\"auto\"]]),e(\"min-h-auto\",[[\"min-height\",\"auto\"]]),e(\"h-lh\",[[\"height\",\"1lh\"]]),e(\"min-h-lh\",[[\"min-height\",\"1lh\"]]),e(\"max-h-lh\",[[\"max-height\",\"1lh\"]]),e(\"w-screen\",[[\"width\",\"100vw\"]]),e(\"min-w-screen\",[[\"min-width\",\"100vw\"]]),e(\"max-w-screen\",[[\"max-width\",\"100vw\"]]),e(\"h-screen\",[[\"height\",\"100vh\"]]),e(\"min-h-screen\",[[\"min-height\",\"100vh\"]]),e(\"max-h-screen\",[[\"max-height\",\"100vh\"]]),e(\"max-w-none\",[[\"max-width\",\"none\"]]),e(\"max-h-none\",[[\"max-height\",\"none\"]]),a(\"size\",[\"--size\",\"--spacing\"],o=>[l(\"--tw-sort\",\"size\"),l(\"width\",o),l(\"height\",o)],{supportsFractions:!0});for(let[o,d,h]of[[\"w\",[\"--width\",\"--spacing\",\"--container\"],\"width\"],[\"min-w\",[\"--min-width\",\"--spacing\",\"--container\"],\"min-width\"],[\"max-w\",[\"--max-width\",\"--spacing\",\"--container\"],\"max-width\"],[\"h\",[\"--height\",\"--spacing\"],\"height\"],[\"min-h\",[\"--min-height\",\"--height\",\"--spacing\"],\"min-height\"],[\"max-h\",[\"--max-height\",\"--height\",\"--spacing\"],\"max-height\"]])a(o,d,A=>[l(h,A)],{supportsFractions:!0});t.static(\"container\",()=>{let o=[...r.namespace(\"--breakpoint\").values()];o.sort((h,A)=>we(h,A,\"asc\"));let d=[l(\"--tw-sort\",\"--tw-container-component\"),l(\"width\",\"100%\")];for(let h of o)d.push(z(\"@media\",`(width >= ${h})`,[l(\"max-width\",h)]));return d}),e(\"flex-auto\",[[\"flex\",\"auto\"]]),e(\"flex-initial\",[[\"flex\",\"0 auto\"]]),e(\"flex-none\",[[\"flex\",\"none\"]]),t.functional(\"flex\",o=>{if(o.value){if(o.value.kind===\"arbitrary\")return o.modifier?void 0:[l(\"flex\",o.value.value)];if(o.value.fraction){let[d,h]=U(o.value.fraction,\"/\");return!E(d)||!E(h)?void 0:[l(\"flex\",`calc(${o.value.fraction} * 100%)`)]}if(E(o.value.value))return o.modifier?void 0:[l(\"flex\",o.value.value)]}}),i(\"flex\",()=>[{supportsFractions:!0}]),n(\"shrink\",{defaultValue:\"1\",handleBareValue:({value:o})=>E(o)?o:null,handle:o=>[l(\"flex-shrink\",o)]}),n(\"grow\",{defaultValue:\"1\",handleBareValue:({value:o})=>E(o)?o:null,handle:o=>[l(\"flex-grow\",o)]}),i(\"shrink\",()=>[{values:[\"0\"],valueThemeKeys:[],hasDefaultValue:!0}]),i(\"grow\",()=>[{values:[\"0\"],valueThemeKeys:[],hasDefaultValue:!0}]),e(\"basis-auto\",[[\"flex-basis\",\"auto\"]]),e(\"basis-full\",[[\"flex-basis\",\"100%\"]]),a(\"basis\",[\"--flex-basis\",\"--spacing\",\"--container\"],o=>[l(\"flex-basis\",o)],{supportsFractions:!0}),e(\"table-auto\",[[\"table-layout\",\"auto\"]]),e(\"table-fixed\",[[\"table-layout\",\"fixed\"]]),e(\"caption-top\",[[\"caption-side\",\"top\"]]),e(\"caption-bottom\",[[\"caption-side\",\"bottom\"]]),e(\"border-collapse\",[[\"border-collapse\",\"collapse\"]]),e(\"border-separate\",[[\"border-collapse\",\"separate\"]]);let c=()=>I([$(\"--tw-border-spacing-x\",\"0\",\"<length>\"),$(\"--tw-border-spacing-y\",\"0\",\"<length>\")]);a(\"border-spacing\",[\"--border-spacing\",\"--spacing\"],o=>[c(),l(\"--tw-border-spacing-x\",o),l(\"--tw-border-spacing-y\",o),l(\"border-spacing\",\"var(--tw-border-spacing-x) var(--tw-border-spacing-y)\")]),a(\"border-spacing-x\",[\"--border-spacing\",\"--spacing\"],o=>[c(),l(\"--tw-border-spacing-x\",o),l(\"border-spacing\",\"var(--tw-border-spacing-x) var(--tw-border-spacing-y)\")]),a(\"border-spacing-y\",[\"--border-spacing\",\"--spacing\"],o=>[c(),l(\"--tw-border-spacing-y\",o),l(\"border-spacing\",\"var(--tw-border-spacing-x) var(--tw-border-spacing-y)\")]),e(\"origin-center\",[[\"transform-origin\",\"center\"]]),e(\"origin-top\",[[\"transform-origin\",\"top\"]]),e(\"origin-top-right\",[[\"transform-origin\",\"top right\"]]),e(\"origin-right\",[[\"transform-origin\",\"right\"]]),e(\"origin-bottom-right\",[[\"transform-origin\",\"bottom right\"]]),e(\"origin-bottom\",[[\"transform-origin\",\"bottom\"]]),e(\"origin-bottom-left\",[[\"transform-origin\",\"bottom left\"]]),e(\"origin-left\",[[\"transform-origin\",\"left\"]]),e(\"origin-top-left\",[[\"transform-origin\",\"top left\"]]),n(\"origin\",{themeKeys:[\"--transform-origin\"],handle:o=>[l(\"transform-origin\",o)]}),e(\"perspective-origin-center\",[[\"perspective-origin\",\"center\"]]),e(\"perspective-origin-top\",[[\"perspective-origin\",\"top\"]]),e(\"perspective-origin-top-right\",[[\"perspective-origin\",\"top right\"]]),e(\"perspective-origin-right\",[[\"perspective-origin\",\"right\"]]),e(\"perspective-origin-bottom-right\",[[\"perspective-origin\",\"bottom right\"]]),e(\"perspective-origin-bottom\",[[\"perspective-origin\",\"bottom\"]]),e(\"perspective-origin-bottom-left\",[[\"perspective-origin\",\"bottom left\"]]),e(\"perspective-origin-left\",[[\"perspective-origin\",\"left\"]]),e(\"perspective-origin-top-left\",[[\"perspective-origin\",\"top left\"]]),n(\"perspective-origin\",{themeKeys:[\"--perspective-origin\"],handle:o=>[l(\"perspective-origin\",o)]}),e(\"perspective-none\",[[\"perspective\",\"none\"]]),n(\"perspective\",{themeKeys:[\"--perspective\"],handle:o=>[l(\"perspective\",o)]});let u=()=>I([$(\"--tw-translate-x\",\"0\"),$(\"--tw-translate-y\",\"0\"),$(\"--tw-translate-z\",\"0\")]);e(\"translate-none\",[[\"translate\",\"none\"]]),e(\"-translate-full\",[u,[\"--tw-translate-x\",\"-100%\"],[\"--tw-translate-y\",\"-100%\"],[\"translate\",\"var(--tw-translate-x) var(--tw-translate-y)\"]]),e(\"translate-full\",[u,[\"--tw-translate-x\",\"100%\"],[\"--tw-translate-y\",\"100%\"],[\"translate\",\"var(--tw-translate-x) var(--tw-translate-y)\"]]),a(\"translate\",[\"--translate\",\"--spacing\"],o=>[u(),l(\"--tw-translate-x\",o),l(\"--tw-translate-y\",o),l(\"translate\",\"var(--tw-translate-x) var(--tw-translate-y)\")],{supportsNegative:!0,supportsFractions:!0});for(let o of[\"x\",\"y\"])e(`-translate-${o}-full`,[u,[`--tw-translate-${o}`,\"-100%\"],[\"translate\",\"var(--tw-translate-x) var(--tw-translate-y)\"]]),e(`translate-${o}-full`,[u,[`--tw-translate-${o}`,\"100%\"],[\"translate\",\"var(--tw-translate-x) var(--tw-translate-y)\"]]),a(`translate-${o}`,[\"--translate\",\"--spacing\"],d=>[u(),l(`--tw-translate-${o}`,d),l(\"translate\",\"var(--tw-translate-x) var(--tw-translate-y)\")],{supportsNegative:!0,supportsFractions:!0});a(\"translate-z\",[\"--translate\",\"--spacing\"],o=>[u(),l(\"--tw-translate-z\",o),l(\"translate\",\"var(--tw-translate-x) var(--tw-translate-y) var(--tw-translate-z)\")],{supportsNegative:!0}),e(\"translate-3d\",[u,[\"translate\",\"var(--tw-translate-x) var(--tw-translate-y) var(--tw-translate-z)\"]]);let f=()=>I([$(\"--tw-scale-x\",\"1\"),$(\"--tw-scale-y\",\"1\"),$(\"--tw-scale-z\",\"1\")]);e(\"scale-none\",[[\"scale\",\"none\"]]);function g({negative:o}){return d=>{if(!d.value||d.modifier)return;let h;return d.value.kind===\"arbitrary\"?(h=d.value.value,h=o?`calc(${h} * -1)`:h,[l(\"scale\",h)]):(h=r.resolve(d.value.value,[\"--scale\"]),!h&&E(d.value.value)&&(h=`${d.value.value}%`),h?(h=o?`calc(${h} * -1)`:h,[f(),l(\"--tw-scale-x\",h),l(\"--tw-scale-y\",h),l(\"--tw-scale-z\",h),l(\"scale\",\"var(--tw-scale-x) var(--tw-scale-y)\")]):void 0)}}t.functional(\"-scale\",g({negative:!0})),t.functional(\"scale\",g({negative:!1})),i(\"scale\",()=>[{supportsNegative:!0,values:[\"0\",\"50\",\"75\",\"90\",\"95\",\"100\",\"105\",\"110\",\"125\",\"150\",\"200\"],valueThemeKeys:[\"--scale\"]}]);for(let o of[\"x\",\"y\",\"z\"])n(`scale-${o}`,{supportsNegative:!0,themeKeys:[\"--scale\"],handleBareValue:({value:d})=>E(d)?`${d}%`:null,handle:d=>[f(),l(`--tw-scale-${o}`,d),l(\"scale\",`var(--tw-scale-x) var(--tw-scale-y)${o===\"z\"?\" var(--tw-scale-z)\":\"\"}`)]}),i(`scale-${o}`,()=>[{supportsNegative:!0,values:[\"0\",\"50\",\"75\",\"90\",\"95\",\"100\",\"105\",\"110\",\"125\",\"150\",\"200\"],valueThemeKeys:[\"--scale\"]}]);e(\"scale-3d\",[f,[\"scale\",\"var(--tw-scale-x) var(--tw-scale-y) var(--tw-scale-z)\"]]),e(\"rotate-none\",[[\"rotate\",\"none\"]]);function p({negative:o}){return d=>{if(!d.value||d.modifier)return;let h;if(d.value.kind===\"arbitrary\"){h=d.value.value;let A=d.value.dataType??J(h,[\"angle\",\"vector\"]);if(A===\"vector\")return[l(\"rotate\",`${h} var(--tw-rotate)`)];if(A!==\"angle\")return[l(\"rotate\",o?`calc(${h} * -1)`:h)]}else if(h=r.resolve(d.value.value,[\"--rotate\"]),!h&&E(d.value.value)&&(h=`${d.value.value}deg`),!h)return;return[l(\"rotate\",o?`calc(${h} * -1)`:h)]}}t.functional(\"-rotate\",p({negative:!0})),t.functional(\"rotate\",p({negative:!1})),i(\"rotate\",()=>[{supportsNegative:!0,values:[\"0\",\"1\",\"2\",\"3\",\"6\",\"12\",\"45\",\"90\",\"180\"],valueThemeKeys:[\"--rotate\"]}]);{let o=[\"var(--tw-rotate-x,)\",\"var(--tw-rotate-y,)\",\"var(--tw-rotate-z,)\",\"var(--tw-skew-x,)\",\"var(--tw-skew-y,)\"].join(\" \"),d=()=>I([$(\"--tw-rotate-x\"),$(\"--tw-rotate-y\"),$(\"--tw-rotate-z\"),$(\"--tw-skew-x\"),$(\"--tw-skew-y\")]);for(let h of[\"x\",\"y\",\"z\"])n(`rotate-${h}`,{supportsNegative:!0,themeKeys:[\"--rotate\"],handleBareValue:({value:A})=>E(A)?`${A}deg`:null,handle:A=>[d(),l(`--tw-rotate-${h}`,`rotate${h.toUpperCase()}(${A})`),l(\"transform\",o)]}),i(`rotate-${h}`,()=>[{supportsNegative:!0,values:[\"0\",\"1\",\"2\",\"3\",\"6\",\"12\",\"45\",\"90\",\"180\"],valueThemeKeys:[\"--rotate\"]}]);n(\"skew\",{supportsNegative:!0,themeKeys:[\"--skew\"],handleBareValue:({value:h})=>E(h)?`${h}deg`:null,handle:h=>[d(),l(\"--tw-skew-x\",`skewX(${h})`),l(\"--tw-skew-y\",`skewY(${h})`),l(\"transform\",o)]}),n(\"skew-x\",{supportsNegative:!0,themeKeys:[\"--skew\"],handleBareValue:({value:h})=>E(h)?`${h}deg`:null,handle:h=>[d(),l(\"--tw-skew-x\",`skewX(${h})`),l(\"transform\",o)]}),n(\"skew-y\",{supportsNegative:!0,themeKeys:[\"--skew\"],handleBareValue:({value:h})=>E(h)?`${h}deg`:null,handle:h=>[d(),l(\"--tw-skew-y\",`skewY(${h})`),l(\"transform\",o)]}),i(\"skew\",()=>[{supportsNegative:!0,values:[\"0\",\"1\",\"2\",\"3\",\"6\",\"12\"],valueThemeKeys:[\"--skew\"]}]),i(\"skew-x\",()=>[{supportsNegative:!0,values:[\"0\",\"1\",\"2\",\"3\",\"6\",\"12\"],valueThemeKeys:[\"--skew\"]}]),i(\"skew-y\",()=>[{supportsNegative:!0,values:[\"0\",\"1\",\"2\",\"3\",\"6\",\"12\"],valueThemeKeys:[\"--skew\"]}]),t.functional(\"transform\",h=>{if(h.modifier)return;let A=null;if(h.value?h.value.kind===\"arbitrary\"&&(A=h.value.value):A=o,A!==null)return[d(),l(\"transform\",A)]}),i(\"transform\",()=>[{hasDefaultValue:!0}]),e(\"transform-cpu\",[[\"transform\",o]]),e(\"transform-gpu\",[[\"transform\",`translateZ(0) ${o}`]]),e(\"transform-none\",[[\"transform\",\"none\"]])}e(\"transform-flat\",[[\"transform-style\",\"flat\"]]),e(\"transform-3d\",[[\"transform-style\",\"preserve-3d\"]]),e(\"transform-content\",[[\"transform-box\",\"content-box\"]]),e(\"transform-border\",[[\"transform-box\",\"border-box\"]]),e(\"transform-fill\",[[\"transform-box\",\"fill-box\"]]),e(\"transform-stroke\",[[\"transform-box\",\"stroke-box\"]]),e(\"transform-view\",[[\"transform-box\",\"view-box\"]]),e(\"backface-visible\",[[\"backface-visibility\",\"visible\"]]),e(\"backface-hidden\",[[\"backface-visibility\",\"hidden\"]]);for(let o of[\"auto\",\"default\",\"pointer\",\"wait\",\"text\",\"move\",\"help\",\"not-allowed\",\"none\",\"context-menu\",\"progress\",\"cell\",\"crosshair\",\"vertical-text\",\"alias\",\"copy\",\"no-drop\",\"grab\",\"grabbing\",\"all-scroll\",\"col-resize\",\"row-resize\",\"n-resize\",\"e-resize\",\"s-resize\",\"w-resize\",\"ne-resize\",\"nw-resize\",\"se-resize\",\"sw-resize\",\"ew-resize\",\"ns-resize\",\"nesw-resize\",\"nwse-resize\",\"zoom-in\",\"zoom-out\"])e(`cursor-${o}`,[[\"cursor\",o]]);n(\"cursor\",{themeKeys:[\"--cursor\"],handle:o=>[l(\"cursor\",o)]});for(let o of[\"auto\",\"none\",\"manipulation\"])e(`touch-${o}`,[[\"touch-action\",o]]);let m=()=>I([$(\"--tw-pan-x\"),$(\"--tw-pan-y\"),$(\"--tw-pinch-zoom\")]);for(let o of[\"x\",\"left\",\"right\"])e(`touch-pan-${o}`,[m,[\"--tw-pan-x\",`pan-${o}`],[\"touch-action\",\"var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,)\"]]);for(let o of[\"y\",\"up\",\"down\"])e(`touch-pan-${o}`,[m,[\"--tw-pan-y\",`pan-${o}`],[\"touch-action\",\"var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,)\"]]);e(\"touch-pinch-zoom\",[m,[\"--tw-pinch-zoom\",\"pinch-zoom\"],[\"touch-action\",\"var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,)\"]]);for(let o of[\"none\",\"text\",\"all\",\"auto\"])e(`select-${o}`,[[\"-webkit-user-select\",o],[\"user-select\",o]]);e(\"resize-none\",[[\"resize\",\"none\"]]),e(\"resize-x\",[[\"resize\",\"horizontal\"]]),e(\"resize-y\",[[\"resize\",\"vertical\"]]),e(\"resize\",[[\"resize\",\"both\"]]),e(\"snap-none\",[[\"scroll-snap-type\",\"none\"]]);let w=()=>I([$(\"--tw-scroll-snap-strictness\",\"proximity\",\"*\")]);for(let o of[\"x\",\"y\",\"both\"])e(`snap-${o}`,[w,[\"scroll-snap-type\",`${o} var(--tw-scroll-snap-strictness)`]]);e(\"snap-mandatory\",[w,[\"--tw-scroll-snap-strictness\",\"mandatory\"]]),e(\"snap-proximity\",[w,[\"--tw-scroll-snap-strictness\",\"proximity\"]]),e(\"snap-align-none\",[[\"scroll-snap-align\",\"none\"]]),e(\"snap-start\",[[\"scroll-snap-align\",\"start\"]]),e(\"snap-end\",[[\"scroll-snap-align\",\"end\"]]),e(\"snap-center\",[[\"scroll-snap-align\",\"center\"]]),e(\"snap-normal\",[[\"scroll-snap-stop\",\"normal\"]]),e(\"snap-always\",[[\"scroll-snap-stop\",\"always\"]]);for(let[o,d]of[[\"scroll-m\",\"scroll-margin\"],[\"scroll-mx\",\"scroll-margin-inline\"],[\"scroll-my\",\"scroll-margin-block\"],[\"scroll-ms\",\"scroll-margin-inline-start\"],[\"scroll-me\",\"scroll-margin-inline-end\"],[\"scroll-mt\",\"scroll-margin-top\"],[\"scroll-mr\",\"scroll-margin-right\"],[\"scroll-mb\",\"scroll-margin-bottom\"],[\"scroll-ml\",\"scroll-margin-left\"]])a(o,[\"--scroll-margin\",\"--spacing\"],h=>[l(d,h)],{supportsNegative:!0});for(let[o,d]of[[\"scroll-p\",\"scroll-padding\"],[\"scroll-px\",\"scroll-padding-inline\"],[\"scroll-py\",\"scroll-padding-block\"],[\"scroll-ps\",\"scroll-padding-inline-start\"],[\"scroll-pe\",\"scroll-padding-inline-end\"],[\"scroll-pt\",\"scroll-padding-top\"],[\"scroll-pr\",\"scroll-padding-right\"],[\"scroll-pb\",\"scroll-padding-bottom\"],[\"scroll-pl\",\"scroll-padding-left\"]])a(o,[\"--scroll-padding\",\"--spacing\"],h=>[l(d,h)]);e(\"list-inside\",[[\"list-style-position\",\"inside\"]]),e(\"list-outside\",[[\"list-style-position\",\"outside\"]]),e(\"list-none\",[[\"list-style-type\",\"none\"]]),e(\"list-disc\",[[\"list-style-type\",\"disc\"]]),e(\"list-decimal\",[[\"list-style-type\",\"decimal\"]]),n(\"list\",{themeKeys:[\"--list-style-type\"],handle:o=>[l(\"list-style-type\",o)]}),e(\"list-image-none\",[[\"list-style-image\",\"none\"]]),n(\"list-image\",{themeKeys:[\"--list-style-image\"],handle:o=>[l(\"list-style-image\",o)]}),e(\"appearance-none\",[[\"appearance\",\"none\"]]),e(\"appearance-auto\",[[\"appearance\",\"auto\"]]),e(\"scheme-normal\",[[\"color-scheme\",\"normal\"]]),e(\"scheme-dark\",[[\"color-scheme\",\"dark\"]]),e(\"scheme-light\",[[\"color-scheme\",\"light\"]]),e(\"scheme-light-dark\",[[\"color-scheme\",\"light dark\"]]),e(\"scheme-only-dark\",[[\"color-scheme\",\"only dark\"]]),e(\"scheme-only-light\",[[\"color-scheme\",\"only light\"]]),e(\"columns-auto\",[[\"columns\",\"auto\"]]),n(\"columns\",{themeKeys:[\"--columns\",\"--container\"],handleBareValue:({value:o})=>E(o)?o:null,handle:o=>[l(\"columns\",o)]}),i(\"columns\",()=>[{values:Array.from({length:12},(o,d)=>`${d+1}`),valueThemeKeys:[\"--columns\",\"--container\"]}]);for(let o of[\"auto\",\"avoid\",\"all\",\"avoid-page\",\"page\",\"left\",\"right\",\"column\"])e(`break-before-${o}`,[[\"break-before\",o]]);for(let o of[\"auto\",\"avoid\",\"avoid-page\",\"avoid-column\"])e(`break-inside-${o}`,[[\"break-inside\",o]]);for(let o of[\"auto\",\"avoid\",\"all\",\"avoid-page\",\"page\",\"left\",\"right\",\"column\"])e(`break-after-${o}`,[[\"break-after\",o]]);e(\"grid-flow-row\",[[\"grid-auto-flow\",\"row\"]]),e(\"grid-flow-col\",[[\"grid-auto-flow\",\"column\"]]),e(\"grid-flow-dense\",[[\"grid-auto-flow\",\"dense\"]]),e(\"grid-flow-row-dense\",[[\"grid-auto-flow\",\"row dense\"]]),e(\"grid-flow-col-dense\",[[\"grid-auto-flow\",\"column dense\"]]),e(\"auto-cols-auto\",[[\"grid-auto-columns\",\"auto\"]]),e(\"auto-cols-min\",[[\"grid-auto-columns\",\"min-content\"]]),e(\"auto-cols-max\",[[\"grid-auto-columns\",\"max-content\"]]),e(\"auto-cols-fr\",[[\"grid-auto-columns\",\"minmax(0, 1fr)\"]]),n(\"auto-cols\",{themeKeys:[\"--grid-auto-columns\"],handle:o=>[l(\"grid-auto-columns\",o)]}),e(\"auto-rows-auto\",[[\"grid-auto-rows\",\"auto\"]]),e(\"auto-rows-min\",[[\"grid-auto-rows\",\"min-content\"]]),e(\"auto-rows-max\",[[\"grid-auto-rows\",\"max-content\"]]),e(\"auto-rows-fr\",[[\"grid-auto-rows\",\"minmax(0, 1fr)\"]]),n(\"auto-rows\",{themeKeys:[\"--grid-auto-rows\"],handle:o=>[l(\"grid-auto-rows\",o)]}),e(\"grid-cols-none\",[[\"grid-template-columns\",\"none\"]]),e(\"grid-cols-subgrid\",[[\"grid-template-columns\",\"subgrid\"]]),n(\"grid-cols\",{themeKeys:[\"--grid-template-columns\"],handleBareValue:({value:o})=>lt(o)?`repeat(${o}, minmax(0, 1fr))`:null,handle:o=>[l(\"grid-template-columns\",o)]}),e(\"grid-rows-none\",[[\"grid-template-rows\",\"none\"]]),e(\"grid-rows-subgrid\",[[\"grid-template-rows\",\"subgrid\"]]),n(\"grid-rows\",{themeKeys:[\"--grid-template-rows\"],handleBareValue:({value:o})=>lt(o)?`repeat(${o}, minmax(0, 1fr))`:null,handle:o=>[l(\"grid-template-rows\",o)]}),i(\"grid-cols\",()=>[{values:Array.from({length:12},(o,d)=>`${d+1}`),valueThemeKeys:[\"--grid-template-columns\"]}]),i(\"grid-rows\",()=>[{values:Array.from({length:12},(o,d)=>`${d+1}`),valueThemeKeys:[\"--grid-template-rows\"]}]),e(\"flex-row\",[[\"flex-direction\",\"row\"]]),e(\"flex-row-reverse\",[[\"flex-direction\",\"row-reverse\"]]),e(\"flex-col\",[[\"flex-direction\",\"column\"]]),e(\"flex-col-reverse\",[[\"flex-direction\",\"column-reverse\"]]),e(\"flex-wrap\",[[\"flex-wrap\",\"wrap\"]]),e(\"flex-nowrap\",[[\"flex-wrap\",\"nowrap\"]]),e(\"flex-wrap-reverse\",[[\"flex-wrap\",\"wrap-reverse\"]]),e(\"place-content-center\",[[\"place-content\",\"center\"]]),e(\"place-content-start\",[[\"place-content\",\"start\"]]),e(\"place-content-end\",[[\"place-content\",\"end\"]]),e(\"place-content-center-safe\",[[\"place-content\",\"safe center\"]]),e(\"place-content-end-safe\",[[\"place-content\",\"safe end\"]]),e(\"place-content-between\",[[\"place-content\",\"space-between\"]]),e(\"place-content-around\",[[\"place-content\",\"space-around\"]]),e(\"place-content-evenly\",[[\"place-content\",\"space-evenly\"]]),e(\"place-content-baseline\",[[\"place-content\",\"baseline\"]]),e(\"place-content-stretch\",[[\"place-content\",\"stretch\"]]),e(\"place-items-center\",[[\"place-items\",\"center\"]]),e(\"place-items-start\",[[\"place-items\",\"start\"]]),e(\"place-items-end\",[[\"place-items\",\"end\"]]),e(\"place-items-center-safe\",[[\"place-items\",\"safe center\"]]),e(\"place-items-end-safe\",[[\"place-items\",\"safe end\"]]),e(\"place-items-baseline\",[[\"place-items\",\"baseline\"]]),e(\"place-items-stretch\",[[\"place-items\",\"stretch\"]]),e(\"content-normal\",[[\"align-content\",\"normal\"]]),e(\"content-center\",[[\"align-content\",\"center\"]]),e(\"content-start\",[[\"align-content\",\"flex-start\"]]),e(\"content-end\",[[\"align-content\",\"flex-end\"]]),e(\"content-center-safe\",[[\"align-content\",\"safe center\"]]),e(\"content-end-safe\",[[\"align-content\",\"safe flex-end\"]]),e(\"content-between\",[[\"align-content\",\"space-between\"]]),e(\"content-around\",[[\"align-content\",\"space-around\"]]),e(\"content-evenly\",[[\"align-content\",\"space-evenly\"]]),e(\"content-baseline\",[[\"align-content\",\"baseline\"]]),e(\"content-stretch\",[[\"align-content\",\"stretch\"]]),e(\"items-center\",[[\"align-items\",\"center\"]]),e(\"items-start\",[[\"align-items\",\"flex-start\"]]),e(\"items-end\",[[\"align-items\",\"flex-end\"]]),e(\"items-center-safe\",[[\"align-items\",\"safe center\"]]),e(\"items-end-safe\",[[\"align-items\",\"safe flex-end\"]]),e(\"items-baseline\",[[\"align-items\",\"baseline\"]]),e(\"items-baseline-last\",[[\"align-items\",\"last baseline\"]]),e(\"items-stretch\",[[\"align-items\",\"stretch\"]]),e(\"justify-normal\",[[\"justify-content\",\"normal\"]]),e(\"justify-center\",[[\"justify-content\",\"center\"]]),e(\"justify-start\",[[\"justify-content\",\"flex-start\"]]),e(\"justify-end\",[[\"justify-content\",\"flex-end\"]]),e(\"justify-center-safe\",[[\"justify-content\",\"safe center\"]]),e(\"justify-end-safe\",[[\"justify-content\",\"safe flex-end\"]]),e(\"justify-between\",[[\"justify-content\",\"space-between\"]]),e(\"justify-around\",[[\"justify-content\",\"space-around\"]]),e(\"justify-evenly\",[[\"justify-content\",\"space-evenly\"]]),e(\"justify-baseline\",[[\"justify-content\",\"baseline\"]]),e(\"justify-stretch\",[[\"justify-content\",\"stretch\"]]),e(\"justify-items-normal\",[[\"justify-items\",\"normal\"]]),e(\"justify-items-center\",[[\"justify-items\",\"center\"]]),e(\"justify-items-start\",[[\"justify-items\",\"start\"]]),e(\"justify-items-end\",[[\"justify-items\",\"end\"]]),e(\"justify-items-center-safe\",[[\"justify-items\",\"safe center\"]]),e(\"justify-items-end-safe\",[[\"justify-items\",\"safe end\"]]),e(\"justify-items-stretch\",[[\"justify-items\",\"stretch\"]]),a(\"gap\",[\"--gap\",\"--spacing\"],o=>[l(\"gap\",o)]),a(\"gap-x\",[\"--gap\",\"--spacing\"],o=>[l(\"column-gap\",o)]),a(\"gap-y\",[\"--gap\",\"--spacing\"],o=>[l(\"row-gap\",o)]),a(\"space-x\",[\"--space\",\"--spacing\"],o=>[I([$(\"--tw-space-x-reverse\",\"0\")]),M(\":where(& > :not(:last-child))\",[l(\"--tw-sort\",\"row-gap\"),l(\"--tw-space-x-reverse\",\"0\"),l(\"margin-inline-start\",`calc(${o} * var(--tw-space-x-reverse))`),l(\"margin-inline-end\",`calc(${o} * calc(1 - var(--tw-space-x-reverse)))`)])],{supportsNegative:!0}),a(\"space-y\",[\"--space\",\"--spacing\"],o=>[I([$(\"--tw-space-y-reverse\",\"0\")]),M(\":where(& > :not(:last-child))\",[l(\"--tw-sort\",\"column-gap\"),l(\"--tw-space-y-reverse\",\"0\"),l(\"margin-block-start\",`calc(${o} * var(--tw-space-y-reverse))`),l(\"margin-block-end\",`calc(${o} * calc(1 - var(--tw-space-y-reverse)))`)])],{supportsNegative:!0}),e(\"space-x-reverse\",[()=>I([$(\"--tw-space-x-reverse\",\"0\")]),()=>M(\":where(& > :not(:last-child))\",[l(\"--tw-sort\",\"row-gap\"),l(\"--tw-space-x-reverse\",\"1\")])]),e(\"space-y-reverse\",[()=>I([$(\"--tw-space-y-reverse\",\"0\")]),()=>M(\":where(& > :not(:last-child))\",[l(\"--tw-sort\",\"column-gap\"),l(\"--tw-space-y-reverse\",\"1\")])]),e(\"accent-auto\",[[\"accent-color\",\"auto\"]]),s(\"accent\",{themeKeys:[\"--accent-color\",\"--color\"],handle:o=>[l(\"accent-color\",o)]}),s(\"caret\",{themeKeys:[\"--caret-color\",\"--color\"],handle:o=>[l(\"caret-color\",o)]}),s(\"divide\",{themeKeys:[\"--divide-color\",\"--color\"],handle:o=>[M(\":where(& > :not(:last-child))\",[l(\"--tw-sort\",\"divide-color\"),l(\"border-color\",o)])]}),e(\"place-self-auto\",[[\"place-self\",\"auto\"]]),e(\"place-self-start\",[[\"place-self\",\"start\"]]),e(\"place-self-end\",[[\"place-self\",\"end\"]]),e(\"place-self-center\",[[\"place-self\",\"center\"]]),e(\"place-self-end-safe\",[[\"place-self\",\"safe end\"]]),e(\"place-self-center-safe\",[[\"place-self\",\"safe center\"]]),e(\"place-self-stretch\",[[\"place-self\",\"stretch\"]]),e(\"self-auto\",[[\"align-self\",\"auto\"]]),e(\"self-start\",[[\"align-self\",\"flex-start\"]]),e(\"self-end\",[[\"align-self\",\"flex-end\"]]),e(\"self-center\",[[\"align-self\",\"center\"]]),e(\"self-end-safe\",[[\"align-self\",\"safe flex-end\"]]),e(\"self-center-safe\",[[\"align-self\",\"safe center\"]]),e(\"self-stretch\",[[\"align-self\",\"stretch\"]]),e(\"self-baseline\",[[\"align-self\",\"baseline\"]]),e(\"self-baseline-last\",[[\"align-self\",\"last baseline\"]]),e(\"justify-self-auto\",[[\"justify-self\",\"auto\"]]),e(\"justify-self-start\",[[\"justify-self\",\"flex-start\"]]),e(\"justify-self-end\",[[\"justify-self\",\"flex-end\"]]),e(\"justify-self-center\",[[\"justify-self\",\"center\"]]),e(\"justify-self-end-safe\",[[\"justify-self\",\"safe flex-end\"]]),e(\"justify-self-center-safe\",[[\"justify-self\",\"safe center\"]]),e(\"justify-self-stretch\",[[\"justify-self\",\"stretch\"]]);for(let o of[\"auto\",\"hidden\",\"clip\",\"visible\",\"scroll\"])e(`overflow-${o}`,[[\"overflow\",o]]),e(`overflow-x-${o}`,[[\"overflow-x\",o]]),e(`overflow-y-${o}`,[[\"overflow-y\",o]]);for(let o of[\"auto\",\"contain\",\"none\"])e(`overscroll-${o}`,[[\"overscroll-behavior\",o]]),e(`overscroll-x-${o}`,[[\"overscroll-behavior-x\",o]]),e(`overscroll-y-${o}`,[[\"overscroll-behavior-y\",o]]);e(\"scroll-auto\",[[\"scroll-behavior\",\"auto\"]]),e(\"scroll-smooth\",[[\"scroll-behavior\",\"smooth\"]]),e(\"truncate\",[[\"overflow\",\"hidden\"],[\"text-overflow\",\"ellipsis\"],[\"white-space\",\"nowrap\"]]),e(\"text-ellipsis\",[[\"text-overflow\",\"ellipsis\"]]),e(\"text-clip\",[[\"text-overflow\",\"clip\"]]),e(\"hyphens-none\",[[\"-webkit-hyphens\",\"none\"],[\"hyphens\",\"none\"]]),e(\"hyphens-manual\",[[\"-webkit-hyphens\",\"manual\"],[\"hyphens\",\"manual\"]]),e(\"hyphens-auto\",[[\"-webkit-hyphens\",\"auto\"],[\"hyphens\",\"auto\"]]),e(\"whitespace-normal\",[[\"white-space\",\"normal\"]]),e(\"whitespace-nowrap\",[[\"white-space\",\"nowrap\"]]),e(\"whitespace-pre\",[[\"white-space\",\"pre\"]]),e(\"whitespace-pre-line\",[[\"white-space\",\"pre-line\"]]),e(\"whitespace-pre-wrap\",[[\"white-space\",\"pre-wrap\"]]),e(\"whitespace-break-spaces\",[[\"white-space\",\"break-spaces\"]]),e(\"text-wrap\",[[\"text-wrap\",\"wrap\"]]),e(\"text-nowrap\",[[\"text-wrap\",\"nowrap\"]]),e(\"text-balance\",[[\"text-wrap\",\"balance\"]]),e(\"text-pretty\",[[\"text-wrap\",\"pretty\"]]),e(\"break-normal\",[[\"overflow-wrap\",\"normal\"],[\"word-break\",\"normal\"]]),e(\"break-words\",[[\"overflow-wrap\",\"break-word\"]]),e(\"break-all\",[[\"word-break\",\"break-all\"]]),e(\"break-keep\",[[\"word-break\",\"keep-all\"]]),e(\"wrap-anywhere\",[[\"overflow-wrap\",\"anywhere\"]]),e(\"wrap-break-word\",[[\"overflow-wrap\",\"break-word\"]]),e(\"wrap-normal\",[[\"overflow-wrap\",\"normal\"]]);for(let[o,d]of[[\"rounded\",[\"border-radius\"]],[\"rounded-s\",[\"border-start-start-radius\",\"border-end-start-radius\"]],[\"rounded-e\",[\"border-start-end-radius\",\"border-end-end-radius\"]],[\"rounded-t\",[\"border-top-left-radius\",\"border-top-right-radius\"]],[\"rounded-r\",[\"border-top-right-radius\",\"border-bottom-right-radius\"]],[\"rounded-b\",[\"border-bottom-right-radius\",\"border-bottom-left-radius\"]],[\"rounded-l\",[\"border-top-left-radius\",\"border-bottom-left-radius\"]],[\"rounded-ss\",[\"border-start-start-radius\"]],[\"rounded-se\",[\"border-start-end-radius\"]],[\"rounded-ee\",[\"border-end-end-radius\"]],[\"rounded-es\",[\"border-end-start-radius\"]],[\"rounded-tl\",[\"border-top-left-radius\"]],[\"rounded-tr\",[\"border-top-right-radius\"]],[\"rounded-br\",[\"border-bottom-right-radius\"]],[\"rounded-bl\",[\"border-bottom-left-radius\"]]])e(`${o}-none`,d.map(h=>[h,\"0\"])),e(`${o}-full`,d.map(h=>[h,\"calc(infinity * 1px)\"])),n(o,{themeKeys:[\"--radius\"],handle:h=>d.map(A=>l(A,h))});e(\"border-solid\",[[\"--tw-border-style\",\"solid\"],[\"border-style\",\"solid\"]]),e(\"border-dashed\",[[\"--tw-border-style\",\"dashed\"],[\"border-style\",\"dashed\"]]),e(\"border-dotted\",[[\"--tw-border-style\",\"dotted\"],[\"border-style\",\"dotted\"]]),e(\"border-double\",[[\"--tw-border-style\",\"double\"],[\"border-style\",\"double\"]]),e(\"border-hidden\",[[\"--tw-border-style\",\"hidden\"],[\"border-style\",\"hidden\"]]),e(\"border-none\",[[\"--tw-border-style\",\"none\"],[\"border-style\",\"none\"]]);{let d=function(h,A){t.functional(h,y=>{if(!y.value){if(y.modifier)return;let C=r.get([\"--default-border-width\"])??\"1px\",R=A.width(C);return R?[o(),...R]:void 0}if(y.value.kind===\"arbitrary\"){let C=y.value.value;switch(y.value.dataType??J(C,[\"color\",\"line-width\",\"length\"])){case\"line-width\":case\"length\":{if(y.modifier)return;let V=A.width(C);return V?[o(),...V]:void 0}default:return C=Q(C,y.modifier,r),C===null?void 0:A.color(C)}}{let C=te(y,r,[\"--border-color\",\"--color\"]);if(C)return A.color(C)}{if(y.modifier)return;let C=r.resolve(y.value.value,[\"--border-width\"]);if(C){let R=A.width(C);return R?[o(),...R]:void 0}if(E(y.value.value)){let R=A.width(`${y.value.value}px`);return R?[o(),...R]:void 0}}}),i(h,()=>[{values:[\"current\",\"inherit\",\"transparent\"],valueThemeKeys:[\"--border-color\",\"--color\"],modifiers:Array.from({length:21},(y,C)=>`${C*5}`),hasDefaultValue:!0},{values:[\"0\",\"2\",\"4\",\"8\"],valueThemeKeys:[\"--border-width\"]}])};var O=d;let o=()=>I([$(\"--tw-border-style\",\"solid\")]);d(\"border\",{width:h=>[l(\"border-style\",\"var(--tw-border-style)\"),l(\"border-width\",h)],color:h=>[l(\"border-color\",h)]}),d(\"border-x\",{width:h=>[l(\"border-inline-style\",\"var(--tw-border-style)\"),l(\"border-inline-width\",h)],color:h=>[l(\"border-inline-color\",h)]}),d(\"border-y\",{width:h=>[l(\"border-block-style\",\"var(--tw-border-style)\"),l(\"border-block-width\",h)],color:h=>[l(\"border-block-color\",h)]}),d(\"border-s\",{width:h=>[l(\"border-inline-start-style\",\"var(--tw-border-style)\"),l(\"border-inline-start-width\",h)],color:h=>[l(\"border-inline-start-color\",h)]}),d(\"border-e\",{width:h=>[l(\"border-inline-end-style\",\"var(--tw-border-style)\"),l(\"border-inline-end-width\",h)],color:h=>[l(\"border-inline-end-color\",h)]}),d(\"border-t\",{width:h=>[l(\"border-top-style\",\"var(--tw-border-style)\"),l(\"border-top-width\",h)],color:h=>[l(\"border-top-color\",h)]}),d(\"border-r\",{width:h=>[l(\"border-right-style\",\"var(--tw-border-style)\"),l(\"border-right-width\",h)],color:h=>[l(\"border-right-color\",h)]}),d(\"border-b\",{width:h=>[l(\"border-bottom-style\",\"var(--tw-border-style)\"),l(\"border-bottom-width\",h)],color:h=>[l(\"border-bottom-color\",h)]}),d(\"border-l\",{width:h=>[l(\"border-left-style\",\"var(--tw-border-style)\"),l(\"border-left-width\",h)],color:h=>[l(\"border-left-color\",h)]}),n(\"divide-x\",{defaultValue:r.get([\"--default-border-width\"])??\"1px\",themeKeys:[\"--divide-width\",\"--border-width\"],handleBareValue:({value:h})=>E(h)?`${h}px`:null,handle:h=>[I([$(\"--tw-divide-x-reverse\",\"0\")]),M(\":where(& > :not(:last-child))\",[l(\"--tw-sort\",\"divide-x-width\"),o(),l(\"--tw-divide-x-reverse\",\"0\"),l(\"border-inline-style\",\"var(--tw-border-style)\"),l(\"border-inline-start-width\",`calc(${h} * var(--tw-divide-x-reverse))`),l(\"border-inline-end-width\",`calc(${h} * calc(1 - var(--tw-divide-x-reverse)))`)])]}),n(\"divide-y\",{defaultValue:r.get([\"--default-border-width\"])??\"1px\",themeKeys:[\"--divide-width\",\"--border-width\"],handleBareValue:({value:h})=>E(h)?`${h}px`:null,handle:h=>[I([$(\"--tw-divide-y-reverse\",\"0\")]),M(\":where(& > :not(:last-child))\",[l(\"--tw-sort\",\"divide-y-width\"),o(),l(\"--tw-divide-y-reverse\",\"0\"),l(\"border-bottom-style\",\"var(--tw-border-style)\"),l(\"border-top-style\",\"var(--tw-border-style)\"),l(\"border-top-width\",`calc(${h} * var(--tw-divide-y-reverse))`),l(\"border-bottom-width\",`calc(${h} * calc(1 - var(--tw-divide-y-reverse)))`)])]}),i(\"divide-x\",()=>[{values:[\"0\",\"2\",\"4\",\"8\"],valueThemeKeys:[\"--divide-width\",\"--border-width\"],hasDefaultValue:!0}]),i(\"divide-y\",()=>[{values:[\"0\",\"2\",\"4\",\"8\"],valueThemeKeys:[\"--divide-width\",\"--border-width\"],hasDefaultValue:!0}]),e(\"divide-x-reverse\",[()=>I([$(\"--tw-divide-x-reverse\",\"0\")]),()=>M(\":where(& > :not(:last-child))\",[l(\"--tw-divide-x-reverse\",\"1\")])]),e(\"divide-y-reverse\",[()=>I([$(\"--tw-divide-y-reverse\",\"0\")]),()=>M(\":where(& > :not(:last-child))\",[l(\"--tw-divide-y-reverse\",\"1\")])]);for(let h of[\"solid\",\"dashed\",\"dotted\",\"double\",\"none\"])e(`divide-${h}`,[()=>M(\":where(& > :not(:last-child))\",[l(\"--tw-sort\",\"divide-style\"),l(\"--tw-border-style\",h),l(\"border-style\",h)])])}e(\"bg-auto\",[[\"background-size\",\"auto\"]]),e(\"bg-cover\",[[\"background-size\",\"cover\"]]),e(\"bg-contain\",[[\"background-size\",\"contain\"]]),n(\"bg-size\",{handle(o){if(o)return[l(\"background-size\",o)]}}),e(\"bg-fixed\",[[\"background-attachment\",\"fixed\"]]),e(\"bg-local\",[[\"background-attachment\",\"local\"]]),e(\"bg-scroll\",[[\"background-attachment\",\"scroll\"]]),e(\"bg-top\",[[\"background-position\",\"top\"]]),e(\"bg-top-left\",[[\"background-position\",\"left top\"]]),e(\"bg-top-right\",[[\"background-position\",\"right top\"]]),e(\"bg-bottom\",[[\"background-position\",\"bottom\"]]),e(\"bg-bottom-left\",[[\"background-position\",\"left bottom\"]]),e(\"bg-bottom-right\",[[\"background-position\",\"right bottom\"]]),e(\"bg-left\",[[\"background-position\",\"left\"]]),e(\"bg-right\",[[\"background-position\",\"right\"]]),e(\"bg-center\",[[\"background-position\",\"center\"]]),n(\"bg-position\",{handle(o){if(o)return[l(\"background-position\",o)]}}),e(\"bg-repeat\",[[\"background-repeat\",\"repeat\"]]),e(\"bg-no-repeat\",[[\"background-repeat\",\"no-repeat\"]]),e(\"bg-repeat-x\",[[\"background-repeat\",\"repeat-x\"]]),e(\"bg-repeat-y\",[[\"background-repeat\",\"repeat-y\"]]),e(\"bg-repeat-round\",[[\"background-repeat\",\"round\"]]),e(\"bg-repeat-space\",[[\"background-repeat\",\"space\"]]),e(\"bg-none\",[[\"background-image\",\"none\"]]);{let h=function(C){let R=\"in oklab\";if(C?.kind===\"named\")switch(C.value){case\"longer\":case\"shorter\":case\"increasing\":case\"decreasing\":R=`in oklch ${C.value} hue`;break;default:R=`in ${C.value}`}else C?.kind===\"arbitrary\"&&(R=C.value);return R},A=function({negative:C}){return R=>{if(!R.value)return;if(R.value.kind===\"arbitrary\"){if(R.modifier)return;let _=R.value.value;switch(R.value.dataType??J(_,[\"angle\"])){case\"angle\":return _=C?`calc(${_} * -1)`:`${_}`,[l(\"--tw-gradient-position\",_),l(\"background-image\",`linear-gradient(var(--tw-gradient-stops,${_}))`)];default:return C?void 0:[l(\"--tw-gradient-position\",_),l(\"background-image\",`linear-gradient(var(--tw-gradient-stops,${_}))`)]}}let V=R.value.value;if(!C&&d.has(V))V=d.get(V);else if(E(V))V=C?`calc(${V}deg * -1)`:`${V}deg`;else return;let T=h(R.modifier);return[l(\"--tw-gradient-position\",`${V}`),H(\"@supports (background-image: linear-gradient(in lab, red, red))\",[l(\"--tw-gradient-position\",`${V} ${T}`)]),l(\"background-image\",\"linear-gradient(var(--tw-gradient-stops))\")]}},y=function({negative:C}){return R=>{if(R.value?.kind===\"arbitrary\"){if(R.modifier)return;let _=R.value.value;return[l(\"--tw-gradient-position\",_),l(\"background-image\",`conic-gradient(var(--tw-gradient-stops,${_}))`)]}let V=h(R.modifier);if(!R.value)return[l(\"--tw-gradient-position\",V),l(\"background-image\",\"conic-gradient(var(--tw-gradient-stops))\")];let T=R.value.value;if(E(T))return T=C?`calc(${T}deg * -1)`:`${T}deg`,[l(\"--tw-gradient-position\",`from ${T} ${V}`),l(\"background-image\",\"conic-gradient(var(--tw-gradient-stops))\")]}};var G=h,L=A,q=y;let o=[\"oklab\",\"oklch\",\"srgb\",\"hsl\",\"longer\",\"shorter\",\"increasing\",\"decreasing\"],d=new Map([[\"to-t\",\"to top\"],[\"to-tr\",\"to top right\"],[\"to-r\",\"to right\"],[\"to-br\",\"to bottom right\"],[\"to-b\",\"to bottom\"],[\"to-bl\",\"to bottom left\"],[\"to-l\",\"to left\"],[\"to-tl\",\"to top left\"]]);t.functional(\"-bg-linear\",A({negative:!0})),t.functional(\"bg-linear\",A({negative:!1})),i(\"bg-linear\",()=>[{values:[...d.keys()],modifiers:o},{values:[\"0\",\"30\",\"60\",\"90\",\"120\",\"150\",\"180\",\"210\",\"240\",\"270\",\"300\",\"330\"],supportsNegative:!0,modifiers:o}]),t.functional(\"-bg-conic\",y({negative:!0})),t.functional(\"bg-conic\",y({negative:!1})),i(\"bg-conic\",()=>[{hasDefaultValue:!0,modifiers:o},{values:[\"0\",\"30\",\"60\",\"90\",\"120\",\"150\",\"180\",\"210\",\"240\",\"270\",\"300\",\"330\"],supportsNegative:!0,modifiers:o}]),t.functional(\"bg-radial\",C=>{if(!C.value){let R=h(C.modifier);return[l(\"--tw-gradient-position\",R),l(\"background-image\",\"radial-gradient(var(--tw-gradient-stops))\")]}if(C.value.kind===\"arbitrary\"){if(C.modifier)return;let R=C.value.value;return[l(\"--tw-gradient-position\",R),l(\"background-image\",`radial-gradient(var(--tw-gradient-stops,${R}))`)]}}),i(\"bg-radial\",()=>[{hasDefaultValue:!0,modifiers:o}])}t.functional(\"bg\",o=>{if(o.value){if(o.value.kind===\"arbitrary\"){let d=o.value.value;switch(o.value.dataType??J(d,[\"image\",\"color\",\"percentage\",\"position\",\"bg-size\",\"length\",\"url\"])){case\"percentage\":case\"position\":return o.modifier?void 0:[l(\"background-position\",d)];case\"bg-size\":case\"length\":case\"size\":return o.modifier?void 0:[l(\"background-size\",d)];case\"image\":case\"url\":return o.modifier?void 0:[l(\"background-image\",d)];default:return d=Q(d,o.modifier,r),d===null?void 0:[l(\"background-color\",d)]}}{let d=te(o,r,[\"--background-color\",\"--color\"]);if(d)return[l(\"background-color\",d)]}{if(o.modifier)return;let d=r.resolve(o.value.value,[\"--background-image\"]);if(d)return[l(\"background-image\",d)]}}}),i(\"bg\",()=>[{values:[\"current\",\"inherit\",\"transparent\"],valueThemeKeys:[\"--background-color\",\"--color\"],modifiers:Array.from({length:21},(o,d)=>`${d*5}`)},{values:[],valueThemeKeys:[\"--background-image\"]}]);let v=()=>I([$(\"--tw-gradient-position\"),$(\"--tw-gradient-from\",\"#0000\",\"<color>\"),$(\"--tw-gradient-via\",\"#0000\",\"<color>\"),$(\"--tw-gradient-to\",\"#0000\",\"<color>\"),$(\"--tw-gradient-stops\"),$(\"--tw-gradient-via-stops\"),$(\"--tw-gradient-from-position\",\"0%\",\"<length-percentage>\"),$(\"--tw-gradient-via-position\",\"50%\",\"<length-percentage>\"),$(\"--tw-gradient-to-position\",\"100%\",\"<length-percentage>\")]);function x(o,d){t.functional(o,h=>{if(h.value){if(h.value.kind===\"arbitrary\"){let A=h.value.value;switch(h.value.dataType??J(A,[\"color\",\"length\",\"percentage\"])){case\"length\":case\"percentage\":return h.modifier?void 0:d.position(A);default:return A=Q(A,h.modifier,r),A===null?void 0:d.color(A)}}{let A=te(h,r,[\"--background-color\",\"--color\"]);if(A)return d.color(A)}{if(h.modifier)return;let A=r.resolve(h.value.value,[\"--gradient-color-stop-positions\"]);if(A)return d.position(A);if(h.value.value[h.value.value.length-1]===\"%\"&&E(h.value.value.slice(0,-1)))return d.position(h.value.value)}}}),i(o,()=>[{values:[\"current\",\"inherit\",\"transparent\"],valueThemeKeys:[\"--background-color\",\"--color\"],modifiers:Array.from({length:21},(h,A)=>`${A*5}`)},{values:Array.from({length:21},(h,A)=>`${A*5}%`),valueThemeKeys:[\"--gradient-color-stop-positions\"]}])}x(\"from\",{color:o=>[v(),l(\"--tw-sort\",\"--tw-gradient-from\"),l(\"--tw-gradient-from\",o),l(\"--tw-gradient-stops\",\"var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))\")],position:o=>[v(),l(\"--tw-gradient-from-position\",o)]}),e(\"via-none\",[[\"--tw-gradient-via-stops\",\"initial\"]]),x(\"via\",{color:o=>[v(),l(\"--tw-sort\",\"--tw-gradient-via\"),l(\"--tw-gradient-via\",o),l(\"--tw-gradient-via-stops\",\"var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position)\"),l(\"--tw-gradient-stops\",\"var(--tw-gradient-via-stops)\")],position:o=>[v(),l(\"--tw-gradient-via-position\",o)]}),x(\"to\",{color:o=>[v(),l(\"--tw-sort\",\"--tw-gradient-to\"),l(\"--tw-gradient-to\",o),l(\"--tw-gradient-stops\",\"var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))\")],position:o=>[v(),l(\"--tw-gradient-to-position\",o)]}),e(\"mask-none\",[[\"mask-image\",\"none\"]]),t.functional(\"mask\",o=>{if(!o.value||o.modifier||o.value.kind!==\"arbitrary\")return;let d=o.value.value;switch(o.value.dataType??J(d,[\"image\",\"percentage\",\"position\",\"bg-size\",\"length\",\"url\"])){case\"percentage\":case\"position\":return o.modifier?void 0:[l(\"mask-position\",d)];case\"bg-size\":case\"length\":case\"size\":return[l(\"mask-size\",d)];case\"image\":case\"url\":default:return[l(\"mask-image\",d)]}}),e(\"mask-add\",[[\"mask-composite\",\"add\"]]),e(\"mask-subtract\",[[\"mask-composite\",\"subtract\"]]),e(\"mask-intersect\",[[\"mask-composite\",\"intersect\"]]),e(\"mask-exclude\",[[\"mask-composite\",\"exclude\"]]),e(\"mask-alpha\",[[\"mask-mode\",\"alpha\"]]),e(\"mask-luminance\",[[\"mask-mode\",\"luminance\"]]),e(\"mask-match\",[[\"mask-mode\",\"match-source\"]]),e(\"mask-type-alpha\",[[\"mask-type\",\"alpha\"]]),e(\"mask-type-luminance\",[[\"mask-type\",\"luminance\"]]),e(\"mask-auto\",[[\"mask-size\",\"auto\"]]),e(\"mask-cover\",[[\"mask-size\",\"cover\"]]),e(\"mask-contain\",[[\"mask-size\",\"contain\"]]),n(\"mask-size\",{handle(o){if(o)return[l(\"mask-size\",o)]}}),e(\"mask-top\",[[\"mask-position\",\"top\"]]),e(\"mask-top-left\",[[\"mask-position\",\"left top\"]]),e(\"mask-top-right\",[[\"mask-position\",\"right top\"]]),e(\"mask-bottom\",[[\"mask-position\",\"bottom\"]]),e(\"mask-bottom-left\",[[\"mask-position\",\"left bottom\"]]),e(\"mask-bottom-right\",[[\"mask-position\",\"right bottom\"]]),e(\"mask-left\",[[\"mask-position\",\"left\"]]),e(\"mask-right\",[[\"mask-position\",\"right\"]]),e(\"mask-center\",[[\"mask-position\",\"center\"]]),n(\"mask-position\",{handle(o){if(o)return[l(\"mask-position\",o)]}}),e(\"mask-repeat\",[[\"mask-repeat\",\"repeat\"]]),e(\"mask-no-repeat\",[[\"mask-repeat\",\"no-repeat\"]]),e(\"mask-repeat-x\",[[\"mask-repeat\",\"repeat-x\"]]),e(\"mask-repeat-y\",[[\"mask-repeat\",\"repeat-y\"]]),e(\"mask-repeat-round\",[[\"mask-repeat\",\"round\"]]),e(\"mask-repeat-space\",[[\"mask-repeat\",\"space\"]]),e(\"mask-clip-border\",[[\"mask-clip\",\"border-box\"]]),e(\"mask-clip-padding\",[[\"mask-clip\",\"padding-box\"]]),e(\"mask-clip-content\",[[\"mask-clip\",\"content-box\"]]),e(\"mask-clip-fill\",[[\"mask-clip\",\"fill-box\"]]),e(\"mask-clip-stroke\",[[\"mask-clip\",\"stroke-box\"]]),e(\"mask-clip-view\",[[\"mask-clip\",\"view-box\"]]),e(\"mask-no-clip\",[[\"mask-clip\",\"no-clip\"]]),e(\"mask-origin-border\",[[\"mask-origin\",\"border-box\"]]),e(\"mask-origin-padding\",[[\"mask-origin\",\"padding-box\"]]),e(\"mask-origin-content\",[[\"mask-origin\",\"content-box\"]]),e(\"mask-origin-fill\",[[\"mask-origin\",\"fill-box\"]]),e(\"mask-origin-stroke\",[[\"mask-origin\",\"stroke-box\"]]),e(\"mask-origin-view\",[[\"mask-origin\",\"view-box\"]]);let k=()=>I([$(\"--tw-mask-linear\",\"linear-gradient(#fff, #fff)\"),$(\"--tw-mask-radial\",\"linear-gradient(#fff, #fff)\"),$(\"--tw-mask-conic\",\"linear-gradient(#fff, #fff)\")]);function N(o,d){t.functional(o,h=>{if(h.value){if(h.value.kind===\"arbitrary\"){let A=h.value.value;switch(h.value.dataType??J(A,[\"length\",\"percentage\",\"color\"])){case\"color\":return A=Q(A,h.modifier,r),A===null?void 0:d.color(A);case\"percentage\":return h.modifier||!E(A.slice(0,-1))?void 0:d.position(A);default:return h.modifier?void 0:d.position(A)}}{let A=te(h,r,[\"--background-color\",\"--color\"]);if(A)return d.color(A)}{if(h.modifier)return;let A=J(h.value.value,[\"number\",\"percentage\"]);if(!A)return;switch(A){case\"number\":{let y=r.resolve(null,[\"--spacing\"]);return!y||!pe(h.value.value)?void 0:d.position(`calc(${y} * ${h.value.value})`)}case\"percentage\":return E(h.value.value.slice(0,-1))?d.position(h.value.value):void 0;default:return}}}}),i(o,()=>[{values:[\"current\",\"inherit\",\"transparent\"],valueThemeKeys:[\"--background-color\",\"--color\"],modifiers:Array.from({length:21},(h,A)=>`${A*5}`)},{values:Array.from({length:21},(h,A)=>`${A*5}%`),valueThemeKeys:[\"--gradient-color-stop-positions\"]}]),i(o,()=>[{values:Array.from({length:21},(h,A)=>`${A*5}%`)},{values:r.get([\"--spacing\"])?Ze:[]},{values:[\"current\",\"inherit\",\"transparent\"],valueThemeKeys:[\"--background-color\",\"--color\"],modifiers:Array.from({length:21},(h,A)=>`${A*5}`)}])}let b=()=>I([$(\"--tw-mask-left\",\"linear-gradient(#fff, #fff)\"),$(\"--tw-mask-right\",\"linear-gradient(#fff, #fff)\"),$(\"--tw-mask-bottom\",\"linear-gradient(#fff, #fff)\"),$(\"--tw-mask-top\",\"linear-gradient(#fff, #fff)\")]);function S(o,d,h){N(o,{color(A){let y=[k(),b(),l(\"mask-image\",\"var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)\"),l(\"mask-composite\",\"intersect\"),l(\"--tw-mask-linear\",\"var(--tw-mask-left), var(--tw-mask-right), var(--tw-mask-bottom), var(--tw-mask-top)\")];for(let C of[\"top\",\"right\",\"bottom\",\"left\"])h[C]&&(y.push(l(`--tw-mask-${C}`,`linear-gradient(to ${C}, var(--tw-mask-${C}-from-color) var(--tw-mask-${C}-from-position), var(--tw-mask-${C}-to-color) var(--tw-mask-${C}-to-position))`)),y.push(I([$(`--tw-mask-${C}-from-position`,\"0%\"),$(`--tw-mask-${C}-to-position`,\"100%\"),$(`--tw-mask-${C}-from-color`,\"black\"),$(`--tw-mask-${C}-to-color`,\"transparent\")])),y.push(l(`--tw-mask-${C}-${d}-color`,A)));return y},position(A){let y=[k(),b(),l(\"mask-image\",\"var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)\"),l(\"mask-composite\",\"intersect\"),l(\"--tw-mask-linear\",\"var(--tw-mask-left), var(--tw-mask-right), var(--tw-mask-bottom), var(--tw-mask-top)\")];for(let C of[\"top\",\"right\",\"bottom\",\"left\"])h[C]&&(y.push(l(`--tw-mask-${C}`,`linear-gradient(to ${C}, var(--tw-mask-${C}-from-color) var(--tw-mask-${C}-from-position), var(--tw-mask-${C}-to-color) var(--tw-mask-${C}-to-position))`)),y.push(I([$(`--tw-mask-${C}-from-position`,\"0%\"),$(`--tw-mask-${C}-to-position`,\"100%\"),$(`--tw-mask-${C}-from-color`,\"black\"),$(`--tw-mask-${C}-to-color`,\"transparent\")])),y.push(l(`--tw-mask-${C}-${d}-position`,A)));return y}})}S(\"mask-x-from\",\"from\",{top:!1,right:!0,bottom:!1,left:!0}),S(\"mask-x-to\",\"to\",{top:!1,right:!0,bottom:!1,left:!0}),S(\"mask-y-from\",\"from\",{top:!0,right:!1,bottom:!0,left:!1}),S(\"mask-y-to\",\"to\",{top:!0,right:!1,bottom:!0,left:!1}),S(\"mask-t-from\",\"from\",{top:!0,right:!1,bottom:!1,left:!1}),S(\"mask-t-to\",\"to\",{top:!0,right:!1,bottom:!1,left:!1}),S(\"mask-r-from\",\"from\",{top:!1,right:!0,bottom:!1,left:!1}),S(\"mask-r-to\",\"to\",{top:!1,right:!0,bottom:!1,left:!1}),S(\"mask-b-from\",\"from\",{top:!1,right:!1,bottom:!0,left:!1}),S(\"mask-b-to\",\"to\",{top:!1,right:!1,bottom:!0,left:!1}),S(\"mask-l-from\",\"from\",{top:!1,right:!1,bottom:!1,left:!0}),S(\"mask-l-to\",\"to\",{top:!1,right:!1,bottom:!1,left:!0});let P=()=>I([$(\"--tw-mask-linear-position\",\"0deg\"),$(\"--tw-mask-linear-from-position\",\"0%\"),$(\"--tw-mask-linear-to-position\",\"100%\"),$(\"--tw-mask-linear-from-color\",\"black\"),$(\"--tw-mask-linear-to-color\",\"transparent\")]);n(\"mask-linear\",{defaultValue:null,supportsNegative:!0,supportsFractions:!1,handleBareValue(o){return E(o.value)?`calc(1deg * ${o.value})`:null},handleNegativeBareValue(o){return E(o.value)?`calc(1deg * -${o.value})`:null},handle:o=>[k(),P(),l(\"mask-image\",\"var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)\"),l(\"mask-composite\",\"intersect\"),l(\"--tw-mask-linear\",\"linear-gradient(var(--tw-mask-linear-stops, var(--tw-mask-linear-position)))\"),l(\"--tw-mask-linear-position\",o)]}),i(\"mask-linear\",()=>[{supportsNegative:!0,values:[\"0\",\"1\",\"2\",\"3\",\"6\",\"12\",\"45\",\"90\",\"180\"]}]),N(\"mask-linear-from\",{color:o=>[k(),P(),l(\"mask-image\",\"var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)\"),l(\"mask-composite\",\"intersect\"),l(\"--tw-mask-linear-stops\",\"var(--tw-mask-linear-position), var(--tw-mask-linear-from-color) var(--tw-mask-linear-from-position), var(--tw-mask-linear-to-color) var(--tw-mask-linear-to-position)\"),l(\"--tw-mask-linear\",\"linear-gradient(var(--tw-mask-linear-stops))\"),l(\"--tw-mask-linear-from-color\",o)],position:o=>[k(),P(),l(\"mask-image\",\"var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)\"),l(\"mask-composite\",\"intersect\"),l(\"--tw-mask-linear-stops\",\"var(--tw-mask-linear-position), var(--tw-mask-linear-from-color) var(--tw-mask-linear-from-position), var(--tw-mask-linear-to-color) var(--tw-mask-linear-to-position)\"),l(\"--tw-mask-linear\",\"linear-gradient(var(--tw-mask-linear-stops))\"),l(\"--tw-mask-linear-from-position\",o)]}),N(\"mask-linear-to\",{color:o=>[k(),P(),l(\"mask-image\",\"var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)\"),l(\"mask-composite\",\"intersect\"),l(\"--tw-mask-linear-stops\",\"var(--tw-mask-linear-position), var(--tw-mask-linear-from-color) var(--tw-mask-linear-from-position), var(--tw-mask-linear-to-color) var(--tw-mask-linear-to-position)\"),l(\"--tw-mask-linear\",\"linear-gradient(var(--tw-mask-linear-stops))\"),l(\"--tw-mask-linear-to-color\",o)],position:o=>[k(),P(),l(\"mask-image\",\"var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)\"),l(\"mask-composite\",\"intersect\"),l(\"--tw-mask-linear-stops\",\"var(--tw-mask-linear-position), var(--tw-mask-linear-from-color) var(--tw-mask-linear-from-position), var(--tw-mask-linear-to-color) var(--tw-mask-linear-to-position)\"),l(\"--tw-mask-linear\",\"linear-gradient(var(--tw-mask-linear-stops))\"),l(\"--tw-mask-linear-to-position\",o)]});let j=()=>I([$(\"--tw-mask-radial-from-position\",\"0%\"),$(\"--tw-mask-radial-to-position\",\"100%\"),$(\"--tw-mask-radial-from-color\",\"black\"),$(\"--tw-mask-radial-to-color\",\"transparent\"),$(\"--tw-mask-radial-shape\",\"ellipse\"),$(\"--tw-mask-radial-size\",\"farthest-corner\"),$(\"--tw-mask-radial-position\",\"center\")]);e(\"mask-circle\",[[\"--tw-mask-radial-shape\",\"circle\"]]),e(\"mask-ellipse\",[[\"--tw-mask-radial-shape\",\"ellipse\"]]),e(\"mask-radial-closest-side\",[[\"--tw-mask-radial-size\",\"closest-side\"]]),e(\"mask-radial-farthest-side\",[[\"--tw-mask-radial-size\",\"farthest-side\"]]),e(\"mask-radial-closest-corner\",[[\"--tw-mask-radial-size\",\"closest-corner\"]]),e(\"mask-radial-farthest-corner\",[[\"--tw-mask-radial-size\",\"farthest-corner\"]]),e(\"mask-radial-at-top\",[[\"--tw-mask-radial-position\",\"top\"]]),e(\"mask-radial-at-top-left\",[[\"--tw-mask-radial-position\",\"top left\"]]),e(\"mask-radial-at-top-right\",[[\"--tw-mask-radial-position\",\"top right\"]]),e(\"mask-radial-at-bottom\",[[\"--tw-mask-radial-position\",\"bottom\"]]),e(\"mask-radial-at-bottom-left\",[[\"--tw-mask-radial-position\",\"bottom left\"]]),e(\"mask-radial-at-bottom-right\",[[\"--tw-mask-radial-position\",\"bottom right\"]]),e(\"mask-radial-at-left\",[[\"--tw-mask-radial-position\",\"left\"]]),e(\"mask-radial-at-right\",[[\"--tw-mask-radial-position\",\"right\"]]),e(\"mask-radial-at-center\",[[\"--tw-mask-radial-position\",\"center\"]]),n(\"mask-radial-at\",{defaultValue:null,supportsNegative:!1,supportsFractions:!1,handle:o=>[l(\"--tw-mask-radial-position\",o)]}),n(\"mask-radial\",{defaultValue:null,supportsNegative:!1,supportsFractions:!1,handle:o=>[k(),j(),l(\"mask-image\",\"var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)\"),l(\"mask-composite\",\"intersect\"),l(\"--tw-mask-radial\",\"radial-gradient(var(--tw-mask-radial-stops, var(--tw-mask-radial-size)))\"),l(\"--tw-mask-radial-size\",o)]}),N(\"mask-radial-from\",{color:o=>[k(),j(),l(\"mask-image\",\"var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)\"),l(\"mask-composite\",\"intersect\"),l(\"--tw-mask-radial-stops\",\"var(--tw-mask-radial-shape) var(--tw-mask-radial-size) at var(--tw-mask-radial-position), var(--tw-mask-radial-from-color) var(--tw-mask-radial-from-position), var(--tw-mask-radial-to-color) var(--tw-mask-radial-to-position)\"),l(\"--tw-mask-radial\",\"radial-gradient(var(--tw-mask-radial-stops))\"),l(\"--tw-mask-radial-from-color\",o)],position:o=>[k(),j(),l(\"mask-image\",\"var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)\"),l(\"mask-composite\",\"intersect\"),l(\"--tw-mask-radial-stops\",\"var(--tw-mask-radial-shape) var(--tw-mask-radial-size) at var(--tw-mask-radial-position), var(--tw-mask-radial-from-color) var(--tw-mask-radial-from-position), var(--tw-mask-radial-to-color) var(--tw-mask-radial-to-position)\"),l(\"--tw-mask-radial\",\"radial-gradient(var(--tw-mask-radial-stops))\"),l(\"--tw-mask-radial-from-position\",o)]}),N(\"mask-radial-to\",{color:o=>[k(),j(),l(\"mask-image\",\"var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)\"),l(\"mask-composite\",\"intersect\"),l(\"--tw-mask-radial-stops\",\"var(--tw-mask-radial-shape) var(--tw-mask-radial-size) at var(--tw-mask-radial-position), var(--tw-mask-radial-from-color) var(--tw-mask-radial-from-position), var(--tw-mask-radial-to-color) var(--tw-mask-radial-to-position)\"),l(\"--tw-mask-radial\",\"radial-gradient(var(--tw-mask-radial-stops))\"),l(\"--tw-mask-radial-to-color\",o)],position:o=>[k(),j(),l(\"mask-image\",\"var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)\"),l(\"mask-composite\",\"intersect\"),l(\"--tw-mask-radial-stops\",\"var(--tw-mask-radial-shape) var(--tw-mask-radial-size) at var(--tw-mask-radial-position), var(--tw-mask-radial-from-color) var(--tw-mask-radial-from-position), var(--tw-mask-radial-to-color) var(--tw-mask-radial-to-position)\"),l(\"--tw-mask-radial\",\"radial-gradient(var(--tw-mask-radial-stops))\"),l(\"--tw-mask-radial-to-position\",o)]});let K=()=>I([$(\"--tw-mask-conic-position\",\"0deg\"),$(\"--tw-mask-conic-from-position\",\"0%\"),$(\"--tw-mask-conic-to-position\",\"100%\"),$(\"--tw-mask-conic-from-color\",\"black\"),$(\"--tw-mask-conic-to-color\",\"transparent\")]);n(\"mask-conic\",{defaultValue:null,supportsNegative:!0,supportsFractions:!1,handleBareValue(o){return E(o.value)?`calc(1deg * ${o.value})`:null},handleNegativeBareValue(o){return E(o.value)?`calc(1deg * -${o.value})`:null},handle:o=>[k(),K(),l(\"mask-image\",\"var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)\"),l(\"mask-composite\",\"intersect\"),l(\"--tw-mask-conic\",\"conic-gradient(var(--tw-mask-conic-stops, var(--tw-mask-conic-position)))\"),l(\"--tw-mask-conic-position\",o)]}),i(\"mask-conic\",()=>[{supportsNegative:!0,values:[\"0\",\"1\",\"2\",\"3\",\"6\",\"12\",\"45\",\"90\",\"180\"]}]),N(\"mask-conic-from\",{color:o=>[k(),K(),l(\"mask-image\",\"var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)\"),l(\"mask-composite\",\"intersect\"),l(\"--tw-mask-conic-stops\",\"from var(--tw-mask-conic-position), var(--tw-mask-conic-from-color) var(--tw-mask-conic-from-position), var(--tw-mask-conic-to-color) var(--tw-mask-conic-to-position)\"),l(\"--tw-mask-conic\",\"conic-gradient(var(--tw-mask-conic-stops))\"),l(\"--tw-mask-conic-from-color\",o)],position:o=>[k(),K(),l(\"mask-image\",\"var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)\"),l(\"mask-composite\",\"intersect\"),l(\"--tw-mask-conic-stops\",\"from var(--tw-mask-conic-position), var(--tw-mask-conic-from-color) var(--tw-mask-conic-from-position), var(--tw-mask-conic-to-color) var(--tw-mask-conic-to-position)\"),l(\"--tw-mask-conic\",\"conic-gradient(var(--tw-mask-conic-stops))\"),l(\"--tw-mask-conic-from-position\",o)]}),N(\"mask-conic-to\",{color:o=>[k(),K(),l(\"mask-image\",\"var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)\"),l(\"mask-composite\",\"intersect\"),l(\"--tw-mask-conic-stops\",\"from var(--tw-mask-conic-position), var(--tw-mask-conic-from-color) var(--tw-mask-conic-from-position), var(--tw-mask-conic-to-color) var(--tw-mask-conic-to-position)\"),l(\"--tw-mask-conic\",\"conic-gradient(var(--tw-mask-conic-stops))\"),l(\"--tw-mask-conic-to-color\",o)],position:o=>[k(),K(),l(\"mask-image\",\"var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)\"),l(\"mask-composite\",\"intersect\"),l(\"--tw-mask-conic-stops\",\"from var(--tw-mask-conic-position), var(--tw-mask-conic-from-color) var(--tw-mask-conic-from-position), var(--tw-mask-conic-to-color) var(--tw-mask-conic-to-position)\"),l(\"--tw-mask-conic\",\"conic-gradient(var(--tw-mask-conic-stops))\"),l(\"--tw-mask-conic-to-position\",o)]}),e(\"box-decoration-slice\",[[\"-webkit-box-decoration-break\",\"slice\"],[\"box-decoration-break\",\"slice\"]]),e(\"box-decoration-clone\",[[\"-webkit-box-decoration-break\",\"clone\"],[\"box-decoration-break\",\"clone\"]]),e(\"bg-clip-text\",[[\"background-clip\",\"text\"]]),e(\"bg-clip-border\",[[\"background-clip\",\"border-box\"]]),e(\"bg-clip-padding\",[[\"background-clip\",\"padding-box\"]]),e(\"bg-clip-content\",[[\"background-clip\",\"content-box\"]]),e(\"bg-origin-border\",[[\"background-origin\",\"border-box\"]]),e(\"bg-origin-padding\",[[\"background-origin\",\"padding-box\"]]),e(\"bg-origin-content\",[[\"background-origin\",\"content-box\"]]);for(let o of[\"normal\",\"multiply\",\"screen\",\"overlay\",\"darken\",\"lighten\",\"color-dodge\",\"color-burn\",\"hard-light\",\"soft-light\",\"difference\",\"exclusion\",\"hue\",\"saturation\",\"color\",\"luminosity\"])e(`bg-blend-${o}`,[[\"background-blend-mode\",o]]),e(`mix-blend-${o}`,[[\"mix-blend-mode\",o]]);e(\"mix-blend-plus-darker\",[[\"mix-blend-mode\",\"plus-darker\"]]),e(\"mix-blend-plus-lighter\",[[\"mix-blend-mode\",\"plus-lighter\"]]),e(\"fill-none\",[[\"fill\",\"none\"]]),t.functional(\"fill\",o=>{if(!o.value)return;if(o.value.kind===\"arbitrary\"){let h=Q(o.value.value,o.modifier,r);return h===null?void 0:[l(\"fill\",h)]}let d=te(o,r,[\"--fill\",\"--color\"]);if(d)return[l(\"fill\",d)]}),i(\"fill\",()=>[{values:[\"current\",\"inherit\",\"transparent\"],valueThemeKeys:[\"--fill\",\"--color\"],modifiers:Array.from({length:21},(o,d)=>`${d*5}`)}]),e(\"stroke-none\",[[\"stroke\",\"none\"]]),t.functional(\"stroke\",o=>{if(o.value){if(o.value.kind===\"arbitrary\"){let d=o.value.value;switch(o.value.dataType??J(d,[\"color\",\"number\",\"length\",\"percentage\"])){case\"number\":case\"length\":case\"percentage\":return o.modifier?void 0:[l(\"stroke-width\",d)];default:return d=Q(o.value.value,o.modifier,r),d===null?void 0:[l(\"stroke\",d)]}}{let d=te(o,r,[\"--stroke\",\"--color\"]);if(d)return[l(\"stroke\",d)]}{let d=r.resolve(o.value.value,[\"--stroke-width\"]);if(d)return[l(\"stroke-width\",d)];if(E(o.value.value))return[l(\"stroke-width\",o.value.value)]}}}),i(\"stroke\",()=>[{values:[\"current\",\"inherit\",\"transparent\"],valueThemeKeys:[\"--stroke\",\"--color\"],modifiers:Array.from({length:21},(o,d)=>`${d*5}`)},{values:[\"0\",\"1\",\"2\",\"3\"],valueThemeKeys:[\"--stroke-width\"]}]),e(\"object-contain\",[[\"object-fit\",\"contain\"]]),e(\"object-cover\",[[\"object-fit\",\"cover\"]]),e(\"object-fill\",[[\"object-fit\",\"fill\"]]),e(\"object-none\",[[\"object-fit\",\"none\"]]),e(\"object-scale-down\",[[\"object-fit\",\"scale-down\"]]),e(\"object-top\",[[\"object-position\",\"top\"]]),e(\"object-top-left\",[[\"object-position\",\"left top\"]]),e(\"object-top-right\",[[\"object-position\",\"right top\"]]),e(\"object-bottom\",[[\"object-position\",\"bottom\"]]),e(\"object-bottom-left\",[[\"object-position\",\"left bottom\"]]),e(\"object-bottom-right\",[[\"object-position\",\"right bottom\"]]),e(\"object-left\",[[\"object-position\",\"left\"]]),e(\"object-right\",[[\"object-position\",\"right\"]]),e(\"object-center\",[[\"object-position\",\"center\"]]),n(\"object\",{themeKeys:[\"--object-position\"],handle:o=>[l(\"object-position\",o)]});for(let[o,d]of[[\"p\",\"padding\"],[\"px\",\"padding-inline\"],[\"py\",\"padding-block\"],[\"ps\",\"padding-inline-start\"],[\"pe\",\"padding-inline-end\"],[\"pt\",\"padding-top\"],[\"pr\",\"padding-right\"],[\"pb\",\"padding-bottom\"],[\"pl\",\"padding-left\"]])a(o,[\"--padding\",\"--spacing\"],h=>[l(d,h)]);e(\"text-left\",[[\"text-align\",\"left\"]]),e(\"text-center\",[[\"text-align\",\"center\"]]),e(\"text-right\",[[\"text-align\",\"right\"]]),e(\"text-justify\",[[\"text-align\",\"justify\"]]),e(\"text-start\",[[\"text-align\",\"start\"]]),e(\"text-end\",[[\"text-align\",\"end\"]]),a(\"indent\",[\"--text-indent\",\"--spacing\"],o=>[l(\"text-indent\",o)],{supportsNegative:!0}),e(\"align-baseline\",[[\"vertical-align\",\"baseline\"]]),e(\"align-top\",[[\"vertical-align\",\"top\"]]),e(\"align-middle\",[[\"vertical-align\",\"middle\"]]),e(\"align-bottom\",[[\"vertical-align\",\"bottom\"]]),e(\"align-text-top\",[[\"vertical-align\",\"text-top\"]]),e(\"align-text-bottom\",[[\"vertical-align\",\"text-bottom\"]]),e(\"align-sub\",[[\"vertical-align\",\"sub\"]]),e(\"align-super\",[[\"vertical-align\",\"super\"]]),n(\"align\",{themeKeys:[],handle:o=>[l(\"vertical-align\",o)]}),t.functional(\"font\",o=>{if(!(!o.value||o.modifier)){if(o.value.kind===\"arbitrary\"){let d=o.value.value;switch(o.value.dataType??J(d,[\"number\",\"generic-name\",\"family-name\"])){case\"generic-name\":case\"family-name\":return[l(\"font-family\",d)];default:return[I([$(\"--tw-font-weight\")]),l(\"--tw-font-weight\",d),l(\"font-weight\",d)]}}{let d=r.resolveWith(o.value.value,[\"--font\"],[\"--font-feature-settings\",\"--font-variation-settings\"]);if(d){let[h,A={}]=d;return[l(\"font-family\",h),l(\"font-feature-settings\",A[\"--font-feature-settings\"]),l(\"font-variation-settings\",A[\"--font-variation-settings\"])]}}{let d=r.resolve(o.value.value,[\"--font-weight\"]);if(d)return[I([$(\"--tw-font-weight\")]),l(\"--tw-font-weight\",d),l(\"font-weight\",d)]}}}),i(\"font\",()=>[{values:[],valueThemeKeys:[\"--font\"]},{values:[],valueThemeKeys:[\"--font-weight\"]}]),e(\"uppercase\",[[\"text-transform\",\"uppercase\"]]),e(\"lowercase\",[[\"text-transform\",\"lowercase\"]]),e(\"capitalize\",[[\"text-transform\",\"capitalize\"]]),e(\"normal-case\",[[\"text-transform\",\"none\"]]),e(\"italic\",[[\"font-style\",\"italic\"]]),e(\"not-italic\",[[\"font-style\",\"normal\"]]),e(\"underline\",[[\"text-decoration-line\",\"underline\"]]),e(\"overline\",[[\"text-decoration-line\",\"overline\"]]),e(\"line-through\",[[\"text-decoration-line\",\"line-through\"]]),e(\"no-underline\",[[\"text-decoration-line\",\"none\"]]),e(\"font-stretch-normal\",[[\"font-stretch\",\"normal\"]]),e(\"font-stretch-ultra-condensed\",[[\"font-stretch\",\"ultra-condensed\"]]),e(\"font-stretch-extra-condensed\",[[\"font-stretch\",\"extra-condensed\"]]),e(\"font-stretch-condensed\",[[\"font-stretch\",\"condensed\"]]),e(\"font-stretch-semi-condensed\",[[\"font-stretch\",\"semi-condensed\"]]),e(\"font-stretch-semi-expanded\",[[\"font-stretch\",\"semi-expanded\"]]),e(\"font-stretch-expanded\",[[\"font-stretch\",\"expanded\"]]),e(\"font-stretch-extra-expanded\",[[\"font-stretch\",\"extra-expanded\"]]),e(\"font-stretch-ultra-expanded\",[[\"font-stretch\",\"ultra-expanded\"]]),n(\"font-stretch\",{handleBareValue:({value:o})=>{if(!o.endsWith(\"%\"))return null;let d=Number(o.slice(0,-1));return!E(d)||Number.isNaN(d)||d<50||d>200?null:o},handle:o=>[l(\"font-stretch\",o)]}),i(\"font-stretch\",()=>[{values:[\"50%\",\"75%\",\"90%\",\"95%\",\"100%\",\"105%\",\"110%\",\"125%\",\"150%\",\"200%\"]}]),s(\"placeholder\",{themeKeys:[\"--background-color\",\"--color\"],handle:o=>[M(\"&::placeholder\",[l(\"--tw-sort\",\"placeholder-color\"),l(\"color\",o)])]}),e(\"decoration-solid\",[[\"text-decoration-style\",\"solid\"]]),e(\"decoration-double\",[[\"text-decoration-style\",\"double\"]]),e(\"decoration-dotted\",[[\"text-decoration-style\",\"dotted\"]]),e(\"decoration-dashed\",[[\"text-decoration-style\",\"dashed\"]]),e(\"decoration-wavy\",[[\"text-decoration-style\",\"wavy\"]]),e(\"decoration-auto\",[[\"text-decoration-thickness\",\"auto\"]]),e(\"decoration-from-font\",[[\"text-decoration-thickness\",\"from-font\"]]),t.functional(\"decoration\",o=>{if(o.value){if(o.value.kind===\"arbitrary\"){let d=o.value.value;switch(o.value.dataType??J(d,[\"color\",\"length\",\"percentage\"])){case\"length\":case\"percentage\":return o.modifier?void 0:[l(\"text-decoration-thickness\",d)];default:return d=Q(d,o.modifier,r),d===null?void 0:[l(\"text-decoration-color\",d)]}}{let d=r.resolve(o.value.value,[\"--text-decoration-thickness\"]);if(d)return o.modifier?void 0:[l(\"text-decoration-thickness\",d)];if(E(o.value.value))return o.modifier?void 0:[l(\"text-decoration-thickness\",`${o.value.value}px`)]}{let d=te(o,r,[\"--text-decoration-color\",\"--color\"]);if(d)return[l(\"text-decoration-color\",d)]}}}),i(\"decoration\",()=>[{values:[\"current\",\"inherit\",\"transparent\"],valueThemeKeys:[\"--text-decoration-color\",\"--color\"],modifiers:Array.from({length:21},(o,d)=>`${d*5}`)},{values:[\"0\",\"1\",\"2\"],valueThemeKeys:[\"--text-decoration-thickness\"]}]),e(\"animate-none\",[[\"animation\",\"none\"]]),n(\"animate\",{themeKeys:[\"--animate\"],handle:o=>[l(\"animation\",o)]});{let o=[\"var(--tw-blur,)\",\"var(--tw-brightness,)\",\"var(--tw-contrast,)\",\"var(--tw-grayscale,)\",\"var(--tw-hue-rotate,)\",\"var(--tw-invert,)\",\"var(--tw-saturate,)\",\"var(--tw-sepia,)\",\"var(--tw-drop-shadow,)\"].join(\" \"),d=[\"var(--tw-backdrop-blur,)\",\"var(--tw-backdrop-brightness,)\",\"var(--tw-backdrop-contrast,)\",\"var(--tw-backdrop-grayscale,)\",\"var(--tw-backdrop-hue-rotate,)\",\"var(--tw-backdrop-invert,)\",\"var(--tw-backdrop-opacity,)\",\"var(--tw-backdrop-saturate,)\",\"var(--tw-backdrop-sepia,)\"].join(\" \"),h=()=>I([$(\"--tw-blur\"),$(\"--tw-brightness\"),$(\"--tw-contrast\"),$(\"--tw-grayscale\"),$(\"--tw-hue-rotate\"),$(\"--tw-invert\"),$(\"--tw-opacity\"),$(\"--tw-saturate\"),$(\"--tw-sepia\"),$(\"--tw-drop-shadow\"),$(\"--tw-drop-shadow-color\"),$(\"--tw-drop-shadow-alpha\",\"100%\",\"<percentage>\"),$(\"--tw-drop-shadow-size\")]),A=()=>I([$(\"--tw-backdrop-blur\"),$(\"--tw-backdrop-brightness\"),$(\"--tw-backdrop-contrast\"),$(\"--tw-backdrop-grayscale\"),$(\"--tw-backdrop-hue-rotate\"),$(\"--tw-backdrop-invert\"),$(\"--tw-backdrop-opacity\"),$(\"--tw-backdrop-saturate\"),$(\"--tw-backdrop-sepia\")]);t.functional(\"filter\",y=>{if(!y.modifier){if(y.value===null)return[h(),l(\"filter\",o)];if(y.value.kind===\"arbitrary\")return[l(\"filter\",y.value.value)];switch(y.value.value){case\"none\":return[l(\"filter\",\"none\")]}}}),t.functional(\"backdrop-filter\",y=>{if(!y.modifier){if(y.value===null)return[A(),l(\"-webkit-backdrop-filter\",d),l(\"backdrop-filter\",d)];if(y.value.kind===\"arbitrary\")return[l(\"-webkit-backdrop-filter\",y.value.value),l(\"backdrop-filter\",y.value.value)];switch(y.value.value){case\"none\":return[l(\"-webkit-backdrop-filter\",\"none\"),l(\"backdrop-filter\",\"none\")]}}}),n(\"blur\",{themeKeys:[\"--blur\"],handle:y=>[h(),l(\"--tw-blur\",`blur(${y})`),l(\"filter\",o)]}),e(\"blur-none\",[h,[\"--tw-blur\",\" \"],[\"filter\",o]]),n(\"backdrop-blur\",{themeKeys:[\"--backdrop-blur\",\"--blur\"],handle:y=>[A(),l(\"--tw-backdrop-blur\",`blur(${y})`),l(\"-webkit-backdrop-filter\",d),l(\"backdrop-filter\",d)]}),e(\"backdrop-blur-none\",[A,[\"--tw-backdrop-blur\",\" \"],[\"-webkit-backdrop-filter\",d],[\"backdrop-filter\",d]]),n(\"brightness\",{themeKeys:[\"--brightness\"],handleBareValue:({value:y})=>E(y)?`${y}%`:null,handle:y=>[h(),l(\"--tw-brightness\",`brightness(${y})`),l(\"filter\",o)]}),n(\"backdrop-brightness\",{themeKeys:[\"--backdrop-brightness\",\"--brightness\"],handleBareValue:({value:y})=>E(y)?`${y}%`:null,handle:y=>[A(),l(\"--tw-backdrop-brightness\",`brightness(${y})`),l(\"-webkit-backdrop-filter\",d),l(\"backdrop-filter\",d)]}),i(\"brightness\",()=>[{values:[\"0\",\"50\",\"75\",\"90\",\"95\",\"100\",\"105\",\"110\",\"125\",\"150\",\"200\"],valueThemeKeys:[\"--brightness\"]}]),i(\"backdrop-brightness\",()=>[{values:[\"0\",\"50\",\"75\",\"90\",\"95\",\"100\",\"105\",\"110\",\"125\",\"150\",\"200\"],valueThemeKeys:[\"--backdrop-brightness\",\"--brightness\"]}]),n(\"contrast\",{themeKeys:[\"--contrast\"],handleBareValue:({value:y})=>E(y)?`${y}%`:null,handle:y=>[h(),l(\"--tw-contrast\",`contrast(${y})`),l(\"filter\",o)]}),n(\"backdrop-contrast\",{themeKeys:[\"--backdrop-contrast\",\"--contrast\"],handleBareValue:({value:y})=>E(y)?`${y}%`:null,handle:y=>[A(),l(\"--tw-backdrop-contrast\",`contrast(${y})`),l(\"-webkit-backdrop-filter\",d),l(\"backdrop-filter\",d)]}),i(\"contrast\",()=>[{values:[\"0\",\"50\",\"75\",\"100\",\"125\",\"150\",\"200\"],valueThemeKeys:[\"--contrast\"]}]),i(\"backdrop-contrast\",()=>[{values:[\"0\",\"50\",\"75\",\"100\",\"125\",\"150\",\"200\"],valueThemeKeys:[\"--backdrop-contrast\",\"--contrast\"]}]),n(\"grayscale\",{themeKeys:[\"--grayscale\"],handleBareValue:({value:y})=>E(y)?`${y}%`:null,defaultValue:\"100%\",handle:y=>[h(),l(\"--tw-grayscale\",`grayscale(${y})`),l(\"filter\",o)]}),n(\"backdrop-grayscale\",{themeKeys:[\"--backdrop-grayscale\",\"--grayscale\"],handleBareValue:({value:y})=>E(y)?`${y}%`:null,defaultValue:\"100%\",handle:y=>[A(),l(\"--tw-backdrop-grayscale\",`grayscale(${y})`),l(\"-webkit-backdrop-filter\",d),l(\"backdrop-filter\",d)]}),i(\"grayscale\",()=>[{values:[\"0\",\"25\",\"50\",\"75\",\"100\"],valueThemeKeys:[\"--grayscale\"],hasDefaultValue:!0}]),i(\"backdrop-grayscale\",()=>[{values:[\"0\",\"25\",\"50\",\"75\",\"100\"],valueThemeKeys:[\"--backdrop-grayscale\",\"--grayscale\"],hasDefaultValue:!0}]),n(\"hue-rotate\",{supportsNegative:!0,themeKeys:[\"--hue-rotate\"],handleBareValue:({value:y})=>E(y)?`${y}deg`:null,handle:y=>[h(),l(\"--tw-hue-rotate\",`hue-rotate(${y})`),l(\"filter\",o)]}),n(\"backdrop-hue-rotate\",{supportsNegative:!0,themeKeys:[\"--backdrop-hue-rotate\",\"--hue-rotate\"],handleBareValue:({value:y})=>E(y)?`${y}deg`:null,handle:y=>[A(),l(\"--tw-backdrop-hue-rotate\",`hue-rotate(${y})`),l(\"-webkit-backdrop-filter\",d),l(\"backdrop-filter\",d)]}),i(\"hue-rotate\",()=>[{values:[\"0\",\"15\",\"30\",\"60\",\"90\",\"180\"],valueThemeKeys:[\"--hue-rotate\"]}]),i(\"backdrop-hue-rotate\",()=>[{values:[\"0\",\"15\",\"30\",\"60\",\"90\",\"180\"],valueThemeKeys:[\"--backdrop-hue-rotate\",\"--hue-rotate\"]}]),n(\"invert\",{themeKeys:[\"--invert\"],handleBareValue:({value:y})=>E(y)?`${y}%`:null,defaultValue:\"100%\",handle:y=>[h(),l(\"--tw-invert\",`invert(${y})`),l(\"filter\",o)]}),n(\"backdrop-invert\",{themeKeys:[\"--backdrop-invert\",\"--invert\"],handleBareValue:({value:y})=>E(y)?`${y}%`:null,defaultValue:\"100%\",handle:y=>[A(),l(\"--tw-backdrop-invert\",`invert(${y})`),l(\"-webkit-backdrop-filter\",d),l(\"backdrop-filter\",d)]}),i(\"invert\",()=>[{values:[\"0\",\"25\",\"50\",\"75\",\"100\"],valueThemeKeys:[\"--invert\"],hasDefaultValue:!0}]),i(\"backdrop-invert\",()=>[{values:[\"0\",\"25\",\"50\",\"75\",\"100\"],valueThemeKeys:[\"--backdrop-invert\",\"--invert\"],hasDefaultValue:!0}]),n(\"saturate\",{themeKeys:[\"--saturate\"],handleBareValue:({value:y})=>E(y)?`${y}%`:null,handle:y=>[h(),l(\"--tw-saturate\",`saturate(${y})`),l(\"filter\",o)]}),n(\"backdrop-saturate\",{themeKeys:[\"--backdrop-saturate\",\"--saturate\"],handleBareValue:({value:y})=>E(y)?`${y}%`:null,handle:y=>[A(),l(\"--tw-backdrop-saturate\",`saturate(${y})`),l(\"-webkit-backdrop-filter\",d),l(\"backdrop-filter\",d)]}),i(\"saturate\",()=>[{values:[\"0\",\"50\",\"100\",\"150\",\"200\"],valueThemeKeys:[\"--saturate\"]}]),i(\"backdrop-saturate\",()=>[{values:[\"0\",\"50\",\"100\",\"150\",\"200\"],valueThemeKeys:[\"--backdrop-saturate\",\"--saturate\"]}]),n(\"sepia\",{themeKeys:[\"--sepia\"],handleBareValue:({value:y})=>E(y)?`${y}%`:null,defaultValue:\"100%\",handle:y=>[h(),l(\"--tw-sepia\",`sepia(${y})`),l(\"filter\",o)]}),n(\"backdrop-sepia\",{themeKeys:[\"--backdrop-sepia\",\"--sepia\"],handleBareValue:({value:y})=>E(y)?`${y}%`:null,defaultValue:\"100%\",handle:y=>[A(),l(\"--tw-backdrop-sepia\",`sepia(${y})`),l(\"-webkit-backdrop-filter\",d),l(\"backdrop-filter\",d)]}),i(\"sepia\",()=>[{values:[\"0\",\"50\",\"100\"],valueThemeKeys:[\"--sepia\"],hasDefaultValue:!0}]),i(\"backdrop-sepia\",()=>[{values:[\"0\",\"50\",\"100\"],valueThemeKeys:[\"--backdrop-sepia\",\"--sepia\"],hasDefaultValue:!0}]),e(\"drop-shadow-none\",[h,[\"--tw-drop-shadow\",\" \"],[\"filter\",o]]),t.functional(\"drop-shadow\",y=>{let C;if(y.modifier&&(y.modifier.kind===\"arbitrary\"?C=y.modifier.value:E(y.modifier.value)&&(C=`${y.modifier.value}%`)),!y.value){let R=r.get([\"--drop-shadow\"]),V=r.resolve(null,[\"--drop-shadow\"]);return R===null||V===null?void 0:[h(),l(\"--tw-drop-shadow-alpha\",C),...Ye(\"--tw-drop-shadow-size\",R,C,T=>`var(--tw-drop-shadow-color, ${T})`),l(\"--tw-drop-shadow\",U(V,\",\").map(T=>`drop-shadow(${T})`).join(\" \")),l(\"filter\",o)]}if(y.value.kind===\"arbitrary\"){let R=y.value.value;switch(y.value.dataType??J(R,[\"color\"])){case\"color\":return R=Q(R,y.modifier,r),R===null?void 0:[h(),l(\"--tw-drop-shadow-color\",Z(R,\"var(--tw-drop-shadow-alpha)\")),l(\"--tw-drop-shadow\",\"var(--tw-drop-shadow-size)\")];default:return y.modifier&&!C?void 0:[h(),l(\"--tw-drop-shadow-alpha\",C),...Ye(\"--tw-drop-shadow-size\",R,C,T=>`var(--tw-drop-shadow-color, ${T})`),l(\"--tw-drop-shadow\",\"var(--tw-drop-shadow-size)\"),l(\"filter\",o)]}}{let R=r.get([`--drop-shadow-${y.value.value}`]),V=r.resolve(y.value.value,[\"--drop-shadow\"]);if(R&&V)return y.modifier&&!C?void 0:C?[h(),l(\"--tw-drop-shadow-alpha\",C),...Ye(\"--tw-drop-shadow-size\",R,C,T=>`var(--tw-drop-shadow-color, ${T})`),l(\"--tw-drop-shadow\",\"var(--tw-drop-shadow-size)\"),l(\"filter\",o)]:[h(),l(\"--tw-drop-shadow-alpha\",C),...Ye(\"--tw-drop-shadow-size\",R,C,T=>`var(--tw-drop-shadow-color, ${T})`),l(\"--tw-drop-shadow\",U(V,\",\").map(T=>`drop-shadow(${T})`).join(\" \")),l(\"filter\",o)]}{let R=te(y,r,[\"--drop-shadow-color\",\"--color\"]);if(R)return R===\"inherit\"?[h(),l(\"--tw-drop-shadow-color\",\"inherit\"),l(\"--tw-drop-shadow\",\"var(--tw-drop-shadow-size)\")]:[h(),l(\"--tw-drop-shadow-color\",Z(R,\"var(--tw-drop-shadow-alpha)\")),l(\"--tw-drop-shadow\",\"var(--tw-drop-shadow-size)\")]}}),i(\"drop-shadow\",()=>[{values:[\"current\",\"inherit\",\"transparent\"],valueThemeKeys:[\"--drop-shadow-color\",\"--color\"],modifiers:Array.from({length:21},(y,C)=>`${C*5}`)},{valueThemeKeys:[\"--drop-shadow\"]}]),n(\"backdrop-opacity\",{themeKeys:[\"--backdrop-opacity\",\"--opacity\"],handleBareValue:({value:y})=>Ue(y)?`${y}%`:null,handle:y=>[A(),l(\"--tw-backdrop-opacity\",`opacity(${y})`),l(\"-webkit-backdrop-filter\",d),l(\"backdrop-filter\",d)]}),i(\"backdrop-opacity\",()=>[{values:Array.from({length:21},(y,C)=>`${C*5}`),valueThemeKeys:[\"--backdrop-opacity\",\"--opacity\"]}])}{let o=`var(--tw-ease, ${r.resolve(null,[\"--default-transition-timing-function\"])??\"ease\"})`,d=`var(--tw-duration, ${r.resolve(null,[\"--default-transition-duration\"])??\"0s\"})`;e(\"transition-none\",[[\"transition-property\",\"none\"]]),e(\"transition-all\",[[\"transition-property\",\"all\"],[\"transition-timing-function\",o],[\"transition-duration\",d]]),e(\"transition-colors\",[[\"transition-property\",\"color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to\"],[\"transition-timing-function\",o],[\"transition-duration\",d]]),e(\"transition-opacity\",[[\"transition-property\",\"opacity\"],[\"transition-timing-function\",o],[\"transition-duration\",d]]),e(\"transition-shadow\",[[\"transition-property\",\"box-shadow\"],[\"transition-timing-function\",o],[\"transition-duration\",d]]),e(\"transition-transform\",[[\"transition-property\",\"transform, translate, scale, rotate\"],[\"transition-timing-function\",o],[\"transition-duration\",d]]),n(\"transition\",{defaultValue:\"color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, visibility, content-visibility, overlay, pointer-events\",themeKeys:[\"--transition-property\"],handle:h=>[l(\"transition-property\",h),l(\"transition-timing-function\",o),l(\"transition-duration\",d)]}),e(\"transition-discrete\",[[\"transition-behavior\",\"allow-discrete\"]]),e(\"transition-normal\",[[\"transition-behavior\",\"normal\"]]),n(\"delay\",{handleBareValue:({value:h})=>E(h)?`${h}ms`:null,themeKeys:[\"--transition-delay\"],handle:h=>[l(\"transition-delay\",h)]});{let h=()=>I([$(\"--tw-duration\")]);e(\"duration-initial\",[h,[\"--tw-duration\",\"initial\"]]),t.functional(\"duration\",A=>{if(A.modifier||!A.value)return;let y=null;if(A.value.kind===\"arbitrary\"?y=A.value.value:(y=r.resolve(A.value.fraction??A.value.value,[\"--transition-duration\"]),y===null&&E(A.value.value)&&(y=`${A.value.value}ms`)),y!==null)return[h(),l(\"--tw-duration\",y),l(\"transition-duration\",y)]})}i(\"delay\",()=>[{values:[\"75\",\"100\",\"150\",\"200\",\"300\",\"500\",\"700\",\"1000\"],valueThemeKeys:[\"--transition-delay\"]}]),i(\"duration\",()=>[{values:[\"75\",\"100\",\"150\",\"200\",\"300\",\"500\",\"700\",\"1000\"],valueThemeKeys:[\"--transition-duration\"]}])}{let o=()=>I([$(\"--tw-ease\")]);e(\"ease-initial\",[o,[\"--tw-ease\",\"initial\"]]),e(\"ease-linear\",[o,[\"--tw-ease\",\"linear\"],[\"transition-timing-function\",\"linear\"]]),n(\"ease\",{themeKeys:[\"--ease\"],handle:d=>[o(),l(\"--tw-ease\",d),l(\"transition-timing-function\",d)]})}e(\"will-change-auto\",[[\"will-change\",\"auto\"]]),e(\"will-change-scroll\",[[\"will-change\",\"scroll-position\"]]),e(\"will-change-contents\",[[\"will-change\",\"contents\"]]),e(\"will-change-transform\",[[\"will-change\",\"transform\"]]),n(\"will-change\",{themeKeys:[],handle:o=>[l(\"will-change\",o)]}),e(\"content-none\",[[\"--tw-content\",\"none\"],[\"content\",\"none\"]]),n(\"content\",{themeKeys:[],handle:o=>[I([$(\"--tw-content\",'\"\"')]),l(\"--tw-content\",o),l(\"content\",\"var(--tw-content)\")]});{let o=\"var(--tw-contain-size,) var(--tw-contain-layout,) var(--tw-contain-paint,) var(--tw-contain-style,)\",d=()=>I([$(\"--tw-contain-size\"),$(\"--tw-contain-layout\"),$(\"--tw-contain-paint\"),$(\"--tw-contain-style\")]);e(\"contain-none\",[[\"contain\",\"none\"]]),e(\"contain-content\",[[\"contain\",\"content\"]]),e(\"contain-strict\",[[\"contain\",\"strict\"]]),e(\"contain-size\",[d,[\"--tw-contain-size\",\"size\"],[\"contain\",o]]),e(\"contain-inline-size\",[d,[\"--tw-contain-size\",\"inline-size\"],[\"contain\",o]]),e(\"contain-layout\",[d,[\"--tw-contain-layout\",\"layout\"],[\"contain\",o]]),e(\"contain-paint\",[d,[\"--tw-contain-paint\",\"paint\"],[\"contain\",o]]),e(\"contain-style\",[d,[\"--tw-contain-style\",\"style\"],[\"contain\",o]]),n(\"contain\",{themeKeys:[],handle:h=>[l(\"contain\",h)]})}e(\"forced-color-adjust-none\",[[\"forced-color-adjust\",\"none\"]]),e(\"forced-color-adjust-auto\",[[\"forced-color-adjust\",\"auto\"]]),e(\"leading-none\",[()=>I([$(\"--tw-leading\")]),[\"--tw-leading\",\"1\"],[\"line-height\",\"1\"]]),a(\"leading\",[\"--leading\",\"--spacing\"],o=>[I([$(\"--tw-leading\")]),l(\"--tw-leading\",o),l(\"line-height\",o)]),n(\"tracking\",{supportsNegative:!0,themeKeys:[\"--tracking\"],handle:o=>[I([$(\"--tw-tracking\")]),l(\"--tw-tracking\",o),l(\"letter-spacing\",o)]}),e(\"antialiased\",[[\"-webkit-font-smoothing\",\"antialiased\"],[\"-moz-osx-font-smoothing\",\"grayscale\"]]),e(\"subpixel-antialiased\",[[\"-webkit-font-smoothing\",\"auto\"],[\"-moz-osx-font-smoothing\",\"auto\"]]);{let o=\"var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)\",d=()=>I([$(\"--tw-ordinal\"),$(\"--tw-slashed-zero\"),$(\"--tw-numeric-figure\"),$(\"--tw-numeric-spacing\"),$(\"--tw-numeric-fraction\")]);e(\"normal-nums\",[[\"font-variant-numeric\",\"normal\"]]),e(\"ordinal\",[d,[\"--tw-ordinal\",\"ordinal\"],[\"font-variant-numeric\",o]]),e(\"slashed-zero\",[d,[\"--tw-slashed-zero\",\"slashed-zero\"],[\"font-variant-numeric\",o]]),e(\"lining-nums\",[d,[\"--tw-numeric-figure\",\"lining-nums\"],[\"font-variant-numeric\",o]]),e(\"oldstyle-nums\",[d,[\"--tw-numeric-figure\",\"oldstyle-nums\"],[\"font-variant-numeric\",o]]),e(\"proportional-nums\",[d,[\"--tw-numeric-spacing\",\"proportional-nums\"],[\"font-variant-numeric\",o]]),e(\"tabular-nums\",[d,[\"--tw-numeric-spacing\",\"tabular-nums\"],[\"font-variant-numeric\",o]]),e(\"diagonal-fractions\",[d,[\"--tw-numeric-fraction\",\"diagonal-fractions\"],[\"font-variant-numeric\",o]]),e(\"stacked-fractions\",[d,[\"--tw-numeric-fraction\",\"stacked-fractions\"],[\"font-variant-numeric\",o]])}{let o=()=>I([$(\"--tw-outline-style\",\"solid\")]);t.static(\"outline-hidden\",()=>[l(\"--tw-outline-style\",\"none\"),l(\"outline-style\",\"none\"),z(\"@media\",\"(forced-colors: active)\",[l(\"outline\",\"2px solid transparent\"),l(\"outline-offset\",\"2px\")])]),e(\"outline-none\",[[\"--tw-outline-style\",\"none\"],[\"outline-style\",\"none\"]]),e(\"outline-solid\",[[\"--tw-outline-style\",\"solid\"],[\"outline-style\",\"solid\"]]),e(\"outline-dashed\",[[\"--tw-outline-style\",\"dashed\"],[\"outline-style\",\"dashed\"]]),e(\"outline-dotted\",[[\"--tw-outline-style\",\"dotted\"],[\"outline-style\",\"dotted\"]]),e(\"outline-double\",[[\"--tw-outline-style\",\"double\"],[\"outline-style\",\"double\"]]),t.functional(\"outline\",d=>{if(d.value===null){if(d.modifier)return;let h=r.get([\"--default-outline-width\"])??\"1px\";return[o(),l(\"outline-style\",\"var(--tw-outline-style)\"),l(\"outline-width\",h)]}if(d.value.kind===\"arbitrary\"){let h=d.value.value;switch(d.value.dataType??J(h,[\"color\",\"length\",\"number\",\"percentage\"])){case\"length\":case\"number\":case\"percentage\":return d.modifier?void 0:[o(),l(\"outline-style\",\"var(--tw-outline-style)\"),l(\"outline-width\",h)];default:return h=Q(h,d.modifier,r),h===null?void 0:[l(\"outline-color\",h)]}}{let h=te(d,r,[\"--outline-color\",\"--color\"]);if(h)return[l(\"outline-color\",h)]}{if(d.modifier)return;let h=r.resolve(d.value.value,[\"--outline-width\"]);if(h)return[o(),l(\"outline-style\",\"var(--tw-outline-style)\"),l(\"outline-width\",h)];if(E(d.value.value))return[o(),l(\"outline-style\",\"var(--tw-outline-style)\"),l(\"outline-width\",`${d.value.value}px`)]}}),i(\"outline\",()=>[{values:[\"current\",\"inherit\",\"transparent\"],valueThemeKeys:[\"--outline-color\",\"--color\"],modifiers:Array.from({length:21},(d,h)=>`${h*5}`),hasDefaultValue:!0},{values:[\"0\",\"1\",\"2\",\"4\",\"8\"],valueThemeKeys:[\"--outline-width\"]}]),n(\"outline-offset\",{supportsNegative:!0,themeKeys:[\"--outline-offset\"],handleBareValue:({value:d})=>E(d)?`${d}px`:null,handle:d=>[l(\"outline-offset\",d)]}),i(\"outline-offset\",()=>[{supportsNegative:!0,values:[\"0\",\"1\",\"2\",\"4\",\"8\"],valueThemeKeys:[\"--outline-offset\"]}])}n(\"opacity\",{themeKeys:[\"--opacity\"],handleBareValue:({value:o})=>Ue(o)?`${o}%`:null,handle:o=>[l(\"opacity\",o)]}),i(\"opacity\",()=>[{values:Array.from({length:21},(o,d)=>`${d*5}`),valueThemeKeys:[\"--opacity\"]}]),e(\"underline-offset-auto\",[[\"text-underline-offset\",\"auto\"]]),n(\"underline-offset\",{supportsNegative:!0,themeKeys:[\"--text-underline-offset\"],handleBareValue:({value:o})=>E(o)?`${o}px`:null,handle:o=>[l(\"text-underline-offset\",o)]}),i(\"underline-offset\",()=>[{supportsNegative:!0,values:[\"0\",\"1\",\"2\",\"4\",\"8\"],valueThemeKeys:[\"--text-underline-offset\"]}]),t.functional(\"text\",o=>{if(o.value){if(o.value.kind===\"arbitrary\"){let d=o.value.value;switch(o.value.dataType??J(d,[\"color\",\"length\",\"percentage\",\"absolute-size\",\"relative-size\"])){case\"size\":case\"length\":case\"percentage\":case\"absolute-size\":case\"relative-size\":{if(o.modifier){let A=o.modifier.kind===\"arbitrary\"?o.modifier.value:r.resolve(o.modifier.value,[\"--leading\"]);if(!A&&pe(o.modifier.value)){let y=r.resolve(null,[\"--spacing\"]);if(!y)return null;A=`calc(${y} * ${o.modifier.value})`}return!A&&o.modifier.value===\"none\"&&(A=\"1\"),A?[l(\"font-size\",d),l(\"line-height\",A)]:null}return[l(\"font-size\",d)]}default:return d=Q(d,o.modifier,r),d===null?void 0:[l(\"color\",d)]}}{let d=te(o,r,[\"--text-color\",\"--color\"]);if(d)return[l(\"color\",d)]}{let d=r.resolveWith(o.value.value,[\"--text\"],[\"--line-height\",\"--letter-spacing\",\"--font-weight\"]);if(d){let[h,A={}]=Array.isArray(d)?d:[d];if(o.modifier){let y=o.modifier.kind===\"arbitrary\"?o.modifier.value:r.resolve(o.modifier.value,[\"--leading\"]);if(!y&&pe(o.modifier.value)){let R=r.resolve(null,[\"--spacing\"]);if(!R)return null;y=`calc(${R} * ${o.modifier.value})`}if(!y&&o.modifier.value===\"none\"&&(y=\"1\"),!y)return null;let C=[l(\"font-size\",h)];return y&&C.push(l(\"line-height\",y)),C}return typeof A==\"string\"?[l(\"font-size\",h),l(\"line-height\",A)]:[l(\"font-size\",h),l(\"line-height\",A[\"--line-height\"]?`var(--tw-leading, ${A[\"--line-height\"]})`:void 0),l(\"letter-spacing\",A[\"--letter-spacing\"]?`var(--tw-tracking, ${A[\"--letter-spacing\"]})`:void 0),l(\"font-weight\",A[\"--font-weight\"]?`var(--tw-font-weight, ${A[\"--font-weight\"]})`:void 0)]}}}}),i(\"text\",()=>[{values:[\"current\",\"inherit\",\"transparent\"],valueThemeKeys:[\"--text-color\",\"--color\"],modifiers:Array.from({length:21},(o,d)=>`${d*5}`)},{values:[],valueThemeKeys:[\"--text\"],modifiers:[],modifierThemeKeys:[\"--leading\"]}]);let F=()=>I([$(\"--tw-text-shadow-color\"),$(\"--tw-text-shadow-alpha\",\"100%\",\"<percentage>\")]);e(\"text-shadow-initial\",[F,[\"--tw-text-shadow-color\",\"initial\"]]),t.functional(\"text-shadow\",o=>{let d;if(o.modifier&&(o.modifier.kind===\"arbitrary\"?d=o.modifier.value:E(o.modifier.value)&&(d=`${o.modifier.value}%`)),!o.value){let h=r.get([\"--text-shadow\"]);return h===null?void 0:[F(),l(\"--tw-text-shadow-alpha\",d),...ue(\"text-shadow\",h,d,A=>`var(--tw-text-shadow-color, ${A})`)]}if(o.value.kind===\"arbitrary\"){let h=o.value.value;switch(o.value.dataType??J(h,[\"color\"])){case\"color\":return h=Q(h,o.modifier,r),h===null?void 0:[F(),l(\"--tw-text-shadow-color\",Z(h,\"var(--tw-text-shadow-alpha)\"))];default:return[F(),l(\"--tw-text-shadow-alpha\",d),...ue(\"text-shadow\",h,d,y=>`var(--tw-text-shadow-color, ${y})`)]}}switch(o.value.value){case\"none\":return o.modifier?void 0:[F(),l(\"text-shadow\",\"none\")];case\"inherit\":return o.modifier?void 0:[F(),l(\"--tw-text-shadow-color\",\"inherit\")]}{let h=r.get([`--text-shadow-${o.value.value}`]);if(h)return[F(),l(\"--tw-text-shadow-alpha\",d),...ue(\"text-shadow\",h,d,A=>`var(--tw-text-shadow-color, ${A})`)]}{let h=te(o,r,[\"--text-shadow-color\",\"--color\"]);if(h)return[F(),l(\"--tw-text-shadow-color\",Z(h,\"var(--tw-text-shadow-alpha)\"))]}}),i(\"text-shadow\",()=>[{values:[\"current\",\"inherit\",\"transparent\"],valueThemeKeys:[\"--text-shadow-color\",\"--color\"],modifiers:Array.from({length:21},(o,d)=>`${d*5}`)},{values:[\"none\"]},{valueThemeKeys:[\"--text-shadow\"],modifiers:Array.from({length:21},(o,d)=>`${d*5}`),hasDefaultValue:r.get([\"--text-shadow\"])!==null}]);{let y=function(V){return`var(--tw-ring-inset,) 0 0 0 calc(${V} + var(--tw-ring-offset-width)) var(--tw-ring-color, ${A})`},C=function(V){return`inset 0 0 0 ${V} var(--tw-inset-ring-color, currentcolor)`};var X=y,re=C;let o=[\"var(--tw-inset-shadow)\",\"var(--tw-inset-ring-shadow)\",\"var(--tw-ring-offset-shadow)\",\"var(--tw-ring-shadow)\",\"var(--tw-shadow)\"].join(\", \"),d=\"0 0 #0000\",h=()=>I([$(\"--tw-shadow\",d),$(\"--tw-shadow-color\"),$(\"--tw-shadow-alpha\",\"100%\",\"<percentage>\"),$(\"--tw-inset-shadow\",d),$(\"--tw-inset-shadow-color\"),$(\"--tw-inset-shadow-alpha\",\"100%\",\"<percentage>\"),$(\"--tw-ring-color\"),$(\"--tw-ring-shadow\",d),$(\"--tw-inset-ring-color\"),$(\"--tw-inset-ring-shadow\",d),$(\"--tw-ring-inset\"),$(\"--tw-ring-offset-width\",\"0px\",\"<length>\"),$(\"--tw-ring-offset-color\",\"#fff\"),$(\"--tw-ring-offset-shadow\",d)]);e(\"shadow-initial\",[h,[\"--tw-shadow-color\",\"initial\"]]),t.functional(\"shadow\",V=>{let T;if(V.modifier&&(V.modifier.kind===\"arbitrary\"?T=V.modifier.value:E(V.modifier.value)&&(T=`${V.modifier.value}%`)),!V.value){let _=r.get([\"--shadow\"]);return _===null?void 0:[h(),l(\"--tw-shadow-alpha\",T),...ue(\"--tw-shadow\",_,T,oe=>`var(--tw-shadow-color, ${oe})`),l(\"box-shadow\",o)]}if(V.value.kind===\"arbitrary\"){let _=V.value.value;switch(V.value.dataType??J(_,[\"color\"])){case\"color\":return _=Q(_,V.modifier,r),_===null?void 0:[h(),l(\"--tw-shadow-color\",Z(_,\"var(--tw-shadow-alpha)\"))];default:return[h(),l(\"--tw-shadow-alpha\",T),...ue(\"--tw-shadow\",_,T,ot=>`var(--tw-shadow-color, ${ot})`),l(\"box-shadow\",o)]}}switch(V.value.value){case\"none\":return V.modifier?void 0:[h(),l(\"--tw-shadow\",d),l(\"box-shadow\",o)];case\"inherit\":return V.modifier?void 0:[h(),l(\"--tw-shadow-color\",\"inherit\")]}{let _=r.get([`--shadow-${V.value.value}`]);if(_)return[h(),l(\"--tw-shadow-alpha\",T),...ue(\"--tw-shadow\",_,T,oe=>`var(--tw-shadow-color, ${oe})`),l(\"box-shadow\",o)]}{let _=te(V,r,[\"--box-shadow-color\",\"--color\"]);if(_)return[h(),l(\"--tw-shadow-color\",Z(_,\"var(--tw-shadow-alpha)\"))]}}),i(\"shadow\",()=>[{values:[\"current\",\"inherit\",\"transparent\"],valueThemeKeys:[\"--box-shadow-color\",\"--color\"],modifiers:Array.from({length:21},(V,T)=>`${T*5}`)},{values:[\"none\"]},{valueThemeKeys:[\"--shadow\"],modifiers:Array.from({length:21},(V,T)=>`${T*5}`),hasDefaultValue:r.get([\"--shadow\"])!==null}]),e(\"inset-shadow-initial\",[h,[\"--tw-inset-shadow-color\",\"initial\"]]),t.functional(\"inset-shadow\",V=>{let T;if(V.modifier&&(V.modifier.kind===\"arbitrary\"?T=V.modifier.value:E(V.modifier.value)&&(T=`${V.modifier.value}%`)),!V.value){let _=r.get([\"--inset-shadow\"]);return _===null?void 0:[h(),l(\"--tw-inset-shadow-alpha\",T),...ue(\"--tw-inset-shadow\",_,T,oe=>`var(--tw-inset-shadow-color, ${oe})`),l(\"box-shadow\",o)]}if(V.value.kind===\"arbitrary\"){let _=V.value.value;switch(V.value.dataType??J(_,[\"color\"])){case\"color\":return _=Q(_,V.modifier,r),_===null?void 0:[h(),l(\"--tw-inset-shadow-color\",Z(_,\"var(--tw-inset-shadow-alpha)\"))];default:return[h(),l(\"--tw-inset-shadow-alpha\",T),...ue(\"--tw-inset-shadow\",_,T,ot=>`var(--tw-inset-shadow-color, ${ot})`,\"inset \"),l(\"box-shadow\",o)]}}switch(V.value.value){case\"none\":return V.modifier?void 0:[h(),l(\"--tw-inset-shadow\",d),l(\"box-shadow\",o)];case\"inherit\":return V.modifier?void 0:[h(),l(\"--tw-inset-shadow-color\",\"inherit\")]}{let _=r.get([`--inset-shadow-${V.value.value}`]);if(_)return[h(),l(\"--tw-inset-shadow-alpha\",T),...ue(\"--tw-inset-shadow\",_,T,oe=>`var(--tw-inset-shadow-color, ${oe})`),l(\"box-shadow\",o)]}{let _=te(V,r,[\"--box-shadow-color\",\"--color\"]);if(_)return[h(),l(\"--tw-inset-shadow-color\",Z(_,\"var(--tw-inset-shadow-alpha)\"))]}}),i(\"inset-shadow\",()=>[{values:[\"current\",\"inherit\",\"transparent\"],valueThemeKeys:[\"--box-shadow-color\",\"--color\"],modifiers:Array.from({length:21},(V,T)=>`${T*5}`)},{values:[\"none\"]},{valueThemeKeys:[\"--inset-shadow\"],modifiers:Array.from({length:21},(V,T)=>`${T*5}`),hasDefaultValue:r.get([\"--inset-shadow\"])!==null}]),e(\"ring-inset\",[h,[\"--tw-ring-inset\",\"inset\"]]);let A=r.get([\"--default-ring-color\"])??\"currentcolor\";t.functional(\"ring\",V=>{if(!V.value){if(V.modifier)return;let T=r.get([\"--default-ring-width\"])??\"1px\";return[h(),l(\"--tw-ring-shadow\",y(T)),l(\"box-shadow\",o)]}if(V.value.kind===\"arbitrary\"){let T=V.value.value;switch(V.value.dataType??J(T,[\"color\",\"length\"])){case\"length\":return V.modifier?void 0:[h(),l(\"--tw-ring-shadow\",y(T)),l(\"box-shadow\",o)];default:return T=Q(T,V.modifier,r),T===null?void 0:[l(\"--tw-ring-color\",T)]}}{let T=te(V,r,[\"--ring-color\",\"--color\"]);if(T)return[l(\"--tw-ring-color\",T)]}{if(V.modifier)return;let T=r.resolve(V.value.value,[\"--ring-width\"]);if(T===null&&E(V.value.value)&&(T=`${V.value.value}px`),T)return[h(),l(\"--tw-ring-shadow\",y(T)),l(\"box-shadow\",o)]}}),i(\"ring\",()=>[{values:[\"current\",\"inherit\",\"transparent\"],valueThemeKeys:[\"--ring-color\",\"--color\"],modifiers:Array.from({length:21},(V,T)=>`${T*5}`)},{values:[\"0\",\"1\",\"2\",\"4\",\"8\"],valueThemeKeys:[\"--ring-width\"],hasDefaultValue:!0}]),t.functional(\"inset-ring\",V=>{if(!V.value)return V.modifier?void 0:[h(),l(\"--tw-inset-ring-shadow\",C(\"1px\")),l(\"box-shadow\",o)];if(V.value.kind===\"arbitrary\"){let T=V.value.value;switch(V.value.dataType??J(T,[\"color\",\"length\"])){case\"length\":return V.modifier?void 0:[h(),l(\"--tw-inset-ring-shadow\",C(T)),l(\"box-shadow\",o)];default:return T=Q(T,V.modifier,r),T===null?void 0:[l(\"--tw-inset-ring-color\",T)]}}{let T=te(V,r,[\"--ring-color\",\"--color\"]);if(T)return[l(\"--tw-inset-ring-color\",T)]}{if(V.modifier)return;let T=r.resolve(V.value.value,[\"--ring-width\"]);if(T===null&&E(V.value.value)&&(T=`${V.value.value}px`),T)return[h(),l(\"--tw-inset-ring-shadow\",C(T)),l(\"box-shadow\",o)]}}),i(\"inset-ring\",()=>[{values:[\"current\",\"inherit\",\"transparent\"],valueThemeKeys:[\"--ring-color\",\"--color\"],modifiers:Array.from({length:21},(V,T)=>`${T*5}`)},{values:[\"0\",\"1\",\"2\",\"4\",\"8\"],valueThemeKeys:[\"--ring-width\"],hasDefaultValue:!0}]);let R=\"var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)\";t.functional(\"ring-offset\",V=>{if(V.value){if(V.value.kind===\"arbitrary\"){let T=V.value.value;switch(V.value.dataType??J(T,[\"color\",\"length\"])){case\"length\":return V.modifier?void 0:[l(\"--tw-ring-offset-width\",T),l(\"--tw-ring-offset-shadow\",R)];default:return T=Q(T,V.modifier,r),T===null?void 0:[l(\"--tw-ring-offset-color\",T)]}}{let T=r.resolve(V.value.value,[\"--ring-offset-width\"]);if(T)return V.modifier?void 0:[l(\"--tw-ring-offset-width\",T),l(\"--tw-ring-offset-shadow\",R)];if(E(V.value.value))return V.modifier?void 0:[l(\"--tw-ring-offset-width\",`${V.value.value}px`),l(\"--tw-ring-offset-shadow\",R)]}{let T=te(V,r,[\"--ring-offset-color\",\"--color\"]);if(T)return[l(\"--tw-ring-offset-color\",T)]}}})}return i(\"ring-offset\",()=>[{values:[\"current\",\"inherit\",\"transparent\"],valueThemeKeys:[\"--ring-offset-color\",\"--color\"],modifiers:Array.from({length:21},(o,d)=>`${d*5}`)},{values:[\"0\",\"1\",\"2\",\"4\",\"8\"],valueThemeKeys:[\"--ring-offset-width\"]}]),t.functional(\"@container\",o=>{let d=null;if(o.value===null?d=\"inline-size\":o.value.kind===\"arbitrary\"?d=o.value.value:o.value.kind===\"named\"&&o.value.value===\"normal\"&&(d=\"normal\"),d!==null)return o.modifier?[l(\"container-type\",d),l(\"container-name\",o.modifier.value)]:[l(\"container-type\",d)]}),i(\"@container\",()=>[{values:[\"normal\"],valueThemeKeys:[],hasDefaultValue:!0}]),t}var bt=[\"number\",\"integer\",\"ratio\",\"percentage\"];function ur(r){let t=r.params;return Ci.test(t)?i=>{let e={\"--value\":{usedSpacingInteger:!1,usedSpacingNumber:!1,themeKeys:new Set,literals:new Set},\"--modifier\":{usedSpacingInteger:!1,usedSpacingNumber:!1,themeKeys:new Set,literals:new Set}};D(r.nodes,n=>{if(n.kind!==\"declaration\"||!n.value||!n.value.includes(\"--value(\")&&!n.value.includes(\"--modifier(\"))return;let s=B(n.value);ee(s,a=>{if(a.kind!==\"function\")return;if(a.value===\"--spacing\"&&!(e[\"--modifier\"].usedSpacingNumber&&e[\"--value\"].usedSpacingNumber))return ee(a.nodes,u=>{if(u.kind!==\"function\"||u.value!==\"--value\"&&u.value!==\"--modifier\")return;let f=u.value;for(let g of u.nodes)if(g.kind===\"word\"){if(g.value===\"integer\")e[f].usedSpacingInteger||=!0;else if(g.value===\"number\"&&(e[f].usedSpacingNumber||=!0,e[\"--modifier\"].usedSpacingNumber&&e[\"--value\"].usedSpacingNumber))return 2}}),0;if(a.value!==\"--value\"&&a.value!==\"--modifier\")return;let c=U(Y(a.nodes),\",\");for(let[u,f]of c.entries())f=f.replace(/\\\\\\*/g,\"*\"),f=f.replace(/--(.*?)\\s--(.*?)/g,\"--$1-*--$2\"),f=f.replace(/\\s+/g,\"\"),f=f.replace(/(-\\*){2,}/g,\"-*\"),f[0]===\"-\"&&f[1]===\"-\"&&!f.includes(\"-*\")&&(f+=\"-*\"),c[u]=f;a.nodes=B(c.join(\",\"));for(let u of a.nodes)if(u.kind===\"word\"&&(u.value[0]==='\"'||u.value[0]===\"'\")&&u.value[0]===u.value[u.value.length-1]){let f=u.value.slice(1,-1);e[a.value].literals.add(f)}else if(u.kind===\"word\"&&u.value[0]===\"-\"&&u.value[1]===\"-\"){let f=u.value.replace(/-\\*.*$/g,\"\");e[a.value].themeKeys.add(f)}else if(u.kind===\"word\"&&!(u.value[0]===\"[\"&&u.value[u.value.length-1]===\"]\")&&!bt.includes(u.value)){console.warn(`Unsupported bare value data type: \"${u.value}\".\nOnly valid data types are: ${bt.map(x=>`\"${x}\"`).join(\", \")}.\n`);let f=u.value,g=structuredClone(a),p=\"\\xB6\";ee(g.nodes,(x,{replaceWith:k})=>{x.kind===\"word\"&&x.value===f&&k({kind:\"word\",value:p})});let m=\"^\".repeat(Y([u]).length),w=Y([g]).indexOf(p),v=[\"```css\",Y([a]),\" \".repeat(w)+m,\"```\"].join(`\n`);console.warn(v)}}),n.value=Y(s)}),i.utilities.functional(t.slice(0,-2),n=>{let s=structuredClone(r),a=n.value,c=n.modifier;if(a===null)return;let u=!1,f=!1,g=!1,p=!1,m=new Map,w=!1;if(D([s],(v,{parent:x,replaceWith:k})=>{if(x?.kind!==\"rule\"&&x?.kind!==\"at-rule\"||v.kind!==\"declaration\"||!v.value)return;let N=B(v.value);(ee(N,(S,{replaceWith:P})=>{if(S.kind===\"function\"){if(S.value===\"--value\"){u=!0;let j=or(a,S,i);return j?(f=!0,j.ratio?w=!0:m.set(v,x),P(j.nodes),1):(u||=!1,k([]),2)}else if(S.value===\"--modifier\"){if(c===null)return k([]),2;g=!0;let j=or(c,S,i);return j?(p=!0,P(j.nodes),1):(g||=!1,k([]),2)}}})??0)===0&&(v.value=Y(N))}),u&&!f||g&&!p||w&&p||c&&!w&&!p)return null;if(w)for(let[v,x]of m){let k=x.nodes.indexOf(v);k!==-1&&x.nodes.splice(k,1)}return s.nodes}),i.utilities.suggest(t.slice(0,-2),()=>{let n=[],s=[];for(let[a,{literals:c,usedSpacingNumber:u,usedSpacingInteger:f,themeKeys:g}]of[[n,e[\"--value\"]],[s,e[\"--modifier\"]]]){for(let p of c)a.push(p);if(u)a.push(...Ze);else if(f)for(let p of Ze)E(p)&&a.push(p);for(let p of i.theme.keysInNamespaces(g))a.push(p.replace(ar,(m,w,v)=>`${w}.${v}`))}return[{values:n,modifiers:s}]})}:Ai.test(t)?i=>{i.utilities.static(t,()=>structuredClone(r.nodes))}:null}function or(r,t,i){for(let e of t.nodes){if(r.kind===\"named\"&&e.kind===\"word\"&&(e.value[0]===\"'\"||e.value[0]==='\"')&&e.value[e.value.length-1]===e.value[0]&&e.value.slice(1,-1)===r.value)return{nodes:B(r.value)};if(r.kind===\"named\"&&e.kind===\"word\"&&e.value[0]===\"-\"&&e.value[1]===\"-\"){let n=e.value;if(n.endsWith(\"-*\")){n=n.slice(0,-2);let s=i.theme.resolve(r.value,[n]);if(s)return{nodes:B(s)}}else{let s=n.split(\"-*\");if(s.length<=1)continue;let a=[s.shift()],c=i.theme.resolveWith(r.value,a,s);if(c){let[,u={}]=c;{let f=u[s.pop()];if(f)return{nodes:B(f)}}}}}else if(r.kind===\"named\"&&e.kind===\"word\"){if(!bt.includes(e.value))continue;let n=e.value===\"ratio\"&&\"fraction\"in r?r.fraction:r.value;if(!n)continue;let s=J(n,[e.value]);if(s===null)continue;if(s===\"ratio\"){let[a,c]=U(n,\"/\");if(!E(a)||!E(c))continue}else{if(s===\"number\"&&!pe(n))continue;if(s===\"percentage\"&&!E(n.slice(0,-1)))continue}return{nodes:B(n),ratio:s===\"ratio\"}}else if(r.kind===\"arbitrary\"&&e.kind===\"word\"&&e.value[0]===\"[\"&&e.value[e.value.length-1]===\"]\"){let n=e.value.slice(1,-1);if(n===\"*\")return{nodes:B(r.value)};if(\"dataType\"in r&&r.dataType&&r.dataType!==n)continue;if(\"dataType\"in r&&r.dataType)return{nodes:B(r.value)};if(J(r.value,[n])!==null)return{nodes:B(r.value)}}}}function ue(r,t,i,e,n=\"\"){let s=!1,a=Ee(t,u=>i==null?e(u):u.startsWith(\"current\")?e(Z(u,i)):((u.startsWith(\"var(\")||i.startsWith(\"var(\"))&&(s=!0),e(lr(u,i))));function c(u){return n?U(u,\",\").map(f=>n+f).join(\",\"):u}return s?[l(r,c(Ee(t,e))),H(\"@supports (color: lab(from red l a b))\",[l(r,c(a))])]:[l(r,c(a))]}function Ye(r,t,i,e,n=\"\"){let s=!1,a=U(t,\",\").map(c=>Ee(c,u=>i==null?e(u):u.startsWith(\"current\")?e(Z(u,i)):((u.startsWith(\"var(\")||i.startsWith(\"var(\"))&&(s=!0),e(lr(u,i))))).map(c=>`drop-shadow(${c})`).join(\" \");return s?[l(r,n+U(t,\",\").map(c=>`drop-shadow(${Ee(c,e)})`).join(\" \")),H(\"@supports (color: lab(from red l a b))\",[l(r,n+a)])]:[l(r,n+a)]}var kt={\"--alpha\":$i,\"--spacing\":Vi,\"--theme\":Ni,theme:Si};function $i(r,t,i,...e){let[n,s]=U(i,\"/\").map(a=>a.trim());if(!n||!s)throw new Error(`The --alpha(\\u2026) function requires a color and an alpha value, e.g.: \\`--alpha(${n||\"var(--my-color)\"} / ${s||\"50%\"})\\``);if(e.length>0)throw new Error(`The --alpha(\\u2026) function only accepts one argument, e.g.: \\`--alpha(${n||\"var(--my-color)\"} / ${s||\"50%\"})\\``);return Z(n,s)}function Vi(r,t,i,...e){if(!i)throw new Error(\"The --spacing(\\u2026) function requires an argument, but received none.\");if(e.length>0)throw new Error(`The --spacing(\\u2026) function only accepts a single argument, but received ${e.length+1}.`);let n=r.theme.resolve(null,[\"--spacing\"]);if(!n)throw new Error(\"The --spacing(\\u2026) function requires that the `--spacing` theme variable exists, but it was not found.\");return`calc(${n} * ${i})`}function Ni(r,t,i,...e){if(!i.startsWith(\"--\"))throw new Error(\"The --theme(\\u2026) function can only be used with CSS variables from your theme.\");let n=!1;i.endsWith(\" inline\")&&(n=!0,i=i.slice(0,-7)),t.kind===\"at-rule\"&&(n=!0);let s=r.resolveThemeValue(i,n);if(!s){if(e.length>0)return e.join(\", \");throw new Error(`Could not resolve value for theme function: \\`theme(${i})\\`. Consider checking if the variable name is correct or provide a fallback value to silence this error.`)}if(e.length===0)return s;let a=e.join(\", \");if(a===\"initial\")return s;if(s===\"initial\")return a;if(s.startsWith(\"var(\")||s.startsWith(\"theme(\")||s.startsWith(\"--theme(\")){let c=B(s);return Ei(c,a),Y(c)}return s}function Si(r,t,i,...e){i=Ti(i);let n=r.resolveThemeValue(i);if(!n&&e.length>0)return e.join(\", \");if(!n)throw new Error(`Could not resolve value for theme function: \\`theme(${i})\\`. Consider checking if the path is correct or provide a fallback value to silence this error.`);return n}var fr=new RegExp(Object.keys(kt).map(r=>`${r}\\\\(`).join(\"|\"));function xe(r,t){let i=0;return D(r,e=>{if(e.kind===\"declaration\"&&e.value&&fr.test(e.value)){i|=8,e.value=cr(e.value,e,t);return}e.kind===\"at-rule\"&&(e.name===\"@media\"||e.name===\"@custom-media\"||e.name===\"@container\"||e.name===\"@supports\")&&fr.test(e.params)&&(i|=8,e.params=cr(e.params,e,t))}),i}function cr(r,t,i){let e=B(r);return ee(e,(n,{replaceWith:s})=>{if(n.kind===\"function\"&&n.value in kt){let a=U(Y(n.nodes).trim(),\",\").map(u=>u.trim()),c=kt[n.value](i,t,...a);return s(B(c))}}),Y(e)}function Ti(r){if(r[0]!==\"'\"&&r[0]!=='\"')return r;let t=\"\",i=r[0];for(let e=1;e<r.length-1;e++){let n=r[e],s=r[e+1];n===\"\\\\\"&&(s===i||s===\"\\\\\")?(t+=s,e++):t+=n}return t}function Ei(r,t){ee(r,i=>{if(i.kind===\"function\"&&!(i.value!==\"var\"&&i.value!==\"theme\"&&i.value!==\"--theme\"))if(i.nodes.length===1)i.nodes.push({kind:\"word\",value:`, ${t}`});else{let e=i.nodes[i.nodes.length-1];e.kind===\"word\"&&e.value===\"initial\"&&(e.value=t)}})}function Qe(r,t){let i=r.length,e=t.length,n=i<e?i:e;for(let s=0;s<n;s++){let a=r.charCodeAt(s),c=t.charCodeAt(s);if(a>=48&&a<=57&&c>=48&&c<=57){let u=s,f=s+1,g=s,p=s+1;for(a=r.charCodeAt(f);a>=48&&a<=57;)a=r.charCodeAt(++f);for(c=t.charCodeAt(p);c>=48&&c<=57;)c=t.charCodeAt(++p);let m=r.slice(u,f),w=t.slice(g,p),v=Number(m)-Number(w);if(v)return v;if(m<w)return-1;if(m>w)return 1;continue}if(a!==c)return a-c}return r.length-t.length}var Pi=/^\\d+\\/\\d+$/;function dr(r){let t=new W(n=>({name:n,utility:n,fraction:!1,modifiers:[]}));for(let n of r.utilities.keys(\"static\")){let s=t.get(n);s.fraction=!1,s.modifiers=[]}for(let n of r.utilities.keys(\"functional\")){let s=r.utilities.getCompletions(n);for(let a of s)for(let c of a.values){let u=c!==null&&Pi.test(c),f=c===null?n:`${n}-${c}`,g=t.get(f);if(g.utility=n,g.fraction||=u,g.modifiers.push(...a.modifiers),a.supportsNegative){let p=t.get(`-${f}`);p.utility=`-${n}`,p.fraction||=u,p.modifiers.push(...a.modifiers)}}}if(t.size===0)return[];let i=Array.from(t.values());return i.sort((n,s)=>Qe(n.name,s.name)),Ri(i)}function Ri(r){let t=[],i=null,e=new Map,n=new W(()=>[]);for(let a of r){let{utility:c,fraction:u}=a;i||(i={utility:c,items:[]},e.set(c,i)),c!==i.utility&&(t.push(i),i={utility:c,items:[]},e.set(c,i)),u?n.get(c).push(a):i.items.push(a)}i&&t[t.length-1]!==i&&t.push(i);for(let[a,c]of n){let u=e.get(a);u&&u.items.push(...c)}let s=[];for(let a of t)for(let c of a.items)s.push([c.name,{modifiers:c.modifiers}]);return s}function pr(r){let t=[];for(let[e,n]of r.variants.entries()){let c=function({value:u,modifier:f}={}){let g=e;u&&(g+=s?`-${u}`:u),f&&(g+=`/${f}`);let p=r.parseVariant(g);if(!p)return[];let m=M(\".__placeholder__\",[]);if(Ae(m,p,r.variants)===null)return[];let w=[];return Ge(m.nodes,(v,{path:x})=>{if(v.kind!==\"rule\"&&v.kind!==\"at-rule\"||v.nodes.length>0)return;x.sort((b,S)=>{let P=b.kind===\"at-rule\",j=S.kind===\"at-rule\";return P&&!j?-1:!P&&j?1:0});let k=x.flatMap(b=>b.kind===\"rule\"?b.selector===\"&\"?[]:[b.selector]:b.kind===\"at-rule\"?[`${b.name} ${b.params}`]:[]),N=\"\";for(let b=k.length-1;b>=0;b--)N=N===\"\"?k[b]:`${k[b]} { ${N} }`;w.push(N)}),w};var i=c;if(n.kind===\"arbitrary\")continue;let s=e!==\"@\",a=r.variants.getCompletions(e);switch(n.kind){case\"static\":{t.push({name:e,values:a,isArbitrary:!1,hasDash:s,selectors:c});break}case\"functional\":{t.push({name:e,values:a,isArbitrary:!0,hasDash:s,selectors:c});break}case\"compound\":{t.push({name:e,values:a,isArbitrary:!0,hasDash:s,selectors:c});break}}}return t}function mr(r,t){let{astNodes:i,nodeSorting:e}=de(Array.from(t),r),n=new Map(t.map(a=>[a,null])),s=0n;for(let a of i){let c=e.get(a)?.candidate;c&&n.set(c,n.get(c)??s++)}return t.map(a=>[a,n.get(a)??null])}var Xe=/^@?[a-zA-Z0-9_-]*$/;var xt=class{compareFns=new Map;variants=new Map;completions=new Map;groupOrder=null;lastOrder=0;static(t,i,{compounds:e,order:n}={}){this.set(t,{kind:\"static\",applyFn:i,compoundsWith:0,compounds:e??2,order:n})}fromAst(t,i){let e=[];D(i,n=>{n.kind===\"rule\"?e.push(n.selector):n.kind===\"at-rule\"&&n.name!==\"@slot\"&&e.push(`${n.name} ${n.params}`)}),this.static(t,n=>{let s=structuredClone(i);At(s,n.nodes),n.nodes=s},{compounds:ye(e)})}functional(t,i,{compounds:e,order:n}={}){this.set(t,{kind:\"functional\",applyFn:i,compoundsWith:0,compounds:e??2,order:n})}compound(t,i,e,{compounds:n,order:s}={}){this.set(t,{kind:\"compound\",applyFn:e,compoundsWith:i,compounds:n??2,order:s})}group(t,i){this.groupOrder=this.nextOrder(),i&&this.compareFns.set(this.groupOrder,i),t(),this.groupOrder=null}has(t){return this.variants.has(t)}get(t){return this.variants.get(t)}kind(t){return this.variants.get(t)?.kind}compoundsWith(t,i){let e=this.variants.get(t),n=typeof i==\"string\"?this.variants.get(i):i.kind===\"arbitrary\"?{compounds:ye([i.selector])}:this.variants.get(i.root);return!(!e||!n||e.kind!==\"compound\"||n.compounds===0||e.compoundsWith===0||(e.compoundsWith&n.compounds)===0)}suggest(t,i){this.completions.set(t,i)}getCompletions(t){return this.completions.get(t)?.()??[]}compare(t,i){if(t===i)return 0;if(t===null)return-1;if(i===null)return 1;if(t.kind===\"arbitrary\"&&i.kind===\"arbitrary\")return t.selector<i.selector?-1:1;if(t.kind===\"arbitrary\")return 1;if(i.kind===\"arbitrary\")return-1;let e=this.variants.get(t.root).order,n=this.variants.get(i.root).order,s=e-n;if(s!==0)return s;if(t.kind===\"compound\"&&i.kind===\"compound\"){let f=this.compare(t.variant,i.variant);return f!==0?f:t.modifier&&i.modifier?t.modifier.value<i.modifier.value?-1:1:t.modifier?1:i.modifier?-1:0}let a=this.compareFns.get(e);if(a!==void 0)return a(t,i);if(t.root!==i.root)return t.root<i.root?-1:1;let c=t.value,u=i.value;return c===null?-1:u===null||c.kind===\"arbitrary\"&&u.kind!==\"arbitrary\"?1:c.kind!==\"arbitrary\"&&u.kind===\"arbitrary\"||c.value<u.value?-1:1}keys(){return this.variants.keys()}entries(){return this.variants.entries()}set(t,{kind:i,applyFn:e,compounds:n,compoundsWith:s,order:a}){let c=this.variants.get(t);c?Object.assign(c,{kind:i,applyFn:e,compounds:n}):(a===void 0&&(this.lastOrder=this.nextOrder(),a=this.lastOrder),this.variants.set(t,{kind:i,applyFn:e,order:a,compoundsWith:s,compounds:n}))}nextOrder(){return this.groupOrder??this.lastOrder+1}};function ye(r){let t=0;for(let i of r){if(i[0]===\"@\"){if(!i.startsWith(\"@media\")&&!i.startsWith(\"@supports\")&&!i.startsWith(\"@container\"))return 0;t|=1;continue}if(i.includes(\"::\"))return 0;t|=2}return t}function hr(r){let t=new xt;function i(f,g,{compounds:p}={}){p=p??ye(g),t.static(f,m=>{m.nodes=g.map(w=>H(w,m.nodes))},{compounds:p})}i(\"*\",[\":is(& > *)\"],{compounds:0}),i(\"**\",[\":is(& *)\"],{compounds:0});function e(f,g){return g.map(p=>{p=p.trim();let m=U(p,\" \");return m[0]===\"not\"?m.slice(1).join(\" \"):f===\"@container\"?m[0][0]===\"(\"?`not ${p}`:m[1]===\"not\"?`${m[0]} ${m.slice(2).join(\" \")}`:`${m[0]} not ${m.slice(1).join(\" \")}`:`not ${p}`})}let n=[\"@media\",\"@supports\",\"@container\"];function s(f){for(let g of n){if(g!==f.name)continue;let p=U(f.params,\",\");return p.length>1?null:(p=e(f.name,p),z(f.name,p.join(\", \")))}return null}function a(f){return f.includes(\"::\")?null:`&:not(${U(f,\",\").map(p=>(p=p.replaceAll(\"&\",\"*\"),p)).join(\", \")})`}t.compound(\"not\",3,(f,g)=>{if(g.variant.kind===\"arbitrary\"&&g.variant.relative||g.modifier)return null;let p=!1;if(D([f],(m,{path:w})=>{if(m.kind!==\"rule\"&&m.kind!==\"at-rule\")return 0;if(m.nodes.length>0)return 0;let v=[],x=[];for(let N of w)N.kind===\"at-rule\"?v.push(N):N.kind===\"rule\"&&x.push(N);if(v.length>1)return 2;if(x.length>1)return 2;let k=[];for(let N of x){let b=a(N.selector);if(!b)return p=!1,2;k.push(M(b,[]))}for(let N of v){let b=s(N);if(!b)return p=!1,2;k.push(b)}return Object.assign(f,M(\"&\",k)),p=!0,1}),f.kind===\"rule\"&&f.selector===\"&\"&&f.nodes.length===1&&Object.assign(f,f.nodes[0]),!p)return null}),t.suggest(\"not\",()=>Array.from(t.keys()).filter(f=>t.compoundsWith(\"not\",f))),t.compound(\"group\",2,(f,g)=>{if(g.variant.kind===\"arbitrary\"&&g.variant.relative)return null;let p=g.modifier?`:where(.${r.prefix?`${r.prefix}\\\\:`:\"\"}group\\\\/${g.modifier.value})`:`:where(.${r.prefix?`${r.prefix}\\\\:`:\"\"}group)`,m=!1;if(D([f],(w,{path:v})=>{if(w.kind!==\"rule\")return 0;for(let k of v.slice(0,-1))if(k.kind===\"rule\")return m=!1,2;let x=w.selector.replaceAll(\"&\",p);U(x,\",\").length>1&&(x=`:is(${x})`),w.selector=`&:is(${x} *)`,m=!0}),!m)return null}),t.suggest(\"group\",()=>Array.from(t.keys()).filter(f=>t.compoundsWith(\"group\",f))),t.compound(\"peer\",2,(f,g)=>{if(g.variant.kind===\"arbitrary\"&&g.variant.relative)return null;let p=g.modifier?`:where(.${r.prefix?`${r.prefix}\\\\:`:\"\"}peer\\\\/${g.modifier.value})`:`:where(.${r.prefix?`${r.prefix}\\\\:`:\"\"}peer)`,m=!1;if(D([f],(w,{path:v})=>{if(w.kind!==\"rule\")return 0;for(let k of v.slice(0,-1))if(k.kind===\"rule\")return m=!1,2;let x=w.selector.replaceAll(\"&\",p);U(x,\",\").length>1&&(x=`:is(${x})`),w.selector=`&:is(${x} ~ *)`,m=!0}),!m)return null}),t.suggest(\"peer\",()=>Array.from(t.keys()).filter(f=>t.compoundsWith(\"peer\",f))),i(\"first-letter\",[\"&::first-letter\"]),i(\"first-line\",[\"&::first-line\"]),i(\"marker\",[\"& *::marker\",\"&::marker\",\"& *::-webkit-details-marker\",\"&::-webkit-details-marker\"]),i(\"selection\",[\"& *::selection\",\"&::selection\"]),i(\"file\",[\"&::file-selector-button\"]),i(\"placeholder\",[\"&::placeholder\"]),i(\"backdrop\",[\"&::backdrop\"]),i(\"details-content\",[\"&::details-content\"]);{let f=function(){return I([z(\"@property\",\"--tw-content\",[l(\"syntax\",'\"*\"'),l(\"initial-value\",'\"\"'),l(\"inherits\",\"false\")])])};var c=f;t.static(\"before\",g=>{g.nodes=[M(\"&::before\",[f(),l(\"content\",\"var(--tw-content)\"),...g.nodes])]},{compounds:0}),t.static(\"after\",g=>{g.nodes=[M(\"&::after\",[f(),l(\"content\",\"var(--tw-content)\"),...g.nodes])]},{compounds:0})}i(\"first\",[\"&:first-child\"]),i(\"last\",[\"&:last-child\"]),i(\"only\",[\"&:only-child\"]),i(\"odd\",[\"&:nth-child(odd)\"]),i(\"even\",[\"&:nth-child(even)\"]),i(\"first-of-type\",[\"&:first-of-type\"]),i(\"last-of-type\",[\"&:last-of-type\"]),i(\"only-of-type\",[\"&:only-of-type\"]),i(\"visited\",[\"&:visited\"]),i(\"target\",[\"&:target\"]),i(\"open\",[\"&:is([open], :popover-open, :open)\"]),i(\"default\",[\"&:default\"]),i(\"checked\",[\"&:checked\"]),i(\"indeterminate\",[\"&:indeterminate\"]),i(\"placeholder-shown\",[\"&:placeholder-shown\"]),i(\"autofill\",[\"&:autofill\"]),i(\"optional\",[\"&:optional\"]),i(\"required\",[\"&:required\"]),i(\"valid\",[\"&:valid\"]),i(\"invalid\",[\"&:invalid\"]),i(\"user-valid\",[\"&:user-valid\"]),i(\"user-invalid\",[\"&:user-invalid\"]),i(\"in-range\",[\"&:in-range\"]),i(\"out-of-range\",[\"&:out-of-range\"]),i(\"read-only\",[\"&:read-only\"]),i(\"empty\",[\"&:empty\"]),i(\"focus-within\",[\"&:focus-within\"]),t.static(\"hover\",f=>{f.nodes=[M(\"&:hover\",[z(\"@media\",\"(hover: hover)\",f.nodes)])]}),i(\"focus\",[\"&:focus\"]),i(\"focus-visible\",[\"&:focus-visible\"]),i(\"active\",[\"&:active\"]),i(\"enabled\",[\"&:enabled\"]),i(\"disabled\",[\"&:disabled\"]),i(\"inert\",[\"&:is([inert], [inert] *)\"]),t.compound(\"in\",2,(f,g)=>{if(g.modifier)return null;let p=!1;if(D([f],(m,{path:w})=>{if(m.kind!==\"rule\")return 0;for(let v of w.slice(0,-1))if(v.kind===\"rule\")return p=!1,2;m.selector=`:where(${m.selector.replaceAll(\"&\",\"*\")}) &`,p=!0}),!p)return null}),t.suggest(\"in\",()=>Array.from(t.keys()).filter(f=>t.compoundsWith(\"in\",f))),t.compound(\"has\",2,(f,g)=>{if(g.modifier)return null;let p=!1;if(D([f],(m,{path:w})=>{if(m.kind!==\"rule\")return 0;for(let v of w.slice(0,-1))if(v.kind===\"rule\")return p=!1,2;m.selector=`&:has(${m.selector.replaceAll(\"&\",\"*\")})`,p=!0}),!p)return null}),t.suggest(\"has\",()=>Array.from(t.keys()).filter(f=>t.compoundsWith(\"has\",f))),t.functional(\"aria\",(f,g)=>{if(!g.value||g.modifier)return null;g.value.kind===\"arbitrary\"?f.nodes=[M(`&[aria-${gr(g.value.value)}]`,f.nodes)]:f.nodes=[M(`&[aria-${g.value.value}=\"true\"]`,f.nodes)]}),t.suggest(\"aria\",()=>[\"busy\",\"checked\",\"disabled\",\"expanded\",\"hidden\",\"pressed\",\"readonly\",\"required\",\"selected\"]),t.functional(\"data\",(f,g)=>{if(!g.value||g.modifier)return null;f.nodes=[M(`&[data-${gr(g.value.value)}]`,f.nodes)]}),t.functional(\"nth\",(f,g)=>{if(!g.value||g.modifier||g.value.kind===\"named\"&&!E(g.value.value))return null;f.nodes=[M(`&:nth-child(${g.value.value})`,f.nodes)]}),t.functional(\"nth-last\",(f,g)=>{if(!g.value||g.modifier||g.value.kind===\"named\"&&!E(g.value.value))return null;f.nodes=[M(`&:nth-last-child(${g.value.value})`,f.nodes)]}),t.functional(\"nth-of-type\",(f,g)=>{if(!g.value||g.modifier||g.value.kind===\"named\"&&!E(g.value.value))return null;f.nodes=[M(`&:nth-of-type(${g.value.value})`,f.nodes)]}),t.functional(\"nth-last-of-type\",(f,g)=>{if(!g.value||g.modifier||g.value.kind===\"named\"&&!E(g.value.value))return null;f.nodes=[M(`&:nth-last-of-type(${g.value.value})`,f.nodes)]}),t.functional(\"supports\",(f,g)=>{if(!g.value||g.modifier)return null;let p=g.value.value;if(p===null)return null;if(/^[\\w-]*\\s*\\(/.test(p)){let m=p.replace(/\\b(and|or|not)\\b/g,\" $1 \");f.nodes=[z(\"@supports\",m,f.nodes)];return}p.includes(\":\")||(p=`${p}: var(--tw)`),(p[0]!==\"(\"||p[p.length-1]!==\")\")&&(p=`(${p})`),f.nodes=[z(\"@supports\",p,f.nodes)]},{compounds:1}),i(\"motion-safe\",[\"@media (prefers-reduced-motion: no-preference)\"]),i(\"motion-reduce\",[\"@media (prefers-reduced-motion: reduce)\"]),i(\"contrast-more\",[\"@media (prefers-contrast: more)\"]),i(\"contrast-less\",[\"@media (prefers-contrast: less)\"]);{let f=function(g,p,m,w){if(g===p)return 0;let v=w.get(g);if(v===null)return m===\"asc\"?-1:1;let x=w.get(p);return x===null?m===\"asc\"?1:-1:we(v,x,m)};var u=f;{let g=r.namespace(\"--breakpoint\"),p=new W(m=>{switch(m.kind){case\"static\":return r.resolveValue(m.root,[\"--breakpoint\"])??null;case\"functional\":{if(!m.value||m.modifier)return null;let w=null;return m.value.kind===\"arbitrary\"?w=m.value.value:m.value.kind===\"named\"&&(w=r.resolveValue(m.value.value,[\"--breakpoint\"])),!w||w.includes(\"var(\")?null:w}case\"arbitrary\":case\"compound\":return null}});t.group(()=>{t.functional(\"max\",(m,w)=>{if(w.modifier)return null;let v=p.get(w);if(v===null)return null;m.nodes=[z(\"@media\",`(width < ${v})`,m.nodes)]},{compounds:1})},(m,w)=>f(m,w,\"desc\",p)),t.suggest(\"max\",()=>Array.from(g.keys()).filter(m=>m!==null)),t.group(()=>{for(let[m,w]of r.namespace(\"--breakpoint\"))m!==null&&t.static(m,v=>{v.nodes=[z(\"@media\",`(width >= ${w})`,v.nodes)]},{compounds:1});t.functional(\"min\",(m,w)=>{if(w.modifier)return null;let v=p.get(w);if(v===null)return null;m.nodes=[z(\"@media\",`(width >= ${v})`,m.nodes)]},{compounds:1})},(m,w)=>f(m,w,\"asc\",p)),t.suggest(\"min\",()=>Array.from(g.keys()).filter(m=>m!==null))}{let g=r.namespace(\"--container\"),p=new W(m=>{switch(m.kind){case\"functional\":{if(m.value===null)return null;let w=null;return m.value.kind===\"arbitrary\"?w=m.value.value:m.value.kind===\"named\"&&(w=r.resolveValue(m.value.value,[\"--container\"])),!w||w.includes(\"var(\")?null:w}case\"static\":case\"arbitrary\":case\"compound\":return null}});t.group(()=>{t.functional(\"@max\",(m,w)=>{let v=p.get(w);if(v===null)return null;m.nodes=[z(\"@container\",w.modifier?`${w.modifier.value} (width < ${v})`:`(width < ${v})`,m.nodes)]},{compounds:1})},(m,w)=>f(m,w,\"desc\",p)),t.suggest(\"@max\",()=>Array.from(g.keys()).filter(m=>m!==null)),t.group(()=>{t.functional(\"@\",(m,w)=>{let v=p.get(w);if(v===null)return null;m.nodes=[z(\"@container\",w.modifier?`${w.modifier.value} (width >= ${v})`:`(width >= ${v})`,m.nodes)]},{compounds:1}),t.functional(\"@min\",(m,w)=>{let v=p.get(w);if(v===null)return null;m.nodes=[z(\"@container\",w.modifier?`${w.modifier.value} (width >= ${v})`:`(width >= ${v})`,m.nodes)]},{compounds:1})},(m,w)=>f(m,w,\"asc\",p)),t.suggest(\"@min\",()=>Array.from(g.keys()).filter(m=>m!==null)),t.suggest(\"@\",()=>Array.from(g.keys()).filter(m=>m!==null))}}return i(\"portrait\",[\"@media (orientation: portrait)\"]),i(\"landscape\",[\"@media (orientation: landscape)\"]),i(\"ltr\",['&:where(:dir(ltr), [dir=\"ltr\"], [dir=\"ltr\"] *)']),i(\"rtl\",['&:where(:dir(rtl), [dir=\"rtl\"], [dir=\"rtl\"] *)']),i(\"dark\",[\"@media (prefers-color-scheme: dark)\"]),i(\"starting\",[\"@starting-style\"]),i(\"print\",[\"@media print\"]),i(\"forced-colors\",[\"@media (forced-colors: active)\"]),i(\"inverted-colors\",[\"@media (inverted-colors: inverted)\"]),i(\"pointer-none\",[\"@media (pointer: none)\"]),i(\"pointer-coarse\",[\"@media (pointer: coarse)\"]),i(\"pointer-fine\",[\"@media (pointer: fine)\"]),i(\"any-pointer-none\",[\"@media (any-pointer: none)\"]),i(\"any-pointer-coarse\",[\"@media (any-pointer: coarse)\"]),i(\"any-pointer-fine\",[\"@media (any-pointer: fine)\"]),i(\"noscript\",[\"@media (scripting: none)\"]),t}function gr(r){if(r.includes(\"=\")){let[t,...i]=U(r,\"=\"),e=i.join(\"=\").trim();if(e[0]===\"'\"||e[0]==='\"')return r;if(e.length>1){let n=e[e.length-1];if(e[e.length-2]===\" \"&&(n===\"i\"||n===\"I\"||n===\"s\"||n===\"S\"))return`${t}=\"${e.slice(0,-2)}\" ${n}`}return`${t}=\"${e}\"`}return r}function At(r,t){D(r,(i,{replaceWith:e})=>{if(i.kind===\"at-rule\"&&i.name===\"@slot\")e(t);else if(i.kind===\"at-rule\"&&(i.name===\"@keyframes\"||i.name===\"@property\"))return Object.assign(i,I([z(i.name,i.params,i.nodes)])),1})}function vr(r){let t=sr(r),i=hr(r),e=new W(u=>er(u,c)),n=new W(u=>Array.from(Xt(u,c))),s=new W(u=>{let f=wr(u,c);try{xe(f.map(({node:g})=>g),c)}catch{return[]}return f}),a=new W(u=>{for(let f of qe(u))r.markUsedVariable(f)}),c={theme:r,utilities:t,variants:i,invalidCandidates:new Set,important:!1,candidatesToCss(u){let f=[];for(let g of u){let p=!1,{astNodes:m}=de([g],this,{onInvalidCandidate(){p=!0}});m=ve(m,c,0),m.length===0||p?f.push(null):f.push(ne(m))}return f},getClassOrder(u){return mr(this,u)},getClassList(){return dr(this)},getVariants(){return pr(this)},parseCandidate(u){return n.get(u)},parseVariant(u){return e.get(u)},compileAstNodes(u){return s.get(u)},printCandidate(u){return rr(c,u)},printVariant(u){return He(u)},getVariantOrder(){let u=Array.from(e.values());u.sort((m,w)=>this.variants.compare(m,w));let f=new Map,g,p=0;for(let m of u)m!==null&&(g!==void 0&&this.variants.compare(g,m)!==0&&p++,f.set(m,p),g=m);return f},resolveThemeValue(u,f=!0){let g=u.lastIndexOf(\"/\"),p=null;g!==-1&&(p=u.slice(g+1).trim(),u=u.slice(0,g).trim());let m=r.resolve(null,[u],f?1:0)??void 0;return p&&m?Z(m,p):m},trackUsedVariables(u){a.get(u)}};return c}var Ct=[\"container-type\",\"pointer-events\",\"visibility\",\"position\",\"inset\",\"inset-inline\",\"inset-block\",\"inset-inline-start\",\"inset-inline-end\",\"top\",\"right\",\"bottom\",\"left\",\"isolation\",\"z-index\",\"order\",\"grid-column\",\"grid-column-start\",\"grid-column-end\",\"grid-row\",\"grid-row-start\",\"grid-row-end\",\"float\",\"clear\",\"--tw-container-component\",\"margin\",\"margin-inline\",\"margin-block\",\"margin-inline-start\",\"margin-inline-end\",\"margin-top\",\"margin-right\",\"margin-bottom\",\"margin-left\",\"box-sizing\",\"display\",\"field-sizing\",\"aspect-ratio\",\"height\",\"max-height\",\"min-height\",\"width\",\"max-width\",\"min-width\",\"flex\",\"flex-shrink\",\"flex-grow\",\"flex-basis\",\"table-layout\",\"caption-side\",\"border-collapse\",\"border-spacing\",\"transform-origin\",\"translate\",\"--tw-translate-x\",\"--tw-translate-y\",\"--tw-translate-z\",\"scale\",\"--tw-scale-x\",\"--tw-scale-y\",\"--tw-scale-z\",\"rotate\",\"--tw-rotate-x\",\"--tw-rotate-y\",\"--tw-rotate-z\",\"--tw-skew-x\",\"--tw-skew-y\",\"transform\",\"animation\",\"cursor\",\"touch-action\",\"--tw-pan-x\",\"--tw-pan-y\",\"--tw-pinch-zoom\",\"resize\",\"scroll-snap-type\",\"--tw-scroll-snap-strictness\",\"scroll-snap-align\",\"scroll-snap-stop\",\"scroll-margin\",\"scroll-margin-inline\",\"scroll-margin-block\",\"scroll-margin-inline-start\",\"scroll-margin-inline-end\",\"scroll-margin-top\",\"scroll-margin-right\",\"scroll-margin-bottom\",\"scroll-margin-left\",\"scroll-padding\",\"scroll-padding-inline\",\"scroll-padding-block\",\"scroll-padding-inline-start\",\"scroll-padding-inline-end\",\"scroll-padding-top\",\"scroll-padding-right\",\"scroll-padding-bottom\",\"scroll-padding-left\",\"list-style-position\",\"list-style-type\",\"list-style-image\",\"appearance\",\"columns\",\"break-before\",\"break-inside\",\"break-after\",\"grid-auto-columns\",\"grid-auto-flow\",\"grid-auto-rows\",\"grid-template-columns\",\"grid-template-rows\",\"flex-direction\",\"flex-wrap\",\"place-content\",\"place-items\",\"align-content\",\"align-items\",\"justify-content\",\"justify-items\",\"gap\",\"column-gap\",\"row-gap\",\"--tw-space-x-reverse\",\"--tw-space-y-reverse\",\"divide-x-width\",\"divide-y-width\",\"--tw-divide-y-reverse\",\"divide-style\",\"divide-color\",\"place-self\",\"align-self\",\"justify-self\",\"overflow\",\"overflow-x\",\"overflow-y\",\"overscroll-behavior\",\"overscroll-behavior-x\",\"overscroll-behavior-y\",\"scroll-behavior\",\"border-radius\",\"border-start-radius\",\"border-end-radius\",\"border-top-radius\",\"border-right-radius\",\"border-bottom-radius\",\"border-left-radius\",\"border-start-start-radius\",\"border-start-end-radius\",\"border-end-end-radius\",\"border-end-start-radius\",\"border-top-left-radius\",\"border-top-right-radius\",\"border-bottom-right-radius\",\"border-bottom-left-radius\",\"border-width\",\"border-inline-width\",\"border-block-width\",\"border-inline-start-width\",\"border-inline-end-width\",\"border-top-width\",\"border-right-width\",\"border-bottom-width\",\"border-left-width\",\"border-style\",\"border-inline-style\",\"border-block-style\",\"border-inline-start-style\",\"border-inline-end-style\",\"border-top-style\",\"border-right-style\",\"border-bottom-style\",\"border-left-style\",\"border-color\",\"border-inline-color\",\"border-block-color\",\"border-inline-start-color\",\"border-inline-end-color\",\"border-top-color\",\"border-right-color\",\"border-bottom-color\",\"border-left-color\",\"background-color\",\"background-image\",\"--tw-gradient-position\",\"--tw-gradient-stops\",\"--tw-gradient-via-stops\",\"--tw-gradient-from\",\"--tw-gradient-from-position\",\"--tw-gradient-via\",\"--tw-gradient-via-position\",\"--tw-gradient-to\",\"--tw-gradient-to-position\",\"mask-image\",\"--tw-mask-top\",\"--tw-mask-top-from-color\",\"--tw-mask-top-from-position\",\"--tw-mask-top-to-color\",\"--tw-mask-top-to-position\",\"--tw-mask-right\",\"--tw-mask-right-from-color\",\"--tw-mask-right-from-position\",\"--tw-mask-right-to-color\",\"--tw-mask-right-to-position\",\"--tw-mask-bottom\",\"--tw-mask-bottom-from-color\",\"--tw-mask-bottom-from-position\",\"--tw-mask-bottom-to-color\",\"--tw-mask-bottom-to-position\",\"--tw-mask-left\",\"--tw-mask-left-from-color\",\"--tw-mask-left-from-position\",\"--tw-mask-left-to-color\",\"--tw-mask-left-to-position\",\"--tw-mask-linear\",\"--tw-mask-linear-position\",\"--tw-mask-linear-from-color\",\"--tw-mask-linear-from-position\",\"--tw-mask-linear-to-color\",\"--tw-mask-linear-to-position\",\"--tw-mask-radial\",\"--tw-mask-radial-shape\",\"--tw-mask-radial-size\",\"--tw-mask-radial-position\",\"--tw-mask-radial-from-color\",\"--tw-mask-radial-from-position\",\"--tw-mask-radial-to-color\",\"--tw-mask-radial-to-position\",\"--tw-mask-conic\",\"--tw-mask-conic-position\",\"--tw-mask-conic-from-color\",\"--tw-mask-conic-from-position\",\"--tw-mask-conic-to-color\",\"--tw-mask-conic-to-position\",\"box-decoration-break\",\"background-size\",\"background-attachment\",\"background-clip\",\"background-position\",\"background-repeat\",\"background-origin\",\"mask-composite\",\"mask-mode\",\"mask-type\",\"mask-size\",\"mask-clip\",\"mask-position\",\"mask-repeat\",\"mask-origin\",\"fill\",\"stroke\",\"stroke-width\",\"object-fit\",\"object-position\",\"padding\",\"padding-inline\",\"padding-block\",\"padding-inline-start\",\"padding-inline-end\",\"padding-top\",\"padding-right\",\"padding-bottom\",\"padding-left\",\"text-align\",\"text-indent\",\"vertical-align\",\"font-family\",\"font-size\",\"line-height\",\"font-weight\",\"letter-spacing\",\"text-wrap\",\"overflow-wrap\",\"word-break\",\"text-overflow\",\"hyphens\",\"white-space\",\"color\",\"text-transform\",\"font-style\",\"font-stretch\",\"font-variant-numeric\",\"text-decoration-line\",\"text-decoration-color\",\"text-decoration-style\",\"text-decoration-thickness\",\"text-underline-offset\",\"-webkit-font-smoothing\",\"placeholder-color\",\"caret-color\",\"accent-color\",\"color-scheme\",\"opacity\",\"background-blend-mode\",\"mix-blend-mode\",\"box-shadow\",\"--tw-shadow\",\"--tw-shadow-color\",\"--tw-ring-shadow\",\"--tw-ring-color\",\"--tw-inset-shadow\",\"--tw-inset-shadow-color\",\"--tw-inset-ring-shadow\",\"--tw-inset-ring-color\",\"--tw-ring-offset-width\",\"--tw-ring-offset-color\",\"outline\",\"outline-width\",\"outline-offset\",\"outline-color\",\"--tw-blur\",\"--tw-brightness\",\"--tw-contrast\",\"--tw-drop-shadow\",\"--tw-grayscale\",\"--tw-hue-rotate\",\"--tw-invert\",\"--tw-saturate\",\"--tw-sepia\",\"filter\",\"--tw-backdrop-blur\",\"--tw-backdrop-brightness\",\"--tw-backdrop-contrast\",\"--tw-backdrop-grayscale\",\"--tw-backdrop-hue-rotate\",\"--tw-backdrop-invert\",\"--tw-backdrop-opacity\",\"--tw-backdrop-saturate\",\"--tw-backdrop-sepia\",\"backdrop-filter\",\"transition-property\",\"transition-behavior\",\"transition-delay\",\"transition-duration\",\"transition-timing-function\",\"will-change\",\"contain\",\"content\",\"forced-color-adjust\"];function de(r,t,{onInvalidCandidate:i}={}){let e=new Map,n=[],s=new Map;for(let c of r){if(t.invalidCandidates.has(c)){i?.(c);continue}let u=t.parseCandidate(c);if(u.length===0){i?.(c);continue}s.set(c,u)}let a=t.getVariantOrder();for(let[c,u]of s){let f=!1;for(let g of u){let p=t.compileAstNodes(g);if(p.length!==0){f=!0;for(let{node:m,propertySort:w}of p){let v=0n;for(let x of g.variants)v|=1n<<BigInt(a.get(x));e.set(m,{properties:w,variants:v,candidate:c}),n.push(m)}}}f||i?.(c)}return n.sort((c,u)=>{let f=e.get(c),g=e.get(u);if(f.variants-g.variants!==0n)return Number(f.variants-g.variants);let p=0;for(;p<f.properties.order.length&&p<g.properties.order.length&&f.properties.order[p]===g.properties.order[p];)p+=1;return(f.properties.order[p]??1/0)-(g.properties.order[p]??1/0)||g.properties.count-f.properties.count||Qe(f.candidate,g.candidate)}),{astNodes:n,nodeSorting:e}}function wr(r,t){let i=Oi(r,t);if(i.length===0)return[];let e=[],n=`.${fe(r.raw)}`;for(let s of i){let a=Ki(s);(r.important||t.important)&&br(s);let c={kind:\"rule\",selector:n,nodes:s};for(let u of r.variants)if(Ae(c,u,t.variants)===null)return[];e.push({node:c,propertySort:a})}return e}function Ae(r,t,i,e=0){if(t.kind===\"arbitrary\"){if(t.relative&&e===0)return null;r.nodes=[H(t.selector,r.nodes)];return}let{applyFn:n}=i.get(t.root);if(t.kind===\"compound\"){let a=z(\"@slot\");if(Ae(a,t.variant,i,e+1)===null||t.root===\"not\"&&a.nodes.length>1)return null;for(let u of a.nodes)if(u.kind!==\"rule\"&&u.kind!==\"at-rule\"||n(u,t)===null)return null;D(a.nodes,u=>{if((u.kind===\"rule\"||u.kind===\"at-rule\")&&u.nodes.length<=0)return u.nodes=r.nodes,1}),r.nodes=a.nodes;return}if(n(r,t)===null)return null}function yr(r){let t=r.options?.types??[];return t.length>1&&t.includes(\"any\")}function Oi(r,t){if(r.kind===\"arbitrary\"){let a=r.value;return r.modifier&&(a=Q(a,r.modifier,t.theme)),a===null?[]:[[l(r.property,a)]]}let i=t.utilities.get(r.root)??[],e=[],n=i.filter(a=>!yr(a));for(let a of n){if(a.kind!==r.kind)continue;let c=a.compileFn(r);if(c!==void 0){if(c===null)return e;e.push(c)}}if(e.length>0)return e;let s=i.filter(a=>yr(a));for(let a of s){if(a.kind!==r.kind)continue;let c=a.compileFn(r);if(c!==void 0){if(c===null)return e;e.push(c)}}return e}function br(r){for(let t of r)t.kind!==\"at-root\"&&(t.kind===\"declaration\"?t.important=!0:(t.kind===\"rule\"||t.kind===\"at-rule\")&&br(t.nodes))}function Ki(r){let t=new Set,i=0,e=r.slice(),n=!1;for(;e.length>0;){let s=e.shift();if(s.kind===\"declaration\"){if(s.value===void 0||(i++,n))continue;if(s.property===\"--tw-sort\"){let c=Ct.indexOf(s.value??\"\");if(c!==-1){t.add(c),n=!0;continue}}let a=Ct.indexOf(s.property);a!==-1&&t.add(a)}else if(s.kind===\"rule\"||s.kind===\"at-rule\")for(let a of s.nodes)e.push(a)}return{order:Array.from(t).sort((s,a)=>s-a),count:i}}function Oe(r,t){let i=0,e=H(\"&\",r),n=new Set,s=new W(()=>new Set),a=new W(()=>new Set);D([e],(p,{parent:m,path:w})=>{if(p.kind===\"at-rule\"){if(p.name===\"@keyframes\")return D(p.nodes,v=>{if(v.kind===\"at-rule\"&&v.name===\"@apply\")throw new Error(\"You cannot use `@apply` inside `@keyframes`.\")}),1;if(p.name===\"@utility\"){let v=p.params.replace(/-\\*$/,\"\");a.get(v).add(p),D(p.nodes,x=>{if(!(x.kind!==\"at-rule\"||x.name!==\"@apply\")){n.add(p);for(let k of kr(x,t))s.get(p).add(k)}});return}if(p.name===\"@apply\"){if(m===null)return;i|=1,n.add(m);for(let v of kr(p,t))for(let x of w)x!==p&&n.has(x)&&s.get(x).add(v)}}});let c=new Set,u=[],f=new Set;function g(p,m=[]){if(!c.has(p)){if(f.has(p)){let w=m[(m.indexOf(p)+1)%m.length];throw p.kind===\"at-rule\"&&p.name===\"@utility\"&&w.kind===\"at-rule\"&&w.name===\"@utility\"&&D(p.nodes,v=>{if(v.kind!==\"at-rule\"||v.name!==\"@apply\")return;let x=v.params.split(/\\s+/g);for(let k of x)for(let N of t.parseCandidate(k))switch(N.kind){case\"arbitrary\":break;case\"static\":case\"functional\":if(w.params.replace(/-\\*$/,\"\")===N.root)throw new Error(`You cannot \\`@apply\\` the \\`${k}\\` utility here because it creates a circular dependency.`);break;default:}}),new Error(`Circular dependency detected:\n\n${ne([p])}\nRelies on:\n\n${ne([w])}`)}f.add(p);for(let w of s.get(p))for(let v of a.get(w))m.push(p),g(v,m),m.pop();c.add(p),f.delete(p),u.push(p)}}for(let p of n)g(p);for(let p of u)\"nodes\"in p&&D(p.nodes,(m,{replaceWith:w})=>{if(m.kind!==\"at-rule\"||m.name!==\"@apply\")return;let v=m.params.split(/(\\s+)/g),x={},k=0;for(let[N,b]of v.entries())N%2===0&&(x[b]=k),k+=b.length;{let N=Object.keys(x),b=de(N,t,{onInvalidCandidate:K=>{throw new Error(`Cannot apply unknown utility class: ${K}`)}}),S=m.src,P=b.astNodes.map(K=>{let F=b.nodeSorting.get(K)?.candidate,O=F?x[F]:void 0;if(K=structuredClone(K),!S||!F||O===void 0)return D([K],L=>{L.src=S}),K;let G=[S[0],S[1],S[2]];return G[1]+=7+O,G[2]=G[1]+F.length,D([K],L=>{L.src=G}),K}),j=[];for(let K of P)if(K.kind===\"rule\")for(let F of K.nodes)j.push(F);else j.push(K);w(j)}});return i}function*kr(r,t){for(let i of r.params.split(/\\s+/g))for(let e of t.parseCandidate(i))switch(e.kind){case\"arbitrary\":break;case\"static\":case\"functional\":yield e.root;break;default:}}async function $t(r,t,i,e=0,n=!1){let s=0,a=[];return D(r,(c,{replaceWith:u})=>{if(c.kind===\"at-rule\"&&(c.name===\"@import\"||c.name===\"@reference\")){let f=_i(B(c.params));if(f===null)return;c.name===\"@reference\"&&(f.media=\"reference\"),s|=2;let{uri:g,layer:p,media:m,supports:w}=f;if(g.startsWith(\"data:\")||g.startsWith(\"http://\")||g.startsWith(\"https://\"))return;let v=le({},[]);return a.push((async()=>{if(e>100)throw new Error(`Exceeded maximum recursion depth while resolving \\`${g}\\` in \\`${t}\\`)`);let x=await i(g,t),k=me(x.content,{from:n?x.path:void 0});await $t(k,x.base,i,e+1,n),v.nodes=ji(c,[le({base:x.base},k)],p,m,w)})()),u(v),1}}),a.length>0&&await Promise.all(a),s}function _i(r){let t,i=null,e=null,n=null;for(let s=0;s<r.length;s++){let a=r[s];if(a.kind!==\"separator\"){if(a.kind===\"word\"&&!t){if(!a.value||a.value[0]!=='\"'&&a.value[0]!==\"'\")return null;t=a.value.slice(1,-1);continue}if(a.kind===\"function\"&&a.value.toLowerCase()===\"url\"||!t)return null;if((a.kind===\"word\"||a.kind===\"function\")&&a.value.toLowerCase()===\"layer\"){if(i)return null;if(n)throw new Error(\"`layer(\\u2026)` in an `@import` should come before any other functions or conditions\");\"nodes\"in a?i=Y(a.nodes):i=\"\";continue}if(a.kind===\"function\"&&a.value.toLowerCase()===\"supports\"){if(n)return null;n=Y(a.nodes);continue}e=Y(r.slice(s));break}}return t?{uri:t,layer:i,media:e,supports:n}:null}function ji(r,t,i,e,n){let s=t;if(i!==null){let a=z(\"@layer\",i,s);a.src=r.src,s=[a]}if(e!==null){let a=z(\"@media\",e,s);a.src=r.src,s=[a]}if(n!==null){let a=z(\"@supports\",n[0]===\"(\"?n:`(${n})`,s);a.src=r.src,s=[a]}return s}function Ce(r,t=null){return Array.isArray(r)&&r.length===2&&typeof r[1]==\"object\"&&typeof r[1]!==null?t?r[1][t]??null:r[0]:Array.isArray(r)&&t===null?r.join(\", \"):typeof r==\"string\"&&t===null?r:null}function xr(r,{theme:t},i){for(let e of i){let n=et([e]);n&&r.theme.clearNamespace(`--${n}`,4)}for(let[e,n]of Di(t)){if(typeof n!=\"string\"&&typeof n!=\"number\")continue;if(typeof n==\"string\"&&(n=n.replace(/<alpha-value>/g,\"1\")),e[0]===\"opacity\"&&(typeof n==\"number\"||typeof n==\"string\")){let a=typeof n==\"string\"?parseFloat(n):n;a>=0&&a<=1&&(n=a*100+\"%\")}let s=et(e);s&&r.theme.add(`--${s}`,\"\"+n,7)}if(Object.hasOwn(t,\"fontFamily\")){let e=5;{let n=Ce(t.fontFamily.sans);n&&r.theme.hasDefault(\"--font-sans\")&&(r.theme.add(\"--default-font-family\",n,e),r.theme.add(\"--default-font-feature-settings\",Ce(t.fontFamily.sans,\"fontFeatureSettings\")??\"normal\",e),r.theme.add(\"--default-font-variation-settings\",Ce(t.fontFamily.sans,\"fontVariationSettings\")??\"normal\",e))}{let n=Ce(t.fontFamily.mono);n&&r.theme.hasDefault(\"--font-mono\")&&(r.theme.add(\"--default-mono-font-family\",n,e),r.theme.add(\"--default-mono-font-feature-settings\",Ce(t.fontFamily.mono,\"fontFeatureSettings\")??\"normal\",e),r.theme.add(\"--default-mono-font-variation-settings\",Ce(t.fontFamily.mono,\"fontVariationSettings\")??\"normal\",e))}}return t}function Di(r){let t=[];return Ar(r,[],(i,e)=>{if(Ii(i))return t.push([e,i]),1;if(Fi(i)){t.push([e,i[0]]);for(let n of Reflect.ownKeys(i[1]))t.push([[...e,`-${n}`],i[1][n]]);return 1}if(Array.isArray(i)&&i.every(n=>typeof n==\"string\"))return e[0]===\"fontSize\"?(t.push([e,i[0]]),i.length>=2&&t.push([[...e,\"-line-height\"],i[1]])):t.push([e,i.join(\", \")]),1}),t}var Ui=/^[a-zA-Z0-9-_%/\\.]+$/;function et(r){if(r[0]===\"container\")return null;r=structuredClone(r),r[0]===\"animation\"&&(r[0]=\"animate\"),r[0]===\"aspectRatio\"&&(r[0]=\"aspect\"),r[0]===\"borderRadius\"&&(r[0]=\"radius\"),r[0]===\"boxShadow\"&&(r[0]=\"shadow\"),r[0]===\"colors\"&&(r[0]=\"color\"),r[0]===\"containers\"&&(r[0]=\"container\"),r[0]===\"fontFamily\"&&(r[0]=\"font\"),r[0]===\"fontSize\"&&(r[0]=\"text\"),r[0]===\"letterSpacing\"&&(r[0]=\"tracking\"),r[0]===\"lineHeight\"&&(r[0]=\"leading\"),r[0]===\"maxWidth\"&&(r[0]=\"container\"),r[0]===\"screens\"&&(r[0]=\"breakpoint\"),r[0]===\"transitionTimingFunction\"&&(r[0]=\"ease\");for(let t of r)if(!Ui.test(t))return null;return r.map((t,i,e)=>t===\"1\"&&i!==e.length-1?\"\":t).map(t=>t.replaceAll(\".\",\"_\").replace(/([a-z])([A-Z])/g,(i,e,n)=>`${e}-${n.toLowerCase()}`)).filter((t,i)=>t!==\"DEFAULT\"||i!==r.length-1).join(\"-\")}function Ii(r){return typeof r==\"number\"||typeof r==\"string\"}function Fi(r){if(!Array.isArray(r)||r.length!==2||typeof r[0]!=\"string\"&&typeof r[0]!=\"number\"||r[1]===void 0||r[1]===null||typeof r[1]!=\"object\")return!1;for(let t of Reflect.ownKeys(r[1]))if(typeof t!=\"string\"||typeof r[1][t]!=\"string\"&&typeof r[1][t]!=\"number\")return!1;return!0}function Ar(r,t=[],i){for(let e of Reflect.ownKeys(r)){let n=r[e];if(n==null)continue;let s=[...t,e],a=i(n,s)??0;if(a!==1){if(a===2)return 2;if(!(!Array.isArray(n)&&typeof n!=\"object\")&&Ar(n,s,i)===2)return 2}}}function tt(r){let t=[];for(let i of U(r,\".\")){if(!i.includes(\"[\")){t.push(i);continue}let e=0;for(;;){let n=i.indexOf(\"[\",e),s=i.indexOf(\"]\",n);if(n===-1||s===-1)break;n>e&&t.push(i.slice(e,n)),t.push(i.slice(n+1,s)),e=s+1}e<=i.length-1&&t.push(i.slice(e))}return t}function $e(r){if(Object.prototype.toString.call(r)!==\"[object Object]\")return!1;let t=Object.getPrototypeOf(r);return t===null||Object.getPrototypeOf(t)===null}function Ke(r,t,i,e=[]){for(let n of t)if(n!=null)for(let s of Reflect.ownKeys(n)){e.push(s);let a=i(r[s],n[s],e);a!==void 0?r[s]=a:!$e(r[s])||!$e(n[s])?r[s]=n[s]:r[s]=Ke({},[r[s],n[s]],i,e),e.pop()}return r}function rt(r,t,i){return function(n,s){let a=n.lastIndexOf(\"/\"),c=null;a!==-1&&(c=n.slice(a+1).trim(),n=n.slice(0,a).trim());let u=(()=>{let f=tt(n),[g,p]=Li(r.theme,f),m=i(Cr(t()??{},f)??null);if(typeof m==\"string\"&&(m=m.replace(\"<alpha-value>\",\"1\")),typeof g!=\"object\")return typeof p!=\"object\"&&p&4?m??g:g;if(m!==null&&typeof m==\"object\"&&!Array.isArray(m)){let w=Ke({},[m],(v,x)=>x);if(g===null&&Object.hasOwn(m,\"__CSS_VALUES__\")){let v={};for(let x in m.__CSS_VALUES__)v[x]=m[x],delete w[x];g=v}for(let v in g)v!==\"__CSS_VALUES__\"&&(m?.__CSS_VALUES__?.[v]&4&&Cr(w,v.split(\"-\"))!==void 0||(w[ge(v)]=g[v]));return w}if(Array.isArray(g)&&Array.isArray(p)&&Array.isArray(m)){let w=g[0],v=g[1];p[0]&4&&(w=m[0]??w);for(let x of Object.keys(v))p[1][x]&4&&(v[x]=m[1][x]??v[x]);return[w,v]}return g??m})();return c&&typeof u==\"string\"&&(u=Z(u,c)),u??s}}function Li(r,t){if(t.length===1&&t[0].startsWith(\"--\"))return[r.get([t[0]]),r.getOptions(t[0])];let i=et(t),e=new Map,n=new W(()=>new Map),s=r.namespace(`--${i}`);if(s.size===0)return[null,0];let a=new Map;for(let[g,p]of s){if(!g||!g.includes(\"--\")){e.set(g,p),a.set(g,r.getOptions(g?`--${i}-${g}`:`--${i}`));continue}let m=g.indexOf(\"--\"),w=g.slice(0,m),v=g.slice(m+2);v=v.replace(/-([a-z])/g,(x,k)=>k.toUpperCase()),n.get(w===\"\"?null:w).set(v,[p,r.getOptions(`--${i}${g}`)])}let c=r.getOptions(`--${i}`);for(let[g,p]of n){let m=e.get(g);if(typeof m!=\"string\")continue;let w={},v={};for(let[x,[k,N]]of p)w[x]=k,v[x]=N;e.set(g,[m,w]),a.set(g,[c,v])}let u={},f={};for(let[g,p]of e)$r(u,[g??\"DEFAULT\"],p);for(let[g,p]of a)$r(f,[g??\"DEFAULT\"],p);return t[t.length-1]===\"DEFAULT\"?[u?.DEFAULT??null,f.DEFAULT??0]:\"DEFAULT\"in u&&Object.keys(u).length===1?[u.DEFAULT,f.DEFAULT??0]:(u.__CSS_VALUES__=f,[u,f])}function Cr(r,t){for(let i=0;i<t.length;++i){let e=t[i];if(r?.[e]===void 0){if(t[i+1]===void 0)return;t[i+1]=`${e}-${t[i+1]}`;continue}r=r[e]}return r}function $r(r,t,i){for(let e of t.slice(0,-1))r[e]===void 0&&(r[e]={}),r=r[e];r[t[t.length-1]]=i}function zi(r){return{kind:\"combinator\",value:r}}function Mi(r,t){return{kind:\"function\",value:r,nodes:t}}function _e(r){return{kind:\"selector\",value:r}}function Wi(r){return{kind:\"separator\",value:r}}function Bi(r){return{kind:\"value\",value:r}}function je(r,t,i=null){for(let e=0;e<r.length;e++){let n=r[e],s=!1,a=0,c=t(n,{parent:i,replaceWith(u){s||(s=!0,Array.isArray(u)?u.length===0?(r.splice(e,1),a=0):u.length===1?(r[e]=u[0],a=1):(r.splice(e,1,...u),a=u.length):(r[e]=u,a=1))}})??0;if(s){c===0?e--:e+=a-1;continue}if(c===2)return 2;if(c!==1&&n.kind===\"function\"&&je(n.nodes,t,n)===2)return 2}}function De(r){let t=\"\";for(let i of r)switch(i.kind){case\"combinator\":case\"selector\":case\"separator\":case\"value\":{t+=i.value;break}case\"function\":t+=i.value+\"(\"+De(i.nodes)+\")\"}return t}var Vr=92,qi=93,Nr=41,Gi=58,Sr=44,Ji=34,Hi=46,Tr=62,Er=10,Yi=35,Pr=91,Rr=40,Or=43,Zi=39,Kr=32,_r=9,jr=126;function it(r){r=r.replaceAll(`\\r\n`,`\n`);let t=[],i=[],e=null,n=\"\",s;for(let a=0;a<r.length;a++){let c=r.charCodeAt(a);switch(c){case Sr:case Tr:case Er:case Kr:case Or:case _r:case jr:{if(n.length>0){let m=_e(n);e?e.nodes.push(m):t.push(m),n=\"\"}let u=a,f=a+1;for(;f<r.length&&(s=r.charCodeAt(f),!(s!==Sr&&s!==Tr&&s!==Er&&s!==Kr&&s!==Or&&s!==_r&&s!==jr));f++);a=f-1;let g=r.slice(u,f),p=g.trim()===\",\"?Wi(g):zi(g);e?e.nodes.push(p):t.push(p);break}case Rr:{let u=Mi(n,[]);if(n=\"\",u.value!==\":not\"&&u.value!==\":where\"&&u.value!==\":has\"&&u.value!==\":is\"){let f=a+1,g=0;for(let m=a+1;m<r.length;m++){if(s=r.charCodeAt(m),s===Rr){g++;continue}if(s===Nr){if(g===0){a=m;break}g--}}let p=a;u.nodes.push(Bi(r.slice(f,p))),n=\"\",a=p,e?e.nodes.push(u):t.push(u);break}e?e.nodes.push(u):t.push(u),i.push(u),e=u;break}case Nr:{let u=i.pop();if(n.length>0){let f=_e(n);u.nodes.push(f),n=\"\"}i.length>0?e=i[i.length-1]:e=null;break}case Hi:case Gi:case Yi:{if(n.length>0){let u=_e(n);e?e.nodes.push(u):t.push(u)}n=String.fromCharCode(c);break}case Pr:{if(n.length>0){let g=_e(n);e?e.nodes.push(g):t.push(g)}n=\"\";let u=a,f=0;for(let g=a+1;g<r.length;g++){if(s=r.charCodeAt(g),s===Pr){f++;continue}if(s===qi){if(f===0){a=g;break}f--}}n+=r.slice(u,a+1);break}case Zi:case Ji:{let u=a;for(let f=a+1;f<r.length;f++)if(s=r.charCodeAt(f),s===Vr)f+=1;else if(s===c){a=f;break}n+=r.slice(u,a+1);break}case Vr:{let u=r.charCodeAt(a+1);n+=String.fromCharCode(c)+String.fromCharCode(u),a+=1;break}default:n+=String.fromCharCode(c)}}return n.length>0&&t.push(_e(n)),t}var Dr=/^[a-z@][a-zA-Z0-9/%._-]*$/;function Vt({designSystem:r,ast:t,resolvedConfig:i,featuresRef:e,referenceMode:n}){let s={addBase(a){if(n)return;let c=ae(a);e.current|=xe(c,r),t.push(z(\"@layer\",\"base\",c))},addVariant(a,c){if(!Xe.test(a))throw new Error(`\\`addVariant('${a}')\\` defines an invalid variant name. Variants should only contain alphanumeric, dashes or underscore characters.`);if(typeof c==\"string\"){if(c.includes(\":merge(\"))return}else if(Array.isArray(c)){if(c.some(f=>f.includes(\":merge(\")))return}else if(typeof c==\"object\"){let f=function(g,p){return Object.entries(g).some(([m,w])=>m.includes(p)||typeof w==\"object\"&&f(w,p))};var u=f;if(f(c,\":merge(\"))return}typeof c==\"string\"||Array.isArray(c)?r.variants.static(a,f=>{f.nodes=Ur(c,f.nodes)},{compounds:ye(typeof c==\"string\"?[c]:c)}):typeof c==\"object\"&&r.variants.fromAst(a,ae(c))},matchVariant(a,c,u){function f(p,m,w){let v=c(p,{modifier:m?.value??null});return Ur(v,w)}try{let p=c(\"a\",{modifier:null});if(typeof p==\"string\"&&p.includes(\":merge(\"))return;if(Array.isArray(p)&&p.some(m=>m.includes(\":merge(\")))return}catch{}let g=Object.keys(u?.values??{});r.variants.group(()=>{r.variants.functional(a,(p,m)=>{if(!m.value){if(u?.values&&\"DEFAULT\"in u.values){p.nodes=f(u.values.DEFAULT,m.modifier,p.nodes);return}return null}if(m.value.kind===\"arbitrary\")p.nodes=f(m.value.value,m.modifier,p.nodes);else if(m.value.kind===\"named\"&&u?.values){let w=u.values[m.value.value];if(typeof w!=\"string\")return;p.nodes=f(w,m.modifier,p.nodes)}})},(p,m)=>{if(p.kind!==\"functional\"||m.kind!==\"functional\")return 0;let w=p.value?p.value.value:\"DEFAULT\",v=m.value?m.value.value:\"DEFAULT\",x=u?.values?.[w]??w,k=u?.values?.[v]??v;if(u&&typeof u.sort==\"function\")return u.sort({value:x,modifier:p.modifier?.value??null},{value:k,modifier:m.modifier?.value??null});let N=g.indexOf(w),b=g.indexOf(v);return N=N===-1?g.length:N,b=b===-1?g.length:b,N!==b?N-b:x<k?-1:1})},addUtilities(a){a=Array.isArray(a)?a:[a];let c=a.flatMap(f=>Object.entries(f));c=c.flatMap(([f,g])=>U(f,\",\").map(p=>[p.trim(),g]));let u=new W(()=>[]);for(let[f,g]of c){if(f.startsWith(\"@keyframes \")){n||t.push(H(f,ae(g)));continue}let p=it(f),m=!1;if(je(p,w=>{if(w.kind===\"selector\"&&w.value[0]===\".\"&&Dr.test(w.value.slice(1))){let v=w.value;w.value=\"&\";let x=De(p),k=v.slice(1),N=x===\"&\"?ae(g):[H(x,ae(g))];u.get(k).push(...N),m=!0,w.value=v;return}if(w.kind===\"function\"&&w.value===\":not\")return 1}),!m)throw new Error(`\\`addUtilities({ '${f}' : \\u2026 })\\` defines an invalid utility selector. Utilities must be a single class name and start with a lowercase letter, eg. \\`.scrollbar-none\\`.`)}for(let[f,g]of u)r.theme.prefix&&D(g,p=>{if(p.kind===\"rule\"){let m=it(p.selector);je(m,w=>{w.kind===\"selector\"&&w.value[0]===\".\"&&(w.value=`.${r.theme.prefix}\\\\:${w.value.slice(1)}`)}),p.selector=De(m)}}),r.utilities.static(f,p=>{let m=structuredClone(g);return Ir(m,f,p.raw),e.current|=Oe(m,r),m})},matchUtilities(a,c){let u=c?.type?Array.isArray(c?.type)?c.type:[c.type]:[\"any\"];for(let[g,p]of Object.entries(a)){let m=function({negative:w}){return v=>{if(v.value?.kind===\"arbitrary\"&&u.length>0&&!u.includes(\"any\")&&(v.value.dataType&&!u.includes(v.value.dataType)||!v.value.dataType&&!J(v.value.value,u)))return;let x=u.includes(\"color\"),k=null,N=!1;{let P=c?.values??{};x&&(P=Object.assign({inherit:\"inherit\",transparent:\"transparent\",current:\"currentcolor\"},P)),v.value?v.value.kind===\"arbitrary\"?k=v.value.value:v.value.fraction&&P[v.value.fraction]?(k=P[v.value.fraction],N=!0):P[v.value.value]?k=P[v.value.value]:P.__BARE_VALUE__&&(k=P.__BARE_VALUE__(v.value)??null,N=(v.value.fraction!==null&&k?.includes(\"/\"))??!1):k=P.DEFAULT??null}if(k===null)return;let b;{let P=c?.modifiers??null;v.modifier?P===\"any\"||v.modifier.kind===\"arbitrary\"?b=v.modifier.value:P?.[v.modifier.value]?b=P[v.modifier.value]:x&&!Number.isNaN(Number(v.modifier.value))?b=`${v.modifier.value}%`:b=null:b=null}if(v.modifier&&b===null&&!N)return v.value?.kind===\"arbitrary\"?null:void 0;x&&b!==null&&(k=Z(k,b)),w&&(k=`calc(${k} * -1)`);let S=ae(p(k,{modifier:b}));return Ir(S,g,v.raw),e.current|=Oe(S,r),S}};var f=m;if(!Dr.test(g))throw new Error(`\\`matchUtilities({ '${g}' : \\u2026 })\\` defines an invalid utility name. Utilities should be alphanumeric and start with a lowercase letter, eg. \\`scrollbar\\`.`);c?.supportsNegativeValues&&r.utilities.functional(`-${g}`,m({negative:!0}),{types:u}),r.utilities.functional(g,m({negative:!1}),{types:u}),r.utilities.suggest(g,()=>{let w=c?.values??{},v=new Set(Object.keys(w));v.delete(\"__BARE_VALUE__\"),v.has(\"DEFAULT\")&&(v.delete(\"DEFAULT\"),v.add(null));let x=c?.modifiers??{},k=x===\"any\"?[]:Object.keys(x);return[{supportsNegative:c?.supportsNegativeValues??!1,values:Array.from(v),modifiers:k}]})}},addComponents(a,c){this.addUtilities(a,c)},matchComponents(a,c){this.matchUtilities(a,c)},theme:rt(r,()=>i.theme??{},a=>a),prefix(a){return a},config(a,c){let u=i;if(!a)return u;let f=tt(a);for(let g=0;g<f.length;++g){let p=f[g];if(u[p]===void 0)return c;u=u[p]}return u??c}};return s.addComponents=s.addComponents.bind(s),s.matchComponents=s.matchComponents.bind(s),s}function ae(r){let t=[];r=Array.isArray(r)?r:[r];let i=r.flatMap(e=>Object.entries(e));for(let[e,n]of i)if(typeof n!=\"object\"){if(!e.startsWith(\"--\")){if(n===\"@slot\"){t.push(H(e,[z(\"@slot\")]));continue}e=e.replace(/([A-Z])/g,\"-$1\").toLowerCase()}t.push(l(e,String(n)))}else if(Array.isArray(n))for(let s of n)typeof s==\"string\"?t.push(l(e,s)):t.push(H(e,ae(s)));else n!==null&&t.push(H(e,ae(n)));return t}function Ur(r,t){return(typeof r==\"string\"?[r]:r).flatMap(e=>{if(e.trim().endsWith(\"}\")){let n=e.replace(\"}\",\"{@slot}}\"),s=me(n);return At(s,t),s}else return H(e,t)})}function Ir(r,t,i){D(r,e=>{if(e.kind===\"rule\"){let n=it(e.selector);je(n,s=>{s.kind===\"selector\"&&s.value===`.${t}`&&(s.value=`.${fe(i)}`)}),e.selector=De(n)}})}function Fr(r,t,i){for(let e of Xi(t))r.theme.addKeyframes(e)}function Xi(r){let t=[];if(\"keyframes\"in r.theme)for(let[i,e]of Object.entries(r.theme.keyframes))t.push(z(\"@keyframes\",i,ae(e)));return t}function Lr(r){return{theme:{...Pt,colors:({theme:t})=>t(\"color\",{}),extend:{fontSize:({theme:t})=>({...t(\"text\",{})}),boxShadow:({theme:t})=>({...t(\"shadow\",{})}),animation:({theme:t})=>({...t(\"animate\",{})}),aspectRatio:({theme:t})=>({...t(\"aspect\",{})}),borderRadius:({theme:t})=>({...t(\"radius\",{})}),screens:({theme:t})=>({...t(\"breakpoint\",{})}),letterSpacing:({theme:t})=>({...t(\"tracking\",{})}),lineHeight:({theme:t})=>({...t(\"leading\",{})}),transitionDuration:{DEFAULT:r.get([\"--default-transition-duration\"])??null},transitionTimingFunction:{DEFAULT:r.get([\"--default-transition-timing-function\"])??null},maxWidth:({theme:t})=>({...t(\"container\",{})})}}}}var en={blocklist:[],future:{},prefix:\"\",important:!1,darkMode:null,theme:{},plugins:[],content:{files:[]}};function St(r,t){let i={design:r,configs:[],plugins:[],content:{files:[]},theme:{},extend:{},result:structuredClone(en)};for(let n of t)Nt(i,n);for(let n of i.configs)\"darkMode\"in n&&n.darkMode!==void 0&&(i.result.darkMode=n.darkMode??null),\"prefix\"in n&&n.prefix!==void 0&&(i.result.prefix=n.prefix??\"\"),\"blocklist\"in n&&n.blocklist!==void 0&&(i.result.blocklist=n.blocklist??[]),\"important\"in n&&n.important!==void 0&&(i.result.important=n.important??!1);let e=rn(i);return{resolvedConfig:{...i.result,content:i.content,theme:i.theme,plugins:i.plugins},replacedThemeKeys:e}}function tn(r,t){if(Array.isArray(r)&&$e(r[0]))return r.concat(t);if(Array.isArray(t)&&$e(t[0])&&$e(r))return[r,...t];if(Array.isArray(t))return t}function Nt(r,{config:t,base:i,path:e,reference:n}){let s=[];for(let u of t.plugins??[])\"__isOptionsFunction\"in u?s.push({...u(),reference:n}):\"handler\"in u?s.push({...u,reference:n}):s.push({handler:u,reference:n});if(Array.isArray(t.presets)&&t.presets.length===0)throw new Error(\"Error in the config file/plugin/preset. An empty preset (`preset: []`) is not currently supported.\");for(let u of t.presets??[])Nt(r,{path:e,base:i,config:u,reference:n});for(let u of s)r.plugins.push(u),u.config&&Nt(r,{path:e,base:i,config:u.config,reference:!!u.reference});let a=t.content??[],c=Array.isArray(a)?a:a.files;for(let u of c)r.content.files.push(typeof u==\"object\"?u:{base:i,pattern:u});r.configs.push(t)}function rn(r){let t=new Set,i=rt(r.design,()=>r.theme,n),e=Object.assign(i,{theme:i,colors:Et});function n(s){return typeof s==\"function\"?s(e)??null:s??null}for(let s of r.configs){let a=s.theme??{},c=a.extend??{};for(let u in a)u!==\"extend\"&&t.add(u);Object.assign(r.theme,a);for(let u in c)r.extend[u]??=[],r.extend[u].push(c[u])}delete r.theme.extend;for(let s in r.extend){let a=[r.theme[s],...r.extend[s]];r.theme[s]=()=>{let c=a.map(n);return Ke({},c,tn)}}for(let s in r.theme)r.theme[s]=n(r.theme[s]);if(r.theme.screens&&typeof r.theme.screens==\"object\")for(let s of Object.keys(r.theme.screens)){let a=r.theme.screens[s];a&&typeof a==\"object\"&&(\"raw\"in a||\"max\"in a||\"min\"in a&&(r.theme.screens[s]=a.min))}return t}function zr(r,t){let i=r.theme.container||{};if(typeof i!=\"object\"||i===null)return;let e=nn(i,t);e.length!==0&&t.utilities.static(\"container\",()=>structuredClone(e))}function nn({center:r,padding:t,screens:i},e){let n=[],s=null;if(r&&n.push(l(\"margin-inline\",\"auto\")),(typeof t==\"string\"||typeof t==\"object\"&&t!==null&&\"DEFAULT\"in t)&&n.push(l(\"padding-inline\",typeof t==\"string\"?t:t.DEFAULT)),typeof i==\"object\"&&i!==null){s=new Map;let a=Array.from(e.theme.namespace(\"--breakpoint\").entries());if(a.sort((c,u)=>we(c[1],u[1],\"asc\")),a.length>0){let[c]=a[0];n.push(z(\"@media\",`(width >= --theme(--breakpoint-${c}))`,[l(\"max-width\",\"none\")]))}for(let[c,u]of Object.entries(i)){if(typeof u==\"object\")if(\"min\"in u)u=u.min;else continue;s.set(c,z(\"@media\",`(width >= ${u})`,[l(\"max-width\",u)]))}}if(typeof t==\"object\"&&t!==null){let a=Object.entries(t).filter(([c])=>c!==\"DEFAULT\").map(([c,u])=>[c,e.theme.resolveValue(c,[\"--breakpoint\"]),u]).filter(Boolean);a.sort((c,u)=>we(c[1],u[1],\"asc\"));for(let[c,,u]of a)if(s&&s.has(c))s.get(c).nodes.push(l(\"padding-inline\",u));else{if(s)continue;n.push(z(\"@media\",`(width >= theme(--breakpoint-${c}))`,[l(\"padding-inline\",u)]))}}if(s)for(let[,a]of s)n.push(a);return n}function Mr({addVariant:r,config:t}){let i=t(\"darkMode\",null),[e,n=\".dark\"]=Array.isArray(i)?i:[i];if(e===\"variant\"){let s;if(Array.isArray(n)||typeof n==\"function\"?s=n:typeof n==\"string\"&&(s=[n]),Array.isArray(s))for(let a of s)a===\".dark\"?(e=!1,console.warn('When using `variant` for `darkMode`, you must provide a selector.\\nExample: `darkMode: [\"variant\", \".your-selector &\"]`')):a.includes(\"&\")||(e=!1,console.warn('When using `variant` for `darkMode`, your selector must contain `&`.\\nExample `darkMode: [\"variant\", \".your-selector &\"]`'));n=s}e===null||(e===\"selector\"?r(\"dark\",`&:where(${n}, ${n} *)`):e===\"media\"?r(\"dark\",\"@media (prefers-color-scheme: dark)\"):e===\"variant\"?r(\"dark\",n):e===\"class\"&&r(\"dark\",`&:is(${n} *)`))}function Wr(r){for(let[t,i]of[[\"t\",\"top\"],[\"tr\",\"top right\"],[\"r\",\"right\"],[\"br\",\"bottom right\"],[\"b\",\"bottom\"],[\"bl\",\"bottom left\"],[\"l\",\"left\"],[\"tl\",\"top left\"]])r.utilities.static(`bg-gradient-to-${t}`,()=>[l(\"--tw-gradient-position\",`to ${i} in oklab`),l(\"background-image\",\"linear-gradient(var(--tw-gradient-stops))\")]);r.utilities.static(\"bg-left-top\",()=>[l(\"background-position\",\"left top\")]),r.utilities.static(\"bg-right-top\",()=>[l(\"background-position\",\"right top\")]),r.utilities.static(\"bg-left-bottom\",()=>[l(\"background-position\",\"left bottom\")]),r.utilities.static(\"bg-right-bottom\",()=>[l(\"background-position\",\"right bottom\")]),r.utilities.static(\"object-left-top\",()=>[l(\"object-position\",\"left top\")]),r.utilities.static(\"object-right-top\",()=>[l(\"object-position\",\"right top\")]),r.utilities.static(\"object-left-bottom\",()=>[l(\"object-position\",\"left bottom\")]),r.utilities.static(\"object-right-bottom\",()=>[l(\"object-position\",\"right bottom\")]),r.utilities.functional(\"max-w-screen\",t=>{if(!t.value||t.value.kind===\"arbitrary\")return;let i=r.theme.resolve(t.value.value,[\"--breakpoint\"]);if(i)return[l(\"max-width\",i)]}),r.utilities.static(\"overflow-ellipsis\",()=>[l(\"text-overflow\",\"ellipsis\")]),r.utilities.static(\"decoration-slice\",()=>[l(\"-webkit-box-decoration-break\",\"slice\"),l(\"box-decoration-break\",\"slice\")]),r.utilities.static(\"decoration-clone\",()=>[l(\"-webkit-box-decoration-break\",\"clone\"),l(\"box-decoration-break\",\"clone\")]),r.utilities.functional(\"flex-shrink\",t=>{if(!t.modifier){if(!t.value)return[l(\"flex-shrink\",\"1\")];if(t.value.kind===\"arbitrary\")return[l(\"flex-shrink\",t.value.value)];if(E(t.value.value))return[l(\"flex-shrink\",t.value.value)]}}),r.utilities.functional(\"flex-grow\",t=>{if(!t.modifier){if(!t.value)return[l(\"flex-grow\",\"1\")];if(t.value.kind===\"arbitrary\")return[l(\"flex-grow\",t.value.value)];if(E(t.value.value))return[l(\"flex-grow\",t.value.value)]}})}function Br(r,t){let i=r.theme.screens||{},e=t.variants.get(\"min\")?.order??0,n=[];for(let[a,c]of Object.entries(i)){let m=function(w){t.variants.static(a,v=>{v.nodes=[z(\"@media\",p,v.nodes)]},{order:w})};var s=m;let u=t.variants.get(a),f=t.theme.resolveValue(a,[\"--breakpoint\"]);if(u&&f&&!t.theme.hasDefault(`--breakpoint-${a}`))continue;let g=!0;typeof c==\"string\"&&(g=!1);let p=on(c);g?n.push(m):m(e)}if(n.length!==0){for(let[,a]of t.variants.variants)a.order>e&&(a.order+=n.length);t.variants.compareFns=new Map(Array.from(t.variants.compareFns).map(([a,c])=>(a>e&&(a+=n.length),[a,c])));for(let[a,c]of n.entries())c(e+a+1)}}function on(r){return(Array.isArray(r)?r:[r]).map(i=>typeof i==\"string\"?{min:i}:i&&typeof i==\"object\"?i:null).map(i=>{if(i===null)return null;if(\"raw\"in i)return i.raw;let e=\"\";return i.max!==void 0&&(e+=`${i.max} >= `),e+=\"width\",i.min!==void 0&&(e+=` >= ${i.min}`),`(${e})`}).filter(Boolean).join(\", \")}function qr(r,t){let i=r.theme.aria||{},e=r.theme.supports||{},n=r.theme.data||{};if(Object.keys(i).length>0){let s=t.variants.get(\"aria\"),a=s?.applyFn,c=s?.compounds;t.variants.functional(\"aria\",(u,f)=>{let g=f.value;return g&&g.kind===\"named\"&&g.value in i?a?.(u,{...f,value:{kind:\"arbitrary\",value:i[g.value]}}):a?.(u,f)},{compounds:c})}if(Object.keys(e).length>0){let s=t.variants.get(\"supports\"),a=s?.applyFn,c=s?.compounds;t.variants.functional(\"supports\",(u,f)=>{let g=f.value;return g&&g.kind===\"named\"&&g.value in e?a?.(u,{...f,value:{kind:\"arbitrary\",value:e[g.value]}}):a?.(u,f)},{compounds:c})}if(Object.keys(n).length>0){let s=t.variants.get(\"data\"),a=s?.applyFn,c=s?.compounds;t.variants.functional(\"data\",(u,f)=>{let g=f.value;return g&&g.kind===\"named\"&&g.value in n?a?.(u,{...f,value:{kind:\"arbitrary\",value:n[g.value]}}):a?.(u,f)},{compounds:c})}}var ln=/^[a-z]+$/;async function Jr({designSystem:r,base:t,ast:i,loadModule:e,sources:n}){let s=0,a=[],c=[];D(i,(p,{parent:m,replaceWith:w,context:v})=>{if(p.kind===\"at-rule\"){if(p.name===\"@plugin\"){if(m!==null)throw new Error(\"`@plugin` cannot be nested.\");let x=p.params.slice(1,-1);if(x.length===0)throw new Error(\"`@plugin` must have a path.\");let k={};for(let N of p.nodes??[]){if(N.kind!==\"declaration\")throw new Error(`Unexpected \\`@plugin\\` option:\n\n${ne([N])}\n\n\\`@plugin\\` options must be a flat list of declarations.`);if(N.value===void 0)continue;let b=N.value,S=U(b,\",\").map(P=>{if(P=P.trim(),P===\"null\")return null;if(P===\"true\")return!0;if(P===\"false\")return!1;if(Number.isNaN(Number(P))){if(P[0]==='\"'&&P[P.length-1]==='\"'||P[0]===\"'\"&&P[P.length-1]===\"'\")return P.slice(1,-1);if(P[0]===\"{\"&&P[P.length-1]===\"}\")throw new Error(`Unexpected \\`@plugin\\` option: Value of declaration \\`${ne([N]).trim()}\\` is not supported.\n\nUsing an object as a plugin option is currently only supported in JavaScript configuration files.`)}else return Number(P);return P});k[N.property]=S.length===1?S[0]:S}a.push([{id:x,base:v.base,reference:!!v.reference},Object.keys(k).length>0?k:null]),w([]),s|=4;return}if(p.name===\"@config\"){if(p.nodes.length>0)throw new Error(\"`@config` cannot have a body.\");if(m!==null)throw new Error(\"`@config` cannot be nested.\");c.push({id:p.params.slice(1,-1),base:v.base,reference:!!v.reference}),w([]),s|=4;return}}}),Wr(r);let u=r.resolveThemeValue;if(r.resolveThemeValue=function(m,w){return m.startsWith(\"--\")?u(m,w):(s|=Gr({designSystem:r,base:t,ast:i,sources:n,configs:[],pluginDetails:[]}),r.resolveThemeValue(m,w))},!a.length&&!c.length)return 0;let[f,g]=await Promise.all([Promise.all(c.map(async({id:p,base:m,reference:w})=>{let v=await e(p,m,\"config\");return{path:p,base:v.base,config:v.module,reference:w}})),Promise.all(a.map(async([{id:p,base:m,reference:w},v])=>{let x=await e(p,m,\"plugin\");return{path:p,base:x.base,plugin:x.module,options:v,reference:w}}))]);return s|=Gr({designSystem:r,base:t,ast:i,sources:n,configs:f,pluginDetails:g}),s}function Gr({designSystem:r,base:t,ast:i,sources:e,configs:n,pluginDetails:s}){let a=0,u=[...s.map(k=>{if(!k.options)return{config:{plugins:[k.plugin]},base:k.base,reference:k.reference};if(\"__isOptionsFunction\"in k.plugin)return{config:{plugins:[k.plugin(k.options)]},base:k.base,reference:k.reference};throw new Error(`The plugin \"${k.path}\" does not accept options`)}),...n],{resolvedConfig:f}=St(r,[{config:Lr(r.theme),base:t,reference:!0},...u,{config:{plugins:[Mr]},base:t,reference:!0}]),{resolvedConfig:g,replacedThemeKeys:p}=St(r,u),m=r.resolveThemeValue;r.resolveThemeValue=function(N,b){if(N[0]===\"-\"&&N[1]===\"-\")return m(N,b);let S=v.theme(N,void 0);if(Array.isArray(S)&&S.length===2)return S[0];if(Array.isArray(S))return S.join(\", \");if(typeof S==\"string\")return S};let w={designSystem:r,ast:i,resolvedConfig:f,featuresRef:{set current(k){a|=k}}},v=Vt({...w,referenceMode:!1}),x;for(let{handler:k,reference:N}of f.plugins)N?(x||=Vt({...w,referenceMode:!0}),k(x)):k(v);if(xr(r,g,p),Fr(r,g,p),qr(g,r),Br(g,r),zr(g,r),!r.theme.prefix&&f.prefix){if(f.prefix.endsWith(\"-\")&&(f.prefix=f.prefix.slice(0,-1),console.warn(`The prefix \"${f.prefix}\" is invalid. Prefixes must be lowercase ASCII letters (a-z) only and is written as a variant before all utilities. We have fixed up the prefix for you. Remove the trailing \\`-\\` to silence this warning.`)),!ln.test(f.prefix))throw new Error(`The prefix \"${f.prefix}\" is invalid. Prefixes must be lowercase ASCII letters (a-z) only.`);r.theme.prefix=f.prefix}if(!r.important&&f.important===!0&&(r.important=!0),typeof f.important==\"string\"){let k=f.important;D(i,(N,{replaceWith:b,parent:S})=>{if(N.kind===\"at-rule\"&&!(N.name!==\"@tailwind\"||N.params!==\"utilities\"))return S?.kind===\"rule\"&&S.selector===k?2:(b(M(k,[N])),2)})}for(let k of f.blocklist)r.invalidCandidates.add(k);for(let k of f.content.files){if(\"raw\"in k)throw new Error(`Error in the config file/plugin/preset. The \\`content\\` key contains a \\`raw\\` entry:\n\n${JSON.stringify(k,null,2)}\n\nThis feature is not currently supported.`);let N=!1;k.pattern[0]==\"!\"&&(N=!0,k.pattern=k.pattern.slice(1)),e.push({...k,negated:N})}return a}function Hr(r){let t=[0];for(let n=0;n<r.length;n++)r.charCodeAt(n)===10&&t.push(n+1);function i(n){let s=0,a=t.length;for(;a>0;){let u=(a|0)>>1,f=s+u;t[f]<=n?(s=f+1,a=a-u-1):a=u}s-=1;let c=n-t[s];return{line:s+1,column:c}}function e({line:n,column:s}){n-=1,n=Math.min(Math.max(n,0),t.length-1);let a=t[n],c=t[n+1]??a;return Math.min(Math.max(a+s,0),c)}return{find:i,findOffset:e}}function Yr({ast:r}){let t=new W(n=>Hr(n.code)),i=new W(n=>({url:n.file,content:n.code,ignore:!1})),e={file:null,sources:[],mappings:[]};D(r,n=>{if(!n.src||!n.dst)return;let s=i.get(n.src[0]);if(!s.content)return;let a=t.get(n.src[0]),c=t.get(n.dst[0]),u=s.content.slice(n.src[1],n.src[2]),f=0;for(let m of u.split(`\n`)){if(m.trim()!==\"\"){let w=a.find(n.src[1]+f),v=c.find(n.dst[1]);e.mappings.push({name:null,originalPosition:{source:s,...w},generatedPosition:v})}f+=m.length,f+=1}let g=a.find(n.src[2]),p=c.find(n.dst[2]);e.mappings.push({name:null,originalPosition:{source:s,...g},generatedPosition:p})});for(let n of t.keys())e.sources.push(i.get(n));return e.mappings.sort((n,s)=>n.generatedPosition.line-s.generatedPosition.line||n.generatedPosition.column-s.generatedPosition.column||(n.originalPosition?.line??0)-(s.originalPosition?.line??0)||(n.originalPosition?.column??0)-(s.originalPosition?.column??0)),e}var Zr=/^(-?\\d+)\\.\\.(-?\\d+)(?:\\.\\.(-?\\d+))?$/;function nt(r){let t=r.indexOf(\"{\");if(t===-1)return[r];let i=[],e=r.slice(0,t),n=r.slice(t),s=0,a=n.lastIndexOf(\"}\");for(let p=0;p<n.length;p++){let m=n[p];if(m===\"{\")s++;else if(m===\"}\"&&(s--,s===0)){a=p;break}}if(a===-1)throw new Error(`The pattern \\`${r}\\` is not balanced.`);let c=n.slice(1,a),u=n.slice(a+1),f;an(c)?f=sn(c):f=U(c,\",\"),f=f.flatMap(p=>nt(p));let g=nt(u);for(let p of g)for(let m of f)i.push(e+m+p);return i}function an(r){return Zr.test(r)}function sn(r){let t=r.match(Zr);if(!t)return[r];let[,i,e,n]=t,s=n?parseInt(n,10):void 0,a=[];if(/^-?\\d+$/.test(i)&&/^-?\\d+$/.test(e)){let c=parseInt(i,10),u=parseInt(e,10);if(s===void 0&&(s=c<=u?1:-1),s===0)throw new Error(\"Step cannot be zero in sequence expansion.\");let f=c<u;f&&s<0&&(s=-s),!f&&s>0&&(s=-s);for(let g=c;f?g<=u:g>=u;g+=s)a.push(g.toString())}return a}var un=/^[a-z]+$/,pt=(n=>(n[n.None=0]=\"None\",n[n.AtProperty=1]=\"AtProperty\",n[n.ColorMix=2]=\"ColorMix\",n[n.All=3]=\"All\",n))(pt||{});function fn(){throw new Error(\"No `loadModule` function provided to `compile`\")}function cn(){throw new Error(\"No `loadStylesheet` function provided to `compile`\")}function dn(r){let t=0,i=null;for(let e of U(r,\" \"))e===\"reference\"?t|=2:e===\"inline\"?t|=1:e===\"default\"?t|=4:e===\"static\"?t|=8:e.startsWith(\"prefix(\")&&e.endsWith(\")\")&&(i=e.slice(7,-1));return[t,i]}var Pe=(c=>(c[c.None=0]=\"None\",c[c.AtApply=1]=\"AtApply\",c[c.AtImport=2]=\"AtImport\",c[c.JsPluginCompat=4]=\"JsPluginCompat\",c[c.ThemeFunction=8]=\"ThemeFunction\",c[c.Utilities=16]=\"Utilities\",c[c.Variants=32]=\"Variants\",c))(Pe||{});async function Qr(r,{base:t=\"\",from:i,loadModule:e=fn,loadStylesheet:n=cn}={}){let s=0;r=[le({base:t},r)],s|=await $t(r,t,n,0,i!==void 0);let a=null,c=new Be,u=[],f=[],g=null,p=null,m=[],w=[],v=[],x=[],k=null;D(r,(b,{parent:S,replaceWith:P,context:j})=>{if(b.kind===\"at-rule\"){if(b.name===\"@tailwind\"&&(b.params===\"utilities\"||b.params.startsWith(\"utilities\"))){if(p!==null){P([]);return}if(j.reference){P([]);return}let K=U(b.params,\" \");for(let F of K)if(F.startsWith(\"source(\")){let O=F.slice(7,-1);if(O===\"none\"){k=O;continue}if(O[0]==='\"'&&O[O.length-1]!=='\"'||O[0]===\"'\"&&O[O.length-1]!==\"'\"||O[0]!==\"'\"&&O[0]!=='\"')throw new Error(\"`source(\\u2026)` paths must be quoted.\");k={base:j.sourceBase??j.base,pattern:O.slice(1,-1)}}p=b,s|=16}if(b.name===\"@utility\"){if(S!==null)throw new Error(\"`@utility` cannot be nested.\");if(b.nodes.length===0)throw new Error(`\\`@utility ${b.params}\\` is empty. Utilities should include at least one property.`);let K=ur(b);if(K===null)throw new Error(`\\`@utility ${b.params}\\` defines an invalid utility name. Utilities should be alphanumeric and start with a lowercase letter.`);f.push(K)}if(b.name===\"@source\"){if(b.nodes.length>0)throw new Error(\"`@source` cannot have a body.\");if(S!==null)throw new Error(\"`@source` cannot be nested.\");let K=!1,F=!1,O=b.params;if(O[0]===\"n\"&&O.startsWith(\"not \")&&(K=!0,O=O.slice(4)),O[0]===\"i\"&&O.startsWith(\"inline(\")&&(F=!0,O=O.slice(7,-1)),O[0]==='\"'&&O[O.length-1]!=='\"'||O[0]===\"'\"&&O[O.length-1]!==\"'\"||O[0]!==\"'\"&&O[0]!=='\"')throw new Error(\"`@source` paths must be quoted.\");let G=O.slice(1,-1);if(F){let L=K?x:v,q=U(G,\" \");for(let X of q)for(let re of nt(X))L.push(re)}else w.push({base:j.base,pattern:G,negated:K});P([]);return}if(b.name===\"@variant\"&&(S===null?b.nodes.length===0?b.name=\"@custom-variant\":(D(b.nodes,K=>{if(K.kind===\"at-rule\"&&K.name===\"@slot\")return b.name=\"@custom-variant\",2}),b.name===\"@variant\"&&m.push(b)):m.push(b)),b.name===\"@custom-variant\"){if(S!==null)throw new Error(\"`@custom-variant` cannot be nested.\");P([]);let[K,F]=U(b.params,\" \");if(!Xe.test(K))throw new Error(`\\`@custom-variant ${K}\\` defines an invalid variant name. Variants should only contain alphanumeric, dashes or underscore characters.`);if(b.nodes.length>0&&F)throw new Error(`\\`@custom-variant ${K}\\` cannot have both a selector and a body.`);if(b.nodes.length===0){if(!F)throw new Error(`\\`@custom-variant ${K}\\` has no selector or body.`);let O=U(F.slice(1,-1),\",\");if(O.length===0||O.some(q=>q.trim()===\"\"))throw new Error(`\\`@custom-variant ${K} (${O.join(\",\")})\\` selector is invalid.`);let G=[],L=[];for(let q of O)q=q.trim(),q[0]===\"@\"?G.push(q):L.push(q);u.push(q=>{q.variants.static(K,X=>{let re=[];L.length>0&&re.push(M(L.join(\", \"),X.nodes));for(let o of G)re.push(H(o,X.nodes));X.nodes=re},{compounds:ye([...L,...G])})});return}else{u.push(O=>{O.variants.fromAst(K,b.nodes)});return}}if(b.name===\"@media\"){let K=U(b.params,\" \"),F=[];for(let O of K)if(O.startsWith(\"source(\")){let G=O.slice(7,-1);D(b.nodes,(L,{replaceWith:q})=>{if(L.kind===\"at-rule\"&&L.name===\"@tailwind\"&&L.params===\"utilities\")return L.params+=` source(${G})`,q([le({sourceBase:j.base},[L])]),2})}else if(O.startsWith(\"theme(\")){let G=O.slice(6,-1),L=G.includes(\"reference\");D(b.nodes,q=>{if(q.kind!==\"at-rule\"){if(L)throw new Error('Files imported with `@import \"\\u2026\" theme(reference)` must only contain `@theme` blocks.\\nUse `@reference \"\\u2026\";` instead.');return 0}if(q.name===\"@theme\")return q.params+=\" \"+G,1})}else if(O.startsWith(\"prefix(\")){let G=O.slice(7,-1);D(b.nodes,L=>{if(L.kind===\"at-rule\"&&L.name===\"@theme\")return L.params+=` prefix(${G})`,1})}else O===\"important\"?a=!0:O===\"reference\"?b.nodes=[le({reference:!0},b.nodes)]:F.push(O);F.length>0?b.params=F.join(\" \"):K.length>0&&P(b.nodes)}if(b.name===\"@theme\"){let[K,F]=dn(b.params);if(j.reference&&(K|=2),F){if(!un.test(F))throw new Error(`The prefix \"${F}\" is invalid. Prefixes must be lowercase ASCII letters (a-z) only.`);c.prefix=F}return D(b.nodes,O=>{if(O.kind===\"at-rule\"&&O.name===\"@keyframes\")return c.addKeyframes(O),1;if(O.kind===\"comment\")return;if(O.kind===\"declaration\"&&O.property.startsWith(\"--\")){c.add(ge(O.property),O.value??\"\",K,O.src);return}let G=ne([z(b.name,b.params,[O])]).split(`\n`).map((L,q,X)=>`${q===0||q>=X.length-2?\" \":\">\"} ${L}`).join(`\n`);throw new Error(`\\`@theme\\` blocks must only contain custom properties or \\`@keyframes\\`.\n\n${G}`)}),g?P([]):(g=M(\":root, :host\",[]),g.src=b.src,P([g])),1}}});let N=vr(c);if(a&&(N.important=a),x.length>0)for(let b of x)N.invalidCandidates.add(b);s|=await Jr({designSystem:N,base:t,ast:r,loadModule:e,sources:w});for(let b of u)b(N);for(let b of f)b(N);if(g){let b=[];for(let[P,j]of N.theme.entries()){if(j.options&2)continue;let K=l(fe(P),j.value);K.src=j.src,b.push(K)}let S=N.theme.getKeyframes();for(let P of S)r.push(le({theme:!0},[I([P])]));g.nodes=[le({theme:!0},b)]}if(p){let b=p;b.kind=\"context\",b.context={}}if(m.length>0){for(let b of m){let S=M(\"&\",b.nodes),P=b.params,j=N.parseVariant(P);if(j===null)throw new Error(`Cannot use \\`@variant\\` with unknown variant: ${P}`);if(Ae(S,j,N.variants)===null)throw new Error(`Cannot use \\`@variant\\` with variant: ${P}`);Object.assign(b,S)}s|=32}return s|=xe(r,N),s|=Oe(r,N),D(r,(b,{replaceWith:S})=>{if(b.kind===\"at-rule\")return b.name===\"@utility\"&&S([]),1}),{designSystem:N,ast:r,sources:w,root:k,utilitiesNode:p,features:s,inlineCandidates:v}}async function pn(r,t={}){let{designSystem:i,ast:e,sources:n,root:s,utilitiesNode:a,features:c,inlineCandidates:u}=await Qr(r,t);e.unshift(We(`! tailwindcss v${Rt} | MIT License | https://tailwindcss.com `));function f(v){i.invalidCandidates.add(v)}let g=new Set,p=null,m=0,w=!1;for(let v of u)i.invalidCandidates.has(v)||(g.add(v),w=!0);return{sources:n,root:s,features:c,build(v){if(c===0)return r;if(!a)return p??=ve(e,i,t.polyfills),p;let x=w,k=!1;w=!1;let N=g.size;for(let S of v)if(!i.invalidCandidates.has(S))if(S[0]===\"-\"&&S[1]===\"-\"){let P=i.theme.markUsedVariable(S);x||=P,k||=P}else g.add(S),x||=g.size!==N;if(!x)return p??=ve(e,i,t.polyfills),p;let b=de(g,i,{onInvalidCandidate:f}).astNodes;return t.from&&D(b,S=>{S.src??=a.src}),!k&&m===b.length?(p??=ve(e,i,t.polyfills),p):(m=b.length,a.nodes=b,p=ve(e,i,t.polyfills),p)}}}async function xa(r,t={}){let i=me(r,{from:t.from}),e=await pn(i,t),n=i,s=r;return{...e,build(a){let c=e.build(a);return c===n||(s=ne(c,!!t.from),n=c),s},buildSourceMap(){return Yr({ast:n})}}}async function Aa(r,t={}){return(await Qr(me(r),t)).designSystem}function mn(){throw new Error(\"It looks like you're trying to use `tailwindcss` directly as a PostCSS plugin. The PostCSS plugin has moved to a separate package, so to continue using Tailwind CSS with PostCSS you'll need to install `@tailwindcss/postcss` and update your PostCSS configuration.\")}export{pt as a,Pe as b,pn as c,xa as d,Aa as e,mn as f};\n",
|
|
47
|
+
"import{a,b,c,d,e,f}from\"./chunk-U7LQKMN6.mjs\";import\"./chunk-P5FH2LZE.mjs\";import\"./chunk-HTB5LLOP.mjs\";export{b as Features,a as Polyfills,e as __unstable__loadDesignSystem,d as compile,c as compileAst,f as default};\n",
|
|
48
|
+
"/* Persistent Tailwind v4 compiler for incremental dev rebuilds.\n\n The naive path (re-running bun.build with bun-plugin-tailwind) pays the\n bundler init cost on every HMR tick. For a dev workflow where most edits\n only add or remove a few utility classes, that's wasted work — Tailwind v4\n has a per-candidate cache built into its compiler, but only if you keep\n the compiler instance alive.\n\n This module mirrors the strategy used by @tailwindcss/vite: hold one\n compiled instance keyed by the input CSS path, scan only changed files\n for new candidate tokens, and call `compiler.build(allCandidates)` to\n produce CSS. Tailwind reuses its internal cache for candidates it has\n already compiled, so the marginal cost per HMR is just the file scan\n plus CSS serialization.\n\n We also content-hash the emitted CSS and skip the broadcast (and the\n disk write) when it hasn't changed — this avoids needless browser\n stylesheet refetches when an edit doesn't add/remove any utilities. */\n\nimport { createHash } from 'node:crypto';\nimport { existsSync, readFileSync } from 'node:fs';\nimport { readFile, stat } from 'node:fs/promises';\nimport { dirname, isAbsolute, resolve } from 'node:path';\nimport { compileStyleSource } from './stylePreprocessor';\nimport type {\n\tStylePreprocessorConfig,\n\tTailwindConfig\n} from '../../types/build';\n\ntype TailwindCompile = typeof import('tailwindcss').compile;\ntype TailwindCompiler = Awaited<ReturnType<TailwindCompile>>;\ntype TailwindSource = TailwindCompiler['sources'][number];\n\ntype CompilerEntry = {\n\tcompiler: TailwindCompiler;\n\tcssPath: string;\n\tcssMtimeMs: number;\n\tsources: TailwindSource[];\n\t/* Every CSS file the compiler pulled in via @import (the input CSS\n\t itself plus anything it transitively loaded). If one of these changes,\n\t the parsed AST is stale and we have to rebuild the compiler — Tailwind\n\t only resolves imports once at compile() time. */\n\tcssDependencies: Map<string, number>;\n\t/* Ref-counted union of candidates across the whole source tree. We\n\t count rather than track presence so that a class still referenced by\n\t another file isn't dropped when it disappears from one. */\n\tcandidateCounts: Map<string, number>;\n\tperFileCandidates: Map<string, Set<string>>;\n\tlastEmittedHash: string | null;\n};\n\n/* Cache one compiler per absolute input-CSS path. Multiple entries are\n possible if a project ever wires more than one Tailwind input, though in\n practice there's usually just one. */\nconst compilerCache = new Map<string, CompilerEntry>();\n\nlet cachedTailwindCompile: TailwindCompile | null = null;\n\nconst loadTailwindCompile = async () => {\n\tif (cachedTailwindCompile) return cachedTailwindCompile;\n\ttry {\n\t\tconst mod = await import('tailwindcss');\n\n\t\tcachedTailwindCompile = mod.compile;\n\n\t\treturn mod.compile;\n\t} catch {\n\t\tthrow new Error(\n\t\t\t'Tailwind incremental dev compiler requires `tailwindcss` to be installed.'\n\t\t);\n\t}\n};\n\nconst recordDependency = async (deps: Map<string, number>, path: string) => {\n\ttry {\n\t\tconst mtime = (await stat(path)).mtimeMs;\n\t\tdeps.set(path, mtime);\n\t} catch {\n\t\tdeps.set(path, 0);\n\t}\n};\n\n/* Resolve a bare specifier (e.g. `tailwindcss`) to its CSS entry point.\n\n Bun's default resolver follows the `import` / `require` conditions and\n would hand back the package's JS entry (e.g. `tailwindcss/dist/lib.mjs`).\n Tailwind's `@import \"tailwindcss\"` is a *CSS* import — it needs the\n `style` exports condition (or a sensible fallback) instead.\n\n The strategy:\n 1. Resolve `<id>/package.json` to find the package directory.\n 2. Look at `exports[\".\"].style` — Tailwind v4 sets this; it's the\n modern way to expose a CSS entry from a package.\n 3. Fall back to the legacy top-level `style` field.\n 4. Fall back to common file conventions (`index.css`, `dist/index.css`).\n\n Anything not in that shape (subpath imports like `tailwindcss/preflight`)\n falls through to Bun's regular resolver, which handles `.css` subpaths\n correctly. */\nconst resolveBareCssImport = (id: string, base: string) => {\n\tconst slashIndex = id.indexOf('/');\n\tconst pkgName = id.startsWith('@')\n\t\t? id.split('/').slice(0, 2).join('/')\n\t\t: slashIndex === -1\n\t\t\t? id\n\t\t\t: id.slice(0, slashIndex);\n\tconst subpath = id.slice(pkgName.length);\n\n\tif (subpath !== '') {\n\t\treturn Bun.resolveSync(id, base);\n\t}\n\n\tlet pkgJsonPath: string;\n\ttry {\n\t\tpkgJsonPath = Bun.resolveSync(`${pkgName}/package.json`, base);\n\t} catch {\n\t\treturn Bun.resolveSync(id, base);\n\t}\n\n\tconst pkgDir = dirname(pkgJsonPath);\n\tlet pkg: Record<string, unknown> = {};\n\ttry {\n\t\tpkg = JSON.parse(readFileSync(pkgJsonPath, 'utf-8'));\n\t} catch {\n\t\treturn Bun.resolveSync(id, base);\n\t}\n\n\tconst exportsField = pkg.exports as\n\t\t| { '.'?: { style?: string } }\n\t\t| undefined;\n\tconst styleFromExports = exportsField?.['.']?.style;\n\tconst candidates = [\n\t\tstyleFromExports,\n\t\ttypeof pkg.style === 'string' ? pkg.style : undefined,\n\t\t'index.css',\n\t\t'dist/index.css'\n\t].filter((entry): entry is string => typeof entry === 'string');\n\n\tfor (const candidate of candidates) {\n\t\tconst candidatePath = resolve(pkgDir, candidate);\n\t\tif (existsSync(candidatePath)) return candidatePath;\n\t}\n\n\treturn Bun.resolveSync(id, base);\n};\n\n/* Resolve `@import` and `@source` paths relative to the importing file.\n The factory closes over the dependency map so every imported stylesheet\n is tracked for change detection. */\nconst createLoadStylesheet =\n\t(deps: Map<string, number>) => async (id: string, base: string) => {\n\t\tconst path =\n\t\t\tid.startsWith('.') || isAbsolute(id)\n\t\t\t\t? resolve(base, id)\n\t\t\t\t: resolveBareCssImport(id, base);\n\t\tconst content = await readFile(path, 'utf-8');\n\t\tawait recordDependency(deps, path);\n\n\t\treturn { base: dirname(path), content, path };\n\t};\n\nconst loadModule = async (\n\tid: string,\n\tbase: string,\n\t_kind: 'plugin' | 'config'\n) => {\n\tconst path =\n\t\tid.startsWith('.') || isAbsolute(id)\n\t\t\t? resolve(base, id)\n\t\t\t: Bun.resolveSync(id, base);\n\tconst module = await import(path);\n\n\treturn { base: dirname(path), module, path };\n};\n\nconst buildCompilerEntry = async (cssPath: string): Promise<CompilerEntry> => {\n\tconst compile = await loadTailwindCompile();\n\tconst absPath = resolve(cssPath);\n\tconst css = await readFile(absPath, 'utf-8');\n\tconst cssMtimeMs = (await stat(absPath)).mtimeMs;\n\tconst cssDependencies = new Map<string, number>();\n\tcssDependencies.set(absPath, cssMtimeMs);\n\tconst compiler = await compile(css, {\n\t\tbase: dirname(absPath),\n\t\tloadModule,\n\t\tloadStylesheet: createLoadStylesheet(cssDependencies)\n\t});\n\n\treturn {\n\t\tcandidateCounts: new Map<string, number>(),\n\t\tcompiler,\n\t\tcssDependencies,\n\t\tcssMtimeMs,\n\t\tcssPath: absPath,\n\t\tlastEmittedHash: null,\n\t\tperFileCandidates: new Map(),\n\t\tsources: [...compiler.sources]\n\t};\n};\n\n/* Permissive candidate extractor — matches anything that *could* be a\n Tailwind utility class. The compiler discards inputs that don't resolve\n to real utilities, so a superset is fine.\n\n The class character set covers v4 syntax including:\n - variants : `hover:`, `dark:`, `md:`, `data-[open]:`\n - modifiers : `text-blue/50`\n - arbitraries: `bg-[var(--c)]`, `min-h-[260px]`, `bg-[#fff]`\n - negation : `-mx-4`, `!important`\n - groups : `group-hover:opacity-50`\n\n Tokens must start with a letter / `-` / `!` (so we don't pull in pure\n numbers) and end with a word char or `]` or `)` (so we don't include\n trailing punctuation). */\nconst CANDIDATE_PATTERN = /[A-Za-z!\\-_][\\w:\\-/[\\]().!,#%@&]*[\\w\\])]/g;\n\nexport const extractCandidates = (source: string) => {\n\tconst out = new Set<string>();\n\tfor (const match of source.matchAll(CANDIDATE_PATTERN)) {\n\t\tout.add(match[0]);\n\t}\n\n\treturn out;\n};\n\nconst hashCss = (css: string) => createHash('sha1').update(css).digest('hex');\n\n// Match a file path against a Tailwind `@source` pattern.\n//\n// Tailwind hands us sources as { base, pattern, negated } where pattern\n// is interpreted relative to base and may contain `..` segments to walk\n// up the tree. `path.resolve(base, pattern)` collapses the `..` while\n// leaving the glob metacharacters intact, giving us an absolute glob\n// pattern that we can match against the absolute file path directly —\n// no prefix-and-substring dance, no glob-aware path walking.\nconst fileMatchesSources = (file: string, sources: TailwindSource[]) => {\n\tif (sources.length === 0) return true;\n\tconst absFile = resolve(file);\n\tfor (const source of sources) {\n\t\tif (source.negated) continue;\n\t\tconst absolutePattern = resolve(source.base, source.pattern);\n\t\t// A literal `@source \"./foo.html\"` (no glob metachars) just needs\n\t\t// path equality, not Bun.Glob matching.\n\t\tif (!/[*?{[]/.test(absolutePattern)) {\n\t\t\tif (absolutePattern === absFile) return true;\n\t\t\tcontinue;\n\t\t}\n\t\tconst glob = new Bun.Glob(absolutePattern);\n\t\tif (glob.match(absFile)) return true;\n\t}\n\n\treturn false;\n};\n\nconst incrementCandidateCount = (entry: CompilerEntry, candidate: string) => {\n\tconst current = entry.candidateCounts.get(candidate) ?? 0;\n\tentry.candidateCounts.set(candidate, current + 1);\n};\n\nconst decrementCandidateCount = (entry: CompilerEntry, candidate: string) => {\n\tconst current = entry.candidateCounts.get(candidate) ?? 0;\n\tconst next = current - 1;\n\tif (next <= 0) {\n\t\tentry.candidateCounts.delete(candidate);\n\n\t\treturn;\n\t}\n\tentry.candidateCounts.set(candidate, next);\n};\n\nconst replaceFileCandidates = (\n\tentry: CompilerEntry,\n\tfile: string,\n\tfreshCandidates: Set<string>\n) => {\n\tconst previous = entry.perFileCandidates.get(file);\n\tif (previous) {\n\t\tfor (const candidate of previous)\n\t\t\tdecrementCandidateCount(entry, candidate);\n\t}\n\tentry.perFileCandidates.set(file, freshCandidates);\n\tfor (const candidate of freshCandidates)\n\t\tincrementCandidateCount(entry, candidate);\n};\n\n// Split an absolute glob like /abs/src/frontend/<glob> into a literal\n// scan root (/abs/src/frontend) and a relative glob portion. Bun.Glob.scan\n// needs a real directory as `cwd`; passing a glob there silently scans\n// nothing.\nconst splitGlobAtFirstMeta = (absolutePattern: string) => {\n\tconst firstMetaIndex = absolutePattern.search(/[*?{[]/);\n\tif (firstMetaIndex === -1) {\n\t\treturn { glob: '', root: absolutePattern };\n\t}\n\tconst lastSlashBeforeMeta = absolutePattern.lastIndexOf(\n\t\t'/',\n\t\tfirstMetaIndex\n\t);\n\n\treturn {\n\t\tglob: absolutePattern.slice(lastSlashBeforeMeta + 1),\n\t\troot: absolutePattern.slice(0, lastSlashBeforeMeta) || '/'\n\t};\n};\n\nconst collectFilesForSources = async (sources: TailwindSource[]) => {\n\tconst seen = new Set<string>();\n\tconst collected: string[] = [];\n\tconst scans = sources\n\t\t.filter((source) => !source.negated)\n\t\t.map(async (source) => {\n\t\t\tconst absolutePattern = resolve(source.base, source.pattern);\n\t\t\tconst { glob: relativePattern, root } =\n\t\t\t\tsplitGlobAtFirstMeta(absolutePattern);\n\t\t\t// Literal source path (no glob metachars) — Tailwind v4 lets\n\t\t\t// `@source \"./foo.html\"` reference a single file, so just\n\t\t\t// return it directly if it exists.\n\t\t\tif (!relativePattern) {\n\t\t\t\ttry {\n\t\t\t\t\tconst stats = await stat(absolutePattern);\n\t\t\t\t\treturn stats.isFile() ? [absolutePattern] : [];\n\t\t\t\t} catch {\n\t\t\t\t\treturn [];\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst glob = new Bun.Glob(relativePattern);\n\t\t\tconst matches: string[] = [];\n\t\t\tfor await (const relative of glob.scan({\n\t\t\t\tabsolute: false,\n\t\t\t\tcwd: root,\n\t\t\t\tonlyFiles: true\n\t\t\t})) {\n\t\t\t\tmatches.push(resolve(root, relative));\n\t\t\t}\n\n\t\t\treturn matches;\n\t\t});\n\tconst results = await Promise.all(scans);\n\tfor (const absolute of results.flat()) {\n\t\tif (seen.has(absolute)) continue;\n\t\tseen.add(absolute);\n\t\tcollected.push(absolute);\n\t}\n\n\treturn collected;\n};\n\nconst ingestFile = async (entry: CompilerEntry, absolute: string) => {\n\ttry {\n\t\tconst text = await readFile(absolute, 'utf-8');\n\t\treplaceFileCandidates(entry, absolute, extractCandidates(text));\n\t} catch {\n\t\t// File vanished between glob and read — skip silently.\n\t}\n};\n\nconst populateCandidatesFromAllSources = async (entry: CompilerEntry) => {\n\tconst files = await collectFilesForSources(entry.sources);\n\tawait Promise.all(files.map((file) => ingestFile(entry, file)));\n};\n\nconst isCompilerStale = async (entry: CompilerEntry) => {\n\tconst checks = [...entry.cssDependencies.entries()].map(\n\t\tasync ([path, knownMtime]) => {\n\t\t\ttry {\n\t\t\t\tconst mtime = (await stat(path)).mtimeMs;\n\n\t\t\t\treturn mtime !== knownMtime;\n\t\t\t} catch {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t);\n\tconst results = await Promise.all(checks);\n\n\treturn results.some(Boolean);\n};\n\nconst getCompilerEntry = async (cssPath: string) => {\n\tconst key = resolve(cssPath);\n\tconst cached = compilerCache.get(key);\n\tif (cached && !(await isCompilerStale(cached))) return cached;\n\n\tconst fresh = await buildCompilerEntry(cssPath);\n\tawait populateCandidatesFromAllSources(fresh);\n\tcompilerCache.set(key, fresh);\n\n\treturn fresh;\n};\n\n/* Drop the cached compiler — used when the dev server stops or the\n Tailwind input CSS itself changes and needs a full re-parse. */\nexport const disposeTailwindCompiler = (cssPath?: string) => {\n\tif (!cssPath) {\n\t\tcompilerCache.clear();\n\n\t\treturn;\n\t}\n\tcompilerCache.delete(resolve(cssPath));\n};\n\n/* Run a fast incremental Tailwind build. Returns whether the emitted CSS\n actually changed — callers can use that to skip the broadcast. */\nexport const incrementalTailwindBuild = async (\n\ttailwind: TailwindConfig,\n\tbuildPath: string,\n\tchangedFiles: string[],\n\tstyleTransformConfig?: StylePreprocessorConfig\n) => {\n\tconst startedAt = performance.now();\n\tconst entry = await getCompilerEntry(tailwind.input);\n\tconst inputAbs = entry.cssPath;\n\tconst filesToRescan: string[] = [];\n\n\tfor (const file of changedFiles) {\n\t\tconst abs = resolve(file);\n\t\tif (abs === inputAbs) continue;\n\t\tif (!fileMatchesSources(abs, entry.sources)) continue;\n\t\tfilesToRescan.push(abs);\n\t}\n\n\tawait Promise.all(filesToRescan.map((file) => ingestFile(entry, file)));\n\n\tconst rawCss = entry.compiler.build([...entry.candidateCounts.keys()]);\n\tconst outputPath = resolve(buildPath, tailwind.output);\n\tconst finalCss = await compileStyleSource(\n\t\toutputPath,\n\t\trawCss,\n\t\t'css',\n\t\tstyleTransformConfig\n\t);\n\tconst hash = hashCss(finalCss);\n\tconst durationMs = performance.now() - startedAt;\n\n\tif (hash === entry.lastEmittedHash) {\n\t\treturn { cssChanged: false, durationMs };\n\t}\n\n\tawait Bun.write(outputPath, finalCss);\n\tentry.lastEmittedHash = hash;\n\n\treturn { cssChanged: true, durationMs };\n};\n\n/* Pre-build the compiler at dev startup so the first HMR tick doesn't\n pay the parse-and-scan cost. Safe to call multiple times — it's a no-op\n once cached. */\nexport const warmTailwindCompiler = async (tailwind: TailwindConfig) => {\n\tawait getCompilerEntry(tailwind.input);\n};\n",
|
|
49
|
+
"import { mkdir } from 'node:fs/promises';\nimport { dirname, join } from 'node:path';\nimport type {\n\tStylePreprocessorConfig,\n\tTailwindConfig\n} from '../../types/build';\nimport { incrementalTailwindBuild } from './tailwindCompiler';\n\n/* Files Tailwind v4 may scan for candidate utility classes via the `@source`\n directive. When any of these change in dev, the Tailwind output must be\n regenerated so newly referenced utilities show up in the CSS — otherwise\n classes appear in markup with no rules behind them. */\nconst TAILWIND_CANDIDATE_EXTENSION_PATTERN =\n\t/\\.(html?|m?[jt]sx?|cjs|vue|svelte|astro|mdx?|css|s[ac]ss|less|styl(?:us)?)$/i;\n\nexport const isTailwindCandidate = (filePath: string) =>\n\tTAILWIND_CANDIDATE_EXTENSION_PATTERN.test(filePath);\n\n/* Production / cold-start build of the Tailwind output CSS.\n\n Uses the same persistent-compiler path as HMR — calling\n `incrementalTailwindBuild` with no changed-file hint forces a fresh\n compile + full source scan. The compiler instance is then cached for\n the remainder of the process, so subsequent rebuilds (HMR ticks during\n `absolute dev`) get the per-candidate cache for free.\n\n This replaces the old `bun.build` + `bun-plugin-tailwind` pipeline:\n the bundler was being spun up just to drive Tailwind, which made every\n call pay bundler-init cost and discarded Tailwind's internal caches\n between calls. Going directly through `tailwindcss`'s own `compile()`\n API drops both costs and brings the production build into the same\n fast path as dev. */\nexport const compileTailwind = async (\n\tinput: string,\n\toutput: string,\n\tbuildPath: string,\n\tstyleTransformConfig?: StylePreprocessorConfig\n) => {\n\tconst outputPath = join(buildPath, output);\n\tawait mkdir(dirname(outputPath), { recursive: true });\n\tawait incrementalTailwindBuild(\n\t\t{ input, output },\n\t\tbuildPath,\n\t\t[],\n\t\tstyleTransformConfig\n\t);\n};\n\nexport const compileTailwindConfig = async (\n\ttailwind: TailwindConfig,\n\tbuildPath: string,\n\tstyleTransformConfig?: StylePreprocessorConfig\n) =>\n\tcompileTailwind(\n\t\ttailwind.input,\n\t\ttailwind.output,\n\t\tbuildPath,\n\t\tstyleTransformConfig\n\t);\n",
|
|
50
|
+
"import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';\nimport { join, resolve } from 'node:path';\nimport type {\n\tImageConfig,\n\tImageFormat,\n\tRemotePattern\n} from '../../types/image';\nimport {\n\tIMAGE_DEFAULT_DEVICE_SIZES,\n\tIMAGE_DEFAULT_IMAGE_SIZES,\n\tIMAGE_DEFAULT_QUALITY,\n\tIMAGE_GLOB_SUFFIX_LENGTH\n} from '../constants';\n\n// ── Constants ──────────────────────────────────────────────────────\n\nexport const DEFAULT_DEVICE_SIZES = IMAGE_DEFAULT_DEVICE_SIZES;\nexport const DEFAULT_IMAGE_SIZES = IMAGE_DEFAULT_IMAGE_SIZES;\nexport const DEFAULT_QUALITY = IMAGE_DEFAULT_QUALITY;\n\nexport const OPTIMIZATION_ENDPOINT = '/_absolute/image';\n\n// ── Blur Placeholder ───────────────────────────────────────────────\n\nconst BLUR_SIZE = 8;\nconst BLUR_QUALITY = 70;\nconst BLUR_DEVIATION = 20;\n\n// ── Sharp Loading ──────────────────────────────────────────────────\n\nlet sharpModule: unknown = undefined;\nlet sharpLoaded = false;\nlet sharpWarned = false;\n\n// ── Shared Internals ───────────────────────────────────────────────\n\n/** Snap a target width UP to the nearest configured size */\nconst snapToSize = (target: number, sizes: number[]) => {\n\tfor (const size of sizes) {\n\t\tif (size >= target) return size;\n\t}\n\n\treturn sizes[sizes.length - 1] ?? target;\n};\n\n/** Match hostname with wildcard support: \"*.example.com\" matches \"cdn.example.com\" */\nconst matchHostname = (actual: string, pattern: string) => {\n\tif (pattern === actual) return true;\n\n\tif (pattern.startsWith('*.')) {\n\t\tconst suffix = pattern.slice(1); // \".example.com\"\n\n\t\treturn actual.endsWith(suffix) && actual.length > suffix.length;\n\t}\n\n\treturn false;\n};\n\n/** Match pathname with glob prefix: \"/images/**\" matches \"/images/photo.jpg\" */\nconst matchPathname = (actual: string, pattern: string) => {\n\tif (pattern.endsWith('/**')) {\n\t\tconst prefix = pattern.slice(0, -IMAGE_GLOB_SUFFIX_LENGTH);\n\n\t\treturn actual.startsWith(prefix);\n\t}\n\n\treturn actual === pattern;\n};\n\nconst MIME_MAP: Record<ImageFormat, string> = {\n\tavif: 'image/avif',\n\tjpeg: 'image/jpeg',\n\tpng: 'image/png',\n\twebp: 'image/webp'\n};\n\ntype SharpPipeline = {\n\tavif: (options: { effort: number; quality: number }) => SharpPipeline;\n\tjpeg: (options: { mozjpeg?: boolean; quality: number }) => SharpPipeline;\n\tpng: (options: { quality: number }) => SharpPipeline;\n\tresize: (\n\t\twidth: number,\n\t\theight?: number,\n\t\toptions?: { fit?: string; withoutEnlargement?: boolean }\n\t) => SharpPipeline;\n\trotate: () => SharpPipeline;\n\ttoBuffer: () => Promise<Buffer>;\n\twebp: (options: { quality: number }) => SharpPipeline;\n};\n\ntype SharpFactory = (input: Buffer) => SharpPipeline;\n\nconst isSharpFactory = (value: unknown): value is SharpFactory =>\n\ttypeof value === 'function';\n\n/** Convert sharp dynamic import result to a callable factory */\nconst callSharp = (sharpRef: unknown, input: Buffer) => {\n\tif (!isSharpFactory(sharpRef)) {\n\t\tthrow new Error('Loaded sharp module is not callable.');\n\t}\n\n\treturn sharpRef(input);\n};\n\nconst toBuffer = (input: Buffer | ArrayBuffer) => {\n\tif (Buffer.isBuffer(input)) return input;\n\n\treturn Buffer.from(input);\n};\n\n// ── Exports (alphabetically sorted) ────────────────────────────────\n\nexport const buildOptimizedUrl = (\n\tsrc: string,\n\twidth: number,\n\tquality: number,\n\tbasePath = OPTIMIZATION_ENDPOINT\n) => `${basePath}?url=${encodeURIComponent(src)}&w=${width}&q=${quality}`;\n\nexport type CacheMeta = {\n\tcontentType: string;\n\tetag: string;\n\texpireAt: number;\n\tupstreamEtag?: string;\n};\n\nexport const formatToMime = (format: ImageFormat) => MIME_MAP[format];\n\nexport const generateBlurDataURL = async (buffer: Buffer | ArrayBuffer) => {\n\tconst sharp = await tryLoadSharp();\n\n\tif (!sharp) return '';\n\n\tconst tiny: Buffer = await callSharp(sharp, toBuffer(buffer))\n\t\t.resize(BLUR_SIZE, BLUR_SIZE, { fit: 'inside' })\n\t\t.webp({ quality: BLUR_QUALITY })\n\t\t.toBuffer();\n\n\treturn `data:image/webp;base64,${tiny.toString('base64')}`;\n};\n\nexport const generateBlurSvg = (base64Thumbnail: string) => {\n\t// Match Next.js: wrap tiny thumbnail in SVG with Gaussian blur\n\tconst svg = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 320\"><filter id=\"b\" color-interpolation-filters=\"sRGB\"><feGaussianBlur stdDeviation=\"${BLUR_DEVIATION}\"/><feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1\"/></filter><image filter=\"url(#b)\" x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" href=\"${base64Thumbnail}\"/></svg>`;\n\n\tconst encoded = encodeURIComponent(svg);\n\n\treturn `url(\"data:image/svg+xml,${encoded}\")`;\n};\n\nexport const generateSrcSet = (\n\tsrc: string,\n\twidth: number | undefined,\n\tsizes: string | undefined,\n\tconfig?: ImageConfig,\n\tloader?: (params: { quality: number; src: string; width: number }) => string\n) => {\n\tconst quality = config?.quality ?? DEFAULT_QUALITY;\n\n\tconst basePath = config?.path ?? OPTIMIZATION_ENDPOINT;\n\n\tconst buildUrl =\n\t\tloader ??\n\t\t((params: { quality: number; src: string; width: number }) =>\n\t\t\tbuildOptimizedUrl(\n\t\t\t\tparams.src,\n\t\t\t\tparams.width,\n\t\t\t\tparams.quality,\n\t\t\t\tbasePath\n\t\t\t));\n\n\tif (sizes) {\n\t\t// With sizes: use all breakpoints with w descriptors\n\t\tconst allSizes = getAllSizes(config);\n\n\t\treturn allSizes\n\t\t\t.map(\n\t\t\t\t(sizeWidth) =>\n\t\t\t\t\t`${buildUrl({ quality, src, width: sizeWidth })} ${sizeWidth}w`\n\t\t\t)\n\t\t\t.join(', ');\n\t}\n\n\tif (width) {\n\t\t// Without sizes: generate 1x and 2x density descriptors\n\t\tconst allSizes = getAllSizes(config);\n\n\t\tconst w1x = snapToSize(width, allSizes);\n\n\t\tconst w2x = snapToSize(width * 2, allSizes);\n\n\t\treturn `${buildUrl({ quality, src, width: w1x })} 1x, ${buildUrl({ quality, src, width: w2x })} 2x`;\n\t}\n\n\t// No width or sizes — use device sizes with w descriptors\n\tconst deviceSizes = config?.deviceSizes ?? DEFAULT_DEVICE_SIZES;\n\n\treturn deviceSizes\n\t\t.map(\n\t\t\t(sizeWidth) =>\n\t\t\t\t`${buildUrl({ quality, src, width: sizeWidth })} ${sizeWidth}w`\n\t\t)\n\t\t.join(', ');\n};\n\nexport const getAllSizes = (config?: ImageConfig) => {\n\tconst device = config?.deviceSizes ?? DEFAULT_DEVICE_SIZES;\n\n\tconst image = config?.imageSizes ?? DEFAULT_IMAGE_SIZES;\n\n\treturn [...device, ...image].sort((left, right) => left - right);\n};\n\nexport const getCacheDir = (buildDir: string) => {\n\tconst dir = join(buildDir, '.cache', 'images');\n\n\tif (!existsSync(dir)) mkdirSync(dir, { recursive: true });\n\n\treturn dir;\n};\n\nexport const getCacheKey = (\n\turl: string,\n\twidth: number,\n\tquality: number,\n\tformat: string\n) => {\n\tconst hasher = new Bun.CryptoHasher('sha256');\n\n\thasher.update(`${url}|${width}|${quality}|${format}`);\n\n\treturn hasher.digest('hex');\n};\n\nexport const isCacheStale = (meta: CacheMeta) => Date.now() > meta.expireAt;\n\nexport const matchRemotePattern = (\n\turlString: string,\n\tpatterns: RemotePattern[]\n) => {\n\tlet parsed: URL;\n\n\ttry {\n\t\tparsed = new URL(urlString);\n\t} catch {\n\t\treturn false;\n\t}\n\n\treturn patterns.some((pattern) => {\n\t\tif (pattern.protocol && parsed.protocol !== `${pattern.protocol}:`)\n\t\t\treturn false;\n\n\t\tif (!matchHostname(parsed.hostname, pattern.hostname)) return false;\n\n\t\tif (pattern.port && parsed.port !== pattern.port) return false;\n\n\t\tif (\n\t\t\tpattern.pathname &&\n\t\t\t!matchPathname(parsed.pathname, pattern.pathname)\n\t\t)\n\t\t\treturn false;\n\n\t\treturn true;\n\t});\n};\n\nexport const negotiateFormat = (\n\tacceptHeader: string,\n\tconfiguredFormats: ImageFormat[]\n) => {\n\t// Check configured formats in preference order against Accept header\n\tfor (const format of configuredFormats) {\n\t\tconst mime = MIME_MAP[format];\n\n\t\tif (mime && acceptHeader.includes(mime)) return format;\n\t}\n\n\t// Fallback: if webp is configured and accepted, use it\n\tif (\n\t\tconfiguredFormats.includes('webp') &&\n\t\tacceptHeader.includes('image/webp')\n\t) {\n\t\treturn 'webp';\n\t}\n\n\t// Final fallback to jpeg\n\treturn 'jpeg';\n};\n\nconst AVIF_QUALITY_OFFSET = 20;\nconst AVIF_EFFORT = 3;\n\nexport const optimizeImage = async (\n\tbuffer: Buffer | ArrayBuffer,\n\twidth: number,\n\tquality: number,\n\tformat: ImageFormat\n) => {\n\tconst sharp = await tryLoadSharp();\n\n\tif (!sharp) return toBuffer(buffer);\n\n\tconst pipeline = callSharp(sharp, toBuffer(buffer))\n\t\t.rotate()\n\t\t.resize(width, undefined, { withoutEnlargement: true });\n\n\tswitch (format) {\n\t\tcase 'avif':\n\t\t\treturn pipeline\n\t\t\t\t.avif({\n\t\t\t\t\teffort: AVIF_EFFORT,\n\t\t\t\t\tquality: Math.max(1, quality - AVIF_QUALITY_OFFSET)\n\t\t\t\t})\n\t\t\t\t.toBuffer();\n\t\tcase 'jpeg':\n\t\t\treturn pipeline.jpeg({ mozjpeg: true, quality }).toBuffer();\n\t\tcase 'png':\n\t\t\treturn pipeline.png({ quality }).toBuffer();\n\t\tcase 'webp':\n\t\t\treturn pipeline.webp({ quality }).toBuffer();\n\t\tdefault:\n\t\t\treturn toBuffer(buffer);\n\t}\n};\n\nexport const readFromCache = (cacheDir: string, cacheKey: string) => {\n\tconst metaPath = join(cacheDir, `${cacheKey}.meta`);\n\n\tconst dataPath = join(cacheDir, `${cacheKey}.data`);\n\n\tif (!existsSync(metaPath) || !existsSync(dataPath)) return null;\n\n\ttry {\n\t\tconst meta: CacheMeta = JSON.parse(readFileSync(metaPath, 'utf-8'));\n\n\t\tconst buffer = readFileSync(dataPath);\n\n\t\treturn { buffer, meta };\n\t} catch {\n\t\treturn null;\n\t}\n};\n\nexport const tryLoadSharp = async () => {\n\tif (sharpLoaded) return sharpModule;\n\n\tsharpLoaded = true;\n\n\ttry {\n\t\t// Resolve sharp from the user's project root (not from absolutejs source,\n\t\t// which is baked into import.meta paths at bundle time)\n\t\tconst sharpPath = resolve(process.cwd(), 'node_modules/sharp');\n\n\t\tconst mod = await import(sharpPath);\n\n\t\tsharpModule = mod.default ?? mod;\n\n\t\treturn sharpModule;\n\t} catch {\n\t\tif (sharpWarned) return null;\n\n\t\tsharpWarned = true;\n\n\t\tconsole.warn(\n\t\t\t'[image] sharp not installed — serving unoptimized images. Install with: bun add sharp'\n\t\t);\n\n\t\treturn null;\n\t}\n};\n\nexport const writeToCache = (\n\tcacheDir: string,\n\tcacheKey: string,\n\tbuffer: Buffer,\n\tmeta: CacheMeta\n) => {\n\tconst metaPath = join(cacheDir, `${cacheKey}.meta`);\n\n\tconst dataPath = join(cacheDir, `${cacheKey}.data`);\n\n\twriteFileSync(dataPath, buffer);\n\n\twriteFileSync(metaPath, JSON.stringify(meta));\n};\n",
|
|
51
|
+
"import { readFile, writeFile } from 'node:fs/promises';\nimport {\n\tDEFAULT_QUALITY,\n\tOPTIMIZATION_ENDPOINT,\n\tbuildOptimizedUrl,\n\tgetAllSizes\n} from '../utils/imageProcessing';\nimport { scanEntryPoints } from './scanEntryPoints';\nimport type { ImageConfig } from '../../types/image';\nimport { IMAGE_DEFAULT_DEVICE_SIZES } from '../constants';\n\n/**\n * Build-time transform for HTML files: finds `<img data-optimized ...>` tags\n * and rewrites them to use the optimization endpoint with responsive srcset.\n *\n * Example input:\n * <img data-optimized src=\"/photos/hero.jpg\" width=\"1200\" height=\"800\"\n * sizes=\"(max-width: 768px) 100vw, 50vw\" alt=\"Hero\">\n *\n * Output:\n * <img src=\"/_absolute/image?url=...&w=1200&q=75\"\n * srcset=\"/_absolute/image?url=...&w=640&q=75 640w, ...\"\n * sizes=\"(max-width: 768px) 100vw, 50vw\"\n * width=\"1200\" height=\"800\" alt=\"Hero\"\n * loading=\"lazy\" decoding=\"async\">\n */\n\nconst IMG_REGEX = /<img\\s+([^>]*?)data-optimized([^>]*?)\\/?>/gi;\n\nconst getAttr = (attrs: string, name: string) => {\n\tconst regex = new RegExp(`${name}\\\\s*=\\\\s*[\"']([^\"']*)[\"']`, 'i');\n\n\tconst match = regex.exec(attrs);\n\n\treturn match ? match[1] : undefined;\n};\n\nconst removeAttr = (attrs: string, name: string) =>\n\tattrs.replace(new RegExp(`\\\\s*${name}\\\\s*=\\\\s*[\"'][^\"']*[\"']`, 'gi'), '');\n\nconst transformImgTag = (fullMatch: string, before: string, after: string, config?: ImageConfig) => {\n\tconst attrs = before + after;\n\n\tconst src = getAttr(attrs, 'src');\n\n\tif (!src) return fullMatch;\n\n\tconst widthStr = getAttr(attrs, 'width');\n\n\tconst sizes = getAttr(attrs, 'sizes');\n\n\tconst quality = config?.quality ?? DEFAULT_QUALITY;\n\n\tconst basePath = config?.path ?? OPTIMIZATION_ENDPOINT;\n\n\tconst width = widthStr ? parseInt(widthStr, 10) : undefined;\n\n\t// Build optimized src\n\tconst optimizedSrc = buildOptimizedUrl(src, width ?? 0, quality, basePath);\n\n\t// Build srcset\n\tlet srcset: string;\n\n\tif (sizes) {\n\t\tconst allSizes = getAllSizes(config);\n\n\t\tsrcset = allSizes\n\t\t\t.map((sizeWidth) => `${buildOptimizedUrl(src, sizeWidth, quality, basePath)} ${sizeWidth}w`)\n\t\t\t.join(', ');\n\t} else if (width) {\n\t\t// 1x and 2x density descriptors\n\t\tconst allSizes = getAllSizes(config);\n\n\t\tconst w1x = snapUp(width, allSizes);\n\n\t\tconst w2x = snapUp(width * 2, allSizes);\n\n\t\tsrcset = `${buildOptimizedUrl(src, w1x, quality, basePath)} 1x, ${buildOptimizedUrl(src, w2x, quality, basePath)} 2x`;\n\t} else {\n\t\tconst deviceSizes = config?.deviceSizes ?? IMAGE_DEFAULT_DEVICE_SIZES;\n\n\t\tsrcset = deviceSizes\n\t\t\t.map((sizeWidth) => `${buildOptimizedUrl(src, sizeWidth, quality, basePath)} ${sizeWidth}w`)\n\t\t\t.join(', ');\n\t}\n\n\t// Clean original attributes — remove data-optimized and src (we'll re-add them)\n\tlet cleanAttrs = removeAttr(attrs, 'data-optimized');\n\n\tcleanAttrs = removeAttr(cleanAttrs, 'src');\n\n\t// Remove loading/decoding if present (we'll set our own)\n\tcleanAttrs = removeAttr(cleanAttrs, 'loading');\n\n\tcleanAttrs = removeAttr(cleanAttrs, 'decoding');\n\n\tcleanAttrs = cleanAttrs.trim();\n\n\tconst resolvedSizes = sizes ?? (width ? undefined : '100vw');\n\n\tconst sizesAttr = resolvedSizes ? ` sizes=\"${resolvedSizes}\"` : '';\n\n\treturn `<img src=\"${optimizedSrc}\" srcset=\"${srcset}\"${sizesAttr} ${cleanAttrs} loading=\"lazy\" decoding=\"async\">`;\n};\n\nconst snapUp = (target: number, sizes: number[]) => {\n\tfor (const size of sizes) {\n\t\tif (size >= target) return size;\n\t}\n\n\treturn sizes[sizes.length - 1] ?? target;\n};\n\nexport const optimizeHtmlImages = async (\n\tdirectory: string,\n\tconfig?: ImageConfig\n) => {\n\tconst htmlFiles = await scanEntryPoints(directory, '*.html');\n\n\tconst tasks = htmlFiles.map(async (filePath) => {\n\t\tconst original = await readFile(filePath, 'utf8');\n\n\t\tif (!original.includes('data-optimized')) return;\n\n\t\tconst updated = original.replace(\n\t\t\tIMG_REGEX,\n\t\t\t(match, before, after) => transformImgTag(match, before, after, config)\n\t\t);\n\n\t\tif (updated !== original) {\n\t\t\tawait writeFile(filePath, updated, 'utf8');\n\t\t}\n\t});\n\n\tawait Promise.all(tasks);\n};\n",
|
|
52
|
+
"import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';\nimport { homedir } from 'node:os';\nimport { join } from 'node:path';\nimport type { TelemetryConfig } from '../../../types/telemetry';\n\nconst configDir = join(homedir(), '.absolutejs');\nconst configPath = join(configDir, 'telemetry.json');\n\nexport const getTelemetryConfig = () => {\n\ttry {\n\t\tif (!existsSync(configPath)) return null;\n\t\tconst raw = readFileSync(configPath, 'utf-8');\n\n\t\tconst config: TelemetryConfig = JSON.parse(raw);\n\n\t\treturn config;\n\t} catch {\n\t\treturn null;\n\t}\n};\n\nexport const isTelemetryEnabled = () => {\n\tconst config = getTelemetryConfig();\n\n\treturn config?.enabled === true;\n};\n\nexport const saveTelemetryConfig = (config: TelemetryConfig) => {\n\tmkdirSync(configDir, { recursive: true });\n\twriteFileSync(configPath, `${JSON.stringify(config, null, '\\t')}\\n`);\n};\n\nconst enable = () => {\n\tconst existing = getTelemetryConfig();\n\tconst config: TelemetryConfig = {\n\t\tanonymousId: existing?.anonymousId ?? crypto.randomUUID(),\n\t\tcreatedAt: existing?.createdAt ?? new Date().toISOString(),\n\t\tenabled: true\n\t};\n\tsaveTelemetryConfig(config);\n\tconsole.log('Telemetry enabled.');\n\tconsole.log(`Anonymous ID: ${config.anonymousId}`);\n};\n\nconst disable = () => {\n\tconst existing = getTelemetryConfig();\n\tif (existing) {\n\t\tsaveTelemetryConfig({ ...existing, enabled: false });\n\t}\n\tconsole.log('Telemetry disabled.');\n};\n\nconst status = () => {\n\tconst config = getTelemetryConfig();\n\tif (!config || !config.enabled) {\n\t\tconsole.log('Telemetry is disabled.');\n\t} else {\n\t\tconsole.log('Telemetry is enabled.');\n\t\tconsole.log(`Anonymous ID: ${config.anonymousId}`);\n\t}\n};\n\nexport const telemetry = (args: string[]) => {\n\tconst [subcommand] = args;\n\n\tif (subcommand === 'enable') {\n\t\tenable();\n\n\t\treturn;\n\t}\n\tif (subcommand === 'disable') {\n\t\tdisable();\n\n\t\treturn;\n\t}\n\tif (subcommand === 'status') {\n\t\tstatus();\n\n\t\treturn;\n\t}\n\tif (!subcommand) {\n\t\tstatus();\n\t\tconsole.log('');\n\t\tconsole.log('Usage: absolute telemetry <command>');\n\t\tconsole.log('Commands:');\n\t\tconsole.log(' enable Enable anonymous telemetry');\n\t\tconsole.log(' disable Disable telemetry');\n\t\tconsole.log(' status Show current telemetry status');\n\n\t\treturn;\n\t}\n\tconsole.error(`Unknown telemetry command: ${subcommand}`);\n\tconsole.error('Usage: absolute telemetry <enable|disable|status>');\n\tprocess.exit(1);\n};\n",
|
|
53
|
+
"import { existsSync, readFileSync } from 'node:fs';\nimport { arch, platform } from 'node:os';\nimport { dirname, join, parse } from 'node:path';\nimport type { TelemetryEvent } from '../../types/telemetry';\nimport { getTelemetryConfig } from './scripts/telemetry';\n\nconst checkCandidate = (candidate: string) => {\n\tif (!existsSync(candidate)) {\n\t\treturn null;\n\t}\n\tconst pkg = JSON.parse(readFileSync(candidate, 'utf-8'));\n\n\tif (pkg.name === '@absolutejs/absolute') {\n\t\tconst ver: string = pkg.version;\n\n\t\treturn ver;\n\t}\n\n\treturn null;\n};\n\nconst getVersion = () => {\n\ttry {\n\t\treturn findPackageVersion();\n\t} catch {\n\t\treturn 'unknown';\n\t}\n};\n\nconst findPackageVersion = () => {\n\tlet { dir } = import.meta;\n\n\twhile (dir !== parse(dir).root) {\n\t\tconst candidate = join(dir, 'package.json');\n\t\tconst version = checkCandidate(candidate);\n\t\tif (version) {\n\t\t\treturn version;\n\t\t}\n\t\tdir = dirname(dir);\n\t}\n\n\treturn 'unknown';\n};\n\nexport const sendTelemetryEvent = (\n\tevent: string,\n\tpayload: Record<string, unknown>\n) => {\n\ttry {\n\t\tif (process.env.TELEMETRY_OFF === '1') return;\n\t\tconst config = getTelemetryConfig();\n\t\tif (!config?.enabled) return;\n\n\t\tconst body: TelemetryEvent = {\n\t\t\tanonymousId: config.anonymousId,\n\t\t\tarch: arch(),\n\t\t\tbunVersion: Bun.version,\n\t\t\tevent,\n\t\t\tos: platform(),\n\t\t\tpayload,\n\t\t\ttimestamp: new Date().toISOString(),\n\t\t\tversion: getVersion()\n\t\t};\n\n\t\tfetch('https://absolutejs.com/api/telemetry', {\n\t\t\tbody: JSON.stringify(body),\n\t\t\theaders: { 'Content-Type': 'application/json' },\n\t\t\tmethod: 'POST'\n\t\t}).catch(() => undefined);\n\t} catch {\n\t\t/* silently ignore */\n\t}\n};\n",
|
|
54
|
+
"import { readFile, writeFile } from 'node:fs/promises';\nimport { sendTelemetryEvent } from '../cli/telemetryEvent';\nimport { toPascal } from '../utils/stringModifiers';\nimport { scanEntryPoints } from './scanEntryPoints';\n\nconst replaceAssetRef = (\n\tmatch: string,\n\tprefix: string,\n\tdir: string,\n\tname: string,\n\text: string,\n\tsuffix: string,\n\tmanifest: Record<string, string>,\n\tfilePath: string\n) => {\n\tif (/data-external(?:\\s*=\\s*[\"'][^\"']*[\"'])?/i.test(match)) {\n\t\treturn match;\n\t}\n\n\tconst pascal = toPascal(name);\n\n\tlet key;\n\tif (ext === '.css') {\n\t\tkey = `${pascal}CSS`;\n\t} else if (dir.includes('/indexes/')) {\n\t\tkey = `${pascal}Index`;\n\t} else {\n\t\tkey = pascal;\n\t}\n\n\tconst newPath = manifest[key];\n\tif (!newPath) {\n\t\tconsole.error(\n\t\t\t`error: no manifest entry for ${ext.slice(1)} \"${name}\" referenced in ${filePath}`\n\t\t);\n\t\tsendTelemetryEvent('build:missing-manifest-entry', {\n\t\t\tassetName: name,\n\t\t\tassetType: ext.slice(1),\n\t\t\thtmlFile: filePath\n\t\t});\n\n\t\treturn match;\n\t}\n\n\tconst isScript = ext === '.js' || ext === '.ts';\n\tconst hasTypeModule = isScript && /type\\s*=\\s*[\"']module[\"']/i.test(match);\n\n\tif (isScript && !hasTypeModule) {\n\t\tconst newSuffix = suffix.replace(/>$/, ' type=\"module\">');\n\n\t\treturn `${prefix}${newPath}${newSuffix}`;\n\t}\n\n\treturn `${prefix}${newPath}${suffix}`;\n};\n\nexport const updateAssetPaths = async (\n\tmanifest: Record<string, string>,\n\tdirectory: string\n) => {\n\tconst htmlFiles = await scanEntryPoints(directory, '*.html');\n\tconst assetRegex =\n\t\t/((?:<script[^>]+src=|<link[^>]*?rel=[\"']stylesheet[\"'][^>]*?href=)[\"'])(?!\\/?(?:.*\\/)?htmx\\.min\\.js)(\\/?(?:.*\\/)?)([^./\"']+)(?:\\.[^.\"'/]+)?(\\.(?:js|ts|css))([\"'][^>]*>)/g;\n\n\tconst tasks = htmlFiles.map(async (filePath) => {\n\t\tconst original = await readFile(filePath, 'utf8');\n\t\tconst updated = original.replace(\n\t\t\tassetRegex,\n\t\t\t(match, prefix, dir, name, ext, suffix) =>\n\t\t\t\treplaceAssetRef(match, prefix, dir, name, ext, suffix, manifest, filePath)\n\t\t);\n\t\tawait writeFile(filePath, updated, 'utf8');\n\t});\n\n\tawait Promise.all(tasks);\n};\n",
|
|
55
|
+
"import { existsSync } from 'node:fs';\nimport { resolve } from 'node:path';\nimport { build as bunBuild } from 'bun';\nimport { sendTelemetryEvent } from '../cli/telemetryEvent';\n\nconst resolveHmrClientPath = () => {\n\tconst projectRoot = process.cwd();\n\tconst fromSource = resolve(import.meta.dir, 'client/hmrClient.ts');\n\n\tif (existsSync(fromSource) && fromSource.startsWith(projectRoot)) {\n\t\treturn fromSource;\n\t}\n\n\tconst fromNodeModules = resolve(\n\t\tprojectRoot,\n\t\t'node_modules/@absolutejs/absolute/dist/dev/client/hmrClient.ts'\n\t);\n\tif (existsSync(fromNodeModules)) return fromNodeModules;\n\n\treturn resolve(import.meta.dir, 'dev/client/hmrClient.ts');\n};\n\nconst hmrClientPath = resolveHmrClientPath();\n\nexport const buildHMRClient = async () => {\n\tconst entryPoint = hmrClientPath;\n\tconst result = await bunBuild({\n\t\tentrypoints: [entryPoint],\n\t\tformat: 'iife',\n\t\tminify: false,\n\t\ttarget: 'browser'\n\t});\n\tif (!result.success) {\n\t\tconsole.error('Failed to build HMR client:', result.logs);\n\t\tsendTelemetryEvent('hmr:client-build-failed', {\n\t\t\tlogCount: result.logs.length,\n\t\t\tmessage: result.logs.map((log) => log.message).join('; ')\n\t\t});\n\n\t\treturn '// HMR client build failed';\n\t}\n\n\tconst [firstOutput] = result.outputs;\n\tif (!firstOutput) return '// HMR client build failed';\n\n\treturn firstOutput.text();\n};\n",
|
|
56
|
+
"/** Native Zig import rewriter — 15x faster than JS regex on large files.\n * Falls back to JS if the native addon isn't available (Windows, missing .so). */\n\nimport { dlopen, FFIType, ptr } from 'bun:ffi';\nimport { platform, arch } from 'node:os';\nimport { resolve } from 'node:path';\n\nconst ffiDefinition = {\n\trewrite_imports: {\n\t\targs: [\n\t\t\tFFIType.ptr,\n\t\t\tFFIType.u64,\n\t\t\tFFIType.ptr,\n\t\t\tFFIType.u64,\n\t\t\tFFIType.ptr,\n\t\t\tFFIType.ptr\n\t\t],\n\t\treturns: FFIType.i32\n\t}\n} as const;\n\ntype NativeLib = ReturnType<typeof dlopen<typeof ffiDefinition>>['symbols'];\n\nlet nativeLib: NativeLib | null = null;\n\nconst loadNative = () => {\n\tif (nativeLib !== null) return nativeLib;\n\n\tconst osPlatform = platform();\n\tconst cpu = arch();\n\n\tconst platformMap: Record<string, string> = {\n\t\t'darwin-arm64': 'darwin-arm64/fast_ops.dylib',\n\t\t'darwin-x64': 'darwin-x64/fast_ops.dylib',\n\t\t'linux-arm64': 'linux-arm64/fast_ops.so',\n\t\t'linux-x64': 'linux-x64/fast_ops.so',\n\t\t'win32-arm64': 'windows-arm64/fast_ops.dll',\n\t\t'win32-x64': 'windows-x64/fast_ops.dll'\n\t};\n\n\tconst libPath = platformMap[`${osPlatform}-${cpu}`];\n\tif (!libPath) return null;\n\n\ttry {\n\t\tconst fullPath = resolve(\n\t\t\timport.meta.dir,\n\t\t\t'../../native/packages',\n\t\t\tlibPath\n\t\t);\n\t\tconst lib = dlopen(fullPath, ffiDefinition);\n\t\tnativeLib = lib.symbols;\n\n\t\treturn nativeLib;\n\t} catch {\n\t\treturn null;\n\t}\n};\n\n/** Rewrite import specifiers in a string using the native Zig scanner.\n * Returns the rewritten string, or null if native isn't available. */\nexport const nativeRewriteImports = (\n\tcontent: string,\n\treplacements: [string, string][]\n) => {\n\tconst lib = loadNative();\n\tif (!lib) return null;\n\n\t// Format replacements as JSON array of [specifier, webPath] pairs\n\tconst jsonStr = JSON.stringify(replacements);\n\tconst contentBuf = Buffer.from(content);\n\tconst jsonBuf = Buffer.from(jsonStr);\n\tconst outBuf = Buffer.alloc(content.length * 2);\n\n\t// outLenPtr is a pointer to a usize (8 bytes on 64-bit)\n\tconst outLenBuf = new BigUint64Array([BigInt(outBuf.length)]);\n\n\tconst result = lib.rewrite_imports(\n\t\tptr(contentBuf),\n\t\tcontentBuf.length,\n\t\tptr(jsonBuf),\n\t\tjsonBuf.length,\n\t\tptr(outBuf),\n\t\tptr(new Uint8Array(outLenBuf.buffer))\n\t);\n\n\tif (result < 0) return null;\n\tif (result === 0) return content; // no changes\n\n\tconst outLen = Number(outLenBuf[0]);\n\n\treturn outBuf.subarray(0, outLen).toString('utf-8');\n};\n",
|
|
57
|
+
"/** Post-process bundled output files to rewrite bare React specifiers\n * (e.g. `from \"react\"`) to stable vendor paths (e.g. `from \"/vendor/react.js\"`).\n *\n * Uses native Zig scanner when available (15x faster on large files),\n * falls back to JS regex on Windows or when native addon is missing. */\n\nimport { nativeRewriteImports } from './nativeRewrite';\n\nconst escapeRegex = (str: string) =>\n\tstr.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\ntype CompiledRewriter = {\n\tfromRegex: RegExp;\n\tsideEffectRegex: RegExp;\n\tdynamicRegex: RegExp;\n\tlookup: Map<string, string>;\n};\n\nconst rewriterCache = new Map<string, CompiledRewriter>();\n\nconst cacheKey = (vendorPaths: Record<string, string>) => {\n\tconst entries = Object.entries(vendorPaths).sort(\n\t\t([left], [right]) => left.localeCompare(right)\n\t);\n\tlet key = '';\n\tfor (const [k, v] of entries) {\n\t\tkey += `${k}\\0${v}\\0`;\n\t}\n\n\treturn key;\n};\n\nconst getOrCompileRewriter = (vendorPaths: Record<string, string>) => {\n\tconst key = cacheKey(vendorPaths);\n\tconst cached = rewriterCache.get(key);\n\tif (cached) return cached;\n\n\tconst replacements = Object.entries(vendorPaths).sort(\n\t\t([keyA], [keyB]) => keyB.length - keyA.length\n\t);\n\n\tconst lookup = new Map<string, string>(replacements);\n\tconst alt = replacements.map(([spec]) => escapeRegex(spec)).join('|');\n\n\tconst fromRegex = new RegExp(`(from\\\\s*[\"'])(${alt})([\"'])`, 'g');\n\tconst sideEffectRegex = new RegExp(\n\t\t`(import\\\\s*[\"'])(${alt})([\"']\\\\s*;?)`,\n\t\t'g'\n\t);\n\tconst dynamicRegex = new RegExp(\n\t\t`(import\\\\s*\\\\(\\\\s*[\"'])(${alt})([\"']\\\\s*\\\\))`,\n\t\t'g'\n\t);\n\n\tconst rewriter: CompiledRewriter = {\n\t\tdynamicRegex,\n\t\tfromRegex,\n\t\tlookup,\n\t\tsideEffectRegex\n\t};\n\trewriterCache.set(key, rewriter);\n\n\treturn rewriter;\n};\n\nconst applyAllReplacements = (\n\tcontent: string,\n\trewriter: CompiledRewriter\n) => {\n\tconst replacer = (\n\t\t_match: string,\n\t\tprefix: string,\n\t\tspecifier: string,\n\t\tsuffix: string\n\t) => {\n\t\tconst webPath = rewriter.lookup.get(specifier);\n\t\tif (!webPath) return _match;\n\n\t\treturn `${prefix}${webPath}${suffix}`;\n\t};\n\n\trewriter.fromRegex.lastIndex = 0;\n\trewriter.sideEffectRegex.lastIndex = 0;\n\trewriter.dynamicRegex.lastIndex = 0;\n\n\tlet result = content;\n\tresult = result.replace(rewriter.fromRegex, replacer);\n\tresult = result.replace(rewriter.sideEffectRegex, replacer);\n\tresult = result.replace(rewriter.dynamicRegex, replacer);\n\n\treturn result;\n};\n\n/** Bun's reactFastRefresh transform injects bare $RefreshReg$/$RefreshSig$\n * calls into component code. With code splitting, component chunks can\n * evaluate before the chunk containing reactRefreshSetup (which defines\n * the globals), because Bun doesn't guarantee chunk import order matches\n * source import order. Prepending no-op stubs to affected chunks ensures\n * the globals always exist. The real react-refresh runtime overrides them. */\nconst REFRESH_STUBS =\n\t'window.$RefreshReg$||(window.$RefreshReg$=function(){});' +\n\t'window.$RefreshSig$||(window.$RefreshSig$=function(){return function(t){return t}});\\n';\n\nexport const patchRefreshGlobals = async (outputPaths: string[]) => {\n\tconst jsFiles = outputPaths.filter((path) => path.endsWith('.js'));\n\n\tawait Promise.all(\n\t\tjsFiles.map(async (filePath) => {\n\t\t\tconst content = await Bun.file(filePath).text();\n\t\t\tif (\n\t\t\t\t!content.includes('$RefreshReg$(') &&\n\t\t\t\t!content.includes('$RefreshSig$(')\n\t\t\t)\n\t\t\t\treturn;\n\t\t\tif (content.startsWith('window.$RefreshReg$')) return;\n\t\t\tawait Bun.write(filePath, REFRESH_STUBS + content);\n\t\t})\n\t);\n};\n\nexport const rewriteReactImports = async (\n\toutputPaths: string[],\n\tvendorPaths: Record<string, string>\n) => {\n\tconst jsFiles = outputPaths.filter((path) => path.endsWith('.js'));\n\tif (jsFiles.length === 0) return;\n\n\tconst rewriter = getOrCompileRewriter(vendorPaths);\n\n\tconst replacements = Object.entries(vendorPaths).sort(\n\t\t([keyA], [keyB]) => keyB.length - keyA.length\n\t);\n\n\tawait Promise.all(\n\t\tjsFiles.map(async (filePath) => {\n\t\t\tconst original = await Bun.file(filePath).text();\n\n\t\t\t// Try native Zig scanner first (15x faster on large files)\n\t\t\tconst native = nativeRewriteImports(original, replacements);\n\t\t\tconst content =\n\t\t\t\tnative ?? applyAllReplacements(original, rewriter);\n\n\t\t\tif (content !== original) {\n\t\t\t\tawait Bun.write(filePath, content);\n\t\t\t}\n\t\t})\n\t);\n};\n",
|
|
58
|
+
"/** Module-level dev vendor paths state.\n * Set by devBuild() before the initial build so that build() can\n * externalize React and rewrite imports to stable vendor files.\n * Production builds never call setDevVendorPaths, so the getter\n * returns null and build() bundles React normally. */\n\nlet devVendorPaths: Record<string, string> | null = null;\n\nexport const getDevVendorPaths = () => devVendorPaths;\nexport const setDevVendorPaths = (paths: Record<string, string>) => {\n\tdevVendorPaths = paths;\n};\n\n/** Angular vendor paths — same pattern as React. */\nlet angularVendorPaths: Record<string, string> | null = null;\n\nexport const getAngularVendorPaths = () => angularVendorPaths;\nexport const setAngularVendorPaths = (paths: Record<string, string>) => {\n\tangularVendorPaths = paths;\n};\n\n/** Angular *server* vendor paths — absolute filesystem paths to the\n * Bun-target linked vendor files. Used by `rewriteImports` on server\n * bundles and by `getAngularDeps` for runtime resolution. */\nlet angularServerVendorPaths: Record<string, string> | null = null;\n\nexport const getAngularServerVendorPaths = () => angularServerVendorPaths;\nexport const setAngularServerVendorPaths = (paths: Record<string, string>) => {\n\tangularServerVendorPaths = paths;\n};\n\n/** Svelte vendor paths — same pattern as React. */\nlet svelteVendorPaths: Record<string, string> | null = null;\n\nexport const getSvelteVendorPaths = () => svelteVendorPaths;\nexport const setSvelteVendorPaths = (paths: Record<string, string>) => {\n\tsvelteVendorPaths = paths;\n};\n\n/** Vue vendor paths — same pattern as React. */\nlet vueVendorPaths: Record<string, string> | null = null;\n\nexport const getVueVendorPaths = () => vueVendorPaths;\nexport const setVueVendorPaths = (paths: Record<string, string>) => {\n\tvueVendorPaths = paths;\n};\n",
|
|
59
|
+
"import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';\nimport { dirname, join, relative, resolve } from 'node:path';\nimport { createHash } from 'node:crypto';\nimport type { BunPlugin } from 'bun';\n\nconst CACHE_ROOT = resolve('.absolutejs', 'cache', 'angular-linker');\n\n/**\n * Bun bundler plugin that runs the Angular Linker on partially compiled\n * Angular libraries at build time. Converts ɵɵngDeclare* declarations\n * into fully linked code.\n *\n * The `linkerJitMode` flag controls whether NgModule definitions retain\n * `declarations`/`exports` (JIT-mode, required when consumer code is\n * runtime-compiled) or strip them (AOT-mode, smaller output but only\n * correct when consumer components have ɵcmp.dependencies baked in by\n * the Angular compiler-cli).\n *\n * In AbsoluteJS dev/HMR, user components are TypeScript-transpiled via\n * `compileAngularFileJIT` and rely on @angular/compiler at runtime —\n * that runtime JIT path reads `NgModule.ɵmod.declarations` to find\n * directives like FormGroupDirective. Linking vendor code in AOT mode\n * (the default) silently breaks dev because declarations get stripped\n * and runtime JIT then can't resolve `[formGroup]`, `[ngIf]`, etc. So\n * dev/HMR builds must use `linkerJitMode: true`. Production AOT builds\n * use `linkerJitMode: false` (matches AOT'd user components).\n *\n * Cache key includes mode so dev and prod artifacts don't collide.\n */\nexport const createAngularLinkerPlugin = (\n\tlinkerJitMode: boolean\n): BunPlugin => ({\n\tname: 'angular-linker',\n\tsetup(bld) {\n\t\tlet needsLinking: ((path: string, source: string) => boolean) | undefined;\n\t\tlet babelTransform: ((source: string, options: Record<string, unknown>) => { code?: string } | null) | undefined;\n\t\tlet linkerPlugin: unknown;\n\n\t\tconst cacheDir = join(CACHE_ROOT, linkerJitMode ? 'jit' : 'aot');\n\n\t\tbld.onLoad(\n\t\t\t{ filter: /[\\\\/]@angular[\\\\/].*\\.m?js$/ },\n\t\t\tasync (args) => {\n\t\t\t\tconst source = await Bun.file(args.path).text();\n\n\t\t\t\tif (!needsLinking) {\n\t\t\t\t\tconst specifier = '@angular/compiler-cli/linker';\n\t\t\t\t\tconst mod = await import(specifier);\n\t\t\t\t\t({ needsLinking } = mod);\n\t\t\t\t}\n\n\t\t\t\tconst checkLink = needsLinking;\n\t\t\t\tif (!checkLink || !checkLink(args.path, source)) {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\n\t\t\t\tconst hash = createHash('md5')\n\t\t\t\t\t.update(source)\n\t\t\t\t\t.digest('hex');\n\t\t\t\tconst cachePath = join(cacheDir, `${hash}.js`);\n\n\t\t\t\tif (existsSync(cachePath)) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcontents: readFileSync(cachePath, 'utf-8'),\n\t\t\t\t\t\tloader: 'js'\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (!babelTransform) {\n\t\t\t\t\tconst babelSpecifier = '@babel/core';\n\t\t\t\t\tconst babel = await import(babelSpecifier);\n\t\t\t\t\tbabelTransform = babel.transformSync;\n\t\t\t\t}\n\t\t\t\tif (!linkerPlugin) {\n\t\t\t\t\tconst linkerSpecifier = '@angular/compiler-cli/linker/babel';\n\t\t\t\t\tconst mod = await import(linkerSpecifier);\n\t\t\t\t\tlinkerPlugin = mod.createEs2015LinkerPlugin({\n\t\t\t\t\t\tfileSystem: {\n\t\t\t\t\t\t\tdirname,\n\t\t\t\t\t\t\texists: existsSync,\n\t\t\t\t\t\t\treadFile: readFileSync,\n\t\t\t\t\t\t\trelative,\n\t\t\t\t\t\t\tresolve\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlinkerJitMode,\n\t\t\t\t\t\tlogger: {\n\t\t\t\t\t\t\terror: console.error,\n\t\t\t\t\t\t\tlevel: 1,\n\t\t\t\t\t\t\twarn: console.warn,\n\t\t\t\t\t\t\tdebug: () => { /* noop */ },\n\t\t\t\t\t\t\tinfo: () => { /* noop */ }\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tconst transform = babelTransform;\n\t\t\t\tif (!transform) {\n\t\t\t\t\treturn { contents: source, loader: 'js' };\n\t\t\t\t}\n\n\t\t\t\tconst result = transform(source, {\n\t\t\t\t\tcompact: false,\n\t\t\t\t\tfilename: args.path,\n\t\t\t\t\tfilenameRelative: args.path,\n\t\t\t\t\tplugins: [linkerPlugin],\n\t\t\t\t\tsourceMaps: false\n\t\t\t\t});\n\n\t\t\t\tconst linked = result?.code ?? source;\n\n\t\t\t\tmkdirSync(cacheDir, { recursive: true });\n\t\t\t\twriteFileSync(cachePath, linked, 'utf-8');\n\n\t\t\t\treturn { contents: linked, loader: 'js' };\n\t\t\t}\n\t\t);\n\t}\n});\n\n/** Default AOT-mode plugin instance — keep for callers that don't need\n * to choose. Production AOT builds and any callsite that AOT-compiles\n * user components alongside vendor should use this. */\nexport const angularLinkerPlugin: BunPlugin = createAngularLinkerPlugin(false);\n",
|
|
60
|
+
"import { rm } from 'node:fs/promises';\nimport { resolve } from 'node:path';\nimport { Glob } from 'bun';\n\nconst HASHED_FILE_PATTERN = /\\.[a-f0-9]{8,}\\.\\w+$/;\n\nexport const cleanStaleOutputs = async (\n\tbuildPath: string,\n\tcurrentOutputPaths: string[]\n) => {\n\tconst currentPaths = new Set(\n\t\tcurrentOutputPaths.map((path) => resolve(path))\n\t);\n\n\tconst glob = new Glob('**/*');\n\tconst removals: Promise<void>[] = [];\n\n\tfor (const relative of glob.scanSync({ cwd: buildPath })) {\n\t\tconst absolute = resolve(buildPath, relative);\n\t\tif (currentPaths.has(absolute)) continue;\n\t\tif (!HASHED_FILE_PATTERN.test(relative)) continue;\n\n\t\tremovals.push(rm(absolute, { force: true }));\n\t}\n\n\tawait Promise.all(removals);\n};\n",
|
|
61
|
+
"import { rm } from 'node:fs/promises';\nimport { join } from 'node:path';\n\ntype CleanupProps = {\n\tangularDir?: string;\n\treactDir?: string;\n\tsvelteDir?: string;\n\tvueDir?: string;\n};\n\nexport const cleanup = async ({\n\tangularDir,\n\treactDir,\n\tsvelteDir,\n\tvueDir\n}: CleanupProps) => {\n\tawait Promise.all([\n\t\tangularDir\n\t\t\t? rm(join(angularDir, 'generated'), {\n\t\t\t\t\tforce: true,\n\t\t\t\t\trecursive: true\n\t\t\t\t})\n\t\t\t: undefined,\n\t\treactDir\n\t\t\t? rm(join(reactDir, 'generated'), {\n\t\t\t\t\tforce: true,\n\t\t\t\t\trecursive: true\n\t\t\t\t})\n\t\t\t: undefined,\n\t\tsvelteDir\n\t\t\t? rm(join(svelteDir, 'generated'), {\n\t\t\t\t\tforce: true,\n\t\t\t\t\trecursive: true\n\t\t\t\t})\n\t\t\t: undefined,\n\t\tvueDir\n\t\t\t? rm(join(vueDir, 'generated'), {\n\t\t\t\t\tforce: true,\n\t\t\t\t\trecursive: true\n\t\t\t\t})\n\t\t\t: undefined\n\t]);\n};\n",
|
|
62
|
+
"import { normalizePath } from './normalizePath';\n\nexport const commonAncestor = (paths: string[], fallback?: string) => {\n\tif (paths.length === 0) return fallback;\n\t// Normalize all paths and split by forward slash for cross-platform compatibility\n\tconst segmentsList = paths.map((p) => normalizePath(p).split('/'));\n\tconst [first] = segmentsList;\n\tif (!first) return fallback;\n\tconst commonSegments = first.filter((segment, index) =>\n\t\tsegmentsList.every((pathSegs) => pathSegs[index] === segment)\n\t);\n\n\t// Always join with forward slash for normalized output\n\treturn commonSegments.length ? commonSegments.join('/') : fallback;\n};\n",
|
|
63
|
+
"import { resolve, relative } from 'node:path';\nimport { normalizePath } from './normalizePath';\n\nexport const validateSafePath = (targetPath: string, baseDirectory: string) => {\n\tconst absoluteBase = resolve(baseDirectory);\n\tconst absoluteTarget = resolve(baseDirectory, targetPath);\n\t// Normalize relative path for consistent cross-platform traversal check\n\tconst relativePath = normalizePath(relative(absoluteBase, absoluteTarget));\n\n\tif (relativePath.startsWith('../') || relativePath === '..') {\n\t\tthrow new Error(`Unsafe path: ${targetPath}`);\n\t}\n\n\treturn absoluteTarget;\n};\n",
|
|
64
|
+
"import type { IslandFramework, IslandHydrate } from '../../types/island';\n\nexport type PageIslandUsage = {\n\tcomponent: string;\n\tframework: IslandFramework;\n\thydrate?: IslandHydrate;\n\tsource?: string;\n};\n\nconst islandFrameworks: IslandFramework[] = [\n\t'react',\n\t'svelte',\n\t'vue',\n\t'angular'\n];\n\nconst islandHydrationModes: IslandHydrate[] = [\n\t'load',\n\t'idle',\n\t'visible',\n\t'none'\n];\n\nconst isIslandFramework = (value: string): value is IslandFramework =>\n\tislandFrameworks.some((framework) => framework === value);\n\nconst isIslandHydrate = (value: string): value is IslandHydrate =>\n\tislandHydrationModes.some((hydrate) => hydrate === value);\n\nconst parseIslandTagAttributes = (attributeString: string) => {\n\tconst frameworkMatch = attributeString.match(\n\t\t/\\bframework\\s*=\\s*[\"']([^\"']+)[\"']/\n\t);\n\tconst componentMatch = attributeString.match(\n\t\t/\\bcomponent\\s*=\\s*[\"']([^\"']+)[\"']/\n\t);\n\tconst hydrateMatch = attributeString.match(\n\t\t/\\bhydrate\\s*=\\s*[\"']([^\"']+)[\"']/\n\t);\n\tconst framework = frameworkMatch?.[1];\n\tconst component = componentMatch?.[1];\n\tif (!framework || !component) {\n\t\treturn null;\n\t}\n\tif (!isIslandFramework(framework)) {\n\t\treturn null;\n\t}\n\n\tconst hydrateCandidate = hydrateMatch?.[1];\n\n\treturn {\n\t\tcomponent,\n\t\tframework,\n\t\thydrate:\n\t\t\thydrateCandidate && isIslandHydrate(hydrateCandidate)\n\t\t\t\t? hydrateCandidate\n\t\t\t\t: undefined\n\t} satisfies PageIslandUsage;\n};\n\nconst normalizeUsage = (usage: PageIslandUsage) =>\n\t`${usage.framework}:${usage.component}:${usage.hydrate ?? ''}`;\n\nconst addUsage = (\n\tusageMap: Map<string, PageIslandUsage>,\n\tusage: PageIslandUsage | null\n) => {\n\tif (!usage) return;\n\tusageMap.set(normalizeUsage(usage), usage);\n};\n\nconst addRenderCallUsage = (\n\tusageMap: Map<string, PageIslandUsage>,\n\tmatch: RegExpExecArray\n) => {\n\tconst [, framework, component, hydrate] = match;\n\tif (!framework || !component || !isIslandFramework(framework)) {\n\t\treturn;\n\t}\n\n\taddUsage(usageMap, {\n\t\tcomponent,\n\t\tframework,\n\t\thydrate: hydrate && isIslandHydrate(hydrate) ? hydrate : undefined\n\t});\n};\n\nexport const buildIslandMetadataExports = (source: string) => {\n\tconst usages = extractIslandUsagesFromSource(source);\n\tconst serialized = JSON.stringify(usages);\n\n\treturn `\\nexport const __ABSOLUTE_PAGE_ISLANDS__ = ${serialized};\\nexport const __ABSOLUTE_PAGE_HAS_ISLANDS__ = ${usages.length > 0};\\n`;\n};\nexport const extractIslandUsagesFromSource = (source: string) => {\n\tconst usageMap = new Map<string, PageIslandUsage>();\n\n\tconst islandTagRegex =\n\t\t/<Island\\b([\\s\\S]*?)(?:\\/>|>(?:[\\s\\S]*?)<\\/Island>)/g;\n\tlet islandTagMatch = islandTagRegex.exec(source);\n\twhile (islandTagMatch) {\n\t\taddUsage(usageMap, parseIslandTagAttributes(islandTagMatch[1] ?? ''));\n\t\tislandTagMatch = islandTagRegex.exec(source);\n\t}\n\n\tconst absoluteIslandTagRegex =\n\t\t/<absolute-island\\b([\\s\\S]*?)(?:\\/>|>(?:[\\s\\S]*?)<\\/absolute-island>)/g;\n\tlet absoluteIslandMatch = absoluteIslandTagRegex.exec(source);\n\twhile (absoluteIslandMatch) {\n\t\taddUsage(\n\t\t\tusageMap,\n\t\t\tparseIslandTagAttributes(absoluteIslandMatch[1] ?? '')\n\t\t);\n\t\tabsoluteIslandMatch = absoluteIslandTagRegex.exec(source);\n\t}\n\n\tconst staticRenderCallRegex =\n\t\t/renderIsland\\s*\\(\\s*\\{[\\s\\S]*?\\bframework\\s*:\\s*['\"]([^'\"]+)['\"][\\s\\S]*?\\bcomponent\\s*:\\s*['\"]([^'\"]+)['\"](?:[\\s\\S]*?\\bhydrate\\s*:\\s*['\"]([^'\"]+)['\"])?[\\s\\S]*?\\}\\s*\\)/g;\n\tlet renderMatch = staticRenderCallRegex.exec(source);\n\twhile (renderMatch) {\n\t\taddRenderCallUsage(usageMap, renderMatch);\n\t\trenderMatch = staticRenderCallRegex.exec(source);\n\t}\n\n\treturn [...usageMap.values()];\n};\nexport const hasIslandUsageInSource = (source: string) =>\n\textractIslandUsagesFromSource(source).length > 0;\n",
|
|
65
|
+
"import type { Component, ComponentProps } from 'svelte';\nimport { DEFAULT_CHUNK_SIZE } from '../constants';\nimport { escapeScriptContent } from '../utils/escapeScriptContent';\n\nexport const SVELTE_PAGE_ROOT_ID = '__absolute_svelte_root__';\n\ntype SvelteRenderOutput = {\n\tbody: string;\n\thead: string;\n};\n\ntype SvelteServerRender = (\n\tcomponent: Component<Record<string, unknown>>,\n\toptions?: { props?: Record<string, unknown> }\n) => SvelteRenderOutput | PromiseLike<SvelteRenderOutput>;\n\nexport type RenderStreamOptions = {\n\tbootstrapScriptContent?: string;\n\tbootstrapScripts?: string[];\n\tbootstrapModules?: string[];\n\tnonce?: string;\n\tonError?: (error: unknown) => void;\n\tprogressiveChunkSize?: number;\n\tsignal?: AbortSignal;\n\theadContent?: string;\n\tbodyContent?: string;\n};\n\nexport const renderToReadableStream = async <\n\tComp extends Component<Record<string, unknown>>\n>(\n\tcomponent: Comp,\n\tprops?: ComponentProps<Comp>,\n\t{\n\t\tbootstrapScriptContent,\n\t\tbootstrapScripts = [],\n\t\tbootstrapModules = [],\n\t\tnonce,\n\t\tonError = console.error,\n\t\tprogressiveChunkSize = DEFAULT_CHUNK_SIZE,\n\t\tsignal,\n\t\theadContent,\n\t\tbodyContent\n\t}: RenderStreamOptions = {}\n) => {\n\ttry {\n\t\tconst { render } = await import('svelte/server');\n\t\tconst renderComponent: SvelteServerRender = render;\n\t\tconst rendered =\n\t\t\ttypeof props === 'undefined'\n\t\t\t\t? await renderComponent(component)\n\t\t\t\t: await renderComponent(component, { props });\n\t\tconst { head, body } = rendered;\n\t\tconst nonceAttr = nonce ? ` nonce=\"${nonce}\"` : '';\n\t\tconst scripts =\n\t\t\t(bootstrapScriptContent\n\t\t\t\t? `<script${nonceAttr}>${escapeScriptContent(bootstrapScriptContent)}</script>`\n\t\t\t\t: '') +\n\t\t\tbootstrapScripts\n\t\t\t\t.map((src) => `<script${nonceAttr} src=\"${src}\"></script>`)\n\t\t\t\t.join('') +\n\t\t\tbootstrapModules\n\t\t\t\t.map(\n\t\t\t\t\t(src) =>\n\t\t\t\t\t\t`<script${nonceAttr} type=\"module\" src=\"${src}\"></script>`\n\t\t\t\t)\n\t\t\t\t.join('');\n\t\tconst encoder = new TextEncoder();\n\t\t// Warning: this encodes the entire document into memory in one buffer\n\t\tconst full = encoder.encode(\n\t\t\t`<!DOCTYPE html><html lang=\"en\"><head>${head}${headContent ?? ''}</head><body><div id=\"${SVELTE_PAGE_ROOT_ID}\">${body}</div>${scripts}${bodyContent ?? ''}</body></html>`\n\t\t);\n\n\t\tlet offset = 0;\n\n\t\treturn new ReadableStream<Uint8Array>({\n\t\t\ttype: 'bytes',\n\t\t\tcancel(reason) {\n\t\t\t\tonError?.(reason);\n\t\t\t},\n\t\t\tpull(controller) {\n\t\t\t\tif (signal?.aborted) {\n\t\t\t\t\tcontroller.close();\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (offset >= full.length) {\n\t\t\t\t\tcontroller.close();\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst end = Math.min(\n\t\t\t\t\toffset + progressiveChunkSize,\n\t\t\t\t\tfull.length\n\t\t\t\t);\n\t\t\t\tcontroller.enqueue(full.subarray(offset, end));\n\t\t\t\toffset = end;\n\t\t\t}\n\t\t});\n\t} catch (error) {\n\t\tonError?.(error);\n\t\tthrow error;\n\t}\n};\n",
|
|
66
|
+
"import { BASE_36_RADIX } from '../constants';\nimport { existsSync } from 'node:fs';\nimport { mkdir, stat } from 'node:fs/promises';\nimport {\n\tdirname,\n\tjoin,\n\tbasename,\n\textname,\n\tresolve,\n\trelative,\n\tsep\n} from 'node:path';\nimport { env } from 'node:process';\nimport { write, file, Transpiler } from 'bun';\nimport { resolvePackageImport } from './resolvePackageImport';\nimport { buildIslandMetadataExports } from '../islands/sourceMetadata';\nimport { createSvelteStylePreprocessor } from './stylePreprocessor';\nimport { lowerSvelteIslandSyntax } from '../svelte/lowerIslandSyntax';\nimport { lowerSvelteAwaitSlotSyntax } from '../svelte/lowerAwaitSlotSyntax';\nimport { SVELTE_PAGE_ROOT_ID } from '../svelte/renderToReadableStream';\nimport type { StylePreprocessorConfig } from '../../types/build';\nconst resolveDevClientDir = () => {\n\tconst projectRoot = process.cwd();\n\tconst fromSource = resolve(import.meta.dir, '../dev/client');\n\n\tif (existsSync(fromSource) && fromSource.startsWith(projectRoot)) {\n\t\treturn fromSource;\n\t}\n\n\tconst fromNodeModules = resolve(\n\t\tprojectRoot,\n\t\t'node_modules/@absolutejs/absolute/dist/dev/client'\n\t);\n\tif (existsSync(fromNodeModules)) return fromNodeModules;\n\n\treturn resolve(import.meta.dir, './dev/client');\n};\n\nconst devClientDir = resolveDevClientDir();\n\nconst hmrClientPath = join(devClientDir, 'hmrClient.ts').replace(/\\\\/g, '/');\n\ntype Built = { ssr: string; client: string; hasAwaitSlot: boolean };\ntype Cache = Map<string, Built>;\n\n// Persistent cache across HMR cycles — avoids recompiling unchanged Svelte components\nconst persistentCache: Cache = new Map();\n\n// Content hash cache to detect unchanged source files\nconst sourceHashCache = new Map<string, string>();\n\nexport const clearSvelteCompilerCache = () => {\n\tpersistentCache.clear();\n\tsourceHashCache.clear();\n};\n\nconst transpiler = new Transpiler({ loader: 'ts', target: 'browser' });\n\nconst removeUnusedRequireHelper = (code: string) => {\n\tconst helperStart = code.indexOf('var __require = /* @__PURE__ */');\n\tif (helperStart === -1) {\n\t\treturn code;\n\t}\n\n\tconst helperEndMarker =\n\t\t\"throw Error('Dynamic require of \\\"' + x + '\\\" is not supported');\";\n\tconst helperEnd = code.indexOf(helperEndMarker, helperStart);\n\tif (helperEnd === -1) {\n\t\treturn code;\n\t}\n\n\tconst statementEnd = code.indexOf('});', helperEnd);\n\tif (statementEnd === -1) {\n\t\treturn code;\n\t}\n\n\tconst stripped = `${code.slice(0, helperStart)}${code.slice(statementEnd + 3)}`;\n\n\treturn /\\b__require\\b/.test(stripped) ? code : stripped;\n};\n\nconst exists = async (path: string) => {\n\ttry {\n\t\tawait stat(path);\n\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nconst resolveRelativeModule = async (spec: string, from: string) => {\n\tif (!spec.startsWith('.')) return null;\n\n\tconst basePath = resolve(dirname(from), spec);\n\tconst candidates = [\n\t\tbasePath,\n\t\t`${basePath}.ts`,\n\t\t`${basePath}.js`,\n\t\t`${basePath}.mjs`,\n\t\t`${basePath}.cjs`,\n\t\t`${basePath}.json`,\n\t\t`${basePath}.svelte`,\n\t\t`${basePath}.svelte.ts`,\n\t\t`${basePath}.svelte.js`,\n\t\tjoin(basePath, 'index.ts'),\n\t\tjoin(basePath, 'index.js'),\n\t\tjoin(basePath, 'index.mjs'),\n\t\tjoin(basePath, 'index.cjs'),\n\t\tjoin(basePath, 'index.json'),\n\t\tjoin(basePath, 'index.svelte'),\n\t\tjoin(basePath, 'index.svelte.ts'),\n\t\tjoin(basePath, 'index.svelte.js')\n\t];\n\n\tconst checks = await Promise.all(candidates.map(exists));\n\n\treturn candidates.find((_, index) => checks[index]) ?? null;\n};\n\nconst resolveSvelte = async (spec: string, from: string) => {\n\t// Try bare module imports (e.g. \"@absolutejs/absolute/svelte/components/Image.svelte\")\n\tif (!spec.startsWith('.') && !spec.startsWith('/')) {\n\t\tconst resolved = resolvePackageImport(spec);\n\n\t\treturn resolved && /\\.svelte(\\.(?:ts|js))?$/.test(resolved)\n\t\t\t? resolved\n\t\t\t: null;\n\t}\n\n\tconst basePath = resolve(dirname(from), spec);\n\tconst explicit = /\\.(svelte|svelte\\.(?:ts|js))$/.test(basePath);\n\n\tif (!explicit) {\n\t\tconst extensions = ['.svelte', '.svelte.ts', '.svelte.js'];\n\t\tconst paths = extensions.map((ext) => `${basePath}${ext}`);\n\t\tconst checks = await Promise.all(paths.map(exists));\n\t\tconst match = paths.find((_, index) => checks[index]);\n\n\t\treturn match ?? null;\n\t}\n\n\tif (await exists(basePath)) return basePath;\n\tif (!basePath.endsWith('.svelte')) return null;\n\n\tconst tsPath = `${basePath}.ts`;\n\tif (await exists(tsPath)) return tsPath;\n\n\tconst jsPath = `${basePath}.js`;\n\tif (await exists(jsPath)) return jsPath;\n\n\treturn null;\n};\n\nconst addModuleRewrite = (\n\trewrites: Map<string, { server: string; client: string }>,\n\trawSpec: string,\n\tresolvedModule: string,\n\tssrOutputDir: string,\n\tclientOutputDir: string\n) => {\n\tconst toServer = relative(ssrOutputDir, resolvedModule).replace(/\\\\/g, '/');\n\tconst toClient = relative(clientOutputDir, resolvedModule).replace(\n\t\t/\\\\/g,\n\t\t'/'\n\t);\n\n\trewrites.set(rawSpec, {\n\t\tclient:\n\t\t\ttoClient.startsWith('.') || toClient.startsWith('/')\n\t\t\t\t? toClient\n\t\t\t\t: `./${toClient}`,\n\t\tserver: toServer.startsWith('.') ? toServer : `./${toServer}`\n\t});\n};\n\nexport const compileSvelte = async (\n\tentryPoints: string[],\n\tsvelteRoot: string,\n\tcache: Cache = new Map(),\n\tisDev = false,\n\tstylePreprocessors?: StylePreprocessorConfig\n) => {\n\tconst { compile, compileModule, preprocess } = await import(\n\t\t'svelte/compiler'\n\t);\n\n\tconst generatedDir = join(svelteRoot, 'generated');\n\tconst clientDir = join(generatedDir, 'client');\n\tconst indexDir = join(generatedDir, 'indexes');\n\tconst serverDir = join(generatedDir, 'server');\n\n\tawait Promise.all(\n\t\t[clientDir, indexDir, serverDir].map((dir) =>\n\t\t\tmkdir(dir, { recursive: true })\n\t\t)\n\t);\n\n\tconst dev = env.NODE_ENV !== 'production';\n\n\tconst build = async (src: string) => {\n\t\tconst memoized = cache.get(src);\n\t\tif (memoized) return memoized;\n\n\t\tconst raw = await file(src).text();\n\t\tconst islandMetadataExports = buildIslandMetadataExports(raw);\n\n\t\t// Check if source is unchanged since last compilation\n\t\tconst contentHash = Bun.hash(raw).toString(BASE_36_RADIX);\n\t\tconst prevHash = sourceHashCache.get(src);\n\t\tconst persistent = persistentCache.get(src);\n\n\t\tif (prevHash === contentHash && persistent) {\n\t\t\tcache.set(src, persistent);\n\n\t\t\treturn persistent;\n\t\t}\n\n\t\tsourceHashCache.set(src, contentHash);\n\t\tconst isModule =\n\t\t\tsrc.endsWith('.svelte.ts') || src.endsWith('.svelte.js');\n\t\tconst loweredAwaitServerSource = isModule\n\t\t\t? { code: raw, transformed: false }\n\t\t\t: lowerSvelteAwaitSlotSyntax(raw);\n\t\tconst loweredAwaitClientSource = isModule\n\t\t\t? loweredAwaitServerSource\n\t\t\t: lowerSvelteAwaitSlotSyntax(raw);\n\t\tconst loweredServerSource = isModule\n\t\t\t? loweredAwaitServerSource\n\t\t\t: lowerSvelteIslandSyntax(loweredAwaitServerSource.code, 'server');\n\t\tconst loweredClientSource = isModule\n\t\t\t? loweredAwaitClientSource\n\t\t\t: lowerSvelteIslandSyntax(loweredAwaitClientSource.code, 'client');\n\t\tconst transformedByLowering =\n\t\t\tloweredAwaitServerSource.transformed ||\n\t\t\tloweredAwaitClientSource.transformed ||\n\t\t\tloweredServerSource.transformed ||\n\t\t\tloweredClientSource.transformed;\n\t\tconst svelteStylePreprocessor =\n\t\t\tcreateSvelteStylePreprocessor(stylePreprocessors);\n\t\tconst preprocessedServer = isModule\n\t\t\t? loweredServerSource.code\n\t\t\t: (\n\t\t\t\t\tawait preprocess(\n\t\t\t\t\t\tloweredServerSource.code,\n\t\t\t\t\t\tsvelteStylePreprocessor\n\t\t\t\t\t)\n\t\t\t\t).code;\n\t\tconst preprocessedClient = isModule\n\t\t\t? loweredClientSource.code\n\t\t\t: (\n\t\t\t\t\tawait preprocess(\n\t\t\t\t\t\tloweredClientSource.code,\n\t\t\t\t\t\tsvelteStylePreprocessor\n\t\t\t\t\t)\n\t\t\t\t).code;\n\t\tconst transpiledServer =\n\t\t\tsrc.endsWith('.ts') || src.endsWith('.svelte.ts')\n\t\t\t\t? transpiler.transformSync(preprocessedServer)\n\t\t\t\t: preprocessedServer;\n\t\tconst transpiledClient =\n\t\t\tsrc.endsWith('.ts') || src.endsWith('.svelte.ts')\n\t\t\t\t? transpiler.transformSync(preprocessedClient)\n\t\t\t\t: preprocessedClient;\n\n\t\tconst rawRel = dirname(relative(svelteRoot, src)).replace(/\\\\/g, '/');\n\t\t// When a source file lives outside svelteRoot (e.g. src/svelte/components/Head.svelte\n\t\t// imported from example/svelte/pages/), the relative path starts with \"../\".\n\t\t// Use cwd-relative path so compiled output stays inside generated/.\n\t\tconst relDir = rawRel.startsWith('..')\n\t\t\t? `_ext/${relative(process.cwd(), dirname(src)).replace(/\\\\/g, '/')}`\n\t\t\t: rawRel;\n\t\tconst baseName = basename(src).replace(/\\.svelte(\\.(ts|js))?$/, '');\n\n\t\tconst importPaths = Array.from(\n\t\t\ttranspiledServer.matchAll(/from\\s+['\"]([^'\"]+)['\"]/g)\n\t\t)\n\t\t\t.map((match) => match[1])\n\t\t\t.filter((path): path is string => path !== undefined);\n\n\t\tconst resolvedModuleImports = await Promise.all(\n\t\t\timportPaths.map((importPath) =>\n\t\t\t\tresolveRelativeModule(importPath, src)\n\t\t\t)\n\t\t);\n\t\tconst resolvedImports = await Promise.all(\n\t\t\timportPaths.map((importPath) => resolveSvelte(importPath, src))\n\t\t);\n\t\tconst childSources = resolvedImports.filter(\n\t\t\t(path): path is string => path !== null\n\t\t);\n\t\tconst childBuilt = await Promise.all(\n\t\t\tchildSources.map((child) => build(child))\n\t\t);\n\t\tconst hasAwaitSlotFromChildren = childBuilt.some(\n\t\t\t(child) => child.hasAwaitSlot\n\t\t);\n\t\t// Build a map of original import specifiers to the correct path from the\n\t\t// generated output file. Svelte child components may point to compiled\n\t\t// siblings; plain TS/JS helpers should resolve back to their original\n\t\t// source modules because they are not separately compiled here.\n\t\tconst externalRewrites = new Map<\n\t\t\tstring,\n\t\t\t{ server: string; client: string }\n\t\t>();\n\t\tconst ssrOutputDir = dirname(join(serverDir, relDir, `${baseName}.js`));\n\t\tconst clientOutputDir = dirname(\n\t\t\tjoin(clientDir, relDir, `${baseName}.js`)\n\t\t);\n\n\t\tfor (let idx = 0; idx < importPaths.length; idx++) {\n\t\t\tconst rawSpec = importPaths[idx];\n\t\t\tif (!rawSpec) continue;\n\t\t\tconst resolved = resolvedImports[idx];\n\t\t\tconst resolvedModule = resolvedModuleImports[idx];\n\n\t\t\tif (!resolved && resolvedModule)\n\t\t\t\taddModuleRewrite(\n\t\t\t\t\texternalRewrites,\n\t\t\t\t\trawSpec,\n\t\t\t\t\tresolvedModule,\n\t\t\t\t\tssrOutputDir,\n\t\t\t\t\tclientOutputDir\n\t\t\t\t);\n\t\t\tif (!resolved) continue;\n\n\t\t\tconst childRel = relative(svelteRoot, resolved).replace(/\\\\/g, '/');\n\t\t\tif (!childRel.startsWith('..')) continue;\n\n\t\t\tconst childBuilt = cache.get(resolved);\n\t\t\tif (!childBuilt) continue;\n\n\t\t\tconst origSpec = rawSpec.replace(\n\t\t\t\t/\\.svelte(?:\\.(?:ts|js))?$/,\n\t\t\t\t'.js'\n\t\t\t);\n\t\t\tconst toServer = relative(ssrOutputDir, childBuilt.ssr).replace(\n\t\t\t\t/\\\\/g,\n\t\t\t\t'/'\n\t\t\t);\n\t\t\tconst toClient = relative(\n\t\t\t\tclientOutputDir,\n\t\t\t\tchildBuilt.client\n\t\t\t).replace(/\\\\/g, '/');\n\n\t\t\texternalRewrites.set(origSpec, {\n\t\t\t\tclient: toClient.startsWith('.') ? toClient : `./${toClient}`,\n\t\t\t\tserver: toServer.startsWith('.') ? toServer : `./${toServer}`\n\t\t\t});\n\t\t}\n\n\t\tconst rewriteExternalImports = (\n\t\t\tcode: string,\n\t\t\tmode: 'server' | 'client'\n\t\t) => {\n\t\t\tlet result = code;\n\n\t\t\tfor (const [origSpec, paths] of externalRewrites) {\n\t\t\t\tconst target = mode === 'server' ? paths.server : paths.client;\n\t\t\t\tresult = result.replace(origSpec, target);\n\t\t\t}\n\n\t\t\treturn result;\n\t\t};\n\n\t\tconst generate = (mode: 'server' | 'client') => {\n\t\t\tconst transpiled =\n\t\t\t\tmode === 'server' ? transpiledServer : transpiledClient;\n\t\t\tconst compiled = isModule\n\t\t\t\t? compileModule(transpiled, {\n\t\t\t\t\t\tdev: mode === 'client' && dev,\n\t\t\t\t\t\texperimental: {\n\t\t\t\t\t\t\tasync: transformedByLowering\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfilename: src\n\t\t\t\t\t}).js.code\n\t\t\t\t: compile(transpiled, {\n\t\t\t\t\t\tcss: 'injected',\n\t\t\t\t\t\tdev: mode === 'client' && dev,\n\t\t\t\t\t\texperimental: {\n\t\t\t\t\t\t\tasync: transformedByLowering\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfilename: src,\n\t\t\t\t\t\tgenerate: mode,\n\t\t\t\t\t\thmr: mode === 'client' && isDev\n\t\t\t\t\t}).js.code;\n\t\t\tlet code = compiled.replace(\n\t\t\t\t/\\.svelte(?:\\.(?:ts|js))?(['\"])/g,\n\t\t\t\t'.js$1'\n\t\t\t);\n\t\t\t// For client dev builds: replace import.meta.hot with our\n\t\t\t// accept registry so $.hmr() wrapper + accept callback are\n\t\t\t// both active. This enables component-level HMR swaps.\n\t\t\tif (mode === 'client' && isDev) {\n\t\t\t\tconst moduleKey = `/@src/${relative(process.cwd(), src).replace(\n\t\t\t\t\t/\\\\/g,\n\t\t\t\t\t'/'\n\t\t\t\t)}`;\n\t\t\t\tcode = code.replace(\n\t\t\t\t\t/if\\s*\\(import\\.meta\\.hot\\)\\s*\\{/,\n\t\t\t\t\t`if (typeof window !== \"undefined\") {\\n` +\n\t\t\t\t\t\t` if (!window.__SVELTE_HMR_ACCEPT__) window.__SVELTE_HMR_ACCEPT__ = {};\\n` +\n\t\t\t\t\t\t` var __hmr_accept = function(cb) { window.__SVELTE_HMR_ACCEPT__[${JSON.stringify(moduleKey)}] = cb; };`\n\t\t\t\t);\n\t\t\t\tcode = code.replace(\n\t\t\t\t\t/import\\.meta\\.hot\\.accept\\(/g,\n\t\t\t\t\t'__hmr_accept('\n\t\t\t\t);\n\n\t\t\t\t// State preservation is handled at runtime by the patched\n\t\t\t\t// $.hmr() function (collect_state/restore_state). No\n\t\t\t\t// State preservation handled by Svelte's $.hmr() runtime.\n\t\t\t}\n\n\t\t\tif (mode === 'client') {\n\t\t\t\tcode = removeUnusedRequireHelper(code);\n\t\t\t}\n\n\t\t\tcode += islandMetadataExports;\n\n\t\t\treturn code;\n\t\t};\n\n\t\tconst ssrPath = join(serverDir, relDir, `${baseName}.js`);\n\t\tconst clientPath = join(clientDir, relDir, `${baseName}.js`);\n\n\t\tawait Promise.all([\n\t\t\tmkdir(dirname(ssrPath), { recursive: true }),\n\t\t\tmkdir(dirname(clientPath), { recursive: true })\n\t\t]);\n\n\t\tif (isModule) {\n\t\t\tconst bundle = rewriteExternalImports(generate('client'), 'client');\n\t\t\tawait Promise.all([\n\t\t\t\twrite(ssrPath, bundle),\n\t\t\t\twrite(clientPath, bundle)\n\t\t\t]);\n\t\t} else {\n\t\t\tconst serverBundle = rewriteExternalImports(\n\t\t\t\tgenerate('server'),\n\t\t\t\t'server'\n\t\t\t);\n\t\t\tconst clientBundle = rewriteExternalImports(\n\t\t\t\tgenerate('client'),\n\t\t\t\t'client'\n\t\t\t);\n\t\t\tawait Promise.all([\n\t\t\t\twrite(ssrPath, serverBundle),\n\t\t\t\twrite(clientPath, clientBundle)\n\t\t\t]);\n\t\t}\n\n\t\tconst built: Built = {\n\t\t\tclient: clientPath,\n\t\t\thasAwaitSlot:\n\t\t\t\tloweredAwaitServerSource.transformed ||\n\t\t\t\tloweredAwaitClientSource.transformed ||\n\t\t\t\tloweredServerSource.transformed ||\n\t\t\t\tloweredClientSource.transformed ||\n\t\t\t\thasAwaitSlotFromChildren,\n\t\t\tssr: ssrPath\n\t\t};\n\t\tcache.set(src, built);\n\t\tpersistentCache.set(src, built);\n\n\t\treturn built;\n\t};\n\n\tconst roots = await Promise.all(entryPoints.map(build));\n\n\tawait Promise.all(\n\t\troots.map(async ({ client, hasAwaitSlot }) => {\n\t\t\tconst relClientDir = dirname(relative(clientDir, client));\n\t\t\tconst name = basename(client, extname(client));\n\t\t\tconst indexPath = join(indexDir, relClientDir, `${name}.js`);\n\t\t\tconst importRaw = relative(dirname(indexPath), client)\n\t\t\t\t.split(sep)\n\t\t\t\t.join('/');\n\t\t\tconst importPath =\n\t\t\t\timportRaw.startsWith('.') || importRaw.startsWith('/')\n\t\t\t\t\t? importRaw\n\t\t\t\t\t: `./${importRaw}`;\n\t\t\tconst hmrImports = isDev\n\t\t\t\t? `window.__HMR_FRAMEWORK__ = \"svelte\";\\nimport \"${hmrClientPath}\";\\n`\n\t\t\t\t: '';\n\t\t\tconst bootstrap = `${hmrImports}import Component from \"${importPath}\";\nimport { hydrate, mount, unmount } from \"svelte\";\n\nvar initialProps = (typeof window !== \"undefined\" && window.__INITIAL_PROPS__) ? window.__INITIAL_PROPS__ : {};\nvar isHMR = typeof window !== \"undefined\" && window.__SVELTE_COMPONENT__ !== undefined;\nvar isSsrDirty = typeof window !== \"undefined\" && window.__SSR_DIRTY__;\nvar hasIslandHtml = false;\nvar shouldHydrate = typeof window === \"undefined\" ? false : ${\n\t\t\t\thasAwaitSlot ? 'false' : 'true'\n\t\t\t};\nvar component;\nvar target = document.getElementById(${JSON.stringify(SVELTE_PAGE_ROOT_ID)}) || document.body;\n\nif (typeof window !== \"undefined\") {\n var islandSlots = document.querySelectorAll(\"[data-absolute-island-slot]\");\n var islandHtml = {};\n for (var index = 0; index < islandSlots.length; index += 1) {\n var slot = islandSlots[index];\n var slotId = slot.getAttribute(\"data-absolute-island-slot\");\n if (!slotId) continue;\n islandHtml[slotId] = slot.innerHTML;\n }\n window.__ABS_SVELTE_ISLAND_HTML__ = islandHtml;\n hasIslandHtml = Object.keys(islandHtml).length > 0;\n}\n\nif (isHMR) {\n var preservedState = window.__HMR_PRESERVED_STATE__;\n if (!preservedState) {\n try {\n var stored = sessionStorage.getItem(\"__SVELTE_HMR_STATE__\");\n if (stored) preservedState = JSON.parse(stored);\n } catch (err) { /* ignore */ }\n }\n var mergedProps = (preservedState && Object.keys(preservedState).length > 0) ? Object.assign({}, initialProps, preservedState) : initialProps;\n if (typeof window.__SVELTE_UNMOUNT__ === \"function\") {\n try { window.__SVELTE_UNMOUNT__(); } catch (err) { /* ignore */ }\n }\n component = mount(Component, { target, props: mergedProps });\n window.__HMR_PRESERVED_STATE__ = undefined;\n} else if (!shouldHydrate) {\n component = undefined;\n} else if (isSsrDirty || hasIslandHtml) {\n component = mount(Component, { target, props: initialProps });\n} else {\n component = hydrate(Component, { target, props: initialProps });\n}\n\nif (typeof window !== \"undefined\") {\n window.__SVELTE_COMPONENT__ = component;\n window.__SVELTE_UNMOUNT__ = function() { if (component) { unmount(component); } };\n window.__ABS_SLOT_HYDRATION_PENDING__ = shouldHydrate;\n var releaseStreamingSlots = function() {\n window.__ABS_SLOT_HYDRATION_PENDING__ = false;\n if (typeof window.__ABS_SLOT_FLUSH__ === \"function\") {\n window.__ABS_SLOT_FLUSH__();\n }\n };\n if (shouldHydrate && typeof requestAnimationFrame === \"function\") {\n requestAnimationFrame(function() {\n requestAnimationFrame(releaseStreamingSlots);\n });\n } else if (typeof window.__ABS_SLOT_FLUSH__ === \"function\") {\n window.__ABS_SLOT_FLUSH__();\n } else if (typeof setTimeout === \"function\") {\n setTimeout(releaseStreamingSlots, 0);\n }\n}`;\n\n\t\t\tawait mkdir(dirname(indexPath), { recursive: true });\n\n\t\t\treturn write(indexPath, bootstrap);\n\t\t})\n\t);\n\n\treturn {\n\t\t// Actual client component paths (for official HMR module imports)\n\t\tsvelteClientPaths: roots.map(({ client }) => client),\n\t\t// Index paths (entry points for hydration)\n\t\tsvelteIndexPaths: roots.map(({ client }) => {\n\t\t\tconst rel = dirname(relative(clientDir, client));\n\n\t\t\treturn join(indexDir, rel, basename(client));\n\t\t}),\n\t\tsvelteServerPaths: roots.map(({ ssr }) => ssr)\n\t};\n};\n",
|
|
67
|
+
"import { BASE_36_RADIX } from '../constants';\nimport { existsSync } from 'node:fs';\nimport { mkdir } from 'node:fs/promises';\nimport {\n\tbasename,\n\tdirname,\n\tisAbsolute,\n\tjoin,\n\trelative,\n\tresolve\n} from 'node:path';\nimport type {\n\tSFCDescriptor,\n\tcompileScript as CompileScriptFn,\n\tcompileStyle as CompileStyleFn,\n\tcompileTemplate as CompileTemplateFn,\n\tparse as ParseFn\n} from '@vue/compiler-sfc';\nimport { file, write, Transpiler } from 'bun';\nimport { toKebab } from '../utils/stringModifiers';\nimport { resolvePackageImport } from './resolvePackageImport';\nimport { buildIslandMetadataExports } from '../islands/sourceMetadata';\nimport {\n\taddStyleImporter,\n\tcompileStyleSource,\n\tisStylePath\n} from './stylePreprocessor';\nimport type { StylePreprocessorConfig } from '../../types/build';\n\nconst resolveDevClientDir = () => {\n\tconst projectRoot = process.cwd();\n\tconst fromSource = resolve(import.meta.dir, '../dev/client');\n\n\tif (existsSync(fromSource) && fromSource.startsWith(projectRoot)) {\n\t\treturn fromSource;\n\t}\n\n\tconst fromNodeModules = resolve(\n\t\tprojectRoot,\n\t\t'node_modules/@absolutejs/absolute/dist/dev/client'\n\t);\n\tif (existsSync(fromNodeModules)) return fromNodeModules;\n\n\treturn resolve(import.meta.dir, './dev/client');\n};\n\nconst devClientDir = resolveDevClientDir();\n\nconst hmrClientPath = join(devClientDir, 'hmrClient.ts').replace(/\\\\/g, '/');\n\nconst transpiler = new Transpiler({ loader: 'ts', target: 'browser' });\n\ntype BuildResult = {\n\tclientPath: string;\n\tserverPath: string;\n\tcssPaths: string[];\n\tcssCodes: string[];\n\ttsHelperPaths: string[];\n\thmrId: string;\n};\n\n// HMR change type detection\nexport type VueChangeType = 'style-only' | 'template-only' | 'script' | 'full';\n\n// Descriptor caches for change detection\nconst scriptCache = new Map<string, string>();\nconst scriptSetupCache = new Map<string, string>();\nconst templateCache = new Map<string, string>();\nconst styleCache = new Map<string, string>();\n\n// Persistent build result cache across HMR cycles — avoids recompiling unchanged Vue components\nconst persistentBuildCache = new Map<string, BuildResult>();\n\n// Source content hash cache to detect unchanged files\nconst vueSourceHashCache = new Map<string, string>();\n\n// HMR metadata storage (exported for rebuildTrigger to access)\nexport const vueHmrMetadata = new Map<\n\tstring,\n\t{ hmrId: string; changeType: VueChangeType }\n>();\nexport const clearVueHmrCaches = () => {\n\tscriptCache.clear();\n\tscriptSetupCache.clear();\n\ttemplateCache.clear();\n\tstyleCache.clear();\n\tvueHmrMetadata.clear();\n\tpersistentBuildCache.clear();\n\tvueSourceHashCache.clear();\n};\nexport const detectVueChangeType = (\n\tfilePath: string,\n\tdescriptor: SFCDescriptor\n) => {\n\tconst prevScript = scriptCache.get(filePath);\n\tconst prevScriptSetup = scriptSetupCache.get(filePath);\n\tconst prevTemplate = templateCache.get(filePath);\n\tconst prevStyle = styleCache.get(filePath);\n\n\tconst currentScript = descriptor.script?.content ?? '';\n\tconst currentScriptSetup = descriptor.scriptSetup?.content ?? '';\n\tconst currentTemplate = descriptor.template?.content ?? '';\n\t// Serialize styles: include scoped flag and content for each style block\n\t// Uses ||| delimiter to detect changes to any block, additions, removals, or reordering\n\tconst currentStyle = descriptor.styles\n\t\t.map((s) => `${s.scoped ? 'scoped:' : ''}${s.content}`)\n\t\t.join('|||');\n\n\t// Update caches with current values\n\tscriptCache.set(filePath, currentScript);\n\tscriptSetupCache.set(filePath, currentScriptSetup);\n\ttemplateCache.set(filePath, currentTemplate);\n\tstyleCache.set(filePath, currentStyle);\n\n\t// First compile - no previous data\n\tif (prevScript === undefined && prevScriptSetup === undefined) {\n\t\treturn 'full';\n\t}\n\n\tconst scriptChanged = prevScript !== currentScript;\n\tconst scriptSetupChanged = prevScriptSetup !== currentScriptSetup;\n\tconst templateChanged = prevTemplate !== currentTemplate;\n\tconst styleChanged = prevStyle !== currentStyle;\n\n\t// Priority order:\n\t// 1. Script changes → 'script' (requires reload)\n\t// 2. Template-only (no script, no style) → 'template-only' (rerender)\n\t// 3. Style-only (no script, no template) → 'style-only' (CSS hot-swap, state preserved)\n\t// 4. Template + style → 'template-only' (CSS swapped alongside rerender)\n\n\t// Script change: script or scriptSetup changed (may also include template/style)\n\tif (scriptChanged || scriptSetupChanged) {\n\t\treturn 'script';\n\t}\n\n\t// Style-only change: only styles changed, no script or template\n\tif (styleChanged && !templateChanged) {\n\t\treturn 'style-only';\n\t}\n\n\t// Template-only change: template changed (with or without styles), script unchanged\n\tif (templateChanged) {\n\t\treturn 'template-only';\n\t}\n\n\t// No changes detected (shouldn't happen in practice)\n\treturn 'full';\n};\nexport const generateVueHmrId = (sourceFilePath: string, vueRootDir: string) =>\n\trelative(vueRootDir, sourceFilePath)\n\t\t.replace(/\\\\/g, '/')\n\t\t.replace(/\\.vue$/, '');\n\nconst extractImports = (sourceCode: string) =>\n\tArray.from(sourceCode.matchAll(/import\\s+[\\s\\S]+?['\"]([^'\"]+)['\"]/g))\n\t\t.map((match) => match[1])\n\t\t.filter((importPath): importPath is string => importPath !== undefined);\n\nconst toJs = (filePath: string, sourceDir?: string) => {\n\tif (filePath.endsWith('.vue')) return filePath.replace(/\\.vue$/, '.js');\n\tif (filePath.endsWith('.ts')) return filePath.replace(/\\.ts$/, '.js');\n\t// Style imports (.css / .module.scss / .less / .styl / etc.) keep their\n\t// original extension — the bun-side style preprocessor plugin loads them\n\t// directly. Appending `.js` would break the resolver and the build.\n\t//\n\t// We also rewrite relative style imports to absolute paths so they\n\t// resolve correctly: the compiled .js lives in `generated/{mode}/...`\n\t// (a different directory tree than the source), and a bare `./foo.scss`\n\t// would point to the wrong location once the bundler runs from the\n\t// output directory.\n\tif (isStylePath(filePath)) {\n\t\tif (\n\t\t\tsourceDir &&\n\t\t\t(filePath.startsWith('./') || filePath.startsWith('../'))\n\t\t) {\n\t\t\treturn resolve(sourceDir, filePath);\n\t\t}\n\n\t\treturn filePath;\n\t}\n\n\treturn `${filePath}.js`;\n};\n\nconst stripExports = (code: string) =>\n\tcode\n\t\t.replace(/export\\s+default/, 'const script =')\n\t\t.replace(/^export\\s+/gm, '');\n\nconst mergeVueImports = (code: string) => {\n\tconst lines = code.split('\\n');\n\tconst specifierSet = new Set<string>();\n\tconst vueImportRegex = /^import\\s+{([^}]+)}\\s+from\\s+['\"]vue['\"];?$/;\n\n\tlines.forEach((line) => {\n\t\tconst match = line.match(vueImportRegex);\n\t\tif (match?.[1])\n\t\t\tmatch[1]\n\t\t\t\t.split(',')\n\t\t\t\t.forEach((importSpecifier) =>\n\t\t\t\t\tspecifierSet.add(importSpecifier.trim())\n\t\t\t\t);\n\t});\n\n\tconst nonVueLines = lines.filter((line) => !vueImportRegex.test(line));\n\n\treturn specifierSet.size\n\t\t? [\n\t\t\t\t`import { ${[...specifierSet].join(', ')} } from \"vue\";`,\n\t\t\t\t...nonVueLines\n\t\t\t].join('\\n')\n\t\t: nonVueLines.join('\\n');\n};\n\ntype VueCompiler = {\n\tparse: typeof ParseFn;\n\tcompileScript: typeof CompileScriptFn;\n\tcompileTemplate: typeof CompileTemplateFn;\n\tcompileStyle: typeof CompileStyleFn;\n};\n\nconst compileVueFile = async (\n\tsourceFilePath: string,\n\toutputDirs: { client: string; server: string; css: string },\n\tcacheMap: Map<string, BuildResult>,\n\tisEntryPoint: boolean,\n\tvueRootDir: string,\n\tcompiler: VueCompiler,\n\tstylePreprocessors?: StylePreprocessorConfig\n) => {\n\tconst cachedResult = cacheMap.get(sourceFilePath);\n\tif (cachedResult) return cachedResult;\n\n\tconst relativeFilePath = relative(vueRootDir, sourceFilePath).replace(\n\t\t/\\\\/g,\n\t\t'/'\n\t);\n\tconst relativeWithoutExtension = relativeFilePath.replace(/\\.vue$/, '');\n\tconst fileBaseName = basename(sourceFilePath, '.vue');\n\tconst componentId = toKebab(fileBaseName);\n\n\tconst sourceContent = await file(sourceFilePath).text();\n\tconst islandMetadataExports = buildIslandMetadataExports(sourceContent);\n\n\t// Check persistent cache — skip recompilation if source unchanged\n\tconst contentHash = Bun.hash(sourceContent).toString(BASE_36_RADIX);\n\tconst prevHash = vueSourceHashCache.get(sourceFilePath);\n\tconst persistent = persistentBuildCache.get(sourceFilePath);\n\n\tif (prevHash === contentHash && persistent) {\n\t\tcacheMap.set(sourceFilePath, persistent);\n\n\t\treturn persistent;\n\t}\n\n\tvueSourceHashCache.set(sourceFilePath, contentHash);\n\tconst { descriptor } = compiler.parse(sourceContent, {\n\t\tfilename: sourceFilePath\n\t});\n\n\t// Generate HMR ID and detect change type\n\tconst hmrId = generateVueHmrId(sourceFilePath, vueRootDir);\n\tconst changeType = detectVueChangeType(sourceFilePath, descriptor);\n\n\t// Store HMR metadata for rebuildTrigger to access\n\tvueHmrMetadata.set(sourceFilePath, { changeType, hmrId });\n\n\tconst scriptSource =\n\t\tdescriptor.scriptSetup?.content ?? descriptor.script?.content ?? '';\n\n\tconst importPaths = extractImports(scriptSource);\n\n\t// Resolve bare module imports that point to .vue files\n\tconst resolvedPackageVueImports = new Map<string, string>();\n\tconst bareImports = importPaths.filter(\n\t\t(p) => !p.startsWith('.') && !p.startsWith('/')\n\t);\n\tfor (const importPath of bareImports) {\n\t\tconst resolved = resolvePackageImport(importPath);\n\t\tif (!resolved?.endsWith('.vue')) continue;\n\t\tresolvedPackageVueImports.set(importPath, resolved);\n\t}\n\n\tconst childComponentPaths = importPaths.filter(\n\t\t(path) => path.startsWith('.') && path.endsWith('.vue')\n\t);\n\tconst packageComponentPaths = Array.from(\n\t\tresolvedPackageVueImports.entries()\n\t);\n\t// Helper modules are TS/JS imports that need to be transpiled and copied\n\t// alongside the component (e.g. shared utilities). Style imports including\n\t// CSS modules (.module.scss / .module.less / .module.styl / .module.css)\n\t// are handled by the bun-side style preprocessor plugin and must not be\n\t// treated as TS helpers — otherwise we'd try to read the source as a `.ts`\n\t// file and crash at build time.\n\tconst helperModulePaths = importPaths.filter(\n\t\t(path) =>\n\t\t\tpath.startsWith('.') && !path.endsWith('.vue') && !isStylePath(path)\n\t);\n\n\t// Record JS → CSS-module imports for HMR dep tracking. When a Vue\n\t// component imports a `.module.scss`, an edit to that style file\n\t// has to invalidate the importing component's bundle so the new\n\t// hashed class names land in the served output.\n\tconst stylePathsImported = importPaths\n\t\t.filter(\n\t\t\t(path) =>\n\t\t\t\t(path.startsWith('.') || isAbsolute(path)) && isStylePath(path)\n\t\t)\n\t\t.map((path) =>\n\t\t\tisAbsolute(path) ? path : resolve(dirname(sourceFilePath), path)\n\t\t);\n\tfor (const stylePath of stylePathsImported) {\n\t\taddStyleImporter(sourceFilePath, stylePath);\n\t}\n\n\tconst childBuildResults: BuildResult[] = await Promise.all([\n\t\t...childComponentPaths.map((relativeChildPath) =>\n\t\t\tcompileVueFile(\n\t\t\t\tresolve(dirname(sourceFilePath), relativeChildPath),\n\t\t\t\toutputDirs,\n\t\t\t\tcacheMap,\n\t\t\t\tfalse,\n\t\t\t\tvueRootDir,\n\t\t\t\tcompiler,\n\t\t\t\tstylePreprocessors\n\t\t\t)\n\t\t),\n\t\t...packageComponentPaths.map(([, absolutePath]) =>\n\t\t\tcompileVueFile(\n\t\t\t\tabsolutePath,\n\t\t\t\toutputDirs,\n\t\t\t\tcacheMap,\n\t\t\t\tfalse,\n\t\t\t\tvueRootDir,\n\t\t\t\tcompiler,\n\t\t\t\tstylePreprocessors\n\t\t\t)\n\t\t)\n\t]);\n\n\tconst hasScript = descriptor.script || descriptor.scriptSetup;\n\tconst compiledScript = hasScript\n\t\t? compiler.compileScript(descriptor, {\n\t\t\t\tid: componentId,\n\t\t\t\tinlineTemplate: false\n\t\t\t})\n\t\t: { bindings: {}, content: 'export default {};' };\n\tconst strippedScript = stripExports(compiledScript.content);\n\tconst sourceDir = dirname(sourceFilePath);\n\tconst transpiledScript = transpiler\n\t\t.transformSync(strippedScript)\n\t\t.replace(\n\t\t\t/(['\"])(\\.{1,2}\\/[^'\"]+)(['\"])/g,\n\t\t\t(_, quoteStart, relativeImport, quoteEnd) =>\n\t\t\t\t`${quoteStart}${toJs(relativeImport, sourceDir)}${quoteEnd}`\n\t\t);\n\n\t// Build rewrite map for bare module .vue imports → compiled output paths\n\tconst packageImportRewrites = new Map<\n\t\tstring,\n\t\t{ client: string; server: string }\n\t>();\n\tfor (const [bareImport, absolutePath] of packageComponentPaths) {\n\t\tconst childResult = cacheMap.get(absolutePath);\n\t\tif (!childResult) continue;\n\n\t\tpackageImportRewrites.set(bareImport, {\n\t\t\tclient: childResult.clientPath,\n\t\t\tserver: childResult.serverPath\n\t\t});\n\t}\n\n\tconst generateRenderFunction = (ssr: boolean) =>\n\t\tcompiler\n\t\t\t.compileTemplate({\n\t\t\t\tcompilerOptions: {\n\t\t\t\t\tbindingMetadata: compiledScript.bindings,\n\t\t\t\t\tprefixIdentifiers: true\n\t\t\t\t},\n\t\t\t\tfilename: sourceFilePath,\n\t\t\t\tid: componentId,\n\t\t\t\tscoped: descriptor.styles.some(\n\t\t\t\t\t(styleBlock) => styleBlock.scoped\n\t\t\t\t),\n\t\t\t\tsource: descriptor.template?.content ?? '',\n\t\t\t\tssr,\n\t\t\t\tssrCssVars: descriptor.cssVars\n\t\t\t})\n\t\t\t.code.replace(\n\t\t\t\t/(['\"])(\\.{1,2}\\/[^'\"]+)(['\"])/g,\n\t\t\t\t(_, quoteStart, relativeImport, quoteEnd) =>\n\t\t\t\t\t`${quoteStart}${toJs(relativeImport, sourceDir)}${quoteEnd}`\n\t\t\t);\n\n\tconst localCss = await Promise.all(\n\t\tdescriptor.styles.map(\n\t\t\tasync (styleBlock) =>\n\t\t\t\tcompiler.compileStyle({\n\t\t\t\t\tfilename: sourceFilePath,\n\t\t\t\t\tid: componentId,\n\t\t\t\t\tscoped: styleBlock.scoped,\n\t\t\t\t\tsource: styleBlock.lang\n\t\t\t\t\t\t? await compileStyleSource(\n\t\t\t\t\t\t\t\tsourceFilePath,\n\t\t\t\t\t\t\t\tstyleBlock.content,\n\t\t\t\t\t\t\t\tstyleBlock.lang,\n\t\t\t\t\t\t\t\tstylePreprocessors\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t: styleBlock.content,\n\t\t\t\t\ttrim: true\n\t\t\t\t}).code\n\t\t)\n\t);\n\tconst allCss = [\n\t\t...localCss,\n\t\t...childBuildResults.flatMap((result) => result.cssCodes)\n\t];\n\n\tlet cssOutputPaths: string[] = [];\n\tif (isEntryPoint && allCss.length) {\n\t\tconst cssOutputFile = join(\n\t\t\toutputDirs.css,\n\t\t\t`${toKebab(fileBaseName)}-compiled.css`\n\t\t);\n\t\tawait mkdir(dirname(cssOutputFile), { recursive: true });\n\t\tawait write(cssOutputFile, allCss.join('\\n'));\n\t\tcssOutputPaths = [cssOutputFile];\n\t}\n\n\tconst assembleModule = (\n\t\trenderCode: string,\n\t\trenderFnName: 'render' | 'ssrRender',\n\t\tincludeHmr: boolean\n\t) => {\n\t\tconst hasScoped = descriptor.styles.some(\n\t\t\t(styleBlock) => styleBlock.scoped\n\t\t);\n\n\t\t// __scopeId is required for Vue runtime to add scoped style attributes to dynamic elements\n\t\t// Without this, scoped styles only work on static VNodes that have the attribute baked in\n\t\tconst scopeIdCode = hasScoped\n\t\t\t? `script.__scopeId = \"data-v-${componentId}\";`\n\t\t\t: '';\n\n\t\t// For client bundles, inject HMR registration code that uses Vue's native __VUE_HMR_RUNTIME__\n\t\t// This enables state-preserving hot updates via rerender() for template changes\n\t\t// and reload() for script changes\n\t\tconst hmrCode = includeHmr\n\t\t\t? `\n// Vue Native HMR Registration\nscript.__hmrId = ${JSON.stringify(hmrId)};\nif (typeof __VUE_HMR_RUNTIME__ !== 'undefined') {\n __VUE_HMR_RUNTIME__.createRecord(script.__hmrId, script);\n if (typeof window !== 'undefined') {\n window.__VUE_HMR_COMPONENTS__ = window.__VUE_HMR_COMPONENTS__ || {};\n window.__VUE_HMR_COMPONENTS__[script.__hmrId] = script;\n }\n}`\n\t\t\t: '';\n\n\t\treturn mergeVueImports(\n\t\t\t[\n\t\t\t\ttranspiledScript,\n\t\t\t\trenderCode,\n\t\t\t\t`script.${renderFnName} = ${renderFnName};`,\n\t\t\t\tscopeIdCode,\n\t\t\t\thmrCode,\n\t\t\t\t'export default script;'\n\t\t\t].join('\\n')\n\t\t);\n\t};\n\n\t// Client bundles include HMR registration code; server bundles do not\n\tconst clientCode =\n\t\tassembleModule(generateRenderFunction(false), 'render', true) +\n\t\tislandMetadataExports;\n\tconst serverCode =\n\t\tassembleModule(generateRenderFunction(true), 'ssrRender', false) +\n\t\tislandMetadataExports;\n\n\tconst clientOutputPath = join(\n\t\toutputDirs.client,\n\t\t`${relativeWithoutExtension}.js`\n\t);\n\tconst serverOutputPath = join(\n\t\toutputDirs.server,\n\t\t`${relativeWithoutExtension}.js`\n\t);\n\n\t// Rewrite relative imports that escape the framework root.\n\t// Source file is at vueRoot/<relDir>/file.vue, but compiled\n\t// output is at vueRoot/generated/{mode}/<relDir>/file.js —\n\t// 2 extra directory levels. Imports going above vueRoot need\n\t// ../../ prepended so they resolve to the same target.\n\tconst relDir = dirname(relativeFilePath);\n\tconst relDepth = relDir === '.' ? 0 : relDir.split('/').length;\n\tconst adjustImports = (code: string) =>\n\t\tcode.replace(/(from\\s+['\"])(\\.\\.\\/(?:\\.\\.\\/)*)/g, (_, prefix, dots) => {\n\t\t\tconst upCount = dots.split('/').length - 1;\n\t\t\tif (upCount <= relDepth) return `${prefix}${dots}`;\n\n\t\t\treturn `${prefix}../../${dots}`;\n\t\t});\n\n\t// Rewrite bare module imports to relative paths pointing at compiled output\n\tconst rewritePackageImports = (\n\t\tcode: string,\n\t\toutputPath: string,\n\t\tmode: 'client' | 'server'\n\t) => {\n\t\tlet result = code;\n\t\tfor (const [bareImport, paths] of packageImportRewrites) {\n\t\t\tconst targetPath = mode === 'server' ? paths.server : paths.client;\n\t\t\tlet rel = relative(dirname(outputPath), targetPath).replace(\n\t\t\t\t/\\\\/g,\n\t\t\t\t'/'\n\t\t\t);\n\t\t\tif (!rel.startsWith('.')) rel = `./${rel}`;\n\t\t\tresult = result.replaceAll(bareImport, rel);\n\t\t}\n\n\t\treturn result;\n\t};\n\n\tawait mkdir(dirname(clientOutputPath), { recursive: true });\n\tawait mkdir(dirname(serverOutputPath), { recursive: true });\n\tawait write(\n\t\tclientOutputPath,\n\t\trewritePackageImports(\n\t\t\tadjustImports(clientCode),\n\t\t\tclientOutputPath,\n\t\t\t'client'\n\t\t)\n\t);\n\tawait write(\n\t\tserverOutputPath,\n\t\trewritePackageImports(\n\t\t\tadjustImports(serverCode),\n\t\t\tserverOutputPath,\n\t\t\t'server'\n\t\t)\n\t);\n\n\tconst result: BuildResult = {\n\t\tclientPath: clientOutputPath,\n\t\tcssCodes: allCss,\n\t\tcssPaths: cssOutputPaths,\n\t\thmrId,\n\t\tserverPath: serverOutputPath,\n\t\ttsHelperPaths: [\n\t\t\t...helperModulePaths.map((helper) =>\n\t\t\t\tresolve(\n\t\t\t\t\tdirname(sourceFilePath),\n\t\t\t\t\thelper.endsWith('.ts') ? helper : `${helper}.ts`\n\t\t\t\t)\n\t\t\t),\n\t\t\t...childBuildResults.flatMap((child) => child.tsHelperPaths)\n\t\t]\n\t};\n\n\tcacheMap.set(sourceFilePath, result);\n\tpersistentBuildCache.set(sourceFilePath, result);\n\n\treturn result;\n};\n\nexport const compileVue = async (\n\tentryPoints: string[],\n\tvueRootDir: string,\n\tisDev = false,\n\tstylePreprocessors?: StylePreprocessorConfig\n) => {\n\tconst compiler: VueCompiler = await import('@vue/compiler-sfc');\n\n\tconst generatedDir = join(vueRootDir, 'generated');\n\tconst clientOutputDir = join(generatedDir, 'client');\n\tconst indexOutputDir = join(generatedDir, 'indexes');\n\tconst serverOutputDir = join(generatedDir, 'server');\n\tconst cssOutputDir = join(generatedDir, 'compiled');\n\n\tawait Promise.all([\n\t\tmkdir(clientOutputDir, { recursive: true }),\n\t\tmkdir(indexOutputDir, { recursive: true }),\n\t\tmkdir(serverOutputDir, { recursive: true }),\n\t\tmkdir(cssOutputDir, { recursive: true })\n\t]);\n\n\tconst buildCache = new Map<string, BuildResult>();\n\tconst allTsHelperPaths = new Set<string>();\n\n\tconst compiledPages = await Promise.all(\n\t\tentryPoints.map(async (entryPath) => {\n\t\t\tconst result = await compileVueFile(\n\t\t\t\tresolve(entryPath),\n\t\t\t\t{\n\t\t\t\t\tclient: clientOutputDir,\n\t\t\t\t\tcss: cssOutputDir,\n\t\t\t\t\tserver: serverOutputDir\n\t\t\t\t},\n\t\t\t\tbuildCache,\n\t\t\t\ttrue,\n\t\t\t\tvueRootDir,\n\t\t\t\tcompiler,\n\t\t\t\tstylePreprocessors\n\t\t\t);\n\n\t\t\tresult.tsHelperPaths.forEach((path) => allTsHelperPaths.add(path));\n\n\t\t\tconst entryBaseName = basename(entryPath, '.vue');\n\t\t\tconst indexOutputFile = join(indexOutputDir, `${entryBaseName}.js`);\n\t\t\tconst clientOutputFile = join(\n\t\t\t\tclientOutputDir,\n\t\t\t\trelative(vueRootDir, entryPath)\n\t\t\t\t\t.replace(/\\\\/g, '/')\n\t\t\t\t\t.replace(/\\.vue$/, '.js')\n\t\t\t);\n\n\t\t\tawait mkdir(dirname(indexOutputFile), { recursive: true });\n\t\t\tconst vueHmrImports = isDev\n\t\t\t\t? [\n\t\t\t\t\t\t`window.__HMR_FRAMEWORK__ = \"vue\";`,\n\t\t\t\t\t\t`import \"${hmrClientPath}\";`\n\t\t\t\t\t]\n\t\t\t\t: [];\n\t\t\tawait write(\n\t\t\t\tindexOutputFile,\n\t\t\t\t[\n\t\t\t\t\t...vueHmrImports,\n\t\t\t\t\t`import Comp from \"${relative(dirname(indexOutputFile), clientOutputFile).replace(/\\\\/g, '/')}\";`,\n\t\t\t\t\t'import { createSSRApp, createApp } from \"vue\";',\n\t\t\t\t\t'',\n\t\t\t\t\t'// HMR State Preservation: Check for preserved state from HMR',\n\t\t\t\t\t'let preservedState = (typeof window !== \"undefined\" && window.__HMR_PRESERVED_STATE__) ? window.__HMR_PRESERVED_STATE__ : {};',\n\t\t\t\t\t'',\n\t\t\t\t\t'// Fallback: check sessionStorage if window state is empty (only during active HMR, not full page refresh)',\n\t\t\t\t\t'if (typeof window !== \"undefined\" && Object.keys(preservedState).length === 0 && sessionStorage.getItem(\"__HMR_ACTIVE__\")) {',\n\t\t\t\t\t' try {',\n\t\t\t\t\t' const stored = sessionStorage.getItem(\"__VUE_HMR_STATE__\");',\n\t\t\t\t\t' if (stored) {',\n\t\t\t\t\t' preservedState = JSON.parse(stored);',\n\t\t\t\t\t' sessionStorage.removeItem(\"__VUE_HMR_STATE__\");',\n\t\t\t\t\t' }',\n\t\t\t\t\t' } catch (e) {}',\n\t\t\t\t\t'}',\n\t\t\t\t\t'// Clean up stale HMR state on full page refresh',\n\t\t\t\t\t'if (typeof window !== \"undefined\" && !sessionStorage.getItem(\"__HMR_ACTIVE__\")) {',\n\t\t\t\t\t' sessionStorage.removeItem(\"__VUE_HMR_STATE__\");',\n\t\t\t\t\t'}',\n\t\t\t\t\t'',\n\t\t\t\t\t'const initialProps = window.__INITIAL_PROPS__ ?? {};',\n\t\t\t\t\t'// Only merge preserved state keys that match declared props (avoids passing refs/components as attributes)',\n\t\t\t\t\t'const mergedProps = { ...initialProps };',\n\t\t\t\t\t'Object.keys(preservedState).forEach(function(key) {',\n\t\t\t\t\t' if (key in initialProps) {',\n\t\t\t\t\t' mergedProps[key] = preservedState[key];',\n\t\t\t\t\t' }',\n\t\t\t\t\t'});',\n\t\t\t\t\t'',\n\t\t\t\t\t'// During HMR or after SSR dirty, use createApp (fresh mount) to avoid hydration mismatch with stale DOM',\n\t\t\t\t\t'const isHMR = typeof window !== \"undefined\" && sessionStorage.getItem(\"__HMR_ACTIVE__\");',\n\t\t\t\t\t'const isSsrDirty = typeof window !== \"undefined\" && window.__SSR_DIRTY__;',\n\t\t\t\t\t'const shouldHydrate = typeof window === \"undefined\" ? false : !(isHMR || isSsrDirty);',\n\t\t\t\t\t'const app = shouldHydrate ? createSSRApp(Comp, mergedProps) : createApp(Comp, mergedProps);',\n\t\t\t\t\t'app.mount(\"#root\");',\n\t\t\t\t\t'',\n\t\t\t\t\t'// Store app instance for HMR - used for manual component updates',\n\t\t\t\t\t'if (typeof window !== \"undefined\") {',\n\t\t\t\t\t' window.__VUE_APP__ = app;',\n\t\t\t\t\t'}',\n\t\t\t\t\t'',\n\t\t\t\t\t'// Post-mount: Apply preserved state to reactive refs in component tree',\n\t\t\t\t\t'// This restores state that lives in refs (like count) rather than props',\n\t\t\t\t\t'if (typeof window !== \"undefined\" && Object.keys(preservedState).length > 0) {',\n\t\t\t\t\t' requestAnimationFrame(function() {',\n\t\t\t\t\t' if (window.__VUE_APP__ && window.__VUE_APP__._instance) {',\n\t\t\t\t\t' applyPreservedState(window.__VUE_APP__._instance, preservedState);',\n\t\t\t\t\t' }',\n\t\t\t\t\t' });',\n\t\t\t\t\t'}',\n\t\t\t\t\t'',\n\t\t\t\t\t'function applyPreservedState(instance, state) {',\n\t\t\t\t\t' // Apply to root component setupState',\n\t\t\t\t\t' if (instance.setupState) {',\n\t\t\t\t\t' Object.keys(state).forEach(function(key) {',\n\t\t\t\t\t' const ref = instance.setupState[key];',\n\t\t\t\t\t' if (ref && typeof ref === \"object\" && \"value\" in ref) {',\n\t\t\t\t\t' ref.value = state[key];',\n\t\t\t\t\t' }',\n\t\t\t\t\t' });',\n\t\t\t\t\t' }',\n\t\t\t\t\t' // Also apply to child components',\n\t\t\t\t\t' if (instance.subTree) {',\n\t\t\t\t\t' walkAndApply(instance.subTree, state);',\n\t\t\t\t\t' }',\n\t\t\t\t\t'}',\n\t\t\t\t\t'',\n\t\t\t\t\t'function walkAndApply(vnode, state) {',\n\t\t\t\t\t' if (!vnode) return;',\n\t\t\t\t\t' if (vnode.component && vnode.component.setupState) {',\n\t\t\t\t\t' Object.keys(state).forEach(function(key) {',\n\t\t\t\t\t' const ref = vnode.component.setupState[key];',\n\t\t\t\t\t' if (ref && typeof ref === \"object\" && \"value\" in ref) {',\n\t\t\t\t\t' ref.value = state[key];',\n\t\t\t\t\t' }',\n\t\t\t\t\t' });',\n\t\t\t\t\t' }',\n\t\t\t\t\t' if (vnode.children && Array.isArray(vnode.children)) {',\n\t\t\t\t\t' vnode.children.forEach(function(child) { walkAndApply(child, state); });',\n\t\t\t\t\t' }',\n\t\t\t\t\t' if (vnode.component && vnode.component.subTree) {',\n\t\t\t\t\t' walkAndApply(vnode.component.subTree, state);',\n\t\t\t\t\t' }',\n\t\t\t\t\t'}',\n\t\t\t\t\t'',\n\t\t\t\t\t'// Clear preserved state after applying',\n\t\t\t\t\t'if (typeof window !== \"undefined\") {',\n\t\t\t\t\t' window.__ABS_SLOT_HYDRATION_PENDING__ = shouldHydrate;',\n\t\t\t\t\t' var releaseStreamingSlots = function() {',\n\t\t\t\t\t' window.__ABS_SLOT_HYDRATION_PENDING__ = false;',\n\t\t\t\t\t' if (typeof window.__ABS_SLOT_FLUSH__ === \"function\") {',\n\t\t\t\t\t' window.__ABS_SLOT_FLUSH__();',\n\t\t\t\t\t' }',\n\t\t\t\t\t' };',\n\t\t\t\t\t' if (shouldHydrate && typeof requestAnimationFrame === \"function\") {',\n\t\t\t\t\t' requestAnimationFrame(function() {',\n\t\t\t\t\t' requestAnimationFrame(releaseStreamingSlots);',\n\t\t\t\t\t' });',\n\t\t\t\t\t' } else if (typeof window.__ABS_SLOT_FLUSH__ === \"function\") {',\n\t\t\t\t\t' window.__ABS_SLOT_FLUSH__();',\n\t\t\t\t\t' } else if (typeof setTimeout === \"function\") {',\n\t\t\t\t\t' setTimeout(releaseStreamingSlots, 0);',\n\t\t\t\t\t' }',\n\t\t\t\t\t'}',\n\t\t\t\t\t'if (typeof window !== \"undefined\") {',\n\t\t\t\t\t' window.__HMR_PRESERVED_STATE__ = undefined;',\n\t\t\t\t\t'}'\n\t\t\t\t].join('\\n')\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tclientPath: clientOutputFile,\n\t\t\t\tcssPaths: result.cssPaths,\n\t\t\t\tindexPath: indexOutputFile,\n\t\t\t\tserverPath: result.serverPath\n\t\t\t};\n\t\t})\n\t);\n\n\tawait Promise.all(\n\t\tArray.from(allTsHelperPaths).map(async (tsPath) => {\n\t\t\tconst sourceCode = await file(tsPath).text();\n\t\t\tconst transpiledCode = transpiler.transformSync(sourceCode);\n\t\t\tconst relativeJsPath = relative(vueRootDir, tsPath).replace(\n\t\t\t\t/\\.ts$/,\n\t\t\t\t'.js'\n\t\t\t);\n\t\t\tconst outClientPath = join(clientOutputDir, relativeJsPath);\n\t\t\tconst outServerPath = join(serverOutputDir, relativeJsPath);\n\t\t\tawait mkdir(dirname(outClientPath), { recursive: true });\n\t\t\tawait mkdir(dirname(outServerPath), { recursive: true });\n\t\t\tawait write(outClientPath, transpiledCode);\n\t\t\tawait write(outServerPath, transpiledCode);\n\t\t})\n\t);\n\n\treturn {\n\t\t// Export HMR metadata from vueHmrMetadata map (populated during compilation)\n\t\thmrMetadata: new Map(vueHmrMetadata),\n\t\tvueClientPaths: compiledPages.map((result) => result.clientPath),\n\t\tvueCssPaths: compiledPages.flatMap((result) => result.cssPaths),\n\t\tvueIndexPaths: compiledPages.map((result) => result.indexPath),\n\t\tvueServerPaths: compiledPages.map((result) => result.serverPath)\n\t};\n};\n",
|
|
68
|
+
"import { BASE_36_RADIX, MILLISECONDS_IN_A_SECOND } from '../constants';\n\nexport type LoweredAngularDeferSlot = {\n\tdelayMs: number;\n\terrorHtml: string | null;\n\tfallbackHtml: string;\n\tid: string;\n\tresolvedBindings: Array<{\n\t\texpression: string;\n\t\tkey: string;\n\t}>;\n\tresolvedHtml: string;\n\tresolvedTemplate: string;\n};\n\nexport type LoweredAngularDeferResult = {\n\tslots: LoweredAngularDeferSlot[];\n\ttemplate: string;\n\ttransformed: boolean;\n};\n\nconst isInterpolatedExpressionStart = (value: string, index: number) =>\n\tvalue[index] === '{' && value[index + 1] === '{';\n\nconst skipInterpolatedExpression = (value: string, start: number) => {\n\tconst cursor = start + 2;\n\twhile (cursor < value.length - 1) {\n\t\tconst end = value.indexOf('}}', cursor);\n\t\tif (end < 0) {\n\t\t\treturn value.length;\n\t\t}\n\n\t\treturn end + 2;\n\t}\n\n\treturn value.length;\n};\n\nconst updateBlockDepth = (char: string, depth: number) => {\n\tif (char === '{') {\n\t\treturn depth + 1;\n\t}\n\n\tif (char === '}') {\n\t\treturn depth - 1;\n\t}\n\n\treturn depth;\n};\n\nconst updateParenthesisDepth = (char: string, depth: number) => {\n\tif (char === '(') {\n\t\treturn depth + 1;\n\t}\n\n\tif (char === ')') {\n\t\treturn depth - 1;\n\t}\n\n\treturn depth;\n};\n\nconst appendResolvedChunk = (\n\tvalue: string,\n\ttemplate: string,\n\tcursor: number,\n\tinterpolationStart: number\n) => {\n\tconst nextTemplate = template + value.slice(cursor, interpolationStart);\n\tconst nextCursor = skipInterpolatedExpression(value, interpolationStart);\n\tif (nextCursor > value.length) {\n\t\treturn {\n\t\t\tbindings: undefined,\n\t\t\tcursor: value.length,\n\t\t\tdone: true,\n\t\t\ttemplate: nextTemplate + value.slice(interpolationStart)\n\t\t};\n\t}\n\n\tconst expression = value\n\t\t.slice(interpolationStart + 2, nextCursor - 2)\n\t\t.trim();\n\n\treturn {\n\t\tbindings: expression,\n\t\tcursor: nextCursor,\n\t\tdone: false,\n\t\ttemplate: nextTemplate\n\t};\n};\n\nconst appendTrailingTemplate = (\n\tvalue: string,\n\ttemplate: string,\n\tcursor: number\n) => template + value.slice(cursor);\n\nconst consumeDeferredAuxiliaryBlock = (input: {\n\tcursorAfterResolved: number;\n\tkeyword: '@error' | '@placeholder';\n\ttemplate: string;\n}) => {\n\tconst parsedBlock = parseDeferredAuxiliaryBlock(\n\t\tinput.template,\n\t\tinput.cursorAfterResolved,\n\t\tinput.keyword\n\t);\n\tif (!parsedBlock) {\n\t\treturn null;\n\t}\n\n\treturn {\n\t\tcontent: parsedBlock.content.trim(),\n\t\tnextIndex:\n\t\t\tinput.keyword === '@placeholder'\n\t\t\t\t? skipWhitespace(input.template, parsedBlock.nextIndex)\n\t\t\t\t: parsedBlock.nextIndex\n\t};\n};\n\nconst resolveDeferSlotStart = (\n\ttemplate: string,\n\tdeferIndex: number,\n\tmarkerCursor: number\n) => {\n\tconst nextMarkerCursor = skipWhitespace(template, markerCursor);\n\tif (template[nextMarkerCursor] === '{') {\n\t\treturn {\n\t\t\tchanged: false,\n\t\t\tcursor: deferIndex,\n\t\t\tmarkerCursor: nextMarkerCursor,\n\t\t\ttemplatePrefix: ''\n\t\t};\n\t}\n\n\treturn {\n\t\tchanged: true,\n\t\tcursor: deferIndex + '@defer'.length,\n\t\tmarkerCursor: nextMarkerCursor,\n\t\ttemplatePrefix: '@defer'\n\t};\n};\n\nconst consumeBlockCursor = (\n\tvalue: string,\n\tstart: number,\n\tcursor: number,\n\tdepth: number\n) => {\n\tif (isInterpolatedExpressionStart(value, cursor)) {\n\t\treturn {\n\t\t\tcursor: skipInterpolatedExpression(value, cursor),\n\t\t\tdepth,\n\t\t\tresult: null\n\t\t};\n\t}\n\n\tconst char = value[cursor] ?? '';\n\tconst nextDepth = updateBlockDepth(char, depth);\n\tif (char === '}' && nextDepth === 0) {\n\t\treturn {\n\t\t\tcursor,\n\t\t\tdepth,\n\t\t\tresult: {\n\t\t\t\tcontent: value.slice(start + 1, cursor),\n\t\t\t\tnextIndex: cursor + 1\n\t\t\t}\n\t\t};\n\t}\n\n\treturn {\n\t\tcursor: cursor + 1,\n\t\tdepth: nextDepth,\n\t\tresult: null\n\t};\n};\n\nconst consumeResolvedTemplateChunk = (\n\tvalue: string,\n\ttemplate: string,\n\tcursor: number,\n\tbindingsLength: number\n) => {\n\tconst interpolationStart = value.indexOf('{{', cursor);\n\tif (interpolationStart < 0) {\n\t\treturn {\n\t\t\tbinding: null,\n\t\t\tcursor,\n\t\t\tdone: true,\n\t\t\ttemplate: appendTrailingTemplate(value, template, cursor)\n\t\t};\n\t}\n\n\tconst nextChunk = appendResolvedChunk(\n\t\tvalue,\n\t\ttemplate,\n\t\tcursor,\n\t\tinterpolationStart\n\t);\n\tif (nextChunk.done || nextChunk.bindings === undefined) {\n\t\treturn {\n\t\t\tbinding: null,\n\t\t\tcursor,\n\t\t\tdone: true,\n\t\t\ttemplate: nextChunk.template\n\t\t};\n\t}\n\n\tconst key = `e${bindingsLength.toString(BASE_36_RADIX)}`;\n\n\treturn {\n\t\tbinding: {\n\t\t\texpression: nextChunk.bindings,\n\t\t\tkey\n\t\t},\n\t\tcursor: nextChunk.cursor,\n\t\tdone: false,\n\t\ttemplate: `${nextChunk.template}{{ slotData[\"${key}\"] }}`\n\t};\n};\n\nconst readNextDeferBlock = (template: string, cursor: number) => {\n\tconst deferIndex = template.indexOf('@defer', cursor);\n\tif (deferIndex < 0) {\n\t\treturn null;\n\t}\n\n\treturn {\n\t\tdeferIndex,\n\t\tprefix: template.slice(cursor, deferIndex)\n\t};\n};\n\nconst buildDeferredSlot = (input: {\n\tcursorAfterResolved: number;\n\terrorHtml: string | null;\n\tplaceholderHtml: string;\n\tresolvedBlock: { content: string; nextIndex: number };\n\tslotIndex: number;\n\ttriggerExpression: string | undefined;\n}) => {\n\tconst {\n\t\tcursorAfterResolved,\n\t\terrorHtml,\n\t\tplaceholderHtml,\n\t\tresolvedBlock,\n\t\tslotIndex,\n\t\ttriggerExpression\n\t} = input;\n\tconst resolvedHtml = resolvedBlock.content.trim();\n\tconst transformedResolved = transformResolvedTemplate(resolvedHtml);\n\tconst id = `absolute-angular-defer-${slotIndex.toString(BASE_36_RADIX)}`;\n\tconst slot: LoweredAngularDeferSlot = {\n\t\tdelayMs: parseDelayMs(triggerExpression),\n\t\terrorHtml,\n\t\tfallbackHtml: placeholderHtml,\n\t\tid,\n\t\tresolvedBindings: transformedResolved.bindings,\n\t\tresolvedHtml,\n\t\tresolvedTemplate: transformedResolved.template\n\t};\n\n\treturn {\n\t\tcursorAfterResolved,\n\t\tmarkup: `<abs-defer-slot [id]=\"'${id}'\" [resolve]=\"__absoluteDeferResolvePayload${slotIndex}\">${buildSlotTemplates(slot)}</abs-defer-slot>`,\n\t\tslot\n\t};\n};\n\nconst applyConsumedResolvedTemplateChunk = (\n\tbindings: Array<{ expression: string; key: string }>,\n\tnextChunk: {\n\t\tbinding: { expression: string; key: string } | null;\n\t\tcursor: number;\n\t\tdone: boolean;\n\t\ttemplate: string;\n\t}\n) => {\n\tif (nextChunk.binding) {\n\t\tbindings.push(nextChunk.binding);\n\t}\n\n\treturn {\n\t\tcursor: nextChunk.done ? Number.POSITIVE_INFINITY : nextChunk.cursor,\n\t\tdone: nextChunk.done,\n\t\ttemplate: nextChunk.template\n\t};\n};\n\nconst applyConsumedDeferredBlock = (\n\tcontent: string | null,\n\tparsedBlock: { content: string; nextIndex: number } | null,\n\tcursorAfterResolved: number\n) => {\n\tif (!parsedBlock) {\n\t\treturn {\n\t\t\tcontent,\n\t\t\tcursorAfterResolved\n\t\t};\n\t}\n\n\treturn {\n\t\tcontent: parsedBlock.content || null,\n\t\tcursorAfterResolved: parsedBlock.nextIndex\n\t};\n};\n\nconst applyConsumedPlaceholderBlock = (\n\tplaceholderHtml: string,\n\tparsedBlock: { content: string; nextIndex: number } | null,\n\tcursorAfterResolved: number\n) => {\n\tconst nextState = applyConsumedDeferredBlock(\n\t\tplaceholderHtml,\n\t\tparsedBlock,\n\t\tcursorAfterResolved\n\t);\n\n\treturn {\n\t\tcursorAfterResolved: nextState.cursorAfterResolved,\n\t\tplaceholderHtml: nextState.content ?? ''\n\t};\n};\n\nconst applyConsumedErrorBlock = (\n\terrorHtml: string | null,\n\tparsedBlock: { content: string; nextIndex: number } | null,\n\tcursorAfterResolved: number\n) => {\n\tconst nextState = applyConsumedDeferredBlock(\n\t\terrorHtml,\n\t\tparsedBlock,\n\t\tcursorAfterResolved\n\t);\n\n\treturn {\n\t\tcursorAfterResolved: nextState.cursorAfterResolved,\n\t\terrorHtml: nextState.content\n\t};\n};\n\nconst resolveNextLoweredTemplateChunk = (template: string, cursor: number) => {\n\tconst nextDeferBlock = readNextDeferBlock(template, cursor);\n\tif (nextDeferBlock) {\n\t\treturn nextDeferBlock;\n\t}\n\n\treturn {\n\t\tdeferIndex: -1,\n\t\tprefix: template.slice(cursor)\n\t};\n};\n\nconst applyInvalidDeferSlotStart = (\n\tloweredTemplate: string,\n\tslotStart: {\n\t\tchanged: boolean;\n\t\tcursor: number;\n\t\tmarkerCursor: number;\n\t\ttemplatePrefix: string;\n\t}\n) => {\n\tif (!slotStart.changed) {\n\t\treturn null;\n\t}\n\n\treturn {\n\t\tchanged: true,\n\t\tcursor: slotStart.cursor,\n\t\ttemplate: loweredTemplate + slotStart.templatePrefix\n\t};\n};\n\nconst applyEmptyResolvedBlock = (\n\tloweredTemplate: string,\n\ttemplate: string,\n\tdeferIndex: number,\n\tresolvedBlock: { content: string; nextIndex: number }\n) => {\n\tif (resolvedBlock.content.trim()) {\n\t\treturn null;\n\t}\n\n\treturn {\n\t\tcursor: resolvedBlock.nextIndex,\n\t\ttemplate:\n\t\t\tloweredTemplate +\n\t\t\ttemplate.slice(deferIndex, resolvedBlock.nextIndex)\n\t};\n};\n\nconst applyNextLoweredTemplateChunk = (\n\tloweredTemplate: string,\n\tnextDeferBlock: { deferIndex: number; prefix: string }\n) => ({\n\tdeferIndex: nextDeferBlock.deferIndex,\n\tdone: nextDeferBlock.deferIndex < 0,\n\ttemplate: loweredTemplate + nextDeferBlock.prefix\n});\n\nconst applyParsedSlotStart = (\n\tchanged: boolean,\n\tcursor: number,\n\tloweredTemplate: string,\n\tslotStart: {\n\t\tchanged: boolean;\n\t\tcursor: number;\n\t\tmarkerCursor: number;\n\t\ttemplatePrefix: string;\n\t}\n) => {\n\tconst invalidSlotStart = applyInvalidDeferSlotStart(\n\t\tloweredTemplate,\n\t\tslotStart\n\t);\n\tif (!invalidSlotStart) {\n\t\treturn {\n\t\t\tchanged,\n\t\t\tcursor,\n\t\t\ttemplate: loweredTemplate\n\t\t};\n\t}\n\n\treturn {\n\t\tchanged: true,\n\t\tcursor: invalidSlotStart.cursor,\n\t\ttemplate: invalidSlotStart.template\n\t};\n};\n\nconst applyResolvedBlockState = (\n\tcursor: number,\n\tloweredTemplate: string,\n\ttemplate: string,\n\tdeferIndex: number,\n\tresolvedBlock: { content: string; nextIndex: number }\n) => {\n\tconst emptyResolvedBlock = applyEmptyResolvedBlock(\n\t\tloweredTemplate,\n\t\ttemplate,\n\t\tdeferIndex,\n\t\tresolvedBlock\n\t);\n\tif (!emptyResolvedBlock) {\n\t\treturn {\n\t\t\tcursor,\n\t\t\ttemplate: loweredTemplate\n\t\t};\n\t}\n\n\treturn emptyResolvedBlock;\n};\n\nconst consumeResolvedTemplateStep = (\n\tvalue: string,\n\ttemplate: string,\n\tcursor: number,\n\tbindings: Array<{ expression: string; key: string }>\n) => {\n\tconst nextChunk = consumeResolvedTemplateChunk(\n\t\tvalue,\n\t\ttemplate,\n\t\tcursor,\n\t\tbindings.length\n\t);\n\n\treturn applyConsumedResolvedTemplateChunk(bindings, nextChunk);\n};\n\nconst consumeLoweredDeferStep = (input: {\n\tchanged: boolean;\n\tcursor: number;\n\tloweredTemplate: string;\n\tslotIndex: number;\n\tslots: LoweredAngularDeferSlot[];\n\ttemplate: string;\n}) => {\n\tconst { changed, cursor, loweredTemplate, slotIndex, slots, template } =\n\t\tinput;\n\tconst nextDeferBlock = resolveNextLoweredTemplateChunk(template, cursor);\n\tconst nextLoweredChunk = applyNextLoweredTemplateChunk(\n\t\tloweredTemplate,\n\t\tnextDeferBlock\n\t);\n\tif (nextLoweredChunk.done) {\n\t\treturn null;\n\t}\n\n\tconst { deferIndex } = nextLoweredChunk;\n\tlet markerCursor = deferIndex + '@defer'.length;\n\tconst triggerInfo = parseOptionalTriggerExpression(template, markerCursor);\n\tconst { triggerExpression } = triggerInfo;\n\t({ markerCursor } = triggerInfo);\n\tconst slotStart = resolveDeferSlotStart(template, deferIndex, markerCursor);\n\t({ markerCursor } = slotStart);\n\tconst slotStartState = applyParsedSlotStart(\n\t\tchanged,\n\t\tcursor,\n\t\tnextLoweredChunk.template,\n\t\tslotStart\n\t);\n\tif (slotStartState.changed !== changed) {\n\t\treturn {\n\t\t\tchanged: slotStartState.changed,\n\t\t\tcursor: slotStartState.cursor,\n\t\t\tslotIndex,\n\t\t\ttemplate: slotStartState.template\n\t\t};\n\t}\n\n\tconst resolvedBlock = skipMatchingBlock(template, markerCursor);\n\tconst resolvedBlockState = applyResolvedBlockState(\n\t\tcursor,\n\t\tnextLoweredChunk.template,\n\t\ttemplate,\n\t\tdeferIndex,\n\t\tresolvedBlock\n\t);\n\tif (resolvedBlockState.cursor !== cursor) {\n\t\treturn {\n\t\t\tchanged,\n\t\t\tcursor: resolvedBlockState.cursor,\n\t\t\tslotIndex,\n\t\t\ttemplate: resolvedBlockState.template\n\t\t};\n\t}\n\n\tconst blockContent = parsePlaceholderAndErrorBlocks(\n\t\ttemplate,\n\t\tskipWhitespace(template, resolvedBlock.nextIndex)\n\t);\n\tconst builtSlot = buildDeferredSlot({\n\t\tcursorAfterResolved: blockContent.cursorAfterResolved,\n\t\terrorHtml: blockContent.errorHtml,\n\t\tplaceholderHtml: blockContent.placeholderHtml,\n\t\tresolvedBlock,\n\t\tslotIndex,\n\t\ttriggerExpression\n\t});\n\tslots.push(builtSlot.slot);\n\n\treturn {\n\t\tchanged: true,\n\t\tcursor: builtSlot.cursorAfterResolved,\n\t\tslotIndex: slotIndex + 1,\n\t\ttemplate: nextLoweredChunk.template + builtSlot.markup\n\t};\n};\n\nconst skipMatchingBlock = (\n\tvalue: string,\n\tstart: number\n): { content: string; nextIndex: number } => {\n\tif (value[start] !== '{') {\n\t\treturn { content: '', nextIndex: start };\n\t}\n\n\tlet cursor = start + 1;\n\tlet depth = 1;\n\n\twhile (cursor < value.length) {\n\t\tconst consumed = consumeBlockCursor(value, start, cursor, depth);\n\t\tif (consumed.result) {\n\t\t\treturn consumed.result;\n\t\t}\n\n\t\t({ cursor, depth } = consumed);\n\t}\n\n\treturn { content: value.slice(start + 1), nextIndex: value.length };\n};\n\nconst skipWhitespace = (value: string, index: number) => {\n\tlet cursor = index;\n\twhile (cursor < value.length && /\\s/.test(value[cursor] ?? '')) {\n\t\tcursor += 1;\n\t}\n\n\treturn cursor;\n};\n\nconst parseOptionalParenthesizedBlock = (\n\tvalue: string,\n\tindex: number\n): { expression: string; nextIndex: number } | null => {\n\tlet cursor = skipWhitespace(value, index);\n\tif (value[cursor] !== '(') {\n\t\treturn null;\n\t}\n\n\tcursor += 1;\n\tlet depth = 1;\n\tconst start = cursor;\n\n\twhile (cursor < value.length) {\n\t\tconst char = value[cursor] ?? '';\n\t\tconst nextDepth = updateParenthesisDepth(char, depth);\n\t\tif (char === ')' && nextDepth === 0) {\n\t\t\treturn {\n\t\t\t\texpression: value.slice(start, cursor),\n\t\t\t\tnextIndex: cursor + 1\n\t\t\t};\n\t\t}\n\n\t\tdepth = nextDepth;\n\t\tcursor += 1;\n\t}\n\n\treturn { expression: value.slice(start), nextIndex: value.length };\n};\n\nconst parseDelayMs = (triggerExpression: string | undefined) => {\n\tif (!triggerExpression) return 0;\n\tconst timerMsMatch = triggerExpression.match(/timer\\(\\s*(\\d+)\\s*ms\\s*\\)/i);\n\tif (timerMsMatch?.[1]) return Number.parseInt(timerMsMatch[1], 10);\n\tconst timerSecondsMatch = triggerExpression.match(\n\t\t/timer\\(\\s*(\\d+)\\s*s\\s*\\)/i\n\t);\n\tif (timerSecondsMatch?.[1]) {\n\t\treturn (\n\t\t\tNumber.parseInt(timerSecondsMatch[1], 10) * MILLISECONDS_IN_A_SECOND\n\t\t);\n\t}\n\n\tif (/\\bon\\s+immediate\\b/i.test(triggerExpression)) return 0;\n\tif (/\\bon\\s+idle\\b/i.test(triggerExpression)) return 1;\n\n\treturn 0;\n};\n\nconst transformResolvedTemplate = (value: string) => {\n\tconst bindings: Array<{ expression: string; key: string }> = [];\n\tlet template = '';\n\tlet cursor = 0;\n\n\twhile (cursor < value.length) {\n\t\tconst appliedChunk = consumeResolvedTemplateStep(\n\t\t\tvalue,\n\t\t\ttemplate,\n\t\t\tcursor,\n\t\t\tbindings\n\t\t);\n\t\t({ cursor, template } = appliedChunk);\n\t}\n\n\treturn {\n\t\tbindings,\n\t\ttemplate\n\t};\n};\n\nconst parseOptionalTriggerExpression = (\n\ttemplate: string,\n\tmarkerCursor: number\n) => {\n\tconst parsedTrigger = parseOptionalParenthesizedBlock(\n\t\ttemplate,\n\t\tmarkerCursor\n\t);\n\tif (!parsedTrigger) {\n\t\treturn {\n\t\t\tmarkerCursor,\n\t\t\ttriggerExpression: undefined\n\t\t};\n\t}\n\n\treturn {\n\t\tmarkerCursor: parsedTrigger.nextIndex,\n\t\ttriggerExpression: parsedTrigger.expression.trim()\n\t};\n};\n\nconst parseDeferredAuxiliaryBlock = (\n\ttemplate: string,\n\tcursorAfterResolved: number,\n\tkeyword: '@error' | '@placeholder'\n) => {\n\tif (!template.startsWith(keyword, cursorAfterResolved)) {\n\t\treturn null;\n\t}\n\n\tconst blockKeywordCursor = cursorAfterResolved + keyword.length;\n\tconst blockStart = skipWhitespace(template, blockKeywordCursor);\n\tif (template[blockStart] !== '{') {\n\t\treturn null;\n\t}\n\n\treturn skipMatchingBlock(template, blockStart);\n};\n\nconst parsePlaceholderAndErrorBlocks = (\n\ttemplate: string,\n\tstartCursor: number\n) => {\n\tlet cursorAfterResolved = startCursor;\n\tlet placeholderHtml = '';\n\tlet errorHtml: string | null = null;\n\n\tconst parsedPlaceholder = consumeDeferredAuxiliaryBlock({\n\t\tcursorAfterResolved,\n\t\tkeyword: '@placeholder',\n\t\ttemplate\n\t});\n\t({ placeholderHtml, cursorAfterResolved } = applyConsumedPlaceholderBlock(\n\t\tplaceholderHtml,\n\t\tparsedPlaceholder,\n\t\tcursorAfterResolved\n\t));\n\n\tconst parsedError = consumeDeferredAuxiliaryBlock({\n\t\tcursorAfterResolved,\n\t\tkeyword: '@error',\n\t\ttemplate\n\t});\n\t({ errorHtml, cursorAfterResolved } = applyConsumedErrorBlock(\n\t\terrorHtml,\n\t\tparsedError,\n\t\tcursorAfterResolved\n\t));\n\n\treturn {\n\t\tcursorAfterResolved,\n\t\terrorHtml,\n\t\tplaceholderHtml\n\t};\n};\n\nconst buildSlotTemplates = (slot: LoweredAngularDeferSlot) => {\n\tconst templates = [\n\t\t`<ng-template absDeferResolved let-slotData>${slot.resolvedTemplate}</ng-template>`\n\t];\n\n\tif (slot.fallbackHtml.length > 0) {\n\t\ttemplates.push(\n\t\t\t`<ng-template absDeferFallback>${slot.fallbackHtml}</ng-template>`\n\t\t);\n\t}\n\tif (slot.errorHtml) {\n\t\ttemplates.push(\n\t\t\t`<ng-template absDeferError>${slot.errorHtml}</ng-template>`\n\t\t);\n\t}\n\n\treturn templates.join('');\n};\n\nexport const lowerAngularDeferSyntax = (\n\ttemplate: string\n): LoweredAngularDeferResult => {\n\tif (!template.includes('@defer')) {\n\t\treturn {\n\t\t\tslots: [],\n\t\t\ttemplate,\n\t\t\ttransformed: false\n\t\t};\n\t}\n\n\tlet cursor = 0;\n\tlet slotIndex = 0;\n\tconst slots: LoweredAngularDeferSlot[] = [];\n\tlet loweredTemplate = '';\n\tlet changed = false;\n\tlet nextState = consumeLoweredDeferStep({\n\t\tchanged,\n\t\tcursor,\n\t\tloweredTemplate,\n\t\tslotIndex,\n\t\tslots,\n\t\ttemplate\n\t});\n\twhile (nextState) {\n\t\t({ changed, cursor, slotIndex, template: loweredTemplate } = nextState);\n\t\tnextState = consumeLoweredDeferStep({\n\t\t\tchanged,\n\t\t\tcursor,\n\t\t\tloweredTemplate,\n\t\t\tslotIndex,\n\t\t\tslots,\n\t\t\ttemplate\n\t\t});\n\t}\n\n\tconst transformedTemplate =\n\t\tslots.length > 0\n\t\t\t? loweredTemplate + template.slice(cursor)\n\t\t\t: template.replaceAll('@defer', '@defer');\n\n\treturn {\n\t\tslots,\n\t\ttemplate: transformedTemplate,\n\t\ttransformed: slots.length > 0\n\t};\n};\n",
|
|
69
|
+
"import { existsSync, readFileSync, promises as fs } from 'fs';\nimport { join, basename, sep, dirname, resolve, relative } from 'path';\nimport type { CompilerOptions } from '@angular/compiler-cli';\nimport ts from 'typescript';\nimport { BASE_36_RADIX } from '../constants';\nimport { toPascal } from '../utils/stringModifiers';\nimport { buildIslandMetadataExports } from '../islands/sourceMetadata';\nimport {\n\tlowerAngularDeferSyntax,\n\ttype LoweredAngularDeferSlot\n} from '../angular/lowerDeferSyntax';\nimport {\n\tcompileStyleFileIfNeeded,\n\tcompileStyleFileIfNeededSync\n} from './stylePreprocessor';\nimport type { StylePreprocessorConfig } from '../../types/build';\n\ntype SyncReadFile = (fileName: string) => string | undefined;\n\ntype BuildTracePhase = <T>(\n\tname: string,\n\tfn: () => Promise<T> | T,\n\tmetadata?: Record<string, unknown>\n) => Promise<T>;\n\nconst traceAngularPhase: BuildTracePhase = async (name, fn, metadata) => {\n\tconst tracePhase = (\n\t\tglobalThis as typeof globalThis & {\n\t\t\t__absoluteBuildTracePhase?: BuildTracePhase;\n\t\t}\n\t).__absoluteBuildTracePhase;\n\n\treturn tracePhase\n\t\t? tracePhase(`compile/angular/${name}`, fn, metadata)\n\t\t: await fn();\n};\n\ntype TsconfigPathAlias = {\n\tpattern: string;\n\treplacements: string[];\n};\n\nconst readTsconfigPathAliases = () => {\n\ttry {\n\t\tconst configPath = resolve(process.cwd(), 'tsconfig.json');\n\t\tconst config = ts.readConfigFile(configPath, ts.sys.readFile).config as\n\t\t\t| {\n\t\t\t\t\tcompilerOptions?: {\n\t\t\t\t\t\tbaseUrl?: string;\n\t\t\t\t\t\tpaths?: Record<string, string[]>;\n\t\t\t\t\t};\n\t\t\t }\n\t\t\t| undefined;\n\t\tconst compilerOptions = config?.compilerOptions ?? {};\n\t\tconst baseUrl = resolve(process.cwd(), compilerOptions.baseUrl ?? '.');\n\t\tconst aliases: TsconfigPathAlias[] = Object.entries(\n\t\t\tcompilerOptions.paths ?? {}\n\t\t).map(([pattern, replacements]) => ({ pattern, replacements }));\n\n\t\treturn { aliases, baseUrl };\n\t} catch {\n\t\treturn { aliases: [] as TsconfigPathAlias[], baseUrl: process.cwd() };\n\t}\n};\n\nconst matchTsconfigAlias = (\n\tspecifier: string,\n\taliases: TsconfigPathAlias[],\n\tbaseUrl: string,\n\tresolveSourceFile: (candidate: string) => string | undefined\n) => {\n\tfor (const alias of aliases) {\n\t\tconst wildcardIndex = alias.pattern.indexOf('*');\n\t\tconst exactMatch = wildcardIndex === -1;\n\t\tif (exactMatch && specifier !== alias.pattern) continue;\n\n\t\tconst prefix = exactMatch\n\t\t\t? alias.pattern\n\t\t\t: alias.pattern.slice(0, wildcardIndex);\n\t\tconst suffix = exactMatch ? '' : alias.pattern.slice(wildcardIndex + 1);\n\t\tif (\n\t\t\t!exactMatch &&\n\t\t\t(!specifier.startsWith(prefix) || !specifier.endsWith(suffix))\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst wildcardValue = exactMatch\n\t\t\t? ''\n\t\t\t: specifier.slice(prefix.length, specifier.length - suffix.length);\n\t\tfor (const replacement of alias.replacements) {\n\t\t\tconst candidate = replacement.replace('*', wildcardValue);\n\t\t\tconst resolved = resolveSourceFile(resolve(baseUrl, candidate));\n\t\t\tif (resolved) return resolved;\n\t\t}\n\t}\n\n\treturn undefined;\n};\n\nconst resolveSourceFile = (candidate: string) => {\n\tconst candidates = candidate.match(/\\.[cm]?[tj]sx?$/)\n\t\t? [candidate]\n\t\t: [\n\t\t\t\t`${candidate}.ts`,\n\t\t\t\t`${candidate}.tsx`,\n\t\t\t\t`${candidate}.js`,\n\t\t\t\t`${candidate}.jsx`,\n\t\t\t\tjoin(candidate, 'index.ts'),\n\t\t\t\tjoin(candidate, 'index.tsx'),\n\t\t\t\tjoin(candidate, 'index.js'),\n\t\t\t\tjoin(candidate, 'index.jsx')\n\t\t\t];\n\n\treturn candidates.find((file) => existsSync(file));\n};\n\nconst createLegacyAngularAnimationUsageResolver = (rootDir: string) => {\n\tconst baseDir = resolve(rootDir);\n\tconst tsconfigAliases = readTsconfigPathAliases();\n\tconst transpiler = new Bun.Transpiler({ loader: 'tsx' });\n\tconst scanCache = new Map<\n\t\tstring,\n\t\tPromise<{ imports: string[]; usesLegacyAnimations: boolean }>\n\t>();\n\n\tconst resolveLocalImport = (specifier: string, fromDir: string) => {\n\t\tif (specifier.startsWith('.') || specifier.startsWith('/')) {\n\t\t\treturn resolveSourceFile(resolve(fromDir, specifier));\n\t\t}\n\n\t\tconst aliased = matchTsconfigAlias(\n\t\t\tspecifier,\n\t\t\ttsconfigAliases.aliases,\n\t\t\ttsconfigAliases.baseUrl,\n\t\t\tresolveSourceFile\n\t\t);\n\t\tif (aliased) return aliased;\n\n\t\ttry {\n\t\t\tconst resolved = Bun.resolveSync(specifier, fromDir);\n\t\t\tif (resolved.includes('/node_modules/')) return undefined;\n\t\t\tconst absolute = resolve(resolved);\n\t\t\tif (!absolute.startsWith(baseDir)) return undefined;\n\n\t\t\treturn resolveSourceFile(absolute);\n\t\t} catch {\n\t\t\treturn undefined;\n\t\t}\n\t};\n\n\tconst scanFile = (filePath: string) => {\n\t\tconst actualPath = resolveSourceFile(filePath);\n\t\tif (!actualPath) {\n\t\t\treturn Promise.resolve({\n\t\t\t\timports: [],\n\t\t\t\tusesLegacyAnimations: false\n\t\t\t});\n\t\t}\n\t\tconst resolved = resolve(actualPath);\n\t\tconst cached = scanCache.get(resolved);\n\t\tif (cached) return cached;\n\n\t\tconst promise = (async () => {\n\t\t\tlet sourceCode: string;\n\t\t\ttry {\n\t\t\t\tsourceCode = await fs.readFile(resolved, 'utf-8');\n\t\t\t} catch {\n\t\t\t\treturn { imports: [], usesLegacyAnimations: false };\n\t\t\t}\n\n\t\t\tlet imports;\n\t\t\ttry {\n\t\t\t\timports = transpiler.scanImports(sourceCode);\n\t\t\t} catch {\n\t\t\t\treturn { imports: [], usesLegacyAnimations: false };\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\timports: imports.map((imp) => imp.path),\n\t\t\t\tusesLegacyAnimations: imports.some(\n\t\t\t\t\t(imp) => imp.path === '@angular/animations'\n\t\t\t\t)\n\t\t\t};\n\t\t})();\n\n\t\tscanCache.set(resolved, promise);\n\n\t\treturn promise;\n\t};\n\n\tconst visit = async (\n\t\tfilePath: string,\n\t\tvisited = new Set<string>()\n\t): Promise<boolean> => {\n\t\tconst actualPath = resolveSourceFile(filePath);\n\t\tif (!actualPath) return false;\n\t\tconst resolved = resolve(actualPath);\n\t\tif (visited.has(resolved)) return false;\n\t\tvisited.add(resolved);\n\n\t\tconst scan = await scanFile(resolved);\n\t\tif (scan.usesLegacyAnimations) return true;\n\n\t\tfor (const specifier of scan.imports) {\n\t\t\tconst importedPath = resolveLocalImport(\n\t\t\t\tspecifier,\n\t\t\t\tdirname(resolved)\n\t\t\t);\n\t\t\tif (importedPath && (await visit(importedPath, visited))) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t};\n\n\treturn (entryPath: string) => visit(entryPath);\n};\n\nconst resolveDevClientDir = () => {\n\tconst projectRoot = process.cwd();\n\tconst fromSource = resolve(import.meta.dir, '../dev/client');\n\n\tif (existsSync(fromSource) && fromSource.startsWith(projectRoot)) {\n\t\treturn fromSource;\n\t}\n\n\tconst fromNodeModules = resolve(\n\t\tprojectRoot,\n\t\t'node_modules/@absolutejs/absolute/dist/dev/client'\n\t);\n\tif (existsSync(fromNodeModules)) return fromNodeModules;\n\n\treturn resolve(import.meta.dir, './dev/client');\n};\n\nconst devClientDir = resolveDevClientDir();\n\nconst hmrClientPath = join(devClientDir, 'hmrClient.ts').replace(/\\\\/g, '/');\n\n// Angular HMR Runtime Layer (Level 3) — Path to runtime module\nconst hmrRuntimePath = join(\n\tdevClientDir,\n\t'handlers',\n\t'angularRuntime.ts'\n).replace(/\\\\/g, '/');\n\n/** Angular HMR Runtime Layer (Level 3) — Inject HMR registration calls into compiled component JS.\n * Detects exported Angular component classes and appends register() calls.\n * Only active when hmr=true (dev mode). */\nconst injectHMRRegistration = (content: string, sourceId: string) => {\n\t// Find exported component classes: `export class XxxComponent` or `class XxxComponent`\n\tconst componentClassRegex = /(?:export\\s+)?class\\s+(\\w+Component)\\s/g;\n\tconst componentNames: string[] = [];\n\tlet match;\n\twhile ((match = componentClassRegex.exec(content)) !== null) {\n\t\tif (match[1]) componentNames.push(match[1]);\n\t}\n\n\tif (componentNames.length === 0) return content;\n\n\t// Build registration code block\n\tconst registrations = componentNames\n\t\t.map(\n\t\t\t(name) =>\n\t\t\t\t` if (typeof ${name} === 'function') window.__ANGULAR_HMR__.register('${sourceId}#${name}', ${name});`\n\t\t)\n\t\t.join('\\n');\n\n\tconst hmrBlock = `\\n// Angular HMR Runtime Layer (Level 3) — Auto-registration\\nif (typeof window !== 'undefined' && window.__ANGULAR_HMR__) {\\n${registrations}\\n}\\n`;\n\n\treturn content + hmrBlock;\n};\n\nconst formatDiagnosticMessage = (diagnostic: ts.Diagnostic) => {\n\ttry {\n\t\treturn ts.flattenDiagnosticMessageText(diagnostic.messageText, '\\n');\n\t} catch {\n\t\treturn String(diagnostic.messageText || 'Unknown error');\n\t}\n};\n\nconst throwOnCompilationErrors = (\n\tdiagnostics: readonly ts.Diagnostic[] | undefined\n) => {\n\tif (!diagnostics?.length) return;\n\n\tconst errors = diagnostics.filter(\n\t\t(diag) => diag.category === ts.DiagnosticCategory.Error\n\t);\n\tif (!errors.length) return;\n\n\tconst fullMessage = errors.map(formatDiagnosticMessage).join('\\n');\n\tconsole.error('Angular compilation errors:', fullMessage);\n\tthrow new Error(fullMessage);\n};\n\nconst resolveRelativePath = (\n\tfileName: string,\n\tresolvedOutDir: string,\n\toutDir: string\n) => {\n\tif (fileName.startsWith(resolvedOutDir))\n\t\treturn fileName.substring(resolvedOutDir.length + 1);\n\tif (fileName.startsWith(outDir))\n\t\treturn fileName.substring(outDir.length + 1);\n\n\treturn fileName;\n};\n\nconst hasJsLikeExtension = (path: string) => /\\.(js|ts|mjs|cjs)$/.test(path);\n\nconst rewriteRelativeJsSpecifier = (\n\timporterOutputPath: string,\n\tspecifier: string,\n\toutputFiles?: Set<string>\n) => {\n\tif (specifier.endsWith('.ts')) return specifier.replace(/\\.ts$/, '.js');\n\tif (hasJsLikeExtension(specifier)) return specifier;\n\n\tconst importerDir = dirname(importerOutputPath);\n\tconst fileCandidate = resolve(importerDir, `${specifier}.js`);\n\tif (outputFiles?.has(fileCandidate) || existsSync(fileCandidate)) {\n\t\treturn `${specifier}.js`;\n\t}\n\n\tconst indexCandidate = resolve(importerDir, specifier, 'index.js');\n\tif (outputFiles?.has(indexCandidate) || existsSync(indexCandidate)) {\n\t\treturn `${specifier}/index.js`;\n\t}\n\n\treturn `${specifier}.js`;\n};\n\nconst isRelativeModuleSpecifier = (specifier: string) =>\n\tspecifier.startsWith('./') || specifier.startsWith('../');\n\nconst extractLocalImportSpecifiers = (source: string, fileName: string) => {\n\tconst sourceFile = ts.createSourceFile(\n\t\tfileName,\n\t\tsource,\n\t\tts.ScriptTarget.Latest,\n\t\ttrue,\n\t\tts.ScriptKind.TS\n\t);\n\tconst specifiers: string[] = [];\n\tconst addSpecifier = (node: ts.Node | undefined) => {\n\t\tif (!node || !ts.isStringLiteralLike(node)) return;\n\t\tconst specifier = node.text;\n\t\tif (isRelativeModuleSpecifier(specifier)) specifiers.push(specifier);\n\t};\n\n\tconst visit = (node: ts.Node) => {\n\t\tif (ts.isImportDeclaration(node) || ts.isExportDeclaration(node)) {\n\t\t\taddSpecifier(node.moduleSpecifier);\n\t\t} else if (\n\t\t\tts.isCallExpression(node) &&\n\t\t\tnode.expression.kind === ts.SyntaxKind.ImportKeyword\n\t\t) {\n\t\t\taddSpecifier(node.arguments[0]);\n\t\t}\n\t\tts.forEachChild(node, visit);\n\t};\n\tvisit(sourceFile);\n\n\treturn specifiers;\n};\n\nconst resolveLocalTsImport = (fromFile: string, specifier: string) => {\n\tif (!isRelativeModuleSpecifier(specifier)) return null;\n\tconst basePath = resolve(dirname(fromFile), specifier);\n\tconst candidates = /\\.[cm]?[tj]sx?$/.test(basePath)\n\t\t? [basePath]\n\t\t: [\n\t\t\t\t`${basePath}.ts`,\n\t\t\t\t`${basePath}.tsx`,\n\t\t\t\t`${basePath}.mts`,\n\t\t\t\t`${basePath}.cts`,\n\t\t\t\tjoin(basePath, 'index.ts'),\n\t\t\t\tjoin(basePath, 'index.tsx'),\n\t\t\t\tjoin(basePath, 'index.mts'),\n\t\t\t\tjoin(basePath, 'index.cts')\n\t\t\t];\n\n\treturn (\n\t\tcandidates\n\t\t\t.map((candidate) => resolve(candidate))\n\t\t\t.find(\n\t\t\t\t(candidate) =>\n\t\t\t\t\texistsSync(candidate) && !candidate.endsWith('.d.ts')\n\t\t\t) ?? null\n\t);\n};\n\nconst readFileForAotTransform = async (\n\tfileName: string,\n\treadFile: SyncReadFile | undefined\n) => {\n\tconst hostSource = readFile?.(fileName);\n\tif (typeof hostSource === 'string') return hostSource;\n\n\treturn fs.readFile(fileName, 'utf-8');\n};\n\ntype AotResourceTransformCacheEntry = {\n\tsource: string;\n\tversion: 1;\n};\n\ntype AotResourceTransformStats = {\n\tcacheHits: number;\n\tcacheMisses: number;\n\tfilesVisited: number;\n\ttransformedFiles: number;\n};\n\nconst safeStableStringify = (value: unknown): string => {\n\tconst seen = new WeakSet<object>();\n\n\treturn JSON.stringify(value, (_key, entry) => {\n\t\tif (typeof entry === 'function') return `[Function:${entry.name}]`;\n\t\tif (!entry || typeof entry !== 'object') return entry;\n\t\tif (seen.has(entry)) return '[Circular]';\n\t\tseen.add(entry);\n\n\t\tif (Array.isArray(entry)) return entry;\n\n\t\treturn Object.fromEntries(\n\t\t\tObject.entries(entry).sort(([left], [right]) =>\n\t\t\t\tleft.localeCompare(right)\n\t\t\t)\n\t\t);\n\t});\n};\n\nconst collectAngularResourcePaths = (source: string, fileDir: string) => {\n\tconst paths: string[] = [];\n\tconst templateUrlMatch = findUncommentedMatch(\n\t\tsource,\n\t\t/templateUrl\\s*:\\s*['\"]([^'\"]+)['\"]/\n\t);\n\tif (templateUrlMatch?.[1]) paths.push(join(fileDir, templateUrlMatch[1]));\n\n\tconst styleUrlMatch = findUncommentedMatch(\n\t\tsource,\n\t\t/styleUrl\\s*:\\s*['\"]([^'\"]+)['\"]/\n\t);\n\tif (styleUrlMatch?.[1]) paths.push(join(fileDir, styleUrlMatch[1]));\n\n\tconst styleUrlsMatch = findUncommentedMatch(\n\t\tsource,\n\t\t/styleUrls\\s*:\\s*\\[([^\\]]+)\\]/\n\t);\n\tconst urlMatches = styleUrlsMatch?.[1]?.match(/['\"]([^'\"]+)['\"]/g);\n\tif (urlMatches) {\n\t\tfor (const urlMatch of urlMatches) {\n\t\t\tpaths.push(join(fileDir, urlMatch.replace(/['\"]/g, '')));\n\t\t}\n\t}\n\n\treturn paths.map((path) => resolve(path));\n};\n\nconst readResourceCacheFile = async (cachePath: string) => {\n\ttry {\n\t\tconst entry = JSON.parse(\n\t\t\tawait fs.readFile(cachePath, 'utf-8')\n\t\t) as AotResourceTransformCacheEntry;\n\t\tif (entry.version !== 1 || typeof entry.source !== 'string') {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn entry;\n\t} catch {\n\t\treturn null;\n\t}\n};\n\nconst writeResourceCacheFile = async (cachePath: string, source: string) => {\n\tawait fs.mkdir(dirname(cachePath), { recursive: true });\n\tawait fs.writeFile(\n\t\tcachePath,\n\t\tJSON.stringify({\n\t\t\tsource,\n\t\t\tversion: 1\n\t\t} satisfies AotResourceTransformCacheEntry),\n\t\t'utf-8'\n\t);\n};\n\nconst resolveResourceTransformCachePath = async (\n\tfilePath: string,\n\tsource: string,\n\tstylePreprocessors?: StylePreprocessorConfig\n) => {\n\tconst resourcePaths = collectAngularResourcePaths(\n\t\tsource,\n\t\tdirname(filePath)\n\t);\n\tconst resourceContents = await Promise.all(\n\t\tresourcePaths.map(async (resourcePath) => {\n\t\t\tconst content = await fs.readFile(resourcePath, 'utf-8');\n\n\t\t\treturn `${resourcePath}\\0${content}`;\n\t\t})\n\t);\n\tconst cacheInput = [\n\t\t'v1',\n\t\tfilePath,\n\t\tsource,\n\t\t...resourceContents,\n\t\tsafeStableStringify(stylePreprocessors ?? null)\n\t].join('\\0');\n\tconst cacheKey = Bun.hash(cacheInput).toString(BASE_36_RADIX);\n\n\treturn join(\n\t\tprocess.cwd(),\n\t\t'.absolutejs',\n\t\t'cache',\n\t\t'angular-resources',\n\t\t`${cacheKey}.json`\n\t);\n};\n\nconst precomputeAotResourceTransforms = async (\n\tinputPaths: string[],\n\treadFile: SyncReadFile | undefined,\n\tstylePreprocessors?: StylePreprocessorConfig\n) => {\n\tconst transformedSources = new Map<string, string>();\n\tconst visited = new Set<string>();\n\tconst stats: AotResourceTransformStats = {\n\t\tcacheHits: 0,\n\t\tcacheMisses: 0,\n\t\tfilesVisited: 0,\n\t\ttransformedFiles: 0\n\t};\n\n\tconst transformFile = async (filePath: string) => {\n\t\tconst resolvedPath = resolve(filePath);\n\t\tif (visited.has(resolvedPath)) return;\n\t\tvisited.add(resolvedPath);\n\t\tif (!existsSync(resolvedPath) || resolvedPath.endsWith('.d.ts')) return;\n\t\tstats.filesVisited += 1;\n\n\t\tconst source = await readFileForAotTransform(resolvedPath, readFile);\n\t\tconst cachePath = await resolveResourceTransformCachePath(\n\t\t\tresolvedPath,\n\t\t\tsource,\n\t\t\tstylePreprocessors\n\t\t);\n\t\tconst cached = await readResourceCacheFile(cachePath);\n\t\tlet transformedSource: string;\n\t\tif (cached) {\n\t\t\tstats.cacheHits += 1;\n\t\t\ttransformedSource = cached.source;\n\t\t} else {\n\t\t\tstats.cacheMisses += 1;\n\t\t\tconst transformed = await inlineResources(\n\t\t\t\tsource,\n\t\t\t\tdirname(resolvedPath),\n\t\t\t\tstylePreprocessors\n\t\t\t);\n\t\t\ttransformedSource = transformed.source;\n\t\t\tawait writeResourceCacheFile(cachePath, transformedSource);\n\t\t}\n\t\tif (transformedSource !== source) {\n\t\t\tstats.transformedFiles += 1;\n\t\t\ttransformedSources.set(resolvedPath, transformedSource);\n\t\t}\n\n\t\tconst imports = extractLocalImportSpecifiers(source, resolvedPath);\n\t\tawait Promise.all(\n\t\t\timports.map(async (specifier) => {\n\t\t\t\tconst resolvedImport = resolveLocalTsImport(\n\t\t\t\t\tresolvedPath,\n\t\t\t\t\tspecifier\n\t\t\t\t);\n\t\t\t\tif (resolvedImport) await transformFile(resolvedImport);\n\t\t\t})\n\t\t);\n\t};\n\n\tawait Promise.all(inputPaths.map((inputPath) => transformFile(inputPath)));\n\n\treturn { stats, transformedSources };\n};\n\nexport const compileAngularFiles = async (\n\tinputPaths: string[],\n\toutDir: string,\n\tstylePreprocessors?: StylePreprocessorConfig\n) => {\n\tconst islandMetadataByOutputPath = await traceAngularPhase(\n\t\t'aot/island-metadata',\n\t\t() =>\n\t\t\tnew Map(\n\t\t\t\tinputPaths.map((inputPath) => {\n\t\t\t\t\tconst outputPath = resolve(\n\t\t\t\t\t\tjoin(\n\t\t\t\t\t\t\toutDir,\n\t\t\t\t\t\t\trelative(process.cwd(), resolve(inputPath)).replace(\n\t\t\t\t\t\t\t\t/\\.[cm]?[tj]sx?$/,\n\t\t\t\t\t\t\t\t'.js'\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\n\t\t\t\t\treturn [\n\t\t\t\t\t\toutputPath,\n\t\t\t\t\t\tbuildIslandMetadataExports(\n\t\t\t\t\t\t\treadFileSync(inputPath, 'utf-8')\n\t\t\t\t\t\t)\n\t\t\t\t\t] as const;\n\t\t\t\t})\n\t\t\t),\n\t\t{ entries: inputPaths.length }\n\t);\n\t// Load `@angular/compiler` BEFORE anything that transitively pulls in\n\t// `@angular/common` (which `@angular/compiler-cli` does). The compiler's\n\t// top-level `publishFacade(globalThis)` registers the JIT compiler facade\n\t// on `globalThis.ng` — without that, partial-AOT chunks like\n\t// `_platform_location-chunk.mjs` crash on import with\n\t// \"JIT compilation failed for [class PlatformLocation]\" because they\n\t// call `ɵɵngDeclareFactory` at module load time, which requires the\n\t// facade to be present.\n\tawait traceAngularPhase(\n\t\t'aot/preload-compiler',\n\t\t() => import('@angular/compiler')\n\t);\n\tconst { readConfiguration, performCompilation, EmitFlags } =\n\t\tawait traceAngularPhase(\n\t\t\t'aot/import-compiler-cli',\n\t\t\t() => import('@angular/compiler-cli')\n\t\t);\n\n\tconst tsLibDir = await traceAngularPhase(\n\t\t'aot/resolve-typescript-lib',\n\t\t() => {\n\t\t\t// Resolve TypeScript lib directory dynamically (prevents hardcoded paths)\n\t\t\tconst tsPath = require.resolve('typescript');\n\t\t\tconst tsRootDir = dirname(tsPath);\n\n\t\t\treturn tsRootDir.endsWith('lib')\n\t\t\t\t? tsRootDir\n\t\t\t\t: resolve(tsRootDir, 'lib');\n\t\t}\n\t);\n\n\t// Read configuration from tsconfig.json to get angularCompilerOptions\n\tconst config = await traceAngularPhase('aot/read-configuration', () =>\n\t\treadConfiguration('./tsconfig.json')\n\t);\n\n\t// Build options object with newLine FIRST, then spread config.\n\t// IMPORTANT: target MUST be ES2022 (not ESNext) to avoid hardcoded lib.esnext.full.d.ts path.\n\tconst options: CompilerOptions = {\n\t\temitDecoratorMetadata: true,\n\t\tesModuleInterop: true,\n\t\texperimentalDecorators: true,\n\t\tmodule: ts.ModuleKind.ESNext,\n\t\tmoduleResolution: ts.ModuleResolutionKind.Bundler,\n\t\tnewLine: ts.NewLineKind.LineFeed, // Set FIRST - critical for createCompilerHost\n\t\tnoLib: false,\n\t\toutDir,\n\t\tskipLibCheck: true,\n\t\ttarget: ts.ScriptTarget.ES2022, // Use ES2022 instead of ESNext to avoid hardcoded lib paths\n\t\t...config.options // Spread AFTER to add Angular options\n\t};\n\n\t// CRITICAL: Force target to ES2022 AFTER spread to ensure it's not overwritten.\n\t// ESNext target causes hardcoded lib.esnext.full.d.ts path issues.\n\toptions.target = ts.ScriptTarget.ES2022;\n\n\t// Force TypeScript legacy decorators required by Angular 21's DI system.\n\toptions.experimentalDecorators = true;\n\toptions.emitDecoratorMetadata = true;\n\n\t// Force newLine again after spread to ensure it's not overwritten.\n\toptions.newLine = ts.NewLineKind.LineFeed;\n\n\t// Force outDir after spread — config.options may contain an absolute \"dist\" path\n\t// that overwrites our outDir, causing deeply nested compiled output.\n\toptions.outDir = outDir;\n\n\t// Production examples commonly use noEmit=true for editor/typecheck flows.\n\t// AOT compilation must override that or Angular silently produces no JS.\n\toptions.noEmit = false;\n\n\t// AOT emits into a generated directory that may be cleaned between builds.\n\t// Reusing the project's incremental tsbuildinfo can make TypeScript skip\n\t// files that need to be emitted again.\n\toptions.incremental = false;\n\toptions.tsBuildInfoFile = undefined;\n\n\t// Explicit rootDir prevents TypeScript from computing it from the single entry file,\n\t// which would cause imports from other directories to get absolute-path-based output.\n\toptions.rootDir = process.cwd();\n\n\t// Use TypeScript's createCompilerHost directly. Keep this host local to the\n\t// current AOT pass because the overrides below mutate host methods.\n\tconst host = await traceAngularPhase('aot/create-compiler-host', () =>\n\t\tts.createCompilerHost(options)\n\t);\n\n\t// Override lib resolution to use dynamic paths.\n\tconst originalGetDefaultLibLocation = host.getDefaultLibLocation;\n\thost.getDefaultLibLocation = () =>\n\t\ttsLibDir ||\n\t\t(originalGetDefaultLibLocation ? originalGetDefaultLibLocation() : '');\n\n\tconst originalGetDefaultLibFileName = host.getDefaultLibFileName;\n\thost.getDefaultLibFileName = (opts: ts.CompilerOptions) => {\n\t\tconst fileName = originalGetDefaultLibFileName\n\t\t\t? originalGetDefaultLibFileName(opts)\n\t\t\t: 'lib.d.ts';\n\n\t\treturn basename(fileName);\n\t};\n\n\tconst originalGetSourceFile = host.getSourceFile;\n\thost.getSourceFile = (\n\t\tfileName: string,\n\t\tlanguageVersion: ts.ScriptTarget,\n\t\tonError?: (message: string) => void\n\t) => {\n\t\tif (\n\t\t\tfileName.startsWith('lib.') &&\n\t\t\tfileName.endsWith('.d.ts') &&\n\t\t\ttsLibDir\n\t\t) {\n\t\t\tconst resolvedPath = join(tsLibDir, fileName);\n\n\t\t\treturn originalGetSourceFile?.call(\n\t\t\t\thost,\n\t\t\t\tresolvedPath,\n\t\t\t\tlanguageVersion,\n\t\t\t\tonError\n\t\t\t);\n\t\t}\n\n\t\treturn originalGetSourceFile?.call(\n\t\t\thost,\n\t\t\tfileName,\n\t\t\tlanguageVersion,\n\t\t\tonError\n\t\t);\n\t};\n\n\tconst emitted: Record<string, string> = {};\n\tconst resolvedOutDir = resolve(outDir);\n\thost.writeFile = (fileName, text) => {\n\t\tconst relativePath = resolveRelativePath(\n\t\t\tfileName,\n\t\t\tresolvedOutDir,\n\t\t\toutDir\n\t\t);\n\t\temitted[relativePath] = text;\n\t};\n\tconst originalReadFile = host.readFile;\n\tconst { stats: aotResourceTransformStats, transformedSources } =\n\t\tawait traceAngularPhase(\n\t\t\t'aot/precompute-resources',\n\t\t\t() =>\n\t\t\t\tprecomputeAotResourceTransforms(\n\t\t\t\t\tinputPaths,\n\t\t\t\t\toriginalReadFile?.bind(host),\n\t\t\t\t\tstylePreprocessors\n\t\t\t\t),\n\t\t\t{ entries: inputPaths.length }\n\t\t);\n\tawait traceAngularPhase('aot/resource-cache-summary', () => undefined, {\n\t\tcacheHits: aotResourceTransformStats.cacheHits,\n\t\tcacheMisses: aotResourceTransformStats.cacheMisses,\n\t\tfilesVisited: aotResourceTransformStats.filesVisited,\n\t\ttransformedFiles: aotResourceTransformStats.transformedFiles\n\t});\n\thost.readFile = (fileName: string) => {\n\t\tconst source = originalReadFile\n\t\t\t? originalReadFile.call(host, fileName)\n\t\t\t: undefined;\n\t\tif (typeof source !== 'string') return source;\n\t\tif (!fileName.endsWith('.ts') || fileName.endsWith('.d.ts')) {\n\t\t\treturn source;\n\t\t}\n\t\tconst resolvedPath = resolve(fileName);\n\n\t\treturn transformedSources.get(resolvedPath) ?? source;\n\t};\n\tconst originalGetSourceFileForCompile = host.getSourceFile;\n\thost.getSourceFile = (\n\t\tfileName: string,\n\t\tlanguageVersion: ts.ScriptTarget,\n\t\tonError?: (message: string) => void\n\t) => {\n\t\tconst source = transformedSources.get(resolve(fileName));\n\t\tif (source) {\n\t\t\treturn ts.createSourceFile(fileName, source, languageVersion, true);\n\t\t}\n\n\t\treturn originalGetSourceFileForCompile?.call(\n\t\t\thost,\n\t\t\tfileName,\n\t\t\tlanguageVersion,\n\t\t\tonError\n\t\t);\n\t};\n\n\tlet diagnostics: readonly ts.Diagnostic[] | undefined;\n\ttry {\n\t\t({ diagnostics } = await traceAngularPhase(\n\t\t\t'aot/perform-compilation',\n\t\t\t() =>\n\t\t\t\tperformCompilation({\n\t\t\t\t\temitFlags: EmitFlags.Default,\n\t\t\t\t\thost,\n\t\t\t\t\toptions,\n\t\t\t\t\trootNames: inputPaths\n\t\t\t\t}),\n\t\t\t{ entries: inputPaths.length }\n\t\t));\n\t} finally {\n\t\thost.readFile = originalReadFile;\n\t\thost.getSourceFile = originalGetSourceFileForCompile;\n\t}\n\n\tawait traceAngularPhase('aot/check-diagnostics', () =>\n\t\tthrowOnCompilationErrors(diagnostics)\n\t);\n\n\tconst entries = await traceAngularPhase(\n\t\t'aot/postprocess-emitted-js',\n\t\t() => {\n\t\t\tconst rawEntries = Object.entries(emitted)\n\t\t\t\t.filter(([fileName]) => fileName.endsWith('.js'))\n\t\t\t\t.map(([fileName, content]) => ({\n\t\t\t\t\tcontent,\n\t\t\t\t\ttarget: join(outDir, fileName)\n\t\t\t\t}));\n\t\t\tconst outputFiles = new Set(\n\t\t\t\trawEntries.map(({ target }) => resolve(target))\n\t\t\t);\n\n\t\t\treturn rawEntries.map(({ content, target }) => {\n\t\t\t\t// Post-process the compiled output:\n\t\t\t\t// 1. Add .js extensions to imports\n\t\t\t\tlet processedContent = content.replace(\n\t\t\t\t\t/from\\s+(['\"])(\\.\\.?\\/[^'\"]+)(\\1)/g,\n\t\t\t\t\t(match, quote, path) => {\n\t\t\t\t\t\tconst rewritten = rewriteRelativeJsSpecifier(\n\t\t\t\t\t\t\ttarget,\n\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\toutputFiles\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (rewritten !== path) {\n\t\t\t\t\t\t\treturn `from ${quote}${rewritten}${quote}`;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn match;\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\t// 2. Fix Angular ɵɵdom* functions to standard ɵɵ* functions\n\t\t\t\tprocessedContent = processedContent\n\t\t\t\t\t.replace(/ɵɵdomElementStart/g, 'ɵɵelementStart')\n\t\t\t\t\t.replace(/ɵɵdomElementEnd/g, 'ɵɵelementEnd')\n\t\t\t\t\t.replace(/ɵɵdomElement\\(/g, 'ɵɵelement(')\n\t\t\t\t\t.replace(/ɵɵdomProperty/g, 'ɵɵproperty')\n\t\t\t\t\t.replace(/ɵɵdomListener/g, 'ɵɵlistener');\n\n\t\t\t\t// 3. Fix InjectFlags -> InternalInjectFlags (Angular 21+ compatibility)\n\t\t\t\t// Replace in import statements\n\t\t\t\tprocessedContent = processedContent.replace(\n\t\t\t\t\t/import\\s*{\\s*([^}]*)\\bInjectFlags\\b([^}]*)\\s*}\\s*from\\s*['\"]@angular\\/core['\"]/g,\n\t\t\t\t\t(match, before, after) => {\n\t\t\t\t\t\tconst cleaned = (before + after)\n\t\t\t\t\t\t\t.replace(/,\\s*,/g, ',')\n\t\t\t\t\t\t\t.replace(/^\\s*,\\s*/, '')\n\t\t\t\t\t\t\t.replace(/,\\s*$/, '');\n\n\t\t\t\t\t\treturn cleaned\n\t\t\t\t\t\t\t? `import { ${cleaned}, InternalInjectFlags } from '@angular/core'`\n\t\t\t\t\t\t\t: `import { InternalInjectFlags } from '@angular/core'`;\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\t// Replace usage of InjectFlags\n\t\t\t\tprocessedContent = processedContent.replace(\n\t\t\t\t\t/\\b(?<!Internal)InjectFlags\\b/g,\n\t\t\t\t\t'InternalInjectFlags'\n\t\t\t\t);\n\t\t\t\tprocessedContent +=\n\t\t\t\t\tislandMetadataByOutputPath.get(resolve(target)) ?? '';\n\n\t\t\t\treturn { content: processedContent, target };\n\t\t\t});\n\t\t}\n\t);\n\n\tawait traceAngularPhase(\n\t\t'aot/write-output',\n\t\t() =>\n\t\t\tPromise.all(\n\t\t\t\tentries.map(async ({ target, content }) => {\n\t\t\t\t\tawait fs.mkdir(dirname(target), { recursive: true });\n\t\t\t\t\tawait fs.writeFile(target, content, 'utf-8');\n\t\t\t\t})\n\t\t\t),\n\t\t{ outputs: entries.length }\n\t);\n\n\treturn await traceAngularPhase(\n\t\t'aot/collect-output-paths',\n\t\t() => entries.map(({ target }) => target),\n\t\t{ outputs: entries.length }\n\t);\n};\n\nexport const compileAngularFile = async (\n\tinputPath: string,\n\toutDir: string,\n\tstylePreprocessors?: StylePreprocessorConfig\n) => compileAngularFiles([inputPath], outDir, stylePreprocessors);\n\n// Module-level cache: source content hash → compiled output path.\n// Skips re-transpilation of unchanged files during HMR, preventing\n// bun --hot from re-evaluating the growing module graph on each change.\nconst jitContentCache = new Map<string, string>();\n\n// Angular HMR Optimization — Cache the wrapper output (server file content\n// + index file content) so we can skip re-reading, rewriting, and index\n// generation when only transpilation changed but the wrapper output is identical.\nconst wrapperOutputCache = new Map<\n\tstring,\n\t{ serverHash: string; indexHash: string }\n>();\n\nconst escapeTemplateContent = (content: string) =>\n\tcontent\n\t\t.replace(/\\\\/g, '\\\\\\\\')\n\t\t.replace(/`/g, '\\\\`')\n\t\t.replace(/\\$\\{/g, '\\\\${');\n\n/** Find the next templateUrl/styleUrl/styleUrls property reference in `source`\n * whose line is not commented out with a leading `//`. Returns the match data\n * in the same shape RegExp.exec produces, or null if none. Catches the most\n * common case where users prefix the line with `//` to disable inlining\n * (otherwise our regex-based replacement would inline the template inside the\n * comment and the rest of the HTML would leak into source). */\nconst findUncommentedMatch = (source: string, pattern: RegExp) => {\n\tconst re = new RegExp(\n\t\tpattern.source,\n\t\tpattern.flags.includes('g') ? pattern.flags : pattern.flags + 'g'\n\t);\n\tlet match: RegExpExecArray | null;\n\twhile ((match = re.exec(source)) !== null) {\n\t\tconst lineStart = source.lastIndexOf('\\n', match.index - 1) + 1;\n\t\tconst beforeMatch = source.slice(lineStart, match.index);\n\t\tif (!/^\\s*\\/\\//.test(beforeMatch)) return match;\n\t}\n\n\treturn null;\n};\n\nconst resolveAngularDeferImportSpecifier = () => {\n\tconst sourceEntry = resolve(\n\t\timport.meta.dir,\n\t\t'../angular/components/index.ts'\n\t);\n\tif (existsSync(sourceEntry)) {\n\t\treturn sourceEntry.replace(/\\\\/g, '/');\n\t}\n\n\treturn '@absolutejs/absolute/angular/components';\n};\n\nconst ensureDeferSlotImport = (\n\tsource: string,\n\timportSpecifier = '@absolutejs/absolute/angular/components'\n) => {\n\tif (source.includes('DeferSlotComponent')) return source;\n\tconst resolvedImportSpecifier = JSON.stringify(importSpecifier);\n\tconst importLine = `import { DeferErrorTemplateDirective, DeferFallbackTemplateDirective, DeferResolvedTemplateDirective, DeferSlotComponent } from ${resolvedImportSpecifier};\\n`;\n\tconst lastImportMatch = [...source.matchAll(/^import[\\s\\S]*?;$/gm)].pop();\n\tif (!lastImportMatch || lastImportMatch.index === undefined) {\n\t\treturn importLine + source;\n\t}\n\tconst insertAt = lastImportMatch.index + lastImportMatch[0].length;\n\n\treturn `${source.slice(0, insertAt)}\\n${importLine}${source.slice(insertAt)}`;\n};\n\nconst ensureComponentImportsHasDeferSlot = (source: string) => {\n\tconst importListMatch = source.match(/imports\\s*:\\s*\\[([\\s\\S]*?)\\]/);\n\tif (importListMatch) {\n\t\tif (\n\t\t\t/\\bDeferSlotComponent\\b/.test(importListMatch[1] ?? '') &&\n\t\t\t/\\bDeferResolvedTemplateDirective\\b/.test(\n\t\t\t\timportListMatch[1] ?? ''\n\t\t\t) &&\n\t\t\t/\\bDeferFallbackTemplateDirective\\b/.test(\n\t\t\t\timportListMatch[1] ?? ''\n\t\t\t) &&\n\t\t\t/\\bDeferErrorTemplateDirective\\b/.test(importListMatch[1] ?? '')\n\t\t) {\n\t\t\treturn source;\n\t\t}\n\n\t\treturn source.replace(\n\t\t\t/imports\\s*:\\s*\\[([\\s\\S]*?)\\]/,\n\t\t\t(match, importsContent: string) => {\n\t\t\t\tconst trimmed = importsContent.trim();\n\t\t\t\tconst entries = trimmed\n\t\t\t\t\t.split(',')\n\t\t\t\t\t.map((entry) => entry.trim())\n\t\t\t\t\t.filter(Boolean);\n\t\t\t\tfor (const requiredImport of [\n\t\t\t\t\t'DeferSlotComponent',\n\t\t\t\t\t'DeferResolvedTemplateDirective',\n\t\t\t\t\t'DeferFallbackTemplateDirective',\n\t\t\t\t\t'DeferErrorTemplateDirective'\n\t\t\t\t]) {\n\t\t\t\t\tif (!entries.includes(requiredImport)) {\n\t\t\t\t\t\tentries.push(requiredImport);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst nextContent = entries.join(', ');\n\n\t\t\t\treturn `imports: [${nextContent}]`;\n\t\t\t}\n\t\t);\n\t}\n\n\treturn source.replace(\n\t\t/@Component\\(\\s*{/,\n\t\t'@Component({\\n\\timports: [DeferSlotComponent, DeferResolvedTemplateDirective, DeferFallbackTemplateDirective, DeferErrorTemplateDirective],'\n\t);\n};\n\nconst escapeTemplateLiteralValue = (value: string) =>\n\tvalue.replace(/\\\\/g, '\\\\\\\\').replace(/`/g, '\\\\`').replace(/\\$\\{/g, '\\\\${');\n\nconst skipInterpolatedExpression = (value: string, start: number) => {\n\tconst cursor = start + 2;\n\twhile (cursor < value.length - 1) {\n\t\tconst end = value.indexOf('}}', cursor);\n\t\tif (end < 0) {\n\t\t\treturn value.length;\n\t\t}\n\n\t\treturn end + 2;\n\t}\n\n\treturn value.length;\n};\n\nconst buildResolverTemplateLiteral = (value: string) => {\n\tconst parts: string[] = [];\n\tlet cursor = 0;\n\n\twhile (cursor < value.length) {\n\t\tconst interpolationStart = value.indexOf('{{', cursor);\n\t\tif (interpolationStart < 0) {\n\t\t\tparts.push(escapeTemplateLiteralValue(value.slice(cursor)));\n\n\t\t\tbreak;\n\t\t}\n\n\t\tparts.push(\n\t\t\tescapeTemplateLiteralValue(value.slice(cursor, interpolationStart))\n\t\t);\n\n\t\tconst nextCursor = skipInterpolatedExpression(\n\t\t\tvalue,\n\t\t\tinterpolationStart\n\t\t);\n\t\tif (nextCursor >= value.length) {\n\t\t\tparts.push(\n\t\t\t\tescapeTemplateLiteralValue(value.slice(interpolationStart))\n\t\t\t);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tconst rawExpression = value\n\t\t\t.slice(interpolationStart + 2, nextCursor - 2)\n\t\t\t.trim();\n\t\tconst expression = rawExpression.length === 0 ? \"''\" : rawExpression;\n\t\tconst expressionLiteral = JSON.stringify(expression);\n\n\t\tparts.push(\n\t\t\t`\\${this.__absoluteDeferResolveTemplateExpression(${expressionLiteral})}`\n\t\t);\n\t\tcursor = nextCursor;\n\t}\n\n\treturn parts.join('');\n};\n\nconst buildDeferSlotTemplateResolver = () =>\n\t'\\t__absoluteDeferTemplateExpressionCache = new Map<string, string>();\\n' +\n\t'\\t__absoluteDeferResolveTemplateExpression(expression: string) {\\n' +\n\t'\\t\\tconst cached = this.__absoluteDeferTemplateExpressionCache.get(expression);\\n' +\n\t'\\t\\tif (cached !== undefined) return cached;\\n' +\n\t'\\n' +\n\t'\\t\\tconst scope = new Proxy(this, {\\n' +\n\t'\\t\\t\\tget: (_target, property) => {\\n' +\n\t'\\t\\t\\t\\tconst value = (this as Record<PropertyKey, unknown>)[property];\\n' +\n\t'\\t\\t\\t\\treturn typeof value === \"function\" ? value.bind(this) : value;\\n' +\n\t'\\t\\t\\t}\\n' +\n\t'\\t\\t});\\n' +\n\t\"\\t\\tlet value = '';\\n\" +\n\t'\\t\\ttry {\\n' +\n\t'\\t\\t\\tconst evaluate = new Function(\\n' +\n\t\"\\t\\t\\t\\t'scope',\\n\" +\n\t'\\t\\t\\t\\t\"with (scope) { return (\" + expression + \"); }\"\\n' +\n\t'\\t\\t\\t);\\n' +\n\t'\\n' +\n\t'\\t\\t\\tconst resolvedValue = evaluate(scope);\\n' +\n\t\"\\t\\t\\tvalue = resolvedValue == null ? '' : String(resolvedValue);\\n\" +\n\t'\\t\\t} catch (_error) {\\n' +\n\t\"\\t\\t\\tvalue = '';\\n\" +\n\t'\\t\\t}\\n' +\n\t'\\t\\tthis.__absoluteDeferTemplateExpressionCache.set(expression, value);\\n' +\n\t'\\t\\treturn value;\\n' +\n\t'\\t}\\n\\n';\n\nconst buildDeferSlotFields = (slots: LoweredAngularDeferSlot[]) =>\n\t[\n\t\tbuildDeferSlotTemplateResolver(),\n\t\t...slots.map((slot, index) => {\n\t\t\tconst htmlField = `\\t__absoluteDeferHtml${index} = () => \\`${buildResolverTemplateLiteral(slot.resolvedHtml)}\\`;\\n`;\n\t\t\tconst dataField =\n\t\t\t\tslot.resolvedBindings.length > 0\n\t\t\t\t\t? `\\t__absoluteDeferData${index} = () => ({\\n${slot.resolvedBindings\n\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t(binding) =>\n\t\t\t\t\t\t\t\t\t`\\t\\t\"${binding.key}\": this.__absoluteDeferResolveTemplateExpression(${JSON.stringify(binding.expression)})`\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.join(',\\n')}\\n\\t});\\n`\n\t\t\t\t\t: `\\t__absoluteDeferData${index} = () => ({});\\n`;\n\n\t\t\treturn (\n\t\t\t\t`${\n\t\t\t\t\thtmlField + dataField\n\t\t\t\t}\\t__absoluteDeferResolvePayload${index} = () => new Promise<any>((resolve) => {\\n` +\n\t\t\t\t`\\t\\tsetTimeout(() => resolve({ kind: 'angular-defer', state: 'resolved', html: this.__absoluteDeferHtml${index}(), data: this.__absoluteDeferData${index}() }), ${slot.delayMs});\\n` +\n\t\t\t\t`\\t});\\n`\n\t\t\t);\n\t\t})\n\t].join('\\n');\n\nconst injectDeferSlotFields = (\n\tsource: string,\n\tslots: LoweredAngularDeferSlot[],\n\timportSpecifier = '@absolutejs/absolute/angular'\n) => {\n\tif (slots.length === 0) return source;\n\tlet rewritten = ensureDeferSlotImport(source, importSpecifier);\n\trewritten = ensureComponentImportsHasDeferSlot(rewritten);\n\tconst fields = buildDeferSlotFields(slots);\n\n\treturn rewritten.replace(\n\t\t/export(?:\\s+default)?\\s+class\\s+([A-Za-z_$][\\w$]*)\\s*{/,\n\t\t(match) => `${match}\\n${fields}\\n`\n\t);\n};\n\nconst readAndEscapeFile = async (\n\tfilePath: string,\n\tstylePreprocessors?: StylePreprocessorConfig\n) => {\n\tif (!existsSync(filePath)) {\n\t\tthrow new Error(\n\t\t\t`Unable to inline Angular style resource: file not found at ${filePath}`\n\t\t);\n\t}\n\tconst content = await compileStyleFileIfNeeded(\n\t\tfilePath,\n\t\tstylePreprocessors\n\t);\n\n\treturn escapeTemplateContent(content);\n};\n\nconst inlineTemplateAndLowerDefer = async (source: string, fileDir: string) => {\n\tconst templateUrlMatch = findUncommentedMatch(\n\t\tsource,\n\t\t/templateUrl\\s*:\\s*['\"]([^'\"]+)['\"]/\n\t);\n\tif (templateUrlMatch?.[1]) {\n\t\tconst templatePath = join(fileDir, templateUrlMatch[1]);\n\t\tif (!existsSync(templatePath)) {\n\t\t\tthrow new Error(\n\t\t\t\t`Unable to inline Angular templateUrl \"${templateUrlMatch[1]}\": file not found at ${templatePath}`\n\t\t\t);\n\t\t}\n\t\tconst templateRaw = await fs.readFile(templatePath, 'utf-8');\n\t\tconst lowered = lowerAngularDeferSyntax(templateRaw);\n\t\tconst escaped = escapeTemplateContent(lowered.template);\n\t\tconst replacedSource =\n\t\t\tsource.slice(0, templateUrlMatch.index) +\n\t\t\t`template: \\`${escaped}\\`` +\n\t\t\tsource.slice(templateUrlMatch.index + templateUrlMatch[0].length);\n\n\t\treturn {\n\t\t\tdeferSlots: lowered.slots,\n\t\t\tsource: injectDeferSlotFields(\n\t\t\t\treplacedSource,\n\t\t\t\tlowered.slots,\n\t\t\t\tresolveAngularDeferImportSpecifier()\n\t\t\t)\n\t\t};\n\t}\n\n\tconst inlineTemplateMatch = findUncommentedMatch(\n\t\tsource,\n\t\t/template\\s*:\\s*(`([\\s\\S]*?)`|'([^']*)'|\"([^\"]*)\")/\n\t);\n\tif (!inlineTemplateMatch) {\n\t\treturn { deferSlots: [] as LoweredAngularDeferSlot[], source };\n\t}\n\tconst templateRaw =\n\t\tinlineTemplateMatch[2] ??\n\t\tinlineTemplateMatch[3] ??\n\t\tinlineTemplateMatch[4] ??\n\t\t'';\n\tconst lowered = lowerAngularDeferSyntax(templateRaw);\n\tif (lowered.slots.length === 0 && lowered.template === templateRaw) {\n\t\treturn { deferSlots: lowered.slots, source };\n\t}\n\tconst escaped = escapeTemplateContent(lowered.template);\n\tconst replacedSource =\n\t\tsource.slice(0, inlineTemplateMatch.index) +\n\t\t`template: \\`${escaped}\\`` +\n\t\tsource.slice(inlineTemplateMatch.index + inlineTemplateMatch[0].length);\n\n\treturn {\n\t\tdeferSlots: lowered.slots,\n\t\tsource: injectDeferSlotFields(\n\t\t\treplacedSource,\n\t\t\tlowered.slots,\n\t\t\tresolveAngularDeferImportSpecifier()\n\t\t)\n\t};\n};\n\nconst inlineTemplateAndLowerDeferSync = (source: string, fileDir: string) => {\n\tconst templateUrlMatch = findUncommentedMatch(\n\t\tsource,\n\t\t/templateUrl\\s*:\\s*['\"]([^'\"]+)['\"]/\n\t);\n\tif (templateUrlMatch?.[1]) {\n\t\tconst templatePath = join(fileDir, templateUrlMatch[1]);\n\t\tif (!existsSync(templatePath)) {\n\t\t\tthrow new Error(\n\t\t\t\t`Unable to inline Angular templateUrl \"${templateUrlMatch[1]}\": file not found at ${templatePath}`\n\t\t\t);\n\t\t}\n\t\tconst templateRaw = readFileSync(templatePath, 'utf-8');\n\t\tconst lowered = lowerAngularDeferSyntax(templateRaw);\n\t\tconst escaped = escapeTemplateContent(lowered.template);\n\t\tconst replacedSource =\n\t\t\tsource.slice(0, templateUrlMatch.index) +\n\t\t\t`template: \\`${escaped}\\`` +\n\t\t\tsource.slice(templateUrlMatch.index + templateUrlMatch[0].length);\n\n\t\treturn {\n\t\t\tdeferSlots: lowered.slots,\n\t\t\tsource: injectDeferSlotFields(\n\t\t\t\treplacedSource,\n\t\t\t\tlowered.slots,\n\t\t\t\tresolveAngularDeferImportSpecifier()\n\t\t\t)\n\t\t};\n\t}\n\n\tconst inlineTemplateMatch = findUncommentedMatch(\n\t\tsource,\n\t\t/template\\s*:\\s*(`([\\s\\S]*?)`|'([^']*)'|\"([^\"]*)\")/\n\t);\n\tif (!inlineTemplateMatch) {\n\t\treturn { deferSlots: [] as LoweredAngularDeferSlot[], source };\n\t}\n\tconst templateRaw =\n\t\tinlineTemplateMatch[2] ??\n\t\tinlineTemplateMatch[3] ??\n\t\tinlineTemplateMatch[4] ??\n\t\t'';\n\tconst lowered = lowerAngularDeferSyntax(templateRaw);\n\tif (lowered.slots.length === 0 && lowered.template === templateRaw) {\n\t\treturn { deferSlots: lowered.slots, source };\n\t}\n\tconst escaped = escapeTemplateContent(lowered.template);\n\tconst replacedSource =\n\t\tsource.slice(0, inlineTemplateMatch.index) +\n\t\t`template: \\`${escaped}\\`` +\n\t\tsource.slice(inlineTemplateMatch.index + inlineTemplateMatch[0].length);\n\n\treturn {\n\t\tdeferSlots: lowered.slots,\n\t\tsource: injectDeferSlotFields(\n\t\t\treplacedSource,\n\t\t\tlowered.slots,\n\t\t\tresolveAngularDeferImportSpecifier()\n\t\t)\n\t};\n};\n\nconst readAndEscapeFileSync = (\n\tfilePath: string,\n\tstylePreprocessors?: StylePreprocessorConfig\n) => {\n\tif (!existsSync(filePath)) {\n\t\tthrow new Error(\n\t\t\t`Unable to inline Angular style resource: file not found at ${filePath}`\n\t\t);\n\t}\n\tconst content = compileStyleFileIfNeededSync(filePath, stylePreprocessors);\n\n\treturn escapeTemplateContent(content);\n};\n\nconst inlineStyleUrlsSync = (\n\tsource: string,\n\tfileDir: string,\n\tstylePreprocessors?: StylePreprocessorConfig\n) => {\n\tconst styleUrlsMatch = findUncommentedMatch(\n\t\tsource,\n\t\t/styleUrls\\s*:\\s*\\[([^\\]]+)\\]/\n\t);\n\tif (!styleUrlsMatch?.[1]) return source;\n\n\tconst urlMatches = styleUrlsMatch[1].match(/['\"]([^'\"]+)['\"]/g);\n\tif (!urlMatches) return source;\n\n\tconst inlinedStyles = urlMatches\n\t\t.map((urlMatch) => {\n\t\t\tconst styleUrl = urlMatch.replace(/['\"]/g, '');\n\n\t\t\treturn readAndEscapeFileSync(\n\t\t\t\tjoin(fileDir, styleUrl),\n\t\t\t\tstylePreprocessors\n\t\t\t);\n\t\t})\n\t\t.filter(Boolean)\n\t\t.map((escaped) => `\\`${escaped}\\``);\n\tif (inlinedStyles.length === 0) return source;\n\n\treturn (\n\t\tsource.slice(0, styleUrlsMatch.index) +\n\t\t`styles: [${inlinedStyles.join(', ')}]` +\n\t\tsource.slice(styleUrlsMatch.index + styleUrlsMatch[0].length)\n\t);\n};\n\nconst inlineSingleStyleUrlSync = (\n\tsource: string,\n\tfileDir: string,\n\tstylePreprocessors?: StylePreprocessorConfig\n) => {\n\tconst styleUrlMatch = findUncommentedMatch(\n\t\tsource,\n\t\t/styleUrl\\s*:\\s*['\"]([^'\"]+)['\"]/\n\t);\n\tif (!styleUrlMatch?.[1]) return source;\n\n\tconst escaped = readAndEscapeFileSync(\n\t\tjoin(fileDir, styleUrlMatch[1]),\n\t\tstylePreprocessors\n\t);\n\tif (!escaped) return source;\n\n\treturn (\n\t\tsource.slice(0, styleUrlMatch.index) +\n\t\t`styles: [\\`${escaped}\\`]` +\n\t\tsource.slice(styleUrlMatch.index + styleUrlMatch[0].length)\n\t);\n};\n\nconst inlineResourcesSync = (\n\tsource: string,\n\tfileDir: string,\n\tstylePreprocessors?: StylePreprocessorConfig\n) => {\n\tconst inlinedTemplate = inlineTemplateAndLowerDeferSync(source, fileDir);\n\tlet result = inlinedTemplate.source;\n\tresult = inlineStyleUrlsSync(result, fileDir, stylePreprocessors);\n\tresult = inlineSingleStyleUrlSync(result, fileDir, stylePreprocessors);\n\n\treturn {\n\t\tdeferSlots: inlinedTemplate.deferSlots,\n\t\tsource: result\n\t};\n};\n\nconst inlineStyleUrls = async (\n\tsource: string,\n\tfileDir: string,\n\tstylePreprocessors?: StylePreprocessorConfig\n) => {\n\tconst styleUrlsMatch = findUncommentedMatch(\n\t\tsource,\n\t\t/styleUrls\\s*:\\s*\\[([^\\]]+)\\]/\n\t);\n\tif (!styleUrlsMatch?.[1]) return source;\n\n\tconst urlMatches = styleUrlsMatch[1].match(/['\"]([^'\"]+)['\"]/g);\n\tif (!urlMatches) return source;\n\n\tconst stylePromises = urlMatches.map((urlMatch) => {\n\t\tconst styleUrl = urlMatch.replace(/['\"]/g, '');\n\n\t\treturn readAndEscapeFile(join(fileDir, styleUrl), stylePreprocessors);\n\t});\n\tconst results = await Promise.all(stylePromises);\n\tconst inlinedStyles = results\n\t\t.filter(Boolean)\n\t\t.map((escaped) => `\\`${escaped}\\``);\n\tif (inlinedStyles.length === 0) return source;\n\n\treturn (\n\t\tsource.slice(0, styleUrlsMatch.index) +\n\t\t`styles: [${inlinedStyles.join(', ')}]` +\n\t\tsource.slice(styleUrlsMatch.index + styleUrlsMatch[0].length)\n\t);\n};\n\nconst inlineSingleStyleUrl = async (\n\tsource: string,\n\tfileDir: string,\n\tstylePreprocessors?: StylePreprocessorConfig\n) => {\n\tconst styleUrlMatch = findUncommentedMatch(\n\t\tsource,\n\t\t/styleUrl\\s*:\\s*['\"]([^'\"]+)['\"]/\n\t);\n\tif (!styleUrlMatch?.[1]) return source;\n\n\tconst escaped = await readAndEscapeFile(\n\t\tjoin(fileDir, styleUrlMatch[1]),\n\t\tstylePreprocessors\n\t);\n\tif (!escaped) return source;\n\n\treturn (\n\t\tsource.slice(0, styleUrlMatch.index) +\n\t\t`styles: [\\`${escaped}\\`]` +\n\t\tsource.slice(styleUrlMatch.index + styleUrlMatch[0].length)\n\t);\n};\n\n/** Inline templateUrl and styleUrls/styleUrl from external files */\nconst inlineResources = async (\n\tsource: string,\n\tfileDir: string,\n\tstylePreprocessors?: StylePreprocessorConfig\n) => {\n\tconst inlinedTemplate = await inlineTemplateAndLowerDefer(source, fileDir);\n\tlet result = inlinedTemplate.source;\n\tresult = await inlineStyleUrls(result, fileDir, stylePreprocessors);\n\tresult = await inlineSingleStyleUrl(result, fileDir, stylePreprocessors);\n\n\treturn {\n\t\tdeferSlots: inlinedTemplate.deferSlots,\n\t\tsource: result\n\t};\n};\n\n/** Angular HMR Runtime Layer (Level 3) — JIT-mode compilation for dev/HMR builds.\n * Uses ts.transpileModule() instead of Angular AOT performCompilation().\n * Inlines templateUrl → template and styleUrls → styles from disk.\n * Recursively transpiles all local imports so Bun's bundler can resolve them.\n * ~50-100ms for a tree of ~10 files vs ~500-700ms for AOT. */\nexport const compileAngularFileJIT = async (\n\tinputPath: string,\n\toutDir: string,\n\trootDir?: string,\n\tstylePreprocessors?: StylePreprocessorConfig\n) => {\n\tconst entryPath = resolve(inputPath);\n\tconst allOutputs: string[] = [];\n\tconst visited = new Set<string>();\n\tconst baseDir = resolve(rootDir ?? process.cwd());\n\tlet usesLegacyAnimations = false;\n\n\tconst angularTranspiler = new Bun.Transpiler({\n\t\tloader: 'ts',\n\t\ttsconfig: JSON.stringify({\n\t\t\tcompilerOptions: {\n\t\t\t\temitDecoratorMetadata: true,\n\t\t\t\texperimentalDecorators: true\n\t\t\t}\n\t\t})\n\t});\n\tconst tsconfigAliases = readTsconfigPathAliases();\n\n\tconst resolveSourceFile = (candidate: string) => {\n\t\tconst candidates = candidate.match(/\\.[cm]?[tj]sx?$/)\n\t\t\t? [candidate]\n\t\t\t: [\n\t\t\t\t\t`${candidate}.ts`,\n\t\t\t\t\t`${candidate}.tsx`,\n\t\t\t\t\t`${candidate}.js`,\n\t\t\t\t\t`${candidate}.jsx`,\n\t\t\t\t\tjoin(candidate, 'index.ts'),\n\t\t\t\t\tjoin(candidate, 'index.tsx'),\n\t\t\t\t\tjoin(candidate, 'index.js'),\n\t\t\t\t\tjoin(candidate, 'index.jsx')\n\t\t\t\t];\n\n\t\treturn candidates.find((file) => existsSync(file));\n\t};\n\n\tconst resolveLocalImport = (specifier: string, fromDir: string) => {\n\t\tif (specifier.startsWith('.') || specifier.startsWith('/')) {\n\t\t\treturn resolveSourceFile(resolve(fromDir, specifier));\n\t\t}\n\n\t\tconst aliased = matchTsconfigAlias(\n\t\t\tspecifier,\n\t\t\ttsconfigAliases.aliases,\n\t\t\ttsconfigAliases.baseUrl,\n\t\t\tresolveSourceFile\n\t\t);\n\t\tif (aliased) return aliased;\n\n\t\ttry {\n\t\t\tconst resolved = Bun.resolveSync(specifier, fromDir);\n\t\t\tif (resolved.includes('/node_modules/')) return undefined;\n\t\t\tconst absolute = resolve(resolved);\n\t\t\tif (!absolute.startsWith(baseDir)) return undefined;\n\n\t\t\treturn resolveSourceFile(absolute);\n\t\t} catch {\n\t\t\treturn undefined;\n\t\t}\n\t};\n\n\tconst toOutputPath = (sourcePath: string) => {\n\t\tconst inputDir = dirname(sourcePath);\n\t\tconst relativeDir = inputDir.startsWith(baseDir)\n\t\t\t? inputDir.substring(baseDir.length + 1)\n\t\t\t: inputDir;\n\t\tconst fileBase = basename(sourcePath).replace(/\\.[cm]?[tj]sx?$/, '.js');\n\n\t\treturn join(outDir, relativeDir, fileBase);\n\t};\n\n\tconst transpileAndRewrite = (\n\t\tsourceCode: string,\n\t\trelativeDir: string,\n\t\tactualPath: string,\n\t\timportRewrites: Map<string, string>\n\t) => {\n\t\tlet processedContent = angularTranspiler.transformSync(sourceCode);\n\t\tconst outputPath = toOutputPath(actualPath);\n\t\tconst rewriteBareImport = (\n\t\t\tprefix: string,\n\t\t\tspecifier: string,\n\t\t\tsuffix: string\n\t\t) => {\n\t\t\tconst rewritten = importRewrites.get(specifier);\n\t\t\tif (rewritten) {\n\t\t\t\treturn `${prefix}${rewritten}${suffix}`;\n\t\t\t}\n\t\t\tif (specifier.startsWith('.') || specifier.startsWith('/')) {\n\t\t\t\treturn `${prefix}${specifier}${suffix}`;\n\t\t\t}\n\n\t\t\treturn `${prefix}${specifier}${suffix}`;\n\t\t};\n\n\t\tprocessedContent = processedContent.replace(\n\t\t\t/(from\\s+['\"])([^'\"]+)(['\"])/g,\n\t\t\t(_, prefix, specifier, suffix) =>\n\t\t\t\trewriteBareImport(prefix, specifier, suffix)\n\t\t);\n\t\tprocessedContent = processedContent.replace(\n\t\t\t/(import\\s+['\"])([^'\"]+)(['\"])/g,\n\t\t\t(_, prefix, specifier, suffix) =>\n\t\t\t\trewriteBareImport(prefix, specifier, suffix)\n\t\t);\n\t\tprocessedContent = processedContent.replace(\n\t\t\t/(import\\(\\s*['\"])([^'\"]+)(['\"]\\s*\\))/g,\n\t\t\t(_, prefix, specifier, suffix) =>\n\t\t\t\trewriteBareImport(prefix, specifier, suffix)\n\t\t);\n\n\t\tprocessedContent = processedContent.replace(\n\t\t\t/from\\s+(['\"])(\\.\\.?\\/[^'\"]+)(\\1)/g,\n\t\t\t(match, quote, path) => {\n\t\t\t\tconst rewritten = rewriteRelativeJsSpecifier(outputPath, path);\n\t\t\t\tif (rewritten !== path) {\n\t\t\t\t\treturn `from ${quote}${rewritten}${quote}`;\n\t\t\t\t}\n\n\t\t\t\treturn match;\n\t\t\t}\n\t\t);\n\n\t\tconst relDepth =\n\t\t\trelativeDir === '' || relativeDir === '.'\n\t\t\t\t? 0\n\t\t\t\t: relativeDir.split('/').length;\n\t\tprocessedContent = processedContent.replace(\n\t\t\t/(from\\s+['\"])(\\.\\.\\/(?:\\.\\.\\/)*)/g,\n\t\t\t(_, prefix, dots) => {\n\t\t\t\tconst upCount = dots.split('/').length - 1;\n\t\t\t\tif (upCount <= relDepth) return `${prefix}${dots}`;\n\n\t\t\t\treturn `${prefix}../${dots}`;\n\t\t\t}\n\t\t);\n\t\tif (resolve(actualPath) === entryPath) {\n\t\t\tprocessedContent += buildIslandMetadataExports(sourceCode);\n\t\t}\n\n\t\treturn processedContent;\n\t};\n\n\t/** Transpile a single .ts file and recursively process its local imports */\n\tconst transpileFile = async (filePath: string) => {\n\t\tconst resolved = resolve(filePath);\n\t\tif (visited.has(resolved)) return;\n\t\tvisited.add(resolved);\n\n\t\t// Only transpile .ts files that exist\n\t\tlet actualPath = resolved;\n\t\tif (!actualPath.endsWith('.ts')) actualPath += '.ts';\n\t\tif (!existsSync(actualPath)) return;\n\n\t\tlet sourceCode = await fs.readFile(actualPath, 'utf-8');\n\n\t\t// Angular HMR Runtime Layer (Level 3) — Inline templateUrl and styleUrls\n\t\t// This resolves external resources at transpile time so Angular JIT\n\t\t// doesn't try to fetch them via HTTP (which fails on the server)\n\t\tconst inlined = await inlineResources(\n\t\t\tsourceCode,\n\t\t\tdirname(actualPath),\n\t\t\tstylePreprocessors\n\t\t);\n\t\tsourceCode = inlineTemplateAndLowerDeferSync(\n\t\t\tinlined.source,\n\t\t\tdirname(actualPath)\n\t\t).source;\n\n\t\t// Compute output path preserving directory structure\n\t\tconst inputDir = dirname(actualPath);\n\t\tconst relativeDir = inputDir.startsWith(baseDir)\n\t\t\t? inputDir.substring(baseDir.length + 1)\n\t\t\t: inputDir;\n\t\tconst fileBase = basename(actualPath).replace(/\\.[cm]?[tj]sx?$/, '.js');\n\t\tconst targetDir = join(outDir, relativeDir);\n\t\tconst targetPath = toOutputPath(actualPath);\n\n\t\t// Find all relative imports to process recursively (needed\n\t\t// even when skipping transpilation for cache-hit files).\n\t\t// Catches: import/export ... from './x', export * from './x',\n\t\t// import './x' (side-effect), and dynamic import('./x').\n\t\tconst localImports: string[] = [];\n\t\tconst importRewrites = new Map<string, string>();\n\t\tconst fromRegex =\n\t\t\t/(?:from|import)\\s+['\"]([^'\".][^'\"]*|\\.\\.?\\/[^'\"]+)['\"]/g;\n\t\tconst dynamicImportRegex =\n\t\t\t/import\\(\\s*['\"]([^'\".][^'\"]*|\\.\\.?\\/[^'\"]+)['\"]\\s*\\)/g;\n\t\tlet importMatch;\n\t\twhile ((importMatch = fromRegex.exec(sourceCode)) !== null) {\n\t\t\tif (importMatch[1]) localImports.push(importMatch[1]);\n\t\t}\n\t\twhile ((importMatch = dynamicImportRegex.exec(sourceCode)) !== null) {\n\t\t\tif (importMatch[1]) localImports.push(importMatch[1]);\n\t\t}\n\t\tif (localImports.includes('@angular/animations')) {\n\t\t\tusesLegacyAnimations = true;\n\t\t}\n\t\tconst localImportPaths = localImports\n\t\t\t.map((specifier) => {\n\t\t\t\tconst resolved = resolveLocalImport(specifier, inputDir);\n\t\t\t\tif (!resolved) return null;\n\t\t\t\tconst relativeImport = relative(\n\t\t\t\t\ttargetDir,\n\t\t\t\t\ttoOutputPath(resolved)\n\t\t\t\t)\n\t\t\t\t\t.replace(/\\\\/g, '/')\n\t\t\t\t\t.replace(/\\.js$/, '');\n\t\t\t\timportRewrites.set(\n\t\t\t\t\tspecifier,\n\t\t\t\t\trelativeImport.startsWith('.')\n\t\t\t\t\t\t? relativeImport\n\t\t\t\t\t\t: `./${relativeImport}`\n\t\t\t\t);\n\n\t\t\t\treturn resolved;\n\t\t\t})\n\t\t\t.filter((path): path is string => Boolean(path));\n\n\t\t// Skip transpilation if source content hasn't changed — the\n\t\t// compiled output on disk is already up-to-date. This avoids\n\t\t// unnecessary disk writes that trigger bun --hot re-evaluation\n\t\t// and cause progressively slower compile times.\n\t\tconst contentHash = Bun.hash(sourceCode).toString(BASE_36_RADIX);\n\t\tconst cacheKey = actualPath;\n\t\tif (\n\t\t\tjitContentCache.get(cacheKey) === contentHash &&\n\t\t\texistsSync(targetPath)\n\t\t) {\n\t\t\tallOutputs.push(targetPath);\n\t\t} else {\n\t\t\tconst processedContent = transpileAndRewrite(\n\t\t\t\tsourceCode,\n\t\t\t\trelativeDir,\n\t\t\t\tactualPath,\n\t\t\t\timportRewrites\n\t\t\t);\n\n\t\t\tawait fs.mkdir(targetDir, { recursive: true });\n\t\t\tawait fs.writeFile(targetPath, processedContent, 'utf-8');\n\t\t\tallOutputs.push(targetPath);\n\t\t\tjitContentCache.set(cacheKey, contentHash);\n\t\t}\n\n\t\t// Recursively transpile local imports\n\t\tawait Promise.all(\n\t\t\tlocalImportPaths.map((importPath) => transpileFile(importPath))\n\t\t);\n\t};\n\n\tawait transpileFile(inputPath);\n\n\tconst entryOutputPath = toOutputPath(entryPath);\n\tif (existsSync(entryOutputPath)) {\n\t\tconst entryOutput = await fs.readFile(entryOutputPath, 'utf-8');\n\t\tconst withoutLegacyFlag = entryOutput.replace(\n\t\t\t/\\nexport const __ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__ = true;\\n?/g,\n\t\t\t'\\n'\n\t\t);\n\t\tconst nextEntryOutput = usesLegacyAnimations\n\t\t\t? `${withoutLegacyFlag}\\nexport const __ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__ = true;\\n`\n\t\t\t: withoutLegacyFlag;\n\t\tif (nextEntryOutput !== entryOutput) {\n\t\t\tawait fs.writeFile(entryOutputPath, nextEntryOutput, 'utf-8');\n\t\t}\n\t}\n\n\treturn allOutputs;\n};\n\nexport const compileAngular = async (\n\tentryPoints: string[],\n\toutRoot: string,\n\thmr = false,\n\tstylePreprocessors?: StylePreprocessorConfig\n) => {\n\tconst compiledParent = join(outRoot, 'generated');\n\n\tif (entryPoints.length === 0) {\n\t\tconst emptyPaths: string[] = [];\n\n\t\treturn { clientPaths: [...emptyPaths], serverPaths: [...emptyPaths] };\n\t}\n\n\t// Compile to .absolutejs/generated/angular/. Server files are bundled by\n\t// Bun's server pass (same as Svelte/Vue) and cleanup() removes generated/\n\t// after bundling. In dev/HMR, a fixed path avoids duplicate Angular\n\t// module instances (different file paths → different ESM cache entries),\n\t// preventing NG0201/NG0203 token identity mismatches.\n\tconst compiledRoot = compiledParent;\n\tconst indexesDir = join(compiledParent, 'indexes');\n\n\tawait traceAngularPhase('setup/create-indexes-dir', () =>\n\t\tfs.mkdir(indexesDir, { recursive: true })\n\t);\n\n\tconst aotOutputs = hmr\n\t\t? []\n\t\t: await traceAngularPhase(\n\t\t\t\t'aot/compile-files',\n\t\t\t\t() =>\n\t\t\t\t\tcompileAngularFiles(\n\t\t\t\t\t\tentryPoints.map((entry) => resolve(entry)),\n\t\t\t\t\t\tcompiledRoot,\n\t\t\t\t\t\tstylePreprocessors\n\t\t\t\t\t),\n\t\t\t\t{ entries: entryPoints.length }\n\t\t\t);\n\tconst usesLegacyAngularAnimations = await traceAngularPhase(\n\t\t'setup/legacy-animation-resolver',\n\t\t() => createLegacyAngularAnimationUsageResolver(outRoot)\n\t);\n\n\tconst compileTasks = entryPoints.map(async (entry) => {\n\t\tconst resolvedEntry = resolve(entry);\n\t\tconst relativeEntry = relative(outRoot, resolvedEntry).replace(\n\t\t\t/\\.[tj]s$/,\n\t\t\t'.js'\n\t\t);\n\t\tconst compileEntry = () =>\n\t\t\tcompileAngularFileJIT(\n\t\t\t\tresolvedEntry,\n\t\t\t\tcompiledRoot,\n\t\t\t\toutRoot,\n\t\t\t\tstylePreprocessors\n\t\t\t);\n\n\t\t// Angular HMR Runtime Layer (Level 3) — Use JIT compilation for dev/HMR builds.\n\t\t// JIT uses ts.transpileModule() with template/style inlining (~50-100ms)\n\t\t// instead of AOT performCompilation() (~500-700ms).\n\t\tlet outputs = hmr\n\t\t\t? await traceAngularPhase('jit/compile-entry', compileEntry, {\n\t\t\t\t\tentry: resolvedEntry\n\t\t\t\t})\n\t\t\t: aotOutputs;\n\t\tconst fileBase = basename(resolvedEntry).replace(/\\.[tj]s$/, '');\n\t\tconst jsName = `${fileBase}.js`;\n\t\tconst compiledFallbackPaths = [\n\t\t\tjoin(compiledRoot, relativeEntry),\n\t\t\tjoin(compiledRoot, 'pages', jsName),\n\t\t\tjoin(compiledRoot, jsName)\n\t\t].map((file) => resolve(file));\n\t\tconst resolveRawServerFile = (candidatePaths: string[]) => {\n\t\t\tconst normalizedCandidates = [\n\t\t\t\t...candidatePaths.map((file) => resolve(file)),\n\t\t\t\t...compiledFallbackPaths\n\t\t\t];\n\t\t\tlet candidate = normalizedCandidates.find(\n\t\t\t\t(file) =>\n\t\t\t\t\texistsSync(file) &&\n\t\t\t\t\tfile.endsWith(`${sep}pages${sep}${jsName}`)\n\t\t\t);\n\t\t\tif (!candidate) {\n\t\t\t\tcandidate = normalizedCandidates.find(\n\t\t\t\t\t(file) =>\n\t\t\t\t\t\texistsSync(file) && file.endsWith(`${sep}${jsName}`)\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (!candidate) {\n\t\t\t\tcandidate = normalizedCandidates.find((file) =>\n\t\t\t\t\texistsSync(file)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn candidate;\n\t\t};\n\n\t\tlet rawServerFile = await traceAngularPhase(\n\t\t\t'wrapper/resolve-server-output',\n\t\t\t() => resolveRawServerFile(outputs),\n\t\t\t{ entry: resolvedEntry }\n\t\t);\n\t\tif (!rawServerFile) {\n\t\t\trawServerFile = await traceAngularPhase(\n\t\t\t\t'wrapper/resolve-server-output-fallback',\n\t\t\t\t() => resolveRawServerFile([]),\n\t\t\t\t{ entry: resolvedEntry }\n\t\t\t);\n\t\t}\n\t\tif (rawServerFile && !existsSync(rawServerFile)) {\n\t\t\toutputs = hmr ? await compileEntry() : aotOutputs;\n\t\t\trawServerFile = await traceAngularPhase(\n\t\t\t\t'wrapper/resolve-server-output-retry',\n\t\t\t\t() => resolveRawServerFile(outputs),\n\t\t\t\t{ entry: resolvedEntry }\n\t\t\t);\n\t\t}\n\n\t\tif (!rawServerFile || !existsSync(rawServerFile)) {\n\t\t\tthrow new Error(\n\t\t\t\t`Compiled output not found for ${entry}. Looking for: ${jsName}. Available: ${[\n\t\t\t\t\t...outputs,\n\t\t\t\t\t...compiledFallbackPaths\n\t\t\t\t].join(', ')}`\n\t\t\t);\n\t\t}\n\n\t\tconst original = await traceAngularPhase(\n\t\t\t'wrapper/read-server-output',\n\t\t\t() => fs.readFile(rawServerFile, 'utf-8'),\n\t\t\t{ entry: resolvedEntry }\n\t\t);\n\n\t\t// Detect the actual exported class so the generated `export default`\n\t\t// (and the client-bundle wrappers below) reference a real symbol.\n\t\t// Without this, files whose class name doesn't follow the\n\t\t// `<Pascal(filename)>Component` convention (e.g. resources.ts\n\t\t// exporting `ContentComponent`, admin-debug.ts exporting\n\t\t// `AdminLogsComponent`) get a dangling `export default\n\t\t// ResourcesComponent` appended, which throws\n\t\t// `ReferenceError: <X> is not defined` at module-evaluation time.\n\t\t//\n\t\t// In Bun ≤1.3.13 this fails only on the first request — sequential\n\t\t// `import()` after an evaluation throw silently returns a\n\t\t// partially-initialized module instead of re-throwing. Fixed on\n\t\t// Bun main in PR oven-sh/bun#29393, awaiting 1.3.14. Tracked as\n\t\t// oven-sh/bun#29791; see UPSTREAM_ISSUES.md.\n\t\tconst detectExportedComponentClass = (\n\t\t\tsource: string,\n\t\t\tfallback: string\n\t\t): string => {\n\t\t\tconst defaultMatch = source.match(\n\t\t\t\t/export\\s+default\\s+([A-Za-z_$][\\w$]*)\\s*;/\n\t\t\t);\n\t\t\tif (defaultMatch) return defaultMatch[1]!;\n\t\t\tconst exportClassMatch = source.match(\n\t\t\t\t/export\\s+(?:default\\s+)?class\\s+([A-Za-z_$][\\w$]*)/\n\t\t\t);\n\t\t\tif (exportClassMatch) return exportClassMatch[1]!;\n\t\t\treturn fallback;\n\t\t};\n\t\tconst componentClassName = await traceAngularPhase(\n\t\t\t'wrapper/detect-component-class',\n\t\t\t() =>\n\t\t\t\tdetectExportedComponentClass(\n\t\t\t\t\toriginal,\n\t\t\t\t\t`${toPascal(fileBase)}Component`\n\t\t\t\t),\n\t\t\t{ entry: resolvedEntry }\n\t\t);\n\t\tconst usesLegacyAnimations = await traceAngularPhase(\n\t\t\t'wrapper/detect-legacy-animations',\n\t\t\t() => usesLegacyAngularAnimations(resolvedEntry),\n\t\t\t{ entry: resolvedEntry }\n\t\t);\n\n\t\t// Angular HMR Optimization — Hash the compiled server file content.\n\t\t// If it hasn't changed since last HMR cycle, skip all the rewriting,\n\t\t// HMR registration injection, SSR deps writing, and index regeneration.\n\t\t// This eliminates ~100-500ms of wrapper overhead on cache hits.\n\t\tconst serverContentHash = Bun.hash(original).toString(BASE_36_RADIX);\n\t\tconst cachedWrapper = wrapperOutputCache.get(resolvedEntry);\n\t\tconst clientFile = join(indexesDir, jsName);\n\t\tif (\n\t\t\thmr &&\n\t\t\tcachedWrapper &&\n\t\t\tcachedWrapper.serverHash === serverContentHash &&\n\t\t\texistsSync(clientFile) &&\n\t\t\t(usesLegacyAnimations ||\n\t\t\t\t!original.includes(\n\t\t\t\t\t'__ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__'\n\t\t\t\t)) &&\n\t\t\t(!usesLegacyAnimations ||\n\t\t\t\toriginal.includes('__ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__'))\n\t\t) {\n\t\t\treturn {\n\t\t\t\tclientPath: clientFile,\n\t\t\t\tindexUnchanged: true,\n\t\t\t\tserverPath: rawServerFile\n\t\t\t};\n\t\t}\n\n\t\t// Ensure the JIT compiler side effect runs before any Angular package\n\t\t// imports in generated page modules. Consumer pages usually import\n\t\t// @angular/common first, which otherwise trips partial-compile JIT mode.\n\t\tlet rewritten = original;\n\t\trewritten = rewritten.replace(\n\t\t\t/\\nexport const __ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__ = true;\\n?/g,\n\t\t\t'\\n'\n\t\t);\n\t\tif (!rewritten.includes(`import '@angular/compiler';`)) {\n\t\t\trewritten = `import '@angular/compiler';\\n${rewritten}`;\n\t\t}\n\n\t\t// Replace templateUrl if it exists\n\t\trewritten = rewritten.replace(\n\t\t\tnew RegExp(`templateUrl:\\\\s*['\"]\\\\.\\\\/${fileBase}\\\\.html['\"]`),\n\t\t\t`templateUrl: '../../pages/${fileBase}.html'`\n\t\t);\n\n\t\t// Only add default export if one doesn't already exist\n\t\tif (!rewritten.includes('export default')) {\n\t\t\trewritten += `\\nexport default ${componentClassName};\\n`;\n\t\t}\n\t\tif (usesLegacyAnimations) {\n\t\t\trewritten +=\n\t\t\t\t'\\nexport const __ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__ = true;\\n';\n\t\t}\n\n\t\t// Angular HMR Runtime Layer (Level 3) — Inject HMR registration in dev mode.\n\t\t// Identity-safe SSR is provided by the angular vendor pipeline:\n\t\t// every @angular/* import (in this file, in handleAngularPageRequest\n\t\t// → getAngularDeps, in the bundled server pages) is rewritten to the\n\t\t// same vendor file path, so Node's ESM cache hands back one module\n\t\t// instance per package across the whole runtime.\n\t\tif (hmr) {\n\t\t\trewritten = injectHMRRegistration(rewritten, resolvedEntry);\n\t\t}\n\n\t\tawait traceAngularPhase(\n\t\t\t'wrapper/write-server-output',\n\t\t\t() => fs.writeFile(rawServerFile, rewritten, 'utf-8'),\n\t\t\t{ entry: resolvedEntry }\n\t\t);\n\n\t\t// Calculate relative path from indexes directory to the server file\n\t\t// This handles deeply nested paths that Angular compiler may create\n\t\tconst relativePath = relative(indexesDir, rawServerFile).replace(\n\t\t\t/\\\\/g,\n\t\t\t'/'\n\t\t);\n\t\t// Ensure it starts with ./ or ../ for relative imports\n\t\tconst normalizedImportPath = relativePath.startsWith('.')\n\t\t\t? relativePath\n\t\t\t: `./${relativePath}`;\n\n\t\t// Angular HMR Runtime Layer (Level 3) — Import runtime before HMR client\n\t\tconst hmrPreamble = hmr\n\t\t\t? `window.__HMR_FRAMEWORK__ = \"angular\";\\nimport \"${hmrRuntimePath}\";\\nimport \"${hmrClientPath}\";\\n`\n\t\t\t: '';\n\t\tconst hydration = hmr\n\t\t\t? `${hmrPreamble}\nimport '@angular/compiler';\nimport { bootstrapApplication } from '@angular/platform-browser';\nimport { provideClientHydration } from '@angular/platform-browser';\nimport { withHttpTransferCacheOptions } from '@angular/platform-browser';\nimport { provideZonelessChangeDetection } from '@angular/core';\nimport * as pageModule from '${normalizedImportPath}';\n\nvar ${componentClassName} = pageModule.default;\nvar toScreamingSnake = function(str) {\n return str.replace(/([a-z0-9])([A-Z])/g, '$1_$2').toUpperCase();\n};\nvar isInjectionToken = function(value) {\n return Boolean(value) && typeof value === 'object' && value.ngMetadataName === 'InjectionToken';\n};\nvar pageProps = window.__ABS_ANGULAR_PAGE_PROPS__ || {};\nvar pageHasIslands = Boolean(pageModule.__ABSOLUTE_PAGE_HAS_ISLANDS__) || Boolean(document.querySelector('[data-island=\"true\"]'));\nvar pageHasRawStreamingSlots = Boolean(document.querySelector('[data-absolute-raw-slot=\"true\"]'));\nvar pageHasStreamingSlots = Boolean(document.querySelector('[data-absolute-slot=\"true\"]'));\nvar propProviders = Object.entries(pageProps).map(function(entry) {\n var propName = entry[0];\n var propValue = entry[1];\n var token = pageModule[toScreamingSnake(propName)];\n return isInjectionToken(token) ? { provide: token, useValue: propValue } : null;\n}).filter(Boolean);\n// Page-level providers, opt-in via \\`export const providers = [...]\\` in the\n// page module. Required so DI tokens that the component (or any service it\n// injects) needs are available client-side too — without these, services\n// that worked in SSR fail with NG0201 after hydration.\nvar maybePageProviders = Reflect.get(pageModule, 'providers');\nvar pageProviders = Array.isArray(maybePageProviders) ? maybePageProviders : [];\nvar absoluteHttpTransferCacheOptions = {\n includePostRequests: false,\n includeRequestsWithAuthHeaders: false,\n filter: function(request) {\n return !request.headers.has('x-skip-transfer-cache');\n }\n};\n\n// Re-export the page module so HMR fast-patch (in handlers/angular.ts) can\n// dynamically import this chunk and discover the freshly-built component\n// classes without needing a separate build artifact.\nexport * from '${normalizedImportPath}';\n\n// Record this evaluation's \\`routes\\` and \\`providers\\` exports for the\n// HMR fast-patch to compare against on the next reload. If they change\n// (a new route was added, a provider was edited), fast-patch falls back\n// to a full re-bootstrap because those values are consumed once at\n// bootstrap and won't propagate to the running router/injector via an\n// in-place component patch.\nif (typeof window !== 'undefined' && window.__ANGULAR_HMR__ && typeof window.__ANGULAR_HMR__.recordPageExports === 'function') {\n var __abs_hmr_routes = Reflect.get(pageModule, 'routes');\n window.__ANGULAR_HMR__.recordPageExports('${resolvedEntry}', __abs_hmr_routes, maybePageProviders);\n}\n\n// Re-Bootstrap HMR with View Transitions API.\n// Skipped during fast-patch: the HMR client sets\n// window.__ANGULAR_HMR_FAST_PATCH__ = true before \\`import()\\`-ing this\n// chunk so it can read the new component classes via \\`export *\\` above\n// without destroying the running app.\nif (!window.__ANGULAR_HMR_FAST_PATCH__) {\n if (window.__ANGULAR_APP__) {\n try { window.__ANGULAR_APP__.destroy(); } catch (_err) { /* ignore */ }\n window.__ANGULAR_APP__ = null;\n }\n\n // Ensure root element exists after destroy (Angular removes it)\n var _sel = ${componentClassName}.ɵcmp?.selectors?.[0]?.[0] || 'ng-app';\n if (!document.querySelector(_sel)) {\n (document.getElementById('root') || document.body).appendChild(document.createElement(_sel));\n }\n\n var providers = [provideZonelessChangeDetection()];\n if (!window.__HMR_SKIP_HYDRATION__ && !pageHasIslands) {\n providers.push(provideClientHydration(withHttpTransferCacheOptions(absoluteHttpTransferCacheOptions)));\n }\n delete window.__HMR_SKIP_HYDRATION__;\n providers.push.apply(providers, pageProviders);\n providers.push.apply(providers, propProviders);\n window.__ABS_SLOT_HYDRATION_PENDING__ = pageHasRawStreamingSlots;\n\n if (pageHasRawStreamingSlots) {\n window.__ABS_SLOT_HYDRATION_PENDING__ = false;\n if (typeof window.__ABS_SLOT_FLUSH__ === 'function') {\n requestAnimationFrame(function() {\n window.__ABS_SLOT_FLUSH__();\n });\n }\n } else {\n bootstrapApplication(${componentClassName}, {\n providers: providers\n }).then(function (appRef) {\n window.__ANGULAR_APP__ = appRef;\n window.__ABS_SLOT_HYDRATION_PENDING__ = false;\n if (typeof window.__ABS_SLOT_FLUSH__ === 'function') {\n requestAnimationFrame(function() {\n window.__ABS_SLOT_FLUSH__();\n });\n }\n });\n }\n}\n`.trim()\n\t\t\t: `\nimport '@angular/compiler';\nimport { bootstrapApplication } from '@angular/platform-browser';\nimport { provideClientHydration } from '@angular/platform-browser';\nimport { withHttpTransferCacheOptions } from '@angular/platform-browser';\nimport { enableProdMode, provideZonelessChangeDetection } from '@angular/core';\nimport * as pageModule from '${normalizedImportPath}';\n\nvar ${componentClassName} = pageModule.default;\nvar toScreamingSnake = function(str) {\n return str.replace(/([a-z0-9])([A-Z])/g, '$1_$2').toUpperCase();\n};\nvar isInjectionToken = function(value) {\n return Boolean(value) && typeof value === 'object' && value.ngMetadataName === 'InjectionToken';\n};\nvar pageProps = window.__ABS_ANGULAR_PAGE_PROPS__ || {};\nvar pageHasIslands = Boolean(pageModule.__ABSOLUTE_PAGE_HAS_ISLANDS__) || Boolean(document.querySelector('[data-island=\"true\"]'));\nvar pageHasRawStreamingSlots = Boolean(document.querySelector('[data-absolute-raw-slot=\"true\"]'));\nvar pageHasStreamingSlots = Boolean(document.querySelector('[data-absolute-slot=\"true\"]'));\nvar propProviders = Object.entries(pageProps).map(function(entry) {\n var propName = entry[0];\n var propValue = entry[1];\n var token = pageModule[toScreamingSnake(propName)];\n return isInjectionToken(token) ? { provide: token, useValue: propValue } : null;\n}).filter(Boolean);\n// Page-level providers, opt-in via \\`export const providers = [...]\\` in the\n// page module. Required so DI tokens that the component (or any service it\n// injects) needs are available client-side too — without these, services\n// that worked in SSR fail with NG0201 after hydration.\nvar maybePageProviders = Reflect.get(pageModule, 'providers');\nvar pageProviders = Array.isArray(maybePageProviders) ? maybePageProviders : [];\nvar absoluteHttpTransferCacheOptions = {\n includePostRequests: false,\n includeRequestsWithAuthHeaders: false,\n filter: function(request) {\n return !request.headers.has('x-skip-transfer-cache');\n }\n};\n\nenableProdMode();\n\nvar providers = [provideZonelessChangeDetection()].concat(pageProviders).concat(propProviders);\nif (!pageHasIslands) {\n providers.unshift(provideClientHydration(withHttpTransferCacheOptions(absoluteHttpTransferCacheOptions)));\n}\nwindow.__ABS_SLOT_HYDRATION_PENDING__ = pageHasRawStreamingSlots;\n\nif (pageHasRawStreamingSlots) {\n window.__ABS_SLOT_HYDRATION_PENDING__ = false;\n if (typeof window.__ABS_SLOT_FLUSH__ === 'function') {\n requestAnimationFrame(function() {\n window.__ABS_SLOT_FLUSH__();\n });\n }\n} else {\n bootstrapApplication(${componentClassName}, {\n providers: providers\n }).then(function (appRef) {\n window.__ANGULAR_APP__ = appRef;\n window.__ABS_SLOT_HYDRATION_PENDING__ = false;\n if (typeof window.__ABS_SLOT_FLUSH__ === 'function') {\n requestAnimationFrame(function() {\n window.__ABS_SLOT_FLUSH__();\n });\n }\n });\n}\n`.trim();\n\n\t\t// Angular HMR Optimization — Hash index content to detect if bundling\n\t\t// can be skipped (index content is deterministic for a given import path).\n\t\tconst indexHash = Bun.hash(hydration).toString(BASE_36_RADIX);\n\t\tconst indexUnchanged = cachedWrapper?.indexHash === indexHash;\n\n\t\tawait traceAngularPhase(\n\t\t\t'wrapper/write-client-index',\n\t\t\t() => fs.writeFile(clientFile, hydration, 'utf-8'),\n\t\t\t{ entry: resolvedEntry }\n\t\t);\n\n\t\t// Update wrapper cache\n\t\twrapperOutputCache.set(resolvedEntry, {\n\t\t\tindexHash,\n\t\t\tserverHash: serverContentHash\n\t\t});\n\n\t\treturn {\n\t\t\tclientPath: clientFile,\n\t\t\tindexUnchanged,\n\t\t\tserverPath: rawServerFile\n\t\t};\n\t});\n\n\tconst results = await traceAngularPhase(\n\t\t'wrapper/process-entries',\n\t\t() => Promise.all(compileTasks),\n\t\t{ entries: entryPoints.length }\n\t);\n\tconst { clientPaths, serverPaths } = await traceAngularPhase(\n\t\t'wrapper/collect-paths',\n\t\t() => ({\n\t\t\tclientPaths: results.map((r) => r.clientPath),\n\t\t\tserverPaths: results.map((r) => r.serverPath)\n\t\t}),\n\t\t{ entries: results.length }\n\t);\n\n\treturn {\n\t\t// Angular HMR Optimization — Signal to rebuildTrigger that bundling\n\t\t// can be skipped when all index files are unchanged.\n\t\tallIndexesUnchanged: hmr && results.every((r) => r.indexUnchanged),\n\t\tclientPaths,\n\t\tserverPaths\n\t};\n};\n",
|
|
70
|
+
"import { existsSync, mkdirSync } from 'node:fs';\nimport { join, resolve } from 'node:path';\nimport { rm } from 'node:fs/promises';\nimport { build as bunBuild } from 'bun';\n\nconst resolveJsxDevRuntimeCompatPath = () => {\n\tconst candidates = [\n\t\tresolve(import.meta.dir, 'react', 'jsxDevRuntimeCompat.js'),\n\t\tresolve(import.meta.dir, 'src', 'react', 'jsxDevRuntimeCompat.ts'),\n\t\tresolve(import.meta.dir, '..', 'react', 'jsxDevRuntimeCompat.js'),\n\t\tresolve(import.meta.dir, '..', 'src', 'react', 'jsxDevRuntimeCompat.ts'),\n\t\tresolve(import.meta.dir, '..', '..', 'dist', 'react', 'jsxDevRuntimeCompat.js'),\n\t\tresolve(import.meta.dir, '..', '..', 'src', 'react', 'jsxDevRuntimeCompat.ts')\n\t];\n\tfor (const candidate of candidates) {\n\t\tif (existsSync(candidate)) {\n\t\t\treturn candidate.replace(/\\\\/g, '/');\n\t\t}\n\t}\n\n\treturn (candidates[0] ?? resolve(import.meta.dir, 'react', 'jsxDevRuntimeCompat.js')).replace(\n\t\t/\\\\/g,\n\t\t'/'\n\t);\n};\n\nconst jsxDevRuntimeCompatPath = resolveJsxDevRuntimeCompatPath();\n\n/** Bare specifiers that need stable vendor builds */\nconst reactSpecifiers = [\n\t'react',\n\t'react-dom',\n\t'react-dom/client',\n\t'react/jsx-runtime',\n\t'react/jsx-dev-runtime'\n];\n\nconst isResolvable = (specifier: string) => {\n\ttry {\n\t\tBun.resolveSync(specifier, process.cwd());\n\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\n/** Includes react-refresh/runtime when the package is installed (dev HMR) */\nconst resolveVendorSpecifiers = () => {\n\tif (isResolvable('react-refresh/runtime')) {\n\t\treturn [...reactSpecifiers, 'react-refresh/runtime'];\n\t}\n\n\treturn reactSpecifiers;\n};\n\n/** Convert a bare specifier to a safe filename: react-dom/client → react-dom_client */\nconst toSafeFileName = (specifier: string) =>\n\tspecifier.replace(/\\//g, '_');\n\n/** Compute the deterministic vendor paths mapping (no build needed).\n * This can be called before vendor files exist on disk. */\nexport const computeVendorPaths = () => {\n\tconst paths: Record<string, string> = {};\n\tfor (const specifier of resolveVendorSpecifiers()) {\n\t\tpaths[specifier] = `/react/vendor/${toSafeFileName(specifier)}.js`;\n\t}\n\n\treturn paths;\n};\n\n/** Introspect a package's exports at runtime and generate an entry file\n * with explicit named re-exports. This is necessary because React is a\n * CJS module — `export * from 'react'` can't statically determine the\n * export names, so Bun produces an empty re-export. */\nconst generateEntrySource = async (specifier: string) => {\n\tif (specifier === 'react/jsx-dev-runtime') {\n\t\treturn `export { Fragment, jsxDEV } from '${jsxDevRuntimeCompatPath}';\\n`;\n\t}\n\n\tconst mod = await import(specifier);\n\tconst exportNames = Object.keys(mod).filter(\n\t\t(key) => key !== 'default' && key !== '__esModule'\n\t);\n\n\tconst lines: string[] = [];\n\tif (exportNames.length > 0) {\n\t\tlines.push(`export { ${exportNames.join(', ')} } from '${specifier}';`);\n\t}\n\tif ('default' in mod) {\n\t\tlines.push(`export { default } from '${specifier}';`);\n\t}\n\n\treturn `${lines.join('\\n') }\\n`;\n};\n\n/** Build React packages into stable vendor files (no content hash).\n * Output goes to {buildDir}/react/vendor/ with predictable names like\n * react.js, react-dom_client.js, etc. These files never change between\n * rebuilds, so the browser always loads React from a single source. */\nexport const buildReactVendor = async (buildDir: string) => {\n\tconst vendorDir = join(buildDir, 'react', 'vendor');\n\tmkdirSync(vendorDir, { recursive: true });\n\n\tconst tmpDir = join(buildDir, '_vendor_tmp');\n\tmkdirSync(tmpDir, { recursive: true });\n\n\tconst specifiers = resolveVendorSpecifiers();\n\n\t// Create temp entry files with explicit named exports\n\tconst entrypoints = await Promise.all(\n\t\tspecifiers.map(async (specifier) => {\n\t\t\tconst safeName = toSafeFileName(specifier);\n\t\t\tconst entryPath = join(tmpDir, `${safeName}.ts`);\n\t\t\tconst source = await generateEntrySource(specifier);\n\t\t\tawait Bun.write(entryPath, source);\n\n\t\t\treturn entryPath;\n\t\t})\n\t);\n\n\tconst result = await bunBuild({\n\t\tentrypoints,\n\t\tformat: 'esm',\n\t\tminify: false,\n\t\tnaming: '[name].[ext]',\n\t\toutdir: vendorDir,\n\t\tsplitting: true,\n\t\ttarget: 'browser',\n\t\tthrow: false\n\t});\n\n\tawait rm(tmpDir, { force: true, recursive: true });\n\n\tif (!result.success) {\n\t\tconsole.warn('⚠️ React vendor build had errors:', result.logs);\n\t}\n};\n",
|
|
71
|
+
"/** Generate a vendor entry source that re-exports both named AND default\n * exports robustly, regardless of whether the source has a default export.\n *\n * Why this is non-trivial:\n * - Per ECMA spec, `export *` re-exports only NAMED exports — never the\n * default. So a vendor wrapping `firebase/compat/app` (whose entire\n * surface is `export { default } from '@firebase/app-compat'`) ends up\n * completely empty, breaking `import firebase from \"/vendor/X.js\"`.\n * - Naively adding `export { default } from 'X'` makes Bun.build fail with\n * \"No matching export for 'default'\" when X has no default export.\n * - Heuristic detection from the resolved file (e.g. checking for\n * `export default` or `module.exports`) is unreliable because\n * `Bun.resolveSync` and `Bun.build` can pick different files for the\n * same specifier (CJS `index.js` vs ESM `index.mjs` via the package's\n * `exports` map).\n *\n * Solution: import the package as a namespace and re-export the namespace's\n * default. Works for every shape:\n * - ESM with default: `__ns.default` is the original default value\n * - ESM without default: `__ns.default` is `undefined` (consumer that\n * imports default would have failed against the original package too)\n * - CJS: Bun's interop synthesizes a default on the namespace\n *\n * The namespace import has no compile-time check on `default` existence,\n * so Bun.build accepts it for all packages. */\nexport const generateVendorEntrySource = (specifier: string) =>\n\t`import * as __abs_ns from '${specifier}';\\n` +\n\t`export * from '${specifier}';\\n` +\n\t`export default __abs_ns.default;\\n`;\n",
|
|
72
|
+
"import { mkdirSync } from 'node:fs';\nimport { join } from 'node:path';\nimport { rm } from 'node:fs/promises';\nimport { build as bunBuild, Glob } from 'bun';\nimport { createAngularLinkerPlugin } from './angularLinkerPlugin';\nimport { generateVendorEntrySource } from './vendorEntrySource';\n\n/** Always-vendored Angular packages.\n * Required for any Angular page even if not imported in user code: the runtime\n * needs them to bootstrap. Server-only packages (@angular/platform-server) are\n * excluded. Additional @angular/* packages are auto-discovered from source.\n *\n * `@angular/compiler` is included only when the vendor is built in JIT mode\n * (dev). In AOT mode (prod) every `ɵɵngDeclare*` has been linked at vendor\n * build time, so the compiler isn't needed at runtime and is dropped to keep\n * the prod artifact slim. */\nconst REQUIRED_ANGULAR_SPECIFIERS_BASE = [\n\t'@angular/core',\n\t'@angular/common',\n\t'@angular/common/http',\n\t'@angular/platform-browser',\n\t// `@angular/router` is used by `routerRedirectProviders.ts` in the\n\t// absolutejs runtime, not directly by user code, so source scanning\n\t// won't discover it. Force-include it so SSR's runtime resolution\n\t// finds the linked vendor copy instead of falling back to node_modules.\n\t'@angular/router'\n];\nconst requiredAngularSpecifiers = (jitMode: boolean) =>\n\tjitMode\n\t\t? [...REQUIRED_ANGULAR_SPECIFIERS_BASE, '@angular/compiler']\n\t\t: REQUIRED_ANGULAR_SPECIFIERS_BASE;\n\n/** Server-only Angular packages — needed for SSR runtime, not for the\n * browser. `@angular/compiler-cli` is intentionally omitted: it's a\n * build-time package (it ships the linker and the AOT compiler) and has\n * no runtime role, so vendoring it would just bloat the artifact. */\nconst SERVER_ONLY_ANGULAR_SPECIFIERS = new Set([\n\t'@angular/platform-server',\n\t'@angular/ssr'\n]);\n\nconst SCAN_SKIP_DIRS = new Set([\n\t'node_modules',\n\t'build',\n\t'dist',\n\t'.absolutejs',\n\t'generated'\n]);\n\nconst isResolvable = (specifier: string) => {\n\ttry {\n\t\tBun.resolveSync(specifier, process.cwd());\n\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nconst isBareSpecifier = (spec: string) =>\n\t!spec.startsWith('.') && !spec.startsWith('/') && !spec.startsWith('@src/');\n\nconst isAngularBrowserSpecifier = (spec: string) =>\n\tspec.startsWith('@angular/') && !SERVER_ONLY_ANGULAR_SPECIFIERS.has(spec);\n\n/** Scan user source for any imports — both @angular/* (kept) and other bare\n * specs (returned as transitive scan seeds). Finding angular subpaths only\n * reachable through deps (e.g. `@angular/core/rxjs-interop` from\n * `@angular/fire/compat/auth`) requires walking through non-angular roots. */\nconst scanSourceImports = async (directories: string[]) => {\n\tconst angular = new Set<string>();\n\tconst transitiveRoots = new Set<string>();\n\tconst transpiler = new Bun.Transpiler({ loader: 'tsx' });\n\tconst glob = new Glob('**/*.{ts,tsx,js,jsx}');\n\n\tfor (const dir of directories) {\n\t\ttry {\n\t\t\tfor await (const file of glob.scan({ absolute: true, cwd: dir })) {\n\t\t\t\tconst rel = file.slice(dir.length + 1);\n\t\t\t\tconst [first] = rel.split('/');\n\t\t\t\tif (first && SCAN_SKIP_DIRS.has(first)) continue;\n\t\t\t\ttry {\n\t\t\t\t\tconst content = await Bun.file(file).text();\n\t\t\t\t\tfor (const imp of transpiler.scanImports(content)) {\n\t\t\t\t\t\tif (isAngularBrowserSpecifier(imp.path)) {\n\t\t\t\t\t\t\tangular.add(imp.path);\n\t\t\t\t\t\t} else if (isBareSpecifier(imp.path)) {\n\t\t\t\t\t\t\ttransitiveRoots.add(imp.path);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} catch {\n\t\t\t\t\t// unreadable file, skip\n\t\t\t\t}\n\t\t\t}\n\t\t} catch {\n\t\t\t// missing dir, skip\n\t\t}\n\t}\n\n\treturn { angular, transitiveRoots };\n};\n\n/** Marker substrings emitted by Angular's partial-AOT compiler into any\n * package that ships `ɵɵngDeclare*` declarations. The presence of any\n * one of these means the file needs the linker before it can run, which\n * in turn means the package belongs in the Angular vendor — even if it's\n * not under `@angular/*` (e.g. `@ngx-translate/core`, `@ng-bootstrap`,\n * community Material extensions, etc.). Mirrors `declarationFunctions`\n * in `@angular/compiler-cli/linker`. */\nconst PARTIAL_DECL_MARKERS = [\n\t'ɵɵngDeclareDirective',\n\t'ɵɵngDeclareComponent',\n\t'ɵɵngDeclareFactory',\n\t'ɵɵngDeclareInjectable',\n\t'ɵɵngDeclareInjector',\n\t'ɵɵngDeclareNgModule',\n\t'ɵɵngDeclarePipe',\n\t'ɵɵngDeclareClassMetadata'\n];\n\nconst containsPartialDeclarations = (source: string) =>\n\tPARTIAL_DECL_MARKERS.some((marker) => source.includes(marker));\n\n/** Walk through transitive deps and harvest any @angular/* subpaths reachable\n * via non-angular packages (e.g. firebase imports `@angular/core/rxjs-interop`\n * through @angular/fire). Also harvests any non-@angular package whose\n * shipped code contains partial AOT declarations — those need the linker\n * too, so they belong in the Angular vendor pipeline. */\nconst collectTransitiveAngularSpecs = async (\n\troots: Iterable<string>,\n\tangularFound: Set<string>\n) => {\n\tconst { readFileSync } = await import('node:fs');\n\tconst transpiler = new Bun.Transpiler({ loader: 'js' });\n\tconst visited = new Set<string>();\n\tconst frontier: string[] = [];\n\tfor (const r of roots) frontier.push(r);\n\n\tconst MAX_PASSES = 5;\n\tfor (let pass = 0; pass < MAX_PASSES; pass++) {\n\t\tconst next: string[] = [];\n\t\tfor (const spec of frontier) {\n\t\t\tif (visited.has(spec)) continue;\n\t\t\tvisited.add(spec);\n\t\t\tlet resolved: string;\n\t\t\ttry {\n\t\t\t\tresolved = Bun.resolveSync(spec, process.cwd());\n\t\t\t} catch {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tlet content: string;\n\t\t\ttry {\n\t\t\t\tcontent = readFileSync(resolved, 'utf-8');\n\t\t\t} catch {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t// If this file ships partial AOT declarations, the *package* it\n\t\t\t// belongs to needs the linker — add the spec used to import it.\n\t\t\t// Skip if it's already an @angular/* spec (covered separately).\n\t\t\tif (\n\t\t\t\t!isAngularBrowserSpecifier(spec) &&\n\t\t\t\tcontainsPartialDeclarations(content)\n\t\t\t) {\n\t\t\t\tangularFound.add(spec);\n\t\t\t}\n\t\t\tlet imports;\n\t\t\ttry {\n\t\t\t\timports = transpiler.scanImports(content);\n\t\t\t} catch {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tfor (const imp of imports) {\n\t\t\t\tconst child = imp.path;\n\t\t\t\tif (!isBareSpecifier(child)) continue;\n\t\t\t\tif (visited.has(child)) continue;\n\t\t\t\tif (isAngularBrowserSpecifier(child)) {\n\t\t\t\t\tangularFound.add(child);\n\t\t\t\t}\n\t\t\t\tnext.push(child);\n\t\t\t}\n\t\t}\n\t\tif (next.length === 0) break;\n\t\tfrontier.length = 0;\n\t\tfor (const s of next) frontier.push(s);\n\t}\n};\n\n/** Convert a bare specifier to a safe filename:\n * @angular/common/http → angular_common_http */\nconst toSafeFileName = (specifier: string) =>\n\tspecifier.replace(/^@/, '').replace(/\\//g, '_');\n\nconst resolveAngularSpecifiers = async (\n\tdirectories: string[],\n\tlinkerJitMode: boolean\n) => {\n\tconst { angular, transitiveRoots } = await scanSourceImports(directories);\n\tfor (const spec of requiredAngularSpecifiers(linkerJitMode)) {\n\t\tangular.add(spec);\n\t}\n\tawait collectTransitiveAngularSpecs(\n\t\t[...angular, ...transitiveRoots],\n\t\tangular\n\t);\n\n\treturn Array.from(angular).filter(isResolvable);\n};\n\n/** Build vendor bundles for every @angular/* package the project imports.\n * `linkerJitMode` controls whether NgModule definitions retain their\n * declarations/exports — required when consumer (user) components are\n * runtime-compiled by `@angular/compiler` (dev/HMR via compileAngularFileJIT).\n * Production AOT builds set this to false to match AOT'd user components.\n *\n * `depVendorSpecifiers` are non-framework packages that are also vendored\n * separately (by `buildDepVendor`). They MUST be externalized here too —\n * otherwise transitive imports like `@angular/fire/compat/auth` →\n * `firebase/compat/auth` get bundled twice, creating duplicate\n * @firebase/app-compat instances. The angular-vendor copy registers\n * `firebase.auth.*` on its own firebase singleton, leaving the user's\n * `import firebase from 'firebase/compat/app'` with `firebase.auth` undefined.\n * Externalizing forces both pipelines to share the same /vendor chunks. */\nexport const buildAngularVendor = async (\n\tbuildDir: string,\n\tdirectories: string[] = [],\n\tlinkerJitMode = false,\n\tdepVendorSpecifiers: string[] = []\n) => {\n\tconst vendorDir = join(buildDir, 'angular', 'vendor');\n\tmkdirSync(vendorDir, { recursive: true });\n\n\tconst tmpDir = join(buildDir, '_angular_vendor_tmp');\n\tmkdirSync(tmpDir, { recursive: true });\n\n\tconst specifiers = await resolveAngularSpecifiers(\n\t\tdirectories,\n\t\tlinkerJitMode\n\t);\n\n\t// Angular packages are proper ESM. `export *` re-exports only NAMED exports\n\t// per ECMA spec, so we use the namespace-default-fallback pattern that's\n\t// safe regardless of whether the package has a default export.\n\tconst entrypoints = await Promise.all(\n\t\tspecifiers.map(async (specifier) => {\n\t\t\tconst safeName = toSafeFileName(specifier);\n\t\t\tconst entryPath = join(tmpDir, `${safeName}.ts`);\n\t\t\tawait Bun.write(entryPath, generateVendorEntrySource(specifier));\n\n\t\t\treturn entryPath;\n\t\t})\n\t);\n\n\tconst result = await bunBuild({\n\t\tentrypoints,\n\t\texternal: depVendorSpecifiers,\n\t\tformat: 'esm',\n\t\tminify: false,\n\t\tnaming: '[name].[ext]',\n\t\toutdir: vendorDir,\n\t\tplugins: [createAngularLinkerPlugin(linkerJitMode)],\n\t\tsplitting: true,\n\t\ttarget: 'browser',\n\t\tthrow: false\n\t});\n\n\tawait rm(tmpDir, { force: true, recursive: true });\n\n\tif (!result.success) {\n\t\tconsole.warn('⚠️ Angular vendor build had errors:', result.logs);\n\t}\n\n\treturn specifiers;\n};\nexport const computeAngularVendorPaths = (\n\tspecifiers: string[] = requiredAngularSpecifiers(true)\n) => {\n\tconst paths: Record<string, string> = {};\n\tfor (const specifier of specifiers) {\n\t\tpaths[specifier] = `/angular/vendor/${toSafeFileName(specifier)}.js`;\n\t}\n\n\treturn paths;\n};\n\n/** Async variant that scans source + transitive deps before producing the\n * vendor path map. Use this when the page-bundle build needs the full set of\n * angular specs in its rewrite map (otherwise transitively-discovered subpaths\n * like `@angular/core/rxjs-interop` end up as bare specifiers in the output). */\nexport const computeAngularVendorPathsAsync = async (\n\tdirectories: string[] = [],\n\tlinkerJitMode = true\n) => {\n\tconst specifiers = await resolveAngularSpecifiers(\n\t\tdirectories,\n\t\tlinkerJitMode\n\t);\n\n\treturn computeAngularVendorPaths(specifiers);\n};\n\n/** Server-side counterpart to `buildAngularVendor`. Outputs fully-linked\n * Bun-target ESM bundles for every @angular/* package the project uses,\n * *plus* `@angular/platform-server` and `@angular/ssr` (excluded from the\n * browser vendor). The server bundle and `getAngularDeps()` import from\n * these paths so SSR shares one Angular runtime instance with the page\n * bundles — eliminates the dual-package hazard that produces NG0201.\n *\n * After this build, `@angular/compiler` is no longer required at runtime\n * for AOT-mode builds: every partial `ɵɵngDeclare*` has been linked into\n * final ɵdir/ɵcmp/ɵfac definitions in the vendor output. */\nexport const buildAngularServerVendor = async (\n\tbuildDir: string,\n\tdirectories: string[] = [],\n\tlinkerJitMode = false\n) => {\n\tconst vendorDir = join(buildDir, 'angular', 'vendor', 'server');\n\tmkdirSync(vendorDir, { recursive: true });\n\n\tconst tmpDir = join(buildDir, '_angular_server_vendor_tmp');\n\tmkdirSync(tmpDir, { recursive: true });\n\n\tconst browserSpecs = await resolveAngularSpecifiers(\n\t\tdirectories,\n\t\tlinkerJitMode\n\t);\n\tconst allSpecs = new Set(browserSpecs);\n\tfor (const spec of SERVER_ONLY_ANGULAR_SPECIFIERS) {\n\t\tif (isResolvable(spec)) allSpecs.add(spec);\n\t}\n\tconst specifiers = Array.from(allSpecs);\n\n\tconst entrypoints = await Promise.all(\n\t\tspecifiers.map(async (specifier) => {\n\t\t\tconst safeName = toSafeFileName(specifier);\n\t\t\tconst entryPath = join(tmpDir, `${safeName}.ts`);\n\t\t\tawait Bun.write(entryPath, generateVendorEntrySource(specifier));\n\n\t\t\treturn entryPath;\n\t\t})\n\t);\n\n\tconst result = await bunBuild({\n\t\tentrypoints,\n\t\tformat: 'esm',\n\t\tminify: false,\n\t\tnaming: '[name].[ext]',\n\t\toutdir: vendorDir,\n\t\tplugins: [createAngularLinkerPlugin(linkerJitMode)],\n\t\tsplitting: true,\n\t\ttarget: 'bun',\n\t\tthrow: false\n\t});\n\n\tawait rm(tmpDir, { force: true, recursive: true });\n\n\tif (!result.success) {\n\t\tconsole.warn(\n\t\t\t'⚠️ Angular server vendor build had errors:',\n\t\t\tresult.logs\n\t\t);\n\t}\n\n\treturn specifiers;\n};\n\n/** Absolute filesystem paths to server vendor files, for `rewriteImports`\n * on server-side bundles and for runtime resolution in `getAngularDeps`. */\nexport const computeAngularServerVendorPaths = (\n\tbuildDir: string,\n\tspecifiers: string[]\n) => {\n\tconst paths: Record<string, string> = {};\n\tconst vendorDir = join(buildDir, 'angular', 'vendor', 'server');\n\tfor (const specifier of specifiers) {\n\t\tpaths[specifier] = join(vendorDir, `${toSafeFileName(specifier)}.js`);\n\t}\n\n\treturn paths;\n};\n\n/** Async server-vendor path map: scans source + transitive deps, then\n * produces absolute filesystem paths for every @angular/* spec the project\n * uses (plus the always-vendored server-only specs). Mirrors\n * `computeAngularVendorPathsAsync` but for server-side rewriting. */\nexport const computeAngularServerVendorPathsAsync = async (\n\tbuildDir: string,\n\tdirectories: string[] = [],\n\tlinkerJitMode = true\n) => {\n\tconst browserSpecs = await resolveAngularSpecifiers(\n\t\tdirectories,\n\t\tlinkerJitMode\n\t);\n\tconst allSpecs = new Set(browserSpecs);\n\tfor (const spec of SERVER_ONLY_ANGULAR_SPECIFIERS) {\n\t\tif (isResolvable(spec)) allSpecs.add(spec);\n\t}\n\n\treturn computeAngularServerVendorPaths(buildDir, Array.from(allSpecs));\n};\n",
|
|
73
|
+
"import { mkdirSync } from 'node:fs';\nimport { join } from 'node:path';\nimport { rm } from 'node:fs/promises';\nimport { build as bunBuild } from 'bun';\n\n/** Bare specifiers that need stable vendor builds for Vue.\n * Vue compiled SFC output imports from vue for the runtime. */\nconst vueSpecifiers = ['vue'];\n\n/** Convert a bare specifier to a safe filename */\nconst toSafeFileName = (specifier: string) =>\n\tspecifier.replace(/\\//g, '_');\n\n/** Build Vue packages into stable vendor files (no content hash).\n * Output goes to {buildDir}/vue/vendor/ with predictable names. */\nexport const buildVueVendor = async (buildDir: string) => {\n\tconst vendorDir = join(buildDir, 'vue', 'vendor');\n\tmkdirSync(vendorDir, { recursive: true });\n\n\tconst tmpDir = join(buildDir, '_vue_vendor_tmp');\n\tmkdirSync(tmpDir, { recursive: true });\n\n\t// Vue is proper ESM — use export * from directly\n\tconst entrypoints = await Promise.all(\n\t\tvueSpecifiers.map(async (specifier) => {\n\t\t\tconst safeName = toSafeFileName(specifier);\n\t\t\tconst entryPath = join(tmpDir, `${safeName}.ts`);\n\t\t\tawait Bun.write(entryPath, `export * from '${specifier}';\\n`);\n\n\t\t\treturn entryPath;\n\t\t})\n\t);\n\n\t// Define Vue feature flags to prevent warnings in browser\n\tconst result = await bunBuild({\n\t\tdefine: {\n\t\t\t__VUE_OPTIONS_API__: 'true',\n\t\t\t__VUE_PROD_DEVTOOLS__: 'true',\n\t\t\t__VUE_PROD_HYDRATION_MISMATCH_DETAILS__: 'true'\n\t\t},\n\t\tentrypoints,\n\t\tformat: 'esm',\n\t\tminify: false,\n\t\tnaming: '[name].[ext]',\n\t\toutdir: vendorDir,\n\t\tsplitting: true,\n\t\ttarget: 'browser',\n\t\tthrow: false\n\t});\n\n\tawait rm(tmpDir, { force: true, recursive: true });\n\n\tif (!result.success) {\n\t\tconsole.warn('⚠️ Vue vendor build had errors:', result.logs);\n\n\t\treturn;\n\t}\n\n\t// Patch the vendor bundle: guard __VUE_HMR_RUNTIME__ so the vendor\n\t// Vue doesn't overwrite the HMR runtime set by the initial bundle.\n\t// Without this, importing the vendor Vue during HMR nukes all\n\t// component records and reload() can't find existing instances.\n\tconst { readFileSync, writeFileSync, readdirSync } = await import(\n\t\t'node:fs'\n\t);\n\tconst files = readdirSync(vendorDir).filter((f) => f.endsWith('.js'));\n\tfor (const file of files) {\n\t\tconst filePath = join(vendorDir, file);\n\t\tconst content = readFileSync(filePath, 'utf-8');\n\t\tif (!content.includes('__VUE_HMR_RUNTIME__')) continue;\n\n\t\tconst patched = content.replace(\n\t\t\t/getGlobalThis\\(\\)\\.__VUE_HMR_RUNTIME__\\s*=\\s*\\{/,\n\t\t\t'getGlobalThis().__VUE_HMR_RUNTIME__ = getGlobalThis().__VUE_HMR_RUNTIME__ || {'\n\t\t);\n\t\tif (patched === content) continue;\n\n\t\twriteFileSync(filePath, patched);\n\t}\n};\n\n/** Compute the deterministic vendor paths mapping (no build needed).\n * This can be called before vendor files exist on disk. */\nexport const computeVueVendorPaths = () => {\n\tconst paths: Record<string, string> = {};\n\tfor (const specifier of vueSpecifiers) {\n\t\tpaths[specifier] = `/vue/vendor/${toSafeFileName(specifier)}.js`;\n\t}\n\n\treturn paths;\n};\n",
|
|
74
|
+
"import { mkdirSync } from 'node:fs';\nimport { join } from 'node:path';\nimport { rm } from 'node:fs/promises';\nimport { build as bunBuild } from 'bun';\n\n/** Bare specifiers that need stable vendor builds for Svelte.\n * Svelte 5 compiled output imports from svelte/internal/client\n * for the client-side runtime. */\nconst svelteSpecifiers = [\n\t'svelte',\n\t'svelte/internal',\n\t'svelte/internal/flags/async',\n\t'svelte/internal/flags/legacy',\n\t'svelte/internal/client',\n\t'svelte/internal/disclose-version',\n\t'svelte/store'\n];\n\nconst isResolvable = (specifier: string) => {\n\ttry {\n\t\trequire.resolve(specifier);\n\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\n/** Resolve which Svelte specifiers are actually installed */\nconst resolveVendorSpecifiers = () =>\n\tsvelteSpecifiers.filter(isResolvable);\n\n/** Convert a bare specifier to a safe filename: svelte/internal/client → svelte_internal_client */\nconst toSafeFileName = (specifier: string) =>\n\tspecifier.replace(/\\//g, '_');\n\n/** Build Svelte packages into stable vendor files (no content hash).\n * Output goes to {buildDir}/svelte/vendor/ with predictable names. */\nexport const buildSvelteVendor = async (buildDir: string) => {\n\tconst specifiers = resolveVendorSpecifiers();\n\tif (specifiers.length === 0) return;\n\n\tconst vendorDir = join(buildDir, 'svelte', 'vendor');\n\tmkdirSync(vendorDir, { recursive: true });\n\n\tconst tmpDir = join(buildDir, '_svelte_vendor_tmp');\n\tmkdirSync(tmpDir, { recursive: true });\n\n\tconst entrypoints = await Promise.all(\n\t\tspecifiers.map(async (specifier) => {\n\t\t\tconst safeName = toSafeFileName(specifier);\n\t\t\tconst entryPath = join(tmpDir, `${safeName}.ts`);\n\t\t\tawait Bun.write(entryPath, `export * from '${specifier}';\\n`);\n\n\t\t\treturn entryPath;\n\t\t})\n\t);\n\n\tconst result = await bunBuild({\n\t\tentrypoints,\n\t\tformat: 'esm',\n\t\tminify: false,\n\t\tnaming: '[name].[ext]',\n\t\toutdir: vendorDir,\n\t\tsplitting: true,\n\t\ttarget: 'browser',\n\t\tthrow: false\n\t});\n\n\tawait rm(tmpDir, { force: true, recursive: true });\n\n\tif (!result.success) {\n\t\tconsole.warn('⚠️ Svelte vendor build had errors:', result.logs);\n\t}\n};\n\n/** Compute the deterministic vendor paths mapping (no build needed).\n * This can be called before vendor files exist on disk. */\nexport const computeSvelteVendorPaths = () => {\n\tconst paths: Record<string, string> = {};\n\tfor (const specifier of resolveVendorSpecifiers()) {\n\t\tpaths[specifier] = `/svelte/vendor/${toSafeFileName(specifier)}.js`;\n\t}\n\n\treturn paths;\n};\n",
|
|
75
|
+
"/** Post-process bundled output files to rewrite bare specifiers\n * (e.g. `from \"@angular/core\"`) to stable vendor paths\n * (e.g. `from \"/angular/vendor/angular_core.js\"`).\n *\n * Uses native Zig scanner (15x faster) when available, falls back\n * to JS regex on Windows or when the native addon is missing. */\n\nimport { nativeRewriteImports } from './nativeRewrite';\n\nconst escapeRegex = (str: string) =>\n\tstr.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\n/** JS fallback: regex-based import rewriting */\nconst jsRewriteImports = (\n\tcontent: string,\n\treplacements: [string, string][]\n) => {\n\tlet result = content;\n\n\tfor (const [specifier, webPath] of replacements) {\n\t\tconst escaped = escapeRegex(specifier);\n\t\tconst fromRegex = new RegExp(\n\t\t\t`(from\\\\s*[\"'])${escaped}([\"'])`,\n\t\t\t'g'\n\t\t);\n\t\tconst sideEffectRegex = new RegExp(\n\t\t\t`(import\\\\s*[\"'])${escaped}([\"'])`,\n\t\t\t'g'\n\t\t);\n\t\tconst dynamicRegex = new RegExp(\n\t\t\t`(import\\\\s*\\\\(\\\\s*[\"'])${escaped}([\"']\\\\s*\\\\))`,\n\t\t\t'g'\n\t\t);\n\t\tresult = result.replace(fromRegex, `$1${webPath}$2`);\n\t\tresult = result.replace(sideEffectRegex, `$1${webPath}$2`);\n\t\tresult = result.replace(dynamicRegex, `$1${webPath}$2`);\n\t}\n\n\treturn result;\n};\n\nexport const rewriteImports = async (\n\toutputPaths: string[],\n\tvendorPaths: Record<string, string>\n) => {\n\tconst jsFiles = outputPaths.filter((path) => path.endsWith('.js'));\n\tif (jsFiles.length === 0) return;\n\n\t// Sort by specifier length (longest first) to avoid partial matches\n\tconst replacements = Object.entries(vendorPaths).sort(\n\t\t([keyA], [keyB]) => keyB.length - keyA.length\n\t);\n\n\tawait Promise.all(\n\t\tjsFiles.map(async (filePath) => {\n\t\t\tconst original = await Bun.file(filePath).text();\n\n\t\t\t// Try native Zig scanner first (15x faster on large files)\n\t\t\tconst native = nativeRewriteImports(original, replacements);\n\t\t\tconst content = native ?? jsRewriteImports(original, replacements);\n\n\t\t\tif (content !== original) {\n\t\t\t\tawait Bun.write(filePath, content);\n\t\t\t}\n\t\t})\n\t);\n};\n\n/** Post-process every .js in one or more vendor directories using the\n * combined cross-framework path map. Required because each vendor build\n * externalizes packages owned by other vendor pipelines (e.g. a dep-vendor\n * wrapper around `@sentry/angular` externalizes `@angular/core` so it isn't\n * duplicated, leaving a bare `from \"@angular/core\"` in the output). Without\n * this rewrite the browser fetches the vendor file at runtime and chokes\n * on the bare specifier. Run AFTER all vendor builds complete so every\n * framework's path map is included in `vendorPaths`. */\nexport const rewriteVendorDirectories = async (\n\tvendorDirs: string[],\n\tvendorPaths: Record<string, string>\n) => {\n\tif (Object.keys(vendorPaths).length === 0) return;\n\tconst { readdirSync } = await import('node:fs');\n\tconst { join } = await import('node:path');\n\n\tconst allFiles: string[] = [];\n\tfor (const dir of vendorDirs) {\n\t\ttry {\n\t\t\tconst files = readdirSync(dir)\n\t\t\t\t.filter((f) => f.endsWith('.js'))\n\t\t\t\t.map((f) => join(dir, f));\n\t\t\tallFiles.push(...files);\n\t\t} catch {\n\t\t\t// missing dir is fine — that framework wasn't used\n\t\t}\n\t}\n\n\tawait rewriteImports(allFiles, vendorPaths);\n\tawait fixMissingReExportNamespaces(allFiles);\n};\n\n/** Workaround for a Bun bundler bug: when a module does both\n * `import { x } from 'X'` AND `export * from 'X'`, and `X` is externalized,\n * Bun synthesizes a `__reExport(exports_Y, ns)` call but drops the\n * corresponding `import * as ns from \"X\"` declaration. The resulting chunk\n * references an undeclared identifier and crashes at module evaluation.\n *\n * This step detects the pattern and injects the missing namespace import.\n * The source path is recovered from a sibling named-import in the same\n * chunk (Bun keeps that intact). */\nconst fixMissingReExportNamespaces = async (files: string[]) => {\n\tconst REEXPORT_PATTERN = /__reExport\\(\\s*[A-Za-z_$][\\w$]*\\s*,\\s*([A-Za-z_$][\\w$]*)\\s*\\)/g;\n\n\tawait Promise.all(\n\t\tfiles.map(async (filePath) => {\n\t\t\tconst content = await Bun.file(filePath).text();\n\t\t\tREEXPORT_PATTERN.lastIndex = 0;\n\t\t\tconst missing: { ident: string; path: string }[] = [];\n\t\t\tlet match;\n\t\t\twhile ((match = REEXPORT_PATTERN.exec(content)) !== null) {\n\t\t\t\tconst ident = match[1];\n\t\t\t\tif (!ident) continue;\n\t\t\t\t// Already imported as a namespace? Skip.\n\t\t\t\tconst nsImportRe = new RegExp(\n\t\t\t\t\t`\\\\bimport\\\\s*\\\\*\\\\s*as\\\\s+${ident}\\\\s+from\\\\b`\n\t\t\t\t);\n\t\t\t\tif (nsImportRe.test(content)) continue;\n\t\t\t\t// Already declared as a local binding? Skip.\n\t\t\t\tconst declRe = new RegExp(\n\t\t\t\t\t`\\\\b(?:const|let|var|function|class)\\\\s+${ident}\\\\b`\n\t\t\t\t);\n\t\t\t\tif (declRe.test(content)) continue;\n\t\t\t\t// Also skip if it's brought in via named import (rare but possible).\n\t\t\t\tconst namedImportRe = new RegExp(\n\t\t\t\t\t`\\\\bimport\\\\s*\\\\{[^}]*\\\\b${ident}\\\\b[^}]*\\\\}\\\\s*from\\\\b`\n\t\t\t\t);\n\t\t\t\tif (namedImportRe.test(content)) continue;\n\t\t\t\t// Find the source path: heuristic — look for a sibling\n\t\t\t\t// `import { ... } from \"<path>\"` whose basename, with separators\n\t\t\t\t// turned into underscores, ends with the ident.\n\t\t\t\t// e.g. `firebase_app.js` matches `app`; `rxjs_operators.js`\n\t\t\t\t// matches `operators`; `angular_core.js` matches `core`.\n\t\t\t\tconst importPathRe = /from\\s+[\"']([^\"']+)[\"']/g;\n\t\t\t\tlet pathMatch;\n\t\t\t\tlet sourcePath: string | undefined;\n\t\t\t\twhile ((pathMatch = importPathRe.exec(content)) !== null) {\n\t\t\t\t\tconst p = pathMatch[1];\n\t\t\t\t\tif (!p) continue;\n\t\t\t\t\tconst base = p.split('/').pop()?.replace(/\\.[mc]?js$/, '');\n\t\t\t\t\tif (!base) continue;\n\t\t\t\t\tif (base === ident || base.endsWith(`_${ident}`)) {\n\t\t\t\t\t\tsourcePath = p;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (sourcePath) {\n\t\t\t\t\tmissing.push({ ident, path: sourcePath });\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (missing.length === 0) return;\n\n\t\t\t// Dedupe (same ident shouldn't appear twice but be defensive).\n\t\t\tconst seen = new Set<string>();\n\t\t\tconst unique = missing.filter((entry) => {\n\t\t\t\tif (seen.has(entry.ident)) return false;\n\t\t\t\tseen.add(entry.ident);\n\n\t\t\t\treturn true;\n\t\t\t});\n\n\t\t\tconst inserts = unique\n\t\t\t\t.map((entry) => `import * as ${entry.ident} from \"${entry.path}\";`)\n\t\t\t\t.join('\\n');\n\t\t\t// Insert at the very top — ESM spec hoists imports anyway, so\n\t\t\t// position doesn't matter for execution order.\n\t\t\tconst patched = `${inserts}\\n${content}`;\n\t\t\tawait Bun.write(filePath, patched);\n\t\t})\n\t);\n};\n",
|
|
76
|
+
"import { UNFOUND_INDEX } from '../constants';\nimport {\n\tcopyFileSync,\n\tcpSync,\n\texistsSync,\n\tmkdirSync,\n\treadFileSync,\n\trmSync,\n\tstatSync,\n\twriteFileSync\n} from 'node:fs';\nimport { basename, dirname, extname, join, relative, resolve } from 'node:path';\nimport { cwd, env, exit } from 'node:process';\nimport { build as bunBuild, type BuildArtifact, Glob } from 'bun';\nimport { generateManifest } from '../build/generateManifest';\nimport {\n\tcollectIslandFrameworkSources,\n\tgenerateIslandEntryPoints,\n\tloadIslandRegistryBuildInfo\n} from '../build/islandEntries';\nimport { generateReactIndexFiles } from '../build/generateReactIndexes';\nimport { createHTMLScriptHMRPlugin } from '../build/htmlScriptHMRPlugin';\nimport { transformStaticPagesWithIslands } from '../build/staticIslandPages';\nimport { outputLogs } from '../build/outputLogs';\nimport { scanEntryPoints } from '../build/scanEntryPoints';\nimport { scanConventions } from '../build/scanConventions';\nimport type {\n\tConventionsMap,\n\tFrameworkConventionEntry\n} from '../../types/conventions';\nimport { scanCssEntryPoints } from '../build/scanCssEntryPoints';\nimport {\n\tcreateStyleTransformConfig,\n\tcreateStylePreprocessorPlugin,\n\tisStylePath\n} from '../build/stylePreprocessor';\nimport {\n\tcompileTailwindConfig,\n\tisTailwindCandidate\n} from '../build/compileTailwind';\nimport { disposeTailwindCompiler } from '../build/tailwindCompiler';\nimport { optimizeHtmlImages } from '../build/optimizeHtmlImages';\nimport { updateAssetPaths } from '../build/updateAssetPaths';\nimport { buildHMRClient } from '../dev/buildHMRClient';\nimport {\n\tpatchRefreshGlobals,\n\trewriteReactImports\n} from '../build/rewriteReactImports';\nimport { sendTelemetryEvent } from '../cli/telemetryEvent';\nimport {\n\tgetAngularServerVendorPaths,\n\tgetAngularVendorPaths,\n\tgetDevVendorPaths,\n\tgetSvelteVendorPaths,\n\tgetVueVendorPaths,\n\tsetAngularServerVendorPaths,\n\tsetAngularVendorPaths,\n\tsetDevVendorPaths,\n\tsetSvelteVendorPaths,\n\tsetVueVendorPaths\n} from './devVendorPaths';\nimport type {\n\tBuildConfig,\n\tBunBuildConfigOverride,\n\tBunBuildPassConfig,\n\tBunBuildPassKey\n} from '../../types/build';\nimport { createAngularLinkerPlugin } from '../build/angularLinkerPlugin';\nimport { cleanStaleOutputs } from '../utils/cleanStaleOutputs';\nimport { cleanup } from '../utils/cleanup';\nimport { commonAncestor } from '../utils/commonAncestor';\nimport { logError, logWarn } from '../utils/logger';\nimport { normalizePath } from '../utils/normalizePath';\nimport { toPascal } from '../utils/stringModifiers';\nimport { validateSafePath } from '../utils/validateSafePath';\n\nconst isDev = env.NODE_ENV === 'development';\n\ntype BuildTraceEvent = {\n\tdurationMs: number;\n\tmetadata?: Record<string, unknown>;\n\tname: string;\n\tok: boolean;\n\tstartMs: number;\n};\n\ntype BuildTracePhase = <T>(\n\tname: string,\n\tfn: () => Promise<T> | T,\n\tmetadata?: Record<string, unknown>\n) => Promise<T>;\n\nconst isBuildTraceEnabled = () => {\n\tconst value = env.ABSOLUTE_BUILD_TRACE?.toLowerCase();\n\n\treturn value === '1' || value === 'true' || value === 'yes';\n};\n\nconst collectConventionSourceFiles = (\n\tentry: FrameworkConventionEntry | undefined\n) => {\n\tif (!entry) return [];\n\tconst files: string[] = [];\n\tif (entry.defaults?.error) files.push(entry.defaults.error);\n\tif (entry.defaults?.loading) files.push(entry.defaults.loading);\n\tif (entry.defaults?.notFound) files.push(entry.defaults.notFound);\n\tif (!entry.pages) return files;\n\tfor (const page of Object.values(entry.pages)) {\n\t\tif (page.error) files.push(page.error);\n\t\tif (page.loading) files.push(page.loading);\n\t}\n\n\treturn files;\n};\n\nconst updateConventionCompiledPaths = (\n\tentry: FrameworkConventionEntry | undefined,\n\tsourcePaths: string[],\n\tcompiledPaths: string[]\n) => {\n\tif (!entry || sourcePaths.length !== compiledPaths.length) return;\n\tconst pathMap = new Map<string, string>();\n\tfor (let idx = 0; idx < sourcePaths.length; idx++) {\n\t\tconst src = sourcePaths[idx];\n\t\tconst compiled = compiledPaths[idx];\n\t\tif (src && compiled) pathMap.set(src, compiled);\n\t}\n\n\tif (entry.defaults) {\n\t\tconst errorPath = entry.defaults.error\n\t\t\t? pathMap.get(entry.defaults.error)\n\t\t\t: undefined;\n\t\tif (errorPath) entry.defaults.error = errorPath;\n\n\t\tconst loadingPath = entry.defaults.loading\n\t\t\t? pathMap.get(entry.defaults.loading)\n\t\t\t: undefined;\n\t\tif (loadingPath) entry.defaults.loading = loadingPath;\n\n\t\tconst notFoundPath = entry.defaults.notFound\n\t\t\t? pathMap.get(entry.defaults.notFound)\n\t\t\t: undefined;\n\t\tif (notFoundPath) entry.defaults.notFound = notFoundPath;\n\t}\n\tif (!entry.pages) return;\n\tfor (const page of Object.values(entry.pages)) {\n\t\tconst errorPath = page.error ? pathMap.get(page.error) : undefined;\n\t\tif (errorPath) page.error = errorPath;\n\n\t\tconst loadingPath = page.loading\n\t\t\t? pathMap.get(page.loading)\n\t\t\t: undefined;\n\t\tif (loadingPath) page.loading = loadingPath;\n\t}\n};\n\nconst extractBuildError = (\n\tlogs: (BuildMessage | ResolveMessage)[],\n\tpass: string,\n\tlabel: string,\n\tframeworkNames: string[],\n\tisIncremental: boolean | 0 | undefined,\n\tthrowOnError: boolean\n) => {\n\tconst errLog = logs.find((log) => log.level === 'error') ?? logs[0];\n\tif (!errLog) {\n\t\texit(1);\n\n\t\treturn;\n\t}\n\tconst err = new Error(\n\t\ttypeof errLog.message === 'string'\n\t\t\t? errLog.message\n\t\t\t: String(errLog.message)\n\t);\n\tObject.assign(err, { logs });\n\tsendTelemetryEvent('build:error', {\n\t\tframeworks: frameworkNames,\n\t\tincremental: Boolean(isIncremental),\n\t\tmessage: err.message,\n\t\tpass\n\t});\n\tlogError(`${label} build failed`, err);\n\tif (throwOnError) throw err;\n\texit(1);\n};\n\nconst copyHtmxVendor = (htmxDir: string, htmxDestDir: string) => {\n\tmkdirSync(htmxDestDir, { recursive: true });\n\tconst glob = new Glob('htmx*.min.js');\n\tfor (const relPath of glob.scanSync({ cwd: htmxDir })) {\n\t\tconst src = join(htmxDir, relPath);\n\t\tconst dest = join(htmxDestDir, 'htmx.min.js');\n\t\tcopyFileSync(src, dest);\n\n\t\treturn;\n\t}\n};\n\nconst tryReadPackageJson = async (path: string) => {\n\ttry {\n\t\treturn await Bun.file(path).json();\n\t} catch {\n\t\treturn null;\n\t}\n};\n\nconst resolveAbsoluteVersion = async () => {\n\tconst candidates = [\n\t\tresolve(import.meta.dir, '..', '..', 'package.json'),\n\t\tresolve(import.meta.dir, '..', 'package.json')\n\t];\n\tconst resolveCandidate = async (remaining: string[]) => {\n\t\tconst [candidate, ...rest] = remaining;\n\t\tif (!candidate) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst pkg = await tryReadPackageJson(candidate);\n\t\tif (!pkg || pkg.name !== '@absolutejs/absolute') {\n\t\t\tawait resolveCandidate(rest);\n\n\t\t\treturn;\n\t\t}\n\n\t\tglobalThis.__absoluteVersion = pkg.version;\n\t};\n\n\tawait resolveCandidate(candidates);\n};\n\n/** Scan source directories for files referenced by new URL('./path', import.meta.url) */\nconst SKIP_DIRS = new Set([\n\t'build',\n\t'node_modules',\n\t'.absolutejs',\n\t'generated'\n]);\nconst addWorkerPathIfExists = (\n\tfile: string,\n\trelPath: string,\n\tworkerPaths: Set<string>\n) => {\n\tconst absPath = resolve(file, '..', relPath);\n\ttry {\n\t\tstatSync(absPath);\n\t\tworkerPaths.add(absPath);\n\t} catch {\n\t\t// Referenced file doesn't exist, skip\n\t}\n};\n\nconst collectWorkerPathsFromContent = (\n\tcontent: string,\n\tpattern: RegExp,\n\tfile: string,\n\tworkerPaths: Set<string>\n) => {\n\tpattern.lastIndex = 0;\n\tlet match;\n\twhile ((match = pattern.exec(content)) !== null) {\n\t\tconst [, relPath] = match;\n\t\tif (!relPath) continue;\n\t\taddWorkerPathIfExists(file, relPath, workerPaths);\n\t}\n};\n\nconst collectWorkerPathsFromFile = (\n\tfile: string,\n\tpatterns: RegExp[],\n\tworkerPaths: Set<string>\n) => {\n\tconst content = readFileSync(file, 'utf-8');\n\tfor (const pattern of patterns) {\n\t\tcollectWorkerPathsFromContent(content, pattern, file, workerPaths);\n\t}\n};\n\nconst scanWorkerReferencesInDir = async (\n\tdir: string,\n\tpatterns: RegExp[],\n\tworkerPaths: Set<string>\n) => {\n\tconst glob = new Glob('**/*.{ts,tsx,js,jsx,svelte,vue}');\n\tfor await (const file of glob.scan({ absolute: true, cwd: dir })) {\n\t\t// Skip build-generated directories\n\t\tconst relToDir = file.slice(dir.length + 1);\n\t\tconst [firstSegment] = relToDir.split('/');\n\t\tif (firstSegment && SKIP_DIRS.has(firstSegment)) continue;\n\n\t\tcollectWorkerPathsFromFile(file, patterns, workerPaths);\n\t}\n};\n\nconst scanWorkerReferences = async (dirs: string[]) => {\n\tconst urlPattern =\n\t\t/new\\s+URL\\(\\s*[\"'](\\.\\.?\\/[^\"']+)[\"']\\s*,\\s*import\\.meta\\.url\\s*\\)/g;\n\tconst resolvePattern =\n\t\t/import\\.meta\\.resolve\\(\\s*[\"'](\\.\\.?\\/[^\"']+)[\"']\\s*\\)/g;\n\tconst workerPaths = new Set<string>();\n\n\tawait Promise.all(\n\t\tdirs.map((dir) =>\n\t\t\tscanWorkerReferencesInDir(\n\t\t\t\tdir,\n\t\t\t\t[urlPattern, resolvePattern],\n\t\t\t\tworkerPaths\n\t\t\t)\n\t\t)\n\t);\n\n\treturn [...workerPaths];\n};\n\nconst copyDevIndexes = async ({\n\tbuildPath,\n\treactIndexesPath,\n\treactPagesPath,\n\tsvelteDir,\n\tsvelteEntries,\n\tsveltePagesPath,\n\tvueDir,\n\tvueEntries,\n\tvuePagesPath\n}: {\n\tbuildPath: string;\n\treactIndexesPath: string | false | undefined;\n\treactPagesPath: string | false | undefined;\n\tsvelteDir: string | false | undefined;\n\tsvelteEntries: string[];\n\tsveltePagesPath: string | false | undefined;\n\tvueDir: string | false | undefined;\n\tvueEntries: string[];\n\tvuePagesPath: string | false | undefined;\n}) => {\n\tconst { readdirSync: readDir } = await import('node:fs');\n\tconst devIndexDir = join(buildPath, '_src_indexes');\n\tmkdirSync(devIndexDir, { recursive: true });\n\n\tif (reactIndexesPath && reactPagesPath) {\n\t\tcopyReactDevIndexes(\n\t\t\treactIndexesPath,\n\t\t\treactPagesPath,\n\t\t\tdevIndexDir,\n\t\t\treadDir\n\t\t);\n\t}\n\n\tif (svelteDir && sveltePagesPath) {\n\t\tcopySvelteDevIndexes(\n\t\t\tsvelteDir,\n\t\t\tsveltePagesPath,\n\t\t\tsvelteEntries,\n\t\t\tdevIndexDir\n\t\t);\n\t}\n\n\tif (vueDir && vuePagesPath) {\n\t\tcopyVueDevIndexes(vueDir, vuePagesPath, vueEntries, devIndexDir);\n\t}\n};\n\nconst copyReactDevIndexes = (\n\treactIndexesPath: string,\n\treactPagesPath: string,\n\tdevIndexDir: string,\n\treadDir: (path: string) => string[]\n) => {\n\tif (!existsSync(reactIndexesPath)) {\n\t\treturn;\n\t}\n\n\tconst indexFiles = readDir(reactIndexesPath).filter((file: string) =>\n\t\tfile.endsWith('.tsx')\n\t);\n\tconst pagesRel = relative(process.cwd(), resolve(reactPagesPath)).replace(\n\t\t/\\\\/g,\n\t\t'/'\n\t);\n\n\tfor (const file of indexFiles) {\n\t\tlet content = readFileSync(join(reactIndexesPath, file), 'utf-8');\n\t\tcontent = content.replace(\n\t\t\t/from\\s*['\"]([^'\"]*\\/pages\\/([^'\"]+))['\"]/g,\n\t\t\t(_match, _fullPath, componentName) =>\n\t\t\t\t`from '/@src/${pagesRel}/${componentName}'`\n\t\t);\n\t\twriteFileSync(join(devIndexDir, file), content);\n\t}\n};\n\nconst copySvelteDevIndexes = (\n\tsvelteDir: string,\n\tsveltePagesPath: string,\n\tsvelteEntries: string[],\n\tdevIndexDir: string\n) => {\n\tconst svelteIndexDir = join(svelteDir, 'generated', 'indexes');\n\tconst sveltePageEntries = svelteEntries.filter((file) =>\n\t\tresolve(file).startsWith(resolve(sveltePagesPath))\n\t);\n\tfor (const entry of sveltePageEntries) {\n\t\tconst name = basename(entry).replace(/\\.svelte(\\.(ts|js))?$/, '');\n\t\tconst indexFile = join(svelteIndexDir, 'pages', `${name}.js`);\n\t\tif (!existsSync(indexFile)) continue;\n\t\tlet content = readFileSync(indexFile, 'utf-8');\n\t\tconst srcRel = relative(process.cwd(), resolve(entry)).replace(\n\t\t\t/\\\\/g,\n\t\t\t'/'\n\t\t);\n\t\tcontent = content.replace(\n\t\t\t/import\\s+Component\\s+from\\s+['\"]([^'\"]+)['\"]/,\n\t\t\t`import Component from \"/@src/${srcRel}\"`\n\t\t);\n\t\twriteFileSync(join(devIndexDir, `${name}.svelte.js`), content);\n\t}\n};\n\nconst copyVueDevIndexes = (\n\tvueDir: string,\n\tvuePagesPath: string,\n\tvueEntries: string[],\n\tdevIndexDir: string\n) => {\n\tconst vueIndexDir = join(vueDir, 'generated', 'indexes');\n\tconst vuePageEntries = vueEntries.filter((file) =>\n\t\tresolve(file).startsWith(resolve(vuePagesPath))\n\t);\n\tfor (const entry of vuePageEntries) {\n\t\tconst name = basename(entry, '.vue');\n\t\tconst indexFile = join(vueIndexDir, `${name}.js`);\n\t\tif (!existsSync(indexFile)) continue;\n\t\tlet content = readFileSync(indexFile, 'utf-8');\n\t\tconst srcRel = relative(process.cwd(), resolve(entry)).replace(\n\t\t\t/\\\\/g,\n\t\t\t'/'\n\t\t);\n\t\tcontent = content.replace(\n\t\t\t/import\\s+Comp\\s+from\\s+['\"]([^'\"]+)['\"]/,\n\t\t\t`import Comp from \"/@src/${srcRel}\"`\n\t\t);\n\t\twriteFileSync(join(devIndexDir, `${name}.vue.js`), content);\n\t}\n};\n\nconst resolveVueRuntimeId = (\n\tcontent: string,\n\tfirstUseName: string,\n\toutputPath: string,\n\tprojectRoot: string\n) => {\n\tconst varIdx = content.indexOf(`var ${firstUseName} =`);\n\tif (varIdx <= 0) return JSON.stringify(outputPath);\n\t// Find all // src/...js comments before the var declaration\n\tconst before = content.slice(0, varIdx);\n\tconst allComments = [...before.matchAll(/\\/\\/\\s*(src\\/[^\\n]*\\.js)\\s*\\n/g)];\n\t// Use the last one (closest to the var declaration)\n\tconst last = allComments[allComments.length - 1];\n\tif (!last?.[1]) return JSON.stringify(outputPath);\n\tconst srcPath = resolve(\n\t\tprojectRoot,\n\t\tlast[1].replace('/client/', '/').replace(/\\.js$/, '.ts')\n\t);\n\n\treturn JSON.stringify(srcPath);\n};\n\nconst QUOTE_CHARS = new Set(['\"', \"'\", '`']);\nconst OPEN_BRACES = new Set(['{', '(']);\nconst CLOSE_BRACES = new Set(['}', ')']);\n\nconst findFunctionExpressionEnd = (content: string, startPos: number) => {\n\tlet depth = 0;\n\tlet inStr: string | false = false;\n\tfor (let i = startPos; i < content.length; i++) {\n\t\tconst char = content[i] ?? '';\n\t\tif (inStr && char === inStr && content[i - 1] !== '\\\\') inStr = false;\n\t\tif (inStr) continue;\n\t\tif (QUOTE_CHARS.has(char)) inStr = char;\n\t\tif (QUOTE_CHARS.has(char)) continue;\n\t\tif (OPEN_BRACES.has(char)) depth++;\n\t\tif (CLOSE_BRACES.has(char)) depth--;\n\t\tif (depth === 0 && char === ';') return i;\n\t}\n\n\treturn startPos;\n};\n\nconst wrapUseFunctions = (content: string, useNames: string[]) => {\n\tlet result = content;\n\tfor (const name of useNames) {\n\t\tconst marker = `var ${name} = `;\n\t\tconst pos = result.indexOf(marker);\n\t\tif (pos === UNFOUND_INDEX) continue;\n\t\tconst afterMarker = pos + marker.length;\n\t\tconst endPos = findFunctionExpressionEnd(result, afterMarker);\n\t\tconst funcBody = result.slice(afterMarker, endPos);\n\t\tresult = `${result.slice(0, afterMarker)}__hmr_wrap(${JSON.stringify(name)}, ${funcBody})${result.slice(endPos)}`;\n\t}\n\n\treturn result;\n};\n\nconst VUE_HMR_RUNTIME = [\n\t`var __hmr_cs=(globalThis.__HMR_COMPOSABLE_STATE__??={});`,\n\t`var __hmr_mid=__HMR_MID__;`,\n\t`var __hmr_prev_refs=__hmr_cs[__hmr_mid];`,\n\t`var __hmr_idx={};`,\n\t`__hmr_cs[__hmr_mid]={};`,\n\t`function __hmr_wrap(n,fn){return function(){`,\n\t`var i=(__hmr_idx[n]=(__hmr_idx[n]??-1)+1);`,\n\t`var r=fn.apply(this,arguments);`,\n\t`if(r&&typeof r===\"object\"){`,\n\t`var refs={};for(var k in r){var v=r[k];`,\n\t`if(v&&typeof v===\"object\"&&\"value\"in v&&!v.effect&&typeof v.value!==\"function\")refs[k]=v;}`,\n\t`(__hmr_cs[__hmr_mid][n]??=[])[i]=refs;`,\n\t`if(__hmr_prev_refs&&__hmr_prev_refs[n]&&__hmr_prev_refs[n][i]){`,\n\t`var old=__hmr_prev_refs[n][i];`,\n\t`for(var k in old){var nv=r[k],ov=old[k];`,\n\t`if(nv&&ov&&typeof nv===\"object\"&&\"value\"in nv&&!nv.effect&&typeof nv.value===typeof ov.value)nv.value=ov.value;}`,\n\t`}}return r;};}`\n].join('');\n\nconst injectVueComposableTracking = (\n\toutputPath: string,\n\tprojectRoot: string\n) => {\n\tlet content = readFileSync(outputPath, 'utf-8');\n\t// Find `var useXxx = (` patterns and the source file comment above them\n\tconst usePattern = /^var\\s+(use[A-Z]\\w*)\\s*=/gm;\n\tconst useNames: string[] = [];\n\tlet match;\n\twhile ((match = usePattern.exec(content)) !== null) {\n\t\tif (match[1]) useNames.push(match[1]);\n\t}\n\tif (useNames.length === 0) return;\n\n\tconst [firstUseName] = useNames;\n\tif (!firstUseName) return;\n\n\tconst runtimeId = resolveVueRuntimeId(\n\t\tcontent,\n\t\tfirstUseName,\n\t\toutputPath,\n\t\tprojectRoot\n\t);\n\tconst runtime = VUE_HMR_RUNTIME.replace('__HMR_MID__', runtimeId);\n\n\t// Insert runtime before the first use* function\n\tconst firstUseIdx = content.indexOf(`var ${firstUseName} =`);\n\tif (firstUseIdx === UNFOUND_INDEX) return;\n\tcontent = `${content.slice(0, firstUseIdx) + runtime}\\n${content.slice(firstUseIdx)}`;\n\n\tcontent = wrapUseFunctions(content, useNames);\n\twriteFileSync(outputPath, content);\n};\n\nconst buildDevUrlFileMap = (\n\turlReferencedFiles: string[],\n\tprojectRoot: string\n) => {\n\tconst urlFileMap = new Map<string, string>();\n\tfor (const srcPath of urlReferencedFiles) {\n\t\tconst rel = relative(projectRoot, srcPath).replace(/\\\\/g, '/');\n\t\tconst name = basename(srcPath);\n\t\tconst mtime = Math.round(statSync(srcPath).mtimeMs);\n\t\tconst url = `/@src/${rel}?v=${mtime}`;\n\t\turlFileMap.set(name, url);\n\t\t// Also map .js variant for when Bun rewrites .ts → .js\n\t\turlFileMap.set(name.replace(/\\.tsx?$/, '.js'), url);\n\t}\n\n\treturn urlFileMap;\n};\n\nconst buildProdUrlFileMap = (\n\turlReferencedFiles: string[],\n\tbuildPath: string,\n\tnonReactClientOutputs: BuildArtifact[]\n) => {\n\tconst urlFileMap = new Map<string, string>();\n\tfor (const srcPath of urlReferencedFiles) {\n\t\tconst srcBase = basename(srcPath).replace(/\\.[^.]+$/, '');\n\t\tconst output = nonReactClientOutputs.find((artifact) =>\n\t\t\tbasename(artifact.path).startsWith(`${srcBase}.`)\n\t\t);\n\t\tif (!output) continue;\n\t\turlFileMap.set(\n\t\t\tbasename(srcPath),\n\t\t\t`/${relative(buildPath, output.path).replace(/\\\\/g, '/')}`\n\t\t);\n\t}\n\n\treturn urlFileMap;\n};\n\nconst buildUrlFileMap = (\n\turlReferencedFiles: string[],\n\thmr: boolean,\n\tprojectRoot: string,\n\tbuildPath: string,\n\tnonReactClientOutputs: BuildArtifact[]\n) => {\n\tif (hmr) return buildDevUrlFileMap(urlReferencedFiles, projectRoot);\n\n\treturn buildProdUrlFileMap(\n\t\turlReferencedFiles,\n\t\tbuildPath,\n\t\tnonReactClientOutputs\n\t);\n};\n\nconst rewriteUrlReferences = (\n\toutputPaths: string[],\n\turlFileMap: Map<string, string>\n) => {\n\tconst urlPattern =\n\t\t/new\\s+URL\\(\\s*[\"'](\\.\\.?\\/[^\"']+)[\"']\\s*,\\s*import\\.meta\\.url\\s*\\)/g;\n\tfor (const outputPath of outputPaths) {\n\t\tlet content = readFileSync(outputPath, 'utf-8');\n\t\tlet changed = false;\n\t\tcontent = content.replace(urlPattern, (_match, relPath) => {\n\t\t\tconst targetName = basename(relPath);\n\t\t\tconst resolvedPath = urlFileMap.get(targetName);\n\t\t\tif (!resolvedPath) return _match;\n\t\t\tchanged = true;\n\n\t\t\treturn `new URL('${resolvedPath}', import.meta.url)`;\n\t\t});\n\t\tif (changed) writeFileSync(outputPath, content);\n\t}\n};\n\nconst vueFeatureFlags: Record<string, string> = {\n\t__VUE_OPTIONS_API__: 'true',\n\t__VUE_PROD_DEVTOOLS__: isDev ? 'true' : 'false',\n\t__VUE_PROD_HYDRATION_MISMATCH_DETAILS__: isDev ? 'true' : 'false'\n};\n\nconst bunBuildPassKeys: BunBuildPassKey[] = [\n\t'server',\n\t'reactClient',\n\t'nonReactClient',\n\t'islandClient',\n\t'globalCss',\n\t'vueCss'\n];\nconst bunBuildPassKeySet = new Set<string>(['default', ...bunBuildPassKeys]);\nconst reservedBunBuildConfigKeys = new Set<string>([\n\t'entrypoints',\n\t'outdir',\n\t'outfile',\n\t'root',\n\t'target',\n\t'format',\n\t'throw',\n\t'compile'\n]);\n\n/** Keys whose values are structurally required per pass and must not be\n * overridable by user `bunBuildConfig`. `splitting` on the React-client\n * pass is the canonical example: turning it off would inline React into\n * every page bundle and break the React vendor pipeline that other code\n * paths depend on. (Vendor passes — `buildAngularVendor`, `buildReactVendor`,\n * etc. — don't go through `mergeBunBuildConfig` at all, so they're inherently\n * locked.) */\nconst passLockedKeys: Partial<Record<BunBuildPassKey, Set<string>>> = {\n\treactClient: new Set(['splitting'])\n};\n\ntype BunBuildOptions = Parameters<typeof bunBuild>[0];\n\nconst isObject = (value: unknown): value is Record<string, unknown> =>\n\ttypeof value === 'object' && value !== null;\n\nconst isBunBuildPassConfig = (\n\tconfig: BuildConfig['bunBuild']\n): config is BunBuildPassConfig =>\n\tisObject(config) &&\n\tObject.keys(config).some((key) => bunBuildPassKeySet.has(key));\n\nconst sanitizeBunBuildOverride = (\n\toverride: BunBuildConfigOverride | undefined,\n\textraReservedKeys: Set<string> = new Set()\n): BunBuildConfigOverride => {\n\tif (!override) return {};\n\tconst sanitized: Record<string, unknown> = { ...override };\n\tfor (const key of reservedBunBuildConfigKeys) {\n\t\tdelete sanitized[key];\n\t}\n\tfor (const key of extraReservedKeys) {\n\t\tdelete sanitized[key];\n\t}\n\n\treturn sanitized as BunBuildConfigOverride;\n};\n\nexport const resolveBunBuildOverride = (\n\tconfig: BuildConfig['bunBuild'],\n\tpass: BunBuildPassKey\n): BunBuildConfigOverride => {\n\tconst locked = passLockedKeys[pass] ?? new Set<string>();\n\tif (!config) return {};\n\tif (!isBunBuildPassConfig(config)) {\n\t\treturn sanitizeBunBuildOverride(config, locked);\n\t}\n\n\treturn sanitizeBunBuildOverride(\n\t\t{\n\t\t\t...(config.default ?? {}),\n\t\t\t...(config[pass] ?? {})\n\t\t},\n\t\tlocked\n\t);\n};\n\nconst dedupe = <T>(values: T[]) => [...new Set(values)];\n\nexport const mergeBunBuildConfig = (\n\tbase: BunBuildOptions,\n\toverride: BunBuildConfigOverride\n): BunBuildOptions => {\n\tconst sanitized = sanitizeBunBuildOverride(override);\n\tconst merged = {\n\t\t...base,\n\t\t...sanitized\n\t} as BunBuildOptions;\n\n\treturn {\n\t\t...merged,\n\t\tdefine:\n\t\t\tbase.define || sanitized.define\n\t\t\t\t? {\n\t\t\t\t\t\t...(sanitized.define ?? {}),\n\t\t\t\t\t\t...(base.define ?? {})\n\t\t\t\t\t}\n\t\t\t\t: undefined,\n\t\texternal: dedupe([\n\t\t\t...(base.external ?? []),\n\t\t\t...(sanitized.external ?? [])\n\t\t]),\n\t\tplugins: [...(base.plugins ?? []), ...(sanitized.plugins ?? [])]\n\t} as BunBuildOptions;\n};\n\nexport const build = async ({\n\tbuildDirectory = 'build',\n\tassetsDirectory,\n\tpublicDirectory,\n\tislands,\n\treactDirectory,\n\thtmlDirectory,\n\thtmxDirectory,\n\tangularDirectory,\n\tsvelteDirectory,\n\tvueDirectory,\n\tstylesConfig,\n\tstylePreprocessors,\n\tpostcss,\n\ttailwind,\n\tbunBuild: bunBuildConfig,\n\toptions,\n\tincrementalFiles,\n\tmode\n}: BuildConfig) => {\n\tconst buildStart = performance.now();\n\tconst projectRoot = cwd();\n\tconst traceEnabled = isBuildTraceEnabled();\n\tconst traceEvents: BuildTraceEvent[] = [];\n\tlet traceFrameworkNames: string[] = [];\n\tconst traceGlobal = globalThis as typeof globalThis & {\n\t\t__absoluteBuildTracePhase?: BuildTracePhase;\n\t};\n\tconst previousTracePhase = traceGlobal.__absoluteBuildTracePhase;\n\tconst restoreTracePhase = () => {\n\t\tif (previousTracePhase) {\n\t\t\ttraceGlobal.__absoluteBuildTracePhase = previousTracePhase;\n\t\t} else {\n\t\t\tdelete traceGlobal.__absoluteBuildTracePhase;\n\t\t}\n\t};\n\tconst tracePhase: BuildTracePhase = async <T>(\n\t\tname: string,\n\t\tfn: () => Promise<T> | T,\n\t\tmetadata?: Record<string, unknown>\n\t): Promise<T> => {\n\t\tif (!traceEnabled) return await fn();\n\t\tconst phaseStart = performance.now();\n\t\ttry {\n\t\t\tconst result = await fn();\n\t\t\ttraceEvents.push({\n\t\t\t\tdurationMs: performance.now() - phaseStart,\n\t\t\t\tmetadata,\n\t\t\t\tname,\n\t\t\t\tok: true,\n\t\t\t\tstartMs: phaseStart - buildStart\n\t\t\t});\n\n\t\t\treturn result;\n\t\t} catch (error) {\n\t\t\ttraceEvents.push({\n\t\t\t\tdurationMs: performance.now() - phaseStart,\n\t\t\t\tmetadata: {\n\t\t\t\t\t...metadata,\n\t\t\t\t\terror:\n\t\t\t\t\t\terror instanceof Error ? error.message : String(error)\n\t\t\t\t},\n\t\t\t\tname,\n\t\t\t\tok: false,\n\t\t\t\tstartMs: phaseStart - buildStart\n\t\t\t});\n\t\t\tthrow error;\n\t\t}\n\t};\n\tif (traceEnabled) {\n\t\ttraceGlobal.__absoluteBuildTracePhase = tracePhase;\n\t}\n\tconst writeBuildTrace = (buildPath: string) => {\n\t\tif (!traceEnabled) {\n\t\t\trestoreTracePhase();\n\n\t\t\treturn;\n\t\t}\n\t\tconst traceDir = join(buildPath, '.absolute-trace');\n\t\tconst timestamp = new Date().toISOString().replace(/[:.]/g, '-');\n\t\tmkdirSync(traceDir, { recursive: true });\n\t\twriteFileSync(\n\t\t\tjoin(traceDir, `build-trace-${timestamp}.json`),\n\t\t\tJSON.stringify(\n\t\t\t\t{\n\t\t\t\t\tevents: traceEvents,\n\t\t\t\t\tframeworks: traceFrameworkNames,\n\t\t\t\t\tgeneratedAt: new Date().toISOString(),\n\t\t\t\t\tmode: mode ?? (isDev ? 'development' : 'production'),\n\t\t\t\t\ttotalDurationMs: performance.now() - buildStart,\n\t\t\t\t\tversion: 1\n\t\t\t\t},\n\t\t\t\tnull,\n\t\t\t\t2\n\t\t\t)\n\t\t);\n\t\trestoreTracePhase();\n\t};\n\n\tawait tracePhase('absolute/version', () => resolveAbsoluteVersion());\n\tconst isIncremental = incrementalFiles && incrementalFiles.length > 0;\n\tconst styleTransformConfig = createStyleTransformConfig(\n\t\tstylePreprocessors,\n\t\tpostcss\n\t);\n\tconst stylePreprocessorPlugin =\n\t\tcreateStylePreprocessorPlugin(styleTransformConfig);\n\n\t// Normalize incrementalFiles for consistent cross-platform path checking\n\tconst normalizedIncrementalFiles = incrementalFiles?.map(normalizePath);\n\n\tconst throwOnError = options?.throwOnError === true;\n\tconst hmr = options?.injectHMR === true;\n\tconst buildPath = validateSafePath(buildDirectory, projectRoot);\n\tconst assetsPath =\n\t\tassetsDirectory && validateSafePath(assetsDirectory, projectRoot);\n\tconst reactDir =\n\t\treactDirectory && validateSafePath(reactDirectory, projectRoot);\n\tconst htmlDir =\n\t\thtmlDirectory && validateSafePath(htmlDirectory, projectRoot);\n\tconst htmxDir =\n\t\thtmxDirectory && validateSafePath(htmxDirectory, projectRoot);\n\tconst svelteDir =\n\t\tsvelteDirectory && validateSafePath(svelteDirectory, projectRoot);\n\tconst vueDir = vueDirectory && validateSafePath(vueDirectory, projectRoot);\n\tconst angularDir =\n\t\tangularDirectory && validateSafePath(angularDirectory, projectRoot);\n\tconst islandBootstrapPath =\n\t\tislands?.bootstrap && validateSafePath(islands.bootstrap, projectRoot);\n\tconst islandRegistryPath =\n\t\tislands?.registry && validateSafePath(islands.registry, projectRoot);\n\tconst stylesPath =\n\t\ttypeof stylesConfig === 'string' ? stylesConfig : stylesConfig?.path;\n\tconst stylesIgnore =\n\t\ttypeof stylesConfig === 'object' ? stylesConfig.ignore : undefined;\n\tconst stylesDir = stylesPath && validateSafePath(stylesPath, projectRoot);\n\n\tconst reactIndexesPath = reactDir && join(reactDir, 'generated', 'indexes');\n\tconst reactPagesPath = reactDir && join(reactDir, 'pages');\n\tconst htmlPagesPath = htmlDir && join(htmlDir, 'pages');\n\tconst htmlScriptsPath = htmlDir && join(htmlDir, 'scripts');\n\tconst sveltePagesPath = svelteDir && join(svelteDir, 'pages');\n\tconst vuePagesPath = vueDir && join(vueDir, 'pages');\n\tconst htmxPagesPath = htmxDir && join(htmxDir, 'pages');\n\tconst angularPagesPath = angularDir && join(angularDir, 'pages');\n\n\tconst frontends = [\n\t\treactDir,\n\t\thtmlDir,\n\t\thtmxDir,\n\t\tsvelteDir,\n\t\tvueDir,\n\t\tangularDir\n\t].filter(Boolean);\n\tconst isSingle = frontends.length === 1;\n\n\tconst frameworkNames = [\n\t\treactDir && 'react',\n\t\thtmlDir && 'html',\n\t\thtmxDir && 'htmx',\n\t\tsvelteDir && 'svelte',\n\t\tvueDir && 'vue',\n\t\tangularDir && 'angular'\n\t].filter((name): name is string => Boolean(name));\n\ttraceFrameworkNames = frameworkNames;\n\tsendTelemetryEvent('build:start', {\n\t\tframework: frameworkNames[0],\n\t\tframeworks: frameworkNames,\n\t\tmode: mode ?? (isDev ? 'development' : 'production'),\n\t\ttailwind: Boolean(tailwind)\n\t});\n\n\t// Compute client root from source framework dirs. Generated intermediate files\n\t// are placed under {frameworkDir}/generated/ so Bun.build's root stripping\n\t// produces correct output paths (react/generated/indexes/, svelte/generated/client/, etc.).\n\tconst sourceClientRoots: string[] = [\n\t\treactDir,\n\t\tsvelteDir,\n\t\thtmlDir,\n\t\tvueDir,\n\t\tangularDir,\n\t\tislandBootstrapPath && dirname(islandBootstrapPath)\n\t].filter((dir): dir is string => Boolean(dir));\n\tconst clientRoot = isSingle\n\t\t? (sourceClientRoots[0] ?? projectRoot)\n\t\t: commonAncestor(sourceClientRoots, projectRoot);\n\n\tconst serverDirMap: { dir: string; subdir: string }[] = [];\n\tif (svelteDir)\n\t\tserverDirMap.push({\n\t\t\tdir: svelteDir,\n\t\t\tsubdir: join('generated', 'server')\n\t\t});\n\tif (vueDir)\n\t\tserverDirMap.push({\n\t\t\tdir: vueDir,\n\t\t\tsubdir: join('generated', 'server')\n\t\t});\n\tif (angularDir) serverDirMap.push({ dir: angularDir, subdir: 'generated' });\n\n\tlet serverOutDir: string | undefined;\n\tlet serverRoot: string | undefined;\n\n\tif (serverDirMap.length === 1) {\n\t\tconst [firstEntry] = serverDirMap;\n\t\tif (!firstEntry)\n\t\t\tthrow new Error('Expected at least one server directory entry');\n\t\tserverRoot = join(firstEntry.dir, firstEntry.subdir);\n\t\tserverOutDir = join(buildPath, basename(firstEntry.dir));\n\t} else if (serverDirMap.length > 1) {\n\t\t// Use framework dirs (not generated subdirs) as input to commonAncestor\n\t\t// so the root directory actually exists on disk.\n\t\tserverRoot = commonAncestor(\n\t\t\tserverDirMap.map((entry) => entry.dir),\n\t\t\tprojectRoot\n\t\t);\n\t\tserverOutDir = buildPath;\n\t}\n\n\tconst publicPath =\n\t\tpublicDirectory && validateSafePath(publicDirectory, projectRoot);\n\tawait tracePhase('build-dir/create', () =>\n\t\tmkdirSync(buildPath, { recursive: true })\n\t);\n\n\tif (publicPath)\n\t\tawait tracePhase('public/copy', () =>\n\t\t\tcpSync(publicPath, buildPath, { force: true, recursive: true })\n\t\t);\n\n\t// Helper to find matching entry points for incremental files\n\t// The dependency graph already includes all dependent files in incrementalFiles\n\tconst filterToIncrementalEntries = (\n\t\tentryPoints: string[],\n\t\tmapToSource: (entry: string) => string | null\n\t) => {\n\t\tif (!isIncremental || !incrementalFiles) return entryPoints;\n\n\t\tconst normalizedIncremental = new Set(\n\t\t\tincrementalFiles.map((f) => resolve(f))\n\t\t);\n\t\tconst matchingEntries: string[] = [];\n\n\t\tfor (const entry of entryPoints) {\n\t\t\tconst sourceFile = mapToSource(entry);\n\t\t\tif (!sourceFile) continue;\n\t\t\tif (!normalizedIncremental.has(resolve(sourceFile))) continue;\n\t\t\tmatchingEntries.push(entry);\n\t\t}\n\n\t\treturn matchingEntries;\n\t};\n\n\t// For incremental React builds, only generate indexes for changed files\n\t// NOTE: We always regenerate index files to ensure they have the latest hydration error handling logic\n\tif (reactIndexesPath && reactPagesPath) {\n\t\t// Always regenerate React index files to ensure latest error handling is included\n\t\t// This is safe because index files are small and generation is fast\n\t\tawait tracePhase('react/index-generation', () =>\n\t\t\tgenerateReactIndexFiles(reactPagesPath, reactIndexesPath, hmr)\n\t\t);\n\t}\n\n\t// Copy assets on full builds or if assets changed\n\tif (\n\t\tassetsPath &&\n\t\t(!isIncremental ||\n\t\t\tnormalizedIncrementalFiles?.some((f) => f.includes('/assets/')))\n\t) {\n\t\tawait tracePhase('assets/copy', () =>\n\t\t\tcpSync(assetsPath, join(buildPath, 'assets'), {\n\t\t\t\tforce: true,\n\t\t\t\trecursive: true\n\t\t\t})\n\t\t);\n\t}\n\n\t// Tailwind + entry point scanning run in parallel (they're independent).\n\t// Tailwind also has to rerun whenever any file it scans for utility-class\n\t// candidates changes — that includes JS/TS/JSX/TSX/Vue/Svelte/HTML and the\n\t// other source extensions referenced via `@source`, not only stylesheets.\n\t// Without this, classes added to markup never show up in the emitted CSS.\n\tconst tailwindPromise =\n\t\ttailwind &&\n\t\t(!isIncremental ||\n\t\t\tnormalizedIncrementalFiles?.some(isTailwindCandidate))\n\t\t\t? tracePhase('tailwind/build', () =>\n\t\t\t\t\tcompileTailwindConfig(\n\t\t\t\t\t\ttailwind,\n\t\t\t\t\t\tbuildPath,\n\t\t\t\t\t\tstyleTransformConfig\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t: undefined;\n\n\tconst emptyConventionResult: {\n\t\tconventions: undefined;\n\t\tpageFiles: string[];\n\t} = {\n\t\tconventions: undefined,\n\t\tpageFiles: []\n\t};\n\tconst [\n\t\t,\n\t\tallReactEntries,\n\t\tallHtmlEntries,\n\t\treactConventionResult,\n\t\tsvelteConventionResult,\n\t\tvueConventionResult,\n\t\tangularConventionResult,\n\t\tallGlobalCssEntries\n\t] = await Promise.all([\n\t\ttailwindPromise,\n\t\treactIndexesPath\n\t\t\t? tracePhase('scan/react-indexes', () =>\n\t\t\t\t\tscanEntryPoints(reactIndexesPath, '*.tsx')\n\t\t\t\t)\n\t\t\t: [],\n\t\thtmlScriptsPath\n\t\t\t? tracePhase('scan/html-scripts', () =>\n\t\t\t\t\tscanEntryPoints(htmlScriptsPath, '*.{js,ts}')\n\t\t\t\t)\n\t\t\t: [],\n\t\treactPagesPath\n\t\t\t? tracePhase('scan/react-conventions', () =>\n\t\t\t\t\tscanConventions(reactPagesPath, '*.tsx')\n\t\t\t\t)\n\t\t\t: emptyConventionResult,\n\t\tsveltePagesPath\n\t\t\t? tracePhase('scan/svelte-conventions', () =>\n\t\t\t\t\tscanConventions(sveltePagesPath, '*.svelte')\n\t\t\t\t)\n\t\t\t: emptyConventionResult,\n\t\tvuePagesPath\n\t\t\t? tracePhase('scan/vue-conventions', () =>\n\t\t\t\t\tscanConventions(vuePagesPath, '*.vue')\n\t\t\t\t)\n\t\t\t: emptyConventionResult,\n\t\tangularPagesPath\n\t\t\t? tracePhase('scan/angular-conventions', () =>\n\t\t\t\t\tscanConventions(angularPagesPath, '*.ts')\n\t\t\t\t)\n\t\t\t: emptyConventionResult,\n\t\tstylesDir\n\t\t\t? tracePhase('scan/css', () =>\n\t\t\t\t\tscanCssEntryPoints(stylesDir, stylesIgnore)\n\t\t\t\t)\n\t\t\t: []\n\t]);\n\n\t// Convention files (colocated with pages) for error/loading/not-found\n\tconst allSvelteEntries = svelteConventionResult.pageFiles;\n\tconst allVueEntries = vueConventionResult.pageFiles;\n\tconst allAngularEntries = angularConventionResult.pageFiles;\n\n\tconst conventionsMap: ConventionsMap = {};\n\tif (reactConventionResult.conventions)\n\t\tconventionsMap.react = reactConventionResult.conventions;\n\tif (svelteConventionResult.conventions)\n\t\tconventionsMap.svelte = svelteConventionResult.conventions;\n\tif (vueConventionResult.conventions)\n\t\tconventionsMap.vue = vueConventionResult.conventions;\n\tif (angularConventionResult.conventions)\n\t\tconventionsMap.angular = angularConventionResult.conventions;\n\n\t// Warn if multiple frameworks define not-found convention files\n\tconst notFoundFrameworks = (\n\t\t['react', 'svelte', 'vue', 'angular'] as const\n\t).filter((framework) => conventionsMap[framework]?.defaults?.notFound);\n\tif (notFoundFrameworks.length > 1) {\n\t\tlogWarn(\n\t\t\t`Multiple frameworks define not-found convention files: ${notFoundFrameworks.join(', ')}. ` +\n\t\t\t\t`Only one will be used (priority: ${notFoundFrameworks[0]}). ` +\n\t\t\t\t`Remove not-found files from other frameworks to avoid ambiguity.`\n\t\t);\n\t}\n\t// When HTML/HTMX pages change, we must include their CSS and scripts in the build\n\t// so the manifest has those entries for updateAssetPaths. Otherwise incremental\n\t// builds drop them and updateAssetPaths fails with \"no manifest entry\".\n\tconst shouldIncludeHtmlAssets =\n\t\t!isIncremental ||\n\t\tnormalizedIncrementalFiles?.some(\n\t\t\t(f) =>\n\t\t\t\tf.includes('/html/') && (f.endsWith('.html') || isStylePath(f))\n\t\t);\n\t// Filter entries for incremental builds\n\t// For React: map index entries back to their source pages\n\tconst reactEntries =\n\t\tisIncremental && reactIndexesPath && reactPagesPath\n\t\t\t? filterToIncrementalEntries(allReactEntries, (entry) => {\n\t\t\t\t\t// Map index entry (indexes/ReactExample.tsx) to source page (pages/ReactExample.tsx)\n\t\t\t\t\tif (entry.startsWith(resolve(reactIndexesPath))) {\n\t\t\t\t\t\tconst pageName = basename(entry, '.tsx');\n\n\t\t\t\t\t\treturn join(reactPagesPath, `${pageName}.tsx`);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn null;\n\t\t\t\t})\n\t\t\t: allReactEntries;\n\n\tconst htmlEntries =\n\t\tisIncremental && htmlScriptsPath && !shouldIncludeHtmlAssets\n\t\t\t? filterToIncrementalEntries(allHtmlEntries, (entry) => entry)\n\t\t\t: allHtmlEntries;\n\n\t// For Svelte/Vue/Angular: entries are the page files themselves\n\tconst svelteEntries = isIncremental\n\t\t? filterToIncrementalEntries(allSvelteEntries, (entry) => entry)\n\t\t: allSvelteEntries;\n\n\tconst vueEntries = isIncremental\n\t\t? filterToIncrementalEntries(allVueEntries, (entry) => entry)\n\t\t: allVueEntries;\n\n\tconst angularEntries = isIncremental\n\t\t? filterToIncrementalEntries(allAngularEntries, (entry) => entry)\n\t\t: allAngularEntries;\n\n\t// CSS entries - entries are the style files themselves\n\tconst globalCssEntries = isIncremental\n\t\t? filterToIncrementalEntries(allGlobalCssEntries, (entry) => entry)\n\t\t: allGlobalCssEntries;\n\n\t// Start HMR client build early — it has no dependency on compile/bunBuild\n\t// results and will resolve during the compile phase for free.\n\tconst hmrClientBundlePromise =\n\t\thmr && (htmlDir || htmxDir) ? buildHMRClient() : undefined;\n\tconst allFrameworkDirs = [\n\t\treactDir,\n\t\tsvelteDir,\n\t\tvueDir,\n\t\tangularDir,\n\t\thtmlDir,\n\t\thtmxDir\n\t].filter((dir): dir is string => Boolean(dir));\n\tconst urlReferencedFilesPromise = tracePhase('scan/worker-references', () =>\n\t\tscanWorkerReferences(allFrameworkDirs)\n\t);\n\n\t// Angular HMR Optimization — Skip Svelte/Vue compilation when their entries are\n\t// empty during incremental builds (avoids importing/initializing unused compilers)\n\tconst shouldCompileSvelte = svelteDir && svelteEntries.length > 0;\n\tconst shouldCompileVue = vueDir && vueEntries.length > 0;\n\tconst shouldCompileAngular = angularDir && angularEntries.length > 0;\n\n\tconst emptyStringArray: string[] = [];\n\tconst islandBuildInfo = islandRegistryPath\n\t\t? await tracePhase('islands/registry', () =>\n\t\t\t\tloadIslandRegistryBuildInfo(islandRegistryPath)\n\t\t\t)\n\t\t: null;\n\tconst islandFrameworkSources = islandBuildInfo\n\t\t? collectIslandFrameworkSources(islandBuildInfo)\n\t\t: {};\n\tconst islandSvelteSources =\n\t\tislandFrameworkSources.svelte ?? emptyStringArray;\n\tconst islandVueSources = islandFrameworkSources.vue ?? emptyStringArray;\n\tconst islandAngularSources =\n\t\tislandFrameworkSources.angular ?? emptyStringArray;\n\tconst shouldCompileIslandSvelte =\n\t\tsvelteDir && islandSvelteSources.length > 0;\n\tconst shouldCompileIslandVue = vueDir && islandVueSources.length > 0;\n\tconst shouldCompileIslandAngular =\n\t\tangularDir && islandAngularSources.length > 0;\n\n\tconst [\n\t\t{ svelteServerPaths, svelteIndexPaths, svelteClientPaths },\n\t\t{ vueServerPaths, vueIndexPaths, vueClientPaths, vueCssPaths },\n\t\t{ clientPaths: angularClientPaths, serverPaths: angularServerPaths },\n\t\t{ svelteClientPaths: islandSvelteClientPaths },\n\t\t{ vueClientPaths: islandVueClientPaths },\n\t\t{ clientPaths: islandAngularClientPaths }\n\t] = await Promise.all([\n\t\tshouldCompileSvelte\n\t\t\t? tracePhase('compile/svelte', () =>\n\t\t\t\t\timport('../build/compileSvelte').then((mod) =>\n\t\t\t\t\t\tmod.compileSvelte(\n\t\t\t\t\t\t\tsvelteEntries,\n\t\t\t\t\t\t\tsvelteDir,\n\t\t\t\t\t\t\tnew Map(),\n\t\t\t\t\t\t\thmr,\n\t\t\t\t\t\t\tstyleTransformConfig\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t: {\n\t\t\t\t\tsvelteClientPaths: [...emptyStringArray],\n\t\t\t\t\tsvelteIndexPaths: [...emptyStringArray],\n\t\t\t\t\tsvelteServerPaths: [...emptyStringArray]\n\t\t\t\t},\n\t\tshouldCompileVue\n\t\t\t? tracePhase('compile/vue', () =>\n\t\t\t\t\timport('../build/compileVue').then((mod) =>\n\t\t\t\t\t\tmod.compileVue(\n\t\t\t\t\t\t\tvueEntries,\n\t\t\t\t\t\t\tvueDir,\n\t\t\t\t\t\t\thmr,\n\t\t\t\t\t\t\tstyleTransformConfig\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t: {\n\t\t\t\t\tvueClientPaths: [...emptyStringArray],\n\t\t\t\t\tvueCssPaths: [...emptyStringArray],\n\t\t\t\t\tvueIndexPaths: [...emptyStringArray],\n\t\t\t\t\tvueServerPaths: [...emptyStringArray]\n\t\t\t\t},\n\t\tshouldCompileAngular\n\t\t\t? tracePhase('compile/angular', () =>\n\t\t\t\t\timport('../build/compileAngular').then((mod) =>\n\t\t\t\t\t\tmod.compileAngular(\n\t\t\t\t\t\t\tangularEntries,\n\t\t\t\t\t\t\tangularDir,\n\t\t\t\t\t\t\thmr,\n\t\t\t\t\t\t\tstyleTransformConfig\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t: {\n\t\t\t\t\tclientPaths: [...emptyStringArray],\n\t\t\t\t\tserverPaths: [...emptyStringArray]\n\t\t\t\t},\n\t\tshouldCompileIslandSvelte\n\t\t\t? tracePhase('compile/island-svelte', () =>\n\t\t\t\t\timport('../build/compileSvelte').then((mod) =>\n\t\t\t\t\t\tmod.compileSvelte(\n\t\t\t\t\t\t\tislandSvelteSources,\n\t\t\t\t\t\t\tsvelteDir,\n\t\t\t\t\t\t\tnew Map(),\n\t\t\t\t\t\t\thmr,\n\t\t\t\t\t\t\tstyleTransformConfig\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t: {\n\t\t\t\t\tsvelteClientPaths: [...emptyStringArray]\n\t\t\t\t},\n\t\tshouldCompileIslandVue\n\t\t\t? tracePhase('compile/island-vue', () =>\n\t\t\t\t\timport('../build/compileVue').then((mod) =>\n\t\t\t\t\t\tmod.compileVue(\n\t\t\t\t\t\t\tislandVueSources,\n\t\t\t\t\t\t\tvueDir,\n\t\t\t\t\t\t\thmr,\n\t\t\t\t\t\t\tstyleTransformConfig\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t: {\n\t\t\t\t\tvueClientPaths: [...emptyStringArray]\n\t\t\t\t},\n\t\tshouldCompileIslandAngular\n\t\t\t? tracePhase('compile/island-angular', () =>\n\t\t\t\t\timport('../build/compileAngular').then((mod) =>\n\t\t\t\t\t\tmod.compileAngular(\n\t\t\t\t\t\t\tislandAngularSources,\n\t\t\t\t\t\t\tangularDir,\n\t\t\t\t\t\t\thmr,\n\t\t\t\t\t\t\tstyleTransformConfig\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t: {\n\t\t\t\t\tclientPaths: [...emptyStringArray]\n\t\t\t\t}\n\t]);\n\n\tconst islandSvelteClientPathMap = new Map<string, string>();\n\tfor (let idx = 0; idx < islandSvelteSources.length; idx++) {\n\t\tconst sourcePath = islandSvelteSources[idx];\n\t\tconst clientPath = islandSvelteClientPaths[idx];\n\t\tif (!sourcePath || !clientPath) continue;\n\t\tislandSvelteClientPathMap.set(resolve(sourcePath), clientPath);\n\t}\n\n\tconst islandVueClientPathMap = new Map<string, string>();\n\tfor (let idx = 0; idx < islandVueSources.length; idx++) {\n\t\tconst sourcePath = islandVueSources[idx];\n\t\tconst clientPath = islandVueClientPaths[idx];\n\t\tif (!sourcePath || !clientPath) continue;\n\t\tislandVueClientPathMap.set(resolve(sourcePath), clientPath);\n\t}\n\n\tconst islandAngularClientPathMap = new Map<string, string>();\n\tfor (let idx = 0; idx < islandAngularSources.length; idx++) {\n\t\tconst sourcePath = islandAngularSources[idx];\n\t\tconst clientPath = islandAngularClientPaths[idx];\n\t\tif (!sourcePath || !clientPath) continue;\n\t\tislandAngularClientPathMap.set(resolve(sourcePath), clientPath);\n\t}\n\n\t// Compile convention files (error/loading/not-found) into build/conventions/\n\t// so runtime SSR can import them from the build output instead of source.\n\tconst reactConventionSources = collectConventionSourceFiles(\n\t\tconventionsMap.react\n\t);\n\tconst svelteConventionSources = collectConventionSourceFiles(\n\t\tconventionsMap.svelte\n\t);\n\tconst vueConventionSources = collectConventionSourceFiles(\n\t\tconventionsMap.vue\n\t);\n\tconst angularConventionSources = collectConventionSourceFiles(\n\t\tconventionsMap.angular\n\t);\n\tlet conventionOutputPaths: string[] = [];\n\n\tif (\n\t\treactConventionSources.length > 0 ||\n\t\tsvelteConventionSources.length > 0 ||\n\t\tvueConventionSources.length > 0 ||\n\t\tangularConventionSources.length > 0\n\t) {\n\t\tconst compileReactConventions = async () => {\n\t\t\tif (reactConventionSources.length === 0) return emptyStringArray;\n\n\t\t\tconst destDir = join(buildPath, 'conventions', 'react');\n\t\t\trmSync(destDir, { force: true, recursive: true });\n\t\t\tmkdirSync(destDir, { recursive: true });\n\n\t\t\tconst destPaths: string[] = [];\n\t\t\tfor (let idx = 0; idx < reactConventionSources.length; idx++) {\n\t\t\t\tconst source = reactConventionSources[idx];\n\t\t\t\tif (!source) continue;\n\n\t\t\t\tconst result = await bunBuild({\n\t\t\t\t\tentrypoints: [source],\n\t\t\t\t\tformat: 'esm',\n\t\t\t\t\tjsx: { development: false },\n\t\t\t\t\tminify: !isDev,\n\t\t\t\t\tnaming: `${idx}-[name].[ext]`,\n\t\t\t\t\toutdir: destDir,\n\t\t\t\t\tplugins: [stylePreprocessorPlugin],\n\t\t\t\t\troot: dirname(source),\n\t\t\t\t\ttarget: 'bun',\n\t\t\t\t\tthrow: false,\n\t\t\t\t\ttsconfig: './tsconfig.json'\n\t\t\t\t});\n\t\t\t\tif (!result.success) {\n\t\t\t\t\toutputLogs(result.logs);\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Failed to compile React convention: ${source}`\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst output = result.outputs.find((artifact) =>\n\t\t\t\t\tartifact.path.endsWith('.js')\n\t\t\t\t);\n\t\t\t\tif (!output)\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`React convention did not emit JavaScript: ${source}`\n\t\t\t\t\t);\n\n\t\t\t\tdestPaths.push(output.path);\n\t\t\t}\n\n\t\t\treturn destPaths;\n\t\t};\n\n\t\tconst [\n\t\t\treactConvPaths,\n\t\t\tsvelteConvResult,\n\t\t\tvueConvResult,\n\t\t\tangularConvResult\n\t\t] = await Promise.all([\n\t\t\ttracePhase('compile/convention-react', compileReactConventions),\n\t\t\tsvelteConventionSources.length > 0 && svelteDir\n\t\t\t\t? tracePhase('compile/convention-svelte', () =>\n\t\t\t\t\t\timport('../build/compileSvelte').then((mod) =>\n\t\t\t\t\t\t\tmod.compileSvelte(\n\t\t\t\t\t\t\t\tsvelteConventionSources,\n\t\t\t\t\t\t\t\tsvelteDir,\n\t\t\t\t\t\t\t\tnew Map(),\n\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t\tstyleTransformConfig\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t: { svelteServerPaths: emptyStringArray },\n\t\t\tvueConventionSources.length > 0 && vueDir\n\t\t\t\t? tracePhase('compile/convention-vue', () =>\n\t\t\t\t\t\timport('../build/compileVue').then((mod) =>\n\t\t\t\t\t\t\tmod.compileVue(\n\t\t\t\t\t\t\t\tvueConventionSources,\n\t\t\t\t\t\t\t\tvueDir,\n\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t\tstyleTransformConfig\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t: { vueServerPaths: emptyStringArray },\n\t\t\tangularConventionSources.length > 0 && angularDir\n\t\t\t\t? tracePhase('compile/convention-angular', () =>\n\t\t\t\t\t\timport('../build/compileAngular').then((mod) =>\n\t\t\t\t\t\t\tmod.compileAngular(\n\t\t\t\t\t\t\t\tangularConventionSources,\n\t\t\t\t\t\t\t\tangularDir,\n\t\t\t\t\t\t\t\thmr,\n\t\t\t\t\t\t\t\tstyleTransformConfig\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t: { serverPaths: emptyStringArray }\n\t\t]);\n\n\t\t// Bundle compiled convention files to build/conventions/{framework}/\n\t\t// so compiled executables can import them from the materialized runtime\n\t\t// directory without relying on the app's node_modules tree.\n\t\tconst bundleConventionFiles = async (\n\t\t\tframework: string,\n\t\t\tcompiledPaths: string[]\n\t\t) => {\n\t\t\tconst destDir = join(buildPath, 'conventions', framework);\n\t\t\trmSync(destDir, { force: true, recursive: true });\n\t\t\tmkdirSync(destDir, { recursive: true });\n\t\t\tconst destPaths: string[] = [];\n\t\t\tfor (let idx = 0; idx < compiledPaths.length; idx++) {\n\t\t\t\tconst compiledPath = compiledPaths[idx];\n\t\t\t\tif (!compiledPath) continue;\n\t\t\t\tconst name = basename(compiledPath).replace(/\\.[^.]+$/, '');\n\t\t\t\tconst result = await bunBuild({\n\t\t\t\t\tentrypoints: [compiledPath],\n\t\t\t\t\tformat: 'esm',\n\t\t\t\t\tminify: !isDev,\n\t\t\t\t\tnaming: `${idx}-${name}.[ext]`,\n\t\t\t\t\toutdir: destDir,\n\t\t\t\t\tsplitting: false,\n\t\t\t\t\ttarget: 'bun',\n\t\t\t\t\tthrow: false\n\t\t\t\t});\n\t\t\t\tif (!result.success) {\n\t\t\t\t\toutputLogs(result.logs);\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Failed to bundle ${framework} convention: ${compiledPath}`\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tconst output = result.outputs.find((artifact) =>\n\t\t\t\t\tartifact.path.endsWith('.js')\n\t\t\t\t);\n\t\t\t\tif (!output)\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`${framework} convention did not emit JavaScript: ${compiledPath}`\n\t\t\t\t\t);\n\n\t\t\t\tdestPaths.push(output.path);\n\t\t\t}\n\n\t\t\treturn destPaths;\n\t\t};\n\n\t\tconst [svelteDests, vueDests, angularDests] = await Promise.all([\n\t\t\ttracePhase('bundle/convention-svelte', () =>\n\t\t\t\tbundleConventionFiles(\n\t\t\t\t\t'svelte',\n\t\t\t\t\tsvelteConvResult.svelteServerPaths\n\t\t\t\t)\n\t\t\t),\n\t\t\ttracePhase('bundle/convention-vue', () =>\n\t\t\t\tbundleConventionFiles('vue', vueConvResult.vueServerPaths)\n\t\t\t),\n\t\t\ttracePhase('bundle/convention-angular', () =>\n\t\t\t\tbundleConventionFiles('angular', angularConvResult.serverPaths)\n\t\t\t)\n\t\t]);\n\t\tconventionOutputPaths = [\n\t\t\t...reactConvPaths,\n\t\t\t...svelteDests,\n\t\t\t...vueDests,\n\t\t\t...angularDests\n\t\t];\n\n\t\tupdateConventionCompiledPaths(\n\t\t\tconventionsMap.react,\n\t\t\treactConventionSources,\n\t\t\treactConvPaths\n\t\t);\n\t\tupdateConventionCompiledPaths(\n\t\t\tconventionsMap.svelte,\n\t\t\tsvelteConventionSources,\n\t\t\tsvelteDests\n\t\t);\n\t\tupdateConventionCompiledPaths(\n\t\t\tconventionsMap.vue,\n\t\t\tvueConventionSources,\n\t\t\tvueDests\n\t\t);\n\t\tupdateConventionCompiledPaths(\n\t\t\tconventionsMap.angular,\n\t\t\tangularConventionSources,\n\t\t\tangularDests\n\t\t);\n\t}\n\n\tconst serverEntryPoints = [\n\t\t...svelteServerPaths,\n\t\t...vueServerPaths,\n\t\t...angularServerPaths\n\t];\n\tconst reactClientEntryPoints = [...reactEntries];\n\t// Scan for files referenced by new URL('./path', import.meta.url) — these\n\t// are regular files (e.g. workers) that Bun.build won't follow automatically.\n\tconst urlReferencedFiles = await urlReferencedFilesPromise;\n\n\tconst nonReactClientEntryPoints = [\n\t\t...svelteIndexPaths,\n\t\t...svelteClientPaths,\n\t\t...htmlEntries,\n\t\t...vueIndexPaths,\n\t\t...vueClientPaths,\n\t\t...angularClientPaths,\n\t\t...(islandBootstrapPath ? [islandBootstrapPath] : []),\n\t\t...urlReferencedFiles\n\t];\n\tconst islandEntryResult = islandBuildInfo\n\t\t? await tracePhase('islands/client-entry-generation', () =>\n\t\t\t\tgenerateIslandEntryPoints({\n\t\t\t\t\tbuildInfo: islandBuildInfo,\n\t\t\t\t\tbuildPath,\n\t\t\t\t\tclientPathMaps: {\n\t\t\t\t\t\tangular: islandAngularClientPathMap,\n\t\t\t\t\t\tsvelte: islandSvelteClientPathMap,\n\t\t\t\t\t\tvue: islandVueClientPathMap\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t)\n\t\t: {\n\t\t\t\tentries: [],\n\t\t\t\tgeneratedRoot: join(buildPath, '_island_entries')\n\t\t\t};\n\tconst islandClientEntryPoints = islandEntryResult.entries.map(\n\t\t(entry) => entry.entryPath\n\t);\n\n\tif (\n\t\tserverEntryPoints.length === 0 &&\n\t\treactClientEntryPoints.length === 0 &&\n\t\tnonReactClientEntryPoints.length === 0 &&\n\t\tislandClientEntryPoints.length === 0 &&\n\t\thtmxDir === undefined &&\n\t\thtmlDir === undefined\n\t) {\n\t\tlogWarn('No entry points found, manifest will be empty');\n\t\tsendTelemetryEvent('build:empty', {\n\t\t\tconfiguredDirs: {\n\t\t\t\tangular: Boolean(angularDir),\n\t\t\t\thtml: Boolean(htmlDir),\n\t\t\t\thtmx: Boolean(htmxDir),\n\t\t\t\treact: Boolean(reactDir),\n\t\t\t\tsvelte: Boolean(svelteDir),\n\t\t\t\tvue: Boolean(vueDir)\n\t\t\t},\n\t\t\tfilteredEntries: {\n\t\t\t\tangular: angularEntries.length,\n\t\t\t\thtml: htmlEntries.length,\n\t\t\t\treact: reactEntries.length,\n\t\t\t\tsvelte: svelteEntries.length,\n\t\t\t\tvue: vueEntries.length\n\t\t\t},\n\t\t\tframeworks: frameworkNames,\n\t\t\tincremental: Boolean(isIncremental),\n\t\t\tmode: mode ?? (isDev ? 'development' : 'production'),\n\t\t\tscannedEntries: {\n\t\t\t\tangular: allAngularEntries.length,\n\t\t\t\thtml: allHtmlEntries.length,\n\t\t\t\treact: allReactEntries.length,\n\t\t\t\tsvelte: allSvelteEntries.length,\n\t\t\t\tvue: allVueEntries.length\n\t\t\t}\n\t\t});\n\t\twriteBuildTrace(buildPath);\n\n\t\treturn {};\n\t}\n\n\t// In dev, add the _refresh entry to force React into a shared chunk\n\t// so HMR can re-import component entries without duplicating React.\n\t// Only add when React entries exist (i.e. React files actually changed\n\t// or this is a full build) to avoid producing stale React outputs\n\t// during non-React incremental rebuilds.\n\tif (hmr && reactIndexesPath && reactClientEntryPoints.length > 0) {\n\t\tconst refreshEntry = join(reactIndexesPath, '_refresh.tsx');\n\t\tif (!reactClientEntryPoints.includes(refreshEntry))\n\t\t\treactClientEntryPoints.push(refreshEntry);\n\t}\n\n\t// In dev mode, externalize React so imports get rewritten to stable\n\t// vendor file paths. If module-level state was lost (Bun --hot\n\t// re-evaluated devVendorPaths.ts), recompute and restore it.\n\tlet vendorPaths = getDevVendorPaths();\n\tif (!vendorPaths && hmr && reactDir) {\n\t\tconst { computeVendorPaths } = await import(\n\t\t\t'../build/buildReactVendor'\n\t\t);\n\t\tvendorPaths = computeVendorPaths();\n\t\tsetDevVendorPaths(vendorPaths);\n\t}\n\tlet angularVendorPaths = getAngularVendorPaths();\n\tif (!angularVendorPaths && hmr && angularDir) {\n\t\tconst { computeAngularVendorPaths } = await import(\n\t\t\t'../build/buildAngularVendor'\n\t\t);\n\t\tangularVendorPaths = computeAngularVendorPaths(\n\t\t\tglobalThis.__angularVendorSpecifiers\n\t\t);\n\t\tsetAngularVendorPaths(angularVendorPaths);\n\t}\n\tlet angularServerVendorPaths = getAngularServerVendorPaths();\n\tif (!angularServerVendorPaths && hmr && angularDir) {\n\t\tconst { computeAngularServerVendorPaths } = await import(\n\t\t\t'../build/buildAngularVendor'\n\t\t);\n\t\tangularServerVendorPaths = computeAngularServerVendorPaths(\n\t\t\tbuildPath,\n\t\t\tglobalThis.__angularVendorSpecifiers ?? []\n\t\t);\n\t\tsetAngularServerVendorPaths(angularServerVendorPaths);\n\t}\n\t// Production: dev pre-builds vendor in devBuild.ts; prod has no\n\t// equivalent step, so do it here. Build the linked Angular vendor\n\t// (browser + server targets) ahead of the main bundle pass so\n\t// `rewriteImports` has a populated path map. linkerJitMode=false\n\t// because user pages are AOT-compiled in prod and have\n\t// `ɵcmp.dependencies` baked in — keeping NgModule.declarations\n\t// would just be dead bytes.\n\tif (!hmr && angularDir) {\n\t\tconst angularSourceDirs = [\n\t\t\tangularDir,\n\t\t\treactDir,\n\t\t\tsvelteDir,\n\t\t\tvueDir,\n\t\t\thtmlDir,\n\t\t\thtmxDir\n\t\t].filter((dir): dir is string => Boolean(dir));\n\t\tconst {\n\t\t\tbuildAngularVendor,\n\t\t\tbuildAngularServerVendor,\n\t\t\tcomputeAngularVendorPathsAsync,\n\t\t\tcomputeAngularServerVendorPathsAsync\n\t\t} = await import('../build/buildAngularVendor');\n\n\t\t[angularVendorPaths, angularServerVendorPaths] = await Promise.all([\n\t\t\tcomputeAngularVendorPathsAsync(\n\t\t\t\tangularSourceDirs,\n\t\t\t\t/* linkerJitMode */ false\n\t\t\t),\n\t\t\tcomputeAngularServerVendorPathsAsync(\n\t\t\t\tbuildPath,\n\t\t\t\tangularSourceDirs,\n\t\t\t\t/* linkerJitMode */ false\n\t\t\t)\n\t\t]);\n\t\tsetAngularVendorPaths(angularVendorPaths);\n\t\tsetAngularServerVendorPaths(angularServerVendorPaths);\n\n\t\tawait Promise.all([\n\t\t\tbuildAngularVendor(\n\t\t\t\tbuildPath,\n\t\t\t\tangularSourceDirs,\n\t\t\t\t/* linkerJitMode */ false,\n\t\t\t\t[]\n\t\t\t),\n\t\t\tbuildAngularServerVendor(\n\t\t\t\tbuildPath,\n\t\t\t\tangularSourceDirs,\n\t\t\t\t/* linkerJitMode */ false\n\t\t\t)\n\t\t]);\n\n\t\t// `getAngularDeps` reads ABSOLUTE_BUILD_DIR to find the server\n\t\t// vendor at runtime. The CLI's `start` script sets this for the\n\t\t// production server, but if `build()` is invoked directly without\n\t\t// going through `start`, we still want the runtime to find vendor.\n\t\tprocess.env.ABSOLUTE_BUILD_DIR ??= buildPath;\n\t}\n\tlet vueVendorPaths = getVueVendorPaths();\n\tif (!vueVendorPaths && hmr && vueDir) {\n\t\tconst { computeVueVendorPaths } = await import(\n\t\t\t'../build/buildVueVendor'\n\t\t);\n\t\tvueVendorPaths = computeVueVendorPaths();\n\t\tsetVueVendorPaths(vueVendorPaths);\n\t}\n\tlet svelteVendorPaths = getSvelteVendorPaths();\n\tif (!svelteVendorPaths && hmr && svelteDir) {\n\t\tconst { computeSvelteVendorPaths } = await import(\n\t\t\t'../build/buildSvelteVendor'\n\t\t);\n\t\tsvelteVendorPaths = computeSvelteVendorPaths();\n\t\tsetSvelteVendorPaths(svelteVendorPaths);\n\t}\n\tconst depVendorPaths =\n\t\thmr && globalThis.__depVendorPaths ? globalThis.__depVendorPaths : {};\n\tconst reactExternalPaths: Record<string, string> = {\n\t\t...(vendorPaths ?? {}),\n\t\t...depVendorPaths\n\t};\n\tconst nonReactExternalPaths: Record<string, string> = {\n\t\t...reactExternalPaths,\n\t\t...(angularVendorPaths ?? {}),\n\t\t...(vueVendorPaths ?? {}),\n\t\t...(svelteVendorPaths ?? {})\n\t};\n\tconst serverBuildExternals = [\n\t\t'react',\n\t\t'react/*',\n\t\t'react-dom',\n\t\t'react-dom/*',\n\t\t'svelte',\n\t\t'svelte/*',\n\t\t'vue',\n\t\t'vue/*',\n\t\t// Externalize @angular/* in the server bundle — partial declarations\n\t\t// are linked once at vendor build time, and `rewriteImports` then\n\t\t// rewrites every bare `@angular/*` specifier in this bundle's outputs\n\t\t// to the absolute vendor file path, so the runtime ends up with one\n\t\t// linked module instance per package.\n\t\t'@angular/*',\n\t\t'typescript'\n\t];\n\n\tconst htmlScriptPlugin = hmr\n\t\t? createHTMLScriptHMRPlugin(htmlDir, htmxDir)\n\t\t: undefined;\n\tconst reactBuildConfig: Parameters<typeof bunBuild>[0] | undefined =\n\t\treactClientEntryPoints.length > 0\n\t\t\t? mergeBunBuildConfig(\n\t\t\t\t\t{\n\t\t\t\t\t\tentrypoints: reactClientEntryPoints,\n\t\t\t\t\t\t...(Object.keys(reactExternalPaths).length > 0\n\t\t\t\t\t\t\t? { external: Object.keys(reactExternalPaths) }\n\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\tformat: 'esm',\n\t\t\t\t\t\tminify: !isDev,\n\t\t\t\t\t\tnaming: `[dir]/[name].[hash].[ext]`,\n\t\t\t\t\t\toutdir: buildPath,\n\t\t\t\t\t\t...(hmr\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tjsx: { development: true },\n\t\t\t\t\t\t\t\t\treactFastRefresh: true\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\tplugins: [stylePreprocessorPlugin],\n\t\t\t\t\t\troot: clientRoot,\n\t\t\t\t\t\tsplitting: true,\n\t\t\t\t\t\ttarget: 'browser',\n\t\t\t\t\t\tthrow: false\n\t\t\t\t\t},\n\t\t\t\t\tresolveBunBuildOverride(bunBuildConfig, 'reactClient')\n\t\t\t\t)\n\t\t\t: undefined;\n\n\t// Remove old hashed indexes before bundling so stale files\n\t// from previous builds don't accumulate in dist/.\n\tif (reactDir && reactClientEntryPoints.length > 0) {\n\t\trmSync(join(buildPath, 'react', 'generated', 'indexes'), {\n\t\t\tforce: true,\n\t\t\trecursive: true\n\t\t});\n\t}\n\tif (angularDir && angularClientPaths.length > 0) {\n\t\trmSync(join(buildPath, 'angular', 'indexes'), {\n\t\t\tforce: true,\n\t\t\trecursive: true\n\t\t});\n\t}\n\tif (islandClientEntryPoints.length > 0) {\n\t\trmSync(join(buildPath, 'islands'), {\n\t\t\tforce: true,\n\t\t\trecursive: true\n\t\t});\n\t}\n\n\t// Run all 4 Bun.build passes in parallel — they write to different\n\t// directories and have independent entry points.\n\tconst [\n\t\tserverResult,\n\t\treactClientResult,\n\t\tnonReactClientResult,\n\t\tislandClientResult,\n\t\tglobalCssResult,\n\t\tvueCssResult\n\t] = await Promise.all([\n\t\tserverEntryPoints.length > 0\n\t\t\t? tracePhase('bun/server', () =>\n\t\t\t\t\tbunBuild(\n\t\t\t\t\t\tmergeBunBuildConfig(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tentrypoints: serverEntryPoints,\n\t\t\t\t\t\t\t\texternal: serverBuildExternals,\n\t\t\t\t\t\t\t\tformat: 'esm',\n\t\t\t\t\t\t\t\tnaming: `[dir]/[name].[hash].[ext]`,\n\t\t\t\t\t\t\t\toutdir: serverOutDir,\n\t\t\t\t\t\t\t\tplugins: [stylePreprocessorPlugin],\n\t\t\t\t\t\t\t\troot: serverRoot,\n\t\t\t\t\t\t\t\ttarget: 'bun',\n\t\t\t\t\t\t\t\tthrow: false,\n\t\t\t\t\t\t\t\ttsconfig: './tsconfig.json'\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tresolveBunBuildOverride(bunBuildConfig, 'server')\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t: undefined,\n\t\treactBuildConfig\n\t\t\t? tracePhase('bun/react-client', () => bunBuild(reactBuildConfig))\n\t\t\t: undefined,\n\t\tnonReactClientEntryPoints.length > 0\n\t\t\t? tracePhase('bun/non-react-client', () =>\n\t\t\t\t\tbunBuild(\n\t\t\t\t\t\tmergeBunBuildConfig(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tdefine: vueDirectory\n\t\t\t\t\t\t\t\t\t? vueFeatureFlags\n\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\tentrypoints: nonReactClientEntryPoints,\n\t\t\t\t\t\t\t\texternal: Object.keys(nonReactExternalPaths),\n\t\t\t\t\t\t\t\tformat: 'esm',\n\t\t\t\t\t\t\t\tminify: !isDev,\n\t\t\t\t\t\t\t\tnaming: `[dir]/[name].[hash].[ext]`,\n\t\t\t\t\t\t\t\toutdir: buildPath,\n\t\t\t\t\t\t\t\tplugins: [\n\t\t\t\t\t\t\t\t\tstylePreprocessorPlugin,\n\t\t\t\t\t\t\t\t\t...(angularDir\n\t\t\t\t\t\t\t\t\t\t? [createAngularLinkerPlugin(hmr)]\n\t\t\t\t\t\t\t\t\t\t: []),\n\t\t\t\t\t\t\t\t\t...(htmlScriptPlugin\n\t\t\t\t\t\t\t\t\t\t? [htmlScriptPlugin]\n\t\t\t\t\t\t\t\t\t\t: [])\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\troot: clientRoot,\n\t\t\t\t\t\t\t\tsplitting: !isDev,\n\t\t\t\t\t\t\t\ttarget: 'browser',\n\t\t\t\t\t\t\t\tthrow: false,\n\t\t\t\t\t\t\t\ttsconfig: './tsconfig.json'\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tresolveBunBuildOverride(\n\t\t\t\t\t\t\t\tbunBuildConfig,\n\t\t\t\t\t\t\t\t'nonReactClient'\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t: undefined,\n\t\tislandClientEntryPoints.length > 0\n\t\t\t? tracePhase('bun/island-client', () =>\n\t\t\t\t\tbunBuild(\n\t\t\t\t\t\tmergeBunBuildConfig(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tdefine: vueDirectory\n\t\t\t\t\t\t\t\t\t? vueFeatureFlags\n\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\tentrypoints: islandClientEntryPoints,\n\t\t\t\t\t\t\t\texternal: Object.keys(nonReactExternalPaths),\n\t\t\t\t\t\t\t\tformat: 'esm',\n\t\t\t\t\t\t\t\tminify: !isDev,\n\t\t\t\t\t\t\t\tnaming: `[dir]/[name].[hash].[ext]`,\n\t\t\t\t\t\t\t\toutdir: buildPath,\n\t\t\t\t\t\t\t\tplugins: [\n\t\t\t\t\t\t\t\t\tstylePreprocessorPlugin,\n\t\t\t\t\t\t\t\t\t...(angularDir\n\t\t\t\t\t\t\t\t\t\t? [createAngularLinkerPlugin(hmr)]\n\t\t\t\t\t\t\t\t\t\t: [])\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\troot: islandEntryResult.generatedRoot,\n\t\t\t\t\t\t\t\tsplitting: !isDev,\n\t\t\t\t\t\t\t\ttarget: 'browser',\n\t\t\t\t\t\t\t\tthrow: false,\n\t\t\t\t\t\t\t\ttsconfig: './tsconfig.json'\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tresolveBunBuildOverride(\n\t\t\t\t\t\t\t\tbunBuildConfig,\n\t\t\t\t\t\t\t\t'islandClient'\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t: undefined,\n\t\tglobalCssEntries.length > 0\n\t\t\t? tracePhase('bun/global-css', () =>\n\t\t\t\t\tbunBuild(\n\t\t\t\t\t\tmergeBunBuildConfig(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tentrypoints: globalCssEntries,\n\t\t\t\t\t\t\t\tnaming: `[dir]/[name].[hash].[ext]`,\n\t\t\t\t\t\t\t\toutdir: stylesDir\n\t\t\t\t\t\t\t\t\t? join(buildPath, basename(stylesDir))\n\t\t\t\t\t\t\t\t\t: buildPath,\n\t\t\t\t\t\t\t\tplugins: [stylePreprocessorPlugin],\n\t\t\t\t\t\t\t\troot: stylesDir || clientRoot,\n\t\t\t\t\t\t\t\ttarget: 'browser',\n\t\t\t\t\t\t\t\tthrow: false\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tresolveBunBuildOverride(bunBuildConfig, 'globalCss')\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t: undefined,\n\t\tvueCssPaths.length > 0\n\t\t\t? tracePhase('bun/vue-css', () =>\n\t\t\t\t\tbunBuild(\n\t\t\t\t\t\tmergeBunBuildConfig(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tentrypoints: vueCssPaths,\n\t\t\t\t\t\t\t\tnaming: `[name].[hash].[ext]`,\n\t\t\t\t\t\t\t\toutdir: join(\n\t\t\t\t\t\t\t\t\tbuildPath,\n\t\t\t\t\t\t\t\t\tassetsPath\n\t\t\t\t\t\t\t\t\t\t? basename(assetsPath)\n\t\t\t\t\t\t\t\t\t\t: 'assets',\n\t\t\t\t\t\t\t\t\t'css'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\ttarget: 'browser',\n\t\t\t\t\t\t\t\tthrow: false\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tresolveBunBuildOverride(bunBuildConfig, 'vueCss')\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t: undefined\n\t]);\n\n\tconst serverLogs = serverResult?.logs ?? [];\n\tconst serverOutputs = serverResult?.outputs ?? [];\n\n\tif (serverResult && !serverResult.success && serverLogs.length > 0) {\n\t\textractBuildError(\n\t\t\tserverLogs,\n\t\t\t'server',\n\t\t\t'Server',\n\t\t\tframeworkNames,\n\t\t\tisIncremental,\n\t\t\tthrowOnError\n\t\t);\n\t}\n\n\tconst reactClientLogs = reactClientResult?.logs ?? [];\n\tconst reactClientOutputs = reactClientResult?.outputs ?? [];\n\n\tif (\n\t\treactClientResult &&\n\t\t!reactClientResult.success &&\n\t\treactClientLogs.length > 0\n\t) {\n\t\textractBuildError(\n\t\t\treactClientLogs,\n\t\t\t'react-client',\n\t\t\t'React client',\n\t\t\tframeworkNames,\n\t\t\tisIncremental,\n\t\t\tthrowOnError\n\t\t);\n\t}\n\n\tconst reactClientOutputPaths = reactClientOutputs.map(\n\t\t(artifact) => artifact.path\n\t);\n\n\tif (vendorPaths && reactClientOutputPaths.length > 0) {\n\t\tawait tracePhase('postprocess/react-imports', () =>\n\t\t\trewriteReactImports(reactClientOutputPaths, vendorPaths)\n\t\t);\n\t}\n\n\tif (hmr && reactClientOutputPaths.length > 0) {\n\t\tawait tracePhase('postprocess/react-refresh-globals', () =>\n\t\t\tpatchRefreshGlobals(reactClientOutputPaths)\n\t\t);\n\t}\n\n\tconst nonReactClientLogs = nonReactClientResult?.logs ?? [];\n\tconst nonReactClientOutputs = nonReactClientResult?.outputs ?? [];\n\tconst nonReactClientOutputPaths = nonReactClientOutputs.map(\n\t\t(artifact) => artifact.path\n\t);\n\tconst islandClientLogs = islandClientResult?.logs ?? [];\n\tconst islandClientOutputs = islandClientResult?.outputs ?? [];\n\tconst islandClientOutputPaths = islandClientOutputs.map(\n\t\t(artifact) => artifact.path\n\t);\n\n\tif (vendorPaths && nonReactClientOutputPaths.length > 0) {\n\t\tawait tracePhase('postprocess/non-react-react-imports', () =>\n\t\t\trewriteReactImports(nonReactClientOutputPaths, vendorPaths)\n\t\t);\n\t}\n\tif (hmr && nonReactClientOutputPaths.length > 0) {\n\t\tawait tracePhase('postprocess/non-react-refresh-globals', () =>\n\t\t\tpatchRefreshGlobals(nonReactClientOutputPaths)\n\t\t);\n\t}\n\n\tif (vendorPaths && islandClientOutputPaths.length > 0) {\n\t\tawait tracePhase('postprocess/island-react-imports', () =>\n\t\t\trewriteReactImports(islandClientOutputPaths, vendorPaths)\n\t\t);\n\t}\n\tif (hmr && islandClientOutputPaths.length > 0) {\n\t\tawait tracePhase('postprocess/island-refresh-globals', () =>\n\t\t\tpatchRefreshGlobals(islandClientOutputPaths)\n\t\t);\n\t}\n\n\tif (\n\t\tnonReactClientResult &&\n\t\t!nonReactClientResult.success &&\n\t\tnonReactClientLogs.length > 0\n\t) {\n\t\textractBuildError(\n\t\t\tnonReactClientLogs,\n\t\t\t'non-react-client',\n\t\t\t'Non-React client',\n\t\t\tframeworkNames,\n\t\t\tisIncremental,\n\t\t\tthrowOnError\n\t\t);\n\t}\n\tif (\n\t\tislandClientResult &&\n\t\t!islandClientResult.success &&\n\t\tislandClientLogs.length > 0\n\t) {\n\t\textractBuildError(\n\t\t\tislandClientLogs,\n\t\t\t'island-client',\n\t\t\t'Island client',\n\t\t\tframeworkNames,\n\t\t\tisIncremental,\n\t\t\tthrowOnError\n\t\t);\n\t}\n\n\t// Post-process: rewrite bare Angular/Vue specifiers to vendor paths.\n\tconst allNonReactVendorPaths: Record<string, string> = {\n\t\t...depVendorPaths,\n\t\t...(angularVendorPaths ?? {}),\n\t\t...(vueVendorPaths ?? {}),\n\t\t...(svelteVendorPaths ?? {})\n\t};\n\tconst allIslandVendorPaths: Record<string, string> = {\n\t\t...reactExternalPaths,\n\t\t...allNonReactVendorPaths\n\t};\n\tif (\n\t\tnonReactClientOutputs.length > 0 &&\n\t\tObject.keys(allNonReactVendorPaths).length > 0\n\t) {\n\t\tconst { rewriteImports } = await import('../build/rewriteImports');\n\t\tawait tracePhase('postprocess/non-react-vendor-imports', () =>\n\t\t\trewriteImports(\n\t\t\t\tnonReactClientOutputs.map((artifact) => artifact.path),\n\t\t\t\tallNonReactVendorPaths\n\t\t\t)\n\t\t);\n\t}\n\tif (\n\t\tislandClientOutputs.length > 0 &&\n\t\tObject.keys(allIslandVendorPaths).length > 0\n\t) {\n\t\tconst { rewriteImports } = await import('../build/rewriteImports');\n\t\tawait tracePhase('postprocess/island-vendor-imports', () =>\n\t\t\trewriteImports(\n\t\t\t\tislandClientOutputs.map((artifact) => artifact.path),\n\t\t\t\tallIslandVendorPaths\n\t\t\t)\n\t\t);\n\t}\n\n\t// Server-side: rewrite bare @angular/* specifiers in SSR outputs to\n\t// absolute paths under build/angular/vendor/server/. This ensures every\n\t// page bundle (and the absolutejs runtime, via getAngularDeps) imports\n\t// the same fully-linked Angular files — single instance, no NG0201,\n\t// no @angular/compiler at runtime in AOT mode.\n\tif (\n\t\tserverOutputs.length > 0 &&\n\t\tangularServerVendorPaths &&\n\t\tObject.keys(angularServerVendorPaths).length > 0\n\t) {\n\t\tconst { rewriteImports } = await import('../build/rewriteImports');\n\t\t// Each server output sits at a different depth in the build tree\n\t\t// (e.g. `angular/generated/pages/X.js` vs `vue/generated/server/.../X.js`).\n\t\t// Compute the relative path from each artifact to the vendor file so\n\t\t// the rewritten import survives the build dir being relocated at\n\t\t// runtime — required by the `compile` standalone executable, which\n\t\t// extracts all assets into a fresh runtimeDir on first launch.\n\t\tconst jsArtifacts = serverOutputs.filter((artifact) =>\n\t\t\tartifact.path.endsWith('.js')\n\t\t);\n\t\tawait tracePhase('postprocess/server-angular-vendor-imports', () =>\n\t\t\tPromise.all(\n\t\t\t\tjsArtifacts.map(async (artifact) => {\n\t\t\t\t\tconst fileDir = dirname(artifact.path);\n\t\t\t\t\tconst relativePaths: Record<string, string> = {};\n\t\t\t\t\tfor (const [specifier, absolute] of Object.entries(\n\t\t\t\t\t\tangularServerVendorPaths!\n\t\t\t\t\t)) {\n\t\t\t\t\t\tconst rel = relative(fileDir, absolute);\n\t\t\t\t\t\trelativePaths[specifier] = rel.startsWith('.')\n\t\t\t\t\t\t\t? rel\n\t\t\t\t\t\t\t: `./${rel}`;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn rewriteImports([artifact.path], relativePaths);\n\t\t\t\t})\n\t\t\t)\n\t\t);\n\t}\n\n\tconst cssLogs: (BuildMessage | ResolveMessage)[] = [\n\t\t...(globalCssResult?.logs ?? []),\n\t\t...(vueCssResult?.logs ?? [])\n\t];\n\tconst cssOutputs: BuildArtifact[] = [\n\t\t...(globalCssResult?.outputs ?? []),\n\t\t...(vueCssResult?.outputs ?? [])\n\t];\n\n\tif (\n\t\tglobalCssResult &&\n\t\t!globalCssResult.success &&\n\t\tglobalCssResult.logs.length > 0\n\t) {\n\t\textractBuildError(\n\t\t\tglobalCssResult.logs,\n\t\t\t'global-css',\n\t\t\t'Global CSS',\n\t\t\tframeworkNames,\n\t\t\tisIncremental,\n\t\t\tthrowOnError\n\t\t);\n\t}\n\n\tif (vueCssResult && !vueCssResult.success && vueCssResult.logs.length > 0) {\n\t\textractBuildError(\n\t\t\tvueCssResult.logs,\n\t\t\t'vue-css',\n\t\t\t'Vue CSS',\n\t\t\tframeworkNames,\n\t\t\tisIncremental,\n\t\t\tthrowOnError\n\t\t);\n\t}\n\n\t// In dev mode, rewrite new URL('./path', import.meta.url) in all bundled\n\t// client outputs to /@src/ URLs so workers resolve through the module server.\n\t// In prod mode, rewrite to the hashed output path from the build.\n\tconst allClientOutputPaths = [\n\t\t...reactClientOutputPaths,\n\t\t...nonReactClientOutputs.map((artifact) => artifact.path)\n\t];\n\tif (urlReferencedFiles.length > 0) {\n\t\tconst urlFileMap = buildUrlFileMap(\n\t\t\turlReferencedFiles,\n\t\t\thmr,\n\t\t\tprojectRoot,\n\t\t\tbuildPath,\n\t\t\tnonReactClientOutputs\n\t\t);\n\t\tawait tracePhase('postprocess/url-references', () =>\n\t\t\trewriteUrlReferences(allClientOutputPaths, urlFileMap)\n\t\t);\n\t}\n\n\t// In dev mode, inject composable state tracking into Vue bundled output\n\t// so the first HMR cycle can preserve ref values.\n\tconst vueOutputPaths = nonReactClientOutputs\n\t\t.map((artifact) => artifact.path)\n\t\t.filter((path) => path.includes('/vue/'));\n\tif (hmr && vueDirectory) {\n\t\tawait tracePhase('postprocess/vue-hmr', () =>\n\t\t\tvueOutputPaths.forEach((outputPath) =>\n\t\t\t\tinjectVueComposableTracking(outputPath, projectRoot)\n\t\t\t)\n\t\t);\n\t}\n\n\tconst allLogs = [\n\t\t...serverLogs,\n\t\t...reactClientLogs,\n\t\t...nonReactClientLogs,\n\t\t...islandClientLogs,\n\t\t...cssLogs\n\t];\n\toutputLogs(allLogs);\n\n\tconst manifest: Record<string, string> = {\n\t\t...(options?.baseManifest || {}),\n\t\t...generateManifest(\n\t\t\t[\n\t\t\t\t...serverOutputs,\n\t\t\t\t...reactClientOutputs,\n\t\t\t\t...nonReactClientOutputs,\n\t\t\t\t...islandClientOutputs,\n\t\t\t\t...cssOutputs\n\t\t\t],\n\t\t\tbuildPath\n\t\t)\n\t};\n\n\t// Server pages (Svelte, Vue, Angular) need absolute file paths for SSR\n\t// import(), not web-relative paths. Overwrite with absolute paths.\n\t// Skip co-emitted CSS — it already has its own `${Page}BundledCSS` key\n\t// from generateManifest and would otherwise clobber the JS entry.\n\tfor (const artifact of serverOutputs) {\n\t\tif (extname(artifact.path) !== '.js') continue;\n\t\tconst fileWithHash = basename(artifact.path);\n\t\tconst [baseName] = fileWithHash.split(`.${artifact.hash}.`);\n\t\tif (!baseName) continue;\n\t\tmanifest[toPascal(baseName)] = artifact.path;\n\t}\n\n\tconst shouldCopyHtmx =\n\t\t!isIncremental ||\n\t\tnormalizedIncrementalFiles?.some(\n\t\t\t(f) => f.includes('/htmx/') && f.endsWith('.html')\n\t\t);\n\n\t// Update asset paths if CSS changed (even if HTML files didn't change)\n\tconst shouldUpdateHtmlAssetPaths =\n\t\t!isIncremental ||\n\t\tnormalizedIncrementalFiles?.some(\n\t\t\t(f) =>\n\t\t\t\tf.includes('/html/') && (f.endsWith('.html') || isStylePath(f))\n\t\t);\n\tconst shouldUpdateHtmxAssetPaths =\n\t\t!isIncremental ||\n\t\tnormalizedIncrementalFiles?.some(\n\t\t\t(f) =>\n\t\t\t\tf.includes('/htmx/') && (f.endsWith('.html') || isStylePath(f))\n\t\t);\n\n\t// Await the HMR client bundle that was started before the compile phase\n\tconst hmrClientBundle = hmrClientBundlePromise\n\t\t? await hmrClientBundlePromise\n\t\t: null;\n\n\tconst injectHMRIntoHTMLFile = (filePath: string, framework: string) => {\n\t\tif (!hmrClientBundle) return;\n\t\tlet html = readFileSync(filePath, 'utf-8');\n\t\tif (html.includes('data-hmr-client')) return;\n\t\tconst tag =\n\t\t\t`<script>window.__HMR_FRAMEWORK__=\"${framework}\";</script>` +\n\t\t\t`<script data-hmr-client>${hmrClientBundle}</script>`;\n\t\tconst bodyClose = /<\\/body\\s*>/i.exec(html);\n\t\thtml = bodyClose\n\t\t\t? html.slice(0, bodyClose.index) + tag + html.slice(bodyClose.index)\n\t\t\t: html + tag;\n\t\twriteFileSync(filePath, html);\n\t};\n\n\t// HTML + HTMX post-processing run in parallel (independent directories)\n\tconst processHtmlPages = async () => {\n\t\tif (!(htmlDir && htmlPagesPath)) return;\n\t\tconst outputHtmlPages = isSingle\n\t\t\t? join(buildPath, 'pages')\n\t\t\t: join(buildPath, basename(htmlDir), 'pages');\n\n\t\tmkdirSync(outputHtmlPages, { recursive: true });\n\t\tcpSync(htmlPagesPath, outputHtmlPages, {\n\t\t\tforce: true,\n\t\t\trecursive: true\n\t\t});\n\n\t\t// Update asset paths if HTML files changed OR CSS changed\n\t\tif (shouldUpdateHtmlAssetPaths) {\n\t\t\tawait updateAssetPaths(manifest, outputHtmlPages);\n\t\t\tawait optimizeHtmlImages(outputHtmlPages);\n\t\t}\n\n\t\t// Add HTML pages to manifest (absolute paths for Bun.file())\n\t\tconst htmlPageFiles = await scanEntryPoints(outputHtmlPages, '*.html');\n\t\tawait transformStaticPagesWithIslands(\n\t\t\tislandRegistryPath,\n\t\t\thtmlPageFiles\n\t\t);\n\t\tfor (const htmlFile of htmlPageFiles) {\n\t\t\tif (hmr) injectHMRIntoHTMLFile(htmlFile, 'html');\n\t\t\tconst fileName = basename(htmlFile, '.html');\n\t\t\tmanifest[fileName] = htmlFile;\n\t\t}\n\t};\n\n\tconst processHtmxPages = async () => {\n\t\tif (!(htmxDir && htmxPagesPath)) return;\n\t\tconst outputHtmxPages = isSingle\n\t\t\t? join(buildPath, 'pages')\n\t\t\t: join(buildPath, basename(htmxDir), 'pages');\n\n\t\tmkdirSync(outputHtmxPages, { recursive: true });\n\t\tcpSync(htmxPagesPath, outputHtmxPages, {\n\t\t\tforce: true,\n\t\t\trecursive: true\n\t\t});\n\n\t\tif (shouldCopyHtmx) {\n\t\t\tconst htmxDestDir = isSingle\n\t\t\t\t? buildPath\n\t\t\t\t: join(buildPath, basename(htmxDir));\n\t\t\tcopyHtmxVendor(htmxDir, htmxDestDir);\n\t\t}\n\n\t\t// Update asset paths if HTMX files changed OR CSS changed\n\t\tif (shouldUpdateHtmxAssetPaths) {\n\t\t\tawait updateAssetPaths(manifest, outputHtmxPages);\n\t\t\tawait optimizeHtmlImages(outputHtmxPages);\n\t\t}\n\n\t\t// Add HTMX pages to manifest (absolute paths for Bun.file())\n\t\tconst htmxPageFiles = await scanEntryPoints(outputHtmxPages, '*.html');\n\t\tawait transformStaticPagesWithIslands(\n\t\t\tislandRegistryPath,\n\t\t\thtmxPageFiles\n\t\t);\n\t\tfor (const htmxFile of htmxPageFiles) {\n\t\t\tif (hmr) injectHMRIntoHTMLFile(htmxFile, 'htmx');\n\t\t\tconst fileName = basename(htmxFile, '.html');\n\t\t\tmanifest[fileName] = htmxFile;\n\t\t}\n\t};\n\n\tawait Promise.all([\n\t\ttracePhase('postprocess/html-pages', processHtmlPages),\n\t\ttracePhase('postprocess/htmx-pages', processHtmxPages)\n\t]);\n\n\tif (!isIncremental) {\n\t\tawait tracePhase('cleanup/stale-outputs', () =>\n\t\t\tcleanStaleOutputs(buildPath, [\n\t\t\t\t...serverOutputs.map((a) => a.path),\n\t\t\t\t...reactClientOutputs.map((a) => a.path),\n\t\t\t\t...nonReactClientOutputs.map((a) => a.path),\n\t\t\t\t...islandClientOutputs.map((a) => a.path),\n\t\t\t\t...cssOutputs.map((a) => a.path),\n\t\t\t\t...conventionOutputPaths\n\t\t\t])\n\t\t);\n\t}\n\n\t// In dev mode, copy source indexes to build dir before cleanup.\n\t// Rewrite relative page imports to absolute /@src/ paths since\n\t// the indexes are moved from src/frontend/indexes/ to build/_src_indexes/\n\tif (hmr) {\n\t\tawait tracePhase('dev/copy-indexes', () =>\n\t\t\tcopyDevIndexes({\n\t\t\t\tbuildPath,\n\t\t\t\treactIndexesPath,\n\t\t\t\treactPagesPath,\n\t\t\t\tsvelteDir,\n\t\t\t\tsvelteEntries,\n\t\t\t\tsveltePagesPath,\n\t\t\t\tvueDir,\n\t\t\t\tvueEntries,\n\t\t\t\tvuePagesPath\n\t\t\t})\n\t\t);\n\t}\n\n\tawait tracePhase('cleanup/generated', () =>\n\t\tcleanup({\n\t\t\tangularDir,\n\t\t\treactDir,\n\t\t\tsvelteDir,\n\t\t\tvueDir\n\t\t})\n\t);\n\n\tif (!isIncremental) {\n\t\tglobalThis.__hmrBuildDuration = performance.now() - buildStart;\n\t}\n\n\tsendTelemetryEvent('build:complete', {\n\t\tdurationMs: Math.round(performance.now() - buildStart),\n\t\tframeworks: frameworkNames,\n\t\tmode: mode ?? (isDev ? 'development' : 'production')\n\t});\n\n\t// Skip manifest.json disk write during incremental (HMR) builds —\n\t// the in-memory manifest is authoritative and writing to disk on\n\t// every keystroke adds unnecessary I/O latency.\n\tif (isIncremental) {\n\t\twriteBuildTrace(buildPath);\n\n\t\treturn { conventions: conventionsMap, manifest };\n\t}\n\n\twriteFileSync(\n\t\tjoin(buildPath, 'manifest.json'),\n\t\tJSON.stringify(manifest, null, '\\t')\n\t);\n\n\t// Write convention files map (error/loading/not-found) if any exist\n\tif (Object.keys(conventionsMap).length > 0) {\n\t\twriteFileSync(\n\t\t\tjoin(buildPath, 'conventions.json'),\n\t\t\tJSON.stringify(conventionsMap, null, '\\t')\n\t\t);\n\t}\n\n\twriteBuildTrace(buildPath);\n\n\t// Production builds don't need the persistent Tailwind compiler in\n\t// memory after the final write — release it. Dev / HMR builds keep\n\t// the compiler alive so subsequent rebuilds reuse its candidate cache.\n\tif (tailwind && mode === 'production') {\n\t\tdisposeTailwindCompiler(tailwind.input);\n\t}\n\n\treturn { conventions: conventionsMap, manifest };\n};\n",
|
|
77
|
+
"import { existsSync, readFileSync } from 'node:fs';\nimport { Glob } from 'bun';\nimport { resolve } from 'node:path';\n\n/* Dependency graph for tracking file relationships\n This handles the \"what depends on what\" problem for incremental HMR */\nexport type DependencyGraph = {\n\t// filePath -> Set of files that depend on this file\n\tdependents: Map<string, Set<string>>;\n\t// filePath -> Set of files this file depends on\n\tdependencies: Map<string, Set<string>>;\n};\n\nexport const emptyDependencyGraph: DependencyGraph = {\n\tdependencies: new Map(),\n\tdependents: new Map()\n};\n\n/* Shared transpiler instance for scanImports(). Bun.Transpiler\n is a native Zig parser — much faster than regex for extracting\n imports from TS/TSX/JS/JSX files. */\nconst tsTranspiler = new Bun.Transpiler({ loader: 'tsx' });\nconst jsTranspiler = new Bun.Transpiler({ loader: 'js' });\n\nconst loaderForFile = (filePath: string) => {\n\tconst lower = filePath.toLowerCase();\n\tif (\n\t\tlower.endsWith('.ts') ||\n\t\tlower.endsWith('.tsx') ||\n\t\tlower.endsWith('.jsx')\n\t)\n\t\treturn 'tsx';\n\tif (lower.endsWith('.js') || lower.endsWith('.mjs')) return 'js';\n\tif (lower.endsWith('.html') || lower.endsWith('.htm')) return 'html';\n\n\treturn null;\n};\n\n/* Resolve relative import paths to absolute paths using existsSync\n instead of readFileSync — avoids reading file content just to check\n existence. */\nconst resolveImportPath = (importPath: string, fromFile: string) => {\n\t// Skip external packages\n\tif (!importPath.startsWith('.') && !importPath.startsWith('/')) {\n\t\treturn null;\n\t}\n\n\tconst fromDir = resolve(fromFile, '..');\n\tconst normalized = resolve(fromDir, importPath);\n\n\t// Try common extensions\n\tconst extensions = [\n\t\t'.ts',\n\t\t'.tsx',\n\t\t'.js',\n\t\t'.jsx',\n\t\t'.vue',\n\t\t'.svelte',\n\t\t'.css',\n\t\t'.html'\n\t];\n\n\tfor (const ext of extensions) {\n\t\tconst withExt = normalized + ext;\n\t\tif (existsSync(withExt)) return withExt;\n\t}\n\n\t// Try without extension (already has one, or is extensionless)\n\tif (existsSync(normalized)) return normalized;\n\n\treturn null;\n};\n\nconst clearExistingDependents = (\n\tgraph: DependencyGraph,\n\tnormalizedPath: string\n) => {\n\tconst existingDeps = graph.dependencies.get(normalizedPath);\n\tif (!existingDeps) return;\n\n\tfor (const dep of existingDeps) {\n\t\tconst dependents = graph.dependents.get(dep);\n\t\tif (!dependents) continue;\n\t\tdependents.delete(normalizedPath);\n\t}\n};\n\n/* Extract import/require statements from a file.\n Uses Bun.Transpiler.scanImports() for JS/TS files (native Zig parser)\n and falls back to regex for HTML (stylesheet links) and .vue/.svelte. */\nexport const addFileToGraph = (graph: DependencyGraph, filePath: string) => {\n\tconst normalizedPath = resolve(filePath);\n\n\tif (!existsSync(normalizedPath)) return;\n\n\tconst dependencies = extractDependencies(normalizedPath);\n\n\tclearExistingDependents(graph, normalizedPath);\n\n\tconst newDeps = new Set(dependencies);\n\tgraph.dependencies.set(normalizedPath, newDeps);\n\n\tconst addDependent = (dep: string) => {\n\t\tif (!graph.dependents.has(dep)) {\n\t\t\tgraph.dependents.set(dep, new Set());\n\t\t}\n\t\tgraph.dependents.get(dep)?.add(normalizedPath);\n\t};\n\n\tdependencies.forEach(addDependent);\n};\n\nconst IGNORED_SEGMENTS = [\n\t'/node_modules/',\n\t'/.git/',\n\t'/build/',\n\t'/compiled/',\n\t'/indexes/',\n\t'/server/',\n\t'/client/'\n];\n\nexport const buildInitialDependencyGraph = (\n\tgraph: DependencyGraph,\n\tdirectories: string[]\n) => {\n\t// Use Bun.Glob for fast recursive file scanning, then process\n\t// files in parallel batches. ~50-100ms faster than sync readdirSync.\n\tconst processedFiles = new Set<string>();\n\tconst glob = new Glob('**/*.{ts,tsx,js,jsx,vue,svelte,html,htm}');\n\n\tconst resolvedDirs = directories\n\t\t.map((dir) => resolve(dir))\n\t\t.filter((dir) => existsSync(dir));\n\n\tconst allFiles = resolvedDirs.flatMap((dir) =>\n\t\tArray.from(glob.scanSync({ absolute: true, cwd: dir }))\n\t);\n\n\tfor (const file of allFiles) {\n\t\tconst fullPath = resolve(file);\n\t\tif (IGNORED_SEGMENTS.some((seg) => fullPath.includes(seg))) continue;\n\t\tif (processedFiles.has(fullPath)) continue;\n\n\t\taddFileToGraph(graph, fullPath);\n\t\tprocessedFiles.add(fullPath);\n\t}\n};\n\nconst extractHtmlDependencies = (filePath: string, content: string) => {\n\tconst dependencies: string[] = [];\n\tconst linkRegex =\n\t\t/<link\\s+[^>]*rel=[\"']stylesheet[\"'][^>]*href=[\"']([^\"']+)[\"'][^>]*>/gi;\n\tlet matchLink;\n\twhile ((matchLink = linkRegex.exec(content)) !== null) {\n\t\tconst [, href] = matchLink;\n\t\tif (!href) continue;\n\t\tconst resolvedHref = resolveImportPath(href, filePath);\n\t\tif (resolvedHref) dependencies.push(resolvedHref);\n\t}\n\n\treturn dependencies;\n};\n\nconst resolveRegexMatches = (\n\tregex: RegExp,\n\tcontent: string,\n\tfilePath: string,\n\tdependencies: string[]\n) => {\n\tlet match;\n\twhile ((match = regex.exec(content)) !== null) {\n\t\tif (!match[1]) continue;\n\t\tconst resolved = resolveImportPath(match[1], filePath);\n\t\tif (resolved) dependencies.push(resolved);\n\t}\n};\n\nconst resolveStyleUrls = (\n\tmatchContent: string,\n\tfilePath: string,\n\tdependencies: string[]\n) => {\n\tconst stringLiteralRegex = /['\"]([^'\"]+)['\"]/g;\n\tlet urlMatch;\n\twhile ((urlMatch = stringLiteralRegex.exec(matchContent)) !== null) {\n\t\tif (!urlMatch[1]) continue;\n\t\tconst resolved = resolveImportPath(urlMatch[1], filePath);\n\t\tif (resolved) dependencies.push(resolved);\n\t}\n};\n\nconst extractStyleUrlsDependencies = (\n\tcontent: string,\n\tfilePath: string,\n\tdependencies: string[]\n) => {\n\tconst styleUrlsRegex = /styleUrls\\s*:\\s*\\[([^\\]]*)\\]/g;\n\n\tlet match;\n\twhile ((match = styleUrlsRegex.exec(content)) !== null) {\n\t\tif (!match[1]) continue;\n\t\tresolveStyleUrls(match[1], filePath, dependencies);\n\t}\n};\n\nconst extractAngularDependencies = (\n\tcontent: string,\n\tfilePath: string,\n\tdependencies: string[]\n) => {\n\tconst templateUrlRegex = /templateUrl\\s*:\\s*['\"]([^'\"]+)['\"]/g;\n\tconst styleUrlSingularRegex = /styleUrl\\s*:\\s*['\"]([^'\"]+)['\"]/g;\n\n\tresolveRegexMatches(templateUrlRegex, content, filePath, dependencies);\n\tresolveRegexMatches(styleUrlSingularRegex, content, filePath, dependencies);\n\textractStyleUrlsDependencies(content, filePath, dependencies);\n};\n\nconst extractJsDependencies = (\n\tfilePath: string,\n\tcontent: string,\n\tloader: 'tsx' | 'js'\n) => {\n\tconst transpiler = loader === 'tsx' ? tsTranspiler : jsTranspiler;\n\tconst imports = transpiler.scanImports(content);\n\tconst dependencies: string[] = [];\n\n\tfor (const imp of imports) {\n\t\tconst resolved = resolveImportPath(imp.path, filePath);\n\t\tif (resolved) dependencies.push(resolved);\n\t}\n\n\tif (content.includes('@Component')) {\n\t\textractAngularDependencies(content, filePath, dependencies);\n\t}\n\n\treturn dependencies;\n};\n\nconst resolveScannedImports = (\n\timports: ReturnType<typeof tsTranspiler.scanImports>,\n\tfilePath: string,\n\tdependencies: string[]\n) => {\n\tfor (const imp of imports) {\n\t\tconst resolved = resolveImportPath(imp.path, filePath);\n\t\tif (resolved) dependencies.push(resolved);\n\t}\n};\n\nconst extractScriptImports = (\n\tscriptContent: string,\n\tfilePath: string,\n\tdependencies: string[]\n) => {\n\ttry {\n\t\tconst imports = tsTranspiler.scanImports(scriptContent);\n\t\tresolveScannedImports(imports, filePath, dependencies);\n\t} catch {\n\t\t/* ignored */\n\t}\n};\n\nconst extractSvelteVueDependencies = (filePath: string, content: string) => {\n\tconst dependencies: string[] = [];\n\tconst scriptRegex = /<script[^>]*>([\\s\\S]*?)<\\/script>/gi;\n\tlet scriptMatch;\n\twhile ((scriptMatch = scriptRegex.exec(content)) !== null) {\n\t\tconst [, scriptContent] = scriptMatch;\n\t\tif (!scriptContent?.trim()) continue;\n\t\textractScriptImports(scriptContent, filePath, dependencies);\n\t}\n\n\treturn dependencies;\n};\n\nconst extractDependenciesForFile = (filePath: string) => {\n\tconst loader = loaderForFile(filePath);\n\tconst lowerPath = filePath.toLowerCase();\n\tconst isSvelteOrVue =\n\t\tlowerPath.endsWith('.svelte') || lowerPath.endsWith('.vue');\n\n\tif (loader === 'html') {\n\t\tconst content = readFileSync(filePath, 'utf-8');\n\n\t\treturn extractHtmlDependencies(filePath, content);\n\t}\n\n\tif (loader === 'tsx' || loader === 'js') {\n\t\tconst content = readFileSync(filePath, 'utf-8');\n\n\t\treturn extractJsDependencies(filePath, content, loader);\n\t}\n\n\tif (isSvelteOrVue) {\n\t\tconst content = readFileSync(filePath, 'utf-8');\n\n\t\treturn extractSvelteVueDependencies(filePath, content);\n\t}\n\n\treturn [];\n};\n\nexport const extractDependencies = (filePath: string) => {\n\ttry {\n\t\treturn extractDependenciesForFile(filePath);\n\t} catch {\n\t\treturn [];\n\t}\n};\n\nexport const getAffectedFiles = (\n\tgraph: DependencyGraph,\n\tchangedFile: string\n) => {\n\tconst normalizedPath = resolve(changedFile);\n\tconst affected = new Set<string>();\n\tconst toProcess = [normalizedPath];\n\n\tconst processNode = (current: string) => {\n\t\tif (affected.has(current)) return;\n\n\t\taffected.add(current);\n\n\t\tconst dependents = graph.dependents.get(current);\n\t\tif (!dependents) return;\n\n\t\tdependents.forEach((dependent) => toProcess.push(dependent));\n\t};\n\n\twhile (toProcess.length > 0) {\n\t\tconst current = toProcess.pop() ?? normalizedPath;\n\t\tprocessNode(current);\n\t}\n\n\treturn Array.from(affected);\n};\n\nconst removeDepsForFile = (graph: DependencyGraph, normalizedPath: string) => {\n\tconst deps = graph.dependencies.get(normalizedPath);\n\tif (!deps) return;\n\n\tfor (const dep of deps) {\n\t\tconst dependents = graph.dependents.get(dep);\n\t\tif (!dependents) continue;\n\t\tdependents.delete(normalizedPath);\n\t}\n\tgraph.dependencies.delete(normalizedPath);\n};\n\nconst removeDependentsForFile = (\n\tgraph: DependencyGraph,\n\tnormalizedPath: string\n) => {\n\tconst dependents = graph.dependents.get(normalizedPath);\n\tif (!dependents) return;\n\n\tfor (const dependent of dependents) {\n\t\tconst depList = graph.dependencies.get(dependent);\n\t\tif (!depList) continue;\n\t\tdepList.delete(normalizedPath);\n\t}\n\tgraph.dependents.delete(normalizedPath);\n};\n\nexport const removeFileFromGraph = (\n\tgraph: DependencyGraph,\n\tfilePath: string\n) => {\n\tconst normalizedPath = resolve(filePath);\n\n\tremoveDepsForFile(graph, normalizedPath);\n\tremoveDependentsForFile(graph, normalizedPath);\n};\n",
|
|
78
|
+
"/* Module Version Tracker for Server-Client Synchronization\n Tracks module versions to ensure server and client stay in sync */\n\n/* Module version: increments each time a module is updated */\nexport type ModuleVersion = number;\n\n/* Module version map: module path -> version */\nexport type ModuleVersions = Map<string, ModuleVersion>;\n\n/* Global module version counter */\nlet globalVersionCounter = 0;\n\n/* Get next version number */\nexport const createModuleVersionTracker = () =>\n\tnew Map<string, ModuleVersion>();\nexport const getNextVersion = () => ++globalVersionCounter;\nexport const incrementModuleVersion = (\n\tversions: ModuleVersions,\n\tmodulePath: string\n) => {\n\tconst newVersion = getNextVersion();\n\tversions.set(modulePath, newVersion);\n\n\treturn newVersion;\n};\nexport const incrementModuleVersions = (\n\tversions: ModuleVersions,\n\tmodulePaths: string[]\n) => {\n\tconst updated = new Map<string, ModuleVersion>();\n\tfor (const path of modulePaths) {\n\t\tconst version = incrementModuleVersion(versions, path);\n\t\tupdated.set(path, version);\n\t}\n\n\treturn updated;\n};\nexport const serializeModuleVersions = (versions: ModuleVersions) => {\n\tconst serialized: Record<string, number> = {};\n\tfor (const [path, version] of versions.entries()) {\n\t\tserialized[path] = version;\n\t}\n\n\treturn serialized;\n};\n",
|
|
79
|
+
"import { resolve } from 'node:path';\nimport type { BuildConfig } from '../../types/build';\n\n/** Normalize and default build paths so HMR works outside the example app. */\nexport const resolveBuildPaths = (config: BuildConfig) => {\n\tconst cwd = process.cwd();\n\t// Normalize to forward slashes for cross-platform compatibility (Windows uses backslashes)\n\tconst normalize = (path: string) => path.replace(/\\\\/g, '/');\n\tconst withDefault = (value: string | undefined, fallback: string) =>\n\t\tnormalize(resolve(cwd, value ?? fallback));\n\tconst optional = (value: string | undefined) =>\n\t\tvalue ? normalize(resolve(cwd, value)) : undefined;\n\n\treturn {\n\t\tangularDir: optional(config.angularDirectory),\n\t\tassetsDir: optional(config.assetsDirectory),\n\t\tbuildDir: withDefault(config.buildDirectory, 'build'),\n\t\thtmlDir: optional(config.htmlDirectory),\n\t\thtmxDir: optional(config.htmxDirectory),\n\t\treactDir: optional(config.reactDirectory),\n\t\tstylesDir: optional(\n\t\t\ttypeof config.stylesConfig === 'string'\n\t\t\t\t? config.stylesConfig\n\t\t\t\t: config.stylesConfig?.path\n\t\t),\n\t\tsvelteDir: optional(config.svelteDirectory),\n\t\tvueDir: optional(config.vueDirectory)\n\t};\n};\n\nexport type ResolvedBuildPaths = ReturnType<typeof resolveBuildPaths>;\n",
|
|
80
|
+
"import type { FSWatcher } from 'fs';\nimport { emptyDependencyGraph, type DependencyGraph } from './dependencyGraph';\nimport {\n\tcreateModuleVersionTracker,\n\ttype ModuleVersions\n} from './moduleVersionTracker';\nimport type { HMRWebSocket } from '../../types/websocket';\nimport type { BuildConfig } from '../../types/build';\nimport { resolveBuildPaths, type ResolvedBuildPaths } from './configResolver';\n\n/* This handles the \"tracking clients\" problem */\nexport type HMRState = {\n\tconnectedClients: Set<HMRWebSocket>;\n\tactiveFrameworks: Set<string>; // Frameworks with active browser clients\n\tdependencyGraph: DependencyGraph;\n\tisRebuilding: boolean;\n\trebuildQueue: Set<string>;\n\trebuildTimeout: NodeJS.Timeout | null;\n\tfileChangeQueue: Map<string, string[]>;\n\tdebounceTimeout: NodeJS.Timeout | null;\n\tfileHashes: Map<string, number>; // filename -> Bun.hash (Wyhash) value\n\twatchers: FSWatcher[];\n\tmoduleVersions: ModuleVersions; // module path -> version number (for client-server sync)\n\tsourceFileVersions: Map<string, number>; // source file path -> version number (for cache busting)\n\tconfig: BuildConfig; // Build configuration for path resolution\n\tresolvedPaths: ResolvedBuildPaths; // Normalized paths derived from config\n\tvueChangeTypes: Map<string, 'template-only' | 'script' | 'full'>; // Vue HMR change type tracking\n\tassetStore: Map<string, Uint8Array>; // In-memory client asset store for dev mode\n\tmanifest: Record<string, string>; // Current build manifest (for Angular fast-path HMR)\n\trebuildCount: number; // Incremented after each successful rebuild\n\tlastHmrPath?: string;\n\tlastHmrFramework?: string;\n};\n\n/* Initialize HMR state */\nexport const createHMRState = (config: BuildConfig): HMRState => ({\n\tactiveFrameworks: new Set(), // Frameworks with active browser clients\n\tassetStore: new Map(), // In-memory client asset store for dev mode,,\n\tconfig,\n\tconnectedClients: new Set<HMRWebSocket>(),\n\tdebounceTimeout: null,\n\tdependencyGraph: emptyDependencyGraph,\n\tfileChangeQueue: new Map(),\n\tfileHashes: new Map(),\n\tisRebuilding: false,\n\tmanifest: {}, // Current build manifest (populated after initial build),\n\tmoduleVersions: createModuleVersionTracker(),\n\trebuildCount: 0,\n\trebuildQueue: new Set(),\n\trebuildTimeout: null,\n\tresolvedPaths: resolveBuildPaths(config), // Track versions for source files to bypass Bun's cache,\n\tsourceFileVersions: new Map(),\n\tvueChangeTypes: new Map(), // Vue HMR change type tracking,\n\twatchers: []\n});\n\n/* Increment version for a source file (forces Bun to treat it as a new module) */\nexport const incrementSourceFileVersion = (\n\tstate: HMRState,\n\tfilePath: string\n) => {\n\tconst currentVersion = state.sourceFileVersions.get(filePath) || 0;\n\tconst newVersion = currentVersion + 1;\n\tstate.sourceFileVersions.set(filePath, newVersion);\n\n\treturn newVersion;\n};\n\n/* Increment versions for multiple source files */\nexport const incrementSourceFileVersions = (\n\tstate: HMRState,\n\tfilePaths: string[]\n) => {\n\tfor (const filePath of filePaths) {\n\t\tincrementSourceFileVersion(state, filePath);\n\t}\n};\n",
|
|
81
|
+
"import { readdirSync } from 'node:fs';\nimport { BuildConfig } from '../../types/build';\nimport { commonAncestor } from '../utils/commonAncestor';\nimport { normalizePath } from '../utils/normalizePath';\nimport type { ResolvedBuildPaths } from './configResolver';\n\nconst STYLE_EXTENSION_PATTERN = /\\.(css|s[ac]ss|less|styl(?:us)?)$/i;\n\n/* Get the directories we should watch based on our config\n This handles the \"where to watch\" problem */\nexport const detectFramework = (\n\tfilePath: string,\n\tresolved?: ResolvedBuildPaths\n) => {\n\t// Check if this is an ignored file first\n\tif (shouldIgnorePath(filePath, resolved)) {\n\t\treturn 'ignored';\n\t}\n\n\tconst normalized = filePath.replace(/\\\\/g, '/');\n\n\tconst startsWithDir = (dir?: string) =>\n\t\tdir ? normalized.startsWith(dir.replace(/\\\\/g, '/')) : false;\n\n\t// Prefer resolved directory prefixes when available\n\tif (resolved) {\n\t\tif (startsWithDir(resolved.stylesDir)) return 'styles';\n\t\tif (startsWithDir(resolved.htmxDir)) return 'htmx';\n\t\tif (startsWithDir(resolved.reactDir)) return 'react';\n\t\tif (startsWithDir(resolved.svelteDir)) return 'svelte';\n\t\tif (startsWithDir(resolved.vueDir)) return 'vue';\n\t\tif (startsWithDir(resolved.angularDir)) return 'angular';\n\t\tif (startsWithDir(resolved.htmlDir)) return 'html';\n\t\tif (startsWithDir(resolved.assetsDir)) return 'assets';\n\t} else {\n\t\t// Fallback heuristics when resolved paths are not provided\n\t\tif (normalized.includes('/htmx/')) return 'htmx';\n\t\tif (normalized.includes('/react/')) return 'react';\n\t\tif (normalized.includes('/svelte/')) return 'svelte';\n\t\tif (normalized.includes('/vue/')) return 'vue';\n\t\tif (normalized.includes('/angular/')) return 'angular';\n\t\tif (normalized.includes('/html/')) return 'html';\n\t}\n\n\t// Then check file extensions for files not in framework directories\n\tif (normalized.endsWith('.tsx') || normalized.endsWith('.jsx'))\n\t\treturn 'react';\n\tif (normalized.endsWith('.svelte')) return 'svelte';\n\tif (normalized.endsWith('.vue')) return 'vue';\n\tif (normalized.endsWith('.html')) return 'html';\n\tif (normalized.endsWith('.ts') && normalized.includes('angular'))\n\t\treturn 'angular';\n\n\t// Generic assets (styles in root /assets/, images, etc.)\n\t// IMPORTANT: Only return 'assets' for style files that are NOT in framework directories.\n\t// Style files in framework directories (like /vue/styles/ or /svelte/styles/) should have\n\t// been caught by the framework checks above. If we reach here with a .css file, it means\n\t// the file wasn't in a framework directory, so it's a true asset.\n\tif (normalized.includes('/assets/')) return 'assets';\n\n\t// For style files not caught by framework directory checks, check one more time\n\t// using path segment matching (handles cases where resolved paths might not match exactly)\n\tif (STYLE_EXTENSION_PATTERN.test(normalized)) {\n\t\t// Check if this style is in a framework styles directory by looking for common patterns\n\t\tif (normalized.includes('/vue/') || normalized.includes('/vue-'))\n\t\t\treturn 'vue';\n\t\tif (normalized.includes('/svelte/') || normalized.includes('/svelte-'))\n\t\t\treturn 'svelte';\n\t\tif (normalized.includes('/react/') || normalized.includes('/react-'))\n\t\t\treturn 'react';\n\t\tif (\n\t\t\tnormalized.includes('/angular/') ||\n\t\t\tnormalized.includes('/angular-')\n\t\t)\n\t\t\treturn 'angular';\n\t\tif (normalized.includes('/html/') || normalized.includes('/html-'))\n\t\t\treturn 'html';\n\t\tif (normalized.includes('/htmx/') || normalized.includes('/htmx-'))\n\t\t\treturn 'htmx';\n\n\t\t// If no framework match, it's a generic asset\n\t\treturn 'assets';\n\t}\n\n\treturn 'unknown';\n};\nconst getSiblingDirs = (\n\tframeworkDirs: string[],\n\tcfg: { assetsDir?: string; stylesDir?: string }\n) => {\n\tif (frameworkDirs.length === 0) return [];\n\n\tconst root = commonAncestor(frameworkDirs);\n\tif (!root) return [];\n\n\tconst knownNames = new Set(\n\t\t[...frameworkDirs, cfg.assetsDir, cfg.stylesDir]\n\t\t\t.filter((dir): dir is string => Boolean(dir))\n\t\t\t.map((dir) => normalizePath(dir).split('/').pop())\n\t);\n\tknownNames.add('build');\n\tknownNames.add('node_modules');\n\tknownNames.add('.absolutejs');\n\n\ttry {\n\t\treturn readdirSync(root, { withFileTypes: true })\n\t\t\t.filter(\n\t\t\t\t(entry) => entry.isDirectory() && !knownNames.has(entry.name)\n\t\t\t)\n\t\t\t.map((entry) => `${root}/${entry.name}`);\n\t} catch {\n\t\t// root may not exist yet\n\t\treturn [];\n\t}\n};\n\nexport const getWatchPaths = (\n\tconfig: BuildConfig,\n\tresolved?: ResolvedBuildPaths\n) => {\n\tconst paths: string[] = [];\n\n\tconst push = (base?: string, sub?: string) => {\n\t\tif (!base) return;\n\t\tconst normalizedBase = normalizePath(base);\n\t\tpaths.push(sub ? `${normalizedBase}/${sub}` : normalizedBase);\n\t};\n\n\tconst cfg = resolved ?? {\n\t\tangularDir: config.angularDirectory,\n\t\tassetsDir: config.assetsDirectory,\n\t\thtmlDir: config.htmlDirectory,\n\t\thtmxDir: config.htmxDirectory,\n\t\treactDir: config.reactDirectory,\n\t\tstylesDir:\n\t\t\ttypeof config.stylesConfig === 'string'\n\t\t\t\t? config.stylesConfig\n\t\t\t\t: config.stylesConfig?.path,\n\t\tsvelteDir: config.svelteDirectory,\n\t\tvueDir: config.vueDirectory\n\t};\n\n\t// Watch entire framework directories. Intermediate build files live\n\t// under .absolutejs/generated/ which is already excluded from watching.\n\tpush(cfg.reactDir);\n\tpush(cfg.svelteDir);\n\tpush(cfg.vueDir);\n\n\tpush(cfg.angularDir);\n\n\tpush(cfg.htmlDir, 'pages');\n\tpush(cfg.htmlDir, 'scripts');\n\tpush(cfg.htmlDir, 'styles');\n\n\tpush(cfg.htmxDir, 'pages');\n\tpush(cfg.htmxDir, 'scripts');\n\tpush(cfg.htmxDir, 'styles');\n\n\tpush(cfg.assetsDir);\n\tpush(cfg.stylesDir);\n\n\t// Also watch sibling directories under the common parent of all\n\t// configured dirs — these contain shared files (workers, utils, etc.)\n\t// that may be referenced by multiple frameworks.\n\tconst frameworkDirs = [\n\t\tcfg.reactDir,\n\t\tcfg.svelteDir,\n\t\tcfg.vueDir,\n\t\tcfg.angularDir,\n\t\tcfg.htmlDir,\n\t\tcfg.htmxDir\n\t]\n\t\t.filter((dir): dir is string => Boolean(dir))\n\t\t.map(normalizePath);\n\n\tfor (const siblingPath of getSiblingDirs(frameworkDirs, cfg)) {\n\t\tpush(siblingPath);\n\t}\n\n\treturn paths;\n};\nexport const shouldIgnorePath = (\n\tpath: string,\n\tresolved?: ResolvedBuildPaths\n) => {\n\tconst normalizedPath = path.replace(/\\\\/g, '/');\n\n\t// Allow files inside the configured styles directory through\n\tif (resolved?.stylesDir && normalizedPath.startsWith(resolved.stylesDir)) {\n\t\treturn false;\n\t}\n\n\t// Ignore build output and framework-managed directories, including\n\t// directory-level watcher events like \".../generated\" (no trailing slash).\n\tconst managedDirPattern =\n\t\t/(^|\\/)(build|generated|\\.absolutejs|node_modules|\\.git)(\\/|$)/;\n\n\treturn (\n\t\tmanagedDirPattern.test(normalizedPath) ||\n\t\tnormalizedPath.endsWith('.log') ||\n\t\tnormalizedPath.endsWith('.tmp')\n\t);\n};\n",
|
|
82
|
+
"import { watch } from 'fs';\nimport { existsSync } from 'node:fs';\nimport { join, resolve } from 'path';\nimport type { BuildConfig } from '../../types/build';\nimport { sendTelemetryEvent } from '../cli/telemetryEvent';\nimport type { HMRState } from './clientManager';\nimport { addFileToGraph, removeFileFromGraph } from './dependencyGraph';\nimport { getWatchPaths, shouldIgnorePath } from './pathUtils';\n\nconst safeRemoveFromGraph = (\n\tgraph: HMRState['dependencyGraph'],\n\tfullPath: string\n) => {\n\ttry {\n\t\tremoveFileFromGraph(graph, fullPath);\n\t} catch (err) {\n\t\tsendTelemetryEvent('hmr:graph-error', {\n\t\t\tmessage: err instanceof Error ? err.message : String(err),\n\t\t\toperation: 'remove'\n\t\t});\n\t}\n};\n\nconst safeAddToGraph = (\n\tgraph: HMRState['dependencyGraph'],\n\tfullPath: string\n) => {\n\ttry {\n\t\taddFileToGraph(graph, fullPath);\n\t} catch (err) {\n\t\tsendTelemetryEvent('hmr:graph-error', {\n\t\t\tmessage: err instanceof Error ? err.message : String(err),\n\t\t\toperation: 'add'\n\t\t});\n\t}\n};\n\nconst shouldSkipFilename = (filename: string, isStylesDir: boolean) =>\n\t(!isStylesDir &&\n\t\t(filename === 'compiled' ||\n\t\t\tfilename === 'generated' ||\n\t\t\tfilename === 'build' ||\n\t\t\tfilename === 'indexes' ||\n\t\t\tfilename === 'server' ||\n\t\t\tfilename === 'client' ||\n\t\t\tfilename.includes('/compiled/') ||\n\t\t\tfilename.includes('/generated/') ||\n\t\t\tfilename.includes('/build/') ||\n\t\t\tfilename.includes('/indexes/') ||\n\t\t\tfilename.includes('/server/') ||\n\t\t\tfilename.includes('/client/') ||\n\t\t\tfilename.startsWith('compiled/') ||\n\t\t\tfilename.startsWith('generated/') ||\n\t\t\tfilename.startsWith('build/') ||\n\t\t\tfilename.startsWith('indexes/') ||\n\t\t\tfilename.startsWith('server/') ||\n\t\t\tfilename.startsWith('client/'))) ||\n\tfilename.endsWith('/') ||\n\tfilename.includes('.tmp.') ||\n\tfilename.endsWith('.tmp') ||\n\tfilename.endsWith('~') ||\n\tfilename.startsWith('.#');\n\nconst setupWatcher = (\n\tabsolutePath: string,\n\tisStylesDir: boolean,\n\tstate: HMRState,\n\tonFileChange: (filePath: string) => void\n) => {\n\tconst watcher = watch(\n\t\tabsolutePath,\n\t\t{ recursive: true },\n\t\t(event, filename) => {\n\t\t\tif (!filename) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (shouldSkipFilename(filename, isStylesDir)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst fullPath = join(absolutePath, filename).replace(/\\\\/g, '/');\n\n\t\t\tif (shouldIgnorePath(fullPath, state.resolvedPaths)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (event === 'rename' && !existsSync(fullPath)) {\n\t\t\t\tsafeRemoveFromGraph(state.dependencyGraph, fullPath);\n\t\t\t\tonFileChange(fullPath);\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (existsSync(fullPath)) {\n\t\t\t\tonFileChange(fullPath);\n\t\t\t\tsafeAddToGraph(state.dependencyGraph, fullPath);\n\t\t\t}\n\t\t}\n\t);\n\n\tstate.watchers.push(watcher);\n};\n\n/* Add file watchers for specific paths (used when new framework directories are added at runtime) */\nexport const addFileWatchers = (\n\tstate: HMRState,\n\tpaths: string[],\n\tonFileChange: (filePath: string) => void\n) => {\n\tconst stylesDir = state.resolvedPaths?.stylesDir;\n\n\tpaths.forEach((path) => {\n\t\tconst absolutePath = resolve(path).replace(/\\\\/g, '/');\n\t\tif (!existsSync(absolutePath)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isStylesDir = Boolean(\n\t\t\tstylesDir && absolutePath.startsWith(stylesDir)\n\t\t);\n\t\tsetupWatcher(absolutePath, isStylesDir, state, onFileChange);\n\t});\n};\n\n/* Set up file watching for all configured directories\n This handles the \"watch files\" problem */\nexport const startFileWatching = (\n\tstate: HMRState,\n\tconfig: BuildConfig,\n\tonFileChange: (filePath: string) => void\n) => {\n\tconst watchPaths = getWatchPaths(config, state.resolvedPaths);\n\tconst stylesDir = state.resolvedPaths?.stylesDir;\n\n\twatchPaths.forEach((path) => {\n\t\tconst absolutePath = resolve(path).replace(/\\\\/g, '/');\n\t\tif (!existsSync(absolutePath)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isStylesDir = Boolean(\n\t\t\tstylesDir && absolutePath.startsWith(stylesDir)\n\t\t);\n\t\tsetupWatcher(absolutePath, isStylesDir, state, onFileChange);\n\t});\n};\n",
|
|
83
|
+
"import { resolve } from 'node:path';\nimport { readdir, unlink } from 'node:fs/promises';\n\nconst mimeTypes: Record<string, string> = {\n\t'.css': 'text/css',\n\t'.html': 'text/html',\n\t'.js': 'application/javascript',\n\t'.json': 'application/json',\n\t'.mjs': 'application/javascript',\n\t'.svg': 'image/svg+xml',\n\t'.woff': 'font/woff',\n\t'.woff2': 'font/woff2'\n};\n\n/** Determine Content-Type from a file path extension */\nexport const getMimeType = (filePath: string) => {\n\tconst ext = filePath.slice(filePath.lastIndexOf('.'));\n\n\treturn mimeTypes[ext] ?? 'application/octet-stream';\n};\n\n/** Matches Bun's hashed output naming: name.XXXXXXXX.ext */\nconst HASHED_FILE_RE = /\\.[a-z0-9]{8}\\.(js|css|mjs)$/;\n\n/** Strip the 8-char hash from a hashed path to get its logical identity.\n * e.g. /react/indexes/ReactExample.abc12345.js → /react/indexes/ReactExample.js */\nconst stripHash = (webPath: string) =>\n\twebPath.replace(/\\.[a-z0-9]{8}(\\.(js|css|mjs))$/, '$1');\n\nconst processWalkEntry = (\n\tentry: import('node:fs').Dirent,\n\tdir: string,\n\tliveByIdentity: Map<string, string>,\n\twalkAndClean: (dir: string) => Promise<void>\n) => {\n\tconst fullPath = resolve(dir, entry.name);\n\tif (entry.isDirectory()) {\n\t\treturn walkAndClean(fullPath);\n\t}\n\tif (!HASHED_FILE_RE.test(entry.name)) {\n\t\treturn null;\n\t}\n\tconst identity = stripHash(fullPath);\n\tconst livePath = liveByIdentity.get(identity);\n\t// Delete if: (a) no live entry exists (page was deleted), or\n\t// (b) a different hash is live (stale version of an existing page).\n\t// Only keep the file when it IS the current live version.\n\tif (livePath !== fullPath) {\n\t\treturn unlink(fullPath).catch(() => {\n\t\t\t/* noop */\n\t\t});\n\t}\n\n\treturn null;\n};\n\n/** Upsert build outputs into the in-memory asset store.\n * Evicts previous entries for the same logical asset (same base name,\n * different hash) so stale paths don't accumulate. */\nexport const cleanStaleAssets = async (\n\tstore: Map<string, Uint8Array>,\n\tmanifest: Record<string, string>,\n\tbuildDir: string\n) => {\n\t// Build a map of logical identity → live disk path\n\tconst liveByIdentity = new Map<string, string>();\n\n\t// Client assets from the in-memory store\n\tfor (const webPath of store.keys()) {\n\t\tconst diskPath = resolve(buildDir, webPath.slice(1));\n\t\tliveByIdentity.set(stripHash(diskPath), diskPath);\n\t}\n\n\t// SSR server files from the manifest (absolute disk paths like\n\t// /home/.../build/svelte/.../SvelteExample.hash.js)\n\tconst absBuildDir = resolve(buildDir);\n\tObject.values(manifest).forEach((val) => {\n\t\tif (!HASHED_FILE_RE.test(val)) return;\n\t\tif (val.startsWith(absBuildDir)) {\n\t\t\tliveByIdentity.set(stripHash(val), val);\n\t\t}\n\t});\n\n\ttry {\n\t\tconst walkAndClean = async (dir: string) => {\n\t\t\tconst entries = await readdir(dir, { withFileTypes: true });\n\t\t\tconst tasks = entries\n\t\t\t\t.map((entry) =>\n\t\t\t\t\tprocessWalkEntry(entry, dir, liveByIdentity, walkAndClean)\n\t\t\t\t)\n\t\t\t\t.filter((task): task is Promise<void> => task !== null);\n\t\t\tawait Promise.all(tasks);\n\t\t};\n\t\tawait walkAndClean(buildDir);\n\t} catch {\n\t\t/* buildDir may not exist */\n\t}\n};\nexport const lookupAsset = (store: Map<string, Uint8Array>, path: string) =>\n\tstore.get(path);\n\nconst processScanEntry = (\n\tentry: import('node:fs').Dirent,\n\tdir: string,\n\tprefix: string,\n\tstore: Map<string, Uint8Array>,\n\tscanDir: (dir: string, prefix: string) => Promise<void>\n) => {\n\tif (entry.isDirectory()) {\n\t\treturn scanDir(resolve(dir, entry.name), `${prefix}${entry.name}/`);\n\t}\n\tif (!entry.name.startsWith('chunk-')) {\n\t\treturn null;\n\t}\n\tconst webPath = `/${prefix}${entry.name}`;\n\tif (store.has(webPath)) {\n\t\treturn null;\n\t}\n\n\treturn Bun.file(resolve(dir, entry.name))\n\t\t.bytes()\n\t\t.then((bytes) => {\n\t\t\tstore.set(webPath, bytes);\n\n\t\t\treturn undefined;\n\t\t})\n\t\t.catch(() => {\n\t\t\t/* noop */\n\t\t});\n};\n\nexport const populateAssetStore = async (\n\tstore: Map<string, Uint8Array>,\n\tmanifest: Record<string, string>,\n\tbuildDir: string\n) => {\n\tconst loadPromises: Promise<void>[] = [];\n\n\t// Build a set of logical identities from the new manifest so we can\n\t// evict old entries with different hashes for the same asset.\n\tconst newIdentities = new Map<string, string>();\n\tfor (const webPath of Object.values(manifest)) {\n\t\tif (!webPath.startsWith('/')) continue;\n\t\tnewIdentities.set(stripHash(webPath), webPath);\n\t}\n\n\t// Evict old store entries that are being replaced by a new hash (same\n\t// identity, different path). The manifest passed in may be PARTIAL — it\n\t// only covers the entries from the current build (e.g. one page during\n\t// HMR fast-paths). Entries whose identity isn't mentioned must be left\n\t// alone: they may belong to other pages that weren't rebuilt, and their\n\t// SSR-rendered HTML still references those hashes.\n\t// Disk-level cleanup of pages that were truly deleted is handled by\n\t// `cleanStaleAssets`. Chunk files (chunk-XXXX.js) are tracked separately\n\t// and are not part of the manifest.\n\tconst staleKeys = [...store.keys()].filter((existingPath) => {\n\t\tif (existingPath.includes('/chunk-')) return false;\n\t\tconst replacement = newIdentities.get(stripHash(existingPath));\n\t\treturn replacement !== undefined && replacement !== existingPath;\n\t});\n\tstaleKeys.forEach((key) => store.delete(key));\n\n\tfor (const webPath of newIdentities.values()) {\n\t\t// Skip entries already in the store — their content hasn't changed\n\t\t// (same hash in the filename). Only load new or replaced assets.\n\t\tif (store.has(webPath)) continue;\n\n\t\tloadPromises.push(\n\t\t\tBun.file(resolve(buildDir, webPath.slice(1)))\n\t\t\t\t.bytes()\n\t\t\t\t.then((bytes) => {\n\t\t\t\t\tstore.set(webPath, bytes);\n\n\t\t\t\t\treturn undefined;\n\t\t\t\t})\n\t\t\t\t.catch(() => {\n\t\t\t\t\t/* file may not exist yet (SSR-only entry) — ignore */\n\t\t\t\t})\n\t\t);\n\t}\n\n\t// Also pick up chunk files produced by Bun code-splitting that aren't\n\t// listed in the manifest (e.g. chunk-XXXX.js).\n\ttry {\n\t\tconst scanDir = async (dir: string, prefix: string) => {\n\t\t\tconst entries = await readdir(dir, { withFileTypes: true });\n\t\t\tconst subTasks = entries\n\t\t\t\t.map((entry) =>\n\t\t\t\t\tprocessScanEntry(entry, dir, prefix, store, scanDir)\n\t\t\t\t)\n\t\t\t\t.filter((task): task is Promise<void> => task !== null);\n\t\t\tawait Promise.all(subTasks);\n\t\t};\n\t\tawait scanDir(buildDir, '');\n\t} catch {\n\t\t/* buildDir may not exist yet */\n\t}\n\n\tawait Promise.all(loadPromises);\n};\n",
|
|
84
|
+
"import { readFileSync } from 'node:fs';\nimport { dirname, resolve } from 'node:path';\nimport type { BuildConfig } from '../../types/build';\nimport type { IslandFramework } from '../../types/island';\nimport { loadIslandRegistryBuildInfo } from '../build/islandEntries';\nimport { scanEntryPoints } from '../build/scanEntryPoints';\nimport {\n\textractIslandUsagesFromSource,\n\ttype PageIslandUsage\n} from './sourceMetadata';\n\nexport type PageIslandMetadata = {\n\tislands: PageIslandUsage[];\n\tpagePath: string;\n};\n\ndeclare global {\n\tvar __absolutePageIslandMetadata:\n\t\t| Map<string, PageIslandMetadata>\n\t\t| undefined;\n}\n\nconst pagePatterns: Partial<Record<IslandFramework | 'html' | 'htmx', string>> =\n\t{\n\t\tangular: 'pages/**/*.{ts,js}',\n\t\thtml: 'pages/**/*.html',\n\t\thtmx: 'pages/**/*.html',\n\t\treact: 'pages/**/*.{ts,tsx,js,jsx}',\n\t\tsvelte: 'pages/**/*.svelte',\n\t\tvue: 'pages/**/*.vue'\n\t};\n\ntype PageDirectoryEntry = {\n\tdir: string;\n\tframework: keyof typeof pagePatterns;\n};\n\nconst getPageDirs = (config: BuildConfig) =>\n\t(\n\t\t[\n\t\t\t{ dir: config.angularDirectory, framework: 'angular' },\n\t\t\t{ dir: config.reactDirectory, framework: 'react' },\n\t\t\t{ dir: config.svelteDirectory, framework: 'svelte' },\n\t\t\t{ dir: config.vueDirectory, framework: 'vue' },\n\t\t\t{ dir: config.htmlDirectory, framework: 'html' },\n\t\t\t{ dir: config.htmxDirectory, framework: 'htmx' }\n\t\t] satisfies Array<{\n\t\t\tdir: string | undefined;\n\t\t\tframework: keyof typeof pagePatterns;\n\t\t}>\n\t).filter(\n\t\t(entry): entry is PageDirectoryEntry =>\n\t\t\ttypeof entry.dir === 'string' && entry.dir.length > 0\n\t);\n\nconst buildIslandSourceLookup = async (config: BuildConfig) => {\n\tconst registryPath = config.islands?.registry;\n\tif (!registryPath) {\n\t\treturn new Map<string, string>();\n\t}\n\n\tconst buildInfo = await loadIslandRegistryBuildInfo(registryPath);\n\tconst lookup = new Map<string, string>();\n\n\tfor (const definition of buildInfo.definitions) {\n\t\tconst source = definition.buildReference?.source;\n\t\tif (!source) continue;\n\n\t\tconst resolvedSource = source.startsWith('file://')\n\t\t\t? new URL(source).pathname\n\t\t\t: resolve(dirname(buildInfo.resolvedRegistryPath), source);\n\n\t\tlookup.set(\n\t\t\t`${definition.framework}:${definition.component}`,\n\t\t\tresolve(resolvedSource)\n\t\t);\n\t}\n\n\treturn lookup;\n};\n\nexport const getCurrentPageIslandMetadata = () =>\n\tglobalThis.__absolutePageIslandMetadata ??\n\tnew Map<string, PageIslandMetadata>();\nconst metadataUsesSource = (metadata: PageIslandMetadata, target: string) =>\n\tmetadata.islands.some((usage) => {\n\t\tconst candidate = usage.source;\n\n\t\treturn candidate ? resolve(candidate) === target : false;\n\t});\n\nexport const getPagesUsingIslandSource = (sourcePath: string) => {\n\tconst target = resolve(sourcePath);\n\n\treturn [...getCurrentPageIslandMetadata().values()]\n\t\t.filter((metadata) => metadataUsesSource(metadata, target))\n\t\t.map((metadata) => metadata.pagePath);\n};\nconst resolveIslandUsages = (\n\tislands: PageIslandUsage[],\n\tislandSourceLookup: Map<string, string>\n) =>\n\tislands.map((usage) => {\n\t\tconst sourcePath = islandSourceLookup.get(\n\t\t\t`${usage.framework}:${usage.component}`\n\t\t);\n\n\t\treturn sourcePath\n\t\t\t? {\n\t\t\t\t\t...usage,\n\t\t\t\t\tsource: sourcePath\n\t\t\t\t}\n\t\t\t: usage;\n\t});\n\nconst loadPageIslandFiles = async (\n\tentry: PageDirectoryEntry,\n\tislandSourceLookup: Map<string, string>,\n\tpageMetadata: Map<string, PageIslandMetadata>\n) => {\n\tconst pattern = pagePatterns[entry.framework];\n\tif (!pattern) return;\n\n\tconst files = await scanEntryPoints(resolve(entry.dir), pattern);\n\tfor (const filePath of files) {\n\t\tconst source = readFileSync(filePath, 'utf-8');\n\t\tconst islands = extractIslandUsagesFromSource(source);\n\t\tpageMetadata.set(resolve(filePath), {\n\t\t\tislands: resolveIslandUsages(islands, islandSourceLookup),\n\t\t\tpagePath: resolve(filePath)\n\t\t});\n\t}\n};\n\nexport const loadPageIslandMetadata = async (config: BuildConfig) => {\n\tconst pageMetadata = new Map<string, PageIslandMetadata>();\n\tconst islandSourceLookup = await buildIslandSourceLookup(config);\n\n\tawait Promise.all(\n\t\tgetPageDirs(config).map((entry) =>\n\t\t\tloadPageIslandFiles(entry, islandSourceLookup, pageMetadata)\n\t\t)\n\t);\n\n\treturn pageMetadata;\n};\nexport const setCurrentPageIslandMetadata = (\n\tmetadata: Map<string, PageIslandMetadata>\n) => {\n\tglobalThis.__absolutePageIslandMetadata = metadata;\n};\n",
|
|
85
|
+
"import { readFileSync } from 'node:fs';\nimport { UNFOUND_INDEX } from '../constants';\nimport { normalizePath } from '../utils/normalizePath';\n\n/* Bun.hash (Wyhash) returns a number — comparing numbers is faster\n than comparing strings and avoids the .toString() allocation. We\n use -1 as the \"file unreadable\" sentinel (impossible hash value). */\nexport const computeFileHash = (filePath: string) => {\n\ttry {\n\t\tconst fileContent = readFileSync(filePath);\n\n\t\treturn Number(Bun.hash(fileContent));\n\t} catch {\n\t\treturn UNFOUND_INDEX;\n\t}\n};\n\n/* This function checks if the file has changed by comparing its\n current hash to the previous hash\n this handles the detection of actual changes */\nexport const hasFileChanged = (\n\tfilePath: string,\n\tcurrentHash: number,\n\tpreviousHashes: Map<string, number>\n) => {\n\t// Normalize path for consistent Map key lookup across platforms\n\tconst normalizedPath = normalizePath(filePath);\n\tconst previousHash = previousHashes.get(normalizedPath);\n\n\tif (previousHash === undefined) {\n\t\t// First time seeing this file, definitely changed\n\t\treturn true;\n\t}\n\n\treturn previousHash !== currentHash;\n};\n",
|
|
86
|
+
"type CacheEntry = {\n\tcontent: string;\n\timports: string[];\n\tmtime: number;\n};\n\n// Persist across bun --hot reloads so HMR doesn't refetch everything\nconst cache = globalThis.__transformCache ?? new Map<string, CacheEntry>();\nglobalThis.__transformCache = cache;\n\n// Reverse map: importedFile → Set<files that import it>\n// Used to cascade invalidation up the import chain.\nconst importers =\n\tglobalThis.__transformImporters ?? new Map<string, Set<string>>();\nglobalThis.__transformImporters = importers;\n\n// Cache entries are invalidated by invalidateModule() when files\n// change — no need to re-stat on every read. If it's in the cache,\n// it's valid.\nexport const getTransformed = (filePath: string) =>\n\tcache.get(filePath)?.content;\n\nexport const setTransformed = (\n\tfilePath: string,\n\tcontent: string,\n\tmtime: number,\n\timports?: string[]\n) => {\n\tconst resolvedImports = imports ?? [];\n\tcache.set(filePath, { content, imports: resolvedImports, mtime });\n\n\t// Update reverse dependency map\n\tfor (const imp of resolvedImports) {\n\t\tconst set = importers.get(imp) ?? new Set<string>();\n\t\timporters.set(imp, set);\n\t\tset.add(filePath);\n\t}\n};\n\n// Per-file invalidation version. Incremented when a file's transform\n// cache is cleared due to a downstream import changing. Used by\n// srcUrl() to force browser re-fetch even if the file's mtime is same.\nconst invalidationVersions =\n\tglobalThis.__transformInvalidationVersions ?? new Map<string, number>();\nglobalThis.__transformInvalidationVersions = invalidationVersions;\n\nconst isComponentFile = (filePath: string) =>\n\tfilePath.endsWith('.tsx') || filePath.endsWith('.jsx');\n\nconst processParents = (parents: Set<string>, queue: string[]) => {\n\tconst component = [...parents].find(isComponentFile);\n\tif (component !== undefined) return component;\n\n\tfor (const parent of parents) queue.push(parent);\n\n\treturn undefined;\n};\n\nexport const findNearestComponent = (filePath: string) => {\n\tconst visited = new Set<string>();\n\tconst queue = [filePath];\n\n\twhile (queue.length > 0) {\n\t\tconst current = queue.shift();\n\t\tif (!current) break;\n\t\tif (visited.has(current)) continue;\n\t\tvisited.add(current);\n\n\t\tconst parents = importers.get(current);\n\t\tif (!parents) continue;\n\n\t\tconst found = processParents(parents, queue);\n\t\tif (found !== undefined) return found;\n\t}\n\n\treturn undefined;\n};\nexport const getInvalidationVersion = (filePath: string) =>\n\tinvalidationVersions.get(filePath) ?? 0;\nexport const invalidate = (filePath: string) => {\n\tcache.delete(filePath);\n\n\t// Bump the CHANGED file's version so when importers are\n\t// re-transpiled, srcUrl() generates a new ?v= for it.\n\tinvalidationVersions.set(\n\t\tfilePath,\n\t\t(invalidationVersions.get(filePath) ?? 0) + 1\n\t);\n\n\t// Clear transform cache for direct importers so they get\n\t// re-transpiled with the changed file's new ?v= param.\n\tfor (const parent of importers.get(filePath) ?? []) {\n\t\tcache.delete(parent);\n\t}\n};\nexport const invalidateAll = () => {\n\tcache.clear();\n\timporters.clear();\n};\n",
|
|
87
|
+
"import { resolve } from 'node:path';\n\n/* Component classification for React Fast Refresh\n Distinguishes between Client Components and Server Components */\nexport type ComponentType = 'client' | 'server';\n\n/* Classify a React component file as either 'client' or 'server'\n \n Rules:\n - Files in /react/pages/ → 'server' (Server Components - rendered on server)\n - Files in /react/components/ → 'client' (Client Components - client-only)\n - Files in /react/composables/ → 'client' (Client Components - client-only)\n - All other React files → 'client' (default to client for safety)\n \n This classification determines how HMR updates are handled:\n - Server Components: Re-render on server, send flight data, patch DOM\n - Client Components: Hot-replace module, re-render in client tree\n*/\nexport const classifyComponent = (filePath: string) => {\n\tconst normalizedPath = resolve(filePath);\n\n\t// Server Components: Pages are rendered on the server\n\tif (normalizedPath.includes('/react/pages/')) {\n\t\treturn 'server';\n\t}\n\n\t// Client Components: Components and composables are client-only\n\tif (\n\t\tnormalizedPath.includes('/react/components/') ||\n\t\tnormalizedPath.includes('/react/composables/')\n\t) {\n\t\treturn 'client';\n\t}\n\n\t// Default to 'client' for any other React files\n\t// This is safer than defaulting to 'server' because client components\n\t// can always be hot-replaced, but server components require special handling\n\treturn 'client';\n};\n",
|
|
88
|
+
"import { basename, resolve } from 'node:path';\nimport { isStylePath } from '../build/stylePreprocessor';\nimport { toPascal } from '../utils/stringModifiers';\nimport {\n\tclassifyComponent,\n\ttype ComponentType\n} from './reactComponentClassifier';\n\n/* Maps source files to their manifest entries\n This handles the \"what modules changed\" problem for Smart Module Updates */\nexport type ModuleUpdate = {\n\tsourceFile: string;\n\tframework: string;\n\tmoduleKeys: string[]; // Manifest keys for this module (e.g., ['ReactExampleIndex', 'ReactExampleCSS'])\n\tmodulePaths: Record<string, string>; // Map of manifest keys to their new paths\n\tcomponentType?: ComponentType; // 'client' | 'server' - only for React components\n};\n\n/* Map a source file to its manifest entry keys\n This handles framework-specific manifest key derivation */\nconst buildModulePaths = (\n\tmoduleKeys: string[],\n\tmanifest: Record<string, string>\n) => {\n\tconst modulePaths: Record<string, string> = {};\n\tmoduleKeys.forEach((key) => {\n\t\tif (manifest[key]) {\n\t\t\tmodulePaths[key] = manifest[key];\n\t\t}\n\t});\n\n\treturn modulePaths;\n};\n\nconst processChangedFile = (\n\tsourceFile: string,\n\tframework: string,\n\tmanifest: Record<string, string>,\n\tresolvedPaths:\n\t\t| {\n\t\t\t\treactDir?: string;\n\t\t\t\tsvelteDir?: string;\n\t\t\t\tvueDir?: string;\n\t\t\t\tangularDir?: string;\n\t\t }\n\t\t| undefined,\n\tprocessedFiles: Set<string>\n) => {\n\tconst normalizedFile = resolve(sourceFile);\n\tconst normalizedPath = normalizedFile.replace(/\\\\/g, '/');\n\n\tif (processedFiles.has(normalizedFile)) {\n\t\treturn null;\n\t}\n\tprocessedFiles.add(normalizedFile);\n\n\tconst moduleKeys = mapSourceFileToManifestKeys(\n\t\tnormalizedFile,\n\t\tframework,\n\t\tresolvedPaths\n\t);\n\n\tconst isReactPage = resolvedPaths?.reactDir\n\t\t? normalizedPath.startsWith(\n\t\t\t\t`${resolvedPaths.reactDir.replace(/\\\\/g, '/')}/pages/`\n\t\t\t)\n\t\t: normalizedPath.includes('/react/pages/');\n\n\tif (framework === 'react' && !isReactPage) {\n\t\treturn null;\n\t}\n\n\tconst modulePaths = buildModulePaths(moduleKeys, manifest);\n\n\tif (Object.keys(modulePaths).length === 0) {\n\t\treturn null;\n\t}\n\n\tconst componentType =\n\t\tframework === 'react' ? classifyComponent(normalizedFile) : undefined;\n\n\treturn {\n\t\tcomponentType,\n\t\tframework,\n\t\tmoduleKeys: Object.keys(modulePaths),\n\t\tmodulePaths,\n\t\tsourceFile: normalizedFile\n\t} satisfies ModuleUpdate;\n};\n\nexport const createModuleUpdates = (\n\tchangedFiles: string[],\n\tframework: string,\n\tmanifest: Record<string, string>,\n\tresolvedPaths?: {\n\t\treactDir?: string;\n\t\tsvelteDir?: string;\n\t\tvueDir?: string;\n\t\tangularDir?: string;\n\t}\n) => {\n\tconst processedFiles = new Set<string>();\n\n\treturn changedFiles\n\t\t.map((sourceFile) =>\n\t\t\tprocessChangedFile(\n\t\t\t\tsourceFile,\n\t\t\t\tframework,\n\t\t\t\tmanifest,\n\t\t\t\tresolvedPaths,\n\t\t\t\tprocessedFiles\n\t\t\t)\n\t\t)\n\t\t.filter((update) => update !== null);\n};\nexport const groupModuleUpdatesByFramework = (updates: ModuleUpdate[]) => {\n\tconst grouped = new Map<string, ModuleUpdate[]>();\n\n\tupdates.forEach((update) => {\n\t\tif (!grouped.has(update.framework)) {\n\t\t\tgrouped.set(update.framework, []);\n\t\t}\n\t\tgrouped.get(update.framework)?.push(update);\n\t});\n\n\treturn grouped;\n};\nexport const mapSourceFileToManifestKeys = (\n\tsourceFile: string,\n\tframework: string,\n\tresolvedPaths?: {\n\t\treactDir?: string;\n\t\tsvelteDir?: string;\n\t\tvueDir?: string;\n\t\tangularDir?: string;\n\t}\n) => {\n\tconst normalizedFile = resolve(sourceFile);\n\tconst fileName = basename(normalizedFile);\n\n\t// Extract base name without extension\n\tconst baseName = fileName.replace(/\\.(tsx?|jsx?|vue|svelte|css|html)$/, '');\n\tconst pascalName = toPascal(baseName);\n\n\tconst keys: string[] = [];\n\n\tconst inSubdir = (dir: string | undefined, sub: string) => {\n\t\tif (!dir) return false;\n\t\tconst prefix = `${dir.replace(/\\\\/g, '/')}/${sub}/`;\n\n\t\treturn normalizedFile.startsWith(prefix);\n\t};\n\n\tswitch (framework) {\n\t\tcase 'react':\n\t\t\t// React pages (in pages/ directory) have Index entries\n\t\t\tif (\n\t\t\t\tinSubdir(resolvedPaths?.reactDir, 'pages') ||\n\t\t\t\tnormalizedFile.includes('/react/pages/')\n\t\t\t) {\n\t\t\t\tkeys.push(`${pascalName}Index`);\n\t\t\t\tkeys.push(`${pascalName}CSS`); // CSS might exist\n\t\t\t}\n\t\t\t// React components don't have direct manifest entries\n\t\t\t// They're bundled into the page that imports them\n\t\t\t// The dependency graph ensures the page is rebuilt when a component changes\n\t\t\tbreak;\n\n\t\tcase 'svelte':\n\t\t\t// Svelte pages have both main entry and index\n\t\t\tif (\n\t\t\t\tinSubdir(resolvedPaths?.svelteDir, 'pages') ||\n\t\t\t\tnormalizedFile.includes('/svelte/pages/')\n\t\t\t) {\n\t\t\t\tkeys.push(pascalName);\n\t\t\t\tkeys.push(`${pascalName}Index`);\n\t\t\t\tkeys.push(`${pascalName}CSS`); // CSS might exist\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'vue':\n\t\t\t// Vue pages have main entry, index, and CSS\n\t\t\tif (\n\t\t\t\tinSubdir(resolvedPaths?.vueDir, 'pages') ||\n\t\t\t\tnormalizedFile.includes('/vue/pages/')\n\t\t\t) {\n\t\t\t\tkeys.push(pascalName);\n\t\t\t\tkeys.push(`${pascalName}Index`);\n\t\t\t\tkeys.push(`${pascalName}CSS`);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'angular':\n\t\t\t// Angular pages have main entry and index\n\t\t\tif (\n\t\t\t\tinSubdir(resolvedPaths?.angularDir, 'pages') ||\n\t\t\t\tnormalizedFile.includes('/angular/pages/')\n\t\t\t) {\n\t\t\t\tkeys.push(pascalName);\n\t\t\t\tkeys.push(`${pascalName}Index`);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'html':\n\t\tcase 'htmx':\n\t\t\t// HTML/HTMX files are directly referenced, no manifest entries needed\n\t\t\tbreak;\n\n\t\tcase 'assets':\n\t\t\t// Style files use CSS suffix after preprocessing.\n\t\t\tif (isStylePath(normalizedFile)) {\n\t\t\t\tkeys.push(`${pascalName}CSS`);\n\t\t\t}\n\t\t\tbreak;\n\t}\n\n\treturn keys;\n};\n",
|
|
89
|
+
"/* WebSocket ready state constant */\nexport const WS_READY_STATE_OPEN = 1;\n\n/* Minimal WebSocket interface for HMR clients\n Compatible with Elysia's WebSocket implementation */\nexport type HMRWebSocket = {\n\tsend(data: string): void;\n\tclose(code?: number, reason?: string): void;\n\treadyState: number;\n};\n",
|
|
90
|
+
"import type { HMRClientMessage } from './messages';\n\n/* Type guard for HMR client messages */\nexport const isValidHMRClientMessage = (\n\tdata: unknown\n): data is HMRClientMessage => {\n\tif (!data || typeof data !== 'object') {\n\t\treturn false;\n\t}\n\n\tif (!('type' in data) || typeof data.type !== 'string') {\n\t\treturn false;\n\t}\n\n\tswitch (data.type) {\n\t\tcase 'ping':\n\t\tcase 'ready':\n\t\tcase 'request-rebuild':\n\t\tcase 'hydration-error':\n\t\tcase 'hmr-timing':\n\t\t\treturn true;\n\t\tdefault:\n\t\t\treturn false;\n\t}\n};\n",
|
|
91
|
+
"import type { HMRState } from './clientManager';\nimport { serializeModuleVersions } from './moduleVersionTracker';\nimport { type HMRWebSocket, WS_READY_STATE_OPEN } from '../../types/websocket';\nimport type { HMRClientMessage } from '../../types/messages';\nimport { isValidHMRClientMessage } from '../../types/typeGuards';\nimport { logHmrUpdate } from '../utils/logger';\n\nconst trySendMessage = (client: HMRWebSocket, messageStr: string) => {\n\ttry {\n\t\tclient.send(messageStr);\n\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nexport const broadcastToClients = (\n\tstate: HMRState,\n\tmessage: { type: string; [key: string]: unknown }\n) => {\n\tconst messageStr = JSON.stringify({\n\t\t...message,\n\t\ttimestamp: Date.now()\n\t});\n\n\tconst shouldRemove = (client: HMRWebSocket) => {\n\t\tif (client.readyState !== WS_READY_STATE_OPEN) return true;\n\n\t\treturn !trySendMessage(client, messageStr);\n\t};\n\n\tconst clientsToRemove: HMRWebSocket[] = [];\n\tstate.connectedClients.forEach((client) => {\n\t\tif (shouldRemove(client)) clientsToRemove.push(client);\n\t});\n\n\tclientsToRemove.forEach((client) => {\n\t\tstate.connectedClients.delete(client);\n\t});\n};\nexport const handleClientConnect = (\n\tstate: HMRState,\n\tclient: HMRWebSocket,\n\tmanifest: Record<string, string>\n) => {\n\tstate.connectedClients.add(client);\n\n\tconst serverVersions = serializeModuleVersions(state.moduleVersions);\n\tclient.send(\n\t\tJSON.stringify({\n\t\t\tdata: {\n\t\t\t\tmanifest,\n\t\t\t\tserverVersions\n\t\t\t},\n\t\t\ttimestamp: Date.now(),\n\t\t\ttype: 'manifest'\n\t\t})\n\t);\n\n\tclient.send(\n\t\tJSON.stringify({\n\t\t\tmessage: 'HMR client connected successfully',\n\t\t\ttimestamp: Date.now(),\n\t\t\ttype: 'connected'\n\t\t})\n\t);\n};\nexport const handleClientDisconnect = (\n\tstate: HMRState,\n\tclient: HMRWebSocket\n) => {\n\tstate.connectedClients.delete(client);\n};\n\nconst parseJsonSafe = (raw: string) => JSON.parse(raw);\n\nconst parseMessage = (message: unknown) => {\n\tif (typeof message === 'string') {\n\t\treturn parseJsonSafe(message);\n\t}\n\n\tif (message instanceof Buffer) {\n\t\treturn parseJsonSafe(message.toString());\n\t}\n\n\tif (message instanceof ArrayBuffer) {\n\t\treturn parseJsonSafe(new TextDecoder().decode(new Uint8Array(message)));\n\t}\n\n\tif (ArrayBuffer.isView(message)) {\n\t\tconst view: Uint8Array = new Uint8Array(\n\t\t\tmessage.buffer,\n\t\t\tmessage.byteOffset,\n\t\t\tmessage.byteLength\n\t\t);\n\n\t\treturn parseJsonSafe(new TextDecoder().decode(view));\n\t}\n\n\tif (typeof message === 'object' && message !== null) {\n\t\treturn message;\n\t}\n\n\treturn null;\n};\n\nconst handleParsedMessage = (\n\tstate: HMRState,\n\tclient: HMRWebSocket,\n\tdata: HMRClientMessage\n) => {\n\tswitch (data.type) {\n\t\tcase 'ping':\n\t\t\tclient.send(\n\t\t\t\tJSON.stringify({\n\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\ttype: 'pong'\n\t\t\t\t})\n\t\t\t);\n\t\t\tbreak;\n\n\t\tcase 'request-rebuild':\n\t\t\tbreak;\n\n\t\tcase 'ready':\n\t\t\tif (data.framework) {\n\t\t\t\tstate.activeFrameworks.add(data.framework);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'hmr-timing':\n\t\t\tlogHmrUpdate(\n\t\t\t\tstate.lastHmrPath ?? '',\n\t\t\t\tstate.lastHmrFramework,\n\t\t\t\tdata.duration\n\t\t\t);\n\t\t\tbreak;\n\t}\n};\n\nexport const handleHMRMessage = (\n\tstate: HMRState,\n\tclient: HMRWebSocket,\n\tmessage: unknown\n) => {\n\ttry {\n\t\tconst parsedData = parseMessage(message);\n\t\tif (parsedData === null) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!isValidHMRClientMessage(parsedData)) {\n\t\t\treturn;\n\t\t}\n\n\t\thandleParsedMessage(state, client, parsedData);\n\t} catch {\n\t\t/* ignored */\n\t}\n};\n",
|
|
92
|
+
"import type { IslandFramework } from '../../types/island';\n\nconst dirtyFrameworks = new Set<IslandFramework>();\n\nexport const isSsrCacheDirty = (framework: IslandFramework) =>\n\tdirtyFrameworks.has(framework);\nexport const markSsrCacheDirty = (framework: IslandFramework) => {\n\tdirtyFrameworks.add(framework);\n};\n",
|
|
93
|
+
"import { BASE_36_RADIX, UNFOUND_INDEX } from '../constants';\nimport { existsSync, readFileSync, statSync } from 'node:fs';\nimport { basename, dirname, extname, resolve, relative } from 'node:path';\nimport { resolvePackageImport } from '../build/resolvePackageImport';\nimport { buildIslandMetadataExports } from '../islands/sourceMetadata';\nimport {\n\tcompileStyleSource,\n\tcreateSvelteStylePreprocessor\n} from '../build/stylePreprocessor';\nimport { lowerSvelteAwaitSlotSyntax } from '../svelte/lowerAwaitSlotSyntax';\nimport { lowerSvelteIslandSyntax } from '../svelte/lowerIslandSyntax';\nimport type { StylePreprocessorConfig } from '../../types/build';\nimport type { BindingMetadata, SFCDescriptor } from '@vue/compiler-sfc';\nimport {\n\tgetInvalidationVersion,\n\tgetTransformed,\n\tinvalidate,\n\tsetTransformed\n} from './transformCache';\n\nconst SRC_PREFIX = '/@src/';\n\nconst jsTranspiler = new Bun.Transpiler({\n\tloader: 'js',\n\ttrimUnusedImports: true\n});\n\n// Shared transpiler for TypeScript files — trimUnusedImports strips\n// type-only imports so the browser doesn't request unnecessary modules\n// Separate transpilers for .ts and .tsx — using 'tsx' for .ts files\n// causes parse errors on TypeScript generics like <T> (interpreted as JSX).\nconst tsTranspiler = new Bun.Transpiler({\n\tloader: 'ts',\n\ttrimUnusedImports: true\n});\n\nconst tsxTranspiler = new Bun.Transpiler({\n\tloader: 'tsx',\n\ttrimUnusedImports: true\n});\n\nconst TRANSPILABLE = new Set(['.ts', '.tsx', '.js', '.jsx', '.mjs']);\n\n// Regex to find all export names in original TypeScript source\nconst ALL_EXPORTS_RE =\n\t/export\\s+(?:type|interface|const|let|var|function|class|enum|abstract\\s+class)\\s+(\\w+)/g;\n\n// Strip string/template literal contents so regex doesn't match\n// export declarations inside code examples embedded as strings.\nconst STRING_CONTENTS_RE =\n\t/`(?:[^`\\\\]|\\\\.)*`|'(?:[^'\\\\]|\\\\.)*'|\"(?:[^\"\\\\]|\\\\.)*\"/gs;\n\n// After transpilation, type exports are stripped. Inject stubs so\n// importing modules can resolve the names (as undefined).\nconst preserveTypeExports = (\n\toriginalSource: string,\n\ttranspiled: string,\n\tvalueExports: string[]\n) => {\n\tconst codeOnly = originalSource.replace(STRING_CONTENTS_RE, '\"\"');\n\tconst allExports: string[] = [];\n\tlet match;\n\tALL_EXPORTS_RE.lastIndex = 0;\n\twhile ((match = ALL_EXPORTS_RE.exec(codeOnly)) !== null) {\n\t\tif (match[1]) allExports.push(match[1]);\n\t}\n\n\tconst valueSet = new Set(valueExports);\n\tconst typeExports = allExports.filter((exp) => !valueSet.has(exp));\n\n\tif (typeExports.length === 0) return transpiled;\n\n\tconst stubs = typeExports\n\t\t.map((name) => `export const ${name} = undefined;`)\n\t\t.join('\\n');\n\n\treturn `${transpiled}\\n${stubs}\\n`;\n};\n// Try known extensions to resolve an extensionless path. Returns\n// the original path if none match (existsSync-based probing).\nconst resolveRelativeExtension = (\n\tsrcPath: string,\n\tprojectRoot: string,\n\textensions: string[]\n) => {\n\tconst found = extensions.find((ext) =>\n\t\texistsSync(resolve(projectRoot, srcPath + ext))\n\t);\n\n\treturn found ? srcPath + found : srcPath;\n};\n\nconst IMPORT_EXTENSIONS = ['.tsx', '.ts', '.jsx', '.js', '.svelte', '.vue'];\nconst SIDE_EFFECT_EXTENSIONS = [\n\t'.tsx',\n\t'.ts',\n\t'.jsx',\n\t'.js',\n\t'.css',\n\t'.svelte',\n\t'.vue'\n];\nconst MODULE_EXTENSIONS = ['.tsx', '.ts', '.jsx', '.js', '.svelte', '.vue'];\nconst RESOLVED_MODULE_EXTENSIONS = new Set([\n\t...IMPORT_EXTENSIONS,\n\t...SIDE_EFFECT_EXTENSIONS,\n\t'.mjs',\n\t'.css'\n]);\n\nconst REACT_EXTENSIONS = new Set(['.tsx', '.jsx']);\n\ntype ModuleServerConfig = {\n\tprojectRoot: string;\n\tvendorPaths: Record<string, string>;\n\tframeworkDirs?: {\n\t\tangular?: string;\n\t\treact?: string;\n\t\tsvelte?: string;\n\t\tvue?: string;\n\t};\n\tstylePreprocessors?: StylePreprocessorConfig;\n};\n\nconst escapeRegex = (str: string) => str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\nconst buildImportRewriter = (vendorPaths: Record<string, string>) => {\n\tconst entries = Object.entries(vendorPaths).sort(\n\t\t([a], [b]) => b.length - a.length\n\t);\n\tif (entries.length === 0) return null;\n\n\tconst alt = entries.map(([spec]) => escapeRegex(spec)).join('|');\n\tconst lookup = new Map(entries);\n\n\t// Single combined regex for all vendor import patterns:\n\t// from 'pkg', import 'pkg', import('pkg')\n\tconst vendorRegex = new RegExp(\n\t\t`((?:from|import)\\\\s*[\"']|import\\\\s*\\\\(\\\\s*[\"'])(${alt})([\"'](?:\\\\s*[;)]?)?)`,\n\t\t'g'\n\t);\n\n\treturn { lookup, vendorRegex };\n};\n\n// Mtime cache — avoids statSync on every import rewrite.\n// Invalidated by the file watcher via invalidateModule().\nconst mtimeCache = new Map<string, number>();\n\n// Append invalidation version if the file's transform cache was\n// cleared (e.g., a downstream import changed). This forces the\n// browser to re-fetch even though the file's own mtime is the same.\nconst buildVersion = (mtime: number, absPath: string) => {\n\tconst invalidationVersion = getInvalidationVersion(absPath);\n\n\treturn invalidationVersion > 0\n\t\t? `${mtime}.${invalidationVersion}`\n\t\t: `${mtime}`;\n};\n\n// Build a /@src/ URL with the file's mtime as a cache buster.\nconst srcUrl = (relPath: string, projectRoot: string) => {\n\tconst base = `${SRC_PREFIX}${relPath.replace(/\\\\/g, '/')}`;\n\tconst absPath = resolve(projectRoot, relPath);\n\n\tconst cached = mtimeCache.get(absPath);\n\tif (cached !== undefined)\n\t\treturn `${base}?v=${buildVersion(cached, absPath)}`;\n\n\ttry {\n\t\tconst mtime = Math.round(statSync(absPath).mtimeMs);\n\t\tmtimeCache.set(absPath, mtime);\n\n\t\treturn `${base}?v=${buildVersion(mtime, absPath)}`;\n\t} catch {\n\t\treturn base;\n\t}\n};\n\n// Resolve a relative import specifier to a /@src/ URL path.\n// Probes known extensions, resolves .svelte module files.\nconst resolveRelativeImport = (\n\trelPath: string,\n\tfileDir: string,\n\tprojectRoot: string,\n\textensions: string[]\n) => {\n\tconst absPath = resolve(fileDir, relPath);\n\tconst rel = relative(projectRoot, absPath);\n\tconst extension = extname(rel);\n\tlet srcPath = RESOLVED_MODULE_EXTENSIONS.has(extension)\n\t\t? rel\n\t\t: resolveRelativeExtension(rel, projectRoot, extensions);\n\n\t// Resolve Svelte module files: .svelte → .svelte.ts / .svelte.js\n\tif (extname(srcPath) === '.svelte') {\n\t\tsrcPath = relative(\n\t\t\tprojectRoot,\n\t\t\tresolveSvelteModulePath(resolve(projectRoot, srcPath))\n\t\t);\n\t}\n\n\treturn srcUrl(srcPath, projectRoot);\n};\n\n// Resolve @absolutejs/* specifiers to project-relative paths.\n// Returns the relative path string on success, or undefined if resolution fails.\nconst resolveAbsoluteSpecifier = (specifier: string, projectRoot: string) => {\n\ttry {\n\t\tconst target =\n\t\t\tresolvePackageImport(specifier, ['browser', 'import']) ??\n\t\t\tBun.resolveSync(specifier, projectRoot);\n\n\t\treturn relative(projectRoot, target);\n\t} catch {\n\t\t// Resolution failed — caller falls through to stub\n\t\treturn undefined;\n\t}\n};\n\nconst rewriteImports = (\n\tcode: string,\n\tfilePath: string,\n\tprojectRoot: string,\n\trewriter: ReturnType<typeof buildImportRewriter>\n) => {\n\tlet result = code;\n\n\t// Step 1: Rewrite KNOWN vendor specifiers in a single pass.\n\tconst vendorReplace = (\n\t\t_match: string,\n\t\tprefix: string,\n\t\tspecifier: string,\n\t\tsuffix: string\n\t) => {\n\t\tconst webPath = rewriter?.lookup.get(specifier);\n\n\t\treturn webPath ? `${prefix}${webPath}${suffix}` : _match;\n\t};\n\n\tif (rewriter) {\n\t\trewriter.vendorRegex.lastIndex = 0;\n\t\tresult = result.replace(rewriter.vendorRegex, vendorReplace);\n\t}\n\n\t// Step 2: Rewrite remaining bare specifiers (unknown packages) to stubs.\n\t// Line-anchored to avoid matching inside string literals.\n\tconst stubReplace = (\n\t\t_match: string,\n\t\tprefix: string,\n\t\tspecifier: string,\n\t\tsuffix: string\n\t) => {\n\t\t// Skip if already rewritten to a path\n\t\tif (specifier.startsWith('/') || specifier.startsWith('.'))\n\t\t\treturn _match;\n\n\t\t// Serve client-safe split AbsoluteJS package exports as real modules\n\t\t// instead of stubbing them so package entrypoints hydrate correctly.\n\t\tif (!specifier.startsWith('@absolutejs/'))\n\t\t\treturn `${prefix}/@stub/${encodeURIComponent(specifier)}${suffix}`;\n\n\t\tconst resolved = resolveAbsoluteSpecifier(specifier, projectRoot);\n\t\tif (resolved) {\n\t\t\treturn `${prefix}${srcUrl(resolved, projectRoot)}${suffix}`;\n\t\t}\n\n\t\treturn `${prefix}/@stub/${encodeURIComponent(specifier)}${suffix}`;\n\t};\n\n\t// Combined: import/export from 'bare', import 'bare' (line-anchored)\n\t// Uses [\\s\\S]+? to match multi-line imports (e.g., import {\\n foo\\n} from 'pkg')\n\tresult = result.replace(\n\t\t/^((?:import\\s+[\\s\\S]+?\\s+from|export\\s+[\\s\\S]+?\\s+from|import)\\s*[\"'])([^\"'./][^\"']*)([\"'])/gm,\n\t\tstubReplace\n\t);\n\t// Dynamic: import('bare')\n\tresult = result.replace(\n\t\t/(import\\s*\\(\\s*[\"'])([^\"'./][^\"']*)([\"']\\s*\\))/g,\n\t\tstubReplace\n\t);\n\n\t// Rewrite relative imports to /@src/ absolute paths\n\tconst fileDir = dirname(filePath);\n\tresult = result.replace(\n\t\t/(from\\s*[\"'])(\\.\\.?\\/[^\"']+)([\"'])/g,\n\t\t(_match, prefix, relPath, suffix) =>\n\t\t\t`${prefix}${resolveRelativeImport(relPath, fileDir, projectRoot, IMPORT_EXTENSIONS)}${suffix}`\n\t);\n\n\t// Rewrite dynamic relative imports\n\tresult = result.replace(\n\t\t/(import\\s*\\(\\s*[\"'])(\\.\\.?\\/[^\"']+)([\"']\\s*\\))/g,\n\t\t(_match, prefix, relPath, suffix) =>\n\t\t\t`${prefix}${resolveRelativeImport(relPath, fileDir, projectRoot, IMPORT_EXTENSIONS)}${suffix}`\n\t);\n\n\t// Rewrite side-effect relative imports: import './foo'\n\tresult = result.replace(\n\t\t/(import\\s*[\"'])(\\.\\.?\\/[^\"']+)([\"']\\s*;?)/g,\n\t\t(_match, prefix, relPath, suffix) =>\n\t\t\t`${prefix}${resolveRelativeImport(relPath, fileDir, projectRoot, SIDE_EFFECT_EXTENSIONS)}${suffix}`\n\t);\n\n\t// Rewrite absolute filesystem paths (from generated index files that\n\t// import hmrClient, refreshSetup, etc. via absolute paths)\n\tresult = result.replace(\n\t\t/((?:from|import)\\s*[\"'])(\\/[^\"']+\\.(tsx?|jsx?|ts))([\"'])/g,\n\t\t(_match, prefix, absPath, _ext, suffix) => {\n\t\t\tif (absPath.startsWith(projectRoot)) {\n\t\t\t\tconst rel = relative(projectRoot, absPath).replace(/\\\\/g, '/');\n\n\t\t\t\treturn `${prefix}${srcUrl(rel, projectRoot)}${suffix}`;\n\t\t\t}\n\t\t\t// Path outside project root (for example, Bun-linked package files\n\t\t\t// whose realpath points at a sibling workspace). We still rewrite it\n\t\t\t// through /@src/ so the module server can serve it consistently.\n\t\t\tconst rel = relative(projectRoot, absPath).replace(/\\\\/g, '/');\n\n\t\t\treturn `${prefix}${srcUrl(rel, projectRoot)}${suffix}`;\n\t\t}\n\t);\n\n\t// Rewrite new URL('./relative', import.meta.url) for web workers / assets\n\tresult = result.replace(\n\t\t/new\\s+URL\\(\\s*[\"'](\\.\\.?\\/[^\"']+)[\"']\\s*,\\s*import\\.meta\\.url\\s*\\)/g,\n\t\t(_match, relPath) => {\n\t\t\tconst absPath = resolve(fileDir, relPath);\n\t\t\tconst rel = relative(projectRoot, absPath);\n\n\t\t\treturn `new URL('${srcUrl(rel, projectRoot)}', import.meta.url)`;\n\t\t}\n\t);\n\n\t// Rewrite import.meta.resolve('./relative') for asset/worker references\n\tresult = result.replace(\n\t\t/import\\.meta\\.resolve\\(\\s*[\"'](\\.\\.?\\/[^\"']+)[\"']\\s*\\)/g,\n\t\t(_match, relPath) => {\n\t\t\tconst absPath = resolve(fileDir, relPath);\n\t\t\tconst rel = relative(projectRoot, absPath);\n\n\t\t\treturn `'${srcUrl(rel, projectRoot)}'`;\n\t\t}\n\t);\n\n\treturn result;\n};\n\n// Use Bun.Transpiler (~0.1ms) instead of Bun.build (~2-150ms) for\n// React files. Manually inject $RefreshReg$/$RefreshSig$ calls\n// after transpilation.\n// Bun.Transpiler uses an auto-generated name for JSX (jsxDEV_XXXXXXXX)\n// but doesn't emit the import statement. We need to detect the generated\n// name and add the import ourselves.\nconst JSX_AUTO_RE = /\\b(jsxDEV_[a-z0-9]+)\\b/;\nconst JSXS_AUTO_RE = /\\b(jsxs_[a-z0-9]+)\\b/;\nconst JSX_PROD_RE = /\\b(jsx_[a-z0-9]+)\\b/;\nconst FRAGMENT_RE = /\\b(Fragment_[a-z0-9]+)\\b/;\n\nconst addJsxImport = (code: string) => {\n\tconst imports: string[] = [];\n\n\tconst jsxDevMatch = JSX_AUTO_RE.exec(code);\n\tif (jsxDevMatch) {\n\t\timports.push(\n\t\t\t`import { jsxDEV as ${jsxDevMatch[1]} } from \"react/jsx-dev-runtime\";`\n\t\t);\n\t}\n\n\tconst jsxsMatch = JSXS_AUTO_RE.exec(code);\n\tif (jsxsMatch && (!jsxDevMatch || jsxsMatch[1] !== jsxDevMatch[1])) {\n\t\timports.push(\n\t\t\t`import { jsxs as ${jsxsMatch[1]} } from \"react/jsx-runtime\";`\n\t\t);\n\t}\n\n\tconst jsxProdMatch = JSX_PROD_RE.exec(code);\n\tif (jsxProdMatch) {\n\t\timports.push(\n\t\t\t`import { jsx as ${jsxProdMatch[1]} } from \"react/jsx-runtime\";`\n\t\t);\n\t}\n\n\tconst fragmentMatch = FRAGMENT_RE.exec(code);\n\tif (fragmentMatch) {\n\t\timports.push(\n\t\t\t`import { Fragment as ${fragmentMatch[1]} } from \"react\";`\n\t\t);\n\t}\n\n\tif (imports.length === 0) return code;\n\n\treturn `${imports.join('\\n')}\\n${code}`;\n};\n\n// With the patched Bun.Transpiler (PR #28312), reactFastRefresh: true\n// injects $RefreshReg$/$RefreshSig$ natively — no manual injection needed.\n// Falls back to plain transpilation if reactFastRefresh isn't available.\n// reactFastRefresh is available via patched Bun (PR #28312) but not\n// yet in the upstream type definitions, so we extend the options type.\nconst reactTranspilerOptions: ConstructorParameters<\n\ttypeof Bun.Transpiler\n>[0] & {\n\treactFastRefresh?: boolean;\n} = {\n\tloader: 'tsx',\n\treactFastRefresh: true,\n\ttrimUnusedImports: true\n};\nconst reactTranspiler = new Bun.Transpiler(reactTranspilerOptions);\n\nconst transformReactFile = (\n\tfilePath: string,\n\tprojectRoot: string,\n\trewriter: ReturnType<typeof buildImportRewriter>\n) => {\n\tconst raw = readFileSync(filePath, 'utf-8');\n\tconst valueExports = tsxTranspiler.scan(raw).exports;\n\tlet transpiled = reactTranspiler.transformSync(raw);\n\ttranspiled = preserveTypeExports(raw, transpiled, valueExports);\n\n\t// Bun.Transpiler auto-generates JSX function names (jsxDEV_XXXXXXXX)\n\t// but doesn't emit the import — it expects the bundler to resolve it.\n\ttranspiled = addJsxImport(transpiled);\n\n\t// The patched transpiler imports register/createSignatureFunctionForTransform\n\t// from react-refresh/runtime, creating a separate module instance. But the\n\t// initial bundled index uses window.$RefreshReg$/$RefreshSig$ globals.\n\t// Replace the import with globals so registrations go to the same runtime.\n\ttranspiled = transpiled.replace(\n\t\t/import\\s*\\{[^}]*\\}\\s*from\\s*[\"']react-refresh\\/runtime[\"'];?\\n?/,\n\t\t''\n\t);\n\t// Map the aliased names to the window globals\n\ttranspiled = transpiled.replace(\n\t\t/\\$RefreshReg\\$_[a-z0-9]+/g,\n\t\t'$RefreshReg$'\n\t);\n\ttranspiled = transpiled.replace(\n\t\t/\\$RefreshSig\\$_[a-z0-9]+/g,\n\t\t'$RefreshSig$'\n\t);\n\t// Prepend window global stubs for ESM scope\n\ttranspiled =\n\t\t`var $RefreshReg$ = window.$RefreshReg$ || function(){};\\n` +\n\t\t`var $RefreshSig$ = window.$RefreshSig$ || function(){ return function(t){ return t; }; };\\n${\n\t\t\ttranspiled\n\t\t}`;\n\n\t// Bun.Transpiler uses \"input.tsx\" as the default filename in\n\t// $RefreshReg$ IDs. Replace with the real relative path so IDs\n\t// match the initial bundled registration.\n\tconst relPath = relative(projectRoot, filePath).replace(/\\\\/g, '/');\n\ttranspiled = transpiled.replace(/\\binput\\.tsx:/g, `${relPath}:`);\n\ttranspiled += buildIslandMetadataExports(raw);\n\n\treturn rewriteImports(transpiled, filePath, projectRoot, rewriter);\n};\n\n// Use Bun.Transpiler for non-React files (no refresh injection needed)\nconst transformPlainFile = (\n\tfilePath: string,\n\tprojectRoot: string,\n\trewriter: ReturnType<typeof buildImportRewriter>,\n\tvueDir?: string\n) => {\n\tconst raw = readFileSync(filePath, 'utf-8');\n\tconst ext = extname(filePath);\n\tconst isTS = ext === '.ts' || ext === '.tsx';\n\tconst isTSX = ext === '.tsx' || ext === '.jsx';\n\n\tlet transpiler = jsTranspiler;\n\tif (isTSX) transpiler = tsxTranspiler;\n\telse if (isTS) transpiler = tsTranspiler;\n\tconst valueExports = isTS ? transpiler.scan(raw).exports : [];\n\tlet transpiled = transpiler.transformSync(raw);\n\n\tif (isTS) {\n\t\ttranspiled = preserveTypeExports(raw, transpiled, valueExports);\n\t}\n\n\ttranspiled = rewriteImports(transpiled, filePath, projectRoot, rewriter);\n\n\t// Vue composable HMR state tracking: wrap exported use* functions\n\t// so ref values are captured and restored across HMR reloads.\n\tif (!vueDir || !filePath.startsWith(vueDir) || !isTS) return transpiled;\n\n\tconst useExports = valueExports.filter((e) => e.startsWith('use'));\n\tif (useExports.length === 0) return transpiled;\n\n\treturn injectComposableTracking(transpiled, filePath, useExports);\n};\n\n// Classify a character for brace-counting: returns the new string\n// context and whether to skip further processing.\nconst classifyChar = (\n\tchar: string,\n\tprevChar: string,\n\tinString: string | false\n): { nextString: string | false; skip: boolean } => {\n\tif (inString) {\n\t\tconst closed = char === inString && prevChar !== '\\\\';\n\n\t\treturn { nextString: closed ? false : inString, skip: true };\n\t}\n\tif (char === '\"' || char === \"'\" || char === '`')\n\t\treturn { nextString: char, skip: true };\n\n\treturn { nextString: false, skip: false };\n};\n\n// Find the end of a function expression by counting braces/parens,\n// skipping string literals. Returns the index of the trailing ';'.\nconst findFunctionEnd = (source: string, startPos: number) => {\n\tlet depth = 0;\n\tlet inString: string | false = false;\n\tfor (let idx = startPos; idx < source.length; idx++) {\n\t\tconst char = source[idx] ?? '';\n\t\tconst classified = classifyChar(char, source[idx - 1] ?? '', inString);\n\t\tinString = classified.nextString;\n\t\tif (classified.skip) continue;\n\n\t\tif (char === '{' || char === '(') depth++;\n\t\tif (char === '}' || char === ')') depth--;\n\t\tif (depth === 0 && char === ';') return idx;\n\t}\n\n\treturn startPos;\n};\n\n/** Inject HMR state tracking into Vue composable exports.\n * Wraps each use* export to capture/restore ref values across reloads. */\nconst injectComposableTracking = (\n\tcode: string,\n\tfilePath: string,\n\tuseExports: string[]\n) => {\n\tconst moduleId = JSON.stringify(filePath);\n\n\t// Inject the tracking runtime at the top\n\tconst runtime = [\n\t\t`var __hmr_cs = (globalThis.__HMR_COMPOSABLE_STATE__ ??= {});`,\n\t\t`var __hmr_mid = ${moduleId};`,\n\t\t`var __hmr_prev_refs = __hmr_cs[__hmr_mid];`,\n\t\t`var __hmr_idx = {};`,\n\t\t`__hmr_cs[__hmr_mid] = {};`,\n\t\t`function __hmr_wrap(name, fn) {`,\n\t\t` return function() {`,\n\t\t` var idx = (__hmr_idx[name] = (__hmr_idx[name] ?? -1) + 1);`,\n\t\t` var result = fn.apply(this, arguments);`,\n\t\t` if (result && typeof result === \"object\") {`,\n\t\t` var refs = {};`,\n\t\t` for (var k in result) {`,\n\t\t` var v = result[k];`,\n\t\t` if (v && typeof v === \"object\" && \"value\" in v && !v.effect && typeof v.value !== \"function\") {`,\n\t\t` refs[k] = v;`,\n\t\t` }`,\n\t\t` }`,\n\t\t` (__hmr_cs[__hmr_mid][name] ??= [])[idx] = refs;`,\n\t\t` if (__hmr_prev_refs && __hmr_prev_refs[name] && __hmr_prev_refs[name][idx]) {`,\n\t\t` var old = __hmr_prev_refs[name][idx];`,\n\t\t` for (var k in old) {`,\n\t\t` var nv = result[k];`,\n\t\t` var ov = old[k];`,\n\t\t` if (nv && ov && typeof nv === \"object\" && \"value\" in nv && !nv.effect && typeof nv.value === typeof ov.value) {`,\n\t\t` nv.value = ov.value;`,\n\t\t` }`,\n\t\t` }`,\n\t\t` }`,\n\t\t` }`,\n\t\t` return result;`,\n\t\t` };`,\n\t\t`}`\n\t].join('\\n');\n\n\tlet result = `${runtime}\\n${code}`;\n\n\t// Wrap each use* export with __hmr_wrap.\n\t// Find the export assignment, then use brace/paren counting to locate\n\t// the end of the function expression (handles nested braces in the body).\n\tfor (const name of useExports) {\n\t\tresult = wrapComposableExport(result, name);\n\t}\n\n\treturn result;\n};\n\n// Find and wrap a single use* export with __hmr_wrap().\nconst wrapComposableExport = (source: string, name: string) => {\n\tconst marker = new RegExp(\n\t\t`export\\\\s+(?:const|var|let)\\\\s+${name}\\\\s*=\\\\s*`\n\t);\n\tconst match = marker.exec(source);\n\tif (!match) return source;\n\n\tconst insertPos = match.index + match[0].length;\n\tconst endPos = findFunctionEnd(source, insertPos);\n\tconst funcBody = source.slice(insertPos, endPos);\n\n\treturn `${source.slice(0, insertPos)}__hmr_wrap(${JSON.stringify(name)}, ${funcBody})${source.slice(endPos)}`;\n};\n\n// Virtual CSS modules for Svelte's css:'external' mode.\n// Keyed by fake path (e.g., /path/to/Counter.svelte.css).\nconst svelteExternalCss = new Map<string, string>();\n\n// ─── Framework-specific transforms (Svelte, Vue) ────────────\n// Cached compiler references — avoid re-importing on every request.\n// Pre-set via warmCompilers() at startup to eliminate first-edit spike.\nlet svelteCompiler: typeof import('svelte/compiler') | null = null;\nlet vueCompiler: typeof import('@vue/compiler-sfc') | null = null;\n\nconst getLoadedSvelteCompiler = () => {\n\tif (!svelteCompiler) throw new Error('Svelte compiler is not loaded.');\n\n\treturn svelteCompiler;\n};\n\nconst getLoadedVueCompiler = () => {\n\tif (!vueCompiler) throw new Error('Vue compiler is not loaded.');\n\n\treturn vueCompiler;\n};\n\nexport const warmCompilers = async (frameworks: {\n\tsvelte?: boolean;\n\tvue?: boolean;\n}) => {\n\tconst [svelteModule, vueModule] = await Promise.all([\n\t\tframeworks.svelte ? import('svelte/compiler') : undefined,\n\t\tframeworks.vue ? import('@vue/compiler-sfc') : undefined\n\t]);\n\tif (svelteModule) {\n\t\tsvelteCompiler = svelteModule;\n\t\t// JIT-warm the compile function with a trivial component so\n\t\t// the first real HMR compile doesn't pay the JIT cost (~60ms).\n\t\tsvelteModule.compile('<script>let x=$state(0)</script>{x}', {\n\t\t\tcss: 'external',\n\t\t\tdev: true,\n\t\t\tfilename: '_warm.svelte',\n\t\t\tgenerate: 'client',\n\t\t\thmr: true\n\t\t});\n\t}\n\tif (!vueModule) return;\n\n\tvueCompiler = vueModule;\n\t// Same for Vue — warm compileScript + compileTemplate\n\tconst { descriptor } = vueModule.parse(\n\t\t'<script setup>const x=1</script><template>{{x}}</template>',\n\t\t{ filename: '_warm.vue' }\n\t);\n\tvueModule.compileScript(descriptor, { id: 'w', inlineTemplate: false });\n\tif (!descriptor.template) return;\n\n\tvueModule.compileTemplate({\n\t\tfilename: '_warm.vue',\n\t\tid: 'w',\n\t\tsource: descriptor.template.content\n\t});\n};\n\n// Compile a .svelte.ts module file — transpile TS, then compileModule.\nconst compileSvelteModule = (raw: string, filePath: string) => {\n\tconst compiler = getLoadedSvelteCompiler();\n\tconst source = tsTranspiler.transformSync(raw);\n\n\treturn compiler.compileModule(source, {\n\t\tdev: true,\n\t\tfilename: filePath\n\t}).js.code;\n};\n\n// Compile a .svelte component file — hmr: true, css: 'external'.\nconst compileSvelteComponent = (\n\traw: string,\n\tfilePath: string,\n\tprojectRoot: string,\n\tenableAsync = false\n) => {\n\tconst compiler = getLoadedSvelteCompiler();\n\tconst compiled = compiler.compile(raw, {\n\t\tcss: 'external',\n\t\tdev: true,\n\t\texperimental: {\n\t\t\tasync: enableAsync\n\t\t},\n\t\tfilename: filePath,\n\t\tgenerate: 'client',\n\t\thmr: true\n\t});\n\tlet { code } = compiled.js;\n\n\t// If the component has styles, inject them as a virtual CSS\n\t// import. The handleCssRequest handler serves it as a <style>.\n\tif (compiled.css?.code) {\n\t\tconst cssPath = `${filePath}.css`;\n\t\tsvelteExternalCss.set(cssPath, compiled.css.code);\n\t\tconst cssUrl = srcUrl(relative(projectRoot, cssPath), projectRoot);\n\t\tcode = `import \"${cssUrl}\";\\n${code}`;\n\t}\n\n\t// ── import.meta.hot → accept registry ──\n\tconst moduleUrl = `${SRC_PREFIX}${relative(projectRoot, filePath).replace(/\\\\/g, '/')}`;\n\tcode = code.replace(\n\t\t/if\\s*\\(import\\.meta\\.hot\\)\\s*\\{/,\n\t\t`if (typeof window !== \"undefined\") {\\n` +\n\t\t\t` if (!window.__SVELTE_HMR_ACCEPT__) window.__SVELTE_HMR_ACCEPT__ = {};\\n` +\n\t\t\t` var __hmr_accept = function(cb) { window.__SVELTE_HMR_ACCEPT__[${JSON.stringify(moduleUrl)}] = cb; };`\n\t);\n\n\treturn code.replace(/import\\.meta\\.hot\\.accept\\(/g, '__hmr_accept(');\n};\n\n// Compile .svelte files to client JS using svelte/compiler.\n// Keeps .svelte extensions in imports so the module server handles children.\nconst transformSvelteFile = async (\n\tfilePath: string,\n\tprojectRoot: string,\n\trewriter: ReturnType<typeof buildImportRewriter>,\n\tstylePreprocessors?: StylePreprocessorConfig\n) => {\n\tconst raw = readFileSync(filePath, 'utf-8');\n\n\tif (!svelteCompiler) {\n\t\tsvelteCompiler = await import('svelte/compiler');\n\t}\n\n\tconst isModule =\n\t\tfilePath.endsWith('.svelte.ts') || filePath.endsWith('.svelte.js');\n\tconst loweredAwaitSource = isModule\n\t\t? { code: raw, transformed: false }\n\t\t: lowerSvelteAwaitSlotSyntax(raw);\n\tconst loweredSource = isModule\n\t\t? loweredAwaitSource\n\t\t: lowerSvelteIslandSyntax(loweredAwaitSource.code, 'client');\n\tconst source = isModule\n\t\t? loweredSource.code\n\t\t: (\n\t\t\t\tawait svelteCompiler.preprocess(\n\t\t\t\t\tloweredSource.code,\n\t\t\t\t\tcreateSvelteStylePreprocessor(stylePreprocessors)\n\t\t\t\t)\n\t\t\t).code;\n\tconst enableAsync =\n\t\tloweredAwaitSource.transformed || loweredSource.transformed;\n\n\tconst code = isModule\n\t\t? compileSvelteModule(source, filePath)\n\t\t: compileSvelteComponent(source, filePath, projectRoot, enableAsync);\n\n\treturn rewriteImports(code, filePath, projectRoot, rewriter);\n};\n\ntype VueSFCDescriptor = SFCDescriptor;\n\ntype VueSFCCompiledScript = {\n\tbindings: BindingMetadata;\n\tcontent: string;\n};\n\n// Compile a Vue SFC template and attach the render function to the script.\nconst compileVueTemplate = (\n\tdescriptor: VueSFCDescriptor,\n\tcompiledScript: VueSFCCompiledScript,\n\tfilePath: string,\n\tcomponentId: string\n) => {\n\tconst compiler = getLoadedVueCompiler();\n\tconst scriptContent = compiledScript.content;\n\tif (!descriptor.template) return scriptContent;\n\n\tconst isScoped = descriptor.styles.some((style) => style.scoped);\n\tconst templateResult = compiler.compileTemplate({\n\t\tcompilerOptions: {\n\t\t\tbindingMetadata: compiledScript.bindings,\n\t\t\tprefixIdentifiers: true\n\t\t},\n\t\tfilename: filePath,\n\t\tid: componentId,\n\t\tscoped: isScoped,\n\t\tsource: descriptor.template.content\n\t});\n\n\tlet code = scriptContent.replace('export default', 'const __script__ =');\n\tcode += `\\n${templateResult.code}`;\n\tcode += '\\n__script__.render = render;';\n\tcode += '\\nexport default __script__;';\n\n\treturn code;\n};\n\n// Compile and inject scoped CSS as inline <style> for a Vue SFC.\nconst compileVueStyles = async (\n\tdescriptor: VueSFCDescriptor,\n\tfilePath: string,\n\tcomponentId: string,\n\tcode: string,\n\tstylePreprocessors?: StylePreprocessorConfig\n) => {\n\tif (descriptor.styles.length === 0) return code;\n\n\tconst compiler = getLoadedVueCompiler();\n\tconst cssCode = (\n\t\tawait Promise.all(\n\t\t\tdescriptor.styles.map(\n\t\t\t\tasync (style) =>\n\t\t\t\t\tcompiler.compileStyle({\n\t\t\t\t\t\tfilename: filePath,\n\t\t\t\t\t\tid: `data-v-${componentId}`,\n\t\t\t\t\t\tscoped: Boolean(style.scoped),\n\t\t\t\t\t\tsource: style.lang\n\t\t\t\t\t\t\t? await compileStyleSource(\n\t\t\t\t\t\t\t\t\tfilePath,\n\t\t\t\t\t\t\t\t\tstyle.content,\n\t\t\t\t\t\t\t\t\tstyle.lang,\n\t\t\t\t\t\t\t\t\tstylePreprocessors\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t: style.content,\n\t\t\t\t\t\ttrim: true\n\t\t\t\t\t}).code\n\t\t\t)\n\t\t)\n\t).join('\\n');\n\n\tconst escaped = cssCode\n\t\t.replace(/\\\\/g, '\\\\\\\\')\n\t\t.replace(/`/g, '\\\\`')\n\t\t.replace(/\\$/g, '\\\\$');\n\tconst hmrId = JSON.stringify(filePath);\n\tconst cssInjection = [\n\t\t`var __style=document.createElement('style');`,\n\t\t`__style.textContent=\\`${escaped}\\`;`,\n\t\t`__style.dataset.hmrId=${hmrId};`,\n\t\t`var __prev=document.querySelector('style[data-hmr-id=\"${filePath}\"]');`,\n\t\t`if(__prev)__prev.remove();`,\n\t\t`document.head.appendChild(__style);`\n\t].join('');\n\n\treturn `${cssInjection}\\n${code}`;\n};\n\n// Compile .vue SFC files to client JS using @vue/compiler-sfc.\nconst transformVueFile = async (\n\tfilePath: string,\n\tprojectRoot: string,\n\trewriter: ReturnType<typeof buildImportRewriter>,\n\tvueDir?: string,\n\tstylePreprocessors?: StylePreprocessorConfig\n) => {\n\tconst raw = readFileSync(filePath, 'utf-8');\n\n\tif (!vueCompiler) {\n\t\tvueCompiler = await import('@vue/compiler-sfc');\n\t}\n\n\tconst fileName = basename(filePath, '.vue');\n\tconst componentId = fileName.toLowerCase();\n\tconst { descriptor } = vueCompiler.parse(raw, { filename: filePath });\n\n\tconst compiledScript = vueCompiler.compileScript(descriptor, {\n\t\tid: componentId,\n\t\tinlineTemplate: false\n\t});\n\tconst compiledSfcScript: VueSFCCompiledScript = {\n\t\tbindings: compiledScript.bindings ?? {},\n\t\tcontent: compiledScript.content\n\t};\n\n\tlet code = compileVueTemplate(\n\t\tdescriptor,\n\t\tcompiledSfcScript,\n\t\tfilePath,\n\t\tcomponentId\n\t);\n\tcode = await compileVueStyles(\n\t\tdescriptor,\n\t\tfilePath,\n\t\tcomponentId,\n\t\tcode,\n\t\tstylePreprocessors\n\t);\n\n\t// Vue's compileScript strips user TypeScript but the generated\n\t// wrapper code still has `: any` annotations (e.g. __props: any,\n\t// _ctx: any). Run through the TS transpiler to strip those.\n\tcode = tsTranspiler.transformSync(code);\n\n\t// Inject Vue HMR — use rerender() to preserve reactive state.\n\t// rerender() only swaps the render function (like React Fast Refresh).\n\t// reload() would reset state by re-running setup().\n\tcode = injectVueHmr(code, filePath, projectRoot, vueDir);\n\n\treturn rewriteImports(code, filePath, projectRoot, rewriter);\n};\n\n// Inject Vue HMR runtime registration and rerender call.\nconst injectVueHmr = (\n\tcode: string,\n\tfilePath: string,\n\tprojectRoot: string,\n\tvueDir?: string\n) => {\n\tconst hmrBase = vueDir ? resolve(vueDir) : projectRoot;\n\tconst hmrId = relative(hmrBase, filePath)\n\t\t.replace(/\\\\/g, '/')\n\t\t.replace(/\\.vue$/, '');\n\tlet result = code.replace(/export\\s+default\\s+/, 'var __hmr_comp__ = ');\n\tresult += [\n\t\t'',\n\t\t`__hmr_comp__.__hmrId = ${JSON.stringify(hmrId)};`,\n\t\t`if (typeof __VUE_HMR_RUNTIME__ !== \"undefined\") {`,\n\t\t` __VUE_HMR_RUNTIME__.createRecord(${JSON.stringify(hmrId)}, __hmr_comp__);`,\n\t\t` __VUE_HMR_RUNTIME__.rerender(${JSON.stringify(hmrId)}, __hmr_comp__.render);`,\n\t\t`}`,\n\t\t'export default __hmr_comp__;'\n\t].join('\\n');\n\n\treturn result;\n};\n\n// Resolve .svelte module files that may exist as .svelte.ts or .svelte.js\nconst resolveSvelteModulePath = (path: string) => {\n\tif (existsSync(path)) return path;\n\tif (existsSync(`${path}.ts`)) return `${path}.ts`;\n\tif (existsSync(`${path}.js`)) return `${path}.js`;\n\n\treturn path;\n};\n\n// Shared response builder for transformed modules\nconst jsResponse = (body: string) => {\n\tconst etag = `\"${Bun.hash(body).toString(BASE_36_RADIX)}\"`;\n\n\treturn new Response(body, {\n\t\theaders: {\n\t\t\t'Cache-Control': 'no-cache',\n\t\t\t'Content-Type': 'application/javascript',\n\t\t\tETag: etag\n\t\t}\n\t});\n};\n\nconst handleCssRequest = (filePath: string) => {\n\tconst raw = readFileSync(filePath, 'utf-8');\n\tconst escaped = raw\n\t\t.replace(/\\\\/g, '\\\\\\\\')\n\t\t.replace(/`/g, '\\\\`')\n\t\t.replace(/\\$/g, '\\\\$');\n\n\treturn [\n\t\t`const style = document.createElement('style');`,\n\t\t`style.textContent = \\`${escaped}\\`;`,\n\t\t`style.dataset.hmrId = ${JSON.stringify(filePath)};`,\n\t\t`const existing = document.querySelector(\\`style[data-hmr-id=\"${filePath}\"]\\`);`,\n\t\t`if (existing) existing.remove();`,\n\t\t`document.head.appendChild(style);`\n\t].join('\\n');\n};\n\n// Generate HMR bootstrap wrapper for Svelte.\n// Uses dynamic import() with a cache-busting timestamp so the\n// browser fetches the freshly compiled component every time.\nconst generateSvelteHmrBootstrap = (\n\tmoduleUrl: string,\n\tvendorPaths: Record<string, string>,\n\ttimestamp: string\n) => {\n\tconst sveltePath = vendorPaths['svelte'] || '/svelte/vendor/svelte.js';\n\n\treturn [\n\t\t`import { mount, unmount } from \"${sveltePath}\";`,\n\t\t`const { default: Component } = await import(\"${moduleUrl}?t=${timestamp}\");`,\n\t\t``,\n\t\t`// Extract count from DOM before unmount (survives across runtime instances)`,\n\t\t`var countBtn = document.querySelector(\"button\");`,\n\t\t`var countMatch = countBtn && countBtn.textContent && countBtn.textContent.match(/(\\\\d+)/);`,\n\t\t`var domCount = countMatch ? parseInt(countMatch[1], 10) : null;`,\n\t\t``,\n\t\t`var preservedState = window.__HMR_PRESERVED_STATE__ || {};`,\n\t\t`if (domCount !== null && preservedState.initialCount === undefined) {`,\n\t\t` preservedState.initialCount = domCount;`,\n\t\t`}`,\n\t\t`var initialProps = window.__INITIAL_PROPS__ || {};`,\n\t\t`var mergedProps = Object.assign({}, initialProps, preservedState);`,\n\t\t``,\n\t\t`// Update __INITIAL_PROPS__ so subsequent HMR cycles start with current state`,\n\t\t`if (domCount !== null) window.__INITIAL_PROPS__ = Object.assign({}, initialProps, { initialCount: domCount });`,\n\t\t``,\n\t\t`if (typeof window.__SVELTE_UNMOUNT__ === \"function\") {`,\n\t\t` try { window.__SVELTE_UNMOUNT__(); } catch (err) { /* ignore */ }`,\n\t\t`}`,\n\t\t``,\n\t\t`var target = document.getElementById(\"__absolute_svelte_root__\") || document.body;`,\n\t\t`var component = mount(Component, { target, props: mergedProps });`,\n\t\t`window.__SVELTE_COMPONENT__ = component;`,\n\t\t`window.__SVELTE_UNMOUNT__ = function() { unmount(component); };`,\n\t\t`window.__HMR_PRESERVED_STATE__ = undefined;`\n\t].join('\\n');\n};\n\n// Generate HMR bootstrap wrapper for Vue.\n// Same approach as Svelte — full remount via vendor Vue's createApp.\nconst generateVueHmrBootstrap = (\n\tmoduleUrl: string,\n\tvendorPaths: Record<string, string>,\n\ttimestamp: string\n) => {\n\tconst vuePath = vendorPaths['vue'] || '/vue/vendor/vue.js';\n\n\treturn [\n\t\t`import { createApp } from \"${vuePath}\";`,\n\t\t`const { default: Component } = await import(\"${moduleUrl}?t=${timestamp}\");`,\n\t\t``,\n\t\t`// Extract count from DOM before unmount (works across Vue instances)`,\n\t\t`var countBtn = document.querySelector(\"button\");`,\n\t\t`var countMatch = countBtn && countBtn.textContent && countBtn.textContent.match(/(\\\\d+)/);`,\n\t\t`var domCount = countMatch ? parseInt(countMatch[1], 10) : null;`,\n\t\t``,\n\t\t`var preservedState = window.__HMR_PRESERVED_STATE__ || {};`,\n\t\t`if (domCount !== null && preservedState.initialCount === undefined) {`,\n\t\t` preservedState.initialCount = domCount;`,\n\t\t`}`,\n\t\t`var initialProps = window.__INITIAL_PROPS__ || {};`,\n\t\t`var mergedProps = Object.assign({}, initialProps, preservedState);`,\n\t\t``,\n\t\t`// Update __INITIAL_PROPS__ so subsequent HMR cycles start with current state`,\n\t\t`if (domCount !== null) window.__INITIAL_PROPS__ = Object.assign({}, initialProps, { initialCount: domCount });`,\n\t\t``,\n\t\t`var root = document.getElementById(\"root\");`,\n\t\t`var savedHTML = root ? root.innerHTML : \"\";`,\n\t\t`if (window.__VUE_APP__) {`,\n\t\t` window.__VUE_APP__.unmount();`,\n\t\t` window.__VUE_APP__ = null;`,\n\t\t`}`,\n\t\t`if (root) root.innerHTML = savedHTML;`,\n\t\t``,\n\t\t`var app = createApp(Component, mergedProps);`,\n\t\t`app.mount(root);`,\n\t\t`window.__VUE_APP__ = app;`,\n\t\t`window.__HMR_PRESERVED_STATE__ = undefined;`\n\t].join('\\n');\n};\n\n// Generate a stub module for a server-only package so browser imports resolve.\nconst handleStubRequest = async (pathname: string) => {\n\tconst specifier = decodeURIComponent(pathname.slice('/@stub/'.length));\n\tconst stubCode = await buildStubCode(specifier);\n\n\treturn new Response(stubCode, {\n\t\theaders: {\n\t\t\t'Cache-Control': 'no-cache',\n\t\t\t'Content-Type': 'application/javascript'\n\t\t}\n\t});\n};\n\n// Introspect a module's exports and generate noop stubs for each.\nconst buildStubCode = async (specifier: string) => {\n\ttry {\n\t\tconst mod = await import(specifier);\n\t\tconst names = Object.keys(mod).filter(\n\t\t\t(key) => key !== 'default' && key !== '__esModule'\n\t\t);\n\t\tif (names.length === 0) return 'export default {};\\n';\n\n\t\tconst noops = names\n\t\t\t.map((n) => `export const ${n} = () => {};`)\n\t\t\t.join('\\n');\n\n\t\treturn `${noops}\\nexport default {};\\n`;\n\t} catch {\n\t\treturn 'export default {};\\n';\n\t}\n};\n\n// Handle HMR bootstrap wrappers for non-React frameworks.\nconst handleHmrBootstrap = (\n\tpathname: string,\n\tvendorPaths: Record<string, string>\n) => {\n\tconst rest = pathname.slice('/@hmr/'.length);\n\tconst slashIdx = rest.indexOf('/');\n\tif (slashIdx === UNFOUND_INDEX) return undefined;\n\n\tconst framework = rest.slice(0, slashIdx);\n\tconst componentRelPath = rest.slice(slashIdx + 1);\n\tconst url = `${SRC_PREFIX}${componentRelPath}`;\n\tconst timestamp = String(Date.now());\n\n\tconst generators: Record<string, typeof generateSvelteHmrBootstrap> = {\n\t\tsvelte: generateSvelteHmrBootstrap,\n\t\tvue: generateVueHmrBootstrap\n\t};\n\tconst generate = generators[framework];\n\tif (!generate) return undefined;\n\n\treturn jsResponse(generate(url, vendorPaths, timestamp));\n};\n\n// Serve a virtual Svelte CSS module (css:'external' output).\nconst handleVirtualSvelteCss = (cssCheckPath: string) => {\n\tconst virtualCss = svelteExternalCss.get(cssCheckPath);\n\tif (!virtualCss) return undefined;\n\n\tconst escaped = virtualCss\n\t\t.replace(/\\\\/g, '\\\\\\\\')\n\t\t.replace(/`/g, '\\\\`')\n\t\t.replace(/\\$/g, '\\\\$');\n\n\treturn jsResponse(\n\t\t`var s=document.createElement('style');` +\n\t\t\t`s.textContent=\\`${escaped}\\`;` +\n\t\t\t`s.dataset.svelteHmr=${JSON.stringify(cssCheckPath)};` +\n\t\t\t`var p=document.querySelector('style[data-svelte-hmr=\"${cssCheckPath}\"]');` +\n\t\t\t`if(p)p.remove();` +\n\t\t\t`document.head.appendChild(s);`\n\t);\n};\n\n// Resolve a /@src/ path to an absolute file path and extension,\n// probing known extensions if the path has none.\nconst resolveSourcePath = (relPath: string, projectRoot: string) => {\n\tconst filePath = resolve(projectRoot, relPath);\n\tconst ext = extname(filePath);\n\n\tif (ext === '.svelte')\n\t\treturn { ext, filePath: resolveSvelteModulePath(filePath) };\n\tif (ext) return { ext, filePath };\n\n\t// No extension — probe known extensions\n\tconst found = MODULE_EXTENSIONS.find((candidate) =>\n\t\texistsSync(filePath + candidate)\n\t);\n\tif (!found) return { ext, filePath };\n\n\tconst resolved = filePath + found;\n\tif (found === '.svelte')\n\t\treturn { ext: found, filePath: resolveSvelteModulePath(resolved) };\n\n\treturn { ext: found, filePath: resolved };\n};\n\n// Transform and cache a source file, returning a JS Response.\nconst transformAndCache = async (\n\tfilePath: string,\n\text: string,\n\tprojectRoot: string,\n\trewriter: ReturnType<typeof buildImportRewriter>,\n\tvueDir?: string,\n\tstylePreprocessors?: StylePreprocessorConfig\n) => {\n\tif (ext === '.css') return jsResponse(handleCssRequest(filePath));\n\n\tconst isSvelte =\n\t\text === '.svelte' ||\n\t\tfilePath.endsWith('.svelte.ts') ||\n\t\tfilePath.endsWith('.svelte.js');\n\n\tconst cached = getTransformed(filePath);\n\tif (cached) return jsResponse(cached);\n\n\tif (isSvelte)\n\t\treturn transformAndCacheSvelte(\n\t\t\tfilePath,\n\t\t\tprojectRoot,\n\t\t\trewriter,\n\t\t\tstylePreprocessors\n\t\t);\n\tif (ext === '.vue')\n\t\treturn transformAndCacheVue(\n\t\t\tfilePath,\n\t\t\tprojectRoot,\n\t\t\trewriter,\n\t\t\tvueDir,\n\t\t\tstylePreprocessors\n\t\t);\n\tif (!TRANSPILABLE.has(ext)) return undefined;\n\n\tconst stat = statSync(filePath);\n\tconst resolvedVueDir = vueDir ? resolve(vueDir) : undefined;\n\tconst content = REACT_EXTENSIONS.has(ext)\n\t\t? transformReactFile(filePath, projectRoot, rewriter)\n\t\t: transformPlainFile(filePath, projectRoot, rewriter, resolvedVueDir);\n\n\tsetTransformed(\n\t\tfilePath,\n\t\tcontent,\n\t\tstat.mtimeMs,\n\t\textractImportedFiles(content, projectRoot)\n\t);\n\n\treturn jsResponse(content);\n};\n\nconst transformAndCacheSvelte = async (\n\tfilePath: string,\n\tprojectRoot: string,\n\trewriter: ReturnType<typeof buildImportRewriter>,\n\tstylePreprocessors?: StylePreprocessorConfig\n) => {\n\tconst stat = statSync(filePath);\n\tconst content = await transformSvelteFile(\n\t\tfilePath,\n\t\tprojectRoot,\n\t\trewriter,\n\t\tstylePreprocessors\n\t);\n\tsetTransformed(\n\t\tfilePath,\n\t\tcontent,\n\t\tstat.mtimeMs,\n\t\textractImportedFiles(content, projectRoot)\n\t);\n\n\treturn jsResponse(content);\n};\n\nconst transformAndCacheVue = async (\n\tfilePath: string,\n\tprojectRoot: string,\n\trewriter: ReturnType<typeof buildImportRewriter>,\n\tvueDir?: string,\n\tstylePreprocessors?: StylePreprocessorConfig\n) => {\n\tconst stat = statSync(filePath);\n\tconst content = await transformVueFile(\n\t\tfilePath,\n\t\tprojectRoot,\n\t\trewriter,\n\t\tvueDir,\n\t\tstylePreprocessors\n\t);\n\tsetTransformed(\n\t\tfilePath,\n\t\tcontent,\n\t\tstat.mtimeMs,\n\t\textractImportedFiles(content, projectRoot)\n\t);\n\n\treturn jsResponse(content);\n};\n\n// Build a transform-error response for the browser console.\nconst transformErrorResponse = (err: unknown) => {\n\tconst errMsg = err instanceof Error ? err.message : String(err);\n\n\treturn new Response(\n\t\t`console.error('[ModuleServer] Transform error:', ${JSON.stringify(errMsg)});`,\n\t\t{\n\t\t\theaders: { 'Content-Type': 'application/javascript' },\n\t\t\tstatus: 500\n\t\t}\n\t);\n};\n\nexport const createModuleServer = (config: ModuleServerConfig) => {\n\tconst { projectRoot, vendorPaths, frameworkDirs, stylePreprocessors } =\n\t\tconfig;\n\tconst rewriter = buildImportRewriter(vendorPaths);\n\n\treturn async (pathname: string) => {\n\t\tif (pathname.startsWith('/@stub/')) return handleStubRequest(pathname);\n\t\tif (pathname.startsWith('/@hmr/'))\n\t\t\treturn handleHmrBootstrap(pathname, vendorPaths);\n\t\tif (!pathname.startsWith(SRC_PREFIX)) return undefined;\n\n\t\tconst relPath = pathname.slice(SRC_PREFIX.length);\n\n\t\tconst virtualCssResponse = handleVirtualSvelteCss(\n\t\t\tresolve(projectRoot, relPath)\n\t\t);\n\t\tif (virtualCssResponse) return virtualCssResponse;\n\n\t\tconst { filePath, ext } = resolveSourcePath(relPath, projectRoot);\n\n\t\ttry {\n\t\t\treturn await transformAndCache(\n\t\t\t\tfilePath,\n\t\t\t\text,\n\t\t\t\tprojectRoot,\n\t\t\t\trewriter,\n\t\t\t\tframeworkDirs?.vue,\n\t\t\t\tstylePreprocessors\n\t\t\t);\n\t\t} catch (err) {\n\t\t\treturn transformErrorResponse(err);\n\t\t}\n\t};\n};\n\n// Extract absolute file paths from /@src/ imports in transformed code.\n// Used to build the runtime module graph for chain invalidation.\nconst SRC_IMPORT_RE = /\\/@src\\/([^\"'?\\s]+)/g;\nconst extractImportedFiles = (content: string, projectRoot: string) => {\n\tconst files: string[] = [];\n\tlet match;\n\tSRC_IMPORT_RE.lastIndex = 0;\n\twhile ((match = SRC_IMPORT_RE.exec(content)) !== null) {\n\t\tif (match[1]) files.push(resolve(projectRoot, match[1]));\n\t}\n\n\treturn files;\n};\n\nexport const invalidateModule = (filePath: string) => {\n\t// invalidate() cascades up the import chain — clearing transform\n\t// caches for all transitive importers so they get re-transpiled\n\t// with fresh ?v= params. Also clear mtime caches for the changed\n\t// file so srcUrl() re-reads its mtime from disk.\n\tconst resolved = resolve(filePath);\n\tinvalidate(filePath);\n\tif (resolved !== filePath) invalidate(resolved);\n\tmtimeCache.delete(filePath);\n\tmtimeCache.delete(resolved);\n\t// Note: we only clear mtime for the changed file. Importers'\n\t// mtimes haven't changed — their transform caches are cleared\n\t// by invalidate() so they get re-transpiled with new ?v= for\n\t// the changed file's updated mtime.\n};\n\n// Pre-transpile a /@src/ URL and cache the result so the browser\n// fetch is instant. Called before sending the WebSocket HMR message.\nexport const warmCache = (pathname: string) => {\n\tif (!pathname.startsWith(SRC_PREFIX)) return;\n\tif (!globalModuleServer) return;\n\t// Trigger the handler — the result is cached by setTransformed\n\tglobalModuleServer(pathname);\n};\n\n// Store the module server handler globally so warmCache can access it\nlet globalModuleServer:\n\t| ((\n\t\t\tpathname: string\n\t ) => Promise<Response | undefined> | Response | undefined)\n\t| null = null;\n\nexport const SRC_URL_PREFIX = SRC_PREFIX;\n\nexport const setGlobalModuleServer = (handler: typeof globalModuleServer) => {\n\tglobalModuleServer = handler;\n};\n",
|
|
94
|
+
"/* Simple HTML HMR Implementation\n Lightweight approach: read HTML file → send HTML patch */\n\nimport { resolve } from 'node:path';\n\n/* Simple HTML HMR handler for server-side\n When an HTML file changes:\n 1. Read the HTML file\n 2. Extract body content (or return full HTML)\n 3. Return the HTML for patching */\nexport const handleHTMLUpdate = async (htmlFilePath: string) => {\n\tlet htmlContent: string;\n\ttry {\n\t\tconst resolvedPath = resolve(htmlFilePath);\n\t\tconst file = Bun.file(resolvedPath);\n\t\tif (!(await file.exists())) {\n\t\t\treturn null;\n\t\t}\n\t\thtmlContent = await file.text();\n\t} catch {\n\t\treturn null;\n\t}\n\n\tconst headMatch = htmlContent.match(/<head[^>]*>([\\s\\S]*?)<\\/head>/i);\n\tconst bodyMatch = htmlContent.match(/<body[^>]*>([\\s\\S]*)<\\/body>/i);\n\n\tif (bodyMatch && bodyMatch[1]) {\n\t\treturn {\n\t\t\tbody: bodyMatch[1].trim(),\n\t\t\thead: headMatch && headMatch[1] ? headMatch[1].trim() : null\n\t\t};\n\t}\n\n\treturn htmlContent;\n};\n",
|
|
95
|
+
"/* Simple HTMX HMR Implementation\n Lightweight approach: read HTMX HTML file → send HTML patch */\n\nimport { resolve } from 'node:path';\n\n/* Simple HTMX HMR handler for server-side\n When an HTMX file changes:\n 1. Read the HTML file\n 2. Extract body content (or return full HTML)\n 3. Return the HTML for patching */\nexport const handleHTMXUpdate = async (htmxFilePath: string) => {\n\tlet htmlContent: string;\n\ttry {\n\t\tconst resolvedPath = resolve(htmxFilePath);\n\t\tconst file = Bun.file(resolvedPath);\n\t\tif (!(await file.exists())) {\n\t\t\treturn null;\n\t\t}\n\t\thtmlContent = await file.text();\n\t} catch {\n\t\treturn null;\n\t}\n\n\tconst headMatch = htmlContent.match(/<head[^>]*>([\\s\\S]*?)<\\/head>/i);\n\tconst bodyMatch = htmlContent.match(/<body[^>]*>([\\s\\S]*)<\\/body>/i);\n\n\tif (bodyMatch && bodyMatch[1]) {\n\t\treturn {\n\t\t\tbody: bodyMatch[1].trim(),\n\t\t\thead: headMatch && headMatch[1] ? headMatch[1].trim() : null\n\t\t};\n\t}\n\n\treturn htmlContent;\n};\n",
|
|
96
|
+
"import { existsSync } from 'node:fs';\nimport { basename, dirname, relative, resolve } from 'node:path';\nimport { build } from '../core/build';\nimport type { BuildConfig } from '../../types/build';\nimport { scanEntryPoints } from '../build/scanEntryPoints';\nimport { loadIslandRegistryBuildInfo } from '../build/islandEntries';\nimport {\n\tgetPagesUsingIslandSource,\n\tloadPageIslandMetadata,\n\tsetCurrentPageIslandMetadata\n} from '../islands/pageMetadata';\nimport {\n\tlogCssUpdate,\n\tlogHmrUpdate,\n\tlogScriptUpdate,\n\tlogWarn\n} from '../utils/logger';\nimport { incrementSourceFileVersions, type HMRState } from './clientManager';\nimport { getAffectedFiles } from './dependencyGraph';\nimport { DEFAULT_DEBOUNCE_MS, REBUILD_BATCH_DELAY_MS } from '../constants';\nimport { computeFileHash, hasFileChanged } from './fileHashTracker';\nimport { invalidate as invalidateTransformCache } from './transformCache';\n\n// Eagerly resolve the moduleServer import at load time so the first\n// HMR update doesn't pay the dynamic-import cost. By the time this\n// module is imported, prepare.ts has already loaded moduleServer, so\n// this resolves from Bun's module cache instantly.\nconst moduleServerPromise = import('../dev/moduleServer');\nconst getModuleServer = () => moduleServerPromise;\nimport {\n\tcreateModuleUpdates,\n\tgroupModuleUpdatesByFramework,\n\ttype ModuleUpdate\n} from './moduleMapper';\nimport {\n\tincrementModuleVersions,\n\tserializeModuleVersions\n} from './moduleVersionTracker';\nimport { sendTelemetryEvent } from '../cli/telemetryEvent';\nimport { cleanStaleAssets, populateAssetStore } from './assetStore';\nimport { detectFramework } from './pathUtils';\nimport { toPascal } from '../utils/stringModifiers';\nimport type { ResolvedBuildPaths } from './configResolver';\nimport { broadcastToClients } from './webSocket';\nimport {\n\tcreateStyleTransformConfig,\n\tcreateStylePreprocessorPlugin,\n\tfindStyleEntriesImporting,\n\tgetStyleBaseName,\n\tisStylePath\n} from '../build/stylePreprocessor';\nimport { isTailwindCandidate } from '../build/compileTailwind';\nimport { incrementalTailwindBuild } from '../build/tailwindCompiler';\nimport { markSsrCacheDirty } from '../core/ssrCache';\n\nconst runSequentially = <Item>(\n\titems: Item[],\n\taction: (item: Item) => Promise<void>\n) =>\n\titems.reduce(\n\t\t(chain, item) => chain.then(() => action(item)),\n\t\tPromise.resolve()\n\t);\n\nconst getStyleTransformConfig = (config: BuildConfig) =>\n\tcreateStyleTransformConfig(config.stylePreprocessors, config.postcss);\n\n/* When a fast path handles a file change, the full build doesn't run, so\n Tailwind never gets a chance to rescan source files. If the changed file\n is something Tailwind would scan (.tsx/.svelte/.vue/.html/etc.), we rerun\n Tailwind here and broadcast a CSS reload so newly-referenced utility\n classes actually appear in the emitted CSS. Without this the markup ends\n up referencing classes that have no rules behind them until the next\n full restart.\n\n Uses the persistent in-memory Tailwind compiler — instantiated once and\n reused — so HMR ticks pay only the candidate-scan + serialize cost, not\n the bundler-init + compiler-init cost of a fresh `bun.build`. The result\n is content-hashed so we suppress the CSS-reload broadcast when the\n emitted output didn't actually change (an edit that doesn't add or\n remove any utility classes shouldn't refetch every stylesheet). */\nconst recompileTailwindForFastPath = async (\n\tstate: HMRState,\n\tconfig: BuildConfig,\n\tfiles: string[]\n) => {\n\tif (!config.tailwind) return;\n\tif (!files.some(isTailwindCandidate)) return;\n\n\ttry {\n\t\tconst { cssChanged } = await incrementalTailwindBuild(\n\t\t\tconfig.tailwind,\n\t\t\tstate.resolvedPaths.buildDir,\n\t\t\tfiles,\n\t\t\tgetStyleTransformConfig(config)\n\t\t);\n\t\tif (!cssChanged) return;\n\n\t\tbroadcastToClients(state, {\n\t\t\tdata: { framework: 'tailwind', manifest: state.manifest },\n\t\t\tmessage: 'Tailwind utilities recompiled',\n\t\t\ttype: 'style-update'\n\t\t});\n\t} catch (err) {\n\t\tsendTelemetryEvent('hmr:error', {\n\t\t\tframework: 'tailwind',\n\t\t\tmessage: err instanceof Error ? err.message : String(err)\n\t\t});\n\t}\n};\n\ntype BuildLog = {\n\tlevel?: string;\n\tmessage: string | { text: string };\n\tposition?: {\n\t\tfile?: string;\n\t\tline?: number;\n\t\tcolumn?: number;\n\t\tlineText?: string;\n\t};\n};\n\nconst parseErrorLocationFromMessage = (msg: string) => {\n\tconst pathLineCol = msg.match(/^([^\\s:]+):(\\d+)(?::(\\d+))?/);\n\tif (pathLineCol) {\n\t\tconst [, file, lineStr, colStr] = pathLineCol;\n\n\t\treturn {\n\t\t\tcolumn: colStr ? parseInt(colStr, 10) : undefined,\n\t\t\tfile,\n\t\t\tline: lineStr ? parseInt(lineStr, 10) : undefined\n\t\t};\n\t}\n\tconst atMatch = msg.match(\n\t\t/(?:at|in)\\s+([^(:\\s]+)(?:\\s*\\([^)]*line\\s*(\\d+)[^)]*col(?:umn)?\\s*(\\d+)[^)]*\\)|:(\\d+):(\\d+)?)/i\n\t);\n\tif (atMatch) {\n\t\tconst [, file, line1, col1, line2, col2] = atMatch;\n\n\t\tlet parsedCol: number | undefined;\n\t\tif (col1) parsedCol = parseInt(col1, 10);\n\t\telse if (col2) parsedCol = parseInt(col2, 10);\n\n\t\tlet parsedLine: number | undefined;\n\t\tif (line1) parsedLine = parseInt(line1, 10);\n\t\telse if (line2) parsedLine = parseInt(line2, 10);\n\n\t\treturn {\n\t\t\tcolumn: parsedCol,\n\t\t\tfile: file?.trim(),\n\t\t\tline: parsedLine\n\t\t};\n\t}\n\tconst parenMatch = msg.match(\n\t\t/([^\\s(]+)\\s*\\([^)]*line\\s*(\\d+)[^)]*col(?:umn)?\\s*(\\d+)/i\n\t);\n\tif (parenMatch) {\n\t\tconst [, file, lineStr, colStr] = parenMatch;\n\n\t\treturn {\n\t\t\tcolumn: colStr ? parseInt(colStr, 10) : undefined,\n\t\t\tfile: file ?? undefined,\n\t\t\tline: lineStr ? parseInt(lineStr, 10) : undefined\n\t\t};\n\t}\n\n\treturn {};\n};\n\nconst extractBuildErrorDetails = (\n\terror: unknown,\n\taffectedFrameworks: string[],\n\tresolvedPaths?: ResolvedBuildPaths\n) => {\n\tconst errorObj = error && typeof error === 'object' ? error : undefined;\n\tconst rawLogs =\n\t\terrorObj && 'logs' in errorObj && Array.isArray(errorObj.logs)\n\t\t\t? errorObj.logs\n\t\t\t: undefined;\n\tconst logs: BuildLog[] | undefined =\n\t\trawLogs ??\n\t\t(error instanceof AggregateError && error.errors?.length\n\t\t\t? error.errors\n\t\t\t: undefined);\n\tif (logs && Array.isArray(logs) && logs.length > 0) {\n\t\tconst errLog = logs.find((l) => l.level === 'error') ?? logs[0];\n\t\tconst pos = errLog?.position;\n\t\tconst file = pos?.file;\n\t\tconst line = pos?.line;\n\t\tconst column = pos?.column;\n\t\tconst lineText = pos?.lineText;\n\t\tconst framework =\n\t\t\tfile && resolvedPaths\n\t\t\t\t? detectFramework(file, resolvedPaths)\n\t\t\t\t: (affectedFrameworks[0] ?? 'unknown');\n\n\t\treturn {\n\t\t\tcolumn,\n\t\t\tfile,\n\t\t\tframework:\n\t\t\t\tframework !== 'ignored' ? framework : affectedFrameworks[0],\n\t\t\tline,\n\t\t\tlineText\n\t\t};\n\t}\n\tconst msg = error instanceof Error ? error.message : String(error);\n\tconst parsed = parseErrorLocationFromMessage(msg);\n\tlet [detectedFw] = affectedFrameworks;\n\tif (parsed.file && resolvedPaths) {\n\t\tconst detected = detectFramework(parsed.file, resolvedPaths);\n\t\tdetectedFw = detected !== 'ignored' ? detected : affectedFrameworks[0];\n\t}\n\n\treturn { ...parsed, framework: detectedFw };\n};\n\nconst isValidDeletedAffectedFile = (\n\taffectedFile: string,\n\tdeletedPathResolved: string,\n\tprocessedFiles: Set<string>\n) =>\n\taffectedFile !== deletedPathResolved &&\n\t!processedFiles.has(affectedFile) &&\n\texistsSync(affectedFile);\n\nconst collectDeletedFileAffected = (\n\tstate: HMRState,\n\tfilePathInSet: string,\n\tprocessedFiles: Set<string>,\n\tvalidFiles: string[]\n) => {\n\tstate.fileHashes.delete(filePathInSet);\n\ttry {\n\t\tconst affectedFiles = getAffectedFiles(\n\t\t\tstate.dependencyGraph,\n\t\t\tfilePathInSet\n\t\t);\n\t\tconst deletedPathResolved = resolve(filePathInSet);\n\t\taffectedFiles.forEach((affectedFile) => {\n\t\t\tif (\n\t\t\t\tisValidDeletedAffectedFile(\n\t\t\t\t\taffectedFile,\n\t\t\t\t\tdeletedPathResolved,\n\t\t\t\t\tprocessedFiles\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tvalidFiles.push(affectedFile);\n\t\t\t\tprocessedFiles.add(affectedFile);\n\t\t\t}\n\t\t});\n\t} catch {\n\t\t/* ignored */\n\t}\n};\n\nconst incrementDependentVersions = (\n\tstate: HMRState,\n\tnormalizedFilePath: string\n) => {\n\ttry {\n\t\tconst dependents =\n\t\t\tstate.dependencyGraph.dependents.get(normalizedFilePath);\n\t\tif (!dependents || dependents.size === 0) {\n\t\t\treturn;\n\t\t}\n\t\tconst dependentFiles = Array.from(dependents).filter((file) =>\n\t\t\texistsSync(file)\n\t\t);\n\t\tif (dependentFiles.length === 0) {\n\t\t\treturn;\n\t\t}\n\t\tincrementSourceFileVersions(state, dependentFiles);\n\t} catch {\n\t\t/* ignored */\n\t}\n};\n\nconst addUnprocessedFile = (\n\tnormalizedFilePath: string,\n\tprocessedFiles: Set<string>,\n\tvalidFiles: string[]\n) => {\n\tif (processedFiles.has(normalizedFilePath)) {\n\t\treturn;\n\t}\n\n\tvalidFiles.push(normalizedFilePath);\n\tprocessedFiles.add(normalizedFilePath);\n};\n\nconst collectChangedFileAffected = (\n\tstate: HMRState,\n\tnormalizedFilePath: string,\n\tprocessedFiles: Set<string>,\n\tvalidFiles: string[]\n) => {\n\ttry {\n\t\tconst affectedFiles = getAffectedFiles(\n\t\t\tstate.dependencyGraph,\n\t\t\tnormalizedFilePath\n\t\t);\n\t\taffectedFiles.forEach((affectedFile) => {\n\t\t\tif (\n\t\t\t\t!processedFiles.has(affectedFile) &&\n\t\t\t\taffectedFile !== normalizedFilePath &&\n\t\t\t\texistsSync(affectedFile)\n\t\t\t) {\n\t\t\t\tvalidFiles.push(affectedFile);\n\t\t\t\tprocessedFiles.add(affectedFile);\n\t\t\t}\n\t\t});\n\t} catch {\n\t\taddUnprocessedFile(normalizedFilePath, processedFiles, validFiles);\n\t}\n};\n\nconst processChangedFile = (\n\tstate: HMRState,\n\tfilePathInSet: string,\n\tprocessedFiles: Set<string>,\n\tvalidFiles: string[]\n) => {\n\tconst fileHash = computeFileHash(filePathInSet);\n\tconst storedHash = state.fileHashes.get(filePathInSet);\n\n\tif (storedHash !== undefined && storedHash === fileHash) {\n\t\treturn;\n\t}\n\n\tconst normalizedFilePath = resolve(filePathInSet);\n\n\tif (!processedFiles.has(normalizedFilePath)) {\n\t\tvalidFiles.push(normalizedFilePath);\n\t\tprocessedFiles.add(normalizedFilePath);\n\t}\n\n\tstate.fileHashes.set(normalizedFilePath, fileHash);\n\tincrementSourceFileVersions(state, [normalizedFilePath]);\n\tincrementDependentVersions(state, normalizedFilePath);\n\tcollectChangedFileAffected(\n\t\tstate,\n\t\tnormalizedFilePath,\n\t\tprocessedFiles,\n\t\tvalidFiles\n\t);\n};\n\nconst processFilePathSet = (\n\tstate: HMRState,\n\tfilePathSet: Set<string>,\n\tprocessedFiles: Set<string>,\n\tvalidFiles: string[]\n) => {\n\tfilePathSet.forEach((filePathInSet) => {\n\t\tif (!existsSync(filePathInSet)) {\n\t\t\tcollectDeletedFileAffected(\n\t\t\t\tstate,\n\t\t\t\tfilePathInSet,\n\t\t\t\tprocessedFiles,\n\t\t\t\tvalidFiles\n\t\t\t);\n\n\t\t\treturn;\n\t\t}\n\t\tprocessChangedFile(state, filePathInSet, processedFiles, validFiles);\n\t});\n};\n\nconst detectFrameworkForValidFiles = (\n\tvalidFiles: string[],\n\tstate: HMRState\n) => {\n\tconst [firstFile] = validFiles;\n\tif (!firstFile) {\n\t\treturn undefined;\n\t}\n\n\treturn detectFramework(firstFile, state.resolvedPaths);\n};\n\nconst buildFilesToProcess = (state: HMRState) => {\n\tconst filesToProcess: Map<string, string[]> = new Map();\n\n\tconst uniqueFilesByFramework = new Map<string, Set<string>>();\n\tstate.fileChangeQueue.forEach((filePaths, fwKey) => {\n\t\tuniqueFilesByFramework.set(fwKey, new Set(filePaths));\n\t});\n\n\tuniqueFilesByFramework.forEach((filePathSet) => {\n\t\tconst validFiles: string[] = [];\n\t\tconst processedFiles = new Set<string>();\n\n\t\tprocessFilePathSet(state, filePathSet, processedFiles, validFiles);\n\n\t\tif (validFiles.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst detectedFramework = detectFrameworkForValidFiles(\n\t\t\tvalidFiles,\n\t\t\tstate\n\t\t);\n\t\tif (detectedFramework) {\n\t\t\tfilesToProcess.set(detectedFramework, validFiles);\n\t\t}\n\t});\n\n\treturn filesToProcess;\n};\n\nconst STABILITY_CHECK_ROUNDS = 5;\nconst STABILITY_CHECK_DELAY_MS = 10;\n\nconst isFileStable = async (file: string) => {\n\tconst hash1 = computeFileHash(file);\n\tawait Bun.sleep(STABILITY_CHECK_DELAY_MS);\n\tconst hash2 = computeFileHash(file);\n\n\treturn hash1 === hash2;\n};\n\nconst collectAllQueuedFiles = (fileChangeQueue: Map<string, string[]>) => {\n\tconst allFiles: string[] = [];\n\tfor (const files of fileChangeQueue.values()) {\n\t\tallFiles.push(...files);\n\t}\n\n\treturn allFiles;\n};\n\nconst areAllQueuedFilesStable = async (\n\tfileChangeQueue: Map<string, string[]>\n) => {\n\tconst allFiles = collectAllQueuedFiles(fileChangeQueue);\n\tconst checkFile = async (files: string[]) => {\n\t\tconst [file, ...remaining] = files;\n\t\tif (!file) {\n\t\t\treturn true;\n\t\t}\n\n\t\tconst stable = await isFileStable(file);\n\t\tif (!stable) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn checkFile(remaining);\n\t};\n\n\treturn checkFile(allFiles);\n};\n\nconst waitForStableWrites = async (state: HMRState) => {\n\tconst waitRound = async (round: number) => {\n\t\tif (round >= STABILITY_CHECK_ROUNDS) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst stable = await areAllQueuedFilesStable(state.fileChangeQueue);\n\t\tif (stable) {\n\t\t\treturn;\n\t\t}\n\n\t\tawait waitRound(round + 1);\n\t};\n\n\tawait waitRound(0);\n};\n\nconst enqueueImporter = (state: HMRState, importer: string) => {\n\tconst importerFramework = detectFramework(importer, state.resolvedPaths);\n\tif (importerFramework === 'ignored') return;\n\tif (!state.fileChangeQueue.has(importerFramework)) {\n\t\tstate.fileChangeQueue.set(importerFramework, []);\n\t}\n\tconst importerQueue = state.fileChangeQueue.get(importerFramework);\n\tif (importerQueue && !importerQueue.includes(importer)) {\n\t\timporterQueue.push(importer);\n\t}\n};\n\nconst enqueueStyleImporters = (state: HMRState, changedStylePath: string) => {\n\tfor (const importer of findStyleEntriesImporting(changedStylePath)) {\n\t\tenqueueImporter(state, importer);\n\t}\n};\n\nexport const queueFileChange = async (\n\tstate: HMRState,\n\tfilePath: string,\n\tconfig: BuildConfig,\n\tonRebuildComplete: (result: {\n\t\tmanifest: Record<string, string>;\n\t\thmrState: HMRState;\n\t}) => void\n) => {\n\tconst framework = detectFramework(filePath, state.resolvedPaths);\n\n\tif (framework === 'ignored') {\n\t\treturn;\n\t}\n\n\tconst currentHash = computeFileHash(filePath);\n\n\tif (!hasFileChanged(filePath, currentHash, state.fileHashes)) {\n\t\treturn;\n\t}\n\n\t// Shared files (workers, utils, etc.) that don't belong to any\n\t// framework just need their transform cache invalidated — no rebuild.\n\tif (framework === 'unknown') {\n\t\tinvalidateTransformCache(resolve(filePath));\n\t\tconst relPath = relative(process.cwd(), filePath);\n\t\tlogHmrUpdate(relPath);\n\n\t\treturn;\n\t}\n\n\tif (!state.fileChangeQueue.has(framework)) {\n\t\tstate.fileChangeQueue.set(framework, []);\n\t}\n\n\tconst queue = state.fileChangeQueue.get(framework);\n\tif (queue && !queue.includes(filePath)) {\n\t\tqueue.push(filePath);\n\t}\n\n\t// If a stylesheet partial (e.g. _tokens.scss) changed, also enqueue\n\t// every entry stylesheet that imported it during its last compile.\n\t// Without this the importer would silently keep the stale CSS until\n\t// the next full restart.\n\tif (isStylePath(filePath)) {\n\t\tenqueueStyleImporters(state, filePath);\n\t}\n\n\tif (state.isRebuilding) {\n\t\treturn;\n\t}\n\n\tif (state.rebuildTimeout) {\n\t\tclearTimeout(state.rebuildTimeout);\n\t}\n\n\tconst DEBOUNCE_MS = config.options?.hmr?.debounceMs ?? DEFAULT_DEBOUNCE_MS;\n\tstate.rebuildTimeout = setTimeout(async () => {\n\t\t// Wait for file writes to stabilize. Editors using atomic writes\n\t\t// (write .tmp → rename) can trigger the watcher before the rename\n\t\t// completes. Read the file twice with a gap — if hashes match,\n\t\t// the write is stable.\n\t\tawait waitForStableWrites(state);\n\n\t\tconst filesToProcess = buildFilesToProcess(state);\n\t\tstate.fileChangeQueue.clear();\n\n\t\tif (filesToProcess.size === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst affectedFrameworks = Array.from(filesToProcess.keys());\n\n\t\taffectedFrameworks.forEach((frameworkKey) => {\n\t\t\tstate.rebuildQueue.add(frameworkKey);\n\t\t});\n\n\t\tconst filesToRebuild: string[] = [];\n\t\tfilesToProcess.forEach((filePaths) => {\n\t\t\tfilesToRebuild.push(...filePaths);\n\t\t});\n\n\t\tvoid triggerRebuild(state, config, onRebuildComplete, filesToRebuild);\n\t}, DEBOUNCE_MS);\n};\n\nconst resolveComponentLookupFile = (\n\tcomponentFile: string,\n\tgraph?: HMRState['dependencyGraph']\n) => {\n\tif (!componentFile.endsWith('.html')) {\n\t\treturn componentFile;\n\t}\n\t// Try same-name .ts counterpart (co-located template)\n\tconst tsCounterpart = componentFile.replace(/\\.html$/, '.ts');\n\tif (existsSync(tsCounterpart)) {\n\t\treturn tsCounterpart;\n\t}\n\t// For external templates (templateUrl in a different dir),\n\t// use the dependency graph to find the .ts that references this .html\n\tif (!graph) return componentFile;\n\n\tconst dependents = graph.dependents.get(resolve(componentFile));\n\tif (!dependents) return componentFile;\n\n\tfor (const dep of dependents) {\n\t\tif (dep.endsWith('.ts')) return dep;\n\t}\n\n\treturn componentFile;\n};\n\nconst resolveAngularPageEntries = (\n\tstate: HMRState,\n\tangularFiles: string[],\n\tangularPagesPath: string\n) => {\n\tconst pageEntries = angularFiles.filter(\n\t\t(file) =>\n\t\t\tfile.endsWith('.ts') && resolve(file).startsWith(angularPagesPath)\n\t);\n\n\tif (pageEntries.length > 0 || !state.dependencyGraph) {\n\t\treturn pageEntries;\n\t}\n\n\tconst resolvedPages = new Set<string>();\n\tangularFiles.forEach((componentFile) => {\n\t\tconst lookupFile = resolveComponentLookupFile(\n\t\t\tcomponentFile,\n\t\t\tstate.dependencyGraph\n\t\t);\n\t\tconst affected = getAffectedFiles(state.dependencyGraph, lookupFile);\n\t\taffected.forEach((file) => {\n\t\t\tif (\n\t\t\t\tfile.endsWith('.ts') &&\n\t\t\t\tresolve(file).startsWith(angularPagesPath)\n\t\t\t) {\n\t\t\t\tresolvedPages.add(file);\n\t\t\t}\n\t\t});\n\t});\n\n\treturn Array.from(resolvedPages);\n};\n\nconst computeClientRoot = async (resolvedPaths: ResolvedBuildPaths) => {\n\tconst clientRoots = [\n\t\tresolvedPaths.reactDir,\n\t\tresolvedPaths.svelteDir,\n\t\tresolvedPaths.htmlDir,\n\t\tresolvedPaths.vueDir,\n\t\tresolvedPaths.angularDir\n\t].filter((dir): dir is string => Boolean(dir));\n\n\tconst { commonAncestor } = await import('../utils/commonAncestor');\n\n\treturn clientRoots.length === 1\n\t\t? (clientRoots[0] ?? process.cwd())\n\t\t: commonAncestor(clientRoots, process.cwd());\n};\n\nconst updateServerManifestEntry = (\n\tstate: HMRState,\n\tartifact: { path: string; hash: string | null }\n) => {\n\tconst fileWithHash = basename(artifact.path);\n\tconst [baseName] = fileWithHash.split(`.${artifact.hash}.`);\n\tif (!baseName) {\n\t\treturn;\n\t}\n\tstate.manifest[toPascal(baseName)] = artifact.path;\n};\n\nconst bundleAngularClient = async (\n\tstate: HMRState,\n\tclientPaths: string[],\n\tbuildDir: string\n) => {\n\tconst { build: bunBuild } = await import('bun');\n\tconst { generateManifest } = await import('../build/generateManifest');\n\tconst { getAngularVendorPaths } = await import('../core/devVendorPaths');\n\tconst clientRoot = await computeClientRoot(state.resolvedPaths);\n\tconst depVendorPaths = globalThis.__depVendorPaths ?? {};\n\n\tlet angVendorPaths = getAngularVendorPaths();\n\tif (!angVendorPaths) {\n\t\tconst { computeAngularVendorPaths } = await import(\n\t\t\t'../build/buildAngularVendor'\n\t\t);\n\t\tconst { setAngularVendorPaths } = await import(\n\t\t\t'../core/devVendorPaths'\n\t\t);\n\t\tangVendorPaths = computeAngularVendorPaths(\n\t\t\tglobalThis.__angularVendorSpecifiers\n\t\t);\n\t\tsetAngularVendorPaths(angVendorPaths);\n\t}\n\n\tconst clientResult = await bunBuild({\n\t\tentrypoints: clientPaths,\n\t\t...(Object.keys({\n\t\t\t...(angVendorPaths ?? {}),\n\t\t\t...depVendorPaths\n\t\t}).length > 0\n\t\t\t? {\n\t\t\t\t\texternal: Object.keys({\n\t\t\t\t\t\t...(angVendorPaths ?? {}),\n\t\t\t\t\t\t...depVendorPaths\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t: {}),\n\t\tformat: 'esm',\n\t\tnaming: '[dir]/[name].[hash].[ext]',\n\t\toutdir: buildDir,\n\t\tplugins: [\n\t\t\tcreateStylePreprocessorPlugin(getStyleTransformConfig(state.config))\n\t\t],\n\t\troot: clientRoot,\n\t\ttarget: 'browser',\n\t\tthrow: false\n\t});\n\n\tif (!clientResult.success) {\n\t\treturn;\n\t}\n\n\tif (angVendorPaths || Object.keys(depVendorPaths).length > 0) {\n\t\tconst { rewriteImports } = await import('../build/rewriteImports');\n\t\tawait rewriteImports(\n\t\t\tclientResult.outputs.map((artifact) => artifact.path),\n\t\t\t{\n\t\t\t\t...(angVendorPaths ?? {}),\n\t\t\t\t...depVendorPaths\n\t\t\t}\n\t\t);\n\t}\n\n\tconst clientManifest = generateManifest(clientResult.outputs, buildDir);\n\tObject.assign(state.manifest, clientManifest);\n\tawait populateAssetStore(state.assetStore, clientManifest, buildDir);\n};\n\nconst broadcastAngularPageUpdates = (\n\tstate: HMRState,\n\tpagesToUpdate: string[],\n\tmanifest: Record<string, string>,\n\tstartTime: number\n) => {\n\tpagesToUpdate.forEach((angularPagePath) => {\n\t\tconst fileName = basename(angularPagePath);\n\t\tconst baseName = fileName.replace(/\\.[tj]s$/, '');\n\t\tconst pascalName = toPascal(baseName);\n\t\tconst cssKey = `${pascalName}CSS`;\n\t\tconst cssUrl = manifest[cssKey] || null;\n\n\t\tconst duration = Date.now() - startTime;\n\t\tlogHmrUpdate(angularPagePath, 'angular', duration);\n\t\tbroadcastToClients(state, {\n\t\t\tdata: {\n\t\t\t\tcssBaseName: baseName,\n\t\t\t\tcssUrl,\n\t\t\t\tframework: 'angular',\n\t\t\t\tmanifest,\n\t\t\t\tsourceFile: angularPagePath,\n\t\t\t\tupdateType: 'logic' as const\n\t\t\t},\n\t\t\ttype: 'angular-update'\n\t\t});\n\t});\n};\n\nconst compileAndBundleAngular = async (\n\tstate: HMRState,\n\tpageEntries: string[],\n\tangularDir: string\n) => {\n\tconst { compileAngular } = await import('../build/compileAngular');\n\tconst { clientPaths, serverPaths } = await compileAngular(\n\t\tpageEntries,\n\t\tangularDir,\n\t\ttrue,\n\t\tgetStyleTransformConfig(state.config)\n\t);\n\n\t// Rewrite bare `@angular/*` specifiers in the SSR page outputs to\n\t// absolute vendor file paths. The full server bundle pass does this\n\t// for outputs of `bun.build`; the HMR fast path skips the bundle and\n\t// loads compileAngular's raw output directly, so it must rewrite here\n\t// too. Without this, SSR re-imports `@angular/core` from node_modules\n\t// (unlinked, partial-AOT) and produces NG0201 from class-identity drift.\n\tconst { getAngularServerVendorPaths } = await import(\n\t\t'../core/devVendorPaths'\n\t);\n\tconst angServerVendorPaths = getAngularServerVendorPaths();\n\tif (serverPaths.length > 0 && angServerVendorPaths) {\n\t\tconst { rewriteImports } = await import('../build/rewriteImports');\n\t\tawait rewriteImports(serverPaths, angServerVendorPaths);\n\t}\n\n\tserverPaths.forEach((serverPath) => {\n\t\tconst fileBase = basename(serverPath, '.js');\n\t\tstate.manifest[toPascal(fileBase)] = resolve(serverPath);\n\t});\n\n\tif (clientPaths.length > 0) {\n\t\tawait bundleAngularClient(\n\t\t\tstate,\n\t\t\tclientPaths,\n\t\t\tstate.resolvedPaths.buildDir\n\t\t);\n\t}\n};\n\nconst handleAngularFastPath = async (\n\tstate: HMRState,\n\tconfig: BuildConfig,\n\tfilesToRebuild: string[],\n\tstartTime: number,\n\tonRebuildComplete: (result: {\n\t\tmanifest: Record<string, string>;\n\t\thmrState: HMRState;\n\t}) => void\n) => {\n\tconst angularDir = config.angularDirectory ?? '';\n\tconst angularFiles = filesToRebuild.filter(\n\t\t(file) => detectFramework(file, state.resolvedPaths) === 'angular'\n\t);\n\n\t// Update hashes so duplicate watcher events are filtered\n\tfor (const file of angularFiles) {\n\t\tstate.fileHashes.set(resolve(file), computeFileHash(file));\n\t}\n\n\tconst angularPagesPath = resolve(angularDir, 'pages');\n\tconst pageEntries = resolveAngularPageEntries(\n\t\tstate,\n\t\tangularFiles,\n\t\tangularPagesPath\n\t);\n\n\tif (pageEntries.length > 0) {\n\t\tawait compileAndBundleAngular(state, pageEntries, angularDir);\n\t\tmarkSsrCacheDirty('angular');\n\t}\n\n\tconst { manifest } = state;\n\tconst angularHmrFiles = angularFiles.filter(\n\t\t(file) => file.endsWith('.ts') || file.endsWith('.html')\n\t);\n\tconst angularPageFiles = angularHmrFiles.filter((file) =>\n\t\tfile.replace(/\\\\/g, '/').includes('/pages/')\n\t);\n\tconst pagesToUpdate =\n\t\tangularPageFiles.length > 0 ? angularPageFiles : pageEntries;\n\n\tbroadcastAngularPageUpdates(state, pagesToUpdate, manifest, startTime);\n\n\tonRebuildComplete({ hmrState: state, manifest });\n\n\treturn manifest;\n};\n\nconst resolveReactEntryForPageFile = (\n\tnormalized: string,\n\tpagesPathResolved: string,\n\treactIndexesPath: string\n) => {\n\tconst pageName = basename(normalized, '.tsx');\n\tconst indexPath = resolve(reactIndexesPath, `${pageName}.tsx`);\n\tif (!existsSync(indexPath)) {\n\t\treturn undefined;\n\t}\n\n\treturn indexPath;\n};\n\nconst resolveReactEntriesFromDeps = (\n\tstate: HMRState,\n\tnormalized: string,\n\tpagesPathResolved: string,\n\treactIndexesPath: string,\n\treactEntries: string[]\n) => {\n\tconst affected = getAffectedFiles(state.dependencyGraph, normalized);\n\taffected.forEach((dep) => {\n\t\tif (!dep.startsWith(pagesPathResolved)) {\n\t\t\treturn;\n\t\t}\n\t\tconst pageName = basename(dep, '.tsx');\n\t\tconst indexPath = resolve(reactIndexesPath, `${pageName}.tsx`);\n\t\tif (existsSync(indexPath) && !reactEntries.includes(indexPath)) {\n\t\t\treactEntries.push(indexPath);\n\t\t}\n\t});\n};\n\nconst resolveReactEntryForFile = (\n\tstate: HMRState,\n\tfile: string,\n\tpagesPathResolved: string,\n\treactIndexesPath: string,\n\treactEntries: string[]\n) => {\n\tconst normalized = resolve(file);\n\tif (!normalized.startsWith(pagesPathResolved)) {\n\t\tresolveReactEntriesFromDeps(\n\t\t\tstate,\n\t\t\tnormalized,\n\t\t\tpagesPathResolved,\n\t\t\treactIndexesPath,\n\t\t\treactEntries\n\t\t);\n\n\t\treturn;\n\t}\n\n\tconst entry = resolveReactEntryForPageFile(\n\t\tnormalized,\n\t\tpagesPathResolved,\n\t\treactIndexesPath\n\t);\n\tif (entry) {\n\t\treactEntries.push(entry);\n\t}\n};\n\nconst collectReactEntries = (\n\tstate: HMRState,\n\tfilesToRebuild: string[],\n\treactPagesPath: string,\n\treactIndexesPath: string\n) => {\n\tconst reactEntries: string[] = [];\n\tconst pagesPathResolved = resolve(reactPagesPath);\n\n\tfilesToRebuild.forEach((file) => {\n\t\tresolveReactEntryForFile(\n\t\t\tstate,\n\t\t\tfile,\n\t\t\tpagesPathResolved,\n\t\t\treactIndexesPath,\n\t\t\treactEntries\n\t\t);\n\t});\n\n\treturn reactEntries;\n};\n\nconst bundleReactClient = async (\n\tstate: HMRState,\n\treactEntries: string[],\n\treactIndexesPath: string,\n\tbuildDir: string\n) => {\n\tconst { build: bunBuild } = await import('bun');\n\tconst { generateManifest } = await import('../build/generateManifest');\n\tconst { getDevVendorPaths } = await import('../core/devVendorPaths');\n\tconst { rewriteReactImports } = await import(\n\t\t'../build/rewriteReactImports'\n\t);\n\tconst clientRoot = await computeClientRoot(state.resolvedPaths);\n\tconst depVendorPaths = globalThis.__depVendorPaths ?? {};\n\n\tconst refreshEntry = resolve(reactIndexesPath, '_refresh.tsx');\n\tif (!reactEntries.includes(refreshEntry)) {\n\t\treactEntries.push(refreshEntry);\n\t}\n\n\tlet vendorPaths = getDevVendorPaths();\n\tif (!vendorPaths) {\n\t\tconst { computeVendorPaths } = await import(\n\t\t\t'../build/buildReactVendor'\n\t\t);\n\t\tconst { setDevVendorPaths } = await import('../core/devVendorPaths');\n\t\tvendorPaths = computeVendorPaths();\n\t\tsetDevVendorPaths(vendorPaths);\n\t}\n\n\tconst { rmSync } = await import('node:fs');\n\trmSync(resolve(buildDir, 'react', 'generated', 'indexes'), {\n\t\tforce: true,\n\t\trecursive: true\n\t});\n\n\tconst clientResult = await bunBuild({\n\t\tentrypoints: reactEntries,\n\t\tformat: 'esm',\n\t\tjsx: { development: true },\n\t\tnaming: '[dir]/[name].[hash].[ext]',\n\t\toutdir: buildDir,\n\t\tplugins: [\n\t\t\tcreateStylePreprocessorPlugin(getStyleTransformConfig(state.config))\n\t\t],\n\t\treactFastRefresh: true,\n\t\troot: clientRoot,\n\t\tsplitting: true,\n\t\ttarget: 'browser',\n\t\tthrow: false,\n\t\t...(Object.keys({\n\t\t\t...(vendorPaths ?? {}),\n\t\t\t...depVendorPaths\n\t\t}).length > 0\n\t\t\t? {\n\t\t\t\t\texternal: Object.keys({\n\t\t\t\t\t\t...(vendorPaths ?? {}),\n\t\t\t\t\t\t...depVendorPaths\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t: {})\n\t});\n\n\tif (!clientResult.success) {\n\t\treturn;\n\t}\n\n\tif (vendorPaths || Object.keys(depVendorPaths).length > 0) {\n\t\tawait rewriteReactImports(\n\t\t\tclientResult.outputs.map((art) => art.path),\n\t\t\t{\n\t\t\t\t...(vendorPaths ?? {}),\n\t\t\t\t...depVendorPaths\n\t\t\t}\n\t\t);\n\t}\n\n\tconst clientManifest = generateManifest(clientResult.outputs, buildDir);\n\tObject.assign(state.manifest, clientManifest);\n\tawait populateAssetStore(state.assetStore, clientManifest, buildDir);\n};\n\n// O(1) HMR: invalidate cache, pre-transpile the changed file,\n// and return the /@src/ URL. Pre-warming ensures the browser fetch\n// hits a warm cache. Used by React and Vue (component-level swap).\nconst getModuleUrl = async (pageFile: string) => {\n\tconst { invalidateModule, warmCache, SRC_URL_PREFIX } = await import(\n\t\t'../dev/moduleServer'\n\t);\n\tinvalidateModule(pageFile);\n\tconst rel = relative(process.cwd(), pageFile).replace(/\\\\/g, '/');\n\tconst url = `${SRC_URL_PREFIX}${rel}`;\n\twarmCache(url);\n\n\treturn url;\n};\n\nconst getReactModuleUrl = getModuleUrl;\n\n// Svelte: invalidate changed files, resolve the PAGE component,\n// and return an /@hmr/ URL that bootstraps the full page remount.\n// (Svelte lacks a component-level HMR runtime like React/Vue.)\n\nconst resolveBroadcastTarget = async (primaryFile: string) => {\n\tconst isComponentFile =\n\t\tprimaryFile.endsWith('.tsx') || primaryFile.endsWith('.jsx');\n\n\tif (isComponentFile) return primaryFile;\n\n\tconst { findNearestComponent } = await import('./transformCache');\n\tconst nearest = findNearestComponent(resolve(primaryFile));\n\n\treturn nearest ?? primaryFile;\n};\n\nconst handleReactModuleServerPath = async (\n\tstate: HMRState,\n\treactFiles: string[],\n\tstartTime: number,\n\tonRebuildComplete: (result: {\n\t\tmanifest: Record<string, string>;\n\t\thmrState: HMRState;\n\t}) => void\n) => {\n\t// Update hashes so duplicate watcher events are filtered\n\tfor (const file of reactFiles) {\n\t\tstate.fileHashes.set(resolve(file), computeFileHash(file));\n\t}\n\n\tmarkSsrCacheDirty('react');\n\n\tconst primaryFile =\n\t\treactFiles.find(\n\t\t\t(file) => !file.replace(/\\\\/g, '/').includes('/pages/')\n\t\t) ?? reactFiles[0];\n\n\tif (!primaryFile) {\n\t\tonRebuildComplete({\n\t\t\thmrState: state,\n\t\t\tmanifest: state.manifest\n\t\t});\n\n\t\treturn state.manifest;\n\t}\n\n\t// Invalidate changed files + direct importers in transform cache\n\tconst { invalidateModule } = await getModuleServer();\n\tfor (const file of reactFiles) {\n\t\tinvalidateModule(file);\n\t}\n\n\tconst broadcastTarget = await resolveBroadcastTarget(primaryFile);\n\tconst pageModuleUrl = await getReactModuleUrl(broadcastTarget);\n\n\tif (pageModuleUrl) {\n\t\tconst serverDuration = Date.now() - startTime;\n\t\tstate.lastHmrPath = relative(process.cwd(), primaryFile).replace(\n\t\t\t/\\\\/g,\n\t\t\t'/'\n\t\t);\n\t\tstate.lastHmrFramework = 'react';\n\n\t\tbroadcastToClients(state, {\n\t\t\tdata: {\n\t\t\t\tframework: 'react',\n\t\t\t\thasComponentChanges: true,\n\t\t\t\thasCSSChanges: false,\n\t\t\t\tmanifest: state.manifest,\n\t\t\t\tpageModuleUrl,\n\t\t\t\tprimarySource: primaryFile,\n\t\t\t\tserverDuration,\n\t\t\t\tsourceFiles: reactFiles\n\t\t\t},\n\t\t\ttype: 'react-update'\n\t\t});\n\t}\n\n\tonRebuildComplete({\n\t\thmrState: state,\n\t\tmanifest: state.manifest\n\t});\n\n\treturn state.manifest;\n};\n\nconst handleReactFastPath = async (\n\tstate: HMRState,\n\tconfig: BuildConfig,\n\tfilesToRebuild: string[],\n\tstartTime: number,\n\tonRebuildComplete: (result: {\n\t\tmanifest: Record<string, string>;\n\t\thmrState: HMRState;\n\t}) => void\n) => {\n\tconst reactDir = config.reactDirectory ?? '';\n\tconst reactPagesPath = resolve(reactDir, 'pages');\n\tconst reactIndexesPath = resolve(reactDir, 'generated', 'indexes');\n\tconst { buildDir } = state.resolvedPaths;\n\n\t// O(1) fast path: serve the changed file via the module server.\n\t// No Bun.build() at all — the browser re-imports the single module\n\t// and React Fast Refresh swaps the component in place.\n\tconst reactFiles = filesToRebuild.filter(\n\t\t(file) => detectFramework(file, state.resolvedPaths) === 'react'\n\t);\n\n\t// O(1) fast path for ALL React files via the module server.\n\t// Component files → re-import directly via Fast Refresh.\n\t// Data/utility files → find nearest component boundary and\n\t// re-import that. Chain invalidation ensures the data file's\n\t// ?v= is bumped, so the browser fetches only 2 modules\n\t// (component + changed data file). State is preserved.\n\tif (reactFiles.length > 0) {\n\t\treturn handleReactModuleServerPath(\n\t\t\tstate,\n\t\t\treactFiles,\n\t\t\tstartTime,\n\t\t\tonRebuildComplete\n\t\t);\n\t}\n\n\t// Full rebuild path: component changes or fast path failed\n\tconst { generateReactIndexFiles } = await import(\n\t\t'../build/generateReactIndexes'\n\t);\n\tawait generateReactIndexFiles(reactPagesPath, reactIndexesPath, true);\n\n\tconst reactEntries = collectReactEntries(\n\t\tstate,\n\t\tfilesToRebuild,\n\t\treactPagesPath,\n\t\treactIndexesPath\n\t);\n\n\tif (reactEntries.length > 0) {\n\t\tawait bundleReactClient(\n\t\t\tstate,\n\t\t\treactEntries,\n\t\t\treactIndexesPath,\n\t\t\tbuildDir\n\t\t);\n\t}\n\n\tconst { manifest } = state;\n\tconst duration = Date.now() - startTime;\n\n\tconst reactPageFiles = reactFiles.filter((file) =>\n\t\tfile.replace(/\\\\/g, '/').includes('/pages/')\n\t);\n\tconst sourceFiles = reactPageFiles.length > 0 ? reactPageFiles : reactFiles;\n\n\tlogHmrUpdate(sourceFiles[0] ?? reactFiles[0] ?? '', 'react', duration);\n\tbroadcastToClients(state, {\n\t\tdata: {\n\t\t\tframework: 'react',\n\t\t\thasComponentChanges: true,\n\t\t\thasCSSChanges: false,\n\t\t\tmanifest,\n\t\t\tprimarySource: sourceFiles[0],\n\t\t\tsourceFiles\n\t\t},\n\t\ttype: 'react-update'\n\t});\n\n\tonRebuildComplete({ hmrState: state, manifest });\n\n\treturn manifest;\n};\n\nconst handleServerManifestUpdate = (\n\tstate: HMRState,\n\tserverResult: Awaited<ReturnType<typeof import('bun').build>> | undefined\n) => {\n\tif (!serverResult?.success) {\n\t\treturn;\n\t}\n\n\tserverResult.outputs.forEach((artifact) => {\n\t\tupdateServerManifestEntry(state, artifact);\n\t});\n};\n\nconst handleClientManifestUpdate = async (\n\tstate: HMRState,\n\tclientResult: Awaited<ReturnType<typeof import('bun').build>> | undefined,\n\tbuildDir: string\n) => {\n\tif (!clientResult?.success) {\n\t\treturn;\n\t}\n\n\tconst { generateManifest } = await import('../build/generateManifest');\n\tconst clientManifest = generateManifest(clientResult.outputs, buildDir);\n\tObject.assign(state.manifest, clientManifest);\n\tawait populateAssetStore(state.assetStore, clientManifest, buildDir);\n};\n\nconst broadcastSvelteModuleUpdate = async (\n\tstate: HMRState,\n\tchangedFile: string,\n\tsvelteFiles: string[],\n\tserverDuration: number\n) => {\n\tconst pageModuleUrl = await getModuleUrl(changedFile);\n\tstate.lastHmrPath = changedFile;\n\tstate.lastHmrFramework = 'svelte';\n\n\tbroadcastToClients(state, {\n\t\tdata: {\n\t\t\tframework: 'svelte',\n\t\t\tmanifest: state.manifest,\n\t\t\tpageModuleUrl,\n\t\t\tserverDuration,\n\t\t\tsourceFile: changedFile,\n\t\t\tsourceFiles: svelteFiles,\n\t\t\tupdateType: 'full'\n\t\t},\n\t\ttype: 'svelte-update'\n\t});\n};\n\nconst handleSvelteModuleServerPath = async (\n\tstate: HMRState,\n\tsvelteFiles: string[],\n\tstartTime: number,\n\tonRebuildComplete: (result: {\n\t\tmanifest: Record<string, string>;\n\t\thmrState: HMRState;\n\t}) => void\n) => {\n\tfor (const file of svelteFiles) {\n\t\tstate.fileHashes.set(resolve(file), computeFileHash(file));\n\t}\n\n\tmarkSsrCacheDirty('svelte');\n\n\tconst serverDuration = Date.now() - startTime;\n\n\tawait runSequentially(svelteFiles, (changedFile) =>\n\t\tbroadcastSvelteModuleUpdate(\n\t\t\tstate,\n\t\t\tchangedFile,\n\t\t\tsvelteFiles,\n\t\t\tserverDuration\n\t\t)\n\t);\n\n\tonRebuildComplete({\n\t\thmrState: state,\n\t\tmanifest: state.manifest\n\t});\n\n\treturn state.manifest;\n};\n\nconst handleSvelteFastPath = async (\n\tstate: HMRState,\n\tconfig: BuildConfig,\n\tfilesToRebuild: string[],\n\tstartTime: number,\n\tonRebuildComplete: (result: {\n\t\tmanifest: Record<string, string>;\n\t\thmrState: HMRState;\n\t}) => void\n) => {\n\tconst svelteDir = config.svelteDirectory ?? '';\n\n\tconst svelteFiles = filesToRebuild.filter(\n\t\t(file) =>\n\t\t\t(file.endsWith('.svelte') || file.includes('.svelte.')) &&\n\t\t\tdetectFramework(file, state.resolvedPaths) === 'svelte'\n\t);\n\n\t// O(1) fast path: Svelte 5's $.hmr() swaps components in place.\n\t// Handles ALL changed files — invalidate each, broadcast each.\n\tif (svelteFiles.length > 0) {\n\t\treturn handleSvelteModuleServerPath(\n\t\t\tstate,\n\t\t\tsvelteFiles,\n\t\t\tstartTime,\n\t\t\tonRebuildComplete\n\t\t);\n\t}\n\n\t// Bundled fallback\n\tconst { buildDir } = state.resolvedPaths;\n\n\tif (svelteFiles.length > 0) {\n\t\tconst { compileSvelte } = await import('../build/compileSvelte');\n\t\tconst { build: bunBuild } = await import('bun');\n\t\tconst clientRoot = await computeClientRoot(state.resolvedPaths);\n\n\t\tconst { svelteServerPaths, svelteIndexPaths, svelteClientPaths } =\n\t\t\tawait compileSvelte(\n\t\t\t\tsvelteFiles,\n\t\t\t\tsvelteDir,\n\t\t\t\tnew Map(),\n\t\t\t\ttrue,\n\t\t\t\tgetStyleTransformConfig(state.config)\n\t\t\t);\n\n\t\tconst serverEntries = [...svelteServerPaths];\n\t\tconst clientEntries = [...svelteIndexPaths, ...svelteClientPaths];\n\n\t\tconst serverRoot = resolve(svelteDir, 'generated', 'server');\n\t\tconst serverOutDir = resolve(buildDir, basename(svelteDir));\n\n\t\tconst [serverResult, clientResult] = await Promise.all([\n\t\t\tserverEntries.length > 0\n\t\t\t\t? bunBuild({\n\t\t\t\t\t\tentrypoints: serverEntries,\n\t\t\t\t\t\texternal: [\n\t\t\t\t\t\t\t'react',\n\t\t\t\t\t\t\t'react/*',\n\t\t\t\t\t\t\t'react-dom',\n\t\t\t\t\t\t\t'react-dom/*',\n\t\t\t\t\t\t\t'svelte',\n\t\t\t\t\t\t\t'svelte/*'\n\t\t\t\t\t\t],\n\t\t\t\t\t\tformat: 'esm',\n\t\t\t\t\t\tnaming: '[dir]/[name].[hash].[ext]',\n\t\t\t\t\t\toutdir: serverOutDir,\n\t\t\t\t\t\tplugins: [\n\t\t\t\t\t\t\tcreateStylePreprocessorPlugin(\n\t\t\t\t\t\t\t\tgetStyleTransformConfig(state.config)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t],\n\t\t\t\t\t\troot: serverRoot,\n\t\t\t\t\t\ttarget: 'bun',\n\t\t\t\t\t\tthrow: false\n\t\t\t\t\t})\n\t\t\t\t: undefined,\n\t\t\tclientEntries.length > 0\n\t\t\t\t? bunBuild({\n\t\t\t\t\t\tentrypoints: clientEntries,\n\t\t\t\t\t\tformat: 'esm',\n\t\t\t\t\t\tnaming: '[dir]/[name].[hash].[ext]',\n\t\t\t\t\t\toutdir: buildDir,\n\t\t\t\t\t\tplugins: [\n\t\t\t\t\t\t\tcreateStylePreprocessorPlugin(\n\t\t\t\t\t\t\t\tgetStyleTransformConfig(state.config)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t],\n\t\t\t\t\t\troot: clientRoot,\n\t\t\t\t\t\ttarget: 'browser',\n\t\t\t\t\t\tthrow: false\n\t\t\t\t\t})\n\t\t\t\t: undefined\n\t\t]);\n\n\t\thandleServerManifestUpdate(state, serverResult);\n\t\tawait handleClientManifestUpdate(state, clientResult, buildDir);\n\t}\n\n\tconst { manifest } = state;\n\tconst duration = Date.now() - startTime;\n\n\tconst broadcastFiles =\n\t\tsvelteFiles.length > 0 ? svelteFiles : filesToRebuild;\n\tbroadcastFiles.forEach((sveltePagePath) => {\n\t\tconst fileName = basename(sveltePagePath);\n\t\tconst baseName = fileName.replace(/\\.svelte$/, '');\n\t\tconst pascalName = toPascal(baseName);\n\t\tconst cssKey = `${pascalName}CSS`;\n\t\tconst cssUrl = manifest[cssKey] || null;\n\n\t\tlogHmrUpdate(sveltePagePath, 'svelte', duration);\n\t\tbroadcastToClients(state, {\n\t\t\tdata: {\n\t\t\t\tcssBaseName: baseName,\n\t\t\t\tcssUrl,\n\t\t\t\tframework: 'svelte',\n\t\t\t\thtml: null,\n\t\t\t\tmanifest,\n\t\t\t\tsourceFile: sveltePagePath,\n\t\t\t\tupdateType: 'full'\n\t\t\t},\n\t\t\ttype: 'svelte-update'\n\t\t});\n\t});\n\n\tonRebuildComplete({ hmrState: state, manifest });\n\n\treturn manifest;\n};\n\nconst collectAffectedVueFiles = (\n\tstate: HMRState,\n\tnonVueFiles: string[],\n\tvueFiles: string[]\n) => {\n\tfor (const tsFile of nonVueFiles) {\n\t\tconst affected = getAffectedFiles(state.dependencyGraph, tsFile);\n\t\tconst newVueDeps = affected.filter(\n\t\t\t(dep) => dep.endsWith('.vue') && !vueFiles.includes(dep)\n\t\t);\n\t\tvueFiles.push(...newVueDeps);\n\t}\n};\n\nconst invalidateNonVueModules = async (nonVueFiles: string[]) => {\n\tif (nonVueFiles.length === 0) return;\n\n\tconst { invalidateModule } = await getModuleServer();\n\tfor (const file of nonVueFiles) {\n\t\tinvalidateModule(file);\n\t}\n};\n\nconst broadcastVueModuleUpdate = async (\n\tstate: HMRState,\n\tchangedFile: string,\n\tvueFiles: string[],\n\tnonVueFiles: string[],\n\tforceReload: boolean,\n\tserverDuration: number\n) => {\n\tconst pageModuleUrl = await getModuleUrl(changedFile);\n\t// Log the actual changed file — the composable, not the page\n\tconst [firstNonVue] = nonVueFiles;\n\tstate.lastHmrPath =\n\t\tnonVueFiles.length > 0 && firstNonVue ? firstNonVue : changedFile;\n\tstate.lastHmrFramework = 'vue';\n\n\tbroadcastToClients(state, {\n\t\tdata: {\n\t\t\tchangeType: 'full',\n\t\t\tforceReload,\n\t\t\tframework: 'vue',\n\t\t\tmanifest: state.manifest,\n\t\t\tpageModuleUrl,\n\t\t\tserverDuration,\n\t\t\tsourceFile: changedFile,\n\t\t\tsourceFiles: vueFiles,\n\t\t\tupdateType: 'full'\n\t\t},\n\t\ttype: 'vue-update'\n\t});\n};\n\nconst handleVueModuleServerPath = async (\n\tstate: HMRState,\n\tvueFiles: string[],\n\tnonVueFiles: string[],\n\tstartTime: number,\n\tonRebuildComplete: (result: {\n\t\tmanifest: Record<string, string>;\n\t\thmrState: HMRState;\n\t}) => void\n) => {\n\tfor (const file of [...vueFiles, ...nonVueFiles]) {\n\t\tstate.fileHashes.set(resolve(file), computeFileHash(file));\n\t}\n\n\tmarkSsrCacheDirty('vue');\n\n\t// Also invalidate non-Vue files (composables) so the module\n\t// server serves the fresh version when the component re-imports.\n\tawait invalidateNonVueModules(nonVueFiles);\n\n\tconst serverDuration = Date.now() - startTime;\n\n\t// If triggered by a composable change, force reload so setup re-runs\n\tconst forceReload = nonVueFiles.length > 0;\n\n\tawait runSequentially(vueFiles, (changedFile) =>\n\t\tbroadcastVueModuleUpdate(\n\t\t\tstate,\n\t\t\tchangedFile,\n\t\t\tvueFiles,\n\t\t\tnonVueFiles,\n\t\t\tforceReload,\n\t\t\tserverDuration\n\t\t)\n\t);\n\n\tonRebuildComplete({\n\t\thmrState: state,\n\t\tmanifest: state.manifest\n\t});\n\n\treturn state.manifest;\n};\n\nconst handleVueFastPath = async (\n\tstate: HMRState,\n\tconfig: BuildConfig,\n\tfilesToRebuild: string[],\n\tstartTime: number,\n\tonRebuildComplete: (result: {\n\t\tmanifest: Record<string, string>;\n\t\thmrState: HMRState;\n\t}) => void\n) => {\n\tconst vueFiles = filesToRebuild.filter(\n\t\t(file) =>\n\t\t\tfile.endsWith('.vue') &&\n\t\t\tdetectFramework(file, state.resolvedPaths) === 'vue'\n\t);\n\n\t// For non-.vue files (composables, utilities) in the Vue directory,\n\t// find importing .vue files via the dependency graph and reload those.\n\tconst nonVueFiles = filesToRebuild.filter(\n\t\t(file) =>\n\t\t\t!file.endsWith('.vue') &&\n\t\t\tdetectFramework(file, state.resolvedPaths) === 'vue'\n\t);\n\tcollectAffectedVueFiles(state, nonVueFiles, vueFiles);\n\n\t// O(1) fast path: Vue HMR runtime swaps components in place.\n\t// Handles ALL changed files in the batch.\n\tif (vueFiles.length > 0) {\n\t\treturn handleVueModuleServerPath(\n\t\t\tstate,\n\t\t\tvueFiles,\n\t\t\tnonVueFiles,\n\t\t\tstartTime,\n\t\t\tonRebuildComplete\n\t\t);\n\t}\n\n\t// Bundled fallback\n\tonRebuildComplete({ hmrState: state, manifest: state.manifest });\n\n\treturn state.manifest;\n};\n\nconst collectModuleUpdatesForFramework = (\n\tframework: string,\n\tfilesToRebuild: string[],\n\tmanifest: Record<string, string>,\n\tstate: HMRState\n) => {\n\tconst frameworkFiles = filesToRebuild.filter(\n\t\t(file) => detectFramework(file, state.resolvedPaths) === framework\n\t);\n\n\tif (frameworkFiles.length === 0) {\n\t\treturn [];\n\t}\n\n\treturn createModuleUpdates(\n\t\tframeworkFiles,\n\t\tframework,\n\t\tmanifest,\n\t\tstate.resolvedPaths\n\t);\n};\n\nconst collectAllModuleUpdates = (\n\taffectedFrameworks: string[],\n\tfilesToRebuild: string[],\n\tmanifest: Record<string, string>,\n\tstate: HMRState\n) => {\n\tconst allModuleUpdates: ModuleUpdate[] = [];\n\n\taffectedFrameworks.forEach((framework) => {\n\t\tconst moduleUpdates = collectModuleUpdatesForFramework(\n\t\t\tframework,\n\t\t\tfilesToRebuild,\n\t\t\tmanifest,\n\t\t\tstate\n\t\t);\n\t\tmoduleUpdates.forEach((update) => {\n\t\t\tif (update) {\n\t\t\t\tallModuleUpdates.push(update);\n\t\t\t}\n\t\t});\n\t});\n\n\treturn allModuleUpdates;\n};\n\nconst handleReactHMR = (\n\tstate: HMRState,\n\taffectedFrameworks: string[],\n\tfilesToRebuild: string[],\n\tmanifest: Record<string, string>,\n\tduration: number\n) => {\n\tif (\n\t\t!affectedFrameworks.includes('react') ||\n\t\t!state.resolvedPaths.reactDir\n\t) {\n\t\treturn;\n\t}\n\n\tconst reactFiles = filesToRebuild.filter(\n\t\t(file) => detectFramework(file, state.resolvedPaths) === 'react'\n\t);\n\n\tif (reactFiles.length === 0) {\n\t\treturn;\n\t}\n\n\tconst reactPageFiles = reactFiles.filter((file) =>\n\t\tfile.replace(/\\\\/g, '/').includes('/pages/')\n\t);\n\tconst sourceFiles = reactPageFiles.length > 0 ? reactPageFiles : reactFiles;\n\tconst [primarySource] = sourceFiles;\n\n\ttry {\n\t\tconst hasComponentChanges = reactFiles.some(\n\t\t\t(file) =>\n\t\t\t\tfile.endsWith('.tsx') ||\n\t\t\t\tfile.endsWith('.ts') ||\n\t\t\t\tfile.endsWith('.jsx')\n\t\t);\n\t\tconst hasCSSChanges = reactFiles.some(isStylePath);\n\n\t\tlogHmrUpdate(primarySource ?? reactFiles[0] ?? '', 'react', duration);\n\n\t\tbroadcastToClients(state, {\n\t\t\tdata: {\n\t\t\t\tframework: 'react',\n\t\t\t\thasComponentChanges: hasComponentChanges,\n\t\t\t\thasCSSChanges: hasCSSChanges,\n\t\t\t\tmanifest,\n\t\t\t\tprimarySource,\n\t\t\t\tsourceFiles\n\t\t\t},\n\t\t\ttype: 'react-update'\n\t\t});\n\t} catch (err) {\n\t\tsendTelemetryEvent('hmr:error', {\n\t\t\tframework: 'react',\n\t\t\tmessage: err instanceof Error ? err.message : String(err)\n\t\t});\n\t}\n};\n\nconst handleScriptUpdate = (\n\tstate: HMRState,\n\tscriptFile: string,\n\tmanifest: Record<string, string>,\n\tframework: string,\n\tduration: number\n) => {\n\tconst scriptBaseName = basename(scriptFile).replace(\n\t\t/\\.(ts|js|tsx|jsx)$/,\n\t\t''\n\t);\n\tconst pascalName = toPascal(scriptBaseName);\n\tconst scriptPath = manifest[pascalName] || null;\n\n\tif (!scriptPath) {\n\t\tlogWarn(`Script not found in manifest: ${pascalName}`);\n\n\t\treturn;\n\t}\n\n\tlogScriptUpdate(scriptFile, framework, duration);\n\tbroadcastToClients(state, {\n\t\tdata: {\n\t\t\tframework,\n\t\t\tmanifest,\n\t\t\tscriptPath,\n\t\t\tsourceFile: scriptFile\n\t\t},\n\t\ttype: 'script-update'\n\t});\n};\n\nconst isScriptFile = (file: string) =>\n\t(file.endsWith('.ts') ||\n\t\tfile.endsWith('.js') ||\n\t\tfile.endsWith('.tsx') ||\n\t\tfile.endsWith('.jsx')) &&\n\tfile.replace(/\\\\/g, '/').includes('/scripts/');\n\nconst resolveIslandDefinitionSource = (\n\tdefinition: { buildReference: { source: string } | null },\n\tbuildInfo: { resolvedRegistryPath: string },\n\tislandFiles: Set<string>\n) => {\n\tconst { buildReference } = definition;\n\tif (!buildReference?.source) {\n\t\treturn;\n\t}\n\n\tconst sourcePath = buildReference.source.startsWith('file://')\n\t\t? new URL(buildReference.source).pathname\n\t\t: resolve(\n\t\t\t\tdirname(buildInfo.resolvedRegistryPath),\n\t\t\t\tbuildReference.source\n\t\t\t);\n\tislandFiles.add(resolve(sourcePath));\n};\n\nconst resolveIslandSourceFiles = async (config: BuildConfig) => {\n\tconst registryPath = config.islands?.registry;\n\tif (!registryPath) {\n\t\treturn new Set<string>();\n\t}\n\n\tconst buildInfo = await loadIslandRegistryBuildInfo(registryPath);\n\tconst islandFiles = new Set<string>([\n\t\tresolve(buildInfo.resolvedRegistryPath)\n\t]);\n\n\tfor (const definition of buildInfo.definitions) {\n\t\tresolveIslandDefinitionSource(definition, buildInfo, islandFiles);\n\t}\n\n\treturn islandFiles;\n};\n\nconst didStaticPagesNeedIslandRefresh = async (\n\tconfig: BuildConfig,\n\tfilesToRebuild: string[]\n) => {\n\tconst islandFiles = await resolveIslandSourceFiles(config);\n\tif (islandFiles.size === 0) {\n\t\treturn false;\n\t}\n\n\treturn filesToRebuild.some((file) => islandFiles.has(resolve(file)));\n};\n\nconst handleIslandSourceReload = async (\n\tstate: HMRState,\n\tconfig: BuildConfig,\n\tfilesToRebuild: string[],\n\tmanifest: Record<string, string>\n) => {\n\tconst shouldReload = await didStaticPagesNeedIslandRefresh(\n\t\tconfig,\n\t\tfilesToRebuild\n\t);\n\tif (!shouldReload) {\n\t\treturn false;\n\t}\n\n\tsetCurrentPageIslandMetadata(await loadPageIslandMetadata(config));\n\tconst affectedPages = filesToRebuild.flatMap((file) =>\n\t\tgetPagesUsingIslandSource(file)\n\t);\n\n\tbroadcastToClients(state, {\n\t\tdata: {\n\t\t\taffectedPages,\n\t\t\tmanifest\n\t\t},\n\t\ttype: 'full-reload'\n\t});\n\n\treturn true;\n};\n\nconst handleHTMLScriptHMR = (\n\tstate: HMRState,\n\tfilesToRebuild: string[],\n\tmanifest: Record<string, string>,\n\tduration: number\n) => {\n\tif (!state.resolvedPaths.htmlDir) {\n\t\treturn;\n\t}\n\n\tconst htmlFrameworkFiles = filesToRebuild.filter(\n\t\t(file) => detectFramework(file, state.resolvedPaths) === 'html'\n\t);\n\n\tif (htmlFrameworkFiles.length === 0) {\n\t\treturn;\n\t}\n\n\tconst scriptFiles = htmlFrameworkFiles.filter(isScriptFile);\n\tconst htmlPageFiles = htmlFrameworkFiles.filter((file) =>\n\t\tfile.endsWith('.html')\n\t);\n\n\tif (scriptFiles.length === 0 || htmlPageFiles.length > 0) {\n\t\treturn;\n\t}\n\n\tscriptFiles.forEach((scriptFile) => {\n\t\thandleScriptUpdate(state, scriptFile, manifest, 'html', duration);\n\t});\n};\n\nconst computeOutputPagesDir = (\n\tstate: HMRState,\n\tconfig: BuildConfig,\n\tframework: 'html' | 'htmx'\n) => {\n\tconst isSingle =\n\t\t!config.reactDirectory &&\n\t\t!config.svelteDirectory &&\n\t\t!config.vueDirectory &&\n\t\t(framework === 'html' ? !config.htmxDirectory : !config.htmlDirectory);\n\n\tif (isSingle) {\n\t\treturn resolve(state.resolvedPaths.buildDir, 'pages');\n\t}\n\n\tconst dirName =\n\t\tframework === 'html'\n\t\t\t? basename(config.htmlDirectory ?? 'html')\n\t\t\t: basename(config.htmxDirectory ?? 'htmx');\n\n\treturn resolve(state.resolvedPaths.buildDir, dirName, 'pages');\n};\n\nconst processHtmlPageUpdate = async (\n\tstate: HMRState,\n\tpageFile: string,\n\tbuiltHtmlPagePath: string,\n\tmanifest: Record<string, string>,\n\tduration: number\n) => {\n\ttry {\n\t\tconst { handleHTMLUpdate } = await import('./simpleHTMLHMR');\n\t\tconst newHTML = await handleHTMLUpdate(builtHtmlPagePath);\n\n\t\tif (!newHTML) {\n\t\t\treturn;\n\t\t}\n\n\t\tlogHmrUpdate(pageFile, 'html', duration);\n\t\tbroadcastToClients(state, {\n\t\t\tdata: {\n\t\t\t\tframework: 'html',\n\t\t\t\thtml: newHTML,\n\t\t\t\tmanifest,\n\t\t\t\tsourceFile: builtHtmlPagePath\n\t\t\t},\n\t\t\ttype: 'html-update'\n\t\t});\n\t} catch (err) {\n\t\tsendTelemetryEvent('hmr:error', {\n\t\t\tframework: 'html',\n\t\t\tmessage: err instanceof Error ? err.message : String(err)\n\t\t});\n\t}\n};\n\nconst handleHTMLPageHMR = async (\n\tstate: HMRState,\n\tconfig: BuildConfig,\n\tfilesToRebuild: string[],\n\tmanifest: Record<string, string>,\n\tduration: number\n) => {\n\tif (!state.resolvedPaths.htmlDir) {\n\t\treturn;\n\t}\n\n\tconst shouldRefreshFromIslandChange = await didStaticPagesNeedIslandRefresh(\n\t\tconfig,\n\t\tfilesToRebuild\n\t);\n\tconst htmlFrameworkFiles = filesToRebuild.filter(\n\t\t(file) => detectFramework(file, state.resolvedPaths) === 'html'\n\t);\n\n\tif (htmlFrameworkFiles.length === 0 && !shouldRefreshFromIslandChange) {\n\t\treturn;\n\t}\n\n\tconst htmlPageFiles = htmlFrameworkFiles.filter((file) =>\n\t\tfile.endsWith('.html')\n\t);\n\tconst outputHtmlPages = computeOutputPagesDir(state, config, 'html');\n\tconst shouldRefreshAllPages =\n\t\thtmlPageFiles.length === 0 && shouldRefreshFromIslandChange;\n\tconst pageFilesToUpdate = shouldRefreshAllPages\n\t\t? await scanEntryPoints(outputHtmlPages, '*.html')\n\t\t: htmlPageFiles;\n\n\tawait runSequentially(pageFilesToUpdate, async (pageFile) => {\n\t\tconst htmlPageName = basename(pageFile);\n\t\tconst builtHtmlPagePath = resolve(outputHtmlPages, htmlPageName);\n\t\tawait processHtmlPageUpdate(\n\t\t\tstate,\n\t\t\tpageFile,\n\t\t\tbuiltHtmlPagePath,\n\t\t\tmanifest,\n\t\t\tduration\n\t\t);\n\t});\n};\n\nconst handleVueCssOnlyUpdate = (\n\tstate: HMRState,\n\tvueCssFiles: string[],\n\tmanifest: Record<string, string>,\n\tduration: number\n) => {\n\tconst [cssFile] = vueCssFiles;\n\tif (!cssFile) {\n\t\treturn;\n\t}\n\n\tconst cssBaseName = basename(getStyleBaseName(cssFile));\n\tconst cssPascalName = toPascal(cssBaseName);\n\tconst cssKey = `${cssPascalName}CSS`;\n\tconst cssUrl = manifest[cssKey] || null;\n\n\tlogCssUpdate(cssFile, 'vue', duration);\n\tbroadcastToClients(state, {\n\t\tdata: {\n\t\t\tcssBaseName,\n\t\t\tcssUrl,\n\t\t\tframework: 'vue',\n\t\t\tmanifest,\n\t\t\tsourceFile: cssFile,\n\t\t\tupdateType: 'css-only'\n\t\t},\n\t\ttype: 'vue-update'\n\t});\n};\n\nconst broadcastVueStyleOnly = (\n\tstate: HMRState,\n\tvuePagePath: string,\n\tbaseName: string,\n\tcssUrl: string | null,\n\thmrId: string,\n\tmanifest: Record<string, string>,\n\tduration: number\n) => {\n\tlogCssUpdate(vuePagePath, 'vue', duration);\n\tbroadcastToClients(state, {\n\t\tdata: {\n\t\t\tchangeType: 'style-only',\n\t\t\tcssBaseName: baseName,\n\t\t\tcssUrl,\n\t\t\tframework: 'vue',\n\t\t\thmrId,\n\t\t\tmanifest,\n\t\t\tsourceFile: vuePagePath,\n\t\t\tupdateType: 'css-only'\n\t\t},\n\t\ttype: 'vue-update'\n\t});\n};\n\nconst broadcastVueFullUpdate = (\n\tstate: HMRState,\n\tvuePagePath: string,\n\tchangeType: string,\n\tcssUrl: string | null,\n\thmrId: string,\n\tmanifest: Record<string, string>,\n\tpascalName: string,\n\tduration: number\n) => {\n\tconst componentPath = manifest[`${pascalName}Client`] || null;\n\n\tlogHmrUpdate(vuePagePath, 'vue', duration);\n\tbroadcastToClients(state, {\n\t\tdata: {\n\t\t\tchangeType,\n\t\t\tcomponentPath,\n\t\t\tcssUrl,\n\t\t\tframework: 'vue',\n\t\t\thmrId,\n\t\t\thtml: null,\n\t\t\tmanifest,\n\t\t\tsourceFile: vuePagePath,\n\t\t\tupdateType: 'full'\n\t\t},\n\t\ttype: 'vue-update'\n\t});\n};\n\nconst broadcastVuePageChange = async (\n\tstate: HMRState,\n\tconfig: BuildConfig,\n\tvuePagePath: string,\n\tmanifest: Record<string, string>,\n\tduration: number\n) => {\n\tconst fileName = basename(vuePagePath);\n\tconst baseName = fileName.replace(/\\.vue$/, '');\n\tconst pascalName = toPascal(baseName);\n\n\tconst vueRoot = config.vueDirectory;\n\tconst hmrId = vueRoot\n\t\t? relative(vueRoot, vuePagePath)\n\t\t\t\t.replace(/\\\\/g, '/')\n\t\t\t\t.replace(/\\.vue$/, '')\n\t\t: baseName;\n\n\tconst cssKey = `${pascalName}CSS`;\n\tconst cssUrl = manifest[cssKey] || null;\n\n\tconst { vueHmrMetadata } = await import('../build/compileVue');\n\tconst hmrMeta = vueHmrMetadata.get(resolve(vuePagePath));\n\tconst changeType = hmrMeta?.changeType ?? 'full';\n\n\tif (changeType === 'style-only') {\n\t\tbroadcastVueStyleOnly(\n\t\t\tstate,\n\t\t\tvuePagePath,\n\t\t\tbaseName,\n\t\t\tcssUrl,\n\t\t\thmrId,\n\t\t\tmanifest,\n\t\t\tduration\n\t\t);\n\n\t\treturn;\n\t}\n\n\tbroadcastVueFullUpdate(\n\t\tstate,\n\t\tvuePagePath,\n\t\tchangeType,\n\t\tcssUrl,\n\t\thmrId,\n\t\tmanifest,\n\t\tpascalName,\n\t\tduration\n\t);\n};\n\nconst processVuePageUpdate = async (\n\tstate: HMRState,\n\tconfig: BuildConfig,\n\tvuePagePath: string,\n\tmanifest: Record<string, string>,\n\tduration: number\n) => {\n\ttry {\n\t\tawait broadcastVuePageChange(\n\t\t\tstate,\n\t\t\tconfig,\n\t\t\tvuePagePath,\n\t\t\tmanifest,\n\t\t\tduration\n\t\t);\n\t} catch (err) {\n\t\tsendTelemetryEvent('hmr:error', {\n\t\t\tframework: 'vue',\n\t\t\tmessage: err instanceof Error ? err.message : String(err)\n\t\t});\n\t}\n};\n\nconst handleVueHMR = async (\n\tstate: HMRState,\n\tconfig: BuildConfig,\n\tfilesToRebuild: string[],\n\tmanifest: Record<string, string>,\n\tduration: number\n) => {\n\tif (!config.vueDirectory) {\n\t\treturn;\n\t}\n\n\tconst vueFiles = filesToRebuild.filter(\n\t\t(file) => detectFramework(file, state.resolvedPaths) === 'vue'\n\t);\n\n\tif (vueFiles.length === 0) {\n\t\treturn;\n\t}\n\n\tconst vueComponentFiles = vueFiles.filter((file) => file.endsWith('.vue'));\n\tconst vueCssFiles = vueFiles.filter(isStylePath);\n\tconst isCssOnlyChange =\n\t\tvueComponentFiles.length === 0 && vueCssFiles.length > 0;\n\n\tconst vuePageFiles = vueFiles.filter((file) =>\n\t\tfile.replace(/\\\\/g, '/').includes('/pages/')\n\t);\n\tconst pagesToUpdate =\n\t\tvuePageFiles.length > 0 ? vuePageFiles : vueComponentFiles;\n\n\tif (isCssOnlyChange && vueCssFiles.length > 0) {\n\t\thandleVueCssOnlyUpdate(state, vueCssFiles, manifest, duration);\n\t}\n\n\tawait runSequentially(pagesToUpdate, (vuePagePath) =>\n\t\tprocessVuePageUpdate(state, config, vuePagePath, manifest, duration)\n\t);\n};\n\nconst handleSvelteCssOnlyUpdate = (\n\tstate: HMRState,\n\tsvelteCssFiles: string[],\n\tmanifest: Record<string, string>,\n\tduration: number\n) => {\n\tconst [cssFile] = svelteCssFiles;\n\tif (!cssFile) {\n\t\treturn;\n\t}\n\n\tconst cssBaseName = basename(getStyleBaseName(cssFile));\n\tconst cssPascalName = toPascal(cssBaseName);\n\tconst cssKey = `${cssPascalName}CSS`;\n\tconst cssUrl = manifest[cssKey] || null;\n\n\tlogCssUpdate(cssFile, 'svelte', duration);\n\tbroadcastToClients(state, {\n\t\tdata: {\n\t\t\tcssBaseName,\n\t\t\tcssUrl,\n\t\t\tframework: 'svelte',\n\t\t\tmanifest,\n\t\t\tsourceFile: cssFile,\n\t\t\tupdateType: 'css-only'\n\t\t},\n\t\ttype: 'svelte-update'\n\t});\n};\n\nconst broadcastSveltePageUpdate = (\n\tstate: HMRState,\n\tsveltePagePath: string,\n\tmanifest: Record<string, string>,\n\tduration: number\n) => {\n\ttry {\n\t\tconst fileName = basename(sveltePagePath);\n\t\tconst baseName = fileName.replace(/\\.svelte$/, '');\n\t\tconst pascalName = toPascal(baseName);\n\t\tconst cssKey = `${pascalName}CSS`;\n\t\tconst cssUrl = manifest[cssKey] || null;\n\n\t\tlogHmrUpdate(sveltePagePath, 'svelte', duration);\n\t\tbroadcastToClients(state, {\n\t\t\tdata: {\n\t\t\t\tcssBaseName: baseName,\n\t\t\t\tcssUrl,\n\t\t\t\tframework: 'svelte',\n\t\t\t\thtml: null,\n\t\t\t\tmanifest,\n\t\t\t\tsourceFile: sveltePagePath,\n\t\t\t\tupdateType: 'full'\n\t\t\t},\n\t\t\ttype: 'svelte-update'\n\t\t});\n\t} catch (err) {\n\t\tsendTelemetryEvent('hmr:error', {\n\t\t\tframework: 'svelte',\n\t\t\tmessage: err instanceof Error ? err.message : String(err)\n\t\t});\n\t}\n};\n\nconst handleSvelteHMR = (\n\tstate: HMRState,\n\tconfig: BuildConfig,\n\tfilesToRebuild: string[],\n\tmanifest: Record<string, string>,\n\tduration: number\n) => {\n\tif (!config.svelteDirectory) {\n\t\treturn;\n\t}\n\n\tconst svelteFiles = filesToRebuild.filter(\n\t\t(file) => detectFramework(file, state.resolvedPaths) === 'svelte'\n\t);\n\n\tif (svelteFiles.length === 0) {\n\t\treturn;\n\t}\n\n\tconst svelteComponentFiles = svelteFiles.filter((file) =>\n\t\tfile.endsWith('.svelte')\n\t);\n\tconst svelteCssFiles = svelteFiles.filter(isStylePath);\n\tconst isCssOnlyChange =\n\t\tsvelteComponentFiles.length === 0 && svelteCssFiles.length > 0;\n\n\tconst sveltePageFiles = svelteFiles.filter((file) =>\n\t\tfile.replace(/\\\\/g, '/').includes('/pages/')\n\t);\n\tconst pagesToUpdate =\n\t\tsveltePageFiles.length > 0 ? sveltePageFiles : svelteComponentFiles;\n\n\tif (isCssOnlyChange && svelteCssFiles.length > 0) {\n\t\thandleSvelteCssOnlyUpdate(state, svelteCssFiles, manifest, duration);\n\t}\n\n\tpagesToUpdate.forEach((sveltePagePath) => {\n\t\tbroadcastSveltePageUpdate(state, sveltePagePath, manifest, duration);\n\t});\n};\n\nconst collectAngularAffectedPages = (\n\taffected: string[],\n\tresolvedPages: Set<string>\n) => {\n\taffected.forEach((file) => {\n\t\tif (\n\t\t\tfile.replace(/\\\\/g, '/').includes('/pages/') &&\n\t\t\tfile.endsWith('.ts')\n\t\t) {\n\t\t\tresolvedPages.add(file);\n\t\t}\n\t});\n};\n\nconst resolveAngularPagesFromDependencyGraph = (\n\tstate: HMRState,\n\tangularFiles: string[]\n) => {\n\tconst resolvedPages = new Set<string>();\n\tangularFiles.forEach((componentFile) => {\n\t\tconst lookupFile = resolveComponentLookupFile(\n\t\t\tcomponentFile,\n\t\t\tstate.dependencyGraph\n\t\t);\n\t\tconst affected = getAffectedFiles(state.dependencyGraph, lookupFile);\n\t\tcollectAngularAffectedPages(affected, resolvedPages);\n\t});\n\n\treturn Array.from(resolvedPages);\n};\n\nconst handleAngularCssOnlyUpdate = (\n\tstate: HMRState,\n\tangularCssFiles: string[],\n\tmanifest: Record<string, string>,\n\tduration: number\n) => {\n\tconst [cssFile] = angularCssFiles;\n\tif (!cssFile) {\n\t\treturn;\n\t}\n\n\tconst cssBaseName = basename(getStyleBaseName(cssFile));\n\tconst cssPascalName = toPascal(cssBaseName);\n\tconst cssKey = `${cssPascalName}CSS`;\n\tconst cssUrl = manifest[cssKey] || null;\n\n\tlogCssUpdate(cssFile, 'angular', duration);\n\tbroadcastToClients(state, {\n\t\tdata: {\n\t\t\tcssBaseName,\n\t\t\tcssUrl,\n\t\t\tframework: 'angular',\n\t\t\tmanifest,\n\t\t\tsourceFile: cssFile,\n\t\t\tupdateType: 'style'\n\t\t},\n\t\ttype: 'angular-update'\n\t});\n};\n\nconst broadcastAngularPageHmrUpdate = (\n\tstate: HMRState,\n\tangularPagePath: string,\n\tmanifest: Record<string, string>,\n\tduration: number\n) => {\n\ttry {\n\t\tconst fileName = basename(angularPagePath);\n\t\tconst baseName = fileName.replace(/\\.[tj]s$/, '');\n\t\tconst pascalName = toPascal(baseName);\n\t\tconst cssKey = `${pascalName}CSS`;\n\t\tconst cssUrl = manifest[cssKey] || null;\n\n\t\tlogHmrUpdate(angularPagePath, 'angular', duration);\n\t\tbroadcastToClients(state, {\n\t\t\tdata: {\n\t\t\t\tcssBaseName: baseName,\n\t\t\t\tcssUrl,\n\t\t\t\tframework: 'angular',\n\t\t\t\tmanifest,\n\t\t\t\tsourceFile: angularPagePath,\n\t\t\t\tupdateType: 'logic' as const\n\t\t\t},\n\t\t\ttype: 'angular-update'\n\t\t});\n\t} catch (err) {\n\t\tsendTelemetryEvent('hmr:error', {\n\t\t\tframework: 'angular',\n\t\t\tmessage: err instanceof Error ? err.message : String(err)\n\t\t});\n\t}\n};\n\nconst handleAngularHMR = (\n\tstate: HMRState,\n\tconfig: BuildConfig,\n\tfilesToRebuild: string[],\n\tmanifest: Record<string, string>,\n\tduration: number\n) => {\n\tif (!config.angularDirectory) {\n\t\treturn;\n\t}\n\n\tconst angularFiles = filesToRebuild.filter(\n\t\t(file) => detectFramework(file, state.resolvedPaths) === 'angular'\n\t);\n\n\tif (angularFiles.length === 0) {\n\t\treturn;\n\t}\n\n\tconst angularCssFiles = angularFiles.filter(isStylePath);\n\tconst isCssOnlyChange =\n\t\tangularFiles.every(isStylePath) && angularCssFiles.length > 0;\n\n\tconst angularPageFiles = angularFiles.filter((file) =>\n\t\tfile.replace(/\\\\/g, '/').includes('/pages/')\n\t);\n\n\tlet pagesToUpdate = angularPageFiles;\n\tif (pagesToUpdate.length === 0 && state.dependencyGraph) {\n\t\tpagesToUpdate = resolveAngularPagesFromDependencyGraph(\n\t\t\tstate,\n\t\t\tangularFiles\n\t\t);\n\t}\n\n\tif (isCssOnlyChange && angularCssFiles.length > 0) {\n\t\thandleAngularCssOnlyUpdate(state, angularCssFiles, manifest, duration);\n\n\t\treturn;\n\t}\n\n\tpagesToUpdate.forEach((angularPagePath) => {\n\t\tbroadcastAngularPageHmrUpdate(\n\t\t\tstate,\n\t\t\tangularPagePath,\n\t\t\tmanifest,\n\t\t\tduration\n\t\t);\n\t});\n};\n\nconst handleHTMXScriptHMR = (\n\tstate: HMRState,\n\tfilesToRebuild: string[],\n\tmanifest: Record<string, string>,\n\tduration: number\n) => {\n\tif (!state.resolvedPaths.htmxDir) {\n\t\treturn;\n\t}\n\n\tconst htmxFrameworkFiles = filesToRebuild.filter(\n\t\t(file) => detectFramework(file, state.resolvedPaths) === 'htmx'\n\t);\n\n\tif (htmxFrameworkFiles.length === 0) {\n\t\treturn;\n\t}\n\n\tconst htmxScriptFiles = htmxFrameworkFiles.filter(isScriptFile);\n\tconst htmxHtmlFiles = htmxFrameworkFiles.filter((file) =>\n\t\tfile.endsWith('.html')\n\t);\n\n\tif (htmxScriptFiles.length === 0 || htmxHtmlFiles.length > 0) {\n\t\treturn;\n\t}\n\n\thtmxScriptFiles.forEach((scriptFile) => {\n\t\thandleScriptUpdate(state, scriptFile, manifest, 'htmx', duration);\n\t});\n};\n\nconst processHtmxPageUpdate = async (\n\tstate: HMRState,\n\thtmxPageFile: string,\n\tbuiltHtmxPagePath: string,\n\tmanifest: Record<string, string>,\n\tduration: number\n) => {\n\ttry {\n\t\tconst { handleHTMXUpdate } = await import('./simpleHTMXHMR');\n\t\tconst newHTML = await handleHTMXUpdate(builtHtmxPagePath);\n\n\t\tif (!newHTML) {\n\t\t\treturn;\n\t\t}\n\n\t\tlogHmrUpdate(htmxPageFile, 'htmx', duration);\n\t\tbroadcastToClients(state, {\n\t\t\tdata: {\n\t\t\t\tframework: 'htmx',\n\t\t\t\thtml: newHTML,\n\t\t\t\tmanifest,\n\t\t\t\tsourceFile: builtHtmxPagePath\n\t\t\t},\n\t\t\ttype: 'htmx-update'\n\t\t});\n\t} catch (err) {\n\t\tsendTelemetryEvent('hmr:error', {\n\t\t\tframework: 'htmx',\n\t\t\tmessage: err instanceof Error ? err.message : String(err)\n\t\t});\n\t}\n};\n\nconst handleHTMXPageHMR = async (\n\tstate: HMRState,\n\tconfig: BuildConfig,\n\tfilesToRebuild: string[],\n\tmanifest: Record<string, string>,\n\tduration: number\n) => {\n\tif (!state.resolvedPaths.htmxDir) {\n\t\treturn;\n\t}\n\n\tconst shouldRefreshFromIslandChange = await didStaticPagesNeedIslandRefresh(\n\t\tconfig,\n\t\tfilesToRebuild\n\t);\n\tconst htmxFrameworkFiles = filesToRebuild.filter(\n\t\t(file) => detectFramework(file, state.resolvedPaths) === 'htmx'\n\t);\n\n\tif (htmxFrameworkFiles.length === 0 && !shouldRefreshFromIslandChange) {\n\t\treturn;\n\t}\n\n\tconst htmxPageFiles = htmxFrameworkFiles.filter((file) =>\n\t\tfile.endsWith('.html')\n\t);\n\tconst outputHtmxPages = computeOutputPagesDir(state, config, 'htmx');\n\tconst shouldRefreshAllPages =\n\t\thtmxPageFiles.length === 0 && shouldRefreshFromIslandChange;\n\tconst pageFilesToUpdate = shouldRefreshAllPages\n\t\t? await scanEntryPoints(outputHtmxPages, '*.html')\n\t\t: htmxPageFiles;\n\n\tawait runSequentially(pageFilesToUpdate, async (htmxPageFile) => {\n\t\tconst htmxPageName = basename(htmxPageFile);\n\t\tconst builtHtmxPagePath = resolve(outputHtmxPages, htmxPageName);\n\t\tawait processHtmxPageUpdate(\n\t\t\tstate,\n\t\t\thtmxPageFile,\n\t\t\tbuiltHtmxPagePath,\n\t\t\tmanifest,\n\t\t\tduration\n\t\t);\n\t});\n};\n\nconst collectUpdatedModulePaths = (\n\tallModuleUpdates: Array<{\n\t\tsourceFile: string;\n\t\tmodulePaths: Record<string, string>;\n\t}>\n) => {\n\tconst paths: string[] = [];\n\tallModuleUpdates.forEach((update) => {\n\t\tpaths.push(update.sourceFile);\n\t\tObject.values(update.modulePaths).forEach((modulePath) => {\n\t\t\tpaths.push(modulePath);\n\t\t});\n\t});\n\n\treturn paths;\n};\n\nconst buildModuleVersionsForUpdate = (\n\tupdate: { sourceFile: string; modulePaths: Record<string, string> },\n\tmoduleVersionsStore: Map<string, number>,\n\tmoduleVersions: Record<string, number>\n) => {\n\tconst sourceVersion = moduleVersionsStore.get(update.sourceFile);\n\tif (sourceVersion !== undefined) {\n\t\tmoduleVersions[update.sourceFile] = sourceVersion;\n\t}\n\tObject.values(update.modulePaths).forEach((path) => {\n\t\tconst pathVersion = moduleVersionsStore.get(path);\n\t\tif (pathVersion !== undefined) {\n\t\t\tmoduleVersions[path] = pathVersion;\n\t\t}\n\t});\n};\n\nconst handleModuleUpdates = (\n\tstate: HMRState,\n\tallModuleUpdates: ModuleUpdate[],\n\tmanifest: Record<string, string>\n) => {\n\tconst updatedModulePaths = collectUpdatedModulePaths(allModuleUpdates);\n\n\tif (updatedModulePaths.length > 0) {\n\t\tincrementModuleVersions(state.moduleVersions, updatedModulePaths);\n\t}\n\n\tif (allModuleUpdates.length === 0) {\n\t\treturn;\n\t}\n\n\tconst updatesByFramework = groupModuleUpdatesByFramework(allModuleUpdates);\n\tconst serverVersions = serializeModuleVersions(state.moduleVersions);\n\n\tfor (const [framework, updates] of updatesByFramework) {\n\t\tconst moduleVersions: Record<string, number> = {};\n\t\tupdates.forEach((update) => {\n\t\t\tbuildModuleVersionsForUpdate(\n\t\t\t\tupdate,\n\t\t\t\tstate.moduleVersions,\n\t\t\t\tmoduleVersions\n\t\t\t);\n\t\t});\n\n\t\tbroadcastToClients(state, {\n\t\t\tdata: {\n\t\t\t\tframework,\n\t\t\t\tmanifest,\n\t\t\t\tmodules: updates.map((update) => ({\n\t\t\t\t\tcomponentType: update.componentType,\n\t\t\t\t\tmoduleKeys: update.moduleKeys,\n\t\t\t\t\tmodulePaths: update.modulePaths,\n\t\t\t\t\tsourceFile: update.sourceFile,\n\t\t\t\t\tversion: state.moduleVersions.get(update.sourceFile)\n\t\t\t\t})),\n\t\t\t\tmoduleVersions: moduleVersions,\n\t\t\t\tserverVersions: serverVersions\n\t\t\t},\n\t\t\tmessage: `${framework} modules updated`,\n\t\t\ttype: 'module-update'\n\t\t});\n\t}\n};\n\nconst handleFullBuildHMR = async (\n\tstate: HMRState,\n\tconfig: BuildConfig,\n\taffectedFrameworks: string[],\n\tfilesToRebuild: string[],\n\tmanifest: Record<string, string>,\n\tduration: number\n) => {\n\tconst allModuleUpdates = collectAllModuleUpdates(\n\t\taffectedFrameworks,\n\t\tfilesToRebuild,\n\t\tmanifest,\n\t\tstate\n\t);\n\n\thandleReactHMR(\n\t\tstate,\n\t\taffectedFrameworks,\n\t\tfilesToRebuild,\n\t\tmanifest,\n\t\tduration\n\t);\n\n\thandleHTMLScriptHMR(state, filesToRebuild, manifest, duration);\n\n\tawait handleHTMLPageHMR(state, config, filesToRebuild, manifest, duration);\n\n\tawait handleVueHMR(state, config, filesToRebuild, manifest, duration);\n\n\thandleSvelteHMR(state, config, filesToRebuild, manifest, duration);\n\n\thandleAngularHMR(state, config, filesToRebuild, manifest, duration);\n\n\thandleHTMXScriptHMR(state, filesToRebuild, manifest, duration);\n\n\tawait handleHTMXPageHMR(state, config, filesToRebuild, manifest, duration);\n\n\thandleModuleUpdates(state, allModuleUpdates, manifest);\n};\n\nconst logStyleUpdatesForFramework = (\n\tstate: HMRState,\n\tframework: string,\n\tfilesToRebuild: string[],\n\tstartTime: number\n) => {\n\tconst dur = Date.now() - startTime;\n\tfilesToRebuild.forEach((file) => {\n\t\tif (detectFramework(file, state.resolvedPaths) === framework) {\n\t\t\tlogCssUpdate(file, framework, dur);\n\t\t}\n\t});\n};\n\nconst broadcastSingleFrameworkUpdate = (\n\tstate: HMRState,\n\tframework: string,\n\tfilesToRebuild: string[] | undefined,\n\tmanifest: Record<string, string>,\n\tstartTime: number\n) => {\n\tconst type =\n\t\tframework === 'styles' || framework === 'assets'\n\t\t\t? 'style-update'\n\t\t\t: 'framework-update';\n\n\tif (type === 'style-update' && filesToRebuild) {\n\t\tlogStyleUpdatesForFramework(\n\t\t\tstate,\n\t\t\tframework,\n\t\t\tfilesToRebuild,\n\t\t\tstartTime\n\t\t);\n\t}\n\tbroadcastToClients(state, {\n\t\tdata: {\n\t\t\tframework,\n\t\t\tmanifest\n\t\t},\n\t\tmessage: `${framework} framework updated`,\n\t\ttype\n\t});\n};\n\nconst broadcastFrameworkUpdates = (\n\tstate: HMRState,\n\taffectedFrameworks: string[],\n\tfilesToRebuild: string[] | undefined,\n\tmanifest: Record<string, string>,\n\tstartTime: number\n) => {\n\taffectedFrameworks.forEach((framework) => {\n\t\tbroadcastSingleFrameworkUpdate(\n\t\t\tstate,\n\t\t\tframework,\n\t\t\tfilesToRebuild,\n\t\t\tmanifest,\n\t\t\tstartTime\n\t\t);\n\t});\n};\n\nconst HMR_SCRIPT_PATTERN =\n\t/<script>window\\.__HMR_FRAMEWORK__[\\s\\S]*?<\\/script>\\s*<script data-hmr-client>[\\s\\S]*?<\\/script>/;\n\nconst extractHmrScript = (\n\tdestPath: string,\n\treadFs: (path: string, encoding: 'utf-8') => string\n) => {\n\ttry {\n\t\tconst existing = readFs(destPath, 'utf-8');\n\t\tconst [matched] = existing.match(HMR_SCRIPT_PATTERN) ?? [];\n\n\t\treturn matched ?? '';\n\t} catch {\n\t\t// built file doesn't exist yet\n\t\treturn '';\n\t}\n};\n\nconst injectHmrScript = (\n\tdestPath: string,\n\thmrScript: string,\n\treadFs: (path: string, encoding: 'utf-8') => string,\n\twriteFs: (path: string, data: string) => void\n) => {\n\tif (!hmrScript) return;\n\n\tlet html = readFs(destPath, 'utf-8');\n\tconst bodyClose = /<\\/body\\s*>/i.exec(html);\n\tif (!bodyClose) return;\n\n\thtml =\n\t\thtml.slice(0, bodyClose.index) +\n\t\thmrScript +\n\t\thtml.slice(bodyClose.index);\n\twriteFs(destPath, html);\n};\n\nconst processMarkupFileFastPath = async (\n\tstate: HMRState,\n\tsourceFile: string,\n\toutputDir: string,\n\tframework: 'html' | 'htmx',\n\tstartTime: number,\n\tupdateAssetPaths: (\n\t\tmanifest: Record<string, string>,\n\t\tdir: string\n\t) => Promise<void>,\n\thandleUpdate: (path: string) => Promise<unknown>,\n\treadFs: (path: string, encoding: 'utf-8') => string,\n\twriteFs: (path: string, data: string) => void\n) => {\n\tconst destPath = resolve(outputDir, basename(sourceFile));\n\n\t// Save HMR script from existing built file\n\tconst hmrScript = extractHmrScript(destPath, readFs);\n\n\t// Atomic copy: Bun.write ensures content is flushed\n\tconst source = await Bun.file(sourceFile).text();\n\tawait Bun.write(destPath, source);\n\n\t// Rewrite asset paths using manifest\n\tawait updateAssetPaths(state.manifest, outputDir);\n\n\t// Rewrite <img data-optimized> tags to use the optimization endpoint\n\tconst { optimizeHtmlImages } = await import('../build/optimizeHtmlImages');\n\tawait optimizeHtmlImages(outputDir);\n\n\t// Re-inject HMR script\n\tinjectHmrScript(destPath, hmrScript, readFs, writeFs);\n\n\t// Read processed file and broadcast body only\n\tconst newHTML = await handleUpdate(destPath);\n\tif (!newHTML) return;\n\n\tconst dur = Date.now() - startTime;\n\tlogHmrUpdate(sourceFile, framework, dur);\n\tbroadcastToClients(state, {\n\t\tdata: {\n\t\t\tframework,\n\t\t\thtml: newHTML,\n\t\t\tmanifest: state.manifest,\n\t\t\tsourceFile\n\t\t},\n\t\ttype: `${framework}-update`\n\t});\n};\n\nconst tryProcessMarkupFile = async (\n\tstate: HMRState,\n\tsourceFile: string,\n\toutputDir: string,\n\tframework: 'html' | 'htmx',\n\tstartTime: number,\n\tupdateAssetPaths: (\n\t\tmanifest: Record<string, string>,\n\t\tdir: string\n\t) => Promise<void>,\n\thandleUpdate: (path: string) => Promise<unknown>,\n\treadFs: (path: string, encoding: 'utf-8') => string,\n\twriteFs: (path: string, data: string) => void\n) => {\n\ttry {\n\t\tawait processMarkupFileFastPath(\n\t\t\tstate,\n\t\t\tsourceFile,\n\t\t\toutputDir,\n\t\t\tframework,\n\t\t\tstartTime,\n\t\t\tupdateAssetPaths,\n\t\t\thandleUpdate,\n\t\t\treadFs,\n\t\t\twriteFs\n\t\t);\n\n\t\treturn true;\n\t} catch {\n\t\t// fall through to full rebuild\n\t\treturn false;\n\t}\n};\n\nconst runMarkupFastPath = async (\n\tstate: HMRState,\n\tconfig: BuildConfig,\n\tfilesToRebuild: string[] | undefined,\n\tstartTime: number,\n\tframework: 'html' | 'htmx'\n) => {\n\tconst markupFiles = (filesToRebuild ?? []).filter((file) =>\n\t\tfile.endsWith('.html')\n\t);\n\n\tif (markupFiles.length === 0) return;\n\n\tconst outputDir = computeOutputPagesDir(state, config, framework);\n\tconst { updateAssetPaths } = await import('../build/updateAssetPaths');\n\tconst handleUpdate =\n\t\tframework === 'html'\n\t\t\t? (await import('./simpleHTMLHMR')).handleHTMLUpdate\n\t\t\t: (await import('./simpleHTMXHMR')).handleHTMXUpdate;\n\tconst { readFileSync: readFs, writeFileSync: writeFs } = await import(\n\t\t'node:fs'\n\t);\n\n\tconst processMarkupFiles = async (files: string[]) => {\n\t\tconst [markupFile, ...remaining] = files;\n\t\tif (!markupFile) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst success = await tryProcessMarkupFile(\n\t\t\tstate,\n\t\t\tmarkupFile,\n\t\t\toutputDir,\n\t\t\tframework,\n\t\t\tstartTime,\n\t\t\tupdateAssetPaths,\n\t\t\thandleUpdate,\n\t\t\treadFs,\n\t\t\twriteFs\n\t\t);\n\t\tif (!success) {\n\t\t\treturn;\n\t\t}\n\n\t\tawait processMarkupFiles(remaining);\n\t};\n\n\tawait processMarkupFiles(markupFiles);\n};\n\nconst runHtmlFastPath = async (\n\tstate: HMRState,\n\tconfig: BuildConfig,\n\tfilesToRebuild: string[] | undefined,\n\tstartTime: number\n) => runMarkupFastPath(state, config, filesToRebuild, startTime, 'html');\n\nconst runHtmxFastPath = async (\n\tstate: HMRState,\n\tconfig: BuildConfig,\n\tfilesToRebuild: string[] | undefined,\n\tstartTime: number\n) => runMarkupFastPath(state, config, filesToRebuild, startTime, 'htmx');\n\ntype FrameworkFastPathConfig = {\n\tdirectory: string | undefined;\n\tframework: string;\n\thandler: (\n\t\tstate: HMRState,\n\t\tconfig: BuildConfig,\n\t\tfiles: string[],\n\t\tstartTime: number,\n\t\tonRebuildComplete: (result: {\n\t\t\tmanifest: Record<string, string>;\n\t\t\thmrState: HMRState;\n\t\t}) => void\n\t) => Promise<Record<string, string> | undefined>;\n};\n\nconst markHandledFiles = (\n\tfiles: string[],\n\tframework: string,\n\tresolvedPaths: ResolvedBuildPaths,\n\thandled: Set<string>\n) => {\n\tfiles\n\t\t.filter((f) => detectFramework(f, resolvedPaths) === framework)\n\t\t.forEach((f) => handled.add(f));\n};\n\nconst runFrameworkFastPaths = async (\n\tstate: HMRState,\n\tconfig: BuildConfig,\n\taffectedFrameworks: string[],\n\tfiles: string[],\n\tstartTime: number,\n\tonRebuildComplete: (result: {\n\t\tmanifest: Record<string, string>;\n\t\thmrState: HMRState;\n\t}) => void\n) => {\n\tconst handled = new Set<string>();\n\n\tconst fastPaths: FrameworkFastPathConfig[] = [\n\t\t{\n\t\t\tdirectory: config.angularDirectory,\n\t\t\tframework: 'angular',\n\t\t\thandler: handleAngularFastPath\n\t\t},\n\t\t{\n\t\t\tdirectory: config.reactDirectory,\n\t\t\tframework: 'react',\n\t\t\thandler: handleReactFastPath\n\t\t},\n\t\t{\n\t\t\tdirectory: config.svelteDirectory,\n\t\t\tframework: 'svelte',\n\t\t\thandler: handleSvelteFastPath\n\t\t},\n\t\t{\n\t\t\tdirectory: config.vueDirectory,\n\t\t\tframework: 'vue',\n\t\t\thandler: handleVueFastPath\n\t\t}\n\t];\n\n\tawait runSequentially(fastPaths, async (fastPath) => {\n\t\tif (\n\t\t\t!fastPath.directory ||\n\t\t\t!affectedFrameworks.includes(fastPath.framework)\n\t\t)\n\t\t\treturn;\n\n\t\tawait fastPath.handler(\n\t\t\tstate,\n\t\t\tconfig,\n\t\t\tfiles,\n\t\t\tstartTime,\n\t\t\tonRebuildComplete\n\t\t);\n\t\tmarkHandledFiles(\n\t\t\tfiles,\n\t\t\tfastPath.framework,\n\t\t\tstate.resolvedPaths,\n\t\t\thandled\n\t\t);\n\t});\n\n\t// Check if any files weren't handled by a fast path.\n\t// CSS/styles and copied assets need the full build so outputs stay in sync.\n\treturn files.every((f) => handled.has(f));\n};\n\nconst performFullRebuild = async (\n\tstate: HMRState,\n\tconfig: BuildConfig,\n\taffectedFrameworks: string[],\n\tfilesToRebuild: string[] | undefined,\n\tstartTime: number,\n\tonRebuildComplete: (result: {\n\t\tmanifest: Record<string, string>;\n\t\thmrState: HMRState;\n\t}) => void\n) => {\n\t// Run each framework's fast path for its files independently.\n\t// This handles cross-framework batches (e.g., editing a React\n\t// and Svelte file in the same save) without falling through\n\t// to the full build.\n\tconst hasManifest = Object.keys(state.manifest).length > 0;\n\tconst files = filesToRebuild ?? [];\n\tlet allHandled = files.length > 0 && hasManifest;\n\tconst hasIslandSourceChanges =\n\t\tfiles.length > 0\n\t\t\t? await didStaticPagesNeedIslandRefresh(config, files)\n\t\t\t: false;\n\n\tif (allHandled && !hasIslandSourceChanges) {\n\t\tallHandled = await runFrameworkFastPaths(\n\t\t\tstate,\n\t\t\tconfig,\n\t\t\taffectedFrameworks,\n\t\t\tfiles,\n\t\t\tstartTime,\n\t\t\tonRebuildComplete\n\t\t);\n\t}\n\n\t// HTML fast path\n\tif (\n\t\tallHandled &&\n\t\tconfig.htmlDirectory &&\n\t\taffectedFrameworks.includes('html')\n\t) {\n\t\tawait runHtmlFastPath(state, config, filesToRebuild, startTime);\n\t}\n\n\t// HTMX fast path\n\tif (\n\t\tallHandled &&\n\t\tconfig.htmxDirectory &&\n\t\taffectedFrameworks.includes('htmx')\n\t) {\n\t\tawait runHtmxFastPath(state, config, filesToRebuild, startTime);\n\t}\n\n\t// If all frameworks were handled by fast paths, skip the full build —\n\t// but Tailwind still needs to rescan source files when a candidate\n\t// changed (the fast path skips the build, which is where Tailwind runs).\n\tif (allHandled) {\n\t\tawait recompileTailwindForFastPath(state, config, files);\n\n\t\tonRebuildComplete({\n\t\t\thmrState: state,\n\t\t\tmanifest: state.manifest\n\t\t});\n\n\t\treturn state.manifest;\n\t}\n\n\tconst buildConfig: BuildConfig = {\n\t\t...config,\n\t\tincrementalFiles:\n\t\t\tfilesToRebuild && filesToRebuild.length > 0\n\t\t\t\t? filesToRebuild\n\t\t\t\t: undefined,\n\t\toptions: {\n\t\t\t...config.options,\n\t\t\tbaseManifest: state.manifest,\n\t\t\tinjectHMR: true,\n\t\t\tthrowOnError: true\n\t\t}\n\t};\n\n\tconst buildResult = await build(buildConfig);\n\n\tif (!buildResult?.manifest) {\n\t\tthrow new Error('Build failed - no manifest generated');\n\t}\n\tconst { manifest } = buildResult;\n\n\tconst duration = Date.now() - startTime;\n\n\tsendTelemetryEvent('hmr:rebuild-complete', {\n\t\tdurationMs: duration,\n\t\tfileCount: filesToRebuild?.length ?? 0,\n\t\tframework: affectedFrameworks[0] ?? 'unknown'\n\t});\n\n\tawait populateAssetStore(\n\t\tstate.assetStore,\n\t\tmanifest,\n\t\tstate.resolvedPaths.buildDir\n\t);\n\n\tvoid cleanStaleAssets(\n\t\tstate.assetStore,\n\t\tmanifest,\n\t\tstate.resolvedPaths.buildDir\n\t);\n\n\tbroadcastToClients(state, {\n\t\tdata: {\n\t\t\taffectedFrameworks,\n\t\t\tmanifest\n\t\t},\n\t\tmessage: 'Rebuild completed successfully',\n\t\ttype: 'rebuild-complete'\n\t});\n\n\t// `build()` already rebuilt the Tailwind output if a candidate changed;\n\t// trigger a CSS reload so the browser picks up the new utilities.\n\tif (\n\t\tconfig.tailwind &&\n\t\tfilesToRebuild &&\n\t\tfilesToRebuild.some(isTailwindCandidate)\n\t) {\n\t\tbroadcastToClients(state, {\n\t\t\tdata: { framework: 'tailwind', manifest },\n\t\t\tmessage: 'Tailwind utilities recompiled',\n\t\t\ttype: 'style-update'\n\t\t});\n\t}\n\n\tconst hasFilesToRebuild = filesToRebuild && filesToRebuild.length > 0;\n\tconst didReloadForIslandChange = hasFilesToRebuild\n\t\t? await handleIslandSourceReload(\n\t\t\t\tstate,\n\t\t\t\tconfig,\n\t\t\t\tfilesToRebuild,\n\t\t\t\tmanifest\n\t\t\t)\n\t\t: false;\n\n\tif (didReloadForIslandChange) {\n\t\tonRebuildComplete({ hmrState: state, manifest });\n\n\t\treturn manifest;\n\t}\n\n\tif (hasFilesToRebuild) {\n\t\tawait handleFullBuildHMR(\n\t\t\tstate,\n\t\t\tconfig,\n\t\t\taffectedFrameworks,\n\t\t\tfilesToRebuild,\n\t\t\tmanifest,\n\t\t\tduration\n\t\t);\n\t}\n\n\tbroadcastFrameworkUpdates(\n\t\tstate,\n\t\taffectedFrameworks,\n\t\tfilesToRebuild,\n\t\tmanifest,\n\t\tstartTime\n\t);\n\n\tif (affectedFrameworks.includes('angular')) {\n\t\tmarkSsrCacheDirty('angular');\n\t}\n\tif (affectedFrameworks.includes('react')) {\n\t\tmarkSsrCacheDirty('react');\n\t}\n\tif (affectedFrameworks.includes('svelte')) {\n\t\tmarkSsrCacheDirty('svelte');\n\t}\n\tif (affectedFrameworks.includes('vue')) {\n\t\tmarkSsrCacheDirty('vue');\n\t}\n\n\tonRebuildComplete({ hmrState: state, manifest });\n\n\treturn manifest;\n};\n\nconst drainPendingQueue = (\n\tstate: HMRState,\n\tconfig: BuildConfig,\n\tonRebuildComplete: (result: {\n\t\tmanifest: Record<string, string>;\n\t\thmrState: HMRState;\n\t}) => void\n) => {\n\tif (state.fileChangeQueue.size === 0) {\n\t\treturn;\n\t}\n\n\tconst pending = Array.from(state.fileChangeQueue.keys());\n\tconst queuedFiles: string[] = [];\n\tstate.fileChangeQueue.forEach((filePaths) => {\n\t\tqueuedFiles.push(...filePaths);\n\t});\n\tstate.fileChangeQueue.clear();\n\tpending.forEach((file) => state.rebuildQueue.add(file));\n\tif (state.rebuildTimeout) clearTimeout(state.rebuildTimeout);\n\tstate.rebuildTimeout = setTimeout(() => {\n\t\tvoid triggerRebuild(\n\t\t\tstate,\n\t\t\tconfig,\n\t\t\tonRebuildComplete,\n\t\t\tqueuedFiles.length > 0 ? queuedFiles : undefined\n\t\t);\n\t}, REBUILD_BATCH_DELAY_MS);\n};\n\nexport const triggerRebuild = async (\n\tstate: HMRState,\n\tconfig: BuildConfig,\n\tonRebuildComplete: (result: {\n\t\tmanifest: Record<string, string>;\n\t\thmrState: HMRState;\n\t}) => void,\n\tfilesToRebuild?: string[]\n) => {\n\tif (state.isRebuilding) {\n\t\treturn null;\n\t}\n\n\tstate.isRebuilding = true;\n\tconst affectedFrameworks = Array.from(state.rebuildQueue);\n\tstate.rebuildQueue.clear();\n\n\tconst startTime = Date.now();\n\n\tbroadcastToClients(state, {\n\t\tdata: { affectedFrameworks },\n\t\tmessage: 'Rebuild started...',\n\t\ttype: 'rebuild-start'\n\t});\n\n\ttry {\n\t\treturn await performFullRebuild(\n\t\t\tstate,\n\t\t\tconfig,\n\t\t\taffectedFrameworks,\n\t\t\tfilesToRebuild,\n\t\t\tstartTime,\n\t\t\tonRebuildComplete\n\t\t);\n\t} catch (error) {\n\t\tsendTelemetryEvent('hmr:rebuild-error', {\n\t\t\tdurationMs: Date.now() - startTime,\n\t\t\tfileCount: filesToRebuild?.length ?? 0,\n\t\t\tframework: affectedFrameworks[0] ?? 'unknown',\n\t\t\tframeworks: affectedFrameworks,\n\t\t\tmessage: error instanceof Error ? error.message : String(error)\n\t\t});\n\t\tconst errorData = extractBuildErrorDetails(\n\t\t\terror,\n\t\t\taffectedFrameworks,\n\t\t\tstate.resolvedPaths\n\t\t);\n\t\tbroadcastToClients(state, {\n\t\t\tdata: {\n\t\t\t\taffectedFrameworks,\n\t\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\t\t...errorData\n\t\t\t},\n\t\t\tmessage: 'Rebuild failed',\n\t\t\ttype: 'rebuild-error'\n\t\t});\n\n\t\treturn null;\n\t} finally {\n\t\tstate.isRebuilding = false;\n\t\tdrainPendingQueue(state, config, onRebuildComplete);\n\t}\n};\n",
|
|
97
|
+
"import { getDurationString } from './getDurationString';\n\nexport type StartupTimingStep = {\n\tlabel: string;\n\tdurationMs: number;\n};\n\nexport const startupTimingsEnabled =\n\tprocess.env.ABSOLUTE_STARTUP_TIMINGS === '1' ||\n\tprocess.env.ABSOLUTE_STARTUP_TIMINGS === 'true';\n\nexport const formatStartupTimingBlock = (\n\ttitle: string,\n\tsteps: StartupTimingStep[]\n) => {\n\tconst totalDuration = steps.reduce((sum, step) => sum + step.durationMs, 0);\n\n\treturn [\n\t\ttitle,\n\t\t...steps.map(\n\t\t\t(step) => ` - ${step.label}: ${getDurationString(step.durationMs)}`\n\t\t),\n\t\t` Total: ${getDurationString(totalDuration)}`\n\t].join('\\n');\n};\n\nexport const logStartupTimingBlock = (\n\ttitle: string,\n\tsteps: StartupTimingStep[]\n) => {\n\tif (!startupTimingsEnabled || steps.length === 0) {\n\t\treturn;\n\t}\n\n\tconsole.log(formatStartupTimingBlock(title, steps));\n};\n",
|
|
98
|
+
"import { mkdirSync } from 'node:fs';\nimport { join } from 'node:path';\nimport { rm } from 'node:fs/promises';\nimport { build as bunBuild, Glob } from 'bun';\nimport { generateVendorEntrySource } from './vendorEntrySource';\n\nconst toSafeFileName = (specifier: string) =>\n\tspecifier.replace(/\\//g, '_').replace(/@/g, '').replace(/-/g, '_');\n\nconst isResolvable = (specifier: string) => {\n\ttry {\n\t\tBun.resolveSync(specifier, process.cwd());\n\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nconst isBareSpecifier = (spec: string) =>\n\t!spec.startsWith('.') &&\n\t!spec.startsWith('/') &&\n\t!spec.startsWith('@src/');\n\nconst isAbsolutePackageSpecifier = (spec: string) =>\n\tspec === '@absolutejs/absolute' ||\n\tspec.startsWith('@absolutejs/absolute/');\n\n// Known specifiers that are already handled by framework-specific vendors.\n// React/Svelte/Vue have finite, well-known entrypoints so they're listed\n// exactly. Angular publishes an open-ended ecosystem under @angular/* (router,\n// forms, common/http, animations, material, cdk, …); we externalize the whole\n// namespace via FRAMEWORK_NAMESPACE_PREFIXES so users can adopt new @angular/*\n// packages without DI identity-mismatch bugs.\nconst FRAMEWORK_SPECIFIERS = new Set([\n\t'react',\n\t'react-dom',\n\t'react-dom/client',\n\t'react-dom/server',\n\t'react/jsx-runtime',\n\t'react/jsx-dev-runtime',\n\t'react-refresh/runtime',\n\t'svelte',\n\t'svelte/internal',\n\t'svelte/internal/flags/async',\n\t'svelte/internal/flags/legacy',\n\t'svelte/internal/client',\n\t'svelte/internal/disclose-version',\n\t'svelte/server',\n\t'svelte/store',\n\t'svelte/compiler',\n\t'vue',\n\t'vue/server-renderer',\n\t'@vue/compiler-sfc'\n]);\n\nconst FRAMEWORK_NAMESPACE_PREFIXES = ['@angular/'];\n\nconst isFrameworkSpecifier = (spec: string) =>\n\tFRAMEWORK_SPECIFIERS.has(spec) ||\n\tFRAMEWORK_NAMESPACE_PREFIXES.some((prefix) => spec.startsWith(prefix));\n\nconst FRAMEWORK_EXTERNALS = [\n\t...FRAMEWORK_SPECIFIERS,\n\t...FRAMEWORK_NAMESPACE_PREFIXES.map((prefix) => `${prefix}*`)\n];\n\nconst isSkippedFile = (file: string) =>\n\tfile.includes('node_modules') ||\n\tfile.includes('/build/') ||\n\tfile.includes('/dist/') ||\n\tfile.includes('/indexes/');\n\nconst isDepSpecifier = (path: string) =>\n\tisBareSpecifier(path) &&\n\t!isFrameworkSpecifier(path) &&\n\t!isAbsolutePackageSpecifier(path);\n\nconst isFrameworkRootCandidate = (path: string) =>\n\tisBareSpecifier(path) &&\n\tisFrameworkSpecifier(path) &&\n\t!isAbsolutePackageSpecifier(path);\n\ninterface ScannedSpecifiers {\n\tdep: string[];\n\tframework: string[];\n}\n\nconst readFileSpecifiers = async (\n\tfile: string,\n\ttranspiler: Bun.Transpiler\n): Promise<ScannedSpecifiers> => {\n\tconst dep: string[] = [];\n\tconst framework: string[] = [];\n\ttry {\n\t\tconst content = await Bun.file(file).text();\n\t\tfor (const imp of transpiler.scanImports(content)) {\n\t\t\tif (isDepSpecifier(imp.path)) dep.push(imp.path);\n\t\t\telse if (isFrameworkRootCandidate(imp.path)) framework.push(imp.path);\n\t\t}\n\t} catch {\n\t\t// unreadable file, skip\n\t}\n\n\treturn { dep, framework };\n};\n\nconst scanDirFiles = async (dir: string) => {\n\tconst empty: string[] = [];\n\tconst glob = new Glob('**/*.{ts,tsx,js,jsx}');\n\ttry {\n\t\tconst all = await Array.fromAsync(\n\t\t\tglob.scan({ absolute: true, cwd: dir })\n\t\t);\n\n\t\treturn all.filter((file) => !isSkippedFile(file));\n\t} catch {\n\t\treturn empty;\n\t}\n};\n\nconst collectDirSpecifiers = async (\n\tdir: string,\n\ttranspiler: Bun.Transpiler,\n\tdep: Set<string>,\n\tframework: Set<string>\n) => {\n\tconst files = await scanDirFiles(dir);\n\tconst results = await Promise.all(\n\t\tfiles.map((file) => readFileSpecifiers(file, transpiler))\n\t);\n\tfor (const result of results) {\n\t\tfor (const spec of result.dep) dep.add(spec);\n\t\tfor (const spec of result.framework) framework.add(spec);\n\t}\n};\n\n// Scan source files to find all bare import specifiers\nconst scanBareImports = async (\n\tdirectories: string[]\n): Promise<ScannedSpecifiers> => {\n\tconst dep = new Set<string>();\n\tconst framework = new Set<string>();\n\tconst transpiler = new Bun.Transpiler({ loader: 'tsx' });\n\n\tawait Promise.all(\n\t\tdirectories.map((dir) =>\n\t\t\tcollectDirSpecifiers(dir, transpiler, dep, framework)\n\t\t)\n\t);\n\n\treturn {\n\t\tdep: Array.from(dep).filter(isResolvable),\n\t\tframework: Array.from(framework).filter(isResolvable)\n\t};\n};\n\n\n// Resolve each bare specifier and scan its entry file for further bare imports\n// (subpaths of the same or other packages). Bun's `external: [\"rxjs\"]` matches\n// subpaths like `rxjs/operators` as a prefix, so any subpath a transitive dep\n// imports needs its own vendor entry — otherwise the page bundle ends up with\n// an un-resolvable `import \"rxjs/operators\"` and hydration 404s.\n//\n// Framework specs (e.g. `@angular/fire/compat/auth`) can appear as scan roots\n// — their content is read and their non-framework descendants harvested — but\n// the framework specs themselves are never added to the vendor list. Their own\n// vendor pipeline (Angular/React/etc.) handles them. This is what surfaces\n// subpaths like `@firebase/auth/internal` that an Angular package transitively\n// imports through firebase-compat layers.\nconst collectTransitiveImports = async (\n\tspecs: Iterable<string>,\n\talreadyVendored: Set<string>,\n\talreadyScanned: Set<string>\n) => {\n\tconst { readFileSync } = await import('node:fs');\n\tconst transpiler = new Bun.Transpiler({ loader: 'js' });\n\tconst newSpecs = new Set<string>();\n\n\tfor (const spec of specs) {\n\t\tif (alreadyScanned.has(spec)) continue;\n\t\talreadyScanned.add(spec);\n\t\tlet resolved: string;\n\t\ttry {\n\t\t\tresolved = Bun.resolveSync(spec, process.cwd());\n\t\t} catch {\n\t\t\tcontinue;\n\t\t}\n\t\tlet content: string;\n\t\ttry {\n\t\t\tcontent = readFileSync(resolved, 'utf-8');\n\t\t} catch {\n\t\t\tcontinue;\n\t\t}\n\t\tlet imports;\n\t\ttry {\n\t\t\timports = transpiler.scanImports(content);\n\t\t} catch {\n\t\t\tcontinue;\n\t\t}\n\t\tfor (const imp of imports) {\n\t\t\tconst child = imp.path;\n\t\t\tif (!isBareSpecifier(child)) continue;\n\t\t\tif (isFrameworkSpecifier(child)) continue;\n\t\t\tif (isAbsolutePackageSpecifier(child)) continue;\n\t\t\tif (alreadyVendored.has(child)) continue;\n\t\t\tif (!isResolvable(child)) continue;\n\t\t\tnewSpecs.add(child);\n\t\t}\n\t}\n\n\treturn newSpecs;\n};\n\nconst buildDepVendorPass = async (\n\tspecifiers: string[],\n\tvendorDir: string,\n\ttmpDir: string\n) => {\n\tconst entrypoints = await Promise.all(\n\t\tspecifiers.map(async (specifier) => {\n\t\t\tconst safeName = toSafeFileName(specifier);\n\t\t\tconst entryPath = join(tmpDir, `${safeName}.ts`);\n\t\t\tawait Bun.write(entryPath, generateVendorEntrySource(specifier));\n\n\t\t\treturn entryPath;\n\t\t})\n\t);\n\n\t// Externalize framework packages so vendor files import from the\n\t// same vendor instances — prevents duplicate React/Svelte/Vue/Angular\n\treturn bunBuild({\n\t\tentrypoints,\n\t\texternal: FRAMEWORK_EXTERNALS,\n\t\tformat: 'esm',\n\t\tminify: false,\n\t\tnaming: '[name].[ext]',\n\t\toutdir: vendorDir,\n\t\tsplitting: true,\n\t\ttarget: 'browser',\n\t\tthrow: false\n\t});\n};\n\nconst MAX_VENDOR_DISCOVERY_PASSES = 5;\n\nexport const buildDepVendor = async (\n\tbuildDir: string,\n\tdirectories: string[]\n) => {\n\tconst { dep: initialSpecs, framework: frameworkRoots } =\n\t\tawait scanBareImports(directories);\n\tif (initialSpecs.length === 0 && frameworkRoots.length === 0) return {};\n\n\tconst vendorDir = join(buildDir, 'vendor');\n\tmkdirSync(vendorDir, { recursive: true });\n\n\tconst tmpDir = join(buildDir, '_dep_vendor_tmp');\n\tmkdirSync(tmpDir, { recursive: true });\n\n\tconst allSpecs = new Set<string>(initialSpecs);\n\tconst alreadyScanned = new Set<string>();\n\n\t// Discover transitive subpath imports BEFORE the vendor build, because the\n\t// page bundle build (in core/build.ts) externalizes any spec that's the\n\t// prefix of an `external: [\"pkg\"]` entry — including subpaths like\n\t// `rxjs/operators` that aren't directly imported in user source.\n\t//\n\t// Seed pass 0 with framework roots in addition to dep specs so non-framework\n\t// transitive deps reachable only through a framework package\n\t// (e.g. `@angular/fire/compat/auth` → `firebase/compat/auth` →\n\t// `@firebase/auth-compat` → `@firebase/auth/internal`) are still discovered.\n\tlet frontier: Iterable<string> = [...allSpecs, ...frameworkRoots];\n\tfor (let pass = 0; pass < MAX_VENDOR_DISCOVERY_PASSES; pass++) {\n\t\tconst additional = await collectTransitiveImports(\n\t\t\tfrontier,\n\t\t\tallSpecs,\n\t\t\talreadyScanned\n\t\t);\n\t\tif (additional.size === 0) break;\n\t\tfor (const spec of additional) allSpecs.add(spec);\n\t\tfrontier = additional;\n\t}\n\n\tif (allSpecs.size === 0) return {};\n\n\tconst result = await buildDepVendorPass(\n\t\tArray.from(allSpecs),\n\t\tvendorDir,\n\t\ttmpDir\n\t);\n\tconst success = result.success;\n\tif (!success) {\n\t\tconsole.warn('⚠️ Dependency vendor build had errors:', result.logs);\n\t}\n\n\tawait rm(tmpDir, { force: true, recursive: true });\n\n\t// Cross-vendor specifier rewriting (e.g. a dep-vendor wrapping `@sentry/angular`\n\t// externalizes `@angular/core` and leaves it bare in the output) happens in a\n\t// centralized step after ALL vendor builds finish — see `rewriteVendorDirectories`\n\t// in rewriteImports.ts, called from devBuild/rebuildTrigger.\n\n\tconst paths: Record<string, string> = {};\n\tfor (const specifier of allSpecs) {\n\t\tpaths[specifier] = `/vendor/${toSafeFileName(specifier)}.js`;\n\t}\n\n\treturn paths;\n};\n\nexport const computeDepVendorPaths = async (directories: string[]) => {\n\tconst { dep: initialSpecs, framework: frameworkRoots } =\n\t\tawait scanBareImports(directories);\n\tconst allSpecs = new Set<string>(initialSpecs);\n\tconst alreadyScanned = new Set<string>();\n\n\t// Mirror buildDepVendor's transitive discovery so the path map handed to\n\t// the main page build (which uses these as both externals and rewrite\n\t// targets) already includes subpaths like `rxjs/operators` that transitive\n\t// deps import — including non-framework subpaths that are only reachable\n\t// through a framework root. Without this, page bundles end up with\n\t// un-resolvable bare specifiers after externalization.\n\tlet frontier: Iterable<string> = [...allSpecs, ...frameworkRoots];\n\tfor (let pass = 0; pass < MAX_VENDOR_DISCOVERY_PASSES; pass++) {\n\t\tconst additional = await collectTransitiveImports(\n\t\t\tfrontier,\n\t\t\tallSpecs,\n\t\t\talreadyScanned\n\t\t);\n\t\tif (additional.size === 0) break;\n\t\tfor (const spec of additional) allSpecs.add(spec);\n\t\tfrontier = additional;\n\t}\n\n\tconst paths: Record<string, string> = {};\n\tfor (const specifier of allSpecs) {\n\t\tpaths[specifier] = `/vendor/${toSafeFileName(specifier)}.js`;\n\t}\n\n\treturn paths;\n};\n",
|
|
99
|
+
"import { readdir } from 'node:fs/promises';\nimport { statSync } from 'node:fs';\nimport { resolve } from 'node:path';\nimport { build } from './build';\nimport {\n\tgetAngularVendorPaths,\n\tgetDevVendorPaths,\n\tgetSvelteVendorPaths,\n\tgetVueVendorPaths,\n\tsetDevVendorPaths,\n\tsetAngularServerVendorPaths,\n\tsetAngularVendorPaths,\n\tsetSvelteVendorPaths,\n\tsetVueVendorPaths\n} from './devVendorPaths';\nimport type { BuildConfig } from '../../types/build';\nimport {\n\tbuildReactVendor,\n\tcomputeVendorPaths\n} from '../build/buildReactVendor';\nimport {\n\tbuildAngularServerVendor,\n\tbuildAngularVendor,\n\tcomputeAngularServerVendorPaths,\n\tcomputeAngularServerVendorPathsAsync,\n\tcomputeAngularVendorPaths,\n\tcomputeAngularVendorPathsAsync\n} from '../build/buildAngularVendor';\nimport {\n\tbuildSvelteVendor,\n\tcomputeSvelteVendorPaths\n} from '../build/buildSvelteVendor';\nimport { buildVueVendor, computeVueVendorPaths } from '../build/buildVueVendor';\nimport { createHMRState } from '../dev/clientManager';\nimport { resolveBuildPaths } from '../dev/configResolver';\nimport { buildInitialDependencyGraph } from '../dev/dependencyGraph';\nimport { addFileWatchers, startFileWatching } from '../dev/fileWatcher';\nimport { getWatchPaths } from '../dev/pathUtils';\nimport { cleanStaleAssets, populateAssetStore } from '../dev/assetStore';\nimport { queueFileChange } from '../dev/rebuildTrigger';\nimport { logServerReload } from '../utils/logger';\nimport { logStartupTimingBlock } from '../utils/startupTimings';\n\nconst FRAMEWORK_DIR_KEYS = [\n\t'reactDirectory',\n\t'svelteDirectory',\n\t'vueDirectory',\n\t'htmlDirectory',\n\t'htmxDirectory',\n\t'angularDirectory'\n] as const;\n\nconst collectDepVendorSourceDirs = (config: BuildConfig) => {\n\tconst configuredDirs = [\n\t\tconfig.reactDirectory,\n\t\tconfig.svelteDirectory,\n\t\tconfig.vueDirectory,\n\t\tconfig.angularDirectory,\n\t\tconfig.htmlDirectory,\n\t\tconfig.htmxDirectory\n\t].filter((dir): dir is string => Boolean(dir));\n\n\t// Only scan the configured framework directories themselves. Including the\n\t// parent dir would sweep in sibling backend code (e.g. src/backend when\n\t// angularDirectory is src/frontend), and the dep vendor build targets the\n\t// browser — bundling Node-only deps like postgres/firebase-admin from there\n\t// fails with \"Browser build cannot import Node.js builtin: tls/http2/...\".\n\treturn Array.from(new Set(configuredDirs));\n};\n\n/** Parse directory keys from config source text */\nconst parseDirectoryConfig = (source: string) => {\n\tconst config: Partial<BuildConfig> = {};\n\tconst dirPattern = /(\\w+Directory)\\s*:\\s*['\"]([^'\"]+)['\"]/g;\n\tlet match;\n\twhile ((match = dirPattern.exec(source)) !== null) {\n\t\tconst [, key, value] = match;\n\t\tif (key && value) Object.assign(config, { [key]: value });\n\t}\n\n\treturn Object.keys(config).length > 0 ? config : null;\n};\n\n/** Re-read absolute.config.ts bypassing Bun's module cache by parsing the file directly */\nconst reloadConfig = async () => {\n\ttry {\n\t\tconst configPath = resolve(\n\t\t\tprocess.env.ABSOLUTE_CONFIG ?? 'absolute.config.ts'\n\t\t);\n\t\tconst source = await Bun.file(configPath).text();\n\n\t\treturn parseDirectoryConfig(source);\n\t} catch {\n\t\treturn null;\n\t}\n};\n\n/** Detect config changes on HMR reload and update watchers for new framework directories */\nconst detectConfigChanges = async (\n\tcached: NonNullable<typeof globalThis.__hmrDevResult>\n) => {\n\tconst newConfig = await reloadConfig();\n\tif (!newConfig) return;\n\n\tconst state = cached.hmrState;\n\tconst oldConfig = state.config;\n\n\t// Check if any framework directory changed\n\tconst hasChanges = FRAMEWORK_DIR_KEYS.some(\n\t\t(key) => newConfig[key] !== oldConfig[key]\n\t);\n\tif (!hasChanges) return;\n\n\t// Snapshot old watch paths before updating config\n\tconst oldWatchPaths = new Set(\n\t\tgetWatchPaths(oldConfig, state.resolvedPaths)\n\t);\n\n\t// Update config in-place so all references stay valid\n\tfor (const key of FRAMEWORK_DIR_KEYS) {\n\t\tstate.config[key] = newConfig[key];\n\t}\n\tstate.resolvedPaths = resolveBuildPaths(state.config);\n\n\t// Set up vendor paths for newly added frameworks\n\tif (!oldConfig.reactDirectory && Boolean(newConfig.reactDirectory)) {\n\t\tsetDevVendorPaths(computeVendorPaths());\n\t}\n\tif (!oldConfig.angularDirectory && Boolean(newConfig.angularDirectory)) {\n\t\tsetAngularVendorPaths(computeAngularVendorPaths());\n\t}\n\tif (!oldConfig.svelteDirectory && Boolean(newConfig.svelteDirectory)) {\n\t\tsetSvelteVendorPaths(computeSvelteVendorPaths());\n\t}\n\tif (!oldConfig.vueDirectory && Boolean(newConfig.vueDirectory)) {\n\t\tsetVueVendorPaths(computeVueVendorPaths());\n\t}\n\n\t// Compute new watch paths and start watchers for additions\n\tconst newWatchPaths = getWatchPaths(state.config, state.resolvedPaths);\n\tconst addedPaths = newWatchPaths.filter((path) => !oldWatchPaths.has(path));\n\n\tif (addedPaths.length > 0) {\n\t\tbuildInitialDependencyGraph(state.dependencyGraph, addedPaths);\n\t\taddFileWatchers(state, addedPaths, (filePath: string) => {\n\t\t\tqueueFileChange(state, filePath, state.config, (newBuildResult) => {\n\t\t\t\tObject.assign(cached.manifest, newBuildResult.manifest);\n\t\t\t\tstate.manifest = cached.manifest;\n\t\t\t});\n\t\t});\n\t}\n};\n\n/** Remove keys from target that don't exist in source */\nconst removeStaleKeys = (\n\ttarget: Record<string, string>,\n\tsource: Record<string, string>\n) => {\n\tfor (const key of Object.keys(target)) {\n\t\tif (!(key in source)) delete target[key];\n\t}\n};\n\nconst REBUILD_POLL_MS = 10;\n\n/** Wait for any in-flight file-watcher build to finish */\nconst waitForRebuild = async (state: { isRebuilding: boolean }) => {\n\tif (!state.isRebuilding) {\n\t\treturn;\n\t}\n\n\tawait Bun.sleep(REBUILD_POLL_MS);\n\tawait waitForRebuild(state);\n};\n\n/** Rebuild manifest and update asset store — called on every server.ts HMR reload.\n * Sets isRebuilding to prevent the file-watcher fast path from running concurrently,\n * which would delete the indexes directory mid-build and cause ModuleNotFound errors. */\nconst rebuildManifest = async (\n\tcached: NonNullable<typeof globalThis.__hmrDevResult>\n) => {\n\tconst state = cached.hmrState;\n\n\t// Without this, a concurrent fast-path build (React, Vue, Svelte) can\n\t// delete intermediate directories (indexes/, server/) while this full\n\t// build is trying to read from them, causing ModuleNotFound errors.\n\tawait waitForRebuild(state);\n\n\tstate.isRebuilding = true;\n\n\ttry {\n\t\tconst buildResult = await build({\n\t\t\t...state.config,\n\t\t\tmode: 'development',\n\t\t\toptions: {\n\t\t\t\t...state.config.options,\n\t\t\t\tinjectHMR: true,\n\t\t\t\tthrowOnError: true\n\t\t\t}\n\t\t});\n\t\tif (!buildResult?.manifest) return;\n\t\tconst newManifest = buildResult.manifest;\n\n\t\t// Replace manifest contents instead of just merging.\n\t\t// Object.assign only adds/updates keys — it never removes them,\n\t\t// so deleted pages would leave dead keys in the manifest forever.\n\t\tremoveStaleKeys(cached.manifest, newManifest);\n\t\tObject.assign(cached.manifest, newManifest);\n\t\tstate.manifest = cached.manifest;\n\n\t\tawait populateAssetStore(\n\t\t\tstate.assetStore,\n\t\t\tcached.manifest,\n\t\t\tstate.resolvedPaths.buildDir\n\t\t);\n\t\tawait cleanStaleAssets(\n\t\t\tstate.assetStore,\n\t\t\tcached.manifest,\n\t\t\tstate.resolvedPaths.buildDir\n\t\t);\n\t} catch {\n\t\t// Build errors are logged by build() itself\n\t} finally {\n\t\tstate.rebuildCount++;\n\t\tstate.isRebuilding = false;\n\t\t// Clear any file-change queue entries that accumulated during the full build —\n\t\t// the full build already picked up those files, so they don't need rebuilding.\n\t\tstate.fileChangeQueue.clear();\n\t}\n};\n\nconst handleCachedReload = async () => {\n\tconst serverMtime = statSync(resolve(Bun.main)).mtimeMs;\n\tconst lastMtime = globalThis.__hmrServerMtime;\n\tglobalThis.__hmrServerMtime = serverMtime;\n\n\t/* Restore vendor paths — module-level state is reset on --hot reload\n\t but devBuild() returns early from cache, skipping setDevVendorPaths.\n\t Without this, HMR rebuilds bundle React inline instead of externalizing. */\n\tconst cached = globalThis.__hmrDevResult;\n\tif (cached?.hmrState.config.reactDirectory) {\n\t\tsetDevVendorPaths(computeVendorPaths());\n\t}\n\tif (cached?.hmrState.config.angularDirectory) {\n\t\t// Use cached transitive specifiers if available — reverting to defaults\n\t\t// would drop subpaths discovered through deps (e.g. @angular/core/rxjs-interop\n\t\t// imported by @angular/fire) and leave them as bare specifiers in rebuilds.\n\t\tsetAngularVendorPaths(\n\t\t\tcomputeAngularVendorPaths(globalThis.__angularVendorSpecifiers)\n\t\t);\n\t}\n\tif (cached?.hmrState.config.svelteDirectory) {\n\t\tsetSvelteVendorPaths(computeSvelteVendorPaths());\n\t}\n\tif (cached?.hmrState.config.vueDirectory) {\n\t\tsetVueVendorPaths(computeVueVendorPaths());\n\t}\n\n\tif (serverMtime === lastMtime) {\n\t\tglobalThis.__hmrSkipServerRestart = true;\n\n\t\treturn;\n\t}\n\n\tlogServerReload();\n\tif (!cached) return;\n\n\t// Detect config changes (new framework directories) and update watchers\n\tawait detectConfigChanges(cached);\n\t// Always rebuild when server.ts changes — new pages/routes may have been added\n\t// even if config directories haven't changed\n\tawait rebuildManifest(cached);\n};\n\nconst tryReadPackageVersion = async (path: string) => {\n\tconst pkg = await Bun.file(path)\n\t\t.json()\n\t\t.catch(() => null);\n\tif (!pkg || pkg.name !== '@absolutejs/absolute') {\n\t\treturn false;\n\t}\n\tglobalThis.__absoluteVersion = pkg.version;\n\n\treturn true;\n};\n\nconst resolveAbsoluteVersion = async () => {\n\tconst candidates = [\n\t\tresolve(import.meta.dir, '..', '..', 'package.json'),\n\t\tresolve(import.meta.dir, '..', 'package.json')\n\t];\n\tconst [candidate, ...remaining] = candidates;\n\tif (!candidate) {\n\t\treturn;\n\t}\n\n\tconst found = await tryReadPackageVersion(candidate);\n\tif (found) {\n\t\treturn;\n\t}\n\n\tawait resolveAbsoluteVersionFromCandidates(remaining);\n};\n\nconst resolveAbsoluteVersionFromCandidates = async (candidates: string[]) => {\n\tconst [candidate, ...remaining] = candidates;\n\tif (!candidate) {\n\t\treturn;\n\t}\n\n\tconst found = await tryReadPackageVersion(candidate);\n\tif (found) {\n\t\treturn;\n\t}\n\n\tawait resolveAbsoluteVersionFromCandidates(remaining);\n};\n\nconst loadVendorFiles = async (\n\tassetStore: Map<string, Uint8Array>,\n\tvendorDir: string,\n\tframework: string\n) => {\n\tconst emptyStringArray: string[] = [];\n\tconst entries = await readdir(vendorDir).catch(() => emptyStringArray);\n\tawait Promise.all(\n\t\tentries\n\t\t\t.filter((entry) => entry.endsWith('.js'))\n\t\t\t.map(async (entry) => {\n\t\t\t\tconst webPath = `/${framework}/vendor/${entry}`;\n\t\t\t\tconst bytes = await Bun.file(resolve(vendorDir, entry)).bytes();\n\t\t\t\tassetStore.set(webPath, bytes);\n\t\t\t})\n\t);\n};\n\n/* Development mode function - replaces build() during development\n Returns DevResult with manifest, buildDir, asset(), and hmrState for use with the hmr() plugin */\nexport const devBuild = async (config: BuildConfig) => {\n\t// On Bun --hot reload, return cached result instead of rebuilding\n\tconst cached = globalThis.__hmrDevResult;\n\tif (cached) {\n\t\tawait handleCachedReload();\n\n\t\treturn cached;\n\t}\n\n\tconst startupSteps: Array<{ label: string; durationMs: number }> = [];\n\tconst recordStep = (label: string, startedAt: number) => {\n\t\tconst durationMs = performance.now() - startedAt;\n\n\t\tstartupSteps.push({\n\t\t\tdurationMs,\n\t\t\tlabel\n\t\t});\n\t};\n\n\t// Create initial HMR state with config\n\tlet stepStartedAt = performance.now();\n\tconst state = createHMRState(config);\n\t// Make the build dir discoverable to the runtime (e.g. getAngularDeps\n\t// looks for `<buildDir>/angular/vendor/server/*.js`). The CLI's start\n\t// script sets this for prod; dev runs in the same process as build, so\n\t// set it here.\n\tprocess.env.ABSOLUTE_BUILD_DIR ??= state.resolvedPaths.buildDir;\n\trecordStep('create HMR state', stepStartedAt);\n\n\t// Initialize dependency graph by scanning all source files\n\tstepStartedAt = performance.now();\n\tconst watchPaths = getWatchPaths(config, state.resolvedPaths);\n\tbuildInitialDependencyGraph(state.dependencyGraph, watchPaths);\n\trecordStep('initialize dependency graph', stepStartedAt);\n\n\t// Pre-compute vendor paths so build() can externalize frameworks.\n\t// The actual vendor files are built after build() creates the output dir.\n\tstepStartedAt = performance.now();\n\tif (config.reactDirectory) {\n\t\tsetDevVendorPaths(computeVendorPaths());\n\t}\n\tif (config.svelteDirectory) {\n\t\tsetSvelteVendorPaths(computeSvelteVendorPaths());\n\t}\n\tif (config.vueDirectory) {\n\t\tsetVueVendorPaths(computeVueVendorPaths());\n\t}\n\tconst sourceDirs = collectDepVendorSourceDirs(config);\n\tif (config.angularDirectory) {\n\t\tsetAngularVendorPaths(await computeAngularVendorPathsAsync(sourceDirs));\n\t\tsetAngularServerVendorPaths(\n\t\t\tawait computeAngularServerVendorPathsAsync(\n\t\t\t\tstate.resolvedPaths.buildDir,\n\t\t\t\tsourceDirs\n\t\t\t)\n\t\t);\n\t}\n\tconst { computeDepVendorPaths } = await import('../build/buildDepVendor');\n\tglobalThis.__depVendorPaths = await computeDepVendorPaths(sourceDirs);\n\trecordStep('prepare vendor paths', stepStartedAt);\n\n\tstepStartedAt = performance.now();\n\tawait resolveAbsoluteVersion();\n\trecordStep('resolve version', stepStartedAt);\n\n\tconst buildStart = performance.now();\n\n\t// Initial build (HMR client is baked into index files and HTML/HTMX pages)\n\tconst buildResult = await build({\n\t\t...config,\n\t\tmode: 'development',\n\t\toptions: {\n\t\t\t...config.options,\n\t\t\tinjectHMR: true\n\t\t}\n\t});\n\tconst manifest = buildResult.manifest ?? {};\n\tconst conventions = buildResult.conventions ?? {};\n\trecordStep('initial build', buildStart);\n\n\tif (Object.keys(manifest).length === 0) {\n\t\tconsole.log(\n\t\t\t'⚠️ Manifest is empty - this is OK for HTML/HTMX-only projects'\n\t\t);\n\t}\n\n\t// Populate in-memory asset store so client assets are served from memory\n\tstepStartedAt = performance.now();\n\tawait populateAssetStore(\n\t\tstate.assetStore,\n\t\tmanifest,\n\t\tstate.resolvedPaths.buildDir\n\t);\n\tvoid cleanStaleAssets(\n\t\tstate.assetStore,\n\t\tmanifest,\n\t\tstate.resolvedPaths.buildDir\n\t);\n\trecordStep('populate asset store', stepStartedAt);\n\n\t// Build vendor files in parallel now that the build directory exists.\n\t// Each task only BUILDS — file rewriting + asset-store loading happen below\n\t// in a centralized post-step so cross-framework specifier rewrites can use\n\t// the FULL combined path map (react ∪ angular ∪ svelte ∪ vue ∪ dep).\n\tstepStartedAt = performance.now();\n\tconst reactVendorDir = resolve(\n\t\tstate.resolvedPaths.buildDir,\n\t\t'react',\n\t\t'vendor'\n\t);\n\tconst angularVendorDir = resolve(\n\t\tstate.resolvedPaths.buildDir,\n\t\t'angular',\n\t\t'vendor'\n\t);\n\tconst svelteVendorDir = resolve(\n\t\tstate.resolvedPaths.buildDir,\n\t\t'svelte',\n\t\t'vendor'\n\t);\n\tconst vueVendorDir = resolve(state.resolvedPaths.buildDir, 'vue', 'vendor');\n\tconst depVendorDir = resolve(state.resolvedPaths.buildDir, 'vendor');\n\n\tconst { buildDepVendor } = await import('../build/buildDepVendor');\n\n\tconst [, angularSpecs, angularServerSpecs, , , depPaths] =\n\t\tawait Promise.all([\n\t\t\tconfig.reactDirectory\n\t\t\t\t? buildReactVendor(state.resolvedPaths.buildDir)\n\t\t\t\t: Promise.resolve(undefined),\n\t\t\tconfig.angularDirectory\n\t\t\t\t? buildAngularVendor(\n\t\t\t\t\t\tstate.resolvedPaths.buildDir,\n\t\t\t\t\t\tsourceDirs,\n\t\t\t\t\t\t/* linkerJitMode */ true,\n\t\t\t\t\t\t/* depVendorSpecifiers */ Object.keys(\n\t\t\t\t\t\t\tglobalThis.__depVendorPaths ?? {}\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t: Promise.resolve(undefined),\n\t\t\tconfig.angularDirectory\n\t\t\t\t? buildAngularServerVendor(\n\t\t\t\t\t\tstate.resolvedPaths.buildDir,\n\t\t\t\t\t\tsourceDirs,\n\t\t\t\t\t\t/* linkerJitMode */ true\n\t\t\t\t\t)\n\t\t\t\t: Promise.resolve(undefined),\n\t\t\tconfig.svelteDirectory\n\t\t\t\t? buildSvelteVendor(state.resolvedPaths.buildDir)\n\t\t\t\t: Promise.resolve(undefined),\n\t\t\tconfig.vueDirectory\n\t\t\t\t? buildVueVendor(state.resolvedPaths.buildDir)\n\t\t\t\t: Promise.resolve(undefined),\n\t\t\tbuildDepVendor(state.resolvedPaths.buildDir, sourceDirs)\n\t\t]);\n\tif (angularSpecs) globalThis.__angularVendorSpecifiers = angularSpecs;\n\tif (angularServerSpecs) {\n\t\tsetAngularServerVendorPaths(\n\t\t\tcomputeAngularServerVendorPaths(\n\t\t\t\tstate.resolvedPaths.buildDir,\n\t\t\t\tangularServerSpecs\n\t\t\t)\n\t\t);\n\t}\n\tglobalThis.__depVendorPaths = depPaths;\n\trecordStep('build vendor bundles', stepStartedAt);\n\n\t// Cross-vendor specifier rewriting: a vendor file may externalize packages\n\t// owned by a different vendor pipeline (e.g. /vendor/sentry_angular.js\n\t// externalizes @angular/core; /vendor/firebase_auth_compat.js externalizes\n\t// @firebase/auth). Without rewriting these to their vendor paths, the\n\t// browser fetches the vendor file at runtime and chokes on bare specifiers.\n\t// Run AFTER all vendor builds so every framework's path map is included.\n\tstepStartedAt = performance.now();\n\tconst combinedVendorPaths: Record<string, string> = {\n\t\t...(getDevVendorPaths() ?? {}),\n\t\t...(getAngularVendorPaths() ?? {}),\n\t\t...(getSvelteVendorPaths() ?? {}),\n\t\t...(getVueVendorPaths() ?? {}),\n\t\t...depPaths\n\t};\n\tconst activeVendorDirs = [\n\t\tconfig.reactDirectory ? reactVendorDir : null,\n\t\tconfig.angularDirectory ? angularVendorDir : null,\n\t\tconfig.svelteDirectory ? svelteVendorDir : null,\n\t\tconfig.vueDirectory ? vueVendorDir : null,\n\t\tdepVendorDir\n\t].filter((d): d is string => d !== null);\n\tconst { rewriteVendorDirectories } = await import(\n\t\t'../build/rewriteImports'\n\t);\n\tawait rewriteVendorDirectories(activeVendorDirs, combinedVendorPaths);\n\trecordStep('rewrite vendor cross-references', stepStartedAt);\n\n\t// Load the (now-rewritten) vendor files into the in-memory asset store.\n\tstepStartedAt = performance.now();\n\tawait Promise.all([\n\t\tconfig.reactDirectory\n\t\t\t? loadVendorFiles(state.assetStore, reactVendorDir, 'react')\n\t\t\t: Promise.resolve(),\n\t\tconfig.angularDirectory\n\t\t\t? loadVendorFiles(state.assetStore, angularVendorDir, 'angular')\n\t\t\t: Promise.resolve(),\n\t\tconfig.svelteDirectory\n\t\t\t? loadVendorFiles(state.assetStore, svelteVendorDir, 'svelte')\n\t\t\t: Promise.resolve(),\n\t\tconfig.vueDirectory\n\t\t\t? loadVendorFiles(state.assetStore, vueVendorDir, 'vue')\n\t\t\t: Promise.resolve(),\n\t\tloadVendorFiles(state.assetStore, depVendorDir, 'vendor')\n\t]);\n\tif (config.reactDirectory && !globalThis.__reactModuleRef) {\n\t\tglobalThis.__reactModuleRef = await import('react');\n\t}\n\trecordStep('load vendor files', stepStartedAt);\n\n\t// Pre-warm framework compilers so the first HMR edit is fast.\n\t// Sets the module-level compiler references in moduleServer.ts\n\t// so transformSvelteFile/transformVueFile skip the dynamic import.\n\tstepStartedAt = performance.now();\n\tconst { warmCompilers } = await import('../dev/moduleServer');\n\tawait warmCompilers({\n\t\tsvelte: Boolean(config.svelteDirectory),\n\t\tvue: Boolean(config.vueDirectory)\n\t});\n\trecordStep('warm compilers', stepStartedAt);\n\n\t// Pre-build the persistent Tailwind compiler so the first HMR tick\n\t// after server start doesn't pay the parse + initial-scan cost.\n\tif (config.tailwind) {\n\t\tstepStartedAt = performance.now();\n\t\tconst { warmTailwindCompiler } = await import(\n\t\t\t'../build/tailwindCompiler'\n\t\t);\n\t\tawait warmTailwindCompiler(config.tailwind);\n\t\trecordStep('warm tailwind compiler', stepStartedAt);\n\t}\n\n\t// Store initial manifest on HMR state for Angular fast-path HMR\n\tstate.manifest = manifest;\n\n\tstepStartedAt = performance.now();\n\tstartFileWatching(state, config, (filePath: string) => {\n\t\tqueueFileChange(state, filePath, config, (newBuildResult) => {\n\t\t\tObject.assign(manifest, newBuildResult.manifest);\n\t\t\tstate.manifest = manifest;\n\t\t});\n\t});\n\trecordStep('start file watching', stepStartedAt);\n\n\t// Store build duration for the startup banner (printed by networking plugin)\n\tglobalThis.__hmrBuildDuration = performance.now() - buildStart;\n\tlogStartupTimingBlock('AbsoluteJS devBuild timing', startupSteps);\n\n\tconst result: NonNullable<typeof globalThis.__hmrDevResult> = {\n\t\tconventions,\n\t\thmrState: state,\n\t\tmanifest\n\t};\n\n\t// Cache for Bun --hot reloads\n\tglobalThis.__hmrDevResult = result;\n\tglobalThis.__hmrServerMtime = statSync(resolve(Bun.main)).mtimeMs;\n\n\treturn result;\n};\n",
|
|
100
|
+
"export { build } from './core/build';\nexport { devBuild } from './core/devBuild';\n"
|
|
5
101
|
],
|
|
6
|
-
"mappings": "",
|
|
7
|
-
"debugId": "
|
|
102
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAa,0BAA0B,KAC1B,mBAAmB,IACnB,qBAAqB,GACrB,cAAc,IACd,gBAAgB,IAChB,gCACZ,8CACY,oBAAoB,MACpB,qBAAqB,MACrB,kBAAkB,GAClB,6BAA6B,IAC7B,yBAAyB,IACzB,2BAA2B,KAC3B,6BAA6B,KAC7B,qBAAqB,OACrB,sBAAsB,IACtB,eAAe,MACf,iCAAiC,KACjC,sBAAsB,IACtB,8BAA8B,GAC9B,yBAAyB,GACzB,0BAA0B,GAC1B,2BAA2B,GAC3B,wBAAwB,MACxB,wBAAwB,IACxB,sBAAsB,IACtB,iBAAiB,KACjB,0BAA0B,KAC1B,wBAAwB,KACxB,eAAe,IACf,oBAAoB,IACpB,4BAGA,2BACA,wBAAwB,IACxB,2BAA2B,GAC3B,mBAAmB,KACnB,yBAAyB,IACzB,2BAA2B,MAC3B,qBAAqB,IACrB,sBAAsB,IACtB,0BAEA,uBAKA,2BAA2B,KAC3B,mBAAmB,OACnB,kBAAkB,GAClB,sBAAsB,IACtB,yBAAyB,IACzB,0BAA0B,KAC1B,6BAA6B,KAC7B,6BAA6B,KAC7B,kCAAkC,GAClC,kCAAkC,IAClC,mBAAmB,KACnB,oBAAoB,KACpB,6BAA6B,KAC7B,iBAAiB,GACjB,YACA,gBAAgB,IAChB,2BAA2B,MAC3B,gCAAgC,GAChC,oCAAoC,IACpC,qCAAqC,IACrC,qCAAqC,MACrC,oCAAoC,KACpC,6BAA6B,OAC7B,gCAAgC,KAChC,+BAA+B,IAC/B,8BAA8B,KAC9B,2CAA2C,IAC3C,kCAAkC,GAClC,+BAA+B,GAC/B,uCAAuC,GACvC,iCAAiC,GACjC,+BAA+B,IAC/B,qCAAqC,GACrC,iCAAiC,IACjC,mCAAmC,IACnC,6BAA6B,IAC7B,qCAAqC,GACrC,iCAAiC;AAAA;AAAA,EAvDjC,6BAA6B;AAAA,IACzC;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAM;AAAA,IAAM;AAAA,IAAM;AAAA,IAAM;AAAA,EACxC;AAAA,EACa,4BAA4B,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,GAAG;AAAA,EAQ9D,2BACZ,2BAA2B;AAAA,EACf,wBACZ,2BACA,sBACA,qBACA;AAAA,EAeY,aAAa,IAAI;AAAA;;;IC7DxB,2BAA2B,CAAC,cACjC,UAAU,IAAI,YAAY,IAAI,UAAU,MAAM,CAAC,GAE1C,0BAA0B,CAC/B,UACA,WACI;AAAA,EACJ,MAAM,UAAkC,CAAC;AAAA,EACzC,IAAI,QAAQ;AAAA,EAEZ,YAAY,KAAK,UAAU,OAAO,QAAQ,QAAQ,GAAG;AAAA,IACpD,IAAI,CAAC,IAAI,WAAW,MAAM;AAAA,MAAG;AAAA,IAE7B,MAAM,YAAY,IAAI,MAAM,OAAO,MAAM;AAAA,IACzC,IAAI,CAAC;AAAA,MAAW;AAAA,IAEhB,QAAQ,aAAa;AAAA,IACrB,QAAQ;AAAA,EACT;AAAA,EAEA,OAAO,QAAQ,UAAU;AAAA,GAGb,2BAA2B,CAAC,aAAqC;AAAA,EAC7E,MAAM,UACL,CAAC;AAAA,EACF,MAAM,aAAgC,CAAC,SAAS,UAAU,OAAO,SAAS;AAAA,EAE1E,WAAW,aAAa,YAAY;AAAA,IACnC,MAAM,SAAS,SAAS,yBAAyB,SAAS;AAAA,IAC1D,MAAM,UAAU,wBAAwB,UAAU,MAAM;AAAA,IACxD,IAAI;AAAA,MAAS,QAAQ,aAAa;AAAA,EACnC;AAAA,EAEA,OAAO;AAAA,GAEK,uBAAuB,CACnC,WACA,cACI,SAAS,yBAAyB,SAAS,IAAI;;;ICnCvC,oBAAoB,CAAC,aAAqB;AAAA,EACtD,IAAI;AAAA,EAEJ,IAAI,WAAW,0BAA0B;AAAA,IACxC,iBAAiB,GAAG,SAAS,QAAQ,cAAc;AAAA,EACpD,EAAO,SAAI,WAAW,0BAA0B;AAAA,IAC/C,iBAAiB,IAAI,WAAW,0BAA0B,QAAQ,cAAc;AAAA,EACjF,EAAO;AAAA,IACN,MAAM,eAAe,KAAK,MAAM,WAAW,wBAAwB;AAAA,IACnE,MAAM,UAAU,KAAK,MAAM,eAAe,EAAE;AAAA,IAC5C,MAAM,UAAU,eAAe;AAAA,IAC/B,iBACC,YAAY,IAAI,GAAG,aAAa,GAAG,YAAY;AAAA;AAAA,EAGjD,OAAO;AAAA;AAAA;AAAA,EArBR;AAAA;;;ICGM,QAQA,QAeO,kBAAkB,MAAM;AAAA,EACpC,MAAM,MAAM,IAAI;AAAA,EAChB,MAAM,QAAQ,OAAO,IAAI,SAAS;AAAA,EAClC,MAAM,MAAM,IAAI,QAAQ,EAAE,SAAS,EAAE,SAAS,GAAG,GAAG;AAAA,EACpD,IAAI,QAAQ,IAAI,SAAS;AAAA,EACzB,MAAM,UAAU,IAAI,WAAW,EAAE,SAAS,EAAE,SAAS,GAAG,GAAG;AAAA,EAC3D,MAAM,UAAU,IAAI,WAAW,EAAE,SAAS,EAAE,SAAS,GAAG,GAAG;AAAA,EAC3D,MAAM,OAAO,SAAS,oBAAoB,OAAO;AAAA,EACjD,QAAQ,QAAQ,qBAAqB;AAAA,EAErC,OAAO,GAAG,SAAS,OAAO,SAAS,WAAW,WAAW;AAAA,GAG7C,gBAAgB,CAAC,YAQxB;AAAA,EACL;AAAA,IACC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,MACR;AAAA,EACJ,MAAM,OAAO,GAAG,OAAO,OAAO,OAAO,iBAAiB,OAAO;AAAA,EAC7D,MAAM,MAAM,GAAG,OAAO,OAAO,UAAU,OAAO;AAAA,EAC9C,MAAM,OAAO,GAAG,OAAO,cAAc,OAAO,SAAS,OAAO,OAAO,kBAAkB,aAAa,IAAI,OAAO;AAAA,EAC7G,MAAM,QACL,OAAO,kBAAkB,YAAY,OAAO,SAAS,aAAa,IAC/D,IAAI,OAAO,aAAa,kBAAkB,aAAa,KAAK,OAAO,UACnE;AAAA,EACJ,QAAQ,IAAI,EAAE;AAAA,EACd,QAAQ,IAAI,KAAK,QAAQ,QAAQ,OAAO,OAAO;AAAA,EAC/C,QAAQ,IAAI,EAAE;AAAA,EACd,QAAQ,IACP,KAAK,OAAO,cAAQ,OAAO,UAAU,OAAO,aAAa,OAAO,WAAW,cAAc,SAAS,YAAY,cAAc,QAAQ,OACrI;AAAA,EACA,IAAI,YAAY;AAAA,IACf,QAAQ,IACP,KAAK,OAAO,cAAQ,OAAO,UAAU,OAAO,eAAe,OAAO,SAAS,YAC5E;AAAA,EACD;AAAA,EACA,QAAQ,IAAI,EAAE;AAAA;AAAA;AAAA,EA3Ef;AAAA,EACA;AAAA,EAEM,SAAS;AAAA,IACd,MAAM;AAAA,IACN,MAAM;AAAA,IACN,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,EACR;AAAA,EAEM,SAAS;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA;;;ICdM,SAeA,iBAcA,aAAa,CAAC,aAAqB;AAAA,EACxC,MAAM,MAAM,QAAQ,IAAI;AAAA,EACxB,IAAI,WAAW,SAAS,WAAW,GAAG,IACnC,SAAS,MAAM,IAAI,SAAS,CAAC,IAC7B;AAAA,EAEH,WAAW,SAAS,QAAQ,OAAO,GAAG;AAAA,EAEtC,IAAI,CAAC,SAAS,WAAW,GAAG,GAAG;AAAA,IAC9B,WAAW,IAAI;AAAA,EAChB;AAAA,EAEA,OAAO;AAAA,GAMF,oBAAoB,CAAC,cAC1B,gBAAgB,cAAc,QAAO,OAKhC,MAAM,CACX,QACA,YAMI;AAAA,EACJ,MAAM,YAAY,GAAG,QAAO,MAAM,gBAAgB,IAAI,QAAO;AAAA,EAC7D,MAAM,MAAM,GAAG,QAAO,YAAY,QAAO;AAAA,EAEzC,IAAI,UAAU;AAAA,EAGd,IAAI,SAAS,MAAM;AAAA,IAClB,MAAM,YAAY,QAAQ,YACvB,kBAAkB,QAAQ,SAAS,IACnC,QAAO;AAAA,IACV,WAAW,IAAI,YAAY,WAAW,QAAQ,IAAI,IAAI,QAAO;AAAA,EAC9D;AAAA,EAGA,IAAI,SAAS,aAAa,WAAW;AAAA,IACpC,WAAW,IAAI,QAAO,OAAO,QAAQ,cAAc,QAAO;AAAA,EAC3D;AAAA,EAEA,QAAQ,IAAI,GAAG,aAAa,OAAO,SAAS;AAAA,GAYhC,eAAe,CAC3B,MACA,WACA,aACI;AAAA,EACJ,IAAI,cAAc,EAAE,UAAU,WAAW,aAAa,OAAO,KAAK,CAAC;AAAA,GAOvD,WAAW,CAAC,SAAiB,UAA2B;AAAA,EACpE,MAAM,YAAY,GAAG,QAAO,MAAM,gBAAgB,IAAI,QAAO;AAAA,EAC7D,MAAM,MAAM,GAAG,QAAO,WAAW,QAAO;AAAA,EACxC,MAAM,WAAW,iBAAiB,QAAQ,MAAM,UAAU;AAAA,EAC1D,MAAM,cAAc,GAAG,QAAO,WAAW,QAAO,SAAS,UAAU,WAAW,KAAK,aAAa;AAAA,EAChG,QAAQ,MAAM,GAAG,aAAa,OAAO,aAAa;AAAA,GAOtC,eAAe,CAC3B,MACA,WACA,aACI;AAAA,EACJ,IAAI,cAAc,EAAE,UAAU,WAAW,KAAK,CAAC;AAAA,GA0BnC,kBAAkB,CAC9B,MACA,WACA,aACI;AAAA,EACJ,IAAI,iBAAiB,EAAE,UAAU,WAAW,KAAK,CAAC;AAAA,GAMtC,kBAAkB,MAAM;AAAA,EACpC,IAAI,GAAG,QAAO,6BAA6B,QAAO,OAAO;AAAA,GAO7C,UAAU,CAAC,YAAoB;AAAA,EAC3C,MAAM,YAAY,GAAG,QAAO,MAAM,gBAAgB,IAAI,QAAO;AAAA,EAC7D,MAAM,MAAM,GAAG,QAAO,cAAc,QAAO;AAAA,EAC3C,QAAQ,IACP,GAAG,aAAa,OAAO,QAAO,iBAAiB,UAAU,QAAO,OACjE;AAAA;AAAA;AAAA,EAhLD;AAAA,EAKM,UAAS;AAAA,IACd,MAAM;AAAA,IACN,MAAM;AAAA,IAEN,MAAM;AAAA,IACN,KAAK;AAAA,IACL,OAAO;AAAA,IACP,SAAS;AAAA,IACT,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,EACT;AAAA,EAGM,kBAA0C;AAAA,IAC/C,SAAS,QAAO;AAAA,IAChB,QAAQ,QAAO;AAAA,IACf,KAAK,QAAO;AAAA,IACZ,MAAM,QAAO;AAAA,IACb,MAAM,QAAO;AAAA,IACb,OAAO,QAAO;AAAA,IACd,QAAQ,QAAO;AAAA,IACf,KAAK,QAAO;AAAA,EACb;AAAA;;;IC9Ba,gBAAgB,CAAC,SAAiB,KAAK,QAAQ,OAAO,GAAG;;;ICJhE,gBAAgB,CAAC,QACtB,IACE,KAAK,EACL,QAAQ,QAAQ,GAAG,EACnB,QAAQ,qBAAqB,EAAE,EAC/B,QAAQ,aAAa,GAAG,GAEd,UAAU,CAAC,QACvB,cAAc,GAAG,EACf,QAAQ,sBAAsB,OAAO,EACrC,YAAY,GACF,WAAW,CAAC,QAAgB;AAAA,EACxC,IAAI,CAAC,IAAI,SAAS,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,GAAG;AAAA,IAC7C,OAAO,IAAI,OAAO,CAAC,EAAE,YAAY,IAAI,IAAI,MAAM,CAAC;AAAA,EACjD;AAAA,EAEA,OAAO,cAAc,GAAG,EACtB,MAAM,MAAM,EACZ,OAAO,OAAO,EACd,IACA,CAAC,YACA,QAAQ,OAAO,CAAC,EAAE,YAAY,IAAI,QAAQ,MAAM,CAAC,EAAE,YAAY,CACjE,EACC,KAAK,EAAE;AAAA,GAEG,mBAAmB,CAAC,QAChC,IAAI,QAAQ,sBAAsB,OAAO,EAAE,YAAY;;;;;;;AC1BxD;AAAA,IAQM,iBAAiB,CACtB,QACA,YACA,mBACA,SACA,OACA,UACA,cACI;AAAA,EACJ,IAAI,WAAW;AAAA,IAAW,OAAO,GAAG;AAAA,EACpC,IAAI;AAAA,IAAmB,OAAO,GAAG;AAAA,EACjC,IAAI,WAAW;AAAA,IAAS,OAAO;AAAA,EAI/B,IAAI;AAAA,IAAS,OAAO,GAAG;AAAA,EACvB,IAAI,SAAS,YAAY;AAAA,IAAW,OAAO;AAAA,EAG3C,OAAO,GAAG;AAAA,GAGL,YAAY,CAAC,YAAoB,aAAuB;AAAA,EAC7D,MAAM,YAAY,SAAS,KAAK,CAAC,QAAQ,QAAQ,KAAK;AAAA,EACtD,IAAI,aAAa,SAAS,SAAS,KAAK;AAAA,IACvC,OAAO,GAAG;AAAA,EAEX,MAAM,cAAc,SAAS,KAAK,CAAC,QAAQ,QAAQ,OAAO;AAAA,EAC1D,MAAM,eAAe,SAAS,KAAK,CAAC,QAAQ,QAAQ,QAAQ;AAAA,EAC5D,MAAM,gBAAgB,SAAS,KAAK,CAAC,QAAQ,QAAQ,SAAS;AAAA,EAC9D,IAAI,eAAe,aAAa,gBAAgB;AAAA,IAC/C,OAAO,GAAG;AAAA,EAEX,OAAO,GAAG;AAAA,GAGL,sBAAsB,CAAC,UAAkB,SAAwB;AAAA,EACtE,MAAM,MAAM,QAAQ,QAAQ;AAAA,EAC5B,MAAM,OAAO,MAAM,SAAS,MAAM,GAAG,CAAC,IAAI,MAAM,IAAI;AAAA,EACpD,IAAI,CAAC;AAAA,IAAM,OAAO;AAAA,EAElB,MAAM,aAAa,IAAI;AAAA,EACvB,IAAI,KAAK,SAAS,UAAU;AAAA,IAAG,OAAO,KAAK,MAAM,GAAG,CAAC,WAAW,MAAM;AAAA,EAEtE,OAAO;AAAA,GAGK,mBAAmB,CAAC,SAA0B,cAC1D,QAAQ,OAA+B,CAAC,UAAU,aAAa;AAAA,EAE9D,MAAM,yBAAyB,cAAc,SAAS,IAAI;AAAA,EAC1D,MAAM,sBAAsB,cAAc,SAAS;AAAA,EAEnD,IAAI,WAAW,uBAAuB,WAAW,mBAAmB,IACjE,uBAAuB,MAAM,oBAAoB,MAAM,IACvD;AAAA,EACH,WAAW,SAAS,QAAQ,QAAQ,EAAE;AAAA,EAEtC,MAAM,WAAW,SAAS,MAAM,GAAG;AAAA,EACnC,MAAM,eAAe,SAAS,IAAI;AAAA,EAClC,IAAI,CAAC;AAAA,IAAc,OAAO;AAAA,EAE1B,MAAM,WAAW,oBAAoB,cAAc,SAAS,IAAI;AAAA,EAChE,IAAI,CAAC;AAAA,IAAU,OAAO;AAAA,EAEtB,MAAM,aAAa,SAAS,QAAQ;AAAA,EACpC,MAAM,MAAM,QAAQ,YAAY;AAAA,EAChC,MAAM,cAAc,SAAS,UAAU,CAAC,QAAQ,QAAQ,SAAS;AAAA,EAEjE,IAAI,QAAQ,QAAQ;AAAA,IAKnB,IAAI,SAAS,SAAS,QAAQ;AAAA,MAAG,OAAO;AAAA,IAOxC,MAAM,SAAS,UAAU,YAAY,QAAQ;AAAA,IAE7C,IAAI,SAAS,WAAW,SAAS,YAAY,IAAI;AAAA,MAChD,QACC,2BAA2B,mBAAa,SAAS,qCAAqC,qDACvF;AAAA,IAED,SAAS,UAAU,IAAI;AAAA,IAEvB,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,mBACL,cAAc,gBAAgB,SAAS,cAAc,KAAK;AAAA,EAC3D,IACC,qBAAqB,WACrB,qBAAqB,YACrB,qBAAqB,SACrB,qBAAqB,WACpB;AAAA,IACD,MAAM,eAAc,qBACnB,kBACA,UACD;AAAA,IACA,SAAS,gBAAe,IAAI;AAAA,IAE5B,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,MAAM,SAAS,UACpB,CAAC,QAAQ,QAAQ,aAAa,QAAQ,WAAW,QAAQ,QAC1D;AAAA,EACA,MAAM,SAAS,MAAM,gBAAgB,SAAS,OAAO,SAAS;AAAA,EAG9D,MAAM,UAAU,SAAS,KAAK,CAAC,QAAQ,QAAQ,OAAO;AAAA,EACtD,MAAM,QAAQ,SAAS,KAAK,CAAC,QAAQ,QAAQ,KAAK;AAAA,EAClD,MAAM,WAAW,SAAS,KAAK,CAAC,QAAQ,QAAQ,QAAQ;AAAA,EACxD,MAAM,YAAY,SAAS,KAAK,CAAC,QAAQ,QAAQ,SAAS;AAAA,EAG1D,MAAM,oBAAoB,SAAS,SAAS,QAAQ;AAAA,EAEpD,MAAM,cAAc,eACnB,QACA,YACA,mBACA,SACA,OACA,UACA,SACD;AAAA,EACA,IAAI,SAAS,gBAAgB,SAAS,iBAAiB,IAAI,YAAY;AAAA,IACtE,QACC,2BAA2B,wBAAkB,SAAS,0CAA0C,qDACjG;AAAA,EACD;AAAA,EACA,SAAS,eAAe,IAAI;AAAA,EAE5B,OAAO;AAAA,GACL,CAAC,CAAC;AAAA;AAAA,EAnJN;AAAA,EAEA;AAAA;;;AC0CO,SAAS,kBAA6B,CAC5C,WACC;AAAA,EACD,IAAI,4BAA4B,SAAS,GAAG;AAAA,IAC3C,OAAO,UAAU;AAAA,EAClB;AAAA,EAEA,OAAO;AAAA;AAAA,IA/CK,wBAAwB,CACpC,WACA,aAI2C;AAAA,EAC3C;AAAA,EACA,QAAQ,QAAQ;AAAA,EAChB,QAAQ,QAAQ;AACjB,IACa,uBAAuB,CACnC,aACI,UAEC,WAAW,CAAC,UACjB,OAAO,UAAU,YAAY,UAAU,MAE3B,0BAA0B,CACtC,cACI;AAAA,EACJ,IAAI,CAAC,4BAA4B,SAAS;AAAA,IAAG,OAAO;AAAA,EAEpD,OAAO;AAAA,IACN,QAAQ,UAAU;AAAA,IAClB,QAAQ,UAAU;AAAA,EACnB;AAAA,GAEY,8BAA8B,CAC1C,UAEA,SAAS,KAAK,MACd,eAAe,WACf,YAAY,UACZ,OAAO,MAAM,WAAW,UAeZ,mBAAmB,CAAC,aAA4B;AAAA,EAC5D,IAAI,CAAC;AAAA,IAAU,OAAO,CAAC;AAAA,EAEvB,OAAO,KAAK,MAAM,QAAQ;AAAA,GAEd,uBAAuB,CAAC,UACpC,KAAK,UAAU,SAAS,CAAC,CAAC;AAAA;;;AC7D3B;AACA,6BAAkB;AAClB;AAAA,IA8CM,YAEA,YAAW,CAAC,UACjB,OAAO,UAAU,YAAY,UAAU,MAElC,wBAAwB,CAAC,QAA8B;AAAA,EAC5D,IAAI,UAAS,IAAI,cAAc;AAAA,IAAG,OAAO,IAAI;AAAA,EAC7C,IAAI,UAAS,IAAI,OAAO;AAAA,IAAG,OAAO,IAAI;AAAA,EAEtC,MAAM,IAAI,MACT,mFACD;AAAA,GAGK,kBAAkB,CAAC,WACxB,gCAAgC,KAAK,MAAM,GAEtC,sBAAsB,CAAC,aAAqB,eAAuB;AAAA,EACxE,MAAM,aAAa,SAAS,QAAQ,WAAW,GAAG,UAAU,EAAE,QAC7D,OACA,GACD;AAAA,EAEA,OAAO,WAAW,WAAW,GAAG,IAAI,aAAa,KAAK;AAAA,GAGjD,eAAe,CAAC,UACrB,6BAA6B,KAAK,KAAK,GAElC,0BAA0B,CAAC,cAAsB,eAAuB;AAAA,EAC7E,IAAI,WAAW,WAAW,SAAS,GAAG;AAAA,IACrC,OAAO,IAAI,IAAI,UAAU,EAAE;AAAA,EAC5B;AAAA,EAEA,OAAO,QAAQ,QAAQ,YAAY,GAAG,UAAU;AAAA,GAG3C,wBAAwB,CAAC,SAA0B;AAAA,EACxD,IAAI,GAAG,aAAa,IAAI,KAAK,GAAG,gBAAgB,IAAI,GAAG;AAAA,IACtD,OAAO,KAAK;AAAA,EACb;AAAA,EAEA,OAAO;AAAA,GAGF,uBAAuB,CAC5B,SACA,cACA,WACI;AAAA,EACJ,IAAI,CAAC,aAAa;AAAA,IAAM;AAAA,EAExB,QAAQ,IAAI,aAAa,KAAK,MAAM;AAAA,IACnC,QAAQ;AAAA,IACR;AAAA,EACD,CAAC;AAAA,GAGI,sBAAsB,CAC3B,SACA,cACA,WACI;AAAA,EACJ,MAAM,WAAW,aAAa;AAAA,EAC9B,IAAI,CAAC,YAAY,CAAC,GAAG,eAAe,QAAQ;AAAA,IAAG;AAAA,EAE/C,WAAW,WAAW,SAAS,UAAU;AAAA,IACxC,QAAQ,IAAI,QAAQ,KAAK,MAAM;AAAA,MAC9B,QAAQ,QAAQ,cAAc,QAAQ,QAAQ,KAAK;AAAA,MACnD;AAAA,IACD,CAAC;AAAA,EACF;AAAA,GAGK,+BAA+B,CAAC,WACrC,WAAW,kCACX,OAAO,SAAS,UAAU,KAC1B,OAAO,SAAS,eAAe,GAE1B,+BAA+B,CACpC,cACA,QACA,sBACA,2BACI;AAAA,EACJ,IAAI,CAAC,6BAA6B,MAAM;AAAA,IAAG;AAAA,EAE3C,MAAM,WAAW,aAAa;AAAA,EAC9B,IAAI,CAAC;AAAA,IAAU;AAAA,EAEf,IAAI,GAAG,kBAAkB,QAAQ,GAAG;AAAA,IACnC,uBAAuB,IAAI,SAAS,KAAK,IAAI;AAAA,IAE7C;AAAA,EACD;AAAA,EAEA,WAAW,WAAW,SAAS,UAAU;AAAA,IACxC,MAAM,eAAe,QAAQ,cAAc,QAAQ,QAAQ,KAAK;AAAA,IAChE,IAAI,iBAAiB,wBAAwB;AAAA,MAC5C,qBAAqB,IAAI,QAAQ,KAAK,IAAI;AAAA,IAC3C;AAAA,EACD;AAAA,GAGK,2BAA2B,CAAC,eAAsC;AAAA,EACvE,WAAW,UAAU;AAAA,EACrB,QAAQ,UAAU;AAAA,EAClB,QAAQ,UAAU;AACnB,IAEM,qBAAqB,CAC1B,eACA,WACA,SACA,aACA,aACI;AAAA,EACJ,MAAM,oBAAoB,SAAS,cAAc,CAAC;AAAA,EAClD,SAAS,aAAa;AAAA,EAEtB,WAAW,YAAY,cAAc,YAAY;AAAA,IAChD,IACC,CAAC,GAAG,qBAAqB,QAAQ,KACjC,CAAC,GAAG,8BAA8B,QAAQ;AAAA,MAE1C;AAAA,IAED,MAAM,gBAAgB,sBAAsB,SAAS,IAAI;AAAA,IACzD,IAAI,CAAC;AAAA,MAAe;AAAA,IAEpB,MAAM,cAAc,GAAG,qBAAqB,QAAQ,IACjD,SAAS,cACT,SAAS;AAAA,IACZ,IAAI,CAAC,GAAG,aAAa,WAAW;AAAA,MAAG;AAAA,IAEnC,MAAM,YAAY,QAAQ,IAAI,YAAY,IAAI;AAAA,IAC9C,IAAI,CAAC;AAAA,MAAW;AAAA,IAEhB,kBAAkB,iBAAiB,yBAAyB,SAAS;AAAA,IACrE,YAAY,KAAK;AAAA,MAChB,gBAAgB;AAAA,MAChB,WAAW;AAAA,MACX;AAAA,IACD,CAAC;AAAA,EACF;AAAA,GAGK,8BAA8B,CACnC,MACA,SACA,aACA,aACI;AAAA,EACJ,OAAO,YAAY,KAAK;AAAA,EACxB,IAAI,CAAC,YAAY,CAAC,GAAG,0BAA0B,QAAQ;AAAA,IAAG;AAAA,EAE1D,MAAM,kBAAqC;AAAA,IAC1C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA,WAAW,YAAY,SAAS,YAAY;AAAA,IAC3C,IAAI,CAAC,GAAG,qBAAqB,QAAQ;AAAA,MAAG;AAAA,IACxC,MAAM,gBAAgB,sBAAsB,SAAS,IAAI;AAAA,IACzD,IAAI,CAAC;AAAA,MAAe;AAAA,IACpB,MAAM,YAAY,gBAAgB,KAAK,CAAC,MAAM,MAAM,aAAa;AAAA,IACjE,IAAI,CAAC;AAAA,MAAW;AAAA,IAChB,IAAI,CAAC,GAAG,0BAA0B,SAAS,WAAW;AAAA,MAAG;AAAA,IAEzD,mBACC,SAAS,aACT,WACA,SACA,aACA,QACD;AAAA,EACD;AAAA,GAGK,mBAAmB,CACxB,MACA,SACA,sBACA,wBACA,aACA,aACI;AAAA,EACJ,IACC,GAAG,iBAAiB,IAAI,KACxB,2BACC,KAAK,YACL,sBACA,sBACD,GACC;AAAA,IACD,4BAA4B,MAAM,SAAS,aAAa,QAAQ;AAAA,EACjE;AAAA,EAEA,GAAG,aAAa,MAAM,CAAC,UACtB,iBACC,OACA,SACA,sBACA,wBACA,aACA,QACD,CACD;AAAA,GAGK,6BAA6B,CAClC,YACA,sBACA,2BACI;AAAA,EACJ,IAAI,GAAG,aAAa,UAAU,GAAG;AAAA,IAChC,OAAO,qBAAqB,IAAI,WAAW,IAAI;AAAA,EAChD;AAAA,EAEA,OACC,GAAG,2BAA2B,UAAU,KACxC,WAAW,KAAK,SAAS,0BACzB,GAAG,aAAa,WAAW,UAAU,KACrC,uBAAuB,IAAI,WAAW,WAAW,IAAI;AAAA,GAIjD,+BAA+B,CAAC,eAA8B;AAAA,EACnE,WAAW,aAAa,WAAW,YAAY;AAAA,IAC9C,IACC,GAAG,oBAAoB,SAAS,KAChC,UAAU,WAAW,KACpB,CAAC,aAAa,SAAS,SAAS,GAAG,WAAW,aAC/C,KACA,UAAU,gBAAgB,aAAa,KACtC,CAAC,gBACA,GAAG,aAAa,YAAY,IAAI,KAChC,YAAY,KAAK,SAAS,gBAC5B,GACC;AAAA,MACD,OAAO;AAAA,IACR;AAAA,IAEA,IAAI,CAAC,GAAG,oBAAoB,SAAS,KAAK,CAAC,UAAU;AAAA,MACpD;AAAA,IACD,IAAI,CAAC,GAAG,eAAe,UAAU,YAAY;AAAA,MAAG;AAAA,IAEhD,IACC,UAAU,aAAa,SAAS,KAC/B,CAAC,YAAY,QAAQ,KAAK,SAAS,gBACpC,GACC;AAAA,MACD,OAAO;AAAA,IACR;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,GAGF,4BAA4B,CACjC,YACA,cACA,SACA,sBACA,2BACI;AAAA,EACJ,WAAW,aAAa,WAAW,YAAY;AAAA,IAC9C,IACC,CAAC,GAAG,oBAAoB,SAAS,KACjC,CAAC,GAAG,gBAAgB,UAAU,eAAe;AAAA,MAE7C;AAAA,IAED,QAAQ,iBAAiB;AAAA,IACzB,IAAI,CAAC;AAAA,MAAc;AAAA,IAEnB,MAAM,SAAS,wBACd,cACA,UAAU,gBAAgB,IAC3B;AAAA,IAEA,qBAAqB,SAAS,cAAc,MAAM;AAAA,IAClD,oBAAoB,SAAS,cAAc,MAAM;AAAA,IACjD,6BACC,cACA,UAAU,gBAAgB,MAC1B,sBACA,sBACD;AAAA,EACD;AAAA,GAGK,+BAA+B,CACpC,gBACA,iBAC6B;AAAA,EAC7B,MAAM,aAAa,GAAG,iBACrB,cACA,gBACA,GAAG,aAAa,QAChB,MACA,GAAG,WAAW,EACf;AAAA,EACA,MAAM,UAAU,IAAI;AAAA,EACpB,MAAM,uBAAuB,IAAI,IAAY,CAAC,sBAAsB,CAAC;AAAA,EACrE,MAAM,yBAAyB,IAAI;AAAA,EACnC,MAAM,cAAkC,CAAC;AAAA,EACzC,MAAM,WAAgC,CAAC;AAAA,EAEvC,0BACC,YACA,cACA,SACA,sBACA,sBACD;AAAA,EACA,iBACC,YACA,SACA,sBACA,wBACA,aACA,QACD;AAAA,EAEA,OAAO;AAAA,IACN;AAAA,IACA,gBAAgB,6BAA6B,UAAU;AAAA,IACvD;AAAA,EACD;AAAA,GAGK,qCAAqC,OAC1C,yBACI;AAAA,EACJ,MAAM,iBAAuC,MAC5C;AAAA,EAED,MAAM,WAAgC,sBAAsB,cAAc;AAAA,EAC1E,MAAM,cAAc,WAAW,QAAQ,CAAC,cAAc;AAAA,IACrD,MAAM,oBAAoB,SAAS;AAAA,IACnC,IAAI,CAAC,UAAS,iBAAiB;AAAA,MAAG,OAAO,CAAC;AAAA,IAE1C,OAAO,OAAO,QAAQ,iBAAiB,EAAE,IAAI,EAAE,WAAW,YAAY;AAAA,MACrE,gBAAgB,wBAAwB,KAAK;AAAA,MAC7C;AAAA,MACA;AAAA,IACD,EAAE;AAAA,GACF;AAAA,EAED,OAAO;AAAA,IACN;AAAA,IACA,gBAAgB,UAAS,eAAe,cAAc;AAAA,IACtD;AAAA,EACD;AAAA,GAGK,2BAA2B,CAChC,aACA,cACA,mBACI;AAAA,EACJ,MAAM,iBAAiB,oBAAoB,aAAa,YAAY;AAAA,EAEpE,IAAI,gBAAgB;AAAA,IACnB,OAAO;AAAA,MACN,iBAAiB,8DAA8D,KAAK,UAAU,cAAc;AAAA,MAC5G,mBAAmB;AAAA,IACpB;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,IACN,iBAAiB,wCAAwC,KAAK,UAAU,cAAc;AAAA,IACtF,mBAAmB;AAAA,EACpB;AAAA,GAGK,0BAA0B,CAC/B,aACA,YACA,eACI;AAAA,EACJ,MAAM,uBAAuB,oBAAoB,aAAa,UAAU;AAAA,EACxE,IAAI,CAAC,cAAc,eAAe,WAAW;AAAA,IAC5C,OAAO,2BAA2B,KAAK,UAAU,oBAAoB;AAAA;AAAA,EACtE;AAAA,EAEA,OAAO,YAAY,gCAAgC,KAAK,UAAU,oBAAoB;AAAA;AAAA,GAGjF,4BAA4B,CACjC,aACA,cACA,gBACA,WACA,cACI;AAAA,EACJ,QAAQ,iBAAiB,sBAAsB,yBAC9C,aACA,cACA,cACD;AAAA,EACA,MAAM,kBAAkB,aAAa,SAAS,IAC3C,GAAG,qBAAqB,cACxB,GAAG,qBAAqB,KAAK,UAAU,SAAS;AAAA,EACnD,MAAM,kBAAkB,aAAa,SAAS,IAC3C,GAAG,mBAAmB,cACtB,GAAG,mBAAmB,KAAK,UAAU,SAAS;AAAA,EAEjD,OAAO,GAAG;AAAA;AAAA,oBAES;AAAA;AAAA;AAAA;AAAA,GAMd,8BAA8B,CACnC,WACA,eACI;AAAA,EACJ,IAAI,cAAc,UAAU;AAAA,IAC3B,OAAO,4BAA4B,KAAK,UAAU;AAAA,EACnD;AAAA,EAEA,IAAI,cAAc,OAAO;AAAA,IACxB,OAAO,SAAQ,UAAU,MAAM;AAAA,EAChC;AAAA,EAEA,IAAI,cAAc,WAAW;AAAA,IAC5B,OAAO,+BAA+B,KAAK,UAAU;AAAA,EACtD;AAAA,EAEA,OAAO;AAAA,GAGK,gCAAgC,CAC5C,cACI;AAAA,EACJ,MAAM,UAAsD,CAAC;AAAA,EAE7D,WAAW,cAAc,UAAU,aAAa;AAAA,IAC/C,QAAQ,mBAAmB;AAAA,IAC3B,IAAI,CAAC;AAAA,MAAgB;AAAA,IAErB,MAAM,qBAAqB,wBAC1B,UAAU,sBACV,eAAe,MAChB;AAAA,IACA,IACC,CAAC,4BACA,WAAW,WACX,kBACD;AAAA,MAEA;AAAA,IAED,MAAM,mBAAmB,QAAQ,WAAW,cAAc,CAAC;AAAA,IAC3D,IAAI,iBAAiB,SAAS,kBAAkB;AAAA,MAAG;AAAA,IAEnD,iBAAiB,KAAK,kBAAkB;AAAA,IACxC,QAAQ,WAAW,aAAa;AAAA,EACjC;AAAA,EAEA,OAAO;AAAA,GAEK,4BAA4B;AAAA,EACxC;AAAA,EACA;AAAA,EACA,iBAAiB,CAAC;AAAA,MAKb;AAAA,EACL,MAAM,gBAAgB,KAAK,WAAW,iBAAiB;AAAA,EAEvD,OAAO,eAAe,EAAE,OAAO,MAAM,WAAW,KAAK,CAAC;AAAA,EAEtD,MAAM,UAA8B,CAAC;AAAA,EAErC,WAAW,cAAc,UAAU,aAAa;AAAA,IAC/C,MAAM,YAAY,KACjB,eACA,WACA,WAAW,WACX,GAAG,WAAW,cACf;AAAA,IACA,QAAQ,mBAAmB;AAAA,IAC3B,MAAM,SAAS,iBACZ,wBACA,UAAU,sBACV,eAAe,MAChB,IACC;AAAA,IACH,MAAM,qBACL,UAAU,4BAA4B,WAAW,WAAW,MAAM,IAC/D,eAAe,WAAW,YAAY,IAAI,MAAM,IAChD;AAAA,IACJ,MAAM,cACL,WACC,sBACA,CAAC,4BAA4B,WAAW,WAAW,MAAM,KACvD,wBACA,WACA,sBAAsB,QACtB,qBAAqB,YAAY,gBAAgB,MAClD,IACC,0BACA,WACA,UAAU,sBACV,UAAU,gBACV,WAAW,WACX,WAAW,SACZ;AAAA,IAEH,UAAU,QAAQ,SAAS,GAAG,EAAE,WAAW,KAAK,CAAC;AAAA,IACjD,cAAc,WAAW,WAAW;AAAA,IACpC,QAAQ,KAAK;AAAA,MACZ,WAAW,WAAW;AAAA,MACtB;AAAA,MACA,WAAW,WAAW;AAAA,IACvB,CAAC;AAAA,EACF;AAAA,EAEA,OAAO;AAAA,IACN;AAAA,IACA;AAAA,EACD;AAAA,GAEY,8BAA8B,OAC1C,iBACsC;AAAA,EACtC,MAAM,uBAAuB,QAAQ,YAAY;AAAA,EACjD,MAAM,iBAAiB,IAAI,KAAK,oBAAoB;AAAA,EACpD,MAAM,qBAAqB,MAAM,eAAe,KAAK;AAAA,EACrD,MAAM,aAAa,6BAClB,oBACA,oBACD;AAAA,EACA,IAAI,WAAW,YAAY,SAAS,GAAG;AAAA,IACtC,OAAO;AAAA,MACN,aAAa,WAAW;AAAA,MACxB,gBAAgB,WAAW;AAAA,MAC3B,UAAU,WAAW;AAAA,MACrB;AAAA,IACD;AAAA,EACD;AAAA,EACA,IAAI,gBAAgB,kBAAkB,GAAG;AAAA,IACxC,MAAM,IAAI,MACT,0KACD;AAAA,EACD;AAAA,EAEA,MAAM,cACL,MAAM,mCAAmC,oBAAoB;AAAA,EAE9D,OAAO;AAAA,IACN,aAAa,YAAY;AAAA,IACzB,gBAAgB,YAAY;AAAA,IAC5B,UAAU,YAAY;AAAA,IACtB;AAAA,EACD;AAAA;AAAA;AAAA,EA/lBD;AAAA,EA4CM,aAAgC,CAAC,SAAS,UAAU,OAAO,SAAS;AAAA;;;;;;;AChD1E,kCAAqB;AACrB;AACA,2BAAmB,mBAAM,sBAAU;AACnC;AAAA,IAGM,mBAEA,sBAAsB,MAAM;AAAA,EACjC,MAAM,cAAc,QAAQ,IAAI;AAAA,EAChC,MAAM,aAAa,SAAQ,YAAY,KAAK,eAAe;AAAA,EAI3D,IAAI,WAAW,UAAU,KAAK,WAAW,WAAW,WAAW,GAAG;AAAA,IACjE,OAAO;AAAA,EACR;AAAA,EAGA,MAAM,kBAAkB,SACvB,aACA,mDACD;AAAA,EACA,IAAI,WAAW,eAAe;AAAA,IAAG,OAAO;AAAA,EAExC,OAAO,SAAQ,YAAY,KAAK,cAAc;AAAA,GAGzC,cAEA,kBAKA,eAEA,kBAKO,0BAA0B,OACtC,qBACA,uBACA,QAAQ,UACJ;AAAA,EACJ,IAAI,CAAC,WAAW,qBAAqB,GAAG;AAAA,IACvC,WAAU,uBAAuB,EAAE,WAAW,KAAK,CAAC;AAAA,EACrD;AAAA,EAEA,MAAM,gBAAgB;AAAA,EACtB,MAAM,YAAY,IAAI,KAAK,aAAa;AAAA,EACxC,MAAM,QAAkB,CAAC;AAAA,EACzB,iBAAiB,QAAQ,UAAU,KAAK,EAAE,KAAK,oBAAoB,CAAC,GAAG;AAAA,IACtE,IAAI,cAAc,KAAK,IAAI;AAAA,MAAG;AAAA,IAC9B,MAAM,KAAK,IAAI;AAAA,EAChB;AAAA,EAGA,MAAM,mBAAmB,IAAI,IAC5B,MAAM,IAAI,CAAC,SAAS,SAAS,IAAI,EAAE,MAAM,GAAG,EAAE,EAAE,CACjD;AAAA,EAEA,MAAM,mBAA6B,CAAC;AAAA,EAEpC,MAAM,kBAAkB,MAAM,QAAQ,qBAAqB,EAAE,MAC5D,MAAM,gBACP;AAAA,EAEA,MAAM,eAAe,gBAAgB,OAAO,CAAC,cAAc;AAAA,IAC1D,MAAM,YAAY,UAAU,QAAQ,UAAU,EAAE;AAAA,IAEhD,OAAO,cAAc,cAAc,CAAC,iBAAiB,IAAI,SAAS;AAAA,GAClE;AAAA,EAED,IAAI,aAAa,SAAS,GAAG;AAAA,IAC5B,MAAM,QAAQ,IACb,aAAa,IAAI,CAAC,cAAc;AAAA,MAC/B,kBAAkB,OACjB,MAAK,uBAAuB,SAAS,CACtC;AAAA,MAEA,OAAO,GAAG,MAAK,uBAAuB,SAAS,GAAG;AAAA,QACjD,OAAO;AAAA,MACR,CAAC;AAAA,KACD,CACF;AAAA,EACD;AAAA,EAGA,MAAM,eAAe,UACpB,SAAQ,qBAAqB,GAC7B,SAAQ,mBAAmB,CAC5B,EACE,MAAM,GAAG,EACT,KAAK,GAAG;AAAA,EAEV,MAAM,WAAW,MAAM,IAAI,OAAO,SAAS;AAAA,IAC1C,MAAM,WAAW,SAAS,IAAI;AAAA,IAC9B,MAAM,gBAAgB,SAAS,MAAM,GAAG,EAAE;AAAA,IAC1C,MAAM,sBAAsB,SAAS,aAAa;AAAA,IAElD,MAAM,cAAc,QACjB;AAAA,MACA;AAAA,MACA,qCAAqC;AAAA,MACrC,WAAW;AAAA,MACX,WAAW;AAAA,MACX,uDAAuD;AAAA;AAAA,IACxD,IACC,CAAC;AAAA,IAEJ,MAAM,eAAe,QAClB;AAAA,MACA;AAAA,MACA;AAAA,IACD,IACC;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,IAEF,MAAM,mBAAmB,QACtB;AAAA,MACA;AAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,IACD,IACC,CAAC;AAAA,IAEJ,MAAM,UAAU;AAAA,MACf,GAAG;AAAA,MACH,GAAG;AAAA,MACH,gCAAgC,gBAAgB;AAAA;AAAA,MAChD,GAAG;AAAA,MACH;AAAA,MACA,iBAAiB;AAAA,MACjB,0BAA0B,gBAAgB;AAAA;AAAA,MAC1C;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,4GAA6G,wBAAwB;AAAA,MACrI;AAAA,MACA,uEAAuE,0BAA0B;AAAA;AAAA,MACjG;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,wBAA6B;AAAA,MAC7B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MACA,8BAA+B;AAAA;AAAA,MAC/B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA,iBAAmB,QAAQ,kFAAkF;AAAA,MAC7G;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,iBAAmB,QAAQ,kFAAkF;AAAA,MAC7G;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,MAAS,QAAQ,kFAAkF;AAAA,MACnG;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAI,QACD;AAAA,QACA;AAAA;AAAA,QACA;AAAA,QACA,iBAAiB,UAAS,QAAQ,IAAI,GAAG,SAAQ,qBAAqB,GAAG,mBAAmB,CAAC,EAAE,QAAQ,OAAO,GAAG;AAAA,MAClH,IACC,CAAC;AAAA,IACL,EAAE,KAAK;AAAA,CAAI;AAAA,IAEX,MAAM,YAAY,MAAK,uBAAuB,GAAG,mBAAmB;AAAA,IACpE,MAAM,SAAS,IAAI,IAAI,aAAa,KAAK;AAAA,IACzC,OAAO,OAAO,OAAO;AAAA,IACrB,MAAM,cAAc,OAAO,OAAO,KAAK;AAAA,IAEvC,IACC,kBAAkB,IAAI,SAAS,MAAM,eACrC,WAAW,SAAS,GACnB;AAAA,MACD;AAAA,IACD;AAAA,IAEA,kBAAkB,IAAI,WAAW,WAAW;AAAA,IAC5C,MAAM,UAAU,WAAW,OAAO;AAAA,GAClC;AAAA,EACD,MAAM,QAAQ,IAAI,QAAQ;AAAA,EAU1B,IAAI,CAAC,OAAO;AAAA,IACX;AAAA,EACD;AAAA,EAEA,MAAM,cAAc,MAAK,uBAAuB,cAAc;AAAA,EAE9D,IAAI,CAAC,WAAW,WAAW,GAAG;AAAA,IAC7B,MAAM,UACL,aACA,WAAW;AAAA;AAAA;AAAA,CACZ;AAAA,EACD;AAAA;AAAA;AAAA,EA9YK,oBAAoB,IAAI;AAAA,EAsBxB,eAAe,oBAAoB;AAAA,EAEnC,mBAAmB,MAAK,cAAc,iBAAiB,EAAE,QAC9D,OACA,GACD;AAAA,EAEM,gBAAgB,MAAK,cAAc,cAAc,EAAE,QAAQ,OAAO,GAAG;AAAA,EAErE,mBAAmB,MAAK,cAAc,sBAAsB,EAAE,QACnE,OACA,GACD;AAAA;;;ICDa,wBAAwB,CAAC,MAAc,aAAqB;AAAA,EACxE,MAAM,YAAY,KAAK,UAAU,QAAQ;AAAA,EAEzC,OAAO,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA,uCAK4B;AAAA;AAAA;AAAA;;;ICtCjC,eACA,WAAW,CAAC,QAAgB;AAAA,EACjC,WAAW,UAAU,eAAe;AAAA,IACnC,IAAI,WAAW;AAAA,MAAK,OAAO;AAAA,EAC5B;AAAA,EAEA,OAAO;AAAA,GASK,4BAA4B,CACxC,SACA,aACgB;AAAA,EACf,MAAM;AAAA,EACN,KAAK,CAAC,OAAO;AAAA,IAEZ,MAAM,OAAO,EAAE,QAAQ,qBAAqB,GAAG,OAAO,SAAS;AAAA,MAC9D,MAAM,iBAAiB,KAAK,KAAK,QAAQ,OAAO,GAAG;AAAA,MAGnD,MAAM,eACL,WACA,eAAe,SAAS,QAAQ,QAAQ,OAAO,GAAG,CAAC,KACnD,eAAe,SAAS,WAAW;AAAA,MACpC,MAAM,eACL,WACA,eAAe,SAAS,QAAQ,QAAQ,OAAO,GAAG,CAAC,KACnD,eAAe,SAAS,WAAW;AAAA,MAEpC,IAAI,CAAC,gBAAgB,CAAC,cAAc;AAAA,QAEnC;AAAA,MACD;AAAA,MAGA,MAAM,OAAO,MAAM,IAAI,KAAK,KAAK,IAAI,EAAE,KAAK;AAAA,MAG5C,MAAM,UAAU,sBAAsB,MAAM,cAAc;AAAA,MAG1D,MAAM,MAAM,KAAK,KAAK,MAAM,GAAG,EAAE,IAAI,KAAK;AAAA,MAC1C,MAAM,SAAS,SAAS,GAAG;AAAA,MAE3B,OAAO;AAAA,QACN,UAAU;AAAA,QACV;AAAA,MACD;AAAA,KACA;AAAA;AAEH;AAAA;AAAA,EAxDK,gBAAgB,IAAI,IAAI,CAAC,MAAM,MAAM,OAAO,KAAK,CAAU;AAAA;;;ICG3D,oBAAoB,MAAM;AAAA,EAC/B,MAAM,iBAAqC;AAAA,EAC3C,MAAM,mBAAmB;AAAA,EACzB,IAAI,eAAe,yBAAyB;AAAA,IAAM;AAAA,EAClD,eAAe,uBAAuB;AAAA,EACtC,eAAe,yBACd,eAAe,0BAA0B,CAAC;AAAA,EAC3C,eAAe,uBACd,eAAe,wBAAwB,CAAC;AAAA,EACzC,MAAM,YAAY,eAAe;AAAA,EACjC,MAAM,UAAU,eAAe;AAAA,EAC/B,MAAM,iBAAiB,CAAC,UACvB,QAAQ,KAAK,KAAK,OAAO,UAAU;AAAA,EACpC,MAAM,wBAAwB,CAC7B,UAII;AAAA,IACJ,IAAI,CAAC,eAAe,KAAK;AAAA,MAAG,OAAO;AAAA,IAEnC,OAAO,MAAM,eAAe,QAAQ,aAAa;AAAA;AAAA,EAElD,MAAM,uBAAuB,CAAC,UAC7B,sBAAsB,KAAK,IAAI,MAAM,UAAU;AAAA,EAChD,MAAM,sBAAsB,MAC3B,eAAe,mCAAmC;AAAA,EACnD,MAAM,wBAAwB,CAAC,YAAqB;AAAA,IACnD,IAAI,CAAC,eAAe,OAAO;AAAA,MAAG,OAAO;AAAA,IAErC,OAAO,QAAQ,SAAS;AAAA;AAAA,EAEzB,MAAM,uBAAuB,CAAC,YAAqB;AAAA,IAClD,IAAI,CAAC,eAAe,OAAO;AAAA,MAAG,OAAO;AAAA,IAErC,OAAO,QAAQ,SAAS;AAAA;AAAA,EAEzB,MAAM,cAAc,CAAC,YAAqB;AAAA,IACzC,IAAI,CAAC,eAAe,OAAO,GAAG;AAAA,MAC7B,OAAO,OAAO,YAAY,WAAW,UAAU;AAAA,IAChD;AAAA,IACA,IAAI,OAAO,QAAQ,SAAS,UAAU;AAAA,MACrC,OAAO,QAAQ;AAAA,IAChB;AAAA,IAEA,OAAO;AAAA;AAAA,EAGR,MAAM,QAAQ,CAAC,IAAY,iBAA0B;AAAA,IACpD,MAAM,UAAU,qBAAqB,YAAY;AAAA,IACjD,IAAI,CAAC,oBAAoB,GAAG;AAAA,MAC3B,QAAQ,MAAM;AAAA,MAEd;AAAA,IACD;AAAA,IACA,MAAM,WAAW,UAAU;AAAA,IAC3B,IAAI,OAAO,aAAa,YAAY;AAAA,MACnC,WAAW,IAAI,SAAS,YAAY;AAAA,MAEpC;AAAA,IACD;AAAA,IAEA,MAAM,UAAU,SAAS,OAAO;AAAA,IAChC,IAAI,YAAY,OAAO;AAAA,MACtB,OAAO,QAAQ;AAAA,MAEf;AAAA,IACD;AAAA,IAEA,WAAW,IAAI,SAAS,YAAY;AAAA;AAAA,EAErC,MAAM,aAAa,CAClB,IACA,SACA,iBACI;AAAA,IACJ,IAAI,sBAAsB,OAAO,GAAG;AAAA,MACnC,QAAQ,MAAM;AAAA,MAEd;AAAA,IACD;AAAA,IACA,MAAM,OAAO,SAAS,eAAe,EAAE;AAAA,IACvC,IAAI,CAAC,MAAM;AAAA,MACV,QAAQ,MAAM;AAAA,MAEd;AAAA,IACD;AAAA,IACA,MAAM,OAAO,YAAY,OAAO;AAAA,IAChC,IACC,qBAAqB,OAAO,KAC5B,sBAAsB,YAAY,GACjC;AAAA,MACD;AAAA,IACD;AAAA,IACA,KAAK,YAAY;AAAA,IACjB,KAAK,aAAa,4BAA4B,UAAU;AAAA,IACxD,OAAO,cACN,IAAI,YAAY,kBAAkB;AAAA,MACjC,QAAQ,EAAE,MAAM,IAAI,QAAQ;AAAA,IAC7B,CAAC,CACF;AAAA,IACA,IAAI,qBAAqB,OAAO,GAAG;AAAA,MAClC,QAAQ,MAAM,EAAE,YAAY,MAAM,QAAQ;AAAA,MAE1C;AAAA,IACD;AAAA,IACA,OAAO,QAAQ;AAAA;AAAA,EAGhB,MAAM,QAAQ,MAAM;AAAA,IACnB,WAAW,MAAM,SAAS;AAAA,MACzB,IAAI,CAAC,OAAO,UAAU,eAAe,KAAK,SAAS,EAAE;AAAA,QAAG;AAAA,MACxD,MAAM,IAAI,QAAQ,OAAO,EAAE;AAAA,IAC5B;AAAA;AAAA,EAGD,eAAe,qBAAqB;AAAA,EACpC,eAAe,uBAAuB,CAAC,IAAY,YAAqB;AAAA,IACvE,MAAM,IAAI,OAAO;AAAA;AAAA,EAGlB,IAAI,OAAO,qBAAqB,YAAY;AAAA,IAC3C,MAAM,WAAW,IAAI,iBAAiB,KAAK;AAAA,IAC3C,MAAM,OAAO,SAAS,mBAAmB,SAAS,QAAQ;AAAA,IAC1D,SAAS,QAAQ,MAAM,EAAE,WAAW,MAAM,SAAS,KAAK,CAAC;AAAA,EAC1D;AAAA,EAEA,IAAI,SAAS,eAAe,WAAW;AAAA,IACtC,SAAS,iBAAiB,oBAAoB,OAAO,EAAE,MAAM,KAAK,CAAC;AAAA,EACpE;AAAA,EACA,MAAM;AAAA,GAGD,uBAAuB,CAAC,UAAkB;AAAA,EAC/C,MAAM,QAAQ,MAAM,QAAQ,GAAG;AAAA,EAC/B,MAAM,MAAM,MAAM,YAAY,GAAG;AAAA,EACjC,IAAI,QAAQ,KAAK,OAAO;AAAA,IAAO,OAAO;AAAA,EAEtC,OAAO,MAAM,MAAM,QAAQ,GAAG,GAAG;AAAA,GAGrB,6BAA6B,MACzC,eAAe,qBAAqB,kBAAkB,SAAS,CAAC;;;IC1J3D,eAMA,cAEO,sBAAsB,CAAC,YACnC,QAAQ,QAAQ,cAAc,CAAC,SAAS;AAAA,EACvC,MAAM,UAAU,cAAc;AAAA,EAE9B,OAAO,YAAY,YAAY,UAAU;AAAA,CACzC;AAAA;AAAA,EAbI,gBAAwC;AAAA,IAC7C,UAAU;AAAA,IACV,UAAU;AAAA,IACV,KAAK;AAAA,EACN;AAAA,EAEM,eAAe;AAAA;;;ICFf,iBAAiB,aACjB,mBAAmB,WACnB,mBAAmB,WACnB,yBACA,yBACA,wBACA,2BAA2B,wBAC3B,2BAA2B,wBAC3B,yBAAyB,KACzB,4BAA4B,MAC5B,kCAAkC,KAClC,gCAAgC,OAiFhC,2BAA2B,CAChC,IACA,YAEA,WAAW,kDAAkD,mCAAmC,uCAAuC,oCAAoC,KAAK,UAAU,EAAE,KAAK,KAAK,UAAU,OAAO,OAElN,kBAAkB,CAAC,UAAoB,QAAQ,WAAW,WAAW,IAE9D,wBAAwB,MACpC,GAAG,iBAAiB,KAAK,OAAO,EAAE,SAAS,aAAa,EAAE,MAAM,GAAG,mBAAmB,KAC1E,iCAAiC,MAC7C,2BAA2B,GACf,qBAAqB,CAAC,MAAc,cAAsB;AAAA,EACtE,MAAM,mBAAmB,KAAK,QAAQ,gBAAgB;AAAA,EACtD,IAAI,oBAAoB,GAAG;AAAA,IAC1B,OAAO,GAAG,KAAK,MAAM,GAAG,gBAAgB,IAAI,YAAY,KAAK,MAAM,gBAAgB;AAAA,EACpF;AAAA,EAEA,OAAO,GAAG,OAAO;AAAA,GAEL,qBAAqB,CAAC,MAAc,cAAsB;AAAA,EACtE,MAAM,mBAAmB,KAAK,QAAQ,gBAAgB;AAAA,EACtD,IAAI,oBAAoB,GAAG;AAAA,IAC1B,OAAO,GAAG,KAAK,MAAM,GAAG,gBAAgB,IAAI,YAAY,KAAK,MAAM,gBAAgB;AAAA,EACpF;AAAA,EAEA,OAAO,GAAG,OAAO;AAAA,GAEL,8BAA8B,CAC1C,IACA,SACA,UAEA,UAAU,gBAAgB,KAAK,KAAK,oBACnC,yBAAyB,IAAI,OAAO,CACrC,cACY,iCAAiC,CAAC,IAAY,eAAe,OACzE,YAAY,qEAAqE,sBACrE,iCAAiC,CAC7C,OACA,yBACI;AAAA,EACJ,MAAM,cAAc;AAAA,IACnB,sBAAsB,KAAK,IAAI,qBAAqB,KAAK,IAAI;AAAA,IAC7D,+BAA+B;AAAA,EAChC,EACE,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,EAEV,OAAO,UAAU,gBAAgB,KAAK,KAAK,oBAAoB,WAAW;AAAA,GAGrE,UAAU,CAAC,OAAe,YAAyB,QAAQ,OAAO,KAAK,GAMvE,YAAW,CAAC,UACjB,QAAQ,KAAK,KAAK,OAAO,UAAU,UAE9B,iBAAiB,CAAC,UACvB,UAAS,KAAK,KACd,OAAO,MAAM,0CAA0C,UAElD,oBAAoB,CAAC,UAAmB;AAAA,EAC7C,IAAI,eAAe,KAAK,GAAG;AAAA,IAC1B,OAAO,MAAM;AAAA,EACd;AAAA,EAEA,OAAO;AAAA,GAGJ,4BAQE,cAAc,CACnB,YAC+B;AAAA,KAC5B;AACJ,IAEM,qBAAqB,CAAC,OAAgB,aAAqB;AAAA,EAChE,IAAI,OAAO,UAAU,YAAY,OAAO,SAAS,KAAK,KAAK,SAAS,GAAG;AAAA,IACtE,OAAO,KAAK,MAAM,KAAK;AAAA,EACxB;AAAA,EAEA,OAAO;AAAA,GAGF,oBAAoB,CAAC,OAAgB,aAAqB;AAAA,EAC/D,MAAM,kBAAkB,kBAAkB,KAAK;AAAA,EAE/C,OAAO,OAAO,oBAAoB,WAAW,kBAAkB;AAAA,GAE1D,qBAAqB,CAC1B,OACA,WAA+B,cAC3B;AAAA,EACJ,MAAM,YAAY,kBAAkB,KAAK;AAAA,EACzC,IAAI,OAAO,cAAc;AAAA,IAAU,OAAO;AAAA,EAE1C,OAAO;AAAA,GAEF,iBAAiB,CACtB,QACA,QACI,OAAO,UAAU,eAAe,KAAK,QAAQ,GAAG,GAE/C,oCAAoC,CACzC,MACA,iBAAsC,CAAC,OAClC;AAAA,EACL,WAAW,eAAe,gBAAgB,WAAW,IAClD,mBAAmB,eAAe,SAAS,IAC3C,KAAK;AAAA,EACR,cAAc,eAAe,gBAAgB,cAAc,IACxD,kBAAkB,eAAe,cAAc,EAAE,IACjD,KAAK;AAAA,EACR,sBAAsB,eAAe,gBAAgB,sBAAsB,IACxE,mBACA,eAAe,sBACf,KAAK,oBACN,IACC,KAAK;AAAA,EACR,qBAAqB,eAAe,gBAAgB,qBAAqB,IACtE,mBACA,eAAe,qBACf,KAAK,mBACN,IACC,KAAK;AAAA,EACR,SAAS,eAAe,gBAAgB,SAAS,IAC9C,eAAe,UACf,KAAK;AAAA,EACR,cAAc,eAAe,gBAAgB,cAAc,IACxD,eAAe,eACf,KAAK;AAAA,EACR,WAAW,eAAe,gBAAgB,WAAW,IAClD,mBAAmB,eAAe,WAAW,KAAK,SAAS,IAC3D,KAAK;AACT,IAEM,iCAAiC,CACtC,eACA,oBACI;AAAA,EACJ,IAAI,CAAC,iBAAiB,CAAC;AAAA,IAAiB;AAAA,EAExC,OAAO,CAAC,OAAgB,SAAwB;AAAA,IAC/C,gBAAgB,OAAO,IAAI;AAAA,IAC3B,kBAAkB,OAAO,IAAI;AAAA;AAAA,GAIzB,kCAAkC,CACvC,oBACA,qBACI;AAAA,EACJ,IAAI,CAAC,sBAAsB,CAAC;AAAA,IAAkB;AAAA,EAE9C,OAAO,CAAC,WAAgC;AAAA,IACvC,qBAAqB,MAAM;AAAA,IAC3B,mBAAmB,MAAM;AAAA;AAAA,GAIrB,6BAA6B,CAClC,iBAAsC,CAAC,MACnC;AAAA,EACJ,MAAM,OAAO,uBAAuB;AAAA,EAEpC,OAAO,kCAAkC,MAAM,cAAc;AAAA,GAGjD,yBAAyB,MACrC,YAAY,0BAA0B,GAE1B,yBAAyB,CAAC,SAA8B,CAAC,MAAM;AAAA,EAC3E,MAAM,OAAO,uBAAuB;AAAA,EAEpC,6BAA6B,kCAC5B,MACA,MACD;AAAA,GAGY,0BAA0B,OACtC,QACA,aACI;AAAA,EACJ,MAAM,WAAW,uBAAuB;AAAA,EAExC,uBAAuB,MAAM;AAAA,EAC7B,IAAI;AAAA,IACH,OAAO,MAAM,SAAS;AAAA,YACrB;AAAA,IACD,6BAA6B;AAAA;AAAA,GAIzB,iBAAiB,CACtB,QACA,iBACI;AAAA,EACJ,eAAe,MAAM;AAAA,GAGhB,qBAAqB,CAAC,MAAqB,cAAsB;AAAA,EACtE,MAAM,QAAQ,OAAO,OACpB,IAAI,MAAM,mBAAmB,KAAK,uBAAuB,aAAa,GACtE,EAAE,cAAc,KAAK,CACtB;AAAA,EAEA,OAAO;AAAA,GAGF,2BAA2B,CAChC,UAEA,UAAS,KAAK,MAAK,UAAU,QAExB,iBAAiB,CACtB,UAEA,UAAS,KAAK,KAAK,MAAM,iBAAiB,MAErC,kBAAkB,CACvB,MACA,YACoB;AAAA,EACpB,WAAW,KAAK,cAAc,YAAY,OAAO,YAAY,KAAK;AAAA,EAClE,cAAc,kBAAkB,KAAK,cAAc,OAAO,YAAY;AAAA,EACtE,IAAI,KAAK,MAAM,sBAAsB;AAAA,EACrC,SAAS,KAAK;AAAA,EACd,WAAW,mBAAmB,KAAK,WAAW,OAAO,SAAS;AAC/D,IAEM,eAAe;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,MAMK;AAAA,EACL,MAAM,gBAAgB,MAAM,IAAI,CAAC,SAAS,gBAAgB,MAAM,MAAM,CAAC;AAAA,EACvE,MAAM,yBAAyB,CAAC,SAAwB;AAAA,IACvD,eACC;AAAA,MACC,QAAQ,KAAK;AAAA,MACb,MAAM;AAAA,IACP,GACA,YACD;AAAA;AAAA,EAED,MAAM,mBAAmB,CAAC,MAAqB,WAAmB;AAAA,IACjE,UAAU,IAAI,MAAM,MAAM,GAAG,IAAI;AAAA,IACjC,eACC;AAAA,MACC;AAAA,MACA,QAAQ,KAAK;AAAA,MACb,MAAM;AAAA,IACP,GACA,YACD;AAAA;AAAA,EAGD,QAAQ,wBAAwB;AAAA,EAChC,IAAI,wBAAwB,GAAG;AAAA,IAC9B,cAAc,QAAQ,CAAC,SACtB,iBAAiB,MAAM,0BAA0B,CAClD;AAAA,IAEA,OAAO,CAAC;AAAA,EACT;AAAA,EAEA,IAAI,cAAc,UAAU,qBAAqB;AAAA,IAChD,cAAc,QAAQ,sBAAsB;AAAA,IAE5C,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,YAAY,cAAc,MAAM,GAAG,mBAAmB;AAAA,EAC5D,MAAM,eAAe,cAAc,MAAM,mBAAmB;AAAA,EAC5D,aAAa,QAAQ,CAAC,SAAS;AAAA,IAC9B,iBACC,MACA,mBAAmB,KAAK,uBAAuB,qDAChD;AAAA,GACA;AAAA,EACD,UAAU,QAAQ,sBAAsB;AAAA,EAExC,OAAO;AAAA,GAGF,iBAAiB,CAAC,OAAe,YACtC,QAAQ,OAAO,KAAK,EAAE,QASjB,4BAA4B,CAAC,UAAmB;AAAA,EACrD,MAAM,YAAY,kBAAkB,KAAK;AAAA,EACzC,IACC,yBAAyB,SAAS,KAClC,OAAO,UAAU,SAAS,UACzB;AAAA,IACD,OAAO;AAAA,SACH;AAAA,MACH,MAAM,kBAAkB,UAAU,MAAM,EAAE;AAAA,IAC3C;AAAA,EACD;AAAA,EAEA,OAAO,OAAO,cAAc,WAAW,YAAY,GAAG;AAAA,GAGjD,iBAAiB,CAAC,YACvB,OAAO,YAAY,WAAW,UAAU,QAAQ,MAE3C,qBAAqB,CAC1B,YACA,SACA,UACI;AAAA,EACJ,IAAI,MAAM,WAAW,GAAG;AAAA,IACvB;AAAA,EACD;AAAA,EAEA,WAAW,QAAQ,QAAQ,OAAO,KAAK,CAAC;AAAA,GAGnC,4BAA4B,OACjC,WACI;AAAA,EACJ,QAAQ,MAAM,UAAU,MAAM,OAAO,KAAK;AAAA,EAC1C,IAAI,QAAQ,CAAC,OAAO;AAAA,IACnB,OAAO,EAAE,MAAM,OAAO,UAAU;AAAA,EACjC;AAAA,EAEA,OAAO,EAAE,MAAM,MAAM;AAAA,GAGhB,uBAAuB,CAC5B,OAOA,QAqBA,mBAeI;AAAA,EACJ,IAAI,CAAC,MAAM,WAAW,OAAO,SAAS,QAAQ;AAAA,IAC7C,eAAe,MAAM;AAAA,EACtB;AAAA,EAEA,OAAO;AAAA,GAGF,8BAA8B,CAAC,UAQ/B;AAAA,EACL;AAAA,IACC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACG;AAAA,EACJ,MAAM,QAAQ,eAAe,MAAM,OAAO;AAAA,EAC1C,IAAI,SAAS,sBAAsB;AAAA,IAClC,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,QAAQ,IAAI,MACjB,mBAAmB,KAAK,oCAAoC,4BAC7D;AAAA,EACA,MAAM,aAAa,KAAK,IAAI,IAAI;AAAA,EAChC,UAAU,OAAO,IAAI;AAAA,EACrB,eACC;AAAA,IACC;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ,KAAK;AAAA,IACb,MAAM;AAAA,EACP,GACA,YACD;AAAA,EAEA,MAAM,eAAe,mBAAmB,KAAK,WAAW,SAAS;AAAA,EAEjE,OAAO;AAAA,IACN,OACC,iBAAiB,YACd,IACA,eAAe,cAAc,OAAO;AAAA,IACxC;AAAA,IACA,IAAI,KAAK;AAAA,IACT,SAAS,iBAAiB,YAAY,OAAO;AAAA,EAC9C;AAAA,GAGK,kBAAkB,CAAC,SAA2B,SAAwB;AAAA,EAC3E,QAAQ,cAAc;AAAA,EACtB,IAAI,OAAO,cAAc,YAAY,aAAa,GAAG;AAAA,IACpD,OAAO;AAAA,EACR;AAAA,EAEA,QAAQ,SAAS,gBAAgB,WAChC,QAAQ,cAAyC;AAAA,EAElD,WAAW,MAAM;AAAA,IAChB,OAAO,mBAAmB,MAAM,SAAS,CAAC;AAAA,KACxC,SAAS;AAAA,EAEZ,OAAO,QAAQ,KAAK,CAAC,SAAS,cAAc,CAAC;AAAA,GAGxC,cAAc,OACnB,MACA,SACA,QACA,iBACI;AAAA,EACJ,MAAM,aAAa,UAAU,uBAAuB;AAAA,EACpD,MAAM,UAAU,IAAI;AAAA,EACpB,MAAM,QAAQ,KAAK,IAAI;AAAA,EACvB,IAAI;AAAA,IACH,MAAM,kBAAkB,QAAQ,QAAQ,KAAK,QAAQ,CAAC;AAAA,IACtD,MAAM,WAAW,MAAM,gBAAgB,iBAAiB,IAAI;AAAA,IAC5D,MAAM,UAAU,0BAA0B,QAAQ;AAAA,IAClD,MAAM,OAAO,eAAe,OAAO;AAAA,IACnC,MAAM,kBACL,WAAW,uBAAuB,IAC/B,4BAA4B;AAAA,MAC5B;AAAA,MACA;AAAA,MACA,sBAAsB,WAAW;AAAA,MACjC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD,CAAC,IACA;AAAA,IACJ,IAAI,iBAAiB;AAAA,MACpB,OAAO;AAAA,IACR;AAAA,IACA,MAAM,aAAa,KAAK,IAAI,IAAI;AAAA,IAChC,MAAM,QAAQ,eAAe,MAAM,OAAO;AAAA,IAC1C,eACC;AAAA,MACC;AAAA,MACA;AAAA,MACA,QAAQ,KAAK;AAAA,MACb,MAAM;AAAA,IACP,GACA,YACD;AAAA,IAEA,OAAO;AAAA,MACN;AAAA,MACA;AAAA,MACA,IAAI,KAAK;AAAA,MACT;AAAA,IACD;AAAA,IACC,OAAO,OAAO;AAAA,IACf,MAAM,aAAa,KAAK,IAAI,IAAI;AAAA,IAChC,UAAU,OAAO,IAAI;AAAA,IACrB,eACC;AAAA,MACC;AAAA,MACA;AAAA,MACA,QAAQ,KAAK;AAAA,MACb,MAAM,eAAe,KAAK,IAAI,YAAY;AAAA,IAC3C,GACA,YACD;AAAA,IACA,MAAM,OAAO,mBAAmB,KAAK,WAAW,SAAS;AAAA,IACzD,IAAI,MAAM;AAAA,MACT,OAAO;AAAA,QACN,OAAO,eAAe,MAAM,OAAO;AAAA,QACnC;AAAA,QACA,IAAI,KAAK;AAAA,QACT,SAAS;AAAA,MACV;AAAA,IACD;AAAA,IAEA,OAAO;AAAA,MACN,OAAO;AAAA,MACP;AAAA,MACA,IAAI,KAAK;AAAA,MACT,SAAS;AAAA,IACV;AAAA;AAAA,GAII,mBAAmB,OACxB,YACI;AAAA,EACJ,MAAM,UAAU,QAAQ,IAAI,CAAC,YAC5B,QAAQ,KAAK,CAAC,YAAY;AAAA,IACzB,UAAU;AAAA,IACV;AAAA,EACD,EAAE,CACH;AAAA,EAEA,OAAO,QAAQ,KAAK,OAAO;AAAA,GAGtB,sBAAsB,CAC3B,OACA,YAEA,OAAO,UAAU,WAAW,QAAQ,QAAQ,OAAO,OAAO,EAAE,QAAQ,KAAK,CAAC,GAE9D,qCAAqC,CACjD,QACA,QAAiC,CAAC;AAAA,EAEjC,gBAAgB;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,mBAAmB;AAAA,IACa,CAAC,MAC9B;AAAA,EACJ,MAAM,iBAAiB,2BAA2B,MAAM;AAAA,EACxD,MAAM,kBAAkB,+BACvB,eAAe,SACf,OACD;AAAA,EACA,MAAM,uBAAuB,gCAC5B,eAAe,cACf,YACD;AAAA,EACA,MAAM,kBAA4C;AAAA,OAC9C;AAAA,IACH,cAAc;AAAA,EACf;AAAA,EACA,MAAM,gBAAgB,aAAa;AAAA,IAClC,SAAS;AAAA,IACT,cAAc;AAAA,IACd,QAAQ;AAAA,IACR;AAAA,EACD,CAAC;AAAA,EACD,IAAI,cAAc,WAAW;AAAA,IAAG,OAAO;AAAA,EAEvC,MAAM,SAAS,gBACZ,iCACA,QACA,OACA,kBACA,oBACD,IACC;AAAA,EACH,MAAM,UAAU,IAAI;AAAA,EACpB,MAAM,UAAU,IAAI;AAAA,EACpB,MAAM,SAAS,OAAO,UAAU;AAAA,EAChC,MAAM,UAAiD,cAAc,IACpE,CAAC,SACA,YACC,MACA,iBACA,iBACA,oBACD,CACF;AAAA,EACA,MAAM,uBAAuB,CAC5B,UACA,aACI;AAAA,IACJ,MAAM,SAuBF,CAAC;AAAA,IAEL,IAAI,CAAC,UAAU;AAAA,MACd,OAAO,KACN,SAAS,KAAK,GAAG,MAAM,aAAa;AAAA,QACnC;AAAA,QACA,MAAM;AAAA,QACN;AAAA,MACD,EAAE,CACH;AAAA,IACD;AAAA,IACA,IAAI,QAAQ,SAAS,GAAG;AAAA,MACvB,OAAO,KACN,iBAAiB,OAAO,EAAE,KAAK,CAAC,cAAc;AAAA,QAC7C,MAAM;AAAA,WACH;AAAA,MACJ,EAAE,CACH;AAAA,IACD;AAAA,IAEA,OAAO;AAAA;AAAA,EAER,MAAM,sBAAsB,CAC3B,YACA,SACI;AAAA,IACJ,IAAI,KAAK,UAAU,wBAAwB;AAAA,MAC1C,OAAO;AAAA,IACR;AAAA,IAEA,MAAM,UAAU,KAAK,MAAM,GAAG,KAAK,SAAS,sBAAsB;AAAA,IAClE,WAAW,QAAQ,QAAQ,OAAO,OAAO,CAAC;AAAA,IAE1C,OAAO,KAAK,MAAM,CAAC,sBAAsB;AAAA;AAAA,EAE1C,MAAM,8BAA8B,CACnC,YACA,aACA,aACI;AAAA,IACJ,MAAM,cAAc,YAAY,OAAO,sBAAsB;AAAA,IAC7D,IAAI,cAAc,GAAG;AAAA,MACpB,mBAAmB,YAAY,SAAS,WAAW;AAAA,MAEnD,OAAO;AAAA,QACN,UAAU;AAAA,QACV;AAAA,QACA,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,MAAM;AAAA,MACP;AAAA,IACD;AAAA,IAEA,MAAM,UAAU,YAAY,MAAM,GAAG,WAAW;AAAA,IAChD,MAAM,aAAa,YAAY,MAAM,WAAW;AAAA,IAChD,mBAAmB,YAAY,SAAS,OAAO;AAAA,IAE/C,OAAO;AAAA,MACN,UAAU;AAAA,MACV;AAAA,MACA,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,MAAM;AAAA,IACP;AAAA;AAAA,EAED,MAAM,mBAAmB,CACxB,YACA,QAqBA,UACA,MACA,WACI;AAAA,IACJ,IAAI,OAAO,SAAS,QAAQ;AAAA,MAC3B,OAAO,EAAE,UAAU,OAAO,UAAU,QAAQ,SAAS,OAAO,KAAK;AAAA,IAClE;AAAA,IAEA,IAAI,OAAO,MAAM;AAAA,MAChB,OAAO,4BACN,YACA,OAAO,QAAQ,OAAO,GACtB,QACD;AAAA,IACD;AAAA,IAEA,IAAI,CAAC,OAAO,OAAO;AAAA,MAClB,OAAO,EAAE,UAAU,OAAO,UAAU,QAAQ,SAAS,MAAM,KAAK;AAAA,IACjE;AAAA,IAEA,MAAM,WAAW,oBAChB,YACA,OAAO,oBAAoB,OAAO,OAAO,OAAO,CACjD;AAAA,IAEA,OAAO;AAAA,MACN,UAAU;AAAA,MACV,UAAU,OAAO,KAAK;AAAA,MACtB;AAAA,MACA,SAAS;AAAA,MACT,MAAM;AAAA,IACP;AAAA;AAAA,EAED,MAAM,qBAAqB,CAC1B,YACA,WAeI;AAAA,IACJ,MAAM,QAAQ,QAAQ,QAAQ,OAAO,QAAQ;AAAA,IAC7C,IAAI,SAAS;AAAA,MAAG,QAAQ,OAAO,OAAO,CAAC;AAAA,IACvC,IAAI,OAAO,OAAO,YAAY,MAAM;AAAA,MACnC;AAAA,IACD;AAAA,IAEA,eACC;AAAA,MACC,OAAO,OAAO,OAAO;AAAA,MACrB,YAAY,OAAO,OAAO;AAAA,MAC1B,QAAQ,OAAO,OAAO;AAAA,MACtB,MAAM;AAAA,IACP,GACA,oBACD;AAAA,IAEA,WAAW,QACV,QAAQ,OACP,4BACC,OAAO,OAAO,IACd,OAAO,OAAO,SACd,KACD,CACD,CACD;AAAA;AAAA,EAGD,MAAM,uBAAuB,OAC5B,eACI;AAAA,IACJ,IAAI,WAAW;AAAA,IACf,IAAI,WAAW,OAAO,KAAK;AAAA,IAC3B,IAAI,OAAO;AAAA,IACX,IAAI,SAAS;AAAA,IACb,MAAM,qBAAqB,YAAY;AAAA,MACtC,MAAM,SAAS,qBAAqB,UAAU,QAAQ;AAAA,MACtD,IAAI,OAAO,WAAW,GAAG;AAAA,QACxB,OAAO;AAAA,MACR;AAAA,MAEA,MAAM,SAAS,MAAM,QAAQ,KAAK,MAAM;AAAA,MACxC,MAAM,kBAAkB,qBACvB,iBAAiB,YAAY,QAAQ,UAAU,MAAM,MAAM,GAC3D,QACA,CAAC,eAAe;AAAA,QACf,mBAAmB,YAAY,UAAU;AAAA,OAE3C;AAAA,OACC,EAAE,UAAU,UAAU,QAAQ,KAAK,IAAI;AAAA,MACxC,IAAI,YAAY,QAAQ,WAAW,GAAG;AAAA,QACrC,OAAO;AAAA,MACR;AAAA,MAEA,OAAO,mBAAmB;AAAA;AAAA,IAG3B,OAAO,mBAAmB;AAAA;AAAA,EAG3B,OAAO,IAAI,eAA2B;AAAA,SAC/B,MAAK,CAAC,YAAY;AAAA,MACvB,IAAI;AAAA,QACH,MAAM,SAAS,MAAM,qBAAqB,UAAU;AAAA,QACpD,mBAAmB,YAAY,SAAS,MAAM;AAAA,QAC9C,WAAW,MAAM;AAAA,QAChB,OAAO,OAAO;AAAA,QACf,WAAW,MAAM,KAAK;AAAA;AAAA;AAAA,EAGzB,CAAC;AAAA,GAEW,mCAAmC,CAC/C,QACA,OACA,mBAAoC,QACpC,yBACI;AAAA,EACJ,MAAM,aAAa,+BAClB,OACA,oBACD;AAAA,EACA,MAAM,UAAU,IAAI;AAAA,EACpB,MAAM,UAAU,IAAI;AAAA,EACpB,MAAM,aACL,qBAAqB,SAAS,mBAAmB;AAAA,EAClD,MAAM,cACJ,qBAAqB,SACnB,0BACA,2BAA2B;AAAA,EAC/B,MAAM,yBAAyB,CAC9B,YACA,YACI;AAAA,IACJ,IAAI,QAAQ,UAAU,YAAY;AAAA,MACjC,OAAO;AAAA,IACR;AAAA,IAEA,MAAM,WAAW,QAAQ,MAAM,GAAG,QAAQ,SAAS,UAAU;AAAA,IAC7D,WAAW,QAAQ,QAAQ,OAAO,QAAQ,CAAC;AAAA,IAE3C,OAAO,QAAQ,MAAM,CAAC,UAAU;AAAA;AAAA,EAEjC,MAAM,2BAA2B,CAAC,YACjC,qBAAqB,SAClB,mBAAmB,SAAS,UAAU,IACtC,mBAAmB,SAAS,UAAU;AAAA,EAC1C,MAAM,wBAAwB,CAC7B,YACA,SACA,aACI;AAAA,IACJ,IAAI,UAAU;AAAA,MACb,WAAW,QAAQ,QAAQ,OAAO,OAAO,CAAC;AAAA,MAE1C,OAAO,EAAE,UAAU,SAAS,GAAG;AAAA,IAChC;AAAA,IAEA,MAAM,kBAAkB,QAAQ,QAAQ,UAAU;AAAA,IAClD,IAAI,mBAAmB,GAAG;AAAA,MACzB,MAAM,cAAc,GAAG,QAAQ,MAAM,GAAG,eAAe,IAAI,aAAa,QAAQ,MAAM,eAAe;AAAA,MACrG,WAAW,QAAQ,QAAQ,OAAO,WAAW,CAAC;AAAA,MAE9C,OAAO,EAAE,UAAU,MAAM,SAAS,GAAG;AAAA,IACtC;AAAA,IAEA,OAAO;AAAA,MACN;AAAA,MACA,SAAS,uBAAuB,YAAY,OAAO;AAAA,IACpD;AAAA;AAAA,EAGD,OAAO,IAAI,eAA2B;AAAA,SAC/B,MAAK,CAAC,YAAY;AAAA,MACvB,MAAM,SAAS,OAAO,UAAU;AAAA,MAChC,IAAI,WAAW;AAAA,MACf,IAAI,UAAU;AAAA,MACd,MAAM,iBAAiB,MACtB,mBAAmB,YAAY,SAAS,OAAO;AAAA,MAChD,MAAM,sBAAsB,YAAY;AAAA,QACvC,QAAQ,MAAM,UAAU,MAAM,0BAA0B,MAAM;AAAA,QAC9D,IAAI,QAAQ,CAAC,OAAO;AAAA,UACnB,OAAO;AAAA,QACR;AAAA,QAEA,WAAW,oBAAoB,OAAO,OAAO;AAAA,SAC5C,EAAE,UAAU,QAAQ,IAAI,sBACxB,YACA,SACA,QACD;AAAA,QAEA,OAAO;AAAA;AAAA,MAGR,MAAM,0BAA0B,YAAY;AAAA,QAC3C,MAAM,OAAO,MAAM,oBAAoB;AAAA,QACvC,IAAI,MAAM;AAAA,UACT;AAAA,QACD;AAAA,QAEA,MAAM,wBAAwB;AAAA;AAAA,MAG/B,IAAI;AAAA,QACH,MAAM,wBAAwB;AAAA,QAE9B,WAAW,QAAQ,OAAO;AAAA,QAC1B,UAAU,WACP,UACA,yBAAyB,OAAO;AAAA,QACnC,eAAe;AAAA,QACf,WAAW,MAAM;AAAA,QAChB,OAAO,OAAO;AAAA,QACf,WAAW,MAAM,KAAK;AAAA;AAAA;AAAA,EAGzB,CAAC;AAAA,GAEW,wBAAwB;AAAA,EACpC,aAAa;AAAA,EACb,aAAa;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,MACmC;AAAA,EACnC,MAAM,iBAAiB,2BAA2B,MAAM;AAAA,EACxD,MAAM,kBAAkB,+BACvB,eAAe,SACf,OACD;AAAA,EACA,MAAM,uBAAuB,gCAC5B,eAAe,cACf,YACD;AAAA,EACA,MAAM,kBAA4C;AAAA,OAC9C;AAAA,IACH,cAAc;AAAA,EACf;AAAA,EACA,MAAM,gBAAgB,aAAa;AAAA,IAClC,SAAS;AAAA,IACT,cAAc;AAAA,IACd,QAAQ;AAAA,IACR;AAAA,EACD,CAAC;AAAA,EACD,MAAM,UAAU,IAAI;AAAA,EACpB,MAAM,qBAAqB,CAC1B,eAEA,cAAc,IAAI,CAAC,SAAS;AAAA,IAC3B,MAAM,WAAW,+BAChB,KAAK,IACL,kBAAkB,KAAK,cAAc,EAAE,CACxC;AAAA,IACA,WAAW,QAAQ,QAAQ,UAAU,OAAO,CAAC;AAAA,IAE7C,OAAO,YACN,MACA,iBACA,iBACA,oBACD;AAAA,GACA;AAAA,EACF,MAAM,6BAA6B,OAClC,YACA,YAQI;AAAA,IACJ,QAAQ,UAAU,WAAW,MAAM,iBAAiB,OAAO;AAAA,IAC3D,MAAM,QAAQ,QAAQ,QAAQ,QAAQ;AAAA,IACtC,IAAI,SAAS;AAAA,MAAG,QAAQ,OAAO,OAAO,CAAC;AAAA,IACvC,IAAI,OAAO,YAAY,MAAM;AAAA,MAC5B;AAAA,IACD;AAAA,IAEA,eACC;AAAA,MACC,OAAO,OAAO;AAAA,MACd,YAAY,OAAO;AAAA,MACnB,QAAQ,OAAO;AAAA,MACf,MAAM;AAAA,IACP,GACA,oBACD;AAAA,IACA,WAAW,QACV,QACC,4BAA4B,OAAO,IAAI,OAAO,SAAS,KAAK,GAC5D,OACD,CACD;AAAA;AAAA,EAGD,MAAM,sBAAsB,OAC3B,eACI;AAAA,IACJ,MAAM,UAAU,mBAAmB,UAAU;AAAA,IAC7C,MAAM,yBAAyB,YAAY;AAAA,MAC1C,IAAI,QAAQ,WAAW,GAAG;AAAA,QACzB;AAAA,MACD;AAAA,MAEA,MAAM,2BAA2B,YAAY,OAAO;AAAA,MAEpD,MAAM,uBAAuB;AAAA;AAAA,IAG9B,MAAM,uBAAuB;AAAA;AAAA,EAE9B,MAAM,oBAAoB,MAAM;AAAA,IAC/B,MAAM,kBACL,cAAc,SAAS,KACvB,CAAC,WAAW,SAAS,wBAAwB;AAAA,IAC9C,IAAI,CAAC,iBAAiB;AAAA,MACrB,OAAO;AAAA,IACR;AAAA,IAEA,OAAO,mBACN,YACA,+BAA+B,KAAK,CACrC;AAAA;AAAA,EAGD,OAAO,IAAI,eAA2B;AAAA,SAC/B,MAAK,CAAC,YAAY;AAAA,MACvB,IAAI;AAAA,QACH,MAAM,SAAS,kBAAkB;AAAA,QACjC,WAAW,QAAQ,QAAQ,QAAQ,OAAO,CAAC;AAAA,QAC3C,MAAM,oBAAoB,UAAU;AAAA,QAEpC,mBAAmB,YAAY,SAAS,UAAU;AAAA,QAClD,WAAW,MAAM;AAAA,QAChB,OAAO,OAAO;AAAA,QACf,WAAW,MAAM,KAAK;AAAA;AAAA;AAAA,EAGzB,CAAC;AAAA;AAAA;AAAA,EApqCF;AAAA,EACA;AAAA,EAKM,0BAA0B,iBAAiB;AAAA,EAC3C,0BAA0B,iBAAiB;AAAA,EAC3C,yBAAyB;AAAA,EAgK3B,6BAAuD;AAAA,IAC1D,WAAW;AAAA,IACX,cAAc;AAAA,IACd,sBAAsB;AAAA,IACtB,qBAAqB;AAAA,IACrB,WAAW;AAAA,EACZ;AAAA;;;AC/KA,uBAAS;AACT,iBAAS,kBAAM;AAAA,IASF,2BAA2B,CAAC,cAAsB;AAAA,EAC9D,MAAM,sBAAsB,QAAQ,IAAI,qBACrC,SAAQ,QAAQ,IAAI,oBAAoB,gBAAgB,SAAS,IACjE;AAAA,EACH,IAAI,uBAAuB,YAAW,mBAAmB,GAAG;AAAA,IAC3D,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,cAAc,SAAQ,QAAQ,IAAI,GAAG,gBAAgB,SAAS;AAAA,EAEpE,IAAI,YAAW,WAAW,GAAG;AAAA,IAC5B,OAAO;AAAA,EACR;AAAA,EAEA,OAAO;AAAA,GAGF,sBAAsB,CAAC,eAAuB;AAAA,EACnD,IAAI;AAAA,IACH,MAAM,MAAM,KAAK,MAChB,aAAa,MAAK,YAAY,cAAc,GAAG,OAAO,CACvD;AAAA,IACA,MAAM,aAAa,IAAI,UAAU;AAAA,IACjC,MAAM,SACJ,OAAO,eAAe,WACpB,aACA,YAAY,YACf,IAAI,UACJ,IAAI,QACJ;AAAA,IAED,OAAO,MAAK,YAAY,KAAK;AAAA,IAC5B,MAAM;AAAA,IACP,OAAO;AAAA;AAAA,GAII,wBAAwB,CAAC,cAAsB;AAAA,EAC3D,MAAM,aAAa,yBAAyB,SAAS;AAAA,EACrD,IAAI;AAAA,IAAY,OAAO,oBAAoB,UAAU;AAAA,EAErD,OAAO;AAAA,GAGF,mBAAmB,CAAC,cACzB,UAAU,QAAQ,MAAM,EAAE,EAAE,QAAQ,OAAO,GAAG,GAWlC,4BAA4B,CAAC,cAAsB;AAAA,EAC/D,MAAM,WAAW,QAAQ,IAAI;AAAA,EAC7B,IAAI,UAAU;AAAA,IACb,MAAM,aAAa,MAClB,UACA,WACA,UACA,UACA,GAAG,iBAAiB,SAAS,MAC9B;AAAA,IACA,IAAI,YAAW,UAAU;AAAA,MAAG,OAAO;AAAA,EACpC;AAAA,EAEA,OAAO,sBAAsB,SAAS;AAAA;AAAA;;;;;;;IC3EjC,aAAa,CAAC,QAAkB;AAAA,EACrC,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,iBAAiB;AAAA,IAC7C;AAAA,EACD;AAAA,EAEA,MAAM,OAAO,IAAI,cAAc,MAAM;AAAA,EACrC,IAAI,gBAAgB,aAAa,MAAM,IAAI,gBAAgB,UAAU;AAAA,GAOhE,iBAaF,qBAAqB,OACnB,wBAAwB,CAAC,aAA4B;AAAA,EAC1D,MAAM,SAAmB,CAAC;AAAA,EAC1B,IAAI,UAAyB,WAC1B,OAAO,eAAe,QAAQ,IAC9B;AAAA,EACH,OAAO,WAAW,YAAY,OAAO,WAAW;AAAA,IAC/C,OAAO,KAAK,OAAO;AAAA,IACnB,UAAU,OAAO,eAAe,OAAO;AAAA,EACxC;AAAA,EAEA,OAAO;AAAA,GAGF,qBAAqB,CAAC,QAAkB;AAAA,EAC7C,IAAI,sBAAsB,CAAC,KAAK;AAAA,IAC/B;AAAA,EACD;AAAA,EACA,IAAI;AAAA,EACJ,IAAI;AAAA,IACH,UAAU,IAAI,cAAc,KAAK;AAAA,IAChC,MAAM;AAAA,IACP;AAAA;AAAA,EAMD,MAAM,SAAS,sBAAsB,OAAO;AAAA,EAC5C,IAAI,OAAO,WAAW;AAAA,IAAG;AAAA,EAEzB,MAAM,iBAAiB,CAAC,UAAkC,KAAK,KAAK;AAAA,EACpE,MAAM,mBAAmB,MAAM,eAAe,eAAe;AAAA,EAC7D,MAAM,iBAAiB,MAAM,CAAC;AAAA,EAC9B,MAAM,OAAO,MAAG;AAAA,IAAG;AAAA;AAAA,EACnB,MAAM,eAAe;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EAEA,WAAW,SAAS,QAAQ;AAAA,IAC3B,MAAM,SAAS,CAAC,MAAc,UAAmB;AAAA,MAChD,MAAM,aAAa,OAAO,yBAAyB,OAAO,IAAI;AAAA,MAC9D,IAAI,OAAO,YAAY,UAAU;AAAA,QAAY;AAAA,MAE7C,OAAO,eAAe,OAAO,MAAM;AAAA,QAClC,cAAc;AAAA,QACd;AAAA,QACA,UAAU;AAAA,MACX,CAAC;AAAA;AAAA,IAGF,OAAO,yBAAyB,gBAAgB;AAAA,IAChD,OAAO,kBAAkB,cAAc;AAAA,IACvC,OAAO,YAAY,IAAI;AAAA,IACvB,OAAO,YAAY,IAAI;AAAA,IACvB,OAAO,kBAAkB,IAAI;AAAA,IAC7B,OAAO,SAAS,IAAI;AAAA,IACpB,OAAO,QAAQ,IAAI;AAAA,IAEnB,WAAW,QAAQ,cAAc;AAAA,MAChC,MAAM,OAAO,OAAO,yBAAyB,OAAO,IAAI;AAAA,MACxD,IAAI;AAAA,QAAM;AAAA,MACV,OAAO,eAAe,OAAO,MAAM;AAAA,QAClC,cAAc;AAAA,QACd,KAAK,MAAM;AAAA,MACZ,CAAC;AAAA,IACF;AAAA,EACD;AAAA,EAEA,qBAAqB;AAAA,GAGT,eAAe,YAAY;AAAA,EACvC,QAAQ,yBAAkB,MACzB,iCAA0B,0BAA0B;AAAA,EAErD,IAAI,CAAC,sBAAe,WAAW;AAAA,IAC9B,QAAQ,KACP,iEACD;AAAA,IAEA,OAAO;AAAA,EACR;AAAA,EAMA,IAAI;AAAA,IACH,MAAM,UAAU,IAAI;AAAA,IACpB,MAAM,UACL,OAAO,QAAQ,uBAAuB,aACnC,QAAQ,mBAAmB,IAC3B,OAAO,QAAQ,uBAAuB,aACrC,QAAQ,mBAAmB,IAC3B;AAAA,IACL,IAAI,SAAS;AAAA,MACZ,mBAAmB,OAAO;AAAA,MAC1B,MAAM,QAAQ,QAAQ,cAAc,KAAK;AAAA,MAGzC,IAAI,OAAO,MAAM,0BAA0B,YAAY;AAAA,QACtD,QAAQ,KACP,4EACD;AAAA,MACD;AAAA,IACD;AAAA,IACC,OAAO,OAAO;AAAA,IACf,QAAQ,KACP,+DACA,KACD;AAAA;AAAA,EAGD,MAAM,QAAQ,qBAAc;AAAA,EAE5B,MAAM,kBAAkB,MAAM;AAAA,EAC9B,MAAM,cAAc,QAAS,CAAC,KAAe;AAAA,IAC5C,IAAI,CAAC,OAAO,CAAC,IAAI,QAAQ,OAAO,IAAI,KAAK,aAAa,aAAa;AAAA,MAClE,OAAO;AAAA,IACR;AAAA,IAEA,OAAO,gBAAgB,KAAK,MAAM,GAAG;AAAA;AAAA,EAGtC,MAAM,yBAAyB,MAAM;AAAA,EACrC,MAAM,qBAAqB,QAAS,GAAG;AAAA,IACtC,MAAM,MAAM,uBAAuB,KAAK,IAAI;AAAA,IAC5C,WAAW,GAAG;AAAA,IACd,mBAAmB,GAAG;AAAA,IAEtB,OAAO;AAAA;AAAA,EAGR,MAAM,yBAAyB,MAAM;AAAA,EACrC,MAAM,qBAAqB,QAAS,GAAG;AAAA,IACtC,MAAM,MAAM,uBAAuB,KAAK,IAAI;AAAA,IAC5C,WAAW,GAAG;AAAA,IACd,mBAAmB,GAAG;AAAA,IAEtB,OAAO;AAAA;AAAA,EAGR,OAAO;AAAA;AAAA;AAAA,EAxLR;AAAA,EAiBM,kBAAkB,OAAO,OAAO;AAAA,IACrC,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,KAAK;AAAA,IACL,OAAO;AAAA,IACP,GAAG;AAAA,IACH,GAAG;AAAA,IACH,MAAM,GAAG;AAAA,MACR,OAAO;AAAA;AAAA,EAET,CAAC;AAAA;;;IC1BK,oBAAoB,CAAC,mBAErB;AAAA,EACL,IAAI;AAAA,IACH,eAAe,sBAAe,cAAc;AAAA,IAC3C,OAAO,KAAK;AAAA,IACb,QAAQ,MAAM,uCAAuC,GAAG;AAAA;AAAA,GAIpD,kBAAkB,YAAY;AAAA,EAOnC,IAAI,MAAuC;AAAA,IAC1C,MAAa,iCAA0B,mBAAmB;AAAA,EAC3D;AAAA,EAIA,QAAQ,gCAAiB;AAAA,EACzB,MAAM,cAAa;AAAA,EAGnB,OAAO,iBAAiB,gBAAgB,QAAQ,QAAQ,MAAM,QAAQ,IAAI;AAAA,IAClE,iCAA0B,2BAA2B;AAAA,IACrD,iCAA0B,0BAA0B;AAAA,IACpD,iCAA0B,iBAAiB;AAAA,IAC3C,iCAA0B,eAAe;AAAA,EACjD,CAAC;AAAA,EAED,IAAI,OAAwC,CAE5C;AAAA,EAEA,kBAAkB,cAAc;AAAA,EAEhC,OAAO;AAAA,IACN,eAAe,OAAO;AAAA,IACtB,sBAAsB,gBAAgB;AAAA,IACtC,cAAc,gBAAgB;AAAA,IAC9B,yBAAyB,KAAK;AAAA,IAC9B,QAAQ,KAAK;AAAA,IACb,wBAAwB,gBAAgB;AAAA,IACxC,wBAAwB,eAAe;AAAA,IACvC,gCAAgC,KAAK;AAAA,IACrC,sBAAsB,KAAK;AAAA,IAC3B,mBAAmB,eAAe;AAAA,IAClC,SAAS,KAAK;AAAA,IACd,iBAAiB,KAAK;AAAA,IACtB,eAAe,KAAK;AAAA,IACpB,WAAW,KAAK;AAAA,IAChB,iBAAiB,KAAK;AAAA,IACtB,8BACC,gBAAgB;AAAA,EAClB;AAAA,GAGG,cAA2C,MAElC,iBAAiB,MAAM;AAAA,EACnC,IAAI,CAAC,aAAa;AAAA,IACjB,cAAc,gBAAgB;AAAA,EAC/B;AAAA,EAEA,OAAO;AAAA;AAAA;AAAA,EAtER;AAAA;;;ICyBM,gBAGF,iBAAiB,GACf,eAAe,MAAM,OAAO,KAAK,IAAI,KAAK,EAAE,kBAG9C,mBAAsD,MAC7C,kBAAkB,MAC9B,mBAAmB,KACnB,OAAO,yBAAyB,YAAY,wBAAwB,GACjE,OACS,uBAAuB,CACnC,QACA,cACI;AAAA,EAEJ,MAAM,KAAK,aAAa,gBAAgB,KAAK,aAAa;AAAA,EAE1D,IAAI,CAAC,eAAe,IAAI,EAAE,GAAG;AAAA,IAC5B,eAAe,IAAI,IAAI,IAAI,GAAK;AAAA,EACjC;AAAA,EAEA,eAAe,IAAI,EAAE,GAAG,IAAI,MAAM;AAAA,EAElC,OAAO;AAAA,GAEK,sBAAsB,CAAC,WAAqC;AAAA,EACxE,mBAAmB;AAAA,GAgBP,wBAAwB,MAAM;AAAA,EAC1C,eAAe,MAAM;AAAA,GAET,2BAA2B,CAAC,YAA4B;AAAA,EACpE,IAAI,QAAQ,WAAW,GAAG;AAAA,IACzB,OAAO;AAAA,EACR;AAAA,EAGA,MAAM,aAAa,QACjB,IAAI,CAAC,QAAQ,UAAU;AAAA,IAEvB,MAAM,aAAa,OAAO,SAAS;AAAA,IAGnC,MAAM,YAAY,WAAW,MAAM,eAAe;AAAA,IAClD,IAAI,CAAC,aAAa,CAAC,UAAU,IAAI;AAAA,MAChC,OAAO;AAAA,IACR;AAAA,IAEA,MAAM,OAAO,UAAU,GAAG,KAAK;AAAA,IAG/B,OAAO;AAAA;AAAA;AAAA,2BAGiB;AAAA;AAAA;AAAA,KAGtB;AAAA;AAAA;AAAA;AAAA,mBAIc;AAAA;AAAA,iEAE8C;AAAA;AAAA;AAAA;AAAA;AAAA,mBAK9C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBASA;AAAA;AAAA;AAAA;AAAA,GAIhB,EACA,KAAK;AAAA,CAAI;AAAA,EAEX,OAAO;AAAA;AAAA,EAEN;AAAA;AAAA;AAAA,GAIW,2BAA2B,CAAC,cAAuB;AAAA,EAC/D,MAAM,KAAK,aAAa,mBAAmB;AAAA,EAC3C,IAAI,CAAC;AAAA,IAAI,OAAO,CAAC;AAAA,EAEjB,MAAM,UAAU,eAAe,IAAI,EAAE;AAAA,EACrC,IAAI,CAAC,SAAS;AAAA,IACb,OAAO,CAAC;AAAA,EACT;AAAA,EAEA,MAAM,cAAc,MAAM,KAAK,OAAO;AAAA,EACtC,eAAe,OAAO,EAAE;AAAA,EAExB,OAAO;AAAA;AAAA;AAAA,EAtHF,iBAAiB,IAAI;AAAA,EAiC3B,IAAI,OAAO,eAAe,aAAa;AAAA,IACtC,OAAO,OAAO,YAAY,EAAE,qBAAqB,CAAC;AAAA,EACnD;AAAA;;;IC3Da,2CAA2C,yBAU3C,wCAAwC,CACpD,UAA4C,CAAC,MACzC;AAAA,EACJ;AAAA,IACC,QAAQ;AAAA,IACR,aAAa;AAAA,OACV;AAAA,MACA;AAAA,EAEJ,OAAO;AAAA,IACN,qBAAqB;AAAA,IACrB,gCAAgC;AAAA,OAC7B;AAAA,IACH,QAAQ,CAAC,YACR,CAAC,QAAQ,QAAQ,IAAI,UAAU,MAAM,aAAa,OAAO,KAAK;AAAA,EAChE;AAAA;;;ACzBD;AAAA,IAEa,wBAAwB,CACpC,MACA,SACA,gBACA,iBACI;AAAA,EACJ,EAAE,SAAS,KAAK,SAAS,UAAU,WAAW,KAAK;AAAA,EACnD,EAAE,SAAS,KAAK,iBAAiB,UAAU,kBAAkB,KAAK;AAAA,EAClE,EAAE,SAAS,KAAK,eAAe,UAAU,gBAAgB,KAAK;AAC/D;AAAA;;;ICEM,iBAEO,iBAAiB,CAAC,UAAkB,SAA0B;AAAA,EAC1E,MAAM,WAAW,SAAS,MAAM,GAAG,EAAE,MAAM;AAAA,EAC3C,gBAAgB,IAAI,UAAU,IAAI;AAAA,GAEtB,qBAAqB,CAAC,aAClC,gBAAgB,IAAI,QAAQ,GAIvB,eACO,iBAAiB,CAC7B,MACA,WACA,YACA,UACA,SACA,gBACA,cACA,gBAAgE,CAAC,MAC7D;AAAA,EACJ,MAAM,YAAiD;AAAA,IACtD,KAAK,uBAAuB;AAAA,IAC5B,KAAK,uBACJ,KAAK,6BACJ,sCAAsC,CACvC,CACD;AAAA,IACA,KAAK,+BAA+B;AAAA,IACpC,EAAE,SAAS,KAAK,eAAe,UAAU,IAAI;AAAA,IAC7C;AAAA,MACC,SAAS,KAAK;AAAA,MACd,UAAU;AAAA,IACX;AAAA,IACA,EAAE,SAAS,KAAK,WAAW,UAAU,UAAU;AAAA,IAC/C,GAAG,sBAAsB,MAAM,SAAS,gBAAgB,YAAY;AAAA,IACpE,GAAG;AAAA,EACJ;AAAA,EAEA,IAAI,CAAC,YAAY;AAAA,IAChB,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,gBAAgB,OAAO,QAAQ,UAAU,EAC7C,IAAI,EAAE,UAAU,gBAAgB;AAAA,IAChC,OAAO,SAAS,IAAI,iBAAiB,QAAQ,CAAC;AAAA,IAC9C,OAAO;AAAA,EACR,EAAE,EACD,OAAO,CAAC,UAAU,MAAM,KAAK,EAC7B,IAAI,CAAC,WAAW,EAAE,SAAS,MAAM,OAAO,UAAU,MAAM,MAAM,EAAE;AAAA,EAElE,OAAO,CAAC,GAAG,WAAW,GAAG,aAAa;AAAA,GAE1B,qBAAqB,MAAM,cAAc,MAAM,GAEtD,mBAAmB,CAAC,UAAmB;AAAA,EAC5C,IAAI,CAAC,SAAS,OAAO,UAAU,UAAU;AAAA,IACxC,OAAO;AAAA,EACR;AAAA,EAEA,OACC,oBAAoB,SAAS,MAAM,mBAAmB;AAAA,GAI3C,iBAAiB,CAAC,eAC9B,IAAI,IACH,OAAO,QAAQ,UAAU,EAAE,OAAO,IAAI,WACrC,iBAAiB,KAAK,CACvB,CACD,GACY,kBAAkB,CAC9B,MACA,UACA,kBACI;AAAA,EACJ,MAAM,SAAS,cAAc,IAAI,QAAQ;AAAA,EACzC,IAAI,QAAQ;AAAA,IACX,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,WACL,KAAK,qBAAqB,aAAa,GAAG,YAAY;AAAA,EACvD,cAAc,IAAI,UAAU,QAAQ;AAAA,EAEpC,OAAO;AAAA,GAKF,oBAAoB,CAAC,MAAc,YAAoB;AAAA,EAC5D,IAAI,KAAK,SAAS,SAAS,GAAG;AAAA,IAC7B,OAAO,KAAK,QAAQ,WAAW,GAAG,gBAAgB;AAAA,EACnD;AAAA,EACA,IAAI,KAAK,SAAS,SAAS,GAAG;AAAA,IAC7B,OAAO,KAAK,QAAQ,WAAW,GAAG,gBAAgB;AAAA,EACnD;AAAA,EAEA,OAAO,OAAO;AAAA,GAKF,mBAAmB,CAC/B,MACA,WACA,WACA,UACI;AAAA,EACJ,IAAI,SAAS;AAAA,EAEb,MAAM,oBAAoB,yBAAyB,SAAS;AAAA,EAC5D,IAAI,kBAAkB,SAAS,GAAG;AAAA,IACjC,SAAS,kBACR,QACA,yBAAyB,iBAAiB,CAC3C;AAAA,EACD;AAAA,EAEA,IAAI,OAAO;AAAA,IACV,SAAS,kBACR,QACA,+CAA+C,KAAK,UAAU,KAAK,aACpE;AAAA,EACD;AAAA,EAEA,IAAI,WAAW;AAAA,IACd,MAAM,mBAAmB,KAAK,UAAU,SAAS;AAAA,IACjD,SAAS,kBACR,QACA,kBAAkB,6BACnB;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,GAEK,mBAAmB,OAC/B,MACA,eACA,WACA,WACA,MAAc,QACV;AAAA,EACJ,MAAM,YAAY,CAAC,YAClB,KAAK,qBAAqB,eAAe,EAAE,UAAU,GAAG,OAAO;AAAA,EAEhE,OAAO,6BAA6B,MACnC,KAAK,kBAAkB,WAAW;AAAA,IACjC;AAAA,IACA,mBAAmB,CAAC;AAAA,IACpB;AAAA,EACD,CAAC,CACF;AAAA,GAEY,+BAA+B,OAC3C,WACI;AAAA,EACJ,MAAM,UAAU,QAAQ;AAAA,EACxB,QAAQ,MAAM,IAAI,SAAoB;AAAA,IACrC,IACC,OAAO,KAAK,OAAO,YACnB,KAAK,GAAG,SAAS,kBAAkB,GAClC;AAAA,MACD;AAAA,IACD;AAAA,IACA,QAAQ,MAAM,SAAS,IAAI;AAAA;AAAA,EAG5B,IAAI;AAAA,IACH,OAAO,MAAM,OAAO;AAAA,YACnB;AAAA,IACD,QAAQ,MAAM;AAAA;AAAA;AAAA;AAAA,EAvLhB;AAAA,EAKA;AAAA,EAMM,kBAAkB,IAAI;AAAA,EAWtB,gBAAgB,IAAI;AAAA;;;;;;;;;;ICtBpB,wBAAwB,sBAEjB,qBAAqB,CACjC,UACmD,OAAO,UAAU,YAExD,2BAA2B,CAAC,cACxC,uBAEK,gCAAgC,CAAC,gBAA6B;AAAA,EACnE,MAAM,aAAa,YAAY;AAAA,EAC/B,IAAI,EAAE,sBAAsB,cAAc;AAAA,IACzC,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,WAAW,WAAW,QAAQ,YAAY;AAAA,EAEhD,OAAO,SAAS,SAAS,IAAI,WAAW;AAAA,GAGnC,oCAAoC,CACzC,cACI;AAAA,EACJ,MAAM,WAAW,QAAQ,IAAI,WAAW,WAAK;AAAA,EAC7C,IAAI,OAAO,aAAa,YAAY,aAAa,MAAM;AAAA,IACtD,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,iBAAiB,QAAQ,IAAI,UAAU,WAAW;AAAA,EACxD,IAAI,CAAC,MAAM,QAAQ,cAAc,GAAG;AAAA,IACnC,OAAO;AAAA,EACR;AAAA,EAEA,OAAO,sBAAsB;AAAA,EAC7B,IAAI,CAAC,MAAM,QAAQ,kBAAkB,GAAG;AAAA,IACvC,OAAO;AAAA,EACR;AAAA,EAEA,OAAO,YAAY;AAAA,EAEnB,OAAO,OAAO,aAAa,YAAY,SAAS,SAAS,IACtD,WACA;AAAA,GAGE,yBAAyB,YAAY;AAAA,EAC1C,QAAQ,qBAAqB,mCAC5B,MAAa;AAAA,EACd,QAAQ,sBAAsB,MAAa;AAAA,EAC3C,MAAM,MAAM,MAAM,kBAAkB;AAAA,IACnC,WAAW,CAAC,+BAA+B,CAAC;AAAA,EAC7C,CAAC;AAAA,EACD,MAAM,sBAAsB,IAAI,SAAS,IAAI,mBAAmB;AAAA,EAEhE,OAAO,EAAE,KAAK,oBAAoB;AAAA,GAG/B,0BAGQ,MAEN,sBAAsB,YAAY;AAAA,EACvC,IAAI,CAAC,yBAAyB;AAAA,IAC7B,0BAA0B,uBAAuB;AAAA,EAClD;AAAA,EAEA,OAAO;AAAA,GAUF,sBAIA,oBAEA,wBAAwB,MAAM;AAAA,EACnC,MAAM,YAAY,gBAAgB;AAAA,EAClC,IAAI,CAAC,WAAW;AAAA,IACf,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,SAAS,mBAAmB,IAAI,SAAS;AAAA,EAC/C,IAAI,QAAQ;AAAA,IACX,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,cAAc,IAAI;AAAA,EACxB,mBAAmB,IAAI,WAAW,WAAW;AAAA,EAE7C,OAAO;AAAA,GAGF,6BAA6B,CAClC,WACA,cACI;AAAA,EACJ,MAAM,gBACL,OAAO,UAAU,SAAS,YAAY,UAAU,KAAK,SAAS,IAC3D,UAAU,OACV;AAAA,EAEJ,OAAO,GAAG,iBAAiB;AAAA,GAGtB,0BAA0B,CAC/B,WACA,UACI;AAAA,EACJ,MAAM,gBACL,OAAO,UAAU,SAAS,YAAY,UAAU,KAAK,SAAS,IAC3D,UAAU,OACV;AAAA,EAEJ,OAAO,GAAG,iBAAiB,KAAK,UAAU,KAAK;AAAA,GAG1C,oCAAoC,OACzC,WACA,UACA,eACI;AAAA,EACJ,QAAQ,WAAW,gBAAgB,WAAW,MAAa;AAAA,EAC3D,QAAQ,sBAAsB,MAAa;AAAA,EAC3C,MAAM,OAAO,MAAM,eAAe;AAAA,EAClC,MAAM,WAAW,yBAAyB,QAAQ;AAAA,EAClD,MAAM,aAAa,IAAI,eACtB,GAAG,kBACJ;AAAA;AAAA,EAEA,MAAM,8BAA8B;AAAA,IACnC,YAAY;AAAA,IACZ,QAAQ,OAAO,UAAU;AAAA,EAC1B;AAAA,EAEA,OAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA,kBAAkB,UAAU;AAAA,MAC3B,SAAS,CAAC,mBAAmB,SAAS;AAAA,MACtC;AAAA,MACA,YAAY;AAAA,MACZ,UACC;AAAA,IACF,CAAC,EAAE,6BAA6B;AAAA,EACjC;AAAA,GAGK,6BAA6B,OAClC,WACA,aACI;AAAA,EACJ,MAAM,aAAa,2BAA2B,WAAW,QAAQ;AAAA,EACjE,MAAM,SAAS,qBAAqB,IAAI,UAAU;AAAA,EAClD,IAAI,QAAQ;AAAA,IACX,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,kBAAkB,kCACvB,WACA,UACA,UACD;AAAA,EAEA,qBAAqB,IAAI,YAAY,eAAe;AAAA,EAEpD,OAAO;AAAA,GAGF,2BAA2B,CAAC,MAAc,aAAqB;AAAA,EACpE,MAAM,UAAU,IAAI;AAAA,EACpB,MAAM,QAAQ,KAAK,QAAQ,OAAO;AAAA,EAClC,IAAI,QAAQ,GAAG;AAAA,IACd,MAAM,IAAI,MAAM,uCAAuC,YAAY;AAAA,EACpE;AAAA,EAEA,MAAM,SAAS,KAAK;AAAA,EACpB,MAAM,MAAM,KAAK,QAAQ,QAAQ,KAAK;AAAA,EACtC,IAAI,MAAM,GAAG;AAAA,IACZ,MAAM,IAAI,MAAM,wCAAwC,YAAY;AAAA,EACrE;AAAA,EAEA,OAAO,KAAK,MAAM,OAAO,MAAM,OAAO,MAAM;AAAA,GAGhC,qBAAqB,OACjC,WACA,SACA,OACA,aACI;AAAA,EACJ,MAAa;AAAA,EACb,QAAQ,iBAAiB,iBAAiB,MAAa;AAAA,EACvD,MAAM,WAAW,yBAAyB,QAAQ;AAAA,EAClD,QAAQ,KAAK,wBAAwB,MAAM,oBAAoB;AAAA,EAE/D,IAAI,cAAc,QAAQ,cAAc,QAAQ;AAAA,EAChD,IAAI,EAAE,uBAAuB,cAAc;AAAA,IAC1C,QAAQ,YAAY,IAAI,cAAc;AAAA,IACtC,cAAc,QAAQ,cAAc,QAAQ;AAAA,EAC7C;AAAA,EACA,IAAI,EAAE,uBAAuB;AAAA,IAAc,OAAO;AAAA,EAElD,MAAM,oBACL,kCAAkC,SAAS,KAC3C,8BAA8B,WAAW;AAAA,EAC1C,IAAI,CAAC;AAAA,IAAmB,OAAO;AAAA,EAE/B,YAAY,YAAY,IAAI,uBAAuB;AAAA,EACnD,MAAM,cAAc,YAAY,cAAc,iBAAiB;AAAA,EAC/D,IAAI,EAAE,uBAAuB;AAAA,IAAc,OAAO;AAAA,EAElD,MAAM,WAAW,OAAO,QAAQ,KAAK,EAAE,IAAI,EAAE,KAAK,WACjD,aAAa,KAAK,MAAM,KAAK,CAC9B;AAAA,EACA,MAAM,eAAe,gBAAgB,WAAW;AAAA,IAC/C;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAC;AAAA,EACD,IAAI,WAAW,aAAa,QAAQ;AAAA,EACpC,aAAa,kBAAkB,cAAc;AAAA,EAC7C,OAAO,gCAAgC,CAAC;AAAA,EACxC,OAAO,4BAA4B,KAAK,GAAG;AAAA,EAE3C,OAAO;AAAA,GAEK,4BAA4B,OAGxC,WACA,OACA,aACI;AAAA,EACJ,MAAM,eAAe,sBAAsB;AAAA,EAC3C,MAAM,iBAAiB,wBAAwB,WAAW,KAAK;AAAA,EAC/D,MAAM,aAAa,cAAc,IAAI,cAAc;AAAA,EACnD,IAAI,YAAY;AAAA,IACf,OAAO;AAAA,EACR;AAAA,EAEA,QAAQ,MAAM,YAAY,UAAU,qBACnC,MAAM,2BAA2B,WAAW,QAAQ;AAAA,EAErD,MAAM,YAGA;AAAA,IACL,KAAK,uBAAuB;AAAA,IAC5B,KAAK,+BAA+B;AAAA,IACpC,EAAE,SAAS,KAAK,eAAe,UAAU,IAAI;AAAA,IAC7C,EAAE,SAAS,YAAY,UAAU,MAAM;AAAA,EACxC;AAAA,EACA,MAAM,YAAW,+BAA+B,cAAc;AAAA,EAC9D,MAAM,OAAO,MAAM,6BAA6B,MAC/C,KAAK,kBACJ,CAAC,YACA,KAAK,qBACJ,kBACA,EAAE,UAAU,GACZ,OACD,GACD;AAAA,IACC;AAAA,IACA,mBAAmB,CAAC;AAAA,IACpB,KAAK;AAAA,EACN,CACD,CACD;AAAA,EACA,MAAM,aAAa,yBAAyB,MAAM,QAAQ;AAAA,EAC1D,cAAc,IAAI,gBAAgB,UAAU;AAAA,EAE5C,OAAO;AAAA;AAAA;AAAA,EA5RR;AAAA,EACA;AAAA,EACA;AAAA,EA+EM,uBAAuB,IAAI;AAAA,EAI3B,qBAAqB,IAAI;AAAA;;;IClFzB,oCAAoC,OACzC,WACA,OACA,aACI;AAAA,EACJ,QAAQ,0DAA8B;AAAA,EAEtC,OAAO,2BAA0B,WAAW,OAAO,QAAQ;AAAA,GAE/C,4BACA,0BAA0B,CACtC,WACA,UAEO,gBAAS,KAAK,GAAG,oBAChB,2BAAoB,KAAK,GAAG,2BAClC,qBAAqB,cAAc,WAAW,KAAK,CAAC,CACrD,CACD,GACY,2BAA2B,CACvC,WACA,UAEO,wBAAiB,KAAK,GAAG,aAAa;AAAA,EAC5C,QAAQ,SAAS,OAAO,WAAW,EAAE,MAAM,CAAC;AAAA,EAE5C,OAAO;AAAA,CACP,GACW,wBAAwB,CACpC,WACA,UAEO,cAAO,KAAK,GAAG,cAAc,GAAG,qBAAqB;AAAA,EAC3D,MAAM,MAAM,aAAa;AAAA,IACxB,QAAQ,MAAM,eAAe,WAAW,KAAK;AAAA,EAC9C,CAAC;AAAA,EAED,OAAc,8BAAuB,KAAK,GAAG,qBAC5C,eAAe,GAAG,CACnB;AAAA,CACA;AAAA;AAAA,EA/BW,6BAA4B;AAAA;;;ACZzC,oBAAS,kBAAS;AAClB,uBAAS,6BAAY;AAAA,IAUf,oBAAoB,CACzB,OACA,eACI;AAAA,EACJ,IAAI,OAAO,UAAU;AAAA,IAAU,OAAO;AAAA,EACtC,IAAI,CAAC,SAAS,OAAO,UAAU;AAAA,IAAU,OAAO;AAAA,EAEhD,WAAW,aAAa,YAAY;AAAA,IACnC,MAAM,SAAS,QAAQ,IAAI,OAAO,SAAS;AAAA,IAC3C,IAAI,OAAO,WAAW,UAAU;AAAA,MAC/B,OAAO;AAAA,IACR;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,GAGK,uBAAuB,CACnC,WACA,aAAiC,CAAC,QAAQ,MACtC;AAAA,EAEJ,IAAI,UAAU,WAAW,GAAG,KAAK,UAAU,WAAW,GAAG;AAAA,IAAG,OAAO;AAAA,EAGnE,MAAM,QAAQ,UAAU,MAAM,GAAG;AAAA,EACjC,MAAM,WAAW,UAAU,WAAW,GAAG;AAAA,EACzC,MAAM,cAAc,WAAW,GAAG,MAAM,MAAM,MAAM,OAAO,MAAM;AAAA,EACjE,MAAM,UAAU,WAAW,MAAM,MAAM,CAAC,EAAE,KAAK,GAAG,IAAI,MAAM,MAAM,CAAC,EAAE,KAAK,GAAG;AAAA,EAC7E,MAAM,YAAY,UAAU,KAAK,YAAY;AAAA,EAE7C,MAAM,yBAAyB,SAAQ,QAAQ,IAAI,GAAG,cAAc;AAAA,EACpE,MAAM,qBAAqB,YAAW,sBAAsB,IACzD,KAAK,MAAM,cAAa,wBAAwB,OAAO,CAAC,IACxD;AAAA,EACH,MAAM,oBACL,oBAAoB,SAAS,cAAc,QAAQ,IAAI,IAAI;AAAA,EAC5D,MAAM,aACL,qBAAqB,SAAQ,QAAQ,IAAI,GAAG,gBAAgB,eAAe,EAAE;AAAA,EAC9E,MAAM,kBAAkB,MAAK,YAAY,cAAc;AAAA,EAEvD,IAAI,CAAC,YAAW,eAAe;AAAA,IAAG,OAAO;AAAA,EAEzC,IAAI;AAAA,IACH,MAAM,cACL,qBAAqB,qBAClB,qBACA,KAAK,MAAM,cAAa,iBAAiB,OAAO,CAAC;AAAA,IACrD,QAAO,YAAW;AAAA,IAElB,IAAI,CAAC;AAAA,MAAS,OAAO;AAAA,IAGrB,MAAM,QAAQ,QAAQ;AAAA,IAEtB,IAAI,CAAC;AAAA,MAAO,OAAO;AAAA,IAEnB,MAAM,aAAa,kBAAkB,OAAO,UAAU;AAAA,IAEtD,IAAI,CAAC;AAAA,MAAY,OAAO;AAAA,IAExB,IAAI,qBAAqB,WAAW,WAAW,SAAS,GAAG;AAAA,MAC1D,MAAM,kBAAkB,SACvB,YACA,WAAW,QAAQ,eAAe,QAAQ,CAC3C;AAAA,MACA,IAAI,YAAW,eAAe,GAAG;AAAA,QAChC,OAAO;AAAA,MACR;AAAA,IACD;AAAA,IAEA,MAAM,WAAW,SAAQ,YAAY,UAAU;AAAA,IAE/C,OAAO,YAAW,QAAQ,IAAI,WAAW;AAAA,IACxC,MAAM;AAAA,IACP,OAAO;AAAA;AAAA;AAAA;;;ICpFH,eAEA,0BAA0B,CAAC,MAAc,eAAuB;AAAA,EACrE,IAAI,QAAQ;AAAA,EACZ,SAAS,QAAQ,WAAY,QAAQ,KAAK,QAAQ,SAAS,GAAG;AAAA,IAC7D,MAAM,OAAO,KAAK;AAAA,IAClB,IAAI,SAAS;AAAA,MAAK,SAAS;AAAA,IAC3B,IAAI,SAAS;AAAA,MAAK,SAAS;AAAA,IAC3B,IAAI,UAAU,GAAG;AAAA,MAChB,OAAO,KAAK,MAAM,aAAa,GAAG,KAAK,EAAE,KAAK;AAAA,IAC/C;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,GAGF,yBAAyB,CAAC,iBAAyB,SAAiB;AAAA,EACzE,MAAM,cAAc,gBAAgB,MACnC,IAAI,OAAO,MAAM,+BAA+B,CACjD;AAAA,EACA,IAAI,cAAc,IAAI;AAAA,IACrB,OAAO,EAAE,YAAY,KAAK,UAAU,YAAY,EAAE,GAAG,OAAO,KAAK;AAAA,EAClE;AAAA,EAEA,MAAM,iBAAiB,gBAAgB,OACtC,IAAI,OAAO,MAAM,kBAAkB,CACpC;AAAA,EACA,IAAI,iBAAiB,GAAG;AAAA,IACvB,OAAO,EAAE,YAAY,IAAI,OAAO,MAAM;AAAA,EACvC;AAAA,EAEA,MAAM,aAAa,gBAAgB,QAAQ,KAAK,cAAc;AAAA,EAC9D,IAAI,aAAa,GAAG;AAAA,IACnB,OAAO,EAAE,YAAY,IAAI,OAAO,MAAM;AAAA,EACvC;AAAA,EAEA,MAAM,aAAa,wBAAwB,iBAAiB,UAAU;AAAA,EACtE,IAAI,eAAe,MAAM;AAAA,IACxB,OAAO,EAAE,YAAY,IAAI,OAAO,MAAM;AAAA,EACvC;AAAA,EAEA,OAAO,EAAE,YAAY,OAAO,KAAK;AAAA,GAGrB,0BAA0B,CACtC,QACA,QAA6B,aACzB;AAAA,EACJ,IAAI,CAAC,OAAO,SAAS,SAAS,GAAG;AAAA,IAChC,OAAO,EAAE,MAAM,QAAQ,aAAa,MAAM;AAAA,EAC3C;AAAA,EAEA,IAAI,cAAc;AAAA,EAClB,MAAM,oBAAoB,OAAO,QAChC,eACA,CAAC,WAAW,oBAA4B;AAAA,IACvC,MAAM,YAAY,uBACjB,iBACA,WACD;AAAA,IACA,MAAM,YAAY,uBACjB,iBACA,WACD;AAAA,IACA,IAAI,CAAC,UAAU,SAAS,CAAC,UAAU,OAAO;AAAA,MACzC,OAAO;AAAA,IACR;AAAA,IAEA,MAAM,UAAU,uBAAuB,iBAAiB,SAAS;AAAA,IACjE,MAAM,QAAQ,uBAAuB,iBAAiB,OAAO;AAAA,IAC7D,MAAM,SAAS,0BAA0B,YAAY,SAAS,aAAa;AAAA,IAC3E,eAAe;AAAA,IAEf,MAAM,oBAAoB,qCAAqC,KAAK,UACnE,MACD,mBAAmB,UAAU,0BAA0B,UAAU,wBAChE,QAAQ,QAAQ,QAAQ,aAAa,KAAK,UAAU,MAAM,aAC/C,MAAM,QAAQ,MAAM,aAAa;AAAA,IAE7C,OAAO,mCAAmC,4CAA4C;AAAA,GAExF;AAAA,EAEA,MAAM,aACL;AAAA,EAED,IAAI,kBAAkB,SAAS,SAAS,GAAG;AAAA,IAC1C,OAAO;AAAA,MACN,MAAM,kBAAkB,QACvB,sBACA,CAAC,UAAU,GAAG;AAAA,EAAU;AAAA,CACzB;AAAA,MACA,aAAa;AAAA,IACd;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,IACN,MAAM;AAAA,EAAuB;AAAA;AAAA,EAA0B;AAAA,IACvD,aAAa;AAAA,EACd;AAAA;AAAA;AAAA,EArGD;AAAA,EAEM,gBAAgB;AAAA;;;ICAhB,gBAGA,wBAAwB,CAAC,UAC9B,MACE,WAAW,MAAM,MAAM,EACvB,WAAW,KAAK,KAAK,EACrB,WAAW,MAAM,MAAM,GAEpB,0BAA0B,CAAC,WAAmB;AAAA,EACnD,MAAM,UAAU,sBAAsB,OAAO,KAAK,CAAC;AAAA,EACnD,MAAM,kBAAkB,QAAQ,QAC/B,iBACA,CAAC,GAAG,eAAe,MAAM,OAAO,UAAU,EAAE,KAAK,IAClD;AAAA,EAEA,OAAO,KAAK;AAAA,GAGA,6BAA6B,CAAC,WAAmB;AAAA,EAC7D,IAAI,CAAC,OAAO,SAAS,SAAS,GAAG;AAAA,IAChC,OAAO,EAAE,MAAM,QAAQ,aAAa,MAAM;AAAA,EAC3C;AAAA,EAEA,IAAI,aAAa;AAAA,EACjB,IAAI,cAAc;AAAA,EAClB,MAAM,UAAU,OAAO,QACtB,gBACA,CACC,WACA,iBACA,eACA,gBACA,YACA,iBACA,gBACI;AAAA,IACJ,MAAM,yBAAyB,gBAAgB,KAAK;AAAA,IACpD,IAAI,CAAC,wBAAwB;AAAA,MAC5B,OAAO;AAAA,IACR;AAAA,IAEA,MAAM,SAAS,yBAAyB,WAAW,SAAS,aAAa;AAAA,IACzE,cAAc;AAAA,IACd,cAAc;AAAA,IAEd,MAAM,sBACL,gBAAgB,KAAK,KAAK;AAAA,IAC3B,MAAM,uBACL,iBAAiB,KAAK,KAAK;AAAA,IAC5B,MAAM,eAAe,wBAAwB,aAAa;AAAA,IAC1D,MAAM,eAAe,wBAAwB,UAAU;AAAA,IACvD,MAAM,eACL,OAAO,gBAAgB,WACpB,wBAAwB,WAAW,IACnC;AAAA,IACJ,MAAM,cAAc,eACjB,UAAU,kCAAkC,oBAC5C;AAAA,IAEH,OAAO,0BAA0B,yBAAyB,oDAAoD,gCAAgC,mCAAmC,mBAAmB;AAAA,GAEtM;AAAA,EAEA,IAAI,CAAC,aAAa;AAAA,IACjB,OAAO,EAAE,MAAM,QAAQ,aAAa,MAAM;AAAA,EAC3C;AAAA,EAEA,MAAM,aACL;AAAA,EAED,IAAI,QAAQ,SAAS,SAAS,GAAG;AAAA,IAChC,OAAO;AAAA,MACN,MAAM,QAAQ,QACb,sBACA,CAAC,UAAU,GAAG;AAAA,EAAU;AAAA,CACzB;AAAA,MACA,aAAa;AAAA,IACd;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,IACN,MAAM;AAAA,EAAuB;AAAA;AAAA,EAA0B;AAAA,IACvD,aAAa;AAAA,EACd;AAAA;AAAA;AAAA,EAtFD;AAAA,EAEM,iBACL;AAAA;;;;;;;;;;;;;;;;;;;;;;ACHD;AACA,uBAAS,6BAAY;AACrB;AACA;AACA;AAAA,aACC;AAAA,aACA;AAAA;AAAA,UAEA;AAAA,cACA;AAAA,aACA;AAAA;AAED;AAAA,IAUM,uBACA,yBACA,gCACA,wBACA,oBAIA,qBAIA,gBAEO,4BAA4B,CAAC,aACzC,wBAAwB,KAAK,QAAQ,GAEzB,oBAAoB,CAAC,aACjC,+BAA+B,KAAK,QAAQ,GAEhC,cAAc,CAAC,aAC3B,qCAAqC,KAAK,QAAQ,GAEtC,mBAAmB,CAAC,aAChC,SAAS,QAAQ,sCAAsC,EAAE,GAEpD,mBAAmB,CAAC,uBAA+B;AAAA,EACxD,MAAM,aAAa,mBAAmB,YAAY;AAAA,EAClD,IAAI,eAAe,UAAU,WAAW,SAAS,OAAO;AAAA,IAAG,OAAO;AAAA,EAClE,IAAI,eAAe,UAAU,WAAW,SAAS,OAAO;AAAA,IAAG,OAAO;AAAA,EAClE,IAAI,eAAe,UAAU,WAAW,SAAS,OAAO;AAAA,IAAG,OAAO;AAAA,EAClE,IACC,eAAe,UACf,eAAe,YACf,WAAW,SAAS,OAAO,KAC3B,WAAW,SAAS,SAAS;AAAA,IAE7B,OAAO;AAAA,EAER,OAAO;AAAA,GAGF,yBAAyB,CAAC,MAAc,aAC7C,IAAI,MACH,qBAAqB,0CAA0C,4CAChE,GAOK,yBAAyB,CAC9B,OACA,UACA,aACW;AAAA,EACX,IAAI,EAAE,iBAAiB,QAAQ;AAAA,IAC9B,MAAM,IAAI,MACT,GAAG,8BAA8B,aAAa,OAAO,KAAK,GAC3D;AAAA,EACD;AAAA,EAEA,MAAM,SAAS;AAAA,EAOf,MAAM,WAAW,OAAO,MAAM,OAAO;AAAA,EACrC,MAAM,UAAU,OAAO,MAAM,OAAO;AAAA,EACpC,MAAM,OAAO,OAAO,QAAQ;AAAA,EAC5B,MAAM,SAAS,OAAO,UAAU;AAAA,EAChC,MAAM,WACL,OAAO,SAAS,WACb,IAAI,OAAO,OAAO,WAAW,WAAW,IAAI,WAAW,OACvD;AAAA,EACJ,MAAM,UAAU,OAAO,aAAa,OAAO;AAAA,EAC3C,MAAM,UAAU,IAAI,MACnB,GAAG,8BAA8B,WAAW;AAAA,EAAa,SAC1D;AAAA,EACA,QAAQ,QAAQ;AAAA,EAChB,MAAM;AAAA,GAGD,0BAA0B,CAAI,cAAsB;AAAA,EACzD,IAAI;AAAA,IACH,OAAO,eAAe,SAAS;AAAA,IAC9B,MAAM;AAAA,IACP,OAAO,oBAAuB,SAAS;AAAA;AAAA,GAInC,qBAAqB,CAAC,UAAkB,QAAkB,CAAC,MAAM;AAAA,EACtE,SAAQ,QAAQ;AAAA,EAChB,QAAQ,IAAI;AAAA,EACZ,GAAG,MAAM,IAAI,CAAC,SAAS,SAAQ,QAAQ,IAAI,GAAG,IAAI,CAAC;AACpD,GASI,oBAIE,oBAAoB,CAAC,WAC1B,OAAO,QAAQ,qBAAqB,EAAE,EAAE,QAAQ,qBAAqB,IAAI,GAEpE,wBAAwB,CAC7B,YAEA,OAAO,QAAQ,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,YAAY;AAAA,EACxD;AAAA,EACA,cAAc,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;AACpD,EAAE,GAEG,sBAAsB,MAAM;AAAA,EACjC,MAAM,MAAM,QAAQ,IAAI;AAAA,EACxB,IAAI,oBAAoB,QAAQ;AAAA,IAAK,OAAO;AAAA,EAE5C,MAAM,eAAe,SAAQ,KAAK,eAAe;AAAA,EACjD,MAAM,QAAQ,EAAE,SAAS,CAAC,GAAG,SAAS,KAAK,IAAI;AAAA,EAC/C,IAAI,CAAC,YAAW,YAAY,GAAG;AAAA,IAC9B,qBAAqB;AAAA,IACrB,OAAO;AAAA,EACR;AAAA,EAEA,IAAI;AAAA,IACH,MAAM,SAAS,KAAK,MACnB,kBAAkB,cAAa,cAAc,OAAO,CAAC,CACtD;AAAA,IACA,MAAM,kBAAkB,OAAO,mBAAmB,CAAC;AAAA,IACnD,MAAM,UAAU,SAAQ,KAAK,gBAAgB,WAAW,GAAG;AAAA,IAC3D,qBAAqB;AAAA,MACpB,SAAS,sBAAsB,gBAAgB,KAAK;AAAA,MACpD;AAAA,MACA;AAAA,IACD;AAAA,IACC,MAAM;AAAA,IACP,qBAAqB;AAAA;AAAA,EAGtB,OAAO;AAAA,GAGF,kBAAkB,CAAC,WAAgD;AAAA,EACxE,MAAM,WAAW,oBAAoB;AAAA,EACrC,OAAO;AAAA,IACN,SAAS;AAAA,MACR,GAAG,sBAAsB,QAAQ,OAAO;AAAA,MACxC,GAAG,SAAS;AAAA,IACb;AAAA,IACA,SAAS,SAAS;AAAA,EACnB;AAAA,GAGK,uBAAuB,CAAC,YAC7B,IAAI,OACH,IAAI,QACF,MAAM,GAAG,EACT,IAAI,CAAC,SAAS,KAAK,QAAQ,uBAAuB,MAAM,CAAC,EACzD,KAAK,MAAM,IACd,GAEK,sBAAsB,CAC3B,WACA,WACI;AAAA,EACJ,QAAQ,SAAS,YAAY,gBAAgB,MAAM;AAAA,EACnD,MAAM,UAAoB,CAAC;AAAA,EAE3B,WAAW,SAAS,SAAS;AAAA,IAC5B,MAAM,QAAQ,UAAU,MAAM,qBAAqB,MAAM,OAAO,CAAC;AAAA,IACjE,IAAI,CAAC;AAAA,MAAO;AAAA,IACZ,MAAM,WAAW,MAAM,MAAM;AAAA,IAC7B,WAAW,eAAe,MAAM,cAAc;AAAA,MAC7C,QAAQ,KAAK,SAAQ,SAAS,YAAY,QAAQ,KAAK,QAAQ,CAAC,CAAC;AAAA,IAClE;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,GAGF,wBAAwB,CAAC,aAA4B;AAAA,EAC1D,IAAI,aAAa;AAAA,IAAQ,OAAO,CAAC,SAAS,MAAM;AAAA,EAChD,IAAI,aAAa;AAAA,IAAU,OAAO,CAAC,SAAS,WAAW,MAAM;AAAA,EAC7D,OAAO,CAAC,SAAS,SAAS,MAAM;AAAA,GAG3B,oBAAoB,CAAC,UAAkB,aAA4B;AAAA,EACxE,MAAM,MAAM,SAAQ,QAAQ;AAAA,EAC5B,MAAM,QAAQ,MACX,CAAC,QAAQ,IACT,sBAAsB,QAAQ,EAAE,QAAQ,CAAC,cAAc;AAAA,IACvD,GAAG,WAAW;AAAA,IACd,MAAK,UAAU,QAAQ,WAAW;AAAA,EACnC,CAAC;AAAA,EAEH,IAAI,aAAa,UAAU,aAAa,QAAQ;AAAA,IAC/C,OAAO,MAAM,QAAQ,CAAC,SAAS;AAAA,MAC9B,MAAM,MAAM,SAAQ,IAAI;AAAA,MACxB,MAAM,OAAO,KAAK,MAAM,IAAI,SAAS,CAAC;AAAA,MACtC,OAAO,CAAC,MAAM,MAAK,KAAK,IAAI,MAAM,CAAC;AAAA,KACnC;AAAA,EACF;AAAA,EAEA,OAAO;AAAA,GAGF,oBAAoB,CACzB,WACA,eACA,WACA,UACA,WACI;AAAA,EACJ,MAAM,gBAAgB;AAAA,IACrB,GAAG,oBAAoB,WAAW,MAAM;AAAA,IACxC,WAAW,SAAS,IAAI,YAAY,SAAQ,eAAe,SAAS;AAAA,IACpE,GAAG,UAAU,IAAI,CAAC,SAAS,SAAQ,MAAM,SAAS,CAAC;AAAA,EACpD;AAAA,EAEA,WAAW,aAAa,cAAc,QAAQ,CAAC,SAC9C,kBAAkB,MAAM,QAAQ,CACjC,GAAG;AAAA,IACF,IAAI,YAAW,SAAS;AAAA,MAAG,OAAO;AAAA,EACnC;AAAA,EAEA,OAAO;AAAA,GAGF,mBAAmB,CAAC,QACzB,qCAAqC,KAAK,GAAG,GAExC,cAAc,CAAC,QAAgB;AAAA,EACpC,MAAM,cAAc,IAAI,OAAO,MAAM;AAAA,EACrC,IAAI,gBAAgB;AAAA,IAAI,OAAO,EAAE,QAAQ,IAAI,MAAM,IAAI;AAAA,EACvD,OAAO;AAAA,IACN,QAAQ,IAAI,MAAM,WAAW;AAAA,IAC7B,MAAM,IAAI,MAAM,GAAG,WAAW;AAAA,EAC/B;AAAA,GAGK,gBAAgB,CACrB,UACA,YACA,cACI;AAAA,EACJ,MAAM,YAAY,SAAQ,UAAU;AAAA,EACpC,MAAM,WAAW,SAAQ,SAAS;AAAA,EAClC,IAAI,cAAc;AAAA,IAAU,OAAO;AAAA,EAEnC,OAAO,SAAS,QACf,qCACA,CAAC,OAAO,OAAe,WAAmB;AAAA,IACzC,MAAM,aAAa,OAAO,KAAK;AAAA,IAC/B,IAAI,CAAC,cAAc,iBAAiB,UAAU;AAAA,MAAG,OAAO;AAAA,IACxD,QAAQ,QAAQ,SAAS,YAAY,UAAU;AAAA,IAC/C,MAAM,UAAU,UACf,UACA,SAAQ,WAAW,IAAI,CACxB,EAAE,QAAQ,OAAO,GAAG;AAAA,IACpB,MAAM,aAAa,QAAQ,WAAW,GAAG,IACtC,UACA,KAAK;AAAA,IACR,MAAM,YAAY,SAAS;AAAA,IAC3B,OAAO,OAAO,YAAY,aAAa,SAAS;AAAA,GAElD;AAAA,GAGK,6BAA6B,CAClC,UACA,YACA,WACA,UACA,WAEA,SAAS,QACR,yDACA,CAAC,OAAO,QAAgB,OAAe,cAAsB;AAAA,EAC5D,IACC,UAAU,WAAW,GAAG,KACxB,WAAW,SAAS,KACpB,iBAAiB,SAAS;AAAA,IAE1B,OAAO;AAAA,EAER,MAAM,WAAW,kBAChB,WACA,SAAQ,UAAU,GAClB,WACA,UACA,MACD;AAAA,EACA,OAAO,WAAW,GAAG,SAAS,QAAQ,WAAW,UAAU;AAAA,CAE7D,GAEK,wBAAwB,CAC7B,UACA,YACA,WACA,YAAsB,CAAC,GACvB,UACA,WACI;AAAA,EACJ,MAAM,UAAU,cAAc,UAAU,YAAY,SAAS;AAAA,EAC7D,OAAO,WACJ,2BACA,SACA,YACA,WACA,UACA,MACD,IACC;AAAA,GAGE,0BAA0B,CAAC,QAAgB;AAAA,EAChD,MAAM,UAAkC,CAAC;AAAA,EACzC,MAAM,UAAU,IAAI,QAAQ,0BAA0B,CAAC,GAAG,SAAiB;AAAA,IAC1E,WAAW,eAAe,KAAK,MAAM,GAAG,GAAG;AAAA,MAC1C,MAAM,YAAY,YAAY,QAAQ,GAAG;AAAA,MACzC,IAAI,cAAc;AAAA,QAAI;AAAA,MACtB,MAAM,MAAM,YAAY,MAAM,GAAG,SAAS,EAAE,KAAK;AAAA,MACjD,MAAM,QAAQ,YAAY,MAAM,YAAY,CAAC,EAAE,KAAK;AAAA,MACpD,IAAI,OAAO;AAAA,QAAO,QAAQ,OAAO;AAAA,IAClC;AAAA,IACA,OAAO;AAAA,GACP;AAAA,EAED,OAAO,EAAE,KAAK,SAAS,QAAQ;AAAA,GAG1B,iBAAiB,CACtB,QACA,cAC8B;AAAA,KAC1B,QAAQ,QAAQ,CAAC;AAAA,KACjB,aAAa,SAAU,QAAQ,QAAQ,CAAC,IAAK,CAAC;AACnD,IAEM,iBAAiB,CACtB,WAC6B,QAAQ,QAAQ,CAAC,GAEzC,mBAAmB,CACxB,WAC+B,QAAQ,UAAU,CAAC,GAEtC,6BAA6B,CACzC,oBACA,YAEA,YAAY,YACT,qBACA,KAAM,sBAAsB,CAAC,GAAI,QAAQ,GAEvC,qBAAqB,CAC1B,UACA,mBACK,iBAAiB,GAAG;AAAA,EAAmB,aAAa,UAOpD,yBAAyB,CAAC,QAAiB;AAAA,EAChD,IAAI,OAAO,OAAO,QAAQ,YAAY,aAAa,KAAK;AAAA,IACvD,OAAQ,IAA8B,WAAW;AAAA,EAClD;AAAA,EAEA,OAAO;AAAA,GAGF,wBAAwB,OAC7B,eACmC;AAAA,EACnC,MAAM,WAAW,SAAQ,QAAQ,IAAI,GAAG,UAAU;AAAA,EAClD,MAAM,SACL,SAAS,SAAS,MAAM,KAAK,SAAS,SAAS,MAAM,IAClD,wBAAiC,QAAQ,IACzC,MAAM,mBACN,GAAG,IAAI,IAAI,UAAU,UAAU,EAAE,UAAU,KAAK,IAAI,GACrD;AAAA,EACH,MAAM,SAAS,uBAAuB,MAAM;AAAA,EAC5C,MAAM,QACL,OAAO,WAAW,aACf,MACA,OAIC;AAAA,IACD,KAAK,QAAQ,IAAI;AAAA,IACjB,KAAK;AAAA,EACN,CAAC,IACA;AAAA,EAEJ,OAAQ,uBAAuB,KAAK,KAAK,CAAC;AAAA,GAGrC,0BAA0B,CAC/B,YACI;AAAA,EACJ,IAAI,CAAC;AAAA,IAAS,OAAO,CAAC;AAAA,EACtB,IAAI,MAAM,QAAQ,OAAO;AAAA,IAAG,OAAO,QAAQ,OAAO,OAAO;AAAA,EAEzD,MAAM,WAAsB,CAAC;AAAA,EAC7B,YAAY,WAAW,YAAY,OAAO,QAAQ,OAAO,GAAG;AAAA,IAC3D,IAAI,YAAY;AAAA,MAAO;AAAA,IACvB,MAAM,MAAM,uBACX,wBAAiC,SAAS,CAC3C;AAAA,IACA,MAAM,SACL,OAAO,QAAQ,aACX,IACD,YAAY,OAAO,YAAY,OAChC,IACC;AAAA,IACJ,IAAI;AAAA,MAAQ,SAAS,KAAK,MAAM;AAAA,EACjC;AAAA,EAEA,OAAO;AAAA,GAGF,uBAAuB,OAC5B,WACI;AAAA,EACJ,MAAM,eAAe,QAAQ;AAAA,EAC7B,IAAI,CAAC;AAAA,IAAc,OAAO;AAAA,EAE1B,MAAM,aAAa,aAAa,SAC7B,MAAM,sBAAsB,aAAa,MAAM,IAC/C,CAAC;AAAA,EACJ,MAAM,UAAU;AAAA,IACf,GAAG,wBAAwB,WAAW,OAAO;AAAA,IAC7C,GAAG,wBAAwB,aAAa,OAAO;AAAA,EAChD;AAAA,EAEA,IAAI,QAAQ,WAAW;AAAA,IAAG,OAAO;AAAA,EAEjC,OAAO;AAAA,IACN,SAAS;AAAA,SACJ,WAAW,WAAW,CAAC;AAAA,SACvB,aAAa,WAAW,CAAC;AAAA,IAC9B;AAAA,IACA;AAAA,EACD;AAAA,GAGK,aAAa,OAClB,KACA,UACA,WACI;AAAA,EACJ,MAAM,gBAAgB,MAAM,qBAAqB,MAAM;AAAA,EACvD,IAAI,CAAC;AAAA,IAAe,OAAO;AAAA,EAE3B,IAAI;AAAA,EAGJ,IAAI;AAAA,IACH,gBACC,MAAM,mBAAyC,SAAS;AAAA,IACxD,MAAM;AAAA,IACP,MAAM,uBAAuB,WAAW,QAAQ;AAAA;AAAA,EAEjD,MAAM,UAAU,cAAc,WAAW;AAAA,EACzC,MAAM,SAAS,MAAM,QACpB,cAAc,OACf,EAAE,QAAQ,KAAK;AAAA,IACd,MAAM;AAAA,IACN,KAAK;AAAA,OACF,cAAc;AAAA,EAClB,CAAC;AAAA,EAED,OAAO,OAAO;AAAA,GAGT,qBAAqB,CAC1B,WACA,WACA,UACA,QACA,UACK;AAAA,EACL,YAAY,CAAC,WAAmB,SAAyC;AAAA,IACxE,MAAM,gBAAgB,QAAQ,gBAC3B,SAAQ,cAAc,QAAQ,aAAa,CAAC,IAC5C,SAAQ,SAAS;AAAA,IACpB,MAAM,WAAW,kBAChB,WACA,eACA,WACA,UACA,MACD;AAAA,IACA,OAAO,WAAW,IAAI,IAAI,UAAU,UAAU,IAAI;AAAA;AAAA,EAEnD,IAAI,CAAC,cAAmB;AAAA,IACvB,MAAM,WAAW,cAAc,YAAY;AAAA,IAC3C,MAAM,IAAI,QAAQ;AAAA,IAClB,MAAM,eAAe,iBAAiB,QAAQ;AAAA,IAC9C,IACC,iBAAiB,UACjB,iBAAiB,UACjB,iBAAiB;AAAA,MAEjB,OAAO;AAAA,IAER,OAAO;AAAA,MACN,UAAU,sBACT,cAAa,UAAU,OAAO,GAC9B,UACA,WACA,WACA,UACA,MACD;AAAA,MACA,QAAQ,SAAS,SAAS,OAAO,IAC7B,aACA;AAAA,IACL;AAAA;AAEF,IAEM,wBAAwB,CAC7B,WACA,WACA,QACA,UACK;AAAA,EACL,OAAO,CACN,MACA,eACC;AAAA,IACD,MAAM,cAAc,IAAI,KAAK;AAAA,IAC7B,MAAM,UAAU,OAAO,OAAO,WAAW;AAAA,IACzC,QAAQ,WAAW,CAAC,UAAkB,qBACrC,QACC,kBACC,UACA,SAAQ,gBAAgB,GACxB,WACA,QACA,MACD,CACD;AAAA,IACD,QAAQ,WAAW,OAClB,UACA,qBACI;AAAA,MACJ,MAAM,WAAW,kBAChB,UACA,SAAQ,gBAAgB,GACxB,WACA,QACA,MACD;AAAA,MACA,IAAI,CAAC,UAAU;AAAA,QACd,MAAM,IAAI,MAAM,kCAAkC,WAAW;AAAA,MAC9D;AAAA,MACA,MAAM,IAAI,QAAQ;AAAA,MAElB,OAAO;AAAA,QACN,UAAU,sBACT,MAAM,SAAS,UAAU,OAAO,GAChC,UACA,WACA,WACA,QACA,MACD;AAAA,QACA,UAAU;AAAA,MACX;AAAA;AAAA,IAED,cAAc,eAAe,OAAO;AAAA;AAEtC,IAEM,eAAe,OACpB,UACA,UACA,WACA,SACA,SACI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,IACH,MAAM,eAAe,MAAM,mBAEzB,QAAQ;AAAA,IACV,SAAS,aAAa,WAAW;AAAA,IAChC,MAAM;AAAA,IACP,MAAM,uBAAuB,UAAU,QAAQ;AAAA;AAAA,EAGhD,OAAO,IAAI,QAAgB,CAAC,YAAY,WAAW;AAAA,IAClD,MAAM,WAAW,OAAO,QAAQ;AAAA,IAChC,SAAS,IAAI,YAAY,QAAQ;AAAA,IACjC,YAAY,KAAK,UAAU,OAAO,QAAQ,QAAQ,WAAW,CAAC,CAAC,GAAG;AAAA,MACjE,SAAS,IAAI,KAAK,KAAK;AAAA,IACxB;AAAA,IACA,WAAW,QAAQ;AAAA,MAAW,SAAS,QAAQ,IAAI;AAAA,IACnD,SAAS,OAAO,CAAC,OAAO,QAAQ;AAAA,MAC/B,IAAI,OAAO;AAAA,QACV,OAAO,KAAK;AAAA,QAEZ;AAAA,MACD;AAAA,MAEA,IAAI,MAAM;AAAA,QACT,MAAM,aACL,SACC,OAAO;AAAA,QACT,IAAI,MAAM,QAAQ,UAAU,GAAG;AAAA,UAC9B,WAAW,OAAO;AAAA,YAAY,KAAK,IAAI,SAAQ,GAAG,CAAC;AAAA,QACpD;AAAA,MACD;AAAA,MACA,WAAW,OAAO,EAAE;AAAA,KACpB;AAAA,GACD;AAAA,GAaI,sBACA,mBAEA,kBAAkB,CAAC,OAAe,SAAsB;AAAA,EAC7D,MAAM,MAAM,SAAQ,KAAK;AAAA,EACzB,MAAM,WAAW,IAAI;AAAA,EACrB,WAAW,OAAO,MAAM;AAAA,IACvB,MAAM,WAAW,SAAQ,GAAG;AAAA,IAC5B,IAAI,aAAa;AAAA,MAAK,SAAS,IAAI,QAAQ;AAAA,EAC5C;AAAA,EACA,qBAAqB,IAAI,KAAK,QAAQ;AAAA,GAW1B,mBAAmB,CAAC,cAAsB,cAAsB;AAAA,EAC5E,MAAM,MAAM,SAAQ,YAAY;AAAA,EAChC,MAAM,SAAS,SAAQ,SAAS;AAAA,EAChC,MAAM,OAAO,qBAAqB,IAAI,GAAG,KAAK,IAAI;AAAA,EAClD,KAAK,IAAI,MAAM;AAAA,EACf,qBAAqB,IAAI,KAAK,IAAI;AAAA,GAMtB,4BAA4B,CAAC,gBAAwB;AAAA,EACjE,MAAM,SAAS,SAAQ,WAAW;AAAA,EAClC,MAAM,YAAsB,CAAC;AAAA,EAC7B,YAAY,OAAO,SAAS,sBAAsB;AAAA,IACjD,IAAI,KAAK,IAAI,MAAM;AAAA,MAAG,UAAU,KAAK,KAAK;AAAA,EAC3C;AAAA,EAEA,OAAO;AAAA,GAMK,oBAAoB,CAAC,OAAe,QAAgB;AAAA,EAChE,MAAM,MAAM,SAAQ,KAAK;AAAA,EACzB,MAAM,OAAO,WAAW,MAAM,EAAE,OAAO,GAAG,EAAE,OAAO,KAAK;AAAA,EACxD,MAAM,WAAW,kBAAkB,IAAI,GAAG;AAAA,EAC1C,kBAAkB,IAAI,KAAK,IAAI;AAAA,EAE/B,OAAO,aAAa;AAAA,GAKR,mBAAmB,CAAC,UAAkB;AAAA,EAClD,MAAM,MAAM,SAAQ,KAAK;AAAA,EACzB,qBAAqB,OAAO,GAAG;AAAA,EAC/B,kBAAkB,OAAO,GAAG;AAAA,GAGhB,qBAAqB,OACjC,UACA,QACA,cACA,WACI;AAAA,EACJ,MAAM,WAAW,iBAAiB,gBAAgB,QAAQ;AAAA,EAC1D,MAAM,cAAc,UAAW,MAAM,SAAS,UAAU,OAAO;AAAA,EAI/D,MAAM,OAAO,IAAI;AAAA,EAEjB,IAAI,aAAa,UAAU,aAAa,QAAQ;AAAA,IAC/C,MAAM,UAAU,eAAe,QAAQ,QAAQ;AAAA,IAC/C,MAAM,cAAc,QAAQ,kBAAkB;AAAA,IAC9C,IAAI;AAAA,IACJ,IAAI;AAAA,MACH,OAAO,MAAM,mBAA0C,WAAW;AAAA,MACjE,MAAM;AAAA,MACP,MAAM,uBAAuB,aAAa,QAAQ;AAAA;AAAA,IAGnD,MAAM,WAAW,mBAChB,aACA,QAAQ,cACT;AAAA,IACA,MAAM,YAAY,mBAAmB,UAAU,QAAQ,SAAS;AAAA,IAChE,IAAI;AAAA,MACH,MAAM,SAAS,KAAK,cAAc,UAAU;AAAA,QAC3C,WAAW;AAAA,UACV,mBACC,UACA,WACA,UACA,QACA,IACD;AAAA,QACD;AAAA,QACA;AAAA,QACA,OAAO;AAAA,QACP,QAAQ,aAAa,SAAS,aAAa;AAAA,QAC3C,KAAK,IAAI,IAAI,UAAU,UAAU;AAAA,MAClC,CAAC;AAAA,MAED,MAAM,MAAM,MAAM,WAAW,OAAO,KAAK,UAAU,MAAM;AAAA,MACzD,gBAAgB,UAAU,IAAI;AAAA,MAE9B,OAAO;AAAA,MACN,OAAO,OAAO;AAAA,MACf,uBAAuB,OAAO,UAAU,QAAQ;AAAA;AAAA,EAElD;AAAA,EAEA,IAAI,aAAa,QAAQ;AAAA,IACxB,MAAM,UAAU,eAAe,MAAM;AAAA,IAErC,IAAI;AAAA,IAIJ,IAAI;AAAA,MACH,aAAa,MAAM,mBAAsC,MAAM;AAAA,MAC9D,MAAM;AAAA,MACP,MAAM,uBAAuB,QAAQ,QAAQ;AAAA;AAAA,IAE9C,MAAM,OAAO,WAAW,SAAS,aAAa,WAAW;AAAA,IACzD,MAAM,SAAS,MAAM;AAAA,IACrB,IAAI,CAAC;AAAA,MAAQ,MAAM,uBAAuB,QAAQ,QAAQ;AAAA,IAE1D,MAAM,WAAW,mBAChB,aACA,QAAQ,cACT;AAAA,IACA,MAAM,YAAY,mBAAmB,UAAU,QAAQ,KAAK;AAAA,IAC5D,IAAI;AAAA,MACH,MAAM,SAAS,MAAM,OAAO,UAAU;AAAA,WACjC,QAAQ,WAAW,CAAC;AAAA,QACxB,UAAU;AAAA,QACV,OAAO;AAAA,QACP,SAAS;AAAA,UACR,GAAK,QAAQ,SAAS,WAAyB,CAAC;AAAA,UAChD,sBAAsB,UAAU,WAAW,QAAQ,IAAI;AAAA,QACxD;AAAA,MACD,CAAC;AAAA,MAED,MAAM,MAAM,MAAM,WAAW,OAAO,KAAK,UAAU,MAAM;AAAA,MACzD,gBAAgB,UAAU,IAAI;AAAA,MAE9B,OAAO;AAAA,MACN,OAAO,OAAO;AAAA,MACf,uBAAuB,OAAO,UAAU,MAAM;AAAA;AAAA,EAEhD;AAAA,EAEA,IAAI,aAAa,UAAU;AAAA,IAC1B,MAAM,UAAU,iBAAiB,MAAM;AAAA,IACvC,MAAM,YAAY,mBAAmB,UAAU,QAAQ,KAAK;AAAA,IAC5D,MAAM,WAAW,mBAChB,sBACC,aACA,UACA,UACA,WACA,UACA,MACD,GACA,QAAQ,cACT;AAAA,IAEA,IAAI;AAAA,MACH,MAAM,MAAM,MAAM,WACjB,MAAM,aACL,UACA,UACA,WACA,SACA,IACD,GACA,UACA,MACD;AAAA,MACA,gBAAgB,UAAU,IAAI;AAAA,MAE9B,OAAO;AAAA,MACN,OAAO,OAAO;AAAA,MACf,uBAAuB,OAAO,UAAU,QAAQ;AAAA;AAAA,EAElD;AAAA,EAEA,OAAO,WAAW,aAAa,UAAU,MAAM;AAAA,GAGnC,gCAAgC,CAC5C,YACgB;AAAA,EAChB,MAAM;AAAA,EACN,KAAK,CAAC,OAAO;AAAA,IACZ,MAAM,mBAAmB,IAAI;AAAA,IAK7B,MAAM,UAAU,EAAE,QAAQ,0BAA0B,GAAG,GAAG,YAAY;AAAA,MACrE,WAAW;AAAA,MACX,MAAM,KAAK,MAAM,yBAAyB,MAAM;AAAA,IACjD,EAAE;AAAA,IAEF,MAAM,OACL,EAAE,QAAQ,mBAAmB,WAAW,wBAAwB,GAChE,SAAS,WAAW;AAAA,MACnB,MAAM,SAAS,iBAAiB,IAAI,IAAI;AAAA,MACxC,IAAI,CAAC,QAAQ;AAAA,QACZ,MAAM,IAAI,MACT,2CAA2C,MAC5C;AAAA,MACD;AAAA,MAEA,OAAO;AAAA,QACN,UAAU,OAAO;AAAA,QACjB,QAAQ;AAAA,MACT;AAAA,KAEF;AAAA,IAEA,MAAM,OAAO,EAAE,QAAQ,wBAAwB,GAAG,SAAS,WAAW;AAAA,MACrE,IAAI,kBAAkB,IAAI,GAAG;AAAA,QAC5B,MAAM,gBAAgB,KAAK,QAC1B,yBACA,MACD;AAAA,QACA,MAAM,WAAW,MAAM,mBACtB,MACA,WACA,WACA,MACD;AAAA,QACA,QAAQ,KAAK,YAAY,wBAAwB,QAAQ;AAAA,QACzD,iBAAiB,IAAI,eAAe,EAAE,KAAK,QAAQ,CAAC;AAAA,QACpD,MAAM,eACL,OAAO,KAAK,OAAO,EAAE,SAAS,IAC3B,sBAAsB,KAAK,UAAU,yBAAyB,eAAe,+CAA+C,KAAK,UAAU,OAAO,QAClJ,2BAA2B,KAAK,UAAU,yBAAyB,eAAe;AAAA,QAEtF,OAAO;AAAA,UACN,UAAU;AAAA,UACV,QAAQ;AAAA,QACT;AAAA,MACD;AAAA,MAEA,OAAO;AAAA,QACN,UAAU,MAAM,mBACf,MACA,WACA,WACA,MACD;AAAA,QACA,QAAQ;AAAA,MACT;AAAA,KACA;AAAA,IAED,MAAM,OAAO,EAAE,QAAQ,sBAAsB,GAAG,SAAS,YAAY;AAAA,MACpE,UAAU,MAAM,mBACf,MACA,WACA,WACA,MACD;AAAA,MACA,QAAQ;AAAA,IACT,EAAE;AAAA;AAEJ,IAEa,yBAEA,gCAAgC,CAC5C,YACK;AAAA,EACL,OAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,QAKK;AAAA,IACL,MAAM,WACL,OAAO,WAAW,SAAS,WACxB,WAAW,OACX,OAAO,WAAW,SAAS,WAC1B,WAAW,KAAK,QAAQ,WAAW,EAAE,IACrC;AAAA,IACL,IAAI,CAAC,YAAY,CAAC,uBAAuB,KAAK,QAAQ;AAAA,MAAG;AAAA,IAEzD,MAAM,OAAO,YAAY,SAAS;AAAA,IAElC,OAAO;AAAA,MACN,MAAM,MAAM,mBAAmB,MAAM,SAAS,UAAU,MAAM;AAAA,IAC/D;AAAA;AAEF,IAEa,2BAA2B,OACvC,UACA,WACI;AAAA,EACJ,IAAI,CAAC,0BAA0B,QAAQ,GAAG;AAAA,IACzC,OAAO,WAAW,MAAM,SAAS,UAAU,OAAO,GAAG,UAAU,MAAM;AAAA,EACtE;AAAA,EAEA,OAAO,mBAAmB,UAAU,WAAW,WAAW,MAAM;AAAA,GAGpD,+BAA+B,CAC3C,UACA,WACI;AAAA,EACJ,MAAM,cAAc,cAAa,UAAU,OAAO;AAAA,EAClD,MAAM,WAAW,iBAAiB,QAAQ;AAAA,EAC1C,IAAI,QAAQ,SAAS;AAAA,IACpB,MAAM,IAAI,MACT,qBAAqB,gDACtB;AAAA,EACD;AAAA,EACA,IAAI,aAAa,UAAU,aAAa,QAAQ;AAAA,IAC/C,MAAM,UAAU,eAAe,QAAQ,QAAQ;AAAA,IAC/C,MAAM,cAAc,QAAQ,kBAAkB;AAAA,IAC9C,IAAI;AAAA,IACJ,IAAI;AAAA,MACH,OAAO,wBAA+C,WAAW;AAAA,MAChE,MAAM;AAAA,MACP,MAAM,uBAAuB,aAAa,QAAQ;AAAA;AAAA,IAGnD,MAAM,WAAW,mBAChB,aACA,QAAQ,cACT;AAAA,IACA,MAAM,YAAY,mBAAmB,UAAU,QAAQ,SAAS;AAAA,IAChE,OAAO,KAAK,cAAc,UAAU;AAAA,MACnC,WAAW;AAAA,QACV,mBAAmB,UAAU,WAAW,UAAU,MAAM;AAAA,MACzD;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP,QAAQ,aAAa,SAAS,aAAa;AAAA,MAC3C,KAAK,IAAI,IAAI,UAAU,UAAU;AAAA,IAClC,CAAC,EAAE;AAAA,EACJ;AAAA,EACA,IAAI,aAAa,QAAQ;AAAA,IACxB,MAAM,IAAI,MACT,qBAAqB,2IACtB;AAAA,EACD;AAAA,EACA,IAAI,aAAa,UAAU;AAAA,IAC1B,MAAM,IAAI,MACT,qBAAqB,+IACtB;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,GAGK,wBAAwB,CAAC,aACrC,0BAA0B,QAAQ,IAAI,SAAS,SAAQ,QAAQ;AAAA;AAAA,EAl/B1D,wBAAwB;AAAA,EACxB,0BAA0B;AAAA,EAC1B,iCAAiC;AAAA,EACjC,yBAAyB;AAAA,EACzB,qBAAqB,IAAI,SAC9B,aACA,0BACD;AAAA,EACM,sBAAsB,IAAI,SAC/B,aACA,2BACD;AAAA,EACM,iBAAiB,cAAc,MAAK,QAAQ,IAAI,GAAG,cAAc,CAAC;AAAA,EAunBlE,uBAAuB,IAAI;AAAA,EAC3B,oBAAoB,IAAI;AAAA,EAkRjB,0BAA0B,8BAA8B;AAAA;;;AC36BrE,2BAAgB;AAChB,qBAAS,sBAAU,qBAAS,kBAAS,mBAAM,sBAAU;AAAA,IAM/C,iBAEA,qBACA,yBAEA,YAKA,2BAA2B,CAAC,MAAc,WAAmB;AAAA,EAClE,MAAM,aAAa,UAAS,SAAQ,IAAI,GAAG,MAAM,EAAE,QAAQ,OAAO,GAAG;AAAA,EAErE,OAAO,WAAW,WAAW,GAAG,IAAI,aAAa,KAAK;AAAA,GAGjD,0BAA0B,CAC/B,SACA,KACA,gBACA,UACI;AAAA,EACJ,WAAW,SAAS,SAAS;AAAA,IAC5B,MAAM,YAAY,MAAK,KAAK,MAAM,IAAI;AAAA,IACtC,IAAI,MAAM,YAAY;AAAA,MAAG,MAAM,KAAK,SAAS;AAAA,IAE7C,IAAI,MAAM,OAAO,KAAK,MAAM,SAAS,gBAAgB;AAAA,MACpD,OAAO;AAAA,IACR;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,GAGF,uBAAuB,OAAO,MAAgB,mBAA2B;AAAA,EAC9E,IAAI,KAAK,WAAW;AAAA,IAAG,OAAO;AAAA,EAE9B,MAAM,YAAsB,CAAC;AAAA,EAC7B,MAAM,aAAa,MAAM,QAAQ,IAChC,KAAK,IAAI,OAAO,SAAS;AAAA,IACxB;AAAA,IACA,SAAS,MAAM,SAAQ,KAAK;AAAA,MAC3B,UAAU;AAAA,MACV,eAAe;AAAA,IAChB,CAAC;AAAA,EACF,EAAE,CACH;AAAA,EAEA,aAAa,KAAK,aAAa,YAAY;AAAA,IAC1C,MAAM,QAAQ,wBACb,SACA,KACA,gBACA,SACD;AAAA,IACA,IAAI;AAAA,MAAO,OAAO;AAAA,EACnB;AAAA,EAEA,OAAO,qBAAqB,WAAW,cAAc;AAAA,GAGhD,2BAA2B,OAChC,YACA,mBACI,qBAAqB,CAAC,UAAU,GAAG,cAAc,GAEhD,+BAA+B,CAAC,eACrC,UAAS,UAAU,EAAE,QAAQ,+BAA+B,EAAE,GAEzD,4BAA4B,OAAO,eAAuB;AAAA,EAC/D,MAAM,aAAa,wBAAwB,IAAI,UAAU;AAAA,EACzD,IAAI,eAAe,WAAW;AAAA,IAC7B,OAAO;AAAA,EACR;AAAA,EAEA,IACC,CAAC,WAAW,SACX,GAAG,MAAK,QAAQ,IAAI,GAAG,OAAO,IAAI,QAAQ,aAAa,UAAU,KAAK,KACvE,KACA,CAAC,WAAW,SAAS,SAAS,GAC7B;AAAA,IACD,wBAAwB,IAAI,YAAY,UAAU;AAAA,IAElD,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,qBAAqB,MAAM,yBAChC,MAAK,QAAQ,IAAI,GAAG,KAAK,GACzB,6BAA6B,UAAU,CACxC;AAAA,EACA,MAAM,WAAW,sBAAsB;AAAA,EACvC,wBAAwB,IAAI,YAAY,QAAQ;AAAA,EAEhD,OAAO;AAAA,GAGF,wBAAwB,OAAO,MAAc,SAAiB;AAAA,EACnE,IAAI,CAAC,KAAK,WAAW,GAAG,GAAG;AAAA,IAC1B,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,WAAW,SAAQ,SAAQ,IAAI,GAAG,IAAI;AAAA,EAC5C,MAAM,aAAa;AAAA,IAClB;AAAA,IACA,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,MAAK,UAAU,UAAU;AAAA,IACzB,MAAK,UAAU,UAAU;AAAA,IACzB,MAAK,UAAU,WAAW;AAAA,IAC1B,MAAK,UAAU,WAAW;AAAA,IAC1B,MAAK,UAAU,YAAY;AAAA,EAC5B;AAAA,EAEA,MAAM,eAAe,MAAM,QAAQ,IAClC,WAAW,IAAI,CAAC,cAAc,IAAI,KAAK,SAAS,EAAE,OAAO,CAAC,CAC3D;AAAA,EACA,MAAM,aAAa,aAAa,QAAQ,IAAI;AAAA,EAE5C,OAAO,cAAc,IAAK,WAAW,eAAe,OAAQ;AAAA,GAGvD,sBAAsB,CAAC,eAAuB;AAAA,EACnD,MAAM,qBAAqB,UAAS,QAAQ,IAAI,GAAG,UAAU,EAAE,QAC9D,OACA,GACD;AAAA,EACA,MAAM,uBAAuB,mBAAmB,WAAW,IAAI,IAC5D,WAAW,QAAQ,WAAW,GAAG,IACjC;AAAA,EAEH,OAAO,MAAK,iBAAiB,GAAG,gCAAgC;AAAA,GAG3D,sBAAsB,OAAO,MAAc,SAAiB;AAAA,EACjE,IAAI,CAAC,KAAK,WAAW,GAAG,KAAK,CAAC,KAAK,WAAW,GAAG,GAAG;AAAA,IACnD,MAAM,WAAW,qBAAqB,IAAI;AAAA,IAE1C,OAAO,YAAY,SAAS,SAAS,SAAS,IAAI,WAAW;AAAA,EAC9D;AAAA,EAEA,IAAI,KAAK,WAAW,GAAG,GAAG;AAAA,IACzB,OAAO;AAAA,EACR;AAAA,EAEA,IAAI,CAAC,KAAK,WAAW,GAAG,GAAG;AAAA,IAC1B,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,eAAe,SAAQ,SAAQ,IAAI,GAAG,IAAI;AAAA,EAChD,IAAI,SAAQ,YAAY,MAAM,WAAW;AAAA,IACxC,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,YAAY,GAAG;AAAA,EACrB,IAAK,MAAM,IAAI,KAAK,SAAS,EAAE,OAAO,MAAO,MAAM;AAAA,IAClD,OAAO;AAAA,EACR;AAAA,EAEA,OAAO;AAAA,GAGF,iBAAiB,OAAO,MAAc,YAAoB;AAAA,EAC/D,MAAM,aAAa,IAAI,KAAK,IAAI;AAAA,EAChC,MAAM,SAAS,MAAM,WAAW,OAAO;AAAA,EACvC,IAAI,QAAQ;AAAA,IACX,MAAM,iBAAiB,MAAM,WAAW,KAAK;AAAA,IAC7C,IAAI,mBAAmB,SAAS;AAAA,MAC/B;AAAA,IACD;AAAA,EACD;AAAA,EAEA,MAAM,IAAI,MAAM,MAAM,OAAO;AAAA,GAGjB,4BAA4B,OAAO,eAAuB;AAAA,EACtE,MAAM,mBAAmB,oBAAoB,IAAI,UAAU;AAAA,EAC3D,IAAI,kBAAkB;AAAA,IACrB,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,uBAAuB,MAAM,0BAA0B,UAAU;AAAA,EACvE,MAAM,SAAS,MAAM,IAAI,KAAK,UAAU,EAAE,KAAK;AAAA,EAC/C,QAAQ,SAAS,eAAe,MAAa;AAAA,EAC7C,MAAM,qBAAqB,2BAA2B,MAAM;AAAA,EAC5D,MAAM,gBAAgB,wBACrB,mBAAmB,MACnB,QACD;AAAA,EACA,MAAM,eAAe,MAAM,WAC1B,cAAc,MACd,8BAA8B,CAC/B;AAAA,EACA,IAAI,aACH,WAAW,SAAS,KAAK,KAAK,WAAW,SAAS,YAAY,IAC3D,WAAW,cAAc,aAAa,IAAI,IAC1C,aAAa;AAAA,EACjB,MAAM,mBAAmB,MAAM,KAC9B,WAAW,SAAS,0BAA0B,CAC/C,EACE,IAAI,CAAC,UAAU,MAAM,EAAE,EACvB,OAAO,CAAC,UAA2B,UAAU,SAAS;AAAA,EACxD,MAAM,uBAAuB,MAAM,QAAQ,IAC1C,iBAAiB,IAAI,CAAC,SACrB,oBAAoB,MAAM,oBAAoB,CAC/C,CACD;AAAA,EACA,MAAM,wBAAwB,MAAM,QAAQ,IAC3C,iBAAiB,IAAI,CAAC,SACrB,sBAAsB,MAAM,oBAAoB,CACjD,CACD;AAAA,EACA,MAAM,mBAAmB,IAAI;AAAA,EAC7B,MAAM,uBAAuB,IAAI;AAAA,EAEjC,MAAM,mBAAmB,MAAM,QAAQ,IACtC,iBAAiB,IAAI,OAAO,MAAM,UAAU;AAAA,IAC3C,MAAM,gBAAgB,qBAAqB;AAAA,IAC3C,IAAI,CAAC,QAAQ,CAAC;AAAA,MAAe,OAAO;AAAA,IAEpC,OAAO;AAAA,MACN,cAAc,MAAM,0BAA0B,aAAa;AAAA,MAC3D;AAAA,MACA;AAAA,IACD;AAAA,GACA,CACF;AAAA,EAEA,WAAW,UAAU,kBAAkB;AAAA,IACtC,IAAI,CAAC;AAAA,MAAQ;AAAA,IACb,iBAAiB,IAAI,OAAO,MAAM,OAAO,YAAY;AAAA,IACrD,iBAAiB,IAAI,OAAO,eAAe,OAAO,YAAY;AAAA,EAC/D;AAAA,EAEA,SAAS,QAAQ,EAAG,QAAQ,iBAAiB,QAAQ,SAAS,GAAG;AAAA,IAChE,MAAM,OAAO,iBAAiB;AAAA,IAC9B,MAAM,uBAAuB,sBAAsB;AAAA,IACnD,IAAI,CAAC,QAAQ,CAAC;AAAA,MAAsB;AAAA,IACpC,IAAI,qBAAqB;AAAA,MAAQ;AAAA,IAEjC,qBAAqB,IACpB,MACA,yBACC,oBAAoB,UAAU,GAC9B,oBACD,CACD;AAAA,EACD;AAAA,EAEA,YAAY,MAAM,yBAAyB,sBAAsB;AAAA,IAChE,aAAa,WAAW,WAAW,MAAM,oBAAoB;AAAA,EAC9D;AAAA,EAEA,IAAI,eAAe,QAAQ,YAAY;AAAA,IACtC,KAAK;AAAA,IACL,cAAc;AAAA,MACb,OAAO,mBAAmB,eAAe,cAAc;AAAA,IACxD;AAAA,IACA,UAAU;AAAA,IACV,UAAU;AAAA,EACX,CAAC,EAAE,GAAG;AAAA,EAEN,YAAY,MAAM,sBAAsB,kBAAkB;AAAA,IACzD,eAAe,aAAa,WAC3B,MACA,yBACC,oBAAoB,UAAU,GAC9B,iBACD,CACD;AAAA,EACD;AAAA,EAEA,YAAY,MAAM,yBAAyB,sBAAsB;AAAA,IAChE,eAAe,aAAa,WAAW,MAAM,oBAAoB;AAAA,EAClE;AAAA,EAEA,MAAM,qBAAqB,oBAAoB,UAAU;AAAA,EACzD,MAAM,MAAM,SAAQ,kBAAkB,GAAG,EAAE,WAAW,KAAK,CAAC;AAAA,EAC5D,MAAM,eAAe,oBAAoB,YAAY;AAAA,EACrD,oBAAoB,IAAI,YAAY,kBAAkB;AAAA,EAEtD,OAAO;AAAA;AAAA;AAAA,EAhSR;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEM,kBAAkB,MAAK,QAAQ,IAAI,GAAG,eAAe,WAAW,QAAQ;AAAA,EAExE,sBAAsB,IAAI;AAAA,EAC1B,0BAA0B,IAAI;AAAA,EAE9B,aAAa,IAAI,IAAI,WAAW;AAAA,IACrC,QAAQ;AAAA,IACR,QAAQ;AAAA,EACT,CAAC;AAAA;;;ICJY,4BAA4B,CACxC,OACA,cAC6B;AAAA,EAC7B,kBAAkB,MAAM;AAAA,EACxB,kBAAkB,MAAM;AAAA,EACxB,gBAAgB,MAAM,WAAW;AAAA,EACjC,eAAe;AAAA,KACX,WAAW,EAAE,kBAAkB,SAAS,IAAI,CAAC;AAAA,EACjD,cAAc,qBAAqB,MAAM,KAAK;AAC/C,IAEM,sBAAsB,CAAC,UAC5B,MACE,WAAW,KAAK,OAAO,EACvB,WAAW,KAAK,QAAQ,EACxB,WAAW,KAAK,MAAM,EACtB,WAAW,KAAK,MAAM,GAEZ,4BAA4B,CAAC,eACzC,OAAO,QAAQ,UAAU,EACvB,IAAI,EAAE,KAAK,WAAW,GAAG,QAAQ,oBAAoB,KAAK,IAAI,EAC9D,KAAK,GAAG;AAAA;AAAA,EAjCX;AAAA;;;ICiBI,iBAAiB,GACf,8BACA,mCAEA,eAAe,MAAM;AAAA,EAC1B,kBAAkB;AAAA,EAElB,OAAO,UAAU;AAAA,GAaZ,YAAW,CAAC,UACjB,OAAO,UAAU,YAAY,UAAU,MAElC,+BAA+B,CACpC,UACyC,OAAO,UAAU,YAErD,gCAAgC,CACrC,UAC0C,OAAO,UAAU,YAEtD,6BAA6B,CAClC,UAEA,OAAO,UAAU,cAAc,UAAS,KAAK,GAExC,iCAAiC,CACtC,UAC2C,OAAO,UAAU,YAEvD,4BAA4B,CAAC,QAAgB,iBAAyB;AAAA,EAC3E,IAAI,OAAO,WAAW,SAAS;AAAA,IAAG,OAAO,IAAI,IAAI,MAAM,EAAE;AAAA,EACzD,IAAI,OAAO,WAAW,GAAG;AAAA,IAAG,OAAO,IAAI,IAAI,QAAQ,YAAY,EAAE;AAAA,EAEjE,OAAO;AAAA,GAGF,qCAAqC,OAC1C,uBACI;AAAA,EACJ,MAAM,qBACL,MAAM,0BAA0B,kBAAkB;AAAA,EACnD,MAAM,eAAe,MAAa;AAAA,EAElC,OAAO,aAAa,eAAe,aAAa,UAAU;AAAA,GAGrD,2BAA2B,OAAO,uBAA+B;AAAA,EACtE,MAAM,uBACL,kCAAkC,IAAI,kBAAkB;AAAA,EACzD,IAAI,sBAAsB;AAAA,IACzB,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,cAAc,mCAAmC,kBAAkB;AAAA,EACzE,kCAAkC,IAAI,oBAAoB,WAAW;AAAA,EAErE,OAAO;AAAA,GAGF,4BAA4B,OACjC,mBACA,eACI;AAAA,EACJ,MAAM,qBAAqB,kBAAkB,WAAW,GAAG,IACxD,IAAI,IAAI,mBAAmB,YAAY,GAAG,EAAE,WAC5C;AAAA,EACH,MAAM,eAAe,mBAAmB,SAAS,SAAS,IACvD,MAAM,0BAA0B,kBAAkB,IAClD;AAAA,EACH,MAAM,eAAe,MAAa;AAAA,EAElC,IAAI,cAAc,eAAe,aAAa,cAAc,cAAc;AAAA,IACzE,OAAO,aAAa;AAAA,EACrB;AAAA,EAEA,OAAO,aAAa,eAAe,aAAa,UAAU;AAAA,GAGrD,yBAAyB,OAAO,cAAuB;AAAA,EAC5D,MAAM,iBAAiB,wBAAwB,SAAS;AAAA,EACxD,MAAM,qBAAqB,gBAAgB,SACxC,0BAA0B,eAAe,QAAQ,YAAY,GAAG,IAChE;AAAA,EACH,IAAI,oBAAoB,SAAS,SAAS,GAAG;AAAA,IAC5C,OAAO,yBAAyB,kBAAkB;AAAA,EACnD;AAAA,EACA,IAAI,oBAAoB;AAAA,IACvB,OAAO,0BACN,oBACA,gBAAgB,MACjB;AAAA,EACD;AAAA,EAEA,MAAM,oBAAoB,mBAAmB,SAAS;AAAA,EACtD,IAAI,OAAO,sBAAsB,UAAU;AAAA,IAC1C,OAAO;AAAA,EACR;AAAA,EAEA,OAAO,0BAA0B,iBAAiB;AAAA,GAG7C,+BAA+B,OAAO,cAAuB;AAAA,EAClE,MAAM,0BAA0B,6BAA6B,IAAI,SAAS;AAAA,EAC1E,IAAI,yBAAyB;AAAA,IAC5B,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,oBAAoB,uBAAuB,SAAS;AAAA,EAE1D,6BAA6B,IAAI,WAAW,iBAAiB;AAAA,EAE7D,OAAO;AAAA,GAGF,oCAAoC,OAAO,cAAuB;AAAA,EACvE,MAAM,oBAAoB,MAAM,6BAA6B,SAAS;AAAA,EACtE,IAAI,CAAC,6BAA6B,iBAAiB,GAAG;AAAA,IACrD,MAAM,IAAI,MACT,uDACD;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,GAGF,qCAAqC,OAAO,cAAuB;AAAA,EACxE,MAAM,oBAAoB,MAAM,6BAA6B,SAAS;AAAA,EACtE,IAAI,CAAC,8BAA8B,iBAAiB,GAAG;AAAA,IACtD,MAAM,IAAI,MACT,yDACD;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,GAGF,kCAAkC,OAAO,cAAuB;AAAA,EACrE,MAAM,oBAAoB,MAAM,6BAA6B,SAAS;AAAA,EACtE,IAAI,CAAC,2BAA2B,iBAAiB,GAAG;AAAA,IACnD,MAAM,IAAI,MAAM,mDAAmD;AAAA,EACpE;AAAA,EAEA,OAAO;AAAA,GAGF,sCAAsC,OAAO,cAAuB;AAAA,EACzE,MAAM,oBAAoB,MAAM,6BAA6B,SAAS;AAAA,EACtE,IAAI,CAAC,+BAA+B,iBAAiB,GAAG;AAAA,IACvD,MAAM,IAAI,MACT,2DACD;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,GAGK,qBAAqB,OACjC,UACA,UACI;AAAA,EACJ,MAAM,SAAS,MAAM,mBAAmB,UAAU,KAAK;AAAA,EAEvD,OAAO,QAAQ,0BAA0B,OAAO,UAAU,KAAK,OAAO;AAAA,GAE1D,qBAAqB,OACjC,UACA,UACI;AAAA,EACJ,MAAM,WAAW,aAAa;AAAA,EAC9B,MAAM,aAAa,0BAA0B,KAAK;AAAA,EAElD,IAAI,MAAM,cAAc,SAAS;AAAA,IAChC,MAAM,QAAQ,SAAS,QAAQ,MAAM;AAAA,IACrC,IAAI,CAAC,OAAO;AAAA,MACX,MAAM,IAAI,MACT,qBAAqB,MAAM,qDAC5B;AAAA,IACD;AAAA,IACA,MAAM,YAAY,MAAM,kCAAkC,KAAK;AAAA,IAC/D,MAAM,OAAO,MAAM,wBAAwB,WAAW,MAAM,KAAK;AAAA,IAEjE,OAAO,EAAE,YAAY,KAAK;AAAA,EAC3B;AAAA,EAEA,IAAI,MAAM,cAAc,UAAU;AAAA,IACjC,MAAM,QAAQ,SAAS,SAAS,MAAM;AAAA,IACtC,IAAI,CAAC,OAAO;AAAA,MACX,MAAM,IAAI,MACT,qBAAqB,MAAM,sDAC5B;AAAA,IACD;AAAA,IACA,MAAM,YAAY,MAAM,mCAAmC,KAAK;AAAA,IAChE,MAAM,OAAO,MAAM,yBAAyB,WAAW,MAAM,KAAK;AAAA,IAElE,OAAO,EAAE,YAAY,KAAK;AAAA,EAC3B;AAAA,EAEA,IAAI,MAAM,cAAc,OAAO;AAAA,IAC9B,MAAM,QAAQ,SAAS,MAAM,MAAM;AAAA,IACnC,IAAI,CAAC,OAAO;AAAA,MACX,MAAM,IAAI,MACT,qBAAqB,MAAM,mDAC5B;AAAA,IACD;AAAA,IACA,MAAM,YAAY,MAAM,gCAAgC,KAAK;AAAA,IAC7D,MAAM,OAAO,MAAM,sBAAsB,WAAW,MAAM,KAAK;AAAA,IAE/D,OAAO,EAAE,YAAY,KAAK;AAAA,EAC3B;AAAA,EAEA,IAAI,MAAM,cAAc,WAAW;AAAA,IAClC,MAAM,QAAQ,SAAS,UAAU,MAAM;AAAA,IACvC,IAAI,CAAC,OAAO;AAAA,MACX,MAAM,IAAI,MACT,qBAAqB,MAAM,uDAC5B;AAAA,IACD;AAAA,IACA,MAAM,YAAY,MAAM,oCAAoC,KAAK;AAAA,IACjE,MAAM,OAAO,MAAM,2BAClB,WACA,MAAM,OACN,QACD;AAAA,IAEA,OAAO;AAAA,MACN,YAAY;AAAA,WACR,0BAA0B,OAAO,QAAQ;AAAA,MAC7C;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAAA,EAEA,MAAM,IAAI,MACT,cAAc,MAAM,kDACrB;AAAA;AAAA;AAAA,EAlQD;AAAA,EAMA;AAAA,EACA;AAAA,EAIA;AAAA,EAGM,+BAA+B,IAAI;AAAA,EACnC,oCAAoC,IAAI;AAAA;;;ICZjC,+BAA+B,MAAM;AAAA,EACjD,MAAM,WAAW,WAAW;AAAA,EAC5B,IAAI,CAAC,UAAU;AAAA,IACd,MAAM,IAAI,MACT,+GACD;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,GAEK,2BAA2B,CACvC,aACI;AAAA,EACJ,WAAW,2BAA2B;AAAA;;;ICQjC,oBAEA,cAWA,kBAAkB,CAAC,oBAA4B;AAAA,EACpD,MAAM,aAAa,IAAI;AAAA,EACvB,MAAM,wBAAwB,CAAC,eAAgC;AAAA,IAC9D,SAAS,KAAK,mBAAmB,qBAAqB;AAAA,IACtD,IAAI,CAAC,KAAK;AAAA,MACT;AAAA,IACD;AAAA,IAEA,WAAW,IAAI,KAAK,qBAAqB,qBAAqB,EAAE;AAAA;AAAA,EAGjE,IAAI,QAAQ,aAAa,KAAK,eAAe;AAAA,EAC7C,OAAO,OAAO;AAAA,IACb,sBAAsB,KAAK;AAAA,IAC3B,QAAQ,aAAa,KAAK,eAAe;AAAA,EAC1C;AAAA,EAEA,aAAa,YAAY;AAAA,EAEzB,OAAO;AAAA,GAGF,eAAe,CAAC,UAA8B;AAAA,EACnD,IAAI,CAAC;AAAA,IAAO;AAAA,EACZ,MAAM,SAAS,OAAO,KAAK;AAAA,EAC3B,IAAI,CAAC,OAAO,SAAS,MAAM,KAAK,SAAS,GAAG;AAAA,IAC3C,MAAM,IAAI,MACT,wCAAwC,0CACzC;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,GAGF,0BAA0B,CAC/B,iBACA,cACkC;AAAA,EAClC,MAAM,aAAa,gBAAgB,eAAe;AAAA,EAClD,MAAM,WAAW,WAAW,IAAI,UAAU;AAAA,EAC1C,IAAI,CAAC,UAAU;AAAA,IACd,MAAM,IAAI,MACT,2DACD;AAAA,EACD;AAAA,EAEA,MAAM,KAAK,WAAW,IAAI,IAAI,KAAK;AAAA,EAEnC,OAAO;AAAA,IACN,WAAW,WAAW,IAAI,YAAY,KAAK;AAAA,IAC3C,cACC,WAAW,KAAK,KAAK,WAAW,IAAI,eAAe,KAAK;AAAA,IACzD;AAAA,IACA;AAAA,IACA,WAAW,aAAa,WAAW,IAAI,YAAY,KAAK,SAAS;AAAA,EAClE;AAAA,GAGY,6BAA6B,CAAC,SAAiB;AAAA,EAC3D,MAAM,QAAQ,IAAI,OAAO,kBAAkB;AAAA,EAC3C,MAAM,OAAuC,CAAC;AAAA,EAC9C,IAAI,QAAQ,MAAM,KAAK,IAAI;AAAA,EAE3B,OAAO,OAAO;AAAA,IACb,SAAS,oBAAoB,aAAa;AAAA,IAC1C,KAAK,KAAK,wBAAwB,sBAAsB,IAAI,SAAS,CAAC;AAAA,IACtE,QAAQ,MAAM,KAAK,IAAI;AAAA,EACxB;AAAA,EAEA,OAAO;AAAA;AAAA;AAAA,EAlFF,qBACL;AAAA,EACK,eACL;AAAA;;;AChCD,yBAAS,gCAAc;AAAA,IAajB,uBACL,mGACK,sBACL,gEAEK,kBAOA,sBAEA,YAAW,CAAC,UACjB,OAAO,UAAU,YAAY,UAAU,MAElC,oBAAoB,CAAC,UAC1B,iBAAiB,KAAK,CAAC,cAAc,cAAc,KAAK,GAEnD,wBAAwB,CAC7B,UAEA,qBAAqB,KAAK,CAAC,SAAS,SAAS,KAAK,GAI7C,sBAAsB,CAAC,oBAA8C;AAAA,EAC1E,MAAM,cAAc,IAAI,OAAO,qBAAqB,GAAG;AAAA,EACvD,MAAM,aAAa,IAAI;AAAA,EACvB,IAAI,QAAQ,YAAY,KAAK,eAAe;AAAA,EAE5C,OAAO,OAAO;AAAA,IACb,SAAS,KAAK,mBAAmB,qBAAqB;AAAA,IACtD,QAAQ,YAAY,KAAK,eAAe;AAAA,IACxC,IAAI,CAAC;AAAA,MAAK;AAAA,IAEV,MAAM,QAAQ,qBAAqB,qBAAqB;AAAA,IACxD,WAAW,IAAI,KAAK,KAAK;AAAA,EAC1B;AAAA,EAEA,OAAO;AAAA,GAGF,iBAAiB,CACtB,oBACqC;AAAA,EACrC,MAAM,aAAa,oBAAoB,eAAe;AAAA,EACtD,MAAM,YAAY,WAAW,IAAI,WAAW;AAAA,EAC5C,MAAM,YAAY,WAAW,IAAI,WAAW;AAAA,EAC5C,MAAM,UAAU,WAAW,IAAI,SAAS,KAAK;AAAA,EAC7C,MAAM,cAAc,WAAW,IAAI,OAAO,KAAK;AAAA,EAE/C,IAAI,CAAC,aAAa,CAAC,WAAW;AAAA,IAC7B,OAAO;AAAA,EACR;AAAA,EAEA,IAAI,CAAC,kBAAkB,SAAS,GAAG;AAAA,IAClC,MAAM,IAAI,MAAM,wCAAwC,aAAa;AAAA,EACtE;AAAA,EAEA,IAAI,CAAC,sBAAsB,OAAO,GAAG;AAAA,IACpC,MAAM,IAAI,MAAM,2CAA2C,WAAW;AAAA,EACvE;AAAA,EAEA,IAAI;AAAA,EACJ,IAAI;AAAA,IACH,MAAM,YAAqB,KAAK,MAAM,WAAW;AAAA,IACjD,cAAc,UAAS,SAAS,IAAI,YAAY,CAAC;AAAA,IAChD,OAAO,OAAO;AAAA,IACf,MAAM,IAAI,MACT,gDAAgD,aAAa,cAC5D,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,KAEtD,EAAE,OAAO,MAAM,CAChB;AAAA;AAAA,EAGD,OAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,EACR;AAAA,GAGY,0BAA0B,OACtC,cACA,aACI;AAAA,EACJ,MAAM,cAAc,IAAI,OAAO,sBAAsB,IAAI;AAAA,EACzD,IAAI,CAAC,YAAY,KAAK,YAAY,GAAG;AAAA,IACpC,OAAO;AAAA,EACR;AAAA,EAEA,YAAY,YAAY;AAAA,EAExB,MAAM,WAA8F,CAAC;AAAA,EACrG,IAAI,YAAY;AAAA,EAChB,IAAI,QAAQ,YAAY,KAAK,YAAY;AAAA,EAEzC,OAAO,OAAO;AAAA,IACb,OAAO,WAAW,sBAAsB;AAAA,IACxC,MAAM,kBAAkB,sBAAsB;AAAA,IAC9C,SAAS,KAAK;AAAA,MACb,QAAQ,aAAa,MAAM,WAAW,MAAM,KAAK;AAAA,MACjD;AAAA,MACA,OAAO,eAAe,eAAe;AAAA,IACtC,CAAC;AAAA,IACD,YAAY,MAAM,QAAQ,UAAU;AAAA,IACpC,QAAQ,YAAY,KAAK,YAAY;AAAA,EACtC;AAAA,EAEA,MAAM,mBAAmB,MAAM,QAAQ,IACtC,SAAS,IAAI,OAAO,YACnB,QAAQ,UAAU,QAAQ,QAAQ,MAAM,mBAAmB,UAAU,QAAQ,KAAK,IAAI,QAAQ,UAC/F,CACD;AAAA,EAEA,OAAO,iBAAiB,KAAK,EAAE,IAAI,aAAa,MAAM,SAAS;AAAA,GAG1D,yBAGA,mBAAmB,CACxB,YACA,SACI;AAAA,EACJ,MAAM,QAAQ,WAAW,IAAI,IAAI,GAAG,KAAK;AAAA,EACzC,IAAI,CAAC,OAAO;AAAA,IACX,MAAM,IAAI,MACT,6CAA6C,kBAC9C;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,GAGF,wCAAwC,CAC7C,cACA,eACI;AAAA,EACJ,MAAM,UAAU,aAAa,KAAK;AAAA,EAClC,IAAI,CAAC,SAAS;AAAA,IACb,MAAM,IAAI,MACT,+EACD;AAAA,EACD;AAAA,EAEA,MAAM,kBAAkB,QAAQ,MAAM,6BAA6B;AAAA,EACnE,IAAI,CAAC,iBAAiB;AAAA,IACrB,MAAM,IAAI,MACT,oFACD;AAAA,EACD;AAAA,EAEA,MAAM,kBAAkB,CAAC,GAAG,WAAW,QAAQ,CAAC,EAC9C,IAAI,EAAE,KAAK,WAAW,GAAG,QAAQ,QAAQ,EACzC,KAAK,GAAG;AAAA,EACV,IAAI,CAAC,iBAAiB;AAAA,IACrB,OAAO;AAAA,EACR;AAAA,EAEA,OAAO,YAAY,SAAS,wBAAwB,MAAM;AAAA,EAC1D,MAAM,qBAAqB,sBAAsB,KAAK;AAAA,EACtD,MAAM,mBAAmB,qBACtB,GAAG,sBAAsB,oBACzB;AAAA,EAEH,OAAO,QAAQ,QAAQ,YAAY,IAAI,WAAW,mBAAmB;AAAA,GAGzD,oCAAoC,CAAC,iBAAyB;AAAA,EAC1E,IAAI,YAAY;AAAA,EAChB,IAAI,SAAS;AAAA,EACb,IAAI,QAAQ,wBAAwB,KAAK,YAAY;AAAA,EAErD,OAAO,OAAO;AAAA,IACb,OAAO,WAAW,qBAAqB,IAAI,YAAY,MAAM;AAAA,IAC7D,MAAM,aAAa,oBAAoB,kBAAkB;AAAA,IACzD,MAAM,oBAAoB,IAAI,IAAoB;AAAA,MACjD,CAAC,UAAU,iBAAiB,YAAY,KAAK,CAAC;AAAA,MAC9C,CAAC,cAAc,WAAW,IAAI,SAAS,KAAK,MAAM;AAAA,MAClD,CAAC,WAAW,WAAW,IAAI,MAAM,KAAK,WAAW;AAAA,MACjD,CAAC,aAAa,WAAW,IAAI,QAAQ,KAAK,MAAM;AAAA,IACjD,CAAC;AAAA,IAED,UAAU,aAAa,MAAM,WAAW,MAAM,KAAK;AAAA,IACnD,UAAU,sCAAsC,WAAW,iBAAiB;AAAA,IAC5E,YAAY,MAAM,QAAQ,UAAU;AAAA,IACpC,QAAQ,wBAAwB,KAAK,YAAY;AAAA,EAClD;AAAA,EAEA,OAAO,SAAS,aAAa,MAAM,SAAS;AAAA,GAGhC,mCAAmC,CAAC,iBAAyB;AAAA,EACzE,MAAM,kBAAkB,2BAA2B,YAAY;AAAA,EAC/D,IAAI,gBAAgB,WAAW,GAAG;AAAA,IACjC,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,QACL;AAAA,EACD,IAAI,YAAY;AAAA,EAChB,IAAI,YAAY;AAAA,EAChB,IAAI,SAAS;AAAA,EACb,IAAI,QAAQ,MAAM,KAAK,YAAY;AAAA,EAEnC,OAAO,OAAO;AAAA,IACb,OAAO,aAAa;AAAA,IACpB,MAAM,MAAM,gBAAgB;AAAA,IAC5B,IAAI,CAAC,KAAK;AAAA,MACT,MAAM,IAAI,MACT,yEACD;AAAA,IACD;AAAA,IACA,UAAU,aAAa,MAAM,WAAW,MAAM,KAAK;AAAA,IACnD,UAAU,+BAA+B,IAAI,IAAI,IAAI,YAAY;AAAA,IACjE,YAAY,MAAM,QAAQ,UAAU;AAAA,IACpC,QAAQ,MAAM,KAAK,YAAY;AAAA,EAChC;AAAA,EAEA,OAAO,SAAS,aAAa,MAAM,SAAS;AAAA,GAGvC,sBAAsB,OAC3B,UACA,aACI;AAAA,EACJ,MAAM,eAAe,cAAa,UAAU,OAAO;AAAA,EACnD,MAAM,kBAAkB,MAAM,wBAC7B,cACA,QACD;AAAA,EAEA,IAAI,oBAAoB,cAAc;AAAA,IACrC,eAAc,UAAU,eAAe;AAAA,EACxC;AAAA,GAGY,iCAAiC,OAC7C,MACA,UAGI,CAAC,MACD;AAAA,EACJ,MAAM,+BACL,QAAQ,wBAAwB,QAC7B,OACA,kCAAkC,IAAI;AAAA,EAC1C,MAAM,2BACL,QAAQ,0BAA0B,QAC/B,+BACA,iCAAiC,4BAA4B;AAAA,EACjE,MAAM,cAAc,IAAI,OAAO,sBAAsB,GAAG;AAAA,EACxD,IAAI,CAAC,YAAY,KAAK,wBAAwB,GAAG;AAAA,IAChD,OAAO;AAAA,EACR;AAAA,EAEA,OAAO,wBACN,0BACA,6BAA6B,CAC9B;AAAA,GAEY,kCAAkC,OAC9C,cACA,cACI;AAAA,EACJ,IAAI,CAAC,gBAAgB,UAAU,WAAW,GAAG;AAAA,IAC5C;AAAA,EACD;AAAA,EAEA,QAAQ,aAAa,MAAM,4BAA4B,YAAY;AAAA,EAEnE,MAAM,QAAQ,IACb,UAAU,IAAI,CAAC,aAAa,oBAAoB,UAAU,QAAQ,CAAC,CACpE;AAAA;AAAA;AAAA,EA7RD;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EAOM,mBAAsC;AAAA,IAC3C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EAEM,uBAAuB,CAAC,QAAQ,QAAQ,WAAW,MAAM;AAAA,EA8GzD,0BACL;AAAA;;;ICtIY,aAAa,CAAC,SAA4C;AAAA,EACtE,WAAW,QAAO,MAAM;AAAA,IACvB,IAEC,KAAI,QAAQ,SAAS,6BAA6B;AAAA,MAElD;AAAA,IAED,IAAI,KAAI,UAAU;AAAA,MAAS,QAAQ,MAAM,IAAG;AAAA,IACvC,SAAI,KAAI,UAAU;AAAA,MAAW,QAAQ,KAAK,IAAG;AAAA,IAC7C;AAAA,cAAQ,KAAK,IAAG;AAAA,EACtB;AAAA;AAAA;AAAA,EAbD;AAAA;;;ACAA,uBAAS;AACT;AAAA,IAEa,kBAAkB,OAAO,KAAa,YAAoB;AAAA,EAGtE,IAAI,CAAC,YAAW,GAAG;AAAA,IAAG,OAAO,CAAC;AAAA,EAE9B,MAAM,aAAuB,CAAC;AAAA,EAC9B,MAAM,OAAO,IAAI,MAAK,OAAO;AAAA,EAC7B,iBAAiB,QAAQ,KAAK,KAAK,EAAE,UAAU,MAAM,KAAK,IAAI,CAAC,GAAG;AAAA,IACjE,WAAW,KAAK,IAAI;AAAA,EACrB;AAAA,EAEA,OAAO;AAAA;AAAA;;;ACdR,qBAAS;AACT;AACA,uBAAS;AAAA,IAOH,eAEA,eAAe,CACpB,MACA,WACA,UACA,UACI;AAAA,EACJ,MAAM,WAAW,UAAS,IAAI;AAAA,EAC9B,MAAM,QAAQ,cAAc,KAAK,QAAQ;AAAA,EAEzC,IAAI,CAAC,OAAO;AAAA,IACX,UAAU,KAAK,IAAI;AAAA,IAEnB;AAAA,EACD;AAAA,EAEA,SAAS,UAAU,QAAQ;AAAA,EAE3B,IAAI,CAAC,UAAU;AAAA,IACd,IAAI,SAAS;AAAA,MAAS,SAAS,QAAQ;AAAA,IAClC,SAAI,SAAS;AAAA,MAAW,SAAS,UAAU;AAAA,IAC3C,SAAI,SAAS;AAAA,MAAa,SAAS,WAAW;AAAA,IAEnD;AAAA,EACD;AAAA,EAEA,IAAI,CAAC,MAAM;AAAA,IAAW,MAAM,YAAY,CAAC;AAAA,EAEzC,IAAI,SAAS;AAAA,IAAS,MAAM,UAAU,QAAQ;AAAA,EACzC,SAAI,SAAS;AAAA,IAAW,MAAM,UAAU,UAAU;AAAA,GAG3C,kBAAkB,OAC9B,UACA,YACI;AAAA,EACJ,IAAI,CAAC,YAAW,QAAQ,GAAG;AAAA,IAC1B,MAAM,aAAsB,CAAC;AAAA,IAE7B,OAAO,EAAE,aAAa,WAAW,sBAAU;AAAA,EAC5C;AAAA,EAEA,MAAM,YAAsB,CAAC;AAAA,EAC7B,MAAM,WAAiC,CAAC;AAAA,EACxC,MAAM,QAAyC,CAAC;AAAA,EAEhD,MAAM,OAAO,IAAI,MAAK,OAAO;AAAA,EAC7B,iBAAiB,QAAQ,KAAK,KAAK,EAAE,UAAU,MAAM,KAAK,SAAS,CAAC,GAAG;AAAA,IACtE,aAAa,MAAM,WAAW,UAAU,KAAK;AAAA,EAC9C;AAAA,EAEA,MAAM,iBACL,SAAS,UAAU,aACnB,SAAS,YAAY,aACrB,SAAS,aAAa,aACtB,OAAO,KAAK,KAAK,EAAE,SAAS;AAAA,EAE7B,MAAM,cAAoD,iBACvD;AAAA,OACI,SAAS,SAAS,SAAS,WAAW,SAAS,WAChD,EAAE,SAAS,IACX,CAAC;AAAA,OACA,OAAO,KAAK,KAAK,EAAE,SAAS,IAAI,EAAE,MAAM,IAAI,CAAC;AAAA,EAClD,IACC;AAAA,EAEH,OAAO,EAAE,aAAa,UAAU;AAAA;AAAA;AAAA,EAnE3B,gBAAgB;AAAA;;;ACTtB,uBAAS;AACT;AAAA,IAIa,qBAAqB,OAAO,KAAa,WAAsB;AAAA,EAG3E,IAAI,CAAC,YAAW,GAAG;AAAA,IAAG,OAAO,CAAC;AAAA,EAE9B,MAAM,aAAuB,CAAC;AAAA,EAC9B,MAAM,OAAO,IAAI,MAAK,uCAAuC;AAAA,EAC7D,iBAAiB,QAAQ,KAAK,KAAK,EAAE,UAAU,MAAM,KAAK,IAAI,CAAC,GAAG;AAAA,IACjE,MAAM,aAAa,cAAc,IAAI;AAAA,IACrC,IACC,kBAAkB,UAAU,KAC5B,QAAQ,KAAK,CAAC,YAAY,WAAW,SAAS,OAAO,CAAC;AAAA,MAEtD;AAAA,IAED,WAAW,KAAK,IAAI;AAAA,EACrB;AAAA,EAEA,OAAO;AAAA;AAAA;AAAA,EApBR;AAAA;;;ICHI;AAAA;AAAA,MAAE,EAAC,SAAQ,WAAU,SAAQ,gBAAe,aAAY,eAAc,OAAM,QAAO,OAAM,QAAO,OAAM,EAAC,IAAG,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,6BAA4B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,6BAA4B,GAAE,MAAK,EAAC,IAAG,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,6BAA4B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,6BAA4B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,4BAA2B,KAAI,2BAA0B,GAAE,MAAK,EAAC,IAAG,oBAAmB,KAAI,8BAA6B,KAAI,2BAA0B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,4BAA2B,KAAI,8BAA6B,KAAI,4BAA2B,KAAI,6BAA4B,GAAE,SAAQ,EAAC,IAAG,oBAAmB,KAAI,kBAAiB,KAAI,oBAAmB,KAAI,kBAAiB,KAAI,oBAAmB,KAAI,oBAAmB,KAAI,oBAAmB,KAAI,oBAAmB,KAAI,oBAAmB,KAAI,oBAAmB,KAAI,mBAAkB,GAAE,OAAM,EAAC,IAAG,8BAA6B,KAAI,4BAA2B,KAAI,6BAA4B,KAAI,6BAA4B,KAAI,4BAA2B,KAAI,6BAA4B,KAAI,6BAA4B,KAAI,4BAA2B,KAAI,6BAA4B,KAAI,6BAA4B,KAAI,2BAA0B,GAAE,KAAI,EAAC,IAAG,4BAA2B,KAAI,6BAA4B,KAAI,6BAA4B,KAAI,6BAA4B,KAAI,6BAA4B,KAAI,6BAA4B,KAAI,6BAA4B,KAAI,6BAA4B,KAAI,6BAA4B,KAAI,6BAA4B,KAAI,4BAA2B,GAAE,QAAO,EAAC,IAAG,2BAA0B,KAAI,6BAA4B,KAAI,6BAA4B,KAAI,4BAA2B,KAAI,2BAA0B,KAAI,6BAA4B,KAAI,6BAA4B,KAAI,6BAA4B,KAAI,2BAA0B,KAAI,6BAA4B,KAAI,4BAA2B,GAAE,OAAM,EAAC,IAAG,6BAA4B,KAAI,6BAA4B,KAAI,4BAA2B,KAAI,6BAA4B,KAAI,6BAA4B,KAAI,4BAA2B,KAAI,6BAA4B,KAAI,6BAA4B,KAAI,6BAA4B,KAAI,6BAA4B,KAAI,4BAA2B,GAAE,QAAO,EAAC,IAAG,8BAA6B,KAAI,8BAA6B,KAAI,6BAA4B,KAAI,6BAA4B,KAAI,6BAA4B,KAAI,6BAA4B,KAAI,6BAA4B,KAAI,6BAA4B,KAAI,6BAA4B,KAAI,6BAA4B,KAAI,4BAA2B,GAAE,MAAK,EAAC,IAAG,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,6BAA4B,KAAI,6BAA4B,KAAI,4BAA2B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,6BAA4B,GAAE,OAAM,EAAC,IAAG,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,6BAA4B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,6BAA4B,GAAE,SAAQ,EAAC,IAAG,8BAA6B,KAAI,4BAA2B,KAAI,6BAA4B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,4BAA2B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,6BAA4B,KAAI,6BAA4B,GAAE,MAAK,EAAC,IAAG,6BAA4B,KAAI,8BAA6B,KAAI,4BAA2B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,6BAA4B,KAAI,4BAA2B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,6BAA4B,GAAE,MAAK,EAAC,IAAG,8BAA6B,KAAI,8BAA6B,KAAI,6BAA4B,KAAI,8BAA6B,KAAI,6BAA4B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,4BAA2B,KAAI,4BAA2B,KAAI,6BAA4B,KAAI,6BAA4B,GAAE,KAAI,EAAC,IAAG,6BAA4B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,6BAA4B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,4BAA2B,KAAI,4BAA2B,KAAI,6BAA4B,KAAI,6BAA4B,GAAE,MAAK,EAAC,IAAG,4BAA2B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,6BAA4B,GAAE,QAAO,EAAC,IAAG,8BAA6B,KAAI,4BAA2B,KAAI,4BAA2B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,6BAA4B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,4BAA2B,GAAE,QAAO,EAAC,IAAG,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,6BAA4B,KAAI,8BAA6B,KAAI,6BAA4B,KAAI,8BAA6B,KAAI,4BAA2B,KAAI,6BAA4B,GAAE,QAAO,EAAC,IAAG,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,4BAA2B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,6BAA4B,GAAE,SAAQ,EAAC,IAAG,8BAA6B,KAAI,8BAA6B,KAAI,6BAA4B,KAAI,8BAA6B,KAAI,2BAA0B,KAAI,6BAA4B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,6BAA4B,KAAI,6BAA4B,GAAE,MAAK,EAAC,IAAG,8BAA6B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,6BAA4B,KAAI,8BAA6B,KAAI,8BAA6B,KAAI,4BAA2B,KAAI,4BAA2B,KAAI,4BAA2B,KAAI,4BAA2B,KAAI,2BAA0B,GAAE,MAAK,EAAC,IAAG,6BAA4B,KAAI,2BAA0B,KAAI,6BAA4B,KAAI,2BAA0B,KAAI,6BAA4B,KAAI,6BAA4B,KAAI,6BAA4B,KAAI,6BAA4B,KAAI,6BAA4B,KAAI,2BAA0B,KAAI,4BAA2B,EAAC;AAAA;;;ACAhiL,SAAS,CAAC,CAAC,GAAE;AAAA,EAAC,OAAO,EAAE,WAAW,CAAC,MAAI,MAAI,EAAE,KAAK,CAAC,KAAG,EAAE,IAAI,EAAE,YAAY,CAAC;AAAA;AAAmM,SAAS,CAAC,CAAC,GAAE;AAAA,EAAC,OAAO,EAAE,QAAQ,GAAG,MAAI,MAAI,EAAE,KAAK,OAAG,EAAE,SAAS,GAAG,IAAI,CAAC;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,IAAG,CAAC,EAAE,KAAK,OAAG,EAAE,SAAS,CAAC,CAAC;AAAA,IAAE,OAAO;AAAA,EAAE,IAAI,IAAE;AAAA,EAAG,EAAE,KAAK,OAAG,EAAE,SAAS,CAAC,CAAC,MAAI,EAAE,YAAU,GAAE,IAAE,EAAE,QAAQ,GAAE,CAAC,GAAE,OAAK,IAAE,MAAG,IAAI,EAAE,QAAQ,CAAC,MAAM;AAAA,EAAG,IAAI,IAAE,IAAG,IAAE,CAAC;AAAA,EAAE,SAAQ,IAAE,EAAE,IAAE,EAAE,QAAO,KAAI;AAAA,IAAC,IAAI,IAAE,EAAE;AAAA,IAAG,IAAG,MAAI,KAAI;AAAA,MAAC,KAAG;AAAA,MAAE,IAAI,IAAE;AAAA,MAAE,SAAQ,IAAE,IAAE,EAAE,KAAG,GAAE,KAAI;AAAA,QAAC,IAAI,IAAE,EAAE,WAAW,CAAC;AAAA,QAAE,IAAG,KAAG,MAAI,KAAG;AAAA,UAAG,IAAE;AAAA,QAAO,SAAG,KAAG,MAAI,KAAG;AAAA,UAAI,IAAE;AAAA,QAAO;AAAA;AAAA,MAAK;AAAA,MAAC,IAAI,IAAE,EAAE,MAAM,GAAE,CAAC;AAAA,MAAE,IAAG,EAAE,SAAS,CAAC,GAAE;AAAA,QAAC,EAAE,QAAQ,IAAE;AAAA,QAAE;AAAA,MAAQ,EAAM,SAAG,EAAE,MAAI,MAAI,IAAG;AAAA,QAAC,EAAE,QAAQ,IAAE;AAAA,QAAE;AAAA,MAAQ;AAAA,MAAC,EAAE,QAAQ,KAAE;AAAA,MAAE;AAAA,IAAQ,EAAM,SAAG,MAAI;AAAA,MAAI,KAAG,GAAE,EAAE,MAAM;AAAA,IAAO,SAAG,MAAI,OAAK,EAAE,IAAG;AAAA,MAAC,KAAG;AAAA,MAAK;AAAA,IAAQ,EAAK;AAAA,MAAC,IAAG,MAAI,OAAK,EAAE,MAAI,EAAE,EAAE,SAAO,OAAK;AAAA,QAAI;AAAA,MAAS,KAAI,MAAI,OAAK,MAAI,OAAK,MAAI,OAAK,MAAI,QAAM,EAAE,IAAG;AAAA,QAAC,IAAI,IAAE,EAAE,QAAQ,GAAE,IAAE,EAAE,EAAE,SAAO;AAAA,QAAG,IAAG,MAAI,OAAK,MAAI,OAAK,MAAI,OAAK,MAAI,KAAI;AAAA,UAAC,KAAG;AAAA,UAAE;AAAA,QAAQ,EAAM,SAAG,MAAI,OAAK,MAAI,KAAI;AAAA,UAAC,KAAG;AAAA,UAAE;AAAA,QAAQ,EAAM;AAAA,YAAE,IAAE,OAAK,MAAI,KAAG,GAAG,OAAK,KAAG,IAAI;AAAA,MAAI,EAAM,SAAG,EAAE,MAAI,EAAE,WAAW,WAAU,CAAC,GAAE;AAAA,QAAC,IAAI,IAAE;AAAA,QAAE,KAAG,GAAE,KAAG,EAAE,MAAM,GAAE,IAAE,CAAC;AAAA,MAAC,EAAM;AAAA,aAAG;AAAA;AAAA,EAAE;AAAA,EAAC,OAAO,IAAE,EAAE,QAAQ,cAAa,CAAC,GAAE,MAAI,EAAE,MAAI,CAAC,IAAE;AAAA;AAA4B,SAAS,CAAC,CAAC,GAAE,GAAE;AAAA,EAAC,IAAI,IAAE,GAAE,IAAE,CAAC,GAAE,IAAE,GAAE,IAAE,EAAE,QAAO,IAAE,EAAE,WAAW,CAAC;AAAA,EAAE,SAAQ,IAAE,EAAE,IAAE,GAAE,KAAI;AAAA,IAAC,IAAI,IAAE,EAAE,WAAW,CAAC;AAAA,IAAE,IAAG,MAAI,KAAG,MAAI,GAAE;AAAA,MAAC,EAAE,KAAK,EAAE,MAAM,GAAE,CAAC,CAAC,GAAE,IAAE,IAAE;AAAA,MAAE;AAAA,IAAQ;AAAA,IAAC,QAAO;AAAA,WAAQ;AAAA,QAAG,KAAG;AAAA,QAAE;AAAA,WAAW;AAAA,WAAQ;AAAA,QAAG,MAAK,EAAE,IAAE,KAAG;AAAA,UAAC,IAAI,IAAE,EAAE,WAAW,CAAC;AAAA,UAAE,IAAG,MAAI,IAAG;AAAA,YAAC,KAAG;AAAA,YAAE;AAAA,UAAQ;AAAA,UAAC,IAAG,MAAI;AAAA,YAAE;AAAA,QAAK;AAAA,QAAC;AAAA,WAAW;AAAA,QAAG,EAAE,KAAG,IAAG;AAAA,QAAI;AAAA,WAAW;AAAA,QAAG,EAAE,KAAG,IAAG;AAAA,QAAI;AAAA,WAAW;AAAA,QAAI,EAAE,KAAG,KAAI;AAAA,QAAI;AAAA,WAAW;AAAA,WAAQ;AAAA,WAAS;AAAA,QAAG,IAAE,KAAG,MAAI,EAAE,IAAE,MAAI;AAAA,QAAI;AAAA;AAAA,EAAM;AAAA,EAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,GAAE;AAAA;AAA+M,SAAS,EAAE,CAAC,GAAE,GAAE;AAAA,EAAC,IAAG,EAAE,WAAW,MAAM;AAAA,IAAE,OAAO;AAAA,EAAK,SAAQ,KAAK;AAAA,IAAE,IAAG,EAAE,KAAK,CAAC;AAAA,MAAE,OAAO;AAAA,EAAE,OAAO;AAAA;AAAyB,SAAS,CAAC,CAAC,GAAE;AAAA,EAAC,OAAO,EAAE,KAAK,CAAC;AAAA;AAAE,SAAS,CAAC,CAAC,GAAE;AAAA,EAAC,OAAO,EAAE,GAAE,GAAG,EAAE,MAAM,OAAG,EAAE,CAAC,KAAG,EAAE,CAAC,KAAG,MAAI,UAAQ,MAAI,YAAU,MAAI,OAAO;AAAA;AAAuG,SAAS,CAAC,CAAC,GAAE;AAAA,EAAC,IAAI,IAAE;AAAA,EAAE,SAAQ,KAAK,EAAE,GAAE,GAAG;AAAA,IAAE,IAAG,CAAC,EAAE,WAAW,MAAM,GAAE;AAAA,MAAC,IAAG,EAAE,CAAC,GAAE;AAAA,QAAC,KAAG;AAAA,QAAE;AAAA,MAAQ;AAAA,MAAC,IAAG,EAAE,KAAK,CAAC,GAAE;AAAA,QAAC,KAAG;AAAA,QAAE;AAAA,MAAQ;AAAA,MAAC,IAAG,EAAE,KAAK,CAAC,GAAE;AAAA,QAAC,KAAG;AAAA,QAAE;AAAA,MAAQ;AAAA,MAAC,OAAM;AAAA,IAAE;AAAA,EAAC,OAAO,IAAE;AAAA;AAAE,SAAS,CAAC,CAAC,GAAE;AAAA,EAAC,OAAO,MAAI,WAAS,MAAI,gBAAc,MAAI,eAAa,MAAI,aAAW,MAAI,aAAW,MAAI,eAAa,MAAI,cAAY,MAAI,mBAAiB,MAAI,kBAAgB,MAAI,gBAAc,MAAI,UAAQ,MAAI,WAAS,MAAI;AAAA;AAAW,SAAS,CAAC,CAAC,GAAE;AAAA,EAAC,IAAI,IAAE;AAAA,EAAE,SAAQ,KAAK,EAAE,GAAE,GAAG,GAAE;AAAA,IAAC,IAAI,IAAE,EAAE,WAAW,CAAC;AAAA,IAAE,IAAG,KAAG,MAAI,KAAG;AAAA,MAAG,OAAM;AAAA,IAAG,EAAE,WAAW,MAAM,MAAI,KAAG;AAAA,EAAE;AAAA,EAAC,OAAO,IAAE;AAAA;AAAE,SAAS,CAAC,CAAC,GAAE;AAAA,EAAC,OAAO,MAAI,cAAY,MAAI,aAAW,MAAI,WAAS,MAAI,YAAU,MAAI,WAAS,MAAI,aAAW,MAAI,cAAY,MAAI;AAAA;AAAY,SAAS,CAAC,CAAC,GAAE;AAAA,EAAC,OAAO,MAAI,YAAU,MAAI;AAAA;AAAgF,SAAS,CAAC,CAAC,GAAE;AAAA,EAAC,OAAO,EAAE,KAAK,CAAC,KAAG,EAAE,CAAC;AAAA;AAAqC,SAAS,CAAC,CAAC,GAAE;AAAA,EAAC,OAAO,EAAE,KAAK,CAAC,KAAG,EAAE,CAAC;AAAA;AAAoD,SAAS,CAAC,CAAC,GAAE;AAAA,EAAC,OAAO,EAAE,KAAK,CAAC,KAAG,EAAE,CAAC;AAAA;AAAwO,SAAS,CAAC,CAAC,GAAE;AAAA,EAAC,OAAO,EAAE,KAAK,CAAC,KAAG,EAAE,CAAC;AAAA;AAAE,SAAS,CAAC,CAAC,GAAE;AAAA,EAAC,IAAI,IAAE;AAAA,EAAE,SAAQ,KAAK,EAAE,GAAE,GAAG,GAAE;AAAA,IAAC,IAAG,MAAI,YAAU,MAAI,SAAO,MAAI,WAAS,MAAI,YAAU,MAAI,QAAO;AAAA,MAAC,KAAG;AAAA,MAAE;AAAA,IAAQ;AAAA,IAAC,IAAG,CAAC,EAAE,WAAW,MAAM,GAAE;AAAA,MAAC,IAAG,EAAE,CAAC,KAAG,EAAE,CAAC,GAAE;AAAA,QAAC,KAAG;AAAA,QAAE;AAAA,MAAQ;AAAA,MAAC,OAAM;AAAA,IAAE;AAAA,EAAC;AAAA,EAAC,OAAO,IAAE;AAAA;AAAE,SAAS,CAAC,CAAC,GAAE;AAAA,EAAC,IAAI,IAAE;AAAA,EAAE,SAAQ,KAAK,EAAE,GAAE,GAAG,GAAE;AAAA,IAAC,IAAG,MAAI,WAAS,MAAI,WAAU;AAAA,MAAC,KAAG;AAAA,MAAE;AAAA,IAAQ;AAAA,IAAC,IAAI,IAAE,EAAE,GAAE,GAAG;AAAA,IAAE,IAAG,EAAE,WAAS,KAAG,EAAE,WAAS;AAAA,MAAE,OAAM;AAAA,IAAG,IAAG,EAAE,MAAM,OAAG,MAAI,UAAQ,EAAE,CAAC,KAAG,EAAE,CAAC,CAAC,GAAE;AAAA,MAAC,KAAG;AAAA,MAAE;AAAA,IAAQ;AAAA,EAAC;AAAA,EAAC,OAAO,IAAE;AAAA;AAAkF,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,OAAO,EAAE,KAAK,CAAC;AAAA;AAA+D,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,OAAO,GAAG,KAAK,CAAC;AAAA;AAAE,SAAS,CAAC,CAAC,GAAE;AAAA,EAAC,IAAI,IAAE,OAAO,CAAC;AAAA,EAAE,OAAO,OAAO,UAAU,CAAC,KAAG,KAAG,KAAG,OAAO,CAAC,MAAI,OAAO,CAAC;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,IAAI,IAAE,OAAO,CAAC;AAAA,EAAE,OAAO,OAAO,UAAU,CAAC,KAAG,IAAE,KAAG,OAAO,CAAC,MAAI,OAAO,CAAC;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,OAAO,EAAE,GAAE,IAAG;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,OAAO,EAAE,GAAE,IAAG;AAAA;AAAE,SAAS,CAAC,CAAC,GAAE,GAAE;AAAA,EAAC,IAAI,IAAE,OAAO,CAAC;AAAA,EAAE,OAAO,KAAG,KAAG,IAAE,MAAI,KAAG,OAAO,CAAC,MAAI,OAAO,CAAC;AAAA;AAAE,SAAS,CAAC,CAAC,GAAE;AAAA,EAAC,OAAM,EAAC,gBAAe,EAAC;AAAA;AAAA,IAAxmN,GAAkoE,GAAqJ,GAAmI,GAAkB,GAA2hC,GAAud,GAAmT,GAA6I,GAA8C,GAAuwB,GAAoC,GAAuE,GAAwE,GAAuF,GAAoL,GAAkf,GAA8B,GAAkF,IAA2b,IAAuC,GAA4C,GAA6C,GAA6C,GAA8C,IAAuG,GAA2E;AAAA;AAAA,EAAxiO;AAAA,EAA6C,IAAE,IAAI,IAAI,CAAC,SAAQ,UAAS,QAAO,SAAQ,UAAS,OAAM,UAAS,WAAU,SAAQ,QAAO,SAAQ,UAAS,QAAO,QAAO,QAAO,QAAO,aAAY,gBAAe,QAAO,cAAa,SAAQ,SAAQ,UAAS,SAAQ,kBAAiB,QAAO,cAAa,SAAQ,aAAY,aAAY,cAAa,aAAY,SAAQ,kBAAiB,YAAW,WAAU,QAAO,YAAW,YAAW,iBAAgB,YAAW,aAAY,YAAW,aAAY,eAAc,kBAAiB,cAAa,cAAa,WAAU,cAAa,gBAAe,iBAAgB,iBAAgB,iBAAgB,iBAAgB,cAAa,YAAW,eAAc,WAAU,WAAU,cAAa,aAAY,eAAc,eAAc,WAAU,aAAY,cAAa,QAAO,aAAY,QAAO,SAAQ,eAAc,QAAO,YAAW,WAAU,aAAY,UAAS,SAAQ,SAAQ,YAAW,iBAAgB,aAAY,gBAAe,aAAY,cAAa,aAAY,wBAAuB,aAAY,cAAa,aAAY,aAAY,eAAc,iBAAgB,gBAAe,kBAAiB,kBAAiB,kBAAiB,eAAc,QAAO,aAAY,SAAQ,WAAU,UAAS,oBAAmB,cAAa,gBAAe,gBAAe,kBAAiB,mBAAkB,qBAAoB,mBAAkB,mBAAkB,gBAAe,aAAY,aAAY,YAAW,eAAc,QAAO,WAAU,SAAQ,aAAY,UAAS,aAAY,UAAS,iBAAgB,aAAY,iBAAgB,iBAAgB,cAAa,aAAY,QAAO,QAAO,QAAO,cAAa,UAAS,iBAAgB,OAAM,aAAY,aAAY,eAAc,UAAS,cAAa,YAAW,YAAW,UAAS,UAAS,WAAU,aAAY,aAAY,aAAY,QAAO,eAAc,aAAY,OAAM,QAAO,WAAU,UAAS,aAAY,UAAS,SAAQ,SAAQ,cAAa,UAAS,eAAc,eAAc,gBAAe,UAAS,cAAa,YAAW,eAAc,cAAa,cAAa,cAAa,gBAAe,SAAQ,aAAY,aAAY,iBAAgB,gBAAe,oBAAmB,QAAO,YAAW,YAAW,eAAc,iBAAiB,CAAC;AAAA,EAAE,IAAE;AAAA,EAAmJ,IAAE,CAAC,QAAO,OAAM,OAAM,SAAQ,OAAM,OAAM,OAAM,OAAM,OAAM,QAAO,QAAO,QAAO,SAAQ,OAAM,QAAO,SAAQ,OAAM,OAAM,OAAO;AAAA,EAAE,IAAE,CAAC,aAAa;AAAA,EAAE,IAAE,IAAI,OAAO,IAAI,EAAE,KAAK,GAAG,SAAQ,GAAG;AAAA,EAAq/B,IAAE,IAAI,WAAW,GAAG;AAAA,EAAmc,IAAE,EAAC,OAAM,GAAE,QAAO,GAAE,YAAW,GAAE,OAAM,GAAE,QAAO,GAAE,SAAQ,GAAE,KAAI,GAAE,UAAS,GAAE,WAAU,GAAE,cAAa,GAAE,OAAM,GAAE,eAAc,GAAE,gBAAe,GAAE,iBAAgB,GAAE,iBAAgB,GAAE,OAAM,IAAG,QAAO,GAAE;AAAA,EAA4G,IAAE;AAAA,EAA2I,IAAE;AAAA,EAA4C,IAAE;AAAA,EAAqwB,IAAE;AAAA,EAAkC,IAAE,IAAI,OAAO,IAAI,EAAE,SAAS;AAAA,EAA2C,IAAE,IAAI,OAAO,IAAI,EAAE,UAAU;AAAA,EAA2C,IAAE,IAAI,OAAO,IAAI,EAAE,cAAc,EAAE,SAAS;AAAA,EAA2C,IAAE,CAAC,MAAK,MAAK,KAAI,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,OAAM,MAAK,OAAM,MAAK,MAAK,QAAO,QAAO,MAAK,MAAK,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,SAAQ,OAAO;AAAA,EAAE,IAAE,IAAI,OAAO,IAAI,EAAE,UAAU,EAAE,KAAK,GAAG,KAAK;AAAA,EAAsc,IAAE,CAAC,OAAM,OAAM,QAAO,MAAM;AAAA,EAAE,IAAE,IAAI,OAAO,IAAI,EAAE,UAAU,EAAE,KAAK,GAAG,KAAK;AAAA,EAAsC,KAAG,IAAI,OAAO,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS;AAAA,EAAoY,KAAE,EAAE,OAAG;AAAA,IAAC,IAAG,EAAE,EAAE,KAAK;AAAA,MAAE,OAAO,EAAE;AAAA,GAAM;AAAA,EAAE,IAAE,EAAE,OAAG;AAAA,IAAC,IAAG,EAAE,EAAE,KAAK;AAAA,MAAE,OAAM,GAAG,EAAE;AAAA,GAAS;AAAA,EAAE,IAAE,EAAE,OAAG;AAAA,IAAC,IAAG,EAAE,EAAE,KAAK;AAAA,MAAE,OAAM,GAAG,EAAE;AAAA,GAAU;AAAA,EAAE,IAAE,EAAE,OAAG;AAAA,IAAC,IAAG,EAAE,EAAE,KAAK;AAAA,MAAE,OAAM,GAAG,EAAE;AAAA,GAAU;AAAA,EAAE,IAAE,EAAE,OAAG;AAAA,IAAC,IAAG,EAAE,EAAE,KAAK;AAAA,MAAE,OAAM,GAAG,EAAE;AAAA,GAAW;AAAA,EAAE,KAAG,EAAE,OAAG;AAAA,IAAC,IAAG,EAAE,aAAW;AAAA,MAAK;AAAA,IAAO,KAAI,GAAE,KAAG,EAAE,EAAE,UAAS,GAAG;AAAA,IAAE,IAAG,EAAE,CAAC,EAAE,CAAC,KAAG,CAAC,EAAE,CAAC;AAAA,MAAG,OAAO,EAAE;AAAA,GAAS;AAAA,EAAE,IAAE,EAAE,OAAG;AAAA,IAAC,IAAG,EAAE,OAAO,EAAE,KAAK,CAAC;AAAA,MAAE,OAAM,UAAU,EAAE;AAAA,GAAyB;AAAA,EAAE,KAAG,EAAC,aAAY,GAAE,OAAM,QAAK,EAAE,QAAQ,GAAE,WAAU,EAAC,MAAK,QAAO,MAAK,2BAA0B,MAAK,+CAA8C,OAAM,kDAAiD,QAAO,qBAAoB,GAAE,MAAK,EAAC,MAAK,eAAc,SAAQ,kBAAiB,UAAS,mBAAkB,UAAS,mBAAkB,QAAO,iBAAgB,SAAQ,kBAAiB,UAAS,mBAAkB,UAAS,mBAAkB,UAAS,kBAAiB,GAAE,aAAY,EAAC,MAAK,QAAO,QAAO,SAAQ,OAAM,aAAY,GAAE,GAAE,cAAa,GAAE,OAAM,QAAK,EAAE,MAAM,GAAE,oBAAmB,GAAE,OAAM,SAAM,KAAI,EAAE,YAAY,MAAK,EAAC,IAAG,kBAAiB,GAAE,OAAM,SAAM,KAAI,EAAE,UAAU,MAAK,EAAC,IAAG,mBAAkB,GAAE,OAAM,SAAM,KAAI,EAAE,WAAW,MAAK,EAAC,IAAG,mBAAkB,GAAE,OAAM,SAAM,KAAI,EAAE,WAAW,MAAK,EAAC,IAAG,gBAAe,GAAE,OAAM,SAAM,KAAI,EAAE,QAAQ,MAAK,EAAC,IAAG,iBAAgB,GAAE,OAAM,SAAM,KAAI,EAAE,SAAS,MAAK,EAAC,IAAG,kBAAiB,GAAE,OAAM,SAAM,KAAI,EAAE,UAAU,MAAK,EAAC,IAAG,eAAc,GAAE,OAAM,SAAM,KAAI,EAAE,OAAO,MAAK,EAAC,IAAG,iBAAgB,GAAE,OAAM,QAAK,EAAE,QAAQ,GAAE,iBAAgB,EAAC,MAAK,QAAO,iBAAgB,qDAAoD,kBAAiB,2DAA0D,iBAAgB,uDAAsD,kBAAiB,8DAA6D,iBAAgB,wDAAuD,kBAAiB,6DAA4D,iBAAgB,sDAAqD,kBAAiB,yDAAwD,GAAE,mBAAkB,GAAE,OAAM,QAAK,EAAE,SAAS,GAAE,oBAAmB,EAAC,QAAO,UAAS,QAAO,UAAS,MAAK,QAAO,eAAc,eAAc,YAAW,YAAW,OAAM,SAAQ,gBAAe,gBAAe,aAAY,aAAY,KAAI,MAAK,GAAE,gBAAe,EAAC,MAAK,QAAO,OAAM,SAAQ,SAAQ,UAAS,GAAE,MAAK,EAAC,GAAE,KAAI,MAAK,IAAG,IAAG,OAAM,SAAQ,OAAM,IAAG,QAAO,IAAG,QAAO,IAAG,QAAO,OAAM,QAAO,OAAM,OAAM,GAAE,aAAY,GAAE,OAAM,SAAM,EAAC,SAAQ,mBAAkB,EAAE,QAAQ,EAAC,IAAG,eAAc,GAAE,OAAM,QAAK,EAAE,SAAS,GAAE,cAAa,EAAC,MAAK,OAAM,IAAG,YAAW,SAAQ,WAAU,IAAG,YAAW,IAAG,UAAS,IAAG,WAAU,OAAM,QAAO,OAAM,UAAS,MAAK,SAAQ,GAAE,eAAc,GAAE,OAAM,QAAK,EAAE,SAAS,GAAE,aAAY,EAAC,SAAQ,OAAM,GAAE,OAAM,GAAE,OAAM,GAAE,OAAM,GAAE,UAAS,EAAC,GAAE,WAAU,EAAC,IAAG,iCAAgC,SAAQ,iEAAgE,IAAG,oEAAmE,IAAG,sEAAqE,IAAG,uEAAsE,OAAM,uCAAsC,OAAM,uCAAsC,MAAK,OAAM,GAAE,gBAAe,GAAE,OAAM,QAAK,EAAE,QAAQ,GAAE,YAAW,EAAC,GAAE,KAAI,IAAG,MAAK,IAAG,OAAM,IAAG,MAAK,IAAG,OAAM,KAAI,KAAI,KAAI,QAAO,KAAI,OAAM,KAAI,QAAO,KAAI,OAAM,KAAI,QAAO,EAAC,GAAE,YAAW,GAAE,OAAM,QAAK,EAAE,QAAQ,GAAE,QAAO,OAAK,KAAI,EAAC,IAAG,SAAQ,EAAC,MAAK,QAAO,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,OAAM,SAAQ,OAAM,SAAQ,IAAG,SAAQ,IAAG,SAAQ,IAAG,SAAQ,IAAG,SAAQ,IAAG,SAAQ,OAAM,SAAQ,OAAM,SAAQ,OAAM,SAAQ,OAAM,SAAQ,OAAM,SAAQ,OAAM,YAAW,GAAC,GAAE,WAAU,CAAC,GAAE,SAAQ,EAAC,MAAK,OAAM,GAAE,UAAS,EAAC,GAAE,KAAI,IAAG,MAAK,IAAG,OAAM,KAAI,KAAI,KAAI,QAAO,KAAI,OAAM,KAAI,QAAO,EAAC,GAAE,QAAO,EAAC,MAAK,QAAO,SAAQ,WAAU,SAAQ,WAAU,MAAK,QAAO,MAAK,QAAO,MAAK,QAAO,MAAK,QAAO,eAAc,eAAc,MAAK,QAAO,gBAAe,gBAAe,UAAS,YAAW,MAAK,QAAO,WAAU,aAAY,iBAAgB,iBAAgB,OAAM,SAAQ,MAAK,QAAO,WAAU,WAAU,MAAK,QAAO,UAAS,YAAW,cAAa,cAAa,cAAa,cAAa,cAAa,cAAa,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,aAAY,aAAY,aAAY,aAAY,aAAY,aAAY,aAAY,aAAY,aAAY,aAAY,aAAY,aAAY,eAAc,eAAc,eAAc,eAAc,WAAU,WAAU,YAAW,WAAU,GAAE,aAAY,GAAE,OAAM,QAAK,EAAE,aAAa,GAAE,eAAc,GAAE,OAAM,QAAK,EAAE,eAAe,GAAE,aAAY,GAAE,OAAM,SAAM,KAAI,EAAE,aAAa,MAAK,EAAC,IAAG,YAAW,EAAC,IAAG,+BAA8B,SAAQ,CAAC,8BAA6B,6BAA6B,GAAE,IAAG,CAAC,+BAA8B,6BAA6B,GAAE,IAAG,CAAC,gCAA+B,4BAA4B,GAAE,IAAG,CAAC,iCAAgC,6BAA6B,GAAE,OAAM,iCAAgC,MAAK,YAAW,GAAE,MAAK,GAAE,OAAM,QAAK,EAAE,QAAQ,GAAE,MAAK,EAAC,GAAE,UAAS,MAAK,YAAW,SAAQ,YAAW,MAAK,OAAM,GAAE,WAAU,GAAE,OAAM,SAAM,EAAC,MAAK,QAAO,OAAM,OAAM,OAAM,cAAa,OAAM,cAAa,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,cAAa,OAAM,cAAa,OAAM,OAAM,OAAM,cAAa,OAAM,cAAa,QAAO,aAAY,QAAO,cAAa,QAAO,OAAM,QAAO,cAAa,QAAO,cAAa,QAAO,OAAM,QAAO,cAAa,QAAO,cAAa,QAAO,OAAM,SAAQ,cAAa,SAAQ,cAAa,MAAK,WAAU,EAAE,SAAS,EAAC,IAAG,UAAS,EAAC,GAAE,KAAI,SAAQ,QAAO,GAAC,GAAE,YAAW,EAAC,GAAE,KAAI,SAAQ,QAAO,GAAC,GAAE,YAAW,EAAC,MAAK,CAAC,iBAAgB,aAAY,cAAa,uBAAsB,oBAAmB,qBAAoB,oBAAoB,GAAE,OAAM,CAAC,YAAW,WAAU,WAAU,qBAAoB,SAAQ,OAAO,GAAE,MAAK,CAAC,gBAAe,kBAAiB,SAAQ,UAAS,YAAW,qBAAoB,iBAAgB,WAAW,EAAC,GAAE,UAAS,EAAC,IAAG,CAAC,WAAU,EAAC,YAAW,OAAM,CAAC,GAAE,IAAG,CAAC,YAAW,EAAC,YAAW,UAAS,CAAC,GAAE,MAAK,CAAC,QAAO,EAAC,YAAW,SAAQ,CAAC,GAAE,IAAG,CAAC,YAAW,EAAC,YAAW,UAAS,CAAC,GAAE,IAAG,CAAC,WAAU,EAAC,YAAW,UAAS,CAAC,GAAE,OAAM,CAAC,UAAS,EAAC,YAAW,OAAM,CAAC,GAAE,OAAM,CAAC,YAAW,EAAC,YAAW,UAAS,CAAC,GAAE,OAAM,CAAC,WAAU,EAAC,YAAW,SAAQ,CAAC,GAAE,OAAM,CAAC,QAAO,EAAC,YAAW,IAAG,CAAC,GAAE,OAAM,CAAC,WAAU,EAAC,YAAW,IAAG,CAAC,GAAE,OAAM,CAAC,UAAS,EAAC,YAAW,IAAG,CAAC,GAAE,OAAM,CAAC,QAAO,EAAC,YAAW,IAAG,CAAC,GAAE,OAAM,CAAC,QAAO,EAAC,YAAW,IAAG,CAAC,EAAC,GAAE,YAAW,EAAC,MAAK,OAAM,YAAW,OAAM,OAAM,OAAM,QAAO,OAAM,QAAO,OAAM,UAAS,OAAM,MAAK,OAAM,WAAU,OAAM,OAAM,MAAK,GAAE,KAAI,GAAE,OAAM,QAAK,EAAE,SAAS,GAAE,oBAAmB,GAAE,OAAM,QAAK,EAAE,QAAQ,GAAE,4BAA2B,EAAC,MAAK,MAAK,MAAK,MAAK,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,QAAO,WAAU,EAAC,GAAE,WAAU,EAAC,GAAE,KAAI,SAAQ,WAAU,EAAC,GAAE,iBAAgB,EAAC,MAAK,QAAO,KAAI,eAAc,KAAI,eAAc,IAAG,iBAAgB,GAAE,cAAa,EAAC,MAAK,QAAO,KAAI,eAAc,KAAI,eAAc,IAAG,iBAAgB,GAAE,YAAW,EAAC,MAAK,QAAO,UAAS,mBAAkB,UAAS,mBAAkB,UAAS,mBAAkB,UAAS,mBAAkB,UAAS,mBAAkB,UAAS,mBAAkB,UAAS,mBAAkB,UAAS,mBAAkB,UAAS,mBAAkB,WAAU,qBAAoB,WAAU,qBAAoB,WAAU,qBAAoB,aAAY,SAAQ,GAAE,eAAc,EAAC,MAAK,QAAO,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,SAAQ,GAAC,GAAE,iBAAgB,EAAC,MAAK,QAAO,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,SAAQ,GAAC,GAAE,SAAQ,EAAC,MAAK,QAAO,UAAS,mBAAkB,UAAS,mBAAkB,UAAS,mBAAkB,UAAS,mBAAkB,UAAS,mBAAkB,UAAS,mBAAkB,UAAS,mBAAkB,UAAS,mBAAkB,UAAS,mBAAkB,WAAU,qBAAoB,WAAU,qBAAoB,WAAU,qBAAoB,aAAY,SAAQ,GAAE,YAAW,EAAC,MAAK,QAAO,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,SAAQ,GAAC,GAAE,cAAa,EAAC,MAAK,QAAO,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,SAAQ,GAAC,GAAE,qBAAoB,EAAC,MAAK,QAAO,SAAQ,WAAU,GAAE,6BAA4B,GAAE,6BAA4B,GAAE,6BAA4B,GAAE,6BAA4B,GAAE,6BAA4B,GAAE,6BAA4B,GAAE,6BAA4B,GAAE,6BAA4B,GAAE,6BAA4B,IAAG,8BAA6B,IAAG,8BAA6B,IAAG,iCAAgC,EAAC,GAAE,kBAAiB,EAAC,MAAK,QAAO,SAAQ,WAAU,GAAE,6BAA4B,GAAE,6BAA4B,GAAE,6BAA4B,GAAE,6BAA4B,GAAE,6BAA4B,GAAE,6BAA4B,GAAE,6BAA4B,GAAE,6BAA4B,GAAE,6BAA4B,IAAG,8BAA6B,IAAG,8BAA6B,IAAG,iCAAgC,EAAC,GAAE,QAAO,GAAE,OAAM,SAAM,EAAC,MAAK,QAAO,OAAM,OAAM,OAAM,cAAa,OAAM,cAAa,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,cAAa,OAAM,cAAa,OAAM,OAAM,OAAM,cAAa,OAAM,cAAa,MAAK,QAAO,QAAO,SAAQ,KAAI,UAAS,KAAI,UAAS,KAAI,UAAS,KAAI,eAAc,KAAI,eAAc,KAAI,kBAAiB,EAAE,SAAS,EAAC,IAAG,WAAU,EAAC,GAAE,QAAO,IAAG,SAAQ,IAAG,SAAQ,IAAG,SAAQ,IAAG,SAAQ,KAAI,aAAY,EAAC,GAAE,OAAM,GAAE,OAAM,SAAM,EAAC,MAAK,QAAO,OAAM,OAAM,OAAM,cAAa,OAAM,cAAa,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,MAAK,WAAU,EAAE,SAAS,EAAC,IAAG,QAAO,EAAC,GAAE,KAAI,SAAQ,WAAU,EAAC,GAAE,WAAU,EAAC,MAAK,EAAC,IAAG,EAAC,WAAU,iBAAgB,EAAC,GAAE,MAAK,EAAC,aAAY,EAAC,WAAU,YAAW,SAAQ,IAAG,EAAC,GAAE,OAAM,EAAC,OAAM,EAAC,SAAQ,KAAI,EAAC,GAAE,QAAO,EAAC,YAAW,EAAC,WAAU,oBAAmB,yBAAwB,0BAAyB,GAAE,OAAM,EAAC,WAAU,QAAO,yBAAwB,0BAAyB,EAAC,EAAC,GAAE,eAAc,EAAC,SAAQ,WAAU,OAAM,YAAW,QAAO,OAAM,MAAK,WAAU,OAAM,UAAS,QAAO,QAAO,GAAE,YAAW,EAAC,MAAK,KAAI,OAAM,QAAO,MAAK,SAAQ,QAAO,OAAM,SAAQ,SAAQ,OAAM,KAAI,GAAE,UAAS,GAAE,QAAO,GAAE,WAAU,GAAE,UAAS,GAAE,WAAU,GAAE,QAAO,GAAE,WAAU,IAAG,SAAQ,GAAE,eAAc,EAAC,MAAK,QAAO,MAAK,QAAO,SAAQ,UAAS,GAAE,gBAAe,EAAC,MAAK,OAAM,GAAE,QAAO,GAAE,OAAM,SAAM,EAAC,MAAK,WAAU,EAAE,SAAS,EAAC,IAAG,WAAU,EAAC,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,QAAO,GAAC,GAAE,WAAU,GAAE,OAAM,SAAM,EAAC,MAAK,QAAO,MAAK,QAAO,QAAO,SAAQ,KAAI,UAAS,KAAI,UAAS,KAAI,UAAS,KAAI,eAAc,KAAI,eAAc,KAAI,kBAAiB,EAAE,SAAS,EAAC,IAAG,UAAS,GAAE,OAAM,SAAM,EAAC,MAAK,QAAO,IAAG,SAAQ,IAAG,SAAQ,IAAG,SAAQ,IAAG,SAAQ,IAAG,SAAQ,OAAM,SAAQ,OAAM,SAAQ,OAAM,SAAQ,OAAM,SAAQ,OAAM,SAAQ,OAAM,SAAQ,MAAK,QAAO,KAAI,eAAc,KAAI,eAAc,KAAI,eAAc,OAAM,WAAU,EAAE,SAAS,EAAC,IAAG,WAAU,GAAE,OAAM,SAAM,EAAC,MAAK,QAAO,QAAO,SAAQ,KAAI,UAAS,KAAI,UAAS,KAAI,UAAS,KAAI,eAAc,KAAI,eAAc,KAAI,kBAAiB,EAAE,SAAS,EAAC,IAAG,UAAS,GAAE,OAAM,SAAM,EAAC,MAAK,QAAO,KAAI,eAAc,KAAI,eAAc,KAAI,kBAAiB,EAAE,SAAS,EAAC,IAAG,gBAAe,EAAC,QAAO,UAAS,QAAO,UAAS,MAAK,QAAO,eAAc,eAAc,YAAW,YAAW,OAAM,SAAQ,gBAAe,gBAAe,aAAY,aAAY,KAAI,MAAK,GAAE,SAAQ,EAAC,GAAE,KAAI,GAAE,QAAO,IAAG,OAAM,IAAG,QAAO,IAAG,OAAM,IAAG,QAAO,IAAG,OAAM,IAAG,QAAO,IAAG,OAAM,IAAG,QAAO,IAAG,OAAM,IAAG,QAAO,IAAG,OAAM,IAAG,QAAO,IAAG,OAAM,IAAG,QAAO,IAAG,OAAM,IAAG,QAAO,IAAG,OAAM,IAAG,QAAO,KAAI,QAAO,EAAC,GAAE,OAAM,EAAC,OAAM,SAAQ,MAAK,QAAO,MAAK,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,SAAQ,GAAC,GAAE,cAAa,GAAE,OAAM,QAAK,EAAE,QAAQ,GAAE,eAAc,EAAC,GAAE,OAAM,GAAE,OAAM,GAAE,OAAM,GAAE,OAAM,GAAE,UAAS,EAAC,GAAE,cAAa,EAAC,GAAE,OAAM,GAAE,OAAM,GAAE,OAAM,GAAE,OAAM,GAAE,UAAS,EAAC,GAAE,SAAQ,GAAE,OAAM,QAAK,EAAE,SAAS,GAAE,kBAAiB,GAAE,OAAM,QAAK,EAAE,QAAQ,GAAE,oBAAmB,GAAE,OAAM,QAAK,EAAE,SAAS,GAAE,WAAU,GAAE,OAAM,SAAM,EAAC,SAAQ,mBAAkB,EAAE,QAAQ,EAAC,IAAG,iBAAgB,GAAE,OAAM,QAAK,EAAE,QAAQ,GAAE,iBAAgB,EAAC,GAAE,OAAM,GAAE,OAAM,GAAE,OAAM,GAAE,OAAM,GAAE,UAAS,EAAC,GAAE,aAAY,GAAE,OAAM,SAAM,EAAC,SAAQ,UAAS,EAAE,SAAS,EAAC,IAAG,WAAU,EAAC,SAAQ,OAAM,GAAE,OAAM,GAAE,OAAM,GAAE,OAAM,GAAE,OAAM,GAAE,UAAS,EAAC,GAAE,QAAO,EAAC,GAAE,QAAO,GAAE,QAAO,GAAE,QAAO,GAAE,QAAO,GAAE,QAAO,IAAG,SAAQ,IAAG,SAAQ,IAAG,SAAQ,KAAI,aAAY,EAAC,GAAE,UAAS,EAAC,GAAE,KAAI,IAAG,MAAK,KAAI,KAAI,KAAI,OAAM,KAAI,QAAO,EAAC,GAAE,OAAM,EAAC,GAAE,KAAI,IAAG,MAAK,IAAG,OAAM,IAAG,MAAK,IAAG,OAAM,KAAI,KAAI,KAAI,QAAO,KAAI,OAAM,KAAI,QAAO,KAAI,UAAS,EAAC,GAAE,SAAQ,EAAC,IAAG,SAAQ,IAAG,SAAQ,IAAG,SAAQ,IAAG,SAAQ,OAAM,QAAO,GAAE,cAAa,GAAE,OAAM,QAAK,EAAE,SAAS,GAAE,eAAc,GAAE,OAAM,QAAK,EAAE,SAAS,GAAE,OAAM,EAAC,GAAE,KAAI,SAAQ,WAAU,EAAC,GAAE,MAAK,EAAC,GAAE,QAAO,GAAE,QAAO,GAAE,QAAO,GAAE,QAAO,GAAE,QAAO,IAAG,YAAW,EAAC,GAAE,OAAM,GAAE,OAAM,QAAK,EAAE,SAAS,GAAE,SAAQ,EAAC,IAAG,OAAM,GAAE,OAAM,KAAG,YAAW,GAAE,WAAU,KAAI,YAAW,GAAE,UAAS,KAAI,YAAW,GAAE,WAAU,KAAI,YAAW,GAAE,QAAO,GAAE,WAAU,GAAE,UAAS,GAAE,WAAU,GAAE,QAAO,GAAE,WAAU,IAAG,UAAS,IAAG,WAAU,IAAG,QAAO,IAAG,UAAS,IAAG,QAAO,IAAG,QAAO,IAAG,QAAO,IAAG,QAAO,IAAG,QAAO,IAAG,QAAO,IAAG,SAAQ,IAAG,SAAQ,IAAG,SAAQ,IAAG,SAAQ,IAAG,SAAQ,IAAG,SAAQ,IAAG,SAAQ,IAAG,SAAQ,IAAG,SAAQ,IAAG,QAAO,GAAE,QAAO,GAAE,OAAM,SAAM,EAAC,MAAK,WAAU,EAAE,QAAQ,EAAC,IAAG,aAAY,EAAC,GAAE,KAAI,GAAE,KAAI,GAAE,QAAO,GAAC,GAAE,UAAS,CAAC,GAAE,MAAK,CAAC,GAAE,WAAU,GAAE,OAAM,QAAK,EAAE,QAAQ,GAAE,qBAAoB,GAAE,OAAM,QAAK,EAAE,QAAQ,GAAE,yBAAwB,EAAC,MAAK,QAAO,aAAY,aAAY,GAAE,OAAM,GAAE,OAAM,GAAE,OAAM,GAAE,OAAM,GAAE,UAAS,EAAC,GAAE,YAAW,GAAE,OAAM,QAAK,EAAE,SAAS,GAAE,aAAY,GAAE,OAAM,QAAK,EAAE,SAAS,GAAE,qBAAoB,EAAC,MAAK,QAAO,GAAE,OAAM,GAAE,OAAM,GAAE,OAAM,GAAE,OAAM,GAAE,UAAS,EAAC,GAAE,iBAAgB,EAAC,QAAO,UAAS,KAAI,OAAM,aAAY,aAAY,OAAM,SAAQ,gBAAe,gBAAe,QAAO,UAAS,eAAc,eAAc,MAAK,QAAO,YAAW,WAAU,GAAE,iBAAgB,EAAC,GAAE,MAAK,IAAG,QAAO,KAAI,SAAQ,KAAI,SAAQ,KAAI,SAAQ,KAAI,SAAQ,KAAI,SAAQ,KAAI,SAAQ,MAAI,aAAY,EAAC,GAAE,oBAAmB,EAAC,SAAQ,SAAQ,GAAE,MAAK,IAAG,QAAO,KAAI,SAAQ,KAAI,SAAQ,KAAI,SAAQ,KAAI,SAAQ,KAAI,SAAQ,KAAI,SAAQ,MAAI,aAAY,EAAC,GAAE,oBAAmB,EAAC,MAAK,QAAO,KAAI,OAAM,SAAQ,sJAAqJ,QAAO,6FAA4F,SAAQ,WAAU,QAAO,cAAa,WAAU,YAAW,GAAE,0BAAyB,EAAC,SAAQ,gCAA+B,QAAO,UAAS,IAAG,8BAA6B,KAAI,8BAA6B,UAAS,+BAA8B,GAAE,WAAU,GAAE,OAAM,SAAM,EAAC,OAAM,OAAM,OAAM,cAAa,OAAM,cAAa,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,MAAK,WAAU,EAAE,SAAS,EAAC,IAAG,MAAK,GAAE,OAAM,SAAM,EAAC,MAAK,QAAO,OAAM,OAAM,OAAM,cAAa,OAAM,cAAa,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,cAAa,OAAM,cAAa,OAAM,OAAM,OAAM,cAAa,OAAM,cAAa,QAAO,aAAY,QAAO,cAAa,QAAO,OAAM,QAAO,cAAa,QAAO,cAAa,QAAO,OAAM,QAAO,cAAa,QAAO,cAAa,QAAO,OAAM,SAAQ,cAAa,SAAQ,cAAa,MAAK,QAAO,KAAI,eAAc,KAAI,eAAc,KAAI,kBAAiB,EAAE,SAAS,EAAC,IAAG,OAAM,GAAE,OAAM,SAAM,EAAC,MAAK,QAAO,OAAM,OAAM,OAAM,cAAa,OAAM,cAAa,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,cAAa,OAAM,cAAa,OAAM,OAAM,OAAM,cAAa,OAAM,cAAa,QAAO,aAAY,QAAO,cAAa,QAAO,OAAM,QAAO,cAAa,QAAO,cAAa,QAAO,OAAM,QAAO,cAAa,QAAO,cAAa,QAAO,OAAM,SAAQ,cAAa,SAAQ,cAAa,MAAK,QAAO,QAAO,SAAQ,KAAI,UAAS,KAAI,UAAS,KAAI,UAAS,KAAI,eAAc,KAAI,eAAc,KAAI,kBAAiB,EAAE,SAAS,EAAC,IAAG,YAAW,EAAC,MAAK,QAAO,QAAO,mBAAkB,UAAS,YAAW,WAAU,YAAW,GAAE,QAAO,EAAC,MAAK,QAAO,GAAE,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,SAAQ,GAAC,EAAC;AAAA;;;ACAx7sB,SAAS,EAAE,CAAC,GAAE,GAAE;AAAA,EAAC,IAAI,IAAE,GAAG,OAAK,EAAC,MAAK,EAAE,MAAK,MAAK,EAAC,IAAE;AAAA,EAAK,EAAE,OAAK,aAAW,IAAE,MAAI,EAAE,MAAM,CAAC;AAAA,EAAG,IAAI,IAAE,CAAC,GAAE,IAAE,CAAC,GAAE,KAAE,CAAC,GAAE,IAAE,MAAK,IAAE,MAAK,KAAE,IAAG,KAAE,IAAG,KAAE,GAAE;AAAA,EAAE,SAAQ,IAAE,EAAE,IAAE,EAAE,QAAO,KAAI;AAAA,IAAC,IAAI,KAAE,EAAE,WAAW,CAAC;AAAA,IAAE,IAAG,EAAE,OAAI,OAAK,KAAE,EAAE,WAAW,IAAE,CAAC,GAAE,OAAI;AAAA,MAAK,IAAG,OAAI;AAAA,QAAG,OAAI,OAAK,KAAE,IAAG,MAAG,EAAE,MAAM,GAAE,IAAE,CAAC,GAAE,KAAG;AAAA,MAAO,SAAG,OAAI,MAAI,EAAE,WAAW,IAAE,CAAC,MAAI,IAAG;AAAA,QAAC,IAAI,KAAE;AAAA,QAAE,SAAQ,KAAE,IAAE,EAAE,KAAE,EAAE,QAAO;AAAA,UAAI,IAAG,KAAE,EAAE,WAAW,EAAC,GAAE,OAAI;AAAA,YAAG,MAAG;AAAA,UAAO,SAAG,OAAI,MAAI,EAAE,WAAW,KAAE,CAAC,MAAI,IAAG;AAAA,YAAC,IAAE,KAAE;AAAA,YAAE;AAAA,UAAK;AAAA,QAAC,IAAI,IAAE,EAAE,MAAM,IAAE,IAAE,CAAC;AAAA,QAAE,IAAG,EAAE,WAAW,CAAC,MAAI,IAAG;AAAA,UAAC,IAAI,KAAE,GAAG,EAAE,MAAM,GAAE,EAAE,CAAC;AAAA,UAAE,EAAE,KAAK,EAAC,GAAE,MAAI,GAAE,MAAI,CAAC,GAAE,IAAE,IAAE,CAAC,GAAE,GAAE,MAAI,CAAC,GAAE,IAAE,IAAE,CAAC;AAAA,QAAE;AAAA,MAAC,EAAM,SAAG,OAAI,MAAI,OAAI,IAAG;AAAA,QAAC,IAAI,KAAE;AAAA,QAAE,SAAQ,IAAE,IAAE,EAAE,IAAE,EAAE,QAAO;AAAA,UAAI,IAAG,KAAE,EAAE,WAAW,CAAC,GAAE,OAAI;AAAA,YAAG,KAAG;AAAA,UAAO,SAAG,OAAI,IAAE;AAAA,YAAC,IAAE;AAAA,YAAE;AAAA,UAAK,EAAK;AAAA,YAAC,IAAG,OAAI,OAAK,EAAE,WAAW,IAAE,CAAC,MAAI,OAAI,EAAE,WAAW,IAAE,CAAC,MAAI,MAAI,EAAE,WAAW,IAAE,CAAC,MAAI;AAAA,cAAI,MAAM,IAAI,MAAM,wBAAwB,EAAE,MAAM,IAAE,IAAE,CAAC,IAAE,OAAO,aAAa,EAAC,GAAG;AAAA,YAAE,IAAG,OAAI,OAAI,OAAI,MAAI,EAAE,WAAW,IAAE,CAAC,MAAI;AAAA,cAAG,MAAM,IAAI,MAAM,wBAAwB,EAAE,MAAM,IAAE,CAAC,IAAE,OAAO,aAAa,EAAC,GAAG;AAAA;AAAA,QAAE,MAAG,EAAE,MAAM,IAAE,IAAE,CAAC;AAAA,MAAC,EAAK;AAAA,QAAC,KAAI,OAAI,MAAI,OAAI,OAAI,OAAI,QAAM,KAAE,EAAE,WAAW,IAAE,CAAC,OAAK,OAAI,MAAI,OAAI,OAAI,OAAI,MAAI,OAAI,OAAK,KAAE,EAAE,WAAW,IAAE,CAAC,MAAI,MAAG;AAAA,UAAI;AAAA,QAAS,IAAG,OAAI,KAAG;AAAA,UAAC,IAAG,GAAE,WAAS;AAAA,YAAE;AAAA,UAAS,KAAE,GAAE,WAAW,GAAE,SAAO,CAAC,GAAE,OAAI,MAAI,OAAI,OAAI,OAAI,OAAK,MAAG;AAAA,QAAI,EAAM,SAAG,OAAI,MAAI,EAAE,WAAW,IAAE,CAAC,MAAI,MAAI,GAAE,WAAS,GAAE;AAAA,UAAC,IAAI,KAAE,IAAG,IAAE,GAAE,KAAE;AAAA,UAAG,SAAQ,KAAE,IAAE,EAAE,KAAE,EAAE,QAAO;AAAA,YAAI,IAAG,KAAE,EAAE,WAAW,EAAC,GAAE,OAAI;AAAA,cAAG,MAAG;AAAA,YAAO,SAAG,OAAI,MAAI,EAAE,WAAW,KAAE,CAAC,MAAI,IAAG;AAAA,cAAC,SAAQ,IAAE,KAAE,EAAE,IAAE,EAAE,QAAO;AAAA,gBAAI,IAAG,KAAE,EAAE,WAAW,CAAC,GAAE,OAAI;AAAA,kBAAG,KAAG;AAAA,gBAAO,SAAG,OAAI,MAAI,EAAE,WAAW,IAAE,CAAC,MAAI,IAAG;AAAA,kBAAC,KAAE,IAAE;AAAA,kBAAE;AAAA,gBAAK;AAAA,YAAC,EAAM,SAAG,OAAI,MAAI,OAAI;AAAA,cAAG,KAAE,GAAE,SAAO,KAAE;AAAA,YAAO,SAAG,OAAI,MAAI,GAAE,WAAS,GAAE;AAAA,cAAC,MAAG,EAAE,MAAM,GAAE,EAAC,GAAE,IAAE;AAAA,cAAE;AAAA,YAAK,EAAM,SAAG,OAAI;AAAA,cAAG,MAAG;AAAA,YAAS,SAAG,OAAI;AAAA,cAAG,MAAG;AAAA,YAAS,SAAG,OAAI;AAAA,cAAG,MAAG;AAAA,YAAS,UAAI,OAAI,MAAI,EAAE,SAAO,MAAI,OAAI,GAAE,WAAS,GAAE;AAAA,cAAC,IAAE,KAAE,GAAE,MAAG,EAAE,MAAM,GAAE,EAAC;AAAA,cAAE;AAAA,YAAK,EAAK;AAAA,eAAC,OAAI,MAAI,OAAI,MAAI,OAAI,OAAK,GAAE,SAAO,KAAG,EAAE,QAAK,GAAE,GAAE,SAAO,OAAK,KAAE,GAAE,MAAM,GAAE,EAAE;AAAA,UAAG,IAAI,KAAE,GAAG,IAAE,EAAC;AAAA,UAAE,IAAG,CAAC;AAAA,YAAE,MAAM,IAAI,MAAM,2CAA2C;AAAA,UAAE,MAAI,GAAE,MAAI,CAAC,GAAE,GAAE,CAAC,GAAE,GAAE,MAAI,CAAC,GAAE,GAAE,CAAC,IAAG,IAAE,EAAE,MAAM,KAAK,EAAC,IAAE,EAAE,KAAK,EAAC,GAAE,KAAE;AAAA,QAAE,EAAM,SAAG,OAAI,MAAI,GAAE,WAAW,CAAC,MAAI;AAAA,UAAG,IAAE,GAAG,EAAC,GAAE,MAAI,EAAE,MAAI,CAAC,GAAE,IAAE,CAAC,GAAE,EAAE,MAAI,CAAC,GAAE,IAAE,CAAC,IAAG,IAAE,EAAE,MAAM,KAAK,CAAC,IAAE,EAAE,KAAK,CAAC,GAAE,KAAE,IAAG,IAAE;AAAA,QAAU,SAAG,OAAI,MAAI,GAAE,GAAE,SAAO,OAAK,KAAI;AAAA,UAAC,IAAI,KAAE,GAAG,EAAC;AAAA,UAAE,IAAG,CAAC;AAAA,YAAE,MAAM,GAAE,WAAS,IAAE,IAAI,MAAM,sBAAsB,IAAE,IAAI,MAAM,0BAA0B,GAAE,KAAK,KAAK;AAAA,UAAE,MAAI,GAAE,MAAI,CAAC,GAAE,IAAE,CAAC,GAAE,GAAE,MAAI,CAAC,GAAE,IAAE,CAAC,IAAG,IAAE,EAAE,MAAM,KAAK,EAAC,IAAE,EAAE,KAAK,EAAC,GAAE,KAAE;AAAA,QAAE,EAAM,SAAG,OAAI,MAAI,GAAE,GAAE,SAAO,OAAK;AAAA,UAAI,MAAG,KAAI,IAAE,GAAE,GAAE,KAAK,CAAC,GAAE,MAAI,EAAE,MAAI,CAAC,GAAE,IAAE,CAAC,GAAE,EAAE,MAAI,CAAC,GAAE,IAAE,CAAC,IAAG,KAAG,EAAE,MAAM,KAAK,CAAC,GAAE,GAAE,KAAK,CAAC,GAAE,IAAE,GAAE,KAAE,IAAG,IAAE;AAAA,QAAU,SAAG,OAAI,MAAI,GAAE,GAAE,SAAO,OAAK,KAAI;AAAA,UAAC,IAAG,OAAI;AAAA,YAAG,MAAM,IAAI,MAAM,mBAAmB;AAAA,UAAE,IAAG,KAAE,GAAE,MAAM,GAAE,EAAE,GAAE,GAAE,SAAO;AAAA,YAAE,IAAG,GAAE,WAAW,CAAC,MAAI;AAAA,cAAG,IAAE,GAAG,EAAC,GAAE,MAAI,EAAE,MAAI,CAAC,GAAE,IAAE,CAAC,GAAE,EAAE,MAAI,CAAC,GAAE,IAAE,CAAC,IAAG,IAAE,EAAE,MAAM,KAAK,CAAC,IAAE,EAAE,KAAK,CAAC,GAAE,KAAE,IAAG,IAAE;AAAA,YAAS;AAAA,cAAC,IAAI,IAAE,GAAE,QAAQ,GAAG;AAAA,cAAE,IAAG,GAAE;AAAA,gBAAC,IAAI,KAAE,GAAG,IAAE,CAAC;AAAA,gBAAE,IAAG,CAAC;AAAA,kBAAE,MAAM,IAAI,MAAM,0BAA0B,GAAE,KAAK,KAAK;AAAA,gBAAE,MAAI,GAAE,MAAI,CAAC,GAAE,IAAE,CAAC,GAAE,GAAE,MAAI,CAAC,GAAE,IAAE,CAAC,IAAG,EAAE,MAAM,KAAK,EAAC;AAAA,cAAC;AAAA;AAAA,UAAE,IAAI,KAAE,GAAE,IAAI,KAAG;AAAA,UAAK,OAAI,QAAM,KAAG,EAAE,KAAK,CAAC,GAAE,IAAE,IAAE,KAAE,IAAG,IAAE;AAAA,QAAI,EAAM,SAAG,OAAI;AAAA,UAAG,MAAG,KAAI,MAAG;AAAA,QAAS,SAAG,OAAI,IAAG;AAAA,UAAC,IAAG,GAAE,GAAE,SAAO,OAAK;AAAA,YAAI,MAAM,IAAI,MAAM,mBAAmB;AAAA,UAAE,KAAE,GAAE,MAAM,GAAE,EAAE,GAAE,MAAG;AAAA,QAAG,EAAK;AAAA,UAAC,IAAG,GAAE,WAAS,MAAI,OAAI,MAAI,OAAI,OAAI,OAAI;AAAA,YAAI;AAAA,UAAS,OAAI,OAAK,KAAE,IAAG,MAAG,OAAO,aAAa,EAAC;AAAA;AAAA;AAAA,EAAG;AAAA,EAAC,IAAG,GAAE,WAAW,CAAC,MAAI,IAAG;AAAA,IAAC,IAAI,IAAE,GAAG,EAAC;AAAA,IAAE,MAAI,EAAE,MAAI,CAAC,GAAE,IAAE,EAAE,MAAM,GAAE,EAAE,MAAI,CAAC,GAAE,IAAE,EAAE,MAAM,IAAG,EAAE,KAAK,CAAC;AAAA,EAAC;AAAA,EAAC,IAAG,GAAE,SAAO,KAAG,GAAE;AAAA,IAAC,IAAG,EAAE,SAAO;AAAA,MAAO,MAAM,IAAI,MAAM,wBAAwB,EAAE,UAAU;AAAA,IAAE,IAAG,EAAE,SAAO;AAAA,MAAU,MAAM,IAAI,MAAM,wBAAwB,EAAE,QAAQ,EAAE,QAAQ;AAAA,EAAC;AAAA,EAAC,OAAO,EAAE,SAAO,IAAE,EAAE,OAAO,CAAC,IAAE;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE,IAAE,CAAC,GAAE;AAAA,EAAC,IAAI,IAAE,GAAE,IAAE;AAAA,EAAG,SAAQ,IAAE,EAAE,IAAE,EAAE,QAAO,KAAI;AAAA,IAAC,IAAI,KAAE,EAAE,WAAW,CAAC;AAAA,IAAE,IAAG,OAAI,MAAI,OAAI,IAAG;AAAA,MAAC,IAAE,EAAE,MAAM,GAAE,CAAC,GAAE,IAAE,EAAE,MAAM,CAAC;AAAA,MAAE;AAAA,IAAK;AAAA,EAAC;AAAA,EAAC,OAAO,GAAE,EAAE,KAAK,GAAE,EAAE,KAAK,GAAE,CAAC;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE,IAAE,EAAE,QAAQ,GAAG,GAAE;AAAA,EAAC,IAAG,MAAI;AAAA,IAAG,OAAO;AAAA,EAAK,IAAI,IAAE,EAAE,QAAQ,cAAa,IAAE,CAAC;AAAA,EAAE,OAAO,GAAE,EAAE,MAAM,GAAE,CAAC,EAAE,KAAK,GAAE,EAAE,MAAM,IAAE,GAAE,MAAI,KAAG,EAAE,SAAO,CAAC,EAAE,KAAK,GAAE,MAAI,EAAE;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,IAAG,UAAU,WAAS;AAAA,IAAE,MAAM,IAAI,UAAU,oCAAoC;AAAA,EAAE,IAAI,IAAE,OAAO,CAAC,GAAE,IAAE,EAAE,QAAO,IAAE,IAAG,GAAE,KAAE,IAAG,IAAE,EAAE,WAAW,CAAC;AAAA,EAAE,IAAG,MAAI,KAAG,MAAI;AAAA,IAAG,OAAM,OAAK;AAAA,EAAE,MAAK,EAAE,IAAE,KAAG;AAAA,IAAC,IAAG,IAAE,EAAE,WAAW,CAAC,GAAE,MAAI,GAAE;AAAA,MAAC,MAAG;AAAA,MAAS;AAAA,IAAQ;AAAA,IAAC,IAAG,KAAG,KAAG,KAAG,MAAI,MAAI,OAAK,MAAI,KAAG,KAAG,MAAI,KAAG,MAAI,MAAI,KAAG,KAAG,MAAI,KAAG,MAAI,MAAI,IAAG;AAAA,MAAC,MAAG,OAAK,EAAE,SAAS,EAAE,IAAE;AAAA,MAAI;AAAA,IAAQ;AAAA,IAAC,IAAG,KAAG,OAAK,MAAI,MAAI,MAAI,MAAI,KAAG,MAAI,KAAG,MAAI,KAAG,MAAI,KAAG,MAAI,KAAG,MAAI,KAAG,KAAI;AAAA,MAAC,MAAG,EAAE,OAAO,CAAC;AAAA,MAAE;AAAA,IAAQ;AAAA,IAAC,MAAG,OAAK,EAAE,OAAO,CAAC;AAAA,EAAC;AAAA,EAAC,OAAO;AAAA;AAAE,SAAS,GAAE,CAAC,GAAE;AAAA,EAAC,OAAO,EAAE,QAAQ,2CAA0C,OAAG,EAAE,SAAO,IAAE,OAAO,cAAc,OAAO,SAAS,EAAE,MAAM,CAAC,EAAE,KAAK,GAAE,EAAE,CAAC,IAAE,EAAE,EAAE;AAAA;AAA2P,SAAS,EAAE,CAAC,GAAE,GAAE;AAAA,EAAC,QAAO,GAAG,IAAI,CAAC,KAAG,CAAC,GAAG,KAAK,OAAG,MAAI,KAAG,EAAE,WAAW,GAAG,IAAI,CAAC;AAAA;AAA8iF,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,OAAM,EAAC,MAAK,QAAO,OAAM,EAAC;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE,GAAE;AAAA,EAAC,OAAM,EAAC,MAAK,YAAW,OAAM,GAAE,OAAM,EAAC;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,OAAM,EAAC,MAAK,aAAY,OAAM,EAAC;AAAA;AAAE,SAAS,GAAE,CAAC,GAAE,GAAE,IAAE,MAAK;AAAA,EAAC,SAAQ,IAAE,EAAE,IAAE,EAAE,QAAO,KAAI;AAAA,IAAC,IAAI,IAAE,EAAE,IAAG,KAAE,OAAG,IAAE,GAAE,IAAE,EAAE,GAAE,EAAC,QAAO,GAAE,WAAW,CAAC,IAAE;AAAA,MAAC,OAAI,KAAE,MAAG,MAAM,QAAQ,EAAC,IAAE,GAAE,WAAS,KAAG,EAAE,OAAO,GAAE,CAAC,GAAE,IAAE,KAAG,GAAE,WAAS,KAAG,EAAE,KAAG,GAAE,IAAG,IAAE,MAAI,EAAE,OAAO,GAAE,GAAE,GAAG,EAAC,GAAE,IAAE,GAAE,UAAQ,EAAE,KAAG;AAAA,MAAG,CAAC,KAAG;AAAA,IAAE,IAAG,IAAE;AAAA,MAAC,MAAI,IAAE,MAAI,KAAG,IAAE;AAAA,MAAE;AAAA,IAAQ;AAAA,IAAC,IAAG,MAAI;AAAA,MAAE,OAAO;AAAA,IAAE,IAAG,MAAI,KAAG,EAAE,SAAO,cAAY,IAAG,EAAE,OAAM,GAAE,CAAC,MAAI;AAAA,MAAE,OAAO;AAAA,EAAC;AAAA;AAAE,SAAS,EAAC,CAAC,GAAE;AAAA,EAAC,IAAI,IAAE;AAAA,EAAG,SAAQ,KAAK;AAAA,IAAE,QAAO,EAAE;AAAA,WAAU;AAAA,WAAW,aAAY;AAAA,QAAC,KAAG,EAAE;AAAA,QAAM;AAAA,MAAK;AAAA,WAAK;AAAA,QAAW,KAAG,EAAE,QAAM,MAAI,GAAE,EAAE,KAAK,IAAE;AAAA;AAAA,EAAI,OAAO;AAAA;AAAyF,SAAS,EAAC,CAAC,GAAE;AAAA,EAAC,IAAE,EAAE,WAAW;AAAA,GACtpQ;AAAA,CACD;AAAA,EAAE,IAAI,IAAE,CAAC,GAAE,IAAE,CAAC,GAAE,IAAE,MAAK,IAAE,IAAG;AAAA,EAAE,SAAQ,IAAE,EAAE,IAAE,EAAE,QAAO,KAAI;AAAA,IAAC,IAAI,IAAE,EAAE,WAAW,CAAC;AAAA,IAAE,QAAO;AAAA,WAAQ,IAAG;AAAA,QAAC,KAAG,EAAE,KAAG,EAAE,IAAE,IAAG;AAAA,QAAI;AAAA,MAAK;AAAA,WAAM;AAAA,WAAQ;AAAA,WAAQ;AAAA,WAAQ;AAAA,WAAQ;AAAA,WAAQ;AAAA,WAAQ;AAAA,WAAQ;AAAA,WAAQ,IAAG;AAAA,QAAC,IAAG,EAAE,SAAO,GAAE;AAAA,UAAC,IAAI,KAAE,GAAG,CAAC;AAAA,UAAE,IAAE,EAAE,MAAM,KAAK,EAAC,IAAE,EAAE,KAAK,EAAC,GAAE,IAAE;AAAA,QAAE;AAAA,QAAC,IAAI,KAAE,GAAE,KAAE,IAAE;AAAA,QAAE,MAAK,KAAE,EAAE,WAAS,KAAE,EAAE,WAAW,EAAC,GAAE,EAAE,OAAI,MAAI,OAAI,MAAI,OAAI,MAAI,OAAI,MAAI,OAAI,MAAI,OAAI,MAAI,OAAI,MAAI,OAAI,MAAI,OAAI,MAAK;AAAA;AAAA,QAAK,IAAE,KAAE;AAAA,QAAE,IAAI,KAAE,GAAG,EAAE,MAAM,IAAE,EAAC,CAAC;AAAA,QAAE,IAAE,EAAE,MAAM,KAAK,EAAC,IAAE,EAAE,KAAK,EAAC;AAAA,QAAE;AAAA,MAAK;AAAA,WAAM;AAAA,WAAQ,IAAG;AAAA,QAAC,IAAI,KAAE;AAAA,QAAE,SAAQ,KAAE,IAAE,EAAE,KAAE,EAAE,QAAO;AAAA,UAAI,IAAG,KAAE,EAAE,WAAW,EAAC,GAAE,OAAI;AAAA,YAAG,MAAG;AAAA,UAAO,SAAG,OAAI,GAAE;AAAA,YAAC,IAAE;AAAA,YAAE;AAAA,UAAK;AAAA,QAAC,KAAG,EAAE,MAAM,IAAE,IAAE,CAAC;AAAA,QAAE;AAAA,MAAK;AAAA,WAAM,IAAG;AAAA,QAAC,IAAI,KAAE,GAAG,GAAE,CAAC,CAAC;AAAA,QAAE,IAAE,IAAG,IAAE,EAAE,MAAM,KAAK,EAAC,IAAE,EAAE,KAAK,EAAC,GAAE,EAAE,KAAK,EAAC,GAAE,IAAE;AAAA,QAAE;AAAA,MAAK;AAAA,WAAM,IAAG;AAAA,QAAC,IAAI,KAAE,EAAE,IAAI;AAAA,QAAE,IAAG,EAAE,SAAO,GAAE;AAAA,UAAC,IAAI,KAAE,GAAG,CAAC;AAAA,UAAE,GAAE,MAAM,KAAK,EAAC,GAAE,IAAE;AAAA,QAAE;AAAA,QAAC,EAAE,SAAO,IAAE,IAAE,EAAE,EAAE,SAAO,KAAG,IAAE;AAAA,QAAK;AAAA,MAAK;AAAA;AAAA,QAAS,KAAG,OAAO,aAAa,CAAC;AAAA;AAAA,EAAE;AAAA,EAAC,OAAO,EAAE,SAAO,KAAG,EAAE,KAAK,GAAG,CAAC,CAAC,GAAE;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,IAAI,IAAE,CAAC;AAAA,EAAE,OAAO,IAAG,GAAE,CAAC,GAAE,OAAG;AAAA,IAAC,IAAG,EAAE,EAAE,SAAO,cAAY,EAAE,UAAQ;AAAA,MAAO,OAAO,IAAG,EAAE,OAAM,OAAG;AAAA,QAAC,EAAE,SAAO,UAAQ,EAAE,MAAM,OAAK,OAAK,EAAE,MAAM,OAAK,OAAK,EAAE,KAAK,EAAE,KAAK;AAAA,OAAE,GAAE;AAAA,GAAE,GAAE;AAAA;AAAY,SAAS,EAAC,CAAC,GAAE,IAAE,CAAC,GAAE;AAAA,EAAC,OAAM,EAAC,MAAK,QAAO,UAAS,GAAE,OAAM,EAAC;AAAA;AAAE,SAAS,EAAC,CAAC,GAAE,IAAE,IAAG,IAAE,CAAC,GAAE;AAAA,EAAC,OAAM,EAAC,MAAK,WAAU,MAAK,GAAE,QAAO,GAAE,OAAM,EAAC;AAAA;AAAE,SAAS,EAAC,CAAC,GAAE,IAAE,CAAC,GAAE;AAAA,EAAC,OAAO,EAAE,WAAW,CAAC,MAAI,KAAG,GAAG,GAAE,CAAC,IAAE,GAAE,GAAE,CAAC;AAAA;AAAE,SAAS,EAAC,CAAC,GAAE,GAAE,IAAE,OAAG;AAAA,EAAC,OAAM,EAAC,MAAK,eAAc,UAAS,GAAE,OAAM,GAAE,WAAU,EAAC;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,OAAM,EAAC,MAAK,WAAU,OAAM,EAAC;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE,GAAE;AAAA,EAAC,OAAM,EAAC,MAAK,WAAU,SAAQ,GAAE,OAAM,EAAC;AAAA;AAAE,SAAS,EAAC,CAAC,GAAE;AAAA,EAAC,OAAM,EAAC,MAAK,WAAU,OAAM,EAAC;AAAA;AAAE,SAAS,EAAC,CAAC,GAAE,GAAE,IAAE,CAAC,GAAE,IAAE,CAAC,GAAE;AAAA,EAAC,SAAQ,IAAE,EAAE,IAAE,EAAE,QAAO,KAAI;AAAA,IAAC,IAAI,KAAE,EAAE,IAAG,IAAE,EAAE,EAAE,SAAO,MAAI;AAAA,IAAK,IAAG,GAAE,SAAO,WAAU;AAAA,MAAC,IAAG,GAAE,GAAE,OAAM,GAAE,GAAE,KAAI,MAAK,GAAE,QAAO,CAAC,MAAI;AAAA,QAAE,OAAO;AAAA,MAAE;AAAA,IAAQ;AAAA,IAAC,EAAE,KAAK,EAAC;AAAA,IAAE,IAAI,IAAE,OAAG,KAAE,GAAE,KAAE,EAAE,IAAE,EAAC,QAAO,GAAE,SAAQ,GAAE,MAAK,GAAE,WAAW,CAAC,IAAE;AAAA,MAAC,MAAI,IAAE,MAAG,MAAM,QAAQ,EAAC,IAAE,GAAE,WAAS,KAAG,EAAE,OAAO,GAAE,CAAC,GAAE,KAAE,KAAG,GAAE,WAAS,KAAG,EAAE,KAAG,GAAE,IAAG,KAAE,MAAI,EAAE,OAAO,GAAE,GAAE,GAAG,EAAC,GAAE,KAAE,GAAE,WAAS,EAAE,KAAG,IAAE,KAAE;AAAA,MAAI,CAAC,KAAG;AAAA,IAAE,IAAG,EAAE,IAAI,GAAE,GAAE;AAAA,MAAC,OAAI,IAAE,MAAI,KAAG,KAAE;AAAA,MAAE;AAAA,IAAQ;AAAA,IAAC,IAAG,OAAI;AAAA,MAAE,OAAO;AAAA,IAAE,IAAG,OAAI,KAAG,WAAU,IAAE;AAAA,MAAC,EAAE,KAAK,EAAC;AAAA,MAAE,IAAI,KAAE,GAAE,GAAE,OAAM,GAAE,GAAE,CAAC;AAAA,MAAE,IAAG,EAAE,IAAI,GAAE,OAAI;AAAA,QAAE,OAAO;AAAA,IAAC;AAAA,EAAC;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE,GAAE,IAAE,CAAC,GAAE,IAAE,CAAC,GAAE;AAAA,EAAC,SAAQ,IAAE,EAAE,IAAE,EAAE,QAAO,KAAI;AAAA,IAAC,IAAI,KAAE,EAAE,IAAG,IAAE,EAAE,EAAE,SAAO,MAAI;AAAA,IAAK,IAAG,GAAE,SAAO,UAAQ,GAAE,SAAO;AAAA,MAAU,EAAE,KAAK,EAAC,GAAE,GAAG,GAAE,OAAM,GAAE,GAAE,CAAC,GAAE,EAAE,IAAI;AAAA,IAAO,SAAG,GAAE,SAAO,WAAU;AAAA,MAAC,GAAG,GAAE,OAAM,GAAE,GAAE,KAAI,MAAK,GAAE,QAAO,CAAC;AAAA,MAAE;AAAA,IAAQ;AAAA,IAAC,EAAE,KAAK,EAAC,GAAE,EAAE,IAAE,EAAC,QAAO,GAAE,SAAQ,GAAE,MAAK,GAAE,WAAW,CAAC,GAAE;AAAA,MAAC,MAAM,QAAQ,CAAC,IAAE,EAAE,WAAS,IAAE,EAAE,OAAO,GAAE,CAAC,IAAE,EAAE,WAAS,IAAE,EAAE,KAAG,EAAE,KAAG,EAAE,OAAO,GAAE,GAAE,GAAG,CAAC,IAAE,EAAE,KAAG,GAAE,KAAG,EAAE,SAAO;AAAA,MAAE,CAAC,GAAE,EAAE,IAAI;AAAA,EAAC;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE,GAAE,IAAE,GAAE;AAAA,EAAC,IAAI,IAAE,CAAC,GAAE,IAAE,IAAI,KAAI,KAAE,IAAI,GAAE,MAAI,IAAI,GAAG,GAAE,IAAE,IAAI,GAAE,MAAI,IAAI,GAAG,GAAE,IAAE,IAAI,KAAI,KAAE,IAAI,KAAI,KAAE,CAAC,GAAE,KAAE,CAAC,GAAE,KAAE,IAAI,GAAE,MAAI,IAAI,GAAG;AAAA,EAAE,SAAS,CAAC,CAAC,IAAE,GAAE,KAAE,CAAC,GAAE,KAAE,GAAE;AAAA,IAAC,IAAG,GAAE,SAAO,eAAc;AAAA,MAAC,IAAG,GAAE,aAAW,eAAa,GAAE,UAAa,aAAG,GAAE,UAAQ;AAAA,QAAK;AAAA,MAAO,IAAG,GAAE,SAAO,GAAE,SAAS,OAAK,OAAK,GAAE,SAAS,OAAK,KAAI;AAAA,QAAC,IAAG,GAAE,UAAQ,WAAU;AAAA,UAAC,GAAE,QAAW;AAAA,UAAE;AAAA,QAAM;AAAA,QAAC,GAAE,aAAW,GAAE,IAAI,CAAC,EAAE,IAAI,EAAC;AAAA,MAAC;AAAA,MAAC,IAAG,GAAE,MAAM,SAAS,MAAM;AAAA,QAAE,IAAG,GAAE,SAAO,GAAE,SAAS,OAAK,OAAK,GAAE,SAAS,OAAK;AAAA,UAAI,SAAQ,MAAK,GAAG,GAAE,KAAK;AAAA,YAAE,GAAE,IAAI,EAAC,EAAE,IAAI,GAAE,QAAQ;AAAA,QAAO;AAAA,YAAE,mBAAmB,GAAE,KAAK;AAAA,MAAE,IAAG,GAAE,aAAW;AAAA,QAAY,SAAQ,MAAK,GAAG,GAAE,KAAK;AAAA,UAAE,GAAE,IAAI,EAAC;AAAA,MAAE,IAAE,KAAG,GAAE,MAAM,SAAS,YAAY,KAAG,EAAE,IAAI,CAAC,EAAE,IAAI,EAAC,GAAE,EAAE,KAAK,EAAC;AAAA,IAAC,EAAM,SAAG,GAAE,SAAO;AAAA,MAAO,IAAG,GAAE,aAAW;AAAA,QAAI,SAAQ,MAAK,GAAE,OAAM;AAAA,UAAC,IAAI,IAAE,CAAC;AAAA,UAAE,EAAE,IAAE,GAAE,IAAE,KAAE,CAAC,GAAE,EAAE,SAAO,KAAG,EAAE,KAAK,GAAG,CAAC;AAAA,QAAC;AAAA,MAAK;AAAA,QAAC,IAAI,KAAE,KAAI,IAAE,OAAM,CAAC,EAAC;AAAA,QAAE,SAAQ,KAAK,GAAE;AAAA,UAAM,EAAE,GAAE,GAAE,OAAM,IAAE,KAAE,CAAC;AAAA,QAAE,GAAE,MAAM,SAAO,KAAG,EAAE,KAAK,EAAC;AAAA;AAAA,IAAO,SAAG,GAAE,SAAO,aAAW,GAAE,SAAO,eAAa,OAAI,GAAE;AAAA,MAAC,IAAG,EAAE,IAAI,GAAE,MAAM;AAAA,QAAE;AAAA,MAAO,IAAG,IAAE,GAAE;AAAA,QAAC,IAAI,IAAE,GAAE,QAAO,KAAE,MAAK,KAAE;AAAA,QAAG,SAAQ,MAAK,GAAE;AAAA,UAAM,GAAE,SAAO,kBAAgB,GAAE,aAAW,kBAAgB,KAAE,GAAE,QAAM,GAAE,aAAW,eAAa,KAAE,GAAE,UAAQ;AAAA,QAAS,IAAI,KAAE,GAAE,GAAE,MAAG,SAAS;AAAA,QAAE,GAAE,MAAI,GAAE,KAAI,KAAE,GAAE,KAAK,EAAC,IAAE,GAAE,KAAK,EAAC;AAAA,MAAC;AAAA,MAAC,EAAE,IAAI,GAAE,MAAM;AAAA,MAAE,IAAI,KAAE,KAAI,IAAE,OAAM,CAAC,EAAC;AAAA,MAAE,SAAQ,KAAK,GAAE;AAAA,QAAM,EAAE,GAAE,GAAE,OAAM,IAAE,KAAE,CAAC;AAAA,MAAE,EAAE,KAAK,EAAC;AAAA,IAAC,EAAM,SAAG,GAAE,SAAO,WAAU;AAAA,MAAC,GAAE,SAAO,iBAAe,KAAE,KAAI,IAAE,WAAU,KAAE;AAAA,MAAG,IAAI,KAAE,KAAI,IAAE,OAAM,CAAC,EAAC;AAAA,MAAE,SAAQ,KAAK,GAAE;AAAA,QAAM,EAAE,GAAE,GAAE,OAAM,IAAE,KAAE,CAAC;AAAA,MAAE,GAAE,SAAO,gBAAc,GAAE,SAAO,EAAE,IAAI,EAAC,IAAG,GAAE,MAAM,SAAO,KAAG,GAAE,SAAO,YAAU,GAAE,SAAO,cAAY,GAAE,SAAO,mBAAiB,GAAE,SAAO,gBAAc,GAAE,SAAO,cAAY,EAAE,KAAK,EAAC;AAAA,IAAC,EAAM,SAAG,GAAE,SAAO;AAAA,MAAU,SAAQ,MAAK,GAAE,OAAM;AAAA,QAAC,IAAI,IAAE,CAAC;AAAA,QAAE,EAAE,IAAE,GAAE,IAAE,CAAC;AAAA,QAAE,SAAQ,MAAK;AAAA,UAAE,EAAE,KAAK,EAAC;AAAA,MAAC;AAAA,IAAM,SAAG,GAAE,SAAO,WAAU;AAAA,MAAC,IAAG,GAAE,QAAQ;AAAA,QAAU;AAAA,MAAO,SAAQ,MAAK,GAAE;AAAA,QAAM,EAAE,IAAE,GAAE,KAAI,OAAK,GAAE,QAAO,GAAE,EAAC;AAAA,IAAC,EAAM;AAAA,SAAE,SAAO,aAAW,EAAE,KAAK,EAAC;AAAA;AAAA,EAAE,IAAI,KAAE,CAAC;AAAA,EAAE,SAAQ,MAAK;AAAA,IAAE,EAAE,IAAE,IAAE,CAAC,GAAE,CAAC;AAAA,EAAE;AAAA,IAAE,UAAQ,IAAE,MAAK;AAAA,MAAE,SAAQ,MAAK,GAAE;AAAA,QAAC,IAAG,GAAG,GAAE,UAAS,EAAE,OAAM,EAAC,GAAE;AAAA,UAAC,IAAG,GAAE,SAAS,WAAW,EAAE,MAAM,UAAU,YAAY,CAAC;AAAA,YAAE,SAAQ,KAAK,GAAG,GAAE,KAAK;AAAA,cAAE,GAAE,IAAI,CAAC;AAAA,UAAE;AAAA,QAAQ;AAAA,QAAC,IAAI,KAAE,GAAE,QAAQ,EAAC;AAAA,QAAE,IAAG,GAAE,OAAO,IAAE,CAAC,GAAE,GAAE,WAAS,GAAE;AAAA,UAAC,IAAI,IAAE,GAAG,IAAE,QAAG,GAAE,SAAO,UAAQ,GAAE,UAAQ,EAAC;AAAA,UAAE,IAAG,CAAC,KAAG,EAAE,WAAS;AAAA,YAAE;AAAA,UAAW,EAAE,QAAQ,EAAC,MAAK,WAAU,OAAM,GAAC,CAAC;AAAA,UAAE,GAAE;AAAA,YAAC,IAAI,KAAE,EAAE,IAAI;AAAA,YAAE,IAAG,CAAC;AAAA,cAAE;AAAA,YAAM,IAAI,KAAE,EAAE,EAAE,SAAO;AAAA,YAAG,IAAG,CAAC,MAAG,GAAE,SAAO,aAAW,GAAE,SAAO;AAAA,cAAU;AAAA,YAAM,IAAI,KAAE,GAAE,MAAM,QAAQ,EAAC;AAAA,YAAE,IAAG,OAAI;AAAA,cAAG;AAAA,YAAM,GAAE,MAAM,OAAO,IAAE,CAAC;AAAA,UAAC,SAAO;AAAA,UAAI;AAAA,QAAU;AAAA,MAAC;AAAA,EAAC,SAAQ,MAAK;AAAA,IAAE,IAAG,CAAC,GAAE,IAAI,GAAE,MAAM,GAAE;AAAA,MAAC,IAAI,IAAE,EAAE,QAAQ,EAAC;AAAA,MAAE,EAAE,OAAO,GAAE,CAAC;AAAA,IAAC;AAAA,EAAC,IAAG,KAAE,GAAE,OAAO,CAAC,GAAE,IAAE;AAAA,IAAE,UAAQ,IAAE,MAAK;AAAA,MAAE,SAAQ,MAAK,GAAE;AAAA,QAAC,IAAI,KAAE,GAAE,QAAQ,EAAC;AAAA,QAAE,IAAG,OAAI,MAAI,GAAE,SAAO;AAAA,UAAK;AAAA,QAAS,IAAI,KAAE,GAAE,GAAE,KAAK,GAAE,IAAE;AAAA,QAAG,IAAG,IAAG,IAAE,CAAC,MAAG,aAAY,SAAK;AAAA,UAAC,IAAG,GAAE,SAAO,cAAY,GAAE,UAAQ;AAAA,YAAY;AAAA,UAAO,IAAI,KAAE,OAAG,KAAE;AAAA,UAAG,IAAG,IAAG,GAAE,OAAM,CAAC,MAAG,aAAY,SAAK;AAAA,YAAC,IAAG,GAAE,QAAM,UAAQ,GAAE,MAAM,YAAY,MAAI,gBAAe;AAAA,cAAC,KAAE,MAAG,IAAE;AAAA,cAAG;AAAA,YAAM;AAAA,YAAC,IAAI,KAAE,IAAE,MAAG,MAAK,IAAE,IAAI;AAAA,YAAI,GAAE;AAAA,cAAC,IAAG,GAAE,SAAO,cAAY,GAAE,UAAQ;AAAA,gBAAM;AAAA,cAAO,IAAI,KAAE,GAAE,MAAM;AAAA,cAAG,IAAG,CAAC,MAAG,GAAE,SAAO;AAAA,gBAAO;AAAA,cAAO,IAAI,KAAE,GAAE;AAAA,cAAM,IAAG,EAAE,IAAI,EAAC,GAAE;AAAA,gBAAC,KAAE;AAAA,gBAAG;AAAA,cAAM;AAAA,cAAC,IAAG,EAAE,IAAI,EAAC,GAAE,IAAE,MAAG,MAAG,EAAE,MAAM,aAAa,MAAK,CAAC,GAAE,KAAK,CAAC,GAAE,CAAC,KAAG;AAAA,gBAAC,KAAE;AAAA,gBAAG;AAAA,cAAM;AAAA,cAAC,IAAG,IAAG,YAAY,MAAI,gBAAe;AAAA,gBAAC,KAAE;AAAA,gBAAG;AAAA,cAAM;AAAA,cAAC,IAAG,WAAW,MAAM,IAAE,KAAE,GAAE,GAAE,EAAE,KAAG,KAAE;AAAA,YAAI,SAAO;AAAA,YAAG,GAAE,EAAC,MAAK,QAAO,OAAM,IAAE,CAAC;AAAA,WAAE,GAAE,MAAG,IAAE;AAAA,YAAC,IAAI,KAAE,GAAE,MAAM,UAAU,QAAG,GAAE,SAAO,eAAa,GAAE,MAAM,KAAK,EAAE,SAAS,GAAG,CAAC;AAAA,YAAE,IAAG,OAAI;AAAA,cAAG;AAAA,YAAO,IAAI,KAAE,GAAE,MAAM,SAAO,KAAE,GAAE,MAAM,KAAE,KAAG;AAAA,YAAK,IAAG,CAAC;AAAA,cAAE;AAAA,YAAO,GAAE,EAAC;AAAA,UAAC,EAAM,SAAG,GAAE;AAAA,YAAC,IAAI,KAAE,GAAE,MAAM;AAAA,YAAG,GAAE,SAAO,WAAS,GAAE,UAAQ,WAAS,GAAE,UAAQ,WAAS,GAAE,UAAQ,SAAO,GAAE,UAAQ,WAAS,GAAE,QAAM;AAAA,UAAO;AAAA,SAAE,GAAE,CAAC;AAAA,UAAE;AAAA,QAAS,IAAI,KAAE,KAAI,IAAE,OAAM,GAAE,EAAC,EAAC,GAAE,KAAE,GAAE,kDAAiD,CAAC,EAAC,CAAC;AAAA,QAAE,GAAE,MAAI,GAAE,KAAI,GAAE,OAAO,IAAE,GAAE,IAAE,EAAC;AAAA,MAAC;AAAA,EAAC,IAAG,IAAE,GAAE;AAAA,IAAC,IAAI,KAAE,CAAC;AAAA,IAAE,IAAG,GAAE,SAAO,GAAE;AAAA,MAAC,IAAI,IAAE,GAAE,gBAAe,EAAC;AAAA,MAAE,EAAE,MAAI,GAAE,GAAG,KAAI,GAAE,KAAK,CAAC;AAAA,IAAC;AAAA,IAAC,IAAG,GAAE,SAAO,GAAE;AAAA,MAAC,IAAI,IAAE,GAAE,oCAAmC,EAAC;AAAA,MAAE,EAAE,MAAI,GAAE,GAAG,KAAI,GAAE,KAAK,CAAC;AAAA,IAAC;AAAA,IAAC,IAAG,GAAE,SAAO,GAAE;AAAA,MAAC,IAAI,IAAE,GAAE,UAAU,QAAG,EAAE,GAAE,SAAO,aAAW,GAAE,SAAO,cAAY,GAAE,SAAO,cAAY,GAAE,SAAO,WAAW,GAAE,KAAE,GAAE,UAAS,cAAa,CAAC,CAAC;AAAA,MAAE,GAAE,MAAI,GAAE,GAAG,KAAI,GAAE,OAAO,IAAE,IAAE,GAAE,SAAO,GAAE,GAAE,EAAC;AAAA,MAAE,IAAI,KAAE,GAAE,qBAAoB,CAAC,GAAE,aAAY,8HAA6H,EAAC,CAAC,CAAC;AAAA,MAAE,GAAE,MAAI,GAAE,GAAG,KAAI,GAAE,MAAM,GAAG,MAAI,GAAE,GAAG,KAAI,GAAE,KAAK,EAAC;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,OAAO;AAAA;AAAE,SAAS,GAAE,CAAC,GAAE,GAAE;AAAA,EAAC,IAAI,IAAE,GAAE,IAAE,EAAC,MAAK,MAAK,MAAK,GAAE;AAAA,EAAE,SAAS,CAAC,CAAC,GAAE,IAAE,GAAE;AAAA,IAAC,IAAI,KAAE,IAAG,KAAE,KAAK,OAAO,CAAC;AAAA,IAAE,IAAG,EAAE,SAAO,eAAc;AAAA,MAAC,IAAG,MAAG,GAAG,KAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAU,gBAAc;AAAA,GACtlN,GAAE;AAAA,QAAC,KAAG,GAAE;AAAA,QAAO,IAAI,KAAE;AAAA,QAAE,KAAG,EAAE,SAAS,QAAO,KAAG,GAAE,KAAG,EAAE,OAAO,UAAQ,GAAE,EAAE,cAAY,KAAG;AAAA,QAAI,IAAI,KAAE;AAAA,QAAE,KAAG,GAAE,EAAE,MAAI,CAAC,GAAE,IAAE,EAAC;AAAA,MAAC;AAAA,IAAC,EAAM,SAAG,EAAE,SAAO,QAAO;AAAA,MAAC,IAAG,MAAG,GAAG,KAAI,EAAE;AAAA,GAChK,GAAE;AAAA,QAAC,KAAG,GAAE;AAAA,QAAO,IAAI,KAAE;AAAA,QAAE,KAAG,EAAE,SAAS,QAAO,KAAG;AAAA,QAAE,IAAI,KAAE;AAAA,QAAE,EAAE,MAAI,CAAC,GAAE,IAAE,EAAC,GAAE,KAAG;AAAA,MAAC;AAAA,MAAC,SAAQ,MAAK,EAAE;AAAA,QAAM,MAAG,EAAE,IAAE,IAAE,CAAC;AAAA,MAAE,MAAG,GAAG;AAAA,GACnH,MAAI,KAAG,GAAE,QAAO,KAAG;AAAA,IAAE,EAAM,SAAG,EAAE,SAAO,WAAU;AAAA,MAAC,IAAG,EAAE,MAAM,WAAS,GAAE;AAAA,QAAC,IAAI,KAAE,GAAG,KAAI,EAAE,QAAQ,EAAE;AAAA;AAAA,QAClG,IAAG,GAAE;AAAA,UAAC,KAAG,GAAE;AAAA,UAAO,IAAI,KAAE;AAAA,UAAE,KAAG,EAAE,KAAK,QAAO,KAAG,GAAE,KAAG,EAAE,OAAO;AAAA,UAAO,IAAI,IAAE;AAAA,UAAE,KAAG,GAAE,EAAE,MAAI,CAAC,GAAE,IAAE,CAAC;AAAA,QAAC;AAAA,QAAC,OAAO;AAAA,MAAC;AAAA,MAAC,IAAG,MAAG,GAAG,KAAI,EAAE,OAAO,EAAE,SAAO,IAAI,EAAE,YAAU;AAAA,GACtJ,GAAE;AAAA,QAAC,KAAG,GAAE;AAAA,QAAO,IAAI,KAAE;AAAA,QAAE,KAAG,EAAE,KAAK,QAAO,EAAE,WAAS,KAAG,GAAE,KAAG,EAAE,OAAO,SAAQ,KAAG;AAAA,QAAE,IAAI,KAAE;AAAA,QAAE,EAAE,MAAI,CAAC,GAAE,IAAE,EAAC,GAAE,KAAG;AAAA,MAAC;AAAA,MAAC,SAAQ,MAAK,EAAE;AAAA,QAAM,MAAG,EAAE,IAAE,IAAE,CAAC;AAAA,MAAE,MAAG,GAAG;AAAA,GACnJ,MAAI,KAAG,GAAE,QAAO,KAAG;AAAA,IAAE,EAAM,SAAG,EAAE,SAAO,WAAU;AAAA,MAAC,IAAG,MAAG,GAAG,OAAM,EAAE;AAAA,GACnE,GAAE;AAAA,QAAC,KAAG,GAAE;AAAA,QAAO,IAAI,KAAE;AAAA,QAAE,KAAG,IAAE,EAAE,MAAM,SAAO;AAAA,QAAE,IAAI,KAAE;AAAA,QAAE,EAAE,MAAI,CAAC,GAAE,IAAE,EAAC,GAAE,KAAG;AAAA,MAAC;AAAA,IAAC,EAAM,SAAG,EAAE,SAAO,aAAW,EAAE,SAAO;AAAA,MAAU,OAAM;AAAA,IAAG,OAAO;AAAA;AAAA,EAAE,IAAI,KAAE;AAAA,EAAG,SAAQ,KAAK;AAAA,IAAE,MAAG,EAAE,GAAE,CAAC;AAAA,EAAE,OAAO,EAAE,OAAK,IAAE;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE,GAAE;AAAA,EAAC,IAAI,IAAE,CAAC;AAAA,EAAE,OAAO,GAAE,GAAE,CAAC,KAAG,MAAK,QAAK;AAAA,IAAC,IAAG,EAAE,CAAC;AAAA,MAAE,OAAO,IAAE,CAAC,GAAG,CAAC,GAAE;AAAA,GAAE,GAAE;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE,GAAE,GAAE,IAAE,IAAI,KAAI;AAAA,EAAC,IAAG,EAAE,IAAI,CAAC,MAAI,EAAE,IAAI,CAAC,GAAE,EAAE,WAAW,CAAC,IAAE;AAAA,IAAI,OAAM;AAAA,EAAG;AAAA,IAAC,IAAI,KAAE,EAAE,IAAI,CAAC,KAAG,CAAC;AAAA,IAAE,SAAQ,KAAK;AAAA,MAAE,IAAG,GAAG,GAAE,GAAE,GAAE,CAAC;AAAA,QAAE,OAAM;AAAA,EAAE;AAAA,EAAC,OAAM;AAAA;AAAG,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,OAAO,EAAE,MAAM,QAAQ;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,IAAG,EAAE,QAAQ,GAAG,MAAI;AAAA,IAAG,OAAO,GAAG,CAAC;AAAA,EAAE,IAAI,IAAE,GAAE,CAAC;AAAA,EAAE,OAAO,GAAG,CAAC,GAAE,IAAE,GAAE,CAAC,GAAE,IAAE,GAAG,CAAC,GAAE;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE,IAAE,OAAG;AAAA,EAAC,IAAI,IAAE;AAAA,EAAG,SAAQ,IAAE,EAAE,IAAE,EAAE,QAAO,KAAI;AAAA,IAAC,IAAI,IAAE,EAAE;AAAA,IAAG,MAAI,QAAM,EAAE,IAAE,OAAK,OAAK,KAAG,KAAI,KAAG,KAAG,MAAI,OAAK,CAAC,IAAE,KAAG,MAAI,KAAG;AAAA,EAAC;AAAA,EAAC,OAAO;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,SAAQ,KAAK;AAAA,IAAE,QAAO,EAAE;AAAA,WAAU,YAAW;AAAA,QAAC,IAAG,EAAE,UAAQ,SAAO,EAAE,MAAM,SAAS,MAAM,GAAE;AAAA,UAAC,EAAE,QAAM,GAAG,EAAE,KAAK;AAAA,UAAE;AAAA,QAAK;AAAA,QAAC,IAAG,EAAE,UAAQ,SAAO,EAAE,MAAM,SAAS,MAAM,KAAG,EAAE,UAAQ,WAAS,EAAE,MAAM,SAAS,QAAQ,GAAE;AAAA,UAAC,EAAE,QAAM,GAAG,EAAE,KAAK;AAAA,UAAE,SAAQ,IAAE,EAAE,IAAE,EAAE,MAAM,QAAO,KAAI;AAAA,YAAC,IAAG,KAAG,KAAG,EAAE,MAAM,GAAG,SAAO,QAAO;AAAA,cAAC,EAAE,MAAM,GAAG,QAAM,GAAG,EAAE,MAAM,GAAG,OAAM,IAAE;AAAA,cAAE;AAAA,YAAQ;AAAA,YAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;AAAA,UAAC;AAAA,UAAC;AAAA,QAAK;AAAA,QAAC,EAAE,QAAM,GAAG,EAAE,KAAK,GAAE,GAAG,EAAE,KAAK;AAAA,QAAE;AAAA,MAAK;AAAA,WAAK;AAAA,WAAgB,QAAO;AAAA,QAAC,EAAE,QAAM,GAAG,EAAE,KAAK;AAAA,QAAE;AAAA,MAAK;AAAA;AAAA,QAAS,GAAG,CAAC;AAAA;AAAA;AAAG,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,MAAM,IAAI,MAAM,qBAAqB,GAAG;AAAA;AAA6B,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,IAAI,IAAE,GAAE,IAAE,EAAE;AAAA,EAAO,SAAQ,IAAE,EAAE,IAAE,GAAE,KAAI;AAAA,IAAC,IAAI,IAAE,EAAE,WAAW,CAAC;AAAA,IAAE,QAAO;AAAA,WAAQ;AAAA,QAAG,KAAG;AAAA,QAAE;AAAA,WAAW;AAAA,WAAQ;AAAA,QAAG,MAAK,EAAE,IAAE,KAAG;AAAA,UAAC,IAAI,KAAE,EAAE,WAAW,CAAC;AAAA,UAAE,IAAG,OAAI,IAAG;AAAA,YAAC,KAAG;AAAA,YAAE;AAAA,UAAQ;AAAA,UAAC,IAAG,OAAI;AAAA,YAAE;AAAA,QAAK;AAAA,QAAC;AAAA,WAAW;AAAA,QAAG,GAAG,KAAG,IAAG;AAAA,QAAI;AAAA,WAAW;AAAA,QAAG,GAAG,KAAG,IAAG;AAAA,QAAI;AAAA,WAAW;AAAA,QAAI;AAAA,WAAW;AAAA,WAAQ;AAAA,WAAS;AAAA,QAAG,IAAG,MAAI;AAAA,UAAE,OAAM;AAAA,QAAG,IAAE,KAAG,MAAI,GAAG,IAAE,MAAI;AAAA,QAAI;AAAA,WAAW;AAAA,QAAG,IAAG,MAAI;AAAA,UAAE,OAAM;AAAA,QAAG;AAAA;AAAA,EAAM;AAAA,EAAC,OAAM;AAAA;AAAgC,UAAS,EAAE,CAAC,GAAE,GAAE;AAAA,EAAC,IAAI,IAAE,EAAE,GAAE,GAAG;AAAA,EAAE,IAAG,EAAE,MAAM,QAAO;AAAA,IAAC,IAAG,EAAE,WAAS,KAAG,EAAE,OAAK,EAAE,MAAM;AAAA,MAAO,OAAO;AAAA,IAAK,EAAE,MAAM;AAAA,EAAC;AAAA,EAAC,IAAI,IAAE,EAAE,IAAI,GAAE,IAAE,CAAC;AAAA,EAAE,SAAQ,KAAE,EAAE,SAAO,EAAE,MAAG,GAAE,EAAE,IAAE;AAAA,IAAC,IAAI,IAAE,EAAE,aAAa,EAAE,GAAE;AAAA,IAAE,IAAG,MAAI;AAAA,MAAK;AAAA,IAAO,EAAE,KAAK,CAAC;AAAA,EAAC;AAAA,EAAC,IAAI,KAAE;AAAA,EAAG,EAAE,EAAE,SAAO,OAAK,OAAK,KAAE,MAAG,IAAE,EAAE,MAAM,GAAE,EAAE,KAAG,EAAE,OAAK,QAAM,KAAE,MAAG,IAAE,EAAE,MAAM,CAAC,IAAG,EAAE,UAAU,IAAI,GAAE,QAAQ,KAAG,CAAC,EAAE,SAAS,GAAG,MAAI,MAAK,EAAC,MAAK,UAAS,MAAK,GAAE,UAAS,GAAE,WAAU,IAAE,KAAI,EAAC;AAAA,EAAG,KAAI,GAAE,IAAE,MAAK,MAAG,EAAE,GAAE,GAAG;AAAA,EAAE,IAAG;AAAA,IAAE;AAAA,EAAO,IAAI,KAAE,MAAI,OAAK,OAAK,GAAG,CAAC;AAAA,EAAE,IAAG,MAAI,QAAM,OAAI;AAAA,IAAK;AAAA,EAAO,IAAG,EAAE,OAAK,KAAI;AAAA,IAAC,IAAG,EAAE,EAAE,SAAO,OAAK;AAAA,MAAI;AAAA,IAAO,IAAI,KAAE,EAAE,WAAW,CAAC;AAAA,IAAE,IAAG,OAAI,MAAI,EAAE,MAAG,MAAI,MAAG;AAAA,MAAI;AAAA,IAAO,IAAE,EAAE,MAAM,GAAE,EAAE;AAAA,IAAE,IAAI,IAAE,EAAE,QAAQ,GAAG;AAAA,IAAE,IAAG,MAAI,MAAI,MAAI,KAAG,MAAI,EAAE,SAAO;AAAA,MAAE;AAAA,IAAO,IAAI,KAAE,EAAE,MAAM,GAAE,CAAC,GAAE,KAAE,GAAG,EAAE,MAAM,IAAE,CAAC,CAAC;AAAA,IAAE,IAAG,CAAC,GAAG,EAAC;AAAA,MAAE;AAAA,IAAO,MAAK,EAAC,MAAK,aAAY,UAAS,IAAE,OAAM,IAAE,UAAS,IAAE,UAAS,GAAE,WAAU,IAAE,KAAI,EAAC;AAAA,IAAE;AAAA,EAAM;AAAA,EAAC,IAAI;AAAA,EAAE,IAAG,EAAE,EAAE,SAAO,OAAK,KAAI;AAAA,IAAC,IAAI,KAAE,EAAE,QAAQ,IAAI;AAAA,IAAE,IAAG,OAAI;AAAA,MAAG;AAAA,IAAO,IAAI,IAAE,EAAE,MAAM,GAAE,EAAC;AAAA,IAAE,IAAG,CAAC,EAAE,UAAU,IAAI,GAAE,YAAY;AAAA,MAAE;AAAA,IAAO,IAAI,KAAE,EAAE,MAAM,KAAE,CAAC;AAAA,IAAE,KAAE,CAAC,CAAC,GAAE,EAAC,CAAC;AAAA,EAAC,EAAM,SAAG,EAAE,EAAE,SAAO,OAAK,KAAI;AAAA,IAAC,IAAI,KAAE,EAAE,QAAQ,IAAI;AAAA,IAAE,IAAG,OAAI;AAAA,MAAG;AAAA,IAAO,IAAI,IAAE,EAAE,MAAM,GAAE,EAAC;AAAA,IAAE,IAAG,CAAC,EAAE,UAAU,IAAI,GAAE,YAAY;AAAA,MAAE;AAAA,IAAO,IAAI,KAAE,EAAE,MAAM,KAAE,GAAE,EAAE,GAAE,KAAE,EAAE,IAAE,GAAG,GAAE,IAAE;AAAA,IAAK,IAAG,GAAE,WAAS,MAAI,IAAE,GAAE,IAAG,KAAE,GAAE,KAAI,GAAE,OAAK,OAAK,GAAE,OAAK,OAAK,CAAC,GAAG,EAAC;AAAA,MAAE;AAAA,IAAO,KAAE,CAAC,CAAC,GAAE,MAAI,OAAK,QAAQ,SAAM,IAAI,SAAS,MAAK,CAAC;AAAA,EAAC,EAAM;AAAA,SAAE,GAAG,GAAE,QAAG,EAAE,UAAU,IAAI,IAAE,YAAY,CAAC;AAAA,EAAE,UAAQ,IAAE,MAAK,IAAE;AAAA,IAAC,IAAI,KAAE,EAAC,MAAK,cAAa,MAAK,IAAE,UAAS,IAAE,OAAM,MAAK,UAAS,GAAE,WAAU,IAAE,KAAI,EAAC;AAAA,IAAE,IAAG,MAAI,MAAK;AAAA,MAAC,MAAM;AAAA,MAAE;AAAA,IAAQ;AAAA,IAAC;AAAA,MAAC,IAAI,KAAE,EAAE,QAAQ,GAAG;AAAA,MAAE,IAAG,OAAI,IAAG;AAAA,QAAC,IAAG,EAAE,EAAE,SAAO,OAAK;AAAA,UAAI;AAAA,QAAO,IAAI,KAAE,GAAG,EAAE,MAAM,KAAE,GAAE,EAAE,CAAC;AAAA,QAAE,IAAG,CAAC,GAAG,EAAC;AAAA,UAAE;AAAA,QAAS,IAAI,KAAE;AAAA,QAAG,SAAQ,KAAE,EAAE,KAAE,GAAE,QAAO,MAAI;AAAA,UAAC,IAAI,IAAE,GAAE,WAAW,EAAC;AAAA,UAAE,IAAG,MAAI,IAAG;AAAA,YAAC,KAAE,GAAE,MAAM,GAAE,EAAC,GAAE,KAAE,GAAE,MAAM,KAAE,CAAC;AAAA,YAAE;AAAA,UAAK;AAAA,UAAC,IAAG,EAAE,MAAI,MAAI,KAAG,MAAI,KAAG;AAAA,YAAI;AAAA,QAAK;AAAA,QAAC,IAAG,GAAE,WAAS,KAAG,GAAE,KAAK,EAAE,WAAS;AAAA,UAAE;AAAA,QAAS,GAAE,QAAM,EAAC,MAAK,aAAY,UAAS,MAAG,MAAK,OAAM,GAAC;AAAA,MAAC,EAAK;AAAA,QAAC,IAAI,KAAE,MAAI,QAAM,GAAE,UAAU,SAAO,cAAY,OAAK,GAAG,KAAK;AAAA,QAAI,GAAE,QAAM,EAAC,MAAK,SAAQ,OAAM,GAAE,UAAS,GAAC;AAAA;AAAA,IAAE;AAAA,IAAC,MAAM;AAAA,EAAC;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,IAAG,EAAE,OAAK,OAAK,EAAE,EAAE,SAAO,OAAK,KAAI;AAAA,IAAC,IAAI,IAAE,GAAG,EAAE,MAAM,GAAE,EAAE,CAAC;AAAA,IAAE,OAAM,CAAC,GAAG,CAAC,KAAG,EAAE,WAAS,KAAG,EAAE,KAAK,EAAE,WAAS,IAAE,OAAK,EAAC,MAAK,aAAY,OAAM,EAAC;AAAA,EAAC;AAAA,EAAC,OAAO,EAAE,OAAK,OAAK,EAAE,EAAE,SAAO,OAAK,OAAK,IAAE,EAAE,MAAM,GAAE,EAAE,GAAE,EAAE,OAAK,OAAK,EAAE,OAAK,OAAK,CAAC,GAAG,CAAC,IAAE,QAAM,IAAE,OAAO,MAAK,EAAC,MAAK,aAAY,OAAM,GAAG,CAAC,EAAC,MAAI,EAAC,MAAK,SAAQ,OAAM,EAAC;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE,GAAE;AAAA,EAAC,IAAG,EAAE,OAAK,OAAK,EAAE,EAAE,SAAO,OAAK,KAAI;AAAA,IAAC,IAAG,EAAE,OAAK,OAAK,EAAE,SAAS,GAAG;AAAA,MAAE,OAAO;AAAA,IAAK,IAAI,IAAE,GAAG,EAAE,MAAM,GAAE,EAAE,CAAC;AAAA,IAAE,IAAG,CAAC,GAAG,CAAC,KAAG,EAAE,WAAS,KAAG,EAAE,KAAK,EAAE,WAAS;AAAA,MAAE,OAAO;AAAA,IAAK,IAAI,IAAE,EAAE,OAAK,OAAK,EAAE,OAAK,OAAK,EAAE,OAAK;AAAA,IAAI,OAAM,CAAC,KAAG,EAAE,OAAK,OAAK,CAAC,EAAE,SAAS,GAAG,MAAI,IAAE,QAAQ,OAAM,EAAC,MAAK,aAAY,UAAS,GAAE,UAAS,EAAC;AAAA,EAAC;AAAA,EAAC;AAAA,IAAC,KAAI,GAAE,IAAE,MAAK,KAAG,EAAE,GAAE,GAAG;AAAA,IAAE,IAAG;AAAA,MAAE,OAAO;AAAA,IAAK,IAAI,KAAE,GAAG,GAAE,OAAG,EAAE,SAAS,IAAI,CAAC,CAAC;AAAA,IAAE,UAAQ,GAAE,MAAK;AAAA,MAAE,QAAO,EAAE,SAAS,KAAK,CAAC;AAAA,aAAO;AAAA,UAAS,OAAO,MAAI,QAAM,MAAI,OAAK,OAAK,EAAC,MAAK,UAAS,MAAK,EAAC;AAAA,aAAM,cAAa;AAAA,UAAC,IAAI,KAAE,MAAI,OAAK,OAAK,GAAG,CAAC;AAAA,UAAE,IAAG,MAAI,QAAM,OAAI;AAAA,YAAK,OAAO;AAAA,UAAK,IAAG,MAAI;AAAA,YAAK,OAAM,EAAC,MAAK,cAAa,MAAK,GAAE,UAAS,IAAE,OAAM,KAAI;AAAA,UAAE,IAAG,EAAE,EAAE,SAAO,OAAK,KAAI;AAAA,YAAC,IAAG,EAAE,OAAK;AAAA,cAAI;AAAA,YAAS,IAAI,KAAE,GAAG,EAAE,MAAM,GAAE,EAAE,CAAC;AAAA,YAAE,OAAM,CAAC,GAAG,EAAC,KAAG,GAAE,WAAS,KAAG,GAAE,KAAK,EAAE,WAAS,IAAE,OAAK,EAAC,MAAK,cAAa,MAAK,GAAE,UAAS,IAAE,OAAM,EAAC,MAAK,aAAY,OAAM,GAAC,EAAC;AAAA,UAAC;AAAA,UAAC,IAAG,EAAE,EAAE,SAAO,OAAK,KAAI;AAAA,YAAC,IAAG,EAAE,OAAK;AAAA,cAAI;AAAA,YAAS,IAAI,KAAE,GAAG,EAAE,MAAM,GAAE,EAAE,CAAC;AAAA,YAAE,OAAM,CAAC,GAAG,EAAC,KAAG,GAAE,WAAS,KAAG,GAAE,KAAK,EAAE,WAAS,KAAG,GAAE,OAAK,OAAK,GAAE,OAAK,MAAI,OAAK,EAAC,MAAK,cAAa,MAAK,GAAE,UAAS,IAAE,OAAM,EAAC,MAAK,aAAY,OAAM,OAAO,MAAI,EAAC;AAAA,UAAC;AAAA,UAAC,OAAM,EAAC,MAAK,cAAa,MAAK,GAAE,UAAS,IAAE,OAAM,EAAC,MAAK,SAAQ,OAAM,EAAC,EAAC;AAAA,QAAC;AAAA,aAAK,YAAW;AAAA,UAAC,IAAG,MAAI;AAAA,YAAK,OAAO;AAAA,UAAK,IAAI,KAAE,EAAE,aAAa,CAAC;AAAA,UAAE,IAAG,OAAI,QAAM,CAAC,EAAE,SAAS,cAAc,GAAE,EAAC;AAAA,YAAE,OAAO;AAAA,UAAK,IAAI,KAAE,MAAI,OAAK,OAAK,GAAG,CAAC;AAAA,UAAE,OAAO,MAAI,QAAM,OAAI,OAAK,OAAK,EAAC,MAAK,YAAW,MAAK,GAAE,UAAS,IAAE,SAAQ,GAAC;AAAA,QAAC;AAAA;AAAA,EAAE;AAAA,EAAC,OAAO;AAAA;AAAK,UAAS,EAAE,CAAC,GAAE,GAAE;AAAA,EAAC,EAAE,CAAC,MAAI,MAAK,CAAC,GAAE,IAAI;AAAA,EAAG,IAAI,IAAE,EAAE,YAAY,GAAG;AAAA,EAAE,MAAK,IAAE,KAAG;AAAA,IAAC,IAAI,IAAE,EAAE,MAAM,GAAE,CAAC;AAAA,IAAE,IAAG,EAAE,CAAC,GAAE;AAAA,MAAC,IAAI,IAAE,CAAC,GAAE,EAAE,MAAM,IAAE,CAAC,CAAC;AAAA,MAAE,IAAG,EAAE,OAAK;AAAA,QAAG;AAAA,MAAM,MAAM;AAAA,IAAC;AAAA,IAAC,IAAE,EAAE,YAAY,KAAI,IAAE,CAAC;AAAA,EAAC;AAAA,EAAC,EAAE,OAAK,OAAK,EAAE,GAAG,MAAI,MAAK,CAAC,KAAI,EAAE,MAAM,CAAC,CAAC;AAAA;AAAG,SAAS,EAAE,CAAC,GAAE,GAAE;AAAA,EAAC,IAAI,IAAE,CAAC;AAAA,EAAE,SAAQ,KAAK,EAAE;AAAA,IAAS,EAAE,QAAQ,GAAG,CAAC,CAAC;AAAA,EAAE,EAAE,MAAM,UAAQ,EAAE,QAAQ,EAAE,MAAM,MAAM;AAAA,EAAE,IAAI,IAAE;AAAA,EAAG,IAAG,EAAE,SAAO,aAAW,KAAG,EAAE,OAAM,EAAE,SAAO,iBAAe,KAAG,EAAE,MAAK,EAAE;AAAA,IAAO,IAAG,EAAE,MAAM,SAAO,aAAY;AAAA,MAAC,IAAG,EAAE,UAAQ,MAAK;AAAA,QAAC,IAAI,IAAE,GAAG,EAAE,MAAM,KAAK,GAAE,KAAE,IAAE,EAAE,MAAM,MAAM,MAAM,GAAE,EAAE,IAAE,EAAE,MAAM,QAAO,GAAE,KAAG,IAAE,CAAC,KAAI,GAAG,IAAE,CAAC,KAAI,GAAG;AAAA,QAAE,EAAE,MAAM,WAAS,KAAG,IAAI,IAAI,EAAE,MAAM,YAAY,GAAG,EAAC,IAAI,MAAI,KAAG,IAAI,IAAI,GAAG,EAAC,IAAI;AAAA,MAAG;AAAA,IAAC,EAAM;AAAA,QAAE,MAAM,SAAO,YAAU,KAAG,IAAI,EAAE,MAAM;AAAA,EAAS,OAAO,EAAE,SAAO,gBAAc,KAAG,IAAI,EAAE,YAAY,GAAG,EAAE,KAAK,QAAO,EAAE,SAAO,eAAa,EAAE,SAAO,kBAAgB,KAAG,GAAG,EAAE,QAAQ,IAAG,EAAE,cAAY,KAAG,MAAK,EAAE,KAAK,CAAC,GAAE,EAAE,KAAK,GAAG;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,IAAG,MAAI;AAAA,IAAK,OAAM;AAAA,EAAG,IAAI,IAAE,GAAG,EAAE,KAAK,GAAE,IAAE,IAAE,EAAE,MAAM,MAAM,GAAE,EAAE,IAAE,EAAE,QAAO,GAAE,KAAG,IAAE,CAAC,KAAI,GAAG,IAAE,CAAC,KAAI,GAAG;AAAA,EAAE,OAAO,EAAE,SAAO,cAAY,IAAI,IAAI,GAAG,CAAC,IAAI,MAAI,EAAE,SAAO,UAAQ,IAAI,EAAE,UAAQ;AAAA;AAAG,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,IAAG,EAAE,SAAO;AAAA,IAAS,OAAO,EAAE;AAAA,EAAK,IAAG,EAAE,SAAO;AAAA,IAAY,OAAM,IAAI,GAAG,GAAG,EAAE,QAAQ,CAAC;AAAA,EAAK,IAAI,IAAE;AAAA,EAAG,IAAG,EAAE,SAAO,cAAa;AAAA,IAAC,KAAG,EAAE;AAAA,IAAK,IAAI,IAAE,EAAE,SAAO;AAAA,IAAI,IAAG,EAAE;AAAA,MAAM,IAAG,EAAE,MAAM,SAAO,aAAY;AAAA,QAAC,IAAI,IAAE,GAAG,EAAE,MAAM,KAAK,GAAE,IAAE,IAAE,EAAE,MAAM,MAAM,MAAM,GAAE,EAAE,IAAE,EAAE,MAAM,QAAO,IAAE,KAAG,IAAE,CAAC,KAAI,GAAG,IAAE,CAAC,KAAI,GAAG;AAAA,QAAE,KAAG,GAAG,IAAE,MAAI,KAAK,KAAI,GAAG,CAAC,IAAI;AAAA,MAAG,EAAM;AAAA,UAAE,MAAM,SAAO,YAAU,KAAG,GAAG,IAAE,MAAI,KAAK,EAAE,MAAM;AAAA,EAAQ;AAAA,EAAC,OAAO,EAAE,SAAO,eAAa,KAAG,EAAE,MAAK,KAAG,KAAI,KAAG,GAAG,EAAE,OAAO,KAAI,EAAE,SAAO,gBAAc,EAAE,SAAO,gBAAc,KAAG,GAAG,EAAE,QAAQ,IAAG;AAAA;AAAopB,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,OAAO,GAAG,IAAI,CAAC;AAAA;AAAgM,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,OAAO,GAAG,IAAI,CAAC;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,SAAQ,KAAK;AAAA,IAAE,QAAO,EAAE;AAAA,WAAU,YAAW;AAAA,QAAC,IAAG,EAAE,UAAQ,SAAO,EAAE,MAAM,SAAS,MAAM,GAAE;AAAA,UAAC,EAAE,QAAM,GAAG,EAAE,KAAK;AAAA,UAAE;AAAA,QAAK;AAAA,QAAC,IAAG,EAAE,UAAQ,SAAO,EAAE,MAAM,SAAS,MAAM,KAAG,EAAE,UAAQ,WAAS,EAAE,MAAM,SAAS,QAAQ,GAAE;AAAA,UAAC,EAAE,QAAM,GAAG,EAAE,KAAK;AAAA,UAAE,SAAQ,IAAE,EAAE,IAAE,EAAE,MAAM,QAAO;AAAA,YAAI,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;AAAA,UAAE;AAAA,QAAK;AAAA,QAAC,EAAE,QAAM,GAAG,EAAE,KAAK,GAAE,GAAG,EAAE,KAAK;AAAA,QAAE;AAAA,MAAK;AAAA,WAAK;AAAA,QAAY,EAAE,QAAM,GAAG,EAAE,KAAK;AAAA,QAAE;AAAA,WAAU,QAAO;AAAA,SAAE,EAAE,MAAM,OAAK,OAAK,EAAE,MAAM,OAAK,SAAO,EAAE,QAAM,GAAG,EAAE,KAAK;AAAA,QAAG;AAAA,MAAK;AAAA;AAAA,QAAS,GAAG,CAAC;AAAA;AAAA;AAAiG,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,OAAO,GAAG,IAAI,CAAC;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,MAAM,IAAI,MAAM,qBAAqB,GAAG;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,OAAO,EAAE,WAAW,KAAI,OAAO,OAAO,EAAE,WAAW,KAAI,GAAG;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE,GAAE,GAAE;AAAA,EAAC,IAAG,MAAI;AAAA,IAAE,OAAO;AAAA,EAAE,IAAI,IAAE,EAAE,QAAQ,GAAG,GAAE,IAAE,EAAE,QAAQ,GAAG,GAAE,KAAE,MAAI,KAAG,EAAE,QAAQ,WAAU,EAAE,IAAE,EAAE,MAAM,GAAE,CAAC,GAAE,IAAE,MAAI,KAAG,EAAE,QAAQ,WAAU,EAAE,IAAE,EAAE,MAAM,GAAE,CAAC,GAAE,KAAG,OAAI,IAAE,IAAE,KAAE,IAAE,KAAG,OAAK,MAAI,QAAM,SAAS,CAAC,IAAE,SAAS,CAAC,IAAE,SAAS,CAAC,IAAE,SAAS,CAAC;AAAA,EAAG,OAAO,OAAO,MAAM,CAAC,IAAE,IAAE,IAAE,KAAG,IAAE;AAAA;AAA4F,SAAS,EAAE,CAAC,GAAE,GAAE;AAAA,EAAC,OAAO,EAAE,GAAE,GAAG,EAAE,IAAI,OAAG;AAAA,IAAC,IAAE,EAAE,KAAK;AAAA,IAAE,IAAI,IAAE,EAAE,GAAE,GAAG,EAAE,OAAO,QAAG,GAAE,KAAK,MAAI,EAAE,GAAE,KAAE,MAAK,IAAE,MAAK,IAAE;AAAA,IAAK,SAAQ,MAAK;AAAA,MAAE,GAAG,IAAI,EAAC,MAAI,GAAG,KAAK,EAAC,KAAG,MAAI,OAAK,IAAE,KAAE,MAAI,SAAO,IAAE,KAAG,GAAG,YAAU,KAAG,OAAI,SAAO,KAAE;AAAA,IAAI,IAAG,MAAI,QAAM,MAAI;AAAA,MAAK,OAAO;AAAA,IAAE,IAAI,KAAE,EAAE,MAAG,cAAc;AAAA,IAAE,OAAO,OAAI,OAAK,EAAE,QAAQ,IAAE,EAAC,IAAE,GAAG,KAAK;AAAA,GAAI,EAAE,KAAK,IAAI;AAAA;AAAmyB,SAAS,EAAC,CAAC,GAAE,GAAE,GAAE;AAAA,EAAC,OAAO,GAAE,aAAY,GAAE,CAAC,GAAE,UAAS,IAAE,IAAI,OAAK,KAAK,GAAE,GAAE,YAAW,OAAO,GAAE,GAAG,IAAE,CAAC,GAAE,iBAAgB,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC;AAAA;AAAE,SAAS,EAAC,CAAC,GAAE,GAAE;AAAA,EAAC,IAAG,MAAI;AAAA,IAAK,OAAO;AAAA,EAAE,IAAI,IAAE,OAAO,CAAC;AAAA,EAAE,OAAO,OAAO,MAAM,CAAC,MAAI,IAAE,GAAG,IAAE,SAAQ,MAAI,SAAO,IAAE,uBAAuB,KAAK;AAAA;AAAkB,SAAS,EAAE,CAAC,GAAE,GAAE;AAAA,EAAC,IAAI,IAAE,OAAO,CAAC;AAAA,EAAE,OAAO,OAAO,MAAM,CAAC,MAAI,IAAE,GAAG,IAAE,SAAQ,cAAc,aAAa;AAAA;AAAK,SAAS,EAAC,CAAC,GAAE,GAAE,GAAE;AAAA,EAAC,IAAG,CAAC;AAAA,IAAE,OAAO;AAAA,EAAE,IAAG,EAAE,SAAO;AAAA,IAAY,OAAO,GAAE,GAAE,EAAE,KAAK;AAAA,EAAE,IAAI,IAAE,EAAE,QAAQ,EAAE,OAAM,CAAC,WAAW,CAAC;AAAA,EAAE,OAAO,IAAE,GAAE,GAAE,CAAC,IAAE,GAAG,EAAE,KAAK,IAAE,GAAE,GAAE,GAAG,EAAE,QAAQ,IAAE;AAAA;AAAK,SAAS,GAAE,CAAC,GAAE,GAAE,GAAE;AAAA,EAAC,IAAI,IAAE;AAAA,EAAK,QAAO,EAAE,MAAM;AAAA,SAAW,WAAU;AAAA,MAAC,IAAE;AAAA,MAAU;AAAA,IAAK;AAAA,SAAK,eAAc;AAAA,MAAC,IAAE;AAAA,MAAc;AAAA,IAAK;AAAA,SAAK,WAAU;AAAA,MAAC,IAAE;AAAA,MAAe;AAAA,IAAK;AAAA,aAAS;AAAA,MAAC,IAAE,EAAE,QAAQ,EAAE,MAAM,OAAM,CAAC;AAAA,MAAE;AAAA,IAAK;AAAA;AAAA,EAAE,OAAO,IAAE,GAAE,GAAE,EAAE,UAAS,CAAC,IAAE;AAAA;AAA2B,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,IAAI,IAAE,IAAI;AAAA,EAAG,SAAS,CAAC,CAAC,GAAE,IAAE;AAAA,IAAC,UAAS,EAAC,CAAC,IAAE;AAAA,MAAC,SAAQ,MAAK,EAAE,iBAAiB,EAAC;AAAA,QAAE,MAAM,GAAE,QAAQ,IAAG,CAAC,IAAE,IAAE,OAAI,GAAG,MAAK,IAAG;AAAA;AAAA,IAAE,IAAI,KAAE,CAAC,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,SAAQ,OAAO;AAAA,IAAE,EAAE,QAAQ,GAAE,MAAI;AAAA,MAAC,IAAI,KAAE,CAAC;AAAA,MAAE,SAAQ,MAAK,GAAE,GAAE;AAAA,QAAC,IAAG,OAAO,MAAG,UAAS;AAAA,UAAC,GAAE,KAAK,EAAC,QAAO,CAAC,EAAC,GAAE,WAAU,CAAC,EAAC,CAAC;AAAA,UAAE;AAAA,QAAQ;AAAA,QAAC,IAAI,KAAE,CAAC,GAAG,GAAE,UAAQ,CAAC,GAAE,GAAG,GAAE,GAAE,kBAAgB,CAAC,CAAC,CAAC,GAAE,KAAE,CAAC,GAAG,GAAE,aAAW,CAAC,GAAE,GAAG,GAAE,GAAE,qBAAmB,CAAC,CAAC,CAAC;AAAA,QAAE,GAAE,qBAAmB,GAAE,KAAK,GAAG,EAAC,GAAE,GAAE,mBAAiB,GAAE,QAAQ,IAAI,GAAE,GAAE,KAAK,EAAC,kBAAiB,GAAE,kBAAiB,QAAO,IAAE,WAAU,GAAC,CAAC;AAAA,MAAC;AAAA,MAAC,OAAO;AAAA,KAAE;AAAA;AAAA,EAAE,SAAS,CAAC,CAAC,GAAE,IAAE;AAAA,IAAC,EAAE,OAAO,GAAE,MAAI,GAAE,IAAI,QAAG,OAAO,MAAG,aAAW,GAAE,IAAE,GAAE,GAAE,IAAG,GAAE,EAAE,CAAC,CAAC;AAAA;AAAA,EAAE,SAAS,CAAC,CAAC,GAAE,IAAE;AAAA,IAAC,SAAS,EAAC,GAAE,UAAS,MAAG;AAAA,MAAC,OAAO,QAAG;AAAA,QAAC,IAAI,KAAE,MAAK,KAAE;AAAA,QAAK,IAAG,GAAE;AAAA,UAAM,IAAG,GAAE,MAAM,SAAO,aAAY;AAAA,YAAC,IAAG,GAAE;AAAA,cAAS;AAAA,YAAO,KAAE,GAAE,MAAM,OAAM,KAAE,GAAE,MAAM;AAAA,UAAQ,EAAK;AAAA,YAAC,IAAG,KAAE,EAAE,QAAQ,GAAE,MAAM,YAAU,GAAE,MAAM,OAAM,GAAE,aAAW,CAAC,CAAC,GAAE,OAAI,QAAM,GAAE,qBAAmB,GAAE,MAAM,UAAS;AAAA,cAAC,KAAI,IAAE,MAAG,EAAE,GAAE,MAAM,UAAS,GAAG;AAAA,cAAE,IAAG,CAAC,EAAE,EAAC,KAAG,CAAC,EAAE,EAAC;AAAA,gBAAE;AAAA,cAAO,KAAE,QAAQ,GAAE,MAAM;AAAA,YAAkB;AAAA,YAAC,IAAG,OAAI,QAAM,MAAG,GAAE,yBAAwB;AAAA,cAAC,IAAG,KAAE,GAAE,wBAAwB,GAAE,KAAK,GAAE,CAAC,IAAG,SAAS,GAAG,KAAG,GAAE;AAAA,gBAAS;AAAA,cAAO,IAAG,OAAI;AAAA,gBAAK,OAAO,GAAE,OAAO,IAAE,IAAI;AAAA,YAAC;AAAA,YAAC,IAAG,OAAI,QAAM,GAAE,oBAAkB,KAAE,GAAE,gBAAgB,GAAE,KAAK,GAAE,CAAC,IAAG,SAAS,GAAG,KAAG,GAAE;AAAA,cAAU;AAAA;AAAA,QAAW;AAAA,UAAC,IAAG,GAAE;AAAA,YAAS;AAAA,UAAO,KAAE,GAAE,iBAAoB,YAAE,GAAE,eAAa,EAAE,QAAQ,MAAK,GAAE,aAAW,CAAC,CAAC;AAAA;AAAA,QAAE,IAAG,OAAI;AAAA,UAAK,OAAO,GAAE,OAAO,KAAE,QAAQ,aAAU,IAAE,EAAC;AAAA;AAAA;AAAA,IAAG,GAAE,oBAAkB,EAAE,WAAW,IAAI,KAAI,GAAE,EAAC,UAAS,KAAE,CAAC,CAAC,GAAE,EAAE,WAAW,GAAE,GAAE,EAAC,UAAS,MAAE,CAAC,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,EAAC,kBAAiB,GAAE,kBAAiB,gBAAe,GAAE,aAAW,CAAC,GAAE,iBAAgB,GAAE,iBAAoB,aAAG,GAAE,iBAAe,MAAK,mBAAkB,GAAE,kBAAiB,CAAC,CAAC;AAAA;AAAA,EAAE,SAAS,EAAC,CAAC,GAAE,IAAE;AAAA,IAAC,EAAE,WAAW,GAAE,QAAG;AAAA,MAAC,IAAG,CAAC,GAAE;AAAA,QAAM;AAAA,MAAO,IAAI,KAAE;AAAA,MAAK,IAAG,GAAE,MAAM,SAAO,eAAa,KAAE,GAAE,MAAM,OAAM,KAAE,GAAE,IAAE,GAAE,UAAS,CAAC,KAAG,KAAE,IAAG,IAAE,GAAE,GAAE,SAAS,GAAE,OAAI;AAAA,QAAK,OAAO,GAAE,OAAO,EAAC;AAAA,KAAE,GAAE,EAAE,GAAE,MAAI,CAAC,EAAC,QAAO,CAAC,WAAU,WAAU,aAAa,GAAE,gBAAe,GAAE,WAAU,WAAU,MAAM,KAAK,EAAC,QAAO,GAAE,GAAE,CAAC,IAAE,OAAI,GAAG,KAAE,GAAG,EAAC,CAAC,CAAC;AAAA;AAAA,EAAE,SAAS,CAAC,CAAC,GAAE,IAAE,MAAG,kBAAiB,KAAE,OAAG,mBAAkB,KAAE,UAAI,CAAC,GAAE;AAAA,IAAC,MAAG,EAAE,OAAO,IAAI,QAAO,MAAI,GAAE,MAAM,CAAC,GAAE,EAAE,OAAO,GAAG,QAAO,MAAI,GAAE,KAAK,CAAC,GAAE,EAAE,GAAE,EAAC,WAAU,IAAE,mBAAkB,IAAE,kBAAiB,IAAE,cAAa,MAAK,iBAAgB,GAAE,OAAM,SAAK;AAAA,MAAC,IAAI,KAAE,EAAE,QAAQ,MAAK,CAAC,WAAW,CAAC;AAAA,MAAE,OAAM,CAAC,MAAG,CAAC,GAAG,EAAC,IAAE,OAAK,QAAQ,QAAO;AAAA,OAAM,yBAAwB,GAAE,OAAM,SAAK;AAAA,MAAC,IAAI,KAAE,EAAE,QAAQ,MAAK,CAAC,WAAW,CAAC;AAAA,MAAE,OAAM,CAAC,MAAG,CAAC,GAAG,EAAC,IAAE,OAAK,QAAQ,SAAQ;AAAA,OAAM,QAAO,GAAC,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,EAAC,QAAO,EAAE,IAAI,CAAC,WAAW,CAAC,IAAE,KAAG,CAAC,GAAE,kBAAiB,IAAE,mBAAkB,IAAE,gBAAe,GAAC,CAAC,CAAC;AAAA;AAAA,EAAE,EAAE,WAAU,CAAC,CAAC,YAAW,UAAU,GAAE,CAAC,SAAQ,KAAK,GAAE,CAAC,UAAS,KAAK,GAAE,CAAC,WAAU,GAAG,GAAE,CAAC,UAAS,MAAM,GAAE,CAAC,YAAW,QAAQ,GAAE,CAAC,QAAO,kBAAkB,GAAE,CAAC,eAAc,QAAQ,GAAE,CAAC,gBAAe,GAAG,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,YAAW,QAAQ,GAAE,CAAC,SAAQ,MAAM,GAAE,CAAC,UAAS,MAAM,GAAE,CAAC,WAAU,GAAG,GAAE,CAAC,UAAS,GAAG,GAAE,CAAC,YAAW,SAAS,GAAE,CAAC,QAAO,MAAM,GAAE,CAAC,eAAc,QAAQ,CAAC,CAAC,GAAE,EAAE,uBAAsB,CAAC,CAAC,kBAAiB,MAAM,CAAC,CAAC,GAAE,EAAE,uBAAsB,CAAC,CAAC,kBAAiB,MAAM,CAAC,CAAC,GAAE,EAAE,WAAU,CAAC,CAAC,cAAa,SAAS,CAAC,CAAC,GAAE,EAAE,aAAY,CAAC,CAAC,cAAa,QAAQ,CAAC,CAAC,GAAE,EAAE,YAAW,CAAC,CAAC,cAAa,UAAU,CAAC,CAAC,GAAE,EAAE,UAAS,CAAC,CAAC,YAAW,QAAQ,CAAC,CAAC,GAAE,EAAE,SAAQ,CAAC,CAAC,YAAW,OAAO,CAAC,CAAC,GAAE,EAAE,YAAW,CAAC,CAAC,YAAW,UAAU,CAAC,CAAC,GAAE,EAAE,YAAW,CAAC,CAAC,YAAW,UAAU,CAAC,CAAC,GAAE,EAAE,UAAS,CAAC,CAAC,YAAW,QAAQ,CAAC,CAAC;AAAA,EAAE,UAAQ,GAAE,OAAI,CAAC,CAAC,SAAQ,OAAO,GAAE,CAAC,WAAU,cAAc,GAAE,CAAC,WAAU,aAAa,GAAE,CAAC,SAAQ,oBAAoB,GAAE,CAAC,OAAM,kBAAkB,GAAE,CAAC,OAAM,KAAK,GAAE,CAAC,SAAQ,OAAO,GAAE,CAAC,UAAS,QAAQ,GAAE,CAAC,QAAO,MAAM,CAAC;AAAA,IAAE,EAAE,GAAG,UAAS,CAAC,CAAC,IAAE,MAAM,CAAC,CAAC,GAAE,EAAE,GAAG,UAAS,CAAC,CAAC,IAAE,MAAM,CAAC,CAAC,GAAE,EAAE,IAAI,UAAS,CAAC,CAAC,IAAE,OAAO,CAAC,CAAC,GAAE,EAAE,GAAE,CAAC,WAAU,WAAW,GAAE,QAAG,CAAC,GAAE,IAAE,EAAC,CAAC,GAAE,EAAC,kBAAiB,MAAG,mBAAkB,KAAE,CAAC;AAAA,EAAE,EAAE,WAAU,CAAC,CAAC,aAAY,SAAS,CAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,aAAY,MAAM,CAAC,CAAC,GAAE,EAAE,UAAS,CAAC,CAAC,WAAU,MAAM,CAAC,CAAC,GAAE,EAAE,KAAI,EAAC,kBAAiB,MAAG,iBAAgB,GAAE,OAAM,QAAK,EAAE,CAAC,IAAE,IAAE,MAAK,WAAU,CAAC,WAAW,GAAE,QAAO,OAAG,CAAC,GAAE,WAAU,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,KAAI,MAAI,CAAC,EAAC,kBAAiB,MAAG,QAAO,CAAC,KAAI,MAAK,MAAK,MAAK,MAAK,IAAI,GAAE,gBAAe,CAAC,WAAW,EAAC,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,SAAQ,OAAO,CAAC,CAAC,GAAE,EAAE,cAAa,CAAC,CAAC,SAAQ,MAAM,CAAC,CAAC,GAAE,EAAE,cAAa,CAAC,CAAC,SAAQ,GAAG,CAAC,CAAC,GAAE,EAAE,SAAQ,EAAC,kBAAiB,MAAG,iBAAgB,GAAE,OAAM,QAAK,EAAE,CAAC,IAAE,IAAE,MAAK,WAAU,CAAC,SAAS,GAAE,QAAO,OAAG,CAAC,GAAE,SAAQ,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,SAAQ,MAAI,CAAC,EAAC,kBAAiB,MAAG,QAAO,MAAM,KAAK,EAAC,QAAO,GAAE,GAAE,CAAC,GAAE,OAAI,GAAG,KAAE,GAAG,GAAE,gBAAe,CAAC,SAAS,EAAC,CAAC,CAAC,GAAE,EAAE,YAAW,CAAC,CAAC,eAAc,MAAM,CAAC,CAAC,GAAE,EAAE,OAAM,EAAC,kBAAiB,MAAG,iBAAgB,GAAE,OAAM,QAAK,EAAE,CAAC,IAAE,IAAE,MAAK,WAAU,CAAC,eAAe,GAAE,QAAO,OAAG,CAAC,GAAE,eAAc,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,iBAAgB,CAAC,CAAC,eAAc,QAAQ,CAAC,CAAC,GAAE,EAAE,YAAW,EAAC,iBAAgB,GAAE,OAAM,QAAK,EAAE,CAAC,IAAE,IAAE,MAAK,QAAO,OAAG,CAAC,GAAE,eAAc,QAAQ,YAAY,GAAG,CAAC,EAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,qBAAoB,MAAM,CAAC,CAAC,GAAE,EAAE,aAAY,EAAC,kBAAiB,MAAG,iBAAgB,GAAE,OAAM,QAAK,EAAE,CAAC,IAAE,IAAE,MAAK,WAAU,CAAC,qBAAqB,GAAE,QAAO,OAAG,CAAC,GAAE,qBAAoB,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,mBAAkB,MAAM,CAAC,CAAC,GAAE,EAAE,WAAU,EAAC,kBAAiB,MAAG,iBAAgB,GAAE,OAAM,QAAK,EAAE,CAAC,IAAE,IAAE,MAAK,WAAU,CAAC,mBAAmB,GAAE,QAAO,OAAG,CAAC,GAAE,mBAAkB,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,YAAW,MAAI,CAAC,EAAC,QAAO,MAAM,KAAK,EAAC,QAAO,GAAE,GAAE,CAAC,GAAE,OAAI,GAAG,KAAE,GAAG,GAAE,gBAAe,CAAC,EAAC,CAAC,CAAC,GAAE,EAAE,aAAY,MAAI,CAAC,EAAC,kBAAiB,MAAG,QAAO,MAAM,KAAK,EAAC,QAAO,GAAE,GAAE,CAAC,GAAE,OAAI,GAAG,KAAE,GAAG,GAAE,gBAAe,CAAC,qBAAqB,EAAC,CAAC,CAAC,GAAE,EAAE,WAAU,MAAI,CAAC,EAAC,kBAAiB,MAAG,QAAO,MAAM,KAAK,EAAC,QAAO,GAAE,GAAE,CAAC,GAAE,OAAI,GAAG,KAAE,GAAG,GAAE,gBAAe,CAAC,mBAAmB,EAAC,CAAC,CAAC,GAAE,EAAE,YAAW,CAAC,CAAC,YAAW,MAAM,CAAC,CAAC,GAAE,EAAE,OAAM,EAAC,kBAAiB,MAAG,iBAAgB,GAAE,OAAM,QAAK,EAAE,CAAC,IAAE,IAAE,MAAK,WAAU,CAAC,YAAY,GAAE,QAAO,OAAG,CAAC,GAAE,YAAW,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,iBAAgB,CAAC,CAAC,YAAW,QAAQ,CAAC,CAAC,GAAE,EAAE,YAAW,EAAC,WAAU,CAAC,GAAE,iBAAgB,GAAE,OAAM,QAAK,EAAE,CAAC,IAAE,IAAE,MAAK,QAAO,OAAG,CAAC,GAAE,YAAW,QAAQ,YAAY,GAAG,CAAC,EAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,kBAAiB,MAAM,CAAC,CAAC,GAAE,EAAE,aAAY,EAAC,kBAAiB,MAAG,iBAAgB,GAAE,OAAM,QAAK,EAAE,CAAC,IAAE,IAAE,MAAK,WAAU,CAAC,kBAAkB,GAAE,QAAO,OAAG,CAAC,GAAE,kBAAiB,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,gBAAe,MAAM,CAAC,CAAC,GAAE,EAAE,WAAU,EAAC,kBAAiB,MAAG,iBAAgB,GAAE,OAAM,QAAK,EAAE,CAAC,IAAE,IAAE,MAAK,WAAU,CAAC,gBAAgB,GAAE,QAAO,OAAG,CAAC,GAAE,gBAAe,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,YAAW,MAAI,CAAC,EAAC,QAAO,MAAM,KAAK,EAAC,QAAO,GAAE,GAAE,CAAC,GAAE,OAAI,GAAG,KAAE,GAAG,GAAE,gBAAe,CAAC,EAAC,CAAC,CAAC,GAAE,EAAE,aAAY,MAAI,CAAC,EAAC,kBAAiB,MAAG,QAAO,MAAM,KAAK,EAAC,QAAO,GAAE,GAAE,CAAC,GAAE,OAAI,GAAG,KAAE,GAAG,GAAE,gBAAe,CAAC,kBAAkB,EAAC,CAAC,CAAC,GAAE,EAAE,WAAU,MAAI,CAAC,EAAC,kBAAiB,MAAG,QAAO,MAAM,KAAK,EAAC,QAAO,GAAE,GAAE,CAAC,GAAE,OAAI,GAAG,KAAE,GAAG,GAAE,gBAAe,CAAC,gBAAgB,EAAC,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,SAAQ,cAAc,CAAC,CAAC,GAAE,EAAE,aAAY,CAAC,CAAC,SAAQ,YAAY,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,SAAQ,OAAO,CAAC,CAAC,GAAE,EAAE,cAAa,CAAC,CAAC,SAAQ,MAAM,CAAC,CAAC,GAAE,EAAE,cAAa,CAAC,CAAC,SAAQ,MAAM,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,SAAQ,cAAc,CAAC,CAAC,GAAE,EAAE,aAAY,CAAC,CAAC,SAAQ,YAAY,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,SAAQ,OAAO,CAAC,CAAC,GAAE,EAAE,cAAa,CAAC,CAAC,SAAQ,MAAM,CAAC,CAAC,GAAE,EAAE,cAAa,CAAC,CAAC,SAAQ,MAAM,CAAC,CAAC,GAAE,EAAE,cAAa,CAAC,CAAC,SAAQ,MAAM,CAAC,CAAC;AAAA,EAAE,UAAQ,GAAE,OAAI,CAAC,CAAC,KAAI,QAAQ,GAAE,CAAC,MAAK,eAAe,GAAE,CAAC,MAAK,cAAc,GAAE,CAAC,MAAK,qBAAqB,GAAE,CAAC,MAAK,mBAAmB,GAAE,CAAC,MAAK,YAAY,GAAE,CAAC,MAAK,cAAc,GAAE,CAAC,MAAK,eAAe,GAAE,CAAC,MAAK,aAAa,CAAC;AAAA,IAAE,EAAE,GAAG,UAAS,CAAC,CAAC,IAAE,MAAM,CAAC,CAAC,GAAE,EAAE,GAAE,CAAC,YAAW,WAAW,GAAE,QAAG,CAAC,GAAE,IAAE,EAAC,CAAC,GAAE,EAAC,kBAAiB,KAAE,CAAC;AAAA,EAAE,EAAE,cAAa,CAAC,CAAC,cAAa,YAAY,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,cAAa,aAAa,CAAC,CAAC,GAAE,EAAE,mBAAkB,CAAC,CAAC,YAAW,SAAS,GAAE,CAAC,WAAU,OAAO,GAAE,CAAC,sBAAqB,YAAY,GAAE,CAAC,sBAAqB,OAAO,CAAC,CAAC,GAAE,EAAE,cAAa,EAAC,WAAU,CAAC,cAAc,GAAE,iBAAgB,GAAE,OAAM,QAAK,EAAE,CAAC,IAAE,IAAE,MAAK,QAAO,OAAG,CAAC,GAAE,YAAW,QAAQ,GAAE,GAAE,WAAU,aAAa,GAAE,GAAE,sBAAqB,UAAU,GAAE,GAAE,sBAAqB,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,cAAa,MAAI,CAAC,EAAC,QAAO,CAAC,KAAI,KAAI,KAAI,KAAI,KAAI,GAAG,GAAE,gBAAe,CAAC,cAAc,EAAC,CAAC,CAAC,GAAE,EAAE,SAAQ,CAAC,CAAC,WAAU,OAAO,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,WAAU,cAAc,CAAC,CAAC,GAAE,EAAE,UAAS,CAAC,CAAC,WAAU,QAAQ,CAAC,CAAC,GAAE,EAAE,UAAS,CAAC,CAAC,WAAU,MAAM,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,WAAU,aAAa,CAAC,CAAC,GAAE,EAAE,SAAQ,CAAC,CAAC,WAAU,OAAO,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,WAAU,cAAc,CAAC,CAAC,GAAE,EAAE,iBAAgB,CAAC,CAAC,WAAU,eAAe,CAAC,CAAC,GAAE,EAAE,cAAa,CAAC,CAAC,WAAU,YAAY,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,WAAU,cAAc,CAAC,CAAC,GAAE,EAAE,sBAAqB,CAAC,CAAC,WAAU,oBAAoB,CAAC,CAAC,GAAE,EAAE,sBAAqB,CAAC,CAAC,WAAU,oBAAoB,CAAC,CAAC,GAAE,EAAE,sBAAqB,CAAC,CAAC,WAAU,oBAAoB,CAAC,CAAC,GAAE,EAAE,mBAAkB,CAAC,CAAC,WAAU,iBAAiB,CAAC,CAAC,GAAE,EAAE,aAAY,CAAC,CAAC,WAAU,WAAW,CAAC,CAAC,GAAE,EAAE,aAAY,CAAC,CAAC,WAAU,WAAW,CAAC,CAAC,GAAE,EAAE,QAAO,CAAC,CAAC,WAAU,MAAM,CAAC,CAAC,GAAE,EAAE,QAAO,CAAC,CAAC,WAAU,MAAM,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,WAAU,aAAa,CAAC,CAAC,GAAE,EAAE,YAAW,CAAC,CAAC,WAAU,UAAU,CAAC,CAAC,GAAE,EAAE,aAAY,CAAC,CAAC,WAAU,WAAW,CAAC,CAAC,GAAE,EAAE,wBAAuB,CAAC,CAAC,gBAAe,SAAS,CAAC,CAAC,GAAE,EAAE,sBAAqB,CAAC,CAAC,gBAAe,OAAO,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,gBAAe,MAAM,CAAC,CAAC,GAAE,EAAE,iBAAgB,CAAC,CAAC,gBAAe,OAAO,CAAC,CAAC,GAAE,EAAE,UAAS,EAAC,WAAU,CAAC,UAAU,GAAE,iBAAgB,GAAE,UAAS,QAAK;AAAA,IAAC,IAAG,MAAI;AAAA,MAAK,OAAO;AAAA,IAAK,KAAI,IAAE,MAAG,EAAE,GAAE,GAAG;AAAA,IAAE,OAAM,CAAC,EAAE,EAAC,KAAG,CAAC,EAAE,EAAC,IAAE,OAAK;AAAA,KAAG,QAAO,OAAG,CAAC,GAAE,gBAAe,CAAC,CAAC,EAAC,CAAC;AAAA,EAAE,UAAQ,GAAE,OAAI,CAAC,CAAC,QAAO,MAAM,GAAE,CAAC,OAAM,QAAQ,GAAE,CAAC,OAAM,QAAQ,GAAE,CAAC,OAAM,QAAQ,GAAE,CAAC,OAAM,QAAQ,GAAE,CAAC,OAAM,QAAQ,GAAE,CAAC,OAAM,QAAQ,GAAE,CAAC,OAAM,aAAa,GAAE,CAAC,OAAM,aAAa,GAAE,CAAC,OAAM,aAAa,CAAC;AAAA,IAAE,EAAE,QAAQ,KAAI,CAAC,CAAC,aAAY,MAAM,GAAE,CAAC,SAAQ,EAAC,GAAE,CAAC,UAAS,EAAC,CAAC,CAAC,GAAE,EAAE,KAAK,KAAI,CAAC,CAAC,SAAQ,EAAC,CAAC,CAAC,GAAE,EAAE,KAAK,KAAI,CAAC,CAAC,UAAS,EAAC,CAAC,CAAC,GAAE,EAAE,SAAS,KAAI,CAAC,CAAC,aAAY,EAAC,CAAC,CAAC,GAAE,EAAE,SAAS,KAAI,CAAC,CAAC,cAAa,EAAC,CAAC,CAAC,GAAE,EAAE,SAAS,KAAI,CAAC,CAAC,aAAY,EAAC,CAAC,CAAC,GAAE,EAAE,SAAS,KAAI,CAAC,CAAC,cAAa,EAAC,CAAC,CAAC;AAAA,EAAE,EAAE,aAAY,CAAC,CAAC,aAAY,MAAM,GAAE,CAAC,SAAQ,MAAM,GAAE,CAAC,UAAS,MAAM,CAAC,CAAC,GAAE,EAAE,UAAS,CAAC,CAAC,SAAQ,MAAM,CAAC,CAAC,GAAE,EAAE,UAAS,CAAC,CAAC,UAAS,MAAM,CAAC,CAAC,GAAE,EAAE,cAAa,CAAC,CAAC,aAAY,MAAM,CAAC,CAAC,GAAE,EAAE,cAAa,CAAC,CAAC,cAAa,MAAM,CAAC,CAAC,GAAE,EAAE,QAAO,CAAC,CAAC,UAAS,KAAK,CAAC,CAAC,GAAE,EAAE,YAAW,CAAC,CAAC,cAAa,KAAK,CAAC,CAAC,GAAE,EAAE,YAAW,CAAC,CAAC,cAAa,KAAK,CAAC,CAAC,GAAE,EAAE,YAAW,CAAC,CAAC,SAAQ,OAAO,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,aAAY,OAAO,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,aAAY,OAAO,CAAC,CAAC,GAAE,EAAE,YAAW,CAAC,CAAC,UAAS,OAAO,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,cAAa,OAAO,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,cAAa,OAAO,CAAC,CAAC,GAAE,EAAE,cAAa,CAAC,CAAC,aAAY,MAAM,CAAC,CAAC,GAAE,EAAE,cAAa,CAAC,CAAC,cAAa,MAAM,CAAC,CAAC,GAAE,EAAE,QAAO,CAAC,UAAS,WAAW,GAAE,OAAG,CAAC,GAAE,aAAY,MAAM,GAAE,GAAE,SAAQ,CAAC,GAAE,GAAE,UAAS,CAAC,CAAC,GAAE,EAAC,mBAAkB,KAAE,CAAC;AAAA,EAAE,UAAQ,GAAE,IAAE,OAAI,CAAC,CAAC,KAAI,CAAC,WAAU,aAAY,aAAa,GAAE,OAAO,GAAE,CAAC,SAAQ,CAAC,eAAc,aAAY,aAAa,GAAE,WAAW,GAAE,CAAC,SAAQ,CAAC,eAAc,aAAY,aAAa,GAAE,WAAW,GAAE,CAAC,KAAI,CAAC,YAAW,WAAW,GAAE,QAAQ,GAAE,CAAC,SAAQ,CAAC,gBAAe,YAAW,WAAW,GAAE,YAAY,GAAE,CAAC,SAAQ,CAAC,gBAAe,YAAW,WAAW,GAAE,YAAY,CAAC;AAAA,IAAE,EAAE,GAAE,IAAE,QAAG,CAAC,GAAE,IAAE,EAAC,CAAC,GAAE,EAAC,mBAAkB,KAAE,CAAC;AAAA,EAAE,EAAE,OAAO,aAAY,MAAI;AAAA,IAAC,IAAI,IAAE,CAAC,GAAG,EAAE,UAAU,cAAc,EAAE,OAAO,CAAC;AAAA,IAAE,EAAE,KAAK,CAAC,IAAE,OAAI,GAAG,IAAE,IAAE,KAAK,CAAC;AAAA,IAAE,IAAI,KAAE,CAAC,GAAE,aAAY,0BAA0B,GAAE,GAAE,SAAQ,MAAM,CAAC;AAAA,IAAE,SAAQ,MAAK;AAAA,MAAE,GAAE,KAAK,GAAE,UAAS,aAAa,OAAK,CAAC,GAAE,aAAY,EAAC,CAAC,CAAC,CAAC;AAAA,IAAE,OAAO;AAAA,GAAE,GAAE,EAAE,aAAY,CAAC,CAAC,QAAO,MAAM,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,QAAO,QAAQ,CAAC,CAAC,GAAE,EAAE,aAAY,CAAC,CAAC,QAAO,MAAM,CAAC,CAAC,GAAE,EAAE,WAAW,QAAO,OAAG;AAAA,IAAC,IAAG,EAAE,OAAM;AAAA,MAAC,IAAG,EAAE,MAAM,SAAO;AAAA,QAAY,OAAO,EAAE,WAAc,YAAE,CAAC,GAAE,QAAO,EAAE,MAAM,KAAK,CAAC;AAAA,MAAE,IAAG,EAAE,MAAM,UAAS;AAAA,QAAC,KAAI,IAAE,MAAG,EAAE,EAAE,MAAM,UAAS,GAAG;AAAA,QAAE,OAAM,CAAC,EAAE,EAAC,KAAG,CAAC,EAAE,EAAC,IAAO,YAAE,CAAC,GAAE,QAAO,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAAA,MAAC;AAAA,MAAC,IAAG,EAAE,EAAE,MAAM,KAAK;AAAA,QAAE,OAAO,EAAE,WAAc,YAAE,CAAC,GAAE,QAAO,EAAE,MAAM,KAAK,CAAC;AAAA,IAAC;AAAA,GAAE,GAAE,EAAE,QAAO,MAAI,CAAC,EAAC,mBAAkB,KAAE,CAAC,CAAC,GAAE,EAAE,UAAS,EAAC,cAAa,KAAI,iBAAgB,GAAE,OAAM,QAAK,EAAE,CAAC,IAAE,IAAE,MAAK,QAAO,OAAG,CAAC,GAAE,eAAc,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,QAAO,EAAC,cAAa,KAAI,iBAAgB,GAAE,OAAM,QAAK,EAAE,CAAC,IAAE,IAAE,MAAK,QAAO,OAAG,CAAC,GAAE,aAAY,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,UAAS,MAAI,CAAC,EAAC,QAAO,CAAC,GAAG,GAAE,gBAAe,CAAC,GAAE,iBAAgB,KAAE,CAAC,CAAC,GAAE,EAAE,QAAO,MAAI,CAAC,EAAC,QAAO,CAAC,GAAG,GAAE,gBAAe,CAAC,GAAE,iBAAgB,KAAE,CAAC,CAAC,GAAE,EAAE,cAAa,CAAC,CAAC,cAAa,MAAM,CAAC,CAAC,GAAE,EAAE,cAAa,CAAC,CAAC,cAAa,MAAM,CAAC,CAAC,GAAE,EAAE,SAAQ,CAAC,gBAAe,aAAY,aAAa,GAAE,OAAG,CAAC,GAAE,cAAa,CAAC,CAAC,GAAE,EAAC,mBAAkB,KAAE,CAAC,GAAE,EAAE,cAAa,CAAC,CAAC,gBAAe,MAAM,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,gBAAe,OAAO,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,gBAAe,KAAK,CAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,gBAAe,QAAQ,CAAC,CAAC,GAAE,EAAE,mBAAkB,CAAC,CAAC,mBAAkB,UAAU,CAAC,CAAC,GAAE,EAAE,mBAAkB,CAAC,CAAC,mBAAkB,UAAU,CAAC,CAAC;AAAA,EAAE,IAAI,IAAE,MAAI,GAAE,CAAC,GAAE,yBAAwB,KAAI,UAAU,GAAE,GAAE,yBAAwB,KAAI,UAAU,CAAC,CAAC;AAAA,EAAE,EAAE,kBAAiB,CAAC,oBAAmB,WAAW,GAAE,OAAG,CAAC,EAAE,GAAE,GAAE,yBAAwB,CAAC,GAAE,GAAE,yBAAwB,CAAC,GAAE,GAAE,kBAAiB,uDAAuD,CAAC,CAAC,GAAE,EAAE,oBAAmB,CAAC,oBAAmB,WAAW,GAAE,OAAG,CAAC,EAAE,GAAE,GAAE,yBAAwB,CAAC,GAAE,GAAE,kBAAiB,uDAAuD,CAAC,CAAC,GAAE,EAAE,oBAAmB,CAAC,oBAAmB,WAAW,GAAE,OAAG,CAAC,EAAE,GAAE,GAAE,yBAAwB,CAAC,GAAE,GAAE,kBAAiB,uDAAuD,CAAC,CAAC,GAAE,EAAE,iBAAgB,CAAC,CAAC,oBAAmB,QAAQ,CAAC,CAAC,GAAE,EAAE,cAAa,CAAC,CAAC,oBAAmB,KAAK,CAAC,CAAC,GAAE,EAAE,oBAAmB,CAAC,CAAC,oBAAmB,WAAW,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,oBAAmB,OAAO,CAAC,CAAC,GAAE,EAAE,uBAAsB,CAAC,CAAC,oBAAmB,cAAc,CAAC,CAAC,GAAE,EAAE,iBAAgB,CAAC,CAAC,oBAAmB,QAAQ,CAAC,CAAC,GAAE,EAAE,sBAAqB,CAAC,CAAC,oBAAmB,aAAa,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,oBAAmB,MAAM,CAAC,CAAC,GAAE,EAAE,mBAAkB,CAAC,CAAC,oBAAmB,UAAU,CAAC,CAAC,GAAE,EAAE,UAAS,EAAC,WAAU,CAAC,oBAAoB,GAAE,QAAO,OAAG,CAAC,GAAE,oBAAmB,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,6BAA4B,CAAC,CAAC,sBAAqB,QAAQ,CAAC,CAAC,GAAE,EAAE,0BAAyB,CAAC,CAAC,sBAAqB,KAAK,CAAC,CAAC,GAAE,EAAE,gCAA+B,CAAC,CAAC,sBAAqB,WAAW,CAAC,CAAC,GAAE,EAAE,4BAA2B,CAAC,CAAC,sBAAqB,OAAO,CAAC,CAAC,GAAE,EAAE,mCAAkC,CAAC,CAAC,sBAAqB,cAAc,CAAC,CAAC,GAAE,EAAE,6BAA4B,CAAC,CAAC,sBAAqB,QAAQ,CAAC,CAAC,GAAE,EAAE,kCAAiC,CAAC,CAAC,sBAAqB,aAAa,CAAC,CAAC,GAAE,EAAE,2BAA0B,CAAC,CAAC,sBAAqB,MAAM,CAAC,CAAC,GAAE,EAAE,+BAA8B,CAAC,CAAC,sBAAqB,UAAU,CAAC,CAAC,GAAE,EAAE,sBAAqB,EAAC,WAAU,CAAC,sBAAsB,GAAE,QAAO,OAAG,CAAC,GAAE,sBAAqB,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,oBAAmB,CAAC,CAAC,eAAc,MAAM,CAAC,CAAC,GAAE,EAAE,eAAc,EAAC,WAAU,CAAC,eAAe,GAAE,QAAO,OAAG,CAAC,GAAE,eAAc,CAAC,CAAC,EAAC,CAAC;AAAA,EAAE,IAAI,KAAE,MAAI,GAAE,CAAC,GAAE,oBAAmB,GAAG,GAAE,GAAE,oBAAmB,GAAG,GAAE,GAAE,oBAAmB,GAAG,CAAC,CAAC;AAAA,EAAE,EAAE,kBAAiB,CAAC,CAAC,aAAY,MAAM,CAAC,CAAC,GAAE,EAAE,mBAAkB,CAAC,IAAE,CAAC,oBAAmB,OAAO,GAAE,CAAC,oBAAmB,OAAO,GAAE,CAAC,aAAY,6CAA6C,CAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,IAAE,CAAC,oBAAmB,MAAM,GAAE,CAAC,oBAAmB,MAAM,GAAE,CAAC,aAAY,6CAA6C,CAAC,CAAC,GAAE,EAAE,aAAY,CAAC,eAAc,WAAW,GAAE,OAAG,CAAC,GAAE,GAAE,GAAE,oBAAmB,CAAC,GAAE,GAAE,oBAAmB,CAAC,GAAE,GAAE,aAAY,6CAA6C,CAAC,GAAE,EAAC,kBAAiB,MAAG,mBAAkB,KAAE,CAAC;AAAA,EAAE,SAAQ,KAAI,CAAC,KAAI,GAAG;AAAA,IAAE,EAAE,cAAc,UAAS,CAAC,IAAE,CAAC,kBAAkB,KAAI,OAAO,GAAE,CAAC,aAAY,6CAA6C,CAAC,CAAC,GAAE,EAAE,aAAa,UAAS,CAAC,IAAE,CAAC,kBAAkB,KAAI,MAAM,GAAE,CAAC,aAAY,6CAA6C,CAAC,CAAC,GAAE,EAAE,aAAa,KAAI,CAAC,eAAc,WAAW,GAAE,QAAG,CAAC,GAAE,GAAE,GAAE,kBAAkB,KAAI,EAAC,GAAE,GAAE,aAAY,6CAA6C,CAAC,GAAE,EAAC,kBAAiB,MAAG,mBAAkB,KAAE,CAAC;AAAA,EAAE,EAAE,eAAc,CAAC,eAAc,WAAW,GAAE,OAAG,CAAC,GAAE,GAAE,GAAE,oBAAmB,CAAC,GAAE,GAAE,aAAY,mEAAmE,CAAC,GAAE,EAAC,kBAAiB,KAAE,CAAC,GAAE,EAAE,gBAAe,CAAC,IAAE,CAAC,aAAY,mEAAmE,CAAC,CAAC;AAAA,EAAE,IAAI,KAAE,MAAI,GAAE,CAAC,GAAE,gBAAe,GAAG,GAAE,GAAE,gBAAe,GAAG,GAAE,GAAE,gBAAe,GAAG,CAAC,CAAC;AAAA,EAAE,EAAE,cAAa,CAAC,CAAC,SAAQ,MAAM,CAAC,CAAC;AAAA,EAAE,SAAS,EAAC,GAAE,UAAS,KAAG;AAAA,IAAC,OAAO,QAAG;AAAA,MAAC,IAAG,CAAC,GAAE,SAAO,GAAE;AAAA,QAAS;AAAA,MAAO,IAAI;AAAA,MAAE,OAAO,GAAE,MAAM,SAAO,eAAa,KAAE,GAAE,MAAM,OAAM,KAAE,IAAE,QAAQ,aAAU,IAAE,CAAC,GAAE,SAAQ,EAAC,CAAC,MAAI,KAAE,EAAE,QAAQ,GAAE,MAAM,OAAM,CAAC,SAAS,CAAC,GAAE,CAAC,MAAG,EAAE,GAAE,MAAM,KAAK,MAAI,KAAE,GAAG,GAAE,MAAM,WAAU,MAAG,KAAE,IAAE,QAAQ,aAAU,IAAE,CAAC,GAAE,GAAE,GAAE,gBAAe,EAAC,GAAE,GAAE,gBAAe,EAAC,GAAE,GAAE,gBAAe,EAAC,GAAE,GAAE,SAAQ,qCAAqC,CAAC,KAAQ;AAAA;AAAA;AAAA,EAAI,EAAE,WAAW,UAAS,GAAE,EAAC,UAAS,KAAE,CAAC,CAAC,GAAE,EAAE,WAAW,SAAQ,GAAE,EAAC,UAAS,MAAE,CAAC,CAAC,GAAE,EAAE,SAAQ,MAAI,CAAC,EAAC,kBAAiB,MAAG,QAAO,CAAC,KAAI,MAAK,MAAK,MAAK,MAAK,OAAM,OAAM,OAAM,OAAM,OAAM,KAAK,GAAE,gBAAe,CAAC,SAAS,EAAC,CAAC,CAAC;AAAA,EAAE,SAAQ,KAAI,CAAC,KAAI,KAAI,GAAG;AAAA,IAAE,EAAE,SAAS,KAAI,EAAC,kBAAiB,MAAG,WAAU,CAAC,SAAS,GAAE,iBAAgB,GAAE,OAAM,SAAK,EAAE,EAAC,IAAE,GAAG,QAAK,MAAK,QAAO,QAAG,CAAC,GAAE,GAAE,GAAE,cAAc,KAAI,EAAC,GAAE,GAAE,SAAQ,sCAAsC,MAAI,MAAI,uBAAqB,IAAI,CAAC,EAAC,CAAC,GAAE,EAAE,SAAS,KAAI,MAAI,CAAC,EAAC,kBAAiB,MAAG,QAAO,CAAC,KAAI,MAAK,MAAK,MAAK,MAAK,OAAM,OAAM,OAAM,OAAM,OAAM,KAAK,GAAE,gBAAe,CAAC,SAAS,EAAC,CAAC,CAAC;AAAA,EAAE,EAAE,YAAW,CAAC,IAAE,CAAC,SAAQ,uDAAuD,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,UAAS,MAAM,CAAC,CAAC;AAAA,EAAE,SAAS,EAAC,GAAE,UAAS,KAAG;AAAA,IAAC,OAAO,QAAG;AAAA,MAAC,IAAG,CAAC,GAAE,SAAO,GAAE;AAAA,QAAS;AAAA,MAAO,IAAI;AAAA,MAAE,IAAG,GAAE,MAAM,SAAO,aAAY;AAAA,QAAC,KAAE,GAAE,MAAM;AAAA,QAAM,IAAI,KAAE,GAAE,MAAM,YAAU,GAAE,IAAE,CAAC,SAAQ,QAAQ,CAAC;AAAA,QAAE,IAAG,OAAI;AAAA,UAAS,OAAM,CAAC,GAAE,UAAS,GAAG,qBAAoB,CAAC;AAAA,QAAE,IAAG,OAAI;AAAA,UAAQ,OAAM,CAAC,GAAE,UAAS,IAAE,QAAQ,aAAU,EAAC,CAAC;AAAA,MAAC,EAAM,SAAG,KAAE,EAAE,QAAQ,GAAE,MAAM,OAAM,CAAC,UAAU,CAAC,GAAE,CAAC,MAAG,EAAE,GAAE,MAAM,KAAK,MAAI,KAAE,GAAG,GAAE,MAAM,aAAY,CAAC;AAAA,QAAE;AAAA,MAAO,OAAM,CAAC,GAAE,UAAS,IAAE,QAAQ,aAAU,EAAC,CAAC;AAAA;AAAA;AAAA,EAAG,EAAE,WAAW,WAAU,GAAE,EAAC,UAAS,KAAE,CAAC,CAAC,GAAE,EAAE,WAAW,UAAS,GAAE,EAAC,UAAS,MAAE,CAAC,CAAC,GAAE,EAAE,UAAS,MAAI,CAAC,EAAC,kBAAiB,MAAG,QAAO,CAAC,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,MAAK,MAAK,KAAK,GAAE,gBAAe,CAAC,UAAU,EAAC,CAAC,CAAC;AAAA,EAAE;AAAA,IAAC,IAAI,IAAE,CAAC,uBAAsB,uBAAsB,uBAAsB,qBAAoB,mBAAmB,EAAE,KAAK,GAAG,GAAE,KAAE,MAAI,GAAE,CAAC,GAAE,eAAe,GAAE,GAAE,eAAe,GAAE,GAAE,eAAe,GAAE,GAAE,aAAa,GAAE,GAAE,aAAa,CAAC,CAAC;AAAA,IAAE,SAAQ,MAAI,CAAC,KAAI,KAAI,GAAG;AAAA,MAAE,EAAE,UAAU,MAAI,EAAC,kBAAiB,MAAG,WAAU,CAAC,UAAU,GAAE,iBAAgB,GAAE,OAAM,SAAK,EAAE,EAAC,IAAE,GAAG,UAAO,MAAK,QAAO,QAAG,CAAC,GAAE,GAAE,GAAE,eAAe,MAAI,SAAS,GAAE,YAAY,KAAK,KAAI,GAAE,GAAE,aAAY,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,UAAU,MAAI,MAAI,CAAC,EAAC,kBAAiB,MAAG,QAAO,CAAC,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,MAAK,MAAK,KAAK,GAAE,gBAAe,CAAC,UAAU,EAAC,CAAC,CAAC;AAAA,IAAE,EAAE,QAAO,EAAC,kBAAiB,MAAG,WAAU,CAAC,QAAQ,GAAE,iBAAgB,GAAE,OAAM,SAAK,EAAE,EAAC,IAAE,GAAG,UAAO,MAAK,QAAO,QAAG,CAAC,GAAE,GAAE,GAAE,eAAc,SAAS,KAAI,GAAE,GAAE,eAAc,SAAS,KAAI,GAAE,GAAE,aAAY,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,UAAS,EAAC,kBAAiB,MAAG,WAAU,CAAC,QAAQ,GAAE,iBAAgB,GAAE,OAAM,SAAK,EAAE,EAAC,IAAE,GAAG,UAAO,MAAK,QAAO,QAAG,CAAC,GAAE,GAAE,GAAE,eAAc,SAAS,KAAI,GAAE,GAAE,aAAY,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,UAAS,EAAC,kBAAiB,MAAG,WAAU,CAAC,QAAQ,GAAE,iBAAgB,GAAE,OAAM,SAAK,EAAE,EAAC,IAAE,GAAG,UAAO,MAAK,QAAO,QAAG,CAAC,GAAE,GAAE,GAAE,eAAc,SAAS,KAAI,GAAE,GAAE,aAAY,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,QAAO,MAAI,CAAC,EAAC,kBAAiB,MAAG,QAAO,CAAC,KAAI,KAAI,KAAI,KAAI,KAAI,IAAI,GAAE,gBAAe,CAAC,QAAQ,EAAC,CAAC,CAAC,GAAE,EAAE,UAAS,MAAI,CAAC,EAAC,kBAAiB,MAAG,QAAO,CAAC,KAAI,KAAI,KAAI,KAAI,KAAI,IAAI,GAAE,gBAAe,CAAC,QAAQ,EAAC,CAAC,CAAC,GAAE,EAAE,UAAS,MAAI,CAAC,EAAC,kBAAiB,MAAG,QAAO,CAAC,KAAI,KAAI,KAAI,KAAI,KAAI,IAAI,GAAE,gBAAe,CAAC,QAAQ,EAAC,CAAC,CAAC,GAAE,EAAE,WAAW,aAAY,QAAG;AAAA,MAAC,IAAG,GAAE;AAAA,QAAS;AAAA,MAAO,IAAI,KAAE;AAAA,MAAK,IAAG,GAAE,QAAM,GAAE,MAAM,SAAO,gBAAc,KAAE,GAAE,MAAM,SAAO,KAAE,GAAE,OAAI;AAAA,QAAK,OAAM,CAAC,GAAE,GAAE,GAAE,aAAY,EAAC,CAAC;AAAA,KAAE,GAAE,EAAE,aAAY,MAAI,CAAC,EAAC,iBAAgB,KAAE,CAAC,CAAC,GAAE,EAAE,iBAAgB,CAAC,CAAC,aAAY,CAAC,CAAC,CAAC,GAAE,EAAE,iBAAgB,CAAC,CAAC,aAAY,iBAAiB,GAAG,CAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,aAAY,MAAM,CAAC,CAAC;AAAA,EAAC;AAAA,EAAC,EAAE,kBAAiB,CAAC,CAAC,mBAAkB,MAAM,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,mBAAkB,aAAa,CAAC,CAAC,GAAE,EAAE,qBAAoB,CAAC,CAAC,iBAAgB,aAAa,CAAC,CAAC,GAAE,EAAE,oBAAmB,CAAC,CAAC,iBAAgB,YAAY,CAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,iBAAgB,UAAU,CAAC,CAAC,GAAE,EAAE,oBAAmB,CAAC,CAAC,iBAAgB,YAAY,CAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,iBAAgB,UAAU,CAAC,CAAC,GAAE,EAAE,oBAAmB,CAAC,CAAC,uBAAsB,SAAS,CAAC,CAAC,GAAE,EAAE,mBAAkB,CAAC,CAAC,uBAAsB,QAAQ,CAAC,CAAC;AAAA,EAAE,SAAQ,KAAI,CAAC,QAAO,WAAU,WAAU,QAAO,QAAO,QAAO,QAAO,eAAc,QAAO,gBAAe,YAAW,QAAO,aAAY,iBAAgB,SAAQ,QAAO,WAAU,QAAO,YAAW,cAAa,cAAa,cAAa,YAAW,YAAW,YAAW,YAAW,aAAY,aAAY,aAAY,aAAY,aAAY,aAAY,eAAc,eAAc,WAAU,UAAU;AAAA,IAAE,EAAE,UAAU,KAAI,CAAC,CAAC,UAAS,CAAC,CAAC,CAAC;AAAA,EAAE,EAAE,UAAS,EAAC,WAAU,CAAC,UAAU,GAAE,QAAO,OAAG,CAAC,GAAE,UAAS,CAAC,CAAC,EAAC,CAAC;AAAA,EAAE,SAAQ,KAAI,CAAC,QAAO,QAAO,cAAc;AAAA,IAAE,EAAE,SAAS,KAAI,CAAC,CAAC,gBAAe,CAAC,CAAC,CAAC;AAAA,EAAE,IAAI,IAAE,MAAI,GAAE,CAAC,GAAE,YAAY,GAAE,GAAE,YAAY,GAAE,GAAE,iBAAiB,CAAC,CAAC;AAAA,EAAE,SAAQ,KAAI,CAAC,KAAI,QAAO,OAAO;AAAA,IAAE,EAAE,aAAa,KAAI,CAAC,GAAE,CAAC,cAAa,OAAO,GAAG,GAAE,CAAC,gBAAe,yDAAyD,CAAC,CAAC;AAAA,EAAE,SAAQ,KAAI,CAAC,KAAI,MAAK,MAAM;AAAA,IAAE,EAAE,aAAa,KAAI,CAAC,GAAE,CAAC,cAAa,OAAO,GAAG,GAAE,CAAC,gBAAe,yDAAyD,CAAC,CAAC;AAAA,EAAE,EAAE,oBAAmB,CAAC,GAAE,CAAC,mBAAkB,YAAY,GAAE,CAAC,gBAAe,yDAAyD,CAAC,CAAC;AAAA,EAAE,SAAQ,KAAI,CAAC,QAAO,QAAO,OAAM,MAAM;AAAA,IAAE,EAAE,UAAU,KAAI,CAAC,CAAC,uBAAsB,CAAC,GAAE,CAAC,eAAc,CAAC,CAAC,CAAC;AAAA,EAAE,EAAE,eAAc,CAAC,CAAC,UAAS,MAAM,CAAC,CAAC,GAAE,EAAE,YAAW,CAAC,CAAC,UAAS,YAAY,CAAC,CAAC,GAAE,EAAE,YAAW,CAAC,CAAC,UAAS,UAAU,CAAC,CAAC,GAAE,EAAE,UAAS,CAAC,CAAC,UAAS,MAAM,CAAC,CAAC,GAAE,EAAE,aAAY,CAAC,CAAC,oBAAmB,MAAM,CAAC,CAAC;AAAA,EAAE,IAAI,KAAE,MAAI,GAAE,CAAC,GAAE,+BAA8B,aAAY,GAAG,CAAC,CAAC;AAAA,EAAE,SAAQ,KAAI,CAAC,KAAI,KAAI,MAAM;AAAA,IAAE,EAAE,QAAQ,KAAI,CAAC,IAAE,CAAC,oBAAmB,GAAG,oCAAoC,CAAC,CAAC;AAAA,EAAE,EAAE,kBAAiB,CAAC,IAAE,CAAC,+BAA8B,WAAW,CAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,IAAE,CAAC,+BAA8B,WAAW,CAAC,CAAC,GAAE,EAAE,mBAAkB,CAAC,CAAC,qBAAoB,MAAM,CAAC,CAAC,GAAE,EAAE,cAAa,CAAC,CAAC,qBAAoB,OAAO,CAAC,CAAC,GAAE,EAAE,YAAW,CAAC,CAAC,qBAAoB,KAAK,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,qBAAoB,QAAQ,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,oBAAmB,QAAQ,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,oBAAmB,QAAQ,CAAC,CAAC;AAAA,EAAE,UAAQ,GAAE,OAAI,CAAC,CAAC,YAAW,eAAe,GAAE,CAAC,aAAY,sBAAsB,GAAE,CAAC,aAAY,qBAAqB,GAAE,CAAC,aAAY,4BAA4B,GAAE,CAAC,aAAY,0BAA0B,GAAE,CAAC,aAAY,mBAAmB,GAAE,CAAC,aAAY,qBAAqB,GAAE,CAAC,aAAY,sBAAsB,GAAE,CAAC,aAAY,oBAAoB,CAAC;AAAA,IAAE,EAAE,GAAE,CAAC,mBAAkB,WAAW,GAAE,QAAG,CAAC,GAAE,IAAE,EAAC,CAAC,GAAE,EAAC,kBAAiB,KAAE,CAAC;AAAA,EAAE,UAAQ,GAAE,OAAI,CAAC,CAAC,YAAW,gBAAgB,GAAE,CAAC,aAAY,uBAAuB,GAAE,CAAC,aAAY,sBAAsB,GAAE,CAAC,aAAY,6BAA6B,GAAE,CAAC,aAAY,2BAA2B,GAAE,CAAC,aAAY,oBAAoB,GAAE,CAAC,aAAY,sBAAsB,GAAE,CAAC,aAAY,uBAAuB,GAAE,CAAC,aAAY,qBAAqB,CAAC;AAAA,IAAE,EAAE,GAAE,CAAC,oBAAmB,WAAW,GAAE,QAAG,CAAC,GAAE,IAAE,EAAC,CAAC,CAAC;AAAA,EAAE,EAAE,eAAc,CAAC,CAAC,uBAAsB,QAAQ,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,uBAAsB,SAAS,CAAC,CAAC,GAAE,EAAE,aAAY,CAAC,CAAC,mBAAkB,MAAM,CAAC,CAAC,GAAE,EAAE,aAAY,CAAC,CAAC,mBAAkB,MAAM,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,mBAAkB,SAAS,CAAC,CAAC,GAAE,EAAE,QAAO,EAAC,WAAU,CAAC,mBAAmB,GAAE,QAAO,OAAG,CAAC,GAAE,mBAAkB,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,mBAAkB,CAAC,CAAC,oBAAmB,MAAM,CAAC,CAAC,GAAE,EAAE,cAAa,EAAC,WAAU,CAAC,oBAAoB,GAAE,QAAO,OAAG,CAAC,GAAE,oBAAmB,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,mBAAkB,CAAC,CAAC,cAAa,MAAM,CAAC,CAAC,GAAE,EAAE,mBAAkB,CAAC,CAAC,cAAa,MAAM,CAAC,CAAC,GAAE,EAAE,iBAAgB,CAAC,CAAC,gBAAe,QAAQ,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,gBAAe,MAAM,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,gBAAe,OAAO,CAAC,CAAC,GAAE,EAAE,qBAAoB,CAAC,CAAC,gBAAe,YAAY,CAAC,CAAC,GAAE,EAAE,oBAAmB,CAAC,CAAC,gBAAe,WAAW,CAAC,CAAC,GAAE,EAAE,qBAAoB,CAAC,CAAC,gBAAe,YAAY,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,WAAU,MAAM,CAAC,CAAC,GAAE,EAAE,WAAU,EAAC,WAAU,CAAC,aAAY,aAAa,GAAE,iBAAgB,GAAE,OAAM,QAAK,EAAE,CAAC,IAAE,IAAE,MAAK,QAAO,OAAG,CAAC,GAAE,WAAU,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,WAAU,MAAI,CAAC,EAAC,QAAO,MAAM,KAAK,EAAC,QAAO,GAAE,GAAE,CAAC,GAAE,OAAI,GAAG,KAAE,GAAG,GAAE,gBAAe,CAAC,aAAY,aAAa,EAAC,CAAC,CAAC;AAAA,EAAE,SAAQ,KAAI,CAAC,QAAO,SAAQ,OAAM,cAAa,QAAO,QAAO,SAAQ,QAAQ;AAAA,IAAE,EAAE,gBAAgB,KAAI,CAAC,CAAC,gBAAe,CAAC,CAAC,CAAC;AAAA,EAAE,SAAQ,KAAI,CAAC,QAAO,SAAQ,cAAa,cAAc;AAAA,IAAE,EAAE,gBAAgB,KAAI,CAAC,CAAC,gBAAe,CAAC,CAAC,CAAC;AAAA,EAAE,SAAQ,KAAI,CAAC,QAAO,SAAQ,OAAM,cAAa,QAAO,QAAO,SAAQ,QAAQ;AAAA,IAAE,EAAE,eAAe,KAAI,CAAC,CAAC,eAAc,CAAC,CAAC,CAAC;AAAA,EAAE,EAAE,iBAAgB,CAAC,CAAC,kBAAiB,KAAK,CAAC,CAAC,GAAE,EAAE,iBAAgB,CAAC,CAAC,kBAAiB,QAAQ,CAAC,CAAC,GAAE,EAAE,mBAAkB,CAAC,CAAC,kBAAiB,OAAO,CAAC,CAAC,GAAE,EAAE,uBAAsB,CAAC,CAAC,kBAAiB,WAAW,CAAC,CAAC,GAAE,EAAE,uBAAsB,CAAC,CAAC,kBAAiB,cAAc,CAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,qBAAoB,MAAM,CAAC,CAAC,GAAE,EAAE,iBAAgB,CAAC,CAAC,qBAAoB,aAAa,CAAC,CAAC,GAAE,EAAE,iBAAgB,CAAC,CAAC,qBAAoB,aAAa,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,qBAAoB,gBAAgB,CAAC,CAAC,GAAE,EAAE,aAAY,EAAC,WAAU,CAAC,qBAAqB,GAAE,QAAO,OAAG,CAAC,GAAE,qBAAoB,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,kBAAiB,MAAM,CAAC,CAAC,GAAE,EAAE,iBAAgB,CAAC,CAAC,kBAAiB,aAAa,CAAC,CAAC,GAAE,EAAE,iBAAgB,CAAC,CAAC,kBAAiB,aAAa,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,kBAAiB,gBAAgB,CAAC,CAAC,GAAE,EAAE,aAAY,EAAC,WAAU,CAAC,kBAAkB,GAAE,QAAO,OAAG,CAAC,GAAE,kBAAiB,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,yBAAwB,MAAM,CAAC,CAAC,GAAE,EAAE,qBAAoB,CAAC,CAAC,yBAAwB,SAAS,CAAC,CAAC,GAAE,EAAE,aAAY,EAAC,WAAU,CAAC,yBAAyB,GAAE,iBAAgB,GAAE,OAAM,QAAK,GAAG,CAAC,IAAE,UAAU,uBAAqB,MAAK,QAAO,OAAG,CAAC,GAAE,yBAAwB,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,sBAAqB,MAAM,CAAC,CAAC,GAAE,EAAE,qBAAoB,CAAC,CAAC,sBAAqB,SAAS,CAAC,CAAC,GAAE,EAAE,aAAY,EAAC,WAAU,CAAC,sBAAsB,GAAE,iBAAgB,GAAE,OAAM,QAAK,GAAG,CAAC,IAAE,UAAU,uBAAqB,MAAK,QAAO,OAAG,CAAC,GAAE,sBAAqB,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,aAAY,MAAI,CAAC,EAAC,QAAO,MAAM,KAAK,EAAC,QAAO,GAAE,GAAE,CAAC,GAAE,OAAI,GAAG,KAAE,GAAG,GAAE,gBAAe,CAAC,yBAAyB,EAAC,CAAC,CAAC,GAAE,EAAE,aAAY,MAAI,CAAC,EAAC,QAAO,MAAM,KAAK,EAAC,QAAO,GAAE,GAAE,CAAC,GAAE,OAAI,GAAG,KAAE,GAAG,GAAE,gBAAe,CAAC,sBAAsB,EAAC,CAAC,CAAC,GAAE,EAAE,YAAW,CAAC,CAAC,kBAAiB,KAAK,CAAC,CAAC,GAAE,EAAE,oBAAmB,CAAC,CAAC,kBAAiB,aAAa,CAAC,CAAC,GAAE,EAAE,YAAW,CAAC,CAAC,kBAAiB,QAAQ,CAAC,CAAC,GAAE,EAAE,oBAAmB,CAAC,CAAC,kBAAiB,gBAAgB,CAAC,CAAC,GAAE,EAAE,aAAY,CAAC,CAAC,aAAY,MAAM,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,aAAY,QAAQ,CAAC,CAAC,GAAE,EAAE,qBAAoB,CAAC,CAAC,aAAY,cAAc,CAAC,CAAC,GAAE,EAAE,wBAAuB,CAAC,CAAC,iBAAgB,QAAQ,CAAC,CAAC,GAAE,EAAE,uBAAsB,CAAC,CAAC,iBAAgB,OAAO,CAAC,CAAC,GAAE,EAAE,qBAAoB,CAAC,CAAC,iBAAgB,KAAK,CAAC,CAAC,GAAE,EAAE,6BAA4B,CAAC,CAAC,iBAAgB,aAAa,CAAC,CAAC,GAAE,EAAE,0BAAyB,CAAC,CAAC,iBAAgB,UAAU,CAAC,CAAC,GAAE,EAAE,yBAAwB,CAAC,CAAC,iBAAgB,eAAe,CAAC,CAAC,GAAE,EAAE,wBAAuB,CAAC,CAAC,iBAAgB,cAAc,CAAC,CAAC,GAAE,EAAE,wBAAuB,CAAC,CAAC,iBAAgB,cAAc,CAAC,CAAC,GAAE,EAAE,0BAAyB,CAAC,CAAC,iBAAgB,UAAU,CAAC,CAAC,GAAE,EAAE,yBAAwB,CAAC,CAAC,iBAAgB,SAAS,CAAC,CAAC,GAAE,EAAE,sBAAqB,CAAC,CAAC,eAAc,QAAQ,CAAC,CAAC,GAAE,EAAE,qBAAoB,CAAC,CAAC,eAAc,OAAO,CAAC,CAAC,GAAE,EAAE,mBAAkB,CAAC,CAAC,eAAc,KAAK,CAAC,CAAC,GAAE,EAAE,2BAA0B,CAAC,CAAC,eAAc,aAAa,CAAC,CAAC,GAAE,EAAE,wBAAuB,CAAC,CAAC,eAAc,UAAU,CAAC,CAAC,GAAE,EAAE,wBAAuB,CAAC,CAAC,eAAc,UAAU,CAAC,CAAC,GAAE,EAAE,uBAAsB,CAAC,CAAC,eAAc,SAAS,CAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,iBAAgB,QAAQ,CAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,iBAAgB,QAAQ,CAAC,CAAC,GAAE,EAAE,iBAAgB,CAAC,CAAC,iBAAgB,YAAY,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,iBAAgB,UAAU,CAAC,CAAC,GAAE,EAAE,uBAAsB,CAAC,CAAC,iBAAgB,aAAa,CAAC,CAAC,GAAE,EAAE,oBAAmB,CAAC,CAAC,iBAAgB,eAAe,CAAC,CAAC,GAAE,EAAE,mBAAkB,CAAC,CAAC,iBAAgB,eAAe,CAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,iBAAgB,cAAc,CAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,iBAAgB,cAAc,CAAC,CAAC,GAAE,EAAE,oBAAmB,CAAC,CAAC,iBAAgB,UAAU,CAAC,CAAC,GAAE,EAAE,mBAAkB,CAAC,CAAC,iBAAgB,SAAS,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,eAAc,QAAQ,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,eAAc,YAAY,CAAC,CAAC,GAAE,EAAE,aAAY,CAAC,CAAC,eAAc,UAAU,CAAC,CAAC,GAAE,EAAE,qBAAoB,CAAC,CAAC,eAAc,aAAa,CAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,eAAc,eAAe,CAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,eAAc,UAAU,CAAC,CAAC,GAAE,EAAE,uBAAsB,CAAC,CAAC,eAAc,eAAe,CAAC,CAAC,GAAE,EAAE,iBAAgB,CAAC,CAAC,eAAc,SAAS,CAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,mBAAkB,QAAQ,CAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,mBAAkB,QAAQ,CAAC,CAAC,GAAE,EAAE,iBAAgB,CAAC,CAAC,mBAAkB,YAAY,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,mBAAkB,UAAU,CAAC,CAAC,GAAE,EAAE,uBAAsB,CAAC,CAAC,mBAAkB,aAAa,CAAC,CAAC,GAAE,EAAE,oBAAmB,CAAC,CAAC,mBAAkB,eAAe,CAAC,CAAC,GAAE,EAAE,mBAAkB,CAAC,CAAC,mBAAkB,eAAe,CAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,mBAAkB,cAAc,CAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,mBAAkB,cAAc,CAAC,CAAC,GAAE,EAAE,oBAAmB,CAAC,CAAC,mBAAkB,UAAU,CAAC,CAAC,GAAE,EAAE,mBAAkB,CAAC,CAAC,mBAAkB,SAAS,CAAC,CAAC,GAAE,EAAE,wBAAuB,CAAC,CAAC,iBAAgB,QAAQ,CAAC,CAAC,GAAE,EAAE,wBAAuB,CAAC,CAAC,iBAAgB,QAAQ,CAAC,CAAC,GAAE,EAAE,uBAAsB,CAAC,CAAC,iBAAgB,OAAO,CAAC,CAAC,GAAE,EAAE,qBAAoB,CAAC,CAAC,iBAAgB,KAAK,CAAC,CAAC,GAAE,EAAE,6BAA4B,CAAC,CAAC,iBAAgB,aAAa,CAAC,CAAC,GAAE,EAAE,0BAAyB,CAAC,CAAC,iBAAgB,UAAU,CAAC,CAAC,GAAE,EAAE,yBAAwB,CAAC,CAAC,iBAAgB,SAAS,CAAC,CAAC,GAAE,EAAE,OAAM,CAAC,SAAQ,WAAW,GAAE,OAAG,CAAC,GAAE,OAAM,CAAC,CAAC,CAAC,GAAE,EAAE,SAAQ,CAAC,SAAQ,WAAW,GAAE,OAAG,CAAC,GAAE,cAAa,CAAC,CAAC,CAAC,GAAE,EAAE,SAAQ,CAAC,SAAQ,WAAW,GAAE,OAAG,CAAC,GAAE,WAAU,CAAC,CAAC,CAAC,GAAE,EAAE,WAAU,CAAC,WAAU,WAAW,GAAE,OAAG,CAAC,GAAE,CAAC,GAAE,wBAAuB,GAAG,CAAC,CAAC,GAAE,GAAE,iCAAgC,CAAC,GAAE,aAAY,SAAS,GAAE,GAAE,wBAAuB,GAAG,GAAE,GAAE,uBAAsB,QAAQ,gCAAgC,GAAE,GAAE,qBAAoB,QAAQ,0CAA0C,CAAC,CAAC,CAAC,GAAE,EAAC,kBAAiB,KAAE,CAAC,GAAE,EAAE,WAAU,CAAC,WAAU,WAAW,GAAE,OAAG,CAAC,GAAE,CAAC,GAAE,wBAAuB,GAAG,CAAC,CAAC,GAAE,GAAE,iCAAgC,CAAC,GAAE,aAAY,YAAY,GAAE,GAAE,wBAAuB,GAAG,GAAE,GAAE,sBAAqB,QAAQ,gCAAgC,GAAE,GAAE,oBAAmB,QAAQ,0CAA0C,CAAC,CAAC,CAAC,GAAE,EAAC,kBAAiB,KAAE,CAAC,GAAE,EAAE,mBAAkB,CAAC,MAAI,GAAE,CAAC,GAAE,wBAAuB,GAAG,CAAC,CAAC,GAAE,MAAI,GAAE,iCAAgC,CAAC,GAAE,aAAY,SAAS,GAAE,GAAE,wBAAuB,GAAG,CAAC,CAAC,CAAC,CAAC,GAAE,EAAE,mBAAkB,CAAC,MAAI,GAAE,CAAC,GAAE,wBAAuB,GAAG,CAAC,CAAC,GAAE,MAAI,GAAE,iCAAgC,CAAC,GAAE,aAAY,YAAY,GAAE,GAAE,wBAAuB,GAAG,CAAC,CAAC,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,gBAAe,MAAM,CAAC,CAAC,GAAE,GAAE,UAAS,EAAC,WAAU,CAAC,kBAAiB,SAAS,GAAE,QAAO,OAAG,CAAC,GAAE,gBAAe,CAAC,CAAC,EAAC,CAAC,GAAE,GAAE,SAAQ,EAAC,WAAU,CAAC,iBAAgB,SAAS,GAAE,QAAO,OAAG,CAAC,GAAE,eAAc,CAAC,CAAC,EAAC,CAAC,GAAE,GAAE,UAAS,EAAC,WAAU,CAAC,kBAAiB,SAAS,GAAE,QAAO,OAAG,CAAC,GAAE,iCAAgC,CAAC,GAAE,aAAY,cAAc,GAAE,GAAE,gBAAe,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,mBAAkB,CAAC,CAAC,cAAa,MAAM,CAAC,CAAC,GAAE,EAAE,oBAAmB,CAAC,CAAC,cAAa,OAAO,CAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,cAAa,KAAK,CAAC,CAAC,GAAE,EAAE,qBAAoB,CAAC,CAAC,cAAa,QAAQ,CAAC,CAAC,GAAE,EAAE,uBAAsB,CAAC,CAAC,cAAa,UAAU,CAAC,CAAC,GAAE,EAAE,0BAAyB,CAAC,CAAC,cAAa,aAAa,CAAC,CAAC,GAAE,EAAE,sBAAqB,CAAC,CAAC,cAAa,SAAS,CAAC,CAAC,GAAE,EAAE,aAAY,CAAC,CAAC,cAAa,MAAM,CAAC,CAAC,GAAE,EAAE,cAAa,CAAC,CAAC,cAAa,YAAY,CAAC,CAAC,GAAE,EAAE,YAAW,CAAC,CAAC,cAAa,UAAU,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,cAAa,QAAQ,CAAC,CAAC,GAAE,EAAE,iBAAgB,CAAC,CAAC,cAAa,eAAe,CAAC,CAAC,GAAE,EAAE,oBAAmB,CAAC,CAAC,cAAa,aAAa,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,cAAa,SAAS,CAAC,CAAC,GAAE,EAAE,iBAAgB,CAAC,CAAC,cAAa,UAAU,CAAC,CAAC,GAAE,EAAE,sBAAqB,CAAC,CAAC,cAAa,eAAe,CAAC,CAAC,GAAE,EAAE,qBAAoB,CAAC,CAAC,gBAAe,MAAM,CAAC,CAAC,GAAE,EAAE,sBAAqB,CAAC,CAAC,gBAAe,YAAY,CAAC,CAAC,GAAE,EAAE,oBAAmB,CAAC,CAAC,gBAAe,UAAU,CAAC,CAAC,GAAE,EAAE,uBAAsB,CAAC,CAAC,gBAAe,QAAQ,CAAC,CAAC,GAAE,EAAE,yBAAwB,CAAC,CAAC,gBAAe,eAAe,CAAC,CAAC,GAAE,EAAE,4BAA2B,CAAC,CAAC,gBAAe,aAAa,CAAC,CAAC,GAAE,EAAE,wBAAuB,CAAC,CAAC,gBAAe,SAAS,CAAC,CAAC;AAAA,EAAE,SAAQ,KAAI,CAAC,QAAO,UAAS,QAAO,WAAU,QAAQ;AAAA,IAAE,EAAE,YAAY,KAAI,CAAC,CAAC,YAAW,CAAC,CAAC,CAAC,GAAE,EAAE,cAAc,KAAI,CAAC,CAAC,cAAa,CAAC,CAAC,CAAC,GAAE,EAAE,cAAc,KAAI,CAAC,CAAC,cAAa,CAAC,CAAC,CAAC;AAAA,EAAE,SAAQ,KAAI,CAAC,QAAO,WAAU,MAAM;AAAA,IAAE,EAAE,cAAc,KAAI,CAAC,CAAC,uBAAsB,CAAC,CAAC,CAAC,GAAE,EAAE,gBAAgB,KAAI,CAAC,CAAC,yBAAwB,CAAC,CAAC,CAAC,GAAE,EAAE,gBAAgB,KAAI,CAAC,CAAC,yBAAwB,CAAC,CAAC,CAAC;AAAA,EAAE,EAAE,eAAc,CAAC,CAAC,mBAAkB,MAAM,CAAC,CAAC,GAAE,EAAE,iBAAgB,CAAC,CAAC,mBAAkB,QAAQ,CAAC,CAAC,GAAE,EAAE,YAAW,CAAC,CAAC,YAAW,QAAQ,GAAE,CAAC,iBAAgB,UAAU,GAAE,CAAC,eAAc,QAAQ,CAAC,CAAC,GAAE,EAAE,iBAAgB,CAAC,CAAC,iBAAgB,UAAU,CAAC,CAAC,GAAE,EAAE,aAAY,CAAC,CAAC,iBAAgB,MAAM,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,mBAAkB,MAAM,GAAE,CAAC,WAAU,MAAM,CAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,mBAAkB,QAAQ,GAAE,CAAC,WAAU,QAAQ,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,mBAAkB,MAAM,GAAE,CAAC,WAAU,MAAM,CAAC,CAAC,GAAE,EAAE,qBAAoB,CAAC,CAAC,eAAc,QAAQ,CAAC,CAAC,GAAE,EAAE,qBAAoB,CAAC,CAAC,eAAc,QAAQ,CAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,eAAc,KAAK,CAAC,CAAC,GAAE,EAAE,uBAAsB,CAAC,CAAC,eAAc,UAAU,CAAC,CAAC,GAAE,EAAE,uBAAsB,CAAC,CAAC,eAAc,UAAU,CAAC,CAAC,GAAE,EAAE,2BAA0B,CAAC,CAAC,eAAc,cAAc,CAAC,CAAC,GAAE,EAAE,aAAY,CAAC,CAAC,aAAY,MAAM,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,aAAY,QAAQ,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,aAAY,SAAS,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,aAAY,QAAQ,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,iBAAgB,QAAQ,GAAE,CAAC,cAAa,QAAQ,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,iBAAgB,YAAY,CAAC,CAAC,GAAE,EAAE,aAAY,CAAC,CAAC,cAAa,WAAW,CAAC,CAAC,GAAE,EAAE,cAAa,CAAC,CAAC,cAAa,UAAU,CAAC,CAAC,GAAE,EAAE,iBAAgB,CAAC,CAAC,iBAAgB,UAAU,CAAC,CAAC,GAAE,EAAE,mBAAkB,CAAC,CAAC,iBAAgB,YAAY,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,iBAAgB,QAAQ,CAAC,CAAC;AAAA,EAAE,UAAQ,GAAE,OAAI,CAAC,CAAC,WAAU,CAAC,eAAe,CAAC,GAAE,CAAC,aAAY,CAAC,6BAA4B,yBAAyB,CAAC,GAAE,CAAC,aAAY,CAAC,2BAA0B,uBAAuB,CAAC,GAAE,CAAC,aAAY,CAAC,0BAAyB,yBAAyB,CAAC,GAAE,CAAC,aAAY,CAAC,2BAA0B,4BAA4B,CAAC,GAAE,CAAC,aAAY,CAAC,8BAA6B,2BAA2B,CAAC,GAAE,CAAC,aAAY,CAAC,0BAAyB,2BAA2B,CAAC,GAAE,CAAC,cAAa,CAAC,2BAA2B,CAAC,GAAE,CAAC,cAAa,CAAC,yBAAyB,CAAC,GAAE,CAAC,cAAa,CAAC,uBAAuB,CAAC,GAAE,CAAC,cAAa,CAAC,yBAAyB,CAAC,GAAE,CAAC,cAAa,CAAC,wBAAwB,CAAC,GAAE,CAAC,cAAa,CAAC,yBAAyB,CAAC,GAAE,CAAC,cAAa,CAAC,4BAA4B,CAAC,GAAE,CAAC,cAAa,CAAC,2BAA2B,CAAC,CAAC;AAAA,IAAE,EAAE,GAAG,UAAS,GAAE,IAAI,QAAG,CAAC,IAAE,GAAG,CAAC,CAAC,GAAE,EAAE,GAAG,UAAS,GAAE,IAAI,QAAG,CAAC,IAAE,sBAAsB,CAAC,CAAC,GAAE,EAAE,GAAE,EAAC,WAAU,CAAC,UAAU,GAAE,QAAO,QAAG,GAAE,IAAI,QAAG,GAAE,IAAE,EAAC,CAAC,EAAC,CAAC;AAAA,EAAE,EAAE,gBAAe,CAAC,CAAC,qBAAoB,OAAO,GAAE,CAAC,gBAAe,OAAO,CAAC,CAAC,GAAE,EAAE,iBAAgB,CAAC,CAAC,qBAAoB,QAAQ,GAAE,CAAC,gBAAe,QAAQ,CAAC,CAAC,GAAE,EAAE,iBAAgB,CAAC,CAAC,qBAAoB,QAAQ,GAAE,CAAC,gBAAe,QAAQ,CAAC,CAAC,GAAE,EAAE,iBAAgB,CAAC,CAAC,qBAAoB,QAAQ,GAAE,CAAC,gBAAe,QAAQ,CAAC,CAAC,GAAE,EAAE,iBAAgB,CAAC,CAAC,qBAAoB,QAAQ,GAAE,CAAC,gBAAe,QAAQ,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,qBAAoB,MAAM,GAAE,CAAC,gBAAe,MAAM,CAAC,CAAC;AAAA,EAAE;AAAA,IAAC,IAAI,KAAE,QAAQ,CAAC,IAAE,IAAE;AAAA,MAAC,EAAE,WAAW,IAAE,QAAG;AAAA,QAAC,IAAG,CAAC,GAAE,OAAM;AAAA,UAAC,IAAG,GAAE;AAAA,YAAS;AAAA,UAAO,IAAI,KAAE,EAAE,IAAI,CAAC,wBAAwB,CAAC,KAAG,OAAM,KAAE,GAAE,MAAM,EAAC;AAAA,UAAE,OAAO,KAAE,CAAC,EAAE,GAAE,GAAG,EAAC,IAAO;AAAA,QAAC;AAAA,QAAC,IAAG,GAAE,MAAM,SAAO,aAAY;AAAA,UAAC,IAAI,KAAE,GAAE,MAAM;AAAA,UAAM,QAAO,GAAE,MAAM,YAAU,GAAE,IAAE,CAAC,SAAQ,cAAa,QAAQ,CAAC;AAAA,iBAAO;AAAA,iBAAiB,UAAS;AAAA,cAAC,IAAG,GAAE;AAAA,gBAAS;AAAA,cAAO,IAAI,KAAE,GAAE,MAAM,EAAC;AAAA,cAAE,OAAO,KAAE,CAAC,EAAE,GAAE,GAAG,EAAC,IAAO;AAAA,YAAC;AAAA;AAAA,cAAS,OAAO,KAAE,GAAE,IAAE,GAAE,UAAS,CAAC,GAAE,OAAI,OAAU,YAAE,GAAE,MAAM,EAAC;AAAA;AAAA,QAAE;AAAA,QAAC;AAAA,UAAC,IAAI,KAAE,IAAG,IAAE,GAAE,CAAC,kBAAiB,SAAS,CAAC;AAAA,UAAE,IAAG;AAAA,YAAE,OAAO,GAAE,MAAM,EAAC;AAAA,QAAC;AAAA,QAAC;AAAA,UAAC,IAAG,GAAE;AAAA,YAAS;AAAA,UAAO,IAAI,KAAE,EAAE,QAAQ,GAAE,MAAM,OAAM,CAAC,gBAAgB,CAAC;AAAA,UAAE,IAAG,IAAE;AAAA,YAAC,IAAI,KAAE,GAAE,MAAM,EAAC;AAAA,YAAE,OAAO,KAAE,CAAC,EAAE,GAAE,GAAG,EAAC,IAAO;AAAA,UAAC;AAAA,UAAC,IAAG,EAAE,GAAE,MAAM,KAAK,GAAE;AAAA,YAAC,IAAI,KAAE,GAAE,MAAM,GAAG,GAAE,MAAM,SAAS;AAAA,YAAE,OAAO,KAAE,CAAC,EAAE,GAAE,GAAG,EAAC,IAAO;AAAA,UAAC;AAAA,QAAC;AAAA,OAAE,GAAE,EAAE,IAAE,MAAI,CAAC,EAAC,QAAO,CAAC,WAAU,WAAU,aAAa,GAAE,gBAAe,CAAC,kBAAiB,SAAS,GAAE,WAAU,MAAM,KAAK,EAAC,QAAO,GAAE,GAAE,CAAC,IAAE,OAAI,GAAG,KAAE,GAAG,GAAE,iBAAgB,KAAE,GAAE,EAAC,QAAO,CAAC,KAAI,KAAI,KAAI,GAAG,GAAE,gBAAe,CAAC,gBAAgB,EAAC,CAAC,CAAC;AAAA;AAAA,IAAG,IAAI,KAAE;AAAA,IAAE,IAAI,IAAE,MAAI,GAAE,CAAC,GAAE,qBAAoB,OAAO,CAAC,CAAC;AAAA,IAAE,GAAE,UAAS,EAAC,OAAM,QAAG,CAAC,GAAE,gBAAe,wBAAwB,GAAE,GAAE,gBAAe,EAAC,CAAC,GAAE,OAAM,QAAG,CAAC,GAAE,gBAAe,EAAC,CAAC,EAAC,CAAC,GAAE,GAAE,YAAW,EAAC,OAAM,QAAG,CAAC,GAAE,uBAAsB,wBAAwB,GAAE,GAAE,uBAAsB,EAAC,CAAC,GAAE,OAAM,QAAG,CAAC,GAAE,uBAAsB,EAAC,CAAC,EAAC,CAAC,GAAE,GAAE,YAAW,EAAC,OAAM,QAAG,CAAC,GAAE,sBAAqB,wBAAwB,GAAE,GAAE,sBAAqB,EAAC,CAAC,GAAE,OAAM,QAAG,CAAC,GAAE,sBAAqB,EAAC,CAAC,EAAC,CAAC,GAAE,GAAE,YAAW,EAAC,OAAM,QAAG,CAAC,GAAE,6BAA4B,wBAAwB,GAAE,GAAE,6BAA4B,EAAC,CAAC,GAAE,OAAM,QAAG,CAAC,GAAE,6BAA4B,EAAC,CAAC,EAAC,CAAC,GAAE,GAAE,YAAW,EAAC,OAAM,QAAG,CAAC,GAAE,2BAA0B,wBAAwB,GAAE,GAAE,2BAA0B,EAAC,CAAC,GAAE,OAAM,QAAG,CAAC,GAAE,2BAA0B,EAAC,CAAC,EAAC,CAAC,GAAE,GAAE,YAAW,EAAC,OAAM,QAAG,CAAC,GAAE,oBAAmB,wBAAwB,GAAE,GAAE,oBAAmB,EAAC,CAAC,GAAE,OAAM,QAAG,CAAC,GAAE,oBAAmB,EAAC,CAAC,EAAC,CAAC,GAAE,GAAE,YAAW,EAAC,OAAM,QAAG,CAAC,GAAE,sBAAqB,wBAAwB,GAAE,GAAE,sBAAqB,EAAC,CAAC,GAAE,OAAM,QAAG,CAAC,GAAE,sBAAqB,EAAC,CAAC,EAAC,CAAC,GAAE,GAAE,YAAW,EAAC,OAAM,QAAG,CAAC,GAAE,uBAAsB,wBAAwB,GAAE,GAAE,uBAAsB,EAAC,CAAC,GAAE,OAAM,QAAG,CAAC,GAAE,uBAAsB,EAAC,CAAC,EAAC,CAAC,GAAE,GAAE,YAAW,EAAC,OAAM,QAAG,CAAC,GAAE,qBAAoB,wBAAwB,GAAE,GAAE,qBAAoB,EAAC,CAAC,GAAE,OAAM,QAAG,CAAC,GAAE,qBAAoB,EAAC,CAAC,EAAC,CAAC,GAAE,EAAE,YAAW,EAAC,cAAa,EAAE,IAAI,CAAC,wBAAwB,CAAC,KAAG,OAAM,WAAU,CAAC,kBAAiB,gBAAgB,GAAE,iBAAgB,GAAE,OAAM,SAAK,EAAE,EAAC,IAAE,GAAG,SAAM,MAAK,QAAO,QAAG,CAAC,GAAE,CAAC,GAAE,yBAAwB,GAAG,CAAC,CAAC,GAAE,GAAE,iCAAgC,CAAC,GAAE,aAAY,gBAAgB,GAAE,EAAE,GAAE,GAAE,yBAAwB,GAAG,GAAE,GAAE,uBAAsB,wBAAwB,GAAE,GAAE,6BAA4B,QAAQ,kCAAiC,GAAE,GAAE,2BAA0B,QAAQ,4CAA2C,CAAC,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,YAAW,EAAC,cAAa,EAAE,IAAI,CAAC,wBAAwB,CAAC,KAAG,OAAM,WAAU,CAAC,kBAAiB,gBAAgB,GAAE,iBAAgB,GAAE,OAAM,SAAK,EAAE,EAAC,IAAE,GAAG,SAAM,MAAK,QAAO,QAAG,CAAC,GAAE,CAAC,GAAE,yBAAwB,GAAG,CAAC,CAAC,GAAE,GAAE,iCAAgC,CAAC,GAAE,aAAY,gBAAgB,GAAE,EAAE,GAAE,GAAE,yBAAwB,GAAG,GAAE,GAAE,uBAAsB,wBAAwB,GAAE,GAAE,oBAAmB,wBAAwB,GAAE,GAAE,oBAAmB,QAAQ,kCAAiC,GAAE,GAAE,uBAAsB,QAAQ,4CAA2C,CAAC,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,YAAW,MAAI,CAAC,EAAC,QAAO,CAAC,KAAI,KAAI,KAAI,GAAG,GAAE,gBAAe,CAAC,kBAAiB,gBAAgB,GAAE,iBAAgB,KAAE,CAAC,CAAC,GAAE,EAAE,YAAW,MAAI,CAAC,EAAC,QAAO,CAAC,KAAI,KAAI,KAAI,GAAG,GAAE,gBAAe,CAAC,kBAAiB,gBAAgB,GAAE,iBAAgB,KAAE,CAAC,CAAC,GAAE,EAAE,oBAAmB,CAAC,MAAI,GAAE,CAAC,GAAE,yBAAwB,GAAG,CAAC,CAAC,GAAE,MAAI,GAAE,iCAAgC,CAAC,GAAE,yBAAwB,GAAG,CAAC,CAAC,CAAC,CAAC,GAAE,EAAE,oBAAmB,CAAC,MAAI,GAAE,CAAC,GAAE,yBAAwB,GAAG,CAAC,CAAC,GAAE,MAAI,GAAE,iCAAgC,CAAC,GAAE,yBAAwB,GAAG,CAAC,CAAC,CAAC,CAAC;AAAA,IAAE,SAAQ,MAAI,CAAC,SAAQ,UAAS,UAAS,UAAS,MAAM;AAAA,MAAE,EAAE,UAAU,MAAI,CAAC,MAAI,GAAE,iCAAgC,CAAC,GAAE,aAAY,cAAc,GAAE,GAAE,qBAAoB,EAAC,GAAE,GAAE,gBAAe,EAAC,CAAC,CAAC,CAAC,CAAC;AAAA,EAAC;AAAA,EAAC,EAAE,WAAU,CAAC,CAAC,mBAAkB,MAAM,CAAC,CAAC,GAAE,EAAE,YAAW,CAAC,CAAC,mBAAkB,OAAO,CAAC,CAAC,GAAE,EAAE,cAAa,CAAC,CAAC,mBAAkB,SAAS,CAAC,CAAC,GAAE,EAAE,WAAU,EAAC,MAAM,CAAC,GAAE;AAAA,IAAC,IAAG;AAAA,MAAE,OAAM,CAAC,GAAE,mBAAkB,CAAC,CAAC;AAAA,IAAE,CAAC,GAAE,EAAE,YAAW,CAAC,CAAC,yBAAwB,OAAO,CAAC,CAAC,GAAE,EAAE,YAAW,CAAC,CAAC,yBAAwB,OAAO,CAAC,CAAC,GAAE,EAAE,aAAY,CAAC,CAAC,yBAAwB,QAAQ,CAAC,CAAC,GAAE,EAAE,UAAS,CAAC,CAAC,uBAAsB,KAAK,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,uBAAsB,UAAU,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,uBAAsB,WAAW,CAAC,CAAC,GAAE,EAAE,aAAY,CAAC,CAAC,uBAAsB,QAAQ,CAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,uBAAsB,aAAa,CAAC,CAAC,GAAE,EAAE,mBAAkB,CAAC,CAAC,uBAAsB,cAAc,CAAC,CAAC,GAAE,EAAE,WAAU,CAAC,CAAC,uBAAsB,MAAM,CAAC,CAAC,GAAE,EAAE,YAAW,CAAC,CAAC,uBAAsB,OAAO,CAAC,CAAC,GAAE,EAAE,aAAY,CAAC,CAAC,uBAAsB,QAAQ,CAAC,CAAC,GAAE,EAAE,eAAc,EAAC,MAAM,CAAC,GAAE;AAAA,IAAC,IAAG;AAAA,MAAE,OAAM,CAAC,GAAE,uBAAsB,CAAC,CAAC;AAAA,IAAE,CAAC,GAAE,EAAE,aAAY,CAAC,CAAC,qBAAoB,QAAQ,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,qBAAoB,WAAW,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,qBAAoB,UAAU,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,qBAAoB,UAAU,CAAC,CAAC,GAAE,EAAE,mBAAkB,CAAC,CAAC,qBAAoB,OAAO,CAAC,CAAC,GAAE,EAAE,mBAAkB,CAAC,CAAC,qBAAoB,OAAO,CAAC,CAAC,GAAE,EAAE,WAAU,CAAC,CAAC,oBAAmB,MAAM,CAAC,CAAC;AAAA,EAAE;AAAA,IAAC,IAAI,KAAE,QAAQ,CAAC,IAAE;AAAA,MAAC,IAAI,KAAE;AAAA,MAAW,IAAG,IAAG,SAAO;AAAA,QAAQ,QAAO,GAAE;AAAA,eAAW;AAAA,eAAa;AAAA,eAAc;AAAA,eAAiB;AAAA,YAAa,KAAE,YAAY,GAAE;AAAA,YAAY;AAAA;AAAA,YAAc,KAAE,MAAM,GAAE;AAAA;AAAA,MAAa;AAAA,YAAG,SAAO,gBAAc,KAAE,GAAE;AAAA,MAAO,OAAO;AAAA,OAAG,KAAE,QAAQ,GAAE,UAAS,MAAG;AAAA,MAAC,OAAO,QAAG;AAAA,QAAC,IAAG,CAAC,GAAE;AAAA,UAAM;AAAA,QAAO,IAAG,GAAE,MAAM,SAAO,aAAY;AAAA,UAAC,IAAG,GAAE;AAAA,YAAS;AAAA,UAAO,IAAI,KAAE,GAAE,MAAM;AAAA,UAAM,QAAO,GAAE,MAAM,YAAU,GAAE,IAAE,CAAC,OAAO,CAAC;AAAA,iBAAO;AAAA,cAAQ,OAAO,KAAE,KAAE,QAAQ,aAAU,GAAG,MAAI,CAAC,GAAE,0BAAyB,EAAC,GAAE,GAAE,oBAAmB,2CAA2C,MAAK,CAAC;AAAA;AAAA,cAAU,OAAO,KAAO,YAAE,CAAC,GAAE,0BAAyB,EAAC,GAAE,GAAE,oBAAmB,2CAA2C,MAAK,CAAC;AAAA;AAAA,QAAE;AAAA,QAAC,IAAI,KAAE,GAAE,MAAM;AAAA,QAAM,IAAG,CAAC,MAAG,GAAE,IAAI,EAAC;AAAA,UAAE,KAAE,GAAE,IAAI,EAAC;AAAA,QAAO,SAAG,EAAE,EAAC;AAAA,UAAE,KAAE,KAAE,QAAQ,gBAAa,GAAG;AAAA,QAAY;AAAA;AAAA,QAAO,IAAI,KAAE,GAAE,GAAE,QAAQ;AAAA,QAAE,OAAM,CAAC,GAAE,0BAAyB,GAAG,IAAG,GAAE,GAAE,mEAAkE,CAAC,GAAE,0BAAyB,GAAG,MAAK,IAAG,CAAC,CAAC,GAAE,GAAE,oBAAmB,2CAA2C,CAAC;AAAA;AAAA,OAAI,KAAE,QAAQ,GAAE,UAAS,MAAG;AAAA,MAAC,OAAO,QAAG;AAAA,QAAC,IAAG,GAAE,OAAO,SAAO,aAAY;AAAA,UAAC,IAAG,GAAE;AAAA,YAAS;AAAA,UAAO,IAAI,KAAE,GAAE,MAAM;AAAA,UAAM,OAAM,CAAC,GAAE,0BAAyB,EAAC,GAAE,GAAE,oBAAmB,0CAA0C,MAAK,CAAC;AAAA,QAAC;AAAA,QAAC,IAAI,KAAE,GAAE,GAAE,QAAQ;AAAA,QAAE,IAAG,CAAC,GAAE;AAAA,UAAM,OAAM,CAAC,GAAE,0BAAyB,EAAC,GAAE,GAAE,oBAAmB,0CAA0C,CAAC;AAAA,QAAE,IAAI,KAAE,GAAE,MAAM;AAAA,QAAM,IAAG,EAAE,EAAC;AAAA,UAAE,OAAO,KAAE,KAAE,QAAQ,gBAAa,GAAG,SAAO,CAAC,GAAE,0BAAyB,QAAQ,MAAK,IAAG,GAAE,GAAE,oBAAmB,0CAA0C,CAAC;AAAA;AAAA;AAAA,IAAI,IAAI,KAAE,IAAE,KAAE,IAAE,KAAE;AAAA,IAAE,IAAI,IAAE,CAAC,SAAQ,SAAQ,QAAO,OAAM,UAAS,WAAU,cAAa,YAAY,GAAE,KAAE,IAAI,IAAI,CAAC,CAAC,QAAO,QAAQ,GAAE,CAAC,SAAQ,cAAc,GAAE,CAAC,QAAO,UAAU,GAAE,CAAC,SAAQ,iBAAiB,GAAE,CAAC,QAAO,WAAW,GAAE,CAAC,SAAQ,gBAAgB,GAAE,CAAC,QAAO,SAAS,GAAE,CAAC,SAAQ,aAAa,CAAC,CAAC;AAAA,IAAE,EAAE,WAAW,cAAa,GAAE,EAAC,UAAS,KAAE,CAAC,CAAC,GAAE,EAAE,WAAW,aAAY,GAAE,EAAC,UAAS,MAAE,CAAC,CAAC,GAAE,EAAE,aAAY,MAAI,CAAC,EAAC,QAAO,CAAC,GAAG,GAAE,KAAK,CAAC,GAAE,WAAU,EAAC,GAAE,EAAC,QAAO,CAAC,KAAI,MAAK,MAAK,MAAK,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,KAAK,GAAE,kBAAiB,MAAG,WAAU,EAAC,CAAC,CAAC,GAAE,EAAE,WAAW,aAAY,GAAE,EAAC,UAAS,KAAE,CAAC,CAAC,GAAE,EAAE,WAAW,YAAW,GAAE,EAAC,UAAS,MAAE,CAAC,CAAC,GAAE,EAAE,YAAW,MAAI,CAAC,EAAC,iBAAgB,MAAG,WAAU,EAAC,GAAE,EAAC,QAAO,CAAC,KAAI,MAAK,MAAK,MAAK,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,KAAK,GAAE,kBAAiB,MAAG,WAAU,EAAC,CAAC,CAAC,GAAE,EAAE,WAAW,aAAY,QAAG;AAAA,MAAC,IAAG,CAAC,GAAE,OAAM;AAAA,QAAC,IAAI,KAAE,GAAE,GAAE,QAAQ;AAAA,QAAE,OAAM,CAAC,GAAE,0BAAyB,EAAC,GAAE,GAAE,oBAAmB,2CAA2C,CAAC;AAAA,MAAC;AAAA,MAAC,IAAG,GAAE,MAAM,SAAO,aAAY;AAAA,QAAC,IAAG,GAAE;AAAA,UAAS;AAAA,QAAO,IAAI,KAAE,GAAE,MAAM;AAAA,QAAM,OAAM,CAAC,GAAE,0BAAyB,EAAC,GAAE,GAAE,oBAAmB,2CAA2C,MAAK,CAAC;AAAA,MAAC;AAAA,KAAE,GAAE,EAAE,aAAY,MAAI,CAAC,EAAC,iBAAgB,MAAG,WAAU,EAAC,CAAC,CAAC;AAAA,EAAC;AAAA,EAAC,EAAE,WAAW,MAAK,OAAG;AAAA,IAAC,IAAG,EAAE,OAAM;AAAA,MAAC,IAAG,EAAE,MAAM,SAAO,aAAY;AAAA,QAAC,IAAI,KAAE,EAAE,MAAM;AAAA,QAAM,QAAO,EAAE,MAAM,YAAU,GAAE,IAAE,CAAC,SAAQ,SAAQ,cAAa,YAAW,WAAU,UAAS,KAAK,CAAC;AAAA,eAAO;AAAA,eAAiB;AAAA,YAAW,OAAO,EAAE,WAAc,YAAE,CAAC,GAAE,uBAAsB,EAAC,CAAC;AAAA,eAAM;AAAA,eAAc;AAAA,eAAa;AAAA,YAAO,OAAO,EAAE,WAAc,YAAE,CAAC,GAAE,mBAAkB,EAAC,CAAC;AAAA,eAAM;AAAA,eAAY;AAAA,YAAM,OAAO,EAAE,WAAc,YAAE,CAAC,GAAE,oBAAmB,EAAC,CAAC;AAAA;AAAA,YAAU,OAAO,KAAE,GAAE,IAAE,EAAE,UAAS,CAAC,GAAE,OAAI,OAAU,YAAE,CAAC,GAAE,oBAAmB,EAAC,CAAC;AAAA;AAAA,MAAE;AAAA,MAAC;AAAA,QAAC,IAAI,KAAE,IAAG,GAAE,GAAE,CAAC,sBAAqB,SAAS,CAAC;AAAA,QAAE,IAAG;AAAA,UAAE,OAAM,CAAC,GAAE,oBAAmB,EAAC,CAAC;AAAA,MAAC;AAAA,MAAC;AAAA,QAAC,IAAG,EAAE;AAAA,UAAS;AAAA,QAAO,IAAI,KAAE,EAAE,QAAQ,EAAE,MAAM,OAAM,CAAC,oBAAoB,CAAC;AAAA,QAAE,IAAG;AAAA,UAAE,OAAM,CAAC,GAAE,oBAAmB,EAAC,CAAC;AAAA,MAAC;AAAA,IAAC;AAAA,GAAE,GAAE,EAAE,MAAK,MAAI,CAAC,EAAC,QAAO,CAAC,WAAU,WAAU,aAAa,GAAE,gBAAe,CAAC,sBAAqB,SAAS,GAAE,WAAU,MAAM,KAAK,EAAC,QAAO,GAAE,GAAE,CAAC,GAAE,OAAI,GAAG,KAAE,GAAG,EAAC,GAAE,EAAC,QAAO,CAAC,GAAE,gBAAe,CAAC,oBAAoB,EAAC,CAAC,CAAC;AAAA,EAAE,IAAI,KAAE,MAAI,GAAE,CAAC,GAAE,wBAAwB,GAAE,GAAE,sBAAqB,SAAQ,SAAS,GAAE,GAAE,qBAAoB,SAAQ,SAAS,GAAE,GAAE,oBAAmB,SAAQ,SAAS,GAAE,GAAE,qBAAqB,GAAE,GAAE,yBAAyB,GAAE,GAAE,+BAA8B,MAAK,qBAAqB,GAAE,GAAE,8BAA6B,OAAM,qBAAqB,GAAE,GAAE,6BAA4B,QAAO,qBAAqB,CAAC,CAAC;AAAA,EAAE,SAAS,CAAC,CAAC,GAAE,IAAE;AAAA,IAAC,EAAE,WAAW,GAAE,QAAG;AAAA,MAAC,IAAG,GAAE,OAAM;AAAA,QAAC,IAAG,GAAE,MAAM,SAAO,aAAY;AAAA,UAAC,IAAI,KAAE,GAAE,MAAM;AAAA,UAAM,QAAO,GAAE,MAAM,YAAU,GAAE,IAAE,CAAC,SAAQ,UAAS,YAAY,CAAC;AAAA,iBAAO;AAAA,iBAAa;AAAA,cAAa,OAAO,GAAE,WAAc,YAAE,GAAE,SAAS,EAAC;AAAA;AAAA,cAAU,OAAO,KAAE,GAAE,IAAE,GAAE,UAAS,CAAC,GAAE,OAAI,OAAU,YAAE,GAAE,MAAM,EAAC;AAAA;AAAA,QAAE;AAAA,QAAC;AAAA,UAAC,IAAI,KAAE,IAAG,IAAE,GAAE,CAAC,sBAAqB,SAAS,CAAC;AAAA,UAAE,IAAG;AAAA,YAAE,OAAO,GAAE,MAAM,EAAC;AAAA,QAAC;AAAA,QAAC;AAAA,UAAC,IAAG,GAAE;AAAA,YAAS;AAAA,UAAO,IAAI,KAAE,EAAE,QAAQ,GAAE,MAAM,OAAM,CAAC,iCAAiC,CAAC;AAAA,UAAE,IAAG;AAAA,YAAE,OAAO,GAAE,SAAS,EAAC;AAAA,UAAE,IAAG,GAAE,MAAM,MAAM,GAAE,MAAM,MAAM,SAAO,OAAK,OAAK,EAAE,GAAE,MAAM,MAAM,MAAM,GAAE,EAAE,CAAC;AAAA,YAAE,OAAO,GAAE,SAAS,GAAE,MAAM,KAAK;AAAA,QAAC;AAAA,MAAC;AAAA,KAAE,GAAE,EAAE,GAAE,MAAI,CAAC,EAAC,QAAO,CAAC,WAAU,WAAU,aAAa,GAAE,gBAAe,CAAC,sBAAqB,SAAS,GAAE,WAAU,MAAM,KAAK,EAAC,QAAO,GAAE,GAAE,CAAC,IAAE,OAAI,GAAG,KAAE,GAAG,EAAC,GAAE,EAAC,QAAO,MAAM,KAAK,EAAC,QAAO,GAAE,GAAE,CAAC,IAAE,OAAI,GAAG,KAAE,IAAI,GAAE,gBAAe,CAAC,iCAAiC,EAAC,CAAC,CAAC;AAAA;AAAA,EAAE,EAAE,QAAO,EAAC,OAAM,OAAG,CAAC,GAAE,GAAE,GAAE,aAAY,oBAAoB,GAAE,GAAE,sBAAqB,CAAC,GAAE,GAAE,uBAAsB,2KAA2K,CAAC,GAAE,UAAS,OAAG,CAAC,GAAE,GAAE,GAAE,+BAA8B,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,YAAW,CAAC,CAAC,2BAA0B,SAAS,CAAC,CAAC,GAAE,EAAE,OAAM,EAAC,OAAM,OAAG,CAAC,GAAE,GAAE,GAAE,aAAY,mBAAmB,GAAE,GAAE,qBAAoB,CAAC,GAAE,GAAE,2BAA0B,qMAAqM,GAAE,GAAE,uBAAsB,8BAA8B,CAAC,GAAE,UAAS,OAAG,CAAC,GAAE,GAAE,GAAE,8BAA6B,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,MAAK,EAAC,OAAM,OAAG,CAAC,GAAE,GAAE,GAAE,aAAY,kBAAkB,GAAE,GAAE,oBAAmB,CAAC,GAAE,GAAE,uBAAsB,2KAA2K,CAAC,GAAE,UAAS,OAAG,CAAC,GAAE,GAAE,GAAE,6BAA4B,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,aAAY,CAAC,CAAC,cAAa,MAAM,CAAC,CAAC,GAAE,EAAE,WAAW,QAAO,OAAG;AAAA,IAAC,IAAG,CAAC,EAAE,SAAO,EAAE,YAAU,EAAE,MAAM,SAAO;AAAA,MAAY;AAAA,IAAO,IAAI,KAAE,EAAE,MAAM;AAAA,IAAM,QAAO,EAAE,MAAM,YAAU,GAAE,IAAE,CAAC,SAAQ,cAAa,YAAW,WAAU,UAAS,KAAK,CAAC;AAAA,WAAO;AAAA,WAAiB;AAAA,QAAW,OAAO,EAAE,WAAc,YAAE,CAAC,GAAE,iBAAgB,EAAC,CAAC;AAAA,WAAM;AAAA,WAAc;AAAA,WAAa;AAAA,QAAO,OAAM,CAAC,GAAE,aAAY,EAAC,CAAC;AAAA,WAAM;AAAA,WAAY;AAAA;AAAA,QAAc,OAAM,CAAC,GAAE,cAAa,EAAC,CAAC;AAAA;AAAA,GAAG,GAAE,EAAE,YAAW,CAAC,CAAC,kBAAiB,KAAK,CAAC,CAAC,GAAE,EAAE,iBAAgB,CAAC,CAAC,kBAAiB,UAAU,CAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,kBAAiB,WAAW,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,kBAAiB,SAAS,CAAC,CAAC,GAAE,EAAE,cAAa,CAAC,CAAC,aAAY,OAAO,CAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,aAAY,WAAW,CAAC,CAAC,GAAE,EAAE,cAAa,CAAC,CAAC,aAAY,cAAc,CAAC,CAAC,GAAE,EAAE,mBAAkB,CAAC,CAAC,aAAY,OAAO,CAAC,CAAC,GAAE,EAAE,uBAAsB,CAAC,CAAC,aAAY,WAAW,CAAC,CAAC,GAAE,EAAE,aAAY,CAAC,CAAC,aAAY,MAAM,CAAC,CAAC,GAAE,EAAE,cAAa,CAAC,CAAC,aAAY,OAAO,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,aAAY,SAAS,CAAC,CAAC,GAAE,EAAE,aAAY,EAAC,MAAM,CAAC,GAAE;AAAA,IAAC,IAAG;AAAA,MAAE,OAAM,CAAC,GAAE,aAAY,CAAC,CAAC;AAAA,IAAE,CAAC,GAAE,EAAE,YAAW,CAAC,CAAC,iBAAgB,KAAK,CAAC,CAAC,GAAE,EAAE,iBAAgB,CAAC,CAAC,iBAAgB,UAAU,CAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,iBAAgB,WAAW,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,iBAAgB,QAAQ,CAAC,CAAC,GAAE,EAAE,oBAAmB,CAAC,CAAC,iBAAgB,aAAa,CAAC,CAAC,GAAE,EAAE,qBAAoB,CAAC,CAAC,iBAAgB,cAAc,CAAC,CAAC,GAAE,EAAE,aAAY,CAAC,CAAC,iBAAgB,MAAM,CAAC,CAAC,GAAE,EAAE,cAAa,CAAC,CAAC,iBAAgB,OAAO,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,iBAAgB,QAAQ,CAAC,CAAC,GAAE,EAAE,iBAAgB,EAAC,MAAM,CAAC,GAAE;AAAA,IAAC,IAAG;AAAA,MAAE,OAAM,CAAC,GAAE,iBAAgB,CAAC,CAAC;AAAA,IAAE,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,eAAc,QAAQ,CAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,eAAc,WAAW,CAAC,CAAC,GAAE,EAAE,iBAAgB,CAAC,CAAC,eAAc,UAAU,CAAC,CAAC,GAAE,EAAE,iBAAgB,CAAC,CAAC,eAAc,UAAU,CAAC,CAAC,GAAE,EAAE,qBAAoB,CAAC,CAAC,eAAc,OAAO,CAAC,CAAC,GAAE,EAAE,qBAAoB,CAAC,CAAC,eAAc,OAAO,CAAC,CAAC,GAAE,EAAE,oBAAmB,CAAC,CAAC,aAAY,YAAY,CAAC,CAAC,GAAE,EAAE,qBAAoB,CAAC,CAAC,aAAY,aAAa,CAAC,CAAC,GAAE,EAAE,qBAAoB,CAAC,CAAC,aAAY,aAAa,CAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,aAAY,UAAU,CAAC,CAAC,GAAE,EAAE,oBAAmB,CAAC,CAAC,aAAY,YAAY,CAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,aAAY,UAAU,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,aAAY,SAAS,CAAC,CAAC,GAAE,EAAE,sBAAqB,CAAC,CAAC,eAAc,YAAY,CAAC,CAAC,GAAE,EAAE,uBAAsB,CAAC,CAAC,eAAc,aAAa,CAAC,CAAC,GAAE,EAAE,uBAAsB,CAAC,CAAC,eAAc,aAAa,CAAC,CAAC,GAAE,EAAE,oBAAmB,CAAC,CAAC,eAAc,UAAU,CAAC,CAAC,GAAE,EAAE,sBAAqB,CAAC,CAAC,eAAc,YAAY,CAAC,CAAC,GAAE,EAAE,oBAAmB,CAAC,CAAC,eAAc,UAAU,CAAC,CAAC;AAAA,EAAE,IAAI,KAAE,MAAI,GAAE,CAAC,GAAE,oBAAmB,6BAA6B,GAAE,GAAE,oBAAmB,6BAA6B,GAAE,GAAE,mBAAkB,6BAA6B,CAAC,CAAC;AAAA,EAAE,SAAS,EAAC,CAAC,GAAE,IAAE;AAAA,IAAC,EAAE,WAAW,GAAE,QAAG;AAAA,MAAC,IAAG,GAAE,OAAM;AAAA,QAAC,IAAG,GAAE,MAAM,SAAO,aAAY;AAAA,UAAC,IAAI,KAAE,GAAE,MAAM;AAAA,UAAM,QAAO,GAAE,MAAM,YAAU,GAAE,IAAE,CAAC,UAAS,cAAa,OAAO,CAAC;AAAA,iBAAO;AAAA,cAAQ,OAAO,KAAE,GAAE,IAAE,GAAE,UAAS,CAAC,GAAE,OAAI,OAAU,YAAE,GAAE,MAAM,EAAC;AAAA,iBAAM;AAAA,cAAa,OAAO,GAAE,YAAU,CAAC,EAAE,GAAE,MAAM,GAAE,EAAE,CAAC,IAAO,YAAE,GAAE,SAAS,EAAC;AAAA;AAAA,cAAU,OAAO,GAAE,WAAc,YAAE,GAAE,SAAS,EAAC;AAAA;AAAA,QAAE;AAAA,QAAC;AAAA,UAAC,IAAI,KAAE,IAAG,IAAE,GAAE,CAAC,sBAAqB,SAAS,CAAC;AAAA,UAAE,IAAG;AAAA,YAAE,OAAO,GAAE,MAAM,EAAC;AAAA,QAAC;AAAA,QAAC;AAAA,UAAC,IAAG,GAAE;AAAA,YAAS;AAAA,UAAO,IAAI,KAAE,GAAE,GAAE,MAAM,OAAM,CAAC,UAAS,YAAY,CAAC;AAAA,UAAE,IAAG,CAAC;AAAA,YAAE;AAAA,UAAO,QAAO;AAAA,iBAAO,UAAS;AAAA,cAAC,IAAI,KAAE,EAAE,QAAQ,MAAK,CAAC,WAAW,CAAC;AAAA,cAAE,OAAM,CAAC,MAAG,CAAC,GAAG,GAAE,MAAM,KAAK,IAAO,YAAE,GAAE,SAAS,QAAQ,QAAO,GAAE,MAAM,QAAQ;AAAA,YAAC;AAAA,iBAAK;AAAA,cAAa,OAAO,EAAE,GAAE,MAAM,MAAM,MAAM,GAAE,EAAE,CAAC,IAAE,GAAE,SAAS,GAAE,MAAM,KAAK,IAAO;AAAA;AAAA,cAAU;AAAA;AAAA,QAAO;AAAA,MAAC;AAAA,KAAE,GAAE,EAAE,GAAE,MAAI,CAAC,EAAC,QAAO,CAAC,WAAU,WAAU,aAAa,GAAE,gBAAe,CAAC,sBAAqB,SAAS,GAAE,WAAU,MAAM,KAAK,EAAC,QAAO,GAAE,GAAE,CAAC,IAAE,OAAI,GAAG,KAAE,GAAG,EAAC,GAAE,EAAC,QAAO,MAAM,KAAK,EAAC,QAAO,GAAE,GAAE,CAAC,IAAE,OAAI,GAAG,KAAE,IAAI,GAAE,gBAAe,CAAC,iCAAiC,EAAC,CAAC,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,EAAC,QAAO,MAAM,KAAK,EAAC,QAAO,GAAE,GAAE,CAAC,IAAE,OAAI,GAAG,KAAE,IAAI,EAAC,GAAE,EAAC,QAAO,EAAE,IAAI,CAAC,WAAW,CAAC,IAAE,KAAG,CAAC,EAAC,GAAE,EAAC,QAAO,CAAC,WAAU,WAAU,aAAa,GAAE,gBAAe,CAAC,sBAAqB,SAAS,GAAE,WAAU,MAAM,KAAK,EAAC,QAAO,GAAE,GAAE,CAAC,IAAE,OAAI,GAAG,KAAE,GAAG,EAAC,CAAC,CAAC;AAAA;AAAA,EAAE,IAAI,KAAE,MAAI,GAAE,CAAC,GAAE,kBAAiB,6BAA6B,GAAE,GAAE,mBAAkB,6BAA6B,GAAE,GAAE,oBAAmB,6BAA6B,GAAE,GAAE,iBAAgB,6BAA6B,CAAC,CAAC;AAAA,EAAE,SAAS,CAAC,CAAC,GAAE,IAAE,IAAE;AAAA,IAAC,GAAE,GAAE,EAAC,KAAK,CAAC,IAAE;AAAA,MAAC,IAAI,KAAE,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,cAAa,oEAAoE,GAAE,GAAE,kBAAiB,WAAW,GAAE,GAAE,oBAAmB,sFAAsF,CAAC;AAAA,MAAE,SAAQ,MAAI,CAAC,OAAM,SAAQ,UAAS,MAAM;AAAA,QAAE,GAAE,QAAK,GAAE,KAAK,GAAE,aAAa,MAAI,sBAAsB,qBAAoB,gCAA+B,oCAAmC,8BAA6B,kBAAiB,CAAC,GAAE,GAAE,KAAK,GAAE,CAAC,GAAE,aAAa,oBAAkB,IAAI,GAAE,GAAE,aAAa,kBAAgB,MAAM,GAAE,GAAE,aAAa,iBAAe,OAAO,GAAE,GAAE,aAAa,eAAa,aAAa,CAAC,CAAC,CAAC,GAAE,GAAE,KAAK,GAAE,aAAa,MAAK,YAAU,EAAC,CAAC;AAAA,MAAG,OAAO;AAAA,OAAG,QAAQ,CAAC,IAAE;AAAA,MAAC,IAAI,KAAE,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,cAAa,oEAAoE,GAAE,GAAE,kBAAiB,WAAW,GAAE,GAAE,oBAAmB,sFAAsF,CAAC;AAAA,MAAE,SAAQ,MAAI,CAAC,OAAM,SAAQ,UAAS,MAAM;AAAA,QAAE,GAAE,QAAK,GAAE,KAAK,GAAE,aAAa,MAAI,sBAAsB,qBAAoB,gCAA+B,oCAAmC,8BAA6B,kBAAiB,CAAC,GAAE,GAAE,KAAK,GAAE,CAAC,GAAE,aAAa,oBAAkB,IAAI,GAAE,GAAE,aAAa,kBAAgB,MAAM,GAAE,GAAE,aAAa,iBAAe,OAAO,GAAE,GAAE,aAAa,eAAa,aAAa,CAAC,CAAC,CAAC,GAAE,GAAE,KAAK,GAAE,aAAa,MAAK,eAAa,EAAC,CAAC;AAAA,MAAG,OAAO;AAAA,MAAE,CAAC;AAAA;AAAA,EAAE,EAAE,eAAc,QAAO,EAAC,KAAI,OAAG,OAAM,MAAG,QAAO,OAAG,MAAK,KAAE,CAAC,GAAE,EAAE,aAAY,MAAK,EAAC,KAAI,OAAG,OAAM,MAAG,QAAO,OAAG,MAAK,KAAE,CAAC,GAAE,EAAE,eAAc,QAAO,EAAC,KAAI,MAAG,OAAM,OAAG,QAAO,MAAG,MAAK,MAAE,CAAC,GAAE,EAAE,aAAY,MAAK,EAAC,KAAI,MAAG,OAAM,OAAG,QAAO,MAAG,MAAK,MAAE,CAAC,GAAE,EAAE,eAAc,QAAO,EAAC,KAAI,MAAG,OAAM,OAAG,QAAO,OAAG,MAAK,MAAE,CAAC,GAAE,EAAE,aAAY,MAAK,EAAC,KAAI,MAAG,OAAM,OAAG,QAAO,OAAG,MAAK,MAAE,CAAC,GAAE,EAAE,eAAc,QAAO,EAAC,KAAI,OAAG,OAAM,MAAG,QAAO,OAAG,MAAK,MAAE,CAAC,GAAE,EAAE,aAAY,MAAK,EAAC,KAAI,OAAG,OAAM,MAAG,QAAO,OAAG,MAAK,MAAE,CAAC,GAAE,EAAE,eAAc,QAAO,EAAC,KAAI,OAAG,OAAM,OAAG,QAAO,MAAG,MAAK,MAAE,CAAC,GAAE,EAAE,aAAY,MAAK,EAAC,KAAI,OAAG,OAAM,OAAG,QAAO,MAAG,MAAK,MAAE,CAAC,GAAE,EAAE,eAAc,QAAO,EAAC,KAAI,OAAG,OAAM,OAAG,QAAO,OAAG,MAAK,KAAE,CAAC,GAAE,EAAE,aAAY,MAAK,EAAC,KAAI,OAAG,OAAM,OAAG,QAAO,OAAG,MAAK,KAAE,CAAC;AAAA,EAAE,IAAI,KAAE,MAAI,GAAE,CAAC,GAAE,6BAA4B,MAAM,GAAE,GAAE,kCAAiC,IAAI,GAAE,GAAE,gCAA+B,MAAM,GAAE,GAAE,+BAA8B,OAAO,GAAE,GAAE,6BAA4B,aAAa,CAAC,CAAC;AAAA,EAAE,EAAE,eAAc,EAAC,cAAa,MAAK,kBAAiB,MAAG,mBAAkB,OAAG,eAAe,CAAC,GAAE;AAAA,IAAC,OAAO,EAAE,EAAE,KAAK,IAAE,eAAe,EAAE,WAAS;AAAA,KAAM,uBAAuB,CAAC,GAAE;AAAA,IAAC,OAAO,EAAE,EAAE,KAAK,IAAE,gBAAgB,EAAE,WAAS;AAAA,KAAM,QAAO,OAAG,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,cAAa,oEAAoE,GAAE,GAAE,kBAAiB,WAAW,GAAE,GAAE,oBAAmB,8EAA8E,GAAE,GAAE,6BAA4B,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,eAAc,MAAI,CAAC,EAAC,kBAAiB,MAAG,QAAO,CAAC,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,MAAK,MAAK,KAAK,EAAC,CAAC,CAAC,GAAE,GAAE,oBAAmB,EAAC,OAAM,OAAG,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,cAAa,oEAAoE,GAAE,GAAE,kBAAiB,WAAW,GAAE,GAAE,0BAAyB,wKAAwK,GAAE,GAAE,oBAAmB,8CAA8C,GAAE,GAAE,+BAA8B,CAAC,CAAC,GAAE,UAAS,OAAG,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,cAAa,oEAAoE,GAAE,GAAE,kBAAiB,WAAW,GAAE,GAAE,0BAAyB,wKAAwK,GAAE,GAAE,oBAAmB,8CAA8C,GAAE,GAAE,kCAAiC,CAAC,CAAC,EAAC,CAAC,GAAE,GAAE,kBAAiB,EAAC,OAAM,OAAG,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,cAAa,oEAAoE,GAAE,GAAE,kBAAiB,WAAW,GAAE,GAAE,0BAAyB,wKAAwK,GAAE,GAAE,oBAAmB,8CAA8C,GAAE,GAAE,6BAA4B,CAAC,CAAC,GAAE,UAAS,OAAG,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,cAAa,oEAAoE,GAAE,GAAE,kBAAiB,WAAW,GAAE,GAAE,0BAAyB,wKAAwK,GAAE,GAAE,oBAAmB,8CAA8C,GAAE,GAAE,gCAA+B,CAAC,CAAC,EAAC,CAAC;AAAA,EAAE,IAAI,KAAE,MAAI,GAAE,CAAC,GAAE,kCAAiC,IAAI,GAAE,GAAE,gCAA+B,MAAM,GAAE,GAAE,+BAA8B,OAAO,GAAE,GAAE,6BAA4B,aAAa,GAAE,GAAE,0BAAyB,SAAS,GAAE,GAAE,yBAAwB,iBAAiB,GAAE,GAAE,6BAA4B,QAAQ,CAAC,CAAC;AAAA,EAAE,EAAE,eAAc,CAAC,CAAC,0BAAyB,QAAQ,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,0BAAyB,SAAS,CAAC,CAAC,GAAE,EAAE,4BAA2B,CAAC,CAAC,yBAAwB,cAAc,CAAC,CAAC,GAAE,EAAE,6BAA4B,CAAC,CAAC,yBAAwB,eAAe,CAAC,CAAC,GAAE,EAAE,8BAA6B,CAAC,CAAC,yBAAwB,gBAAgB,CAAC,CAAC,GAAE,EAAE,+BAA8B,CAAC,CAAC,yBAAwB,iBAAiB,CAAC,CAAC,GAAE,EAAE,sBAAqB,CAAC,CAAC,6BAA4B,KAAK,CAAC,CAAC,GAAE,EAAE,2BAA0B,CAAC,CAAC,6BAA4B,UAAU,CAAC,CAAC,GAAE,EAAE,4BAA2B,CAAC,CAAC,6BAA4B,WAAW,CAAC,CAAC,GAAE,EAAE,yBAAwB,CAAC,CAAC,6BAA4B,QAAQ,CAAC,CAAC,GAAE,EAAE,8BAA6B,CAAC,CAAC,6BAA4B,aAAa,CAAC,CAAC,GAAE,EAAE,+BAA8B,CAAC,CAAC,6BAA4B,cAAc,CAAC,CAAC,GAAE,EAAE,uBAAsB,CAAC,CAAC,6BAA4B,MAAM,CAAC,CAAC,GAAE,EAAE,wBAAuB,CAAC,CAAC,6BAA4B,OAAO,CAAC,CAAC,GAAE,EAAE,yBAAwB,CAAC,CAAC,6BAA4B,QAAQ,CAAC,CAAC,GAAE,EAAE,kBAAiB,EAAC,cAAa,MAAK,kBAAiB,OAAG,mBAAkB,OAAG,QAAO,OAAG,CAAC,GAAE,6BAA4B,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,eAAc,EAAC,cAAa,MAAK,kBAAiB,OAAG,mBAAkB,OAAG,QAAO,OAAG,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,cAAa,oEAAoE,GAAE,GAAE,kBAAiB,WAAW,GAAE,GAAE,oBAAmB,0EAA0E,GAAE,GAAE,yBAAwB,CAAC,CAAC,EAAC,CAAC,GAAE,GAAE,oBAAmB,EAAC,OAAM,OAAG,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,cAAa,oEAAoE,GAAE,GAAE,kBAAiB,WAAW,GAAE,GAAE,0BAAyB,kOAAkO,GAAE,GAAE,oBAAmB,8CAA8C,GAAE,GAAE,+BAA8B,CAAC,CAAC,GAAE,UAAS,OAAG,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,cAAa,oEAAoE,GAAE,GAAE,kBAAiB,WAAW,GAAE,GAAE,0BAAyB,kOAAkO,GAAE,GAAE,oBAAmB,8CAA8C,GAAE,GAAE,kCAAiC,CAAC,CAAC,EAAC,CAAC,GAAE,GAAE,kBAAiB,EAAC,OAAM,OAAG,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,cAAa,oEAAoE,GAAE,GAAE,kBAAiB,WAAW,GAAE,GAAE,0BAAyB,kOAAkO,GAAE,GAAE,oBAAmB,8CAA8C,GAAE,GAAE,6BAA4B,CAAC,CAAC,GAAE,UAAS,OAAG,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,cAAa,oEAAoE,GAAE,GAAE,kBAAiB,WAAW,GAAE,GAAE,0BAAyB,kOAAkO,GAAE,GAAE,oBAAmB,8CAA8C,GAAE,GAAE,gCAA+B,CAAC,CAAC,EAAC,CAAC;AAAA,EAAE,IAAI,KAAE,MAAI,GAAE,CAAC,GAAE,4BAA2B,MAAM,GAAE,GAAE,iCAAgC,IAAI,GAAE,GAAE,+BAA8B,MAAM,GAAE,GAAE,8BAA6B,OAAO,GAAE,GAAE,4BAA2B,aAAa,CAAC,CAAC;AAAA,EAAE,EAAE,cAAa,EAAC,cAAa,MAAK,kBAAiB,MAAG,mBAAkB,OAAG,eAAe,CAAC,GAAE;AAAA,IAAC,OAAO,EAAE,EAAE,KAAK,IAAE,eAAe,EAAE,WAAS;AAAA,KAAM,uBAAuB,CAAC,GAAE;AAAA,IAAC,OAAO,EAAE,EAAE,KAAK,IAAE,gBAAgB,EAAE,WAAS;AAAA,KAAM,QAAO,OAAG,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,cAAa,oEAAoE,GAAE,GAAE,kBAAiB,WAAW,GAAE,GAAE,mBAAkB,2EAA2E,GAAE,GAAE,4BAA2B,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,cAAa,MAAI,CAAC,EAAC,kBAAiB,MAAG,QAAO,CAAC,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,MAAK,MAAK,KAAK,EAAC,CAAC,CAAC,GAAE,GAAE,mBAAkB,EAAC,OAAM,OAAG,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,cAAa,oEAAoE,GAAE,GAAE,kBAAiB,WAAW,GAAE,GAAE,yBAAwB,wKAAwK,GAAE,GAAE,mBAAkB,4CAA4C,GAAE,GAAE,8BAA6B,CAAC,CAAC,GAAE,UAAS,OAAG,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,cAAa,oEAAoE,GAAE,GAAE,kBAAiB,WAAW,GAAE,GAAE,yBAAwB,wKAAwK,GAAE,GAAE,mBAAkB,4CAA4C,GAAE,GAAE,iCAAgC,CAAC,CAAC,EAAC,CAAC,GAAE,GAAE,iBAAgB,EAAC,OAAM,OAAG,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,cAAa,oEAAoE,GAAE,GAAE,kBAAiB,WAAW,GAAE,GAAE,yBAAwB,wKAAwK,GAAE,GAAE,mBAAkB,4CAA4C,GAAE,GAAE,4BAA2B,CAAC,CAAC,GAAE,UAAS,OAAG,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,cAAa,oEAAoE,GAAE,GAAE,kBAAiB,WAAW,GAAE,GAAE,yBAAwB,wKAAwK,GAAE,GAAE,mBAAkB,4CAA4C,GAAE,GAAE,+BAA8B,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,wBAAuB,CAAC,CAAC,gCAA+B,OAAO,GAAE,CAAC,wBAAuB,OAAO,CAAC,CAAC,GAAE,EAAE,wBAAuB,CAAC,CAAC,gCAA+B,OAAO,GAAE,CAAC,wBAAuB,OAAO,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,mBAAkB,MAAM,CAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,mBAAkB,YAAY,CAAC,CAAC,GAAE,EAAE,mBAAkB,CAAC,CAAC,mBAAkB,aAAa,CAAC,CAAC,GAAE,EAAE,mBAAkB,CAAC,CAAC,mBAAkB,aAAa,CAAC,CAAC,GAAE,EAAE,oBAAmB,CAAC,CAAC,qBAAoB,YAAY,CAAC,CAAC,GAAE,EAAE,qBAAoB,CAAC,CAAC,qBAAoB,aAAa,CAAC,CAAC,GAAE,EAAE,qBAAoB,CAAC,CAAC,qBAAoB,aAAa,CAAC,CAAC;AAAA,EAAE,SAAQ,KAAI,CAAC,UAAS,YAAW,UAAS,WAAU,UAAS,WAAU,eAAc,cAAa,cAAa,cAAa,cAAa,aAAY,OAAM,cAAa,SAAQ,YAAY;AAAA,IAAE,EAAE,YAAY,KAAI,CAAC,CAAC,yBAAwB,CAAC,CAAC,CAAC,GAAE,EAAE,aAAa,KAAI,CAAC,CAAC,kBAAiB,CAAC,CAAC,CAAC;AAAA,EAAE,EAAE,yBAAwB,CAAC,CAAC,kBAAiB,aAAa,CAAC,CAAC,GAAE,EAAE,0BAAyB,CAAC,CAAC,kBAAiB,cAAc,CAAC,CAAC,GAAE,EAAE,aAAY,CAAC,CAAC,QAAO,MAAM,CAAC,CAAC,GAAE,EAAE,WAAW,QAAO,OAAG;AAAA,IAAC,IAAG,CAAC,EAAE;AAAA,MAAM;AAAA,IAAO,IAAG,EAAE,MAAM,SAAO,aAAY;AAAA,MAAC,IAAI,KAAE,GAAE,EAAE,MAAM,OAAM,EAAE,UAAS,CAAC;AAAA,MAAE,OAAO,OAAI,OAAU,YAAE,CAAC,GAAE,QAAO,EAAC,CAAC;AAAA,IAAC;AAAA,IAAC,IAAI,KAAE,IAAG,GAAE,GAAE,CAAC,UAAS,SAAS,CAAC;AAAA,IAAE,IAAG;AAAA,MAAE,OAAM,CAAC,GAAE,QAAO,EAAC,CAAC;AAAA,GAAE,GAAE,EAAE,QAAO,MAAI,CAAC,EAAC,QAAO,CAAC,WAAU,WAAU,aAAa,GAAE,gBAAe,CAAC,UAAS,SAAS,GAAE,WAAU,MAAM,KAAK,EAAC,QAAO,GAAE,GAAE,CAAC,GAAE,OAAI,GAAG,KAAE,GAAG,EAAC,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,UAAS,MAAM,CAAC,CAAC,GAAE,EAAE,WAAW,UAAS,OAAG;AAAA,IAAC,IAAG,EAAE,OAAM;AAAA,MAAC,IAAG,EAAE,MAAM,SAAO,aAAY;AAAA,QAAC,IAAI,KAAE,EAAE,MAAM;AAAA,QAAM,QAAO,EAAE,MAAM,YAAU,GAAE,IAAE,CAAC,SAAQ,UAAS,UAAS,YAAY,CAAC;AAAA,eAAO;AAAA,eAAa;AAAA,eAAa;AAAA,YAAa,OAAO,EAAE,WAAc,YAAE,CAAC,GAAE,gBAAe,EAAC,CAAC;AAAA;AAAA,YAAU,OAAO,KAAE,GAAE,EAAE,MAAM,OAAM,EAAE,UAAS,CAAC,GAAE,OAAI,OAAU,YAAE,CAAC,GAAE,UAAS,EAAC,CAAC;AAAA;AAAA,MAAE;AAAA,MAAC;AAAA,QAAC,IAAI,KAAE,IAAG,GAAE,GAAE,CAAC,YAAW,SAAS,CAAC;AAAA,QAAE,IAAG;AAAA,UAAE,OAAM,CAAC,GAAE,UAAS,EAAC,CAAC;AAAA,MAAC;AAAA,MAAC;AAAA,QAAC,IAAI,KAAE,EAAE,QAAQ,EAAE,MAAM,OAAM,CAAC,gBAAgB,CAAC;AAAA,QAAE,IAAG;AAAA,UAAE,OAAM,CAAC,GAAE,gBAAe,EAAC,CAAC;AAAA,QAAE,IAAG,EAAE,EAAE,MAAM,KAAK;AAAA,UAAE,OAAM,CAAC,GAAE,gBAAe,EAAE,MAAM,KAAK,CAAC;AAAA,MAAC;AAAA,IAAC;AAAA,GAAE,GAAE,EAAE,UAAS,MAAI,CAAC,EAAC,QAAO,CAAC,WAAU,WAAU,aAAa,GAAE,gBAAe,CAAC,YAAW,SAAS,GAAE,WAAU,MAAM,KAAK,EAAC,QAAO,GAAE,GAAE,CAAC,GAAE,OAAI,GAAG,KAAE,GAAG,EAAC,GAAE,EAAC,QAAO,CAAC,KAAI,KAAI,KAAI,GAAG,GAAE,gBAAe,CAAC,gBAAgB,EAAC,CAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,cAAa,SAAS,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,cAAa,OAAO,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,cAAa,MAAM,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,cAAa,MAAM,CAAC,CAAC,GAAE,EAAE,qBAAoB,CAAC,CAAC,cAAa,YAAY,CAAC,CAAC,GAAE,EAAE,cAAa,CAAC,CAAC,mBAAkB,KAAK,CAAC,CAAC,GAAE,EAAE,mBAAkB,CAAC,CAAC,mBAAkB,UAAU,CAAC,CAAC,GAAE,EAAE,oBAAmB,CAAC,CAAC,mBAAkB,WAAW,CAAC,CAAC,GAAE,EAAE,iBAAgB,CAAC,CAAC,mBAAkB,QAAQ,CAAC,CAAC,GAAE,EAAE,sBAAqB,CAAC,CAAC,mBAAkB,aAAa,CAAC,CAAC,GAAE,EAAE,uBAAsB,CAAC,CAAC,mBAAkB,cAAc,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,mBAAkB,MAAM,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,mBAAkB,OAAO,CAAC,CAAC,GAAE,EAAE,iBAAgB,CAAC,CAAC,mBAAkB,QAAQ,CAAC,CAAC,GAAE,EAAE,UAAS,EAAC,WAAU,CAAC,mBAAmB,GAAE,QAAO,OAAG,CAAC,GAAE,mBAAkB,CAAC,CAAC,EAAC,CAAC;AAAA,EAAE,UAAQ,GAAE,OAAI,CAAC,CAAC,KAAI,SAAS,GAAE,CAAC,MAAK,gBAAgB,GAAE,CAAC,MAAK,eAAe,GAAE,CAAC,MAAK,sBAAsB,GAAE,CAAC,MAAK,oBAAoB,GAAE,CAAC,MAAK,aAAa,GAAE,CAAC,MAAK,eAAe,GAAE,CAAC,MAAK,gBAAgB,GAAE,CAAC,MAAK,cAAc,CAAC;AAAA,IAAE,EAAE,GAAE,CAAC,aAAY,WAAW,GAAE,QAAG,CAAC,GAAE,IAAE,EAAC,CAAC,CAAC;AAAA,EAAE,EAAE,aAAY,CAAC,CAAC,cAAa,MAAM,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,cAAa,QAAQ,CAAC,CAAC,GAAE,EAAE,cAAa,CAAC,CAAC,cAAa,OAAO,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,cAAa,SAAS,CAAC,CAAC,GAAE,EAAE,cAAa,CAAC,CAAC,cAAa,OAAO,CAAC,CAAC,GAAE,EAAE,YAAW,CAAC,CAAC,cAAa,KAAK,CAAC,CAAC,GAAE,EAAE,UAAS,CAAC,iBAAgB,WAAW,GAAE,OAAG,CAAC,GAAE,eAAc,CAAC,CAAC,GAAE,EAAC,kBAAiB,KAAE,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,kBAAiB,UAAU,CAAC,CAAC,GAAE,EAAE,aAAY,CAAC,CAAC,kBAAiB,KAAK,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,kBAAiB,QAAQ,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,kBAAiB,QAAQ,CAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,kBAAiB,UAAU,CAAC,CAAC,GAAE,EAAE,qBAAoB,CAAC,CAAC,kBAAiB,aAAa,CAAC,CAAC,GAAE,EAAE,aAAY,CAAC,CAAC,kBAAiB,KAAK,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,kBAAiB,OAAO,CAAC,CAAC,GAAE,EAAE,SAAQ,EAAC,WAAU,CAAC,GAAE,QAAO,OAAG,CAAC,GAAE,kBAAiB,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,WAAW,QAAO,OAAG;AAAA,IAAC,IAAG,EAAE,CAAC,EAAE,SAAO,EAAE,WAAU;AAAA,MAAC,IAAG,EAAE,MAAM,SAAO,aAAY;AAAA,QAAC,IAAI,KAAE,EAAE,MAAM;AAAA,QAAM,QAAO,EAAE,MAAM,YAAU,GAAE,IAAE,CAAC,UAAS,gBAAe,aAAa,CAAC;AAAA,eAAO;AAAA,eAAmB;AAAA,YAAc,OAAM,CAAC,GAAE,eAAc,EAAC,CAAC;AAAA;AAAA,YAAU,OAAM,CAAC,GAAE,CAAC,GAAE,kBAAkB,CAAC,CAAC,GAAE,GAAE,oBAAmB,EAAC,GAAE,GAAE,eAAc,EAAC,CAAC;AAAA;AAAA,MAAE;AAAA,MAAC;AAAA,QAAC,IAAI,KAAE,EAAE,YAAY,EAAE,MAAM,OAAM,CAAC,QAAQ,GAAE,CAAC,2BAA0B,2BAA2B,CAAC;AAAA,QAAE,IAAG,IAAE;AAAA,UAAC,KAAI,IAAE,KAAE,CAAC,KAAG;AAAA,UAAE,OAAM,CAAC,GAAE,eAAc,EAAC,GAAE,GAAE,yBAAwB,GAAE,0BAA0B,GAAE,GAAE,2BAA0B,GAAE,4BAA4B,CAAC;AAAA,QAAC;AAAA,MAAC;AAAA,MAAC;AAAA,QAAC,IAAI,KAAE,EAAE,QAAQ,EAAE,MAAM,OAAM,CAAC,eAAe,CAAC;AAAA,QAAE,IAAG;AAAA,UAAE,OAAM,CAAC,GAAE,CAAC,GAAE,kBAAkB,CAAC,CAAC,GAAE,GAAE,oBAAmB,EAAC,GAAE,GAAE,eAAc,EAAC,CAAC;AAAA,MAAC;AAAA,IAAC;AAAA,GAAE,GAAE,EAAE,QAAO,MAAI,CAAC,EAAC,QAAO,CAAC,GAAE,gBAAe,CAAC,QAAQ,EAAC,GAAE,EAAC,QAAO,CAAC,GAAE,gBAAe,CAAC,eAAe,EAAC,CAAC,CAAC,GAAE,EAAE,aAAY,CAAC,CAAC,kBAAiB,WAAW,CAAC,CAAC,GAAE,EAAE,aAAY,CAAC,CAAC,kBAAiB,WAAW,CAAC,CAAC,GAAE,EAAE,cAAa,CAAC,CAAC,kBAAiB,YAAY,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,kBAAiB,MAAM,CAAC,CAAC,GAAE,EAAE,UAAS,CAAC,CAAC,cAAa,QAAQ,CAAC,CAAC,GAAE,EAAE,cAAa,CAAC,CAAC,cAAa,QAAQ,CAAC,CAAC,GAAE,EAAE,aAAY,CAAC,CAAC,wBAAuB,WAAW,CAAC,CAAC,GAAE,EAAE,YAAW,CAAC,CAAC,wBAAuB,UAAU,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,wBAAuB,cAAc,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,wBAAuB,MAAM,CAAC,CAAC,GAAE,EAAE,uBAAsB,CAAC,CAAC,gBAAe,QAAQ,CAAC,CAAC,GAAE,EAAE,gCAA+B,CAAC,CAAC,gBAAe,iBAAiB,CAAC,CAAC,GAAE,EAAE,gCAA+B,CAAC,CAAC,gBAAe,iBAAiB,CAAC,CAAC,GAAE,EAAE,0BAAyB,CAAC,CAAC,gBAAe,WAAW,CAAC,CAAC,GAAE,EAAE,+BAA8B,CAAC,CAAC,gBAAe,gBAAgB,CAAC,CAAC,GAAE,EAAE,8BAA6B,CAAC,CAAC,gBAAe,eAAe,CAAC,CAAC,GAAE,EAAE,yBAAwB,CAAC,CAAC,gBAAe,UAAU,CAAC,CAAC,GAAE,EAAE,+BAA8B,CAAC,CAAC,gBAAe,gBAAgB,CAAC,CAAC,GAAE,EAAE,+BAA8B,CAAC,CAAC,gBAAe,gBAAgB,CAAC,CAAC,GAAE,EAAE,gBAAe,EAAC,iBAAgB,GAAE,OAAM,QAAK;AAAA,IAAC,IAAG,CAAC,EAAE,SAAS,GAAG;AAAA,MAAE,OAAO;AAAA,IAAK,IAAI,KAAE,OAAO,EAAE,MAAM,GAAE,EAAE,CAAC;AAAA,IAAE,OAAM,CAAC,EAAE,EAAC,KAAG,OAAO,MAAM,EAAC,KAAG,KAAE,MAAI,KAAE,MAAI,OAAK;AAAA,KAAG,QAAO,OAAG,CAAC,GAAE,gBAAe,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,gBAAe,MAAI,CAAC,EAAC,QAAO,CAAC,OAAM,OAAM,OAAM,OAAM,QAAO,QAAO,QAAO,QAAO,QAAO,MAAM,EAAC,CAAC,CAAC,GAAE,GAAE,eAAc,EAAC,WAAU,CAAC,sBAAqB,SAAS,GAAE,QAAO,OAAG,CAAC,GAAE,kBAAiB,CAAC,GAAE,aAAY,mBAAmB,GAAE,GAAE,SAAQ,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,oBAAmB,CAAC,CAAC,yBAAwB,OAAO,CAAC,CAAC,GAAE,EAAE,qBAAoB,CAAC,CAAC,yBAAwB,QAAQ,CAAC,CAAC,GAAE,EAAE,qBAAoB,CAAC,CAAC,yBAAwB,QAAQ,CAAC,CAAC,GAAE,EAAE,qBAAoB,CAAC,CAAC,yBAAwB,QAAQ,CAAC,CAAC,GAAE,EAAE,mBAAkB,CAAC,CAAC,yBAAwB,MAAM,CAAC,CAAC,GAAE,EAAE,mBAAkB,CAAC,CAAC,6BAA4B,MAAM,CAAC,CAAC,GAAE,EAAE,wBAAuB,CAAC,CAAC,6BAA4B,WAAW,CAAC,CAAC,GAAE,EAAE,WAAW,cAAa,OAAG;AAAA,IAAC,IAAG,EAAE,OAAM;AAAA,MAAC,IAAG,EAAE,MAAM,SAAO,aAAY;AAAA,QAAC,IAAI,KAAE,EAAE,MAAM;AAAA,QAAM,QAAO,EAAE,MAAM,YAAU,GAAE,IAAE,CAAC,SAAQ,UAAS,YAAY,CAAC;AAAA,eAAO;AAAA,eAAa;AAAA,YAAa,OAAO,EAAE,WAAc,YAAE,CAAC,GAAE,6BAA4B,EAAC,CAAC;AAAA;AAAA,YAAU,OAAO,KAAE,GAAE,IAAE,EAAE,UAAS,CAAC,GAAE,OAAI,OAAU,YAAE,CAAC,GAAE,yBAAwB,EAAC,CAAC;AAAA;AAAA,MAAE;AAAA,MAAC;AAAA,QAAC,IAAI,KAAE,EAAE,QAAQ,EAAE,MAAM,OAAM,CAAC,6BAA6B,CAAC;AAAA,QAAE,IAAG;AAAA,UAAE,OAAO,EAAE,WAAc,YAAE,CAAC,GAAE,6BAA4B,EAAC,CAAC;AAAA,QAAE,IAAG,EAAE,EAAE,MAAM,KAAK;AAAA,UAAE,OAAO,EAAE,WAAc,YAAE,CAAC,GAAE,6BAA4B,GAAG,EAAE,MAAM,SAAS,CAAC;AAAA,MAAC;AAAA,MAAC;AAAA,QAAC,IAAI,KAAE,IAAG,GAAE,GAAE,CAAC,2BAA0B,SAAS,CAAC;AAAA,QAAE,IAAG;AAAA,UAAE,OAAM,CAAC,GAAE,yBAAwB,EAAC,CAAC;AAAA,MAAC;AAAA,IAAC;AAAA,GAAE,GAAE,EAAE,cAAa,MAAI,CAAC,EAAC,QAAO,CAAC,WAAU,WAAU,aAAa,GAAE,gBAAe,CAAC,2BAA0B,SAAS,GAAE,WAAU,MAAM,KAAK,EAAC,QAAO,GAAE,GAAE,CAAC,GAAE,OAAI,GAAG,KAAE,GAAG,EAAC,GAAE,EAAC,QAAO,CAAC,KAAI,KAAI,GAAG,GAAE,gBAAe,CAAC,6BAA6B,EAAC,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,aAAY,MAAM,CAAC,CAAC,GAAE,EAAE,WAAU,EAAC,WAAU,CAAC,WAAW,GAAE,QAAO,OAAG,CAAC,GAAE,aAAY,CAAC,CAAC,EAAC,CAAC;AAAA,EAAE;AAAA,IAAC,IAAI,IAAE,CAAC,mBAAkB,yBAAwB,uBAAsB,wBAAuB,yBAAwB,qBAAoB,uBAAsB,oBAAmB,wBAAwB,EAAE,KAAK,GAAG,GAAE,KAAE,CAAC,4BAA2B,kCAAiC,gCAA+B,iCAAgC,kCAAiC,8BAA6B,+BAA8B,gCAA+B,2BAA2B,EAAE,KAAK,GAAG,GAAE,KAAE,MAAI,GAAE,CAAC,GAAE,WAAW,GAAE,GAAE,iBAAiB,GAAE,GAAE,eAAe,GAAE,GAAE,gBAAgB,GAAE,GAAE,iBAAiB,GAAE,GAAE,aAAa,GAAE,GAAE,cAAc,GAAE,GAAE,eAAe,GAAE,GAAE,YAAY,GAAE,GAAE,kBAAkB,GAAE,GAAE,wBAAwB,GAAE,GAAE,0BAAyB,QAAO,cAAc,GAAE,GAAE,uBAAuB,CAAC,CAAC,GAAE,KAAE,MAAI,GAAE,CAAC,GAAE,oBAAoB,GAAE,GAAE,0BAA0B,GAAE,GAAE,wBAAwB,GAAE,GAAE,yBAAyB,GAAE,GAAE,0BAA0B,GAAE,GAAE,sBAAsB,GAAE,GAAE,uBAAuB,GAAE,GAAE,wBAAwB,GAAE,GAAE,qBAAqB,CAAC,CAAC;AAAA,IAAE,EAAE,WAAW,UAAS,QAAG;AAAA,MAAC,IAAG,CAAC,GAAE,UAAS;AAAA,QAAC,IAAG,GAAE,UAAQ;AAAA,UAAK,OAAM,CAAC,GAAE,GAAE,GAAE,UAAS,CAAC,CAAC;AAAA,QAAE,IAAG,GAAE,MAAM,SAAO;AAAA,UAAY,OAAM,CAAC,GAAE,UAAS,GAAE,MAAM,KAAK,CAAC;AAAA,QAAE,QAAO,GAAE,MAAM;AAAA,eAAW;AAAA,YAAO,OAAM,CAAC,GAAE,UAAS,MAAM,CAAC;AAAA;AAAA,MAAE;AAAA,KAAE,GAAE,EAAE,WAAW,mBAAkB,QAAG;AAAA,MAAC,IAAG,CAAC,GAAE,UAAS;AAAA,QAAC,IAAG,GAAE,UAAQ;AAAA,UAAK,OAAM,CAAC,GAAE,GAAE,GAAE,2BAA0B,EAAC,GAAE,GAAE,mBAAkB,EAAC,CAAC;AAAA,QAAE,IAAG,GAAE,MAAM,SAAO;AAAA,UAAY,OAAM,CAAC,GAAE,2BAA0B,GAAE,MAAM,KAAK,GAAE,GAAE,mBAAkB,GAAE,MAAM,KAAK,CAAC;AAAA,QAAE,QAAO,GAAE,MAAM;AAAA,eAAW;AAAA,YAAO,OAAM,CAAC,GAAE,2BAA0B,MAAM,GAAE,GAAE,mBAAkB,MAAM,CAAC;AAAA;AAAA,MAAE;AAAA,KAAE,GAAE,EAAE,QAAO,EAAC,WAAU,CAAC,QAAQ,GAAE,QAAO,QAAG,CAAC,GAAE,GAAE,GAAE,aAAY,QAAQ,KAAI,GAAE,GAAE,UAAS,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,aAAY,CAAC,IAAE,CAAC,aAAY,GAAG,GAAE,CAAC,UAAS,CAAC,CAAC,CAAC,GAAE,EAAE,iBAAgB,EAAC,WAAU,CAAC,mBAAkB,QAAQ,GAAE,QAAO,QAAG,CAAC,GAAE,GAAE,GAAE,sBAAqB,QAAQ,KAAI,GAAE,GAAE,2BAA0B,EAAC,GAAE,GAAE,mBAAkB,EAAC,CAAC,EAAC,CAAC,GAAE,EAAE,sBAAqB,CAAC,IAAE,CAAC,sBAAqB,GAAG,GAAE,CAAC,2BAA0B,EAAC,GAAE,CAAC,mBAAkB,EAAC,CAAC,CAAC,GAAE,EAAE,cAAa,EAAC,WAAU,CAAC,cAAc,GAAE,iBAAgB,GAAE,OAAM,SAAK,EAAE,EAAC,IAAE,GAAG,QAAK,MAAK,QAAO,QAAG,CAAC,GAAE,GAAE,GAAE,mBAAkB,cAAc,KAAI,GAAE,GAAE,UAAS,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,uBAAsB,EAAC,WAAU,CAAC,yBAAwB,cAAc,GAAE,iBAAgB,GAAE,OAAM,SAAK,EAAE,EAAC,IAAE,GAAG,QAAK,MAAK,QAAO,QAAG,CAAC,GAAE,GAAE,GAAE,4BAA2B,cAAc,KAAI,GAAE,GAAE,2BAA0B,EAAC,GAAE,GAAE,mBAAkB,EAAC,CAAC,EAAC,CAAC,GAAE,EAAE,cAAa,MAAI,CAAC,EAAC,QAAO,CAAC,KAAI,MAAK,MAAK,MAAK,MAAK,OAAM,OAAM,OAAM,OAAM,OAAM,KAAK,GAAE,gBAAe,CAAC,cAAc,EAAC,CAAC,CAAC,GAAE,EAAE,uBAAsB,MAAI,CAAC,EAAC,QAAO,CAAC,KAAI,MAAK,MAAK,MAAK,MAAK,OAAM,OAAM,OAAM,OAAM,OAAM,KAAK,GAAE,gBAAe,CAAC,yBAAwB,cAAc,EAAC,CAAC,CAAC,GAAE,EAAE,YAAW,EAAC,WAAU,CAAC,YAAY,GAAE,iBAAgB,GAAE,OAAM,SAAK,EAAE,EAAC,IAAE,GAAG,QAAK,MAAK,QAAO,QAAG,CAAC,GAAE,GAAE,GAAE,iBAAgB,YAAY,KAAI,GAAE,GAAE,UAAS,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,qBAAoB,EAAC,WAAU,CAAC,uBAAsB,YAAY,GAAE,iBAAgB,GAAE,OAAM,SAAK,EAAE,EAAC,IAAE,GAAG,QAAK,MAAK,QAAO,QAAG,CAAC,GAAE,GAAE,GAAE,0BAAyB,YAAY,KAAI,GAAE,GAAE,2BAA0B,EAAC,GAAE,GAAE,mBAAkB,EAAC,CAAC,EAAC,CAAC,GAAE,EAAE,YAAW,MAAI,CAAC,EAAC,QAAO,CAAC,KAAI,MAAK,MAAK,OAAM,OAAM,OAAM,KAAK,GAAE,gBAAe,CAAC,YAAY,EAAC,CAAC,CAAC,GAAE,EAAE,qBAAoB,MAAI,CAAC,EAAC,QAAO,CAAC,KAAI,MAAK,MAAK,OAAM,OAAM,OAAM,KAAK,GAAE,gBAAe,CAAC,uBAAsB,YAAY,EAAC,CAAC,CAAC,GAAE,EAAE,aAAY,EAAC,WAAU,CAAC,aAAa,GAAE,iBAAgB,GAAE,OAAM,SAAK,EAAE,EAAC,IAAE,GAAG,QAAK,MAAK,cAAa,QAAO,QAAO,QAAG,CAAC,GAAE,GAAE,GAAE,kBAAiB,aAAa,KAAI,GAAE,GAAE,UAAS,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,sBAAqB,EAAC,WAAU,CAAC,wBAAuB,aAAa,GAAE,iBAAgB,GAAE,OAAM,SAAK,EAAE,EAAC,IAAE,GAAG,QAAK,MAAK,cAAa,QAAO,QAAO,QAAG,CAAC,GAAE,GAAE,GAAE,2BAA0B,aAAa,KAAI,GAAE,GAAE,2BAA0B,EAAC,GAAE,GAAE,mBAAkB,EAAC,CAAC,EAAC,CAAC,GAAE,EAAE,aAAY,MAAI,CAAC,EAAC,QAAO,CAAC,KAAI,MAAK,MAAK,MAAK,KAAK,GAAE,gBAAe,CAAC,aAAa,GAAE,iBAAgB,KAAE,CAAC,CAAC,GAAE,EAAE,sBAAqB,MAAI,CAAC,EAAC,QAAO,CAAC,KAAI,MAAK,MAAK,MAAK,KAAK,GAAE,gBAAe,CAAC,wBAAuB,aAAa,GAAE,iBAAgB,KAAE,CAAC,CAAC,GAAE,EAAE,cAAa,EAAC,kBAAiB,MAAG,WAAU,CAAC,cAAc,GAAE,iBAAgB,GAAE,OAAM,SAAK,EAAE,EAAC,IAAE,GAAG,UAAO,MAAK,QAAO,QAAG,CAAC,GAAE,GAAE,GAAE,mBAAkB,cAAc,KAAI,GAAE,GAAE,UAAS,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,uBAAsB,EAAC,kBAAiB,MAAG,WAAU,CAAC,yBAAwB,cAAc,GAAE,iBAAgB,GAAE,OAAM,SAAK,EAAE,EAAC,IAAE,GAAG,UAAO,MAAK,QAAO,QAAG,CAAC,GAAE,GAAE,GAAE,4BAA2B,cAAc,KAAI,GAAE,GAAE,2BAA0B,EAAC,GAAE,GAAE,mBAAkB,EAAC,CAAC,EAAC,CAAC,GAAE,EAAE,cAAa,MAAI,CAAC,EAAC,QAAO,CAAC,KAAI,MAAK,MAAK,MAAK,MAAK,KAAK,GAAE,gBAAe,CAAC,cAAc,EAAC,CAAC,CAAC,GAAE,EAAE,uBAAsB,MAAI,CAAC,EAAC,QAAO,CAAC,KAAI,MAAK,MAAK,MAAK,MAAK,KAAK,GAAE,gBAAe,CAAC,yBAAwB,cAAc,EAAC,CAAC,CAAC,GAAE,EAAE,UAAS,EAAC,WAAU,CAAC,UAAU,GAAE,iBAAgB,GAAE,OAAM,SAAK,EAAE,EAAC,IAAE,GAAG,QAAK,MAAK,cAAa,QAAO,QAAO,QAAG,CAAC,GAAE,GAAE,GAAE,eAAc,UAAU,KAAI,GAAE,GAAE,UAAS,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,mBAAkB,EAAC,WAAU,CAAC,qBAAoB,UAAU,GAAE,iBAAgB,GAAE,OAAM,SAAK,EAAE,EAAC,IAAE,GAAG,QAAK,MAAK,cAAa,QAAO,QAAO,QAAG,CAAC,GAAE,GAAE,GAAE,wBAAuB,UAAU,KAAI,GAAE,GAAE,2BAA0B,EAAC,GAAE,GAAE,mBAAkB,EAAC,CAAC,EAAC,CAAC,GAAE,EAAE,UAAS,MAAI,CAAC,EAAC,QAAO,CAAC,KAAI,MAAK,MAAK,MAAK,KAAK,GAAE,gBAAe,CAAC,UAAU,GAAE,iBAAgB,KAAE,CAAC,CAAC,GAAE,EAAE,mBAAkB,MAAI,CAAC,EAAC,QAAO,CAAC,KAAI,MAAK,MAAK,MAAK,KAAK,GAAE,gBAAe,CAAC,qBAAoB,UAAU,GAAE,iBAAgB,KAAE,CAAC,CAAC,GAAE,EAAE,YAAW,EAAC,WAAU,CAAC,YAAY,GAAE,iBAAgB,GAAE,OAAM,SAAK,EAAE,EAAC,IAAE,GAAG,QAAK,MAAK,QAAO,QAAG,CAAC,GAAE,GAAE,GAAE,iBAAgB,YAAY,KAAI,GAAE,GAAE,UAAS,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,qBAAoB,EAAC,WAAU,CAAC,uBAAsB,YAAY,GAAE,iBAAgB,GAAE,OAAM,SAAK,EAAE,EAAC,IAAE,GAAG,QAAK,MAAK,QAAO,QAAG,CAAC,GAAE,GAAE,GAAE,0BAAyB,YAAY,KAAI,GAAE,GAAE,2BAA0B,EAAC,GAAE,GAAE,mBAAkB,EAAC,CAAC,EAAC,CAAC,GAAE,EAAE,YAAW,MAAI,CAAC,EAAC,QAAO,CAAC,KAAI,MAAK,OAAM,OAAM,KAAK,GAAE,gBAAe,CAAC,YAAY,EAAC,CAAC,CAAC,GAAE,EAAE,qBAAoB,MAAI,CAAC,EAAC,QAAO,CAAC,KAAI,MAAK,OAAM,OAAM,KAAK,GAAE,gBAAe,CAAC,uBAAsB,YAAY,EAAC,CAAC,CAAC,GAAE,EAAE,SAAQ,EAAC,WAAU,CAAC,SAAS,GAAE,iBAAgB,GAAE,OAAM,SAAK,EAAE,EAAC,IAAE,GAAG,QAAK,MAAK,cAAa,QAAO,QAAO,QAAG,CAAC,GAAE,GAAE,GAAE,cAAa,SAAS,KAAI,GAAE,GAAE,UAAS,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,kBAAiB,EAAC,WAAU,CAAC,oBAAmB,SAAS,GAAE,iBAAgB,GAAE,OAAM,SAAK,EAAE,EAAC,IAAE,GAAG,QAAK,MAAK,cAAa,QAAO,QAAO,QAAG,CAAC,GAAE,GAAE,GAAE,uBAAsB,SAAS,KAAI,GAAE,GAAE,2BAA0B,EAAC,GAAE,GAAE,mBAAkB,EAAC,CAAC,EAAC,CAAC,GAAE,EAAE,SAAQ,MAAI,CAAC,EAAC,QAAO,CAAC,KAAI,MAAK,KAAK,GAAE,gBAAe,CAAC,SAAS,GAAE,iBAAgB,KAAE,CAAC,CAAC,GAAE,EAAE,kBAAiB,MAAI,CAAC,EAAC,QAAO,CAAC,KAAI,MAAK,KAAK,GAAE,gBAAe,CAAC,oBAAmB,SAAS,GAAE,iBAAgB,KAAE,CAAC,CAAC,GAAE,EAAE,oBAAmB,CAAC,IAAE,CAAC,oBAAmB,GAAG,GAAE,CAAC,UAAS,CAAC,CAAC,CAAC,GAAE,EAAE,WAAW,eAAc,QAAG;AAAA,MAAC,IAAI;AAAA,MAAE,IAAG,GAAE,aAAW,GAAE,SAAS,SAAO,cAAY,KAAE,GAAE,SAAS,QAAM,EAAE,GAAE,SAAS,KAAK,MAAI,KAAE,GAAG,GAAE,SAAS,YAAW,CAAC,GAAE,OAAM;AAAA,QAAC,IAAI,KAAE,EAAE,IAAI,CAAC,eAAe,CAAC,GAAE,KAAE,EAAE,QAAQ,MAAK,CAAC,eAAe,CAAC;AAAA,QAAE,OAAO,OAAI,QAAM,OAAI,OAAU,YAAE,CAAC,GAAE,GAAE,GAAE,0BAAyB,EAAC,GAAE,GAAG,GAAG,yBAAwB,IAAE,IAAE,QAAG,+BAA+B,KAAI,GAAE,GAAE,oBAAmB,EAAE,IAAE,GAAG,EAAE,IAAI,QAAG,eAAe,KAAI,EAAE,KAAK,GAAG,CAAC,GAAE,GAAE,UAAS,CAAC,CAAC;AAAA,MAAC;AAAA,MAAC,IAAG,GAAE,MAAM,SAAO,aAAY;AAAA,QAAC,IAAI,KAAE,GAAE,MAAM;AAAA,QAAM,QAAO,GAAE,MAAM,YAAU,GAAE,IAAE,CAAC,OAAO,CAAC;AAAA,eAAO;AAAA,YAAQ,OAAO,KAAE,GAAE,IAAE,GAAE,UAAS,CAAC,GAAE,OAAI,OAAU,YAAE,CAAC,GAAE,GAAE,GAAE,0BAAyB,GAAE,IAAE,6BAA6B,CAAC,GAAE,GAAE,oBAAmB,4BAA4B,CAAC;AAAA;AAAA,YAAU,OAAO,GAAE,YAAU,CAAC,KAAO,YAAE,CAAC,GAAE,GAAE,GAAE,0BAAyB,EAAC,GAAE,GAAG,GAAG,yBAAwB,IAAE,IAAE,QAAG,+BAA+B,KAAI,GAAE,GAAE,oBAAmB,4BAA4B,GAAE,GAAE,UAAS,CAAC,CAAC;AAAA;AAAA,MAAE;AAAA,MAAC;AAAA,QAAC,IAAI,KAAE,EAAE,IAAI,CAAC,iBAAiB,GAAE,MAAM,OAAO,CAAC,GAAE,KAAE,EAAE,QAAQ,GAAE,MAAM,OAAM,CAAC,eAAe,CAAC;AAAA,QAAE,IAAG,MAAG;AAAA,UAAE,OAAO,GAAE,YAAU,CAAC,KAAO,YAAE,KAAE,CAAC,GAAE,GAAE,GAAE,0BAAyB,EAAC,GAAE,GAAG,GAAG,yBAAwB,IAAE,IAAE,QAAG,+BAA+B,KAAI,GAAE,GAAE,oBAAmB,4BAA4B,GAAE,GAAE,UAAS,CAAC,CAAC,IAAE,CAAC,GAAE,GAAE,GAAE,0BAAyB,EAAC,GAAE,GAAG,GAAG,yBAAwB,IAAE,IAAE,QAAG,+BAA+B,KAAI,GAAE,GAAE,oBAAmB,EAAE,IAAE,GAAG,EAAE,IAAI,QAAG,eAAe,KAAI,EAAE,KAAK,GAAG,CAAC,GAAE,GAAE,UAAS,CAAC,CAAC;AAAA,MAAC;AAAA,MAAC;AAAA,QAAC,IAAI,KAAE,IAAG,IAAE,GAAE,CAAC,uBAAsB,SAAS,CAAC;AAAA,QAAE,IAAG;AAAA,UAAE,OAAO,OAAI,YAAU,CAAC,GAAE,GAAE,GAAE,0BAAyB,SAAS,GAAE,GAAE,oBAAmB,4BAA4B,CAAC,IAAE,CAAC,GAAE,GAAE,GAAE,0BAAyB,GAAE,IAAE,6BAA6B,CAAC,GAAE,GAAE,oBAAmB,4BAA4B,CAAC;AAAA,MAAC;AAAA,KAAE,GAAE,EAAE,eAAc,MAAI,CAAC,EAAC,QAAO,CAAC,WAAU,WAAU,aAAa,GAAE,gBAAe,CAAC,uBAAsB,SAAS,GAAE,WAAU,MAAM,KAAK,EAAC,QAAO,GAAE,GAAE,CAAC,IAAE,OAAI,GAAG,KAAE,GAAG,EAAC,GAAE,EAAC,gBAAe,CAAC,eAAe,EAAC,CAAC,CAAC,GAAE,EAAE,oBAAmB,EAAC,WAAU,CAAC,sBAAqB,WAAW,GAAE,iBAAgB,GAAE,OAAM,SAAK,GAAG,EAAC,IAAE,GAAG,QAAK,MAAK,QAAO,QAAG,CAAC,GAAE,GAAE,GAAE,yBAAwB,WAAW,KAAI,GAAE,GAAE,2BAA0B,EAAC,GAAE,GAAE,mBAAkB,EAAC,CAAC,EAAC,CAAC,GAAE,EAAE,oBAAmB,MAAI,CAAC,EAAC,QAAO,MAAM,KAAK,EAAC,QAAO,GAAE,GAAE,CAAC,IAAE,OAAI,GAAG,KAAE,GAAG,GAAE,gBAAe,CAAC,sBAAqB,WAAW,EAAC,CAAC,CAAC;AAAA,EAAC;AAAA,EAAC;AAAA,IAAC,IAAI,IAAE,kBAAkB,EAAE,QAAQ,MAAK,CAAC,sCAAsC,CAAC,KAAG,WAAU,KAAE,sBAAsB,EAAE,QAAQ,MAAK,CAAC,+BAA+B,CAAC,KAAG;AAAA,IAAQ,EAAE,mBAAkB,CAAC,CAAC,uBAAsB,MAAM,CAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,uBAAsB,KAAK,GAAE,CAAC,8BAA6B,CAAC,GAAE,CAAC,uBAAsB,EAAC,CAAC,CAAC,GAAE,EAAE,qBAAoB,CAAC,CAAC,uBAAsB,oJAAoJ,GAAE,CAAC,8BAA6B,CAAC,GAAE,CAAC,uBAAsB,EAAC,CAAC,CAAC,GAAE,EAAE,sBAAqB,CAAC,CAAC,uBAAsB,SAAS,GAAE,CAAC,8BAA6B,CAAC,GAAE,CAAC,uBAAsB,EAAC,CAAC,CAAC,GAAE,EAAE,qBAAoB,CAAC,CAAC,uBAAsB,YAAY,GAAE,CAAC,8BAA6B,CAAC,GAAE,CAAC,uBAAsB,EAAC,CAAC,CAAC,GAAE,EAAE,wBAAuB,CAAC,CAAC,uBAAsB,qCAAqC,GAAE,CAAC,8BAA6B,CAAC,GAAE,CAAC,uBAAsB,EAAC,CAAC,CAAC,GAAE,EAAE,cAAa,EAAC,cAAa,oUAAmU,WAAU,CAAC,uBAAuB,GAAE,QAAO,QAAG,CAAC,GAAE,uBAAsB,EAAC,GAAE,GAAE,8BAA6B,CAAC,GAAE,GAAE,uBAAsB,EAAC,CAAC,EAAC,CAAC,GAAE,EAAE,uBAAsB,CAAC,CAAC,uBAAsB,gBAAgB,CAAC,CAAC,GAAE,EAAE,qBAAoB,CAAC,CAAC,uBAAsB,QAAQ,CAAC,CAAC,GAAE,EAAE,SAAQ,EAAC,iBAAgB,GAAE,OAAM,SAAK,EAAE,EAAC,IAAE,GAAG,SAAM,MAAK,WAAU,CAAC,oBAAoB,GAAE,QAAO,QAAG,CAAC,GAAE,oBAAmB,EAAC,CAAC,EAAC,CAAC;AAAA,IAAE;AAAA,MAAC,IAAI,KAAE,MAAI,GAAE,CAAC,GAAE,eAAe,CAAC,CAAC;AAAA,MAAE,EAAE,oBAAmB,CAAC,IAAE,CAAC,iBAAgB,SAAS,CAAC,CAAC,GAAE,EAAE,WAAW,YAAW,QAAG;AAAA,QAAC,IAAG,GAAE,YAAU,CAAC,GAAE;AAAA,UAAM;AAAA,QAAO,IAAI,KAAE;AAAA,QAAK,IAAG,GAAE,MAAM,SAAO,cAAY,KAAE,GAAE,MAAM,SAAO,KAAE,EAAE,QAAQ,GAAE,MAAM,YAAU,GAAE,MAAM,OAAM,CAAC,uBAAuB,CAAC,GAAE,OAAI,QAAM,EAAE,GAAE,MAAM,KAAK,MAAI,KAAE,GAAG,GAAE,MAAM,aAAY,OAAI;AAAA,UAAK,OAAM,CAAC,GAAE,GAAE,GAAE,iBAAgB,EAAC,GAAE,GAAE,uBAAsB,EAAC,CAAC;AAAA,OAAE;AAAA,IAAC;AAAA,IAAC,EAAE,SAAQ,MAAI,CAAC,EAAC,QAAO,CAAC,MAAK,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,MAAM,GAAE,gBAAe,CAAC,oBAAoB,EAAC,CAAC,CAAC,GAAE,EAAE,YAAW,MAAI,CAAC,EAAC,QAAO,CAAC,MAAK,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,MAAM,GAAE,gBAAe,CAAC,uBAAuB,EAAC,CAAC,CAAC;AAAA,EAAC;AAAA,EAAC;AAAA,IAAC,IAAI,IAAE,MAAI,GAAE,CAAC,GAAE,WAAW,CAAC,CAAC;AAAA,IAAE,EAAE,gBAAe,CAAC,GAAE,CAAC,aAAY,SAAS,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,GAAE,CAAC,aAAY,QAAQ,GAAE,CAAC,8BAA6B,QAAQ,CAAC,CAAC,GAAE,EAAE,QAAO,EAAC,WAAU,CAAC,QAAQ,GAAE,QAAO,QAAG,CAAC,EAAE,GAAE,GAAE,aAAY,EAAC,GAAE,GAAE,8BAA6B,EAAC,CAAC,EAAC,CAAC;AAAA,EAAC;AAAA,EAAC,EAAE,oBAAmB,CAAC,CAAC,eAAc,MAAM,CAAC,CAAC,GAAE,EAAE,sBAAqB,CAAC,CAAC,eAAc,iBAAiB,CAAC,CAAC,GAAE,EAAE,wBAAuB,CAAC,CAAC,eAAc,UAAU,CAAC,CAAC,GAAE,EAAE,yBAAwB,CAAC,CAAC,eAAc,WAAW,CAAC,CAAC,GAAE,EAAE,eAAc,EAAC,WAAU,CAAC,GAAE,QAAO,OAAG,CAAC,GAAE,eAAc,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,gBAAe,MAAM,GAAE,CAAC,WAAU,MAAM,CAAC,CAAC,GAAE,EAAE,WAAU,EAAC,WAAU,CAAC,GAAE,QAAO,OAAG,CAAC,GAAE,CAAC,GAAE,gBAAe,IAAI,CAAC,CAAC,GAAE,GAAE,gBAAe,CAAC,GAAE,GAAE,WAAU,mBAAmB,CAAC,EAAC,CAAC;AAAA,EAAE;AAAA,IAAC,IAAI,IAAE,uGAAsG,KAAE,MAAI,GAAE,CAAC,GAAE,mBAAmB,GAAE,GAAE,qBAAqB,GAAE,GAAE,oBAAoB,GAAE,GAAE,oBAAoB,CAAC,CAAC;AAAA,IAAE,EAAE,gBAAe,CAAC,CAAC,WAAU,MAAM,CAAC,CAAC,GAAE,EAAE,mBAAkB,CAAC,CAAC,WAAU,SAAS,CAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,WAAU,QAAQ,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,IAAE,CAAC,qBAAoB,MAAM,GAAE,CAAC,WAAU,CAAC,CAAC,CAAC,GAAE,EAAE,uBAAsB,CAAC,IAAE,CAAC,qBAAoB,aAAa,GAAE,CAAC,WAAU,CAAC,CAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,IAAE,CAAC,uBAAsB,QAAQ,GAAE,CAAC,WAAU,CAAC,CAAC,CAAC,GAAE,EAAE,iBAAgB,CAAC,IAAE,CAAC,sBAAqB,OAAO,GAAE,CAAC,WAAU,CAAC,CAAC,CAAC,GAAE,EAAE,iBAAgB,CAAC,IAAE,CAAC,sBAAqB,OAAO,GAAE,CAAC,WAAU,CAAC,CAAC,CAAC,GAAE,EAAE,WAAU,EAAC,WAAU,CAAC,GAAE,QAAO,QAAG,CAAC,GAAE,WAAU,EAAC,CAAC,EAAC,CAAC;AAAA,EAAC;AAAA,EAAC,EAAE,4BAA2B,CAAC,CAAC,uBAAsB,MAAM,CAAC,CAAC,GAAE,EAAE,4BAA2B,CAAC,CAAC,uBAAsB,MAAM,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,MAAI,GAAE,CAAC,GAAE,cAAc,CAAC,CAAC,GAAE,CAAC,gBAAe,GAAG,GAAE,CAAC,eAAc,GAAG,CAAC,CAAC,GAAE,EAAE,WAAU,CAAC,aAAY,WAAW,GAAE,OAAG,CAAC,GAAE,CAAC,GAAE,cAAc,CAAC,CAAC,GAAE,GAAE,gBAAe,CAAC,GAAE,GAAE,eAAc,CAAC,CAAC,CAAC,GAAE,EAAE,YAAW,EAAC,kBAAiB,MAAG,WAAU,CAAC,YAAY,GAAE,QAAO,OAAG,CAAC,GAAE,CAAC,GAAE,eAAe,CAAC,CAAC,GAAE,GAAE,iBAAgB,CAAC,GAAE,GAAE,kBAAiB,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,eAAc,CAAC,CAAC,0BAAyB,aAAa,GAAE,CAAC,2BAA0B,WAAW,CAAC,CAAC,GAAE,EAAE,wBAAuB,CAAC,CAAC,0BAAyB,MAAM,GAAE,CAAC,2BAA0B,MAAM,CAAC,CAAC;AAAA,EAAE;AAAA,IAAC,IAAI,IAAE,+HAA8H,KAAE,MAAI,GAAE,CAAC,GAAE,cAAc,GAAE,GAAE,mBAAmB,GAAE,GAAE,qBAAqB,GAAE,GAAE,sBAAsB,GAAE,GAAE,uBAAuB,CAAC,CAAC;AAAA,IAAE,EAAE,eAAc,CAAC,CAAC,wBAAuB,QAAQ,CAAC,CAAC,GAAE,EAAE,WAAU,CAAC,IAAE,CAAC,gBAAe,SAAS,GAAE,CAAC,wBAAuB,CAAC,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,IAAE,CAAC,qBAAoB,cAAc,GAAE,CAAC,wBAAuB,CAAC,CAAC,CAAC,GAAE,EAAE,eAAc,CAAC,IAAE,CAAC,uBAAsB,aAAa,GAAE,CAAC,wBAAuB,CAAC,CAAC,CAAC,GAAE,EAAE,iBAAgB,CAAC,IAAE,CAAC,uBAAsB,eAAe,GAAE,CAAC,wBAAuB,CAAC,CAAC,CAAC,GAAE,EAAE,qBAAoB,CAAC,IAAE,CAAC,wBAAuB,mBAAmB,GAAE,CAAC,wBAAuB,CAAC,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,IAAE,CAAC,wBAAuB,cAAc,GAAE,CAAC,wBAAuB,CAAC,CAAC,CAAC,GAAE,EAAE,sBAAqB,CAAC,IAAE,CAAC,yBAAwB,oBAAoB,GAAE,CAAC,wBAAuB,CAAC,CAAC,CAAC,GAAE,EAAE,qBAAoB,CAAC,IAAE,CAAC,yBAAwB,mBAAmB,GAAE,CAAC,wBAAuB,CAAC,CAAC,CAAC;AAAA,EAAC;AAAA,EAAC;AAAA,IAAC,IAAI,IAAE,MAAI,GAAE,CAAC,GAAE,sBAAqB,OAAO,CAAC,CAAC;AAAA,IAAE,EAAE,OAAO,kBAAiB,MAAI,CAAC,GAAE,sBAAqB,MAAM,GAAE,GAAE,iBAAgB,MAAM,GAAE,GAAE,UAAS,2BAA0B,CAAC,GAAE,WAAU,uBAAuB,GAAE,GAAE,kBAAiB,KAAK,CAAC,CAAC,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,CAAC,sBAAqB,MAAM,GAAE,CAAC,iBAAgB,MAAM,CAAC,CAAC,GAAE,EAAE,iBAAgB,CAAC,CAAC,sBAAqB,OAAO,GAAE,CAAC,iBAAgB,OAAO,CAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,sBAAqB,QAAQ,GAAE,CAAC,iBAAgB,QAAQ,CAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,sBAAqB,QAAQ,GAAE,CAAC,iBAAgB,QAAQ,CAAC,CAAC,GAAE,EAAE,kBAAiB,CAAC,CAAC,sBAAqB,QAAQ,GAAE,CAAC,iBAAgB,QAAQ,CAAC,CAAC,GAAE,EAAE,WAAW,WAAU,QAAG;AAAA,MAAC,IAAG,GAAE,UAAQ,MAAK;AAAA,QAAC,IAAG,GAAE;AAAA,UAAS;AAAA,QAAO,IAAI,KAAE,EAAE,IAAI,CAAC,yBAAyB,CAAC,KAAG;AAAA,QAAM,OAAM,CAAC,EAAE,GAAE,GAAE,iBAAgB,yBAAyB,GAAE,GAAE,iBAAgB,EAAC,CAAC;AAAA,MAAC;AAAA,MAAC,IAAG,GAAE,MAAM,SAAO,aAAY;AAAA,QAAC,IAAI,KAAE,GAAE,MAAM;AAAA,QAAM,QAAO,GAAE,MAAM,YAAU,GAAE,IAAE,CAAC,SAAQ,UAAS,UAAS,YAAY,CAAC;AAAA,eAAO;AAAA,eAAa;AAAA,eAAa;AAAA,YAAa,OAAO,GAAE,WAAc,YAAE,CAAC,EAAE,GAAE,GAAE,iBAAgB,yBAAyB,GAAE,GAAE,iBAAgB,EAAC,CAAC;AAAA;AAAA,YAAU,OAAO,KAAE,GAAE,IAAE,GAAE,UAAS,CAAC,GAAE,OAAI,OAAU,YAAE,CAAC,GAAE,iBAAgB,EAAC,CAAC;AAAA;AAAA,MAAE;AAAA,MAAC;AAAA,QAAC,IAAI,KAAE,IAAG,IAAE,GAAE,CAAC,mBAAkB,SAAS,CAAC;AAAA,QAAE,IAAG;AAAA,UAAE,OAAM,CAAC,GAAE,iBAAgB,EAAC,CAAC;AAAA,MAAC;AAAA,MAAC;AAAA,QAAC,IAAG,GAAE;AAAA,UAAS;AAAA,QAAO,IAAI,KAAE,EAAE,QAAQ,GAAE,MAAM,OAAM,CAAC,iBAAiB,CAAC;AAAA,QAAE,IAAG;AAAA,UAAE,OAAM,CAAC,EAAE,GAAE,GAAE,iBAAgB,yBAAyB,GAAE,GAAE,iBAAgB,EAAC,CAAC;AAAA,QAAE,IAAG,EAAE,GAAE,MAAM,KAAK;AAAA,UAAE,OAAM,CAAC,EAAE,GAAE,GAAE,iBAAgB,yBAAyB,GAAE,GAAE,iBAAgB,GAAG,GAAE,MAAM,SAAS,CAAC;AAAA,MAAC;AAAA,KAAE,GAAE,EAAE,WAAU,MAAI,CAAC,EAAC,QAAO,CAAC,WAAU,WAAU,aAAa,GAAE,gBAAe,CAAC,mBAAkB,SAAS,GAAE,WAAU,MAAM,KAAK,EAAC,QAAO,GAAE,GAAE,CAAC,IAAE,OAAI,GAAG,KAAE,GAAG,GAAE,iBAAgB,KAAE,GAAE,EAAC,QAAO,CAAC,KAAI,KAAI,KAAI,KAAI,GAAG,GAAE,gBAAe,CAAC,iBAAiB,EAAC,CAAC,CAAC,GAAE,EAAE,kBAAiB,EAAC,kBAAiB,MAAG,WAAU,CAAC,kBAAkB,GAAE,iBAAgB,GAAE,OAAM,SAAK,EAAE,EAAC,IAAE,GAAG,SAAM,MAAK,QAAO,QAAG,CAAC,GAAE,kBAAiB,EAAC,CAAC,EAAC,CAAC,GAAE,EAAE,kBAAiB,MAAI,CAAC,EAAC,kBAAiB,MAAG,QAAO,CAAC,KAAI,KAAI,KAAI,KAAI,GAAG,GAAE,gBAAe,CAAC,kBAAkB,EAAC,CAAC,CAAC;AAAA,EAAC;AAAA,EAAC,EAAE,WAAU,EAAC,WAAU,CAAC,WAAW,GAAE,iBAAgB,GAAE,OAAM,QAAK,GAAG,CAAC,IAAE,GAAG,OAAK,MAAK,QAAO,OAAG,CAAC,GAAE,WAAU,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,WAAU,MAAI,CAAC,EAAC,QAAO,MAAM,KAAK,EAAC,QAAO,GAAE,GAAE,CAAC,GAAE,OAAI,GAAG,KAAE,GAAG,GAAE,gBAAe,CAAC,WAAW,EAAC,CAAC,CAAC,GAAE,EAAE,yBAAwB,CAAC,CAAC,yBAAwB,MAAM,CAAC,CAAC,GAAE,EAAE,oBAAmB,EAAC,kBAAiB,MAAG,WAAU,CAAC,yBAAyB,GAAE,iBAAgB,GAAE,OAAM,QAAK,EAAE,CAAC,IAAE,GAAG,QAAM,MAAK,QAAO,OAAG,CAAC,GAAE,yBAAwB,CAAC,CAAC,EAAC,CAAC,GAAE,EAAE,oBAAmB,MAAI,CAAC,EAAC,kBAAiB,MAAG,QAAO,CAAC,KAAI,KAAI,KAAI,KAAI,GAAG,GAAE,gBAAe,CAAC,yBAAyB,EAAC,CAAC,CAAC,GAAE,EAAE,WAAW,QAAO,OAAG;AAAA,IAAC,IAAG,EAAE,OAAM;AAAA,MAAC,IAAG,EAAE,MAAM,SAAO,aAAY;AAAA,QAAC,IAAI,KAAE,EAAE,MAAM;AAAA,QAAM,QAAO,EAAE,MAAM,YAAU,GAAE,IAAE,CAAC,SAAQ,UAAS,cAAa,iBAAgB,eAAe,CAAC;AAAA,eAAO;AAAA,eAAW;AAAA,eAAa;AAAA,eAAiB;AAAA,eAAoB,iBAAgB;AAAA,YAAC,IAAG,EAAE,UAAS;AAAA,cAAC,IAAI,KAAE,EAAE,SAAS,SAAO,cAAY,EAAE,SAAS,QAAM,EAAE,QAAQ,EAAE,SAAS,OAAM,CAAC,WAAW,CAAC;AAAA,cAAE,IAAG,CAAC,MAAG,GAAG,EAAE,SAAS,KAAK,GAAE;AAAA,gBAAC,IAAI,KAAE,EAAE,QAAQ,MAAK,CAAC,WAAW,CAAC;AAAA,gBAAE,IAAG,CAAC;AAAA,kBAAE,OAAO;AAAA,gBAAK,KAAE,QAAQ,QAAO,EAAE,SAAS;AAAA,cAAQ;AAAA,cAAC,OAAM,CAAC,MAAG,EAAE,SAAS,UAAQ,WAAS,KAAE,MAAK,KAAE,CAAC,GAAE,aAAY,EAAC,GAAE,GAAE,eAAc,EAAC,CAAC,IAAE;AAAA,YAAI;AAAA,YAAC,OAAM,CAAC,GAAE,aAAY,EAAC,CAAC;AAAA,UAAC;AAAA;AAAA,YAAS,OAAO,KAAE,GAAE,IAAE,EAAE,UAAS,CAAC,GAAE,OAAI,OAAU,YAAE,CAAC,GAAE,SAAQ,EAAC,CAAC;AAAA;AAAA,MAAE;AAAA,MAAC;AAAA,QAAC,IAAI,KAAE,IAAG,GAAE,GAAE,CAAC,gBAAe,SAAS,CAAC;AAAA,QAAE,IAAG;AAAA,UAAE,OAAM,CAAC,GAAE,SAAQ,EAAC,CAAC;AAAA,MAAC;AAAA,MAAC;AAAA,QAAC,IAAI,KAAE,EAAE,YAAY,EAAE,MAAM,OAAM,CAAC,QAAQ,GAAE,CAAC,iBAAgB,oBAAmB,eAAe,CAAC;AAAA,QAAE,IAAG,IAAE;AAAA,UAAC,KAAI,IAAE,KAAE,CAAC,KAAG,MAAM,QAAQ,EAAC,IAAE,KAAE,CAAC,EAAC;AAAA,UAAE,IAAG,EAAE,UAAS;AAAA,YAAC,IAAI,KAAE,EAAE,SAAS,SAAO,cAAY,EAAE,SAAS,QAAM,EAAE,QAAQ,EAAE,SAAS,OAAM,CAAC,WAAW,CAAC;AAAA,YAAE,IAAG,CAAC,MAAG,GAAG,EAAE,SAAS,KAAK,GAAE;AAAA,cAAC,IAAI,KAAE,EAAE,QAAQ,MAAK,CAAC,WAAW,CAAC;AAAA,cAAE,IAAG,CAAC;AAAA,gBAAE,OAAO;AAAA,cAAK,KAAE,QAAQ,QAAO,EAAE,SAAS;AAAA,YAAQ;AAAA,YAAC,IAAG,CAAC,MAAG,EAAE,SAAS,UAAQ,WAAS,KAAE,MAAK,CAAC;AAAA,cAAE,OAAO;AAAA,YAAK,IAAI,KAAE,CAAC,GAAE,aAAY,EAAC,CAAC;AAAA,YAAE,OAAO,MAAG,GAAE,KAAK,GAAE,eAAc,EAAC,CAAC,GAAE;AAAA,UAAC;AAAA,UAAC,OAAO,OAAO,MAAG,WAAS,CAAC,GAAE,aAAY,EAAC,GAAE,GAAE,eAAc,EAAC,CAAC,IAAE,CAAC,GAAE,aAAY,EAAC,GAAE,GAAE,eAAc,GAAE,mBAAiB,qBAAqB,GAAE,sBAAyB,SAAC,GAAE,GAAE,kBAAiB,GAAE,sBAAoB,sBAAsB,GAAE,yBAA4B,SAAC,GAAE,GAAE,eAAc,GAAE,mBAAiB,yBAAyB,GAAE,sBAAyB,SAAC,CAAC;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC;AAAA,GAAE,GAAE,EAAE,QAAO,MAAI,CAAC,EAAC,QAAO,CAAC,WAAU,WAAU,aAAa,GAAE,gBAAe,CAAC,gBAAe,SAAS,GAAE,WAAU,MAAM,KAAK,EAAC,QAAO,GAAE,GAAE,CAAC,GAAE,OAAI,GAAG,KAAE,GAAG,EAAC,GAAE,EAAC,QAAO,CAAC,GAAE,gBAAe,CAAC,QAAQ,GAAE,WAAU,CAAC,GAAE,mBAAkB,CAAC,WAAW,EAAC,CAAC,CAAC;AAAA,EAAE,IAAI,KAAE,MAAI,GAAE,CAAC,GAAE,wBAAwB,GAAE,GAAE,0BAAyB,QAAO,cAAc,CAAC,CAAC;AAAA,EAAE,EAAE,uBAAsB,CAAC,IAAE,CAAC,0BAAyB,SAAS,CAAC,CAAC,GAAE,EAAE,WAAW,eAAc,OAAG;AAAA,IAAC,IAAI;AAAA,IAAE,IAAG,EAAE,aAAW,EAAE,SAAS,SAAO,cAAY,KAAE,EAAE,SAAS,QAAM,EAAE,EAAE,SAAS,KAAK,MAAI,KAAE,GAAG,EAAE,SAAS,YAAW,CAAC,EAAE,OAAM;AAAA,MAAC,IAAI,KAAE,EAAE,IAAI,CAAC,eAAe,CAAC;AAAA,MAAE,OAAO,OAAI,OAAU,YAAE,CAAC,GAAE,GAAE,GAAE,0BAAyB,EAAC,GAAE,GAAG,IAAG,eAAc,IAAE,IAAE,QAAG,+BAA+B,KAAI,CAAC;AAAA,IAAC;AAAA,IAAC,IAAG,EAAE,MAAM,SAAO,aAAY;AAAA,MAAC,IAAI,KAAE,EAAE,MAAM;AAAA,MAAM,QAAO,EAAE,MAAM,YAAU,GAAE,IAAE,CAAC,OAAO,CAAC;AAAA,aAAO;AAAA,UAAQ,OAAO,KAAE,GAAE,IAAE,EAAE,UAAS,CAAC,GAAE,OAAI,OAAU,YAAE,CAAC,GAAE,GAAE,GAAE,0BAAyB,GAAE,IAAE,6BAA6B,CAAC,CAAC;AAAA;AAAA,UAAU,OAAM,CAAC,GAAE,GAAE,GAAE,0BAAyB,EAAC,GAAE,GAAG,IAAG,eAAc,IAAE,IAAE,QAAG,+BAA+B,KAAI,CAAC;AAAA;AAAA,IAAE;AAAA,IAAC,QAAO,EAAE,MAAM;AAAA,WAAW;AAAA,QAAO,OAAO,EAAE,WAAc,YAAE,CAAC,GAAE,GAAE,GAAE,eAAc,MAAM,CAAC;AAAA,WAAM;AAAA,QAAU,OAAO,EAAE,WAAc,YAAE,CAAC,GAAE,GAAE,GAAE,0BAAyB,SAAS,CAAC;AAAA;AAAA,IAAE;AAAA,MAAC,IAAI,KAAE,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAAA,MAAE,IAAG;AAAA,QAAE,OAAM,CAAC,GAAE,GAAE,GAAE,0BAAyB,EAAC,GAAE,GAAG,IAAG,eAAc,IAAE,IAAE,QAAG,+BAA+B,KAAI,CAAC;AAAA,IAAC;AAAA,IAAC;AAAA,MAAC,IAAI,KAAE,IAAG,GAAE,GAAE,CAAC,uBAAsB,SAAS,CAAC;AAAA,MAAE,IAAG;AAAA,QAAE,OAAM,CAAC,GAAE,GAAE,GAAE,0BAAyB,GAAE,IAAE,6BAA6B,CAAC,CAAC;AAAA,IAAC;AAAA,GAAE,GAAE,EAAE,eAAc,MAAI,CAAC,EAAC,QAAO,CAAC,WAAU,WAAU,aAAa,GAAE,gBAAe,CAAC,uBAAsB,SAAS,GAAE,WAAU,MAAM,KAAK,EAAC,QAAO,GAAE,GAAE,CAAC,GAAE,OAAI,GAAG,KAAE,GAAG,EAAC,GAAE,EAAC,QAAO,CAAC,MAAM,EAAC,GAAE,EAAC,gBAAe,CAAC,eAAe,GAAE,WAAU,MAAM,KAAK,EAAC,QAAO,GAAE,GAAE,CAAC,GAAE,OAAI,GAAG,KAAE,GAAG,GAAE,iBAAgB,EAAE,IAAI,CAAC,eAAe,CAAC,MAAI,KAAI,CAAC,CAAC;AAAA,EAAE;AAAA,IAAC,IAAI,KAAE,QAAQ,CAAC,IAAE;AAAA,MAAC,OAAM,oCAAoC,0DAAyD;AAAA,OAAM,KAAE,QAAQ,CAAC,IAAE;AAAA,MAAC,OAAM,eAAe;AAAA;AAAA,IAA8C,IAAI,KAAE,IAAE,MAAG;AAAA,IAAE,IAAI,IAAE,CAAC,0BAAyB,+BAA8B,gCAA+B,yBAAwB,kBAAkB,EAAE,KAAK,IAAI,GAAE,KAAE,aAAY,KAAE,MAAI,GAAE,CAAC,GAAE,eAAc,EAAC,GAAE,GAAE,mBAAmB,GAAE,GAAE,qBAAoB,QAAO,cAAc,GAAE,GAAE,qBAAoB,EAAC,GAAE,GAAE,yBAAyB,GAAE,GAAE,2BAA0B,QAAO,cAAc,GAAE,GAAE,iBAAiB,GAAE,GAAE,oBAAmB,EAAC,GAAE,GAAE,uBAAuB,GAAE,GAAE,0BAAyB,EAAC,GAAE,GAAE,iBAAiB,GAAE,GAAE,0BAAyB,OAAM,UAAU,GAAE,GAAE,0BAAyB,MAAM,GAAE,GAAE,2BAA0B,EAAC,CAAC,CAAC;AAAA,IAAE,EAAE,kBAAiB,CAAC,IAAE,CAAC,qBAAoB,SAAS,CAAC,CAAC,GAAE,EAAE,WAAW,UAAS,QAAG;AAAA,MAAC,IAAI;AAAA,MAAE,IAAG,GAAE,aAAW,GAAE,SAAS,SAAO,cAAY,KAAE,GAAE,SAAS,QAAM,EAAE,GAAE,SAAS,KAAK,MAAI,KAAE,GAAG,GAAE,SAAS,YAAW,CAAC,GAAE,OAAM;AAAA,QAAC,IAAI,KAAE,EAAE,IAAI,CAAC,UAAU,CAAC;AAAA,QAAE,OAAO,OAAI,OAAU,YAAE,CAAC,GAAE,GAAE,GAAE,qBAAoB,EAAC,GAAE,GAAG,IAAG,eAAc,IAAE,IAAE,QAAI,0BAA0B,KAAK,GAAE,GAAE,cAAa,CAAC,CAAC;AAAA,MAAC;AAAA,MAAC,IAAG,GAAE,MAAM,SAAO,aAAY;AAAA,QAAC,IAAI,KAAE,GAAE,MAAM;AAAA,QAAM,QAAO,GAAE,MAAM,YAAU,GAAE,IAAE,CAAC,OAAO,CAAC;AAAA,eAAO;AAAA,YAAQ,OAAO,KAAE,GAAE,IAAE,GAAE,UAAS,CAAC,GAAE,OAAI,OAAU,YAAE,CAAC,GAAE,GAAE,GAAE,qBAAoB,GAAE,IAAE,wBAAwB,CAAC,CAAC;AAAA;AAAA,YAAU,OAAM,CAAC,GAAE,GAAE,GAAE,qBAAoB,EAAC,GAAE,GAAG,IAAG,eAAc,IAAE,IAAE,QAAI,0BAA0B,KAAK,GAAE,GAAE,cAAa,CAAC,CAAC;AAAA;AAAA,MAAE;AAAA,MAAC,QAAO,GAAE,MAAM;AAAA,aAAW;AAAA,UAAO,OAAO,GAAE,WAAc,YAAE,CAAC,GAAE,GAAE,GAAE,eAAc,EAAC,GAAE,GAAE,cAAa,CAAC,CAAC;AAAA,aAAM;AAAA,UAAU,OAAO,GAAE,WAAc,YAAE,CAAC,GAAE,GAAE,GAAE,qBAAoB,SAAS,CAAC;AAAA;AAAA,MAAE;AAAA,QAAC,IAAI,KAAE,EAAE,IAAI,CAAC,YAAY,GAAE,MAAM,OAAO,CAAC;AAAA,QAAE,IAAG;AAAA,UAAE,OAAM,CAAC,GAAE,GAAE,GAAE,qBAAoB,EAAC,GAAE,GAAG,IAAG,eAAc,IAAE,IAAE,QAAI,0BAA0B,KAAK,GAAE,GAAE,cAAa,CAAC,CAAC;AAAA,MAAC;AAAA,MAAC;AAAA,QAAC,IAAI,KAAE,IAAG,IAAE,GAAE,CAAC,sBAAqB,SAAS,CAAC;AAAA,QAAE,IAAG;AAAA,UAAE,OAAM,CAAC,GAAE,GAAE,GAAE,qBAAoB,GAAE,IAAE,wBAAwB,CAAC,CAAC;AAAA,MAAC;AAAA,KAAE,GAAE,EAAE,UAAS,MAAI,CAAC,EAAC,QAAO,CAAC,WAAU,WAAU,aAAa,GAAE,gBAAe,CAAC,sBAAqB,SAAS,GAAE,WAAU,MAAM,KAAK,EAAC,QAAO,GAAE,GAAE,CAAC,IAAE,OAAI,GAAG,KAAE,GAAG,EAAC,GAAE,EAAC,QAAO,CAAC,MAAM,EAAC,GAAE,EAAC,gBAAe,CAAC,UAAU,GAAE,WAAU,MAAM,KAAK,EAAC,QAAO,GAAE,GAAE,CAAC,IAAE,OAAI,GAAG,KAAE,GAAG,GAAE,iBAAgB,EAAE,IAAI,CAAC,UAAU,CAAC,MAAI,KAAI,CAAC,CAAC,GAAE,EAAE,wBAAuB,CAAC,IAAE,CAAC,2BAA0B,SAAS,CAAC,CAAC,GAAE,EAAE,WAAW,gBAAe,QAAG;AAAA,MAAC,IAAI;AAAA,MAAE,IAAG,GAAE,aAAW,GAAE,SAAS,SAAO,cAAY,KAAE,GAAE,SAAS,QAAM,EAAE,GAAE,SAAS,KAAK,MAAI,KAAE,GAAG,GAAE,SAAS,YAAW,CAAC,GAAE,OAAM;AAAA,QAAC,IAAI,KAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC;AAAA,QAAE,OAAO,OAAI,OAAU,YAAE,CAAC,GAAE,GAAE,GAAE,2BAA0B,EAAC,GAAE,GAAG,IAAG,qBAAoB,IAAE,IAAE,QAAI,gCAAgC,KAAK,GAAE,GAAE,cAAa,CAAC,CAAC;AAAA,MAAC;AAAA,MAAC,IAAG,GAAE,MAAM,SAAO,aAAY;AAAA,QAAC,IAAI,KAAE,GAAE,MAAM;AAAA,QAAM,QAAO,GAAE,MAAM,YAAU,GAAE,IAAE,CAAC,OAAO,CAAC;AAAA,eAAO;AAAA,YAAQ,OAAO,KAAE,GAAE,IAAE,GAAE,UAAS,CAAC,GAAE,OAAI,OAAU,YAAE,CAAC,GAAE,GAAE,GAAE,2BAA0B,GAAE,IAAE,8BAA8B,CAAC,CAAC;AAAA;AAAA,YAAU,OAAM,CAAC,GAAE,GAAE,GAAE,2BAA0B,EAAC,GAAE,GAAG,IAAG,qBAAoB,IAAE,IAAE,QAAI,gCAAgC,OAAM,QAAQ,GAAE,GAAE,cAAa,CAAC,CAAC;AAAA;AAAA,MAAE;AAAA,MAAC,QAAO,GAAE,MAAM;AAAA,aAAW;AAAA,UAAO,OAAO,GAAE,WAAc,YAAE,CAAC,GAAE,GAAE,GAAE,qBAAoB,EAAC,GAAE,GAAE,cAAa,CAAC,CAAC;AAAA,aAAM;AAAA,UAAU,OAAO,GAAE,WAAc,YAAE,CAAC,GAAE,GAAE,GAAE,2BAA0B,SAAS,CAAC;AAAA;AAAA,MAAE;AAAA,QAAC,IAAI,KAAE,EAAE,IAAI,CAAC,kBAAkB,GAAE,MAAM,OAAO,CAAC;AAAA,QAAE,IAAG;AAAA,UAAE,OAAM,CAAC,GAAE,GAAE,GAAE,2BAA0B,EAAC,GAAE,GAAG,IAAG,qBAAoB,IAAE,IAAE,QAAI,gCAAgC,KAAK,GAAE,GAAE,cAAa,CAAC,CAAC;AAAA,MAAC;AAAA,MAAC;AAAA,QAAC,IAAI,KAAE,IAAG,IAAE,GAAE,CAAC,sBAAqB,SAAS,CAAC;AAAA,QAAE,IAAG;AAAA,UAAE,OAAM,CAAC,GAAE,GAAE,GAAE,2BAA0B,GAAE,IAAE,8BAA8B,CAAC,CAAC;AAAA,MAAC;AAAA,KAAE,GAAE,EAAE,gBAAe,MAAI,CAAC,EAAC,QAAO,CAAC,WAAU,WAAU,aAAa,GAAE,gBAAe,CAAC,sBAAqB,SAAS,GAAE,WAAU,MAAM,KAAK,EAAC,QAAO,GAAE,GAAE,CAAC,IAAE,OAAI,GAAG,KAAE,GAAG,EAAC,GAAE,EAAC,QAAO,CAAC,MAAM,EAAC,GAAE,EAAC,gBAAe,CAAC,gBAAgB,GAAE,WAAU,MAAM,KAAK,EAAC,QAAO,GAAE,GAAE,CAAC,IAAE,OAAI,GAAG,KAAE,GAAG,GAAE,iBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAI,KAAI,CAAC,CAAC,GAAE,EAAE,cAAa,CAAC,IAAE,CAAC,mBAAkB,OAAO,CAAC,CAAC;AAAA,IAAE,IAAI,KAAE,EAAE,IAAI,CAAC,sBAAsB,CAAC,KAAG;AAAA,IAAe,EAAE,WAAW,QAAO,QAAG;AAAA,MAAC,IAAG,CAAC,GAAE,OAAM;AAAA,QAAC,IAAG,GAAE;AAAA,UAAS;AAAA,QAAO,IAAI,KAAE,EAAE,IAAI,CAAC,sBAAsB,CAAC,KAAG;AAAA,QAAM,OAAM,CAAC,GAAE,GAAE,GAAE,oBAAmB,GAAE,EAAC,CAAC,GAAE,GAAE,cAAa,CAAC,CAAC;AAAA,MAAC;AAAA,MAAC,IAAG,GAAE,MAAM,SAAO,aAAY;AAAA,QAAC,IAAI,KAAE,GAAE,MAAM;AAAA,QAAM,QAAO,GAAE,MAAM,YAAU,GAAE,IAAE,CAAC,SAAQ,QAAQ,CAAC;AAAA,eAAO;AAAA,YAAS,OAAO,GAAE,WAAc,YAAE,CAAC,GAAE,GAAE,GAAE,oBAAmB,GAAE,EAAC,CAAC,GAAE,GAAE,cAAa,CAAC,CAAC;AAAA;AAAA,YAAU,OAAO,KAAE,GAAE,IAAE,GAAE,UAAS,CAAC,GAAE,OAAI,OAAU,YAAE,CAAC,GAAE,mBAAkB,EAAC,CAAC;AAAA;AAAA,MAAE;AAAA,MAAC;AAAA,QAAC,IAAI,KAAE,IAAG,IAAE,GAAE,CAAC,gBAAe,SAAS,CAAC;AAAA,QAAE,IAAG;AAAA,UAAE,OAAM,CAAC,GAAE,mBAAkB,EAAC,CAAC;AAAA,MAAC;AAAA,MAAC;AAAA,QAAC,IAAG,GAAE;AAAA,UAAS;AAAA,QAAO,IAAI,KAAE,EAAE,QAAQ,GAAE,MAAM,OAAM,CAAC,cAAc,CAAC;AAAA,QAAE,IAAG,OAAI,QAAM,EAAE,GAAE,MAAM,KAAK,MAAI,KAAE,GAAG,GAAE,MAAM,YAAW;AAAA,UAAE,OAAM,CAAC,GAAE,GAAE,GAAE,oBAAmB,GAAE,EAAC,CAAC,GAAE,GAAE,cAAa,CAAC,CAAC;AAAA,MAAC;AAAA,KAAE,GAAE,EAAE,QAAO,MAAI,CAAC,EAAC,QAAO,CAAC,WAAU,WAAU,aAAa,GAAE,gBAAe,CAAC,gBAAe,SAAS,GAAE,WAAU,MAAM,KAAK,EAAC,QAAO,GAAE,GAAE,CAAC,IAAE,OAAI,GAAG,KAAE,GAAG,EAAC,GAAE,EAAC,QAAO,CAAC,KAAI,KAAI,KAAI,KAAI,GAAG,GAAE,gBAAe,CAAC,cAAc,GAAE,iBAAgB,KAAE,CAAC,CAAC,GAAE,EAAE,WAAW,cAAa,QAAG;AAAA,MAAC,IAAG,CAAC,GAAE;AAAA,QAAM,OAAO,GAAE,WAAc,YAAE,CAAC,GAAE,GAAE,GAAE,0BAAyB,GAAE,KAAK,CAAC,GAAE,GAAE,cAAa,CAAC,CAAC;AAAA,MAAE,IAAG,GAAE,MAAM,SAAO,aAAY;AAAA,QAAC,IAAI,KAAE,GAAE,MAAM;AAAA,QAAM,QAAO,GAAE,MAAM,YAAU,GAAE,IAAE,CAAC,SAAQ,QAAQ,CAAC;AAAA,eAAO;AAAA,YAAS,OAAO,GAAE,WAAc,YAAE,CAAC,GAAE,GAAE,GAAE,0BAAyB,GAAE,EAAC,CAAC,GAAE,GAAE,cAAa,CAAC,CAAC;AAAA;AAAA,YAAU,OAAO,KAAE,GAAE,IAAE,GAAE,UAAS,CAAC,GAAE,OAAI,OAAU,YAAE,CAAC,GAAE,yBAAwB,EAAC,CAAC;AAAA;AAAA,MAAE;AAAA,MAAC;AAAA,QAAC,IAAI,KAAE,IAAG,IAAE,GAAE,CAAC,gBAAe,SAAS,CAAC;AAAA,QAAE,IAAG;AAAA,UAAE,OAAM,CAAC,GAAE,yBAAwB,EAAC,CAAC;AAAA,MAAC;AAAA,MAAC;AAAA,QAAC,IAAG,GAAE;AAAA,UAAS;AAAA,QAAO,IAAI,KAAE,EAAE,QAAQ,GAAE,MAAM,OAAM,CAAC,cAAc,CAAC;AAAA,QAAE,IAAG,OAAI,QAAM,EAAE,GAAE,MAAM,KAAK,MAAI,KAAE,GAAG,GAAE,MAAM,YAAW;AAAA,UAAE,OAAM,CAAC,GAAE,GAAE,GAAE,0BAAyB,GAAE,EAAC,CAAC,GAAE,GAAE,cAAa,CAAC,CAAC;AAAA,MAAC;AAAA,KAAE,GAAE,EAAE,cAAa,MAAI,CAAC,EAAC,QAAO,CAAC,WAAU,WAAU,aAAa,GAAE,gBAAe,CAAC,gBAAe,SAAS,GAAE,WAAU,MAAM,KAAK,EAAC,QAAO,GAAE,GAAE,CAAC,IAAE,OAAI,GAAG,KAAE,GAAG,EAAC,GAAE,EAAC,QAAO,CAAC,KAAI,KAAI,KAAI,KAAI,GAAG,GAAE,gBAAe,CAAC,cAAc,GAAE,iBAAgB,KAAE,CAAC,CAAC;AAAA,IAAE,IAAI,KAAE;AAAA,IAAsF,EAAE,WAAW,eAAc,QAAG;AAAA,MAAC,IAAG,GAAE,OAAM;AAAA,QAAC,IAAG,GAAE,MAAM,SAAO,aAAY;AAAA,UAAC,IAAI,KAAE,GAAE,MAAM;AAAA,UAAM,QAAO,GAAE,MAAM,YAAU,GAAE,IAAE,CAAC,SAAQ,QAAQ,CAAC;AAAA,iBAAO;AAAA,cAAS,OAAO,GAAE,WAAc,YAAE,CAAC,GAAE,0BAAyB,EAAC,GAAE,GAAE,2BAA0B,EAAC,CAAC;AAAA;AAAA,cAAU,OAAO,KAAE,GAAE,IAAE,GAAE,UAAS,CAAC,GAAE,OAAI,OAAU,YAAE,CAAC,GAAE,0BAAyB,EAAC,CAAC;AAAA;AAAA,QAAE;AAAA,QAAC;AAAA,UAAC,IAAI,KAAE,EAAE,QAAQ,GAAE,MAAM,OAAM,CAAC,qBAAqB,CAAC;AAAA,UAAE,IAAG;AAAA,YAAE,OAAO,GAAE,WAAc,YAAE,CAAC,GAAE,0BAAyB,EAAC,GAAE,GAAE,2BAA0B,EAAC,CAAC;AAAA,UAAE,IAAG,EAAE,GAAE,MAAM,KAAK;AAAA,YAAE,OAAO,GAAE,WAAc,YAAE,CAAC,GAAE,0BAAyB,GAAG,GAAE,MAAM,SAAS,GAAE,GAAE,2BAA0B,EAAC,CAAC;AAAA,QAAC;AAAA,QAAC;AAAA,UAAC,IAAI,KAAE,IAAG,IAAE,GAAE,CAAC,uBAAsB,SAAS,CAAC;AAAA,UAAE,IAAG;AAAA,YAAE,OAAM,CAAC,GAAE,0BAAyB,EAAC,CAAC;AAAA,QAAC;AAAA,MAAC;AAAA,KAAE;AAAA,EAAC;AAAA,EAAC,OAAO,EAAE,eAAc,MAAI,CAAC,EAAC,QAAO,CAAC,WAAU,WAAU,aAAa,GAAE,gBAAe,CAAC,uBAAsB,SAAS,GAAE,WAAU,MAAM,KAAK,EAAC,QAAO,GAAE,GAAE,CAAC,GAAE,OAAI,GAAG,KAAE,GAAG,EAAC,GAAE,EAAC,QAAO,CAAC,KAAI,KAAI,KAAI,KAAI,GAAG,GAAE,gBAAe,CAAC,qBAAqB,EAAC,CAAC,CAAC,GAAE,EAAE,WAAW,cAAa,OAAG;AAAA,IAAC,IAAI,KAAE;AAAA,IAAK,IAAG,EAAE,UAAQ,OAAK,KAAE,gBAAc,EAAE,MAAM,SAAO,cAAY,KAAE,EAAE,MAAM,QAAM,EAAE,MAAM,SAAO,WAAS,EAAE,MAAM,UAAQ,aAAW,KAAE,WAAU,OAAI;AAAA,MAAK,OAAO,EAAE,WAAS,CAAC,GAAE,kBAAiB,EAAC,GAAE,GAAE,kBAAiB,EAAE,SAAS,KAAK,CAAC,IAAE,CAAC,GAAE,kBAAiB,EAAC,CAAC;AAAA,GAAE,GAAE,EAAE,cAAa,MAAI,CAAC,EAAC,QAAO,CAAC,QAAQ,GAAE,gBAAe,CAAC,GAAE,iBAAgB,KAAE,CAAC,CAAC,GAAE;AAAA;AAAmD,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,IAAI,IAAE,EAAE;AAAA,EAAO,OAAO,GAAG,KAAK,CAAC,IAAE,OAAG;AAAA,IAAC,IAAI,IAAE,EAAC,WAAU,EAAC,oBAAmB,OAAG,mBAAkB,OAAG,WAAU,IAAI,KAAI,UAAS,IAAI,IAAG,GAAE,cAAa,EAAC,oBAAmB,OAAG,mBAAkB,OAAG,WAAU,IAAI,KAAI,UAAS,IAAI,IAAG,EAAC;AAAA,IAAE,GAAE,EAAE,OAAM,OAAG;AAAA,MAAC,IAAG,EAAE,SAAO,iBAAe,CAAC,EAAE,SAAO,CAAC,EAAE,MAAM,SAAS,UAAU,KAAG,CAAC,EAAE,MAAM,SAAS,aAAa;AAAA,QAAE;AAAA,MAAO,IAAI,KAAE,GAAE,EAAE,KAAK;AAAA,MAAE,IAAG,IAAE,OAAG;AAAA,QAAC,IAAG,EAAE,SAAO;AAAA,UAAW;AAAA,QAAO,IAAG,EAAE,UAAQ,eAAa,EAAE,EAAE,cAAc,qBAAmB,EAAE,WAAW;AAAA,UAAmB,OAAO,IAAG,EAAE,OAAM,QAAG;AAAA,YAAC,IAAG,GAAE,SAAO,cAAY,GAAE,UAAQ,aAAW,GAAE,UAAQ;AAAA,cAAa;AAAA,YAAO,IAAI,KAAE,GAAE;AAAA,YAAM,SAAQ,MAAK,GAAE;AAAA,cAAM,IAAG,GAAE,SAAO,QAAO;AAAA,gBAAC,IAAG,GAAE,UAAQ;AAAA,kBAAU,EAAE,IAAG,uBAAqB;AAAA,gBAAQ,SAAG,GAAE,UAAQ,aAAW,EAAE,IAAG,sBAAoB,MAAG,EAAE,cAAc,qBAAmB,EAAE,WAAW;AAAA,kBAAmB,OAAO;AAAA,cAAC;AAAA,WAAE,GAAE;AAAA,QAAE,IAAG,EAAE,UAAQ,aAAW,EAAE,UAAQ;AAAA,UAAa;AAAA,QAAO,IAAI,IAAE,EAAE,GAAE,EAAE,KAAK,GAAE,GAAG;AAAA,QAAE,UAAQ,IAAE,OAAK,EAAE,QAAQ;AAAA,UAAE,KAAE,GAAE,QAAQ,SAAQ,GAAG,GAAE,KAAE,GAAE,QAAQ,qBAAoB,YAAY,GAAE,KAAE,GAAE,QAAQ,QAAO,EAAE,GAAE,KAAE,GAAE,QAAQ,cAAa,IAAI,GAAE,GAAE,OAAK,OAAK,GAAE,OAAK,OAAK,CAAC,GAAE,SAAS,IAAI,MAAI,MAAG,OAAM,EAAE,MAAG;AAAA,QAAE,EAAE,QAAM,GAAE,EAAE,KAAK,GAAG,CAAC;AAAA,QAAE,SAAQ,MAAK,EAAE;AAAA,UAAM,IAAG,GAAE,SAAO,WAAS,GAAE,MAAM,OAAK,OAAK,GAAE,MAAM,OAAK,QAAM,GAAE,MAAM,OAAK,GAAE,MAAM,GAAE,MAAM,SAAO,IAAG;AAAA,YAAC,IAAI,KAAE,GAAE,MAAM,MAAM,GAAE,EAAE;AAAA,YAAE,EAAE,EAAE,OAAO,SAAS,IAAI,EAAC;AAAA,UAAC,EAAM,SAAG,GAAE,SAAO,UAAQ,GAAE,MAAM,OAAK,OAAK,GAAE,MAAM,OAAK,KAAI;AAAA,YAAC,IAAI,KAAE,GAAE,MAAM,QAAQ,WAAU,EAAE;AAAA,YAAE,EAAE,EAAE,OAAO,UAAU,IAAI,EAAC;AAAA,UAAC,EAAM,SAAG,GAAE,SAAO,UAAQ,EAAE,GAAE,MAAM,OAAK,OAAK,GAAE,MAAM,GAAE,MAAM,SAAO,OAAK,QAAM,CAAC,GAAG,SAAS,GAAE,KAAK,GAAE;AAAA,YAAC,QAAQ,KAAK,sCAAsC,GAAE;AAAA,6BACp51G,GAAG,IAAI,OAAG,IAAI,IAAI,EAAE,KAAK,IAAI;AAAA,CACzD;AAAA,YAAE,IAAI,KAAE,GAAE,OAAM,KAAE,gBAAgB,CAAC,GAAE,KAAE;AAAA,YAAO,IAAG,GAAE,OAAM,CAAC,KAAG,aAAY,SAAK;AAAA,cAAC,EAAE,SAAO,UAAQ,EAAE,UAAQ,MAAG,GAAE,EAAC,MAAK,QAAO,OAAM,GAAC,CAAC;AAAA,aAAE;AAAA,YAAE,IAAI,IAAE,IAAI,OAAO,GAAE,CAAC,EAAC,CAAC,EAAE,MAAM,GAAE,KAAE,GAAE,CAAC,EAAC,CAAC,EAAE,QAAQ,EAAC,GAAE,KAAE,CAAC,UAAS,GAAE,CAAC,CAAC,CAAC,GAAE,IAAI,OAAO,EAAC,IAAE,GAAE,KAAK,EAAE,KAAK;AAAA,CAC3O;AAAA,YAAE,QAAQ,KAAK,EAAC;AAAA,UAAC;AAAA,OAAE,GAAE,EAAE,QAAM,GAAE,EAAC;AAAA,KAAE,GAAE,EAAE,UAAU,WAAW,EAAE,MAAM,GAAE,EAAE,GAAE,OAAG;AAAA,MAAC,IAAI,KAAE,gBAAgB,CAAC,GAAE,IAAE,EAAE,OAAM,IAAE,EAAE;AAAA,MAAS,IAAG,MAAI;AAAA,QAAK;AAAA,MAAO,IAAI,KAAE,OAAG,KAAE,OAAG,KAAE,OAAG,KAAE,OAAG,IAAE,IAAI,KAAI,KAAE;AAAA,MAAG,IAAG,GAAE,CAAC,EAAC,GAAE,CAAC,MAAG,QAAO,GAAE,aAAY,SAAK;AAAA,QAAC,IAAG,GAAG,SAAO,UAAQ,GAAG,SAAO,aAAW,GAAE,SAAO,iBAAe,CAAC,GAAE;AAAA,UAAM;AAAA,QAAO,IAAI,KAAE,GAAE,GAAE,KAAK;AAAA,SAAG,IAAG,IAAE,CAAC,KAAG,aAAY,SAAK;AAAA,UAAC,IAAG,EAAE,SAAO,YAAW;AAAA,YAAC,IAAG,EAAE,UAAQ,WAAU;AAAA,cAAC,KAAE;AAAA,cAAG,IAAI,KAAE,GAAG,GAAE,GAAE,CAAC;AAAA,cAAE,OAAO,MAAG,KAAE,MAAG,GAAE,QAAM,KAAE,OAAG,EAAE,IAAI,IAAE,CAAC,GAAE,GAAE,GAAE,KAAK,GAAE,MAAI,OAAI,OAAG,GAAE,CAAC,CAAC,GAAE;AAAA,YAAE,EAAM,SAAG,EAAE,UAAQ,cAAa;AAAA,cAAC,IAAG,MAAI;AAAA,gBAAK,OAAO,GAAE,CAAC,CAAC,GAAE;AAAA,cAAE,KAAE;AAAA,cAAG,IAAI,KAAE,GAAG,GAAE,GAAE,CAAC;AAAA,cAAE,OAAO,MAAG,KAAE,MAAG,GAAE,GAAE,KAAK,GAAE,MAAI,OAAI,OAAG,GAAE,CAAC,CAAC,GAAE;AAAA,YAAE;AAAA,UAAC;AAAA,SAAE,KAAG,OAAK,MAAI,GAAE,QAAM,GAAE,EAAC;AAAA,OAAG,GAAE,MAAG,CAAC,MAAG,MAAG,CAAC,MAAG,MAAG,MAAG,KAAG,CAAC,MAAG,CAAC;AAAA,QAAE,OAAO;AAAA,MAAK,IAAG;AAAA,QAAE,UAAQ,IAAE,MAAK,GAAE;AAAA,UAAC,IAAI,KAAE,EAAE,MAAM,QAAQ,EAAC;AAAA,UAAE,OAAI,MAAI,EAAE,MAAM,OAAO,IAAE,CAAC;AAAA,QAAC;AAAA,MAAC,OAAO,GAAE;AAAA,KAAM,GAAE,EAAE,UAAU,QAAQ,EAAE,MAAM,GAAE,EAAE,GAAE,MAAI;AAAA,MAAC,IAAI,IAAE,CAAC,GAAE,KAAE,CAAC;AAAA,MAAE,UAAQ,KAAG,UAAS,GAAE,mBAAkB,IAAE,oBAAmB,IAAE,WAAU,SAAK,CAAC,CAAC,GAAE,EAAE,UAAU,GAAE,CAAC,IAAE,EAAE,aAAa,CAAC,GAAE;AAAA,QAAC,SAAQ,MAAK;AAAA,UAAE,EAAE,KAAK,EAAC;AAAA,QAAE,IAAG;AAAA,UAAE,EAAE,KAAK,GAAG,EAAE;AAAA,QAAO,SAAG;AAAA,UAAE,SAAQ,MAAK;AAAA,YAAG,EAAE,EAAC,KAAG,EAAE,KAAK,EAAC;AAAA,QAAE,SAAQ,MAAK,EAAE,MAAM,iBAAiB,EAAC;AAAA,UAAE,EAAE,KAAK,GAAE,QAAQ,IAAG,CAAC,GAAE,IAAE,OAAI,GAAG,MAAK,IAAG,CAAC;AAAA,MAAC;AAAA,MAAC,OAAM,CAAC,EAAC,QAAO,GAAE,WAAU,GAAC,CAAC;AAAA,KAAE;AAAA,MAAG,GAAG,KAAK,CAAC,IAAE,OAAG;AAAA,IAAC,EAAE,UAAU,OAAO,GAAE,MAAI,gBAAgB,EAAE,KAAK,CAAC;AAAA,MAAG;AAAA;AAAK,SAAS,EAAE,CAAC,GAAE,GAAE,GAAE;AAAA,EAAC,SAAQ,KAAK,EAAE,OAAM;AAAA,IAAC,IAAG,EAAE,SAAO,WAAS,EAAE,SAAO,WAAS,EAAE,MAAM,OAAK,OAAK,EAAE,MAAM,OAAK,QAAM,EAAE,MAAM,EAAE,MAAM,SAAO,OAAK,EAAE,MAAM,MAAI,EAAE,MAAM,MAAM,GAAE,EAAE,MAAI,EAAE;AAAA,MAAM,OAAM,EAAC,OAAM,GAAE,EAAE,KAAK,EAAC;AAAA,IAAE,IAAG,EAAE,SAAO,WAAS,EAAE,SAAO,UAAQ,EAAE,MAAM,OAAK,OAAK,EAAE,MAAM,OAAK,KAAI;AAAA,MAAC,IAAI,IAAE,EAAE;AAAA,MAAM,IAAG,EAAE,SAAS,IAAI,GAAE;AAAA,QAAC,IAAE,EAAE,MAAM,GAAE,EAAE;AAAA,QAAE,IAAI,KAAE,EAAE,MAAM,QAAQ,EAAE,OAAM,CAAC,CAAC,CAAC;AAAA,QAAE,IAAG;AAAA,UAAE,OAAM,EAAC,OAAM,GAAE,EAAC,EAAC;AAAA,MAAC,EAAK;AAAA,QAAC,IAAI,KAAE,EAAE,MAAM,IAAI;AAAA,QAAE,IAAG,GAAE,UAAQ;AAAA,UAAE;AAAA,QAAS,IAAI,IAAE,CAAC,GAAE,MAAM,CAAC,GAAE,IAAE,EAAE,MAAM,YAAY,EAAE,OAAM,GAAE,EAAC;AAAA,QAAE,IAAG,GAAE;AAAA,UAAC,OAAK,KAAE,CAAC,KAAG;AAAA,UAAE;AAAA,YAAC,IAAI,KAAE,GAAE,GAAE,IAAI;AAAA,YAAG,IAAG;AAAA,cAAE,OAAM,EAAC,OAAM,GAAE,EAAC,EAAC;AAAA,UAAC;AAAA,QAAC;AAAA;AAAA,IAAE,EAAM,SAAG,EAAE,SAAO,WAAS,EAAE,SAAO,QAAO;AAAA,MAAC,IAAG,CAAC,GAAG,SAAS,EAAE,KAAK;AAAA,QAAE;AAAA,MAAS,IAAI,IAAE,EAAE,UAAQ,WAAS,cAAa,IAAE,EAAE,WAAS,EAAE;AAAA,MAAM,IAAG,CAAC;AAAA,QAAE;AAAA,MAAS,IAAI,KAAE,GAAE,GAAE,CAAC,EAAE,KAAK,CAAC;AAAA,MAAE,IAAG,OAAI;AAAA,QAAK;AAAA,MAAS,IAAG,OAAI,SAAQ;AAAA,QAAC,KAAI,GAAE,KAAG,EAAE,GAAE,GAAG;AAAA,QAAE,IAAG,CAAC,EAAE,CAAC,KAAG,CAAC,EAAE,CAAC;AAAA,UAAE;AAAA,MAAQ,EAAK;AAAA,QAAC,IAAG,OAAI,YAAU,CAAC,GAAG,CAAC;AAAA,UAAE;AAAA,QAAS,IAAG,OAAI,gBAAc,CAAC,EAAE,EAAE,MAAM,GAAE,EAAE,CAAC;AAAA,UAAE;AAAA;AAAA,MAAS,OAAM,EAAC,OAAM,GAAE,CAAC,GAAE,OAAM,OAAI,QAAO;AAAA,IAAC,EAAM,SAAG,EAAE,SAAO,eAAa,EAAE,SAAO,UAAQ,EAAE,MAAM,OAAK,OAAK,EAAE,MAAM,EAAE,MAAM,SAAO,OAAK,KAAI;AAAA,MAAC,IAAI,IAAE,EAAE,MAAM,MAAM,GAAE,EAAE;AAAA,MAAE,IAAG,MAAI;AAAA,QAAI,OAAM,EAAC,OAAM,GAAE,EAAE,KAAK,EAAC;AAAA,MAAE,IAAG,cAAa,KAAG,EAAE,YAAU,EAAE,aAAW;AAAA,QAAE;AAAA,MAAS,IAAG,cAAa,KAAG,EAAE;AAAA,QAAS,OAAM,EAAC,OAAM,GAAE,EAAE,KAAK,EAAC;AAAA,MAAE,IAAG,GAAE,EAAE,OAAM,CAAC,CAAC,CAAC,MAAI;AAAA,QAAK,OAAM,EAAC,OAAM,GAAE,EAAE,KAAK,EAAC;AAAA,IAAC;AAAA,EAAC;AAAA;AAAE,SAAS,GAAE,CAAC,GAAE,GAAE,GAAE,GAAE,IAAE,IAAG;AAAA,EAAC,IAAI,KAAE,OAAG,IAAE,GAAG,GAAE,QAAG,KAAG,OAAK,EAAE,EAAC,IAAE,GAAE,WAAW,SAAS,IAAE,EAAE,GAAE,IAAE,CAAC,CAAC,MAAI,GAAE,WAAW,MAAM,KAAG,EAAE,WAAW,MAAM,OAAK,KAAE,OAAI,EAAE,GAAG,IAAE,CAAC,CAAC,EAAE;AAAA,EAAE,SAAS,CAAC,CAAC,IAAE;AAAA,IAAC,OAAO,IAAE,EAAE,IAAE,GAAG,EAAE,IAAI,QAAG,IAAE,EAAC,EAAE,KAAK,GAAG,IAAE;AAAA;AAAA,EAAE,OAAO,KAAE,CAAC,GAAE,GAAE,EAAE,GAAG,GAAE,CAAC,CAAC,CAAC,GAAE,GAAE,0CAAyC,CAAC,GAAE,GAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,GAAE,GAAE,EAAE,CAAC,CAAC,CAAC;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE,GAAE,GAAE,GAAE,IAAE,IAAG;AAAA,EAAC,IAAI,KAAE,OAAG,IAAE,EAAE,GAAE,GAAG,EAAE,IAAI,OAAG,GAAG,GAAE,QAAG,KAAG,OAAK,EAAE,EAAC,IAAE,GAAE,WAAW,SAAS,IAAE,EAAE,GAAE,IAAE,CAAC,CAAC,MAAI,GAAE,WAAW,MAAM,KAAG,EAAE,WAAW,MAAM,OAAK,KAAE,OAAI,EAAE,GAAG,IAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,OAAG,eAAe,IAAI,EAAE,KAAK,GAAG;AAAA,EAAE,OAAO,KAAE,CAAC,GAAE,GAAE,IAAE,EAAE,GAAE,GAAG,EAAE,IAAI,OAAG,eAAe,GAAG,GAAE,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,GAAE,GAAE,0CAAyC,CAAC,GAAE,GAAE,IAAE,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,GAAE,GAAE,IAAE,CAAC,CAAC;AAAA;AAA6D,SAAS,EAAE,CAAC,GAAE,GAAE,MAAK,GAAE;AAAA,EAAC,KAAI,GAAE,MAAG,EAAE,GAAE,GAAG,EAAE,IAAI,OAAG,EAAE,KAAK,CAAC;AAAA,EAAE,IAAG,CAAC,KAAG,CAAC;AAAA,IAAE,MAAM,IAAI,MAAM,qFAAqF,KAAG,uBAAuB,MAAG,UAAU;AAAA,EAAE,IAAG,EAAE,SAAO;AAAA,IAAE,MAAM,IAAI,MAAM,2EAA2E,KAAG,uBAAuB,MAAG,UAAU;AAAA,EAAE,OAAO,GAAE,GAAE,EAAC;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE,GAAE,MAAK,GAAE;AAAA,EAAC,IAAG,CAAC;AAAA,IAAE,MAAM,IAAI,MAAM,yEAAyE;AAAA,EAAE,IAAG,EAAE,SAAO;AAAA,IAAE,MAAM,IAAI,MAAM,+EAA+E,EAAE,SAAO,IAAI;AAAA,EAAE,IAAI,IAAE,EAAE,MAAM,QAAQ,MAAK,CAAC,WAAW,CAAC;AAAA,EAAE,IAAG,CAAC;AAAA,IAAE,MAAM,IAAI,MAAM,2GAA2G;AAAA,EAAE,OAAM,QAAQ,OAAO;AAAA;AAAK,SAAS,EAAE,CAAC,GAAE,GAAE,MAAK,GAAE;AAAA,EAAC,IAAG,CAAC,EAAE,WAAW,IAAI;AAAA,IAAE,MAAM,IAAI,MAAM,mFAAmF;AAAA,EAAE,IAAI,IAAE;AAAA,EAAG,EAAE,SAAS,SAAS,MAAI,IAAE,MAAG,IAAE,EAAE,MAAM,GAAE,EAAE,IAAG,EAAE,SAAO,cAAY,IAAE;AAAA,EAAI,IAAI,KAAE,EAAE,kBAAkB,GAAE,CAAC;AAAA,EAAE,IAAG,CAAC,IAAE;AAAA,IAAC,IAAG,EAAE,SAAO;AAAA,MAAE,OAAO,EAAE,KAAK,IAAI;AAAA,IAAE,MAAM,IAAI,MAAM,uDAAuD,4GAA4G;AAAA,EAAC;AAAA,EAAC,IAAG,EAAE,WAAS;AAAA,IAAE,OAAO;AAAA,EAAE,IAAI,IAAE,EAAE,KAAK,IAAI;AAAA,EAAE,IAAG,MAAI;AAAA,IAAU,OAAO;AAAA,EAAE,IAAG,OAAI;AAAA,IAAU,OAAO;AAAA,EAAE,IAAG,GAAE,WAAW,MAAM,KAAG,GAAE,WAAW,QAAQ,KAAG,GAAE,WAAW,UAAU,GAAE;AAAA,IAAC,IAAI,IAAE,GAAE,EAAC;AAAA,IAAE,OAAO,GAAG,GAAE,CAAC,GAAE,GAAE,CAAC;AAAA,EAAC;AAAA,EAAC,OAAO;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE,GAAE,MAAK,GAAE;AAAA,EAAC,IAAE,GAAG,CAAC;AAAA,EAAE,IAAI,IAAE,EAAE,kBAAkB,CAAC;AAAA,EAAE,IAAG,CAAC,KAAG,EAAE,SAAO;AAAA,IAAE,OAAO,EAAE,KAAK,IAAI;AAAA,EAAE,IAAG,CAAC;AAAA,IAAE,MAAM,IAAI,MAAM,uDAAuD,mGAAmG;AAAA,EAAE,OAAO;AAAA;AAAiE,SAAS,EAAE,CAAC,GAAE,GAAE;AAAA,EAAC,IAAI,IAAE;AAAA,EAAE,OAAO,GAAE,GAAE,OAAG;AAAA,IAAC,IAAG,EAAE,SAAO,iBAAe,EAAE,SAAO,GAAG,KAAK,EAAE,KAAK,GAAE;AAAA,MAAC,KAAG,GAAE,EAAE,QAAM,GAAG,EAAE,OAAM,GAAE,CAAC;AAAA,MAAE;AAAA,IAAM;AAAA,IAAC,EAAE,SAAO,cAAY,EAAE,SAAO,YAAU,EAAE,SAAO,mBAAiB,EAAE,SAAO,gBAAc,EAAE,SAAO,gBAAc,GAAG,KAAK,EAAE,MAAM,MAAI,KAAG,GAAE,EAAE,SAAO,GAAG,EAAE,QAAO,GAAE,CAAC;AAAA,GAAG,GAAE;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE,GAAE,GAAE;AAAA,EAAC,IAAI,IAAE,GAAE,CAAC;AAAA,EAAE,OAAO,IAAG,GAAE,CAAC,KAAG,aAAY,SAAK;AAAA,IAAC,IAAG,EAAE,SAAO,cAAY,EAAE,SAAS,IAAG;AAAA,MAAC,IAAI,IAAE,EAAE,GAAE,EAAE,KAAK,EAAE,KAAK,GAAE,GAAG,EAAE,IAAI,QAAG,GAAE,KAAK,CAAC,GAAE,IAAE,GAAG,EAAE,OAAO,GAAE,GAAE,GAAG,CAAC;AAAA,MAAE,OAAO,GAAE,GAAE,CAAC,CAAC;AAAA,IAAC;AAAA,GAAE,GAAE,GAAE,CAAC;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,IAAG,EAAE,OAAK,OAAK,EAAE,OAAK;AAAA,IAAI,OAAO;AAAA,EAAE,IAAI,IAAE,IAAG,IAAE,EAAE;AAAA,EAAG,SAAQ,IAAE,EAAE,IAAE,EAAE,SAAO,GAAE,KAAI;AAAA,IAAC,IAAI,IAAE,EAAE,IAAG,KAAE,EAAE,IAAE;AAAA,IAAG,MAAI,SAAO,OAAI,KAAG,OAAI,SAAO,KAAG,IAAE,OAAK,KAAG;AAAA,EAAC;AAAA,EAAC,OAAO;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE,GAAE;AAAA,EAAC,IAAG,GAAE,OAAG;AAAA,IAAC,IAAG,EAAE,SAAO,cAAY,EAAE,EAAE,UAAQ,SAAO,EAAE,UAAQ,WAAS,EAAE,UAAQ;AAAA,MAAW,IAAG,EAAE,MAAM,WAAS;AAAA,QAAE,EAAE,MAAM,KAAK,EAAC,MAAK,QAAO,OAAM,KAAK,IAAG,CAAC;AAAA,MAAM;AAAA,QAAC,IAAI,IAAE,EAAE,MAAM,EAAE,MAAM,SAAO;AAAA,QAAG,EAAE,SAAO,UAAQ,EAAE,UAAQ,cAAY,EAAE,QAAM;AAAA;AAAA,GAAI;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE,GAAE;AAAA,EAAC,IAAI,IAAE,EAAE,QAAO,IAAE,EAAE,QAAO,IAAE,IAAE,IAAE,IAAE;AAAA,EAAE,SAAQ,KAAE,EAAE,KAAE,GAAE,MAAI;AAAA,IAAC,IAAI,IAAE,EAAE,WAAW,EAAC,GAAE,IAAE,EAAE,WAAW,EAAC;AAAA,IAAE,IAAG,KAAG,MAAI,KAAG,MAAI,KAAG,MAAI,KAAG,IAAG;AAAA,MAAC,IAAI,KAAE,IAAE,KAAE,KAAE,GAAE,KAAE,IAAE,KAAE,KAAE;AAAA,MAAE,KAAI,IAAE,EAAE,WAAW,EAAC,EAAE,KAAG,MAAI,KAAG;AAAA,QAAI,IAAE,EAAE,WAAW,EAAE,EAAC;AAAA,MAAE,KAAI,IAAE,EAAE,WAAW,EAAC,EAAE,KAAG,MAAI,KAAG;AAAA,QAAI,IAAE,EAAE,WAAW,EAAE,EAAC;AAAA,MAAE,IAAI,IAAE,EAAE,MAAM,IAAE,EAAC,GAAE,KAAE,EAAE,MAAM,IAAE,EAAC,GAAE,KAAE,OAAO,CAAC,IAAE,OAAO,EAAC;AAAA,MAAE,IAAG;AAAA,QAAE,OAAO;AAAA,MAAE,IAAG,IAAE;AAAA,QAAE,OAAM;AAAA,MAAG,IAAG,IAAE;AAAA,QAAE,OAAO;AAAA,MAAE;AAAA,IAAQ;AAAA,IAAC,IAAG,MAAI;AAAA,MAAE,OAAO,IAAE;AAAA,EAAC;AAAA,EAAC,OAAO,EAAE,SAAO,EAAE;AAAA;AAA2B,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,IAAI,IAAE,IAAI,GAAE,QAAI,EAAC,MAAK,GAAE,SAAQ,GAAE,UAAS,OAAG,WAAU,CAAC,EAAC,EAAE;AAAA,EAAE,SAAQ,KAAK,EAAE,UAAU,KAAK,QAAQ,GAAE;AAAA,IAAC,IAAI,KAAE,EAAE,IAAI,CAAC;AAAA,IAAE,GAAE,WAAS,OAAG,GAAE,YAAU,CAAC;AAAA,EAAC;AAAA,EAAC,SAAQ,KAAK,EAAE,UAAU,KAAK,YAAY,GAAE;AAAA,IAAC,IAAI,KAAE,EAAE,UAAU,eAAe,CAAC;AAAA,IAAE,SAAQ,KAAK;AAAA,MAAE,SAAQ,KAAK,EAAE,QAAO;AAAA,QAAC,IAAI,KAAE,MAAI,QAAM,GAAG,KAAK,CAAC,GAAE,KAAE,MAAI,OAAK,IAAE,GAAG,KAAK,KAAI,KAAE,EAAE,IAAI,EAAC;AAAA,QAAE,IAAG,GAAE,UAAQ,GAAE,GAAE,aAAW,IAAE,GAAE,UAAU,KAAK,GAAG,EAAE,SAAS,GAAE,EAAE,kBAAiB;AAAA,UAAC,IAAI,KAAE,EAAE,IAAI,IAAI,IAAG;AAAA,UAAE,GAAE,UAAQ,IAAI,KAAI,GAAE,aAAW,IAAE,GAAE,UAAU,KAAK,GAAG,EAAE,SAAS;AAAA,QAAC;AAAA,MAAC;AAAA,EAAC;AAAA,EAAC,IAAG,EAAE,SAAO;AAAA,IAAE,OAAM,CAAC;AAAA,EAAE,IAAI,IAAE,MAAM,KAAK,EAAE,OAAO,CAAC;AAAA,EAAE,OAAO,EAAE,KAAK,CAAC,GAAE,OAAI,GAAG,EAAE,MAAK,GAAE,IAAI,CAAC,GAAE,GAAG,CAAC;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,IAAI,IAAE,CAAC,GAAE,IAAE,MAAK,IAAE,IAAI,KAAI,IAAE,IAAI,GAAE,MAAI,CAAC,CAAC;AAAA,EAAE,SAAQ,KAAK,GAAE;AAAA,IAAC,MAAI,SAAQ,GAAE,UAAS,OAAG;AAAA,IAAE,MAAI,IAAE,EAAC,SAAQ,GAAE,OAAM,CAAC,EAAC,GAAE,EAAE,IAAI,GAAE,CAAC,IAAG,MAAI,EAAE,YAAU,EAAE,KAAK,CAAC,GAAE,IAAE,EAAC,SAAQ,GAAE,OAAM,CAAC,EAAC,GAAE,EAAE,IAAI,GAAE,CAAC,IAAG,KAAE,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,IAAE,EAAE,MAAM,KAAK,CAAC;AAAA,EAAC;AAAA,EAAC,KAAG,EAAE,EAAE,SAAO,OAAK,KAAG,EAAE,KAAK,CAAC;AAAA,EAAE,UAAQ,GAAE,MAAK,GAAE;AAAA,IAAC,IAAI,KAAE,EAAE,IAAI,CAAC;AAAA,IAAE,MAAG,GAAE,MAAM,KAAK,GAAG,CAAC;AAAA,EAAC;AAAA,EAAC,IAAI,KAAE,CAAC;AAAA,EAAE,SAAQ,KAAK;AAAA,IAAE,SAAQ,KAAK,EAAE;AAAA,MAAM,GAAE,KAAK,CAAC,EAAE,MAAK,EAAC,WAAU,EAAE,UAAS,CAAC,CAAC;AAAA,EAAE,OAAO;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,IAAI,IAAE,CAAC;AAAA,EAAE,UAAQ,GAAE,MAAK,EAAE,SAAS,QAAQ,GAAE;AAAA,IAAC,IAAI,IAAE,QAAQ,GAAE,OAAM,IAAE,UAAS,OAAG,CAAC,GAAE;AAAA,MAAC,IAAI,KAAE;AAAA,MAAE,OAAI,MAAG,KAAE,IAAI,OAAI,KAAG,OAAI,MAAG,IAAI;AAAA,MAAK,IAAI,KAAE,EAAE,aAAa,EAAC;AAAA,MAAE,IAAG,CAAC;AAAA,QAAE,OAAM,CAAC;AAAA,MAAE,IAAI,IAAE,GAAE,oBAAmB,CAAC,CAAC;AAAA,MAAE,IAAG,GAAG,GAAE,IAAE,EAAE,QAAQ,MAAI;AAAA,QAAK,OAAM,CAAC;AAAA,MAAE,IAAI,KAAE,CAAC;AAAA,MAAE,OAAO,GAAG,EAAE,OAAM,CAAC,MAAG,MAAK,QAAK;AAAA,QAAC,IAAG,GAAE,SAAO,UAAQ,GAAE,SAAO,aAAW,GAAE,MAAM,SAAO;AAAA,UAAE;AAAA,QAAO,EAAE,KAAK,CAAC,IAAE,MAAI;AAAA,UAAC,IAAI,KAAE,GAAE,SAAO,WAAU,KAAE,EAAE,SAAO;AAAA,UAAU,OAAO,MAAG,CAAC,KAAE,KAAG,CAAC,MAAG,KAAE,IAAE;AAAA,SAAE;AAAA,QAAE,IAAI,KAAE,EAAE,QAAQ,QAAG,GAAE,SAAO,SAAO,GAAE,aAAW,MAAI,CAAC,IAAE,CAAC,GAAE,QAAQ,IAAE,GAAE,SAAO,YAAU,CAAC,GAAG,GAAE,QAAQ,GAAE,QAAQ,IAAE,CAAC,CAAC,GAAE,KAAE;AAAA,QAAG,SAAQ,KAAE,GAAE,SAAO,EAAE,MAAG,GAAE;AAAA,UAAI,KAAE,OAAI,KAAG,GAAE,MAAG,GAAG,GAAE,SAAQ;AAAA,QAAM,GAAE,KAAK,EAAC;AAAA,OAAE,GAAE;AAAA;AAAA,IAAG,IAAI,IAAE;AAAA,IAAE,IAAG,EAAE,SAAO;AAAA,MAAY;AAAA,IAAS,IAAI,KAAE,MAAI,KAAI,IAAE,EAAE,SAAS,eAAe,CAAC;AAAA,IAAE,QAAO,EAAE;AAAA,WAAU,UAAS;AAAA,QAAC,EAAE,KAAK,EAAC,MAAK,GAAE,QAAO,GAAE,aAAY,OAAG,SAAQ,IAAE,WAAU,EAAC,CAAC;AAAA,QAAE;AAAA,MAAK;AAAA,WAAK,cAAa;AAAA,QAAC,EAAE,KAAK,EAAC,MAAK,GAAE,QAAO,GAAE,aAAY,MAAG,SAAQ,IAAE,WAAU,EAAC,CAAC;AAAA,QAAE;AAAA,MAAK;AAAA,WAAK,YAAW;AAAA,QAAC,EAAE,KAAK,EAAC,MAAK,GAAE,QAAO,GAAE,aAAY,MAAG,SAAQ,IAAE,WAAU,EAAC,CAAC;AAAA,QAAE;AAAA,MAAK;AAAA;AAAA,EAAE;AAAA,EAAC,OAAO;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE,GAAE;AAAA,EAAC,MAAI,UAAS,GAAE,aAAY,MAAG,IAAG,MAAM,KAAK,CAAC,GAAE,CAAC,GAAE,IAAE,IAAI,IAAI,EAAE,IAAI,OAAG,CAAC,GAAE,IAAI,CAAC,CAAC,GAAE,KAAE;AAAA,EAAG,SAAQ,KAAK,GAAE;AAAA,IAAC,IAAI,IAAE,EAAE,IAAI,CAAC,GAAG;AAAA,IAAU,KAAG,EAAE,IAAI,GAAE,EAAE,IAAI,CAAC,KAAG,IAAG;AAAA,EAAC;AAAA,EAAC,OAAO,EAAE,IAAI,OAAG,CAAC,GAAE,EAAE,IAAI,CAAC,KAAG,IAAI,CAAC;AAAA;AAAk7E,SAAS,GAAE,CAAC,GAAE;AAAA,EAAC,IAAI,IAAE;AAAA,EAAE,SAAQ,KAAK,GAAE;AAAA,IAAC,IAAG,EAAE,OAAK,KAAI;AAAA,MAAC,IAAG,CAAC,EAAE,WAAW,QAAQ,KAAG,CAAC,EAAE,WAAW,WAAW,KAAG,CAAC,EAAE,WAAW,YAAY;AAAA,QAAE,OAAO;AAAA,MAAE,KAAG;AAAA,MAAE;AAAA,IAAQ;AAAA,IAAC,IAAG,EAAE,SAAS,IAAI;AAAA,MAAE,OAAO;AAAA,IAAE,KAAG;AAAA,EAAC;AAAA,EAAC,OAAO;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,IAAI,IAAE,IAAI;AAAA,EAAG,SAAS,CAAC,CAAC,IAAE,MAAG,WAAU,OAAG,CAAC,GAAE;AAAA,IAAC,KAAE,MAAG,IAAG,EAAC,GAAE,EAAE,OAAO,IAAE,OAAG;AAAA,MAAC,EAAE,QAAM,GAAE,IAAI,QAAG,GAAE,IAAE,EAAE,KAAK,CAAC;AAAA,OAAG,EAAC,WAAU,GAAC,CAAC;AAAA;AAAA,EAAE,EAAE,KAAI,CAAC,YAAY,GAAE,EAAC,WAAU,EAAC,CAAC,GAAE,EAAE,MAAK,CAAC,UAAU,GAAE,EAAC,WAAU,EAAC,CAAC;AAAA,EAAE,SAAS,CAAC,CAAC,IAAE,IAAE;AAAA,IAAC,OAAO,GAAE,IAAI,QAAG;AAAA,MAAC,KAAE,GAAE,KAAK;AAAA,MAAE,IAAI,IAAE,EAAE,IAAE,GAAG;AAAA,MAAE,OAAO,EAAE,OAAK,QAAM,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG,IAAE,OAAI,eAAa,EAAE,GAAG,OAAK,MAAI,OAAO,OAAI,EAAE,OAAK,QAAM,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG,MAAI,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG,MAAI,OAAO;AAAA,KAAI;AAAA;AAAA,EAAE,IAAI,IAAE,CAAC,UAAS,aAAY,YAAY;AAAA,EAAE,SAAS,EAAC,CAAC,IAAE;AAAA,IAAC,SAAQ,MAAK,GAAE;AAAA,MAAC,IAAG,OAAI,GAAE;AAAA,QAAK;AAAA,MAAS,IAAI,KAAE,EAAE,GAAE,QAAO,GAAG;AAAA,MAAE,OAAO,GAAE,SAAO,IAAE,QAAM,KAAE,EAAE,GAAE,MAAK,EAAC,GAAE,GAAE,GAAE,MAAK,GAAE,KAAK,IAAI,CAAC;AAAA,IAAE;AAAA,IAAC,OAAO;AAAA;AAAA,EAAK,SAAS,CAAC,CAAC,IAAE;AAAA,IAAC,OAAO,GAAE,SAAS,IAAI,IAAE,OAAK,SAAS,EAAE,IAAE,GAAG,EAAE,IAAI,SAAI,KAAE,GAAE,WAAW,KAAI,GAAG,GAAE,GAAE,EAAE,KAAK,IAAI;AAAA;AAAA,EAAK,EAAE,SAAS,OAAM,GAAE,CAAC,IAAE,OAAI;AAAA,IAAC,IAAG,GAAE,QAAQ,SAAO,eAAa,GAAE,QAAQ,YAAU,GAAE;AAAA,MAAS,OAAO;AAAA,IAAK,IAAI,KAAE;AAAA,IAAG,IAAG,GAAE,CAAC,EAAC,GAAE,CAAC,KAAG,MAAK,SAAK;AAAA,MAAC,IAAG,EAAE,SAAO,UAAQ,EAAE,SAAO;AAAA,QAAU,OAAO;AAAA,MAAE,IAAG,EAAE,MAAM,SAAO;AAAA,QAAE,OAAO;AAAA,MAAE,IAAI,KAAE,CAAC,GAAE,IAAE,CAAC;AAAA,MAAE,SAAQ,MAAK;AAAA,QAAE,GAAE,SAAO,YAAU,GAAE,KAAK,EAAC,IAAE,GAAE,SAAO,UAAQ,EAAE,KAAK,EAAC;AAAA,MAAE,IAAG,GAAE,SAAO;AAAA,QAAE,OAAO;AAAA,MAAE,IAAG,EAAE,SAAO;AAAA,QAAE,OAAO;AAAA,MAAE,IAAI,KAAE,CAAC;AAAA,MAAE,SAAQ,MAAK,GAAE;AAAA,QAAC,IAAI,KAAE,EAAE,GAAE,QAAQ;AAAA,QAAE,IAAG,CAAC;AAAA,UAAE,OAAO,KAAE,OAAG;AAAA,QAAE,GAAE,KAAK,GAAE,IAAE,CAAC,CAAC,CAAC;AAAA,MAAC;AAAA,MAAC,SAAQ,MAAK,IAAE;AAAA,QAAC,IAAI,KAAE,GAAE,EAAC;AAAA,QAAE,IAAG,CAAC;AAAA,UAAE,OAAO,KAAE,OAAG;AAAA,QAAE,GAAE,KAAK,EAAC;AAAA,MAAC;AAAA,MAAC,OAAO,OAAO,OAAO,IAAE,GAAE,KAAI,EAAC,CAAC,GAAE,KAAE,MAAG;AAAA,KAAE,GAAE,GAAE,SAAO,UAAQ,GAAE,aAAW,OAAK,GAAE,MAAM,WAAS,KAAG,OAAO,OAAO,IAAE,GAAE,MAAM,EAAE,GAAE,CAAC;AAAA,MAAE,OAAO;AAAA,GAAK,GAAE,EAAE,QAAQ,OAAM,MAAI,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,OAAO,QAAG,EAAE,cAAc,OAAM,EAAC,CAAC,CAAC,GAAE,EAAE,SAAS,SAAQ,GAAE,CAAC,IAAE,OAAI;AAAA,IAAC,IAAG,GAAE,QAAQ,SAAO,eAAa,GAAE,QAAQ;AAAA,MAAS,OAAO;AAAA,IAAK,IAAI,KAAE,GAAE,WAAS,WAAW,EAAE,SAAO,GAAG,EAAE,cAAY,aAAa,GAAE,SAAS,WAAS,WAAW,EAAE,SAAO,GAAG,EAAE,cAAY,YAAW,IAAE;AAAA,IAAG,IAAG,GAAE,CAAC,EAAC,GAAE,CAAC,MAAG,MAAK,SAAK;AAAA,MAAC,IAAG,GAAE,SAAO;AAAA,QAAO,OAAO;AAAA,MAAE,SAAQ,MAAK,GAAE,MAAM,GAAE,EAAE;AAAA,QAAE,IAAG,GAAE,SAAO;AAAA,UAAO,OAAO,IAAE,OAAG;AAAA,MAAE,IAAI,IAAE,GAAE,SAAS,WAAW,KAAI,EAAC;AAAA,MAAE,EAAE,GAAE,GAAG,EAAE,SAAO,MAAI,IAAE,OAAO,OAAM,GAAE,WAAS,QAAQ,QAAO,IAAE;AAAA,KAAG,GAAE,CAAC;AAAA,MAAE,OAAO;AAAA,GAAK,GAAE,EAAE,QAAQ,SAAQ,MAAI,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,OAAO,QAAG,EAAE,cAAc,SAAQ,EAAC,CAAC,CAAC,GAAE,EAAE,SAAS,QAAO,GAAE,CAAC,IAAE,OAAI;AAAA,IAAC,IAAG,GAAE,QAAQ,SAAO,eAAa,GAAE,QAAQ;AAAA,MAAS,OAAO;AAAA,IAAK,IAAI,KAAE,GAAE,WAAS,WAAW,EAAE,SAAO,GAAG,EAAE,cAAY,YAAY,GAAE,SAAS,WAAS,WAAW,EAAE,SAAO,GAAG,EAAE,cAAY,WAAU,IAAE;AAAA,IAAG,IAAG,GAAE,CAAC,EAAC,GAAE,CAAC,MAAG,MAAK,SAAK;AAAA,MAAC,IAAG,GAAE,SAAO;AAAA,QAAO,OAAO;AAAA,MAAE,SAAQ,MAAK,GAAE,MAAM,GAAE,EAAE;AAAA,QAAE,IAAG,GAAE,SAAO;AAAA,UAAO,OAAO,IAAE,OAAG;AAAA,MAAE,IAAI,IAAE,GAAE,SAAS,WAAW,KAAI,EAAC;AAAA,MAAE,EAAE,GAAE,GAAG,EAAE,SAAO,MAAI,IAAE,OAAO,OAAM,GAAE,WAAS,QAAQ,UAAS,IAAE;AAAA,KAAG,GAAE,CAAC;AAAA,MAAE,OAAO;AAAA,GAAK,GAAE,EAAE,QAAQ,QAAO,MAAI,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,OAAO,QAAG,EAAE,cAAc,QAAO,EAAC,CAAC,CAAC,GAAE,EAAE,gBAAe,CAAC,iBAAiB,CAAC,GAAE,EAAE,cAAa,CAAC,eAAe,CAAC,GAAE,EAAE,UAAS,CAAC,eAAc,aAAY,+BAA8B,2BAA2B,CAAC,GAAE,EAAE,aAAY,CAAC,kBAAiB,cAAc,CAAC,GAAE,EAAE,QAAO,CAAC,yBAAyB,CAAC,GAAE,EAAE,eAAc,CAAC,gBAAgB,CAAC,GAAE,EAAE,YAAW,CAAC,aAAa,CAAC,GAAE,EAAE,mBAAkB,CAAC,oBAAoB,CAAC;AAAA,EAAE;AAAA,IAAC,IAAI,KAAE,QAAQ,GAAE;AAAA,MAAC,OAAO,GAAE,CAAC,GAAE,aAAY,gBAAe,CAAC,GAAE,UAAS,KAAK,GAAE,GAAE,iBAAgB,IAAI,GAAE,GAAE,YAAW,OAAO,CAAC,CAAC,CAAC,CAAC;AAAA;AAAA,IAAG,IAAI,IAAE;AAAA,IAAE,EAAE,OAAO,UAAS,QAAG;AAAA,MAAC,GAAE,QAAM,CAAC,GAAE,aAAY,CAAC,GAAE,GAAE,GAAE,WAAU,mBAAmB,GAAE,GAAG,GAAE,KAAK,CAAC,CAAC;AAAA,OAAG,EAAC,WAAU,EAAC,CAAC,GAAE,EAAE,OAAO,SAAQ,QAAG;AAAA,MAAC,GAAE,QAAM,CAAC,GAAE,YAAW,CAAC,GAAE,GAAE,GAAE,WAAU,mBAAmB,GAAE,GAAG,GAAE,KAAK,CAAC,CAAC;AAAA,OAAG,EAAC,WAAU,EAAC,CAAC;AAAA,EAAC;AAAA,EAAC,EAAE,SAAQ,CAAC,eAAe,CAAC,GAAE,EAAE,QAAO,CAAC,cAAc,CAAC,GAAE,EAAE,QAAO,CAAC,cAAc,CAAC,GAAE,EAAE,OAAM,CAAC,kBAAkB,CAAC,GAAE,EAAE,QAAO,CAAC,mBAAmB,CAAC,GAAE,EAAE,iBAAgB,CAAC,iBAAiB,CAAC,GAAE,EAAE,gBAAe,CAAC,gBAAgB,CAAC,GAAE,EAAE,gBAAe,CAAC,gBAAgB,CAAC,GAAE,EAAE,WAAU,CAAC,WAAW,CAAC,GAAE,EAAE,UAAS,CAAC,UAAU,CAAC,GAAE,EAAE,QAAO,CAAC,oCAAoC,CAAC,GAAE,EAAE,WAAU,CAAC,WAAW,CAAC,GAAE,EAAE,WAAU,CAAC,WAAW,CAAC,GAAE,EAAE,iBAAgB,CAAC,iBAAiB,CAAC,GAAE,EAAE,qBAAoB,CAAC,qBAAqB,CAAC,GAAE,EAAE,YAAW,CAAC,YAAY,CAAC,GAAE,EAAE,YAAW,CAAC,YAAY,CAAC,GAAE,EAAE,YAAW,CAAC,YAAY,CAAC,GAAE,EAAE,SAAQ,CAAC,SAAS,CAAC,GAAE,EAAE,WAAU,CAAC,WAAW,CAAC,GAAE,EAAE,cAAa,CAAC,cAAc,CAAC,GAAE,EAAE,gBAAe,CAAC,gBAAgB,CAAC,GAAE,EAAE,YAAW,CAAC,YAAY,CAAC,GAAE,EAAE,gBAAe,CAAC,gBAAgB,CAAC,GAAE,EAAE,aAAY,CAAC,aAAa,CAAC,GAAE,EAAE,SAAQ,CAAC,SAAS,CAAC,GAAE,EAAE,gBAAe,CAAC,gBAAgB,CAAC,GAAE,EAAE,OAAO,SAAQ,QAAG;AAAA,IAAC,GAAE,QAAM,CAAC,GAAE,WAAU,CAAC,GAAE,UAAS,kBAAiB,GAAE,KAAK,CAAC,CAAC,CAAC;AAAA,GAAE,GAAE,EAAE,SAAQ,CAAC,SAAS,CAAC,GAAE,EAAE,iBAAgB,CAAC,iBAAiB,CAAC,GAAE,EAAE,UAAS,CAAC,UAAU,CAAC,GAAE,EAAE,WAAU,CAAC,WAAW,CAAC,GAAE,EAAE,YAAW,CAAC,YAAY,CAAC,GAAE,EAAE,SAAQ,CAAC,0BAA0B,CAAC,GAAE,EAAE,SAAS,MAAK,GAAE,CAAC,IAAE,OAAI;AAAA,IAAC,IAAG,GAAE;AAAA,MAAS,OAAO;AAAA,IAAK,IAAI,KAAE;AAAA,IAAG,IAAG,GAAE,CAAC,EAAC,GAAE,CAAC,KAAG,MAAK,SAAK;AAAA,MAAC,IAAG,EAAE,SAAO;AAAA,QAAO,OAAO;AAAA,MAAE,SAAQ,MAAK,GAAE,MAAM,GAAE,EAAE;AAAA,QAAE,IAAG,GAAE,SAAO;AAAA,UAAO,OAAO,KAAE,OAAG;AAAA,MAAE,EAAE,WAAS,UAAU,EAAE,SAAS,WAAW,KAAI,GAAG,QAAO,KAAE;AAAA,KAAG,GAAE,CAAC;AAAA,MAAE,OAAO;AAAA,GAAK,GAAE,EAAE,QAAQ,MAAK,MAAI,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,OAAO,QAAG,EAAE,cAAc,MAAK,EAAC,CAAC,CAAC,GAAE,EAAE,SAAS,OAAM,GAAE,CAAC,IAAE,OAAI;AAAA,IAAC,IAAG,GAAE;AAAA,MAAS,OAAO;AAAA,IAAK,IAAI,KAAE;AAAA,IAAG,IAAG,GAAE,CAAC,EAAC,GAAE,CAAC,KAAG,MAAK,SAAK;AAAA,MAAC,IAAG,EAAE,SAAO;AAAA,QAAO,OAAO;AAAA,MAAE,SAAQ,MAAK,GAAE,MAAM,GAAE,EAAE;AAAA,QAAE,IAAG,GAAE,SAAO;AAAA,UAAO,OAAO,KAAE,OAAG;AAAA,MAAE,EAAE,WAAS,SAAS,EAAE,SAAS,WAAW,KAAI,GAAG,MAAK,KAAE;AAAA,KAAG,GAAE,CAAC;AAAA,MAAE,OAAO;AAAA,GAAK,GAAE,EAAE,QAAQ,OAAM,MAAI,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,OAAO,QAAG,EAAE,cAAc,OAAM,EAAC,CAAC,CAAC,GAAE,EAAE,WAAW,QAAO,CAAC,IAAE,OAAI;AAAA,IAAC,IAAG,CAAC,GAAE,SAAO,GAAE;AAAA,MAAS,OAAO;AAAA,IAAK,GAAE,MAAM,SAAO,cAAY,GAAE,QAAM,CAAC,GAAE,UAAU,GAAG,GAAE,MAAM,KAAK,MAAK,GAAE,KAAK,CAAC,IAAE,GAAE,QAAM,CAAC,GAAE,UAAU,GAAE,MAAM,iBAAgB,GAAE,KAAK,CAAC;AAAA,GAAE,GAAE,EAAE,QAAQ,QAAO,MAAI,CAAC,QAAO,WAAU,YAAW,YAAW,UAAS,WAAU,YAAW,YAAW,UAAU,CAAC,GAAE,EAAE,WAAW,QAAO,CAAC,IAAE,OAAI;AAAA,IAAC,IAAG,CAAC,GAAE,SAAO,GAAE;AAAA,MAAS,OAAO;AAAA,IAAK,GAAE,QAAM,CAAC,GAAE,UAAU,GAAG,GAAE,MAAM,KAAK,MAAK,GAAE,KAAK,CAAC;AAAA,GAAE,GAAE,EAAE,WAAW,OAAM,CAAC,IAAE,OAAI;AAAA,IAAC,IAAG,CAAC,GAAE,SAAO,GAAE,YAAU,GAAE,MAAM,SAAO,WAAS,CAAC,EAAE,GAAE,MAAM,KAAK;AAAA,MAAE,OAAO;AAAA,IAAK,GAAE,QAAM,CAAC,GAAE,eAAe,GAAE,MAAM,UAAS,GAAE,KAAK,CAAC;AAAA,GAAE,GAAE,EAAE,WAAW,YAAW,CAAC,IAAE,OAAI;AAAA,IAAC,IAAG,CAAC,GAAE,SAAO,GAAE,YAAU,GAAE,MAAM,SAAO,WAAS,CAAC,EAAE,GAAE,MAAM,KAAK;AAAA,MAAE,OAAO;AAAA,IAAK,GAAE,QAAM,CAAC,GAAE,oBAAoB,GAAE,MAAM,UAAS,GAAE,KAAK,CAAC;AAAA,GAAE,GAAE,EAAE,WAAW,eAAc,CAAC,IAAE,OAAI;AAAA,IAAC,IAAG,CAAC,GAAE,SAAO,GAAE,YAAU,GAAE,MAAM,SAAO,WAAS,CAAC,EAAE,GAAE,MAAM,KAAK;AAAA,MAAE,OAAO;AAAA,IAAK,GAAE,QAAM,CAAC,GAAE,iBAAiB,GAAE,MAAM,UAAS,GAAE,KAAK,CAAC;AAAA,GAAE,GAAE,EAAE,WAAW,oBAAmB,CAAC,IAAE,OAAI;AAAA,IAAC,IAAG,CAAC,GAAE,SAAO,GAAE,YAAU,GAAE,MAAM,SAAO,WAAS,CAAC,EAAE,GAAE,MAAM,KAAK;AAAA,MAAE,OAAO;AAAA,IAAK,GAAE,QAAM,CAAC,GAAE,sBAAsB,GAAE,MAAM,UAAS,GAAE,KAAK,CAAC;AAAA,GAAE,GAAE,EAAE,WAAW,YAAW,CAAC,IAAE,OAAI;AAAA,IAAC,IAAG,CAAC,GAAE,SAAO,GAAE;AAAA,MAAS,OAAO;AAAA,IAAK,IAAI,KAAE,GAAE,MAAM;AAAA,IAAM,IAAG,OAAI;AAAA,MAAK,OAAO;AAAA,IAAK,IAAG,eAAe,KAAK,EAAC,GAAE;AAAA,MAAC,IAAI,IAAE,GAAE,QAAQ,qBAAoB,MAAM;AAAA,MAAE,GAAE,QAAM,CAAC,GAAE,aAAY,GAAE,GAAE,KAAK,CAAC;AAAA,MAAE;AAAA,IAAM;AAAA,IAAC,GAAE,SAAS,GAAG,MAAI,KAAE,GAAG,mBAAiB,GAAE,OAAK,OAAK,GAAE,GAAE,SAAO,OAAK,SAAO,KAAE,IAAI,QAAM,GAAE,QAAM,CAAC,GAAE,aAAY,IAAE,GAAE,KAAK,CAAC;AAAA,KAAG,EAAC,WAAU,EAAC,CAAC,GAAE,EAAE,eAAc,CAAC,gDAAgD,CAAC,GAAE,EAAE,iBAAgB,CAAC,yCAAyC,CAAC,GAAE,EAAE,iBAAgB,CAAC,iCAAiC,CAAC,GAAE,EAAE,iBAAgB,CAAC,iCAAiC,CAAC;AAAA,EAAE;AAAA,IAAC,IAAI,KAAE,QAAQ,CAAC,IAAE,IAAE,GAAE,IAAE;AAAA,MAAC,IAAG,OAAI;AAAA,QAAE,OAAO;AAAA,MAAE,IAAI,KAAE,GAAE,IAAI,EAAC;AAAA,MAAE,IAAG,OAAI;AAAA,QAAK,OAAO,MAAI,QAAM,KAAG;AAAA,MAAE,IAAI,IAAE,GAAE,IAAI,EAAC;AAAA,MAAE,OAAO,MAAI,OAAK,MAAI,QAAM,IAAE,KAAG,GAAG,IAAE,GAAE,CAAC;AAAA;AAAA,IAAG,IAAI,KAAE;AAAA,IAAE;AAAA,MAAC,IAAI,KAAE,EAAE,UAAU,cAAc,GAAE,KAAE,IAAI,GAAE,OAAG;AAAA,QAAC,QAAO,EAAE;AAAA,eAAU;AAAA,YAAS,OAAO,EAAE,aAAa,EAAE,MAAK,CAAC,cAAc,CAAC,KAAG;AAAA,eAAS,cAAa;AAAA,YAAC,IAAG,CAAC,EAAE,SAAO,EAAE;AAAA,cAAS,OAAO;AAAA,YAAK,IAAI,KAAE;AAAA,YAAK,OAAO,EAAE,MAAM,SAAO,cAAY,KAAE,EAAE,MAAM,QAAM,EAAE,MAAM,SAAO,YAAU,KAAE,EAAE,aAAa,EAAE,MAAM,OAAM,CAAC,cAAc,CAAC,IAAG,CAAC,MAAG,GAAE,SAAS,MAAM,IAAE,OAAK;AAAA,UAAC;AAAA,eAAK;AAAA,eAAgB;AAAA,YAAW,OAAO;AAAA;AAAA,OAAM;AAAA,MAAE,EAAE,MAAM,MAAI;AAAA,QAAC,EAAE,WAAW,OAAM,CAAC,GAAE,OAAI;AAAA,UAAC,IAAG,GAAE;AAAA,YAAS,OAAO;AAAA,UAAK,IAAI,KAAE,GAAE,IAAI,EAAC;AAAA,UAAE,IAAG,OAAI;AAAA,YAAK,OAAO;AAAA,UAAK,EAAE,QAAM,CAAC,GAAE,UAAS,YAAY,OAAK,EAAE,KAAK,CAAC;AAAA,WAAG,EAAC,WAAU,EAAC,CAAC;AAAA,SAAG,CAAC,GAAE,OAAI,GAAE,GAAE,IAAE,QAAO,EAAC,CAAC,GAAE,EAAE,QAAQ,OAAM,MAAI,MAAM,KAAK,GAAE,KAAK,CAAC,EAAE,OAAO,OAAG,MAAI,IAAI,CAAC,GAAE,EAAE,MAAM,MAAI;AAAA,QAAC,UAAQ,GAAE,OAAK,EAAE,UAAU,cAAc;AAAA,UAAE,MAAI,QAAM,EAAE,OAAO,GAAE,QAAG;AAAA,YAAC,GAAE,QAAM,CAAC,GAAE,UAAS,aAAa,OAAK,GAAE,KAAK,CAAC;AAAA,aAAG,EAAC,WAAU,EAAC,CAAC;AAAA,QAAE,EAAE,WAAW,OAAM,CAAC,GAAE,OAAI;AAAA,UAAC,IAAG,GAAE;AAAA,YAAS,OAAO;AAAA,UAAK,IAAI,KAAE,GAAE,IAAI,EAAC;AAAA,UAAE,IAAG,OAAI;AAAA,YAAK,OAAO;AAAA,UAAK,EAAE,QAAM,CAAC,GAAE,UAAS,aAAa,OAAK,EAAE,KAAK,CAAC;AAAA,WAAG,EAAC,WAAU,EAAC,CAAC;AAAA,SAAG,CAAC,GAAE,OAAI,GAAE,GAAE,IAAE,OAAM,EAAC,CAAC,GAAE,EAAE,QAAQ,OAAM,MAAI,MAAM,KAAK,GAAE,KAAK,CAAC,EAAE,OAAO,OAAG,MAAI,IAAI,CAAC;AAAA,IAAC;AAAA,IAAC;AAAA,MAAC,IAAI,KAAE,EAAE,UAAU,aAAa,GAAE,KAAE,IAAI,GAAE,OAAG;AAAA,QAAC,QAAO,EAAE;AAAA,eAAU,cAAa;AAAA,YAAC,IAAG,EAAE,UAAQ;AAAA,cAAK,OAAO;AAAA,YAAK,IAAI,KAAE;AAAA,YAAK,OAAO,EAAE,MAAM,SAAO,cAAY,KAAE,EAAE,MAAM,QAAM,EAAE,MAAM,SAAO,YAAU,KAAE,EAAE,aAAa,EAAE,MAAM,OAAM,CAAC,aAAa,CAAC,IAAG,CAAC,MAAG,GAAE,SAAS,MAAM,IAAE,OAAK;AAAA,UAAC;AAAA,eAAK;AAAA,eAAa;AAAA,eAAgB;AAAA,YAAW,OAAO;AAAA;AAAA,OAAM;AAAA,MAAE,EAAE,MAAM,MAAI;AAAA,QAAC,EAAE,WAAW,QAAO,CAAC,GAAE,OAAI;AAAA,UAAC,IAAI,KAAE,GAAE,IAAI,EAAC;AAAA,UAAE,IAAG,OAAI;AAAA,YAAK,OAAO;AAAA,UAAK,EAAE,QAAM,CAAC,GAAE,cAAa,GAAE,WAAS,GAAG,GAAE,SAAS,kBAAkB,QAAK,YAAY,OAAK,EAAE,KAAK,CAAC;AAAA,WAAG,EAAC,WAAU,EAAC,CAAC;AAAA,SAAG,CAAC,GAAE,OAAI,GAAE,GAAE,IAAE,QAAO,EAAC,CAAC,GAAE,EAAE,QAAQ,QAAO,MAAI,MAAM,KAAK,GAAE,KAAK,CAAC,EAAE,OAAO,OAAG,MAAI,IAAI,CAAC,GAAE,EAAE,MAAM,MAAI;AAAA,QAAC,EAAE,WAAW,KAAI,CAAC,GAAE,OAAI;AAAA,UAAC,IAAI,KAAE,GAAE,IAAI,EAAC;AAAA,UAAE,IAAG,OAAI;AAAA,YAAK,OAAO;AAAA,UAAK,EAAE,QAAM,CAAC,GAAE,cAAa,GAAE,WAAS,GAAG,GAAE,SAAS,mBAAmB,QAAK,aAAa,OAAK,EAAE,KAAK,CAAC;AAAA,WAAG,EAAC,WAAU,EAAC,CAAC,GAAE,EAAE,WAAW,QAAO,CAAC,GAAE,OAAI;AAAA,UAAC,IAAI,KAAE,GAAE,IAAI,EAAC;AAAA,UAAE,IAAG,OAAI;AAAA,YAAK,OAAO;AAAA,UAAK,EAAE,QAAM,CAAC,GAAE,cAAa,GAAE,WAAS,GAAG,GAAE,SAAS,mBAAmB,QAAK,aAAa,OAAK,EAAE,KAAK,CAAC;AAAA,WAAG,EAAC,WAAU,EAAC,CAAC;AAAA,SAAG,CAAC,GAAE,OAAI,GAAE,GAAE,IAAE,OAAM,EAAC,CAAC,GAAE,EAAE,QAAQ,QAAO,MAAI,MAAM,KAAK,GAAE,KAAK,CAAC,EAAE,OAAO,OAAG,MAAI,IAAI,CAAC,GAAE,EAAE,QAAQ,KAAI,MAAI,MAAM,KAAK,GAAE,KAAK,CAAC,EAAE,OAAO,OAAG,MAAI,IAAI,CAAC;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,OAAO,EAAE,YAAW,CAAC,gCAAgC,CAAC,GAAE,EAAE,aAAY,CAAC,iCAAiC,CAAC,GAAE,EAAE,OAAM,CAAC,gDAAgD,CAAC,GAAE,EAAE,OAAM,CAAC,gDAAgD,CAAC,GAAE,EAAE,QAAO,CAAC,qCAAqC,CAAC,GAAE,EAAE,YAAW,CAAC,iBAAiB,CAAC,GAAE,EAAE,SAAQ,CAAC,cAAc,CAAC,GAAE,EAAE,iBAAgB,CAAC,gCAAgC,CAAC,GAAE,EAAE,mBAAkB,CAAC,oCAAoC,CAAC,GAAE,EAAE,gBAAe,CAAC,wBAAwB,CAAC,GAAE,EAAE,kBAAiB,CAAC,0BAA0B,CAAC,GAAE,EAAE,gBAAe,CAAC,wBAAwB,CAAC,GAAE,EAAE,oBAAmB,CAAC,4BAA4B,CAAC,GAAE,EAAE,sBAAqB,CAAC,8BAA8B,CAAC,GAAE,EAAE,oBAAmB,CAAC,4BAA4B,CAAC,GAAE,EAAE,YAAW,CAAC,0BAA0B,CAAC,GAAE;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,IAAG,EAAE,SAAS,GAAG,GAAE;AAAA,IAAC,KAAI,MAAK,KAAG,EAAE,GAAE,GAAG,GAAE,IAAE,EAAE,KAAK,GAAG,EAAE,KAAK;AAAA,IAAE,IAAG,EAAE,OAAK,OAAK,EAAE,OAAK;AAAA,MAAI,OAAO;AAAA,IAAE,IAAG,EAAE,SAAO,GAAE;AAAA,MAAC,IAAI,IAAE,EAAE,EAAE,SAAO;AAAA,MAAG,IAAG,EAAE,EAAE,SAAO,OAAK,QAAM,MAAI,OAAK,MAAI,OAAK,MAAI,OAAK,MAAI;AAAA,QAAK,OAAM,GAAG,MAAM,EAAE,MAAM,GAAE,EAAE,MAAM;AAAA,IAAG;AAAA,IAAC,OAAM,GAAG,MAAM;AAAA,EAAI;AAAA,EAAC,OAAO;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE,GAAE;AAAA,EAAC,GAAE,GAAE,CAAC,KAAG,aAAY,QAAK;AAAA,IAAC,IAAG,EAAE,SAAO,aAAW,EAAE,SAAO;AAAA,MAAQ,EAAE,CAAC;AAAA,IAAO,SAAG,EAAE,SAAO,cAAY,EAAE,SAAO,gBAAc,EAAE,SAAO;AAAA,MAAa,OAAO,OAAO,OAAO,GAAE,GAAE,CAAC,GAAE,EAAE,MAAK,EAAE,QAAO,EAAE,KAAK,CAAC,CAAC,CAAC,GAAE;AAAA,GAAE;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,IAAI,IAAE,GAAG,CAAC,GAAE,IAAE,GAAG,CAAC,GAAE,IAAE,IAAI,GAAE,QAAG,GAAG,IAAE,CAAC,CAAC,GAAE,IAAE,IAAI,GAAE,QAAG,MAAM,KAAK,GAAG,IAAE,CAAC,CAAC,CAAC,GAAE,KAAE,IAAI,GAAE,QAAG;AAAA,IAAC,IAAI,KAAE,GAAG,IAAE,CAAC;AAAA,IAAE,IAAG;AAAA,MAAC,GAAG,GAAE,IAAI,GAAE,MAAK,SAAK,EAAC,GAAE,CAAC;AAAA,MAAE,MAAK;AAAA,MAAC,OAAM,CAAC;AAAA;AAAA,IAAE,OAAO;AAAA,GAAE,GAAE,IAAE,IAAI,GAAE,QAAG;AAAA,IAAC,SAAQ,MAAK,GAAG,EAAC;AAAA,MAAE,EAAE,iBAAiB,EAAC;AAAA,GAAE,GAAE,IAAE,EAAC,OAAM,GAAE,WAAU,GAAE,UAAS,GAAE,mBAAkB,IAAI,KAAI,WAAU,OAAG,eAAe,CAAC,IAAE;AAAA,IAAC,IAAI,KAAE,CAAC;AAAA,IAAE,SAAQ,MAAK,IAAE;AAAA,MAAC,IAAI,KAAE,SAAI,UAAS,MAAG,IAAG,CAAC,EAAC,GAAE,MAAK,EAAC,kBAAkB,GAAE;AAAA,QAAC,KAAE;AAAA,QAAG,CAAC;AAAA,MAAE,IAAE,GAAG,GAAE,GAAE,CAAC,GAAE,EAAE,WAAS,KAAG,KAAE,GAAE,KAAK,IAAI,IAAE,GAAE,KAAK,IAAG,CAAC,CAAC;AAAA,IAAC;AAAA,IAAC,OAAO;AAAA,KAAG,aAAa,CAAC,IAAE;AAAA,IAAC,OAAO,GAAG,MAAK,EAAC;AAAA,KAAG,YAAY,GAAE;AAAA,IAAC,OAAO,GAAG,IAAI;AAAA,KAAG,WAAW,GAAE;AAAA,IAAC,OAAO,GAAG,IAAI;AAAA,KAAG,cAAc,CAAC,IAAE;AAAA,IAAC,OAAO,EAAE,IAAI,EAAC;AAAA,KAAG,YAAY,CAAC,IAAE;AAAA,IAAC,OAAO,EAAE,IAAI,EAAC;AAAA,KAAG,eAAe,CAAC,IAAE;AAAA,IAAC,OAAO,GAAE,IAAI,EAAC;AAAA,KAAG,cAAc,CAAC,IAAE;AAAA,IAAC,OAAO,GAAG,GAAE,EAAC;AAAA,KAAG,YAAY,CAAC,IAAE;AAAA,IAAC,OAAO,GAAG,EAAC;AAAA,KAAG,eAAe,GAAE;AAAA,IAAC,IAAI,KAAE,MAAM,KAAK,EAAE,OAAO,CAAC;AAAA,IAAE,GAAE,KAAK,CAAC,GAAE,OAAI,KAAK,SAAS,QAAQ,GAAE,EAAC,CAAC;AAAA,IAAE,IAAI,KAAE,IAAI,KAAI,IAAE,KAAE;AAAA,IAAE,SAAQ,KAAK;AAAA,MAAE,MAAI,SAAO,OAAS,aAAG,KAAK,SAAS,QAAQ,IAAE,CAAC,MAAI,KAAG,MAAI,GAAE,IAAI,GAAE,EAAC,GAAE,KAAE;AAAA,IAAG,OAAO;AAAA,KAAG,iBAAiB,CAAC,IAAE,KAAE,MAAG;AAAA,IAAC,IAAI,KAAE,GAAE,YAAY,GAAG,GAAE,KAAE;AAAA,IAAK,OAAI,OAAK,KAAE,GAAE,MAAM,KAAE,CAAC,EAAE,KAAK,GAAE,KAAE,GAAE,MAAM,GAAE,EAAC,EAAE,KAAK;AAAA,IAAG,IAAI,IAAE,EAAE,QAAQ,MAAK,CAAC,EAAC,GAAE,KAAE,IAAE,CAAC,KAAQ;AAAA,IAAE,OAAO,MAAG,IAAE,GAAE,GAAE,EAAC,IAAE;AAAA,KAAG,kBAAkB,CAAC,IAAE;AAAA,IAAC,EAAE,IAAI,EAAC;AAAA,IAAE;AAAA,EAAE,OAAO;AAAA;AAA2tM,SAAS,GAAE,CAAC,GAAE,KAAG,oBAAmB,MAAG,CAAC,GAAE;AAAA,EAAC,IAAI,IAAE,IAAI,KAAI,IAAE,CAAC,GAAE,KAAE,IAAI;AAAA,EAAI,SAAQ,KAAK,GAAE;AAAA,IAAC,IAAG,EAAE,kBAAkB,IAAI,CAAC,GAAE;AAAA,MAAC,IAAI,CAAC;AAAA,MAAE;AAAA,IAAQ;AAAA,IAAC,IAAI,KAAE,EAAE,eAAe,CAAC;AAAA,IAAE,IAAG,GAAE,WAAS,GAAE;AAAA,MAAC,IAAI,CAAC;AAAA,MAAE;AAAA,IAAQ;AAAA,IAAC,GAAE,IAAI,GAAE,EAAC;AAAA,EAAC;AAAA,EAAC,IAAI,IAAE,EAAE,gBAAgB;AAAA,EAAE,UAAQ,GAAE,OAAK,IAAE;AAAA,IAAC,IAAI,KAAE;AAAA,IAAG,SAAQ,MAAK,IAAE;AAAA,MAAC,IAAI,KAAE,EAAE,gBAAgB,EAAC;AAAA,MAAE,IAAG,GAAE,WAAS,GAAE;AAAA,QAAC,KAAE;AAAA,QAAG,WAAQ,MAAK,GAAE,cAAa,QAAK,IAAE;AAAA,UAAC,IAAI,KAAE;AAAA,UAAG,SAAQ,KAAK,GAAE;AAAA,YAAS,MAAG,MAAI,OAAO,EAAE,IAAI,CAAC,CAAC;AAAA,UAAE,EAAE,IAAI,GAAE,EAAC,YAAW,IAAE,UAAS,IAAE,WAAU,EAAC,CAAC,GAAE,EAAE,KAAK,CAAC;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC;AAAA,IAAC,MAAG,IAAI,CAAC;AAAA,EAAC;AAAA,EAAC,OAAO,EAAE,KAAK,CAAC,GAAE,OAAI;AAAA,IAAC,IAAI,KAAE,EAAE,IAAI,CAAC,GAAE,KAAE,EAAE,IAAI,EAAC;AAAA,IAAE,IAAG,GAAE,WAAS,GAAE,aAAW;AAAA,MAAG,OAAO,OAAO,GAAE,WAAS,GAAE,QAAQ;AAAA,IAAE,IAAI,KAAE;AAAA,IAAE,MAAK,KAAE,GAAE,WAAW,MAAM,UAAQ,KAAE,GAAE,WAAW,MAAM,UAAQ,GAAE,WAAW,MAAM,QAAK,GAAE,WAAW,MAAM;AAAA,MAAI,MAAG;AAAA,IAAE,QAAO,GAAE,WAAW,MAAM,OAAI,IAAE,MAAI,GAAE,WAAW,MAAM,OAAI,IAAE,MAAI,GAAE,WAAW,QAAM,GAAE,WAAW,SAAO,GAAG,GAAE,WAAU,GAAE,SAAS;AAAA,GAAE,GAAE,EAAC,UAAS,GAAE,aAAY,EAAC;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE,GAAE;AAAA,EAAC,IAAI,IAAE,GAAG,GAAE,CAAC;AAAA,EAAE,IAAG,EAAE,WAAS;AAAA,IAAE,OAAM,CAAC;AAAA,EAAE,IAAI,IAAE,CAAC,GAAE,IAAE,IAAI,GAAG,EAAE,GAAG;AAAA,EAAI,SAAQ,MAAK,GAAE;AAAA,IAAC,IAAI,IAAE,GAAG,EAAC;AAAA,KAAG,EAAE,aAAW,EAAE,cAAY,GAAG,EAAC;AAAA,IAAE,IAAI,IAAE,EAAC,MAAK,QAAO,UAAS,GAAE,OAAM,GAAC;AAAA,IAAE,SAAQ,MAAK,EAAE;AAAA,MAAS,IAAG,GAAG,GAAE,IAAE,EAAE,QAAQ,MAAI;AAAA,QAAK,OAAM,CAAC;AAAA,IAAE,EAAE,KAAK,EAAC,MAAK,GAAE,cAAa,EAAC,CAAC;AAAA,EAAC;AAAA,EAAC,OAAO;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE,GAAE,GAAE,IAAE,GAAE;AAAA,EAAC,IAAG,EAAE,SAAO,aAAY;AAAA,IAAC,IAAG,EAAE,YAAU,MAAI;AAAA,MAAE,OAAO;AAAA,IAAK,EAAE,QAAM,CAAC,GAAE,EAAE,UAAS,EAAE,KAAK,CAAC;AAAA,IAAE;AAAA,EAAM;AAAA,EAAC,MAAI,SAAQ,MAAG,EAAE,IAAI,EAAE,IAAI;AAAA,EAAE,IAAG,EAAE,SAAO,YAAW;AAAA,IAAC,IAAI,IAAE,GAAE,OAAO;AAAA,IAAE,IAAG,GAAG,GAAE,EAAE,SAAQ,GAAE,IAAE,CAAC,MAAI,QAAM,EAAE,SAAO,SAAO,EAAE,MAAM,SAAO;AAAA,MAAE,OAAO;AAAA,IAAK,SAAQ,MAAK,EAAE;AAAA,MAAM,IAAG,GAAE,SAAO,UAAQ,GAAE,SAAO,aAAW,EAAE,IAAE,CAAC,MAAI;AAAA,QAAK,OAAO;AAAA,IAAK,GAAE,EAAE,OAAM,QAAG;AAAA,MAAC,KAAI,GAAE,SAAO,UAAQ,GAAE,SAAO,cAAY,GAAE,MAAM,UAAQ;AAAA,QAAE,OAAO,GAAE,QAAM,EAAE,OAAM;AAAA,KAAE,GAAE,EAAE,QAAM,EAAE;AAAA,IAAM;AAAA,EAAM;AAAA,EAAC,IAAG,EAAE,GAAE,CAAC,MAAI;AAAA,IAAK,OAAO;AAAA;AAAK,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,IAAI,IAAE,EAAE,SAAS,SAAO,CAAC;AAAA,EAAE,OAAO,EAAE,SAAO,KAAG,EAAE,SAAS,KAAK;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE,GAAE;AAAA,EAAC,IAAG,EAAE,SAAO,aAAY;AAAA,IAAC,IAAI,IAAE,EAAE;AAAA,IAAM,OAAO,EAAE,aAAW,IAAE,GAAE,GAAE,EAAE,UAAS,EAAE,KAAK,IAAG,MAAI,OAAK,CAAC,IAAE,CAAC,CAAC,GAAE,EAAE,UAAS,CAAC,CAAC,CAAC;AAAA,EAAC;AAAA,EAAC,IAAI,IAAE,EAAE,UAAU,IAAI,EAAE,IAAI,KAAG,CAAC,GAAE,IAAE,CAAC,GAAE,IAAE,EAAE,OAAO,OAAG,CAAC,GAAG,CAAC,CAAC;AAAA,EAAE,SAAQ,KAAK,GAAE;AAAA,IAAC,IAAG,EAAE,SAAO,EAAE;AAAA,MAAK;AAAA,IAAS,IAAI,IAAE,EAAE,UAAU,CAAC;AAAA,IAAE,IAAG,MAAS,WAAE;AAAA,MAAC,IAAG,MAAI;AAAA,QAAK,OAAO;AAAA,MAAE,EAAE,KAAK,CAAC;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,IAAG,EAAE,SAAO;AAAA,IAAE,OAAO;AAAA,EAAE,IAAI,KAAE,EAAE,OAAO,OAAG,GAAG,CAAC,CAAC;AAAA,EAAE,SAAQ,KAAK,IAAE;AAAA,IAAC,IAAG,EAAE,SAAO,EAAE;AAAA,MAAK;AAAA,IAAS,IAAI,IAAE,EAAE,UAAU,CAAC;AAAA,IAAE,IAAG,MAAS,WAAE;AAAA,MAAC,IAAG,MAAI;AAAA,QAAK,OAAO;AAAA,MAAE,EAAE,KAAK,CAAC;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,OAAO;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,SAAQ,KAAK;AAAA,IAAE,EAAE,SAAO,cAAY,EAAE,SAAO,gBAAc,EAAE,YAAU,QAAI,EAAE,SAAO,UAAQ,EAAE,SAAO,cAAY,GAAG,EAAE,KAAK;AAAA;AAAG,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,IAAI,IAAE,IAAI,KAAI,IAAE,GAAE,IAAE,EAAE,MAAM,GAAE,IAAE;AAAA,EAAG,MAAK,EAAE,SAAO,KAAG;AAAA,IAAC,IAAI,KAAE,EAAE,MAAM;AAAA,IAAE,IAAG,GAAE,SAAO,eAAc;AAAA,MAAC,IAAG,GAAE,UAAa,cAAI,KAAI;AAAA,QAAG;AAAA,MAAS,IAAG,GAAE,aAAW,aAAY;AAAA,QAAC,IAAI,IAAE,GAAG,QAAQ,GAAE,SAAO,EAAE;AAAA,QAAE,IAAG,MAAI,IAAG;AAAA,UAAC,EAAE,IAAI,CAAC,GAAE,IAAE;AAAA,UAAG;AAAA,QAAQ;AAAA,MAAC;AAAA,MAAC,IAAI,IAAE,GAAG,QAAQ,GAAE,QAAQ;AAAA,MAAE,MAAI,MAAI,EAAE,IAAI,CAAC;AAAA,IAAC,EAAM,SAAG,GAAE,SAAO,UAAQ,GAAE,SAAO;AAAA,MAAU,SAAQ,KAAK,GAAE;AAAA,QAAM,EAAE,KAAK,CAAC;AAAA,EAAC;AAAA,EAAC,OAAM,EAAC,OAAM,MAAM,KAAK,CAAC,EAAE,KAAK,CAAC,IAAE,MAAI,KAAE,CAAC,GAAE,OAAM,EAAC;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE,GAAE;AAAA,EAAC,IAAI,IAAE,GAAE,IAAE,GAAE,KAAI,CAAC,GAAE,IAAE,IAAI,KAAI,KAAE,IAAI,GAAE,MAAI,IAAI,GAAG,GAAE,IAAE,IAAI,GAAE,MAAI,IAAI,GAAG;AAAA,EAAE,GAAE,CAAC,CAAC,GAAE,CAAC,MAAG,QAAO,GAAE,MAAK,SAAK;AAAA,IAAC,IAAG,GAAE,SAAO,WAAU;AAAA,MAAC,IAAG,GAAE,SAAO;AAAA,QAAa,OAAO,GAAE,GAAE,OAAM,QAAG;AAAA,UAAC,IAAG,GAAE,SAAO,aAAW,GAAE,SAAO;AAAA,YAAS,MAAM,IAAI,MAAM,8CAA8C;AAAA,SAAE,GAAE;AAAA,MAAE,IAAG,GAAE,SAAO,YAAW;AAAA,QAAC,IAAI,KAAE,GAAE,OAAO,QAAQ,QAAO,EAAE;AAAA,QAAE,EAAE,IAAI,EAAC,EAAE,IAAI,EAAC,GAAE,GAAE,GAAE,OAAM,OAAG;AAAA,UAAC,IAAG,EAAE,EAAE,SAAO,aAAW,EAAE,SAAO,WAAU;AAAA,YAAC,EAAE,IAAI,EAAC;AAAA,YAAE,SAAQ,MAAK,GAAG,GAAE,CAAC;AAAA,cAAE,GAAE,IAAI,EAAC,EAAE,IAAI,EAAC;AAAA,UAAC;AAAA,SAAE;AAAA,QAAE;AAAA,MAAM;AAAA,MAAC,IAAG,GAAE,SAAO,UAAS;AAAA,QAAC,IAAG,MAAI;AAAA,UAAK;AAAA,QAAO,KAAG,GAAE,EAAE,IAAI,CAAC;AAAA,QAAE,SAAQ,MAAK,GAAG,IAAE,CAAC;AAAA,UAAE,SAAQ,KAAK;AAAA,YAAE,MAAI,MAAG,EAAE,IAAI,CAAC,KAAG,GAAE,IAAI,CAAC,EAAE,IAAI,EAAC;AAAA,MAAC;AAAA,IAAC;AAAA,GAAE;AAAA,EAAE,IAAI,IAAE,IAAI,KAAI,KAAE,CAAC,GAAE,KAAE,IAAI;AAAA,EAAI,SAAS,EAAC,CAAC,IAAE,IAAE,CAAC,GAAE;AAAA,IAAC,IAAG,CAAC,EAAE,IAAI,EAAC,GAAE;AAAA,MAAC,IAAG,GAAE,IAAI,EAAC,GAAE;AAAA,QAAC,IAAI,KAAE,EAAG,GAAE,QAAQ,EAAC,IAAE,KAAG,EAAE;AAAA,QAAQ,MAAM,GAAE,SAAO,aAAW,GAAE,SAAO,cAAY,GAAE,SAAO,aAAW,GAAE,SAAO,cAAY,GAAE,GAAE,OAAM,QAAG;AAAA,UAAC,IAAG,GAAE,SAAO,aAAW,GAAE,SAAO;AAAA,YAAS;AAAA,UAAO,IAAI,IAAE,GAAE,OAAO,MAAM,MAAM;AAAA,UAAE,SAAQ,MAAK;AAAA,YAAE,SAAQ,MAAK,EAAE,eAAe,EAAC;AAAA,cAAE,QAAO,GAAE;AAAA,qBAAU;AAAA,kBAAY;AAAA,qBAAU;AAAA,qBAAa;AAAA,kBAAa,IAAG,GAAE,OAAO,QAAQ,QAAO,EAAE,MAAI,GAAE;AAAA,oBAAK,MAAM,IAAI,MAAM,+BAA+B,6DAA4D;AAAA,kBAAE;AAAA;AAAA;AAAA,SAAgB,GAAE,IAAI,MAAM;AAAA;AAAA,EAE1hhC,IAAG,CAAC,EAAC,CAAC;AAAA;AAAA;AAAA,EAGN,IAAG,CAAC,EAAC,CAAC,GAAG;AAAA,MAAC;AAAA,MAAC,GAAE,IAAI,EAAC;AAAA,MAAE,SAAQ,MAAK,GAAE,IAAI,EAAC;AAAA,QAAE,SAAQ,MAAK,EAAE,IAAI,EAAC;AAAA,UAAE,EAAE,KAAK,EAAC,GAAE,GAAE,IAAE,CAAC,GAAE,EAAE,IAAI;AAAA,MAAE,EAAE,IAAI,EAAC,GAAE,GAAE,OAAO,EAAC,GAAE,GAAE,KAAK,EAAC;AAAA,IAAC;AAAA;AAAA,EAAE,SAAQ,MAAK;AAAA,IAAE,GAAE,EAAC;AAAA,EAAE,SAAQ,MAAK;AAAA,IAAE,WAAU,MAAG,GAAE,GAAE,OAAM,CAAC,KAAG,aAAY,SAAK;AAAA,MAAC,IAAG,EAAE,SAAO,aAAW,EAAE,SAAO;AAAA,QAAS;AAAA,MAAO,IAAI,KAAE,EAAE,OAAO,MAAM,QAAQ,GAAE,IAAE,CAAC,GAAE,KAAE;AAAA,MAAE,UAAQ,IAAE,OAAK,GAAE,QAAQ;AAAA,QAAE,KAAE,MAAI,MAAI,EAAE,MAAG,KAAG,MAAG,GAAE;AAAA,MAAO;AAAA,QAAC,IAAI,KAAE,OAAO,KAAK,CAAC,GAAE,KAAE,IAAG,IAAE,GAAE,EAAC,oBAAmB,QAAG;AAAA,UAAC,MAAM,IAAI,MAAM,uCAAuC,IAAG;AAAA,UAAE,CAAC,GAAE,IAAE,EAAE,KAAI,KAAE,GAAE,SAAS,IAAI,QAAG;AAAA,UAAC,IAAI,KAAE,GAAE,YAAY,IAAI,EAAC,GAAG,WAAU,KAAE,KAAE,EAAE,MAAQ;AAAA,UAAE,IAAG,KAAE,gBAAgB,EAAC,GAAE,CAAC,KAAG,CAAC,MAAG,OAAS;AAAA,YAAE,OAAO,GAAE,CAAC,EAAC,GAAE,QAAG;AAAA,cAAC,GAAE,MAAI;AAAA,aAAE,GAAE;AAAA,UAAE,IAAI,KAAE,CAAC,EAAE,IAAG,EAAE,IAAG,EAAE,EAAE;AAAA,UAAE,OAAO,GAAE,MAAI,IAAE,IAAE,GAAE,KAAG,GAAE,KAAG,GAAE,QAAO,GAAE,CAAC,EAAC,GAAE,QAAG;AAAA,YAAC,GAAE,MAAI;AAAA,WAAE,GAAE;AAAA,SAAE,GAAE,KAAE,CAAC;AAAA,QAAE,SAAQ,MAAK;AAAA,UAAE,IAAG,GAAE,SAAO;AAAA,YAAO,SAAQ,MAAK,GAAE;AAAA,cAAM,GAAE,KAAK,EAAC;AAAA,UAAO;AAAA,eAAE,KAAK,EAAC;AAAA,QAAE,GAAE,EAAC;AAAA,MAAC;AAAA,KAAE;AAAA,EAAE,OAAO;AAAA;AAAE,UAAS,EAAE,CAAC,GAAE,GAAE;AAAA,EAAC,SAAQ,KAAK,EAAE,OAAO,MAAM,MAAM;AAAA,IAAE,SAAQ,KAAK,EAAE,eAAe,CAAC;AAAA,MAAE,QAAO,EAAE;AAAA,aAAU;AAAA,UAAY;AAAA,aAAU;AAAA,aAAa;AAAA,UAAa,MAAM,EAAE;AAAA,UAAK;AAAA;AAAA;AAAA;AAAgB,eAAe,EAAE,CAAC,GAAE,GAAE,GAAE,IAAE,GAAE,IAAE,OAAG;AAAA,EAAC,IAAI,KAAE,GAAE,IAAE,CAAC;AAAA,EAAE,OAAO,GAAE,GAAE,CAAC,KAAG,aAAY,SAAK;AAAA,IAAC,IAAG,EAAE,SAAO,cAAY,EAAE,SAAO,aAAW,EAAE,SAAO,eAAc;AAAA,MAAC,IAAI,KAAE,GAAG,GAAE,EAAE,MAAM,CAAC;AAAA,MAAE,IAAG,OAAI;AAAA,QAAK;AAAA,MAAO,EAAE,SAAO,iBAAe,GAAE,QAAM,cAAa,MAAG;AAAA,MAAE,MAAI,KAAI,IAAE,OAAM,IAAE,OAAM,GAAE,UAAS,OAAG;AAAA,MAAE,IAAG,GAAE,WAAW,OAAO,KAAG,GAAE,WAAW,SAAS,KAAG,GAAE,WAAW,UAAU;AAAA,QAAE;AAAA,MAAO,IAAI,KAAE,GAAG,CAAC,GAAE,CAAC,CAAC;AAAA,MAAE,OAAO,EAAE,MAAM,YAAS;AAAA,QAAC,IAAG,IAAE;AAAA,UAAI,MAAM,IAAI,MAAM,sDAAsD,aAAY,MAAM;AAAA,QAAE,IAAI,IAAE,MAAM,EAAE,IAAE,CAAC,GAAE,KAAE,GAAG,EAAE,SAAQ,EAAC,MAAK,IAAE,EAAE,OAAU,UAAC,CAAC;AAAA,QAAE,MAAM,GAAG,IAAE,EAAE,MAAK,GAAE,IAAE,GAAE,CAAC,GAAE,GAAE,QAAM,GAAG,GAAE,CAAC,GAAG,EAAC,MAAK,EAAE,KAAI,GAAE,EAAC,CAAC,GAAE,IAAE,GAAE,EAAC;AAAA,SAAI,CAAC,GAAE,GAAE,EAAC,GAAE;AAAA,IAAC;AAAA,GAAE,GAAE,EAAE,SAAO,KAAG,MAAM,QAAQ,IAAI,CAAC,GAAE;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,IAAI,GAAE,IAAE,MAAK,IAAE,MAAK,IAAE;AAAA,EAAK,SAAQ,KAAE,EAAE,KAAE,EAAE,QAAO,MAAI;AAAA,IAAC,IAAI,IAAE,EAAE;AAAA,IAAG,IAAG,EAAE,SAAO,aAAY;AAAA,MAAC,IAAG,EAAE,SAAO,UAAQ,CAAC,GAAE;AAAA,QAAC,IAAG,CAAC,EAAE,SAAO,EAAE,MAAM,OAAK,OAAK,EAAE,MAAM,OAAK;AAAA,UAAI,OAAO;AAAA,QAAK,IAAE,EAAE,MAAM,MAAM,GAAE,EAAE;AAAA,QAAE;AAAA,MAAQ;AAAA,MAAC,IAAG,EAAE,SAAO,cAAY,EAAE,MAAM,YAAY,MAAI,SAAO,CAAC;AAAA,QAAE,OAAO;AAAA,MAAK,KAAI,EAAE,SAAO,UAAQ,EAAE,SAAO,eAAa,EAAE,MAAM,YAAY,MAAI,SAAQ;AAAA,QAAC,IAAG;AAAA,UAAE,OAAO;AAAA,QAAK,IAAG;AAAA,UAAE,MAAM,IAAI,MAAM,sFAAsF;AAAA,QAAE,WAAU,IAAE,IAAE,GAAE,EAAE,KAAK,IAAE,IAAE;AAAA,QAAG;AAAA,MAAQ;AAAA,MAAC,IAAG,EAAE,SAAO,cAAY,EAAE,MAAM,YAAY,MAAI,YAAW;AAAA,QAAC,IAAG;AAAA,UAAE,OAAO;AAAA,QAAK,IAAE,GAAE,EAAE,KAAK;AAAA,QAAE;AAAA,MAAQ;AAAA,MAAC,IAAE,GAAE,EAAE,MAAM,EAAC,CAAC;AAAA,MAAE;AAAA,IAAK;AAAA,EAAC;AAAA,EAAC,OAAO,IAAE,EAAC,KAAI,GAAE,OAAM,GAAE,OAAM,GAAE,UAAS,EAAC,IAAE;AAAA;AAAK,SAAS,EAAE,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE;AAAA,EAAC,IAAI,KAAE;AAAA,EAAE,IAAG,MAAI,MAAK;AAAA,IAAC,IAAI,IAAE,GAAE,UAAS,GAAE,EAAC;AAAA,IAAE,EAAE,MAAI,EAAE,KAAI,KAAE,CAAC,CAAC;AAAA,EAAC;AAAA,EAAC,IAAG,MAAI,MAAK;AAAA,IAAC,IAAI,IAAE,GAAE,UAAS,GAAE,EAAC;AAAA,IAAE,EAAE,MAAI,EAAE,KAAI,KAAE,CAAC,CAAC;AAAA,EAAC;AAAA,EAAC,IAAG,MAAI,MAAK;AAAA,IAAC,IAAI,IAAE,GAAE,aAAY,EAAE,OAAK,MAAI,IAAE,IAAI,MAAK,EAAC;AAAA,IAAE,EAAE,MAAI,EAAE,KAAI,KAAE,CAAC,CAAC;AAAA,EAAC;AAAA,EAAC,OAAO;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE,IAAE,MAAK;AAAA,EAAC,OAAO,MAAM,QAAQ,CAAC,KAAG,EAAE,WAAS,KAAG,OAAO,EAAE,MAAI,YAAU,OAAO,EAAE,OAAK,OAAK,IAAE,EAAE,GAAG,MAAI,OAAK,EAAE,KAAG,MAAM,QAAQ,CAAC,KAAG,MAAI,OAAK,EAAE,KAAK,IAAI,IAAE,OAAO,KAAG,YAAU,MAAI,OAAK,IAAE;AAAA;AAAK,SAAS,EAAE,CAAC,KAAG,OAAM,KAAG,GAAE;AAAA,EAAC,SAAQ,KAAK,GAAE;AAAA,IAAC,IAAI,IAAE,GAAG,CAAC,CAAC,CAAC;AAAA,IAAE,KAAG,EAAE,MAAM,eAAe,KAAK,KAAI,CAAC;AAAA,EAAC;AAAA,EAAC,UAAQ,GAAE,MAAK,GAAG,CAAC,GAAE;AAAA,IAAC,IAAG,OAAO,KAAG,YAAU,OAAO,KAAG;AAAA,MAAS;AAAA,IAAS,IAAG,OAAO,KAAG,aAAW,IAAE,EAAE,QAAQ,kBAAiB,GAAG,IAAG,EAAE,OAAK,cAAY,OAAO,KAAG,YAAU,OAAO,KAAG,WAAU;AAAA,MAAC,IAAI,IAAE,OAAO,KAAG,WAAS,WAAW,CAAC,IAAE;AAAA,MAAE,KAAG,KAAG,KAAG,MAAI,IAAE,IAAE,MAAI;AAAA,IAAI;AAAA,IAAC,IAAI,KAAE,GAAG,CAAC;AAAA,IAAE,MAAG,EAAE,MAAM,IAAI,KAAK,MAAI,KAAG,GAAE,CAAC;AAAA,EAAC;AAAA,EAAC,IAAG,OAAO,OAAO,GAAE,YAAY,GAAE;AAAA,IAAC,IAAI,IAAE;AAAA,IAAE;AAAA,MAAC,IAAI,IAAE,GAAG,EAAE,WAAW,IAAI;AAAA,MAAE,KAAG,EAAE,MAAM,WAAW,aAAa,MAAI,EAAE,MAAM,IAAI,yBAAwB,GAAE,CAAC,GAAE,EAAE,MAAM,IAAI,mCAAkC,GAAG,EAAE,WAAW,MAAK,qBAAqB,KAAG,UAAS,CAAC,GAAE,EAAE,MAAM,IAAI,qCAAoC,GAAG,EAAE,WAAW,MAAK,uBAAuB,KAAG,UAAS,CAAC;AAAA,IAAE;AAAA,IAAC;AAAA,MAAC,IAAI,IAAE,GAAG,EAAE,WAAW,IAAI;AAAA,MAAE,KAAG,EAAE,MAAM,WAAW,aAAa,MAAI,EAAE,MAAM,IAAI,8BAA6B,GAAE,CAAC,GAAE,EAAE,MAAM,IAAI,wCAAuC,GAAG,EAAE,WAAW,MAAK,qBAAqB,KAAG,UAAS,CAAC,GAAE,EAAE,MAAM,IAAI,0CAAyC,GAAG,EAAE,WAAW,MAAK,uBAAuB,KAAG,UAAS,CAAC;AAAA,IAAE;AAAA,EAAC;AAAA,EAAC,OAAO;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,IAAI,IAAE,CAAC;AAAA,EAAE,OAAO,GAAG,GAAE,CAAC,GAAE,CAAC,GAAE,MAAI;AAAA,IAAC,IAAG,GAAG,CAAC;AAAA,MAAE,OAAO,EAAE,KAAK,CAAC,GAAE,CAAC,CAAC,GAAE;AAAA,IAAE,IAAG,GAAG,CAAC,GAAE;AAAA,MAAC,EAAE,KAAK,CAAC,GAAE,EAAE,EAAE,CAAC;AAAA,MAAE,SAAQ,KAAK,QAAQ,QAAQ,EAAE,EAAE;AAAA,QAAE,EAAE,KAAK,CAAC,CAAC,GAAG,GAAE,IAAI,GAAG,GAAE,EAAE,GAAG,EAAE,CAAC;AAAA,MAAE,OAAO;AAAA,IAAC;AAAA,IAAC,IAAG,MAAM,QAAQ,CAAC,KAAG,EAAE,MAAM,OAAG,OAAO,KAAG,QAAQ;AAAA,MAAE,OAAO,EAAE,OAAK,cAAY,EAAE,KAAK,CAAC,GAAE,EAAE,EAAE,CAAC,GAAE,EAAE,UAAQ,KAAG,EAAE,KAAK,CAAC,CAAC,GAAG,GAAE,cAAc,GAAE,EAAE,EAAE,CAAC,KAAG,EAAE,KAAK,CAAC,GAAE,EAAE,KAAK,IAAI,CAAC,CAAC,GAAE;AAAA,GAAE,GAAE;AAAA;AAAgC,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,IAAG,EAAE,OAAK;AAAA,IAAY,OAAO;AAAA,EAAK,IAAE,gBAAgB,CAAC,GAAE,EAAE,OAAK,gBAAc,EAAE,KAAG,YAAW,EAAE,OAAK,kBAAgB,EAAE,KAAG,WAAU,EAAE,OAAK,mBAAiB,EAAE,KAAG,WAAU,EAAE,OAAK,gBAAc,EAAE,KAAG,WAAU,EAAE,OAAK,aAAW,EAAE,KAAG,UAAS,EAAE,OAAK,iBAAe,EAAE,KAAG,cAAa,EAAE,OAAK,iBAAe,EAAE,KAAG,SAAQ,EAAE,OAAK,eAAa,EAAE,KAAG,SAAQ,EAAE,OAAK,oBAAkB,EAAE,KAAG,aAAY,EAAE,OAAK,iBAAe,EAAE,KAAG,YAAW,EAAE,OAAK,eAAa,EAAE,KAAG,cAAa,EAAE,OAAK,cAAY,EAAE,KAAG,eAAc,EAAE,OAAK,+BAA6B,EAAE,KAAG;AAAA,EAAQ,SAAQ,KAAK;AAAA,IAAE,IAAG,CAAC,GAAG,KAAK,CAAC;AAAA,MAAE,OAAO;AAAA,EAAK,OAAO,EAAE,IAAI,CAAC,GAAE,GAAE,MAAI,MAAI,OAAK,MAAI,EAAE,SAAO,IAAE,KAAG,CAAC,EAAE,IAAI,OAAG,EAAE,WAAW,KAAI,GAAG,EAAE,QAAQ,mBAAkB,CAAC,GAAE,GAAE,MAAI,GAAG,KAAK,EAAE,YAAY,GAAG,CAAC,EAAE,OAAO,CAAC,GAAE,MAAI,MAAI,aAAW,MAAI,EAAE,SAAO,CAAC,EAAE,KAAK,GAAG;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,OAAO,OAAO,KAAG,YAAU,OAAO,KAAG;AAAA;AAAS,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,IAAG,CAAC,MAAM,QAAQ,CAAC,KAAG,EAAE,WAAS,KAAG,OAAO,EAAE,MAAI,YAAU,OAAO,EAAE,MAAI,YAAU,EAAE,OAAU,aAAG,EAAE,OAAK,QAAM,OAAO,EAAE,MAAI;AAAA,IAAS,OAAM;AAAA,EAAG,SAAQ,KAAK,QAAQ,QAAQ,EAAE,EAAE;AAAA,IAAE,IAAG,OAAO,KAAG,YAAU,OAAO,EAAE,GAAG,MAAI,YAAU,OAAO,EAAE,GAAG,MAAI;AAAA,MAAS,OAAM;AAAA,EAAG,OAAM;AAAA;AAAG,SAAS,EAAE,CAAC,GAAE,IAAE,CAAC,GAAE,GAAE;AAAA,EAAC,SAAQ,KAAK,QAAQ,QAAQ,CAAC,GAAE;AAAA,IAAC,IAAI,IAAE,EAAE;AAAA,IAAG,IAAG,KAAG;AAAA,MAAK;AAAA,IAAS,IAAI,KAAE,CAAC,GAAG,GAAE,CAAC,GAAE,IAAE,EAAE,GAAE,EAAC,KAAG;AAAA,IAAE,IAAG,MAAI,GAAE;AAAA,MAAC,IAAG,MAAI;AAAA,QAAE,OAAO;AAAA,MAAE,IAAG,EAAE,CAAC,MAAM,QAAQ,CAAC,KAAG,OAAO,KAAG,aAAW,GAAG,GAAE,IAAE,CAAC,MAAI;AAAA,QAAE,OAAO;AAAA,IAAC;AAAA,EAAC;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,IAAI,IAAE,CAAC;AAAA,EAAE,SAAQ,KAAK,EAAE,GAAE,GAAG,GAAE;AAAA,IAAC,IAAG,CAAC,EAAE,SAAS,GAAG,GAAE;AAAA,MAAC,EAAE,KAAK,CAAC;AAAA,MAAE;AAAA,IAAQ;AAAA,IAAC,IAAI,IAAE;AAAA,IAAE,UAAO;AAAA,MAAC,IAAI,IAAE,EAAE,QAAQ,KAAI,CAAC,GAAE,KAAE,EAAE,QAAQ,KAAI,CAAC;AAAA,MAAE,IAAG,MAAI,MAAI,OAAI;AAAA,QAAG;AAAA,MAAM,IAAE,KAAG,EAAE,KAAK,EAAE,MAAM,GAAE,CAAC,CAAC,GAAE,EAAE,KAAK,EAAE,MAAM,IAAE,GAAE,EAAC,CAAC,GAAE,IAAE,KAAE;AAAA,IAAC;AAAA,IAAC,KAAG,EAAE,SAAO,KAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAAA,EAAC;AAAA,EAAC,OAAO;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,IAAG,OAAO,UAAU,SAAS,KAAK,CAAC,MAAI;AAAA,IAAkB,OAAM;AAAA,EAAG,IAAI,IAAE,OAAO,eAAe,CAAC;AAAA,EAAE,OAAO,MAAI,QAAM,OAAO,eAAe,CAAC,MAAI;AAAA;AAAK,SAAS,EAAE,CAAC,GAAE,GAAE,GAAE,IAAE,CAAC,GAAE;AAAA,EAAC,SAAQ,KAAK;AAAA,IAAE,IAAG,KAAG;AAAA,MAAK,SAAQ,MAAK,QAAQ,QAAQ,CAAC,GAAE;AAAA,QAAC,EAAE,KAAK,EAAC;AAAA,QAAE,IAAI,IAAE,EAAE,EAAE,KAAG,EAAE,KAAG,CAAC;AAAA,QAAE,MAAS,YAAE,EAAE,MAAG,IAAE,CAAC,GAAG,EAAE,GAAE,KAAG,CAAC,GAAG,EAAE,GAAE,IAAE,EAAE,MAAG,EAAE,MAAG,EAAE,MAAG,GAAG,CAAC,GAAE,CAAC,EAAE,KAAG,EAAE,GAAE,GAAE,GAAE,CAAC,GAAE,EAAE,IAAI;AAAA,MAAC;AAAA,EAAC,OAAO;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE,GAAE,GAAE;AAAA,EAAC,OAAO,QAAQ,CAAC,GAAE,IAAE;AAAA,IAAC,IAAI,IAAE,EAAE,YAAY,GAAG,GAAE,IAAE;AAAA,IAAK,MAAI,OAAK,IAAE,EAAE,MAAM,IAAE,CAAC,EAAE,KAAK,GAAE,IAAE,EAAE,MAAM,GAAE,CAAC,EAAE,KAAK;AAAA,IAAG,IAAI,MAAG,MAAI;AAAA,MAAC,IAAI,KAAE,GAAG,CAAC,IAAG,IAAE,MAAG,GAAG,EAAE,OAAM,EAAC,GAAE,IAAE,EAAE,GAAG,EAAE,KAAG,CAAC,GAAE,EAAC,KAAG,IAAI;AAAA,MAAE,IAAG,OAAO,KAAG,aAAW,IAAE,EAAE,QAAQ,iBAAgB,GAAG,IAAG,OAAO,MAAG;AAAA,QAAS,OAAO,OAAO,MAAG,YAAU,KAAE,IAAE,KAAG,KAAE;AAAA,MAAE,IAAG,MAAI,QAAM,OAAO,KAAG,YAAU,CAAC,MAAM,QAAQ,CAAC,GAAE;AAAA,QAAC,IAAI,KAAE,GAAG,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,IAAE,MAAI,CAAC;AAAA,QAAE,IAAG,OAAI,QAAM,OAAO,OAAO,GAAE,gBAAgB,GAAE;AAAA,UAAC,IAAI,KAAE,CAAC;AAAA,UAAE,SAAQ,KAAK,EAAE;AAAA,YAAe,GAAE,KAAG,EAAE,IAAG,OAAO,GAAE;AAAA,UAAG,KAAE;AAAA,QAAC;AAAA,QAAC,SAAQ,MAAK;AAAA,UAAE,OAAI,qBAAmB,GAAG,iBAAiB,MAAG,KAAG,GAAG,IAAE,GAAE,MAAM,GAAG,CAAC,MAAS,cAAI,GAAE,IAAG,EAAC,KAAG,GAAE;AAAA,QAAK,OAAO;AAAA,MAAC;AAAA,MAAC,IAAG,MAAM,QAAQ,EAAC,KAAG,MAAM,QAAQ,EAAC,KAAG,MAAM,QAAQ,CAAC,GAAE;AAAA,QAAC,IAAI,KAAE,GAAE,IAAG,KAAE,GAAE;AAAA,QAAG,GAAE,KAAG,MAAI,KAAE,EAAE,MAAI;AAAA,QAAG,SAAQ,KAAK,OAAO,KAAK,EAAC;AAAA,UAAE,GAAE,GAAG,KAAG,MAAI,GAAE,KAAG,EAAE,GAAG,MAAI,GAAE;AAAA,QAAI,OAAM,CAAC,IAAE,EAAC;AAAA,MAAC;AAAA,MAAC,OAAO,MAAG;AAAA,OAAI;AAAA,IAAE,OAAO,KAAG,OAAO,MAAG,aAAW,KAAE,GAAE,IAAE,CAAC,IAAG,MAAG;AAAA;AAAA;AAAG,SAAS,EAAE,CAAC,GAAE,GAAE;AAAA,EAAC,IAAG,EAAE,WAAS,KAAG,EAAE,GAAG,WAAW,IAAI;AAAA,IAAE,OAAM,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,GAAE,EAAE,WAAW,EAAE,EAAE,CAAC;AAAA,EAAE,IAAI,IAAE,GAAG,CAAC,GAAE,IAAE,IAAI,KAAI,IAAE,IAAI,GAAE,MAAI,IAAI,GAAG,GAAE,KAAE,EAAE,UAAU,KAAK,GAAG;AAAA,EAAE,IAAG,GAAE,SAAO;AAAA,IAAE,OAAM,CAAC,MAAK,CAAC;AAAA,EAAE,IAAI,IAAE,IAAI;AAAA,EAAI,UAAQ,IAAE,OAAK,IAAE;AAAA,IAAC,IAAG,CAAC,MAAG,CAAC,GAAE,SAAS,IAAI,GAAE;AAAA,MAAC,EAAE,IAAI,IAAE,EAAC,GAAE,EAAE,IAAI,IAAE,EAAE,WAAW,KAAE,KAAK,KAAK,OAAI,KAAK,GAAG,CAAC;AAAA,MAAE;AAAA,IAAQ;AAAA,IAAC,IAAI,IAAE,GAAE,QAAQ,IAAI,GAAE,KAAE,GAAE,MAAM,GAAE,CAAC,GAAE,KAAE,GAAE,MAAM,IAAE,CAAC;AAAA,IAAE,KAAE,GAAE,QAAQ,aAAY,CAAC,GAAE,OAAI,GAAE,YAAY,CAAC,GAAE,EAAE,IAAI,OAAI,KAAG,OAAK,EAAC,EAAE,IAAI,IAAE,CAAC,IAAE,EAAE,WAAW,KAAK,IAAI,IAAG,CAAC,CAAC;AAAA,EAAC;AAAA,EAAC,IAAI,IAAE,EAAE,WAAW,KAAK,GAAG;AAAA,EAAE,UAAQ,IAAE,OAAK,GAAE;AAAA,IAAC,IAAI,IAAE,EAAE,IAAI,EAAC;AAAA,IAAE,IAAG,OAAO,KAAG;AAAA,MAAS;AAAA,IAAS,IAAI,KAAE,CAAC,GAAE,KAAE,CAAC;AAAA,IAAE,UAAQ,IAAG,IAAE,QAAM;AAAA,MAAE,GAAE,KAAG,IAAE,GAAE,KAAG;AAAA,IAAE,EAAE,IAAI,IAAE,CAAC,GAAE,EAAC,CAAC,GAAE,EAAE,IAAI,IAAE,CAAC,GAAE,EAAC,CAAC;AAAA,EAAC;AAAA,EAAC,IAAI,KAAE,CAAC,GAAE,KAAE,CAAC;AAAA,EAAE,UAAQ,IAAE,OAAK;AAAA,IAAE,GAAG,IAAE,CAAC,MAAG,SAAS,GAAE,EAAC;AAAA,EAAE,UAAQ,IAAE,OAAK;AAAA,IAAE,GAAG,IAAE,CAAC,MAAG,SAAS,GAAE,EAAC;AAAA,EAAE,OAAO,EAAE,EAAE,SAAO,OAAK,YAAU,CAAC,IAAG,WAAS,MAAK,GAAE,WAAS,CAAC,KAAE,aAAY,OAAG,OAAO,KAAK,EAAC,EAAE,WAAS,IAAE,CAAC,GAAE,SAAQ,GAAE,WAAS,CAAC,KAAG,GAAE,iBAAe,IAAE,CAAC,IAAE,EAAC;AAAA;AAAG,SAAS,EAAE,CAAC,GAAE,GAAE;AAAA,EAAC,SAAQ,IAAE,EAAE,IAAE,EAAE,QAAO,EAAE,GAAE;AAAA,IAAC,IAAI,IAAE,EAAE;AAAA,IAAG,IAAG,IAAI,OAAU,WAAE;AAAA,MAAC,IAAG,EAAE,IAAE,OAAU;AAAA,QAAE;AAAA,MAAO,EAAE,IAAE,KAAG,GAAG,KAAK,EAAE,IAAE;AAAA,MAAK;AAAA,IAAQ;AAAA,IAAC,IAAE,EAAE;AAAA,EAAE;AAAA,EAAC,OAAO;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE,GAAE,GAAE;AAAA,EAAC,SAAQ,KAAK,EAAE,MAAM,GAAE,EAAE;AAAA,IAAE,EAAE,OAAU,cAAI,EAAE,KAAG,CAAC,IAAG,IAAE,EAAE;AAAA,EAAG,EAAE,EAAE,EAAE,SAAO,MAAI;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,OAAM,EAAC,MAAK,cAAa,OAAM,EAAC;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE,GAAE;AAAA,EAAC,OAAM,EAAC,MAAK,YAAW,OAAM,GAAE,OAAM,EAAC;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,OAAM,EAAC,MAAK,YAAW,OAAM,EAAC;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,OAAM,EAAC,MAAK,aAAY,OAAM,EAAC;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,OAAM,EAAC,MAAK,SAAQ,OAAM,EAAC;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE,GAAE,IAAE,MAAK;AAAA,EAAC,SAAQ,IAAE,EAAE,IAAE,EAAE,QAAO,KAAI;AAAA,IAAC,IAAI,IAAE,EAAE,IAAG,KAAE,OAAG,IAAE,GAAE,IAAE,EAAE,GAAE,EAAC,QAAO,GAAE,WAAW,CAAC,IAAE;AAAA,MAAC,OAAI,KAAE,MAAG,MAAM,QAAQ,EAAC,IAAE,GAAE,WAAS,KAAG,EAAE,OAAO,GAAE,CAAC,GAAE,IAAE,KAAG,GAAE,WAAS,KAAG,EAAE,KAAG,GAAE,IAAG,IAAE,MAAI,EAAE,OAAO,GAAE,GAAE,GAAG,EAAC,GAAE,IAAE,GAAE,WAAS,EAAE,KAAG,IAAE,IAAE;AAAA,MAAI,CAAC,KAAG;AAAA,IAAE,IAAG,IAAE;AAAA,MAAC,MAAI,IAAE,MAAI,KAAG,IAAE;AAAA,MAAE;AAAA,IAAQ;AAAA,IAAC,IAAG,MAAI;AAAA,MAAE,OAAO;AAAA,IAAE,IAAG,MAAI,KAAG,EAAE,SAAO,cAAY,GAAG,EAAE,OAAM,GAAE,CAAC,MAAI;AAAA,MAAE,OAAO;AAAA,EAAC;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,IAAI,IAAE;AAAA,EAAG,SAAQ,KAAK;AAAA,IAAE,QAAO,EAAE;AAAA,WAAU;AAAA,WAAiB;AAAA,WAAe;AAAA,WAAgB,SAAQ;AAAA,QAAC,KAAG,EAAE;AAAA,QAAM;AAAA,MAAK;AAAA,WAAK;AAAA,QAAW,KAAG,EAAE,QAAM,MAAI,GAAG,EAAE,KAAK,IAAE;AAAA;AAAA,EAAI,OAAO;AAAA;AAA4G,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,IAAE,EAAE,WAAW;AAAA,GACp/R;AAAA,CACD;AAAA,EAAE,IAAI,IAAE,CAAC,GAAE,IAAE,CAAC,GAAE,IAAE,MAAK,IAAE,IAAG;AAAA,EAAE,SAAQ,IAAE,EAAE,IAAE,EAAE,QAAO,KAAI;AAAA,IAAC,IAAI,IAAE,EAAE,WAAW,CAAC;AAAA,IAAE,QAAO;AAAA,WAAQ;AAAA,WAAQ;AAAA,WAAQ;AAAA,WAAQ;AAAA,WAAQ;AAAA,WAAQ;AAAA,WAAQ,IAAG;AAAA,QAAC,IAAG,EAAE,SAAO,GAAE;AAAA,UAAC,IAAI,IAAE,GAAG,CAAC;AAAA,UAAE,IAAE,EAAE,MAAM,KAAK,CAAC,IAAE,EAAE,KAAK,CAAC,GAAE,IAAE;AAAA,QAAE;AAAA,QAAC,IAAI,KAAE,GAAE,KAAE,IAAE;AAAA,QAAE,MAAK,KAAE,EAAE,WAAS,KAAE,EAAE,WAAW,EAAC,GAAE,EAAE,OAAI,MAAI,OAAI,MAAI,OAAI,MAAI,OAAI,MAAI,OAAI,MAAI,OAAI,MAAI,OAAI,MAAK;AAAA;AAAA,QAAK,IAAE,KAAE;AAAA,QAAE,IAAI,KAAE,EAAE,MAAM,IAAE,EAAC,GAAE,KAAE,GAAE,KAAK,MAAI,MAAI,GAAG,EAAC,IAAE,GAAG,EAAC;AAAA,QAAE,IAAE,EAAE,MAAM,KAAK,EAAC,IAAE,EAAE,KAAK,EAAC;AAAA,QAAE;AAAA,MAAK;AAAA,WAAM,IAAG;AAAA,QAAC,IAAI,KAAE,GAAG,GAAE,CAAC,CAAC;AAAA,QAAE,IAAG,IAAE,IAAG,GAAE,UAAQ,UAAQ,GAAE,UAAQ,YAAU,GAAE,UAAQ,UAAQ,GAAE,UAAQ,OAAM;AAAA,UAAC,IAAI,KAAE,IAAE,GAAE,KAAE;AAAA,UAAE,SAAQ,IAAE,IAAE,EAAE,IAAE,EAAE,QAAO,KAAI;AAAA,YAAC,IAAG,KAAE,EAAE,WAAW,CAAC,GAAE,OAAI,IAAG;AAAA,cAAC;AAAA,cAAI;AAAA,YAAQ;AAAA,YAAC,IAAG,OAAI,IAAG;AAAA,cAAC,IAAG,OAAI,GAAE;AAAA,gBAAC,IAAE;AAAA,gBAAE;AAAA,cAAK;AAAA,cAAC;AAAA,YAAG;AAAA,UAAC;AAAA,UAAC,IAAI,KAAE;AAAA,UAAE,GAAE,MAAM,KAAK,GAAG,EAAE,MAAM,IAAE,EAAC,CAAC,CAAC,GAAE,IAAE,IAAG,IAAE,IAAE,IAAE,EAAE,MAAM,KAAK,EAAC,IAAE,EAAE,KAAK,EAAC;AAAA,UAAE;AAAA,QAAK;AAAA,QAAC,IAAE,EAAE,MAAM,KAAK,EAAC,IAAE,EAAE,KAAK,EAAC,GAAE,EAAE,KAAK,EAAC,GAAE,IAAE;AAAA,QAAE;AAAA,MAAK;AAAA,WAAM,IAAG;AAAA,QAAC,IAAI,KAAE,EAAE,IAAI;AAAA,QAAE,IAAG,EAAE,SAAO,GAAE;AAAA,UAAC,IAAI,KAAE,GAAG,CAAC;AAAA,UAAE,GAAE,MAAM,KAAK,EAAC,GAAE,IAAE;AAAA,QAAE;AAAA,QAAC,EAAE,SAAO,IAAE,IAAE,EAAE,EAAE,SAAO,KAAG,IAAE;AAAA,QAAK;AAAA,MAAK;AAAA,WAAM;AAAA,WAAQ;AAAA,WAAQ,IAAG;AAAA,QAAC,IAAG,EAAE,SAAO,GAAE;AAAA,UAAC,IAAI,KAAE,GAAG,CAAC;AAAA,UAAE,IAAE,EAAE,MAAM,KAAK,EAAC,IAAE,EAAE,KAAK,EAAC;AAAA,QAAC;AAAA,QAAC,IAAE,OAAO,aAAa,CAAC;AAAA,QAAE;AAAA,MAAK;AAAA,WAAM,IAAG;AAAA,QAAC,IAAG,EAAE,SAAO,GAAE;AAAA,UAAC,IAAI,KAAE,GAAG,CAAC;AAAA,UAAE,IAAE,EAAE,MAAM,KAAK,EAAC,IAAE,EAAE,KAAK,EAAC;AAAA,QAAC;AAAA,QAAC,IAAE;AAAA,QAAG,IAAI,KAAE,GAAE,KAAE;AAAA,QAAE,SAAQ,KAAE,IAAE,EAAE,KAAE,EAAE,QAAO,MAAI;AAAA,UAAC,IAAG,KAAE,EAAE,WAAW,EAAC,GAAE,OAAI,IAAG;AAAA,YAAC;AAAA,YAAI;AAAA,UAAQ;AAAA,UAAC,IAAG,OAAI,IAAG;AAAA,YAAC,IAAG,OAAI,GAAE;AAAA,cAAC,IAAE;AAAA,cAAE;AAAA,YAAK;AAAA,YAAC;AAAA,UAAG;AAAA,QAAC;AAAA,QAAC,KAAG,EAAE,MAAM,IAAE,IAAE,CAAC;AAAA,QAAE;AAAA,MAAK;AAAA,WAAM;AAAA,WAAQ,IAAG;AAAA,QAAC,IAAI,KAAE;AAAA,QAAE,SAAQ,KAAE,IAAE,EAAE,KAAE,EAAE,QAAO;AAAA,UAAI,IAAG,KAAE,EAAE,WAAW,EAAC,GAAE,OAAI;AAAA,YAAG,MAAG;AAAA,UAAO,SAAG,OAAI,GAAE;AAAA,YAAC,IAAE;AAAA,YAAE;AAAA,UAAK;AAAA,QAAC,KAAG,EAAE,MAAM,IAAE,IAAE,CAAC;AAAA,QAAE;AAAA,MAAK;AAAA,WAAM,IAAG;AAAA,QAAC,IAAI,KAAE,EAAE,WAAW,IAAE,CAAC;AAAA,QAAE,KAAG,OAAO,aAAa,CAAC,IAAE,OAAO,aAAa,EAAC,GAAE,KAAG;AAAA,QAAE;AAAA,MAAK;AAAA;AAAA,QAAS,KAAG,OAAO,aAAa,CAAC;AAAA;AAAA,EAAE;AAAA,EAAC,OAAO,EAAE,SAAO,KAAG,EAAE,KAAK,GAAG,CAAC,CAAC,GAAE;AAAA;AAAqC,SAAS,EAAE,GAAE,cAAa,GAAE,KAAI,GAAE,gBAAe,GAAE,aAAY,GAAE,eAAc,KAAG;AAAA,EAAC,IAAI,KAAE,EAAC,OAAO,CAAC,GAAE;AAAA,IAAC,IAAG;AAAA,MAAE;AAAA,IAAO,IAAI,IAAE,GAAG,CAAC;AAAA,IAAE,EAAE,WAAS,GAAG,GAAE,CAAC,GAAE,EAAE,KAAK,GAAE,UAAS,QAAO,CAAC,CAAC;AAAA,KAAG,UAAU,CAAC,GAAE,GAAE;AAAA,IAAC,IAAG,CAAC,GAAG,KAAK,CAAC;AAAA,MAAE,MAAM,IAAI,MAAM,iBAAiB,oHAAoH;AAAA,IAAE,IAAG,OAAO,KAAG,UAAS;AAAA,MAAC,IAAG,EAAE,SAAS,SAAS;AAAA,QAAE;AAAA,IAAM,EAAM,SAAG,MAAM,QAAQ,CAAC,GAAE;AAAA,MAAC,IAAG,EAAE,KAAK,QAAG,GAAE,SAAS,SAAS,CAAC;AAAA,QAAE;AAAA,IAAM,EAAM,SAAG,OAAO,KAAG,UAAS;AAAA,MAAC,IAAI,KAAE,QAAQ,CAAC,IAAE,IAAE;AAAA,QAAC,OAAO,OAAO,QAAQ,EAAC,EAAE,KAAK,EAAE,GAAE,QAAK,EAAE,SAAS,EAAC,KAAG,OAAO,MAAG,YAAU,GAAE,IAAE,EAAC,CAAC;AAAA;AAAA,MAAG,IAAI,KAAE;AAAA,MAAE,IAAG,GAAE,GAAE,SAAS;AAAA,QAAE;AAAA,IAAM;AAAA,IAAC,OAAO,KAAG,YAAU,MAAM,QAAQ,CAAC,IAAE,EAAE,SAAS,OAAO,GAAE,QAAG;AAAA,MAAC,GAAE,QAAM,GAAG,GAAE,GAAE,KAAK;AAAA,OAAG,EAAC,WAAU,IAAG,OAAO,KAAG,WAAS,CAAC,CAAC,IAAE,CAAC,EAAC,CAAC,IAAE,OAAO,KAAG,YAAU,EAAE,SAAS,QAAQ,GAAE,GAAG,CAAC,CAAC;AAAA,KAAG,YAAY,CAAC,GAAE,GAAE,IAAE;AAAA,IAAC,SAAS,EAAC,CAAC,IAAE,GAAE,IAAE;AAAA,MAAC,IAAI,KAAE,EAAE,IAAE,EAAC,UAAS,GAAG,SAAO,KAAI,CAAC;AAAA,MAAE,OAAO,GAAG,IAAE,EAAC;AAAA;AAAA,IAAE,IAAG;AAAA,MAAC,IAAI,KAAE,EAAE,KAAI,EAAC,UAAS,KAAI,CAAC;AAAA,MAAE,IAAG,OAAO,MAAG,YAAU,GAAE,SAAS,SAAS;AAAA,QAAE;AAAA,MAAO,IAAG,MAAM,QAAQ,EAAC,KAAG,GAAE,KAAK,OAAG,EAAE,SAAS,SAAS,CAAC;AAAA,QAAE;AAAA,MAAO,MAAK;AAAA,IAAE,IAAI,KAAE,OAAO,KAAK,IAAG,UAAQ,CAAC,CAAC;AAAA,IAAE,EAAE,SAAS,MAAM,MAAI;AAAA,MAAC,EAAE,SAAS,WAAW,GAAE,CAAC,IAAE,MAAI;AAAA,QAAC,IAAG,CAAC,EAAE,OAAM;AAAA,UAAC,IAAG,IAAG,UAAQ,aAAY,GAAE,QAAO;AAAA,YAAC,GAAE,QAAM,GAAE,GAAE,OAAO,SAAQ,EAAE,UAAS,GAAE,KAAK;AAAA,YAAE;AAAA,UAAM;AAAA,UAAC,OAAO;AAAA,QAAI;AAAA,QAAC,IAAG,EAAE,MAAM,SAAO;AAAA,UAAY,GAAE,QAAM,GAAE,EAAE,MAAM,OAAM,EAAE,UAAS,GAAE,KAAK;AAAA,QAAO,SAAG,EAAE,MAAM,SAAO,WAAS,IAAG,QAAO;AAAA,UAAC,IAAI,KAAE,GAAE,OAAO,EAAE,MAAM;AAAA,UAAO,IAAG,OAAO,MAAG;AAAA,YAAS;AAAA,UAAO,GAAE,QAAM,GAAE,IAAE,EAAE,UAAS,GAAE,KAAK;AAAA,QAAC;AAAA,OAAE;AAAA,OAAG,CAAC,IAAE,MAAI;AAAA,MAAC,IAAG,GAAE,SAAO,gBAAc,EAAE,SAAO;AAAA,QAAa,OAAO;AAAA,MAAE,IAAI,KAAE,GAAE,QAAM,GAAE,MAAM,QAAM,WAAU,KAAE,EAAE,QAAM,EAAE,MAAM,QAAM,WAAU,IAAE,IAAG,SAAS,OAAI,IAAE,KAAE,IAAG,SAAS,OAAI;AAAA,MAAE,IAAG,MAAG,OAAO,GAAE,QAAM;AAAA,QAAW,OAAO,GAAE,KAAK,EAAC,OAAM,GAAE,UAAS,GAAE,UAAU,SAAO,KAAI,GAAE,EAAC,OAAM,IAAE,UAAS,EAAE,UAAU,SAAO,KAAI,CAAC;AAAA,MAAE,IAAI,KAAE,GAAE,QAAQ,EAAC,GAAE,KAAE,GAAE,QAAQ,EAAC;AAAA,MAAE,OAAO,KAAE,OAAI,KAAG,GAAE,SAAO,IAAE,KAAE,OAAI,KAAG,GAAE,SAAO,IAAE,OAAI,KAAE,KAAE,KAAE,IAAE,KAAE,KAAG;AAAA,KAAE;AAAA,KAAG,YAAY,CAAC,GAAE;AAAA,IAAC,IAAE,MAAM,QAAQ,CAAC,IAAE,IAAE,CAAC,CAAC;AAAA,IAAE,IAAI,IAAE,EAAE,QAAQ,QAAG,OAAO,QAAQ,EAAC,CAAC;AAAA,IAAE,IAAE,EAAE,QAAQ,EAAE,IAAE,QAAK,EAAE,IAAE,GAAG,EAAE,IAAI,QAAG,CAAC,GAAE,KAAK,GAAE,EAAC,CAAC,CAAC;AAAA,IAAE,IAAI,KAAE,IAAI,GAAE,MAAI,CAAC,CAAC;AAAA,IAAE,UAAQ,IAAE,OAAK,GAAE;AAAA,MAAC,IAAG,GAAE,WAAW,aAAa,GAAE;AAAA,QAAC,KAAG,EAAE,KAAK,GAAE,IAAE,GAAG,EAAC,CAAC,CAAC;AAAA,QAAE;AAAA,MAAQ;AAAA,MAAC,IAAI,KAAE,GAAG,EAAC,GAAE,IAAE;AAAA,MAAG,IAAG,GAAG,IAAE,QAAG;AAAA,QAAC,IAAG,GAAE,SAAO,cAAY,GAAE,MAAM,OAAK,OAAK,GAAG,KAAK,GAAE,MAAM,MAAM,CAAC,CAAC,GAAE;AAAA,UAAC,IAAI,KAAE,GAAE;AAAA,UAAM,GAAE,QAAM;AAAA,UAAI,IAAI,IAAE,GAAG,EAAC,GAAE,KAAE,GAAE,MAAM,CAAC,GAAE,KAAE,MAAI,MAAI,GAAG,EAAC,IAAE,CAAC,GAAE,GAAE,GAAG,EAAC,CAAC,CAAC;AAAA,UAAE,GAAE,IAAI,EAAC,EAAE,KAAK,GAAG,EAAC,GAAE,IAAE,MAAG,GAAE,QAAM;AAAA,UAAE;AAAA,QAAM;AAAA,QAAC,IAAG,GAAE,SAAO,cAAY,GAAE,UAAQ;AAAA,UAAO,OAAO;AAAA,OAAE,GAAE,CAAC;AAAA,QAAE,MAAM,IAAI,MAAM,qBAAqB,0JAAyJ;AAAA,IAAC;AAAA,IAAC,UAAQ,IAAE,OAAK;AAAA,MAAE,EAAE,MAAM,UAAQ,GAAE,IAAE,QAAG;AAAA,QAAC,IAAG,GAAE,SAAO,QAAO;AAAA,UAAC,IAAI,IAAE,GAAG,GAAE,QAAQ;AAAA,UAAE,GAAG,GAAE,QAAG;AAAA,YAAC,GAAE,SAAO,cAAY,GAAE,MAAM,OAAK,QAAM,GAAE,QAAM,IAAI,EAAE,MAAM,YAAY,GAAE,MAAM,MAAM,CAAC;AAAA,WAAK,GAAE,GAAE,WAAS,GAAG,CAAC;AAAA,QAAC;AAAA,OAAE,GAAE,EAAE,UAAU,OAAO,IAAE,QAAG;AAAA,QAAC,IAAI,IAAE,gBAAgB,EAAC;AAAA,QAAE,OAAO,GAAG,GAAE,IAAE,GAAE,GAAG,GAAE,EAAE,WAAS,GAAG,GAAE,CAAC,GAAE;AAAA,OAAE;AAAA,KAAG,cAAc,CAAC,GAAE,GAAE;AAAA,IAAC,IAAI,KAAE,GAAG,OAAK,MAAM,QAAQ,GAAG,IAAI,IAAE,EAAE,OAAK,CAAC,EAAE,IAAI,IAAE,CAAC,KAAK;AAAA,IAAE,UAAQ,IAAE,OAAK,OAAO,QAAQ,CAAC,GAAE;AAAA,MAAC,IAAI,IAAE,QAAQ,GAAE,UAAS,MAAG;AAAA,QAAC,OAAO,QAAG;AAAA,UAAC,IAAG,GAAE,OAAO,SAAO,eAAa,GAAE,SAAO,KAAG,CAAC,GAAE,SAAS,KAAK,MAAI,GAAE,MAAM,YAAU,CAAC,GAAE,SAAS,GAAE,MAAM,QAAQ,KAAG,CAAC,GAAE,MAAM,YAAU,CAAC,GAAE,GAAE,MAAM,OAAM,EAAC;AAAA,YAAG;AAAA,UAAO,IAAI,IAAE,GAAE,SAAS,OAAO,GAAE,KAAE,MAAK,KAAE;AAAA,UAAG;AAAA,YAAC,IAAI,KAAE,GAAG,UAAQ,CAAC;AAAA,YAAE,MAAI,KAAE,OAAO,OAAO,EAAC,SAAQ,WAAU,aAAY,eAAc,SAAQ,eAAc,GAAE,EAAC,IAAG,GAAE,QAAM,GAAE,MAAM,SAAO,cAAY,KAAE,GAAE,MAAM,QAAM,GAAE,MAAM,YAAU,GAAE,GAAE,MAAM,aAAW,KAAE,GAAE,GAAE,MAAM,WAAU,KAAE,QAAI,GAAE,GAAE,MAAM,SAAO,KAAE,GAAE,GAAE,MAAM,SAAO,GAAE,mBAAiB,KAAE,GAAE,eAAe,GAAE,KAAK,KAAG,MAAK,MAAG,GAAE,MAAM,aAAW,QAAM,IAAG,SAAS,GAAG,MAAI,SAAI,KAAE,GAAE,WAAS;AAAA,UAAI;AAAA,UAAC,IAAG,OAAI;AAAA,YAAK;AAAA,UAAO,IAAI;AAAA,UAAE;AAAA,YAAC,IAAI,KAAE,GAAG,aAAW;AAAA,YAAK,GAAE,WAAS,OAAI,SAAO,GAAE,SAAS,SAAO,cAAY,KAAE,GAAE,SAAS,QAAM,KAAI,GAAE,SAAS,SAAO,KAAE,GAAE,GAAE,SAAS,SAAO,KAAG,CAAC,OAAO,MAAM,OAAO,GAAE,SAAS,KAAK,CAAC,IAAE,KAAE,GAAG,GAAE,SAAS,WAAS,KAAE,OAAK,KAAE;AAAA,UAAI;AAAA,UAAC,IAAG,GAAE,YAAU,OAAI,QAAM,CAAC;AAAA,YAAE,OAAO,GAAE,OAAO,SAAO,cAAY,OAAU;AAAA,UAAE,KAAG,OAAI,SAAO,KAAE,GAAE,IAAE,EAAC,IAAG,OAAI,KAAE,QAAQ;AAAA,UAAW,IAAI,IAAE,GAAG,GAAE,IAAE,EAAC,UAAS,GAAC,CAAC,CAAC;AAAA,UAAE,OAAO,GAAG,GAAE,IAAE,GAAE,GAAG,GAAE,EAAE,WAAS,GAAG,GAAE,CAAC,GAAE;AAAA;AAAA;AAAA,MAAI,IAAI,KAAE;AAAA,MAAE,IAAG,CAAC,GAAG,KAAK,EAAC;AAAA,QAAE,MAAM,IAAI,MAAM,uBAAuB,2IAA0I;AAAA,MAAE,GAAG,0BAAwB,EAAE,UAAU,WAAW,IAAI,MAAI,EAAE,EAAC,UAAS,KAAE,CAAC,GAAE,EAAC,OAAM,GAAC,CAAC,GAAE,EAAE,UAAU,WAAW,IAAE,EAAE,EAAC,UAAS,MAAE,CAAC,GAAE,EAAC,OAAM,GAAC,CAAC,GAAE,EAAE,UAAU,QAAQ,IAAE,MAAI;AAAA,QAAC,IAAI,KAAE,GAAG,UAAQ,CAAC,GAAE,KAAE,IAAI,IAAI,OAAO,KAAK,EAAC,CAAC;AAAA,QAAE,GAAE,OAAO,gBAAgB,GAAE,GAAE,IAAI,SAAS,MAAI,GAAE,OAAO,SAAS,GAAE,GAAE,IAAI,IAAI;AAAA,QAAG,IAAI,IAAE,GAAG,aAAW,CAAC,GAAE,KAAE,MAAI,QAAM,CAAC,IAAE,OAAO,KAAK,CAAC;AAAA,QAAE,OAAM,CAAC,EAAC,kBAAiB,GAAG,0BAAwB,OAAG,QAAO,MAAM,KAAK,EAAC,GAAE,WAAU,GAAC,CAAC;AAAA,OAAE;AAAA,IAAC;AAAA,KAAG,aAAa,CAAC,GAAE,GAAE;AAAA,IAAC,KAAK,aAAa,GAAE,CAAC;AAAA,KAAG,eAAe,CAAC,GAAE,GAAE;AAAA,IAAC,KAAK,eAAe,GAAE,CAAC;AAAA,KAAG,OAAM,GAAG,GAAE,MAAI,EAAE,SAAO,CAAC,GAAE,OAAG,CAAC,GAAE,MAAM,CAAC,GAAE;AAAA,IAAC,OAAO;AAAA,KAAG,MAAM,CAAC,GAAE,GAAE;AAAA,IAAC,IAAI,KAAE;AAAA,IAAE,IAAG,CAAC;AAAA,MAAE,OAAO;AAAA,IAAE,IAAI,KAAE,GAAG,CAAC;AAAA,IAAE,SAAQ,KAAE,EAAE,KAAE,GAAE,QAAO,EAAE,IAAE;AAAA,MAAC,IAAI,KAAE,GAAE;AAAA,MAAG,IAAG,GAAE,QAAU;AAAA,QAAE,OAAO;AAAA,MAAE,KAAE,GAAE;AAAA,IAAE;AAAA,IAAC,OAAO,MAAG;AAAA,IAAE;AAAA,EAAE,OAAO,GAAE,gBAAc,GAAE,cAAc,KAAK,EAAC,GAAE,GAAE,kBAAgB,GAAE,gBAAgB,KAAK,EAAC,GAAE;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,IAAI,IAAE,CAAC;AAAA,EAAE,IAAE,MAAM,QAAQ,CAAC,IAAE,IAAE,CAAC,CAAC;AAAA,EAAE,IAAI,IAAE,EAAE,QAAQ,OAAG,OAAO,QAAQ,CAAC,CAAC;AAAA,EAAE,UAAQ,GAAE,MAAK;AAAA,IAAE,IAAG,OAAO,KAAG,UAAS;AAAA,MAAC,IAAG,CAAC,EAAE,WAAW,IAAI,GAAE;AAAA,QAAC,IAAG,MAAI,SAAQ;AAAA,UAAC,EAAE,KAAK,GAAE,GAAE,CAAC,GAAE,OAAO,CAAC,CAAC,CAAC;AAAA,UAAE;AAAA,QAAQ;AAAA,QAAC,IAAE,EAAE,QAAQ,YAAW,KAAK,EAAE,YAAY;AAAA,MAAC;AAAA,MAAC,EAAE,KAAK,GAAE,GAAE,OAAO,CAAC,CAAC,CAAC;AAAA,IAAC,EAAM,SAAG,MAAM,QAAQ,CAAC;AAAA,MAAE,SAAQ,MAAK;AAAA,QAAE,OAAO,MAAG,WAAS,EAAE,KAAK,GAAE,GAAE,EAAC,CAAC,IAAE,EAAE,KAAK,GAAE,GAAE,GAAG,EAAC,CAAC,CAAC;AAAA,IAAO;AAAA,YAAI,QAAM,EAAE,KAAK,GAAE,GAAE,GAAG,CAAC,CAAC,CAAC;AAAA,EAAE,OAAO;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE,GAAE;AAAA,EAAC,QAAO,OAAO,KAAG,WAAS,CAAC,CAAC,IAAE,GAAG,QAAQ,OAAG;AAAA,IAAC,IAAG,EAAE,KAAK,EAAE,SAAS,GAAG,GAAE;AAAA,MAAC,IAAI,IAAE,EAAE,QAAQ,KAAI,UAAU,GAAE,KAAE,GAAG,CAAC;AAAA,MAAE,OAAO,GAAG,IAAE,CAAC,GAAE;AAAA,IAAC,EAAM;AAAA,aAAO,GAAE,GAAE,CAAC;AAAA,GAAE;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE,GAAE,GAAE;AAAA,EAAC,GAAE,GAAE,OAAG;AAAA,IAAC,IAAG,EAAE,SAAO,QAAO;AAAA,MAAC,IAAI,IAAE,GAAG,EAAE,QAAQ;AAAA,MAAE,GAAG,GAAE,QAAG;AAAA,QAAC,GAAE,SAAO,cAAY,GAAE,UAAQ,IAAI,QAAM,GAAE,QAAM,IAAI,GAAG,CAAC;AAAA,OAAK,GAAE,EAAE,WAAS,GAAG,CAAC;AAAA,IAAC;AAAA,GAAE;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE,GAAE,GAAE;AAAA,EAAC,SAAQ,KAAK,GAAG,CAAC;AAAA,IAAE,EAAE,MAAM,aAAa,CAAC;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,IAAI,IAAE,CAAC;AAAA,EAAE,IAAG,eAAc,EAAE;AAAA,IAAM,UAAQ,GAAE,MAAK,OAAO,QAAQ,EAAE,MAAM,SAAS;AAAA,MAAE,EAAE,KAAK,GAAE,cAAa,GAAE,GAAG,CAAC,CAAC,CAAC;AAAA,EAAE,OAAO;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,OAAM,EAAC,OAAM,KAAI,IAAG,QAAO,GAAE,OAAM,QAAK,EAAE,SAAQ,CAAC,CAAC,GAAE,QAAO,EAAC,UAAS,GAAE,OAAM,SAAM,KAAI,EAAE,QAAO,CAAC,CAAC,EAAC,IAAG,WAAU,GAAE,OAAM,SAAM,KAAI,EAAE,UAAS,CAAC,CAAC,EAAC,IAAG,WAAU,GAAE,OAAM,SAAM,KAAI,EAAE,WAAU,CAAC,CAAC,EAAC,IAAG,aAAY,GAAE,OAAM,SAAM,KAAI,EAAE,UAAS,CAAC,CAAC,EAAC,IAAG,cAAa,GAAE,OAAM,SAAM,KAAI,EAAE,UAAS,CAAC,CAAC,EAAC,IAAG,SAAQ,GAAE,OAAM,SAAM,KAAI,EAAE,cAAa,CAAC,CAAC,EAAC,IAAG,eAAc,GAAE,OAAM,SAAM,KAAI,EAAE,YAAW,CAAC,CAAC,EAAC,IAAG,YAAW,GAAE,OAAM,SAAM,KAAI,EAAE,WAAU,CAAC,CAAC,EAAC,IAAG,oBAAmB,EAAC,SAAQ,EAAE,IAAI,CAAC,+BAA+B,CAAC,KAAG,KAAI,GAAE,0BAAyB,EAAC,SAAQ,EAAE,IAAI,CAAC,sCAAsC,CAAC,KAAG,KAAI,GAAE,UAAS,GAAE,OAAM,SAAM,KAAI,EAAE,aAAY,CAAC,CAAC,EAAC,GAAE,EAAC,EAAC;AAAA;AAA8G,SAAS,EAAE,CAAC,GAAE,GAAE;AAAA,EAAC,IAAI,IAAE,EAAC,QAAO,GAAE,SAAQ,CAAC,GAAE,SAAQ,CAAC,GAAE,SAAQ,EAAC,OAAM,CAAC,EAAC,GAAE,OAAM,CAAC,GAAE,QAAO,CAAC,GAAE,QAAO,gBAAgB,EAAE,EAAC;AAAA,EAAE,SAAQ,KAAK;AAAA,IAAE,GAAG,GAAE,CAAC;AAAA,EAAE,SAAQ,KAAK,EAAE;AAAA,IAAQ,cAAa,KAAG,EAAE,aAAgB,cAAI,EAAE,OAAO,WAAS,EAAE,YAAU,OAAM,YAAW,KAAG,EAAE,WAAc,cAAI,EAAE,OAAO,SAAO,EAAE,UAAQ,KAAI,eAAc,KAAG,EAAE,cAAiB,cAAI,EAAE,OAAO,YAAU,EAAE,aAAW,CAAC,IAAG,eAAc,KAAG,EAAE,cAAiB,cAAI,EAAE,OAAO,YAAU,EAAE,aAAW;AAAA,EAAI,IAAI,IAAE,GAAG,CAAC;AAAA,EAAE,OAAM,EAAC,gBAAe,KAAI,EAAE,QAAO,SAAQ,EAAE,SAAQ,OAAM,EAAE,OAAM,SAAQ,EAAE,QAAO,GAAE,mBAAkB,EAAC;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE,GAAE;AAAA,EAAC,IAAG,MAAM,QAAQ,CAAC,KAAG,GAAG,EAAE,EAAE;AAAA,IAAE,OAAO,EAAE,OAAO,CAAC;AAAA,EAAE,IAAG,MAAM,QAAQ,CAAC,KAAG,GAAG,EAAE,EAAE,KAAG,GAAG,CAAC;AAAA,IAAE,OAAM,CAAC,GAAE,GAAG,CAAC;AAAA,EAAE,IAAG,MAAM,QAAQ,CAAC;AAAA,IAAE,OAAO;AAAA;AAAE,SAAS,EAAE,CAAC,KAAG,QAAO,GAAE,MAAK,GAAE,MAAK,GAAE,WAAU,KAAG;AAAA,EAAC,IAAI,KAAE,CAAC;AAAA,EAAE,SAAQ,MAAK,EAAE,WAAS,CAAC;AAAA,IAAE,yBAAwB,KAAE,GAAE,KAAK,KAAI,GAAE,GAAE,WAAU,EAAC,CAAC,KAAE,aAAY,MAAE,GAAE,KAAK,KAAI,IAAE,WAAU,EAAC,CAAC,IAAE,GAAE,KAAK,EAAC,SAAQ,IAAE,WAAU,EAAC,CAAC;AAAA,EAAE,IAAG,MAAM,QAAQ,EAAE,OAAO,KAAG,EAAE,QAAQ,WAAS;AAAA,IAAE,MAAM,IAAI,MAAM,oGAAoG;AAAA,EAAE,SAAQ,MAAK,EAAE,WAAS,CAAC;AAAA,IAAE,GAAG,GAAE,EAAC,MAAK,GAAE,MAAK,GAAE,QAAO,IAAE,WAAU,EAAC,CAAC;AAAA,EAAE,SAAQ,MAAK;AAAA,IAAE,EAAE,QAAQ,KAAK,EAAC,GAAE,GAAE,UAAQ,GAAG,GAAE,EAAC,MAAK,GAAE,MAAK,GAAE,QAAO,GAAE,QAAO,WAAU,CAAC,CAAC,GAAE,UAAS,CAAC;AAAA,EAAE,IAAI,IAAE,EAAE,WAAS,CAAC,GAAE,IAAE,MAAM,QAAQ,CAAC,IAAE,IAAE,EAAE;AAAA,EAAM,SAAQ,MAAK;AAAA,IAAE,EAAE,QAAQ,MAAM,KAAK,OAAO,MAAG,WAAS,KAAE,EAAC,MAAK,GAAE,SAAQ,GAAC,CAAC;AAAA,EAAE,EAAE,QAAQ,KAAK,CAAC;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,IAAI,IAAE,IAAI,KAAI,IAAE,GAAG,EAAE,QAAO,MAAI,EAAE,OAAM,CAAC,GAAE,IAAE,OAAO,OAAO,GAAE,EAAC,OAAM,GAAE,QAAO,EAAE,CAAC;AAAA,EAAE,SAAS,CAAC,CAAC,IAAE;AAAA,IAAC,OAAO,OAAO,MAAG,aAAW,GAAE,CAAC,KAAG,OAAK,MAAG;AAAA;AAAA,EAAK,SAAQ,MAAK,EAAE,SAAQ;AAAA,IAAC,IAAI,IAAE,GAAE,SAAO,CAAC,GAAE,IAAE,EAAE,UAAQ,CAAC;AAAA,IAAE,SAAQ,MAAK;AAAA,MAAE,OAAI,YAAU,EAAE,IAAI,EAAC;AAAA,IAAE,OAAO,OAAO,EAAE,OAAM,CAAC;AAAA,IAAE,SAAQ,MAAK;AAAA,MAAE,EAAE,OAAO,QAAK,CAAC,GAAE,EAAE,OAAO,IAAG,KAAK,EAAE,GAAE;AAAA,EAAC;AAAA,EAAC,OAAO,EAAE,MAAM;AAAA,EAAO,SAAQ,MAAK,EAAE,QAAO;AAAA,IAAC,IAAI,IAAE,CAAC,EAAE,MAAM,KAAG,GAAG,EAAE,OAAO,GAAE;AAAA,IAAE,EAAE,MAAM,MAAG,MAAI;AAAA,MAAC,IAAI,IAAE,EAAE,IAAI,CAAC;AAAA,MAAE,OAAO,GAAG,CAAC,GAAE,GAAE,EAAE;AAAA;AAAA,EAAE;AAAA,EAAC,SAAQ,MAAK,EAAE;AAAA,IAAM,EAAE,MAAM,MAAG,EAAE,EAAE,MAAM,GAAE;AAAA,EAAE,IAAG,EAAE,MAAM,WAAS,OAAO,EAAE,MAAM,WAAS;AAAA,IAAS,SAAQ,MAAK,OAAO,KAAK,EAAE,MAAM,OAAO,GAAE;AAAA,MAAC,IAAI,IAAE,EAAE,MAAM,QAAQ;AAAA,MAAG,KAAG,OAAO,KAAG,cAAW,SAAQ,OAAG,SAAQ,OAAG,SAAQ,OAAI,EAAE,MAAM,QAAQ,MAAG,EAAE;AAAA,IAAK;AAAA,EAAC,OAAO;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE,GAAE;AAAA,EAAC,IAAI,IAAE,EAAE,MAAM,aAAW,CAAC;AAAA,EAAE,IAAG,OAAO,KAAG,YAAU,MAAI;AAAA,IAAK;AAAA,EAAO,IAAI,IAAE,GAAG,GAAE,CAAC;AAAA,EAAE,EAAE,WAAS,KAAG,EAAE,UAAU,OAAO,aAAY,MAAI,gBAAgB,CAAC,CAAC;AAAA;AAAE,SAAS,EAAE,GAAE,QAAO,GAAE,SAAQ,GAAE,SAAQ,KAAG,GAAE;AAAA,EAAC,IAAI,IAAE,CAAC,GAAE,KAAE;AAAA,EAAK,IAAG,KAAG,EAAE,KAAK,GAAE,iBAAgB,MAAM,CAAC,IAAG,OAAO,KAAG,YAAU,OAAO,KAAG,YAAU,MAAI,SAAM,aAAY,OAAI,EAAE,KAAK,GAAE,kBAAiB,OAAO,KAAG,WAAS,IAAE,EAAE,OAAO,CAAC,GAAE,OAAO,KAAG,YAAU,MAAI,MAAK;AAAA,IAAC,KAAE,IAAI;AAAA,IAAI,IAAI,IAAE,MAAM,KAAK,EAAE,MAAM,UAAU,cAAc,EAAE,QAAQ,CAAC;AAAA,IAAE,IAAG,EAAE,KAAK,CAAC,GAAE,OAAI,GAAG,EAAE,IAAG,GAAE,IAAG,KAAK,CAAC,GAAE,EAAE,SAAO,GAAE;AAAA,MAAC,KAAI,KAAG,EAAE;AAAA,MAAG,EAAE,KAAK,GAAE,UAAS,kCAAkC,OAAM,CAAC,GAAE,aAAY,MAAM,CAAC,CAAC,CAAC;AAAA,IAAC;AAAA,IAAC,UAAQ,GAAE,OAAK,OAAO,QAAQ,CAAC,GAAE;AAAA,MAAC,IAAG,OAAO,MAAG;AAAA,QAAS,IAAG,SAAQ;AAAA,UAAE,KAAE,GAAE;AAAA,QAAS;AAAA;AAAA,MAAS,GAAE,IAAI,GAAE,GAAE,UAAS,aAAa,OAAK,CAAC,GAAE,aAAY,EAAC,CAAC,CAAC,CAAC;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,IAAG,OAAO,KAAG,YAAU,MAAI,MAAK;AAAA,IAAC,IAAI,IAAE,OAAO,QAAQ,CAAC,EAAE,OAAO,EAAE,OAAK,MAAI,SAAS,EAAE,IAAI,EAAE,GAAE,QAAK,CAAC,GAAE,EAAE,MAAM,aAAa,GAAE,CAAC,cAAc,CAAC,GAAE,EAAC,CAAC,EAAE,OAAO,OAAO;AAAA,IAAE,EAAE,KAAK,CAAC,GAAE,OAAI,GAAG,EAAE,IAAG,GAAE,IAAG,KAAK,CAAC;AAAA,IAAE,UAAQ,KAAG,OAAK;AAAA,MAAE,IAAG,MAAG,GAAE,IAAI,CAAC;AAAA,QAAE,GAAE,IAAI,CAAC,EAAE,MAAM,KAAK,GAAE,kBAAiB,EAAC,CAAC;AAAA,MAAM;AAAA,QAAC,IAAG;AAAA,UAAE;AAAA,QAAS,EAAE,KAAK,GAAE,UAAS,gCAAgC,OAAM,CAAC,GAAE,kBAAiB,EAAC,CAAC,CAAC,CAAC;AAAA;AAAA,EAAE;AAAA,EAAC,IAAG;AAAA,IAAE,YAAS,MAAK;AAAA,MAAE,EAAE,KAAK,CAAC;AAAA,EAAE,OAAO;AAAA;AAAE,SAAS,EAAE,GAAE,YAAW,GAAE,QAAO,KAAG;AAAA,EAAC,IAAI,IAAE,EAAE,YAAW,IAAI,IAAG,GAAE,IAAE,WAAS,MAAM,QAAQ,CAAC,IAAE,IAAE,CAAC,CAAC;AAAA,EAAE,IAAG,MAAI,WAAU;AAAA,IAAC,IAAI;AAAA,IAAE,IAAG,MAAM,QAAQ,CAAC,KAAG,OAAO,KAAG,aAAW,KAAE,IAAE,OAAO,KAAG,aAAW,KAAE,CAAC,CAAC,IAAG,MAAM,QAAQ,EAAC;AAAA,MAAE,SAAQ,KAAK;AAAA,QAAE,MAAI,WAAS,IAAE,OAAG,QAAQ,KAAK,yHAAyH,KAAG,EAAE,SAAS,GAAG,MAAI,IAAE,OAAG,QAAQ,KAAK,2HAA2H;AAAA,IAAG,IAAE;AAAA,EAAC;AAAA,EAAC,MAAI,SAAO,MAAI,aAAW,EAAE,QAAO,WAAW,MAAM,MAAM,IAAE,MAAI,UAAQ,EAAE,QAAO,qCAAqC,IAAE,MAAI,YAAU,EAAE,QAAO,CAAC,IAAE,MAAI,WAAS,EAAE,QAAO,QAAQ,MAAM;AAAA;AAAG,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,UAAQ,GAAE,MAAI,CAAC,CAAC,KAAI,KAAK,GAAE,CAAC,MAAK,WAAW,GAAE,CAAC,KAAI,OAAO,GAAE,CAAC,MAAK,cAAc,GAAE,CAAC,KAAI,QAAQ,GAAE,CAAC,MAAK,aAAa,GAAE,CAAC,KAAI,MAAM,GAAE,CAAC,MAAK,UAAU,CAAC;AAAA,IAAE,EAAE,UAAU,OAAO,kBAAkB,KAAI,MAAI,CAAC,GAAE,0BAAyB,MAAM,YAAY,GAAE,GAAE,oBAAmB,2CAA2C,CAAC,CAAC;AAAA,EAAE,EAAE,UAAU,OAAO,eAAc,MAAI,CAAC,GAAE,uBAAsB,UAAU,CAAC,CAAC,GAAE,EAAE,UAAU,OAAO,gBAAe,MAAI,CAAC,GAAE,uBAAsB,WAAW,CAAC,CAAC,GAAE,EAAE,UAAU,OAAO,kBAAiB,MAAI,CAAC,GAAE,uBAAsB,aAAa,CAAC,CAAC,GAAE,EAAE,UAAU,OAAO,mBAAkB,MAAI,CAAC,GAAE,uBAAsB,cAAc,CAAC,CAAC,GAAE,EAAE,UAAU,OAAO,mBAAkB,MAAI,CAAC,GAAE,mBAAkB,UAAU,CAAC,CAAC,GAAE,EAAE,UAAU,OAAO,oBAAmB,MAAI,CAAC,GAAE,mBAAkB,WAAW,CAAC,CAAC,GAAE,EAAE,UAAU,OAAO,sBAAqB,MAAI,CAAC,GAAE,mBAAkB,aAAa,CAAC,CAAC,GAAE,EAAE,UAAU,OAAO,uBAAsB,MAAI,CAAC,GAAE,mBAAkB,cAAc,CAAC,CAAC,GAAE,EAAE,UAAU,WAAW,gBAAe,OAAG;AAAA,IAAC,IAAG,CAAC,EAAE,SAAO,EAAE,MAAM,SAAO;AAAA,MAAY;AAAA,IAAO,IAAI,IAAE,EAAE,MAAM,QAAQ,EAAE,MAAM,OAAM,CAAC,cAAc,CAAC;AAAA,IAAE,IAAG;AAAA,MAAE,OAAM,CAAC,GAAE,aAAY,CAAC,CAAC;AAAA,GAAE,GAAE,EAAE,UAAU,OAAO,qBAAoB,MAAI,CAAC,GAAE,iBAAgB,UAAU,CAAC,CAAC,GAAE,EAAE,UAAU,OAAO,oBAAmB,MAAI,CAAC,GAAE,gCAA+B,OAAO,GAAE,GAAE,wBAAuB,OAAO,CAAC,CAAC,GAAE,EAAE,UAAU,OAAO,oBAAmB,MAAI,CAAC,GAAE,gCAA+B,OAAO,GAAE,GAAE,wBAAuB,OAAO,CAAC,CAAC,GAAE,EAAE,UAAU,WAAW,eAAc,OAAG;AAAA,IAAC,IAAG,CAAC,EAAE,UAAS;AAAA,MAAC,IAAG,CAAC,EAAE;AAAA,QAAM,OAAM,CAAC,GAAE,eAAc,GAAG,CAAC;AAAA,MAAE,IAAG,EAAE,MAAM,SAAO;AAAA,QAAY,OAAM,CAAC,GAAE,eAAc,EAAE,MAAM,KAAK,CAAC;AAAA,MAAE,IAAG,EAAE,EAAE,MAAM,KAAK;AAAA,QAAE,OAAM,CAAC,GAAE,eAAc,EAAE,MAAM,KAAK,CAAC;AAAA,IAAC;AAAA,GAAE,GAAE,EAAE,UAAU,WAAW,aAAY,OAAG;AAAA,IAAC,IAAG,CAAC,EAAE,UAAS;AAAA,MAAC,IAAG,CAAC,EAAE;AAAA,QAAM,OAAM,CAAC,GAAE,aAAY,GAAG,CAAC;AAAA,MAAE,IAAG,EAAE,MAAM,SAAO;AAAA,QAAY,OAAM,CAAC,GAAE,aAAY,EAAE,MAAM,KAAK,CAAC;AAAA,MAAE,IAAG,EAAE,EAAE,MAAM,KAAK;AAAA,QAAE,OAAM,CAAC,GAAE,aAAY,EAAE,MAAM,KAAK,CAAC;AAAA,IAAC;AAAA,GAAE;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE,GAAE;AAAA,EAAC,IAAI,IAAE,EAAE,MAAM,WAAS,CAAC,GAAE,IAAE,EAAE,SAAS,IAAI,KAAK,GAAG,SAAO,GAAE,IAAE,CAAC;AAAA,EAAE,UAAQ,GAAE,MAAK,OAAO,QAAQ,CAAC,GAAE;AAAA,IAAC,IAAI,IAAE,QAAQ,CAAC,IAAE;AAAA,MAAC,EAAE,SAAS,OAAO,GAAE,QAAG;AAAA,QAAC,GAAE,QAAM,CAAC,GAAE,UAAS,IAAE,GAAE,KAAK,CAAC;AAAA,SAAG,EAAC,OAAM,GAAC,CAAC;AAAA;AAAA,IAAG,IAAI,KAAE;AAAA,IAAE,IAAI,KAAE,EAAE,SAAS,IAAI,CAAC,GAAE,KAAE,EAAE,MAAM,aAAa,GAAE,CAAC,cAAc,CAAC;AAAA,IAAE,IAAG,MAAG,MAAG,CAAC,EAAE,MAAM,WAAW,gBAAgB,GAAG;AAAA,MAAE;AAAA,IAAS,IAAI,KAAE;AAAA,IAAG,OAAO,KAAG,aAAW,KAAE;AAAA,IAAI,IAAI,KAAE,GAAG,CAAC;AAAA,IAAE,KAAE,EAAE,KAAK,CAAC,IAAE,EAAE,CAAC;AAAA,EAAC;AAAA,EAAC,IAAG,EAAE,WAAS,GAAE;AAAA,IAAC,YAAS,MAAK,EAAE,SAAS;AAAA,MAAS,EAAE,QAAM,MAAI,EAAE,SAAO,EAAE;AAAA,IAAQ,EAAE,SAAS,aAAW,IAAI,IAAI,MAAM,KAAK,EAAE,SAAS,UAAU,EAAE,IAAI,EAAE,GAAE,QAAM,IAAE,MAAI,KAAG,EAAE,SAAQ,CAAC,GAAE,CAAC,EAAE,CAAC;AAAA,IAAE,UAAQ,GAAE,MAAK,EAAE,QAAQ;AAAA,MAAE,EAAE,IAAE,IAAE,CAAC;AAAA,EAAC;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,QAAO,MAAM,QAAQ,CAAC,IAAE,IAAE,CAAC,CAAC,GAAG,IAAI,OAAG,OAAO,KAAG,WAAS,EAAC,KAAI,EAAC,IAAE,KAAG,OAAO,KAAG,WAAS,IAAE,IAAI,EAAE,IAAI,OAAG;AAAA,IAAC,IAAG,MAAI;AAAA,MAAK,OAAO;AAAA,IAAK,IAAG,SAAQ;AAAA,MAAE,OAAO,EAAE;AAAA,IAAI,IAAI,IAAE;AAAA,IAAG,OAAO,EAAE,QAAW,cAAI,KAAG,GAAG,EAAE,YAAW,KAAG,SAAQ,EAAE,QAAW,cAAI,KAAG,OAAO,EAAE,QAAO,IAAI;AAAA,GAAK,EAAE,OAAO,OAAO,EAAE,KAAK,IAAI;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE,GAAE;AAAA,EAAC,IAAI,IAAE,EAAE,MAAM,QAAM,CAAC,GAAE,IAAE,EAAE,MAAM,YAAU,CAAC,GAAE,IAAE,EAAE,MAAM,QAAM,CAAC;AAAA,EAAE,IAAG,OAAO,KAAK,CAAC,EAAE,SAAO,GAAE;AAAA,IAAC,IAAI,KAAE,EAAE,SAAS,IAAI,MAAM,GAAE,IAAE,IAAG,SAAQ,IAAE,IAAG;AAAA,IAAU,EAAE,SAAS,WAAW,QAAO,CAAC,IAAE,OAAI;AAAA,MAAC,IAAI,KAAE,GAAE;AAAA,MAAM,OAAO,MAAG,GAAE,SAAO,WAAS,GAAE,SAAS,IAAE,IAAI,IAAE,KAAI,IAAE,OAAM,EAAC,MAAK,aAAY,OAAM,EAAE,GAAE,OAAM,EAAC,CAAC,IAAE,IAAI,IAAE,EAAC;AAAA,OAAG,EAAC,WAAU,EAAC,CAAC;AAAA,EAAC;AAAA,EAAC,IAAG,OAAO,KAAK,CAAC,EAAE,SAAO,GAAE;AAAA,IAAC,IAAI,KAAE,EAAE,SAAS,IAAI,UAAU,GAAE,IAAE,IAAG,SAAQ,IAAE,IAAG;AAAA,IAAU,EAAE,SAAS,WAAW,YAAW,CAAC,IAAE,OAAI;AAAA,MAAC,IAAI,KAAE,GAAE;AAAA,MAAM,OAAO,MAAG,GAAE,SAAO,WAAS,GAAE,SAAS,IAAE,IAAI,IAAE,KAAI,IAAE,OAAM,EAAC,MAAK,aAAY,OAAM,EAAE,GAAE,OAAM,EAAC,CAAC,IAAE,IAAI,IAAE,EAAC;AAAA,OAAG,EAAC,WAAU,EAAC,CAAC;AAAA,EAAC;AAAA,EAAC,IAAG,OAAO,KAAK,CAAC,EAAE,SAAO,GAAE;AAAA,IAAC,IAAI,KAAE,EAAE,SAAS,IAAI,MAAM,GAAE,IAAE,IAAG,SAAQ,IAAE,IAAG;AAAA,IAAU,EAAE,SAAS,WAAW,QAAO,CAAC,IAAE,OAAI;AAAA,MAAC,IAAI,KAAE,GAAE;AAAA,MAAM,OAAO,MAAG,GAAE,SAAO,WAAS,GAAE,SAAS,IAAE,IAAI,IAAE,KAAI,IAAE,OAAM,EAAC,MAAK,aAAY,OAAM,EAAE,GAAE,OAAM,EAAC,CAAC,IAAE,IAAI,IAAE,EAAC;AAAA,OAAG,EAAC,WAAU,EAAC,CAAC;AAAA,EAAC;AAAA;AAAoB,eAAe,EAAE,GAAE,cAAa,GAAE,MAAK,GAAE,KAAI,GAAE,YAAW,GAAE,SAAQ,KAAG;AAAA,EAAC,IAAI,KAAE,GAAE,IAAE,CAAC,GAAE,IAAE,CAAC;AAAA,EAAE,GAAE,GAAE,CAAC,MAAG,QAAO,GAAE,aAAY,IAAE,SAAQ,SAAK;AAAA,IAAC,IAAG,GAAE,SAAO,WAAU;AAAA,MAAC,IAAG,GAAE,SAAO,WAAU;AAAA,QAAC,IAAG,MAAI;AAAA,UAAK,MAAM,IAAI,MAAM,6BAA6B;AAAA,QAAE,IAAI,IAAE,GAAE,OAAO,MAAM,GAAE,EAAE;AAAA,QAAE,IAAG,EAAE,WAAS;AAAA,UAAE,MAAM,IAAI,MAAM,6BAA6B;AAAA,QAAE,IAAI,KAAE,CAAC;AAAA,QAAE,SAAQ,MAAK,GAAE,SAAO,CAAC,GAAE;AAAA,UAAC,IAAG,GAAE,SAAO;AAAA,YAAc,MAAM,IAAI,MAAM;AAAA;AAAA,EAEvqgB,IAAG,CAAC,EAAC,CAAC;AAAA;AAAA,yDAEiD;AAAA,UAAE,IAAG,GAAE,UAAa;AAAA,YAAE;AAAA,UAAS,IAAI,KAAE,GAAE,OAAM,IAAE,EAAE,IAAE,GAAG,EAAE,IAAI,QAAG;AAAA,YAAC,IAAG,KAAE,GAAE,KAAK,GAAE,OAAI;AAAA,cAAO,OAAO;AAAA,YAAK,IAAG,OAAI;AAAA,cAAO,OAAM;AAAA,YAAG,IAAG,OAAI;AAAA,cAAQ,OAAM;AAAA,YAAG,IAAG,OAAO,MAAM,OAAO,EAAC,CAAC,GAAE;AAAA,cAAC,IAAG,GAAE,OAAK,OAAK,GAAE,GAAE,SAAO,OAAK,OAAK,GAAE,OAAK,OAAK,GAAE,GAAE,SAAO,OAAK;AAAA,gBAAI,OAAO,GAAE,MAAM,GAAE,EAAE;AAAA,cAAE,IAAG,GAAE,OAAK,OAAK,GAAE,GAAE,SAAO,OAAK;AAAA,gBAAI,MAAM,IAAI,MAAM,yDAAyD,IAAG,CAAC,EAAC,CAAC,EAAE,KAAK;AAAA;AAAA,kGAEzV;AAAA,YAAC,EAAM;AAAA,qBAAO,OAAO,EAAC;AAAA,YAAE,OAAO;AAAA,WAAE;AAAA,UAAE,GAAE,GAAE,YAAU,EAAE,WAAS,IAAE,EAAE,KAAG;AAAA,QAAC;AAAA,QAAC,EAAE,KAAK,CAAC,EAAC,IAAG,GAAE,MAAK,GAAE,MAAK,WAAU,CAAC,CAAC,GAAE,UAAS,GAAE,OAAO,KAAK,EAAC,EAAE,SAAO,IAAE,KAAE,IAAI,CAAC,GAAE,GAAE,CAAC,CAAC,GAAE,MAAG;AAAA,QAAE;AAAA,MAAM;AAAA,MAAC,IAAG,GAAE,SAAO,WAAU;AAAA,QAAC,IAAG,GAAE,MAAM,SAAO;AAAA,UAAE,MAAM,IAAI,MAAM,+BAA+B;AAAA,QAAE,IAAG,MAAI;AAAA,UAAK,MAAM,IAAI,MAAM,6BAA6B;AAAA,QAAE,EAAE,KAAK,EAAC,IAAG,GAAE,OAAO,MAAM,GAAE,EAAE,GAAE,MAAK,GAAE,MAAK,WAAU,CAAC,CAAC,GAAE,UAAS,CAAC,GAAE,GAAE,CAAC,CAAC,GAAE,MAAG;AAAA,QAAE;AAAA,MAAM;AAAA,IAAC;AAAA,GAAE,GAAE,GAAG,CAAC;AAAA,EAAE,IAAI,KAAE,EAAE;AAAA,EAAkB,IAAG,EAAE,oBAAkB,QAAQ,CAAC,GAAE,IAAE;AAAA,IAAC,OAAO,EAAE,WAAW,IAAI,IAAE,GAAE,GAAE,EAAC,KAAG,MAAG,GAAG,EAAC,cAAa,GAAE,MAAK,GAAE,KAAI,GAAE,SAAQ,GAAE,SAAQ,CAAC,GAAE,eAAc,CAAC,EAAC,CAAC,GAAE,EAAE,kBAAkB,GAAE,EAAC;AAAA,KAAI,CAAC,EAAE,UAAQ,CAAC,EAAE;AAAA,IAAO,OAAO;AAAA,EAAE,KAAI,IAAE,MAAG,MAAM,QAAQ,IAAI,CAAC,QAAQ,IAAI,EAAE,IAAI,SAAO,IAAG,IAAE,MAAK,GAAE,WAAU,SAAK;AAAA,IAAC,IAAI,KAAE,MAAM,EAAE,IAAE,GAAE,QAAQ;AAAA,IAAE,OAAM,EAAC,MAAK,IAAE,MAAK,GAAE,MAAK,QAAO,GAAE,QAAO,WAAU,GAAC;AAAA,GAAE,CAAC,GAAE,QAAQ,IAAI,EAAE,IAAI,UAAQ,IAAG,IAAE,MAAK,GAAE,WAAU,MAAG,QAAK;AAAA,IAAC,IAAI,IAAE,MAAM,EAAE,IAAE,GAAE,QAAQ;AAAA,IAAE,OAAM,EAAC,MAAK,IAAE,MAAK,EAAE,MAAK,QAAO,EAAE,QAAO,SAAQ,IAAE,WAAU,GAAC;AAAA,GAAE,CAAC,CAAC,CAAC;AAAA,EAAE,OAAO,MAAG,GAAG,EAAC,cAAa,GAAE,MAAK,GAAE,KAAI,GAAE,SAAQ,GAAE,SAAQ,IAAE,eAAc,GAAC,CAAC,GAAE;AAAA;AAAE,SAAS,EAAE,GAAE,cAAa,GAAE,MAAK,GAAE,KAAI,GAAE,SAAQ,GAAE,SAAQ,GAAE,eAAc,MAAG;AAAA,EAAC,IAAI,IAAE,GAAE,KAAE,CAAC,GAAG,GAAE,IAAI,QAAG;AAAA,IAAC,IAAG,CAAC,GAAE;AAAA,MAAQ,OAAM,EAAC,QAAO,EAAC,SAAQ,CAAC,GAAE,MAAM,EAAC,GAAE,MAAK,GAAE,MAAK,WAAU,GAAE,UAAS;AAAA,IAAE,IAAG,yBAAwB,GAAE;AAAA,MAAO,OAAM,EAAC,QAAO,EAAC,SAAQ,CAAC,GAAE,OAAO,GAAE,OAAO,CAAC,EAAC,GAAE,MAAK,GAAE,MAAK,WAAU,GAAE,UAAS;AAAA,IAAE,MAAM,IAAI,MAAM,eAAe,GAAE,+BAA+B;AAAA,GAAE,GAAE,GAAG,CAAC,KAAG,gBAAe,OAAG,GAAG,GAAE,CAAC,EAAC,QAAO,GAAG,EAAE,KAAK,GAAE,MAAK,GAAE,WAAU,KAAE,GAAE,GAAG,IAAE,EAAC,QAAO,EAAC,SAAQ,CAAC,EAAE,EAAC,GAAE,MAAK,GAAE,WAAU,KAAE,CAAC,CAAC,KAAG,gBAAe,IAAE,mBAAkB,OAAG,GAAG,GAAE,EAAC,GAAE,IAAE,EAAE;AAAA,EAAkB,EAAE,oBAAkB,QAAQ,CAAC,IAAE,IAAE;AAAA,IAAC,IAAG,GAAE,OAAK,OAAK,GAAE,OAAK;AAAA,MAAI,OAAO,EAAE,IAAE,EAAC;AAAA,IAAE,IAAI,IAAE,GAAE,MAAM,IAAO,SAAC;AAAA,IAAE,IAAG,MAAM,QAAQ,CAAC,KAAG,EAAE,WAAS;AAAA,MAAE,OAAO,EAAE;AAAA,IAAG,IAAG,MAAM,QAAQ,CAAC;AAAA,MAAE,OAAO,EAAE,KAAK,IAAI;AAAA,IAAE,IAAG,OAAO,KAAG;AAAA,MAAS,OAAO;AAAA;AAAA,EAAG,IAAI,KAAE,EAAC,cAAa,GAAE,KAAI,GAAE,gBAAe,IAAE,aAAY,MAAK,OAAO,CAAC,IAAE;AAAA,IAAC,KAAG;AAAA,IAAE,EAAC,GAAE,KAAE,GAAG,KAAI,IAAE,eAAc,MAAE,CAAC,GAAE;AAAA,EAAE,WAAQ,SAAQ,IAAE,WAAU,QAAK,GAAE;AAAA,IAAQ,MAAG,MAAI,GAAG,KAAI,IAAE,eAAc,KAAE,CAAC,GAAE,GAAE,CAAC,KAAG,GAAE,EAAC;AAAA,EAAE,IAAG,GAAG,GAAE,IAAE,EAAC,GAAE,GAAG,GAAE,IAAE,EAAC,GAAE,GAAG,IAAE,CAAC,GAAE,GAAG,IAAE,CAAC,GAAE,GAAG,IAAE,CAAC,GAAE,CAAC,EAAE,MAAM,UAAQ,GAAE,QAAO;AAAA,IAAC,IAAG,GAAE,OAAO,SAAS,GAAG,MAAI,GAAE,SAAO,GAAE,OAAO,MAAM,GAAE,EAAE,GAAE,QAAQ,KAAK,eAAe,GAAE,mNAAmN,IAAG,CAAC,GAAG,KAAK,GAAE,MAAM;AAAA,MAAE,MAAM,IAAI,MAAM,eAAe,GAAE,0EAA0E;AAAA,IAAE,EAAE,MAAM,SAAO,GAAE;AAAA,EAAM;AAAA,EAAC,IAAG,CAAC,EAAE,aAAW,GAAE,cAAY,SAAK,EAAE,YAAU,OAAI,OAAO,GAAE,aAAW,UAAS;AAAA,IAAC,IAAI,KAAE,GAAE;AAAA,IAAU,GAAE,GAAE,CAAC,MAAG,aAAY,IAAE,QAAO,QAAK;AAAA,MAAC,IAAG,GAAE,SAAO,aAAW,EAAE,GAAE,SAAO,eAAa,GAAE,WAAS;AAAA,QAAa,OAAO,GAAG,SAAO,UAAQ,EAAE,aAAW,KAAE,KAAG,GAAE,GAAE,IAAE,CAAC,EAAC,CAAC,CAAC,GAAE;AAAA,KAAG;AAAA,EAAC;AAAA,EAAC,SAAQ,MAAK,GAAE;AAAA,IAAU,EAAE,kBAAkB,IAAI,EAAC;AAAA,EAAE,SAAQ,MAAK,GAAE,QAAQ,OAAM;AAAA,IAAC,IAAG,SAAQ;AAAA,MAAE,MAAM,IAAI,MAAM;AAAA;AAAA,EAE59F,KAAK,UAAU,IAAE,MAAK,CAAC;AAAA;AAAA,yCAEgB;AAAA,IAAE,IAAI,KAAE;AAAA,IAAG,GAAE,QAAQ,MAAI,QAAM,KAAE,MAAG,GAAE,UAAQ,GAAE,QAAQ,MAAM,CAAC,IAAG,EAAE,KAAK,KAAI,IAAE,SAAQ,GAAC,CAAC;AAAA,EAAC;AAAA,EAAC,OAAO;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,IAAI,IAAE,CAAC,CAAC;AAAA,EAAE,SAAQ,IAAE,EAAE,IAAE,EAAE,QAAO;AAAA,IAAI,EAAE,WAAW,CAAC,MAAI,MAAI,EAAE,KAAK,IAAE,CAAC;AAAA,EAAE,SAAS,CAAC,CAAC,GAAE;AAAA,IAAC,IAAI,KAAE,GAAE,IAAE,EAAE;AAAA,IAAO,MAAK,IAAE,KAAG;AAAA,MAAC,IAAI,MAAG,IAAE,MAAI,GAAE,KAAE,KAAE;AAAA,MAAE,EAAE,OAAI,KAAG,KAAE,KAAE,GAAE,IAAE,IAAE,KAAE,KAAG,IAAE;AAAA,IAAC;AAAA,IAAC,MAAG;AAAA,IAAE,IAAI,IAAE,IAAE,EAAE;AAAA,IAAG,OAAM,EAAC,MAAK,KAAE,GAAE,QAAO,EAAC;AAAA;AAAA,EAAE,SAAS,CAAC,GAAE,MAAK,GAAE,QAAO,MAAG;AAAA,IAAC,KAAG,GAAE,IAAE,KAAK,IAAI,KAAK,IAAI,GAAE,CAAC,GAAE,EAAE,SAAO,CAAC;AAAA,IAAE,IAAI,IAAE,EAAE,IAAG,IAAE,EAAE,IAAE,MAAI;AAAA,IAAE,OAAO,KAAK,IAAI,KAAK,IAAI,IAAE,IAAE,CAAC,GAAE,CAAC;AAAA;AAAA,EAAE,OAAM,EAAC,MAAK,GAAE,YAAW,EAAC;AAAA;AAAE,SAAS,EAAE,GAAE,KAAI,KAAG;AAAA,EAAC,IAAI,IAAE,IAAI,GAAE,OAAG,GAAG,EAAE,IAAI,CAAC,GAAE,IAAE,IAAI,GAAE,QAAI,EAAC,KAAI,EAAE,MAAK,SAAQ,EAAE,MAAK,QAAO,MAAE,EAAE,GAAE,IAAE,EAAC,MAAK,MAAK,SAAQ,CAAC,GAAE,UAAS,CAAC,EAAC;AAAA,EAAE,GAAE,GAAE,OAAG;AAAA,IAAC,IAAG,CAAC,EAAE,OAAK,CAAC,EAAE;AAAA,MAAI;AAAA,IAAO,IAAI,KAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AAAA,IAAE,IAAG,CAAC,GAAE;AAAA,MAAQ;AAAA,IAAO,IAAI,IAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAE,IAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAE,KAAE,GAAE,QAAQ,MAAM,EAAE,IAAI,IAAG,EAAE,IAAI,EAAE,GAAE,KAAE;AAAA,IAAE,SAAQ,KAAK,GAAE,MAAM;AAAA,CACp0B,GAAE;AAAA,MAAC,IAAG,EAAE,KAAK,MAAI,IAAG;AAAA,QAAC,IAAI,KAAE,EAAE,KAAK,EAAE,IAAI,KAAG,EAAC,GAAE,KAAE,EAAE,KAAK,EAAE,IAAI,EAAE;AAAA,QAAE,EAAE,SAAS,KAAK,EAAC,MAAK,MAAK,kBAAiB,EAAC,QAAO,OAAK,GAAC,GAAE,mBAAkB,GAAC,CAAC;AAAA,MAAC;AAAA,MAAC,MAAG,EAAE,QAAO,MAAG;AAAA,IAAC;AAAA,IAAC,IAAI,KAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAE,KAAE,EAAE,KAAK,EAAE,IAAI,EAAE;AAAA,IAAE,EAAE,SAAS,KAAK,EAAC,MAAK,MAAK,kBAAiB,EAAC,QAAO,OAAK,GAAC,GAAE,mBAAkB,GAAC,CAAC;AAAA,GAAE;AAAA,EAAE,SAAQ,KAAK,EAAE,KAAK;AAAA,IAAE,EAAE,QAAQ,KAAK,EAAE,IAAI,CAAC,CAAC;AAAA,EAAE,OAAO,EAAE,SAAS,KAAK,CAAC,GAAE,OAAI,EAAE,kBAAkB,OAAK,GAAE,kBAAkB,QAAM,EAAE,kBAAkB,SAAO,GAAE,kBAAkB,WAAS,EAAE,kBAAkB,QAAM,MAAI,GAAE,kBAAkB,QAAM,OAAK,EAAE,kBAAkB,UAAQ,MAAI,GAAE,kBAAkB,UAAQ,EAAE,GAAE;AAAA;AAAgD,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,IAAI,IAAE,EAAE,QAAQ,GAAG;AAAA,EAAE,IAAG,MAAI;AAAA,IAAG,OAAM,CAAC,CAAC;AAAA,EAAE,IAAI,IAAE,CAAC,GAAE,IAAE,EAAE,MAAM,GAAE,CAAC,GAAE,IAAE,EAAE,MAAM,CAAC,GAAE,KAAE,GAAE,IAAE,EAAE,YAAY,GAAG;AAAA,EAAE,SAAQ,KAAE,EAAE,KAAE,EAAE,QAAO,MAAI;AAAA,IAAC,IAAI,IAAE,EAAE;AAAA,IAAG,IAAG,MAAI;AAAA,MAAI;AAAA,IAAS,SAAG,MAAI,QAAM,MAAI,OAAI,IAAG;AAAA,MAAC,IAAE;AAAA,MAAE;AAAA,IAAK;AAAA,EAAC;AAAA,EAAC,IAAG,MAAI;AAAA,IAAG,MAAM,IAAI,MAAM,iBAAiB,sBAAsB;AAAA,EAAE,IAAI,IAAE,EAAE,MAAM,GAAE,CAAC,GAAE,KAAE,EAAE,MAAM,IAAE,CAAC,GAAE;AAAA,EAAE,GAAG,CAAC,IAAE,KAAE,GAAG,CAAC,IAAE,KAAE,EAAE,GAAE,GAAG,GAAE,KAAE,GAAE,QAAQ,QAAG,GAAG,EAAC,CAAC;AAAA,EAAE,IAAI,KAAE,GAAG,EAAC;AAAA,EAAE,SAAQ,MAAK;AAAA,IAAE,SAAQ,KAAK;AAAA,MAAE,EAAE,KAAK,IAAE,IAAE,EAAC;AAAA,EAAE,OAAO;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,OAAO,GAAG,KAAK,CAAC;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,IAAI,IAAE,EAAE,MAAM,EAAE;AAAA,EAAE,IAAG,CAAC;AAAA,IAAE,OAAM,CAAC,CAAC;AAAA,EAAE,OAAK,GAAE,GAAE,KAAG,GAAE,KAAE,IAAE,SAAS,GAAE,EAAE,IAAO,WAAE,IAAE,CAAC;AAAA,EAAE,IAAG,UAAU,KAAK,CAAC,KAAG,UAAU,KAAK,CAAC,GAAE;AAAA,IAAC,IAAI,IAAE,SAAS,GAAE,EAAE,GAAE,KAAE,SAAS,GAAE,EAAE;AAAA,IAAE,IAAG,OAAS,cAAI,KAAE,KAAG,KAAE,IAAE,KAAI,OAAI;AAAA,MAAE,MAAM,IAAI,MAAM,4CAA4C;AAAA,IAAE,IAAI,KAAE,IAAE;AAAA,IAAE,MAAG,KAAE,MAAI,KAAE,CAAC,KAAG,CAAC,MAAG,KAAE,MAAI,KAAE,CAAC;AAAA,IAAG,SAAQ,KAAE,EAAE,KAAE,MAAG,KAAE,MAAG,IAAE,MAAG;AAAA,MAAE,EAAE,KAAK,GAAE,SAAS,CAAC;AAAA,EAAC;AAAA,EAAC,OAAO;AAAA;AAAsI,SAAS,EAAE,GAAE;AAAA,EAAC,MAAM,IAAI,MAAM,gDAAgD;AAAA;AAAE,SAAS,EAAE,GAAE;AAAA,EAAC,MAAM,IAAI,MAAM,oDAAoD;AAAA;AAAE,SAAS,EAAE,CAAC,GAAE;AAAA,EAAC,IAAI,IAAE,GAAE,IAAE;AAAA,EAAK,SAAQ,KAAK,EAAE,GAAE,GAAG;AAAA,IAAE,MAAI,cAAY,KAAG,IAAE,MAAI,WAAS,KAAG,IAAE,MAAI,YAAU,KAAG,IAAE,MAAI,WAAS,KAAG,IAAE,EAAE,WAAW,SAAS,KAAG,EAAE,SAAS,GAAG,MAAI,IAAE,EAAE,MAAM,GAAE,EAAE;AAAA,EAAG,OAAM,CAAC,GAAE,CAAC;AAAA;AAAuO,eAAe,EAAE,CAAC,KAAG,MAAK,IAAE,IAAG,MAAK,GAAE,YAAW,IAAE,IAAG,gBAAe,IAAE,OAAI,CAAC,GAAE;AAAA,EAAC,IAAI,KAAE;AAAA,EAAE,IAAE,CAAC,GAAG,EAAC,MAAK,EAAC,GAAE,CAAC,CAAC,GAAE,MAAG,MAAM,GAAG,GAAE,GAAE,GAAE,GAAE,MAAS,SAAC;AAAA,EAAE,IAAI,IAAE,MAAK,IAAE,IAAI,IAAG,KAAE,CAAC,GAAE,KAAE,CAAC,GAAE,KAAE,MAAK,KAAE,MAAK,IAAE,CAAC,GAAE,KAAE,CAAC,GAAE,KAAE,CAAC,GAAE,IAAE,CAAC,GAAE,KAAE;AAAA,EAAK,GAAE,GAAE,CAAC,MAAG,QAAO,GAAE,aAAY,IAAE,SAAQ,SAAK;AAAA,IAAC,IAAG,GAAE,SAAO,WAAU;AAAA,MAAC,IAAG,GAAE,SAAO,gBAAc,GAAE,WAAS,eAAa,GAAE,OAAO,WAAW,WAAW,IAAG;AAAA,QAAC,IAAG,OAAI,MAAK;AAAA,UAAC,GAAE,CAAC,CAAC;AAAA,UAAE;AAAA,QAAM;AAAA,QAAC,IAAG,GAAE,WAAU;AAAA,UAAC,GAAE,CAAC,CAAC;AAAA,UAAE;AAAA,QAAM;AAAA,QAAC,IAAI,KAAE,EAAE,GAAE,QAAO,GAAG;AAAA,QAAE,SAAQ,MAAK;AAAA,UAAE,IAAG,GAAE,WAAW,SAAS,GAAE;AAAA,YAAC,IAAI,KAAE,GAAE,MAAM,GAAE,EAAE;AAAA,YAAE,IAAG,OAAI,QAAO;AAAA,cAAC,KAAE;AAAA,cAAE;AAAA,YAAQ;AAAA,YAAC,IAAG,GAAE,OAAK,OAAK,GAAE,GAAE,SAAO,OAAK,OAAK,GAAE,OAAK,OAAK,GAAE,GAAE,SAAO,OAAK,OAAK,GAAE,OAAK,OAAK,GAAE,OAAK;AAAA,cAAI,MAAM,IAAI,MAAM,wCAAwC;AAAA,YAAE,KAAE,EAAC,MAAK,GAAE,cAAY,GAAE,MAAK,SAAQ,GAAE,MAAM,GAAE,EAAE,EAAC;AAAA,UAAC;AAAA,QAAC,KAAE,IAAE,MAAG;AAAA,MAAE;AAAA,MAAC,IAAG,GAAE,SAAO,YAAW;AAAA,QAAC,IAAG,MAAI;AAAA,UAAK,MAAM,IAAI,MAAM,8BAA8B;AAAA,QAAE,IAAG,GAAE,MAAM,WAAS;AAAA,UAAE,MAAM,IAAI,MAAM,cAAc,GAAE,oEAAoE;AAAA,QAAE,IAAI,KAAE,GAAG,EAAC;AAAA,QAAE,IAAG,OAAI;AAAA,UAAK,MAAM,IAAI,MAAM,cAAc,GAAE,+GAA+G;AAAA,QAAE,GAAE,KAAK,EAAC;AAAA,MAAC;AAAA,MAAC,IAAG,GAAE,SAAO,WAAU;AAAA,QAAC,IAAG,GAAE,MAAM,SAAO;AAAA,UAAE,MAAM,IAAI,MAAM,+BAA+B;AAAA,QAAE,IAAG,MAAI;AAAA,UAAK,MAAM,IAAI,MAAM,6BAA6B;AAAA,QAAE,IAAI,KAAE,OAAG,KAAE,OAAG,KAAE,GAAE;AAAA,QAAO,IAAG,GAAE,OAAK,OAAK,GAAE,WAAW,MAAM,MAAI,KAAE,MAAG,KAAE,GAAE,MAAM,CAAC,IAAG,GAAE,OAAK,OAAK,GAAE,WAAW,SAAS,MAAI,KAAE,MAAG,KAAE,GAAE,MAAM,GAAE,EAAE,IAAG,GAAE,OAAK,OAAK,GAAE,GAAE,SAAO,OAAK,OAAK,GAAE,OAAK,OAAK,GAAE,GAAE,SAAO,OAAK,OAAK,GAAE,OAAK,OAAK,GAAE,OAAK;AAAA,UAAI,MAAM,IAAI,MAAM,iCAAiC;AAAA,QAAE,IAAI,KAAE,GAAE,MAAM,GAAE,EAAE;AAAA,QAAE,IAAG,IAAE;AAAA,UAAC,IAAI,KAAE,KAAE,IAAE,IAAE,KAAE,EAAE,IAAE,GAAG;AAAA,UAAE,SAAQ,MAAK;AAAA,YAAE,SAAQ,OAAM,GAAG,EAAC;AAAA,cAAE,GAAE,KAAK,GAAE;AAAA,QAAC,EAAM;AAAA,aAAE,KAAK,EAAC,MAAK,GAAE,MAAK,SAAQ,IAAE,SAAQ,GAAC,CAAC;AAAA,QAAE,GAAE,CAAC,CAAC;AAAA,QAAE;AAAA,MAAM;AAAA,MAAC,IAAG,GAAE,SAAO,eAAa,MAAI,OAAK,GAAE,MAAM,WAAS,IAAE,GAAE,OAAK,qBAAmB,GAAE,GAAE,OAAM,QAAG;AAAA,QAAC,IAAG,GAAE,SAAO,aAAW,GAAE,SAAO;AAAA,UAAQ,OAAO,GAAE,OAAK,mBAAkB;AAAA,OAAE,GAAE,GAAE,SAAO,cAAY,EAAE,KAAK,EAAC,KAAG,EAAE,KAAK,EAAC,IAAG,GAAE,SAAO,mBAAkB;AAAA,QAAC,IAAG,MAAI;AAAA,UAAK,MAAM,IAAI,MAAM,qCAAqC;AAAA,QAAE,GAAE,CAAC,CAAC;AAAA,QAAE,KAAI,IAAE,MAAG,EAAE,GAAE,QAAO,GAAG;AAAA,QAAE,IAAG,CAAC,GAAG,KAAK,EAAC;AAAA,UAAE,MAAM,IAAI,MAAM,qBAAqB,mHAAkH;AAAA,QAAE,IAAG,GAAE,MAAM,SAAO,KAAG;AAAA,UAAE,MAAM,IAAI,MAAM,qBAAqB,8CAA6C;AAAA,QAAE,IAAG,GAAE,MAAM,WAAS,GAAE;AAAA,UAAC,IAAG,CAAC;AAAA,YAAE,MAAM,IAAI,MAAM,qBAAqB,+BAA8B;AAAA,UAAE,IAAI,KAAE,EAAE,GAAE,MAAM,GAAE,EAAE,GAAE,GAAG;AAAA,UAAE,IAAG,GAAE,WAAS,KAAG,GAAE,KAAK,QAAG,GAAE,KAAK,MAAI,EAAE;AAAA,YAAE,MAAM,IAAI,MAAM,qBAAqB,OAAM,GAAE,KAAK,GAAG,2BAA2B;AAAA,UAAE,IAAI,KAAE,CAAC,GAAE,KAAE,CAAC;AAAA,UAAE,SAAQ,MAAK;AAAA,YAAE,KAAE,GAAE,KAAK,GAAE,GAAE,OAAK,MAAI,GAAE,KAAK,EAAC,IAAE,GAAE,KAAK,EAAC;AAAA,UAAE,GAAE,KAAK,QAAG;AAAA,YAAC,GAAE,SAAS,OAAO,IAAE,QAAG;AAAA,cAAC,IAAI,MAAG,CAAC;AAAA,cAAE,GAAE,SAAO,KAAG,IAAG,KAAK,GAAE,GAAE,KAAK,IAAI,GAAE,GAAE,KAAK,CAAC;AAAA,cAAE,SAAQ,KAAK;AAAA,gBAAE,IAAG,KAAK,GAAE,GAAE,GAAE,KAAK,CAAC;AAAA,cAAE,GAAE,QAAM;AAAA,eAAI,EAAC,WAAU,IAAG,CAAC,GAAG,IAAE,GAAG,EAAC,CAAC,EAAC,CAAC;AAAA,WAAE;AAAA,UAAE;AAAA,QAAM,EAAK;AAAA,UAAC,GAAE,KAAK,QAAG;AAAA,YAAC,GAAE,SAAS,QAAQ,IAAE,GAAE,KAAK;AAAA,WAAE;AAAA,UAAE;AAAA;AAAA,MAAO;AAAA,MAAC,IAAG,GAAE,SAAO,UAAS;AAAA,QAAC,IAAI,KAAE,EAAE,GAAE,QAAO,GAAG,GAAE,KAAE,CAAC;AAAA,QAAE,SAAQ,MAAK;AAAA,UAAE,IAAG,GAAE,WAAW,SAAS,GAAE;AAAA,YAAC,IAAI,KAAE,GAAE,MAAM,GAAE,EAAE;AAAA,YAAE,GAAE,GAAE,OAAM,CAAC,MAAG,aAAY,SAAK;AAAA,cAAC,IAAG,GAAE,SAAO,aAAW,GAAE,SAAO,eAAa,GAAE,WAAS;AAAA,gBAAY,OAAO,GAAE,UAAQ,WAAW,OAAK,GAAE,CAAC,GAAG,EAAC,YAAW,GAAE,KAAI,GAAE,CAAC,EAAC,CAAC,CAAC,CAAC,GAAE;AAAA,aAAE;AAAA,UAAC,EAAM,SAAG,GAAE,WAAW,QAAQ,GAAE;AAAA,YAAC,IAAI,KAAE,GAAE,MAAM,GAAE,EAAE,GAAE,KAAE,GAAE,SAAS,WAAW;AAAA,YAAE,GAAE,GAAE,OAAM,QAAG;AAAA,cAAC,IAAG,GAAE,SAAO,WAAU;AAAA,gBAAC,IAAG;AAAA,kBAAE,MAAM,IAAI,MAAM,iIAAiI;AAAA,gBAAE,OAAO;AAAA,cAAC;AAAA,cAAC,IAAG,GAAE,SAAO;AAAA,gBAAS,OAAO,GAAE,UAAQ,MAAI,IAAE;AAAA,aAAE;AAAA,UAAC,EAAM,SAAG,GAAE,WAAW,SAAS,GAAE;AAAA,YAAC,IAAI,KAAE,GAAE,MAAM,GAAE,EAAE;AAAA,YAAE,GAAE,GAAE,OAAM,QAAG;AAAA,cAAC,IAAG,GAAE,SAAO,aAAW,GAAE,SAAO;AAAA,gBAAS,OAAO,GAAE,UAAQ,WAAW,OAAK;AAAA,aAAE;AAAA,UAAC,EAAM;AAAA,mBAAI,cAAY,IAAE,OAAG,OAAI,cAAY,GAAE,QAAM,CAAC,GAAG,EAAC,WAAU,KAAE,GAAE,GAAE,KAAK,CAAC,IAAE,GAAE,KAAK,EAAC;AAAA,QAAE,GAAE,SAAO,IAAE,GAAE,SAAO,GAAE,KAAK,GAAG,IAAE,GAAE,SAAO,KAAG,GAAE,GAAE,KAAK;AAAA,MAAC;AAAA,MAAC,IAAG,GAAE,SAAO,UAAS;AAAA,QAAC,KAAI,IAAE,MAAG,GAAG,GAAE,MAAM;AAAA,QAAE,IAAG,GAAE,cAAY,MAAG,IAAG,IAAE;AAAA,UAAC,IAAG,CAAC,GAAG,KAAK,EAAC;AAAA,YAAE,MAAM,IAAI,MAAM,eAAe,sEAAqE;AAAA,UAAE,EAAE,SAAO;AAAA,QAAC;AAAA,QAAC,OAAO,GAAE,GAAE,OAAM,QAAG;AAAA,UAAC,IAAG,GAAE,SAAO,aAAW,GAAE,SAAO;AAAA,YAAa,OAAO,EAAE,aAAa,EAAC,GAAE;AAAA,UAAE,IAAG,GAAE,SAAO;AAAA,YAAU;AAAA,UAAO,IAAG,GAAE,SAAO,iBAAe,GAAE,SAAS,WAAW,IAAI,GAAE;AAAA,YAAC,EAAE,IAAI,IAAG,GAAE,QAAQ,GAAE,GAAE,SAAO,IAAG,IAAE,GAAE,GAAG;AAAA,YAAE;AAAA,UAAM;AAAA,UAAC,IAAI,KAAE,IAAG,CAAC,GAAE,GAAE,MAAK,GAAE,QAAO,CAAC,EAAC,CAAC,CAAC,CAAC,EAAE,MAAM;AAAA,CAC/yM,EAAE,IAAI,CAAC,IAAE,IAAE,OAAI,GAAG,OAAI,KAAG,MAAG,GAAE,SAAO,IAAE,MAAI,OAAO,IAAG,EAAE,KAAK;AAAA,CAC5D;AAAA,UAAE,MAAM,IAAI,MAAM;AAAA;AAAA,EAEjB,IAAG;AAAA,SAAE,GAAE,KAAE,GAAE,CAAC,CAAC,KAAG,KAAE,GAAE,gBAAe,CAAC,CAAC,GAAE,GAAE,MAAI,GAAE,KAAI,GAAE,CAAC,EAAC,CAAC,IAAG;AAAA,MAAC;AAAA,IAAC;AAAA,GAAE;AAAA,EAAE,IAAI,KAAE,GAAG,CAAC;AAAA,EAAE,IAAG,MAAI,GAAE,YAAU,IAAG,EAAE,SAAO;AAAA,IAAE,SAAQ,MAAK;AAAA,MAAE,GAAE,kBAAkB,IAAI,EAAC;AAAA,EAAE,MAAG,MAAM,GAAG,EAAC,cAAa,IAAE,MAAK,GAAE,KAAI,GAAE,YAAW,GAAE,SAAQ,GAAC,CAAC;AAAA,EAAE,SAAQ,MAAK;AAAA,IAAE,GAAE,EAAC;AAAA,EAAE,SAAQ,MAAK;AAAA,IAAE,GAAE,EAAC;AAAA,EAAE,IAAG,IAAE;AAAA,IAAC,IAAI,KAAE,CAAC;AAAA,IAAE,UAAQ,IAAE,OAAK,GAAE,MAAM,QAAQ,GAAE;AAAA,MAAC,IAAG,GAAE,UAAQ;AAAA,QAAE;AAAA,MAAS,IAAI,KAAE,GAAE,GAAG,EAAC,GAAE,GAAE,KAAK;AAAA,MAAE,GAAE,MAAI,GAAE,KAAI,GAAE,KAAK,EAAC;AAAA,IAAC;AAAA,IAAC,IAAI,IAAE,GAAE,MAAM,aAAa;AAAA,IAAE,SAAQ,MAAK;AAAA,MAAE,EAAE,KAAK,GAAG,EAAC,OAAM,KAAE,GAAE,CAAC,GAAE,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC;AAAA,IAAE,GAAE,QAAM,CAAC,GAAG,EAAC,OAAM,KAAE,GAAE,EAAC,CAAC;AAAA,EAAC;AAAA,EAAC,IAAG,IAAE;AAAA,IAAC,IAAI,KAAE;AAAA,IAAE,GAAE,OAAK,WAAU,GAAE,UAAQ,CAAC;AAAA,EAAC;AAAA,EAAC,IAAG,EAAE,SAAO,GAAE;AAAA,IAAC,SAAQ,MAAK,GAAE;AAAA,MAAC,IAAI,IAAE,GAAE,KAAI,GAAE,KAAK,GAAE,KAAE,GAAE,QAAO,KAAE,GAAE,aAAa,EAAC;AAAA,MAAE,IAAG,OAAI;AAAA,QAAK,MAAM,IAAI,MAAM,iDAAiD,IAAG;AAAA,MAAE,IAAG,GAAG,GAAE,IAAE,GAAE,QAAQ,MAAI;AAAA,QAAK,MAAM,IAAI,MAAM,yCAAyC,IAAG;AAAA,MAAE,OAAO,OAAO,IAAE,CAAC;AAAA,IAAC;AAAA,IAAC,MAAG;AAAA,EAAE;AAAA,EAAC,OAAO,MAAG,GAAG,GAAE,EAAC,GAAE,MAAG,GAAG,GAAE,EAAC,GAAE,GAAE,GAAE,CAAC,MAAG,aAAY,QAAK;AAAA,IAAC,IAAG,GAAE,SAAO;AAAA,MAAU,OAAO,GAAE,SAAO,cAAY,EAAE,CAAC,CAAC,GAAE;AAAA,GAAE,GAAE,EAAC,cAAa,IAAE,KAAI,GAAE,SAAQ,IAAE,MAAK,IAAE,eAAc,IAAE,UAAS,IAAE,kBAAiB,GAAC;AAAA;AAAE,eAAe,EAAE,CAAC,GAAE,IAAE,CAAC,GAAE;AAAA,EAAC,MAAI,cAAa,GAAE,KAAI,GAAE,SAAQ,GAAE,MAAK,IAAE,eAAc,GAAE,UAAS,GAAE,kBAAiB,OAAG,MAAM,GAAG,GAAE,CAAC;AAAA,EAAE,EAAE,QAAQ,GAAG,kBAAkB,6CAA6C,CAAC;AAAA,EAAE,SAAS,EAAC,CAAC,IAAE;AAAA,IAAC,EAAE,kBAAkB,IAAI,EAAC;AAAA;AAAA,EAAE,IAAI,KAAE,IAAI,KAAI,KAAE,MAAK,IAAE,GAAE,KAAE;AAAA,EAAG,SAAQ,MAAK;AAAA,IAAE,EAAE,kBAAkB,IAAI,EAAC,MAAI,GAAE,IAAI,EAAC,GAAE,KAAE;AAAA,EAAI,OAAM,EAAC,SAAQ,GAAE,MAAK,IAAE,UAAS,GAAE,KAAK,CAAC,IAAE;AAAA,IAAC,IAAG,MAAI;AAAA,MAAE,OAAO;AAAA,IAAE,IAAG,CAAC;AAAA,MAAE,OAAO,OAAI,GAAG,GAAE,GAAE,EAAE,SAAS,GAAE;AAAA,IAAE,IAAI,IAAE,IAAE,KAAE;AAAA,IAAG,KAAE;AAAA,IAAG,IAAI,KAAE,GAAE;AAAA,IAAK,SAAQ,KAAK;AAAA,MAAE,IAAG,CAAC,EAAE,kBAAkB,IAAI,CAAC;AAAA,QAAE,IAAG,EAAE,OAAK,OAAK,EAAE,OAAK,KAAI;AAAA,UAAC,IAAI,KAAE,EAAE,MAAM,iBAAiB,CAAC;AAAA,UAAE,MAAI,IAAE,OAAI;AAAA,QAAC,EAAM;AAAA,aAAE,IAAI,CAAC,GAAE,MAAI,GAAE,SAAO;AAAA,IAAE,IAAG,CAAC;AAAA,MAAE,OAAO,OAAI,GAAG,GAAE,GAAE,EAAE,SAAS,GAAE;AAAA,IAAE,IAAI,KAAE,IAAG,IAAE,GAAE,EAAC,oBAAmB,GAAC,CAAC,EAAE;AAAA,IAAS,OAAO,EAAE,QAAM,GAAE,IAAE,OAAG;AAAA,MAAC,EAAE,QAAM,EAAE;AAAA,KAAI,GAAE,CAAC,MAAG,MAAI,GAAE,UAAQ,OAAI,GAAG,GAAE,GAAE,EAAE,SAAS,GAAE,OAAI,IAAE,GAAE,QAAO,EAAE,QAAM,IAAE,KAAE,GAAG,GAAE,GAAE,EAAE,SAAS,GAAE;AAAA,IAAG;AAAA;AAAE,eAAe,EAAE,CAAC,GAAE,IAAE,CAAC,GAAE;AAAA,EAAC,IAAI,IAAE,GAAG,GAAE,EAAC,MAAK,EAAE,KAAI,CAAC,GAAE,IAAE,MAAM,GAAG,GAAE,CAAC,GAAE,IAAE,GAAE,KAAE;AAAA,EAAE,OAAM,KAAI,GAAE,KAAK,CAAC,GAAE;AAAA,IAAC,IAAI,IAAE,EAAE,MAAM,CAAC;AAAA,IAAE,OAAO,MAAI,MAAI,KAAE,IAAG,GAAE,CAAC,CAAC,EAAE,IAAI,GAAE,IAAE,IAAG;AAAA,KAAG,cAAc,GAAE;AAAA,IAAC,OAAO,GAAG,EAAC,KAAI,EAAC,CAAC;AAAA,IAAE;AAAA;AAAE,eAAe,EAAE,CAAC,GAAE,IAAE,CAAC,GAAE;AAAA,EAAC,QAAO,MAAM,GAAG,GAAG,CAAC,GAAE,CAAC,GAAG;AAAA;AAAa,SAAS,EAAE,GAAE;AAAA,EAAC,MAAM,IAAI,MAAM,wQAAwQ;AAAA;AAAA,IAlC7sE,KAAG,SAAY,KAAG,IAAG,KAAG,IAAG,KAAG,IAAG,KAAG,IAAG,KAAG,IAAG,KAAG,IAAG,KAAG,IAAG,MAAG,IAAG,KAAG,IAAG,KAAG,IAAG,KAAG,GAAE,KAAG,KAAI,KAAG,KAAI,KAAG,IAAG,KAAG,IAAG,KAAG,IAAG,KAAG,IAAG,KAAG,IAAG,KAAG,IAAG,KAAG,IAA4xI,IAAsU,KAAG,MAAK;AAAA,EAAC,WAAW,CAAC,IAAE,IAAI,KAAI,IAAE,IAAI,IAAI,CAAC,CAAC,GAAE;AAAA,IAAC,KAAK,SAAO;AAAA,IAAE,KAAK,YAAU;AAAA;AAAA,EAAE,SAAO;AAAA,EAAK,GAAG,CAAC,GAAE,GAAE,IAAE,GAAE,GAAE;AAAA,IAAC,IAAG,EAAE,SAAS,IAAI,GAAE;AAAA,MAAC,IAAG,MAAI;AAAA,QAAU,MAAM,IAAI,MAAM,yBAAyB,uBAAuB,KAAK;AAAA,MAAE,MAAI,QAAM,KAAK,OAAO,MAAM,IAAE,KAAK,eAAe,EAAE,MAAM,GAAE,EAAE,GAAE,CAAC;AAAA,IAAC;AAAA,IAAC,IAAG,IAAE,GAAE;AAAA,MAAC,IAAI,KAAE,KAAK,OAAO,IAAI,CAAC;AAAA,MAAE,IAAG,MAAG,EAAE,GAAE,UAAQ;AAAA,QAAG;AAAA,IAAM;AAAA,IAAC,MAAI,YAAU,KAAK,OAAO,OAAO,CAAC,IAAE,KAAK,OAAO,IAAI,GAAE,EAAC,OAAM,GAAE,SAAQ,GAAE,KAAI,EAAC,CAAC;AAAA;AAAA,EAAE,gBAAgB,CAAC,GAAE;AAAA,IAAC,IAAI,IAAE,CAAC;AAAA,IAAE,SAAQ,KAAK,GAAE;AAAA,MAAC,IAAI,IAAE,GAAG;AAAA,MAAK,SAAQ,MAAK,KAAK,OAAO,KAAK;AAAA,QAAE,GAAE,WAAW,CAAC,KAAG,GAAE,QAAQ,MAAK,CAAC,MAAI,OAAK,GAAG,IAAE,CAAC,KAAG,EAAE,KAAK,GAAE,MAAM,EAAE,MAAM,CAAC;AAAA,IAAE;AAAA,IAAC,OAAO;AAAA;AAAA,EAAE,GAAG,CAAC,GAAE;AAAA,IAAC,SAAQ,KAAK,GAAE;AAAA,MAAC,IAAI,IAAE,KAAK,OAAO,IAAI,CAAC;AAAA,MAAE,IAAG;AAAA,QAAE,OAAO,EAAE;AAAA,IAAK;AAAA,IAAC,OAAO;AAAA;AAAA,EAAK,UAAU,CAAC,GAAE;AAAA,IAAC,QAAO,KAAK,WAAW,CAAC,IAAE,OAAK;AAAA;AAAA,EAAE,UAAU,CAAC,GAAE;AAAA,IAAC,OAAO,IAAE,IAAG,KAAK,GAAG,CAAC,CAAC,GAAE,KAAK,OAAO,IAAI,CAAC,GAAG,WAAS;AAAA;AAAA,EAAE,OAAO,GAAE;AAAA,IAAC,OAAO,KAAK,SAAO,MAAM,KAAK,KAAK,QAAO,QAAI,EAAE,KAAG,KAAK,UAAU,EAAE,EAAE,GAAE,EAAE,IAAE,KAAK,OAAO,QAAQ;AAAA;AAAA,EAAE,SAAS,CAAC,GAAE;AAAA,IAAC,OAAO,KAAK,SAAO,KAAK,KAAK,UAAU,EAAE,MAAM,CAAC,MAAI;AAAA;AAAA,EAAE,EAAE,CAAC,GAAE;AAAA,IAAC,OAAO,KAAK,SAAO,KAAK,EAAE,MAAM,IAAE,KAAK,OAAO,MAAM,MAAI;AAAA;AAAA,EAAE,cAAc,CAAC,GAAE,GAAE;AAAA,IAAC,IAAI,IAAE,GAAG,IAAI,CAAC,KAAG,CAAC;AAAA,IAAE;AAAA,MAAE,SAAQ,KAAK,KAAK,OAAO,KAAK;AAAA,QAAE,IAAG,EAAE,WAAW,CAAC,GAAE;AAAA,UAAC,IAAG,MAAI,MAAI,KAAK,WAAW,CAAC,IAAE,OAAK;AAAA,YAAE;AAAA,UAAS,SAAQ,MAAK;AAAA,YAAE,IAAG,EAAE,WAAW,EAAC;AAAA,cAAE;AAAA,UAAW,KAAK,OAAO,OAAO,CAAC;AAAA,QAAC;AAAA;AAAA,EAAE,EAAE,CAAC,GAAE,GAAE;AAAA,IAAC,SAAQ,KAAK,GAAE;AAAA,MAAC,IAAI,IAAE,MAAI,OAAK,GAAG,KAAK,MAAI;AAAA,MAAE,IAAG,CAAC,KAAK,OAAO,IAAI,CAAC;AAAA,QAAE,IAAG,MAAI,QAAM,EAAE,SAAS,GAAG,GAAE;AAAA,UAAC,IAAG,IAAE,GAAG,KAAK,EAAE,WAAW,KAAI,GAAG,KAAI,CAAC,KAAK,OAAO,IAAI,CAAC;AAAA,YAAE;AAAA,QAAQ,EAAM;AAAA;AAAA,MAAS,IAAG,CAAC,GAAG,GAAE,CAAC;AAAA,QAAE,OAAO;AAAA,IAAC;AAAA,IAAC,OAAO;AAAA;AAAA,EAAK,EAAE,CAAC,GAAE;AAAA,IAAC,IAAI,IAAE,KAAK,OAAO,IAAI,CAAC;AAAA,IAAE,IAAG,CAAC;AAAA,MAAE,OAAO;AAAA,IAAK,IAAI,IAAE;AAAA,IAAK,OAAO,EAAE,UAAQ,MAAI,IAAE,EAAE,QAAO,OAAO,GAAG,KAAK,UAAU,CAAC,CAAC,IAAI,IAAE,KAAK,MAAI;AAAA;AAAA,EAAM,gBAAgB,CAAC,GAAE;AAAA,IAAC,IAAI,IAAE,IAAG,KAAK,GAAG,CAAC,CAAC,GAAE,IAAE,KAAK,OAAO,IAAI,CAAC;AAAA,IAAE,IAAG,CAAC;AAAA,MAAE,OAAM;AAAA,IAAG,IAAI,IAAE,EAAE,UAAQ;AAAA,IAAG,OAAO,EAAE,WAAS,IAAG,CAAC;AAAA;AAAA,EAAE,OAAO,CAAC,GAAE,GAAE,IAAE,GAAE;AAAA,IAAC,IAAI,IAAE,KAAK,GAAG,GAAE,CAAC;AAAA,IAAE,IAAG,CAAC;AAAA,MAAE,OAAO;AAAA,IAAK,IAAI,KAAE,KAAK,OAAO,IAAI,CAAC;AAAA,IAAE,QAAO,IAAE,GAAE,WAAS,IAAE,GAAE,QAAM,KAAK,GAAG,CAAC;AAAA;AAAA,EAAE,YAAY,CAAC,GAAE,GAAE;AAAA,IAAC,IAAI,IAAE,KAAK,GAAG,GAAE,CAAC;AAAA,IAAE,OAAO,IAAE,KAAK,OAAO,IAAI,CAAC,EAAE,QAAM;AAAA;AAAA,EAAK,WAAW,CAAC,GAAE,GAAE,IAAE,CAAC,GAAE;AAAA,IAAC,IAAI,IAAE,KAAK,GAAG,GAAE,CAAC;AAAA,IAAE,IAAG,CAAC;AAAA,MAAE,OAAO;AAAA,IAAK,IAAI,KAAE,CAAC;AAAA,IAAE,SAAQ,KAAK,GAAE;AAAA,MAAC,IAAI,KAAE,GAAG,IAAI,KAAI,KAAE,KAAK,OAAO,IAAI,EAAC;AAAA,MAAE,OAAI,GAAE,UAAQ,IAAE,GAAE,KAAG,GAAE,QAAM,GAAE,KAAG,KAAK,GAAG,EAAC;AAAA,IAAE;AAAA,IAAC,IAAI,IAAE,KAAK,OAAO,IAAI,CAAC;AAAA,IAAE,OAAO,EAAE,UAAQ,IAAE,CAAC,EAAE,OAAM,EAAC,IAAE,CAAC,KAAK,GAAG,CAAC,GAAE,EAAC;AAAA;AAAA,EAAE,SAAS,CAAC,GAAE;AAAA,IAAC,IAAI,IAAE,IAAI,KAAI,IAAE,GAAG;AAAA,IAAK,UAAQ,GAAE,OAAK,KAAK;AAAA,MAAO,MAAI,IAAE,EAAE,IAAI,MAAK,GAAE,KAAK,IAAE,EAAE,WAAW,GAAG,IAAI,IAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,GAAE,KAAK,IAAE,EAAE,WAAW,CAAC,KAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,GAAE,KAAK;AAAA,IAAE,OAAO;AAAA;AAAA,EAAE,YAAY,CAAC,GAAE;AAAA,IAAC,KAAK,UAAU,IAAI,CAAC;AAAA;AAAA,EAAE,YAAY,GAAE;AAAA,IAAC,OAAO,MAAM,KAAK,KAAK,SAAS;AAAA;AAAE,GAAM,IAA8xB,KAAG,IAAG,KAAG,IAAG,KAAG,IAAG,KAAG,IAAG,KAAG,IAAG,KAAG,IAAG,KAAG,IAAG,KAAG,IAAG,KAAG,IAAG,KAAG,IAAG,KAAG,IAAG,KAAG,IAAG,KAAG,IAAG,KAAG,GAE/mO,KAAG,IAOoN,IAA4Z,KAAG,IAAG,KAAG,IAAG,KAAG,IAAG,KAAG,KAAwnK,IAAkrB,IAAyrB,IAA6hB,IAA2D,IAAuW,IAAgC,IAAmC,IAAyK,KAAG,MAAK;AAAA,EAAC,YAAU,IAAI,GAAE,MAAI,CAAC,CAAC;AAAA,EAAE,cAAY,IAAI;AAAA,EAAI,MAAM,CAAC,GAAE,GAAE;AAAA,IAAC,KAAK,UAAU,IAAI,CAAC,EAAE,KAAK,EAAC,MAAK,UAAS,WAAU,EAAC,CAAC;AAAA;AAAA,EAAE,UAAU,CAAC,GAAE,GAAE,GAAE;AAAA,IAAC,KAAK,UAAU,IAAI,CAAC,EAAE,KAAK,EAAC,MAAK,cAAa,WAAU,GAAE,SAAQ,EAAC,CAAC;AAAA;AAAA,EAAE,GAAG,CAAC,GAAE,GAAE;AAAA,IAAC,OAAO,KAAK,UAAU,IAAI,CAAC,KAAG,KAAK,UAAU,IAAI,CAAC,EAAE,KAAK,OAAG,EAAE,SAAO,CAAC;AAAA;AAAA,EAAE,GAAG,CAAC,GAAE;AAAA,IAAC,OAAO,KAAK,UAAU,IAAI,CAAC,IAAE,KAAK,UAAU,IAAI,CAAC,IAAE,CAAC;AAAA;AAAA,EAAE,cAAc,CAAC,GAAE;AAAA,IAAC,OAAO,KAAK,YAAY,IAAI,CAAC,IAAI,KAAG,CAAC;AAAA;AAAA,EAAE,OAAO,CAAC,GAAE,GAAE;AAAA,IAAC,KAAK,YAAY,IAAI,GAAE,CAAC;AAAA;AAAA,EAAE,IAAI,CAAC,GAAE;AAAA,IAAC,IAAI,IAAE,CAAC;AAAA,IAAE,UAAQ,GAAE,MAAK,KAAK,UAAU,QAAQ;AAAA,MAAE,SAAQ,MAAK;AAAA,QAAE,IAAG,GAAE,SAAO,GAAE;AAAA,UAAC,EAAE,KAAK,CAAC;AAAA,UAAE;AAAA,QAAK;AAAA,IAAC,OAAO;AAAA;AAAE,GAA8xB,IAAgs9F,IAG7tsG,IAA8zD,IAAq5C,IAAiuE,IAA4B,KAAG,MAAK;AAAA,EAAC,aAAW,IAAI;AAAA,EAAI,WAAS,IAAI;AAAA,EAAI,cAAY,IAAI;AAAA,EAAI,aAAW;AAAA,EAAK,YAAU;AAAA,EAAE,MAAM,CAAC,GAAE,KAAG,WAAU,GAAE,OAAM,MAAG,CAAC,GAAE;AAAA,IAAC,KAAK,IAAI,GAAE,EAAC,MAAK,UAAS,SAAQ,GAAE,eAAc,GAAE,WAAU,KAAG,GAAE,OAAM,EAAC,CAAC;AAAA;AAAA,EAAE,OAAO,CAAC,GAAE,GAAE;AAAA,IAAC,IAAI,IAAE,CAAC;AAAA,IAAE,GAAE,GAAE,OAAG;AAAA,MAAC,EAAE,SAAO,SAAO,EAAE,KAAK,EAAE,QAAQ,IAAE,EAAE,SAAO,aAAW,EAAE,SAAO,WAAS,EAAE,KAAK,GAAG,EAAE,QAAQ,EAAE,QAAQ;AAAA,KAAE,GAAE,KAAK,OAAO,GAAE,OAAG;AAAA,MAAC,IAAI,KAAE,gBAAgB,CAAC;AAAA,MAAE,GAAG,IAAE,EAAE,KAAK,GAAE,EAAE,QAAM;AAAA,OAAG,EAAC,WAAU,IAAG,CAAC,EAAC,CAAC;AAAA;AAAA,EAAE,UAAU,CAAC,GAAE,KAAG,WAAU,GAAE,OAAM,MAAG,CAAC,GAAE;AAAA,IAAC,KAAK,IAAI,GAAE,EAAC,MAAK,cAAa,SAAQ,GAAE,eAAc,GAAE,WAAU,KAAG,GAAE,OAAM,EAAC,CAAC;AAAA;AAAA,EAAE,QAAQ,CAAC,GAAE,GAAE,KAAG,WAAU,GAAE,OAAM,OAAG,CAAC,GAAE;AAAA,IAAC,KAAK,IAAI,GAAE,EAAC,MAAK,YAAW,SAAQ,GAAE,eAAc,GAAE,WAAU,KAAG,GAAE,OAAM,GAAC,CAAC;AAAA;AAAA,EAAE,KAAK,CAAC,GAAE,GAAE;AAAA,IAAC,KAAK,aAAW,KAAK,UAAU,GAAE,KAAG,KAAK,WAAW,IAAI,KAAK,YAAW,CAAC,GAAE,EAAE,GAAE,KAAK,aAAW;AAAA;AAAA,EAAK,GAAG,CAAC,GAAE;AAAA,IAAC,OAAO,KAAK,SAAS,IAAI,CAAC;AAAA;AAAA,EAAE,GAAG,CAAC,GAAE;AAAA,IAAC,OAAO,KAAK,SAAS,IAAI,CAAC;AAAA;AAAA,EAAE,IAAI,CAAC,GAAE;AAAA,IAAC,OAAO,KAAK,SAAS,IAAI,CAAC,GAAG;AAAA;AAAA,EAAK,aAAa,CAAC,GAAE,GAAE;AAAA,IAAC,IAAI,IAAE,KAAK,SAAS,IAAI,CAAC,GAAE,IAAE,OAAO,KAAG,WAAS,KAAK,SAAS,IAAI,CAAC,IAAE,EAAE,SAAO,cAAY,EAAC,WAAU,IAAG,CAAC,EAAE,QAAQ,CAAC,EAAC,IAAE,KAAK,SAAS,IAAI,EAAE,IAAI;AAAA,IAAE,OAAM,EAAE,CAAC,KAAG,CAAC,KAAG,EAAE,SAAO,cAAY,EAAE,cAAY,KAAG,EAAE,kBAAgB,MAAI,EAAE,gBAAc,EAAE,eAAa;AAAA;AAAA,EAAG,OAAO,CAAC,GAAE,GAAE;AAAA,IAAC,KAAK,YAAY,IAAI,GAAE,CAAC;AAAA;AAAA,EAAE,cAAc,CAAC,GAAE;AAAA,IAAC,OAAO,KAAK,YAAY,IAAI,CAAC,IAAI,KAAG,CAAC;AAAA;AAAA,EAAE,OAAO,CAAC,GAAE,GAAE;AAAA,IAAC,IAAG,MAAI;AAAA,MAAE,OAAO;AAAA,IAAE,IAAG,MAAI;AAAA,MAAK,OAAM;AAAA,IAAG,IAAG,MAAI;AAAA,MAAK,OAAO;AAAA,IAAE,IAAG,EAAE,SAAO,eAAa,EAAE,SAAO;AAAA,MAAY,OAAO,EAAE,WAAS,EAAE,WAAS,KAAG;AAAA,IAAE,IAAG,EAAE,SAAO;AAAA,MAAY,OAAO;AAAA,IAAE,IAAG,EAAE,SAAO;AAAA,MAAY,OAAM;AAAA,IAAG,IAAI,IAAE,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,OAAM,IAAE,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,OAAM,KAAE,IAAE;AAAA,IAAE,IAAG,OAAI;AAAA,MAAE,OAAO;AAAA,IAAE,IAAG,EAAE,SAAO,cAAY,EAAE,SAAO,YAAW;AAAA,MAAC,IAAI,KAAE,KAAK,QAAQ,EAAE,SAAQ,EAAE,OAAO;AAAA,MAAE,OAAO,OAAI,IAAE,KAAE,EAAE,YAAU,EAAE,WAAS,EAAE,SAAS,QAAM,EAAE,SAAS,QAAM,KAAG,IAAE,EAAE,WAAS,IAAE,EAAE,WAAS,KAAG;AAAA,IAAC;AAAA,IAAC,IAAI,IAAE,KAAK,WAAW,IAAI,CAAC;AAAA,IAAE,IAAG,MAAS;AAAA,MAAE,OAAO,EAAE,GAAE,CAAC;AAAA,IAAE,IAAG,EAAE,SAAO,EAAE;AAAA,MAAK,OAAO,EAAE,OAAK,EAAE,OAAK,KAAG;AAAA,IAAE,IAAI,IAAE,EAAE,OAAM,KAAE,EAAE;AAAA,IAAM,OAAO,MAAI,OAAK,KAAG,OAAI,QAAM,EAAE,SAAO,eAAa,GAAE,SAAO,cAAY,IAAE,EAAE,SAAO,eAAa,GAAE,SAAO,eAAa,EAAE,QAAM,GAAE,QAAM,KAAG;AAAA;AAAA,EAAE,IAAI,GAAE;AAAA,IAAC,OAAO,KAAK,SAAS,KAAK;AAAA;AAAA,EAAE,OAAO,GAAE;AAAA,IAAC,OAAO,KAAK,SAAS,QAAQ;AAAA;AAAA,EAAE,GAAG,CAAC,KAAG,MAAK,GAAE,SAAQ,GAAE,WAAU,GAAE,eAAc,IAAE,OAAM,KAAG;AAAA,IAAC,IAAI,IAAE,KAAK,SAAS,IAAI,CAAC;AAAA,IAAE,IAAE,OAAO,OAAO,GAAE,EAAC,MAAK,GAAE,SAAQ,GAAE,WAAU,EAAC,CAAC,KAAG,MAAS,cAAI,KAAK,YAAU,KAAK,UAAU,GAAE,IAAE,KAAK,YAAW,KAAK,SAAS,IAAI,GAAE,EAAC,MAAK,GAAE,SAAQ,GAAE,OAAM,GAAE,eAAc,IAAE,WAAU,EAAC,CAAC;AAAA;AAAA,EAAG,SAAS,GAAE;AAAA,IAAC,OAAO,KAAK,cAAY,KAAK,YAAU;AAAA;AAAE,GAAsgX,IAK/wkB,IAA6sJ,KAAG,IAAG,KAAG,IAAG,KAAG,IAAG,KAAG,IAAG,KAAG,IAAG,KAAG,IAAG,KAAG,IAAG,KAAG,IAAG,KAAG,IAAG,KAAG,IAAG,KAAG,IAAG,KAAG,IAAG,KAAG,IAAG,KAAG,IAAG,KAAG,IAAG,KAAG,GAAE,KAAG,KAEn/O,IAA+jN,IAAouP,IAWtqe,IAA62B,IAAc,IAAke;AAAA;AAAA,EA9B37D;AAAA,EAA+F;AAAA,EAA+8I,KAAG,IAAI,IAAI,CAAC,CAAC,UAAS,CAAC,iBAAgB,aAAa,CAAC,GAAE,CAAC,WAAU,CAAC,kBAAiB,cAAc,CAAC,GAAE,CAAC,UAAS,CAAC,gBAAe,2BAA0B,+BAA8B,iBAAgB,iBAAgB,yBAAyB,CAAC,CAAC,CAAC;AAAA,EAAy+E,KAAE,cAAc,IAAG;AAAA,IAAC,WAAW,CAAC,GAAE;AAAA,MAAC,MAAM;AAAA,MAAE,KAAK,UAAQ;AAAA;AAAA,IAAE,GAAG,CAAC,GAAE;AAAA,MAAC,IAAI,IAAE,MAAM,IAAI,CAAC;AAAA,MAAE,OAAO,MAAS,cAAI,IAAE,KAAK,QAAQ,GAAE,IAAI,GAAE,KAAK,IAAI,GAAE,CAAC,IAAG;AAAA;AAAA,EAAE;AAAA,EASzrM,KAAG,IAAI,WAAW,GAAG;AAAA,EAAohL,KAAG,IAAI,GAAE,OAAG;AAAA,IAAC,IAAI,IAAE,GAAE,CAAC,GAAE,IAAE,IAAI;AAAA,IAAI,OAAO,IAAG,GAAE,CAAC,KAAG,QAAO,QAAK;AAAA,MAAC,IAAI,KAAE,MAAI,OAAK,IAAE,EAAE,SAAO,CAAC;AAAA,MAAE,IAAG,EAAE,SAAO,WAAS,EAAE,UAAQ,OAAK,EAAE,UAAQ,OAAK,EAAE,UAAQ,OAAK,EAAE,UAAQ,MAAK;AAAA,QAAC,IAAI,IAAE,GAAE,QAAQ,CAAC,KAAG;AAAA,QAAG,IAAG,MAAI;AAAA,UAAG;AAAA,QAAO,IAAI,IAAE,GAAE,IAAE;AAAA,QAAG,IAAG,GAAG,SAAO,eAAa,EAAE,UAAQ;AAAA,UAAI;AAAA,QAAO,IAAI,KAAE,GAAE,IAAE;AAAA,QAAG,IAAG,IAAG,SAAO,eAAa,GAAE,UAAQ;AAAA,UAAI;AAAA,QAAO,EAAE,IAAI,CAAC,GAAE,EAAE,IAAI,EAAC;AAAA,MAAC,EAAM;AAAA,UAAE,SAAO,eAAa,EAAE,MAAM,KAAK,MAAI,MAAI,EAAE,QAAM,MAAI,EAAE,SAAO,eAAa,EAAE,MAAM,SAAO,KAAG,EAAE,MAAM,KAAK,MAAI,MAAI,GAAE,OAAK,KAAG,GAAE,GAAE,SAAO,OAAK,MAAI,EAAE,IAAI,CAAC,IAAE,EAAE,SAAO,eAAa,EAAE,MAAM,KAAK,MAAI,QAAM,EAAE,QAAM;AAAA,KAAK,GAAE,EAAE,OAAK,KAAG,IAAG,GAAE,CAAC,KAAG,aAAY,QAAK;AAAA,MAAC,EAAE,IAAI,CAAC,MAAI,EAAE,OAAO,CAAC,GAAE,EAAE,CAAC,CAAC;AAAA,KAAG,GAAE,GAAG,CAAC,GAAE,GAAE,CAAC;AAAA,GAAE;AAAA,EAAsC,KAAG,IAAI,GAAE,OAAG;AAAA,IAAC,IAAI,IAAE,GAAE,CAAC;AAAA,IAAE,OAAO,EAAE,WAAS,KAAG,EAAE,GAAG,SAAO,UAAQ,EAAE,GAAG,UAAQ,OAAK,EAAE,GAAG,SAAO,eAAa,EAAE,GAAG,UAAQ,OAAK,EAAE,GAAG,SAAO,cAAY,EAAE,GAAG,UAAQ,OAAK,GAAE,EAAE,GAAG,KAAK,IAAE;AAAA,GAAE;AAAA,EAAigB,KAAG,IAAI,GAAE,OAAG;AAAA,IAAC,IAAI,IAAE,GAAE,CAAC;AAAA,IAAE,OAAO,EAAE,WAAS,KAAG,EAAE,GAAG,SAAO,cAAY,EAAE,GAAG,UAAQ;AAAA,GAAM;AAAA,EAAqc,KAAG,IAAI,IAAI,CAAC,SAAQ,WAAU,WAAU,UAAS,OAAO,CAAC;AAAA,EAAE,KAAG;AAAA,EAAoW,KAAG;AAAA,EAA6B,KAAG;AAAA,EAAgC,KAAG,CAAC,KAAI,OAAM,KAAI,OAAM,KAAI,OAAM,KAAI,OAAM,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,IAAI;AAAA,EAA+0C,KAAG;AAAA,EAA6r9F,KAAG,CAAC,UAAS,WAAU,SAAQ,YAAY;AAAA,EAGxwsG,KAAG,EAAC,WAAU,IAAG,aAAY,IAAG,WAAU,IAAG,OAAM,GAAE;AAAA,EAAywD,KAAG,IAAI,OAAO,OAAO,KAAK,EAAE,EAAE,IAAI,OAAG,GAAG,MAAM,EAAE,KAAK,GAAG,CAAC;AAAA,EAA41C,KAAG;AAAA,EAA8tE,KAAG;AAAA,EAA66b,KAAG,CAAC,kBAAiB,kBAAiB,cAAa,YAAW,SAAQ,gBAAe,eAAc,sBAAqB,oBAAmB,OAAM,SAAQ,UAAS,QAAO,aAAY,WAAU,SAAQ,eAAc,qBAAoB,mBAAkB,YAAW,kBAAiB,gBAAe,SAAQ,SAAQ,4BAA2B,UAAS,iBAAgB,gBAAe,uBAAsB,qBAAoB,cAAa,gBAAe,iBAAgB,eAAc,cAAa,WAAU,gBAAe,gBAAe,UAAS,cAAa,cAAa,SAAQ,aAAY,aAAY,QAAO,eAAc,aAAY,cAAa,gBAAe,gBAAe,mBAAkB,kBAAiB,oBAAmB,aAAY,oBAAmB,oBAAmB,oBAAmB,SAAQ,gBAAe,gBAAe,gBAAe,UAAS,iBAAgB,iBAAgB,iBAAgB,eAAc,eAAc,aAAY,aAAY,UAAS,gBAAe,cAAa,cAAa,mBAAkB,UAAS,oBAAmB,+BAA8B,qBAAoB,oBAAmB,iBAAgB,wBAAuB,uBAAsB,8BAA6B,4BAA2B,qBAAoB,uBAAsB,wBAAuB,sBAAqB,kBAAiB,yBAAwB,wBAAuB,+BAA8B,6BAA4B,sBAAqB,wBAAuB,yBAAwB,uBAAsB,uBAAsB,mBAAkB,oBAAmB,cAAa,WAAU,gBAAe,gBAAe,eAAc,qBAAoB,kBAAiB,kBAAiB,yBAAwB,sBAAqB,kBAAiB,aAAY,iBAAgB,eAAc,iBAAgB,eAAc,mBAAkB,iBAAgB,OAAM,cAAa,WAAU,wBAAuB,wBAAuB,kBAAiB,kBAAiB,yBAAwB,gBAAe,gBAAe,cAAa,cAAa,gBAAe,YAAW,cAAa,cAAa,uBAAsB,yBAAwB,yBAAwB,mBAAkB,iBAAgB,uBAAsB,qBAAoB,qBAAoB,uBAAsB,wBAAuB,sBAAqB,6BAA4B,2BAA0B,yBAAwB,2BAA0B,0BAAyB,2BAA0B,8BAA6B,6BAA4B,gBAAe,uBAAsB,sBAAqB,6BAA4B,2BAA0B,oBAAmB,sBAAqB,uBAAsB,qBAAoB,gBAAe,uBAAsB,sBAAqB,6BAA4B,2BAA0B,oBAAmB,sBAAqB,uBAAsB,qBAAoB,gBAAe,uBAAsB,sBAAqB,6BAA4B,2BAA0B,oBAAmB,sBAAqB,uBAAsB,qBAAoB,oBAAmB,oBAAmB,0BAAyB,uBAAsB,2BAA0B,sBAAqB,+BAA8B,qBAAoB,8BAA6B,oBAAmB,6BAA4B,cAAa,iBAAgB,4BAA2B,+BAA8B,0BAAyB,6BAA4B,mBAAkB,8BAA6B,iCAAgC,4BAA2B,+BAA8B,oBAAmB,+BAA8B,kCAAiC,6BAA4B,gCAA+B,kBAAiB,6BAA4B,gCAA+B,2BAA0B,8BAA6B,oBAAmB,6BAA4B,+BAA8B,kCAAiC,6BAA4B,gCAA+B,oBAAmB,0BAAyB,yBAAwB,6BAA4B,+BAA8B,kCAAiC,6BAA4B,gCAA+B,mBAAkB,4BAA2B,8BAA6B,iCAAgC,4BAA2B,+BAA8B,wBAAuB,mBAAkB,yBAAwB,mBAAkB,uBAAsB,qBAAoB,qBAAoB,kBAAiB,aAAY,aAAY,aAAY,aAAY,iBAAgB,eAAc,eAAc,QAAO,UAAS,gBAAe,cAAa,mBAAkB,WAAU,kBAAiB,iBAAgB,wBAAuB,sBAAqB,eAAc,iBAAgB,kBAAiB,gBAAe,cAAa,eAAc,kBAAiB,eAAc,aAAY,eAAc,eAAc,kBAAiB,aAAY,iBAAgB,cAAa,iBAAgB,WAAU,eAAc,SAAQ,kBAAiB,cAAa,gBAAe,wBAAuB,wBAAuB,yBAAwB,yBAAwB,6BAA4B,yBAAwB,0BAAyB,qBAAoB,eAAc,gBAAe,gBAAe,WAAU,yBAAwB,kBAAiB,cAAa,eAAc,qBAAoB,oBAAmB,mBAAkB,qBAAoB,2BAA0B,0BAAyB,yBAAwB,0BAAyB,0BAAyB,WAAU,iBAAgB,kBAAiB,iBAAgB,aAAY,mBAAkB,iBAAgB,oBAAmB,kBAAiB,mBAAkB,eAAc,iBAAgB,cAAa,UAAS,sBAAqB,4BAA2B,0BAAyB,2BAA0B,4BAA2B,wBAAuB,yBAAwB,0BAAyB,uBAAsB,mBAAkB,uBAAsB,uBAAsB,oBAAmB,uBAAsB,8BAA6B,eAAc,WAAU,WAAU,qBAAqB;AAAA,EAKl+wB,KAAG;AAAA,EAEvsF,KAAG;AAAA,EAA4jN,KAAG,EAAC,WAAU,CAAC,GAAE,QAAO,CAAC,GAAE,QAAO,IAAG,WAAU,OAAG,UAAS,MAAK,OAAM,CAAC,GAAE,SAAQ,CAAC,GAAE,SAAQ,EAAC,OAAM,CAAC,EAAC,EAAC;AAAA,EAA8nP,KAAG;AAAA,EAWzqe,KAAG;AAAA,EAA02B,KAAG;AAAA,EAAW,MAAI,QAAI,EAAE,EAAE,OAAK,KAAG,QAAO,EAAE,EAAE,aAAW,KAAG,cAAa,EAAE,EAAE,WAAS,KAAG,YAAW,EAAE,EAAE,MAAI,KAAG,OAAM,IAAI,MAAI,CAAC,CAAC;AAAA,EAAkX,MAAI,QAAI,EAAE,EAAE,OAAK,KAAG,QAAO,EAAE,EAAE,UAAQ,KAAG,WAAU,EAAE,EAAE,WAAS,KAAG,YAAW,EAAE,EAAE,iBAAe,KAAG,kBAAiB,EAAE,EAAE,gBAAc,KAAG,iBAAgB,EAAE,EAAE,YAAU,MAAI,aAAY,EAAE,EAAE,WAAS,MAAI,YAAW,IAAI,MAAI,CAAC,CAAC;AAAA;;;;;;;;;;;;;EC9B1pE;AAAA,EAA8C;AAAA,EAA6B;AAAA;;;;;;;;;;ACmB3E,uBAAS;AACT,uBAAS,6BAAY;AACrB,qBAAS;AACT,oBAAS,wBAAS,wBAAY;AAAA,IAgCxB,eAEF,wBAAgD,MAE9C,sBAAsB,YAAY;AAAA,EACvC,IAAI;AAAA,IAAuB,OAAO;AAAA,EAClC,IAAI;AAAA,IACH,MAAM,MAAM;AAAA,IAEZ,wBAAwB,IAAI;AAAA,IAE5B,OAAO,IAAI;AAAA,IACV,MAAM;AAAA,IACP,MAAM,IAAI,MACT,2EACD;AAAA;AAAA,GAII,mBAAmB,OAAO,MAA2B,SAAiB;AAAA,EAC3E,IAAI;AAAA,IACH,MAAM,SAAS,MAAM,KAAK,IAAI,GAAG;AAAA,IACjC,KAAK,IAAI,MAAM,KAAK;AAAA,IACnB,MAAM;AAAA,IACP,KAAK,IAAI,MAAM,CAAC;AAAA;AAAA,GAqBZ,uBAAuB,CAAC,IAAY,SAAiB;AAAA,EAC1D,MAAM,aAAa,GAAG,QAAQ,GAAG;AAAA,EACjC,MAAM,UAAU,GAAG,WAAW,GAAG,IAC9B,GAAG,MAAM,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,IAClC,eAAe,KACd,KACA,GAAG,MAAM,GAAG,UAAU;AAAA,EAC1B,MAAM,UAAU,GAAG,MAAM,QAAQ,MAAM;AAAA,EAEvC,IAAI,YAAY,IAAI;AAAA,IACnB,OAAO,IAAI,YAAY,IAAI,IAAI;AAAA,EAChC;AAAA,EAEA,IAAI;AAAA,EACJ,IAAI;AAAA,IACH,cAAc,IAAI,YAAY,GAAG,wBAAwB,IAAI;AAAA,IAC5D,MAAM;AAAA,IACP,OAAO,IAAI,YAAY,IAAI,IAAI;AAAA;AAAA,EAGhC,MAAM,SAAS,SAAQ,WAAW;AAAA,EAClC,IAAI,MAA+B,CAAC;AAAA,EACpC,IAAI;AAAA,IACH,MAAM,KAAK,MAAM,cAAa,aAAa,OAAO,CAAC;AAAA,IAClD,MAAM;AAAA,IACP,OAAO,IAAI,YAAY,IAAI,IAAI;AAAA;AAAA,EAGhC,MAAM,eAAe,IAAI;AAAA,EAGzB,MAAM,mBAAmB,eAAe,MAAM;AAAA,EAC9C,MAAM,aAAa;AAAA,IAClB;AAAA,IACA,OAAO,IAAI,UAAU,WAAW,IAAI,QAAQ;AAAA,IAC5C;AAAA,IACA;AAAA,EACD,EAAE,OAAO,CAAC,UAA2B,OAAO,UAAU,QAAQ;AAAA,EAE9D,WAAW,aAAa,YAAY;AAAA,IACnC,MAAM,gBAAgB,SAAQ,QAAQ,SAAS;AAAA,IAC/C,IAAI,YAAW,aAAa;AAAA,MAAG,OAAO;AAAA,EACvC;AAAA,EAEA,OAAO,IAAI,YAAY,IAAI,IAAI;AAAA,GAM1B,uBACL,CAAC,SAA8B,OAAO,IAAY,SAAiB;AAAA,EAClE,MAAM,OACL,GAAG,WAAW,GAAG,KAAK,YAAW,EAAE,IAChC,SAAQ,MAAM,EAAE,IAChB,qBAAqB,IAAI,IAAI;AAAA,EACjC,MAAM,UAAU,MAAM,UAAS,MAAM,OAAO;AAAA,EAC5C,MAAM,iBAAiB,MAAM,IAAI;AAAA,EAEjC,OAAO,EAAE,MAAM,SAAQ,IAAI,GAAG,SAAS,KAAK;AAAA,GAGxC,aAAa,OAClB,IACA,MACA,UACI;AAAA,EACJ,MAAM,OACL,GAAG,WAAW,GAAG,KAAK,YAAW,EAAE,IAChC,SAAQ,MAAM,EAAE,IAChB,IAAI,YAAY,IAAI,IAAI;AAAA,EAC5B,MAAM,SAAS,MAAa;AAAA,EAE5B,OAAO,EAAE,MAAM,SAAQ,IAAI,GAAG,QAAQ,KAAK;AAAA,GAGtC,qBAAqB,OAAO,YAA4C;AAAA,EAC7E,MAAM,UAAU,MAAM,oBAAoB;AAAA,EAC1C,MAAM,UAAU,SAAQ,OAAO;AAAA,EAC/B,MAAM,MAAM,MAAM,UAAS,SAAS,OAAO;AAAA,EAC3C,MAAM,cAAc,MAAM,KAAK,OAAO,GAAG;AAAA,EACzC,MAAM,kBAAkB,IAAI;AAAA,EAC5B,gBAAgB,IAAI,SAAS,UAAU;AAAA,EACvC,MAAM,WAAW,MAAM,QAAQ,KAAK;AAAA,IACnC,MAAM,SAAQ,OAAO;AAAA,IACrB;AAAA,IACA,gBAAgB,qBAAqB,eAAe;AAAA,EACrD,CAAC;AAAA,EAED,OAAO;AAAA,IACN,iBAAiB,IAAI;AAAA,IACrB;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB,mBAAmB,IAAI;AAAA,IACvB,SAAS,CAAC,GAAG,SAAS,OAAO;AAAA,EAC9B;AAAA,GAiBK,mBAEO,oBAAoB,CAAC,WAAmB;AAAA,EACpD,MAAM,MAAM,IAAI;AAAA,EAChB,WAAW,SAAS,OAAO,SAAS,iBAAiB,GAAG;AAAA,IACvD,IAAI,IAAI,MAAM,EAAE;AAAA,EACjB;AAAA,EAEA,OAAO;AAAA,GAGF,UAAU,CAAC,QAAgB,YAAW,MAAM,EAAE,OAAO,GAAG,EAAE,OAAO,KAAK,GAUtE,qBAAqB,CAAC,MAAc,YAA8B;AAAA,EACvE,IAAI,QAAQ,WAAW;AAAA,IAAG,OAAO;AAAA,EACjC,MAAM,UAAU,SAAQ,IAAI;AAAA,EAC5B,WAAW,UAAU,SAAS;AAAA,IAC7B,IAAI,OAAO;AAAA,MAAS;AAAA,IACpB,MAAM,kBAAkB,SAAQ,OAAO,MAAM,OAAO,OAAO;AAAA,IAG3D,IAAI,CAAC,SAAS,KAAK,eAAe,GAAG;AAAA,MACpC,IAAI,oBAAoB;AAAA,QAAS,OAAO;AAAA,MACxC;AAAA,IACD;AAAA,IACA,MAAM,OAAO,IAAI,IAAI,KAAK,eAAe;AAAA,IACzC,IAAI,KAAK,MAAM,OAAO;AAAA,MAAG,OAAO;AAAA,EACjC;AAAA,EAEA,OAAO;AAAA,GAGF,0BAA0B,CAAC,OAAsB,cAAsB;AAAA,EAC5E,MAAM,UAAU,MAAM,gBAAgB,IAAI,SAAS,KAAK;AAAA,EACxD,MAAM,gBAAgB,IAAI,WAAW,UAAU,CAAC;AAAA,GAG3C,0BAA0B,CAAC,OAAsB,cAAsB;AAAA,EAC5E,MAAM,UAAU,MAAM,gBAAgB,IAAI,SAAS,KAAK;AAAA,EACxD,MAAM,OAAO,UAAU;AAAA,EACvB,IAAI,QAAQ,GAAG;AAAA,IACd,MAAM,gBAAgB,OAAO,SAAS;AAAA,IAEtC;AAAA,EACD;AAAA,EACA,MAAM,gBAAgB,IAAI,WAAW,IAAI;AAAA,GAGpC,wBAAwB,CAC7B,OACA,MACA,oBACI;AAAA,EACJ,MAAM,WAAW,MAAM,kBAAkB,IAAI,IAAI;AAAA,EACjD,IAAI,UAAU;AAAA,IACb,WAAW,aAAa;AAAA,MACvB,wBAAwB,OAAO,SAAS;AAAA,EAC1C;AAAA,EACA,MAAM,kBAAkB,IAAI,MAAM,eAAe;AAAA,EACjD,WAAW,aAAa;AAAA,IACvB,wBAAwB,OAAO,SAAS;AAAA,GAOpC,uBAAuB,CAAC,oBAA4B;AAAA,EACzD,MAAM,iBAAiB,gBAAgB,OAAO,QAAQ;AAAA,EACtD,IAAI,mBAAmB,IAAI;AAAA,IAC1B,OAAO,EAAE,MAAM,IAAI,MAAM,gBAAgB;AAAA,EAC1C;AAAA,EACA,MAAM,sBAAsB,gBAAgB,YAC3C,KACA,cACD;AAAA,EAEA,OAAO;AAAA,IACN,MAAM,gBAAgB,MAAM,sBAAsB,CAAC;AAAA,IACnD,MAAM,gBAAgB,MAAM,GAAG,mBAAmB,KAAK;AAAA,EACxD;AAAA,GAGK,yBAAyB,OAAO,YAA8B;AAAA,EACnE,MAAM,OAAO,IAAI;AAAA,EACjB,MAAM,YAAsB,CAAC;AAAA,EAC7B,MAAM,QAAQ,QACZ,OAAO,CAAC,WAAW,CAAC,OAAO,OAAO,EAClC,IAAI,OAAO,WAAW;AAAA,IACtB,MAAM,kBAAkB,SAAQ,OAAO,MAAM,OAAO,OAAO;AAAA,IAC3D,QAAQ,MAAM,iBAAiB,SAC9B,qBAAqB,eAAe;AAAA,IAIrC,IAAI,CAAC,iBAAiB;AAAA,MACrB,IAAI;AAAA,QACH,MAAM,QAAQ,MAAM,KAAK,eAAe;AAAA,QACxC,OAAO,MAAM,OAAO,IAAI,CAAC,eAAe,IAAI,CAAC;AAAA,QAC5C,MAAM;AAAA,QACP,OAAO,CAAC;AAAA;AAAA,IAEV;AAAA,IACA,MAAM,OAAO,IAAI,IAAI,KAAK,eAAe;AAAA,IACzC,MAAM,UAAoB,CAAC;AAAA,IAC3B,iBAAiB,aAAY,KAAK,KAAK;AAAA,MACtC,UAAU;AAAA,MACV,KAAK;AAAA,MACL,WAAW;AAAA,IACZ,CAAC,GAAG;AAAA,MACH,QAAQ,KAAK,SAAQ,MAAM,SAAQ,CAAC;AAAA,IACrC;AAAA,IAEA,OAAO;AAAA,GACP;AAAA,EACF,MAAM,UAAU,MAAM,QAAQ,IAAI,KAAK;AAAA,EACvC,WAAW,YAAY,QAAQ,KAAK,GAAG;AAAA,IACtC,IAAI,KAAK,IAAI,QAAQ;AAAA,MAAG;AAAA,IACxB,KAAK,IAAI,QAAQ;AAAA,IACjB,UAAU,KAAK,QAAQ;AAAA,EACxB;AAAA,EAEA,OAAO;AAAA,GAGF,aAAa,OAAO,OAAsB,aAAqB;AAAA,EACpE,IAAI;AAAA,IACH,MAAM,OAAO,MAAM,UAAS,UAAU,OAAO;AAAA,IAC7C,sBAAsB,OAAO,UAAU,kBAAkB,IAAI,CAAC;AAAA,IAC7D,MAAM;AAAA,GAKH,mCAAmC,OAAO,UAAyB;AAAA,EACxE,MAAM,QAAQ,MAAM,uBAAuB,MAAM,OAAO;AAAA,EACxD,MAAM,QAAQ,IAAI,MAAM,IAAI,CAAC,SAAS,WAAW,OAAO,IAAI,CAAC,CAAC;AAAA,GAGzD,kBAAkB,OAAO,UAAyB;AAAA,EACvD,MAAM,SAAS,CAAC,GAAG,MAAM,gBAAgB,QAAQ,CAAC,EAAE,IACnD,QAAQ,MAAM,gBAAgB;AAAA,IAC7B,IAAI;AAAA,MACH,MAAM,SAAS,MAAM,KAAK,IAAI,GAAG;AAAA,MAEjC,OAAO,UAAU;AAAA,MAChB,MAAM;AAAA,MACP,OAAO;AAAA;AAAA,GAGV;AAAA,EACA,MAAM,UAAU,MAAM,QAAQ,IAAI,MAAM;AAAA,EAExC,OAAO,QAAQ,KAAK,OAAO;AAAA,GAGtB,mBAAmB,OAAO,YAAoB;AAAA,EACnD,MAAM,MAAM,SAAQ,OAAO;AAAA,EAC3B,MAAM,SAAS,cAAc,IAAI,GAAG;AAAA,EACpC,IAAI,UAAU,CAAE,MAAM,gBAAgB,MAAM;AAAA,IAAI,OAAO;AAAA,EAEvD,MAAM,QAAQ,MAAM,mBAAmB,OAAO;AAAA,EAC9C,MAAM,iCAAiC,KAAK;AAAA,EAC5C,cAAc,IAAI,KAAK,KAAK;AAAA,EAE5B,OAAO;AAAA,GAKK,0BAA0B,CAAC,YAAqB;AAAA,EAC5D,IAAI,CAAC,SAAS;AAAA,IACb,cAAc,MAAM;AAAA,IAEpB;AAAA,EACD;AAAA,EACA,cAAc,OAAO,SAAQ,OAAO,CAAC;AAAA,GAKzB,2BAA2B,OACvC,UACA,WACA,cACA,yBACI;AAAA,EACJ,MAAM,YAAY,YAAY,IAAI;AAAA,EAClC,MAAM,QAAQ,MAAM,iBAAiB,SAAS,KAAK;AAAA,EACnD,MAAM,WAAW,MAAM;AAAA,EACvB,MAAM,gBAA0B,CAAC;AAAA,EAEjC,WAAW,QAAQ,cAAc;AAAA,IAChC,MAAM,MAAM,SAAQ,IAAI;AAAA,IACxB,IAAI,QAAQ;AAAA,MAAU;AAAA,IACtB,IAAI,CAAC,mBAAmB,KAAK,MAAM,OAAO;AAAA,MAAG;AAAA,IAC7C,cAAc,KAAK,GAAG;AAAA,EACvB;AAAA,EAEA,MAAM,QAAQ,IAAI,cAAc,IAAI,CAAC,SAAS,WAAW,OAAO,IAAI,CAAC,CAAC;AAAA,EAEtE,MAAM,SAAS,MAAM,SAAS,MAAM,CAAC,GAAG,MAAM,gBAAgB,KAAK,CAAC,CAAC;AAAA,EACrE,MAAM,aAAa,SAAQ,WAAW,SAAS,MAAM;AAAA,EACrD,MAAM,WAAW,MAAM,mBACtB,YACA,QACA,OACA,oBACD;AAAA,EACA,MAAM,OAAO,QAAQ,QAAQ;AAAA,EAC7B,MAAM,aAAa,YAAY,IAAI,IAAI;AAAA,EAEvC,IAAI,SAAS,MAAM,iBAAiB;AAAA,IACnC,OAAO,EAAE,YAAY,OAAO,WAAW;AAAA,EACxC;AAAA,EAEA,MAAM,IAAI,MAAM,YAAY,QAAQ;AAAA,EACpC,MAAM,kBAAkB;AAAA,EAExB,OAAO,EAAE,YAAY,MAAM,WAAW;AAAA,GAM1B,uBAAuB,OAAO,aAA6B;AAAA,EACvE,MAAM,iBAAiB,SAAS,KAAK;AAAA;AAAA;AAAA,EAzatC;AAAA,EA+BM,gBAAgB,IAAI;AAAA,EAgKpB,oBAAoB;AAAA;;;ACtN1B,kBAAS;AACT,oBAAS,kBAAS;AAAA,IAWZ,sCAGO,sBAAsB,CAAC,aACnC,qCAAqC,KAAK,QAAQ,GAgBtC,kBAAkB,OAC9B,OACA,QACA,WACA,yBACI;AAAA,EACJ,MAAM,aAAa,MAAK,WAAW,MAAM;AAAA,EACzC,MAAM,OAAM,SAAQ,UAAU,GAAG,EAAE,WAAW,KAAK,CAAC;AAAA,EACpD,MAAM,yBACL,EAAE,OAAO,OAAO,GAChB,WACA,CAAC,GACD,oBACD;AAAA,GAGY,wBAAwB,OACpC,UACA,WACA,yBAEA,gBACC,SAAS,OACT,SAAS,QACT,WACA,oBACD;AAAA;AAAA,EApDD;AAAA,EAMM,uCACL;AAAA;;;ACbD,uBAAS,0BAAY,4BAAW,gCAAc;AAC9C,iBAAS,kBAAM;AAAA,IAeF,sBACA,qBACA,iBAEA,wBAAwB,oBAM/B,iBAAiB,IAInB,cAAuB,WACvB,cAAc,OACd,cAAc,OAKZ,aAAa,CAAC,QAAgB,UAAoB;AAAA,EACvD,WAAW,QAAQ,OAAO;AAAA,IACzB,IAAI,QAAQ;AAAA,MAAQ,OAAO;AAAA,EAC5B;AAAA,EAEA,OAAO,MAAM,MAAM,SAAS,MAAM;AAAA,GAI7B,gBAAgB,CAAC,QAAgB,YAAoB;AAAA,EAC1D,IAAI,YAAY;AAAA,IAAQ,OAAO;AAAA,EAE/B,IAAI,QAAQ,WAAW,IAAI,GAAG;AAAA,IAC7B,MAAM,SAAS,QAAQ,MAAM,CAAC;AAAA,IAE9B,OAAO,OAAO,SAAS,MAAM,KAAK,OAAO,SAAS,OAAO;AAAA,EAC1D;AAAA,EAEA,OAAO;AAAA,GAIF,gBAAgB,CAAC,QAAgB,YAAoB;AAAA,EAC1D,IAAI,QAAQ,SAAS,KAAK,GAAG;AAAA,IAC5B,MAAM,SAAS,QAAQ,MAAM,GAAG,CAAC,wBAAwB;AAAA,IAEzD,OAAO,OAAO,WAAW,MAAM;AAAA,EAChC;AAAA,EAEA,OAAO,WAAW;AAAA,GAGb,UAuBA,iBAAiB,CAAC,UACvB,OAAO,UAAU,YAGZ,YAAY,CAAC,UAAmB,UAAkB;AAAA,EACvD,IAAI,CAAC,eAAe,QAAQ,GAAG;AAAA,IAC9B,MAAM,IAAI,MAAM,sCAAsC;AAAA,EACvD;AAAA,EAEA,OAAO,SAAS,KAAK;AAAA,GAGhB,WAAW,CAAC,UAAgC;AAAA,EACjD,IAAI,OAAO,SAAS,KAAK;AAAA,IAAG,OAAO;AAAA,EAEnC,OAAO,OAAO,KAAK,KAAK;AAAA,GAKZ,oBAAoB,CAChC,KACA,OACA,SACA,WAAW,0BACP,GAAG,gBAAgB,mBAAmB,GAAG,OAAO,WAAW,WASnD,eAAe,CAAC,WAAwB,SAAS,SAejD,kBAAkB,CAAC,oBAA4B;AAAA,EAE3D,MAAM,MAAM,iJAAiJ,sKAAsK;AAAA,EAEnU,MAAM,UAAU,mBAAmB,GAAG;AAAA,EAEtC,OAAO,2BAA2B;AAAA,GAGtB,iBAAiB,CAC7B,KACA,OACA,OACA,QACA,WACI;AAAA,EACJ,MAAM,UAAU,QAAQ,WAAW;AAAA,EAEnC,MAAM,WAAW,QAAQ,QAAQ;AAAA,EAEjC,MAAM,WACL,WACC,CAAC,WACD,kBACC,OAAO,KACP,OAAO,OACP,OAAO,SACP,QACD;AAAA,EAEF,IAAI,OAAO;AAAA,IAEV,MAAM,WAAW,YAAY,MAAM;AAAA,IAEnC,OAAO,SACL,IACA,CAAC,cACA,GAAG,SAAS,EAAE,SAAS,KAAK,OAAO,UAAU,CAAC,KAAK,YACrD,EACC,KAAK,IAAI;AAAA,EACZ;AAAA,EAEA,IAAI,OAAO;AAAA,IAEV,MAAM,WAAW,YAAY,MAAM;AAAA,IAEnC,MAAM,MAAM,WAAW,OAAO,QAAQ;AAAA,IAEtC,MAAM,MAAM,WAAW,QAAQ,GAAG,QAAQ;AAAA,IAE1C,OAAO,GAAG,SAAS,EAAE,SAAS,KAAK,OAAO,IAAI,CAAC,SAAS,SAAS,EAAE,SAAS,KAAK,OAAO,IAAI,CAAC;AAAA,EAC9F;AAAA,EAGA,MAAM,cAAc,QAAQ,eAAe;AAAA,EAE3C,OAAO,YACL,IACA,CAAC,cACA,GAAG,SAAS,EAAE,SAAS,KAAK,OAAO,UAAU,CAAC,KAAK,YACrD,EACC,KAAK,IAAI;AAAA,GAGC,cAAc,CAAC,WAAyB;AAAA,EACpD,MAAM,SAAS,QAAQ,eAAe;AAAA,EAEtC,MAAM,QAAQ,QAAQ,cAAc;AAAA,EAEpC,OAAO,CAAC,GAAG,QAAQ,GAAG,KAAK,EAAE,KAAK,CAAC,MAAM,UAAU,OAAO,KAAK;AAAA,GAGnD,cAAc,CAAC,aAAqB;AAAA,EAChD,MAAM,MAAM,MAAK,UAAU,UAAU,QAAQ;AAAA,EAE7C,IAAI,CAAC,YAAW,GAAG;AAAA,IAAG,WAAU,KAAK,EAAE,WAAW,KAAK,CAAC;AAAA,EAExD,OAAO;AAAA,GAGK,cAAc,CAC1B,KACA,OACA,SACA,WACI;AAAA,EACJ,MAAM,SAAS,IAAI,IAAI,aAAa,QAAQ;AAAA,EAE5C,OAAO,OAAO,GAAG,OAAO,SAAS,WAAW,QAAQ;AAAA,EAEpD,OAAO,OAAO,OAAO,KAAK;AAAA,GAGd,eAAe,CAAC,SAAoB,KAAK,IAAI,IAAI,KAAK,UAEtD,qBAAqB,CACjC,WACA,aACI;AAAA,EACJ,IAAI;AAAA,EAEJ,IAAI;AAAA,IACH,SAAS,IAAI,IAAI,SAAS;AAAA,IACzB,MAAM;AAAA,IACP,OAAO;AAAA;AAAA,EAGR,OAAO,SAAS,KAAK,CAAC,YAAY;AAAA,IACjC,IAAI,QAAQ,YAAY,OAAO,aAAa,GAAG,QAAQ;AAAA,MACtD,OAAO;AAAA,IAER,IAAI,CAAC,cAAc,OAAO,UAAU,QAAQ,QAAQ;AAAA,MAAG,OAAO;AAAA,IAE9D,IAAI,QAAQ,QAAQ,OAAO,SAAS,QAAQ;AAAA,MAAM,OAAO;AAAA,IAEzD,IACC,QAAQ,YACR,CAAC,cAAc,OAAO,UAAU,QAAQ,QAAQ;AAAA,MAEhD,OAAO;AAAA,IAER,OAAO;AAAA,GACP;AAAA,GAGW,kBAAkB,CAC9B,cACA,sBACI;AAAA,EAEJ,WAAW,UAAU,mBAAmB;AAAA,IACvC,MAAM,OAAO,SAAS;AAAA,IAEtB,IAAI,QAAQ,aAAa,SAAS,IAAI;AAAA,MAAG,OAAO;AAAA,EACjD;AAAA,EAGA,IACC,kBAAkB,SAAS,MAAM,KACjC,aAAa,SAAS,YAAY,GACjC;AAAA,IACD,OAAO;AAAA,EACR;AAAA,EAGA,OAAO;AAAA,GAGF,sBAAsB,IACtB,cAAc,GAEP,gBAAgB,OAC5B,QACA,OACA,SACA,WACI;AAAA,EACJ,MAAM,QAAQ,MAAM,aAAa;AAAA,EAEjC,IAAI,CAAC;AAAA,IAAO,OAAO,SAAS,MAAM;AAAA,EAElC,MAAM,WAAW,UAAU,OAAO,SAAS,MAAM,CAAC,EAChD,OAAO,EACP,OAAO,OAAO,WAAW,EAAE,oBAAoB,KAAK,CAAC;AAAA,EAEvD,QAAQ;AAAA,SACF;AAAA,MACJ,OAAO,SACL,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,SAAS,KAAK,IAAI,GAAG,UAAU,mBAAmB;AAAA,MACnD,CAAC,EACA,SAAS;AAAA,SACP;AAAA,MACJ,OAAO,SAAS,KAAK,EAAE,SAAS,MAAM,QAAQ,CAAC,EAAE,SAAS;AAAA,SACtD;AAAA,MACJ,OAAO,SAAS,IAAI,EAAE,QAAQ,CAAC,EAAE,SAAS;AAAA,SACtC;AAAA,MACJ,OAAO,SAAS,KAAK,EAAE,QAAQ,CAAC,EAAE,SAAS;AAAA;AAAA,MAE3C,OAAO,SAAS,MAAM;AAAA;AAAA,GAIZ,gBAAgB,CAAC,UAAkB,aAAqB;AAAA,EACpE,MAAM,WAAW,MAAK,UAAU,GAAG,eAAe;AAAA,EAElD,MAAM,WAAW,MAAK,UAAU,GAAG,eAAe;AAAA,EAElD,IAAI,CAAC,YAAW,QAAQ,KAAK,CAAC,YAAW,QAAQ;AAAA,IAAG,OAAO;AAAA,EAE3D,IAAI;AAAA,IACH,MAAM,OAAkB,KAAK,MAAM,cAAa,UAAU,OAAO,CAAC;AAAA,IAElE,MAAM,SAAS,cAAa,QAAQ;AAAA,IAEpC,OAAO,EAAE,QAAQ,KAAK;AAAA,IACrB,MAAM;AAAA,IACP,OAAO;AAAA;AAAA,GAII,eAAe,YAAY;AAAA,EACvC,IAAI;AAAA,IAAa,OAAO;AAAA,EAExB,cAAc;AAAA,EAEd,IAAI;AAAA,IAGH,MAAM,YAAY,SAAQ,QAAQ,IAAI,GAAG,oBAAoB;AAAA,IAE7D,MAAM,MAAM,MAAa;AAAA,IAEzB,cAAc,IAAI,WAAW;AAAA,IAE7B,OAAO;AAAA,IACN,MAAM;AAAA,IACP,IAAI;AAAA,MAAa,OAAO;AAAA,IAExB,cAAc;AAAA,IAEd,QAAQ,KACP,4FACD;AAAA,IAEA,OAAO;AAAA;AAAA,GAII,eAAe,CAC3B,UACA,UACA,QACA,SACI;AAAA,EACJ,MAAM,WAAW,MAAK,UAAU,GAAG,eAAe;AAAA,EAElD,MAAM,WAAW,MAAK,UAAU,GAAG,eAAe;AAAA,EAElD,eAAc,UAAU,MAAM;AAAA,EAE9B,eAAc,UAAU,KAAK,UAAU,IAAI,CAAC;AAAA;AAAA;AAAA,EAxX7C;AAAA,EASa,uBAAuB;AAAA,EACvB,sBAAsB;AAAA,EACtB,kBAAkB;AAAA,EAmDzB,WAAwC;AAAA,IAC7C,MAAM;AAAA,IACN,MAAM;AAAA,IACN,KAAK;AAAA,IACL,MAAM;AAAA,EACP;AAAA;;;;;;;AC1EA,qBAAS,wBAAU;AAAA,IA2Bb,WAEA,UAAU,CAAC,OAAe,SAAiB;AAAA,EAChD,MAAM,QAAQ,IAAI,OAAO,GAAG,iCAAiC,GAAG;AAAA,EAEhE,MAAM,QAAQ,MAAM,KAAK,KAAK;AAAA,EAE9B,OAAO,QAAQ,MAAM,KAAK;AAAA,GAGrB,aAAa,CAAC,OAAe,SAClC,MAAM,QAAQ,IAAI,OAAO,OAAO,+BAA+B,IAAI,GAAG,EAAE,GAEnE,kBAAkB,CAAC,WAAmB,QAAgB,OAAe,WAAyB;AAAA,EACnG,MAAM,QAAQ,SAAS;AAAA,EAEvB,MAAM,MAAM,QAAQ,OAAO,KAAK;AAAA,EAEhC,IAAI,CAAC;AAAA,IAAK,OAAO;AAAA,EAEjB,MAAM,WAAW,QAAQ,OAAO,OAAO;AAAA,EAEvC,MAAM,QAAQ,QAAQ,OAAO,OAAO;AAAA,EAEpC,MAAM,UAAU,QAAQ,WAAW;AAAA,EAEnC,MAAM,WAAW,QAAQ,QAAQ;AAAA,EAEjC,MAAM,QAAQ,WAAW,SAAS,UAAU,EAAE,IAAI;AAAA,EAGlD,MAAM,eAAe,kBAAkB,KAAK,SAAS,GAAG,SAAS,QAAQ;AAAA,EAGzE,IAAI;AAAA,EAEJ,IAAI,OAAO;AAAA,IACV,MAAM,WAAW,YAAY,MAAM;AAAA,IAEnC,SAAS,SACP,IAAI,CAAC,cAAc,GAAG,kBAAkB,KAAK,WAAW,SAAS,QAAQ,KAAK,YAAY,EAC1F,KAAK,IAAI;AAAA,EACZ,EAAO,SAAI,OAAO;AAAA,IAEjB,MAAM,WAAW,YAAY,MAAM;AAAA,IAEnC,MAAM,MAAM,OAAO,OAAO,QAAQ;AAAA,IAElC,MAAM,MAAM,OAAO,QAAQ,GAAG,QAAQ;AAAA,IAEtC,SAAS,GAAG,kBAAkB,KAAK,KAAK,SAAS,QAAQ,SAAS,kBAAkB,KAAK,KAAK,SAAS,QAAQ;AAAA,EAChH,EAAO;AAAA,IACN,MAAM,cAAc,QAAQ,eAAe;AAAA,IAE3C,SAAS,YACP,IAAI,CAAC,cAAc,GAAG,kBAAkB,KAAK,WAAW,SAAS,QAAQ,KAAK,YAAY,EAC1F,KAAK,IAAI;AAAA;AAAA,EAIZ,IAAI,aAAa,WAAW,OAAO,gBAAgB;AAAA,EAEnD,aAAa,WAAW,YAAY,KAAK;AAAA,EAGzC,aAAa,WAAW,YAAY,SAAS;AAAA,EAE7C,aAAa,WAAW,YAAY,UAAU;AAAA,EAE9C,aAAa,WAAW,KAAK;AAAA,EAE7B,MAAM,gBAAgB,UAAU,QAAQ,YAAY;AAAA,EAEpD,MAAM,YAAY,gBAAgB,WAAW,mBAAmB;AAAA,EAEhE,OAAO,aAAa,yBAAyB,UAAU,aAAa;AAAA,GAG/D,SAAS,CAAC,QAAgB,UAAoB;AAAA,EACnD,WAAW,QAAQ,OAAO;AAAA,IACzB,IAAI,QAAQ;AAAA,MAAQ,OAAO;AAAA,EAC5B;AAAA,EAEA,OAAO,MAAM,MAAM,SAAS,MAAM;AAAA,GAGtB,qBAAqB,OACjC,WACA,WACI;AAAA,EACJ,MAAM,YAAY,MAAM,gBAAgB,WAAW,QAAQ;AAAA,EAE3D,MAAM,QAAQ,UAAU,IAAI,OAAO,aAAa;AAAA,IAC/C,MAAM,WAAW,MAAM,UAAS,UAAU,MAAM;AAAA,IAEhD,IAAI,CAAC,SAAS,SAAS,gBAAgB;AAAA,MAAG;AAAA,IAE1C,MAAM,UAAU,SAAS,QACxB,WACA,CAAC,OAAO,QAAQ,UAAU,gBAAgB,OAAO,QAAQ,OAAO,MAAM,CACvE;AAAA,IAEA,IAAI,YAAY,UAAU;AAAA,MACzB,MAAM,WAAU,UAAU,SAAS,MAAM;AAAA,IAC1C;AAAA,GACA;AAAA,EAED,MAAM,QAAQ,IAAI,KAAK;AAAA;AAAA;AAAA,EArIxB;AAAA,EAMA;AAAA,EAEA;AAAA,EAkBM,YAAY;AAAA;;;AC3BlB,uBAAS,2BAAY,4BAAW,gCAAc;AAC9C;AACA,iBAAS;AAAA,IAGH,WACA,YAEO,qBAAqB,MAAM;AAAA,EACvC,IAAI;AAAA,IACH,IAAI,CAAC,aAAW,UAAU;AAAA,MAAG,OAAO;AAAA,IACpC,MAAM,MAAM,cAAa,YAAY,OAAO;AAAA,IAE5C,MAAM,SAA0B,KAAK,MAAM,GAAG;AAAA,IAE9C,OAAO;AAAA,IACN,MAAM;AAAA,IACP,OAAO;AAAA;AAAA;AAAA;AAAA,EAZH,YAAY,MAAK,QAAQ,GAAG,aAAa;AAAA,EACzC,aAAa,MAAK,WAAW,gBAAgB;AAAA;;;ACNnD,uBAAS,8BAAY;AACrB;AACA,oBAAS,kBAAS;AAAA,IAIZ,iBAAiB,CAAC,cAAsB;AAAA,EAC7C,IAAI,CAAC,aAAW,SAAS,GAAG;AAAA,IAC3B,OAAO;AAAA,EACR;AAAA,EACA,MAAM,MAAM,KAAK,MAAM,cAAa,WAAW,OAAO,CAAC;AAAA,EAEvD,IAAI,IAAI,SAAS,wBAAwB;AAAA,IACxC,MAAM,MAAc,IAAI;AAAA,IAExB,OAAO;AAAA,EACR;AAAA,EAEA,OAAO;AAAA,GAGF,aAAa,MAAM;AAAA,EACxB,IAAI;AAAA,IACH,OAAO,mBAAmB;AAAA,IACzB,MAAM;AAAA,IACP,OAAO;AAAA;AAAA,GAIH,qBAAqB,MAAM;AAAA,EAChC,MAAM,QAAQ;AAAA,EAEd,OAAO,QAAQ,MAAM,GAAG,EAAE,MAAM;AAAA,IAC/B,MAAM,YAAY,OAAK,KAAK,cAAc;AAAA,IAC1C,MAAM,UAAU,eAAe,SAAS;AAAA,IACxC,IAAI,SAAS;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACA,MAAM,SAAQ,GAAG;AAAA,EAClB;AAAA,EAEA,OAAO;AAAA,GAGK,qBAAqB,CACjC,OACA,YACI;AAAA,EACJ,IAAI;AAAA,IACH,IAAI,QAAQ,IAAI,kBAAkB;AAAA,MAAK;AAAA,IACvC,MAAM,SAAS,mBAAmB;AAAA,IAClC,IAAI,CAAC,QAAQ;AAAA,MAAS;AAAA,IAEtB,MAAM,OAAuB;AAAA,MAC5B,aAAa,OAAO;AAAA,MACpB,MAAM,KAAK;AAAA,MACX,YAAY,IAAI;AAAA,MAChB;AAAA,MACA,IAAI,SAAS;AAAA,MACb;AAAA,MACA,WAAW,IAAI,KAAK,EAAE,YAAY;AAAA,MAClC,SAAS,WAAW;AAAA,IACrB;AAAA,IAEA,MAAM,wCAAwC;AAAA,MAC7C,MAAM,KAAK,UAAU,IAAI;AAAA,MACzB,SAAS,EAAE,gBAAgB,mBAAmB;AAAA,MAC9C,QAAQ;AAAA,IACT,CAAC,EAAE,MAAM,MAAG;AAAA,MAAG;AAAA,KAAS;AAAA,IACvB,MAAM;AAAA;AAAA;AAAA,EAjET;AAAA;;;;;;;ACJA,qBAAS,wBAAU;AAAA,IAKb,kBAAkB,CACvB,OACA,QACA,KACA,MACA,KACA,QACA,UACA,aACI;AAAA,EACJ,IAAI,2CAA2C,KAAK,KAAK,GAAG;AAAA,IAC3D,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,SAAS,SAAS,IAAI;AAAA,EAE5B,IAAI;AAAA,EACJ,IAAI,QAAQ,QAAQ;AAAA,IACnB,MAAM,GAAG;AAAA,EACV,EAAO,SAAI,IAAI,SAAS,WAAW,GAAG;AAAA,IACrC,MAAM,GAAG;AAAA,EACV,EAAO;AAAA,IACN,MAAM;AAAA;AAAA,EAGP,MAAM,UAAU,SAAS;AAAA,EACzB,IAAI,CAAC,SAAS;AAAA,IACb,QAAQ,MACP,gCAAgC,IAAI,MAAM,CAAC,MAAM,uBAAuB,UACzE;AAAA,IACA,mBAAmB,gCAAgC;AAAA,MAClD,WAAW;AAAA,MACX,WAAW,IAAI,MAAM,CAAC;AAAA,MACtB,UAAU;AAAA,IACX,CAAC;AAAA,IAED,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,WAAW,QAAQ,SAAS,QAAQ;AAAA,EAC1C,MAAM,gBAAgB,YAAY,6BAA6B,KAAK,KAAK;AAAA,EAEzE,IAAI,YAAY,CAAC,eAAe;AAAA,IAC/B,MAAM,YAAY,OAAO,QAAQ,MAAM,iBAAiB;AAAA,IAExD,OAAO,GAAG,SAAS,UAAU;AAAA,EAC9B;AAAA,EAEA,OAAO,GAAG,SAAS,UAAU;AAAA,GAGjB,mBAAmB,OAC/B,UACA,cACI;AAAA,EACJ,MAAM,YAAY,MAAM,gBAAgB,WAAW,QAAQ;AAAA,EAC3D,MAAM,aACL;AAAA,EAED,MAAM,QAAQ,UAAU,IAAI,OAAO,aAAa;AAAA,IAC/C,MAAM,WAAW,MAAM,UAAS,UAAU,MAAM;AAAA,IAChD,MAAM,UAAU,SAAS,QACxB,YACA,CAAC,OAAO,QAAQ,KAAK,MAAM,KAAK,WAC/B,gBAAgB,OAAO,QAAQ,KAAK,MAAM,KAAK,QAAQ,UAAU,QAAQ,CAC3E;AAAA,IACA,MAAM,WAAU,UAAU,SAAS,MAAM;AAAA,GACzC;AAAA,EAED,MAAM,QAAQ,IAAI,KAAK;AAAA;AAAA;AAAA,EAzExB;AAAA,EAEA;AAAA;;;ACHA,uBAAS;AACT,oBAAS;AACT;AAAA,IAGM,uBAAuB,MAAM;AAAA,EAClC,MAAM,cAAc,QAAQ,IAAI;AAAA,EAChC,MAAM,aAAa,SAAQ,YAAY,KAAK,qBAAqB;AAAA,EAEjE,IAAI,aAAW,UAAU,KAAK,WAAW,WAAW,WAAW,GAAG;AAAA,IACjE,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,kBAAkB,SACvB,aACA,gEACD;AAAA,EACA,IAAI,aAAW,eAAe;AAAA,IAAG,OAAO;AAAA,EAExC,OAAO,SAAQ,YAAY,KAAK,yBAAyB;AAAA,GAGpD,gBAEO,iBAAiB,YAAY;AAAA,EACzC,MAAM,aAAa;AAAA,EACnB,MAAM,SAAS,MAAM,SAAS;AAAA,IAC7B,aAAa,CAAC,UAAU;AAAA,IACxB,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,EACT,CAAC;AAAA,EACD,IAAI,CAAC,OAAO,SAAS;AAAA,IACpB,QAAQ,MAAM,+BAA+B,OAAO,IAAI;AAAA,IACxD,mBAAmB,2BAA2B;AAAA,MAC7C,UAAU,OAAO,KAAK;AAAA,MACtB,SAAS,OAAO,KAAK,IAAI,CAAC,SAAQ,KAAI,OAAO,EAAE,KAAK,IAAI;AAAA,IACzD,CAAC;AAAA,IAED,OAAO;AAAA,EACR;AAAA,EAEA,OAAO,eAAe,OAAO;AAAA,EAC7B,IAAI,CAAC;AAAA,IAAa,OAAO;AAAA,EAEzB,OAAO,YAAY,KAAK;AAAA;AAAA;AAAA,EA1CzB;AAAA,EAmBM,iBAAgB,qBAAqB;AAAA;;;ACnB3C;AACA,qBAAS,mBAAU;AACnB,oBAAS;AAAA,IAEH,eAgBF,YAA8B,MAE5B,aAAa,MAAM;AAAA,EACxB,IAAI,cAAc;AAAA,IAAM,OAAO;AAAA,EAE/B,MAAM,aAAa,UAAS;AAAA,EAC5B,MAAM,MAAM,MAAK;AAAA,EAEjB,MAAM,cAAsC;AAAA,IAC3C,gBAAgB;AAAA,IAChB,cAAc;AAAA,IACd,eAAe;AAAA,IACf,aAAa;AAAA,IACb,eAAe;AAAA,IACf,aAAa;AAAA,EACd;AAAA,EAEA,MAAM,UAAU,YAAY,GAAG,cAAc;AAAA,EAC7C,IAAI,CAAC;AAAA,IAAS,OAAO;AAAA,EAErB,IAAI;AAAA,IACH,MAAM,WAAW,UAChB,YAAY,KACZ,yBACA,OACD;AAAA,IACA,MAAM,MAAM,OAAO,UAAU,aAAa;AAAA,IAC1C,YAAY,IAAI;AAAA,IAEhB,OAAO;AAAA,IACN,MAAM;AAAA,IACP,OAAO;AAAA;AAAA,GAMI,uBAAuB,CACnC,SACA,iBACI;AAAA,EACJ,MAAM,MAAM,WAAW;AAAA,EACvB,IAAI,CAAC;AAAA,IAAK,OAAO;AAAA,EAGjB,MAAM,UAAU,KAAK,UAAU,YAAY;AAAA,EAC3C,MAAM,aAAa,OAAO,KAAK,OAAO;AAAA,EACtC,MAAM,UAAU,OAAO,KAAK,OAAO;AAAA,EACnC,MAAM,SAAS,OAAO,MAAM,QAAQ,SAAS,CAAC;AAAA,EAG9C,MAAM,YAAY,IAAI,eAAe,CAAC,OAAO,OAAO,MAAM,CAAC,CAAC;AAAA,EAE5D,MAAM,SAAS,IAAI,gBAClB,IAAI,UAAU,GACd,WAAW,QACX,IAAI,OAAO,GACX,QAAQ,QACR,IAAI,MAAM,GACV,IAAI,IAAI,WAAW,UAAU,MAAM,CAAC,CACrC;AAAA,EAEA,IAAI,SAAS;AAAA,IAAG,OAAO;AAAA,EACvB,IAAI,WAAW;AAAA,IAAG,OAAO;AAAA,EAEzB,MAAM,SAAS,OAAO,UAAU,EAAE;AAAA,EAElC,OAAO,OAAO,SAAS,GAAG,MAAM,EAAE,SAAS,OAAO;AAAA;AAAA;AAAA,EAnF7C,gBAAgB;AAAA,IACrB,iBAAiB;AAAA,MAChB,MAAM;AAAA,QACL,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,MACT;AAAA,MACA,SAAS,QAAQ;AAAA,IAClB;AAAA,EACD;AAAA;;;;;;;;ICXM,cAAc,CAAC,QACpB,IAAI,QAAQ,uBAAuB,MAAM,GASpC,eAEA,WAAW,CAAC,gBAAwC;AAAA,EACzD,MAAM,UAAU,OAAO,QAAQ,WAAW,EAAE,KAC3C,EAAE,QAAQ,WAAW,KAAK,cAAc,KAAK,CAC9C;AAAA,EACA,IAAI,MAAM;AAAA,EACV,YAAY,IAAG,OAAM,SAAS;AAAA,IAC7B,OAAO,GAAG,SAAM;AAAA,EACjB;AAAA,EAEA,OAAO;AAAA,GAGF,uBAAuB,CAAC,gBAAwC;AAAA,EACrE,MAAM,MAAM,SAAS,WAAW;AAAA,EAChC,MAAM,SAAS,cAAc,IAAI,GAAG;AAAA,EACpC,IAAI;AAAA,IAAQ,OAAO;AAAA,EAEnB,MAAM,eAAe,OAAO,QAAQ,WAAW,EAAE,KAChD,EAAE,QAAQ,UAAU,KAAK,SAAS,KAAK,MACxC;AAAA,EAEA,MAAM,SAAS,IAAI,IAAoB,YAAY;AAAA,EACnD,MAAM,MAAM,aAAa,IAAI,EAAE,UAAU,YAAY,IAAI,CAAC,EAAE,KAAK,GAAG;AAAA,EAEpE,MAAM,YAAY,IAAI,OAAO,kBAAkB,cAAc,GAAG;AAAA,EAChE,MAAM,kBAAkB,IAAI,OAC3B,oBAAoB,oBACpB,GACD;AAAA,EACA,MAAM,eAAe,IAAI,OACxB,2BAA2B,qBAC3B,GACD;AAAA,EAEA,MAAM,WAA6B;AAAA,IAClC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA,cAAc,IAAI,KAAK,QAAQ;AAAA,EAE/B,OAAO;AAAA,GAGF,uBAAuB,CAC5B,SACA,aACI;AAAA,EACJ,MAAM,WAAW,CAChB,QACA,QACA,WACA,WACI;AAAA,IACJ,MAAM,UAAU,SAAS,OAAO,IAAI,SAAS;AAAA,IAC7C,IAAI,CAAC;AAAA,MAAS,OAAO;AAAA,IAErB,OAAO,GAAG,SAAS,UAAU;AAAA;AAAA,EAG9B,SAAS,UAAU,YAAY;AAAA,EAC/B,SAAS,gBAAgB,YAAY;AAAA,EACrC,SAAS,aAAa,YAAY;AAAA,EAElC,IAAI,SAAS;AAAA,EACb,SAAS,OAAO,QAAQ,SAAS,WAAW,QAAQ;AAAA,EACpD,SAAS,OAAO,QAAQ,SAAS,iBAAiB,QAAQ;AAAA,EAC1D,SAAS,OAAO,QAAQ,SAAS,cAAc,QAAQ;AAAA,EAEvD,OAAO;AAAA,GASF,eAIO,sBAAsB,OAAO,gBAA0B;AAAA,EACnE,MAAM,UAAU,YAAY,OAAO,CAAC,SAAS,KAAK,SAAS,KAAK,CAAC;AAAA,EAEjE,MAAM,QAAQ,IACb,QAAQ,IAAI,OAAO,aAAa;AAAA,IAC/B,MAAM,UAAU,MAAM,IAAI,KAAK,QAAQ,EAAE,KAAK;AAAA,IAC9C,IACC,CAAC,QAAQ,SAAS,eAAe,KACjC,CAAC,QAAQ,SAAS,eAAe;AAAA,MAEjC;AAAA,IACD,IAAI,QAAQ,WAAW,qBAAqB;AAAA,MAAG;AAAA,IAC/C,MAAM,IAAI,MAAM,UAAU,gBAAgB,OAAO;AAAA,GACjD,CACF;AAAA,GAGY,sBAAsB,OAClC,aACA,gBACI;AAAA,EACJ,MAAM,UAAU,YAAY,OAAO,CAAC,SAAS,KAAK,SAAS,KAAK,CAAC;AAAA,EACjE,IAAI,QAAQ,WAAW;AAAA,IAAG;AAAA,EAE1B,MAAM,WAAW,qBAAqB,WAAW;AAAA,EAEjD,MAAM,eAAe,OAAO,QAAQ,WAAW,EAAE,KAChD,EAAE,QAAQ,UAAU,KAAK,SAAS,KAAK,MACxC;AAAA,EAEA,MAAM,QAAQ,IACb,QAAQ,IAAI,OAAO,aAAa;AAAA,IAC/B,MAAM,WAAW,MAAM,IAAI,KAAK,QAAQ,EAAE,KAAK;AAAA,IAG/C,MAAM,SAAS,qBAAqB,UAAU,YAAY;AAAA,IAC1D,MAAM,UACL,UAAU,qBAAqB,UAAU,QAAQ;AAAA,IAElD,IAAI,YAAY,UAAU;AAAA,MACzB,MAAM,IAAI,MAAM,UAAU,OAAO;AAAA,IAClC;AAAA,GACA,CACF;AAAA;AAAA;AAAA,EA5ID;AAAA,EAYM,gBAAgB,IAAI;AAAA,EAiFpB,gBACL,6DACA;AAAA;AAAA;;;;;;;;;;;;;;;;IC/FG,iBAAgD,MAEvC,oBAAoB,MAAM,gBAC1B,oBAAoB,CAAC,UAAkC;AAAA,EACnE,iBAAiB;AAAA,GAId,qBAAoD,MAE3C,wBAAwB,MAAM,oBAC9B,wBAAwB,CAAC,UAAkC;AAAA,EACvE,qBAAqB;AAAA,GAMlB,2BAA0D,MAEjD,8BAA8B,MAAM,0BACpC,8BAA8B,CAAC,UAAkC;AAAA,EAC7E,2BAA2B;AAAA,GAIxB,oBAAmD,MAE1C,uBAAuB,MAAM,mBAC7B,uBAAuB,CAAC,UAAkC;AAAA,EACtE,oBAAoB;AAAA,GAIjB,iBAAgD,MAEvC,oBAAoB,MAAM,gBAC1B,oBAAoB,CAAC,UAAkC;AAAA,EACnE,iBAAiB;AAAA;;;AC5ClB,uBAAS,2BAAY,4BAAW,gCAAc;AAC9C,oBAAS,kBAAS,oBAAM,sBAAU;AAClC,uBAAS;AAAA,IAGH,YAwBO,4BAA4B,CACxC,mBACgB;AAAA,EAChB,MAAM;AAAA,EACN,KAAK,CAAC,KAAK;AAAA,IACV,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IAEJ,MAAM,WAAW,OAAK,YAAY,gBAAgB,QAAQ,KAAK;AAAA,IAE/D,IAAI,OACH,EAAE,QAAQ,8BAA8B,GACxC,OAAO,SAAS;AAAA,MACf,MAAM,SAAS,MAAM,IAAI,KAAK,KAAK,IAAI,EAAE,KAAK;AAAA,MAE9C,IAAI,CAAC,cAAc;AAAA,QAClB,MAAM,YAAY;AAAA,QAClB,MAAM,MAAM,MAAa;AAAA,SACxB,EAAE,aAAa,IAAI;AAAA,MACrB;AAAA,MAEA,MAAM,YAAY;AAAA,MAClB,IAAI,CAAC,aAAa,CAAC,UAAU,KAAK,MAAM,MAAM,GAAG;AAAA,QAChD;AAAA,MACD;AAAA,MAEA,MAAM,OAAO,YAAW,KAAK,EAC3B,OAAO,MAAM,EACb,OAAO,KAAK;AAAA,MACd,MAAM,YAAY,OAAK,UAAU,GAAG,SAAS;AAAA,MAE7C,IAAI,aAAW,SAAS,GAAG;AAAA,QAC1B,OAAO;AAAA,UACN,UAAU,cAAa,WAAW,OAAO;AAAA,UACzC,QAAQ;AAAA,QACT;AAAA,MACD;AAAA,MAEA,IAAI,CAAC,gBAAgB;AAAA,QACpB,MAAM,iBAAiB;AAAA,QACvB,MAAM,QAAQ,MAAa;AAAA,QAC3B,iBAAiB,MAAM;AAAA,MACxB;AAAA,MACA,IAAI,CAAC,cAAc;AAAA,QAClB,MAAM,kBAAkB;AAAA,QACxB,MAAM,MAAM,MAAa;AAAA,QACzB,eAAe,IAAI,yBAAyB;AAAA,UAC3C,YAAY;AAAA,YACX;AAAA,YACA,QAAQ;AAAA,YACR,UAAU;AAAA,YACV;AAAA,YACA;AAAA,UACD;AAAA,UACA;AAAA,UACA,QAAQ;AAAA,YACP,OAAO,QAAQ;AAAA,YACf,OAAO;AAAA,YACP,MAAM,QAAQ;AAAA,YACd,OAAO,MAAM;AAAA,YACb,MAAM,MAAM;AAAA,UACb;AAAA,QACD,CAAC;AAAA,MACF;AAAA,MAEA,MAAM,YAAY;AAAA,MAClB,IAAI,CAAC,WAAW;AAAA,QACf,OAAO,EAAE,UAAU,QAAQ,QAAQ,KAAK;AAAA,MACzC;AAAA,MAEA,MAAM,SAAS,UAAU,QAAQ;AAAA,QAChC,SAAS;AAAA,QACT,UAAU,KAAK;AAAA,QACf,kBAAkB,KAAK;AAAA,QACvB,SAAS,CAAC,YAAY;AAAA,QACtB,YAAY;AAAA,MACb,CAAC;AAAA,MAED,MAAM,SAAS,QAAQ,QAAQ;AAAA,MAE/B,WAAU,UAAU,EAAE,WAAW,KAAK,CAAC;AAAA,MACvC,eAAc,WAAW,QAAQ,OAAO;AAAA,MAExC,OAAO,EAAE,UAAU,QAAQ,QAAQ,KAAK;AAAA,KAE1C;AAAA;AAEF,IAKa;AAAA;AAAA,EArHP,aAAa,UAAQ,eAAe,SAAS,gBAAgB;AAAA,EAqHtD,sBAAiC,0BAA0B,KAAK;AAAA;;;AC1H7E,eAAS;AACT,oBAAS;AACT;AAAA,IAEM,qBAEO,oBAAoB,OAChC,WACA,uBACI;AAAA,EACJ,MAAM,eAAe,IAAI,IACxB,mBAAmB,IAAI,CAAC,SAAS,UAAQ,IAAI,CAAC,CAC/C;AAAA,EAEA,MAAM,OAAO,IAAI,MAAK,MAAM;AAAA,EAC5B,MAAM,WAA4B,CAAC;AAAA,EAEnC,WAAW,aAAY,KAAK,SAAS,EAAE,KAAK,UAAU,CAAC,GAAG;AAAA,IACzD,MAAM,WAAW,UAAQ,WAAW,SAAQ;AAAA,IAC5C,IAAI,aAAa,IAAI,QAAQ;AAAA,MAAG;AAAA,IAChC,IAAI,CAAC,oBAAoB,KAAK,SAAQ;AAAA,MAAG;AAAA,IAEzC,SAAS,KAAK,IAAG,UAAU,EAAE,OAAO,KAAK,CAAC,CAAC;AAAA,EAC5C;AAAA,EAEA,MAAM,QAAQ,IAAI,QAAQ;AAAA;AAAA;AAAA,EArBrB,sBAAsB;AAAA;;;ACJ5B,eAAS;AACT,iBAAS;AAAA,IASI,UAAU;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,MACmB;AAAA,EACnB,MAAM,QAAQ,IAAI;AAAA,IACjB,aACG,IAAG,OAAK,YAAY,WAAW,GAAG;AAAA,MAClC,OAAO;AAAA,MACP,WAAW;AAAA,IACZ,CAAC,IACA;AAAA,IACH,WACG,IAAG,OAAK,UAAU,WAAW,GAAG;AAAA,MAChC,OAAO;AAAA,MACP,WAAW;AAAA,IACZ,CAAC,IACA;AAAA,IACH,YACG,IAAG,OAAK,WAAW,WAAW,GAAG;AAAA,MACjC,OAAO;AAAA,MACP,WAAW;AAAA,IACZ,CAAC,IACA;AAAA,IACH,SACG,IAAG,OAAK,QAAQ,WAAW,GAAG;AAAA,MAC9B,OAAO;AAAA,MACP,WAAW;AAAA,IACZ,CAAC,IACA;AAAA,EACJ,CAAC;AAAA;AAAA;;;;;;;ICvCW,iBAAiB,CAAC,OAAiB,aAAsB;AAAA,EACrE,IAAI,MAAM,WAAW;AAAA,IAAG,OAAO;AAAA,EAE/B,MAAM,eAAe,MAAM,IAAI,CAAC,OAAM,cAAc,EAAC,EAAE,MAAM,GAAG,CAAC;AAAA,EACjE,OAAO,SAAS;AAAA,EAChB,IAAI,CAAC;AAAA,IAAO,OAAO;AAAA,EACnB,MAAM,iBAAiB,MAAM,OAAO,CAAC,SAAS,UAC7C,aAAa,MAAM,CAAC,aAAa,SAAS,WAAW,OAAO,CAC7D;AAAA,EAGA,OAAO,eAAe,SAAS,eAAe,KAAK,GAAG,IAAI;AAAA;AAAA;;;ACb3D,oBAAS,uBAAS;AAAA,IAGL,mBAAmB,CAAC,YAAoB,kBAA0B;AAAA,EAC9E,MAAM,eAAe,UAAQ,aAAa;AAAA,EAC1C,MAAM,iBAAiB,UAAQ,eAAe,UAAU;AAAA,EAExD,MAAM,eAAe,cAAc,UAAS,cAAc,cAAc,CAAC;AAAA,EAEzE,IAAI,aAAa,WAAW,KAAK,KAAK,iBAAiB,MAAM;AAAA,IAC5D,MAAM,IAAI,MAAM,gBAAgB,YAAY;AAAA,EAC7C;AAAA,EAEA,OAAO;AAAA;AAAA;;;ICJF,mBAOA,uBAOA,qBAAoB,CAAC,UAC1B,kBAAiB,KAAK,CAAC,cAAc,cAAc,KAAK,GAEnD,kBAAkB,CAAC,UACxB,sBAAqB,KAAK,CAAC,YAAY,YAAY,KAAK,GAEnD,2BAA2B,CAAC,oBAA4B;AAAA,EAC7D,MAAM,iBAAiB,gBAAgB,MACtC,oCACD;AAAA,EACA,MAAM,iBAAiB,gBAAgB,MACtC,oCACD;AAAA,EACA,MAAM,eAAe,gBAAgB,MACpC,kCACD;AAAA,EACA,MAAM,YAAY,iBAAiB;AAAA,EACnC,MAAM,YAAY,iBAAiB;AAAA,EACnC,IAAI,CAAC,aAAa,CAAC,WAAW;AAAA,IAC7B,OAAO;AAAA,EACR;AAAA,EACA,IAAI,CAAC,mBAAkB,SAAS,GAAG;AAAA,IAClC,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,mBAAmB,eAAe;AAAA,EAExC,OAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA,SACC,oBAAoB,gBAAgB,gBAAgB,IACjD,mBACA;AAAA,EACL;AAAA,GAGK,iBAAiB,CAAC,UACvB,GAAG,MAAM,aAAa,MAAM,aAAa,MAAM,WAAW,MAErD,WAAW,CAChB,UACA,UACI;AAAA,EACJ,IAAI,CAAC;AAAA,IAAO;AAAA,EACZ,SAAS,IAAI,eAAe,KAAK,GAAG,KAAK;AAAA,GAGpC,qBAAqB,CAC1B,UACA,UACI;AAAA,EACJ,SAAS,WAAW,WAAW,WAAW;AAAA,EAC1C,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,mBAAkB,SAAS,GAAG;AAAA,IAC9D;AAAA,EACD;AAAA,EAEA,SAAS,UAAU;AAAA,IAClB;AAAA,IACA;AAAA,IACA,SAAS,WAAW,gBAAgB,OAAO,IAAI,UAAU;AAAA,EAC1D,CAAC;AAAA,GAGW,6BAA6B,CAAC,WAAmB;AAAA,EAC7D,MAAM,SAAS,8BAA8B,MAAM;AAAA,EACnD,MAAM,aAAa,KAAK,UAAU,MAAM;AAAA,EAExC,OAAO;AAAA,2CAA8C;AAAA,+CAA6D,OAAO,SAAS;AAAA;AAAA,GAEtH,gCAAgC,CAAC,WAAmB;AAAA,EAChE,MAAM,WAAW,IAAI;AAAA,EAErB,MAAM,iBACL;AAAA,EACD,IAAI,iBAAiB,eAAe,KAAK,MAAM;AAAA,EAC/C,OAAO,gBAAgB;AAAA,IACtB,SAAS,UAAU,yBAAyB,eAAe,MAAM,EAAE,CAAC;AAAA,IACpE,iBAAiB,eAAe,KAAK,MAAM;AAAA,EAC5C;AAAA,EAEA,MAAM,yBACL;AAAA,EACD,IAAI,sBAAsB,uBAAuB,KAAK,MAAM;AAAA,EAC5D,OAAO,qBAAqB;AAAA,IAC3B,SACC,UACA,yBAAyB,oBAAoB,MAAM,EAAE,CACtD;AAAA,IACA,sBAAsB,uBAAuB,KAAK,MAAM;AAAA,EACzD;AAAA,EAEA,MAAM,wBACL;AAAA,EACD,IAAI,cAAc,sBAAsB,KAAK,MAAM;AAAA,EACnD,OAAO,aAAa;AAAA,IACnB,mBAAmB,UAAU,WAAW;AAAA,IACxC,cAAc,sBAAsB,KAAK,MAAM;AAAA,EAChD;AAAA,EAEA,OAAO,CAAC,GAAG,SAAS,OAAO,CAAC;AAAA;AAAA;AAAA,EAlHvB,oBAAsC;AAAA,IAC3C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EAEM,wBAAwC;AAAA,IAC7C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA;;;;;;;;ICjBa,sBAAsB,4BAwBtB,yBAAyB,OAGrC,WACA;AAAA,EAEC;AAAA,EACA,mBAAmB,CAAC;AAAA,EACpB,mBAAmB,CAAC;AAAA,EACpB;AAAA,EACA,UAAU,QAAQ;AAAA,EAClB,uBAAuB;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,IACwB,CAAC,MACtB;AAAA,EACJ,IAAI;AAAA,IACH,QAAQ,WAAW,MAAa;AAAA,IAChC,MAAM,kBAAsC;AAAA,IAC5C,MAAM,WACL,OAAO,UAAU,cACd,MAAM,gBAAgB,SAAS,IAC/B,MAAM,gBAAgB,WAAW,EAAE,MAAM,CAAC;AAAA,IAC9C,QAAQ,MAAM,SAAS;AAAA,IACvB,MAAM,YAAY,QAAQ,WAAW,WAAW;AAAA,IAChD,MAAM,WACJ,yBACE,UAAU,aAAa,oBAAoB,sBAAsB,eACjE,MACH,iBACE,IAAI,CAAC,QAAQ,UAAU,kBAAkB,gBAAgB,EACzD,KAAK,EAAE,IACT,iBACE,IACA,CAAC,QACA,UAAU,gCAAgC,gBAC5C,EACC,KAAK,EAAE;AAAA,IACV,MAAM,UAAU,IAAI;AAAA,IAEpB,MAAM,OAAO,QAAQ,OACpB,wCAAwC,OAAO,eAAe,2BAA2B,wBAAwB,aAAa,UAAU,eAAe,kBACxJ;AAAA,IAEA,IAAI,SAAS;AAAA,IAEb,OAAO,IAAI,eAA2B;AAAA,MACrC,MAAM;AAAA,MACN,MAAM,CAAC,QAAQ;AAAA,QACd,UAAU,MAAM;AAAA;AAAA,MAEjB,IAAI,CAAC,YAAY;AAAA,QAChB,IAAI,QAAQ,SAAS;AAAA,UACpB,WAAW,MAAM;AAAA,UAEjB;AAAA,QACD;AAAA,QACA,IAAI,UAAU,KAAK,QAAQ;AAAA,UAC1B,WAAW,MAAM;AAAA,UAEjB;AAAA,QACD;AAAA,QACA,MAAM,MAAM,KAAK,IAChB,SAAS,sBACT,KAAK,MACN;AAAA,QACA,WAAW,QAAQ,KAAK,SAAS,QAAQ,GAAG,CAAC;AAAA,QAC7C,SAAS;AAAA;AAAA,IAEX,CAAC;AAAA,IACA,OAAO,OAAO;AAAA,IACf,UAAU,KAAK;AAAA,IACf,MAAM;AAAA;AAAA;AAAA;AAAA,EApGR;AAAA,EACA;AAAA;;;;;;;;ACDA,uBAAS;AACT,kBAAS,gBAAO;AAChB;AAAA,aACC;AAAA,UACA;AAAA,cACA;AAAA,aACA;AAAA,aACA;AAAA,cACA;AAAA,SACA;AAAA;AAED;AACA;AAAA,IAQM,uBAAsB,MAAM;AAAA,EACjC,MAAM,cAAc,QAAQ,IAAI;AAAA,EAChC,MAAM,aAAa,UAAQ,YAAY,KAAK,eAAe;AAAA,EAE3D,IAAI,aAAW,UAAU,KAAK,WAAW,WAAW,WAAW,GAAG;AAAA,IACjE,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,kBAAkB,UACvB,aACA,mDACD;AAAA,EACA,IAAI,aAAW,eAAe;AAAA,IAAG,OAAO;AAAA,EAExC,OAAO,UAAQ,YAAY,KAAK,cAAc;AAAA,GAGzC,eAEA,gBAMA,iBAGA,iBAEO,2BAA2B,MAAM;AAAA,EAC7C,gBAAgB,MAAM;AAAA,EACtB,gBAAgB,MAAM;AAAA,GAGjB,aAEA,4BAA4B,CAAC,SAAiB;AAAA,EACnD,MAAM,cAAc,KAAK,QAAQ,iCAAiC;AAAA,EAClE,IAAI,gBAAgB,IAAI;AAAA,IACvB,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,kBACL;AAAA,EACD,MAAM,YAAY,KAAK,QAAQ,iBAAiB,WAAW;AAAA,EAC3D,IAAI,cAAc,IAAI;AAAA,IACrB,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,eAAe,KAAK,QAAQ,OAAO,SAAS;AAAA,EAClD,IAAI,iBAAiB,IAAI;AAAA,IACxB,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,WAAW,GAAG,KAAK,MAAM,GAAG,WAAW,IAAI,KAAK,MAAM,eAAe,CAAC;AAAA,EAE5E,OAAO,gBAAgB,KAAK,QAAQ,IAAI,OAAO;AAAA,GAG1C,SAAS,OAAO,SAAiB;AAAA,EACtC,IAAI;AAAA,IACH,MAAM,MAAK,IAAI;AAAA,IAEf,OAAO;AAAA,IACN,MAAM;AAAA,IACP,OAAO;AAAA;AAAA,GAIH,yBAAwB,OAAO,MAAc,SAAiB;AAAA,EACnE,IAAI,CAAC,KAAK,WAAW,GAAG;AAAA,IAAG,OAAO;AAAA,EAElC,MAAM,WAAW,UAAQ,SAAQ,IAAI,GAAG,IAAI;AAAA,EAC5C,MAAM,aAAa;AAAA,IAClB;AAAA,IACA,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,OAAK,UAAU,UAAU;AAAA,IACzB,OAAK,UAAU,UAAU;AAAA,IACzB,OAAK,UAAU,WAAW;AAAA,IAC1B,OAAK,UAAU,WAAW;AAAA,IAC1B,OAAK,UAAU,YAAY;AAAA,IAC3B,OAAK,UAAU,cAAc;AAAA,IAC7B,OAAK,UAAU,iBAAiB;AAAA,IAChC,OAAK,UAAU,iBAAiB;AAAA,EACjC;AAAA,EAEA,MAAM,SAAS,MAAM,QAAQ,IAAI,WAAW,IAAI,MAAM,CAAC;AAAA,EAEvD,OAAO,WAAW,KAAK,CAAC,IAAG,UAAU,OAAO,MAAM,KAAK;AAAA,GAGlD,gBAAgB,OAAO,MAAc,SAAiB;AAAA,EAE3D,IAAI,CAAC,KAAK,WAAW,GAAG,KAAK,CAAC,KAAK,WAAW,GAAG,GAAG;AAAA,IACnD,MAAM,WAAW,qBAAqB,IAAI;AAAA,IAE1C,OAAO,YAAY,0BAA0B,KAAK,QAAQ,IACvD,WACA;AAAA,EACJ;AAAA,EAEA,MAAM,WAAW,UAAQ,SAAQ,IAAI,GAAG,IAAI;AAAA,EAC5C,MAAM,WAAW,gCAAgC,KAAK,QAAQ;AAAA,EAE9D,IAAI,CAAC,UAAU;AAAA,IACd,MAAM,aAAa,CAAC,WAAW,cAAc,YAAY;AAAA,IACzD,MAAM,QAAQ,WAAW,IAAI,CAAC,QAAQ,GAAG,WAAW,KAAK;AAAA,IACzD,MAAM,SAAS,MAAM,QAAQ,IAAI,MAAM,IAAI,MAAM,CAAC;AAAA,IAClD,MAAM,QAAQ,MAAM,KAAK,CAAC,IAAG,UAAU,OAAO,MAAM;AAAA,IAEpD,OAAO,SAAS;AAAA,EACjB;AAAA,EAEA,IAAI,MAAM,OAAO,QAAQ;AAAA,IAAG,OAAO;AAAA,EACnC,IAAI,CAAC,SAAS,SAAS,SAAS;AAAA,IAAG,OAAO;AAAA,EAE1C,MAAM,SAAS,GAAG;AAAA,EAClB,IAAI,MAAM,OAAO,MAAM;AAAA,IAAG,OAAO;AAAA,EAEjC,MAAM,SAAS,GAAG;AAAA,EAClB,IAAI,MAAM,OAAO,MAAM;AAAA,IAAG,OAAO;AAAA,EAEjC,OAAO;AAAA,GAGF,mBAAmB,CACxB,UACA,SACA,gBACA,cACA,oBACI;AAAA,EACJ,MAAM,WAAW,UAAS,cAAc,cAAc,EAAE,QAAQ,OAAO,GAAG;AAAA,EAC1E,MAAM,WAAW,UAAS,iBAAiB,cAAc,EAAE,QAC1D,OACA,GACD;AAAA,EAEA,SAAS,IAAI,SAAS;AAAA,IACrB,QACC,SAAS,WAAW,GAAG,KAAK,SAAS,WAAW,GAAG,IAChD,WACA,KAAK;AAAA,IACT,QAAQ,SAAS,WAAW,GAAG,IAAI,WAAW,KAAK;AAAA,EACpD,CAAC;AAAA,GAGW,gBAAgB,OAC5B,aACA,YACA,QAAe,IAAI,KACnB,QAAQ,OACR,uBACI;AAAA,EACJ,QAAQ,SAAS,eAAe,eAAe,MAC9C;AAAA,EAGD,MAAM,eAAe,OAAK,YAAY,WAAW;AAAA,EACjD,MAAM,YAAY,OAAK,cAAc,QAAQ;AAAA,EAC7C,MAAM,WAAW,OAAK,cAAc,SAAS;AAAA,EAC7C,MAAM,YAAY,OAAK,cAAc,QAAQ;AAAA,EAE7C,MAAM,QAAQ,IACb,CAAC,WAAW,UAAU,SAAS,EAAE,IAAI,CAAC,QACrC,OAAM,KAAK,EAAE,WAAW,KAAK,CAAC,CAC/B,CACD;AAAA,EAEA,MAAM,MAAM,IAAI,aAAa;AAAA,EAE7B,MAAM,QAAQ,OAAO,QAAgB;AAAA,IACpC,MAAM,WAAW,MAAM,IAAI,GAAG;AAAA,IAC9B,IAAI;AAAA,MAAU,OAAO;AAAA,IAErB,MAAM,MAAM,MAAM,KAAK,GAAG,EAAE,KAAK;AAAA,IACjC,MAAM,wBAAwB,2BAA2B,GAAG;AAAA,IAG5D,MAAM,cAAc,IAAI,KAAK,GAAG,EAAE,SAAS,aAAa;AAAA,IACxD,MAAM,WAAW,gBAAgB,IAAI,GAAG;AAAA,IACxC,MAAM,aAAa,gBAAgB,IAAI,GAAG;AAAA,IAE1C,IAAI,aAAa,eAAe,YAAY;AAAA,MAC3C,MAAM,IAAI,KAAK,UAAU;AAAA,MAEzB,OAAO;AAAA,IACR;AAAA,IAEA,gBAAgB,IAAI,KAAK,WAAW;AAAA,IACpC,MAAM,WACL,IAAI,SAAS,YAAY,KAAK,IAAI,SAAS,YAAY;AAAA,IACxD,MAAM,2BAA2B,WAC9B,EAAE,MAAM,KAAK,aAAa,MAAM,IAChC,2BAA2B,GAAG;AAAA,IACjC,MAAM,2BAA2B,WAC9B,2BACA,2BAA2B,GAAG;AAAA,IACjC,MAAM,sBAAsB,WACzB,2BACA,wBAAwB,yBAAyB,MAAM,QAAQ;AAAA,IAClE,MAAM,sBAAsB,WACzB,2BACA,wBAAwB,yBAAyB,MAAM,QAAQ;AAAA,IAClE,MAAM,wBACL,yBAAyB,eACzB,yBAAyB,eACzB,oBAAoB,eACpB,oBAAoB;AAAA,IACrB,MAAM,0BACL,8BAA8B,kBAAkB;AAAA,IACjD,MAAM,qBAAqB,WACxB,oBAAoB,QAEpB,MAAM,WACL,oBAAoB,MACpB,uBACD,GACC;AAAA,IACJ,MAAM,qBAAqB,WACxB,oBAAoB,QAEpB,MAAM,WACL,oBAAoB,MACpB,uBACD,GACC;AAAA,IACJ,MAAM,mBACL,IAAI,SAAS,KAAK,KAAK,IAAI,SAAS,YAAY,IAC7C,YAAW,cAAc,kBAAkB,IAC3C;AAAA,IACJ,MAAM,mBACL,IAAI,SAAS,KAAK,KAAK,IAAI,SAAS,YAAY,IAC7C,YAAW,cAAc,kBAAkB,IAC3C;AAAA,IAEJ,MAAM,SAAS,SAAQ,UAAS,YAAY,GAAG,CAAC,EAAE,QAAQ,OAAO,GAAG;AAAA,IAIpE,MAAM,SAAS,OAAO,WAAW,IAAI,IAClC,QAAQ,UAAS,QAAQ,IAAI,GAAG,SAAQ,GAAG,CAAC,EAAE,QAAQ,OAAO,GAAG,MAChE;AAAA,IACH,MAAM,WAAW,UAAS,GAAG,EAAE,QAAQ,yBAAyB,EAAE;AAAA,IAElE,MAAM,cAAc,MAAM,KACzB,iBAAiB,SAAS,0BAA0B,CACrD,EACE,IAAI,CAAC,UAAU,MAAM,EAAE,EACvB,OAAO,CAAC,SAAyB,SAAS,SAAS;AAAA,IAErD,MAAM,wBAAwB,MAAM,QAAQ,IAC3C,YAAY,IAAI,CAAC,eAChB,uBAAsB,YAAY,GAAG,CACtC,CACD;AAAA,IACA,MAAM,kBAAkB,MAAM,QAAQ,IACrC,YAAY,IAAI,CAAC,eAAe,cAAc,YAAY,GAAG,CAAC,CAC/D;AAAA,IACA,MAAM,eAAe,gBAAgB,OACpC,CAAC,SAAyB,SAAS,IACpC;AAAA,IACA,MAAM,aAAa,MAAM,QAAQ,IAChC,aAAa,IAAI,CAAC,UAAU,MAAM,KAAK,CAAC,CACzC;AAAA,IACA,MAAM,2BAA2B,WAAW,KAC3C,CAAC,UAAU,MAAM,YAClB;AAAA,IAKA,MAAM,mBAAmB,IAAI;AAAA,IAI7B,MAAM,eAAe,SAAQ,OAAK,WAAW,QAAQ,GAAG,aAAa,CAAC;AAAA,IACtE,MAAM,kBAAkB,SACvB,OAAK,WAAW,QAAQ,GAAG,aAAa,CACzC;AAAA,IAEA,SAAS,MAAM,EAAG,MAAM,YAAY,QAAQ,OAAO;AAAA,MAClD,MAAM,UAAU,YAAY;AAAA,MAC5B,IAAI,CAAC;AAAA,QAAS;AAAA,MACd,MAAM,WAAW,gBAAgB;AAAA,MACjC,MAAM,iBAAiB,sBAAsB;AAAA,MAE7C,IAAI,CAAC,YAAY;AAAA,QAChB,iBACC,kBACA,SACA,gBACA,cACA,eACD;AAAA,MACD,IAAI,CAAC;AAAA,QAAU;AAAA,MAEf,MAAM,WAAW,UAAS,YAAY,QAAQ,EAAE,QAAQ,OAAO,GAAG;AAAA,MAClE,IAAI,CAAC,SAAS,WAAW,IAAI;AAAA,QAAG;AAAA,MAEhC,MAAM,cAAa,MAAM,IAAI,QAAQ;AAAA,MACrC,IAAI,CAAC;AAAA,QAAY;AAAA,MAEjB,MAAM,WAAW,QAAQ,QACxB,6BACA,KACD;AAAA,MACA,MAAM,WAAW,UAAS,cAAc,YAAW,GAAG,EAAE,QACvD,OACA,GACD;AAAA,MACA,MAAM,WAAW,UAChB,iBACA,YAAW,MACZ,EAAE,QAAQ,OAAO,GAAG;AAAA,MAEpB,iBAAiB,IAAI,UAAU;AAAA,QAC9B,QAAQ,SAAS,WAAW,GAAG,IAAI,WAAW,KAAK;AAAA,QACnD,QAAQ,SAAS,WAAW,GAAG,IAAI,WAAW,KAAK;AAAA,MACpD,CAAC;AAAA,IACF;AAAA,IAEA,MAAM,yBAAyB,CAC9B,MACA,SACI;AAAA,MACJ,IAAI,SAAS;AAAA,MAEb,YAAY,UAAU,UAAU,kBAAkB;AAAA,QACjD,MAAM,SAAS,SAAS,WAAW,MAAM,SAAS,MAAM;AAAA,QACxD,SAAS,OAAO,QAAQ,UAAU,MAAM;AAAA,MACzC;AAAA,MAEA,OAAO;AAAA;AAAA,IAGR,MAAM,WAAW,CAAC,SAA8B;AAAA,MAC/C,MAAM,aACL,SAAS,WAAW,mBAAmB;AAAA,MACxC,MAAM,WAAW,WACd,cAAc,YAAY;AAAA,QAC1B,KAAK,SAAS,YAAY;AAAA,QAC1B,cAAc;AAAA,UACb,OAAO;AAAA,QACR;AAAA,QACA,UAAU;AAAA,MACX,CAAC,EAAE,GAAG,OACL,QAAQ,YAAY;AAAA,QACpB,KAAK;AAAA,QACL,KAAK,SAAS,YAAY;AAAA,QAC1B,cAAc;AAAA,UACb,OAAO;AAAA,QACR;AAAA,QACA,UAAU;AAAA,QACV,UAAU;AAAA,QACV,KAAK,SAAS,YAAY;AAAA,MAC3B,CAAC,EAAE,GAAG;AAAA,MACR,IAAI,OAAO,SAAS,QACnB,mCACA,OACD;AAAA,MAIA,IAAI,SAAS,YAAY,OAAO;AAAA,QAC/B,MAAM,YAAY,SAAS,UAAS,QAAQ,IAAI,GAAG,GAAG,EAAE,QACvD,OACA,GACD;AAAA,QACA,OAAO,KAAK,QACX,mCACA;AAAA;AAAA,mEAEqE,KAAK,UAAU,SAAS,aAC9F;AAAA,QACA,OAAO,KAAK,QACX,gCACA,eACD;AAAA,MAKD;AAAA,MAEA,IAAI,SAAS,UAAU;AAAA,QACtB,OAAO,0BAA0B,IAAI;AAAA,MACtC;AAAA,MAEA,QAAQ;AAAA,MAER,OAAO;AAAA;AAAA,IAGR,MAAM,UAAU,OAAK,WAAW,QAAQ,GAAG,aAAa;AAAA,IACxD,MAAM,aAAa,OAAK,WAAW,QAAQ,GAAG,aAAa;AAAA,IAE3D,MAAM,QAAQ,IAAI;AAAA,MACjB,OAAM,SAAQ,OAAO,GAAG,EAAE,WAAW,KAAK,CAAC;AAAA,MAC3C,OAAM,SAAQ,UAAU,GAAG,EAAE,WAAW,KAAK,CAAC;AAAA,IAC/C,CAAC;AAAA,IAED,IAAI,UAAU;AAAA,MACb,MAAM,SAAS,uBAAuB,SAAS,QAAQ,GAAG,QAAQ;AAAA,MAClE,MAAM,QAAQ,IAAI;AAAA,QACjB,MAAM,SAAS,MAAM;AAAA,QACrB,MAAM,YAAY,MAAM;AAAA,MACzB,CAAC;AAAA,IACF,EAAO;AAAA,MACN,MAAM,eAAe,uBACpB,SAAS,QAAQ,GACjB,QACD;AAAA,MACA,MAAM,eAAe,uBACpB,SAAS,QAAQ,GACjB,QACD;AAAA,MACA,MAAM,QAAQ,IAAI;AAAA,QACjB,MAAM,SAAS,YAAY;AAAA,QAC3B,MAAM,YAAY,YAAY;AAAA,MAC/B,CAAC;AAAA;AAAA,IAGF,MAAM,QAAe;AAAA,MACpB,QAAQ;AAAA,MACR,cACC,yBAAyB,eACzB,yBAAyB,eACzB,oBAAoB,eACpB,oBAAoB,eACpB;AAAA,MACD,KAAK;AAAA,IACN;AAAA,IACA,MAAM,IAAI,KAAK,KAAK;AAAA,IACpB,gBAAgB,IAAI,KAAK,KAAK;AAAA,IAE9B,OAAO;AAAA;AAAA,EAGR,MAAM,QAAQ,MAAM,QAAQ,IAAI,YAAY,IAAI,KAAK,CAAC;AAAA,EAEtD,MAAM,QAAQ,IACb,MAAM,IAAI,SAAS,QAAQ,mBAAmB;AAAA,IAC7C,MAAM,eAAe,SAAQ,UAAS,WAAW,MAAM,CAAC;AAAA,IACxD,MAAM,OAAO,UAAS,QAAQ,SAAQ,MAAM,CAAC;AAAA,IAC7C,MAAM,YAAY,OAAK,UAAU,cAAc,GAAG,SAAS;AAAA,IAC3D,MAAM,YAAY,UAAS,SAAQ,SAAS,GAAG,MAAM,EACnD,MAAM,IAAG,EACT,KAAK,GAAG;AAAA,IACV,MAAM,aACL,UAAU,WAAW,GAAG,KAAK,UAAU,WAAW,GAAG,IAClD,YACA,KAAK;AAAA,IACT,MAAM,aAAa,QAChB;AAAA,UAAiD;AAAA,IACjD;AAAA,IACH,MAAM,YAAY,GAAG,oCAAoC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8DAQxD,eAAe,UAAU;AAAA;AAAA,uCAGU,KAAK,UAAU,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IA0DtE,MAAM,OAAM,SAAQ,SAAS,GAAG,EAAE,WAAW,KAAK,CAAC;AAAA,IAEnD,OAAO,MAAM,WAAW,SAAS;AAAA,GACjC,CACF;AAAA,EAEA,OAAO;AAAA,IAEN,mBAAmB,MAAM,IAAI,GAAG,aAAa,MAAM;AAAA,IAEnD,kBAAkB,MAAM,IAAI,GAAG,aAAa;AAAA,MAC3C,MAAM,MAAM,SAAQ,UAAS,WAAW,MAAM,CAAC;AAAA,MAE/C,OAAO,OAAK,UAAU,KAAK,UAAS,MAAM,CAAC;AAAA,KAC3C;AAAA,IACD,mBAAmB,MAAM,IAAI,GAAG,UAAU,GAAG;AAAA,EAC9C;AAAA;AAAA;AAAA,EA1jBD;AAAA,EAcA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAmBM,gBAAe,qBAAoB;AAAA,EAEnC,iBAAgB,OAAK,eAAc,cAAc,EAAE,QAAQ,OAAO,GAAG;AAAA,EAMrE,kBAAyB,IAAI;AAAA,EAG7B,kBAAkB,IAAI;AAAA,EAOtB,cAAa,IAAI,WAAW,EAAE,QAAQ,MAAM,QAAQ,UAAU,CAAC;AAAA;;;;;;;;;;;ACvDrE,uBAAS;AACT,kBAAS;AACT;AAAA,cACC;AAAA,aACA;AAAA,gBACA;AAAA,UACA;AAAA,cACA;AAAA,aACA;AAAA;AASD;AAAA,IAWM,uBAAsB,MAAM;AAAA,EACjC,MAAM,cAAc,QAAQ,IAAI;AAAA,EAChC,MAAM,aAAa,UAAQ,YAAY,KAAK,eAAe;AAAA,EAE3D,IAAI,aAAW,UAAU,KAAK,WAAW,WAAW,WAAW,GAAG;AAAA,IACjE,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,kBAAkB,UACvB,aACA,mDACD;AAAA,EACA,IAAI,aAAW,eAAe;AAAA,IAAG,OAAO;AAAA,EAExC,OAAO,UAAQ,YAAY,KAAK,cAAc;AAAA,GAGzC,eAEA,gBAEA,aAeA,aACA,kBACA,eACA,YAGA,sBAGA,oBAGO,gBAIA,oBAAoB,MAAM;AAAA,EACtC,YAAY,MAAM;AAAA,EAClB,iBAAiB,MAAM;AAAA,EACvB,cAAc,MAAM;AAAA,EACpB,WAAW,MAAM;AAAA,EACjB,eAAe,MAAM;AAAA,EACrB,qBAAqB,MAAM;AAAA,EAC3B,mBAAmB,MAAM;AAAA,GAEb,sBAAsB,CAClC,UACA,eACI;AAAA,EACJ,MAAM,aAAa,YAAY,IAAI,QAAQ;AAAA,EAC3C,MAAM,kBAAkB,iBAAiB,IAAI,QAAQ;AAAA,EACrD,MAAM,eAAe,cAAc,IAAI,QAAQ;AAAA,EAC/C,MAAM,YAAY,WAAW,IAAI,QAAQ;AAAA,EAEzC,MAAM,gBAAgB,WAAW,QAAQ,WAAW;AAAA,EACpD,MAAM,qBAAqB,WAAW,aAAa,WAAW;AAAA,EAC9D,MAAM,kBAAkB,WAAW,UAAU,WAAW;AAAA,EAGxD,MAAM,eAAe,WAAW,OAC9B,IAAI,CAAC,OAAM,GAAG,GAAE,SAAS,YAAY,KAAK,GAAE,SAAS,EACrD,KAAK,KAAK;AAAA,EAGZ,YAAY,IAAI,UAAU,aAAa;AAAA,EACvC,iBAAiB,IAAI,UAAU,kBAAkB;AAAA,EACjD,cAAc,IAAI,UAAU,eAAe;AAAA,EAC3C,WAAW,IAAI,UAAU,YAAY;AAAA,EAGrC,IAAI,eAAe,aAAa,oBAAoB,WAAW;AAAA,IAC9D,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,gBAAgB,eAAe;AAAA,EACrC,MAAM,qBAAqB,oBAAoB;AAAA,EAC/C,MAAM,kBAAkB,iBAAiB;AAAA,EACzC,MAAM,eAAe,cAAc;AAAA,EASnC,IAAI,iBAAiB,oBAAoB;AAAA,IACxC,OAAO;AAAA,EACR;AAAA,EAGA,IAAI,gBAAgB,CAAC,iBAAiB;AAAA,IACrC,OAAO;AAAA,EACR;AAAA,EAGA,IAAI,iBAAiB;AAAA,IACpB,OAAO;AAAA,EACR;AAAA,EAGA,OAAO;AAAA,GAEK,mBAAmB,CAAC,gBAAwB,eACxD,UAAS,YAAY,cAAc,EACjC,QAAQ,OAAO,GAAG,EAClB,QAAQ,UAAU,EAAE,GAEjB,iBAAiB,CAAC,eACvB,MAAM,KAAK,WAAW,SAAS,oCAAoC,CAAC,EAClE,IAAI,CAAC,UAAU,MAAM,EAAE,EACvB,OAAO,CAAC,eAAqC,eAAe,SAAS,GAElE,OAAO,CAAC,UAAkB,cAAuB;AAAA,EACtD,IAAI,SAAS,SAAS,MAAM;AAAA,IAAG,OAAO,SAAS,QAAQ,UAAU,KAAK;AAAA,EACtE,IAAI,SAAS,SAAS,KAAK;AAAA,IAAG,OAAO,SAAS,QAAQ,SAAS,KAAK;AAAA,EAUpE,IAAI,YAAY,QAAQ,GAAG;AAAA,IAC1B,IACC,cACC,SAAS,WAAW,IAAI,KAAK,SAAS,WAAW,KAAK,IACtD;AAAA,MACD,OAAO,UAAQ,WAAW,QAAQ;AAAA,IACnC;AAAA,IAEA,OAAO;AAAA,EACR;AAAA,EAEA,OAAO,GAAG;AAAA,GAGL,eAAe,CAAC,SACrB,KACE,QAAQ,oBAAoB,gBAAgB,EAC5C,QAAQ,gBAAgB,EAAE,GAEvB,kBAAkB,CAAC,SAAiB;AAAA,EACzC,MAAM,QAAQ,KAAK,MAAM;AAAA,CAAI;AAAA,EAC7B,MAAM,eAAe,IAAI;AAAA,EACzB,MAAM,iBAAiB;AAAA,EAEvB,MAAM,QAAQ,CAAC,SAAS;AAAA,IACvB,MAAM,QAAQ,KAAK,MAAM,cAAc;AAAA,IACvC,IAAI,QAAQ;AAAA,MACX,MAAM,GACJ,MAAM,GAAG,EACT,QAAQ,CAAC,oBACT,aAAa,IAAI,gBAAgB,KAAK,CAAC,CACxC;AAAA,GACF;AAAA,EAED,MAAM,cAAc,MAAM,OAAO,CAAC,SAAS,CAAC,eAAe,KAAK,IAAI,CAAC;AAAA,EAErE,OAAO,aAAa,OACjB;AAAA,IACA,YAAY,CAAC,GAAG,YAAY,EAAE,KAAK,IAAI;AAAA,IACvC,GAAG;AAAA,EACJ,EAAE,KAAK;AAAA,CAAI,IACV,YAAY,KAAK;AAAA,CAAI;AAAA,GAUnB,iBAAiB,OACtB,gBACA,YACA,UACA,cACA,YACA,UACA,uBACI;AAAA,EACJ,MAAM,eAAe,SAAS,IAAI,cAAc;AAAA,EAChD,IAAI;AAAA,IAAc,OAAO;AAAA,EAEzB,MAAM,mBAAmB,UAAS,YAAY,cAAc,EAAE,QAC7D,OACA,GACD;AAAA,EACA,MAAM,2BAA2B,iBAAiB,QAAQ,UAAU,EAAE;AAAA,EACtE,MAAM,eAAe,UAAS,gBAAgB,MAAM;AAAA,EACpD,MAAM,cAAc,QAAQ,YAAY;AAAA,EAExC,MAAM,gBAAgB,MAAM,MAAK,cAAc,EAAE,KAAK;AAAA,EACtD,MAAM,wBAAwB,2BAA2B,aAAa;AAAA,EAGtE,MAAM,cAAc,IAAI,KAAK,aAAa,EAAE,SAAS,aAAa;AAAA,EAClE,MAAM,WAAW,mBAAmB,IAAI,cAAc;AAAA,EACtD,MAAM,aAAa,qBAAqB,IAAI,cAAc;AAAA,EAE1D,IAAI,aAAa,eAAe,YAAY;AAAA,IAC3C,SAAS,IAAI,gBAAgB,UAAU;AAAA,IAEvC,OAAO;AAAA,EACR;AAAA,EAEA,mBAAmB,IAAI,gBAAgB,WAAW;AAAA,EAClD,QAAQ,eAAe,SAAS,MAAM,eAAe;AAAA,IACpD,UAAU;AAAA,EACX,CAAC;AAAA,EAGD,MAAM,QAAQ,iBAAiB,gBAAgB,UAAU;AAAA,EACzD,MAAM,aAAa,oBAAoB,gBAAgB,UAAU;AAAA,EAGjE,eAAe,IAAI,gBAAgB,EAAE,YAAY,MAAM,CAAC;AAAA,EAExD,MAAM,eACL,WAAW,aAAa,WAAW,WAAW,QAAQ,WAAW;AAAA,EAElE,MAAM,cAAc,eAAe,YAAY;AAAA,EAG/C,MAAM,4BAA4B,IAAI;AAAA,EACtC,MAAM,cAAc,YAAY,OAC/B,CAAC,OAAM,CAAC,GAAE,WAAW,GAAG,KAAK,CAAC,GAAE,WAAW,GAAG,CAC/C;AAAA,EACA,WAAW,cAAc,aAAa;AAAA,IACrC,MAAM,WAAW,qBAAqB,UAAU;AAAA,IAChD,IAAI,CAAC,UAAU,SAAS,MAAM;AAAA,MAAG;AAAA,IACjC,0BAA0B,IAAI,YAAY,QAAQ;AAAA,EACnD;AAAA,EAEA,MAAM,sBAAsB,YAAY,OACvC,CAAC,SAAS,KAAK,WAAW,GAAG,KAAK,KAAK,SAAS,MAAM,CACvD;AAAA,EACA,MAAM,wBAAwB,MAAM,KACnC,0BAA0B,QAAQ,CACnC;AAAA,EAOA,MAAM,oBAAoB,YAAY,OACrC,CAAC,SACA,KAAK,WAAW,GAAG,KAAK,CAAC,KAAK,SAAS,MAAM,KAAK,CAAC,YAAY,IAAI,CACrE;AAAA,EAMA,MAAM,qBAAqB,YACzB,OACA,CAAC,UACC,KAAK,WAAW,GAAG,KAAK,YAAW,IAAI,MAAM,YAAY,IAAI,CAChE,EACC,IAAI,CAAC,SACL,YAAW,IAAI,IAAI,OAAO,UAAQ,SAAQ,cAAc,GAAG,IAAI,CAChE;AAAA,EACD,WAAW,aAAa,oBAAoB;AAAA,IAC3C,iBAAiB,gBAAgB,SAAS;AAAA,EAC3C;AAAA,EAEA,MAAM,oBAAmC,MAAM,QAAQ,IAAI;AAAA,IAC1D,GAAG,oBAAoB,IAAI,CAAC,sBAC3B,eACC,UAAQ,SAAQ,cAAc,GAAG,iBAAiB,GAClD,YACA,UACA,OACA,YACA,UACA,kBACD,CACD;AAAA,IACA,GAAG,sBAAsB,IAAI,IAAI,kBAChC,eACC,cACA,YACA,UACA,OACA,YACA,UACA,kBACD,CACD;AAAA,EACD,CAAC;AAAA,EAED,MAAM,YAAY,WAAW,UAAU,WAAW;AAAA,EAClD,MAAM,iBAAiB,YACpB,SAAS,cAAc,YAAY;AAAA,IACnC,IAAI;AAAA,IACJ,gBAAgB;AAAA,EACjB,CAAC,IACA,EAAE,UAAU,CAAC,GAAG,SAAS,qBAAqB;AAAA,EACjD,MAAM,iBAAiB,aAAa,eAAe,OAAO;AAAA,EAC1D,MAAM,YAAY,SAAQ,cAAc;AAAA,EACxC,MAAM,mBAAmB,YACvB,cAAc,cAAc,EAC5B,QACA,kCACA,CAAC,IAAG,YAAY,gBAAgB,aAC/B,GAAG,aAAa,KAAK,gBAAgB,SAAS,IAAI,UACpD;AAAA,EAGD,MAAM,wBAAwB,IAAI;AAAA,EAIlC,YAAY,YAAY,iBAAiB,uBAAuB;AAAA,IAC/D,MAAM,cAAc,SAAS,IAAI,YAAY;AAAA,IAC7C,IAAI,CAAC;AAAA,MAAa;AAAA,IAElB,sBAAsB,IAAI,YAAY;AAAA,MACrC,QAAQ,YAAY;AAAA,MACpB,QAAQ,YAAY;AAAA,IACrB,CAAC;AAAA,EACF;AAAA,EAEA,MAAM,yBAAyB,CAAC,QAC/B,SACE,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,MAChB,iBAAiB,eAAe;AAAA,MAChC,mBAAmB;AAAA,IACpB;AAAA,IACA,UAAU;AAAA,IACV,IAAI;AAAA,IACJ,QAAQ,WAAW,OAAO,KACzB,CAAC,eAAe,WAAW,MAC5B;AAAA,IACA,QAAQ,WAAW,UAAU,WAAW;AAAA,IACxC;AAAA,IACA,YAAY,WAAW;AAAA,EACxB,CAAC,EACA,KAAK,QACL,kCACA,CAAC,IAAG,YAAY,gBAAgB,aAC/B,GAAG,aAAa,KAAK,gBAAgB,SAAS,IAAI,UACpD;AAAA,EAEF,MAAM,WAAW,MAAM,QAAQ,IAC9B,WAAW,OAAO,IACjB,OAAO,eACN,SAAS,aAAa;AAAA,IACrB,UAAU;AAAA,IACV,IAAI;AAAA,IACJ,QAAQ,WAAW;AAAA,IACnB,QAAQ,WAAW,OAChB,MAAM,mBACN,gBACA,WAAW,SACX,WAAW,MACX,kBACD,IACC,WAAW;AAAA,IACd,MAAM;AAAA,EACP,CAAC,EAAE,IACL,CACD;AAAA,EACA,MAAM,SAAS;AAAA,IACd,GAAG;AAAA,IACH,GAAG,kBAAkB,QAAQ,CAAC,YAAW,QAAO,QAAQ;AAAA,EACzD;AAAA,EAEA,IAAI,iBAA2B,CAAC;AAAA,EAChC,IAAI,gBAAgB,OAAO,QAAQ;AAAA,IAClC,MAAM,gBAAgB,OACrB,WAAW,KACX,GAAG,QAAQ,YAAY,gBACxB;AAAA,IACA,MAAM,OAAM,SAAQ,aAAa,GAAG,EAAE,WAAW,KAAK,CAAC;AAAA,IACvD,MAAM,OAAM,eAAe,OAAO,KAAK;AAAA,CAAI,CAAC;AAAA,IAC5C,iBAAiB,CAAC,aAAa;AAAA,EAChC;AAAA,EAEA,MAAM,iBAAiB,CACtB,YACA,cACA,eACI;AAAA,IACJ,MAAM,YAAY,WAAW,OAAO,KACnC,CAAC,eAAe,WAAW,MAC5B;AAAA,IAIA,MAAM,cAAc,YACjB,8BAA8B,kBAC9B;AAAA,IAKH,MAAM,UAAU,aACb;AAAA;AAAA,mBAEc,KAAK,UAAU,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAQlC;AAAA,IAEH,OAAO,gBACN;AAAA,MACC;AAAA,MACA;AAAA,MACA,UAAU,kBAAkB;AAAA,MAC5B;AAAA,MACA;AAAA,MACA;AAAA,IACD,EAAE,KAAK;AAAA,CAAI,CACZ;AAAA;AAAA,EAID,MAAM,aACL,eAAe,uBAAuB,KAAK,GAAG,UAAU,IAAI,IAC5D;AAAA,EACD,MAAM,aACL,eAAe,uBAAuB,IAAI,GAAG,aAAa,KAAK,IAC/D;AAAA,EAED,MAAM,mBAAmB,OACxB,WAAW,QACX,GAAG,6BACJ;AAAA,EACA,MAAM,mBAAmB,OACxB,WAAW,QACX,GAAG,6BACJ;AAAA,EAOA,MAAM,SAAS,SAAQ,gBAAgB;AAAA,EACvC,MAAM,WAAW,WAAW,MAAM,IAAI,OAAO,MAAM,GAAG,EAAE;AAAA,EACxD,MAAM,gBAAgB,CAAC,SACtB,KAAK,QAAQ,qCAAqC,CAAC,IAAG,QAAQ,SAAS;AAAA,IACtE,MAAM,UAAU,KAAK,MAAM,GAAG,EAAE,SAAS;AAAA,IACzC,IAAI,WAAW;AAAA,MAAU,OAAO,GAAG,SAAS;AAAA,IAE5C,OAAO,GAAG,eAAe;AAAA,GACzB;AAAA,EAGF,MAAM,wBAAwB,CAC7B,MACA,YACA,SACI;AAAA,IACJ,IAAI,UAAS;AAAA,IACb,YAAY,YAAY,UAAU,uBAAuB;AAAA,MACxD,MAAM,aAAa,SAAS,WAAW,MAAM,SAAS,MAAM;AAAA,MAC5D,IAAI,MAAM,UAAS,SAAQ,UAAU,GAAG,UAAU,EAAE,QACnD,OACA,GACD;AAAA,MACA,IAAI,CAAC,IAAI,WAAW,GAAG;AAAA,QAAG,MAAM,KAAK;AAAA,MACrC,UAAS,QAAO,WAAW,YAAY,GAAG;AAAA,IAC3C;AAAA,IAEA,OAAO;AAAA;AAAA,EAGR,MAAM,OAAM,SAAQ,gBAAgB,GAAG,EAAE,WAAW,KAAK,CAAC;AAAA,EAC1D,MAAM,OAAM,SAAQ,gBAAgB,GAAG,EAAE,WAAW,KAAK,CAAC;AAAA,EAC1D,MAAM,OACL,kBACA,sBACC,cAAc,UAAU,GACxB,kBACA,QACD,CACD;AAAA,EACA,MAAM,OACL,kBACA,sBACC,cAAc,UAAU,GACxB,kBACA,QACD,CACD;AAAA,EAEA,MAAM,SAAsB;AAAA,IAC3B,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV;AAAA,IACA,YAAY;AAAA,IACZ,eAAe;AAAA,MACd,GAAG,kBAAkB,IAAI,CAAC,WACzB,UACC,SAAQ,cAAc,GACtB,OAAO,SAAS,KAAK,IAAI,SAAS,GAAG,WACtC,CACD;AAAA,MACA,GAAG,kBAAkB,QAAQ,CAAC,UAAU,MAAM,aAAa;AAAA,IAC5D;AAAA,EACD;AAAA,EAEA,SAAS,IAAI,gBAAgB,MAAM;AAAA,EACnC,qBAAqB,IAAI,gBAAgB,MAAM;AAAA,EAE/C,OAAO;AAAA,GAGK,aAAa,OACzB,aACA,YACA,QAAQ,OACR,uBACI;AAAA,EACJ,MAAM,WAAwB,MAAa;AAAA,EAE3C,MAAM,eAAe,OAAK,YAAY,WAAW;AAAA,EACjD,MAAM,kBAAkB,OAAK,cAAc,QAAQ;AAAA,EACnD,MAAM,iBAAiB,OAAK,cAAc,SAAS;AAAA,EACnD,MAAM,kBAAkB,OAAK,cAAc,QAAQ;AAAA,EACnD,MAAM,eAAe,OAAK,cAAc,UAAU;AAAA,EAElD,MAAM,QAAQ,IAAI;AAAA,IACjB,OAAM,iBAAiB,EAAE,WAAW,KAAK,CAAC;AAAA,IAC1C,OAAM,gBAAgB,EAAE,WAAW,KAAK,CAAC;AAAA,IACzC,OAAM,iBAAiB,EAAE,WAAW,KAAK,CAAC;AAAA,IAC1C,OAAM,cAAc,EAAE,WAAW,KAAK,CAAC;AAAA,EACxC,CAAC;AAAA,EAED,MAAM,aAAa,IAAI;AAAA,EACvB,MAAM,mBAAmB,IAAI;AAAA,EAE7B,MAAM,gBAAgB,MAAM,QAAQ,IACnC,YAAY,IAAI,OAAO,cAAc;AAAA,IACpC,MAAM,SAAS,MAAM,eACpB,UAAQ,SAAS,GACjB;AAAA,MACC,QAAQ;AAAA,MACR,KAAK;AAAA,MACL,QAAQ;AAAA,IACT,GACA,YACA,MACA,YACA,UACA,kBACD;AAAA,IAEA,OAAO,cAAc,QAAQ,CAAC,SAAS,iBAAiB,IAAI,IAAI,CAAC;AAAA,IAEjE,MAAM,gBAAgB,UAAS,WAAW,MAAM;AAAA,IAChD,MAAM,kBAAkB,OAAK,gBAAgB,GAAG,kBAAkB;AAAA,IAClE,MAAM,mBAAmB,OACxB,iBACA,UAAS,YAAY,SAAS,EAC5B,QAAQ,OAAO,GAAG,EAClB,QAAQ,UAAU,KAAK,CAC1B;AAAA,IAEA,MAAM,OAAM,SAAQ,eAAe,GAAG,EAAE,WAAW,KAAK,CAAC;AAAA,IACzD,MAAM,gBAAgB,QACnB;AAAA,MACA;AAAA,MACA,WAAW;AAAA,IACZ,IACC,CAAC;AAAA,IACJ,MAAM,OACL,iBACA;AAAA,MACC,GAAG;AAAA,MACH,qBAAqB,UAAS,SAAQ,eAAe,GAAG,gBAAgB,EAAE,QAAQ,OAAO,GAAG;AAAA,MAC5F;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD,EAAE,KAAK;AAAA,CAAI,CACZ;AAAA,IAEA,OAAO;AAAA,MACN,YAAY;AAAA,MACZ,UAAU,OAAO;AAAA,MACjB,WAAW;AAAA,MACX,YAAY,OAAO;AAAA,IACpB;AAAA,GACA,CACF;AAAA,EAEA,MAAM,QAAQ,IACb,MAAM,KAAK,gBAAgB,EAAE,IAAI,OAAO,WAAW;AAAA,IAClD,MAAM,aAAa,MAAM,MAAK,MAAM,EAAE,KAAK;AAAA,IAC3C,MAAM,iBAAiB,YAAW,cAAc,UAAU;AAAA,IAC1D,MAAM,iBAAiB,UAAS,YAAY,MAAM,EAAE,QACnD,SACA,KACD;AAAA,IACA,MAAM,gBAAgB,OAAK,iBAAiB,cAAc;AAAA,IAC1D,MAAM,gBAAgB,OAAK,iBAAiB,cAAc;AAAA,IAC1D,MAAM,OAAM,SAAQ,aAAa,GAAG,EAAE,WAAW,KAAK,CAAC;AAAA,IACvD,MAAM,OAAM,SAAQ,aAAa,GAAG,EAAE,WAAW,KAAK,CAAC;AAAA,IACvD,MAAM,OAAM,eAAe,cAAc;AAAA,IACzC,MAAM,OAAM,eAAe,cAAc;AAAA,GACzC,CACF;AAAA,EAEA,OAAO;AAAA,IAEN,aAAa,IAAI,IAAI,cAAc;AAAA,IACnC,gBAAgB,cAAc,IAAI,CAAC,WAAW,OAAO,UAAU;AAAA,IAC/D,aAAa,cAAc,QAAQ,CAAC,WAAW,OAAO,QAAQ;AAAA,IAC9D,eAAe,cAAc,IAAI,CAAC,WAAW,OAAO,SAAS;AAAA,IAC7D,gBAAgB,cAAc,IAAI,CAAC,WAAW,OAAO,UAAU;AAAA,EAChE;AAAA;AAAA;AAAA,EArwBD;AAAA,EAoBA;AAAA,EACA;AAAA,EACA;AAAA,EAwBM,gBAAe,qBAAoB;AAAA,EAEnC,iBAAgB,OAAK,eAAc,cAAc,EAAE,QAAQ,OAAO,GAAG;AAAA,EAErE,cAAa,IAAI,YAAW,EAAE,QAAQ,MAAM,QAAQ,UAAU,CAAC;AAAA,EAe/D,cAAc,IAAI;AAAA,EAClB,mBAAmB,IAAI;AAAA,EACvB,gBAAgB,IAAI;AAAA,EACpB,aAAa,IAAI;AAAA,EAGjB,uBAAuB,IAAI;AAAA,EAG3B,qBAAqB,IAAI;AAAA,EAGlB,iBAAiB,IAAI;AAAA;;;ICxD5B,gCAAgC,CAAC,OAAe,UACrD,MAAM,WAAW,OAAO,MAAM,QAAQ,OAAO,KAExC,6BAA6B,CAAC,OAAe,UAAkB;AAAA,EACpE,MAAM,SAAS,QAAQ;AAAA,EACvB,OAAO,SAAS,MAAM,SAAS,GAAG;AAAA,IACjC,MAAM,MAAM,MAAM,QAAQ,MAAM,MAAM;AAAA,IACtC,IAAI,MAAM,GAAG;AAAA,MACZ,OAAO,MAAM;AAAA,IACd;AAAA,IAEA,OAAO,MAAM;AAAA,EACd;AAAA,EAEA,OAAO,MAAM;AAAA,GAGR,mBAAmB,CAAC,MAAc,UAAkB;AAAA,EACzD,IAAI,SAAS,KAAK;AAAA,IACjB,OAAO,QAAQ;AAAA,EAChB;AAAA,EAEA,IAAI,SAAS,KAAK;AAAA,IACjB,OAAO,QAAQ;AAAA,EAChB;AAAA,EAEA,OAAO;AAAA,GAGF,yBAAyB,CAAC,MAAc,UAAkB;AAAA,EAC/D,IAAI,SAAS,KAAK;AAAA,IACjB,OAAO,QAAQ;AAAA,EAChB;AAAA,EAEA,IAAI,SAAS,KAAK;AAAA,IACjB,OAAO,QAAQ;AAAA,EAChB;AAAA,EAEA,OAAO;AAAA,GAGF,sBAAsB,CAC3B,OACA,UACA,QACA,uBACI;AAAA,EACJ,MAAM,eAAe,WAAW,MAAM,MAAM,QAAQ,kBAAkB;AAAA,EACtE,MAAM,aAAa,2BAA2B,OAAO,kBAAkB;AAAA,EACvE,IAAI,aAAa,MAAM,QAAQ;AAAA,IAC9B,OAAO;AAAA,MACN,UAAU;AAAA,MACV,QAAQ,MAAM;AAAA,MACd,MAAM;AAAA,MACN,UAAU,eAAe,MAAM,MAAM,kBAAkB;AAAA,IACxD;AAAA,EACD;AAAA,EAEA,MAAM,aAAa,MACjB,MAAM,qBAAqB,GAAG,aAAa,CAAC,EAC5C,KAAK;AAAA,EAEP,OAAO;AAAA,IACN,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,UAAU;AAAA,EACX;AAAA,GAGK,yBAAyB,CAC9B,OACA,UACA,WACI,WAAW,MAAM,MAAM,MAAM,GAE5B,gCAAgC,CAAC,UAIjC;AAAA,EACL,MAAM,cAAc,4BACnB,MAAM,UACN,MAAM,qBACN,MAAM,OACP;AAAA,EACA,IAAI,CAAC,aAAa;AAAA,IACjB,OAAO;AAAA,EACR;AAAA,EAEA,OAAO;AAAA,IACN,SAAS,YAAY,QAAQ,KAAK;AAAA,IAClC,WACC,MAAM,YAAY,iBACf,eAAe,MAAM,UAAU,YAAY,SAAS,IACpD,YAAY;AAAA,EACjB;AAAA,GAGK,wBAAwB,CAC7B,UACA,YACA,iBACI;AAAA,EACJ,MAAM,mBAAmB,eAAe,UAAU,YAAY;AAAA,EAC9D,IAAI,SAAS,sBAAsB,KAAK;AAAA,IACvC,OAAO;AAAA,MACN,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,cAAc;AAAA,MACd,gBAAgB;AAAA,IACjB;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,IACN,SAAS;AAAA,IACT,QAAQ,aAAa,SAAS;AAAA,IAC9B,cAAc;AAAA,IACd,gBAAgB;AAAA,EACjB;AAAA,GAGK,qBAAqB,CAC1B,OACA,OACA,QACA,UACI;AAAA,EACJ,IAAI,8BAA8B,OAAO,MAAM,GAAG;AAAA,IACjD,OAAO;AAAA,MACN,QAAQ,2BAA2B,OAAO,MAAM;AAAA,MAChD;AAAA,MACA,QAAQ;AAAA,IACT;AAAA,EACD;AAAA,EAEA,MAAM,OAAO,MAAM,WAAW;AAAA,EAC9B,MAAM,YAAY,iBAAiB,MAAM,KAAK;AAAA,EAC9C,IAAI,SAAS,OAAO,cAAc,GAAG;AAAA,IACpC,OAAO;AAAA,MACN;AAAA,MACA;AAAA,MACA,QAAQ;AAAA,QACP,SAAS,MAAM,MAAM,QAAQ,GAAG,MAAM;AAAA,QACtC,WAAW,SAAS;AAAA,MACrB;AAAA,IACD;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,IACN,QAAQ,SAAS;AAAA,IACjB,OAAO;AAAA,IACP,QAAQ;AAAA,EACT;AAAA,GAGK,+BAA+B,CACpC,OACA,UACA,QACA,mBACI;AAAA,EACJ,MAAM,qBAAqB,MAAM,QAAQ,MAAM,MAAM;AAAA,EACrD,IAAI,qBAAqB,GAAG;AAAA,IAC3B,OAAO;AAAA,MACN,SAAS;AAAA,MACT;AAAA,MACA,MAAM;AAAA,MACN,UAAU,uBAAuB,OAAO,UAAU,MAAM;AAAA,IACzD;AAAA,EACD;AAAA,EAEA,MAAM,YAAY,oBACjB,OACA,UACA,QACA,kBACD;AAAA,EACA,IAAI,UAAU,QAAQ,UAAU,aAAa,WAAW;AAAA,IACvD,OAAO;AAAA,MACN,SAAS;AAAA,MACT;AAAA,MACA,MAAM;AAAA,MACN,UAAU,UAAU;AAAA,IACrB;AAAA,EACD;AAAA,EAEA,MAAM,MAAM,IAAI,eAAe,SAAS,aAAa;AAAA,EAErD,OAAO;AAAA,IACN,SAAS;AAAA,MACR,YAAY,UAAU;AAAA,MACtB;AAAA,IACD;AAAA,IACA,QAAQ,UAAU;AAAA,IAClB,MAAM;AAAA,IACN,UAAU,GAAG,UAAU,wBAAwB;AAAA,EAChD;AAAA,GAGK,qBAAqB,CAAC,UAAkB,WAAmB;AAAA,EAChE,MAAM,aAAa,SAAS,QAAQ,UAAU,MAAM;AAAA,EACpD,IAAI,aAAa,GAAG;AAAA,IACnB,OAAO;AAAA,EACR;AAAA,EAEA,OAAO;AAAA,IACN;AAAA,IACA,QAAQ,SAAS,MAAM,QAAQ,UAAU;AAAA,EAC1C;AAAA,GAGK,oBAAoB,CAAC,UAOrB;AAAA,EACL;AAAA,IACC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACG;AAAA,EACJ,MAAM,eAAe,cAAc,QAAQ,KAAK;AAAA,EAChD,MAAM,sBAAsB,0BAA0B,YAAY;AAAA,EAClE,MAAM,KAAK,0BAA0B,UAAU,SAAS,aAAa;AAAA,EACrE,MAAM,OAAgC;AAAA,IACrC,SAAS,aAAa,iBAAiB;AAAA,IACvC;AAAA,IACA,cAAc;AAAA,IACd;AAAA,IACA,kBAAkB,oBAAoB;AAAA,IACtC;AAAA,IACA,kBAAkB,oBAAoB;AAAA,EACvC;AAAA,EAEA,OAAO;AAAA,IACN;AAAA,IACA,QAAQ,0BAA0B,gDAAgD,cAAc,mBAAmB,IAAI;AAAA,IACvH;AAAA,EACD;AAAA,GAGK,qCAAqC,CAC1C,UACA,cAMI;AAAA,EACJ,IAAI,UAAU,SAAS;AAAA,IACtB,SAAS,KAAK,UAAU,OAAO;AAAA,EAChC;AAAA,EAEA,OAAO;AAAA,IACN,QAAQ,UAAU,OAAO,OAAO,oBAAoB,UAAU;AAAA,IAC9D,MAAM,UAAU;AAAA,IAChB,UAAU,UAAU;AAAA,EACrB;AAAA,GAGK,6BAA6B,CAClC,SACA,aACA,wBACI;AAAA,EACJ,IAAI,CAAC,aAAa;AAAA,IACjB,OAAO;AAAA,MACN;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,IACN,SAAS,YAAY,WAAW;AAAA,IAChC,qBAAqB,YAAY;AAAA,EAClC;AAAA,GAGK,gCAAgC,CACrC,iBACA,aACA,wBACI;AAAA,EACJ,MAAM,YAAY,2BACjB,iBACA,aACA,mBACD;AAAA,EAEA,OAAO;AAAA,IACN,qBAAqB,UAAU;AAAA,IAC/B,iBAAiB,UAAU,WAAW;AAAA,EACvC;AAAA,GAGK,0BAA0B,CAC/B,WACA,aACA,wBACI;AAAA,EACJ,MAAM,YAAY,2BACjB,WACA,aACA,mBACD;AAAA,EAEA,OAAO;AAAA,IACN,qBAAqB,UAAU;AAAA,IAC/B,WAAW,UAAU;AAAA,EACtB;AAAA,GAGK,kCAAkC,CAAC,UAAkB,WAAmB;AAAA,EAC7E,MAAM,iBAAiB,mBAAmB,UAAU,MAAM;AAAA,EAC1D,IAAI,gBAAgB;AAAA,IACnB,OAAO;AAAA,EACR;AAAA,EAEA,OAAO;AAAA,IACN,YAAY;AAAA,IACZ,QAAQ,SAAS,MAAM,MAAM;AAAA,EAC9B;AAAA,GAGK,6BAA6B,CAClC,iBACA,cAMI;AAAA,EACJ,IAAI,CAAC,UAAU,SAAS;AAAA,IACvB,OAAO;AAAA,EACR;AAAA,EAEA,OAAO;AAAA,IACN,SAAS;AAAA,IACT,QAAQ,UAAU;AAAA,IAClB,UAAU,kBAAkB,UAAU;AAAA,EACvC;AAAA,GAGK,0BAA0B,CAC/B,iBACA,UACA,YACA,kBACI;AAAA,EACJ,IAAI,cAAc,QAAQ,KAAK,GAAG;AAAA,IACjC,OAAO;AAAA,EACR;AAAA,EAEA,OAAO;AAAA,IACN,QAAQ,cAAc;AAAA,IACtB,UACC,kBACA,SAAS,MAAM,YAAY,cAAc,SAAS;AAAA,EACpD;AAAA,GAGK,gCAAgC,CACrC,iBACA,oBACK;AAAA,EACL,YAAY,eAAe;AAAA,EAC3B,MAAM,eAAe,aAAa;AAAA,EAClC,UAAU,kBAAkB,eAAe;AAC5C,IAEM,uBAAuB,CAC5B,SACA,QACA,iBACA,cAMI;AAAA,EACJ,MAAM,mBAAmB,2BACxB,iBACA,SACD;AAAA,EACA,IAAI,CAAC,kBAAkB;AAAA,IACtB,OAAO;AAAA,MACN;AAAA,MACA;AAAA,MACA,UAAU;AAAA,IACX;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,IACN,SAAS;AAAA,IACT,QAAQ,iBAAiB;AAAA,IACzB,UAAU,iBAAiB;AAAA,EAC5B;AAAA,GAGK,0BAA0B,CAC/B,QACA,iBACA,UACA,YACA,kBACI;AAAA,EACJ,MAAM,qBAAqB,wBAC1B,iBACA,UACA,YACA,aACD;AAAA,EACA,IAAI,CAAC,oBAAoB;AAAA,IACxB,OAAO;AAAA,MACN;AAAA,MACA,UAAU;AAAA,IACX;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,GAGF,8BAA8B,CACnC,OACA,UACA,QACA,aACI;AAAA,EACJ,MAAM,YAAY,6BACjB,OACA,UACA,QACA,SAAS,MACV;AAAA,EAEA,OAAO,mCAAmC,UAAU,SAAS;AAAA,GAGxD,0BAA0B,CAAC,UAO3B;AAAA,EACL,QAAQ,SAAS,QAAQ,iBAAiB,WAAW,OAAO,aAC3D;AAAA,EACD,MAAM,iBAAiB,gCAAgC,UAAU,MAAM;AAAA,EACvE,MAAM,mBAAmB,8BACxB,iBACA,cACD;AAAA,EACA,IAAI,iBAAiB,MAAM;AAAA,IAC1B,OAAO;AAAA,EACR;AAAA,EAEA,QAAQ,eAAe;AAAA,EACvB,IAAI,eAAe,aAAa,SAAS;AAAA,EACzC,MAAM,cAAc,+BAA+B,UAAU,YAAY;AAAA,EACzE,QAAQ,sBAAsB;AAAA,GAC7B,EAAE,aAAa,IAAI;AAAA,EACpB,MAAM,YAAY,sBAAsB,UAAU,YAAY,YAAY;AAAA,GACzE,EAAE,aAAa,IAAI;AAAA,EACpB,MAAM,iBAAiB,qBACtB,SACA,QACA,iBAAiB,UACjB,SACD;AAAA,EACA,IAAI,eAAe,YAAY,SAAS;AAAA,IACvC,OAAO;AAAA,MACN,SAAS,eAAe;AAAA,MACxB,QAAQ,eAAe;AAAA,MACvB;AAAA,MACA,UAAU,eAAe;AAAA,IAC1B;AAAA,EACD;AAAA,EAEA,MAAM,gBAAgB,kBAAkB,UAAU,YAAY;AAAA,EAC9D,MAAM,qBAAqB,wBAC1B,QACA,iBAAiB,UACjB,UACA,YACA,aACD;AAAA,EACA,IAAI,mBAAmB,WAAW,QAAQ;AAAA,IACzC,OAAO;AAAA,MACN;AAAA,MACA,QAAQ,mBAAmB;AAAA,MAC3B;AAAA,MACA,UAAU,mBAAmB;AAAA,IAC9B;AAAA,EACD;AAAA,EAEA,MAAM,eAAe,+BACpB,UACA,eAAe,UAAU,cAAc,SAAS,CACjD;AAAA,EACA,MAAM,YAAY,kBAAkB;AAAA,IACnC,qBAAqB,aAAa;AAAA,IAClC,WAAW,aAAa;AAAA,IACxB,iBAAiB,aAAa;AAAA,IAC9B;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAC;AAAA,EACD,MAAM,KAAK,UAAU,IAAI;AAAA,EAEzB,OAAO;AAAA,IACN,SAAS;AAAA,IACT,QAAQ,UAAU;AAAA,IAClB,WAAW,YAAY;AAAA,IACvB,UAAU,iBAAiB,WAAW,UAAU;AAAA,EACjD;AAAA,GAGK,oBAAoB,CACzB,OACA,UAC4C;AAAA,EAC5C,IAAI,MAAM,WAAW,KAAK;AAAA,IACzB,OAAO,EAAE,SAAS,IAAI,WAAW,MAAM;AAAA,EACxC;AAAA,EAEA,IAAI,SAAS,QAAQ;AAAA,EACrB,IAAI,QAAQ;AAAA,EAEZ,OAAO,SAAS,MAAM,QAAQ;AAAA,IAC7B,MAAM,WAAW,mBAAmB,OAAO,OAAO,QAAQ,KAAK;AAAA,IAC/D,IAAI,SAAS,QAAQ;AAAA,MACpB,OAAO,SAAS;AAAA,IACjB;AAAA,KAEC,EAAE,QAAQ,MAAM,IAAI;AAAA,EACtB;AAAA,EAEA,OAAO,EAAE,SAAS,MAAM,MAAM,QAAQ,CAAC,GAAG,WAAW,MAAM,OAAO;AAAA,GAG7D,iBAAiB,CAAC,OAAe,UAAkB;AAAA,EACxD,IAAI,SAAS;AAAA,EACb,OAAO,SAAS,MAAM,UAAU,KAAK,KAAK,MAAM,WAAW,EAAE,GAAG;AAAA,IAC/D,UAAU;AAAA,EACX;AAAA,EAEA,OAAO;AAAA,GAGF,kCAAkC,CACvC,OACA,UACsD;AAAA,EACtD,IAAI,SAAS,eAAe,OAAO,KAAK;AAAA,EACxC,IAAI,MAAM,YAAY,KAAK;AAAA,IAC1B,OAAO;AAAA,EACR;AAAA,EAEA,UAAU;AAAA,EACV,IAAI,QAAQ;AAAA,EACZ,MAAM,QAAQ;AAAA,EAEd,OAAO,SAAS,MAAM,QAAQ;AAAA,IAC7B,MAAM,OAAO,MAAM,WAAW;AAAA,IAC9B,MAAM,YAAY,uBAAuB,MAAM,KAAK;AAAA,IACpD,IAAI,SAAS,OAAO,cAAc,GAAG;AAAA,MACpC,OAAO;AAAA,QACN,YAAY,MAAM,MAAM,OAAO,MAAM;AAAA,QACrC,WAAW,SAAS;AAAA,MACrB;AAAA,IACD;AAAA,IAEA,QAAQ;AAAA,IACR,UAAU;AAAA,EACX;AAAA,EAEA,OAAO,EAAE,YAAY,MAAM,MAAM,KAAK,GAAG,WAAW,MAAM,OAAO;AAAA,GAG5D,eAAe,CAAC,sBAA0C;AAAA,EAC/D,IAAI,CAAC;AAAA,IAAmB,OAAO;AAAA,EAC/B,MAAM,eAAe,kBAAkB,MAAM,4BAA4B;AAAA,EACzE,IAAI,eAAe;AAAA,IAAI,OAAO,OAAO,SAAS,aAAa,IAAI,EAAE;AAAA,EACjE,MAAM,oBAAoB,kBAAkB,MAC3C,2BACD;AAAA,EACA,IAAI,oBAAoB,IAAI;AAAA,IAC3B,OACC,OAAO,SAAS,kBAAkB,IAAI,EAAE,IAAI;AAAA,EAE9C;AAAA,EAEA,IAAI,sBAAsB,KAAK,iBAAiB;AAAA,IAAG,OAAO;AAAA,EAC1D,IAAI,iBAAiB,KAAK,iBAAiB;AAAA,IAAG,OAAO;AAAA,EAErD,OAAO;AAAA,GAGF,4BAA4B,CAAC,UAAkB;AAAA,EACpD,MAAM,WAAuD,CAAC;AAAA,EAC9D,IAAI,WAAW;AAAA,EACf,IAAI,SAAS;AAAA,EAEb,OAAO,SAAS,MAAM,QAAQ;AAAA,IAC7B,MAAM,eAAe,4BACpB,OACA,UACA,QACA,QACD;AAAA,KACC,EAAE,QAAQ,SAAS,IAAI;AAAA,EACzB;AAAA,EAEA,OAAO;AAAA,IACN;AAAA,IACA;AAAA,EACD;AAAA,GAGK,iCAAiC,CACtC,UACA,iBACI;AAAA,EACJ,MAAM,gBAAgB,gCACrB,UACA,YACD;AAAA,EACA,IAAI,CAAC,eAAe;AAAA,IACnB,OAAO;AAAA,MACN;AAAA,MACA,mBAAmB;AAAA,IACpB;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,IACN,cAAc,cAAc;AAAA,IAC5B,mBAAmB,cAAc,WAAW,KAAK;AAAA,EAClD;AAAA,GAGK,8BAA8B,CACnC,UACA,qBACA,YACI;AAAA,EACJ,IAAI,CAAC,SAAS,WAAW,SAAS,mBAAmB,GAAG;AAAA,IACvD,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,qBAAqB,sBAAsB,QAAQ;AAAA,EACzD,MAAM,aAAa,eAAe,UAAU,kBAAkB;AAAA,EAC9D,IAAI,SAAS,gBAAgB,KAAK;AAAA,IACjC,OAAO;AAAA,EACR;AAAA,EAEA,OAAO,kBAAkB,UAAU,UAAU;AAAA,GAGxC,iCAAiC,CACtC,UACA,gBACI;AAAA,EACJ,IAAI,sBAAsB;AAAA,EAC1B,IAAI,kBAAkB;AAAA,EACtB,IAAI,YAA2B;AAAA,EAE/B,MAAM,oBAAoB,8BAA8B;AAAA,IACvD;AAAA,IACA,SAAS;AAAA,IACT;AAAA,EACD,CAAC;AAAA,GACA,EAAE,iBAAiB,oBAAoB,IAAI,8BAC3C,iBACA,mBACA,mBACD;AAAA,EAEA,MAAM,cAAc,8BAA8B;AAAA,IACjD;AAAA,IACA,SAAS;AAAA,IACT;AAAA,EACD,CAAC;AAAA,GACA,EAAE,WAAW,oBAAoB,IAAI,wBACrC,WACA,aACA,mBACD;AAAA,EAEA,OAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,GAGK,qBAAqB,CAAC,SAAkC;AAAA,EAC7D,MAAM,YAAY;AAAA,IACjB,8CAA8C,KAAK;AAAA,EACpD;AAAA,EAEA,IAAI,KAAK,aAAa,SAAS,GAAG;AAAA,IACjC,UAAU,KACT,iCAAiC,KAAK,4BACvC;AAAA,EACD;AAAA,EACA,IAAI,KAAK,WAAW;AAAA,IACnB,UAAU,KACT,8BAA8B,KAAK,yBACpC;AAAA,EACD;AAAA,EAEA,OAAO,UAAU,KAAK,EAAE;AAAA,GAGZ,0BAA0B,CACtC,aAC+B;AAAA,EAC/B,IAAI,CAAC,SAAS,SAAS,QAAQ,GAAG;AAAA,IACjC,OAAO;AAAA,MACN,OAAO,CAAC;AAAA,MACR;AAAA,MACA,aAAa;AAAA,IACd;AAAA,EACD;AAAA,EAEA,IAAI,SAAS;AAAA,EACb,IAAI,YAAY;AAAA,EAChB,MAAM,QAAmC,CAAC;AAAA,EAC1C,IAAI,kBAAkB;AAAA,EACtB,IAAI,UAAU;AAAA,EACd,IAAI,YAAY,wBAAwB;AAAA,IACvC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAC;AAAA,EACD,OAAO,WAAW;AAAA,KAChB,EAAE,SAAS,QAAQ,WAAW,UAAU,gBAAgB,IAAI;AAAA,IAC7D,YAAY,wBAAwB;AAAA,MACnC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD,CAAC;AAAA,EACF;AAAA,EAEA,MAAM,sBACL,MAAM,SAAS,IACZ,kBAAkB,SAAS,MAAM,MAAM,IACvC,SAAS,WAAW,UAAU,YAAY;AAAA,EAE9C,OAAO;AAAA,IACN;AAAA,IACA,UAAU;AAAA,IACV,aAAa,MAAM,SAAS;AAAA,EAC7B;AAAA;AAAA;AAAA,EAvxBD;AAAA;;;;;;;;;;ACAA,uBAAS,8BAAY,4BAAc;AACnC,iBAAS,oBAAM,kBAAU,iBAAK,sBAAS,uBAAS;AAEhD;AAAA,IAsBM,oBAAqC,OAAO,MAAM,KAAI,aAAa;AAAA,EACxE,MAAM,aACL,WAGC;AAAA,EAEF,OAAO,aACJ,WAAW,mBAAmB,QAAQ,KAAI,QAAQ,IAClD,MAAM,IAAG;AAAA,GAQP,0BAA0B,MAAM;AAAA,EACrC,IAAI;AAAA,IACH,MAAM,cAAa,UAAQ,QAAQ,IAAI,GAAG,eAAe;AAAA,IACzD,MAAM,SAAS,IAAG,eAAe,aAAY,IAAG,IAAI,QAAQ,EAAE;AAAA,IAQ9D,MAAM,kBAAkB,QAAQ,mBAAmB,CAAC;AAAA,IACpD,MAAM,UAAU,UAAQ,QAAQ,IAAI,GAAG,gBAAgB,WAAW,GAAG;AAAA,IACrE,MAAM,UAA+B,OAAO,QAC3C,gBAAgB,SAAS,CAAC,CAC3B,EAAE,IAAI,EAAE,SAAS,mBAAmB,EAAE,SAAS,aAAa,EAAE;AAAA,IAE9D,OAAO,EAAE,SAAS,QAAQ;AAAA,IACzB,MAAM;AAAA,IACP,OAAO,EAAE,SAAS,CAAC,GAA0B,SAAS,QAAQ,IAAI,EAAE;AAAA;AAAA,GAIhE,qBAAqB,CAC1B,WACA,SACA,SACA,sBACI;AAAA,EACJ,WAAW,SAAS,SAAS;AAAA,IAC5B,MAAM,gBAAgB,MAAM,QAAQ,QAAQ,GAAG;AAAA,IAC/C,MAAM,aAAa,kBAAkB;AAAA,IACrC,IAAI,cAAc,cAAc,MAAM;AAAA,MAAS;AAAA,IAE/C,MAAM,SAAS,aACZ,MAAM,UACN,MAAM,QAAQ,MAAM,GAAG,aAAa;AAAA,IACvC,MAAM,SAAS,aAAa,KAAK,MAAM,QAAQ,MAAM,gBAAgB,CAAC;AAAA,IACtE,IACC,CAAC,eACA,CAAC,UAAU,WAAW,MAAM,KAAK,CAAC,UAAU,SAAS,MAAM,IAC3D;AAAA,MACD;AAAA,IACD;AAAA,IAEA,MAAM,gBAAgB,aACnB,KACA,UAAU,MAAM,OAAO,QAAQ,UAAU,SAAS,OAAO,MAAM;AAAA,IAClE,WAAW,eAAe,MAAM,cAAc;AAAA,MAC7C,MAAM,YAAY,YAAY,QAAQ,KAAK,aAAa;AAAA,MACxD,MAAM,WAAW,kBAAkB,UAAQ,SAAS,SAAS,CAAC;AAAA,MAC9D,IAAI;AAAA,QAAU,OAAO;AAAA,IACtB;AAAA,EACD;AAAA,EAEA;AAAA,GAGK,oBAAoB,CAAC,cAAsB;AAAA,EAChD,MAAM,aAAa,UAAU,MAAM,iBAAiB,IACjD,CAAC,SAAS,IACV;AAAA,IACA,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,OAAK,WAAW,UAAU;AAAA,IAC1B,OAAK,WAAW,WAAW;AAAA,IAC3B,OAAK,WAAW,UAAU;AAAA,IAC1B,OAAK,WAAW,WAAW;AAAA,EAC5B;AAAA,EAEF,OAAO,WAAW,KAAK,CAAC,UAAS,aAAW,KAAI,CAAC;AAAA,GAG5C,4CAA4C,CAAC,YAAoB;AAAA,EACtE,MAAM,UAAU,UAAQ,OAAO;AAAA,EAC/B,MAAM,kBAAkB,wBAAwB;AAAA,EAChD,MAAM,cAAa,IAAI,IAAI,WAAW,EAAE,QAAQ,MAAM,CAAC;AAAA,EACvD,MAAM,YAAY,IAAI;AAAA,EAKtB,MAAM,qBAAqB,CAAC,WAAmB,YAAoB;AAAA,IAClE,IAAI,UAAU,WAAW,GAAG,KAAK,UAAU,WAAW,GAAG,GAAG;AAAA,MAC3D,OAAO,kBAAkB,UAAQ,SAAS,SAAS,CAAC;AAAA,IACrD;AAAA,IAEA,MAAM,UAAU,mBACf,WACA,gBAAgB,SAChB,gBAAgB,SAChB,iBACD;AAAA,IACA,IAAI;AAAA,MAAS,OAAO;AAAA,IAEpB,IAAI;AAAA,MACH,MAAM,WAAW,IAAI,YAAY,WAAW,OAAO;AAAA,MACnD,IAAI,SAAS,SAAS,gBAAgB;AAAA,QAAG;AAAA,MACzC,MAAM,WAAW,UAAQ,QAAQ;AAAA,MACjC,IAAI,CAAC,SAAS,WAAW,OAAO;AAAA,QAAG;AAAA,MAEnC,OAAO,kBAAkB,QAAQ;AAAA,MAChC,MAAM;AAAA,MACP;AAAA;AAAA;AAAA,EAIF,MAAM,WAAW,CAAC,aAAqB;AAAA,IACtC,MAAM,aAAa,kBAAkB,QAAQ;AAAA,IAC7C,IAAI,CAAC,YAAY;AAAA,MAChB,OAAO,QAAQ,QAAQ;AAAA,QACtB,SAAS,CAAC;AAAA,QACV,sBAAsB;AAAA,MACvB,CAAC;AAAA,IACF;AAAA,IACA,MAAM,WAAW,UAAQ,UAAU;AAAA,IACnC,MAAM,SAAS,UAAU,IAAI,QAAQ;AAAA,IACrC,IAAI;AAAA,MAAQ,OAAO;AAAA,IAEnB,MAAM,WAAW,YAAY;AAAA,MAC5B,IAAI;AAAA,MACJ,IAAI;AAAA,QACH,aAAa,MAAM,GAAG,SAAS,UAAU,OAAO;AAAA,QAC/C,MAAM;AAAA,QACP,OAAO,EAAE,SAAS,CAAC,GAAG,sBAAsB,MAAM;AAAA;AAAA,MAGnD,IAAI;AAAA,MACJ,IAAI;AAAA,QACH,UAAU,YAAW,YAAY,UAAU;AAAA,QAC1C,MAAM;AAAA,QACP,OAAO,EAAE,SAAS,CAAC,GAAG,sBAAsB,MAAM;AAAA;AAAA,MAGnD,OAAO;AAAA,QACN,SAAS,QAAQ,IAAI,CAAC,QAAQ,IAAI,IAAI;AAAA,QACtC,sBAAsB,QAAQ,KAC7B,CAAC,QAAQ,IAAI,SAAS,qBACvB;AAAA,MACD;AAAA,OACE;AAAA,IAEH,UAAU,IAAI,UAAU,OAAO;AAAA,IAE/B,OAAO;AAAA;AAAA,EAGR,MAAM,QAAQ,OACb,UACA,UAAU,IAAI,QACQ;AAAA,IACtB,MAAM,aAAa,kBAAkB,QAAQ;AAAA,IAC7C,IAAI,CAAC;AAAA,MAAY,OAAO;AAAA,IACxB,MAAM,WAAW,UAAQ,UAAU;AAAA,IACnC,IAAI,QAAQ,IAAI,QAAQ;AAAA,MAAG,OAAO;AAAA,IAClC,QAAQ,IAAI,QAAQ;AAAA,IAEpB,MAAM,OAAO,MAAM,SAAS,QAAQ;AAAA,IACpC,IAAI,KAAK;AAAA,MAAsB,OAAO;AAAA,IAEtC,WAAW,aAAa,KAAK,SAAS;AAAA,MACrC,MAAM,eAAe,mBACpB,WACA,UAAQ,QAAQ,CACjB;AAAA,MACA,IAAI,gBAAiB,MAAM,MAAM,cAAc,OAAO,GAAI;AAAA,QACzD,OAAO;AAAA,MACR;AAAA,IACD;AAAA,IAEA,OAAO;AAAA;AAAA,EAGR,OAAO,CAAC,cAAsB,MAAM,SAAS;AAAA,GAGxC,uBAAsB,MAAM;AAAA,EACjC,MAAM,cAAc,QAAQ,IAAI;AAAA,EAChC,MAAM,aAAa,UAAQ,YAAY,KAAK,eAAe;AAAA,EAE3D,IAAI,aAAW,UAAU,KAAK,WAAW,WAAW,WAAW,GAAG;AAAA,IACjE,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,kBAAkB,UACvB,aACA,mDACD;AAAA,EACA,IAAI,aAAW,eAAe;AAAA,IAAG,OAAO;AAAA,EAExC,OAAO,UAAQ,YAAY,KAAK,cAAc;AAAA,GAGzC,eAEA,gBAGA,gBASA,wBAAwB,CAAC,SAAiB,aAAqB;AAAA,EAEpE,MAAM,sBAAsB;AAAA,EAC5B,MAAM,iBAA2B,CAAC;AAAA,EAClC,IAAI;AAAA,EACJ,QAAQ,QAAQ,oBAAoB,KAAK,OAAO,OAAO,MAAM;AAAA,IAC5D,IAAI,MAAM;AAAA,MAAI,eAAe,KAAK,MAAM,EAAE;AAAA,EAC3C;AAAA,EAEA,IAAI,eAAe,WAAW;AAAA,IAAG,OAAO;AAAA,EAGxC,MAAM,gBAAgB,eACpB,IACA,CAAC,SACA,gBAAgB,yDAAyD,YAAY,UAAU,QACjG,EACC,KAAK;AAAA,CAAI;AAAA,EAEX,MAAM,WAAW;AAAA;AAAA;AAAA,EAAgI;AAAA;AAAA;AAAA,EAEjJ,OAAO,UAAU;AAAA,GAGZ,0BAA0B,CAAC,eAA8B;AAAA,EAC9D,IAAI;AAAA,IACH,OAAO,IAAG,6BAA6B,WAAW,aAAa;AAAA,CAAI;AAAA,IAClE,MAAM;AAAA,IACP,OAAO,OAAO,WAAW,eAAe,eAAe;AAAA;AAAA,GAInD,2BAA2B,CAChC,gBACI;AAAA,EACJ,IAAI,CAAC,aAAa;AAAA,IAAQ;AAAA,EAE1B,MAAM,SAAS,YAAY,OAC1B,CAAC,SAAS,KAAK,aAAa,IAAG,mBAAmB,KACnD;AAAA,EACA,IAAI,CAAC,OAAO;AAAA,IAAQ;AAAA,EAEpB,MAAM,cAAc,OAAO,IAAI,uBAAuB,EAAE,KAAK;AAAA,CAAI;AAAA,EACjE,QAAQ,MAAM,+BAA+B,WAAW;AAAA,EACxD,MAAM,IAAI,MAAM,WAAW;AAAA,GAGtB,sBAAsB,CAC3B,UACA,gBACA,WACI;AAAA,EACJ,IAAI,SAAS,WAAW,cAAc;AAAA,IACrC,OAAO,SAAS,UAAU,eAAe,SAAS,CAAC;AAAA,EACpD,IAAI,SAAS,WAAW,MAAM;AAAA,IAC7B,OAAO,SAAS,UAAU,OAAO,SAAS,CAAC;AAAA,EAE5C,OAAO;AAAA,GAGF,qBAAqB,CAAC,SAAiB,qBAAqB,KAAK,IAAI,GAErE,6BAA6B,CAClC,oBACA,WACA,gBACI;AAAA,EACJ,IAAI,UAAU,SAAS,KAAK;AAAA,IAAG,OAAO,UAAU,QAAQ,SAAS,KAAK;AAAA,EACtE,IAAI,mBAAmB,SAAS;AAAA,IAAG,OAAO;AAAA,EAE1C,MAAM,cAAc,UAAQ,kBAAkB;AAAA,EAC9C,MAAM,gBAAgB,UAAQ,aAAa,GAAG,cAAc;AAAA,EAC5D,IAAI,aAAa,IAAI,aAAa,KAAK,aAAW,aAAa,GAAG;AAAA,IACjE,OAAO,GAAG;AAAA,EACX;AAAA,EAEA,MAAM,iBAAiB,UAAQ,aAAa,WAAW,UAAU;AAAA,EACjE,IAAI,aAAa,IAAI,cAAc,KAAK,aAAW,cAAc,GAAG;AAAA,IACnE,OAAO,GAAG;AAAA,EACX;AAAA,EAEA,OAAO,GAAG;AAAA,GAGL,4BAA4B,CAAC,cAClC,UAAU,WAAW,IAAI,KAAK,UAAU,WAAW,KAAK,GAEnD,+BAA+B,CAAC,QAAgB,aAAqB;AAAA,EAC1E,MAAM,aAAa,IAAG,iBACrB,UACA,QACA,IAAG,aAAa,QAChB,MACA,IAAG,WAAW,EACf;AAAA,EACA,MAAM,aAAuB,CAAC;AAAA,EAC9B,MAAM,eAAe,CAAC,SAA8B;AAAA,IACnD,IAAI,CAAC,QAAQ,CAAC,IAAG,oBAAoB,IAAI;AAAA,MAAG;AAAA,IAC5C,MAAM,YAAY,KAAK;AAAA,IACvB,IAAI,0BAA0B,SAAS;AAAA,MAAG,WAAW,KAAK,SAAS;AAAA;AAAA,EAGpE,MAAM,QAAQ,CAAC,SAAkB;AAAA,IAChC,IAAI,IAAG,oBAAoB,IAAI,KAAK,IAAG,oBAAoB,IAAI,GAAG;AAAA,MACjE,aAAa,KAAK,eAAe;AAAA,IAClC,EAAO,SACN,IAAG,iBAAiB,IAAI,KACxB,KAAK,WAAW,SAAS,IAAG,WAAW,eACtC;AAAA,MACD,aAAa,KAAK,UAAU,EAAE;AAAA,IAC/B;AAAA,IACA,IAAG,aAAa,MAAM,KAAK;AAAA;AAAA,EAE5B,MAAM,UAAU;AAAA,EAEhB,OAAO;AAAA,GAGF,uBAAuB,CAAC,UAAkB,cAAsB;AAAA,EACrE,IAAI,CAAC,0BAA0B,SAAS;AAAA,IAAG,OAAO;AAAA,EAClD,MAAM,WAAW,UAAQ,UAAQ,QAAQ,GAAG,SAAS;AAAA,EACrD,MAAM,aAAa,kBAAkB,KAAK,QAAQ,IAC/C,CAAC,QAAQ,IACT;AAAA,IACA,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,OAAK,UAAU,UAAU;AAAA,IACzB,OAAK,UAAU,WAAW;AAAA,IAC1B,OAAK,UAAU,WAAW;AAAA,IAC1B,OAAK,UAAU,WAAW;AAAA,EAC3B;AAAA,EAEF,OACC,WACE,IAAI,CAAC,cAAc,UAAQ,SAAS,CAAC,EACrC,KACA,CAAC,cACA,aAAW,SAAS,KAAK,CAAC,UAAU,SAAS,OAAO,CACtD,KAAK;AAAA,GAIF,0BAA0B,OAC/B,UACA,cACI;AAAA,EACJ,MAAM,aAAa,YAAW,QAAQ;AAAA,EACtC,IAAI,OAAO,eAAe;AAAA,IAAU,OAAO;AAAA,EAE3C,OAAO,GAAG,SAAS,UAAU,OAAO;AAAA,GAe/B,sBAAsB,CAAC,UAA2B;AAAA,EACvD,MAAM,OAAO,IAAI;AAAA,EAEjB,OAAO,KAAK,UAAU,OAAO,CAAC,MAAM,UAAU;AAAA,IAC7C,IAAI,OAAO,UAAU;AAAA,MAAY,OAAO,aAAa,MAAM;AAAA,IAC3D,IAAI,CAAC,SAAS,OAAO,UAAU;AAAA,MAAU,OAAO;AAAA,IAChD,IAAI,KAAK,IAAI,KAAK;AAAA,MAAG,OAAO;AAAA,IAC5B,KAAK,IAAI,KAAK;AAAA,IAEd,IAAI,MAAM,QAAQ,KAAK;AAAA,MAAG,OAAO;AAAA,IAEjC,OAAO,OAAO,YACb,OAAO,QAAQ,KAAK,EAAE,KAAK,EAAE,QAAQ,WACpC,KAAK,cAAc,KAAK,CACzB,CACD;AAAA,GACA;AAAA,GAGI,8BAA8B,CAAC,QAAgB,YAAoB;AAAA,EACxE,MAAM,QAAkB,CAAC;AAAA,EACzB,MAAM,mBAAmB,qBACxB,QACA,oCACD;AAAA,EACA,IAAI,mBAAmB;AAAA,IAAI,MAAM,KAAK,OAAK,SAAS,iBAAiB,EAAE,CAAC;AAAA,EAExE,MAAM,gBAAgB,qBACrB,QACA,iCACD;AAAA,EACA,IAAI,gBAAgB;AAAA,IAAI,MAAM,KAAK,OAAK,SAAS,cAAc,EAAE,CAAC;AAAA,EAElE,MAAM,iBAAiB,qBACtB,QACA,8BACD;AAAA,EACA,MAAM,aAAa,iBAAiB,IAAI,MAAM,mBAAmB;AAAA,EACjE,IAAI,YAAY;AAAA,IACf,WAAW,YAAY,YAAY;AAAA,MAClC,MAAM,KAAK,OAAK,SAAS,SAAS,QAAQ,SAAS,EAAE,CAAC,CAAC;AAAA,IACxD;AAAA,EACD;AAAA,EAEA,OAAO,MAAM,IAAI,CAAC,SAAS,UAAQ,IAAI,CAAC;AAAA,GAGnC,wBAAwB,OAAO,cAAsB;AAAA,EAC1D,IAAI;AAAA,IACH,MAAM,QAAQ,KAAK,MAClB,MAAM,GAAG,SAAS,WAAW,OAAO,CACrC;AAAA,IACA,IAAI,MAAM,YAAY,KAAK,OAAO,MAAM,WAAW,UAAU;AAAA,MAC5D,OAAO;AAAA,IACR;AAAA,IAEA,OAAO;AAAA,IACN,MAAM;AAAA,IACP,OAAO;AAAA;AAAA,GAIH,yBAAyB,OAAO,WAAmB,WAAmB;AAAA,EAC3E,MAAM,GAAG,MAAM,UAAQ,SAAS,GAAG,EAAE,WAAW,KAAK,CAAC;AAAA,EACtD,MAAM,GAAG,UACR,WACA,KAAK,UAAU;AAAA,IACd;AAAA,IACA,SAAS;AAAA,EACV,CAA0C,GAC1C,OACD;AAAA,GAGK,oCAAoC,OACzC,UACA,QACA,uBACI;AAAA,EACJ,MAAM,gBAAgB,4BACrB,QACA,UAAQ,QAAQ,CACjB;AAAA,EACA,MAAM,mBAAmB,MAAM,QAAQ,IACtC,cAAc,IAAI,OAAO,iBAAiB;AAAA,IACzC,MAAM,UAAU,MAAM,GAAG,SAAS,cAAc,OAAO;AAAA,IAEvD,OAAO,GAAG,mBAAiB;AAAA,GAC3B,CACF;AAAA,EACA,MAAM,aAAa;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,IACH,oBAAoB,sBAAsB,IAAI;AAAA,EAC/C,EAAE,KAAK,MAAI;AAAA,EACX,MAAM,YAAW,IAAI,KAAK,UAAU,EAAE,SAAS,aAAa;AAAA,EAE5D,OAAO,OACN,QAAQ,IAAI,GACZ,eACA,SACA,qBACA,GAAG,gBACJ;AAAA,GAGK,kCAAkC,OACvC,YACA,WACA,uBACI;AAAA,EACJ,MAAM,qBAAqB,IAAI;AAAA,EAC/B,MAAM,UAAU,IAAI;AAAA,EACpB,MAAM,QAAmC;AAAA,IACxC,WAAW;AAAA,IACX,aAAa;AAAA,IACb,cAAc;AAAA,IACd,kBAAkB;AAAA,EACnB;AAAA,EAEA,MAAM,gBAAgB,OAAO,aAAqB;AAAA,IACjD,MAAM,eAAe,UAAQ,QAAQ;AAAA,IACrC,IAAI,QAAQ,IAAI,YAAY;AAAA,MAAG;AAAA,IAC/B,QAAQ,IAAI,YAAY;AAAA,IACxB,IAAI,CAAC,aAAW,YAAY,KAAK,aAAa,SAAS,OAAO;AAAA,MAAG;AAAA,IACjE,MAAM,gBAAgB;AAAA,IAEtB,MAAM,SAAS,MAAM,wBAAwB,cAAc,SAAQ;AAAA,IACnE,MAAM,YAAY,MAAM,kCACvB,cACA,QACA,kBACD;AAAA,IACA,MAAM,SAAS,MAAM,sBAAsB,SAAS;AAAA,IACpD,IAAI;AAAA,IACJ,IAAI,QAAQ;AAAA,MACX,MAAM,aAAa;AAAA,MACnB,oBAAoB,OAAO;AAAA,IAC5B,EAAO;AAAA,MACN,MAAM,eAAe;AAAA,MACrB,MAAM,cAAc,MAAM,gBACzB,QACA,UAAQ,YAAY,GACpB,kBACD;AAAA,MACA,oBAAoB,YAAY;AAAA,MAChC,MAAM,uBAAuB,WAAW,iBAAiB;AAAA;AAAA,IAE1D,IAAI,sBAAsB,QAAQ;AAAA,MACjC,MAAM,oBAAoB;AAAA,MAC1B,mBAAmB,IAAI,cAAc,iBAAiB;AAAA,IACvD;AAAA,IAEA,MAAM,UAAU,6BAA6B,QAAQ,YAAY;AAAA,IACjE,MAAM,QAAQ,IACb,QAAQ,IAAI,OAAO,cAAc;AAAA,MAChC,MAAM,iBAAiB,qBACtB,cACA,SACD;AAAA,MACA,IAAI;AAAA,QAAgB,MAAM,cAAc,cAAc;AAAA,KACtD,CACF;AAAA;AAAA,EAGD,MAAM,QAAQ,IAAI,WAAW,IAAI,CAAC,cAAc,cAAc,SAAS,CAAC,CAAC;AAAA,EAEzE,OAAO,EAAE,OAAO,mBAAmB;AAAA,GAGvB,sBAAsB,OAClC,YACA,QACA,uBACI;AAAA,EACJ,MAAM,6BAA6B,MAAM,kBACxC,uBACA,MACC,IAAI,IACH,WAAW,IAAI,CAAC,cAAc;AAAA,IAC7B,MAAM,aAAa,UAClB,OACC,QACA,UAAS,QAAQ,IAAI,GAAG,UAAQ,SAAS,CAAC,EAAE,QAC3C,mBACA,KACD,CACD,CACD;AAAA,IAEA,OAAO;AAAA,MACN;AAAA,MACA,2BACC,eAAa,WAAW,OAAO,CAChC;AAAA,IACD;AAAA,GACA,CACF,GACD,EAAE,SAAS,WAAW,OAAO,CAC9B;AAAA,EASA,MAAM,kBACL,wBACA,MAAa,2BACd;AAAA,EACA,QAAQ,mBAAmB,oBAAoB,cAC9C,MAAM,kBACL,2BACA,MAAa,+BACd;AAAA,EAED,MAAM,WAAW,MAAM,kBACtB,8BACA,MAAM;AAAA,IAEL,MAAM;AAAA,IACN,MAAM,YAAY,UAAQ,MAAM;AAAA,IAEhC,OAAO,UAAU,SAAS,KAAK,IAC5B,YACA,UAAQ,WAAW,KAAK;AAAA,GAE7B;AAAA,EAGA,MAAM,SAAS,MAAM,kBAAkB,0BAA0B,MAChE,kBAAkB,iBAAiB,CACpC;AAAA,EAIA,MAAM,UAA2B;AAAA,IAChC,uBAAuB;AAAA,IACvB,iBAAiB;AAAA,IACjB,wBAAwB;AAAA,IACxB,QAAQ,IAAG,WAAW;AAAA,IACtB,kBAAkB,IAAG,qBAAqB;AAAA,IAC1C,SAAS,IAAG,YAAY;AAAA,IACxB,OAAO;AAAA,IACP;AAAA,IACA,cAAc;AAAA,IACd,QAAQ,IAAG,aAAa;AAAA,OACrB,OAAO;AAAA,EACX;AAAA,EAIA,QAAQ,SAAS,IAAG,aAAa;AAAA,EAGjC,QAAQ,yBAAyB;AAAA,EACjC,QAAQ,wBAAwB;AAAA,EAGhC,QAAQ,UAAU,IAAG,YAAY;AAAA,EAIjC,QAAQ,SAAS;AAAA,EAIjB,QAAQ,SAAS;AAAA,EAKjB,QAAQ,cAAc;AAAA,EACtB,QAAQ,kBAAkB;AAAA,EAI1B,QAAQ,UAAU,QAAQ,IAAI;AAAA,EAI9B,MAAM,OAAO,MAAM,kBAAkB,4BAA4B,MAChE,IAAG,mBAAmB,OAAO,CAC9B;AAAA,EAGA,MAAM,gCAAgC,KAAK;AAAA,EAC3C,KAAK,wBAAwB,MAC5B,aACC,gCAAgC,8BAA8B,IAAI;AAAA,EAEpE,MAAM,gCAAgC,KAAK;AAAA,EAC3C,KAAK,wBAAwB,CAAC,SAA6B;AAAA,IAC1D,MAAM,WAAW,gCACd,8BAA8B,IAAI,IAClC;AAAA,IAEH,OAAO,UAAS,QAAQ;AAAA;AAAA,EAGzB,MAAM,wBAAwB,KAAK;AAAA,EACnC,KAAK,gBAAgB,CACpB,UACA,iBACA,YACI;AAAA,IACJ,IACC,SAAS,WAAW,MAAM,KAC1B,SAAS,SAAS,OAAO,KACzB,UACC;AAAA,MACD,MAAM,eAAe,OAAK,UAAU,QAAQ;AAAA,MAE5C,OAAO,uBAAuB,KAC7B,MACA,cACA,iBACA,OACD;AAAA,IACD;AAAA,IAEA,OAAO,uBAAuB,KAC7B,MACA,UACA,iBACA,OACD;AAAA;AAAA,EAGD,MAAM,UAAkC,CAAC;AAAA,EACzC,MAAM,iBAAiB,UAAQ,MAAM;AAAA,EACrC,KAAK,YAAY,CAAC,UAAU,SAAS;AAAA,IACpC,MAAM,eAAe,oBACpB,UACA,gBACA,MACD;AAAA,IACA,QAAQ,gBAAgB;AAAA;AAAA,EAEzB,MAAM,mBAAmB,KAAK;AAAA,EAC9B,QAAQ,OAAO,2BAA2B,uBACzC,MAAM,kBACL,4BACA,MACC,gCACC,YACA,kBAAkB,KAAK,IAAI,GAC3B,kBACD,GACD,EAAE,SAAS,WAAW,OAAO,CAC9B;AAAA,EACD,MAAM,kBAAkB,8BAA8B,MAAG;AAAA,IAAG;AAAA,KAAW;AAAA,IACtE,WAAW,0BAA0B;AAAA,IACrC,aAAa,0BAA0B;AAAA,IACvC,cAAc,0BAA0B;AAAA,IACxC,kBAAkB,0BAA0B;AAAA,EAC7C,CAAC;AAAA,EACD,KAAK,WAAW,CAAC,aAAqB;AAAA,IACrC,MAAM,SAAS,mBACZ,iBAAiB,KAAK,MAAM,QAAQ,IACpC;AAAA,IACH,IAAI,OAAO,WAAW;AAAA,MAAU,OAAO;AAAA,IACvC,IAAI,CAAC,SAAS,SAAS,KAAK,KAAK,SAAS,SAAS,OAAO,GAAG;AAAA,MAC5D,OAAO;AAAA,IACR;AAAA,IACA,MAAM,eAAe,UAAQ,QAAQ;AAAA,IAErC,OAAO,mBAAmB,IAAI,YAAY,KAAK;AAAA;AAAA,EAEhD,MAAM,kCAAkC,KAAK;AAAA,EAC7C,KAAK,gBAAgB,CACpB,UACA,iBACA,YACI;AAAA,IACJ,MAAM,SAAS,mBAAmB,IAAI,UAAQ,QAAQ,CAAC;AAAA,IACvD,IAAI,QAAQ;AAAA,MACX,OAAO,IAAG,iBAAiB,UAAU,QAAQ,iBAAiB,IAAI;AAAA,IACnE;AAAA,IAEA,OAAO,iCAAiC,KACvC,MACA,UACA,iBACA,OACD;AAAA;AAAA,EAGD,IAAI;AAAA,EACJ,IAAI;AAAA,KACF,EAAE,YAAY,IAAI,MAAM,kBACxB,2BACA,MACC,mBAAmB;AAAA,MAClB,WAAW,UAAU;AAAA,MACrB;AAAA,MACA;AAAA,MACA,WAAW;AAAA,IACZ,CAAC,GACF,EAAE,SAAS,WAAW,OAAO,CAC9B;AAAA,YACC;AAAA,IACD,KAAK,WAAW;AAAA,IAChB,KAAK,gBAAgB;AAAA;AAAA,EAGtB,MAAM,kBAAkB,yBAAyB,MAChD,yBAAyB,WAAW,CACrC;AAAA,EAEA,MAAM,UAAU,MAAM,kBACrB,8BACA,MAAM;AAAA,IACL,MAAM,aAAa,OAAO,QAAQ,OAAO,EACvC,OAAO,EAAE,cAAc,SAAS,SAAS,KAAK,CAAC,EAC/C,IAAI,EAAE,UAAU,cAAc;AAAA,MAC9B;AAAA,MACA,QAAQ,OAAK,QAAQ,QAAQ;AAAA,IAC9B,EAAE;AAAA,IACH,MAAM,cAAc,IAAI,IACvB,WAAW,IAAI,GAAG,aAAa,UAAQ,MAAM,CAAC,CAC/C;AAAA,IAEA,OAAO,WAAW,IAAI,GAAG,SAAS,aAAa;AAAA,MAG9C,IAAI,mBAAmB,QAAQ,QAC9B,qCACA,CAAC,OAAO,OAAO,SAAS;AAAA,QACvB,MAAM,YAAY,2BACjB,QACA,MACA,WACD;AAAA,QACA,IAAI,cAAc,MAAM;AAAA,UACvB,OAAO,QAAQ,QAAQ,YAAY;AAAA,QACpC;AAAA,QAEA,OAAO;AAAA,OAET;AAAA,MAGA,mBAAmB,iBACjB,QAAQ,gCAAqB,0BAAgB,EAC7C,QAAQ,8BAAmB,wBAAc,EACzC,QAAQ,6BAAkB,sBAAY,EACtC,QAAQ,4BAAiB,sBAAY,EACrC,QAAQ,4BAAiB,sBAAY;AAAA,MAIvC,mBAAmB,iBAAiB,QACnC,mFACA,CAAC,OAAO,QAAQ,UAAU;AAAA,QACzB,MAAM,WAAW,SAAS,OACxB,QAAQ,UAAU,GAAG,EACrB,QAAQ,YAAY,EAAE,EACtB,QAAQ,SAAS,EAAE;AAAA,QAErB,OAAO,UACJ,YAAY,wDACZ;AAAA,OAEL;AAAA,MAEA,mBAAmB,iBAAiB,QACnC,iCACA,qBACD;AAAA,MACA,oBACC,2BAA2B,IAAI,UAAQ,MAAM,CAAC,KAAK;AAAA,MAEpD,OAAO,EAAE,SAAS,kBAAkB,OAAO;AAAA,KAC3C;AAAA,GAEH;AAAA,EAEA,MAAM,kBACL,oBACA,MACC,QAAQ,IACP,QAAQ,IAAI,SAAS,QAAQ,cAAc;AAAA,IAC1C,MAAM,GAAG,MAAM,UAAQ,MAAM,GAAG,EAAE,WAAW,KAAK,CAAC;AAAA,IACnD,MAAM,GAAG,UAAU,QAAQ,SAAS,OAAO;AAAA,GAC3C,CACF,GACD,EAAE,SAAS,QAAQ,OAAO,CAC3B;AAAA,EAEA,OAAO,MAAM,kBACZ,4BACA,MAAM,QAAQ,IAAI,GAAG,aAAa,MAAM,GACxC,EAAE,SAAS,QAAQ,OAAO,CAC3B;AAAA,GAGY,qBAAqB,OACjC,WACA,QACA,uBACI,oBAAoB,CAAC,SAAS,GAAG,QAAQ,kBAAkB,GAK1D,iBAKA,oBAKA,wBAAwB,CAAC,YAC9B,QACE,QAAQ,OAAO,MAAM,EACrB,QAAQ,MAAM,KAAK,EACnB,QAAQ,SAAS,MAAM,GAQpB,uBAAuB,CAAC,QAAgB,YAAoB;AAAA,EACjE,MAAM,MAAK,IAAI,OACd,QAAQ,QACR,QAAQ,MAAM,SAAS,GAAG,IAAI,QAAQ,QAAQ,QAAQ,QAAQ,GAC/D;AAAA,EACA,IAAI;AAAA,EACJ,QAAQ,QAAQ,IAAG,KAAK,MAAM,OAAO,MAAM;AAAA,IAC1C,MAAM,YAAY,OAAO,YAAY;AAAA,GAAM,MAAM,QAAQ,CAAC,IAAI;AAAA,IAC9D,MAAM,cAAc,OAAO,MAAM,WAAW,MAAM,KAAK;AAAA,IACvD,IAAI,CAAC,WAAW,KAAK,WAAW;AAAA,MAAG,OAAO;AAAA,EAC3C;AAAA,EAEA,OAAO;AAAA,GAGF,qCAAqC,MAAM;AAAA,EAChD,MAAM,cAAc,UACnB,YAAY,KACZ,gCACD;AAAA,EACA,IAAI,aAAW,WAAW,GAAG;AAAA,IAC5B,OAAO,YAAY,QAAQ,OAAO,GAAG;AAAA,EACtC;AAAA,EAEA,OAAO;AAAA,GAGF,wBAAwB,CAC7B,QACA,kBAAkB,8CACd;AAAA,EACJ,IAAI,OAAO,SAAS,oBAAoB;AAAA,IAAG,OAAO;AAAA,EAClD,MAAM,0BAA0B,KAAK,UAAU,eAAe;AAAA,EAC9D,MAAM,aAAa,mIAAmI;AAAA;AAAA,EACtJ,MAAM,kBAAkB,CAAC,GAAG,OAAO,SAAS,qBAAqB,CAAC,EAAE,IAAI;AAAA,EACxE,IAAI,CAAC,mBAAmB,gBAAgB,UAAU,WAAW;AAAA,IAC5D,OAAO,aAAa;AAAA,EACrB;AAAA,EACA,MAAM,WAAW,gBAAgB,QAAQ,gBAAgB,GAAG;AAAA,EAE5D,OAAO,GAAG,OAAO,MAAM,GAAG,QAAQ;AAAA,EAAM,aAAa,OAAO,MAAM,QAAQ;AAAA,GAGrE,qCAAqC,CAAC,WAAmB;AAAA,EAC9D,MAAM,kBAAkB,OAAO,MAAM,8BAA8B;AAAA,EACnE,IAAI,iBAAiB;AAAA,IACpB,IACC,yBAAyB,KAAK,gBAAgB,MAAM,EAAE,KACtD,qCAAqC,KACpC,gBAAgB,MAAM,EACvB,KACA,qCAAqC,KACpC,gBAAgB,MAAM,EACvB,KACA,kCAAkC,KAAK,gBAAgB,MAAM,EAAE,GAC9D;AAAA,MACD,OAAO;AAAA,IACR;AAAA,IAEA,OAAO,OAAO,QACb,gCACA,CAAC,OAAO,mBAA2B;AAAA,MAClC,MAAM,UAAU,eAAe,KAAK;AAAA,MACpC,MAAM,UAAU,QACd,MAAM,GAAG,EACT,IAAI,CAAC,UAAU,MAAM,KAAK,CAAC,EAC3B,OAAO,OAAO;AAAA,MAChB,WAAW,kBAAkB;AAAA,QAC5B;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD,GAAG;AAAA,QACF,IAAI,CAAC,QAAQ,SAAS,cAAc,GAAG;AAAA,UACtC,QAAQ,KAAK,cAAc;AAAA,QAC5B;AAAA,MACD;AAAA,MACA,MAAM,cAAc,QAAQ,KAAK,IAAI;AAAA,MAErC,OAAO,aAAa;AAAA,KAEtB;AAAA,EACD;AAAA,EAEA,OAAO,OAAO,QACb,oBACA;AAAA,6HACD;AAAA,GAGK,6BAA6B,CAAC,UACnC,MAAM,QAAQ,OAAO,MAAM,EAAE,QAAQ,MAAM,KAAK,EAAE,QAAQ,SAAS,MAAM,GAEpE,8BAA6B,CAAC,OAAe,UAAkB;AAAA,EACpE,MAAM,SAAS,QAAQ;AAAA,EACvB,OAAO,SAAS,MAAM,SAAS,GAAG;AAAA,IACjC,MAAM,MAAM,MAAM,QAAQ,MAAM,MAAM;AAAA,IACtC,IAAI,MAAM,GAAG;AAAA,MACZ,OAAO,MAAM;AAAA,IACd;AAAA,IAEA,OAAO,MAAM;AAAA,EACd;AAAA,EAEA,OAAO,MAAM;AAAA,GAGR,+BAA+B,CAAC,UAAkB;AAAA,EACvD,MAAM,QAAkB,CAAC;AAAA,EACzB,IAAI,SAAS;AAAA,EAEb,OAAO,SAAS,MAAM,QAAQ;AAAA,IAC7B,MAAM,qBAAqB,MAAM,QAAQ,MAAM,MAAM;AAAA,IACrD,IAAI,qBAAqB,GAAG;AAAA,MAC3B,MAAM,KAAK,2BAA2B,MAAM,MAAM,MAAM,CAAC,CAAC;AAAA,MAE1D;AAAA,IACD;AAAA,IAEA,MAAM,KACL,2BAA2B,MAAM,MAAM,QAAQ,kBAAkB,CAAC,CACnE;AAAA,IAEA,MAAM,aAAa,4BAClB,OACA,kBACD;AAAA,IACA,IAAI,cAAc,MAAM,QAAQ;AAAA,MAC/B,MAAM,KACL,2BAA2B,MAAM,MAAM,kBAAkB,CAAC,CAC3D;AAAA,MAEA;AAAA,IACD;AAAA,IAEA,MAAM,gBAAgB,MACpB,MAAM,qBAAqB,GAAG,aAAa,CAAC,EAC5C,KAAK;AAAA,IACP,MAAM,aAAa,cAAc,WAAW,IAAI,OAAO;AAAA,IACvD,MAAM,oBAAoB,KAAK,UAAU,UAAU;AAAA,IAEnD,MAAM,KACL,oDAAoD,qBACrD;AAAA,IACA,SAAS;AAAA,EACV;AAAA,EAEA,OAAO,MAAM,KAAK,EAAE;AAAA,GAGf,iCAAiC,MACtC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,GAEK,uBAAuB,CAAC,UAC7B;AAAA,EACC,+BAA+B;AAAA,EAC/B,GAAG,MAAM,IAAI,CAAC,MAAM,UAAU;AAAA,IAC7B,MAAM,YAAY,uBAAwB,mBAAmB,6BAA6B,KAAK,YAAY;AAAA;AAAA,IAC3G,MAAM,YACL,KAAK,iBAAiB,SAAS,IAC5B,uBAAwB;AAAA,EAAqB,KAAK,iBACjD,IACA,CAAC,YACA,MAAQ,QAAQ,uDAAuD,KAAK,UAAU,QAAQ,UAAU,IAC1G,EACC,KAAK;AAAA,CAAK;AAAA;AAAA,IACX,uBAAwB;AAAA;AAAA,IAE5B,OACC,GACC,YAAY,0CACqB;AAAA,IAClC,wGAA0G,0CAA0C,eAAe,KAAK;AAAA,IACxK;AAAA;AAAA,GAED;AACF,EAAE,KAAK;AAAA,CAAI,GAEN,wBAAwB,CAC7B,QACA,OACA,kBAAkB,mCACd;AAAA,EACJ,IAAI,MAAM,WAAW;AAAA,IAAG,OAAO;AAAA,EAC/B,IAAI,YAAY,sBAAsB,QAAQ,eAAe;AAAA,EAC7D,YAAY,mCAAmC,SAAS;AAAA,EACxD,MAAM,SAAS,qBAAqB,KAAK;AAAA,EAEzC,OAAO,UAAU,QAChB,0DACA,CAAC,UAAU,GAAG;AAAA,EAAU;AAAA,CACzB;AAAA,GAGK,oBAAoB,OACzB,UACA,uBACI;AAAA,EACJ,IAAI,CAAC,aAAW,QAAQ,GAAG;AAAA,IAC1B,MAAM,IAAI,MACT,8DAA8D,UAC/D;AAAA,EACD;AAAA,EACA,MAAM,UAAU,MAAM,yBACrB,UACA,kBACD;AAAA,EAEA,OAAO,sBAAsB,OAAO;AAAA,GAG/B,8BAA8B,OAAO,QAAgB,YAAoB;AAAA,EAC9E,MAAM,mBAAmB,qBACxB,QACA,oCACD;AAAA,EACA,IAAI,mBAAmB,IAAI;AAAA,IAC1B,MAAM,eAAe,OAAK,SAAS,iBAAiB,EAAE;AAAA,IACtD,IAAI,CAAC,aAAW,YAAY,GAAG;AAAA,MAC9B,MAAM,IAAI,MACT,yCAAyC,iBAAiB,0BAA0B,cACrF;AAAA,IACD;AAAA,IACA,MAAM,eAAc,MAAM,GAAG,SAAS,cAAc,OAAO;AAAA,IAC3D,MAAM,WAAU,wBAAwB,YAAW;AAAA,IACnD,MAAM,WAAU,sBAAsB,SAAQ,QAAQ;AAAA,IACtD,MAAM,kBACL,OAAO,MAAM,GAAG,iBAAiB,KAAK,IACtC,eAAe,eACf,OAAO,MAAM,iBAAiB,QAAQ,iBAAiB,GAAG,MAAM;AAAA,IAEjE,OAAO;AAAA,MACN,YAAY,SAAQ;AAAA,MACpB,QAAQ,sBACP,iBACA,SAAQ,OACR,mCAAmC,CACpC;AAAA,IACD;AAAA,EACD;AAAA,EAEA,MAAM,sBAAsB,qBAC3B,QACA,mDACD;AAAA,EACA,IAAI,CAAC,qBAAqB;AAAA,IACzB,OAAO,EAAE,YAAY,CAAC,GAAgC,OAAO;AAAA,EAC9D;AAAA,EACA,MAAM,cACL,oBAAoB,MACpB,oBAAoB,MACpB,oBAAoB,MACpB;AAAA,EACD,MAAM,UAAU,wBAAwB,WAAW;AAAA,EACnD,IAAI,QAAQ,MAAM,WAAW,KAAK,QAAQ,aAAa,aAAa;AAAA,IACnE,OAAO,EAAE,YAAY,QAAQ,OAAO,OAAO;AAAA,EAC5C;AAAA,EACA,MAAM,UAAU,sBAAsB,QAAQ,QAAQ;AAAA,EACtD,MAAM,iBACL,OAAO,MAAM,GAAG,oBAAoB,KAAK,IACzC,eAAe,cACf,OAAO,MAAM,oBAAoB,QAAQ,oBAAoB,GAAG,MAAM;AAAA,EAEvE,OAAO;AAAA,IACN,YAAY,QAAQ;AAAA,IACpB,QAAQ,sBACP,gBACA,QAAQ,OACR,mCAAmC,CACpC;AAAA,EACD;AAAA,GAGK,kCAAkC,CAAC,QAAgB,YAAoB;AAAA,EAC5E,MAAM,mBAAmB,qBACxB,QACA,oCACD;AAAA,EACA,IAAI,mBAAmB,IAAI;AAAA,IAC1B,MAAM,eAAe,OAAK,SAAS,iBAAiB,EAAE;AAAA,IACtD,IAAI,CAAC,aAAW,YAAY,GAAG;AAAA,MAC9B,MAAM,IAAI,MACT,yCAAyC,iBAAiB,0BAA0B,cACrF;AAAA,IACD;AAAA,IACA,MAAM,eAAc,eAAa,cAAc,OAAO;AAAA,IACtD,MAAM,WAAU,wBAAwB,YAAW;AAAA,IACnD,MAAM,WAAU,sBAAsB,SAAQ,QAAQ;AAAA,IACtD,MAAM,kBACL,OAAO,MAAM,GAAG,iBAAiB,KAAK,IACtC,eAAe,eACf,OAAO,MAAM,iBAAiB,QAAQ,iBAAiB,GAAG,MAAM;AAAA,IAEjE,OAAO;AAAA,MACN,YAAY,SAAQ;AAAA,MACpB,QAAQ,sBACP,iBACA,SAAQ,OACR,mCAAmC,CACpC;AAAA,IACD;AAAA,EACD;AAAA,EAEA,MAAM,sBAAsB,qBAC3B,QACA,mDACD;AAAA,EACA,IAAI,CAAC,qBAAqB;AAAA,IACzB,OAAO,EAAE,YAAY,CAAC,GAAgC,OAAO;AAAA,EAC9D;AAAA,EACA,MAAM,cACL,oBAAoB,MACpB,oBAAoB,MACpB,oBAAoB,MACpB;AAAA,EACD,MAAM,UAAU,wBAAwB,WAAW;AAAA,EACnD,IAAI,QAAQ,MAAM,WAAW,KAAK,QAAQ,aAAa,aAAa;AAAA,IACnE,OAAO,EAAE,YAAY,QAAQ,OAAO,OAAO;AAAA,EAC5C;AAAA,EACA,MAAM,UAAU,sBAAsB,QAAQ,QAAQ;AAAA,EACtD,MAAM,iBACL,OAAO,MAAM,GAAG,oBAAoB,KAAK,IACzC,eAAe,cACf,OAAO,MAAM,oBAAoB,QAAQ,oBAAoB,GAAG,MAAM;AAAA,EAEvE,OAAO;AAAA,IACN,YAAY,QAAQ;AAAA,IACpB,QAAQ,sBACP,gBACA,QAAQ,OACR,mCAAmC,CACpC;AAAA,EACD;AAAA,GA2FK,kBAAkB,OACvB,QACA,SACA,uBACI;AAAA,EACJ,MAAM,iBAAiB,qBACtB,QACA,8BACD;AAAA,EACA,IAAI,CAAC,iBAAiB;AAAA,IAAI,OAAO;AAAA,EAEjC,MAAM,aAAa,eAAe,GAAG,MAAM,mBAAmB;AAAA,EAC9D,IAAI,CAAC;AAAA,IAAY,OAAO;AAAA,EAExB,MAAM,gBAAgB,WAAW,IAAI,CAAC,aAAa;AAAA,IAClD,MAAM,WAAW,SAAS,QAAQ,SAAS,EAAE;AAAA,IAE7C,OAAO,kBAAkB,OAAK,SAAS,QAAQ,GAAG,kBAAkB;AAAA,GACpE;AAAA,EACD,MAAM,UAAU,MAAM,QAAQ,IAAI,aAAa;AAAA,EAC/C,MAAM,gBAAgB,QACpB,OAAO,OAAO,EACd,IAAI,CAAC,YAAY,KAAK,WAAW;AAAA,EACnC,IAAI,cAAc,WAAW;AAAA,IAAG,OAAO;AAAA,EAEvC,OACC,OAAO,MAAM,GAAG,eAAe,KAAK,IACpC,YAAY,cAAc,KAAK,IAAI,OACnC,OAAO,MAAM,eAAe,QAAQ,eAAe,GAAG,MAAM;AAAA,GAIxD,uBAAuB,OAC5B,QACA,SACA,uBACI;AAAA,EACJ,MAAM,gBAAgB,qBACrB,QACA,iCACD;AAAA,EACA,IAAI,CAAC,gBAAgB;AAAA,IAAI,OAAO;AAAA,EAEhC,MAAM,UAAU,MAAM,kBACrB,OAAK,SAAS,cAAc,EAAE,GAC9B,kBACD;AAAA,EACA,IAAI,CAAC;AAAA,IAAS,OAAO;AAAA,EAErB,OACC,OAAO,MAAM,GAAG,cAAc,KAAK,IACnC,cAAc,eACd,OAAO,MAAM,cAAc,QAAQ,cAAc,GAAG,MAAM;AAAA,GAKtD,kBAAkB,OACvB,QACA,SACA,uBACI;AAAA,EACJ,MAAM,kBAAkB,MAAM,4BAA4B,QAAQ,OAAO;AAAA,EACzE,IAAI,SAAS,gBAAgB;AAAA,EAC7B,SAAS,MAAM,gBAAgB,QAAQ,SAAS,kBAAkB;AAAA,EAClE,SAAS,MAAM,qBAAqB,QAAQ,SAAS,kBAAkB;AAAA,EAEvE,OAAO;AAAA,IACN,YAAY,gBAAgB;AAAA,IAC5B,QAAQ;AAAA,EACT;AAAA,GAQY,wBAAwB,OACpC,WACA,QACA,SACA,uBACI;AAAA,EACJ,MAAM,YAAY,UAAQ,SAAS;AAAA,EACnC,MAAM,aAAuB,CAAC;AAAA,EAC9B,MAAM,UAAU,IAAI;AAAA,EACpB,MAAM,UAAU,UAAQ,WAAW,QAAQ,IAAI,CAAC;AAAA,EAChD,IAAI,uBAAuB;AAAA,EAE3B,MAAM,oBAAoB,IAAI,IAAI,WAAW;AAAA,IAC5C,QAAQ;AAAA,IACR,UAAU,KAAK,UAAU;AAAA,MACxB,iBAAiB;AAAA,QAChB,uBAAuB;AAAA,QACvB,wBAAwB;AAAA,MACzB;AAAA,IACD,CAAC;AAAA,EACF,CAAC;AAAA,EACD,MAAM,kBAAkB,wBAAwB;AAAA,EAEhD,MAAM,qBAAoB,CAAC,cAAsB;AAAA,IAChD,MAAM,aAAa,UAAU,MAAM,iBAAiB,IACjD,CAAC,SAAS,IACV;AAAA,MACA,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,OAAK,WAAW,UAAU;AAAA,MAC1B,OAAK,WAAW,WAAW;AAAA,MAC3B,OAAK,WAAW,UAAU;AAAA,MAC1B,OAAK,WAAW,WAAW;AAAA,IAC5B;AAAA,IAEF,OAAO,WAAW,KAAK,CAAC,UAAS,aAAW,KAAI,CAAC;AAAA;AAAA,EAGlD,MAAM,qBAAqB,CAAC,WAAmB,YAAoB;AAAA,IAClE,IAAI,UAAU,WAAW,GAAG,KAAK,UAAU,WAAW,GAAG,GAAG;AAAA,MAC3D,OAAO,mBAAkB,UAAQ,SAAS,SAAS,CAAC;AAAA,IACrD;AAAA,IAEA,MAAM,UAAU,mBACf,WACA,gBAAgB,SAChB,gBAAgB,SAChB,kBACD;AAAA,IACA,IAAI;AAAA,MAAS,OAAO;AAAA,IAEpB,IAAI;AAAA,MACH,MAAM,WAAW,IAAI,YAAY,WAAW,OAAO;AAAA,MACnD,IAAI,SAAS,SAAS,gBAAgB;AAAA,QAAG;AAAA,MACzC,MAAM,WAAW,UAAQ,QAAQ;AAAA,MACjC,IAAI,CAAC,SAAS,WAAW,OAAO;AAAA,QAAG;AAAA,MAEnC,OAAO,mBAAkB,QAAQ;AAAA,MAChC,MAAM;AAAA,MACP;AAAA;AAAA;AAAA,EAIF,MAAM,eAAe,CAAC,eAAuB;AAAA,IAC5C,MAAM,WAAW,UAAQ,UAAU;AAAA,IACnC,MAAM,cAAc,SAAS,WAAW,OAAO,IAC5C,SAAS,UAAU,QAAQ,SAAS,CAAC,IACrC;AAAA,IACH,MAAM,WAAW,UAAS,UAAU,EAAE,QAAQ,mBAAmB,KAAK;AAAA,IAEtE,OAAO,OAAK,QAAQ,aAAa,QAAQ;AAAA;AAAA,EAG1C,MAAM,sBAAsB,CAC3B,YACA,aACA,YACA,mBACI;AAAA,IACJ,IAAI,mBAAmB,kBAAkB,cAAc,UAAU;AAAA,IACjE,MAAM,aAAa,aAAa,UAAU;AAAA,IAC1C,MAAM,oBAAoB,CACzB,QACA,WACA,WACI;AAAA,MACJ,MAAM,YAAY,eAAe,IAAI,SAAS;AAAA,MAC9C,IAAI,WAAW;AAAA,QACd,OAAO,GAAG,SAAS,YAAY;AAAA,MAChC;AAAA,MACA,IAAI,UAAU,WAAW,GAAG,KAAK,UAAU,WAAW,GAAG,GAAG;AAAA,QAC3D,OAAO,GAAG,SAAS,YAAY;AAAA,MAChC;AAAA,MAEA,OAAO,GAAG,SAAS,YAAY;AAAA;AAAA,IAGhC,mBAAmB,iBAAiB,QACnC,gCACA,CAAC,IAAG,QAAQ,WAAW,WACtB,kBAAkB,QAAQ,WAAW,MAAM,CAC7C;AAAA,IACA,mBAAmB,iBAAiB,QACnC,kCACA,CAAC,IAAG,QAAQ,WAAW,WACtB,kBAAkB,QAAQ,WAAW,MAAM,CAC7C;AAAA,IACA,mBAAmB,iBAAiB,QACnC,yCACA,CAAC,IAAG,QAAQ,WAAW,WACtB,kBAAkB,QAAQ,WAAW,MAAM,CAC7C;AAAA,IAEA,mBAAmB,iBAAiB,QACnC,qCACA,CAAC,OAAO,OAAO,SAAS;AAAA,MACvB,MAAM,YAAY,2BAA2B,YAAY,IAAI;AAAA,MAC7D,IAAI,cAAc,MAAM;AAAA,QACvB,OAAO,QAAQ,QAAQ,YAAY;AAAA,MACpC;AAAA,MAEA,OAAO;AAAA,KAET;AAAA,IAEA,MAAM,WACL,gBAAgB,MAAM,gBAAgB,MACnC,IACA,YAAY,MAAM,GAAG,EAAE;AAAA,IAC3B,mBAAmB,iBAAiB,QACnC,qCACA,CAAC,IAAG,QAAQ,SAAS;AAAA,MACpB,MAAM,UAAU,KAAK,MAAM,GAAG,EAAE,SAAS;AAAA,MACzC,IAAI,WAAW;AAAA,QAAU,OAAO,GAAG,SAAS;AAAA,MAE5C,OAAO,GAAG,YAAY;AAAA,KAExB;AAAA,IACA,IAAI,UAAQ,UAAU,MAAM,WAAW;AAAA,MACtC,oBAAoB,2BAA2B,UAAU;AAAA,IAC1D;AAAA,IAEA,OAAO;AAAA;AAAA,EAIR,MAAM,gBAAgB,OAAO,aAAqB;AAAA,IACjD,MAAM,WAAW,UAAQ,QAAQ;AAAA,IACjC,IAAI,QAAQ,IAAI,QAAQ;AAAA,MAAG;AAAA,IAC3B,QAAQ,IAAI,QAAQ;AAAA,IAGpB,IAAI,aAAa;AAAA,IACjB,IAAI,CAAC,WAAW,SAAS,KAAK;AAAA,MAAG,cAAc;AAAA,IAC/C,IAAI,CAAC,aAAW,UAAU;AAAA,MAAG;AAAA,IAE7B,IAAI,aAAa,MAAM,GAAG,SAAS,YAAY,OAAO;AAAA,IAKtD,MAAM,UAAU,MAAM,gBACrB,YACA,UAAQ,UAAU,GAClB,kBACD;AAAA,IACA,aAAa,gCACZ,QAAQ,QACR,UAAQ,UAAU,CACnB,EAAE;AAAA,IAGF,MAAM,WAAW,UAAQ,UAAU;AAAA,IACnC,MAAM,cAAc,SAAS,WAAW,OAAO,IAC5C,SAAS,UAAU,QAAQ,SAAS,CAAC,IACrC;AAAA,IACH,MAAM,WAAW,UAAS,UAAU,EAAE,QAAQ,mBAAmB,KAAK;AAAA,IACtE,MAAM,YAAY,OAAK,QAAQ,WAAW;AAAA,IAC1C,MAAM,aAAa,aAAa,UAAU;AAAA,IAM1C,MAAM,eAAyB,CAAC;AAAA,IAChC,MAAM,iBAAiB,IAAI;AAAA,IAC3B,MAAM,YACL;AAAA,IACD,MAAM,qBACL;AAAA,IACD,IAAI;AAAA,IACJ,QAAQ,cAAc,UAAU,KAAK,UAAU,OAAO,MAAM;AAAA,MAC3D,IAAI,YAAY;AAAA,QAAI,aAAa,KAAK,YAAY,EAAE;AAAA,IACrD;AAAA,IACA,QAAQ,cAAc,mBAAmB,KAAK,UAAU,OAAO,MAAM;AAAA,MACpE,IAAI,YAAY;AAAA,QAAI,aAAa,KAAK,YAAY,EAAE;AAAA,IACrD;AAAA,IACA,IAAI,aAAa,SAAS,qBAAqB,GAAG;AAAA,MACjD,uBAAuB;AAAA,IACxB;AAAA,IACA,MAAM,mBAAmB,aACvB,IAAI,CAAC,cAAc;AAAA,MACnB,MAAM,YAAW,mBAAmB,WAAW,QAAQ;AAAA,MACvD,IAAI,CAAC;AAAA,QAAU,OAAO;AAAA,MACtB,MAAM,iBAAiB,UACtB,WACA,aAAa,SAAQ,CACtB,EACE,QAAQ,OAAO,GAAG,EAClB,QAAQ,SAAS,EAAE;AAAA,MACrB,eAAe,IACd,WACA,eAAe,WAAW,GAAG,IAC1B,iBACA,KAAK,gBACT;AAAA,MAEA,OAAO;AAAA,KACP,EACA,OAAO,CAAC,SAAyB,QAAQ,IAAI,CAAC;AAAA,IAMhD,MAAM,cAAc,IAAI,KAAK,UAAU,EAAE,SAAS,aAAa;AAAA,IAC/D,MAAM,YAAW;AAAA,IACjB,IACC,gBAAgB,IAAI,SAAQ,MAAM,eAClC,aAAW,UAAU,GACpB;AAAA,MACD,WAAW,KAAK,UAAU;AAAA,IAC3B,EAAO;AAAA,MACN,MAAM,mBAAmB,oBACxB,YACA,aACA,YACA,cACD;AAAA,MAEA,MAAM,GAAG,MAAM,WAAW,EAAE,WAAW,KAAK,CAAC;AAAA,MAC7C,MAAM,GAAG,UAAU,YAAY,kBAAkB,OAAO;AAAA,MACxD,WAAW,KAAK,UAAU;AAAA,MAC1B,gBAAgB,IAAI,WAAU,WAAW;AAAA;AAAA,IAI1C,MAAM,QAAQ,IACb,iBAAiB,IAAI,CAAC,eAAe,cAAc,UAAU,CAAC,CAC/D;AAAA;AAAA,EAGD,MAAM,cAAc,SAAS;AAAA,EAE7B,MAAM,kBAAkB,aAAa,SAAS;AAAA,EAC9C,IAAI,aAAW,eAAe,GAAG;AAAA,IAChC,MAAM,cAAc,MAAM,GAAG,SAAS,iBAAiB,OAAO;AAAA,IAC9D,MAAM,oBAAoB,YAAY,QACrC,uEACA;AAAA,CACD;AAAA,IACA,MAAM,kBAAkB,uBACrB,GAAG;AAAA;AAAA,IACH;AAAA,IACH,IAAI,oBAAoB,aAAa;AAAA,MACpC,MAAM,GAAG,UAAU,iBAAiB,iBAAiB,OAAO;AAAA,IAC7D;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,GAGK,iBAAiB,OAC7B,aACA,SACA,MAAM,OACN,uBACI;AAAA,EACJ,MAAM,iBAAiB,OAAK,SAAS,WAAW;AAAA,EAEhD,IAAI,YAAY,WAAW,GAAG;AAAA,IAC7B,MAAM,aAAuB,CAAC;AAAA,IAE9B,OAAO,EAAE,aAAa,CAAC,GAAG,UAAU,GAAG,aAAa,CAAC,GAAG,UAAU,EAAE;AAAA,EACrE;AAAA,EAOA,MAAM,eAAe;AAAA,EACrB,MAAM,aAAa,OAAK,gBAAgB,SAAS;AAAA,EAEjD,MAAM,kBAAkB,4BAA4B,MACnD,GAAG,MAAM,YAAY,EAAE,WAAW,KAAK,CAAC,CACzC;AAAA,EAEA,MAAM,aAAa,MAChB,CAAC,IACD,MAAM,kBACN,qBACA,MACC,oBACC,YAAY,IAAI,CAAC,UAAU,UAAQ,KAAK,CAAC,GACzC,cACA,kBACD,GACD,EAAE,SAAS,YAAY,OAAO,CAC/B;AAAA,EACF,MAAM,8BAA8B,MAAM,kBACzC,mCACA,MAAM,0CAA0C,OAAO,CACxD;AAAA,EAEA,MAAM,eAAe,YAAY,IAAI,OAAO,UAAU;AAAA,IACrD,MAAM,gBAAgB,UAAQ,KAAK;AAAA,IACnC,MAAM,gBAAgB,UAAS,SAAS,aAAa,EAAE,QACtD,YACA,KACD;AAAA,IACA,MAAM,eAAe,MACpB,sBACC,eACA,cACA,SACA,kBACD;AAAA,IAKD,IAAI,UAAU,MACX,MAAM,kBAAkB,qBAAqB,cAAc;AAAA,MAC3D,OAAO;AAAA,IACR,CAAC,IACA;AAAA,IACH,MAAM,WAAW,UAAS,aAAa,EAAE,QAAQ,YAAY,EAAE;AAAA,IAC/D,MAAM,SAAS,GAAG;AAAA,IAClB,MAAM,wBAAwB;AAAA,MAC7B,OAAK,cAAc,aAAa;AAAA,MAChC,OAAK,cAAc,SAAS,MAAM;AAAA,MAClC,OAAK,cAAc,MAAM;AAAA,IAC1B,EAAE,IAAI,CAAC,UAAS,UAAQ,KAAI,CAAC;AAAA,IAC7B,MAAM,uBAAuB,CAAC,mBAA6B;AAAA,MAC1D,MAAM,uBAAuB;AAAA,QAC5B,GAAG,eAAe,IAAI,CAAC,UAAS,UAAQ,KAAI,CAAC;AAAA,QAC7C,GAAG;AAAA,MACJ;AAAA,MACA,IAAI,YAAY,qBAAqB,KACpC,CAAC,UACA,aAAW,KAAI,KACf,MAAK,SAAS,GAAG,YAAW,OAAM,QAAQ,CAC5C;AAAA,MACA,IAAI,CAAC,WAAW;AAAA,QACf,YAAY,qBAAqB,KAChC,CAAC,UACA,aAAW,KAAI,KAAK,MAAK,SAAS,GAAG,OAAM,QAAQ,CACrD;AAAA,MACD;AAAA,MACA,IAAI,CAAC,WAAW;AAAA,QACf,YAAY,qBAAqB,KAAK,CAAC,UACtC,aAAW,KAAI,CAChB;AAAA,MACD;AAAA,MAEA,OAAO;AAAA;AAAA,IAGR,IAAI,gBAAgB,MAAM,kBACzB,iCACA,MAAM,qBAAqB,OAAO,GAClC,EAAE,OAAO,cAAc,CACxB;AAAA,IACA,IAAI,CAAC,eAAe;AAAA,MACnB,gBAAgB,MAAM,kBACrB,0CACA,MAAM,qBAAqB,CAAC,CAAC,GAC7B,EAAE,OAAO,cAAc,CACxB;AAAA,IACD;AAAA,IACA,IAAI,iBAAiB,CAAC,aAAW,aAAa,GAAG;AAAA,MAChD,UAAU,MAAM,MAAM,aAAa,IAAI;AAAA,MACvC,gBAAgB,MAAM,kBACrB,uCACA,MAAM,qBAAqB,OAAO,GAClC,EAAE,OAAO,cAAc,CACxB;AAAA,IACD;AAAA,IAEA,IAAI,CAAC,iBAAiB,CAAC,aAAW,aAAa,GAAG;AAAA,MACjD,MAAM,IAAI,MACT,iCAAiC,uBAAuB,sBAAsB;AAAA,QAC7E,GAAG;AAAA,QACH,GAAG;AAAA,MACJ,EAAE,KAAK,IAAI,GACZ;AAAA,IACD;AAAA,IAEA,MAAM,WAAW,MAAM,kBACtB,8BACA,MAAM,GAAG,SAAS,eAAe,OAAO,GACxC,EAAE,OAAO,cAAc,CACxB;AAAA,IAgBA,MAAM,+BAA+B,CACpC,QACA,aACY;AAAA,MACZ,MAAM,eAAe,OAAO,MAC3B,2CACD;AAAA,MACA,IAAI;AAAA,QAAc,OAAO,aAAa;AAAA,MACtC,MAAM,mBAAmB,OAAO,MAC/B,oDACD;AAAA,MACA,IAAI;AAAA,QAAkB,OAAO,iBAAiB;AAAA,MAC9C,OAAO;AAAA;AAAA,IAER,MAAM,qBAAqB,MAAM,kBAChC,kCACA,MACC,6BACC,UACA,GAAG,SAAS,QAAQ,YACrB,GACD,EAAE,OAAO,cAAc,CACxB;AAAA,IACA,MAAM,uBAAuB,MAAM,kBAClC,oCACA,MAAM,4BAA4B,aAAa,GAC/C,EAAE,OAAO,cAAc,CACxB;AAAA,IAMA,MAAM,oBAAoB,IAAI,KAAK,QAAQ,EAAE,SAAS,aAAa;AAAA,IACnE,MAAM,gBAAgB,mBAAmB,IAAI,aAAa;AAAA,IAC1D,MAAM,aAAa,OAAK,YAAY,MAAM;AAAA,IAC1C,IACC,OACA,iBACA,cAAc,eAAe,qBAC7B,aAAW,UAAU,MACpB,wBACA,CAAC,SAAS,SACT,0CACD,OACA,CAAC,wBACD,SAAS,SAAS,0CAA0C,IAC5D;AAAA,MACD,OAAO;AAAA,QACN,YAAY;AAAA,QACZ,gBAAgB;AAAA,QAChB,YAAY;AAAA,MACb;AAAA,IACD;AAAA,IAKA,IAAI,YAAY;AAAA,IAChB,YAAY,UAAU,QACrB,uEACA;AAAA,CACD;AAAA,IACA,IAAI,CAAC,UAAU,SAAS,6BAA6B,GAAG;AAAA,MACvD,YAAY;AAAA,EAAgC;AAAA,IAC7C;AAAA,IAGA,YAAY,UAAU,QACrB,IAAI,OAAO,6BAA6B,qBAAqB,GAC7D,6BAA6B,gBAC9B;AAAA,IAGA,IAAI,CAAC,UAAU,SAAS,gBAAgB,GAAG;AAAA,MAC1C,aAAa;AAAA,iBAAoB;AAAA;AAAA,IAClC;AAAA,IACA,IAAI,sBAAsB;AAAA,MACzB,aACC;AAAA;AAAA;AAAA,IACF;AAAA,IAQA,IAAI,KAAK;AAAA,MACR,YAAY,sBAAsB,WAAW,aAAa;AAAA,IAC3D;AAAA,IAEA,MAAM,kBACL,+BACA,MAAM,GAAG,UAAU,eAAe,WAAW,OAAO,GACpD,EAAE,OAAO,cAAc,CACxB;AAAA,IAIA,MAAM,eAAe,UAAS,YAAY,aAAa,EAAE,QACxD,OACA,GACD;AAAA,IAEA,MAAM,uBAAuB,aAAa,WAAW,GAAG,IACrD,eACA,KAAK;AAAA,IAGR,MAAM,cAAc,MACjB;AAAA,UAAkD;AAAA,UAA6B;AAAA,IAC/E;AAAA,IACH,MAAM,YAAY,MACf,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,+BAMuB;AAAA;AAAA,MAEzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAkCW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gDAU+B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAe/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,+BAsBc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAa7B,KAAK,IACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,+BAM0B;AAAA;AAAA,MAEzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BA+CqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYzB,KAAK;AAAA,IAIL,MAAM,YAAY,IAAI,KAAK,SAAS,EAAE,SAAS,aAAa;AAAA,IAC5D,MAAM,iBAAiB,eAAe,cAAc;AAAA,IAEpD,MAAM,kBACL,8BACA,MAAM,GAAG,UAAU,YAAY,WAAW,OAAO,GACjD,EAAE,OAAO,cAAc,CACxB;AAAA,IAGA,mBAAmB,IAAI,eAAe;AAAA,MACrC;AAAA,MACA,YAAY;AAAA,IACb,CAAC;AAAA,IAED,OAAO;AAAA,MACN,YAAY;AAAA,MACZ;AAAA,MACA,YAAY;AAAA,IACb;AAAA,GACA;AAAA,EAED,MAAM,UAAU,MAAM,kBACrB,2BACA,MAAM,QAAQ,IAAI,YAAY,GAC9B,EAAE,SAAS,YAAY,OAAO,CAC/B;AAAA,EACA,QAAQ,aAAa,gBAAgB,MAAM,kBAC1C,yBACA,OAAO;AAAA,IACN,aAAa,QAAQ,IAAI,CAAC,MAAM,EAAE,UAAU;AAAA,IAC5C,aAAa,QAAQ,IAAI,CAAC,MAAM,EAAE,UAAU;AAAA,EAC7C,IACA,EAAE,SAAS,QAAQ,OAAO,CAC3B;AAAA,EAEA,OAAO;AAAA,IAGN,qBAAqB,OAAO,QAAQ,MAAM,CAAC,MAAM,EAAE,cAAc;AAAA,IACjE;AAAA,IACA;AAAA,EACD;AAAA;AAAA;AAAA,EA9qED;AAAA,EAEA;AAAA,EACA;AAAA,EAIA;AAAA,EAkOM,gBAAe,qBAAoB;AAAA,EAEnC,iBAAgB,OAAK,eAAc,cAAc,EAAE,QAAQ,OAAO,GAAG;AAAA,EAGrE,iBAAiB,OACtB,eACA,YACA,mBACD,EAAE,QAAQ,OAAO,GAAG;AAAA,EAyqBd,kBAAkB,IAAI;AAAA,EAKtB,qBAAqB,IAAI;AAAA;;;;;;;;ACp6B/B,uBAAS,2BAAY;AACrB,iBAAS,mBAAM;AACf,eAAS;AACT;AAAA,IAEM,iCAAiC,MAAM;AAAA,EAC5C,MAAM,aAAa;AAAA,IAClB,UAAQ,YAAY,KAAK,SAAS,wBAAwB;AAAA,IAC1D,UAAQ,YAAY,KAAK,OAAO,SAAS,wBAAwB;AAAA,IACjE,UAAQ,YAAY,KAAK,MAAM,SAAS,wBAAwB;AAAA,IAChE,UAAQ,YAAY,KAAK,MAAM,OAAO,SAAS,wBAAwB;AAAA,IACvE,UAAQ,YAAY,KAAK,MAAM,MAAM,QAAQ,SAAS,wBAAwB;AAAA,IAC9E,UAAQ,YAAY,KAAK,MAAM,MAAM,OAAO,SAAS,wBAAwB;AAAA,EAC9E;AAAA,EACA,WAAW,aAAa,YAAY;AAAA,IACnC,IAAI,aAAW,SAAS,GAAG;AAAA,MAC1B,OAAO,UAAU,QAAQ,OAAO,GAAG;AAAA,IACpC;AAAA,EACD;AAAA,EAEA,QAAQ,WAAW,MAAM,UAAQ,YAAY,KAAK,SAAS,wBAAwB,GAAG,QACrF,OACA,GACD;AAAA,GAGK,yBAGA,iBAQA,eAAe,CAAC,cAAsB;AAAA,EAC3C,IAAI;AAAA,IACH,IAAI,YAAY,WAAW,QAAQ,IAAI,CAAC;AAAA,IAExC,OAAO;AAAA,IACN,MAAM;AAAA,IACP,OAAO;AAAA;AAAA,GAKH,0BAA0B,MAAM;AAAA,EACrC,IAAI,aAAa,uBAAuB,GAAG;AAAA,IAC1C,OAAO,CAAC,GAAG,iBAAiB,uBAAuB;AAAA,EACpD;AAAA,EAEA,OAAO;AAAA,GAIF,iBAAiB,CAAC,cACvB,UAAU,QAAQ,OAAO,GAAG,GAIhB,qBAAqB,MAAM;AAAA,EACvC,MAAM,QAAgC,CAAC;AAAA,EACvC,WAAW,aAAa,wBAAwB,GAAG;AAAA,IAClD,MAAM,aAAa,iBAAiB,eAAe,SAAS;AAAA,EAC7D;AAAA,EAEA,OAAO;AAAA,GAOF,sBAAsB,OAAO,cAAsB;AAAA,EACxD,IAAI,cAAc,yBAAyB;AAAA,IAC1C,OAAO,qCAAqC;AAAA;AAAA,EAC7C;AAAA,EAEA,MAAM,MAAM,MAAa;AAAA,EACzB,MAAM,cAAc,OAAO,KAAK,GAAG,EAAE,OACpC,CAAC,QAAQ,QAAQ,aAAa,QAAQ,YACvC;AAAA,EAEA,MAAM,QAAkB,CAAC;AAAA,EACzB,IAAI,YAAY,SAAS,GAAG;AAAA,IAC3B,MAAM,KAAK,YAAY,YAAY,KAAK,IAAI,aAAa,aAAa;AAAA,EACvE;AAAA,EACA,IAAI,aAAa,KAAK;AAAA,IACrB,MAAM,KAAK,4BAA4B,aAAa;AAAA,EACrD;AAAA,EAEA,OAAO,GAAG,MAAM,KAAK;AAAA,CAAI;AAAA;AAAA,GAOb,mBAAmB,OAAO,aAAqB;AAAA,EAC3D,MAAM,YAAY,OAAK,UAAU,SAAS,QAAQ;AAAA,EAClD,WAAU,WAAW,EAAE,WAAW,KAAK,CAAC;AAAA,EAExC,MAAM,SAAS,OAAK,UAAU,aAAa;AAAA,EAC3C,WAAU,QAAQ,EAAE,WAAW,KAAK,CAAC;AAAA,EAErC,MAAM,aAAa,wBAAwB;AAAA,EAG3C,MAAM,cAAc,MAAM,QAAQ,IACjC,WAAW,IAAI,OAAO,cAAc;AAAA,IACnC,MAAM,WAAW,eAAe,SAAS;AAAA,IACzC,MAAM,YAAY,OAAK,QAAQ,GAAG,aAAa;AAAA,IAC/C,MAAM,SAAS,MAAM,oBAAoB,SAAS;AAAA,IAClD,MAAM,IAAI,MAAM,WAAW,MAAM;AAAA,IAEjC,OAAO;AAAA,GACP,CACF;AAAA,EAEA,MAAM,SAAS,MAAM,UAAS;AAAA,IAC7B;AAAA,IACA,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,OAAO;AAAA,EACR,CAAC;AAAA,EAED,MAAM,IAAG,QAAQ,EAAE,OAAO,MAAM,WAAW,KAAK,CAAC;AAAA,EAEjD,IAAI,CAAC,OAAO,SAAS;AAAA,IACpB,QAAQ,KAAK,+CAAoC,OAAO,IAAI;AAAA,EAC7D;AAAA;AAAA;AAAA,EA9GK,0BAA0B,+BAA+B;AAAA,EAGzD,kBAAkB;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA;;;ICVa,4BAA4B,CAAC,cACzC,8BAA8B;AAAA,IAC9B,kBAAkB;AAAA,IAClB;AAAA;;;;;;;;;;;;AC5BD,sBAAS;AACT,iBAAS;AACT,eAAS;AACT;AAAA,IAaM,kCAWA,4BAA4B,CAAC,YAClC,UACG,CAAC,GAAG,kCAAkC,mBAAmB,IACzD,kCAME,gCAKA,gBAQA,gBAAe,CAAC,cAAsB;AAAA,EAC3C,IAAI;AAAA,IACH,IAAI,YAAY,WAAW,QAAQ,IAAI,CAAC;AAAA,IAExC,OAAO;AAAA,IACN,MAAM;AAAA,IACP,OAAO;AAAA;AAAA,GAIH,kBAAkB,CAAC,SACxB,CAAC,KAAK,WAAW,GAAG,KAAK,CAAC,KAAK,WAAW,GAAG,KAAK,CAAC,KAAK,WAAW,OAAO,GAErE,4BAA4B,CAAC,SAClC,KAAK,WAAW,WAAW,KAAK,CAAC,+BAA+B,IAAI,IAAI,GAMnE,oBAAoB,OAAO,gBAA0B;AAAA,EAC1D,MAAM,UAAU,IAAI;AAAA,EACpB,MAAM,kBAAkB,IAAI;AAAA,EAC5B,MAAM,cAAa,IAAI,IAAI,WAAW,EAAE,QAAQ,MAAM,CAAC;AAAA,EACvD,MAAM,OAAO,IAAI,MAAK,sBAAsB;AAAA,EAE5C,WAAW,OAAO,aAAa;AAAA,IAC9B,IAAI;AAAA,MACH,iBAAiB,SAAQ,KAAK,KAAK,EAAE,UAAU,MAAM,KAAK,IAAI,CAAC,GAAG;AAAA,QACjE,MAAM,MAAM,MAAK,MAAM,IAAI,SAAS,CAAC;AAAA,QACrC,OAAO,SAAS,IAAI,MAAM,GAAG;AAAA,QAC7B,IAAI,SAAS,eAAe,IAAI,KAAK;AAAA,UAAG;AAAA,QACxC,IAAI;AAAA,UACH,MAAM,UAAU,MAAM,IAAI,KAAK,KAAI,EAAE,KAAK;AAAA,UAC1C,WAAW,OAAO,YAAW,YAAY,OAAO,GAAG;AAAA,YAClD,IAAI,0BAA0B,IAAI,IAAI,GAAG;AAAA,cACxC,QAAQ,IAAI,IAAI,IAAI;AAAA,YACrB,EAAO,SAAI,gBAAgB,IAAI,IAAI,GAAG;AAAA,cACrC,gBAAgB,IAAI,IAAI,IAAI;AAAA,YAC7B;AAAA,UACD;AAAA,UACC,MAAM;AAAA,MAGT;AAAA,MACC,MAAM;AAAA,EAGT;AAAA,EAEA,OAAO,EAAE,SAAS,gBAAgB;AAAA,GAU7B,sBAWA,8BAA8B,CAAC,WACpC,qBAAqB,KAAK,CAAC,WAAW,OAAO,SAAS,MAAM,CAAC,GAOxD,gCAAgC,OACrC,OACA,iBACI;AAAA,EACJ,QAAQ,iCAAiB,MAAa;AAAA,EACtC,MAAM,cAAa,IAAI,IAAI,WAAW,EAAE,QAAQ,KAAK,CAAC;AAAA,EACtD,MAAM,UAAU,IAAI;AAAA,EACpB,MAAM,WAAqB,CAAC;AAAA,EAC5B,WAAW,KAAK;AAAA,IAAO,SAAS,KAAK,CAAC;AAAA,EAEtC,MAAM,aAAa;AAAA,EACnB,SAAS,OAAO,EAAG,OAAO,YAAY,QAAQ;AAAA,IAC7C,MAAM,OAAiB,CAAC;AAAA,IACxB,WAAW,QAAQ,UAAU;AAAA,MAC5B,IAAI,QAAQ,IAAI,IAAI;AAAA,QAAG;AAAA,MACvB,QAAQ,IAAI,IAAI;AAAA,MAChB,IAAI;AAAA,MACJ,IAAI;AAAA,QACH,WAAW,IAAI,YAAY,MAAM,QAAQ,IAAI,CAAC;AAAA,QAC7C,MAAM;AAAA,QACP;AAAA;AAAA,MAED,IAAI;AAAA,MACJ,IAAI;AAAA,QACH,UAAU,eAAa,UAAU,OAAO;AAAA,QACvC,MAAM;AAAA,QACP;AAAA;AAAA,MAKD,IACC,CAAC,0BAA0B,IAAI,KAC/B,4BAA4B,OAAO,GAClC;AAAA,QACD,aAAa,IAAI,IAAI;AAAA,MACtB;AAAA,MACA,IAAI;AAAA,MACJ,IAAI;AAAA,QACH,UAAU,YAAW,YAAY,OAAO;AAAA,QACvC,MAAM;AAAA,QACP;AAAA;AAAA,MAED,WAAW,OAAO,SAAS;AAAA,QAC1B,MAAM,QAAQ,IAAI;AAAA,QAClB,IAAI,CAAC,gBAAgB,KAAK;AAAA,UAAG;AAAA,QAC7B,IAAI,QAAQ,IAAI,KAAK;AAAA,UAAG;AAAA,QACxB,IAAI,0BAA0B,KAAK,GAAG;AAAA,UACrC,aAAa,IAAI,KAAK;AAAA,QACvB;AAAA,QACA,KAAK,KAAK,KAAK;AAAA,MAChB;AAAA,IACD;AAAA,IACA,IAAI,KAAK,WAAW;AAAA,MAAG;AAAA,IACvB,SAAS,SAAS;AAAA,IAClB,WAAW,MAAK;AAAA,MAAM,SAAS,KAAK,EAAC;AAAA,EACtC;AAAA,GAKK,kBAAiB,CAAC,cACvB,UAAU,QAAQ,MAAM,EAAE,EAAE,QAAQ,OAAO,GAAG,GAEzC,2BAA2B,OAChC,aACA,kBACI;AAAA,EACJ,QAAQ,SAAS,oBAAoB,MAAM,kBAAkB,WAAW;AAAA,EACxE,WAAW,QAAQ,0BAA0B,aAAa,GAAG;AAAA,IAC5D,QAAQ,IAAI,IAAI;AAAA,EACjB;AAAA,EACA,MAAM,8BACL,CAAC,GAAG,SAAS,GAAG,eAAe,GAC/B,OACD;AAAA,EAEA,OAAO,MAAM,KAAK,OAAO,EAAE,OAAO,aAAY;AAAA,GAiBlC,qBAAqB,OACjC,UACA,cAAwB,CAAC,GACzB,gBAAgB,OAChB,sBAAgC,CAAC,MAC7B;AAAA,EACJ,MAAM,YAAY,OAAK,UAAU,WAAW,QAAQ;AAAA,EACpD,WAAU,WAAW,EAAE,WAAW,KAAK,CAAC;AAAA,EAExC,MAAM,SAAS,OAAK,UAAU,qBAAqB;AAAA,EACnD,WAAU,QAAQ,EAAE,WAAW,KAAK,CAAC;AAAA,EAErC,MAAM,aAAa,MAAM,yBACxB,aACA,aACD;AAAA,EAKA,MAAM,cAAc,MAAM,QAAQ,IACjC,WAAW,IAAI,OAAO,cAAc;AAAA,IACnC,MAAM,WAAW,gBAAe,SAAS;AAAA,IACzC,MAAM,YAAY,OAAK,QAAQ,GAAG,aAAa;AAAA,IAC/C,MAAM,IAAI,MAAM,WAAW,0BAA0B,SAAS,CAAC;AAAA,IAE/D,OAAO;AAAA,GACP,CACF;AAAA,EAEA,MAAM,SAAS,MAAM,UAAS;AAAA,IAC7B;AAAA,IACA,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,SAAS,CAAC,0BAA0B,aAAa,CAAC;AAAA,IAClD,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,OAAO;AAAA,EACR,CAAC;AAAA,EAED,MAAM,IAAG,QAAQ,EAAE,OAAO,MAAM,WAAW,KAAK,CAAC;AAAA,EAEjD,IAAI,CAAC,OAAO,SAAS;AAAA,IACpB,QAAQ,KAAK,iDAAsC,OAAO,IAAI;AAAA,EAC/D;AAAA,EAEA,OAAO;AAAA,GAEK,4BAA4B,CACxC,aAAuB,0BAA0B,IAAI,MACjD;AAAA,EACJ,MAAM,QAAgC,CAAC;AAAA,EACvC,WAAW,aAAa,YAAY;AAAA,IACnC,MAAM,aAAa,mBAAmB,gBAAe,SAAS;AAAA,EAC/D;AAAA,EAEA,OAAO;AAAA,GAOK,iCAAiC,OAC7C,cAAwB,CAAC,GACzB,gBAAgB,SACZ;AAAA,EACJ,MAAM,aAAa,MAAM,yBACxB,aACA,aACD;AAAA,EAEA,OAAO,0BAA0B,UAAU;AAAA,GAa/B,2BAA2B,OACvC,UACA,cAAwB,CAAC,GACzB,gBAAgB,UACZ;AAAA,EACJ,MAAM,YAAY,OAAK,UAAU,WAAW,UAAU,QAAQ;AAAA,EAC9D,WAAU,WAAW,EAAE,WAAW,KAAK,CAAC;AAAA,EAExC,MAAM,SAAS,OAAK,UAAU,4BAA4B;AAAA,EAC1D,WAAU,QAAQ,EAAE,WAAW,KAAK,CAAC;AAAA,EAErC,MAAM,eAAe,MAAM,yBAC1B,aACA,aACD;AAAA,EACA,MAAM,WAAW,IAAI,IAAI,YAAY;AAAA,EACrC,WAAW,QAAQ,gCAAgC;AAAA,IAClD,IAAI,cAAa,IAAI;AAAA,MAAG,SAAS,IAAI,IAAI;AAAA,EAC1C;AAAA,EACA,MAAM,aAAa,MAAM,KAAK,QAAQ;AAAA,EAEtC,MAAM,cAAc,MAAM,QAAQ,IACjC,WAAW,IAAI,OAAO,cAAc;AAAA,IACnC,MAAM,WAAW,gBAAe,SAAS;AAAA,IACzC,MAAM,YAAY,OAAK,QAAQ,GAAG,aAAa;AAAA,IAC/C,MAAM,IAAI,MAAM,WAAW,0BAA0B,SAAS,CAAC;AAAA,IAE/D,OAAO;AAAA,GACP,CACF;AAAA,EAEA,MAAM,SAAS,MAAM,UAAS;AAAA,IAC7B;AAAA,IACA,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,SAAS,CAAC,0BAA0B,aAAa,CAAC;AAAA,IAClD,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,OAAO;AAAA,EACR,CAAC;AAAA,EAED,MAAM,IAAG,QAAQ,EAAE,OAAO,MAAM,WAAW,KAAK,CAAC;AAAA,EAEjD,IAAI,CAAC,OAAO,SAAS;AAAA,IACpB,QAAQ,KACP,wDACA,OAAO,IACR;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,GAKK,kCAAkC,CAC9C,UACA,eACI;AAAA,EACJ,MAAM,QAAgC,CAAC;AAAA,EACvC,MAAM,YAAY,OAAK,UAAU,WAAW,UAAU,QAAQ;AAAA,EAC9D,WAAW,aAAa,YAAY;AAAA,IACnC,MAAM,aAAa,OAAK,WAAW,GAAG,gBAAe,SAAS,MAAM;AAAA,EACrE;AAAA,EAEA,OAAO;AAAA,GAOK,uCAAuC,OACnD,UACA,cAAwB,CAAC,GACzB,gBAAgB,SACZ;AAAA,EACJ,MAAM,eAAe,MAAM,yBAC1B,aACA,aACD;AAAA,EACA,MAAM,WAAW,IAAI,IAAI,YAAY;AAAA,EACrC,WAAW,QAAQ,gCAAgC;AAAA,IAClD,IAAI,cAAa,IAAI;AAAA,MAAG,SAAS,IAAI,IAAI;AAAA,EAC1C;AAAA,EAEA,OAAO,gCAAgC,UAAU,MAAM,KAAK,QAAQ,CAAC;AAAA;AAAA;AAAA,EA1YtE;AAAA,EAYM,mCAAmC;AAAA,IACxC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAKA;AAAA,EACD;AAAA,EAUM,iCAAiC,IAAI,IAAI;AAAA,IAC9C;AAAA,IACA;AAAA,EACD,CAAC;AAAA,EAEK,iBAAiB,IAAI,IAAI;AAAA,IAC9B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAC;AAAA,EA8DK,uBAAuB;AAAA,IAC5B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA;;;;;;;;ACtHA,sBAAS;AACT,iBAAS;AACT,eAAS;AACT;AAAA,IAIM,eAGA,kBAAiB,CAAC,cACvB,UAAU,QAAQ,OAAO,GAAG,GAIhB,iBAAiB,OAAO,aAAqB;AAAA,EACzD,MAAM,YAAY,OAAK,UAAU,OAAO,QAAQ;AAAA,EAChD,WAAU,WAAW,EAAE,WAAW,KAAK,CAAC;AAAA,EAExC,MAAM,SAAS,OAAK,UAAU,iBAAiB;AAAA,EAC/C,WAAU,QAAQ,EAAE,WAAW,KAAK,CAAC;AAAA,EAGrC,MAAM,cAAc,MAAM,QAAQ,IACjC,cAAc,IAAI,OAAO,cAAc;AAAA,IACtC,MAAM,WAAW,gBAAe,SAAS;AAAA,IACzC,MAAM,YAAY,OAAK,QAAQ,GAAG,aAAa;AAAA,IAC/C,MAAM,IAAI,MAAM,WAAW,kBAAkB;AAAA,CAAe;AAAA,IAE5D,OAAO;AAAA,GACP,CACF;AAAA,EAGA,MAAM,SAAS,MAAM,UAAS;AAAA,IAC7B,QAAQ;AAAA,MACP,qBAAqB;AAAA,MACrB,uBAAuB;AAAA,MACvB,yCAAyC;AAAA,IAC1C;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,OAAO;AAAA,EACR,CAAC;AAAA,EAED,MAAM,IAAG,QAAQ,EAAE,OAAO,MAAM,WAAW,KAAK,CAAC;AAAA,EAEjD,IAAI,CAAC,OAAO,SAAS;AAAA,IACpB,QAAQ,KAAK,6CAAkC,OAAO,IAAI;AAAA,IAE1D;AAAA,EACD;AAAA,EAMA,QAAQ,8BAAc,+BAAe,gBAAgB,MACpD;AAAA,EAED,MAAM,QAAQ,YAAY,SAAS,EAAE,OAAO,CAAC,OAAM,GAAE,SAAS,KAAK,CAAC;AAAA,EACpE,WAAW,SAAQ,OAAO;AAAA,IACzB,MAAM,WAAW,OAAK,WAAW,KAAI;AAAA,IACrC,MAAM,UAAU,eAAa,UAAU,OAAO;AAAA,IAC9C,IAAI,CAAC,QAAQ,SAAS,qBAAqB;AAAA,MAAG;AAAA,IAE9C,MAAM,UAAU,QAAQ,QACvB,mDACA,gFACD;AAAA,IACA,IAAI,YAAY;AAAA,MAAS;AAAA,IAEzB,eAAc,UAAU,OAAO;AAAA,EAChC;AAAA,GAKY,wBAAwB,MAAM;AAAA,EAC1C,MAAM,QAAgC,CAAC;AAAA,EACvC,WAAW,aAAa,eAAe;AAAA,IACtC,MAAM,aAAa,eAAe,gBAAe,SAAS;AAAA,EAC3D;AAAA,EAEA,OAAO;AAAA;AAAA;AAAA,EAlFF,gBAAgB,CAAC,KAAK;AAAA;;;;;;;;ACP5B,sBAAS;AACT,iBAAS;AACT,eAAS;AACT;AAAA,IAKM,kBAUA,gBAAe,CAAC,cAAsB;AAAA,EAC3C,IAAI;AAAA,IACH,kBAAgB,SAAS;AAAA,IAEzB,OAAO;AAAA,IACN,MAAM;AAAA,IACP,OAAO;AAAA;AAAA,GAKH,2BAA0B,MAC/B,iBAAiB,OAAO,aAAY,GAG/B,kBAAiB,CAAC,cACvB,UAAU,QAAQ,OAAO,GAAG,GAIhB,oBAAoB,OAAO,aAAqB;AAAA,EAC5D,MAAM,aAAa,yBAAwB;AAAA,EAC3C,IAAI,WAAW,WAAW;AAAA,IAAG;AAAA,EAE7B,MAAM,YAAY,OAAK,UAAU,UAAU,QAAQ;AAAA,EACnD,WAAU,WAAW,EAAE,WAAW,KAAK,CAAC;AAAA,EAExC,MAAM,SAAS,OAAK,UAAU,oBAAoB;AAAA,EAClD,WAAU,QAAQ,EAAE,WAAW,KAAK,CAAC;AAAA,EAErC,MAAM,cAAc,MAAM,QAAQ,IACjC,WAAW,IAAI,OAAO,cAAc;AAAA,IACnC,MAAM,WAAW,gBAAe,SAAS;AAAA,IACzC,MAAM,YAAY,OAAK,QAAQ,GAAG,aAAa;AAAA,IAC/C,MAAM,IAAI,MAAM,WAAW,kBAAkB;AAAA,CAAe;AAAA,IAE5D,OAAO;AAAA,GACP,CACF;AAAA,EAEA,MAAM,SAAS,MAAM,UAAS;AAAA,IAC7B;AAAA,IACA,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,OAAO;AAAA,EACR,CAAC;AAAA,EAED,MAAM,IAAG,QAAQ,EAAE,OAAO,MAAM,WAAW,KAAK,CAAC;AAAA,EAEjD,IAAI,CAAC,OAAO,SAAS;AAAA,IACpB,QAAQ,KAAK,gDAAqC,OAAO,IAAI;AAAA,EAC9D;AAAA,GAKY,2BAA2B,MAAM;AAAA,EAC7C,MAAM,QAAgC,CAAC;AAAA,EACvC,WAAW,aAAa,yBAAwB,GAAG;AAAA,IAClD,MAAM,aAAa,kBAAkB,gBAAe,SAAS;AAAA,EAC9D;AAAA,EAEA,OAAO;AAAA;AAAA;AAAA,EA5EF,mBAAmB;AAAA,IACxB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA;;;;;;;;ICPM,eAAc,CAAC,QACpB,IAAI,QAAQ,uBAAuB,MAAM,GAGpC,mBAAmB,CACxB,SACA,iBACI;AAAA,EACJ,IAAI,SAAS;AAAA,EAEb,YAAY,WAAW,YAAY,cAAc;AAAA,IAChD,MAAM,UAAU,aAAY,SAAS;AAAA,IACrC,MAAM,YAAY,IAAI,OACrB,iBAAiB,iBACjB,GACD;AAAA,IACA,MAAM,kBAAkB,IAAI,OAC3B,mBAAmB,iBACnB,GACD;AAAA,IACA,MAAM,eAAe,IAAI,OACxB,0BAA0B,wBAC1B,GACD;AAAA,IACA,SAAS,OAAO,QAAQ,WAAW,KAAK,WAAW;AAAA,IACnD,SAAS,OAAO,QAAQ,iBAAiB,KAAK,WAAW;AAAA,IACzD,SAAS,OAAO,QAAQ,cAAc,KAAK,WAAW;AAAA,EACvD;AAAA,EAEA,OAAO;AAAA,GAGK,iBAAiB,OAC7B,aACA,gBACI;AAAA,EACJ,MAAM,UAAU,YAAY,OAAO,CAAC,SAAS,KAAK,SAAS,KAAK,CAAC;AAAA,EACjE,IAAI,QAAQ,WAAW;AAAA,IAAG;AAAA,EAG1B,MAAM,eAAe,OAAO,QAAQ,WAAW,EAAE,KAChD,EAAE,QAAQ,UAAU,KAAK,SAAS,KAAK,MACxC;AAAA,EAEA,MAAM,QAAQ,IACb,QAAQ,IAAI,OAAO,aAAa;AAAA,IAC/B,MAAM,WAAW,MAAM,IAAI,KAAK,QAAQ,EAAE,KAAK;AAAA,IAG/C,MAAM,SAAS,qBAAqB,UAAU,YAAY;AAAA,IAC1D,MAAM,UAAU,UAAU,iBAAiB,UAAU,YAAY;AAAA,IAEjE,IAAI,YAAY,UAAU;AAAA,MACzB,MAAM,IAAI,MAAM,UAAU,OAAO;AAAA,IAClC;AAAA,GACA,CACF;AAAA,GAWY,2BAA2B,OACvC,YACA,gBACI;AAAA,EACJ,IAAI,OAAO,KAAK,WAAW,EAAE,WAAW;AAAA,IAAG;AAAA,EAC3C,QAAQ,gBAAgB,MAAa;AAAA,EACrC,QAAQ,iBAAS,MAAa;AAAA,EAE9B,MAAM,WAAqB,CAAC;AAAA,EAC5B,WAAW,OAAO,YAAY;AAAA,IAC7B,IAAI;AAAA,MACH,MAAM,QAAQ,YAAY,GAAG,EAC3B,OAAO,CAAC,OAAM,GAAE,SAAS,KAAK,CAAC,EAC/B,IAAI,CAAC,OAAM,OAAK,KAAK,EAAC,CAAC;AAAA,MACzB,SAAS,KAAK,GAAG,KAAK;AAAA,MACrB,MAAM;AAAA,EAGT;AAAA,EAEA,MAAM,eAAe,UAAU,WAAW;AAAA,EAC1C,MAAM,6BAA6B,QAAQ;AAAA,GAYtC,+BAA+B,OAAO,UAAoB;AAAA,EAC/D,MAAM,mBAAmB;AAAA,EAEzB,MAAM,QAAQ,IACb,MAAM,IAAI,OAAO,aAAa;AAAA,IAC7B,MAAM,UAAU,MAAM,IAAI,KAAK,QAAQ,EAAE,KAAK;AAAA,IAC9C,iBAAiB,YAAY;AAAA,IAC7B,MAAM,UAA6C,CAAC;AAAA,IACpD,IAAI;AAAA,IACJ,QAAQ,QAAQ,iBAAiB,KAAK,OAAO,OAAO,MAAM;AAAA,MACzD,MAAM,QAAQ,MAAM;AAAA,MACpB,IAAI,CAAC;AAAA,QAAO;AAAA,MAEZ,MAAM,aAAa,IAAI,OACtB,6BAA6B,kBAC9B;AAAA,MACA,IAAI,WAAW,KAAK,OAAO;AAAA,QAAG;AAAA,MAE9B,MAAM,SAAS,IAAI,OAClB,0CAA0C,UAC3C;AAAA,MACA,IAAI,OAAO,KAAK,OAAO;AAAA,QAAG;AAAA,MAE1B,MAAM,gBAAgB,IAAI,OACzB,2BAA2B,6BAC5B;AAAA,MACA,IAAI,cAAc,KAAK,OAAO;AAAA,QAAG;AAAA,MAMjC,MAAM,eAAe;AAAA,MACrB,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,QAAQ,YAAY,aAAa,KAAK,OAAO,OAAO,MAAM;AAAA,QACzD,MAAM,KAAI,UAAU;AAAA,QACpB,IAAI,CAAC;AAAA,UAAG;AAAA,QACR,MAAM,OAAO,GAAE,MAAM,GAAG,EAAE,IAAI,GAAG,QAAQ,cAAc,EAAE;AAAA,QACzD,IAAI,CAAC;AAAA,UAAM;AAAA,QACX,IAAI,SAAS,SAAS,KAAK,SAAS,IAAI,OAAO,GAAG;AAAA,UACjD,aAAa;AAAA,UACb;AAAA,QACD;AAAA,MACD;AAAA,MACA,IAAI,YAAY;AAAA,QACf,QAAQ,KAAK,EAAE,OAAO,MAAM,WAAW,CAAC;AAAA,MACzC;AAAA,IACD;AAAA,IAEA,IAAI,QAAQ,WAAW;AAAA,MAAG;AAAA,IAG1B,MAAM,OAAO,IAAI;AAAA,IACjB,MAAM,SAAS,QAAQ,OAAO,CAAC,UAAU;AAAA,MACxC,IAAI,KAAK,IAAI,MAAM,KAAK;AAAA,QAAG,OAAO;AAAA,MAClC,KAAK,IAAI,MAAM,KAAK;AAAA,MAEpB,OAAO;AAAA,KACP;AAAA,IAED,MAAM,UAAU,OACd,IAAI,CAAC,UAAU,eAAe,MAAM,eAAe,MAAM,QAAQ,EACjE,KAAK;AAAA,CAAI;AAAA,IAGX,MAAM,UAAU,GAAG;AAAA,EAAY;AAAA,IAC/B,MAAM,IAAI,MAAM,UAAU,OAAO;AAAA,GACjC,CACF;AAAA;AAAA;AAAA,EA3KD;AAAA;;;ACNA;AAAA;AAAA;AAAA,gBAGC;AAAA,eACA;AAAA,kBACA;AAAA,YACA;AAAA;AAAA,mBAEA;AAAA;AAED,qBAAS,sBAAU,sBAAS,kBAAS,oBAAM,uBAAU;AACrD,qBAAc;AACd;AAAA,IA+DM,OAgBA,sBAAsB,MAAM;AAAA,EACjC,MAAM,QAAQ,KAAI,sBAAsB,YAAY;AAAA,EAEpD,OAAO,UAAU,OAAO,UAAU,UAAU,UAAU;AAAA,GAGjD,+BAA+B,CACpC,UACI;AAAA,EACJ,IAAI,CAAC;AAAA,IAAO,OAAO,CAAC;AAAA,EACpB,MAAM,QAAkB,CAAC;AAAA,EACzB,IAAI,MAAM,UAAU;AAAA,IAAO,MAAM,KAAK,MAAM,SAAS,KAAK;AAAA,EAC1D,IAAI,MAAM,UAAU;AAAA,IAAS,MAAM,KAAK,MAAM,SAAS,OAAO;AAAA,EAC9D,IAAI,MAAM,UAAU;AAAA,IAAU,MAAM,KAAK,MAAM,SAAS,QAAQ;AAAA,EAChE,IAAI,CAAC,MAAM;AAAA,IAAO,OAAO;AAAA,EACzB,WAAW,QAAQ,OAAO,OAAO,MAAM,KAAK,GAAG;AAAA,IAC9C,IAAI,KAAK;AAAA,MAAO,MAAM,KAAK,KAAK,KAAK;AAAA,IACrC,IAAI,KAAK;AAAA,MAAS,MAAM,KAAK,KAAK,OAAO;AAAA,EAC1C;AAAA,EAEA,OAAO;AAAA,GAGF,gCAAgC,CACrC,OACA,aACA,kBACI;AAAA,EACJ,IAAI,CAAC,SAAS,YAAY,WAAW,cAAc;AAAA,IAAQ;AAAA,EAC3D,MAAM,UAAU,IAAI;AAAA,EACpB,SAAS,MAAM,EAAG,MAAM,YAAY,QAAQ,OAAO;AAAA,IAClD,MAAM,MAAM,YAAY;AAAA,IACxB,MAAM,WAAW,cAAc;AAAA,IAC/B,IAAI,OAAO;AAAA,MAAU,QAAQ,IAAI,KAAK,QAAQ;AAAA,EAC/C;AAAA,EAEA,IAAI,MAAM,UAAU;AAAA,IACnB,MAAM,YAAY,MAAM,SAAS,QAC9B,QAAQ,IAAI,MAAM,SAAS,KAAK,IAChC;AAAA,IACH,IAAI;AAAA,MAAW,MAAM,SAAS,QAAQ;AAAA,IAEtC,MAAM,cAAc,MAAM,SAAS,UAChC,QAAQ,IAAI,MAAM,SAAS,OAAO,IAClC;AAAA,IACH,IAAI;AAAA,MAAa,MAAM,SAAS,UAAU;AAAA,IAE1C,MAAM,eAAe,MAAM,SAAS,WACjC,QAAQ,IAAI,MAAM,SAAS,QAAQ,IACnC;AAAA,IACH,IAAI;AAAA,MAAc,MAAM,SAAS,WAAW;AAAA,EAC7C;AAAA,EACA,IAAI,CAAC,MAAM;AAAA,IAAO;AAAA,EAClB,WAAW,QAAQ,OAAO,OAAO,MAAM,KAAK,GAAG;AAAA,IAC9C,MAAM,YAAY,KAAK,QAAQ,QAAQ,IAAI,KAAK,KAAK,IAAI;AAAA,IACzD,IAAI;AAAA,MAAW,KAAK,QAAQ;AAAA,IAE5B,MAAM,cAAc,KAAK,UACtB,QAAQ,IAAI,KAAK,OAAO,IACxB;AAAA,IACH,IAAI;AAAA,MAAa,KAAK,UAAU;AAAA,EACjC;AAAA,GAGK,oBAAoB,CACzB,MACA,MACA,OACA,gBACA,eACA,iBACI;AAAA,EACJ,MAAM,SAAS,KAAK,KAAK,CAAC,SAAQ,KAAI,UAAU,OAAO,KAAK,KAAK;AAAA,EACjE,IAAI,CAAC,QAAQ;AAAA,IACZ,KAAK,CAAC;AAAA,IAEN;AAAA,EACD;AAAA,EACA,MAAM,MAAM,IAAI,MACf,OAAO,OAAO,YAAY,WACvB,OAAO,UACP,OAAO,OAAO,OAAO,CACzB;AAAA,EACA,OAAO,OAAO,KAAK,EAAE,KAAK,CAAC;AAAA,EAC3B,mBAAmB,eAAe;AAAA,IACjC,YAAY;AAAA,IACZ,aAAa,QAAQ,aAAa;AAAA,IAClC,SAAS,IAAI;AAAA,IACb;AAAA,EACD,CAAC;AAAA,EACD,SAAS,GAAG,sBAAsB,GAAG;AAAA,EACrC,IAAI;AAAA,IAAc,MAAM;AAAA,EACxB,KAAK,CAAC;AAAA,GAGD,iBAAiB,CAAC,SAAiB,gBAAwB;AAAA,EAChE,YAAU,aAAa,EAAE,WAAW,KAAK,CAAC;AAAA,EAC1C,MAAM,OAAO,IAAI,MAAK,cAAc;AAAA,EACpC,WAAW,WAAW,KAAK,SAAS,EAAE,KAAK,QAAQ,CAAC,GAAG;AAAA,IACtD,MAAM,MAAM,OAAK,SAAS,OAAO;AAAA,IACjC,MAAM,OAAO,OAAK,aAAa,aAAa;AAAA,IAC5C,aAAa,KAAK,IAAI;AAAA,IAEtB;AAAA,EACD;AAAA,GAGK,qBAAqB,OAAO,SAAiB;AAAA,EAClD,IAAI;AAAA,IACH,OAAO,MAAM,IAAI,KAAK,IAAI,EAAE,KAAK;AAAA,IAChC,MAAM;AAAA,IACP,OAAO;AAAA;AAAA,GAIH,yBAAyB,YAAY;AAAA,EAC1C,MAAM,aAAa;AAAA,IAClB,UAAQ,YAAY,KAAK,MAAM,MAAM,cAAc;AAAA,IACnD,UAAQ,YAAY,KAAK,MAAM,cAAc;AAAA,EAC9C;AAAA,EACA,MAAM,mBAAmB,OAAO,cAAwB;AAAA,IACvD,OAAO,cAAc,QAAQ;AAAA,IAC7B,IAAI,CAAC,WAAW;AAAA,MACf;AAAA,IACD;AAAA,IAEA,MAAM,MAAM,MAAM,mBAAmB,SAAS;AAAA,IAC9C,IAAI,CAAC,OAAO,IAAI,SAAS,wBAAwB;AAAA,MAChD,MAAM,iBAAiB,IAAI;AAAA,MAE3B;AAAA,IACD;AAAA,IAEA,WAAW,oBAAoB,IAAI;AAAA;AAAA,EAGpC,MAAM,iBAAiB,UAAU;AAAA,GAI5B,WAMA,wBAAwB,CAC7B,OACA,SACA,gBACI;AAAA,EACJ,MAAM,UAAU,UAAQ,OAAM,MAAM,OAAO;AAAA,EAC3C,IAAI;AAAA,IACH,SAAS,OAAO;AAAA,IAChB,YAAY,IAAI,OAAO;AAAA,IACtB,MAAM;AAAA,GAKH,gCAAgC,CACrC,SACA,SACA,OACA,gBACI;AAAA,EACJ,QAAQ,YAAY;AAAA,EACpB,IAAI;AAAA,EACJ,QAAQ,QAAQ,QAAQ,KAAK,OAAO,OAAO,MAAM;AAAA,IAChD,SAAS,WAAW;AAAA,IACpB,IAAI,CAAC;AAAA,MAAS;AAAA,IACd,sBAAsB,OAAM,SAAS,WAAW;AAAA,EACjD;AAAA,GAGK,6BAA6B,CAClC,OACA,UACA,gBACI;AAAA,EACJ,MAAM,UAAU,eAAa,OAAM,OAAO;AAAA,EAC1C,WAAW,WAAW,UAAU;AAAA,IAC/B,8BAA8B,SAAS,SAAS,OAAM,WAAW;AAAA,EAClE;AAAA,GAGK,4BAA4B,OACjC,KACA,UACA,gBACI;AAAA,EACJ,MAAM,OAAO,IAAI,MAAK,iCAAiC;AAAA,EACvD,iBAAiB,SAAQ,KAAK,KAAK,EAAE,UAAU,MAAM,KAAK,IAAI,CAAC,GAAG;AAAA,IAEjE,MAAM,WAAW,MAAK,MAAM,IAAI,SAAS,CAAC;AAAA,IAC1C,OAAO,gBAAgB,SAAS,MAAM,GAAG;AAAA,IACzC,IAAI,gBAAgB,UAAU,IAAI,YAAY;AAAA,MAAG;AAAA,IAEjD,2BAA2B,OAAM,UAAU,WAAW;AAAA,EACvD;AAAA,GAGK,uBAAuB,OAAO,SAAmB;AAAA,EACtD,MAAM,aACL;AAAA,EACD,MAAM,iBACL;AAAA,EACD,MAAM,cAAc,IAAI;AAAA,EAExB,MAAM,QAAQ,IACb,KAAK,IAAI,CAAC,QACT,0BACC,KACA,CAAC,YAAY,cAAc,GAC3B,WACD,CACD,CACD;AAAA,EAEA,OAAO,CAAC,GAAG,WAAW;AAAA,GAGjB,iBAAiB;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,MAWK;AAAA,EACL,QAAQ,aAAa,YAAY,MAAa;AAAA,EAC9C,MAAM,cAAc,OAAK,WAAW,cAAc;AAAA,EAClD,YAAU,aAAa,EAAE,WAAW,KAAK,CAAC;AAAA,EAE1C,IAAI,oBAAoB,gBAAgB;AAAA,IACvC,oBACC,kBACA,gBACA,aACA,OACD;AAAA,EACD;AAAA,EAEA,IAAI,aAAa,iBAAiB;AAAA,IACjC,qBACC,WACA,iBACA,eACA,WACD;AAAA,EACD;AAAA,EAEA,IAAI,UAAU,cAAc;AAAA,IAC3B,kBAAkB,QAAQ,cAAc,YAAY,WAAW;AAAA,EAChE;AAAA,GAGK,sBAAsB,CAC3B,kBACA,gBACA,aACA,YACI;AAAA,EACJ,IAAI,CAAC,aAAW,gBAAgB,GAAG;AAAA,IAClC;AAAA,EACD;AAAA,EAEA,MAAM,aAAa,QAAQ,gBAAgB,EAAE,OAAO,CAAC,UACpD,MAAK,SAAS,MAAM,CACrB;AAAA,EACA,MAAM,WAAW,WAAS,QAAQ,IAAI,GAAG,UAAQ,cAAc,CAAC,EAAE,QACjE,OACA,GACD;AAAA,EAEA,WAAW,SAAQ,YAAY;AAAA,IAC9B,IAAI,UAAU,eAAa,OAAK,kBAAkB,KAAI,GAAG,OAAO;AAAA,IAChE,UAAU,QAAQ,QACjB,6CACA,CAAC,QAAQ,WAAW,kBACnB,eAAe,YAAY,gBAC7B;AAAA,IACA,eAAc,OAAK,aAAa,KAAI,GAAG,OAAO;AAAA,EAC/C;AAAA,GAGK,uBAAuB,CAC5B,WACA,iBACA,eACA,gBACI;AAAA,EACJ,MAAM,iBAAiB,OAAK,WAAW,aAAa,SAAS;AAAA,EAC7D,MAAM,oBAAoB,cAAc,OAAO,CAAC,UAC/C,UAAQ,KAAI,EAAE,WAAW,UAAQ,eAAe,CAAC,CAClD;AAAA,EACA,WAAW,SAAS,mBAAmB;AAAA,IACtC,MAAM,OAAO,UAAS,KAAK,EAAE,QAAQ,yBAAyB,EAAE;AAAA,IAChE,MAAM,YAAY,OAAK,gBAAgB,SAAS,GAAG,SAAS;AAAA,IAC5D,IAAI,CAAC,aAAW,SAAS;AAAA,MAAG;AAAA,IAC5B,IAAI,UAAU,eAAa,WAAW,OAAO;AAAA,IAC7C,MAAM,SAAS,WAAS,QAAQ,IAAI,GAAG,UAAQ,KAAK,CAAC,EAAE,QACtD,OACA,GACD;AAAA,IACA,UAAU,QAAQ,QACjB,gDACA,gCAAgC,SACjC;AAAA,IACA,eAAc,OAAK,aAAa,GAAG,gBAAgB,GAAG,OAAO;AAAA,EAC9D;AAAA,GAGK,oBAAoB,CACzB,QACA,cACA,YACA,gBACI;AAAA,EACJ,MAAM,cAAc,OAAK,QAAQ,aAAa,SAAS;AAAA,EACvD,MAAM,iBAAiB,WAAW,OAAO,CAAC,UACzC,UAAQ,KAAI,EAAE,WAAW,UAAQ,YAAY,CAAC,CAC/C;AAAA,EACA,WAAW,SAAS,gBAAgB;AAAA,IACnC,MAAM,OAAO,UAAS,OAAO,MAAM;AAAA,IACnC,MAAM,YAAY,OAAK,aAAa,GAAG,SAAS;AAAA,IAChD,IAAI,CAAC,aAAW,SAAS;AAAA,MAAG;AAAA,IAC5B,IAAI,UAAU,eAAa,WAAW,OAAO;AAAA,IAC7C,MAAM,SAAS,WAAS,QAAQ,IAAI,GAAG,UAAQ,KAAK,CAAC,EAAE,QACtD,OACA,GACD;AAAA,IACA,UAAU,QAAQ,QACjB,2CACA,2BAA2B,SAC5B;AAAA,IACA,eAAc,OAAK,aAAa,GAAG,aAAa,GAAG,OAAO;AAAA,EAC3D;AAAA,GAGK,sBAAsB,CAC3B,SACA,cACA,YACA,gBACI;AAAA,EACJ,MAAM,SAAS,QAAQ,QAAQ,OAAO,gBAAgB;AAAA,EACtD,IAAI,UAAU;AAAA,IAAG,OAAO,KAAK,UAAU,UAAU;AAAA,EAEjD,MAAM,SAAS,QAAQ,MAAM,GAAG,MAAM;AAAA,EACtC,MAAM,cAAc,CAAC,GAAG,OAAO,SAAS,gCAAgC,CAAC;AAAA,EAEzE,MAAM,OAAO,YAAY,YAAY,SAAS;AAAA,EAC9C,IAAI,CAAC,OAAO;AAAA,IAAI,OAAO,KAAK,UAAU,UAAU;AAAA,EAChD,MAAM,UAAU,UACf,aACA,KAAK,GAAG,QAAQ,YAAY,GAAG,EAAE,QAAQ,SAAS,KAAK,CACxD;AAAA,EAEA,OAAO,KAAK,UAAU,OAAO;AAAA,GAGxB,aACA,aACA,cAEA,4BAA4B,CAAC,SAAiB,aAAqB;AAAA,EACxE,IAAI,QAAQ;AAAA,EACZ,IAAI,QAAwB;AAAA,EAC5B,SAAS,IAAI,SAAU,IAAI,QAAQ,QAAQ,KAAK;AAAA,IAC/C,MAAM,OAAO,QAAQ,MAAM;AAAA,IAC3B,IAAI,SAAS,SAAS,SAAS,QAAQ,IAAI,OAAO;AAAA,MAAM,QAAQ;AAAA,IAChE,IAAI;AAAA,MAAO;AAAA,IACX,IAAI,YAAY,IAAI,IAAI;AAAA,MAAG,QAAQ;AAAA,IACnC,IAAI,YAAY,IAAI,IAAI;AAAA,MAAG;AAAA,IAC3B,IAAI,YAAY,IAAI,IAAI;AAAA,MAAG;AAAA,IAC3B,IAAI,aAAa,IAAI,IAAI;AAAA,MAAG;AAAA,IAC5B,IAAI,UAAU,KAAK,SAAS;AAAA,MAAK,OAAO;AAAA,EACzC;AAAA,EAEA,OAAO;AAAA,GAGF,mBAAmB,CAAC,SAAiB,aAAuB;AAAA,EACjE,IAAI,SAAS;AAAA,EACb,WAAW,QAAQ,UAAU;AAAA,IAC5B,MAAM,SAAS,OAAO;AAAA,IACtB,MAAM,MAAM,OAAO,QAAQ,MAAM;AAAA,IACjC,IAAI,QAAQ;AAAA,MAAe;AAAA,IAC3B,MAAM,cAAc,MAAM,OAAO;AAAA,IACjC,MAAM,SAAS,0BAA0B,QAAQ,WAAW;AAAA,IAC5D,MAAM,WAAW,OAAO,MAAM,aAAa,MAAM;AAAA,IACjD,SAAS,GAAG,OAAO,MAAM,GAAG,WAAW,eAAe,KAAK,UAAU,IAAI,MAAM,YAAY,OAAO,MAAM,MAAM;AAAA,EAC/G;AAAA,EAEA,OAAO;AAAA,GAGF,iBAoBA,8BAA8B,CACnC,YACA,gBACI;AAAA,EACJ,IAAI,UAAU,eAAa,YAAY,OAAO;AAAA,EAE9C,MAAM,aAAa;AAAA,EACnB,MAAM,WAAqB,CAAC;AAAA,EAC5B,IAAI;AAAA,EACJ,QAAQ,QAAQ,WAAW,KAAK,OAAO,OAAO,MAAM;AAAA,IACnD,IAAI,MAAM;AAAA,MAAI,SAAS,KAAK,MAAM,EAAE;AAAA,EACrC;AAAA,EACA,IAAI,SAAS,WAAW;AAAA,IAAG;AAAA,EAE3B,OAAO,gBAAgB;AAAA,EACvB,IAAI,CAAC;AAAA,IAAc;AAAA,EAEnB,MAAM,YAAY,oBACjB,SACA,cACA,YACA,WACD;AAAA,EACA,MAAM,UAAU,gBAAgB,QAAQ,eAAe,SAAS;AAAA,EAGhE,MAAM,cAAc,QAAQ,QAAQ,OAAO,gBAAgB;AAAA,EAC3D,IAAI,gBAAgB;AAAA,IAAe;AAAA,EACnC,UAAU,GAAG,QAAQ,MAAM,GAAG,WAAW,IAAI;AAAA,EAAY,QAAQ,MAAM,WAAW;AAAA,EAElF,UAAU,iBAAiB,SAAS,QAAQ;AAAA,EAC5C,eAAc,YAAY,OAAO;AAAA,GAG5B,qBAAqB,CAC1B,oBACA,gBACI;AAAA,EACJ,MAAM,aAAa,IAAI;AAAA,EACvB,WAAW,WAAW,oBAAoB;AAAA,IACzC,MAAM,MAAM,WAAS,aAAa,OAAO,EAAE,QAAQ,OAAO,GAAG;AAAA,IAC7D,MAAM,OAAO,UAAS,OAAO;AAAA,IAC7B,MAAM,QAAQ,KAAK,MAAM,SAAS,OAAO,EAAE,OAAO;AAAA,IAClD,MAAM,MAAM,SAAS,SAAS;AAAA,IAC9B,WAAW,IAAI,MAAM,GAAG;AAAA,IAExB,WAAW,IAAI,KAAK,QAAQ,WAAW,KAAK,GAAG,GAAG;AAAA,EACnD;AAAA,EAEA,OAAO;AAAA,GAGF,sBAAsB,CAC3B,oBACA,WACA,0BACI;AAAA,EACJ,MAAM,aAAa,IAAI;AAAA,EACvB,WAAW,WAAW,oBAAoB;AAAA,IACzC,MAAM,UAAU,UAAS,OAAO,EAAE,QAAQ,YAAY,EAAE;AAAA,IACxD,MAAM,SAAS,sBAAsB,KAAK,CAAC,aAC1C,UAAS,SAAS,IAAI,EAAE,WAAW,GAAG,UAAU,CACjD;AAAA,IACA,IAAI,CAAC;AAAA,MAAQ;AAAA,IACb,WAAW,IACV,UAAS,OAAO,GAChB,IAAI,WAAS,WAAW,OAAO,IAAI,EAAE,QAAQ,OAAO,GAAG,GACxD;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,GAGF,kBAAkB,CACvB,oBACA,KACA,aACA,WACA,0BACI;AAAA,EACJ,IAAI;AAAA,IAAK,OAAO,mBAAmB,oBAAoB,WAAW;AAAA,EAElE,OAAO,oBACN,oBACA,WACA,qBACD;AAAA,GAGK,uBAAuB,CAC5B,aACA,eACI;AAAA,EACJ,MAAM,aACL;AAAA,EACD,WAAW,cAAc,aAAa;AAAA,IACrC,IAAI,UAAU,eAAa,YAAY,OAAO;AAAA,IAC9C,IAAI,UAAU;AAAA,IACd,UAAU,QAAQ,QAAQ,YAAY,CAAC,QAAQ,YAAY;AAAA,MAC1D,MAAM,aAAa,UAAS,OAAO;AAAA,MACnC,MAAM,eAAe,WAAW,IAAI,UAAU;AAAA,MAC9C,IAAI,CAAC;AAAA,QAAc,OAAO;AAAA,MAC1B,UAAU;AAAA,MAEV,OAAO,YAAY;AAAA,KACnB;AAAA,IACD,IAAI;AAAA,MAAS,eAAc,YAAY,OAAO;AAAA,EAC/C;AAAA,GAGK,iBAMA,kBAQA,oBACA,4BAkBA,gBAMA,WAAW,CAAC,UACjB,OAAO,UAAU,YAAY,UAAU,MAElC,uBAAuB,CAC5B,WAEA,SAAS,MAAM,KACf,OAAO,KAAK,MAAM,EAAE,KAAK,CAAC,QAAQ,mBAAmB,IAAI,GAAG,CAAC,GAExD,2BAA2B,CAChC,UACA,oBAAiC,IAAI,QACT;AAAA,EAC5B,IAAI,CAAC;AAAA,IAAU,OAAO,CAAC;AAAA,EACvB,MAAM,YAAqC,KAAK,SAAS;AAAA,EACzD,WAAW,OAAO,4BAA4B;AAAA,IAC7C,OAAO,UAAU;AAAA,EAClB;AAAA,EACA,WAAW,OAAO,mBAAmB;AAAA,IACpC,OAAO,UAAU;AAAA,EAClB;AAAA,EAEA,OAAO;AAAA,GAGK,0BAA0B,CACtC,QACA,SAC4B;AAAA,EAC5B,MAAM,SAAS,eAAe,SAAS,IAAI;AAAA,EAC3C,IAAI,CAAC;AAAA,IAAQ,OAAO,CAAC;AAAA,EACrB,IAAI,CAAC,qBAAqB,MAAM,GAAG;AAAA,IAClC,OAAO,yBAAyB,QAAQ,MAAM;AAAA,EAC/C;AAAA,EAEA,OAAO,yBACN;AAAA,OACK,OAAO,WAAW,CAAC;AAAA,OACnB,OAAO,SAAS,CAAC;AAAA,EACtB,GACA,MACD;AAAA,GAGK,SAAS,CAAI,WAAgB,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC,GAEzC,sBAAsB,CAClC,MACA,aACqB;AAAA,EACrB,MAAM,YAAY,yBAAyB,QAAQ;AAAA,EACnD,MAAM,SAAS;AAAA,OACX;AAAA,OACA;AAAA,EACJ;AAAA,EAEA,OAAO;AAAA,OACH;AAAA,IACH,QACC,KAAK,UAAU,UAAU,SACtB;AAAA,SACI,UAAU,UAAU,CAAC;AAAA,SACrB,KAAK,UAAU,CAAC;AAAA,IACrB,IACC;AAAA,IACJ,UAAU,OAAO;AAAA,MAChB,GAAI,KAAK,YAAY,CAAC;AAAA,MACtB,GAAI,UAAU,YAAY,CAAC;AAAA,IAC5B,CAAC;AAAA,IACD,SAAS,CAAC,GAAI,KAAK,WAAW,CAAC,GAAI,GAAI,UAAU,WAAW,CAAC,CAAE;AAAA,EAChE;AAAA,GAGY,QAAQ;AAAA,EACpB,iBAAiB;AAAA,EACjB;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,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA;AAAA,MACkB;AAAA,EAClB,MAAM,aAAa,YAAY,IAAI;AAAA,EACnC,MAAM,cAAc,IAAI;AAAA,EACxB,MAAM,eAAe,oBAAoB;AAAA,EACzC,MAAM,cAAiC,CAAC;AAAA,EACxC,IAAI,sBAAgC,CAAC;AAAA,EACrC,MAAM,cAAc;AAAA,EAGpB,MAAM,qBAAqB,YAAY;AAAA,EACvC,MAAM,oBAAoB,MAAM;AAAA,IAC/B,IAAI,oBAAoB;AAAA,MACvB,YAAY,4BAA4B;AAAA,IACzC,EAAO;AAAA,MACN,OAAO,YAAY;AAAA;AAAA;AAAA,EAGrB,MAAM,aAA8B,OACnC,MACA,KACA,aACgB;AAAA,IAChB,IAAI,CAAC;AAAA,MAAc,OAAO,MAAM,IAAG;AAAA,IACnC,MAAM,aAAa,YAAY,IAAI;AAAA,IACnC,IAAI;AAAA,MACH,MAAM,SAAS,MAAM,IAAG;AAAA,MACxB,YAAY,KAAK;AAAA,QAChB,YAAY,YAAY,IAAI,IAAI;AAAA,QAChC;AAAA,QACA;AAAA,QACA,IAAI;AAAA,QACJ,SAAS,aAAa;AAAA,MACvB,CAAC;AAAA,MAED,OAAO;AAAA,MACN,OAAO,OAAO;AAAA,MACf,YAAY,KAAK;AAAA,QAChB,YAAY,YAAY,IAAI,IAAI;AAAA,QAChC,UAAU;AAAA,aACN;AAAA,UACH,OACC,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,QACvD;AAAA,QACA;AAAA,QACA,IAAI;AAAA,QACJ,SAAS,aAAa;AAAA,MACvB,CAAC;AAAA,MACD,MAAM;AAAA;AAAA;AAAA,EAGR,IAAI,cAAc;AAAA,IACjB,YAAY,4BAA4B;AAAA,EACzC;AAAA,EACA,MAAM,kBAAkB,CAAC,eAAsB;AAAA,IAC9C,IAAI,CAAC,cAAc;AAAA,MAClB,kBAAkB;AAAA,MAElB;AAAA,IACD;AAAA,IACA,MAAM,WAAW,OAAK,YAAW,iBAAiB;AAAA,IAClD,MAAM,YAAY,IAAI,KAAK,EAAE,YAAY,EAAE,QAAQ,SAAS,GAAG;AAAA,IAC/D,YAAU,UAAU,EAAE,WAAW,KAAK,CAAC;AAAA,IACvC,eACC,OAAK,UAAU,eAAe,gBAAgB,GAC9C,KAAK,UACJ;AAAA,MACC,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,aAAa,IAAI,KAAK,EAAE,YAAY;AAAA,MACpC,MAAM,SAAS,QAAQ,gBAAgB;AAAA,MACvC,iBAAiB,YAAY,IAAI,IAAI;AAAA,MACrC,SAAS;AAAA,IACV,GACA,MACA,CACD,CACD;AAAA,IACA,kBAAkB;AAAA;AAAA,EAGnB,MAAM,WAAW,oBAAoB,MAAM,uBAAuB,CAAC;AAAA,EACnE,MAAM,gBAAgB,oBAAoB,iBAAiB,SAAS;AAAA,EACpE,MAAM,uBAAuB,2BAC5B,oBACA,OACD;AAAA,EACA,MAAM,2BACL,8BAA8B,oBAAoB;AAAA,EAGnD,MAAM,6BAA6B,kBAAkB,IAAI,aAAa;AAAA,EAEtE,MAAM,eAAe,SAAS,iBAAiB;AAAA,EAC/C,MAAM,MAAM,SAAS,cAAc;AAAA,EACnC,MAAM,YAAY,iBAAiB,gBAAgB,WAAW;AAAA,EAC9D,MAAM,aACL,mBAAmB,iBAAiB,iBAAiB,WAAW;AAAA,EACjE,MAAM,WACL,kBAAkB,iBAAiB,gBAAgB,WAAW;AAAA,EAC/D,MAAM,UACL,iBAAiB,iBAAiB,eAAe,WAAW;AAAA,EAC7D,MAAM,UACL,iBAAiB,iBAAiB,eAAe,WAAW;AAAA,EAC7D,MAAM,YACL,mBAAmB,iBAAiB,iBAAiB,WAAW;AAAA,EACjE,MAAM,SAAS,gBAAgB,iBAAiB,cAAc,WAAW;AAAA,EACzE,MAAM,aACL,oBAAoB,iBAAiB,kBAAkB,WAAW;AAAA,EACnE,MAAM,sBACL,SAAS,aAAa,iBAAiB,QAAQ,WAAW,WAAW;AAAA,EACtE,MAAM,qBACL,SAAS,YAAY,iBAAiB,QAAQ,UAAU,WAAW;AAAA,EACpE,MAAM,aACL,OAAO,iBAAiB,WAAW,eAAe,cAAc;AAAA,EACjE,MAAM,eACL,OAAO,iBAAiB,WAAW,aAAa,SAAS;AAAA,EAC1D,MAAM,YAAY,cAAc,iBAAiB,YAAY,WAAW;AAAA,EAExE,MAAM,mBAAmB,YAAY,OAAK,UAAU,aAAa,SAAS;AAAA,EAC1E,MAAM,iBAAiB,YAAY,OAAK,UAAU,OAAO;AAAA,EACzD,MAAM,gBAAgB,WAAW,OAAK,SAAS,OAAO;AAAA,EACtD,MAAM,kBAAkB,WAAW,OAAK,SAAS,SAAS;AAAA,EAC1D,MAAM,kBAAkB,aAAa,OAAK,WAAW,OAAO;AAAA,EAC5D,MAAM,eAAe,UAAU,OAAK,QAAQ,OAAO;AAAA,EACnD,MAAM,gBAAgB,WAAW,OAAK,SAAS,OAAO;AAAA,EACtD,MAAM,mBAAmB,cAAc,OAAK,YAAY,OAAO;AAAA,EAE/D,MAAM,YAAY;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,EAAE,OAAO,OAAO;AAAA,EAChB,MAAM,WAAW,UAAU,WAAW;AAAA,EAEtC,MAAM,iBAAiB;AAAA,IACtB,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,WAAW;AAAA,IACX,aAAa;AAAA,IACb,UAAU;AAAA,IACV,cAAc;AAAA,EACf,EAAE,OAAO,CAAC,SAAyB,QAAQ,IAAI,CAAC;AAAA,EAChD,sBAAsB;AAAA,EACtB,mBAAmB,eAAe;AAAA,IACjC,WAAW,eAAe;AAAA,IAC1B,YAAY;AAAA,IACZ,MAAM,SAAS,QAAQ,gBAAgB;AAAA,IACvC,UAAU,QAAQ,QAAQ;AAAA,EAC3B,CAAC;AAAA,EAKD,MAAM,oBAA8B;AAAA,IACnC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,uBAAuB,UAAQ,mBAAmB;AAAA,EACnD,EAAE,OAAO,CAAC,QAAuB,QAAQ,GAAG,CAAC;AAAA,EAC7C,MAAM,aAAa,WACf,kBAAkB,MAAM,cACzB,eAAe,mBAAmB,WAAW;AAAA,EAEhD,MAAM,eAAkD,CAAC;AAAA,EACzD,IAAI;AAAA,IACH,aAAa,KAAK;AAAA,MACjB,KAAK;AAAA,MACL,QAAQ,OAAK,aAAa,QAAQ;AAAA,IACnC,CAAC;AAAA,EACF,IAAI;AAAA,IACH,aAAa,KAAK;AAAA,MACjB,KAAK;AAAA,MACL,QAAQ,OAAK,aAAa,QAAQ;AAAA,IACnC,CAAC;AAAA,EACF,IAAI;AAAA,IAAY,aAAa,KAAK,EAAE,KAAK,YAAY,QAAQ,YAAY,CAAC;AAAA,EAE1E,IAAI;AAAA,EACJ,IAAI;AAAA,EAEJ,IAAI,aAAa,WAAW,GAAG;AAAA,IAC9B,OAAO,cAAc;AAAA,IACrB,IAAI,CAAC;AAAA,MACJ,MAAM,IAAI,MAAM,8CAA8C;AAAA,IAC/D,aAAa,OAAK,WAAW,KAAK,WAAW,MAAM;AAAA,IACnD,eAAe,OAAK,WAAW,UAAS,WAAW,GAAG,CAAC;AAAA,EACxD,EAAO,SAAI,aAAa,SAAS,GAAG;AAAA,IAGnC,aAAa,eACZ,aAAa,IAAI,CAAC,UAAU,MAAM,GAAG,GACrC,WACD;AAAA,IACA,eAAe;AAAA,EAChB;AAAA,EAEA,MAAM,aACL,mBAAmB,iBAAiB,iBAAiB,WAAW;AAAA,EACjE,MAAM,WAAW,oBAAoB,MACpC,YAAU,WAAW,EAAE,WAAW,KAAK,CAAC,CACzC;AAAA,EAEA,IAAI;AAAA,IACH,MAAM,WAAW,eAAe,MAC/B,OAAO,YAAY,WAAW,EAAE,OAAO,MAAM,WAAW,KAAK,CAAC,CAC/D;AAAA,EAID,MAAM,6BAA6B,CAClC,aACA,gBACI;AAAA,IACJ,IAAI,CAAC,iBAAiB,CAAC;AAAA,MAAkB,OAAO;AAAA,IAEhD,MAAM,wBAAwB,IAAI,IACjC,iBAAiB,IAAI,CAAC,OAAM,UAAQ,EAAC,CAAC,CACvC;AAAA,IACA,MAAM,kBAA4B,CAAC;AAAA,IAEnC,WAAW,SAAS,aAAa;AAAA,MAChC,MAAM,aAAa,YAAY,KAAK;AAAA,MACpC,IAAI,CAAC;AAAA,QAAY;AAAA,MACjB,IAAI,CAAC,sBAAsB,IAAI,UAAQ,UAAU,CAAC;AAAA,QAAG;AAAA,MACrD,gBAAgB,KAAK,KAAK;AAAA,IAC3B;AAAA,IAEA,OAAO;AAAA;AAAA,EAKR,IAAI,oBAAoB,gBAAgB;AAAA,IAGvC,MAAM,WAAW,0BAA0B,MAC1C,wBAAwB,gBAAgB,kBAAkB,GAAG,CAC9D;AAAA,EACD;AAAA,EAGA,IACC,eACC,CAAC,iBACD,4BAA4B,KAAK,CAAC,OAAM,GAAE,SAAS,UAAU,CAAC,IAC9D;AAAA,IACD,MAAM,WAAW,eAAe,MAC/B,OAAO,YAAY,OAAK,WAAW,QAAQ,GAAG;AAAA,MAC7C,OAAO;AAAA,MACP,WAAW;AAAA,IACZ,CAAC,CACF;AAAA,EACD;AAAA,EAOA,MAAM,kBACL,aACC,CAAC,iBACD,4BAA4B,KAAK,mBAAmB,KAClD,WAAW,kBAAkB,MAC7B,sBACC,UACA,WACA,oBACD,CACD,IACC;AAAA,EAEJ,MAAM,wBAGF;AAAA,IACH,aAAa;AAAA,IACb,WAAW,CAAC;AAAA,EACb;AAAA,EACA;AAAA;AAAA,IAEC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACG,MAAM,QAAQ,IAAI;AAAA,IACrB;AAAA,IACA,mBACG,WAAW,sBAAsB,MACjC,gBAAgB,kBAAkB,OAAO,CAC1C,IACC,CAAC;AAAA,IACJ,kBACG,WAAW,qBAAqB,MAChC,gBAAgB,iBAAiB,WAAW,CAC7C,IACC,CAAC;AAAA,IACJ,iBACG,WAAW,0BAA0B,MACrC,gBAAgB,gBAAgB,OAAO,CACxC,IACC;AAAA,IACH,kBACG,WAAW,2BAA2B,MACtC,gBAAgB,iBAAiB,UAAU,CAC5C,IACC;AAAA,IACH,eACG,WAAW,wBAAwB,MACnC,gBAAgB,cAAc,OAAO,CACtC,IACC;AAAA,IACH,mBACG,WAAW,4BAA4B,MACvC,gBAAgB,kBAAkB,MAAM,CACzC,IACC;AAAA,IACH,YACG,WAAW,YAAY,MACvB,mBAAmB,WAAW,YAAY,CAC3C,IACC,CAAC;AAAA,EACL,CAAC;AAAA,EAGD,MAAM,mBAAmB,uBAAuB;AAAA,EAChD,MAAM,gBAAgB,oBAAoB;AAAA,EAC1C,MAAM,oBAAoB,wBAAwB;AAAA,EAElD,MAAM,iBAAiC,CAAC;AAAA,EACxC,IAAI,sBAAsB;AAAA,IACzB,eAAe,QAAQ,sBAAsB;AAAA,EAC9C,IAAI,uBAAuB;AAAA,IAC1B,eAAe,SAAS,uBAAuB;AAAA,EAChD,IAAI,oBAAoB;AAAA,IACvB,eAAe,MAAM,oBAAoB;AAAA,EAC1C,IAAI,wBAAwB;AAAA,IAC3B,eAAe,UAAU,wBAAwB;AAAA,EAGlD,MAAM,qBACL,CAAC,SAAS,UAAU,OAAO,SAAS,EACnC,OAAO,CAAC,cAAc,eAAe,YAAY,UAAU,QAAQ;AAAA,EACrE,IAAI,mBAAmB,SAAS,GAAG;AAAA,IAClC,QACC,0DAA0D,mBAAmB,KAAK,IAAI,uCACjD,mBAAmB,uEAEzD;AAAA,EACD;AAAA,EAIA,MAAM,0BACL,CAAC,iBACD,4BAA4B,KAC3B,CAAC,OACA,GAAE,SAAS,QAAQ,MAAM,GAAE,SAAS,OAAO,KAAK,YAAY,EAAC,EAC/D;AAAA,EAGD,MAAM,eACL,iBAAiB,oBAAoB,iBAClC,2BAA2B,iBAAiB,CAAC,UAAU;AAAA,IAEvD,IAAI,MAAM,WAAW,UAAQ,gBAAgB,CAAC,GAAG;AAAA,MAChD,MAAM,WAAW,UAAS,OAAO,MAAM;AAAA,MAEvC,OAAO,OAAK,gBAAgB,GAAG,cAAc;AAAA,IAC9C;AAAA,IAEA,OAAO;AAAA,GACP,IACA;AAAA,EAEJ,MAAM,cACL,iBAAiB,mBAAmB,CAAC,0BAClC,2BAA2B,gBAAgB,CAAC,UAAU,KAAK,IAC3D;AAAA,EAGJ,MAAM,gBAAgB,gBACnB,2BAA2B,kBAAkB,CAAC,UAAU,KAAK,IAC7D;AAAA,EAEH,MAAM,aAAa,gBAChB,2BAA2B,eAAe,CAAC,UAAU,KAAK,IAC1D;AAAA,EAEH,MAAM,iBAAiB,gBACpB,2BAA2B,mBAAmB,CAAC,UAAU,KAAK,IAC9D;AAAA,EAGH,MAAM,mBAAmB,gBACtB,2BAA2B,qBAAqB,CAAC,UAAU,KAAK,IAChE;AAAA,EAIH,MAAM,yBACL,QAAQ,WAAW,WAAW,eAAe,IAAI;AAAA,EAClD,MAAM,mBAAmB;AAAA,IACxB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,EAAE,OAAO,CAAC,QAAuB,QAAQ,GAAG,CAAC;AAAA,EAC7C,MAAM,4BAA4B,WAAW,0BAA0B,MACtE,qBAAqB,gBAAgB,CACtC;AAAA,EAIA,MAAM,sBAAsB,aAAa,cAAc,SAAS;AAAA,EAChE,MAAM,mBAAmB,UAAU,WAAW,SAAS;AAAA,EACvD,MAAM,uBAAuB,cAAc,eAAe,SAAS;AAAA,EAEnE,MAAM,mBAA6B,CAAC;AAAA,EACpC,MAAM,kBAAkB,qBACrB,MAAM,WAAW,oBAAoB,MACrC,4BAA4B,kBAAkB,CAC/C,IACC;AAAA,EACH,MAAM,yBAAyB,kBAC5B,8BAA8B,eAAe,IAC7C,CAAC;AAAA,EACJ,MAAM,sBACL,uBAAuB,UAAU;AAAA,EAClC,MAAM,mBAAmB,uBAAuB,OAAO;AAAA,EACvD,MAAM,uBACL,uBAAuB,WAAW;AAAA,EACnC,MAAM,4BACL,aAAa,oBAAoB,SAAS;AAAA,EAC3C,MAAM,yBAAyB,UAAU,iBAAiB,SAAS;AAAA,EACnE,MAAM,6BACL,cAAc,qBAAqB,SAAS;AAAA,EAE7C;AAAA,MACG,mBAAmB,kBAAkB;AAAA,MACrC,gBAAgB,eAAe,gBAAgB;AAAA,MAC/C,aAAa,oBAAoB,aAAa;AAAA,MAC9C,mBAAmB;AAAA,MACnB,gBAAgB;AAAA,MAChB,aAAa;AAAA,MACZ,MAAM,QAAQ,IAAI;AAAA,IACrB,sBACG,WAAW,kBAAkB,kFACI,KAAK,CAAC,QACtC,IAAI,cACH,eACA,WACA,IAAI,KACJ,KACA,oBACD,CACD,CACD,IACC;AAAA,MACA,mBAAmB,CAAC,GAAG,gBAAgB;AAAA,MACvC,kBAAkB,CAAC,GAAG,gBAAgB;AAAA,MACtC,mBAAmB,CAAC,GAAG,gBAAgB;AAAA,IACxC;AAAA,IACF,mBACG,WAAW,eAAe,4EACI,KAAK,CAAC,QACnC,IAAI,WACH,YACA,QACA,KACA,oBACD,CACD,CACD,IACC;AAAA,MACA,gBAAgB,CAAC,GAAG,gBAAgB;AAAA,MACpC,aAAa,CAAC,GAAG,gBAAgB;AAAA,MACjC,eAAe,CAAC,GAAG,gBAAgB;AAAA,MACnC,gBAAgB,CAAC,GAAG,gBAAgB;AAAA,IACrC;AAAA,IACF,uBACG,WAAW,mBAAmB,oFACI,KAAK,CAAC,QACvC,IAAI,eACH,gBACA,YACA,KACA,oBACD,CACD,CACD,IACC;AAAA,MACA,aAAa,CAAC,GAAG,gBAAgB;AAAA,MACjC,aAAa,CAAC,GAAG,gBAAgB;AAAA,IAClC;AAAA,IACF,4BACG,WAAW,yBAAyB,kFACH,KAAK,CAAC,QACtC,IAAI,cACH,qBACA,WACA,IAAI,KACJ,KACA,oBACD,CACD,CACD,IACC;AAAA,MACA,mBAAmB,CAAC,GAAG,gBAAgB;AAAA,IACxC;AAAA,IACF,yBACG,WAAW,sBAAsB,4EACH,KAAK,CAAC,QACnC,IAAI,WACH,kBACA,QACA,KACA,oBACD,CACD,CACD,IACC;AAAA,MACA,gBAAgB,CAAC,GAAG,gBAAgB;AAAA,IACrC;AAAA,IACF,6BACG,WAAW,0BAA0B,oFACH,KAAK,CAAC,QACvC,IAAI,eACH,sBACA,YACA,KACA,oBACD,CACD,CACD,IACC;AAAA,MACA,aAAa,CAAC,GAAG,gBAAgB;AAAA,IAClC;AAAA,EACH,CAAC;AAAA,EAED,MAAM,4BAA4B,IAAI;AAAA,EACtC,SAAS,MAAM,EAAG,MAAM,oBAAoB,QAAQ,OAAO;AAAA,IAC1D,MAAM,aAAa,oBAAoB;AAAA,IACvC,MAAM,aAAa,wBAAwB;AAAA,IAC3C,IAAI,CAAC,cAAc,CAAC;AAAA,MAAY;AAAA,IAChC,0BAA0B,IAAI,UAAQ,UAAU,GAAG,UAAU;AAAA,EAC9D;AAAA,EAEA,MAAM,yBAAyB,IAAI;AAAA,EACnC,SAAS,MAAM,EAAG,MAAM,iBAAiB,QAAQ,OAAO;AAAA,IACvD,MAAM,aAAa,iBAAiB;AAAA,IACpC,MAAM,aAAa,qBAAqB;AAAA,IACxC,IAAI,CAAC,cAAc,CAAC;AAAA,MAAY;AAAA,IAChC,uBAAuB,IAAI,UAAQ,UAAU,GAAG,UAAU;AAAA,EAC3D;AAAA,EAEA,MAAM,6BAA6B,IAAI;AAAA,EACvC,SAAS,MAAM,EAAG,MAAM,qBAAqB,QAAQ,OAAO;AAAA,IAC3D,MAAM,aAAa,qBAAqB;AAAA,IACxC,MAAM,aAAa,yBAAyB;AAAA,IAC5C,IAAI,CAAC,cAAc,CAAC;AAAA,MAAY;AAAA,IAChC,2BAA2B,IAAI,UAAQ,UAAU,GAAG,UAAU;AAAA,EAC/D;AAAA,EAIA,MAAM,yBAAyB,6BAC9B,eAAe,KAChB;AAAA,EACA,MAAM,0BAA0B,6BAC/B,eAAe,MAChB;AAAA,EACA,MAAM,uBAAuB,6BAC5B,eAAe,GAChB;AAAA,EACA,MAAM,2BAA2B,6BAChC,eAAe,OAChB;AAAA,EACA,IAAI,wBAAkC,CAAC;AAAA,EAEvC,IACC,uBAAuB,SAAS,KAChC,wBAAwB,SAAS,KACjC,qBAAqB,SAAS,KAC9B,yBAAyB,SAAS,GACjC;AAAA,IACD,MAAM,0BAA0B,YAAY;AAAA,MAC3C,IAAI,uBAAuB,WAAW;AAAA,QAAG,OAAO;AAAA,MAEhD,MAAM,UAAU,OAAK,WAAW,eAAe,OAAO;AAAA,MACtD,QAAO,SAAS,EAAE,OAAO,MAAM,WAAW,KAAK,CAAC;AAAA,MAChD,YAAU,SAAS,EAAE,WAAW,KAAK,CAAC;AAAA,MAEtC,MAAM,YAAsB,CAAC;AAAA,MAC7B,SAAS,MAAM,EAAG,MAAM,uBAAuB,QAAQ,OAAO;AAAA,QAC7D,MAAM,SAAS,uBAAuB;AAAA,QACtC,IAAI,CAAC;AAAA,UAAQ;AAAA,QAEb,MAAM,SAAS,MAAM,UAAS;AAAA,UAC7B,aAAa,CAAC,MAAM;AAAA,UACpB,QAAQ;AAAA,UACR,KAAK,EAAE,aAAa,MAAM;AAAA,UAC1B,QAAQ,CAAC;AAAA,UACT,QAAQ,GAAG;AAAA,UACX,QAAQ;AAAA,UACR,SAAS,CAAC,wBAAuB;AAAA,UACjC,MAAM,UAAQ,MAAM;AAAA,UACpB,QAAQ;AAAA,UACR,OAAO;AAAA,UACP,UAAU;AAAA,QACX,CAAC;AAAA,QACD,IAAI,CAAC,OAAO,SAAS;AAAA,UACpB,WAAW,OAAO,IAAI;AAAA,UACtB,MAAM,IAAI,MACT,uCAAuC,QACxC;AAAA,QACD;AAAA,QAEA,MAAM,SAAS,OAAO,QAAQ,KAAK,CAAC,aACnC,SAAS,KAAK,SAAS,KAAK,CAC7B;AAAA,QACA,IAAI,CAAC;AAAA,UACJ,MAAM,IAAI,MACT,6CAA6C,QAC9C;AAAA,QAED,UAAU,KAAK,OAAO,IAAI;AAAA,MAC3B;AAAA,MAEA,OAAO;AAAA;AAAA,IAGR;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,QACG,MAAM,QAAQ,IAAI;AAAA,MACrB,WAAW,4BAA4B,uBAAuB;AAAA,MAC9D,wBAAwB,SAAS,KAAK,YACnC,WAAW,6BAA6B,kFACP,KAAK,CAAC,QACtC,IAAI,cACH,yBACA,WACA,IAAI,KACJ,OACA,oBACD,CACD,CACD,IACC,EAAE,mBAAmB,iBAAiB;AAAA,MACzC,qBAAqB,SAAS,KAAK,SAChC,WAAW,0BAA0B,4EACP,KAAK,CAAC,QACnC,IAAI,WACH,sBACA,QACA,OACA,oBACD,CACD,CACD,IACC,EAAE,gBAAgB,iBAAiB;AAAA,MACtC,yBAAyB,SAAS,KAAK,aACpC,WAAW,8BAA8B,oFACP,KAAK,CAAC,QACvC,IAAI,eACH,0BACA,YACA,KACA,oBACD,CACD,CACD,IACC,EAAE,aAAa,iBAAiB;AAAA,IACpC,CAAC;AAAA,IAKD,MAAM,wBAAwB,OAC7B,WACA,kBACI;AAAA,MACJ,MAAM,UAAU,OAAK,WAAW,eAAe,SAAS;AAAA,MACxD,QAAO,SAAS,EAAE,OAAO,MAAM,WAAW,KAAK,CAAC;AAAA,MAChD,YAAU,SAAS,EAAE,WAAW,KAAK,CAAC;AAAA,MACtC,MAAM,YAAsB,CAAC;AAAA,MAC7B,SAAS,MAAM,EAAG,MAAM,cAAc,QAAQ,OAAO;AAAA,QACpD,MAAM,eAAe,cAAc;AAAA,QACnC,IAAI,CAAC;AAAA,UAAc;AAAA,QACnB,MAAM,OAAO,UAAS,YAAY,EAAE,QAAQ,YAAY,EAAE;AAAA,QAC1D,MAAM,SAAS,MAAM,UAAS;AAAA,UAC7B,aAAa,CAAC,YAAY;AAAA,UAC1B,QAAQ;AAAA,UACR,QAAQ,CAAC;AAAA,UACT,QAAQ,GAAG,OAAO;AAAA,UAClB,QAAQ;AAAA,UACR,WAAW;AAAA,UACX,QAAQ;AAAA,UACR,OAAO;AAAA,QACR,CAAC;AAAA,QACD,IAAI,CAAC,OAAO,SAAS;AAAA,UACpB,WAAW,OAAO,IAAI;AAAA,UACtB,MAAM,IAAI,MACT,oBAAoB,yBAAyB,cAC9C;AAAA,QACD;AAAA,QACA,MAAM,SAAS,OAAO,QAAQ,KAAK,CAAC,aACnC,SAAS,KAAK,SAAS,KAAK,CAC7B;AAAA,QACA,IAAI,CAAC;AAAA,UACJ,MAAM,IAAI,MACT,GAAG,iDAAiD,cACrD;AAAA,QAED,UAAU,KAAK,OAAO,IAAI;AAAA,MAC3B;AAAA,MAEA,OAAO;AAAA;AAAA,IAGR,OAAO,aAAa,UAAU,gBAAgB,MAAM,QAAQ,IAAI;AAAA,MAC/D,WAAW,4BAA4B,MACtC,sBACC,UACA,iBAAiB,iBAClB,CACD;AAAA,MACA,WAAW,yBAAyB,MACnC,sBAAsB,OAAO,cAAc,cAAc,CAC1D;AAAA,MACA,WAAW,6BAA6B,MACvC,sBAAsB,WAAW,kBAAkB,WAAW,CAC/D;AAAA,IACD,CAAC;AAAA,IACD,wBAAwB;AAAA,MACvB,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACJ;AAAA,IAEA,8BACC,eAAe,OACf,wBACA,cACD;AAAA,IACA,8BACC,eAAe,QACf,yBACA,WACD;AAAA,IACA,8BACC,eAAe,KACf,sBACA,QACD;AAAA,IACA,8BACC,eAAe,SACf,0BACA,YACD;AAAA,EACD;AAAA,EAEA,MAAM,oBAAoB;AAAA,IACzB,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACJ;AAAA,EACA,MAAM,yBAAyB,CAAC,GAAG,YAAY;AAAA,EAG/C,MAAM,qBAAqB,MAAM;AAAA,EAEjC,MAAM,4BAA4B;AAAA,IACjC,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAI,sBAAsB,CAAC,mBAAmB,IAAI,CAAC;AAAA,IACnD,GAAG;AAAA,EACJ;AAAA,EACA,MAAM,oBAAoB,kBACvB,MAAM,WAAW,mCAAmC,MACpD,0BAA0B;AAAA,IACzB,WAAW;AAAA,IACX;AAAA,IACA,gBAAgB;AAAA,MACf,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,KAAK;AAAA,IACN;AAAA,EACD,CAAC,CACF,IACC;AAAA,IACA,SAAS,CAAC;AAAA,IACV,eAAe,OAAK,WAAW,iBAAiB;AAAA,EACjD;AAAA,EACF,MAAM,0BAA0B,kBAAkB,QAAQ,IACzD,CAAC,UAAU,MAAM,SAClB;AAAA,EAEA,IACC,kBAAkB,WAAW,KAC7B,uBAAuB,WAAW,KAClC,0BAA0B,WAAW,KACrC,wBAAwB,WAAW,KACnC,YAAY,aACZ,YAAY,WACX;AAAA,IACD,QAAQ,+CAA+C;AAAA,IACvD,mBAAmB,eAAe;AAAA,MACjC,gBAAgB;AAAA,QACf,SAAS,QAAQ,UAAU;AAAA,QAC3B,MAAM,QAAQ,OAAO;AAAA,QACrB,MAAM,QAAQ,OAAO;AAAA,QACrB,OAAO,QAAQ,QAAQ;AAAA,QACvB,QAAQ,QAAQ,SAAS;AAAA,QACzB,KAAK,QAAQ,MAAM;AAAA,MACpB;AAAA,MACA,iBAAiB;AAAA,QAChB,SAAS,eAAe;AAAA,QACxB,MAAM,YAAY;AAAA,QAClB,OAAO,aAAa;AAAA,QACpB,QAAQ,cAAc;AAAA,QACtB,KAAK,WAAW;AAAA,MACjB;AAAA,MACA,YAAY;AAAA,MACZ,aAAa,QAAQ,aAAa;AAAA,MAClC,MAAM,SAAS,QAAQ,gBAAgB;AAAA,MACvC,gBAAgB;AAAA,QACf,SAAS,kBAAkB;AAAA,QAC3B,MAAM,eAAe;AAAA,QACrB,OAAO,gBAAgB;AAAA,QACvB,QAAQ,iBAAiB;AAAA,QACzB,KAAK,cAAc;AAAA,MACpB;AAAA,IACD,CAAC;AAAA,IACD,gBAAgB,SAAS;AAAA,IAEzB,OAAO,CAAC;AAAA,EACT;AAAA,EAOA,IAAI,OAAO,oBAAoB,uBAAuB,SAAS,GAAG;AAAA,IACjE,MAAM,eAAe,OAAK,kBAAkB,cAAc;AAAA,IAC1D,IAAI,CAAC,uBAAuB,SAAS,YAAY;AAAA,MAChD,uBAAuB,KAAK,YAAY;AAAA,EAC1C;AAAA,EAKA,IAAI,cAAc,kBAAkB;AAAA,EACpC,IAAI,CAAC,eAAe,OAAO,UAAU;AAAA,IACpC,QAAQ,4CAAuB;AAAA,IAG/B,cAAc,oBAAmB;AAAA,IACjC,kBAAkB,WAAW;AAAA,EAC9B;AAAA,EACA,IAAI,sBAAqB,sBAAsB;AAAA,EAC/C,IAAI,CAAC,uBAAsB,OAAO,YAAY;AAAA,IAC7C,QAAQ,0DAA8B;AAAA,IAGtC,sBAAqB,2BACpB,WAAW,yBACZ;AAAA,IACA,sBAAsB,mBAAkB;AAAA,EACzC;AAAA,EACA,IAAI,4BAA2B,4BAA4B;AAAA,EAC3D,IAAI,CAAC,6BAA4B,OAAO,YAAY;AAAA,IACnD,QAAQ,sEAAoC;AAAA,IAG5C,4BAA2B,iCAC1B,WACA,WAAW,6BAA6B,CAAC,CAC1C;AAAA,IACA,4BAA4B,yBAAwB;AAAA,EACrD;AAAA,EAQA,IAAI,CAAC,OAAO,YAAY;AAAA,IACvB,MAAM,oBAAoB;AAAA,MACzB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD,EAAE,OAAO,CAAC,QAAuB,QAAQ,GAAG,CAAC;AAAA,IAC7C;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,QACG;AAAA,IAEJ,CAAC,qBAAoB,yBAAwB,IAAI,MAAM,QAAQ,IAAI;AAAA,MAClE,gCACC,mBACoB,KACrB;AAAA,MACA,sCACC,WACA,mBACoB,KACrB;AAAA,IACD,CAAC;AAAA,IACD,sBAAsB,mBAAkB;AAAA,IACxC,4BAA4B,yBAAwB;AAAA,IAEpD,MAAM,QAAQ,IAAI;AAAA,MACjB,oBACC,WACA,mBACoB,OACpB,CAAC,CACF;AAAA,MACA,0BACC,WACA,mBACoB,KACrB;AAAA,IACD,CAAC;AAAA,IAMD,QAAQ,IAAI,uBAAuB;AAAA,EACpC;AAAA,EACA,IAAI,kBAAiB,kBAAkB;AAAA,EACvC,IAAI,CAAC,mBAAkB,OAAO,QAAQ;AAAA,IACrC,QAAQ,kDAA0B;AAAA,IAGlC,kBAAiB,uBAAsB;AAAA,IACvC,kBAAkB,eAAc;AAAA,EACjC;AAAA,EACA,IAAI,qBAAoB,qBAAqB;AAAA,EAC7C,IAAI,CAAC,sBAAqB,OAAO,WAAW;AAAA,IAC3C,QAAQ,wDAA6B;AAAA,IAGrC,qBAAoB,0BAAyB;AAAA,IAC7C,qBAAqB,kBAAiB;AAAA,EACvC;AAAA,EACA,MAAM,iBACL,OAAO,WAAW,mBAAmB,WAAW,mBAAmB,CAAC;AAAA,EACrE,MAAM,qBAA6C;AAAA,OAC9C,eAAe,CAAC;AAAA,OACjB;AAAA,EACJ;AAAA,EACA,MAAM,wBAAgD;AAAA,OAClD;AAAA,OACC,uBAAsB,CAAC;AAAA,OACvB,mBAAkB,CAAC;AAAA,OACnB,sBAAqB,CAAC;AAAA,EAC3B;AAAA,EACA,MAAM,uBAAuB;AAAA,IAC5B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAMA;AAAA,IACA;AAAA,EACD;AAAA,EAEA,MAAM,mBAAmB,MACtB,0BAA0B,SAAS,OAAO,IAC1C;AAAA,EACH,MAAM,mBACL,uBAAuB,SAAS,IAC7B,oBACA;AAAA,IACC,aAAa;AAAA,OACT,OAAO,KAAK,kBAAkB,EAAE,SAAS,IAC1C,EAAE,UAAU,OAAO,KAAK,kBAAkB,EAAE,IAC5C,CAAC;AAAA,IACJ,QAAQ;AAAA,IACR,QAAQ,CAAC;AAAA,IACT,QAAQ;AAAA,IACR,QAAQ;AAAA,OACJ,MACD;AAAA,MACA,KAAK,EAAE,aAAa,KAAK;AAAA,MACzB,kBAAkB;AAAA,IACnB,IACC,CAAC;AAAA,IACJ,SAAS,CAAC,wBAAuB;AAAA,IACjC,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,OAAO;AAAA,EACR,GACA,wBAAwB,gBAAgB,aAAa,CACtD,IACC;AAAA,EAIJ,IAAI,YAAY,uBAAuB,SAAS,GAAG;AAAA,IAClD,QAAO,OAAK,WAAW,SAAS,aAAa,SAAS,GAAG;AAAA,MACxD,OAAO;AAAA,MACP,WAAW;AAAA,IACZ,CAAC;AAAA,EACF;AAAA,EACA,IAAI,cAAc,mBAAmB,SAAS,GAAG;AAAA,IAChD,QAAO,OAAK,WAAW,WAAW,SAAS,GAAG;AAAA,MAC7C,OAAO;AAAA,MACP,WAAW;AAAA,IACZ,CAAC;AAAA,EACF;AAAA,EACA,IAAI,wBAAwB,SAAS,GAAG;AAAA,IACvC,QAAO,OAAK,WAAW,SAAS,GAAG;AAAA,MAClC,OAAO;AAAA,MACP,WAAW;AAAA,IACZ,CAAC;AAAA,EACF;AAAA,EAIA;AAAA,IACC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACG,MAAM,QAAQ,IAAI;AAAA,IACrB,kBAAkB,SAAS,IACxB,WAAW,cAAc,MACzB,UACC,oBACC;AAAA,MACC,aAAa;AAAA,MACb,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,SAAS,CAAC,wBAAuB;AAAA,MACjC,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,UAAU;AAAA,IACX,GACA,wBAAwB,gBAAgB,QAAQ,CACjD,CACD,CACD,IACC;AAAA,IACH,mBACG,WAAW,oBAAoB,MAAM,UAAS,gBAAgB,CAAC,IAC/D;AAAA,IACH,0BAA0B,SAAS,IAChC,WAAW,wBAAwB,MACnC,UACC,oBACC;AAAA,MACC,QAAQ,eACL,kBACA;AAAA,MACH,aAAa;AAAA,MACb,UAAU,OAAO,KAAK,qBAAqB;AAAA,MAC3C,QAAQ;AAAA,MACR,QAAQ,CAAC;AAAA,MACT,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,SAAS;AAAA,QACR;AAAA,QACA,GAAI,aACD,CAAC,0BAA0B,GAAG,CAAC,IAC/B,CAAC;AAAA,QACJ,GAAI,mBACD,CAAC,gBAAgB,IACjB,CAAC;AAAA,MACL;AAAA,MACA,MAAM;AAAA,MACN,WAAW,CAAC;AAAA,MACZ,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,UAAU;AAAA,IACX,GACA,wBACC,gBACA,gBACD,CACD,CACD,CACD,IACC;AAAA,IACH,wBAAwB,SAAS,IAC9B,WAAW,qBAAqB,MAChC,UACC,oBACC;AAAA,MACC,QAAQ,eACL,kBACA;AAAA,MACH,aAAa;AAAA,MACb,UAAU,OAAO,KAAK,qBAAqB;AAAA,MAC3C,QAAQ;AAAA,MACR,QAAQ,CAAC;AAAA,MACT,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,SAAS;AAAA,QACR;AAAA,QACA,GAAI,aACD,CAAC,0BAA0B,GAAG,CAAC,IAC/B,CAAC;AAAA,MACL;AAAA,MACA,MAAM,kBAAkB;AAAA,MACxB,WAAW,CAAC;AAAA,MACZ,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,UAAU;AAAA,IACX,GACA,wBACC,gBACA,cACD,CACD,CACD,CACD,IACC;AAAA,IACH,iBAAiB,SAAS,IACvB,WAAW,kBAAkB,MAC7B,UACC,oBACC;AAAA,MACC,aAAa;AAAA,MACb,QAAQ;AAAA,MACR,QAAQ,YACL,OAAK,WAAW,UAAS,SAAS,CAAC,IACnC;AAAA,MACH,SAAS,CAAC,wBAAuB;AAAA,MACjC,MAAM,aAAa;AAAA,MACnB,QAAQ;AAAA,MACR,OAAO;AAAA,IACR,GACA,wBAAwB,gBAAgB,WAAW,CACpD,CACD,CACD,IACC;AAAA,IACH,YAAY,SAAS,IAClB,WAAW,eAAe,MAC1B,UACC,oBACC;AAAA,MACC,aAAa;AAAA,MACb,QAAQ;AAAA,MACR,QAAQ,OACP,WACA,aACG,UAAS,UAAU,IACnB,UACH,KACD;AAAA,MACA,QAAQ;AAAA,MACR,OAAO;AAAA,IACR,GACA,wBAAwB,gBAAgB,QAAQ,CACjD,CACD,CACD,IACC;AAAA,EACJ,CAAC;AAAA,EAED,MAAM,aAAa,cAAc,QAAQ,CAAC;AAAA,EAC1C,MAAM,gBAAgB,cAAc,WAAW,CAAC;AAAA,EAEhD,IAAI,gBAAgB,CAAC,aAAa,WAAW,WAAW,SAAS,GAAG;AAAA,IACnE,kBACC,YACA,UACA,UACA,gBACA,eACA,YACD;AAAA,EACD;AAAA,EAEA,MAAM,kBAAkB,mBAAmB,QAAQ,CAAC;AAAA,EACpD,MAAM,qBAAqB,mBAAmB,WAAW,CAAC;AAAA,EAE1D,IACC,qBACA,CAAC,kBAAkB,WACnB,gBAAgB,SAAS,GACxB;AAAA,IACD,kBACC,iBACA,gBACA,gBACA,gBACA,eACA,YACD;AAAA,EACD;AAAA,EAEA,MAAM,yBAAyB,mBAAmB,IACjD,CAAC,aAAa,SAAS,IACxB;AAAA,EAEA,IAAI,eAAe,uBAAuB,SAAS,GAAG;AAAA,IACrD,MAAM,WAAW,6BAA6B,MAC7C,oBAAoB,wBAAwB,WAAW,CACxD;AAAA,EACD;AAAA,EAEA,IAAI,OAAO,uBAAuB,SAAS,GAAG;AAAA,IAC7C,MAAM,WAAW,qCAAqC,MACrD,oBAAoB,sBAAsB,CAC3C;AAAA,EACD;AAAA,EAEA,MAAM,qBAAqB,sBAAsB,QAAQ,CAAC;AAAA,EAC1D,MAAM,wBAAwB,sBAAsB,WAAW,CAAC;AAAA,EAChE,MAAM,4BAA4B,sBAAsB,IACvD,CAAC,aAAa,SAAS,IACxB;AAAA,EACA,MAAM,mBAAmB,oBAAoB,QAAQ,CAAC;AAAA,EACtD,MAAM,sBAAsB,oBAAoB,WAAW,CAAC;AAAA,EAC5D,MAAM,0BAA0B,oBAAoB,IACnD,CAAC,aAAa,SAAS,IACxB;AAAA,EAEA,IAAI,eAAe,0BAA0B,SAAS,GAAG;AAAA,IACxD,MAAM,WAAW,uCAAuC,MACvD,oBAAoB,2BAA2B,WAAW,CAC3D;AAAA,EACD;AAAA,EACA,IAAI,OAAO,0BAA0B,SAAS,GAAG;AAAA,IAChD,MAAM,WAAW,yCAAyC,MACzD,oBAAoB,yBAAyB,CAC9C;AAAA,EACD;AAAA,EAEA,IAAI,eAAe,wBAAwB,SAAS,GAAG;AAAA,IACtD,MAAM,WAAW,oCAAoC,MACpD,oBAAoB,yBAAyB,WAAW,CACzD;AAAA,EACD;AAAA,EACA,IAAI,OAAO,wBAAwB,SAAS,GAAG;AAAA,IAC9C,MAAM,WAAW,sCAAsC,MACtD,oBAAoB,uBAAuB,CAC5C;AAAA,EACD;AAAA,EAEA,IACC,wBACA,CAAC,qBAAqB,WACtB,mBAAmB,SAAS,GAC3B;AAAA,IACD,kBACC,oBACA,oBACA,oBACA,gBACA,eACA,YACD;AAAA,EACD;AAAA,EACA,IACC,sBACA,CAAC,mBAAmB,WACpB,iBAAiB,SAAS,GACzB;AAAA,IACD,kBACC,kBACA,iBACA,iBACA,gBACA,eACA,YACD;AAAA,EACD;AAAA,EAGA,MAAM,yBAAiD;AAAA,OACnD;AAAA,OACC,uBAAsB,CAAC;AAAA,OACvB,mBAAkB,CAAC;AAAA,OACnB,sBAAqB,CAAC;AAAA,EAC3B;AAAA,EACA,MAAM,uBAA+C;AAAA,OACjD;AAAA,OACA;AAAA,EACJ;AAAA,EACA,IACC,sBAAsB,SAAS,KAC/B,OAAO,KAAK,sBAAsB,EAAE,SAAS,GAC5C;AAAA,IACD,QAAQ,oCAAmB;AAAA,IAC3B,MAAM,WAAW,wCAAwC,MACxD,gBACC,sBAAsB,IAAI,CAAC,aAAa,SAAS,IAAI,GACrD,sBACD,CACD;AAAA,EACD;AAAA,EACA,IACC,oBAAoB,SAAS,KAC7B,OAAO,KAAK,oBAAoB,EAAE,SAAS,GAC1C;AAAA,IACD,QAAQ,oCAAmB;AAAA,IAC3B,MAAM,WAAW,qCAAqC,MACrD,gBACC,oBAAoB,IAAI,CAAC,aAAa,SAAS,IAAI,GACnD,oBACD,CACD;AAAA,EACD;AAAA,EAOA,IACC,cAAc,SAAS,KACvB,6BACA,OAAO,KAAK,yBAAwB,EAAE,SAAS,GAC9C;AAAA,IACD,QAAQ,oCAAmB;AAAA,IAO3B,MAAM,cAAc,cAAc,OAAO,CAAC,aACzC,SAAS,KAAK,SAAS,KAAK,CAC7B;AAAA,IACA,MAAM,WAAW,6CAA6C,MAC7D,QAAQ,IACP,YAAY,IAAI,OAAO,aAAa;AAAA,MACnC,MAAM,UAAU,UAAQ,SAAS,IAAI;AAAA,MACrC,MAAM,gBAAwC,CAAC;AAAA,MAC/C,YAAY,WAAW,aAAa,OAAO,QAC1C,yBACD,GAAG;AAAA,QACF,MAAM,MAAM,WAAS,SAAS,QAAQ;AAAA,QACtC,cAAc,aAAa,IAAI,WAAW,GAAG,IAC1C,MACA,KAAK;AAAA,MACT;AAAA,MAEA,OAAO,gBAAe,CAAC,SAAS,IAAI,GAAG,aAAa;AAAA,KACpD,CACF,CACD;AAAA,EACD;AAAA,EAEA,MAAM,UAA6C;AAAA,IAClD,GAAI,iBAAiB,QAAQ,CAAC;AAAA,IAC9B,GAAI,cAAc,QAAQ,CAAC;AAAA,EAC5B;AAAA,EACA,MAAM,aAA8B;AAAA,IACnC,GAAI,iBAAiB,WAAW,CAAC;AAAA,IACjC,GAAI,cAAc,WAAW,CAAC;AAAA,EAC/B;AAAA,EAEA,IACC,mBACA,CAAC,gBAAgB,WACjB,gBAAgB,KAAK,SAAS,GAC7B;AAAA,IACD,kBACC,gBAAgB,MAChB,cACA,cACA,gBACA,eACA,YACD;AAAA,EACD;AAAA,EAEA,IAAI,gBAAgB,CAAC,aAAa,WAAW,aAAa,KAAK,SAAS,GAAG;AAAA,IAC1E,kBACC,aAAa,MACb,WACA,WACA,gBACA,eACA,YACD;AAAA,EACD;AAAA,EAKA,MAAM,uBAAuB;AAAA,IAC5B,GAAG;AAAA,IACH,GAAG,sBAAsB,IAAI,CAAC,aAAa,SAAS,IAAI;AAAA,EACzD;AAAA,EACA,IAAI,mBAAmB,SAAS,GAAG;AAAA,IAClC,MAAM,aAAa,gBAClB,oBACA,KACA,aACA,WACA,qBACD;AAAA,IACA,MAAM,WAAW,8BAA8B,MAC9C,qBAAqB,sBAAsB,UAAU,CACtD;AAAA,EACD;AAAA,EAIA,MAAM,iBAAiB,sBACrB,IAAI,CAAC,aAAa,SAAS,IAAI,EAC/B,OAAO,CAAC,SAAS,KAAK,SAAS,OAAO,CAAC;AAAA,EACzC,IAAI,OAAO,cAAc;AAAA,IACxB,MAAM,WAAW,uBAAuB,MACvC,eAAe,QAAQ,CAAC,eACvB,4BAA4B,YAAY,WAAW,CACpD,CACD;AAAA,EACD;AAAA,EAEA,MAAM,UAAU;AAAA,IACf,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACJ;AAAA,EACA,WAAW,OAAO;AAAA,EAElB,MAAM,WAAmC;AAAA,OACpC,SAAS,gBAAgB,CAAC;AAAA,OAC3B,iBACF;AAAA,MACC,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACJ,GACA,SACD;AAAA,EACD;AAAA,EAMA,WAAW,YAAY,eAAe;AAAA,IACrC,IAAI,SAAQ,SAAS,IAAI,MAAM;AAAA,MAAO;AAAA,IACtC,MAAM,eAAe,UAAS,SAAS,IAAI;AAAA,IAC3C,OAAO,YAAY,aAAa,MAAM,IAAI,SAAS,OAAO;AAAA,IAC1D,IAAI,CAAC;AAAA,MAAU;AAAA,IACf,SAAS,SAAS,QAAQ,KAAK,SAAS;AAAA,EACzC;AAAA,EAEA,MAAM,iBACL,CAAC,iBACD,4BAA4B,KAC3B,CAAC,OAAM,GAAE,SAAS,QAAQ,KAAK,GAAE,SAAS,OAAO,CAClD;AAAA,EAGD,MAAM,6BACL,CAAC,iBACD,4BAA4B,KAC3B,CAAC,OACA,GAAE,SAAS,QAAQ,MAAM,GAAE,SAAS,OAAO,KAAK,YAAY,EAAC,EAC/D;AAAA,EACD,MAAM,6BACL,CAAC,iBACD,4BAA4B,KAC3B,CAAC,OACA,GAAE,SAAS,QAAQ,MAAM,GAAE,SAAS,OAAO,KAAK,YAAY,EAAC,EAC/D;AAAA,EAGD,MAAM,kBAAkB,yBACrB,MAAM,yBACN;AAAA,EAEH,MAAM,wBAAwB,CAAC,UAAkB,cAAsB;AAAA,IACtE,IAAI,CAAC;AAAA,MAAiB;AAAA,IACtB,IAAI,OAAO,eAAa,UAAU,OAAO;AAAA,IACzC,IAAI,KAAK,SAAS,iBAAiB;AAAA,MAAG;AAAA,IACtC,MAAM,MACL,qCAAqC,+CACV;AAAA,IAC5B,MAAM,YAAY,eAAe,KAAK,IAAI;AAAA,IAC1C,OAAO,YACJ,KAAK,MAAM,GAAG,UAAU,KAAK,IAAI,MAAM,KAAK,MAAM,UAAU,KAAK,IACjE,OAAO;AAAA,IACV,eAAc,UAAU,IAAI;AAAA;AAAA,EAI7B,MAAM,mBAAmB,YAAY;AAAA,IACpC,IAAI,EAAE,WAAW;AAAA,MAAgB;AAAA,IACjC,MAAM,kBAAkB,WACrB,OAAK,WAAW,OAAO,IACvB,OAAK,WAAW,UAAS,OAAO,GAAG,OAAO;AAAA,IAE7C,YAAU,iBAAiB,EAAE,WAAW,KAAK,CAAC;AAAA,IAC9C,OAAO,eAAe,iBAAiB;AAAA,MACtC,OAAO;AAAA,MACP,WAAW;AAAA,IACZ,CAAC;AAAA,IAGD,IAAI,4BAA4B;AAAA,MAC/B,MAAM,iBAAiB,UAAU,eAAe;AAAA,MAChD,MAAM,mBAAmB,eAAe;AAAA,IACzC;AAAA,IAGA,MAAM,gBAAgB,MAAM,gBAAgB,iBAAiB,QAAQ;AAAA,IACrE,MAAM,gCACL,oBACA,aACD;AAAA,IACA,WAAW,YAAY,eAAe;AAAA,MACrC,IAAI;AAAA,QAAK,sBAAsB,UAAU,MAAM;AAAA,MAC/C,MAAM,WAAW,UAAS,UAAU,OAAO;AAAA,MAC3C,SAAS,YAAY;AAAA,IACtB;AAAA;AAAA,EAGD,MAAM,mBAAmB,YAAY;AAAA,IACpC,IAAI,EAAE,WAAW;AAAA,MAAgB;AAAA,IACjC,MAAM,kBAAkB,WACrB,OAAK,WAAW,OAAO,IACvB,OAAK,WAAW,UAAS,OAAO,GAAG,OAAO;AAAA,IAE7C,YAAU,iBAAiB,EAAE,WAAW,KAAK,CAAC;AAAA,IAC9C,OAAO,eAAe,iBAAiB;AAAA,MACtC,OAAO;AAAA,MACP,WAAW;AAAA,IACZ,CAAC;AAAA,IAED,IAAI,gBAAgB;AAAA,MACnB,MAAM,cAAc,WACjB,YACA,OAAK,WAAW,UAAS,OAAO,CAAC;AAAA,MACpC,eAAe,SAAS,WAAW;AAAA,IACpC;AAAA,IAGA,IAAI,4BAA4B;AAAA,MAC/B,MAAM,iBAAiB,UAAU,eAAe;AAAA,MAChD,MAAM,mBAAmB,eAAe;AAAA,IACzC;AAAA,IAGA,MAAM,gBAAgB,MAAM,gBAAgB,iBAAiB,QAAQ;AAAA,IACrE,MAAM,gCACL,oBACA,aACD;AAAA,IACA,WAAW,YAAY,eAAe;AAAA,MACrC,IAAI;AAAA,QAAK,sBAAsB,UAAU,MAAM;AAAA,MAC/C,MAAM,WAAW,UAAS,UAAU,OAAO;AAAA,MAC3C,SAAS,YAAY;AAAA,IACtB;AAAA;AAAA,EAGD,MAAM,QAAQ,IAAI;AAAA,IACjB,WAAW,0BAA0B,gBAAgB;AAAA,IACrD,WAAW,0BAA0B,gBAAgB;AAAA,EACtD,CAAC;AAAA,EAED,IAAI,CAAC,eAAe;AAAA,IACnB,MAAM,WAAW,yBAAyB,MACzC,kBAAkB,WAAW;AAAA,MAC5B,GAAG,cAAc,IAAI,CAAC,MAAM,EAAE,IAAI;AAAA,MAClC,GAAG,mBAAmB,IAAI,CAAC,MAAM,EAAE,IAAI;AAAA,MACvC,GAAG,sBAAsB,IAAI,CAAC,MAAM,EAAE,IAAI;AAAA,MAC1C,GAAG,oBAAoB,IAAI,CAAC,MAAM,EAAE,IAAI;AAAA,MACxC,GAAG,WAAW,IAAI,CAAC,MAAM,EAAE,IAAI;AAAA,MAC/B,GAAG;AAAA,IACJ,CAAC,CACF;AAAA,EACD;AAAA,EAKA,IAAI,KAAK;AAAA,IACR,MAAM,WAAW,oBAAoB,MACpC,eAAe;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD,CAAC,CACF;AAAA,EACD;AAAA,EAEA,MAAM,WAAW,qBAAqB,MACrC,QAAQ;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAC,CACF;AAAA,EAEA,IAAI,CAAC,eAAe;AAAA,IACnB,WAAW,qBAAqB,YAAY,IAAI,IAAI;AAAA,EACrD;AAAA,EAEA,mBAAmB,kBAAkB;AAAA,IACpC,YAAY,KAAK,MAAM,YAAY,IAAI,IAAI,UAAU;AAAA,IACrD,YAAY;AAAA,IACZ,MAAM,SAAS,QAAQ,gBAAgB;AAAA,EACxC,CAAC;AAAA,EAKD,IAAI,eAAe;AAAA,IAClB,gBAAgB,SAAS;AAAA,IAEzB,OAAO,EAAE,aAAa,gBAAgB,SAAS;AAAA,EAChD;AAAA,EAEA,eACC,OAAK,WAAW,eAAe,GAC/B,KAAK,UAAU,UAAU,MAAM,IAAI,CACpC;AAAA,EAGA,IAAI,OAAO,KAAK,cAAc,EAAE,SAAS,GAAG;AAAA,IAC3C,eACC,OAAK,WAAW,kBAAkB,GAClC,KAAK,UAAU,gBAAgB,MAAM,IAAI,CAC1C;AAAA,EACD;AAAA,EAEA,gBAAgB,SAAS;AAAA,EAKzB,IAAI,YAAY,SAAS,cAAc;AAAA,IACtC,wBAAwB,SAAS,KAAK;AAAA,EACvC;AAAA,EAEA,OAAO,EAAE,aAAa,gBAAgB,SAAS;AAAA;AAAA;AAAA,EAp5EhD;AAAA,EAcA;AAAA,EACA;AAAA,EAKA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAKA;AAAA,EACA;AAAA,EAKA;AAAA,EAIA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAIA;AAAA,EAmBA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAGA;AAAA,EAEM,QAAQ,KAAI,aAAa;AAAA,EA4JzB,YAAY,IAAI,IAAI;AAAA,IACzB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAC;AAAA,EAsOK,cAAc,IAAI,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC;AAAA,EACrC,cAAc,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC;AAAA,EAChC,eAAe,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC;AAAA,EAkCjC,kBAAkB;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,EAAE,KAAK,EAAE;AAAA,EAgHH,kBAA0C;AAAA,IAC/C,qBAAqB;AAAA,IACrB,uBAAuB,QAAQ,SAAS;AAAA,IACxC,yCAAyC,QAAQ,SAAS;AAAA,EAC3D;AAAA,EAEM,mBAAsC;AAAA,IAC3C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACM,qBAAqB,IAAI,IAAY,CAAC,WAAW,GAAG,gBAAgB,CAAC;AAAA,EACrE,6BAA6B,IAAI,IAAY;AAAA,IAClD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAC;AAAA,EASK,iBAAgE;AAAA,IACrE,aAAa,IAAI,IAAI,CAAC,WAAW,CAAC;AAAA,EACnC;AAAA;;;AC5pBA,uBAAS,8BAAY;AACrB;AACA,oBAAS;AAAA,IAWI,sBAQP,cACA,cAEA,gBAAgB,CAAC,aAAqB;AAAA,EAC3C,MAAM,QAAQ,SAAS,YAAY;AAAA,EACnC,IACC,MAAM,SAAS,KAAK,KACpB,MAAM,SAAS,MAAM,KACrB,MAAM,SAAS,MAAM;AAAA,IAErB,OAAO;AAAA,EACR,IAAI,MAAM,SAAS,KAAK,KAAK,MAAM,SAAS,MAAM;AAAA,IAAG,OAAO;AAAA,EAC5D,IAAI,MAAM,SAAS,OAAO,KAAK,MAAM,SAAS,MAAM;AAAA,IAAG,OAAO;AAAA,EAE9D,OAAO;AAAA,GAMF,qBAAoB,CAAC,YAAoB,aAAqB;AAAA,EAEnE,IAAI,CAAC,WAAW,WAAW,GAAG,KAAK,CAAC,WAAW,WAAW,GAAG,GAAG;AAAA,IAC/D,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,UAAU,UAAQ,UAAU,IAAI;AAAA,EACtC,MAAM,aAAa,UAAQ,SAAS,UAAU;AAAA,EAG9C,MAAM,aAAa;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EAEA,WAAW,OAAO,YAAY;AAAA,IAC7B,MAAM,UAAU,aAAa;AAAA,IAC7B,IAAI,aAAW,OAAO;AAAA,MAAG,OAAO;AAAA,EACjC;AAAA,EAGA,IAAI,aAAW,UAAU;AAAA,IAAG,OAAO;AAAA,EAEnC,OAAO;AAAA,GAGF,0BAA0B,CAC/B,OACA,mBACI;AAAA,EACJ,MAAM,eAAe,MAAM,aAAa,IAAI,cAAc;AAAA,EAC1D,IAAI,CAAC;AAAA,IAAc;AAAA,EAEnB,WAAW,OAAO,cAAc;AAAA,IAC/B,MAAM,aAAa,MAAM,WAAW,IAAI,GAAG;AAAA,IAC3C,IAAI,CAAC;AAAA,MAAY;AAAA,IACjB,WAAW,OAAO,cAAc;AAAA,EACjC;AAAA,GAMY,iBAAiB,CAAC,OAAwB,aAAqB;AAAA,EAC3E,MAAM,iBAAiB,UAAQ,QAAQ;AAAA,EAEvC,IAAI,CAAC,aAAW,cAAc;AAAA,IAAG;AAAA,EAEjC,MAAM,eAAe,oBAAoB,cAAc;AAAA,EAEvD,wBAAwB,OAAO,cAAc;AAAA,EAE7C,MAAM,UAAU,IAAI,IAAI,YAAY;AAAA,EACpC,MAAM,aAAa,IAAI,gBAAgB,OAAO;AAAA,EAE9C,MAAM,eAAe,CAAC,QAAgB;AAAA,IACrC,IAAI,CAAC,MAAM,WAAW,IAAI,GAAG,GAAG;AAAA,MAC/B,MAAM,WAAW,IAAI,KAAK,IAAI,GAAK;AAAA,IACpC;AAAA,IACA,MAAM,WAAW,IAAI,GAAG,GAAG,IAAI,cAAc;AAAA;AAAA,EAG9C,aAAa,QAAQ,YAAY;AAAA,GAG5B,kBAUO,8BAA8B,CAC1C,OACA,gBACI;AAAA,EAGJ,MAAM,iBAAiB,IAAI;AAAA,EAC3B,MAAM,OAAO,IAAI,MAAK,0CAA0C;AAAA,EAEhE,MAAM,eAAe,YACnB,IAAI,CAAC,QAAQ,UAAQ,GAAG,CAAC,EACzB,OAAO,CAAC,QAAQ,aAAW,GAAG,CAAC;AAAA,EAEjC,MAAM,WAAW,aAAa,QAAQ,CAAC,QACtC,MAAM,KAAK,KAAK,SAAS,EAAE,UAAU,MAAM,KAAK,IAAI,CAAC,CAAC,CACvD;AAAA,EAEA,WAAW,SAAQ,UAAU;AAAA,IAC5B,MAAM,WAAW,UAAQ,KAAI;AAAA,IAC7B,IAAI,iBAAiB,KAAK,CAAC,QAAQ,SAAS,SAAS,GAAG,CAAC;AAAA,MAAG;AAAA,IAC5D,IAAI,eAAe,IAAI,QAAQ;AAAA,MAAG;AAAA,IAElC,eAAe,OAAO,QAAQ;AAAA,IAC9B,eAAe,IAAI,QAAQ;AAAA,EAC5B;AAAA,GAGK,0BAA0B,CAAC,UAAkB,YAAoB;AAAA,EACtE,MAAM,eAAyB,CAAC;AAAA,EAChC,MAAM,YACL;AAAA,EACD,IAAI;AAAA,EACJ,QAAQ,YAAY,UAAU,KAAK,OAAO,OAAO,MAAM;AAAA,IACtD,SAAS,QAAQ;AAAA,IACjB,IAAI,CAAC;AAAA,MAAM;AAAA,IACX,MAAM,eAAe,mBAAkB,MAAM,QAAQ;AAAA,IACrD,IAAI;AAAA,MAAc,aAAa,KAAK,YAAY;AAAA,EACjD;AAAA,EAEA,OAAO;AAAA,GAGF,sBAAsB,CAC3B,OACA,SACA,UACA,iBACI;AAAA,EACJ,IAAI;AAAA,EACJ,QAAQ,QAAQ,MAAM,KAAK,OAAO,OAAO,MAAM;AAAA,IAC9C,IAAI,CAAC,MAAM;AAAA,MAAI;AAAA,IACf,MAAM,WAAW,mBAAkB,MAAM,IAAI,QAAQ;AAAA,IACrD,IAAI;AAAA,MAAU,aAAa,KAAK,QAAQ;AAAA,EACzC;AAAA,GAGK,mBAAmB,CACxB,cACA,UACA,iBACI;AAAA,EACJ,MAAM,qBAAqB;AAAA,EAC3B,IAAI;AAAA,EACJ,QAAQ,WAAW,mBAAmB,KAAK,YAAY,OAAO,MAAM;AAAA,IACnE,IAAI,CAAC,SAAS;AAAA,MAAI;AAAA,IAClB,MAAM,WAAW,mBAAkB,SAAS,IAAI,QAAQ;AAAA,IACxD,IAAI;AAAA,MAAU,aAAa,KAAK,QAAQ;AAAA,EACzC;AAAA,GAGK,+BAA+B,CACpC,SACA,UACA,iBACI;AAAA,EACJ,MAAM,iBAAiB;AAAA,EAEvB,IAAI;AAAA,EACJ,QAAQ,QAAQ,eAAe,KAAK,OAAO,OAAO,MAAM;AAAA,IACvD,IAAI,CAAC,MAAM;AAAA,MAAI;AAAA,IACf,iBAAiB,MAAM,IAAI,UAAU,YAAY;AAAA,EAClD;AAAA,GAGK,6BAA6B,CAClC,SACA,UACA,iBACI;AAAA,EACJ,MAAM,mBAAmB;AAAA,EACzB,MAAM,wBAAwB;AAAA,EAE9B,oBAAoB,kBAAkB,SAAS,UAAU,YAAY;AAAA,EACrE,oBAAoB,uBAAuB,SAAS,UAAU,YAAY;AAAA,EAC1E,6BAA6B,SAAS,UAAU,YAAY;AAAA,GAGvD,wBAAwB,CAC7B,UACA,SACA,WACI;AAAA,EACJ,MAAM,cAAa,WAAW,QAAQ,eAAe;AAAA,EACrD,MAAM,UAAU,YAAW,YAAY,OAAO;AAAA,EAC9C,MAAM,eAAyB,CAAC;AAAA,EAEhC,WAAW,OAAO,SAAS;AAAA,IAC1B,MAAM,WAAW,mBAAkB,IAAI,MAAM,QAAQ;AAAA,IACrD,IAAI;AAAA,MAAU,aAAa,KAAK,QAAQ;AAAA,EACzC;AAAA,EAEA,IAAI,QAAQ,SAAS,YAAY,GAAG;AAAA,IACnC,2BAA2B,SAAS,UAAU,YAAY;AAAA,EAC3D;AAAA,EAEA,OAAO;AAAA,GAGF,wBAAwB,CAC7B,SACA,UACA,iBACI;AAAA,EACJ,WAAW,OAAO,SAAS;AAAA,IAC1B,MAAM,WAAW,mBAAkB,IAAI,MAAM,QAAQ;AAAA,IACrD,IAAI;AAAA,MAAU,aAAa,KAAK,QAAQ;AAAA,EACzC;AAAA,GAGK,uBAAuB,CAC5B,eACA,UACA,iBACI;AAAA,EACJ,IAAI;AAAA,IACH,MAAM,UAAU,aAAa,YAAY,aAAa;AAAA,IACtD,sBAAsB,SAAS,UAAU,YAAY;AAAA,IACpD,MAAM;AAAA,GAKH,+BAA+B,CAAC,UAAkB,YAAoB;AAAA,EAC3E,MAAM,eAAyB,CAAC;AAAA,EAChC,MAAM,cAAc;AAAA,EACpB,IAAI;AAAA,EACJ,QAAQ,cAAc,YAAY,KAAK,OAAO,OAAO,MAAM;AAAA,IAC1D,SAAS,iBAAiB;AAAA,IAC1B,IAAI,CAAC,eAAe,KAAK;AAAA,MAAG;AAAA,IAC5B,qBAAqB,eAAe,UAAU,YAAY;AAAA,EAC3D;AAAA,EAEA,OAAO;AAAA,GAGF,6BAA6B,CAAC,aAAqB;AAAA,EACxD,MAAM,SAAS,cAAc,QAAQ;AAAA,EACrC,MAAM,YAAY,SAAS,YAAY;AAAA,EACvC,MAAM,gBACL,UAAU,SAAS,SAAS,KAAK,UAAU,SAAS,MAAM;AAAA,EAE3D,IAAI,WAAW,QAAQ;AAAA,IACtB,MAAM,UAAU,eAAa,UAAU,OAAO;AAAA,IAE9C,OAAO,wBAAwB,UAAU,OAAO;AAAA,EACjD;AAAA,EAEA,IAAI,WAAW,SAAS,WAAW,MAAM;AAAA,IACxC,MAAM,UAAU,eAAa,UAAU,OAAO;AAAA,IAE9C,OAAO,sBAAsB,UAAU,SAAS,MAAM;AAAA,EACvD;AAAA,EAEA,IAAI,eAAe;AAAA,IAClB,MAAM,UAAU,eAAa,UAAU,OAAO;AAAA,IAE9C,OAAO,6BAA6B,UAAU,OAAO;AAAA,EACtD;AAAA,EAEA,OAAO,CAAC;AAAA,GAGI,sBAAsB,CAAC,aAAqB;AAAA,EACxD,IAAI;AAAA,IACH,OAAO,2BAA2B,QAAQ;AAAA,IACzC,MAAM;AAAA,IACP,OAAO,CAAC;AAAA;AAAA,GAIG,mBAAmB,CAC/B,OACA,gBACI;AAAA,EACJ,MAAM,iBAAiB,UAAQ,WAAW;AAAA,EAC1C,MAAM,WAAW,IAAI;AAAA,EACrB,MAAM,YAAY,CAAC,cAAc;AAAA,EAEjC,MAAM,cAAc,CAAC,YAAoB;AAAA,IACxC,IAAI,SAAS,IAAI,OAAO;AAAA,MAAG;AAAA,IAE3B,SAAS,IAAI,OAAO;AAAA,IAEpB,MAAM,aAAa,MAAM,WAAW,IAAI,OAAO;AAAA,IAC/C,IAAI,CAAC;AAAA,MAAY;AAAA,IAEjB,WAAW,QAAQ,CAAC,cAAc,UAAU,KAAK,SAAS,CAAC;AAAA;AAAA,EAG5D,OAAO,UAAU,SAAS,GAAG;AAAA,IAC5B,MAAM,UAAU,UAAU,IAAI,KAAK;AAAA,IACnC,YAAY,OAAO;AAAA,EACpB;AAAA,EAEA,OAAO,MAAM,KAAK,QAAQ;AAAA,GAGrB,oBAAoB,CAAC,OAAwB,mBAA2B;AAAA,EAC7E,MAAM,OAAO,MAAM,aAAa,IAAI,cAAc;AAAA,EAClD,IAAI,CAAC;AAAA,IAAM;AAAA,EAEX,WAAW,OAAO,MAAM;AAAA,IACvB,MAAM,aAAa,MAAM,WAAW,IAAI,GAAG;AAAA,IAC3C,IAAI,CAAC;AAAA,MAAY;AAAA,IACjB,WAAW,OAAO,cAAc;AAAA,EACjC;AAAA,EACA,MAAM,aAAa,OAAO,cAAc;AAAA,GAGnC,0BAA0B,CAC/B,OACA,mBACI;AAAA,EACJ,MAAM,aAAa,MAAM,WAAW,IAAI,cAAc;AAAA,EACtD,IAAI,CAAC;AAAA,IAAY;AAAA,EAEjB,WAAW,aAAa,YAAY;AAAA,IACnC,MAAM,UAAU,MAAM,aAAa,IAAI,SAAS;AAAA,IAChD,IAAI,CAAC;AAAA,MAAS;AAAA,IACd,QAAQ,OAAO,cAAc;AAAA,EAC9B;AAAA,EACA,MAAM,WAAW,OAAO,cAAc;AAAA,GAG1B,sBAAsB,CAClC,OACA,aACI;AAAA,EACJ,MAAM,iBAAiB,UAAQ,QAAQ;AAAA,EAEvC,kBAAkB,OAAO,cAAc;AAAA,EACvC,wBAAwB,OAAO,cAAc;AAAA;AAAA;AAAA,EAxWjC,uBAAwC;AAAA,IACpD,cAAc,IAAI;AAAA,IAClB,YAAY,IAAI;AAAA,EACjB;AAAA,EAKM,eAAe,IAAI,IAAI,WAAW,EAAE,QAAQ,MAAM,CAAC;AAAA,EACnD,eAAe,IAAI,IAAI,WAAW,EAAE,QAAQ,KAAK,CAAC;AAAA,EA0FlD,mBAAmB;AAAA,IACxB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA;;;IC9GI,uBAAuB,GAGd,6BAA6B,MACzC,IAAI,KACQ,iBAAiB,MAAM,EAAE,sBACzB,yBAAyB,CACrC,UACA,eACI;AAAA,EACJ,MAAM,aAAa,eAAe;AAAA,EAClC,SAAS,IAAI,YAAY,UAAU;AAAA,EAEnC,OAAO;AAAA,GAEK,0BAA0B,CACtC,UACA,gBACI;AAAA,EACJ,MAAM,UAAU,IAAI;AAAA,EACpB,WAAW,QAAQ,aAAa;AAAA,IAC/B,MAAM,UAAU,uBAAuB,UAAU,IAAI;AAAA,IACrD,QAAQ,IAAI,MAAM,OAAO;AAAA,EAC1B;AAAA,EAEA,OAAO;AAAA,GAEK,0BAA0B,CAAC,aAA6B;AAAA,EACpE,MAAM,aAAqC,CAAC;AAAA,EAC5C,YAAY,MAAM,YAAY,SAAS,QAAQ,GAAG;AAAA,IACjD,WAAW,QAAQ;AAAA,EACpB;AAAA,EAEA,OAAO;AAAA;;;AC3CR,oBAAS;AAAA,IAII,oBAAoB,CAAC,WAAwB;AAAA,EACzD,MAAM,OAAM,QAAQ,IAAI;AAAA,EAExB,MAAM,YAAY,CAAC,SAAiB,KAAK,QAAQ,OAAO,GAAG;AAAA,EAC3D,MAAM,cAAc,CAAC,OAA2B,aAC/C,UAAU,UAAQ,MAAK,SAAS,QAAQ,CAAC;AAAA,EAC1C,MAAM,WAAW,CAAC,UACjB,QAAQ,UAAU,UAAQ,MAAK,KAAK,CAAC,IAAI;AAAA,EAE1C,OAAO;AAAA,IACN,YAAY,SAAS,OAAO,gBAAgB;AAAA,IAC5C,WAAW,SAAS,OAAO,eAAe;AAAA,IAC1C,UAAU,YAAY,OAAO,gBAAgB,OAAO;AAAA,IACpD,SAAS,SAAS,OAAO,aAAa;AAAA,IACtC,SAAS,SAAS,OAAO,aAAa;AAAA,IACtC,UAAU,SAAS,OAAO,cAAc;AAAA,IACxC,WAAW,SACV,OAAO,OAAO,iBAAiB,WAC5B,OAAO,eACP,OAAO,cAAc,IACzB;AAAA,IACA,WAAW,SAAS,OAAO,eAAe;AAAA,IAC1C,QAAQ,SAAS,OAAO,YAAY;AAAA,EACrC;AAAA;AAAA;;;ICQY,iBAAiB,CAAC,YAAmC;AAAA,EACjE,kBAAkB,IAAI;AAAA,EACtB,YAAY,IAAI;AAAA,EAChB;AAAA,EACA,kBAAkB,IAAI;AAAA,EACtB,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,iBAAiB,IAAI;AAAA,EACrB,YAAY,IAAI;AAAA,EAChB,cAAc;AAAA,EACd,UAAU,CAAC;AAAA,EACX,gBAAgB,2BAA2B;AAAA,EAC3C,cAAc;AAAA,EACd,cAAc,IAAI;AAAA,EAClB,gBAAgB;AAAA,EAChB,eAAe,kBAAkB,MAAM;AAAA,EACvC,oBAAoB,IAAI;AAAA,EACxB,gBAAgB,IAAI;AAAA,EACpB,UAAU,CAAC;AACZ,IAGa,6BAA6B,CACzC,OACA,aACI;AAAA,EACJ,MAAM,iBAAiB,MAAM,mBAAmB,IAAI,QAAQ,KAAK;AAAA,EACjE,MAAM,aAAa,iBAAiB;AAAA,EACpC,MAAM,mBAAmB,IAAI,UAAU,UAAU;AAAA,EAEjD,OAAO;AAAA,GAIK,8BAA8B,CAC1C,OACA,cACI;AAAA,EACJ,WAAW,YAAY,WAAW;AAAA,IACjC,2BAA2B,OAAO,QAAQ;AAAA,EAC3C;AAAA;AAAA;AAAA,EA1ED;AAAA,EAOA;AAAA;;;ACRA;AAAA,IAMM,0BAIO,kBAAkB,CAC9B,UACA,aACI;AAAA,EAEJ,IAAI,iBAAiB,UAAU,QAAQ,GAAG;AAAA,IACzC,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,aAAa,SAAS,QAAQ,OAAO,GAAG;AAAA,EAE9C,MAAM,gBAAgB,CAAC,QACtB,MAAM,WAAW,WAAW,IAAI,QAAQ,OAAO,GAAG,CAAC,IAAI;AAAA,EAGxD,IAAI,UAAU;AAAA,IACb,IAAI,cAAc,SAAS,SAAS;AAAA,MAAG,OAAO;AAAA,IAC9C,IAAI,cAAc,SAAS,OAAO;AAAA,MAAG,OAAO;AAAA,IAC5C,IAAI,cAAc,SAAS,QAAQ;AAAA,MAAG,OAAO;AAAA,IAC7C,IAAI,cAAc,SAAS,SAAS;AAAA,MAAG,OAAO;AAAA,IAC9C,IAAI,cAAc,SAAS,MAAM;AAAA,MAAG,OAAO;AAAA,IAC3C,IAAI,cAAc,SAAS,UAAU;AAAA,MAAG,OAAO;AAAA,IAC/C,IAAI,cAAc,SAAS,OAAO;AAAA,MAAG,OAAO;AAAA,IAC5C,IAAI,cAAc,SAAS,SAAS;AAAA,MAAG,OAAO;AAAA,EAC/C,EAAO;AAAA,IAEN,IAAI,WAAW,SAAS,QAAQ;AAAA,MAAG,OAAO;AAAA,IAC1C,IAAI,WAAW,SAAS,SAAS;AAAA,MAAG,OAAO;AAAA,IAC3C,IAAI,WAAW,SAAS,UAAU;AAAA,MAAG,OAAO;AAAA,IAC5C,IAAI,WAAW,SAAS,OAAO;AAAA,MAAG,OAAO;AAAA,IACzC,IAAI,WAAW,SAAS,WAAW;AAAA,MAAG,OAAO;AAAA,IAC7C,IAAI,WAAW,SAAS,QAAQ;AAAA,MAAG,OAAO;AAAA;AAAA,EAI3C,IAAI,WAAW,SAAS,MAAM,KAAK,WAAW,SAAS,MAAM;AAAA,IAC5D,OAAO;AAAA,EACR,IAAI,WAAW,SAAS,SAAS;AAAA,IAAG,OAAO;AAAA,EAC3C,IAAI,WAAW,SAAS,MAAM;AAAA,IAAG,OAAO;AAAA,EACxC,IAAI,WAAW,SAAS,OAAO;AAAA,IAAG,OAAO;AAAA,EACzC,IAAI,WAAW,SAAS,KAAK,KAAK,WAAW,SAAS,SAAS;AAAA,IAC9D,OAAO;AAAA,EAOR,IAAI,WAAW,SAAS,UAAU;AAAA,IAAG,OAAO;AAAA,EAI5C,IAAI,yBAAwB,KAAK,UAAU,GAAG;AAAA,IAE7C,IAAI,WAAW,SAAS,OAAO,KAAK,WAAW,SAAS,OAAO;AAAA,MAC9D,OAAO;AAAA,IACR,IAAI,WAAW,SAAS,UAAU,KAAK,WAAW,SAAS,UAAU;AAAA,MACpE,OAAO;AAAA,IACR,IAAI,WAAW,SAAS,SAAS,KAAK,WAAW,SAAS,SAAS;AAAA,MAClE,OAAO;AAAA,IACR,IACC,WAAW,SAAS,WAAW,KAC/B,WAAW,SAAS,WAAW;AAAA,MAE/B,OAAO;AAAA,IACR,IAAI,WAAW,SAAS,QAAQ,KAAK,WAAW,SAAS,QAAQ;AAAA,MAChE,OAAO;AAAA,IACR,IAAI,WAAW,SAAS,QAAQ,KAAK,WAAW,SAAS,QAAQ;AAAA,MAChE,OAAO;AAAA,IAGR,OAAO;AAAA,EACR;AAAA,EAEA,OAAO;AAAA,GAEF,iBAAiB,CACtB,eACA,QACI;AAAA,EACJ,IAAI,cAAc,WAAW;AAAA,IAAG,OAAO,CAAC;AAAA,EAExC,MAAM,OAAO,eAAe,aAAa;AAAA,EACzC,IAAI,CAAC;AAAA,IAAM,OAAO,CAAC;AAAA,EAEnB,MAAM,aAAa,IAAI,IACtB,CAAC,GAAG,eAAe,IAAI,WAAW,IAAI,SAAS,EAC7C,OAAO,CAAC,QAAuB,QAAQ,GAAG,CAAC,EAC3C,IAAI,CAAC,QAAQ,cAAc,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,CAAC,CACnD;AAAA,EACA,WAAW,IAAI,OAAO;AAAA,EACtB,WAAW,IAAI,cAAc;AAAA,EAC7B,WAAW,IAAI,aAAa;AAAA,EAE5B,IAAI;AAAA,IACH,OAAO,YAAY,MAAM,EAAE,eAAe,KAAK,CAAC,EAC9C,OACA,CAAC,UAAU,MAAM,YAAY,KAAK,CAAC,WAAW,IAAI,MAAM,IAAI,CAC7D,EACC,IAAI,CAAC,UAAU,GAAG,QAAQ,MAAM,MAAM;AAAA,IACvC,MAAM;AAAA,IAEP,OAAO,CAAC;AAAA;AAAA,GAIG,gBAAgB,CAC5B,QACA,aACI;AAAA,EACJ,MAAM,QAAkB,CAAC;AAAA,EAEzB,MAAM,OAAO,CAAC,MAAe,QAAiB;AAAA,IAC7C,IAAI,CAAC;AAAA,MAAM;AAAA,IACX,MAAM,iBAAiB,cAAc,IAAI;AAAA,IACzC,MAAM,KAAK,MAAM,GAAG,kBAAkB,QAAQ,cAAc;AAAA;AAAA,EAG7D,MAAM,MAAM,YAAY;AAAA,IACvB,YAAY,OAAO;AAAA,IACnB,WAAW,OAAO;AAAA,IAClB,SAAS,OAAO;AAAA,IAChB,SAAS,OAAO;AAAA,IAChB,UAAU,OAAO;AAAA,IACjB,WACC,OAAO,OAAO,iBAAiB,WAC5B,OAAO,eACP,OAAO,cAAc;AAAA,IACzB,WAAW,OAAO;AAAA,IAClB,QAAQ,OAAO;AAAA,EAChB;AAAA,EAIA,KAAK,IAAI,QAAQ;AAAA,EACjB,KAAK,IAAI,SAAS;AAAA,EAClB,KAAK,IAAI,MAAM;AAAA,EAEf,KAAK,IAAI,UAAU;AAAA,EAEnB,KAAK,IAAI,SAAS,OAAO;AAAA,EACzB,KAAK,IAAI,SAAS,SAAS;AAAA,EAC3B,KAAK,IAAI,SAAS,QAAQ;AAAA,EAE1B,KAAK,IAAI,SAAS,OAAO;AAAA,EACzB,KAAK,IAAI,SAAS,SAAS;AAAA,EAC3B,KAAK,IAAI,SAAS,QAAQ;AAAA,EAE1B,KAAK,IAAI,SAAS;AAAA,EAClB,KAAK,IAAI,SAAS;AAAA,EAKlB,MAAM,gBAAgB;AAAA,IACrB,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EACL,EACE,OAAO,CAAC,QAAuB,QAAQ,GAAG,CAAC,EAC3C,IAAI,aAAa;AAAA,EAEnB,WAAW,eAAe,eAAe,eAAe,GAAG,GAAG;AAAA,IAC7D,KAAK,WAAW;AAAA,EACjB;AAAA,EAEA,OAAO;AAAA,GAEK,mBAAmB,CAC/B,MACA,aACI;AAAA,EACJ,MAAM,iBAAiB,KAAK,QAAQ,OAAO,GAAG;AAAA,EAG9C,IAAI,UAAU,aAAa,eAAe,WAAW,SAAS,SAAS,GAAG;AAAA,IACzE,OAAO;AAAA,EACR;AAAA,EAIA,MAAM,oBACL;AAAA,EAED,OACC,kBAAkB,KAAK,cAAc,KACrC,eAAe,SAAS,MAAM,KAC9B,eAAe,SAAS,MAAM;AAAA;AAAA;AAAA,EAtMhC;AAAA,EAIM,2BAA0B;AAAA;;;ACNhC;AACA,uBAAS;AACT,iBAAS,mBAAM;AAAA,IAOT,sBAAsB,CAC3B,OACA,aACI;AAAA,EACJ,IAAI;AAAA,IACH,oBAAoB,OAAO,QAAQ;AAAA,IAClC,OAAO,KAAK;AAAA,IACb,mBAAmB,mBAAmB;AAAA,MACrC,SAAS,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAAA,MACxD,WAAW;AAAA,IACZ,CAAC;AAAA;AAAA,GAIG,iBAAiB,CACtB,OACA,aACI;AAAA,EACJ,IAAI;AAAA,IACH,eAAe,OAAO,QAAQ;AAAA,IAC7B,OAAO,KAAK;AAAA,IACb,mBAAmB,mBAAmB;AAAA,MACrC,SAAS,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAAA,MACxD,WAAW;AAAA,IACZ,CAAC;AAAA;AAAA,GAIG,qBAAqB,CAAC,UAAkB,gBAC5C,CAAC,gBACA,aAAa,cACb,aAAa,eACb,aAAa,WACb,aAAa,aACb,aAAa,YACb,aAAa,YACb,SAAS,SAAS,YAAY,KAC9B,SAAS,SAAS,aAAa,KAC/B,SAAS,SAAS,SAAS,KAC3B,SAAS,SAAS,WAAW,KAC7B,SAAS,SAAS,UAAU,KAC5B,SAAS,SAAS,UAAU,KAC5B,SAAS,WAAW,WAAW,KAC/B,SAAS,WAAW,YAAY,KAChC,SAAS,WAAW,QAAQ,KAC5B,SAAS,WAAW,UAAU,KAC9B,SAAS,WAAW,SAAS,KAC7B,SAAS,WAAW,SAAS,MAC/B,SAAS,SAAS,GAAG,KACrB,SAAS,SAAS,OAAO,KACzB,SAAS,SAAS,MAAM,KACxB,SAAS,SAAS,GAAG,KACrB,SAAS,WAAW,IAAI,GAEnB,eAAe,CACpB,cACA,aACA,OACA,iBACI;AAAA,EACJ,MAAM,UAAU,MACf,cACA,EAAE,WAAW,KAAK,GAClB,CAAC,OAAO,aAAa;AAAA,IACpB,IAAI,CAAC,UAAU;AAAA,MACd;AAAA,IACD;AAAA,IACA,IAAI,mBAAmB,UAAU,WAAW,GAAG;AAAA,MAC9C;AAAA,IACD;AAAA,IAEA,MAAM,WAAW,OAAK,cAAc,QAAQ,EAAE,QAAQ,OAAO,GAAG;AAAA,IAEhE,IAAI,iBAAiB,UAAU,MAAM,aAAa,GAAG;AAAA,MACpD;AAAA,IACD;AAAA,IAEA,IAAI,UAAU,YAAY,CAAC,aAAW,QAAQ,GAAG;AAAA,MAChD,oBAAoB,MAAM,iBAAiB,QAAQ;AAAA,MACnD,aAAa,QAAQ;AAAA,MAErB;AAAA,IACD;AAAA,IAEA,IAAI,aAAW,QAAQ,GAAG;AAAA,MACzB,aAAa,QAAQ;AAAA,MACrB,eAAe,MAAM,iBAAiB,QAAQ;AAAA,IAC/C;AAAA,GAEF;AAAA,EAEA,MAAM,SAAS,KAAK,OAAO;AAAA,GAIf,kBAAkB,CAC9B,OACA,OACA,iBACI;AAAA,EACJ,MAAM,YAAY,MAAM,eAAe;AAAA,EAEvC,MAAM,QAAQ,CAAC,SAAS;AAAA,IACvB,MAAM,eAAe,UAAQ,IAAI,EAAE,QAAQ,OAAO,GAAG;AAAA,IACrD,IAAI,CAAC,aAAW,YAAY,GAAG;AAAA,MAC9B;AAAA,IACD;AAAA,IAEA,MAAM,cAAc,QACnB,aAAa,aAAa,WAAW,SAAS,CAC/C;AAAA,IACA,aAAa,cAAc,aAAa,OAAO,YAAY;AAAA,GAC3D;AAAA,GAKW,oBAAoB,CAChC,OACA,QACA,iBACI;AAAA,EACJ,MAAM,aAAa,cAAc,QAAQ,MAAM,aAAa;AAAA,EAC5D,MAAM,YAAY,MAAM,eAAe;AAAA,EAEvC,WAAW,QAAQ,CAAC,SAAS;AAAA,IAC5B,MAAM,eAAe,UAAQ,IAAI,EAAE,QAAQ,OAAO,GAAG;AAAA,IACrD,IAAI,CAAC,aAAW,YAAY,GAAG;AAAA,MAC9B;AAAA,IACD;AAAA,IAEA,MAAM,cAAc,QACnB,aAAa,aAAa,WAAW,SAAS,CAC/C;AAAA,IACA,aAAa,cAAc,aAAa,OAAO,YAAY;AAAA,GAC3D;AAAA;AAAA;AAAA,EA5IF;AAAA,EAEA;AAAA,EACA;AAAA;;;ACPA,oBAAS;AACT,oBAAS;AAAA,IAEH,WAYO,cAAc,CAAC,aAAqB;AAAA,EAChD,MAAM,MAAM,SAAS,MAAM,SAAS,YAAY,GAAG,CAAC;AAAA,EAEpD,OAAO,UAAU,QAAQ;AAAA,GAIpB,gBAIA,YAAY,CAAC,YAClB,QAAQ,QAAQ,kCAAkC,IAAI,GAEjD,mBAAmB,CACxB,OACA,KACA,gBACA,iBACI;AAAA,EACJ,MAAM,WAAW,UAAQ,KAAK,MAAM,IAAI;AAAA,EACxC,IAAI,MAAM,YAAY,GAAG;AAAA,IACxB,OAAO,aAAa,QAAQ;AAAA,EAC7B;AAAA,EACA,IAAI,CAAC,eAAe,KAAK,MAAM,IAAI,GAAG;AAAA,IACrC,OAAO;AAAA,EACR;AAAA,EACA,MAAM,WAAW,UAAU,QAAQ;AAAA,EACnC,MAAM,WAAW,eAAe,IAAI,QAAQ;AAAA,EAI5C,IAAI,aAAa,UAAU;AAAA,IAC1B,OAAO,OAAO,QAAQ,EAAE,MAAM,MAAM,EAEnC;AAAA,EACF;AAAA,EAEA,OAAO;AAAA,GAMK,mBAAmB,OAC/B,OACA,UACA,aACI;AAAA,EAEJ,MAAM,iBAAiB,IAAI;AAAA,EAG3B,WAAW,WAAW,MAAM,KAAK,GAAG;AAAA,IACnC,MAAM,WAAW,UAAQ,UAAU,QAAQ,MAAM,CAAC,CAAC;AAAA,IACnD,eAAe,IAAI,UAAU,QAAQ,GAAG,QAAQ;AAAA,EACjD;AAAA,EAIA,MAAM,cAAc,UAAQ,QAAQ;AAAA,EACpC,OAAO,OAAO,QAAQ,EAAE,QAAQ,CAAC,QAAQ;AAAA,IACxC,IAAI,CAAC,eAAe,KAAK,GAAG;AAAA,MAAG;AAAA,IAC/B,IAAI,IAAI,WAAW,WAAW,GAAG;AAAA,MAChC,eAAe,IAAI,UAAU,GAAG,GAAG,GAAG;AAAA,IACvC;AAAA,GACA;AAAA,EAED,IAAI;AAAA,IACH,MAAM,eAAe,OAAO,QAAgB;AAAA,MAC3C,MAAM,UAAU,MAAM,SAAQ,KAAK,EAAE,eAAe,KAAK,CAAC;AAAA,MAC1D,MAAM,QAAQ,QACZ,IAAI,CAAC,UACL,iBAAiB,OAAO,KAAK,gBAAgB,YAAY,CAC1D,EACC,OAAO,CAAC,SAAgC,SAAS,IAAI;AAAA,MACvD,MAAM,QAAQ,IAAI,KAAK;AAAA;AAAA,IAExB,MAAM,aAAa,QAAQ;AAAA,IAC1B,MAAM;AAAA,GAII,cAAc,CAAC,OAAgC,SAC3D,MAAM,IAAI,IAAI,GAET,mBAAmB,CACxB,OACA,KACA,QACA,OACA,YACI;AAAA,EACJ,IAAI,MAAM,YAAY,GAAG;AAAA,IACxB,OAAO,QAAQ,UAAQ,KAAK,MAAM,IAAI,GAAG,GAAG,SAAS,MAAM,OAAO;AAAA,EACnE;AAAA,EACA,IAAI,CAAC,MAAM,KAAK,WAAW,QAAQ,GAAG;AAAA,IACrC,OAAO;AAAA,EACR;AAAA,EACA,MAAM,UAAU,IAAI,SAAS,MAAM;AAAA,EACnC,IAAI,MAAM,IAAI,OAAO,GAAG;AAAA,IACvB,OAAO;AAAA,EACR;AAAA,EAEA,OAAO,IAAI,KAAK,UAAQ,KAAK,MAAM,IAAI,CAAC,EACtC,MAAM,EACN,KAAK,CAAC,UAAU;AAAA,IAChB,MAAM,IAAI,SAAS,KAAK;AAAA,IAExB;AAAA,GACA,EACA,MAAM,MAAM,EAEZ;AAAA,GAGU,qBAAqB,OACjC,OACA,UACA,aACI;AAAA,EACJ,MAAM,eAAgC,CAAC;AAAA,EAIvC,MAAM,gBAAgB,IAAI;AAAA,EAC1B,WAAW,WAAW,OAAO,OAAO,QAAQ,GAAG;AAAA,IAC9C,IAAI,CAAC,QAAQ,WAAW,GAAG;AAAA,MAAG;AAAA,IAC9B,cAAc,IAAI,UAAU,OAAO,GAAG,OAAO;AAAA,EAC9C;AAAA,EAWA,MAAM,YAAY,CAAC,GAAG,MAAM,KAAK,CAAC,EAAE,OAAO,CAAC,iBAAiB;AAAA,IAC5D,IAAI,aAAa,SAAS,SAAS;AAAA,MAAG,OAAO;AAAA,IAC7C,MAAM,cAAc,cAAc,IAAI,UAAU,YAAY,CAAC;AAAA,IAC7D,OAAO,gBAAgB,aAAa,gBAAgB;AAAA,GACpD;AAAA,EACD,UAAU,QAAQ,CAAC,QAAQ,MAAM,OAAO,GAAG,CAAC;AAAA,EAE5C,WAAW,WAAW,cAAc,OAAO,GAAG;AAAA,IAG7C,IAAI,MAAM,IAAI,OAAO;AAAA,MAAG;AAAA,IAExB,aAAa,KACZ,IAAI,KAAK,UAAQ,UAAU,QAAQ,MAAM,CAAC,CAAC,CAAC,EAC1C,MAAM,EACN,KAAK,CAAC,UAAU;AAAA,MAChB,MAAM,IAAI,SAAS,KAAK;AAAA,MAExB;AAAA,KACA,EACA,MAAM,MAAM,EAEZ,CACH;AAAA,EACD;AAAA,EAIA,IAAI;AAAA,IACH,MAAM,UAAU,OAAO,KAAa,WAAmB;AAAA,MACtD,MAAM,UAAU,MAAM,SAAQ,KAAK,EAAE,eAAe,KAAK,CAAC;AAAA,MAC1D,MAAM,WAAW,QACf,IAAI,CAAC,UACL,iBAAiB,OAAO,KAAK,QAAQ,OAAO,OAAO,CACpD,EACC,OAAO,CAAC,SAAgC,SAAS,IAAI;AAAA,MACvD,MAAM,QAAQ,IAAI,QAAQ;AAAA;AAAA,IAE3B,MAAM,QAAQ,UAAU,EAAE;AAAA,IACzB,MAAM;AAAA,EAIR,MAAM,QAAQ,IAAI,YAAY;AAAA;AAAA;AAAA,EAnMzB,YAAoC;AAAA,IACzC,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,UAAU;AAAA,EACX;AAAA,EAUM,iBAAiB;AAAA;;;ACtBvB,yBAAS;AACT,oBAAS,sBAAS;AAAA,IAqBZ,cAeA,cAAc,CAAC,WAEnB;AAAA,EACC,EAAE,KAAK,OAAO,kBAAkB,WAAW,UAAU;AAAA,EACrD,EAAE,KAAK,OAAO,gBAAgB,WAAW,QAAQ;AAAA,EACjD,EAAE,KAAK,OAAO,iBAAiB,WAAW,SAAS;AAAA,EACnD,EAAE,KAAK,OAAO,cAAc,WAAW,MAAM;AAAA,EAC7C,EAAE,KAAK,OAAO,eAAe,WAAW,OAAO;AAAA,EAC/C,EAAE,KAAK,OAAO,eAAe,WAAW,OAAO;AAChD,EAIC,OACD,CAAC,UACA,OAAO,MAAM,QAAQ,YAAY,MAAM,IAAI,SAAS,CACtD,GAEK,0BAA0B,OAAO,WAAwB;AAAA,EAC9D,MAAM,eAAe,OAAO,SAAS;AAAA,EACrC,IAAI,CAAC,cAAc;AAAA,IAClB,OAAO,IAAI;AAAA,EACZ;AAAA,EAEA,MAAM,YAAY,MAAM,4BAA4B,YAAY;AAAA,EAChE,MAAM,SAAS,IAAI;AAAA,EAEnB,WAAW,cAAc,UAAU,aAAa;AAAA,IAC/C,MAAM,SAAS,WAAW,gBAAgB;AAAA,IAC1C,IAAI,CAAC;AAAA,MAAQ;AAAA,IAEb,MAAM,iBAAiB,OAAO,WAAW,SAAS,IAC/C,IAAI,IAAI,MAAM,EAAE,WAChB,UAAQ,UAAQ,UAAU,oBAAoB,GAAG,MAAM;AAAA,IAE1D,OAAO,IACN,GAAG,WAAW,aAAa,WAAW,aACtC,UAAQ,cAAc,CACvB;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,GAGK,+BAA+B,MAC3C,WAAW,gCACX,IAAI,KACC,qBAAqB,CAAC,UAA8B,WACzD,SAAS,QAAQ,KAAK,CAAC,UAAU;AAAA,EAChC,MAAM,YAAY,MAAM;AAAA,EAExB,OAAO,YAAY,UAAQ,SAAS,MAAM,SAAS;AAAA,CACnD,GAEW,4BAA4B,CAAC,eAAuB;AAAA,EAChE,MAAM,SAAS,UAAQ,UAAU;AAAA,EAEjC,OAAO,CAAC,GAAG,6BAA6B,EAAE,OAAO,CAAC,EAChD,OAAO,CAAC,aAAa,mBAAmB,UAAU,MAAM,CAAC,EACzD,IAAI,CAAC,aAAa,SAAS,QAAQ;AAAA,GAEhC,sBAAsB,CAC3B,SACA,uBAEA,QAAQ,IAAI,CAAC,UAAU;AAAA,EACtB,MAAM,aAAa,mBAAmB,IACrC,GAAG,MAAM,aAAa,MAAM,WAC7B;AAAA,EAEA,OAAO,aACJ;AAAA,OACG;AAAA,IACH,QAAQ;AAAA,EACT,IACC;AAAA,CACH,GAEI,sBAAsB,OAC3B,OACA,oBACA,iBACI;AAAA,EACJ,MAAM,UAAU,aAAa,MAAM;AAAA,EACnC,IAAI,CAAC;AAAA,IAAS;AAAA,EAEd,MAAM,QAAQ,MAAM,gBAAgB,UAAQ,MAAM,GAAG,GAAG,OAAO;AAAA,EAC/D,WAAW,YAAY,OAAO;AAAA,IAC7B,MAAM,SAAS,eAAa,UAAU,OAAO;AAAA,IAC7C,MAAM,UAAU,8BAA8B,MAAM;AAAA,IACpD,aAAa,IAAI,UAAQ,QAAQ,GAAG;AAAA,MACnC,SAAS,oBAAoB,SAAS,kBAAkB;AAAA,MACxD,UAAU,UAAQ,QAAQ;AAAA,IAC3B,CAAC;AAAA,EACF;AAAA,GAGY,yBAAyB,OAAO,WAAwB;AAAA,EACpE,MAAM,eAAe,IAAI;AAAA,EACzB,MAAM,qBAAqB,MAAM,wBAAwB,MAAM;AAAA,EAE/D,MAAM,QAAQ,IACb,YAAY,MAAM,EAAE,IAAI,CAAC,UACxB,oBAAoB,OAAO,oBAAoB,YAAY,CAC5D,CACD;AAAA,EAEA,OAAO;AAAA,GAEK,+BAA+B,CAC3C,aACI;AAAA,EACJ,WAAW,+BAA+B;AAAA;AAAA;AAAA,EAjJ3C;AAAA,EACA;AAAA,EACA;AAAA,EAgBM,eACL;AAAA,IACC,SAAS;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,KAAK;AAAA,EACN;AAAA;;;AC9BD,yBAAS;AAAA,IAOI,kBAAkB,CAAC,aAAqB;AAAA,EACpD,IAAI;AAAA,IACH,MAAM,cAAc,eAAa,QAAQ;AAAA,IAEzC,OAAO,OAAO,IAAI,KAAK,WAAW,CAAC;AAAA,IAClC,MAAM;AAAA,IACP,OAAO;AAAA;AAAA,GAOI,iBAAiB,CAC7B,UACA,aACA,mBACI;AAAA,EAEJ,MAAM,iBAAiB,cAAc,QAAQ;AAAA,EAC7C,MAAM,eAAe,eAAe,IAAI,cAAc;AAAA,EAEtD,IAAI,iBAAiB,WAAW;AAAA,IAE/B,OAAO;AAAA,EACR;AAAA,EAEA,OAAO,iBAAiB;AAAA;AAAA;AAAA,EAjCzB;AAAA;;;;;;;;;;;;ICMM,OAKA,WAOO,iBAAiB,CAAC,aAC9B,MAAM,IAAI,QAAQ,GAAG,SAET,iBAAiB,CAC7B,UACA,SACA,OACA,YACI;AAAA,EACJ,MAAM,kBAAkB,WAAW,CAAC;AAAA,EACpC,MAAM,IAAI,UAAU,EAAE,SAAS,SAAS,iBAAiB,MAAM,CAAC;AAAA,EAGhE,WAAW,OAAO,iBAAiB;AAAA,IAClC,MAAM,MAAM,UAAU,IAAI,GAAG,KAAK,IAAI;AAAA,IACtC,UAAU,IAAI,KAAK,GAAG;AAAA,IACtB,IAAI,IAAI,QAAQ;AAAA,EACjB;AAAA,GAMK,sBAIA,kBAAkB,CAAC,aACxB,SAAS,SAAS,MAAM,KAAK,SAAS,SAAS,MAAM,GAEhD,iBAAiB,CAAC,SAAsB,UAAoB;AAAA,EACjE,MAAM,YAAY,CAAC,GAAG,OAAO,EAAE,KAAK,eAAe;AAAA,EACnD,IAAI,cAAc;AAAA,IAAW,OAAO;AAAA,EAEpC,WAAW,UAAU;AAAA,IAAS,MAAM,KAAK,MAAM;AAAA,EAE/C;AAAA,GAGY,uBAAuB,CAAC,aAAqB;AAAA,EACzD,MAAM,UAAU,IAAI;AAAA,EACpB,MAAM,QAAQ,CAAC,QAAQ;AAAA,EAEvB,OAAO,MAAM,SAAS,GAAG;AAAA,IACxB,MAAM,UAAU,MAAM,MAAM;AAAA,IAC5B,IAAI,CAAC;AAAA,MAAS;AAAA,IACd,IAAI,QAAQ,IAAI,OAAO;AAAA,MAAG;AAAA,IAC1B,QAAQ,IAAI,OAAO;AAAA,IAEnB,MAAM,UAAU,UAAU,IAAI,OAAO;AAAA,IACrC,IAAI,CAAC;AAAA,MAAS;AAAA,IAEd,MAAM,QAAQ,eAAe,SAAS,KAAK;AAAA,IAC3C,IAAI,UAAU;AAAA,MAAW,OAAO;AAAA,EACjC;AAAA,EAEA;AAAA,GAEY,yBAAyB,CAAC,aACtC,qBAAqB,IAAI,QAAQ,KAAK,GAC1B,aAAa,CAAC,aAAqB;AAAA,EAC/C,MAAM,OAAO,QAAQ;AAAA,EAIrB,qBAAqB,IACpB,WACC,qBAAqB,IAAI,QAAQ,KAAK,KAAK,CAC7C;AAAA,EAIA,WAAW,UAAU,UAAU,IAAI,QAAQ,KAAK,CAAC,GAAG;AAAA,IACnD,MAAM,OAAO,MAAM;AAAA,EACpB;AAAA,GAEY,gBAAgB,MAAM;AAAA,EAClC,MAAM,MAAM;AAAA,EACZ,UAAU,MAAM;AAAA;AAAA;AAAA,EA1FX,QAAQ,WAAW,oBAAoB,IAAI;AAAA,EACjD,WAAW,mBAAmB;AAAA,EAIxB,YACL,WAAW,wBAAwB,IAAI;AAAA,EACxC,WAAW,uBAAuB;AAAA,EA4B5B,uBACL,WAAW,mCAAmC,IAAI;AAAA,EACnD,WAAW,kCAAkC;AAAA;;;AC5C7C,oBAAS;AAAA,IAkBI,oBAAoB,CAAC,aAAqB;AAAA,EACtD,MAAM,iBAAiB,UAAQ,QAAQ;AAAA,EAGvC,IAAI,eAAe,SAAS,eAAe,GAAG;AAAA,IAC7C,OAAO;AAAA,EACR;AAAA,EAGA,IACC,eAAe,SAAS,oBAAoB,KAC5C,eAAe,SAAS,qBAAqB,GAC5C;AAAA,IACD,OAAO;AAAA,EACR;AAAA,EAKA,OAAO;AAAA;AAAA;;;ACrCR,qBAAS,sBAAU;AAAA,IAoBb,mBAAmB,CACxB,YACA,aACI;AAAA,EACJ,MAAM,cAAsC,CAAC;AAAA,EAC7C,WAAW,QAAQ,CAAC,QAAQ;AAAA,IAC3B,IAAI,SAAS,MAAM;AAAA,MAClB,YAAY,OAAO,SAAS;AAAA,IAC7B;AAAA,GACA;AAAA,EAED,OAAO;AAAA,GAGF,qBAAqB,CAC1B,YACA,WACA,UACA,eAQA,mBACI;AAAA,EACJ,MAAM,iBAAiB,UAAQ,UAAU;AAAA,EACzC,MAAM,iBAAiB,eAAe,QAAQ,OAAO,GAAG;AAAA,EAExD,IAAI,eAAe,IAAI,cAAc,GAAG;AAAA,IACvC,OAAO;AAAA,EACR;AAAA,EACA,eAAe,IAAI,cAAc;AAAA,EAEjC,MAAM,aAAa,4BAClB,gBACA,WACA,aACD;AAAA,EAEA,MAAM,cAAc,eAAe,WAChC,eAAe,WACf,GAAG,cAAc,SAAS,QAAQ,OAAO,GAAG,UAC7C,IACC,eAAe,SAAS,eAAe;AAAA,EAE1C,IAAI,cAAc,WAAW,CAAC,aAAa;AAAA,IAC1C,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,cAAc,iBAAiB,YAAY,QAAQ;AAAA,EAEzD,IAAI,OAAO,KAAK,WAAW,EAAE,WAAW,GAAG;AAAA,IAC1C,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,gBACL,cAAc,UAAU,kBAAkB,cAAc,IAAI;AAAA,EAE7D,OAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA,YAAY,OAAO,KAAK,WAAW;AAAA,IACnC;AAAA,IACA,YAAY;AAAA,EACb;AAAA,GAGY,sBAAsB,CAClC,cACA,WACA,UACA,kBAMI;AAAA,EACJ,MAAM,iBAAiB,IAAI;AAAA,EAE3B,OAAO,aACL,IAAI,CAAC,eACL,mBACC,YACA,WACA,UACA,eACA,cACD,CACD,EACC,OAAO,CAAC,WAAW,WAAW,IAAI;AAAA,GAExB,gCAAgC,CAAC,YAA4B;AAAA,EACzE,MAAM,UAAU,IAAI;AAAA,EAEpB,QAAQ,QAAQ,CAAC,WAAW;AAAA,IAC3B,IAAI,CAAC,QAAQ,IAAI,OAAO,SAAS,GAAG;AAAA,MACnC,QAAQ,IAAI,OAAO,WAAW,CAAC,CAAC;AAAA,IACjC;AAAA,IACA,QAAQ,IAAI,OAAO,SAAS,GAAG,KAAK,MAAM;AAAA,GAC1C;AAAA,EAED,OAAO;AAAA,GAEK,8BAA8B,CAC1C,YACA,WACA,kBAMI;AAAA,EACJ,MAAM,iBAAiB,UAAQ,UAAU;AAAA,EACzC,MAAM,WAAW,UAAS,cAAc;AAAA,EAGxC,MAAM,WAAW,SAAS,QAAQ,sCAAsC,EAAE;AAAA,EAC1E,MAAM,aAAa,SAAS,QAAQ;AAAA,EAEpC,MAAM,OAAiB,CAAC;AAAA,EAExB,MAAM,WAAW,CAAC,KAAyB,QAAgB;AAAA,IAC1D,IAAI,CAAC;AAAA,MAAK,OAAO;AAAA,IACjB,MAAM,SAAS,GAAG,IAAI,QAAQ,OAAO,GAAG,KAAK;AAAA,IAE7C,OAAO,eAAe,WAAW,MAAM;AAAA;AAAA,EAGxC,QAAQ;AAAA,SACF;AAAA,MAEJ,IACC,SAAS,eAAe,UAAU,OAAO,KACzC,eAAe,SAAS,eAAe,GACtC;AAAA,QACD,KAAK,KAAK,GAAG,iBAAiB;AAAA,QAC9B,KAAK,KAAK,GAAG,eAAe;AAAA,MAC7B;AAAA,MAIA;AAAA,SAEI;AAAA,MAEJ,IACC,SAAS,eAAe,WAAW,OAAO,KAC1C,eAAe,SAAS,gBAAgB,GACvC;AAAA,QACD,KAAK,KAAK,UAAU;AAAA,QACpB,KAAK,KAAK,GAAG,iBAAiB;AAAA,QAC9B,KAAK,KAAK,GAAG,eAAe;AAAA,MAC7B;AAAA,MACA;AAAA,SAEI;AAAA,MAEJ,IACC,SAAS,eAAe,QAAQ,OAAO,KACvC,eAAe,SAAS,aAAa,GACpC;AAAA,QACD,KAAK,KAAK,UAAU;AAAA,QACpB,KAAK,KAAK,GAAG,iBAAiB;AAAA,QAC9B,KAAK,KAAK,GAAG,eAAe;AAAA,MAC7B;AAAA,MACA;AAAA,SAEI;AAAA,MAEJ,IACC,SAAS,eAAe,YAAY,OAAO,KAC3C,eAAe,SAAS,iBAAiB,GACxC;AAAA,QACD,KAAK,KAAK,UAAU;AAAA,QACpB,KAAK,KAAK,GAAG,iBAAiB;AAAA,MAC/B;AAAA,MACA;AAAA,SAEI;AAAA,SACA;AAAA,MAEJ;AAAA,SAEI;AAAA,MAEJ,IAAI,YAAY,cAAc,GAAG;AAAA,QAChC,KAAK,KAAK,GAAG,eAAe;AAAA,MAC7B;AAAA,MACA;AAAA;AAAA,EAGF,OAAO;AAAA;AAAA;AAAA,EAvNR;AAAA,EAEA;AAAA;;;ICFa,sBAAsB;;;ICEtB,0BAA0B,CACtC,SAC8B;AAAA,EAC9B,IAAI,CAAC,QAAQ,OAAO,SAAS,UAAU;AAAA,IACtC,OAAO;AAAA,EACR;AAAA,EAEA,IAAI,EAAE,UAAU,SAAS,OAAO,KAAK,SAAS,UAAU;AAAA,IACvD,OAAO;AAAA,EACR;AAAA,EAEA,QAAQ,KAAK;AAAA,SACP;AAAA,SACA;AAAA,SACA;AAAA,SACA;AAAA,SACA;AAAA,MACJ,OAAO;AAAA;AAAA,MAEP,OAAO;AAAA;AAAA;;;ICfJ,iBAAiB,CAAC,QAAsB,eAAuB;AAAA,EACpE,IAAI;AAAA,IACH,OAAO,KAAK,UAAU;AAAA,IAEtB,OAAO;AAAA,IACN,MAAM;AAAA,IACP,OAAO;AAAA;AAAA,GAII,qBAAqB,CACjC,OACA,YACI;AAAA,EACJ,MAAM,aAAa,KAAK,UAAU;AAAA,OAC9B;AAAA,IACH,WAAW,KAAK,IAAI;AAAA,EACrB,CAAC;AAAA,EAED,MAAM,eAAe,CAAC,WAAyB;AAAA,IAC9C,IAAI,OAAO,eAAe;AAAA,MAAqB,OAAO;AAAA,IAEtD,OAAO,CAAC,eAAe,QAAQ,UAAU;AAAA;AAAA,EAG1C,MAAM,kBAAkC,CAAC;AAAA,EACzC,MAAM,iBAAiB,QAAQ,CAAC,WAAW;AAAA,IAC1C,IAAI,aAAa,MAAM;AAAA,MAAG,gBAAgB,KAAK,MAAM;AAAA,GACrD;AAAA,EAED,gBAAgB,QAAQ,CAAC,WAAW;AAAA,IACnC,MAAM,iBAAiB,OAAO,MAAM;AAAA,GACpC;AAAA,GAEW,sBAAsB,CAClC,OACA,QACA,aACI;AAAA,EACJ,MAAM,iBAAiB,IAAI,MAAM;AAAA,EAEjC,MAAM,iBAAiB,wBAAwB,MAAM,cAAc;AAAA,EACnE,OAAO,KACN,KAAK,UAAU;AAAA,IACd,MAAM;AAAA,MACL;AAAA,MACA;AAAA,IACD;AAAA,IACA,WAAW,KAAK,IAAI;AAAA,IACpB,MAAM;AAAA,EACP,CAAC,CACF;AAAA,EAEA,OAAO,KACN,KAAK,UAAU;AAAA,IACd,SAAS;AAAA,IACT,WAAW,KAAK,IAAI;AAAA,IACpB,MAAM;AAAA,EACP,CAAC,CACF;AAAA,GAEY,yBAAyB,CACrC,OACA,WACI;AAAA,EACJ,MAAM,iBAAiB,OAAO,MAAM;AAAA,GAG/B,gBAAgB,CAAC,QAAgB,KAAK,MAAM,GAAG,GAE/C,eAAe,CAAC,YAAqB;AAAA,EAC1C,IAAI,OAAO,YAAY,UAAU;AAAA,IAChC,OAAO,cAAc,OAAO;AAAA,EAC7B;AAAA,EAEA,IAAI,mBAAmB,QAAQ;AAAA,IAC9B,OAAO,cAAc,QAAQ,SAAS,CAAC;AAAA,EACxC;AAAA,EAEA,IAAI,mBAAmB,aAAa;AAAA,IACnC,OAAO,cAAc,IAAI,YAAY,EAAE,OAAO,IAAI,WAAW,OAAO,CAAC,CAAC;AAAA,EACvE;AAAA,EAEA,IAAI,YAAY,OAAO,OAAO,GAAG;AAAA,IAChC,MAAM,OAAmB,IAAI,WAC5B,QAAQ,QACR,QAAQ,YACR,QAAQ,UACT;AAAA,IAEA,OAAO,cAAc,IAAI,YAAY,EAAE,OAAO,IAAI,CAAC;AAAA,EACpD;AAAA,EAEA,IAAI,OAAO,YAAY,YAAY,YAAY,MAAM;AAAA,IACpD,OAAO;AAAA,EACR;AAAA,EAEA,OAAO;AAAA,GAGF,sBAAsB,CAC3B,OACA,QACA,SACI;AAAA,EACJ,QAAQ,KAAK;AAAA,SACP;AAAA,MACJ,OAAO,KACN,KAAK,UAAU;AAAA,QACd,WAAW,KAAK,IAAI;AAAA,QACpB,MAAM;AAAA,MACP,CAAC,CACF;AAAA,MACA;AAAA,SAEI;AAAA,MACJ;AAAA,SAEI;AAAA,MACJ,IAAI,KAAK,WAAW;AAAA,QACnB,MAAM,iBAAiB,IAAI,KAAK,SAAS;AAAA,MAC1C;AAAA,MACA;AAAA,SAEI;AAAA,MACJ,aACC,MAAM,eAAe,IACrB,MAAM,kBACN,KAAK,QACN;AAAA,MACA;AAAA;AAAA,GAIU,mBAAmB,CAC/B,OACA,QACA,YACI;AAAA,EACJ,IAAI;AAAA,IACH,MAAM,aAAa,aAAa,OAAO;AAAA,IACvC,IAAI,eAAe,MAAM;AAAA,MACxB;AAAA,IACD;AAAA,IAEA,IAAI,CAAC,wBAAwB,UAAU,GAAG;AAAA,MACzC;AAAA,IACD;AAAA,IAEA,oBAAoB,OAAO,QAAQ,UAAU;AAAA,IAC5C,MAAM;AAAA;AAAA;AAAA,EAxJT;AAAA;;;ICHM,iBAEO,kBAAkB,CAAC,cAC/B,gBAAgB,IAAI,SAAS,GACjB,oBAAoB,CAAC,cAA+B;AAAA,EAChE,gBAAgB,IAAI,SAAS;AAAA;AAAA;AAAA,EALxB,kBAAkB,IAAI;AAAA;;;;;;;;;;;;ACD5B,uBAAS,8BAAY,4BAAc;AACnC,qBAAS,sBAAU,sBAAS,qBAAS,uBAAS;AAAA,IAkBxC,aAAa,UAEb,eASA,eAKA,eAKA,cAGA,gBAKA,oBAKA,sBAAsB,CAC3B,gBACA,YACA,iBACI;AAAA,EACJ,MAAM,WAAW,eAAe,QAAQ,oBAAoB,IAAI;AAAA,EAChE,MAAM,aAAuB,CAAC;AAAA,EAC9B,IAAI;AAAA,EACJ,eAAe,YAAY;AAAA,EAC3B,QAAQ,QAAQ,eAAe,KAAK,QAAQ,OAAO,MAAM;AAAA,IACxD,IAAI,MAAM;AAAA,MAAI,WAAW,KAAK,MAAM,EAAE;AAAA,EACvC;AAAA,EAEA,MAAM,WAAW,IAAI,IAAI,YAAY;AAAA,EACrC,MAAM,cAAc,WAAW,OAAO,CAAC,QAAQ,CAAC,SAAS,IAAI,GAAG,CAAC;AAAA,EAEjE,IAAI,YAAY,WAAW;AAAA,IAAG,OAAO;AAAA,EAErC,MAAM,QAAQ,YACZ,IAAI,CAAC,SAAS,gBAAgB,mBAAmB,EACjD,KAAK;AAAA,CAAI;AAAA,EAEX,OAAO,GAAG;AAAA,EAAe;AAAA;AAAA,GAIpB,2BAA2B,CAChC,SACA,aACA,eACI;AAAA,EACJ,MAAM,QAAQ,WAAW,KAAK,CAAC,QAC9B,aAAW,UAAQ,aAAa,UAAU,GAAG,CAAC,CAC/C;AAAA,EAEA,OAAO,QAAQ,UAAU,QAAQ;AAAA,GAG5B,mBACA,wBASA,mBACA,4BAOA,kBAcA,eAAc,CAAC,QAAgB,IAAI,QAAQ,uBAAuB,MAAM,GAExE,sBAAsB,CAAC,gBAAwC;AAAA,EACpE,MAAM,UAAU,OAAO,QAAQ,WAAW,EAAE,KAC3C,EAAE,KAAK,QAAO,GAAE,SAAS,EAAE,MAC5B;AAAA,EACA,IAAI,QAAQ,WAAW;AAAA,IAAG,OAAO;AAAA,EAEjC,MAAM,MAAM,QAAQ,IAAI,EAAE,UAAU,aAAY,IAAI,CAAC,EAAE,KAAK,GAAG;AAAA,EAC/D,MAAM,SAAS,IAAI,IAAI,OAAO;AAAA,EAI9B,MAAM,cAAc,IAAI,OACvB,mDAAmD,4BACnD,GACD;AAAA,EAEA,OAAO,EAAE,QAAQ,YAAY;AAAA,GAKxB,YAKA,eAAe,CAAC,OAAe,YAAoB;AAAA,EACxD,MAAM,sBAAsB,uBAAuB,OAAO;AAAA,EAE1D,OAAO,sBAAsB,IAC1B,GAAG,SAAS,wBACZ,GAAG;AAAA,GAID,SAAS,CAAC,SAAiB,gBAAwB;AAAA,EACxD,MAAM,OAAO,GAAG,aAAa,QAAQ,QAAQ,OAAO,GAAG;AAAA,EACvD,MAAM,UAAU,UAAQ,aAAa,OAAO;AAAA,EAE5C,MAAM,SAAS,WAAW,IAAI,OAAO;AAAA,EACrC,IAAI,WAAW;AAAA,IACd,OAAO,GAAG,UAAU,aAAa,QAAQ,OAAO;AAAA,EAEjD,IAAI;AAAA,IACH,MAAM,QAAQ,KAAK,MAAM,UAAS,OAAO,EAAE,OAAO;AAAA,IAClD,WAAW,IAAI,SAAS,KAAK;AAAA,IAE7B,OAAO,GAAG,UAAU,aAAa,OAAO,OAAO;AAAA,IAC9C,MAAM;AAAA,IACP,OAAO;AAAA;AAAA,GAMH,wBAAwB,CAC7B,SACA,SACA,aACA,eACI;AAAA,EACJ,MAAM,UAAU,UAAQ,SAAS,OAAO;AAAA,EACxC,MAAM,MAAM,WAAS,aAAa,OAAO;AAAA,EACzC,MAAM,YAAY,SAAQ,GAAG;AAAA,EAC7B,IAAI,UAAU,2BAA2B,IAAI,SAAS,IACnD,MACA,yBAAyB,KAAK,aAAa,UAAU;AAAA,EAGxD,IAAI,SAAQ,OAAO,MAAM,WAAW;AAAA,IACnC,UAAU,WACT,aACA,wBAAwB,UAAQ,aAAa,OAAO,CAAC,CACtD;AAAA,EACD;AAAA,EAEA,OAAO,OAAO,SAAS,WAAW;AAAA,GAK7B,2BAA2B,CAAC,WAAmB,gBAAwB;AAAA,EAC5E,IAAI;AAAA,IACH,MAAM,SACL,qBAAqB,WAAW,CAAC,WAAW,QAAQ,CAAC,KACrD,IAAI,YAAY,WAAW,WAAW;AAAA,IAEvC,OAAO,WAAS,aAAa,MAAM;AAAA,IAClC,MAAM;AAAA,IAEP;AAAA;AAAA,GAII,kBAAiB,CACtB,MACA,UACA,aACA,aACI;AAAA,EACJ,IAAI,SAAS;AAAA,EAGb,MAAM,gBAAgB,CACrB,QACA,QACA,WACA,WACI;AAAA,IACJ,MAAM,UAAU,UAAU,OAAO,IAAI,SAAS;AAAA,IAE9C,OAAO,UAAU,GAAG,SAAS,UAAU,WAAW;AAAA;AAAA,EAGnD,IAAI,UAAU;AAAA,IACb,SAAS,YAAY,YAAY;AAAA,IACjC,SAAS,OAAO,QAAQ,SAAS,aAAa,aAAa;AAAA,EAC5D;AAAA,EAIA,MAAM,cAAc,CACnB,QACA,QACA,WACA,WACI;AAAA,IAEJ,IAAI,UAAU,WAAW,GAAG,KAAK,UAAU,WAAW,GAAG;AAAA,MACxD,OAAO;AAAA,IAIR,IAAI,CAAC,UAAU,WAAW,cAAc;AAAA,MACvC,OAAO,GAAG,gBAAgB,mBAAmB,SAAS,IAAI;AAAA,IAE3D,MAAM,WAAW,yBAAyB,WAAW,WAAW;AAAA,IAChE,IAAI,UAAU;AAAA,MACb,OAAO,GAAG,SAAS,OAAO,UAAU,WAAW,IAAI;AAAA,IACpD;AAAA,IAEA,OAAO,GAAG,gBAAgB,mBAAmB,SAAS,IAAI;AAAA;AAAA,EAK3D,SAAS,OAAO,QACf,iGACA,WACD;AAAA,EAEA,SAAS,OAAO,QACf,mDACA,WACD;AAAA,EAGA,MAAM,UAAU,UAAQ,QAAQ;AAAA,EAChC,SAAS,OAAO,QACf,uCACA,CAAC,QAAQ,QAAQ,SAAS,WACzB,GAAG,SAAS,sBAAsB,SAAS,SAAS,aAAa,iBAAiB,IAAI,QACxF;AAAA,EAGA,SAAS,OAAO,QACf,mDACA,CAAC,QAAQ,QAAQ,SAAS,WACzB,GAAG,SAAS,sBAAsB,SAAS,SAAS,aAAa,iBAAiB,IAAI,QACxF;AAAA,EAGA,SAAS,OAAO,QACf,8CACA,CAAC,QAAQ,QAAQ,SAAS,WACzB,GAAG,SAAS,sBAAsB,SAAS,SAAS,aAAa,sBAAsB,IAAI,QAC7F;AAAA,EAIA,SAAS,OAAO,QACf,6DACA,CAAC,QAAQ,QAAQ,SAAS,MAAM,WAAW;AAAA,IAC1C,IAAI,QAAQ,WAAW,WAAW,GAAG;AAAA,MACpC,MAAM,OAAM,WAAS,aAAa,OAAO,EAAE,QAAQ,OAAO,GAAG;AAAA,MAE7D,OAAO,GAAG,SAAS,OAAO,MAAK,WAAW,IAAI;AAAA,IAC/C;AAAA,IAIA,MAAM,MAAM,WAAS,aAAa,OAAO,EAAE,QAAQ,OAAO,GAAG;AAAA,IAE7D,OAAO,GAAG,SAAS,OAAO,KAAK,WAAW,IAAI;AAAA,GAEhD;AAAA,EAGA,SAAS,OAAO,QACf,uEACA,CAAC,QAAQ,YAAY;AAAA,IACpB,MAAM,UAAU,UAAQ,SAAS,OAAO;AAAA,IACxC,MAAM,MAAM,WAAS,aAAa,OAAO;AAAA,IAEzC,OAAO,YAAY,OAAO,KAAK,WAAW;AAAA,GAE5C;AAAA,EAGA,SAAS,OAAO,QACf,2DACA,CAAC,QAAQ,YAAY;AAAA,IACpB,MAAM,UAAU,UAAQ,SAAS,OAAO;AAAA,IACxC,MAAM,MAAM,WAAS,aAAa,OAAO;AAAA,IAEzC,OAAO,IAAI,OAAO,KAAK,WAAW;AAAA,GAEpC;AAAA,EAEA,OAAO;AAAA,GASF,aACA,cACA,aACA,aAEA,eAAe,CAAC,SAAiB;AAAA,EACtC,MAAM,UAAoB,CAAC;AAAA,EAE3B,MAAM,cAAc,YAAY,KAAK,IAAI;AAAA,EACzC,IAAI,aAAa;AAAA,IAChB,QAAQ,KACP,sBAAsB,YAAY,oCACnC;AAAA,EACD;AAAA,EAEA,MAAM,YAAY,aAAa,KAAK,IAAI;AAAA,EACxC,IAAI,cAAc,CAAC,eAAe,UAAU,OAAO,YAAY,KAAK;AAAA,IACnE,QAAQ,KACP,oBAAoB,UAAU,gCAC/B;AAAA,EACD;AAAA,EAEA,MAAM,eAAe,YAAY,KAAK,IAAI;AAAA,EAC1C,IAAI,cAAc;AAAA,IACjB,QAAQ,KACP,mBAAmB,aAAa,gCACjC;AAAA,EACD;AAAA,EAEA,MAAM,gBAAgB,YAAY,KAAK,IAAI;AAAA,EAC3C,IAAI,eAAe;AAAA,IAClB,QAAQ,KACP,wBAAwB,cAAc,oBACvC;AAAA,EACD;AAAA,EAEA,IAAI,QAAQ,WAAW;AAAA,IAAG,OAAO;AAAA,EAEjC,OAAO,GAAG,QAAQ,KAAK;AAAA,CAAI;AAAA,EAAM;AAAA,GAQ5B,wBASA,iBAEA,qBAAqB,CAC1B,UACA,aACA,aACI;AAAA,EACJ,MAAM,MAAM,eAAa,UAAU,OAAO;AAAA,EAC1C,MAAM,eAAe,cAAc,KAAK,GAAG,EAAE;AAAA,EAC7C,IAAI,aAAa,gBAAgB,cAAc,GAAG;AAAA,EAClD,aAAa,oBAAoB,KAAK,YAAY,YAAY;AAAA,EAI9D,aAAa,aAAa,UAAU;AAAA,EAMpC,aAAa,WAAW,QACvB,mEACA,EACD;AAAA,EAEA,aAAa,WAAW,QACvB,6BACA,cACD;AAAA,EACA,aAAa,WAAW,QACvB,6BACA,cACD;AAAA,EAEA,aACC;AAAA,IACA;AAAA,EACC;AAAA,EAMF,MAAM,UAAU,WAAS,aAAa,QAAQ,EAAE,QAAQ,OAAO,GAAG;AAAA,EAClE,aAAa,WAAW,QAAQ,kBAAkB,GAAG,UAAU;AAAA,EAC/D,cAAc,2BAA2B,GAAG;AAAA,EAE5C,OAAO,gBAAe,YAAY,UAAU,aAAa,QAAQ;AAAA,GAI5D,qBAAqB,CAC1B,UACA,aACA,UACA,WACI;AAAA,EACJ,MAAM,MAAM,eAAa,UAAU,OAAO;AAAA,EAC1C,MAAM,MAAM,SAAQ,QAAQ;AAAA,EAC5B,MAAM,OAAO,QAAQ,SAAS,QAAQ;AAAA,EACtC,MAAM,QAAQ,QAAQ,UAAU,QAAQ;AAAA,EAExC,IAAI,cAAa;AAAA,EACjB,IAAI;AAAA,IAAO,cAAa;AAAA,EACnB,SAAI;AAAA,IAAM,cAAa;AAAA,EAC5B,MAAM,eAAe,OAAO,YAAW,KAAK,GAAG,EAAE,UAAU,CAAC;AAAA,EAC5D,IAAI,aAAa,YAAW,cAAc,GAAG;AAAA,EAE7C,IAAI,MAAM;AAAA,IACT,aAAa,oBAAoB,KAAK,YAAY,YAAY;AAAA,EAC/D;AAAA,EAEA,aAAa,gBAAe,YAAY,UAAU,aAAa,QAAQ;AAAA,EAIvE,IAAI,CAAC,UAAU,CAAC,SAAS,WAAW,MAAM,KAAK,CAAC;AAAA,IAAM,OAAO;AAAA,EAE7D,MAAM,aAAa,aAAa,OAAO,CAAC,MAAM,EAAE,WAAW,KAAK,CAAC;AAAA,EACjE,IAAI,WAAW,WAAW;AAAA,IAAG,OAAO;AAAA,EAEpC,OAAO,yBAAyB,YAAY,UAAU,UAAU;AAAA,GAK3D,eAAe,CACpB,MACA,UACA,aACmD;AAAA,EACnD,IAAI,UAAU;AAAA,IACb,MAAM,SAAS,SAAS,YAAY,aAAa;AAAA,IAEjD,OAAO,EAAE,YAAY,SAAS,QAAQ,UAAU,MAAM,KAAK;AAAA,EAC5D;AAAA,EACA,IAAI,SAAS,OAAO,SAAS,OAAO,SAAS;AAAA,IAC5C,OAAO,EAAE,YAAY,MAAM,MAAM,KAAK;AAAA,EAEvC,OAAO,EAAE,YAAY,OAAO,MAAM,MAAM;AAAA,GAKnC,kBAAkB,CAAC,QAAgB,aAAqB;AAAA,EAC7D,IAAI,QAAQ;AAAA,EACZ,IAAI,WAA2B;AAAA,EAC/B,SAAS,MAAM,SAAU,MAAM,OAAO,QAAQ,OAAO;AAAA,IACpD,MAAM,OAAO,OAAO,QAAQ;AAAA,IAC5B,MAAM,aAAa,aAAa,MAAM,OAAO,MAAM,MAAM,IAAI,QAAQ;AAAA,IACrE,WAAW,WAAW;AAAA,IACtB,IAAI,WAAW;AAAA,MAAM;AAAA,IAErB,IAAI,SAAS,OAAO,SAAS;AAAA,MAAK;AAAA,IAClC,IAAI,SAAS,OAAO,SAAS;AAAA,MAAK;AAAA,IAClC,IAAI,UAAU,KAAK,SAAS;AAAA,MAAK,OAAO;AAAA,EACzC;AAAA,EAEA,OAAO;AAAA,GAKF,2BAA2B,CAChC,MACA,UACA,eACI;AAAA,EACJ,MAAM,WAAW,KAAK,UAAU,QAAQ;AAAA,EAGxC,MAAM,UAAU;AAAA,IACf;AAAA,IACA,mBAAmB;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,EAAE,KAAK;AAAA,CAAI;AAAA,EAEX,IAAI,SAAS,GAAG;AAAA,EAAY;AAAA,EAK5B,WAAW,QAAQ,YAAY;AAAA,IAC9B,SAAS,qBAAqB,QAAQ,IAAI;AAAA,EAC3C;AAAA,EAEA,OAAO;AAAA,GAIF,uBAAuB,CAAC,QAAgB,SAAiB;AAAA,EAC9D,MAAM,SAAS,IAAI,OAClB,kCAAkC,eACnC;AAAA,EACA,MAAM,QAAQ,OAAO,KAAK,MAAM;AAAA,EAChC,IAAI,CAAC;AAAA,IAAO,OAAO;AAAA,EAEnB,MAAM,YAAY,MAAM,QAAQ,MAAM,GAAG;AAAA,EACzC,MAAM,SAAS,gBAAgB,QAAQ,SAAS;AAAA,EAChD,MAAM,WAAW,OAAO,MAAM,WAAW,MAAM;AAAA,EAE/C,OAAO,GAAG,OAAO,MAAM,GAAG,SAAS,eAAe,KAAK,UAAU,IAAI,MAAM,YAAY,OAAO,MAAM,MAAM;AAAA,GAKrG,mBAKF,iBAA0D,MAC1D,cAAyD,MAEvD,0BAA0B,MAAM;AAAA,EACrC,IAAI,CAAC;AAAA,IAAgB,MAAM,IAAI,MAAM,gCAAgC;AAAA,EAErE,OAAO;AAAA,GAGF,uBAAuB,MAAM;AAAA,EAClC,IAAI,CAAC;AAAA,IAAa,MAAM,IAAI,MAAM,6BAA6B;AAAA,EAE/D,OAAO;AAAA,GAGK,gBAAgB,OAAO,gBAG9B;AAAA,EACL,OAAO,cAAc,aAAa,MAAM,QAAQ,IAAI;AAAA,IACnD,YAAW,SAAgB,4BAAqB;AAAA,IAChD,YAAW,MAAa,8BAAuB;AAAA,EAChD,CAAC;AAAA,EACD,IAAI,cAAc;AAAA,IACjB,iBAAiB;AAAA,IAGjB,aAAa,QAAQ,uCAAuC;AAAA,MAC3D,KAAK;AAAA,MACL,KAAK;AAAA,MACL,UAAU;AAAA,MACV,UAAU;AAAA,MACV,KAAK;AAAA,IACN,CAAC;AAAA,EACF;AAAA,EACA,IAAI,CAAC;AAAA,IAAW;AAAA,EAEhB,cAAc;AAAA,EAEd,QAAQ,eAAe,UAAU,MAChC,8DACA,EAAE,UAAU,YAAY,CACzB;AAAA,EACA,UAAU,cAAc,YAAY,EAAE,IAAI,KAAK,gBAAgB,MAAM,CAAC;AAAA,EACtE,IAAI,CAAC,WAAW;AAAA,IAAU;AAAA,EAE1B,UAAU,gBAAgB;AAAA,IACzB,UAAU;AAAA,IACV,IAAI;AAAA,IACJ,QAAQ,WAAW,SAAS;AAAA,EAC7B,CAAC;AAAA,GAII,sBAAsB,CAAC,KAAa,aAAqB;AAAA,EAC9D,MAAM,WAAW,wBAAwB;AAAA,EACzC,MAAM,SAAS,cAAa,cAAc,GAAG;AAAA,EAE7C,OAAO,SAAS,cAAc,QAAQ;AAAA,IACrC,KAAK;AAAA,IACL,UAAU;AAAA,EACX,CAAC,EAAE,GAAG;AAAA,GAID,yBAAyB,CAC9B,KACA,UACA,aACA,cAAc,UACV;AAAA,EACJ,MAAM,WAAW,wBAAwB;AAAA,EACzC,MAAM,WAAW,SAAS,QAAQ,KAAK;AAAA,IACtC,KAAK;AAAA,IACL,KAAK;AAAA,IACL,cAAc;AAAA,MACb,OAAO;AAAA,IACR;AAAA,IACA,UAAU;AAAA,IACV,UAAU;AAAA,IACV,KAAK;AAAA,EACN,CAAC;AAAA,EACD,MAAM,SAAS,SAAS;AAAA,EAIxB,IAAI,SAAS,KAAK,MAAM;AAAA,IACvB,MAAM,UAAU,GAAG;AAAA,IACnB,kBAAkB,IAAI,SAAS,SAAS,IAAI,IAAI;AAAA,IAChD,MAAM,SAAS,OAAO,WAAS,aAAa,OAAO,GAAG,WAAW;AAAA,IACjE,OAAO,WAAW;AAAA,EAAa;AAAA,EAChC;AAAA,EAGA,MAAM,YAAY,GAAG,aAAa,WAAS,aAAa,QAAQ,EAAE,QAAQ,OAAO,GAAG;AAAA,EACpF,OAAO,KAAK,QACX,mCACA;AAAA,IACC;AAAA,IACA,oEAAoE,KAAK,UAAU,SAAS,aAC9F;AAAA,EAEA,OAAO,KAAK,QAAQ,gCAAgC,eAAe;AAAA,GAK9D,sBAAsB,OAC3B,UACA,aACA,UACA,uBACI;AAAA,EACJ,MAAM,MAAM,eAAa,UAAU,OAAO;AAAA,EAE1C,IAAI,CAAC,gBAAgB;AAAA,IACpB,iBAAiB,MAAa;AAAA,EAC/B;AAAA,EAEA,MAAM,WACL,SAAS,SAAS,YAAY,KAAK,SAAS,SAAS,YAAY;AAAA,EAClE,MAAM,qBAAqB,WACxB,EAAE,MAAM,KAAK,aAAa,MAAM,IAChC,2BAA2B,GAAG;AAAA,EACjC,MAAM,gBAAgB,WACnB,qBACA,wBAAwB,mBAAmB,MAAM,QAAQ;AAAA,EAC5D,MAAM,SAAS,WACZ,cAAc,QAEd,MAAM,eAAe,WACpB,cAAc,MACd,8BAA8B,kBAAkB,CACjD,GACC;AAAA,EACJ,MAAM,cACL,mBAAmB,eAAe,cAAc;AAAA,EAEjD,MAAM,OAAO,WACV,oBAAoB,QAAQ,QAAQ,IACpC,uBAAuB,QAAQ,UAAU,aAAa,WAAW;AAAA,EAEpE,OAAO,gBAAe,MAAM,UAAU,aAAa,QAAQ;AAAA,GAWtD,qBAAqB,CAC1B,YACA,gBACA,UACA,gBACI;AAAA,EACJ,MAAM,WAAW,qBAAqB;AAAA,EACtC,MAAM,gBAAgB,eAAe;AAAA,EACrC,IAAI,CAAC,WAAW;AAAA,IAAU,OAAO;AAAA,EAEjC,MAAM,WAAW,WAAW,OAAO,KAAK,CAAC,UAAU,MAAM,MAAM;AAAA,EAC/D,MAAM,iBAAiB,SAAS,gBAAgB;AAAA,IAC/C,iBAAiB;AAAA,MAChB,iBAAiB,eAAe;AAAA,MAChC,mBAAmB;AAAA,IACpB;AAAA,IACA,UAAU;AAAA,IACV,IAAI;AAAA,IACJ,QAAQ;AAAA,IACR,QAAQ,WAAW,SAAS;AAAA,EAC7B,CAAC;AAAA,EAED,IAAI,OAAO,cAAc,QAAQ,kBAAkB,oBAAoB;AAAA,EACvE,QAAQ;AAAA,EAAK,eAAe;AAAA,EAC5B,QAAQ;AAAA;AAAA,EACR,QAAQ;AAAA;AAAA,EAER,OAAO;AAAA,GAIF,mBAAmB,OACxB,YACA,UACA,aACA,MACA,uBACI;AAAA,EACJ,IAAI,WAAW,OAAO,WAAW;AAAA,IAAG,OAAO;AAAA,EAE3C,MAAM,WAAW,qBAAqB;AAAA,EACtC,MAAM,WACL,MAAM,QAAQ,IACb,WAAW,OAAO,IACjB,OAAO,UACN,SAAS,aAAa;AAAA,IACrB,UAAU;AAAA,IACV,IAAI,UAAU;AAAA,IACd,QAAQ,QAAQ,MAAM,MAAM;AAAA,IAC5B,QAAQ,MAAM,OACX,MAAM,mBACN,UACA,MAAM,SACN,MAAM,MACN,kBACD,IACC,MAAM;AAAA,IACT,MAAM;AAAA,EACP,CAAC,EAAE,IACL,CACD,GACC,KAAK;AAAA,CAAI;AAAA,EAEX,MAAM,UAAU,QACd,QAAQ,OAAO,MAAM,EACrB,QAAQ,MAAM,KAAK,EACnB,QAAQ,OAAO,KAAK;AAAA,EACtB,MAAM,QAAQ,KAAK,UAAU,QAAQ;AAAA,EACrC,MAAM,eAAe;AAAA,IACpB;AAAA,IACA,yBAAyB;AAAA,IACzB,yBAAyB;AAAA,IACzB,yDAAyD;AAAA,IACzD;AAAA,IACA;AAAA,EACD,EAAE,KAAK,EAAE;AAAA,EAET,OAAO,GAAG;AAAA,EAAiB;AAAA,GAItB,mBAAmB,OACxB,UACA,aACA,UACA,QACA,uBACI;AAAA,EACJ,MAAM,MAAM,eAAa,UAAU,OAAO;AAAA,EAE1C,IAAI,CAAC,aAAa;AAAA,IACjB,cAAc,MAAa;AAAA,EAC5B;AAAA,EAEA,MAAM,WAAW,UAAS,UAAU,MAAM;AAAA,EAC1C,MAAM,cAAc,SAAS,YAAY;AAAA,EACzC,QAAQ,eAAe,YAAY,MAAM,KAAK,EAAE,UAAU,SAAS,CAAC;AAAA,EAEpE,MAAM,iBAAiB,YAAY,cAAc,YAAY;AAAA,IAC5D,IAAI;AAAA,IACJ,gBAAgB;AAAA,EACjB,CAAC;AAAA,EACD,MAAM,oBAA0C;AAAA,IAC/C,UAAU,eAAe,YAAY,CAAC;AAAA,IACtC,SAAS,eAAe;AAAA,EACzB;AAAA,EAEA,IAAI,OAAO,mBACV,YACA,mBACA,UACA,WACD;AAAA,EACA,OAAO,MAAM,iBACZ,YACA,UACA,aACA,MACA,kBACD;AAAA,EAKA,OAAO,cAAa,cAAc,IAAI;AAAA,EAKtC,OAAO,aAAa,MAAM,UAAU,aAAa,MAAM;AAAA,EAEvD,OAAO,gBAAe,MAAM,UAAU,aAAa,QAAQ;AAAA,GAItD,eAAe,CACpB,MACA,UACA,aACA,WACI;AAAA,EACJ,MAAM,UAAU,SAAS,UAAQ,MAAM,IAAI;AAAA,EAC3C,MAAM,QAAQ,WAAS,SAAS,QAAQ,EACtC,QAAQ,OAAO,GAAG,EAClB,QAAQ,UAAU,EAAE;AAAA,EACtB,IAAI,SAAS,KAAK,QAAQ,uBAAuB,qBAAqB;AAAA,EACtE,UAAU;AAAA,IACT;AAAA,IACA,0BAA0B,KAAK,UAAU,KAAK;AAAA,IAC9C;AAAA,IACA,sCAAsC,KAAK,UAAU,KAAK;AAAA,IAC1D,kCAAkC,KAAK,UAAU,KAAK;AAAA,IACtD;AAAA,IACA;AAAA,EACD,EAAE,KAAK;AAAA,CAAI;AAAA,EAEX,OAAO;AAAA,GAIF,0BAA0B,CAAC,SAAiB;AAAA,EACjD,IAAI,aAAW,IAAI;AAAA,IAAG,OAAO;AAAA,EAC7B,IAAI,aAAW,GAAG,SAAS;AAAA,IAAG,OAAO,GAAG;AAAA,EACxC,IAAI,aAAW,GAAG,SAAS;AAAA,IAAG,OAAO,GAAG;AAAA,EAExC,OAAO;AAAA,GAIF,aAAa,CAAC,SAAiB;AAAA,EACpC,MAAM,OAAO,IAAI,IAAI,KAAK,IAAI,EAAE,SAAS,aAAa;AAAA,EAEtD,OAAO,IAAI,SAAS,MAAM;AAAA,IACzB,SAAS;AAAA,MACR,iBAAiB;AAAA,MACjB,gBAAgB;AAAA,MAChB,MAAM;AAAA,IACP;AAAA,EACD,CAAC;AAAA,GAGI,mBAAmB,CAAC,aAAqB;AAAA,EAC9C,MAAM,MAAM,eAAa,UAAU,OAAO;AAAA,EAC1C,MAAM,UAAU,IACd,QAAQ,OAAO,MAAM,EACrB,QAAQ,MAAM,KAAK,EACnB,QAAQ,OAAO,KAAK;AAAA,EAEtB,OAAO;AAAA,IACN;AAAA,IACA,yBAAyB;AAAA,IACzB,yBAAyB,KAAK,UAAU,QAAQ;AAAA,IAChD,gEAAgE;AAAA,IAChE;AAAA,IACA;AAAA,EACD,EAAE,KAAK;AAAA,CAAI;AAAA,GAMN,6BAA6B,CAClC,WACA,aACA,cACI;AAAA,EACJ,MAAM,aAAa,YAAY,aAAa;AAAA,EAE5C,OAAO;AAAA,IACN,mCAAmC;AAAA,IACnC,gDAAgD,eAAe;AAAA,IAC/D;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,EAAE,KAAK;AAAA,CAAI;AAAA,GAKN,0BAA0B,CAC/B,WACA,aACA,cACI;AAAA,EACJ,MAAM,UAAU,YAAY,UAAU;AAAA,EAEtC,OAAO;AAAA,IACN,8BAA8B;AAAA,IAC9B,gDAAgD,eAAe;AAAA,IAC/D;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,EAAE,KAAK;AAAA,CAAI;AAAA,GAIN,oBAAoB,OAAO,aAAqB;AAAA,EACrD,MAAM,YAAY,mBAAmB,SAAS,MAAM,UAAU,MAAM,CAAC;AAAA,EACrE,MAAM,WAAW,MAAM,cAAc,SAAS;AAAA,EAE9C,OAAO,IAAI,SAAS,UAAU;AAAA,IAC7B,SAAS;AAAA,MACR,iBAAiB;AAAA,MACjB,gBAAgB;AAAA,IACjB;AAAA,EACD,CAAC;AAAA,GAII,gBAAgB,OAAO,cAAsB;AAAA,EAClD,IAAI;AAAA,IACH,MAAM,MAAM,MAAa;AAAA,IACzB,MAAM,QAAQ,OAAO,KAAK,GAAG,EAAE,OAC9B,CAAC,QAAQ,QAAQ,aAAa,QAAQ,YACvC;AAAA,IACA,IAAI,MAAM,WAAW;AAAA,MAAG,OAAO;AAAA;AAAA,IAE/B,MAAM,QAAQ,MACZ,IAAI,CAAC,MAAM,gBAAgB,eAAe,EAC1C,KAAK;AAAA,CAAI;AAAA,IAEX,OAAO,GAAG;AAAA;AAAA;AAAA,IACT,MAAM;AAAA,IACP,OAAO;AAAA;AAAA;AAAA,GAKH,qBAAqB,CAC1B,UACA,gBACI;AAAA,EACJ,MAAM,OAAO,SAAS,MAAM,SAAS,MAAM;AAAA,EAC3C,MAAM,WAAW,KAAK,QAAQ,GAAG;AAAA,EACjC,IAAI,aAAa;AAAA,IAAe;AAAA,EAEhC,MAAM,YAAY,KAAK,MAAM,GAAG,QAAQ;AAAA,EACxC,MAAM,mBAAmB,KAAK,MAAM,WAAW,CAAC;AAAA,EAChD,MAAM,MAAM,GAAG,aAAa;AAAA,EAC5B,MAAM,YAAY,OAAO,KAAK,IAAI,CAAC;AAAA,EAEnC,MAAM,aAAgE;AAAA,IACrE,QAAQ;AAAA,IACR,KAAK;AAAA,EACN;AAAA,EACA,MAAM,WAAW,WAAW;AAAA,EAC5B,IAAI,CAAC;AAAA,IAAU;AAAA,EAEf,OAAO,WAAW,SAAS,KAAK,aAAa,SAAS,CAAC;AAAA,GAIlD,yBAAyB,CAAC,iBAAyB;AAAA,EACxD,MAAM,aAAa,kBAAkB,IAAI,YAAY;AAAA,EACrD,IAAI,CAAC;AAAA,IAAY;AAAA,EAEjB,MAAM,UAAU,WACd,QAAQ,OAAO,MAAM,EACrB,QAAQ,MAAM,KAAK,EACnB,QAAQ,OAAO,KAAK;AAAA,EAEtB,OAAO,WACN,yDACoB,iCACI,KAAK,UAAU,YAAY,0DACM,gEAG1D;AAAA,GAKK,oBAAoB,CAAC,SAAiB,gBAAwB;AAAA,EACnE,MAAM,WAAW,UAAQ,aAAa,OAAO;AAAA,EAC7C,MAAM,MAAM,SAAQ,QAAQ;AAAA,EAE5B,IAAI,QAAQ;AAAA,IACX,OAAO,EAAE,KAAK,UAAU,wBAAwB,QAAQ,EAAE;AAAA,EAC3D,IAAI;AAAA,IAAK,OAAO,EAAE,KAAK,SAAS;AAAA,EAGhC,MAAM,QAAQ,kBAAkB,KAAK,CAAC,cACrC,aAAW,WAAW,SAAS,CAChC;AAAA,EACA,IAAI,CAAC;AAAA,IAAO,OAAO,EAAE,KAAK,SAAS;AAAA,EAEnC,MAAM,WAAW,WAAW;AAAA,EAC5B,IAAI,UAAU;AAAA,IACb,OAAO,EAAE,KAAK,OAAO,UAAU,wBAAwB,QAAQ,EAAE;AAAA,EAElE,OAAO,EAAE,KAAK,OAAO,UAAU,SAAS;AAAA,GAInC,oBAAoB,OACzB,UACA,KACA,aACA,UACA,QACA,uBACI;AAAA,EACJ,IAAI,QAAQ;AAAA,IAAQ,OAAO,WAAW,iBAAiB,QAAQ,CAAC;AAAA,EAEhE,MAAM,WACL,QAAQ,aACR,SAAS,SAAS,YAAY,KAC9B,SAAS,SAAS,YAAY;AAAA,EAE/B,MAAM,SAAS,eAAe,QAAQ;AAAA,EACtC,IAAI;AAAA,IAAQ,OAAO,WAAW,MAAM;AAAA,EAEpC,IAAI;AAAA,IACH,OAAO,wBACN,UACA,aACA,UACA,kBACD;AAAA,EACD,IAAI,QAAQ;AAAA,IACX,OAAO,qBACN,UACA,aACA,UACA,QACA,kBACD;AAAA,EACD,IAAI,CAAC,aAAa,IAAI,GAAG;AAAA,IAAG;AAAA,EAE5B,MAAM,QAAO,UAAS,QAAQ;AAAA,EAC9B,MAAM,iBAAiB,SAAS,UAAQ,MAAM,IAAI;AAAA,EAClD,MAAM,UAAU,iBAAiB,IAAI,GAAG,IACrC,mBAAmB,UAAU,aAAa,QAAQ,IAClD,mBAAmB,UAAU,aAAa,UAAU,cAAc;AAAA,EAErE,eACC,UACA,SACA,MAAK,SACL,qBAAqB,SAAS,WAAW,CAC1C;AAAA,EAEA,OAAO,WAAW,OAAO;AAAA,GAGpB,0BAA0B,OAC/B,UACA,aACA,UACA,uBACI;AAAA,EACJ,MAAM,QAAO,UAAS,QAAQ;AAAA,EAC9B,MAAM,UAAU,MAAM,oBACrB,UACA,aACA,UACA,kBACD;AAAA,EACA,eACC,UACA,SACA,MAAK,SACL,qBAAqB,SAAS,WAAW,CAC1C;AAAA,EAEA,OAAO,WAAW,OAAO;AAAA,GAGpB,uBAAuB,OAC5B,UACA,aACA,UACA,QACA,uBACI;AAAA,EACJ,MAAM,QAAO,UAAS,QAAQ;AAAA,EAC9B,MAAM,UAAU,MAAM,iBACrB,UACA,aACA,UACA,QACA,kBACD;AAAA,EACA,eACC,UACA,SACA,MAAK,SACL,qBAAqB,SAAS,WAAW,CAC1C;AAAA,EAEA,OAAO,WAAW,OAAO;AAAA,GAIpB,yBAAyB,CAAC,QAAiB;AAAA,EAChD,MAAM,SAAS,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAAA,EAE9D,OAAO,IAAI,SACV,oDAAoD,KAAK,UAAU,MAAM,OACzE;AAAA,IACC,SAAS,EAAE,gBAAgB,yBAAyB;AAAA,IACpD,QAAQ;AAAA,EACT,CACD;AAAA,GAGY,qBAAqB,CAAC,WAA+B;AAAA,EACjE,QAAQ,aAAa,aAAa,eAAe,uBAChD;AAAA,EACD,MAAM,WAAW,oBAAoB,WAAW;AAAA,EAEhD,OAAO,OAAO,aAAqB;AAAA,IAClC,IAAI,SAAS,WAAW,SAAS;AAAA,MAAG,OAAO,kBAAkB,QAAQ;AAAA,IACrE,IAAI,SAAS,WAAW,QAAQ;AAAA,MAC/B,OAAO,mBAAmB,UAAU,WAAW;AAAA,IAChD,IAAI,CAAC,SAAS,WAAW,UAAU;AAAA,MAAG;AAAA,IAEtC,MAAM,UAAU,SAAS,MAAM,WAAW,MAAM;AAAA,IAEhD,MAAM,qBAAqB,uBAC1B,UAAQ,aAAa,OAAO,CAC7B;AAAA,IACA,IAAI;AAAA,MAAoB,OAAO;AAAA,IAE/B,QAAQ,UAAU,QAAQ,kBAAkB,SAAS,WAAW;AAAA,IAEhE,IAAI;AAAA,MACH,OAAO,MAAM,kBACZ,UACA,KACA,aACA,UACA,eAAe,KACf,kBACD;AAAA,MACC,OAAO,KAAK;AAAA,MACb,OAAO,uBAAuB,GAAG;AAAA;AAAA;AAAA,GAO9B,eACA,uBAAuB,CAAC,SAAiB,gBAAwB;AAAA,EACtE,MAAM,QAAkB,CAAC;AAAA,EACzB,IAAI;AAAA,EACJ,cAAc,YAAY;AAAA,EAC1B,QAAQ,QAAQ,cAAc,KAAK,OAAO,OAAO,MAAM;AAAA,IACtD,IAAI,MAAM;AAAA,MAAI,MAAM,KAAK,UAAQ,aAAa,MAAM,EAAE,CAAC;AAAA,EACxD;AAAA,EAEA,OAAO;AAAA,GAGK,mBAAmB,CAAC,aAAqB;AAAA,EAKrD,MAAM,WAAW,UAAQ,QAAQ;AAAA,EACjC,WAAW,QAAQ;AAAA,EACnB,IAAI,aAAa;AAAA,IAAU,WAAW,QAAQ;AAAA,EAC9C,WAAW,OAAO,QAAQ;AAAA,EAC1B,WAAW,OAAO,QAAQ;AAAA,GASd,YAAY,CAAC,aAAqB;AAAA,EAC9C,IAAI,CAAC,SAAS,WAAW,UAAU;AAAA,IAAG;AAAA,EACtC,IAAI,CAAC;AAAA,IAAoB;AAAA,EAEzB,mBAAmB,QAAQ;AAAA,GAIxB,qBAIM,MAEG,gBAEA,wBAAwB,CAAC,YAAuC;AAAA,EAC5E,qBAAqB;AAAA;AAAA;AAAA,EA5zCtB;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EAIA;AAAA,EACA;AAAA,EAGA;AAAA,EASM,gBAAe,IAAI,IAAI,WAAW;AAAA,IACvC,QAAQ;AAAA,IACR,mBAAmB;AAAA,EACpB,CAAC;AAAA,EAMK,gBAAe,IAAI,IAAI,WAAW;AAAA,IACvC,QAAQ;AAAA,IACR,mBAAmB;AAAA,EACpB,CAAC;AAAA,EAEK,gBAAgB,IAAI,IAAI,WAAW;AAAA,IACxC,QAAQ;AAAA,IACR,mBAAmB;AAAA,EACpB,CAAC;AAAA,EAEK,eAAe,IAAI,IAAI,CAAC,OAAO,QAAQ,OAAO,QAAQ,MAAM,CAAC;AAAA,EAG7D,iBACL;AAAA,EAIK,qBACL;AAAA,EA0CK,oBAAoB,CAAC,QAAQ,OAAO,QAAQ,OAAO,WAAW,MAAM;AAAA,EACpE,yBAAyB;AAAA,IAC9B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACM,oBAAoB,CAAC,QAAQ,OAAO,QAAQ,OAAO,WAAW,MAAM;AAAA,EACpE,6BAA6B,IAAI,IAAI;AAAA,IAC1C,GAAG;AAAA,IACH,GAAG;AAAA,IACH;AAAA,IACA;AAAA,EACD,CAAC;AAAA,EAEK,mBAAmB,IAAI,IAAI,CAAC,QAAQ,MAAM,CAAC;AAAA,EAqC3C,aAAa,IAAI;AAAA,EA+MjB,cAAc;AAAA,EACd,eAAe;AAAA,EACf,cAAc;AAAA,EACd,cAAc;AAAA,EA2Cd,yBAIF;AAAA,IACH,QAAQ;AAAA,IACR,kBAAkB;AAAA,IAClB,mBAAmB;AAAA,EACpB;AAAA,EACM,kBAAkB,IAAI,IAAI,WAAW,sBAAsB;AAAA,EAmM3D,oBAAoB,IAAI;AAAA,EAirBxB,gBAAgB;AAAA,EA4CT,iBAAiB;AAAA;;;;;;;ACtzC9B,oBAAS;AAAA,IAOI,mBAAmB,OAAO,iBAAyB;AAAA,EAC/D,IAAI;AAAA,EACJ,IAAI;AAAA,IACH,MAAM,eAAe,UAAQ,YAAY;AAAA,IACzC,MAAM,QAAO,IAAI,KAAK,YAAY;AAAA,IAClC,IAAI,CAAE,MAAM,MAAK,OAAO,GAAI;AAAA,MAC3B,OAAO;AAAA,IACR;AAAA,IACA,cAAc,MAAM,MAAK,KAAK;AAAA,IAC7B,MAAM;AAAA,IACP,OAAO;AAAA;AAAA,EAGR,MAAM,YAAY,YAAY,MAAM,gCAAgC;AAAA,EACpE,MAAM,YAAY,YAAY,MAAM,+BAA+B;AAAA,EAEnE,IAAI,aAAa,UAAU,IAAI;AAAA,IAC9B,OAAO;AAAA,MACN,MAAM,UAAU,GAAG,KAAK;AAAA,MACxB,MAAM,aAAa,UAAU,KAAK,UAAU,GAAG,KAAK,IAAI;AAAA,IACzD;AAAA,EACD;AAAA,EAEA,OAAO;AAAA;AAAA;;;;;;;AC9BR,oBAAS;AAAA,IAOI,mBAAmB,OAAO,iBAAyB;AAAA,EAC/D,IAAI;AAAA,EACJ,IAAI;AAAA,IACH,MAAM,eAAe,UAAQ,YAAY;AAAA,IACzC,MAAM,QAAO,IAAI,KAAK,YAAY;AAAA,IAClC,IAAI,CAAE,MAAM,MAAK,OAAO,GAAI;AAAA,MAC3B,OAAO;AAAA,IACR;AAAA,IACA,cAAc,MAAM,MAAK,KAAK;AAAA,IAC7B,MAAM;AAAA,IACP,OAAO;AAAA;AAAA,EAGR,MAAM,YAAY,YAAY,MAAM,gCAAgC;AAAA,EACpE,MAAM,YAAY,YAAY,MAAM,+BAA+B;AAAA,EAEnE,IAAI,aAAa,UAAU,IAAI;AAAA,IAC9B,OAAO;AAAA,MACN,MAAM,UAAU,GAAG,KAAK;AAAA,MACxB,MAAM,aAAa,UAAU,KAAK,UAAU,GAAG,KAAK,IAAI;AAAA,IACzD;AAAA,EACD;AAAA,EAEA,OAAO;AAAA;AAAA;;;ACjCR,uBAAS;AACT,qBAAS,uBAAU,uBAAS,uBAAU;AAAA,IA0BhC,qBACA,kBAAkB,MAAM,qBA2BxB,kBAAkB,CACvB,OACA,WAEA,MAAM,OACL,CAAC,OAAO,SAAS,MAAM,KAAK,MAAM,OAAO,IAAI,CAAC,GAC9C,QAAQ,QAAQ,CACjB,GAEK,0BAA0B,CAAC,WAChC,2BAA2B,OAAO,oBAAoB,OAAO,OAAO,GAgB/D,+BAA+B,OACpC,OACA,QACA,UACI;AAAA,EACJ,IAAI,CAAC,OAAO;AAAA,IAAU;AAAA,EACtB,IAAI,CAAC,MAAM,KAAK,mBAAmB;AAAA,IAAG;AAAA,EAEtC,IAAI;AAAA,IACH,QAAQ,eAAe,MAAM,yBAC5B,OAAO,UACP,MAAM,cAAc,UACpB,OACA,wBAAwB,MAAM,CAC/B;AAAA,IACA,IAAI,CAAC;AAAA,MAAY;AAAA,IAEjB,mBAAmB,OAAO;AAAA,MACzB,MAAM,EAAE,WAAW,YAAY,UAAU,MAAM,SAAS;AAAA,MACxD,SAAS;AAAA,MACT,MAAM;AAAA,IACP,CAAC;AAAA,IACA,OAAO,KAAK;AAAA,IACb,mBAAmB,aAAa;AAAA,MAC/B,WAAW;AAAA,MACX,SAAS,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAAA,IACzD,CAAC;AAAA;AAAA,GAeG,gCAAgC,CAAC,QAAgB;AAAA,EACtD,MAAM,cAAc,IAAI,MAAM,6BAA6B;AAAA,EAC3D,IAAI,aAAa;AAAA,IAChB,SAAS,OAAM,SAAS,UAAU;AAAA,IAElC,OAAO;AAAA,MACN,QAAQ,SAAS,SAAS,QAAQ,EAAE,IAAI;AAAA,MACxC;AAAA,MACA,MAAM,UAAU,SAAS,SAAS,EAAE,IAAI;AAAA,IACzC;AAAA,EACD;AAAA,EACA,MAAM,UAAU,IAAI,MACnB,gGACD;AAAA,EACA,IAAI,SAAS;AAAA,IACZ,SAAS,OAAM,OAAO,MAAM,OAAO,QAAQ;AAAA,IAE3C,IAAI;AAAA,IACJ,IAAI;AAAA,MAAM,YAAY,SAAS,MAAM,EAAE;AAAA,IAClC,SAAI;AAAA,MAAM,YAAY,SAAS,MAAM,EAAE;AAAA,IAE5C,IAAI;AAAA,IACJ,IAAI;AAAA,MAAO,aAAa,SAAS,OAAO,EAAE;AAAA,IACrC,SAAI;AAAA,MAAO,aAAa,SAAS,OAAO,EAAE;AAAA,IAE/C,OAAO;AAAA,MACN,QAAQ;AAAA,MACR,MAAM,OAAM,KAAK;AAAA,MACjB,MAAM;AAAA,IACP;AAAA,EACD;AAAA,EACA,MAAM,aAAa,IAAI,MACtB,0DACD;AAAA,EACA,IAAI,YAAY;AAAA,IACf,SAAS,OAAM,SAAS,UAAU;AAAA,IAElC,OAAO;AAAA,MACN,QAAQ,SAAS,SAAS,QAAQ,EAAE,IAAI;AAAA,MACxC,MAAM,SAAQ;AAAA,MACd,MAAM,UAAU,SAAS,SAAS,EAAE,IAAI;AAAA,IACzC;AAAA,EACD;AAAA,EAEA,OAAO,CAAC;AAAA,GAGH,2BAA2B,CAChC,OACA,oBACA,kBACI;AAAA,EACJ,MAAM,WAAW,SAAS,OAAO,UAAU,WAAW,QAAQ;AAAA,EAC9D,MAAM,UACL,YAAY,UAAU,YAAY,MAAM,QAAQ,SAAS,IAAI,IAC1D,SAAS,OACT;AAAA,EACJ,MAAM,OACL,YACC,iBAAiB,kBAAkB,MAAM,QAAQ,SAC/C,MAAM,SACN;AAAA,EACJ,IAAI,QAAQ,MAAM,QAAQ,IAAI,KAAK,KAAK,SAAS,GAAG;AAAA,IACnD,MAAM,SAAS,KAAK,KAAK,CAAC,OAAM,GAAE,UAAU,OAAO,KAAK,KAAK;AAAA,IAC7D,MAAM,MAAM,QAAQ;AAAA,IACpB,MAAM,QAAO,KAAK;AAAA,IAClB,MAAM,OAAO,KAAK;AAAA,IAClB,MAAM,SAAS,KAAK;AAAA,IACpB,MAAM,WAAW,KAAK;AAAA,IACtB,MAAM,YACL,SAAQ,gBACL,gBAAgB,OAAM,aAAa,IAClC,mBAAmB,MAAM;AAAA,IAE9B,OAAO;AAAA,MACN;AAAA,MACA;AAAA,MACA,WACC,cAAc,YAAY,YAAY,mBAAmB;AAAA,MAC1D;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAAA,EACA,MAAM,MAAM,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,EACjE,MAAM,SAAS,8BAA8B,GAAG;AAAA,EAChD,KAAK,cAAc;AAAA,EACnB,IAAI,OAAO,QAAQ,eAAe;AAAA,IACjC,MAAM,WAAW,gBAAgB,OAAO,MAAM,aAAa;AAAA,IAC3D,aAAa,aAAa,YAAY,WAAW,mBAAmB;AAAA,EACrE;AAAA,EAEA,OAAO,KAAK,QAAQ,WAAW,WAAW;AAAA,GAGrC,6BAA6B,CAClC,cACA,qBACA,mBAEA,iBAAiB,uBACjB,CAAC,eAAe,IAAI,YAAY,KAChC,aAAW,YAAY,GAElB,6BAA6B,CAClC,OACA,eACA,gBACA,eACI;AAAA,EACJ,MAAM,WAAW,OAAO,aAAa;AAAA,EACrC,IAAI;AAAA,IACH,MAAM,gBAAgB,iBACrB,MAAM,iBACN,aACD;AAAA,IACA,MAAM,sBAAsB,UAAQ,aAAa;AAAA,IACjD,cAAc,QAAQ,CAAC,iBAAiB;AAAA,MACvC,IACC,2BACC,cACA,qBACA,cACD,GACC;AAAA,QACD,WAAW,KAAK,YAAY;AAAA,QAC5B,eAAe,IAAI,YAAY;AAAA,MAChC;AAAA,KACA;AAAA,IACA,MAAM;AAAA,GAKH,6BAA6B,CAClC,OACA,uBACI;AAAA,EACJ,IAAI;AAAA,IACH,MAAM,aACL,MAAM,gBAAgB,WAAW,IAAI,kBAAkB;AAAA,IACxD,IAAI,CAAC,cAAc,WAAW,SAAS,GAAG;AAAA,MACzC;AAAA,IACD;AAAA,IACA,MAAM,iBAAiB,MAAM,KAAK,UAAU,EAAE,OAAO,CAAC,UACrD,aAAW,KAAI,CAChB;AAAA,IACA,IAAI,eAAe,WAAW,GAAG;AAAA,MAChC;AAAA,IACD;AAAA,IACA,4BAA4B,OAAO,cAAc;AAAA,IAChD,MAAM;AAAA,GAKH,qBAAqB,CAC1B,oBACA,gBACA,eACI;AAAA,EACJ,IAAI,eAAe,IAAI,kBAAkB,GAAG;AAAA,IAC3C;AAAA,EACD;AAAA,EAEA,WAAW,KAAK,kBAAkB;AAAA,EAClC,eAAe,IAAI,kBAAkB;AAAA,GAGhC,6BAA6B,CAClC,OACA,oBACA,gBACA,eACI;AAAA,EACJ,IAAI;AAAA,IACH,MAAM,gBAAgB,iBACrB,MAAM,iBACN,kBACD;AAAA,IACA,cAAc,QAAQ,CAAC,iBAAiB;AAAA,MACvC,IACC,CAAC,eAAe,IAAI,YAAY,KAChC,iBAAiB,sBACjB,aAAW,YAAY,GACtB;AAAA,QACD,WAAW,KAAK,YAAY;AAAA,QAC5B,eAAe,IAAI,YAAY;AAAA,MAChC;AAAA,KACA;AAAA,IACA,MAAM;AAAA,IACP,mBAAmB,oBAAoB,gBAAgB,UAAU;AAAA;AAAA,GAI7D,sBAAqB,CAC1B,OACA,eACA,gBACA,eACI;AAAA,EACJ,MAAM,WAAW,gBAAgB,aAAa;AAAA,EAC9C,MAAM,aAAa,MAAM,WAAW,IAAI,aAAa;AAAA,EAErD,IAAI,eAAe,aAAa,eAAe,UAAU;AAAA,IACxD;AAAA,EACD;AAAA,EAEA,MAAM,qBAAqB,UAAQ,aAAa;AAAA,EAEhD,IAAI,CAAC,eAAe,IAAI,kBAAkB,GAAG;AAAA,IAC5C,WAAW,KAAK,kBAAkB;AAAA,IAClC,eAAe,IAAI,kBAAkB;AAAA,EACtC;AAAA,EAEA,MAAM,WAAW,IAAI,oBAAoB,QAAQ;AAAA,EACjD,4BAA4B,OAAO,CAAC,kBAAkB,CAAC;AAAA,EACvD,2BAA2B,OAAO,kBAAkB;AAAA,EACpD,2BACC,OACA,oBACA,gBACA,UACD;AAAA,GAGK,qBAAqB,CAC1B,OACA,aACA,gBACA,eACI;AAAA,EACJ,YAAY,QAAQ,CAAC,kBAAkB;AAAA,IACtC,IAAI,CAAC,aAAW,aAAa,GAAG;AAAA,MAC/B,2BACC,OACA,eACA,gBACA,UACD;AAAA,MAEA;AAAA,IACD;AAAA,IACA,oBAAmB,OAAO,eAAe,gBAAgB,UAAU;AAAA,GACnE;AAAA,GAGI,+BAA+B,CACpC,YACA,UACI;AAAA,EACJ,OAAO,aAAa;AAAA,EACpB,IAAI,CAAC,WAAW;AAAA,IACf;AAAA,EACD;AAAA,EAEA,OAAO,gBAAgB,WAAW,MAAM,aAAa;AAAA,GAGhD,sBAAsB,CAAC,UAAoB;AAAA,EAChD,MAAM,iBAAwC,IAAI;AAAA,EAElD,MAAM,yBAAyB,IAAI;AAAA,EACnC,MAAM,gBAAgB,QAAQ,CAAC,WAAW,UAAU;AAAA,IACnD,uBAAuB,IAAI,OAAO,IAAI,IAAI,SAAS,CAAC;AAAA,GACpD;AAAA,EAED,uBAAuB,QAAQ,CAAC,gBAAgB;AAAA,IAC/C,MAAM,aAAuB,CAAC;AAAA,IAC9B,MAAM,iBAAiB,IAAI;AAAA,IAE3B,mBAAmB,OAAO,aAAa,gBAAgB,UAAU;AAAA,IAEjE,IAAI,WAAW,WAAW,GAAG;AAAA,MAC5B;AAAA,IACD;AAAA,IAEA,MAAM,oBAAoB,6BACzB,YACA,KACD;AAAA,IACA,IAAI,mBAAmB;AAAA,MACtB,eAAe,IAAI,mBAAmB,UAAU;AAAA,IACjD;AAAA,GACA;AAAA,EAED,OAAO;AAAA,GAGF,yBAAyB,GACzB,2BAA2B,IAE3B,eAAe,OAAO,UAAiB;AAAA,EAC5C,MAAM,QAAQ,gBAAgB,KAAI;AAAA,EAClC,MAAM,IAAI,MAAM,wBAAwB;AAAA,EACxC,MAAM,QAAQ,gBAAgB,KAAI;AAAA,EAElC,OAAO,UAAU;AAAA,GAGZ,wBAAwB,CAAC,oBAA2C;AAAA,EACzE,MAAM,WAAqB,CAAC;AAAA,EAC5B,WAAW,SAAS,gBAAgB,OAAO,GAAG;AAAA,IAC7C,SAAS,KAAK,GAAG,KAAK;AAAA,EACvB;AAAA,EAEA,OAAO;AAAA,GAGF,0BAA0B,OAC/B,oBACI;AAAA,EACJ,MAAM,WAAW,sBAAsB,eAAe;AAAA,EACtD,MAAM,YAAY,OAAO,UAAoB;AAAA,IAC5C,OAAO,UAAS,aAAa;AAAA,IAC7B,IAAI,CAAC,OAAM;AAAA,MACV,OAAO;AAAA,IACR;AAAA,IAEA,MAAM,SAAS,MAAM,aAAa,KAAI;AAAA,IACtC,IAAI,CAAC,QAAQ;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IAEA,OAAO,UAAU,SAAS;AAAA;AAAA,EAG3B,OAAO,UAAU,QAAQ;AAAA,GAGpB,sBAAsB,OAAO,UAAoB;AAAA,EACtD,MAAM,YAAY,OAAO,UAAkB;AAAA,IAC1C,IAAI,SAAS,wBAAwB;AAAA,MACpC;AAAA,IACD;AAAA,IAEA,MAAM,SAAS,MAAM,wBAAwB,MAAM,eAAe;AAAA,IAClE,IAAI,QAAQ;AAAA,MACX;AAAA,IACD;AAAA,IAEA,MAAM,UAAU,QAAQ,CAAC;AAAA;AAAA,EAG1B,MAAM,UAAU,CAAC;AAAA,GAGZ,kBAAkB,CAAC,OAAiB,aAAqB;AAAA,EAC9D,MAAM,oBAAoB,gBAAgB,UAAU,MAAM,aAAa;AAAA,EACvE,IAAI,sBAAsB;AAAA,IAAW;AAAA,EACrC,IAAI,CAAC,MAAM,gBAAgB,IAAI,iBAAiB,GAAG;AAAA,IAClD,MAAM,gBAAgB,IAAI,mBAAmB,CAAC,CAAC;AAAA,EAChD;AAAA,EACA,MAAM,gBAAgB,MAAM,gBAAgB,IAAI,iBAAiB;AAAA,EACjE,IAAI,iBAAiB,CAAC,cAAc,SAAS,QAAQ,GAAG;AAAA,IACvD,cAAc,KAAK,QAAQ;AAAA,EAC5B;AAAA,GAGK,wBAAwB,CAAC,OAAiB,qBAA6B;AAAA,EAC5E,WAAW,YAAY,0BAA0B,gBAAgB,GAAG;AAAA,IACnE,gBAAgB,OAAO,QAAQ;AAAA,EAChC;AAAA,GAGY,kBAAkB,OAC9B,OACA,UACA,QACA,sBAII;AAAA,EACJ,MAAM,YAAY,gBAAgB,UAAU,MAAM,aAAa;AAAA,EAE/D,IAAI,cAAc,WAAW;AAAA,IAC5B;AAAA,EACD;AAAA,EAEA,MAAM,cAAc,gBAAgB,QAAQ;AAAA,EAE5C,IAAI,CAAC,eAAe,UAAU,aAAa,MAAM,UAAU,GAAG;AAAA,IAC7D;AAAA,EACD;AAAA,EAIA,IAAI,cAAc,WAAW;AAAA,IAC5B,WAAyB,UAAQ,QAAQ,CAAC;AAAA,IAC1C,MAAM,UAAU,WAAS,QAAQ,IAAI,GAAG,QAAQ;AAAA,IAChD,aAAa,OAAO;AAAA,IAEpB;AAAA,EACD;AAAA,EAEA,IAAI,CAAC,MAAM,gBAAgB,IAAI,SAAS,GAAG;AAAA,IAC1C,MAAM,gBAAgB,IAAI,WAAW,CAAC,CAAC;AAAA,EACxC;AAAA,EAEA,MAAM,QAAQ,MAAM,gBAAgB,IAAI,SAAS;AAAA,EACjD,IAAI,SAAS,CAAC,MAAM,SAAS,QAAQ,GAAG;AAAA,IACvC,MAAM,KAAK,QAAQ;AAAA,EACpB;AAAA,EAMA,IAAI,YAAY,QAAQ,GAAG;AAAA,IAC1B,sBAAsB,OAAO,QAAQ;AAAA,EACtC;AAAA,EAEA,IAAI,MAAM,cAAc;AAAA,IACvB;AAAA,EACD;AAAA,EAEA,IAAI,MAAM,gBAAgB;AAAA,IACzB,aAAa,MAAM,cAAc;AAAA,EAClC;AAAA,EAEA,MAAM,cAAc,OAAO,SAAS,KAAK,cAAc;AAAA,EACvD,MAAM,iBAAiB,WAAW,YAAY;AAAA,IAK7C,MAAM,oBAAoB,KAAK;AAAA,IAE/B,MAAM,iBAAiB,oBAAoB,KAAK;AAAA,IAChD,MAAM,gBAAgB,MAAM;AAAA,IAE5B,IAAI,eAAe,SAAS,GAAG;AAAA,MAC9B;AAAA,IACD;AAAA,IAEA,MAAM,qBAAqB,MAAM,KAAK,eAAe,KAAK,CAAC;AAAA,IAE3D,mBAAmB,QAAQ,CAAC,iBAAiB;AAAA,MAC5C,MAAM,aAAa,IAAI,YAAY;AAAA,KACnC;AAAA,IAED,MAAM,iBAA2B,CAAC;AAAA,IAClC,eAAe,QAAQ,CAAC,cAAc;AAAA,MACrC,eAAe,KAAK,GAAG,SAAS;AAAA,KAChC;AAAA,IAEI,eAAe,OAAO,QAAQ,mBAAmB,cAAc;AAAA,KAClE,WAAW;AAAA,GAGT,6BAA6B,CAClC,eACA,UACI;AAAA,EACJ,IAAI,CAAC,cAAc,SAAS,OAAO,GAAG;AAAA,IACrC,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,gBAAgB,cAAc,QAAQ,WAAW,KAAK;AAAA,EAC5D,IAAI,aAAW,aAAa,GAAG;AAAA,IAC9B,OAAO;AAAA,EACR;AAAA,EAGA,IAAI,CAAC;AAAA,IAAO,OAAO;AAAA,EAEnB,MAAM,aAAa,MAAM,WAAW,IAAI,UAAQ,aAAa,CAAC;AAAA,EAC9D,IAAI,CAAC;AAAA,IAAY,OAAO;AAAA,EAExB,WAAW,OAAO,YAAY;AAAA,IAC7B,IAAI,IAAI,SAAS,KAAK;AAAA,MAAG,OAAO;AAAA,EACjC;AAAA,EAEA,OAAO;AAAA,GAGF,4BAA4B,CACjC,OACA,cACA,qBACI;AAAA,EACJ,MAAM,cAAc,aAAa,OAChC,CAAC,UACA,MAAK,SAAS,KAAK,KAAK,UAAQ,KAAI,EAAE,WAAW,gBAAgB,CACnE;AAAA,EAEA,IAAI,YAAY,SAAS,KAAK,CAAC,MAAM,iBAAiB;AAAA,IACrD,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,gBAAgB,IAAI;AAAA,EAC1B,aAAa,QAAQ,CAAC,kBAAkB;AAAA,IACvC,MAAM,aAAa,2BAClB,eACA,MAAM,eACP;AAAA,IACA,MAAM,WAAW,iBAAiB,MAAM,iBAAiB,UAAU;AAAA,IACnE,SAAS,QAAQ,CAAC,UAAS;AAAA,MAC1B,IACC,MAAK,SAAS,KAAK,KACnB,UAAQ,KAAI,EAAE,WAAW,gBAAgB,GACxC;AAAA,QACD,cAAc,IAAI,KAAI;AAAA,MACvB;AAAA,KACA;AAAA,GACD;AAAA,EAED,OAAO,MAAM,KAAK,aAAa;AAAA,GAG1B,oBAAoB,OAAO,kBAAsC;AAAA,EACtE,MAAM,cAAc;AAAA,IACnB,cAAc;AAAA,IACd,cAAc;AAAA,IACd,cAAc;AAAA,IACd,cAAc;AAAA,IACd,cAAc;AAAA,EACf,EAAE,OAAO,CAAC,QAAuB,QAAQ,GAAG,CAAC;AAAA,EAE7C,QAAQ,oCAAmB;AAAA,EAE3B,OAAO,YAAY,WAAW,IAC1B,YAAY,MAAM,QAAQ,IAAI,IAC/B,gBAAe,aAAa,QAAQ,IAAI,CAAC;AAAA,GAGvC,4BAA4B,CACjC,OACA,aACI;AAAA,EACJ,MAAM,eAAe,WAAS,SAAS,IAAI;AAAA,EAC3C,OAAO,YAAY,aAAa,MAAM,IAAI,SAAS,OAAO;AAAA,EAC1D,IAAI,CAAC,UAAU;AAAA,IACd;AAAA,EACD;AAAA,EACA,MAAM,SAAS,SAAS,QAAQ,KAAK,SAAS;AAAA,GAGzC,sBAAsB,OAC3B,OACA,aACA,aACI;AAAA,EACJ,QAAQ,OAAO,cAAa;AAAA,EAC5B,QAAQ,wCAAqB;AAAA,EAC7B,QAAQ,kDAA0B;AAAA,EAClC,MAAM,aAAa,MAAM,kBAAkB,MAAM,aAAa;AAAA,EAC9D,MAAM,iBAAiB,WAAW,oBAAoB,CAAC;AAAA,EAEvD,IAAI,iBAAiB,uBAAsB;AAAA,EAC3C,IAAI,CAAC,gBAAgB;AAAA,IACpB,QAAQ,0DAA8B;AAAA,IAGtC,QAAQ,kDAA0B;AAAA,IAGlC,iBAAiB,2BAChB,WAAW,yBACZ;AAAA,IACA,uBAAsB,cAAc;AAAA,EACrC;AAAA,EAEA,MAAM,eAAe,MAAM,UAAS;AAAA,IACnC,aAAa;AAAA,OACT,OAAO,KAAK;AAAA,SACX,kBAAkB,CAAC;AAAA,SACpB;AAAA,IACJ,CAAC,EAAE,SAAS,IACT;AAAA,MACA,UAAU,OAAO,KAAK;AAAA,WACjB,kBAAkB,CAAC;AAAA,WACpB;AAAA,MACJ,CAAC;AAAA,IACF,IACC,CAAC;AAAA,IACJ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,SAAS;AAAA,MACR,8BAA8B,wBAAwB,MAAM,MAAM,CAAC;AAAA,IACpE;AAAA,IACA,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EACR,CAAC;AAAA,EAED,IAAI,CAAC,aAAa,SAAS;AAAA,IAC1B;AAAA,EACD;AAAA,EAEA,IAAI,kBAAkB,OAAO,KAAK,cAAc,EAAE,SAAS,GAAG;AAAA,IAC7D,QAAQ,oCAAmB;AAAA,IAC3B,MAAM,gBACL,aAAa,QAAQ,IAAI,CAAC,aAAa,SAAS,IAAI,GACpD;AAAA,SACK,kBAAkB,CAAC;AAAA,SACpB;AAAA,IACJ,CACD;AAAA,EACD;AAAA,EAEA,MAAM,iBAAiB,kBAAiB,aAAa,SAAS,QAAQ;AAAA,EACtE,OAAO,OAAO,MAAM,UAAU,cAAc;AAAA,EAC5C,MAAM,mBAAmB,MAAM,YAAY,gBAAgB,QAAQ;AAAA,GAG9D,8BAA8B,CACnC,OACA,eACA,UACA,cACI;AAAA,EACJ,cAAc,QAAQ,CAAC,oBAAoB;AAAA,IAC1C,MAAM,WAAW,WAAS,eAAe;AAAA,IACzC,MAAM,WAAW,SAAS,QAAQ,YAAY,EAAE;AAAA,IAChD,MAAM,aAAa,SAAS,QAAQ;AAAA,IACpC,MAAM,SAAS,GAAG;AAAA,IAClB,MAAM,SAAS,SAAS,WAAW;AAAA,IAEnC,MAAM,WAAW,KAAK,IAAI,IAAI;AAAA,IAC9B,aAAa,iBAAiB,WAAW,QAAQ;AAAA,IACjD,mBAAmB,OAAO;AAAA,MACzB,MAAM;AAAA,QACL,aAAa;AAAA,QACb;AAAA,QACA,WAAW;AAAA,QACX;AAAA,QACA,YAAY;AAAA,QACZ,YAAY;AAAA,MACb;AAAA,MACA,MAAM;AAAA,IACP,CAAC;AAAA,GACD;AAAA,GAGI,0BAA0B,OAC/B,OACA,aACA,eACI;AAAA,EACJ,QAAQ,oCAAmB;AAAA,EAC3B,QAAQ,aAAa,gBAAgB,MAAM,gBAC1C,aACA,YACA,MACA,wBAAwB,MAAM,MAAM,CACrC;AAAA,EAQA,QAAQ,8DAAgC;AAAA,EAGxC,MAAM,uBAAuB,6BAA4B;AAAA,EACzD,IAAI,YAAY,SAAS,KAAK,sBAAsB;AAAA,IACnD,QAAQ,oCAAmB;AAAA,IAC3B,MAAM,gBAAe,aAAa,oBAAoB;AAAA,EACvD;AAAA,EAEA,YAAY,QAAQ,CAAC,eAAe;AAAA,IACnC,MAAM,WAAW,WAAS,YAAY,KAAK;AAAA,IAC3C,MAAM,SAAS,SAAS,QAAQ,KAAK,UAAQ,UAAU;AAAA,GACvD;AAAA,EAED,IAAI,YAAY,SAAS,GAAG;AAAA,IAC3B,MAAM,oBACL,OACA,aACA,MAAM,cAAc,QACrB;AAAA,EACD;AAAA,GAGK,wBAAwB,OAC7B,OACA,QACA,gBACA,WACA,sBAII;AAAA,EACJ,MAAM,aAAa,OAAO,oBAAoB;AAAA,EAC9C,MAAM,eAAe,eAAe,OACnC,CAAC,UAAS,gBAAgB,OAAM,MAAM,aAAa,MAAM,SAC1D;AAAA,EAGA,WAAW,SAAQ,cAAc;AAAA,IAChC,MAAM,WAAW,IAAI,UAAQ,KAAI,GAAG,gBAAgB,KAAI,CAAC;AAAA,EAC1D;AAAA,EAEA,MAAM,mBAAmB,UAAQ,YAAY,OAAO;AAAA,EACpD,MAAM,cAAc,0BACnB,OACA,cACA,gBACD;AAAA,EAEA,IAAI,YAAY,SAAS,GAAG;AAAA,IAC3B,MAAM,wBAAwB,OAAO,aAAa,UAAU;AAAA,IAC5D,kBAAkB,SAAS;AAAA,EAC5B;AAAA,EAEA,QAAQ,aAAa;AAAA,EACrB,MAAM,kBAAkB,aAAa,OACpC,CAAC,UAAS,MAAK,SAAS,KAAK,KAAK,MAAK,SAAS,OAAO,CACxD;AAAA,EACA,MAAM,mBAAmB,gBAAgB,OAAO,CAAC,UAChD,MAAK,QAAQ,OAAO,GAAG,EAAE,SAAS,SAAS,CAC5C;AAAA,EACA,MAAM,gBACL,iBAAiB,SAAS,IAAI,mBAAmB;AAAA,EAElD,4BAA4B,OAAO,eAAe,UAAU,SAAS;AAAA,EAErE,kBAAkB,EAAE,UAAU,OAAO,SAAS,CAAC;AAAA,EAE/C,OAAO;AAAA,GAGF,+BAA+B,CACpC,YACA,mBACA,qBACI;AAAA,EACJ,MAAM,WAAW,WAAS,YAAY,MAAM;AAAA,EAC5C,MAAM,YAAY,UAAQ,kBAAkB,GAAG,cAAc;AAAA,EAC7D,IAAI,CAAC,aAAW,SAAS,GAAG;AAAA,IAC3B;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,GAGF,8BAA8B,CACnC,OACA,YACA,mBACA,kBACA,iBACI;AAAA,EACJ,MAAM,WAAW,iBAAiB,MAAM,iBAAiB,UAAU;AAAA,EACnE,SAAS,QAAQ,CAAC,QAAQ;AAAA,IACzB,IAAI,CAAC,IAAI,WAAW,iBAAiB,GAAG;AAAA,MACvC;AAAA,IACD;AAAA,IACA,MAAM,WAAW,WAAS,KAAK,MAAM;AAAA,IACrC,MAAM,YAAY,UAAQ,kBAAkB,GAAG,cAAc;AAAA,IAC7D,IAAI,aAAW,SAAS,KAAK,CAAC,aAAa,SAAS,SAAS,GAAG;AAAA,MAC/D,aAAa,KAAK,SAAS;AAAA,IAC5B;AAAA,GACA;AAAA,GAGI,2BAA2B,CAChC,OACA,OACA,mBACA,kBACA,iBACI;AAAA,EACJ,MAAM,aAAa,UAAQ,KAAI;AAAA,EAC/B,IAAI,CAAC,WAAW,WAAW,iBAAiB,GAAG;AAAA,IAC9C,4BACC,OACA,YACA,mBACA,kBACA,YACD;AAAA,IAEA;AAAA,EACD;AAAA,EAEA,MAAM,QAAQ,6BACb,YACA,mBACA,gBACD;AAAA,EACA,IAAI,OAAO;AAAA,IACV,aAAa,KAAK,KAAK;AAAA,EACxB;AAAA,GAGK,sBAAsB,CAC3B,OACA,gBACA,gBACA,qBACI;AAAA,EACJ,MAAM,eAAyB,CAAC;AAAA,EAChC,MAAM,oBAAoB,UAAQ,cAAc;AAAA,EAEhD,eAAe,QAAQ,CAAC,UAAS;AAAA,IAChC,yBACC,OACA,OACA,mBACA,kBACA,YACD;AAAA,GACA;AAAA,EAED,OAAO;AAAA,GAGF,oBAAoB,OACzB,OACA,cACA,kBACA,aACI;AAAA,EACJ,QAAQ,OAAO,cAAa;AAAA,EAC5B,QAAQ,wCAAqB;AAAA,EAC7B,QAAQ,0CAAsB;AAAA,EAC9B,QAAQ,8CAAwB;AAAA,EAGhC,MAAM,aAAa,MAAM,kBAAkB,MAAM,aAAa;AAAA,EAC9D,MAAM,iBAAiB,WAAW,oBAAoB,CAAC;AAAA,EAEvD,MAAM,eAAe,UAAQ,kBAAkB,cAAc;AAAA,EAC7D,IAAI,CAAC,aAAa,SAAS,YAAY,GAAG;AAAA,IACzC,aAAa,KAAK,YAAY;AAAA,EAC/B;AAAA,EAEA,IAAI,cAAc,mBAAkB;AAAA,EACpC,IAAI,CAAC,aAAa;AAAA,IACjB,QAAQ,4CAAuB;AAAA,IAG/B,QAAQ,0CAAsB;AAAA,IAC9B,cAAc,oBAAmB;AAAA,IACjC,mBAAkB,WAAW;AAAA,EAC9B;AAAA,EAEA,QAAQ,oBAAW,MAAa;AAAA,EAChC,QAAO,UAAQ,UAAU,SAAS,aAAa,SAAS,GAAG;AAAA,IAC1D,OAAO;AAAA,IACP,WAAW;AAAA,EACZ,CAAC;AAAA,EAED,MAAM,eAAe,MAAM,UAAS;AAAA,IACnC,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,KAAK,EAAE,aAAa,KAAK;AAAA,IACzB,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,SAAS;AAAA,MACR,8BAA8B,wBAAwB,MAAM,MAAM,CAAC;AAAA,IACpE;AAAA,IACA,kBAAkB;AAAA,IAClB,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,OAAO;AAAA,OACH,OAAO,KAAK;AAAA,SACX,eAAe,CAAC;AAAA,SACjB;AAAA,IACJ,CAAC,EAAE,SAAS,IACT;AAAA,MACA,UAAU,OAAO,KAAK;AAAA,WACjB,eAAe,CAAC;AAAA,WACjB;AAAA,MACJ,CAAC;AAAA,IACF,IACC,CAAC;AAAA,EACL,CAAC;AAAA,EAED,IAAI,CAAC,aAAa,SAAS;AAAA,IAC1B;AAAA,EACD;AAAA,EAEA,IAAI,eAAe,OAAO,KAAK,cAAc,EAAE,SAAS,GAAG;AAAA,IAC1D,MAAM,qBACL,aAAa,QAAQ,IAAI,CAAC,QAAQ,IAAI,IAAI,GAC1C;AAAA,SACK,eAAe,CAAC;AAAA,SACjB;AAAA,IACJ,CACD;AAAA,EACD;AAAA,EAEA,MAAM,iBAAiB,kBAAiB,aAAa,SAAS,QAAQ;AAAA,EACtE,OAAO,OAAO,MAAM,UAAU,cAAc;AAAA,EAC5C,MAAM,mBAAmB,MAAM,YAAY,gBAAgB,QAAQ;AAAA,GAM9D,eAAe,OAAO,aAAqB;AAAA,EAChD,QAAQ,qCAAkB,uBAAW,oCAAmB;AAAA,EAGxD,kBAAiB,QAAQ;AAAA,EACzB,MAAM,MAAM,WAAS,QAAQ,IAAI,GAAG,QAAQ,EAAE,QAAQ,OAAO,GAAG;AAAA,EAChE,MAAM,MAAM,GAAG,kBAAiB;AAAA,EAChC,WAAU,GAAG;AAAA,EAEb,OAAO;AAAA,GAGF,mBAMA,yBAAyB,OAAO,gBAAwB;AAAA,EAC7D,MAAM,mBACL,YAAY,SAAS,MAAM,KAAK,YAAY,SAAS,MAAM;AAAA,EAE5D,IAAI;AAAA,IAAiB,OAAO;AAAA,EAE5B,QAAQ,gDAAyB;AAAA,EACjC,MAAM,UAAU,sBAAqB,UAAQ,WAAW,CAAC;AAAA,EAEzD,OAAO,WAAW;AAAA,GAGb,8BAA8B,OACnC,OACA,YACA,WACA,sBAII;AAAA,EAEJ,WAAW,SAAQ,YAAY;AAAA,IAC9B,MAAM,WAAW,IAAI,UAAQ,KAAI,GAAG,gBAAgB,KAAI,CAAC;AAAA,EAC1D;AAAA,EAEA,kBAAkB,OAAO;AAAA,EAEzB,MAAM,cACL,WAAW,KACV,CAAC,UAAS,CAAC,MAAK,QAAQ,OAAO,GAAG,EAAE,SAAS,SAAS,CACvD,KAAK,WAAW;AAAA,EAEjB,IAAI,CAAC,aAAa;AAAA,IACjB,kBAAkB;AAAA,MACjB,UAAU;AAAA,MACV,UAAU,MAAM;AAAA,IACjB,CAAC;AAAA,IAED,OAAO,MAAM;AAAA,EACd;AAAA,EAGA,QAAQ,wCAAqB,MAAM,gBAAgB;AAAA,EACnD,WAAW,SAAQ,YAAY;AAAA,IAC9B,kBAAiB,KAAI;AAAA,EACtB;AAAA,EAEA,MAAM,kBAAkB,MAAM,uBAAuB,WAAW;AAAA,EAChE,MAAM,gBAAgB,MAAM,kBAAkB,eAAe;AAAA,EAE7D,IAAI,eAAe;AAAA,IAClB,MAAM,iBAAiB,KAAK,IAAI,IAAI;AAAA,IACpC,MAAM,cAAc,WAAS,QAAQ,IAAI,GAAG,WAAW,EAAE,QACxD,OACA,GACD;AAAA,IACA,MAAM,mBAAmB;AAAA,IAEzB,mBAAmB,OAAO;AAAA,MACzB,MAAM;AAAA,QACL,WAAW;AAAA,QACX,qBAAqB;AAAA,QACrB,eAAe;AAAA,QACf,UAAU,MAAM;AAAA,QAChB;AAAA,QACA,eAAe;AAAA,QACf;AAAA,QACA,aAAa;AAAA,MACd;AAAA,MACA,MAAM;AAAA,IACP,CAAC;AAAA,EACF;AAAA,EAEA,kBAAkB;AAAA,IACjB,UAAU;AAAA,IACV,UAAU,MAAM;AAAA,EACjB,CAAC;AAAA,EAED,OAAO,MAAM;AAAA,GAGR,sBAAsB,OAC3B,OACA,QACA,gBACA,WACA,sBAII;AAAA,EACJ,MAAM,WAAW,OAAO,kBAAkB;AAAA,EAC1C,MAAM,iBAAiB,UAAQ,UAAU,OAAO;AAAA,EAChD,MAAM,mBAAmB,UAAQ,UAAU,aAAa,SAAS;AAAA,EACjE,QAAQ,aAAa,MAAM;AAAA,EAK3B,MAAM,aAAa,eAAe,OACjC,CAAC,UAAS,gBAAgB,OAAM,MAAM,aAAa,MAAM,OAC1D;AAAA,EAQA,IAAI,WAAW,SAAS,GAAG;AAAA,IAC1B,OAAO,4BACN,OACA,YACA,WACA,iBACD;AAAA,EACD;AAAA,EAGA,QAAQ,sDAA4B;AAAA,EAGpC,MAAM,yBAAwB,gBAAgB,kBAAkB,IAAI;AAAA,EAEpE,MAAM,eAAe,oBACpB,OACA,gBACA,gBACA,gBACD;AAAA,EAEA,IAAI,aAAa,SAAS,GAAG;AAAA,IAC5B,MAAM,kBACL,OACA,cACA,kBACA,QACD;AAAA,EACD;AAAA,EAEA,QAAQ,aAAa;AAAA,EACrB,MAAM,WAAW,KAAK,IAAI,IAAI;AAAA,EAE9B,MAAM,iBAAiB,WAAW,OAAO,CAAC,UACzC,MAAK,QAAQ,OAAO,GAAG,EAAE,SAAS,SAAS,CAC5C;AAAA,EACA,MAAM,cAAc,eAAe,SAAS,IAAI,iBAAiB;AAAA,EAEjE,aAAa,YAAY,MAAM,WAAW,MAAM,IAAI,SAAS,QAAQ;AAAA,EACrE,mBAAmB,OAAO;AAAA,IACzB,MAAM;AAAA,MACL,WAAW;AAAA,MACX,qBAAqB;AAAA,MACrB,eAAe;AAAA,MACf;AAAA,MACA,eAAe,YAAY;AAAA,MAC3B;AAAA,IACD;AAAA,IACA,MAAM;AAAA,EACP,CAAC;AAAA,EAED,kBAAkB,EAAE,UAAU,OAAO,SAAS,CAAC;AAAA,EAE/C,OAAO;AAAA,GAGF,6BAA6B,CAClC,OACA,iBACI;AAAA,EACJ,IAAI,CAAC,cAAc,SAAS;AAAA,IAC3B;AAAA,EACD;AAAA,EAEA,aAAa,QAAQ,QAAQ,CAAC,aAAa;AAAA,IAC1C,0BAA0B,OAAO,QAAQ;AAAA,GACzC;AAAA,GAGI,6BAA6B,OAClC,OACA,cACA,aACI;AAAA,EACJ,IAAI,CAAC,cAAc,SAAS;AAAA,IAC3B;AAAA,EACD;AAAA,EAEA,QAAQ,wCAAqB;AAAA,EAC7B,MAAM,iBAAiB,kBAAiB,aAAa,SAAS,QAAQ;AAAA,EACtE,OAAO,OAAO,MAAM,UAAU,cAAc;AAAA,EAC5C,MAAM,mBAAmB,MAAM,YAAY,gBAAgB,QAAQ;AAAA,GAG9D,8BAA8B,OACnC,OACA,aACA,aACA,mBACI;AAAA,EACJ,MAAM,gBAAgB,MAAM,aAAa,WAAW;AAAA,EACpD,MAAM,cAAc;AAAA,EACpB,MAAM,mBAAmB;AAAA,EAEzB,mBAAmB,OAAO;AAAA,IACzB,MAAM;AAAA,MACL,WAAW;AAAA,MACX,UAAU,MAAM;AAAA,MAChB;AAAA,MACA;AAAA,MACA,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,YAAY;AAAA,IACb;AAAA,IACA,MAAM;AAAA,EACP,CAAC;AAAA,GAGI,+BAA+B,OACpC,OACA,aACA,WACA,sBAII;AAAA,EACJ,WAAW,SAAQ,aAAa;AAAA,IAC/B,MAAM,WAAW,IAAI,UAAQ,KAAI,GAAG,gBAAgB,KAAI,CAAC;AAAA,EAC1D;AAAA,EAEA,kBAAkB,QAAQ;AAAA,EAE1B,MAAM,iBAAiB,KAAK,IAAI,IAAI;AAAA,EAEpC,MAAM,gBAAgB,aAAa,CAAC,gBACnC,4BACC,OACA,aACA,aACA,cACD,CACD;AAAA,EAEA,kBAAkB;AAAA,IACjB,UAAU;AAAA,IACV,UAAU,MAAM;AAAA,EACjB,CAAC;AAAA,EAED,OAAO,MAAM;AAAA,GAGR,uBAAuB,OAC5B,OACA,QACA,gBACA,WACA,sBAII;AAAA,EACJ,MAAM,YAAY,OAAO,mBAAmB;AAAA,EAE5C,MAAM,cAAc,eAAe,OAClC,CAAC,WACC,MAAK,SAAS,SAAS,KAAK,MAAK,SAAS,UAAU,MACrD,gBAAgB,OAAM,MAAM,aAAa,MAAM,QACjD;AAAA,EAIA,IAAI,YAAY,SAAS,GAAG;AAAA,IAC3B,OAAO,6BACN,OACA,aACA,WACA,iBACD;AAAA,EACD;AAAA,EAGA,QAAQ,aAAa,MAAM;AAAA,EAE3B,IAAI,YAAY,SAAS,GAAG;AAAA,IAC3B,QAAQ,kCAAkB;AAAA,IAC1B,QAAQ,OAAO,cAAa;AAAA,IAC5B,MAAM,aAAa,MAAM,kBAAkB,MAAM,aAAa;AAAA,IAE9D,QAAQ,mBAAmB,kBAAkB,sBAC5C,MAAM,eACL,aACA,WACA,IAAI,KACJ,MACA,wBAAwB,MAAM,MAAM,CACrC;AAAA,IAED,MAAM,gBAAgB,CAAC,GAAG,iBAAiB;AAAA,IAC3C,MAAM,gBAAgB,CAAC,GAAG,kBAAkB,GAAG,iBAAiB;AAAA,IAEhE,MAAM,aAAa,UAAQ,WAAW,aAAa,QAAQ;AAAA,IAC3D,MAAM,eAAe,UAAQ,UAAU,WAAS,SAAS,CAAC;AAAA,IAE1D,OAAO,cAAc,gBAAgB,MAAM,QAAQ,IAAI;AAAA,MACtD,cAAc,SAAS,IACpB,UAAS;AAAA,QACT,aAAa;AAAA,QACb,UAAU;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,QACA,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,SAAS;AAAA,UACR,8BACC,wBAAwB,MAAM,MAAM,CACrC;AAAA,QACD;AAAA,QACA,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,OAAO;AAAA,MACR,CAAC,IACA;AAAA,MACH,cAAc,SAAS,IACpB,UAAS;AAAA,QACT,aAAa;AAAA,QACb,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,SAAS;AAAA,UACR,8BACC,wBAAwB,MAAM,MAAM,CACrC;AAAA,QACD;AAAA,QACA,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,OAAO;AAAA,MACR,CAAC,IACA;AAAA,IACJ,CAAC;AAAA,IAED,2BAA2B,OAAO,YAAY;AAAA,IAC9C,MAAM,2BAA2B,OAAO,cAAc,QAAQ;AAAA,EAC/D;AAAA,EAEA,QAAQ,aAAa;AAAA,EACrB,MAAM,WAAW,KAAK,IAAI,IAAI;AAAA,EAE9B,MAAM,iBACL,YAAY,SAAS,IAAI,cAAc;AAAA,EACxC,eAAe,QAAQ,CAAC,mBAAmB;AAAA,IAC1C,MAAM,WAAW,WAAS,cAAc;AAAA,IACxC,MAAM,WAAW,SAAS,QAAQ,aAAa,EAAE;AAAA,IACjD,MAAM,aAAa,SAAS,QAAQ;AAAA,IACpC,MAAM,SAAS,GAAG;AAAA,IAClB,MAAM,SAAS,SAAS,WAAW;AAAA,IAEnC,aAAa,gBAAgB,UAAU,QAAQ;AAAA,IAC/C,mBAAmB,OAAO;AAAA,MACzB,MAAM;AAAA,QACL,aAAa;AAAA,QACb;AAAA,QACA,WAAW;AAAA,QACX,MAAM;AAAA,QACN;AAAA,QACA,YAAY;AAAA,QACZ,YAAY;AAAA,MACb;AAAA,MACA,MAAM;AAAA,IACP,CAAC;AAAA,GACD;AAAA,EAED,kBAAkB,EAAE,UAAU,OAAO,SAAS,CAAC;AAAA,EAE/C,OAAO;AAAA,GAGF,0BAA0B,CAC/B,OACA,aACA,aACI;AAAA,EACJ,WAAW,UAAU,aAAa;AAAA,IACjC,MAAM,WAAW,iBAAiB,MAAM,iBAAiB,MAAM;AAAA,IAC/D,MAAM,aAAa,SAAS,OAC3B,CAAC,QAAQ,IAAI,SAAS,MAAM,KAAK,CAAC,SAAS,SAAS,GAAG,CACxD;AAAA,IACA,SAAS,KAAK,GAAG,UAAU;AAAA,EAC5B;AAAA,GAGK,0BAA0B,OAAO,gBAA0B;AAAA,EAChE,IAAI,YAAY,WAAW;AAAA,IAAG;AAAA,EAE9B,QAAQ,wCAAqB,MAAM,gBAAgB;AAAA,EACnD,WAAW,SAAQ,aAAa;AAAA,IAC/B,kBAAiB,KAAI;AAAA,EACtB;AAAA,GAGK,2BAA2B,OAChC,OACA,aACA,UACA,aACA,aACA,mBACI;AAAA,EACJ,MAAM,gBAAgB,MAAM,aAAa,WAAW;AAAA,EAEpD,OAAO,eAAe;AAAA,EACtB,MAAM,cACL,YAAY,SAAS,KAAK,cAAc,cAAc;AAAA,EACvD,MAAM,mBAAmB;AAAA,EAEzB,mBAAmB,OAAO;AAAA,IACzB,MAAM;AAAA,MACL,YAAY;AAAA,MACZ;AAAA,MACA,WAAW;AAAA,MACX,UAAU,MAAM;AAAA,MAChB;AAAA,MACA;AAAA,MACA,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,YAAY;AAAA,IACb;AAAA,IACA,MAAM;AAAA,EACP,CAAC;AAAA,GAGI,4BAA4B,OACjC,OACA,UACA,aACA,WACA,sBAII;AAAA,EACJ,WAAW,SAAQ,CAAC,GAAG,UAAU,GAAG,WAAW,GAAG;AAAA,IACjD,MAAM,WAAW,IAAI,UAAQ,KAAI,GAAG,gBAAgB,KAAI,CAAC;AAAA,EAC1D;AAAA,EAEA,kBAAkB,KAAK;AAAA,EAIvB,MAAM,wBAAwB,WAAW;AAAA,EAEzC,MAAM,iBAAiB,KAAK,IAAI,IAAI;AAAA,EAGpC,MAAM,cAAc,YAAY,SAAS;AAAA,EAEzC,MAAM,gBAAgB,UAAU,CAAC,gBAChC,yBACC,OACA,aACA,UACA,aACA,aACA,cACD,CACD;AAAA,EAEA,kBAAkB;AAAA,IACjB,UAAU;AAAA,IACV,UAAU,MAAM;AAAA,EACjB,CAAC;AAAA,EAED,OAAO,MAAM;AAAA,GAGR,oBAAoB,OACzB,OACA,QACA,gBACA,WACA,sBAII;AAAA,EACJ,MAAM,WAAW,eAAe,OAC/B,CAAC,UACA,MAAK,SAAS,MAAM,KACpB,gBAAgB,OAAM,MAAM,aAAa,MAAM,KACjD;AAAA,EAIA,MAAM,cAAc,eAAe,OAClC,CAAC,UACA,CAAC,MAAK,SAAS,MAAM,KACrB,gBAAgB,OAAM,MAAM,aAAa,MAAM,KACjD;AAAA,EACA,wBAAwB,OAAO,aAAa,QAAQ;AAAA,EAIpD,IAAI,SAAS,SAAS,GAAG;AAAA,IACxB,OAAO,0BACN,OACA,UACA,aACA,WACA,iBACD;AAAA,EACD;AAAA,EAGA,kBAAkB,EAAE,UAAU,OAAO,UAAU,MAAM,SAAS,CAAC;AAAA,EAE/D,OAAO,MAAM;AAAA,GAGR,mCAAmC,CACxC,WACA,gBACA,UACA,UACI;AAAA,EACJ,MAAM,iBAAiB,eAAe,OACrC,CAAC,UAAS,gBAAgB,OAAM,MAAM,aAAa,MAAM,SAC1D;AAAA,EAEA,IAAI,eAAe,WAAW,GAAG;AAAA,IAChC,OAAO,CAAC;AAAA,EACT;AAAA,EAEA,OAAO,oBACN,gBACA,WACA,UACA,MAAM,aACP;AAAA,GAGK,0BAA0B,CAC/B,oBACA,gBACA,UACA,UACI;AAAA,EACJ,MAAM,mBAAmC,CAAC;AAAA,EAE1C,mBAAmB,QAAQ,CAAC,cAAc;AAAA,IACzC,MAAM,gBAAgB,iCACrB,WACA,gBACA,UACA,KACD;AAAA,IACA,cAAc,QAAQ,CAAC,WAAW;AAAA,MACjC,IAAI,QAAQ;AAAA,QACX,iBAAiB,KAAK,MAAM;AAAA,MAC7B;AAAA,KACA;AAAA,GACD;AAAA,EAED,OAAO;AAAA,GAGF,iBAAiB,CACtB,OACA,oBACA,gBACA,UACA,aACI;AAAA,EACJ,IACC,CAAC,mBAAmB,SAAS,OAAO,KACpC,CAAC,MAAM,cAAc,UACpB;AAAA,IACD;AAAA,EACD;AAAA,EAEA,MAAM,aAAa,eAAe,OACjC,CAAC,UAAS,gBAAgB,OAAM,MAAM,aAAa,MAAM,OAC1D;AAAA,EAEA,IAAI,WAAW,WAAW,GAAG;AAAA,IAC5B;AAAA,EACD;AAAA,EAEA,MAAM,iBAAiB,WAAW,OAAO,CAAC,UACzC,MAAK,QAAQ,OAAO,GAAG,EAAE,SAAS,SAAS,CAC5C;AAAA,EACA,MAAM,cAAc,eAAe,SAAS,IAAI,iBAAiB;AAAA,EACjE,OAAO,iBAAiB;AAAA,EAExB,IAAI;AAAA,IACH,MAAM,sBAAsB,WAAW,KACtC,CAAC,UACA,MAAK,SAAS,MAAM,KACpB,MAAK,SAAS,KAAK,KACnB,MAAK,SAAS,MAAM,CACtB;AAAA,IACA,MAAM,gBAAgB,WAAW,KAAK,WAAW;AAAA,IAEjD,aAAa,iBAAiB,WAAW,MAAM,IAAI,SAAS,QAAQ;AAAA,IAEpE,mBAAmB,OAAO;AAAA,MACzB,MAAM;AAAA,QACL,WAAW;AAAA,QACX;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,MACA,MAAM;AAAA,IACP,CAAC;AAAA,IACA,OAAO,KAAK;AAAA,IACb,mBAAmB,aAAa;AAAA,MAC/B,WAAW;AAAA,MACX,SAAS,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAAA,IACzD,CAAC;AAAA;AAAA,GAIG,qBAAqB,CAC1B,OACA,YACA,UACA,WACA,aACI;AAAA,EACJ,MAAM,iBAAiB,WAAS,UAAU,EAAE,QAC3C,sBACA,EACD;AAAA,EACA,MAAM,aAAa,SAAS,cAAc;AAAA,EAC1C,MAAM,aAAa,SAAS,eAAe;AAAA,EAE3C,IAAI,CAAC,YAAY;AAAA,IAChB,QAAQ,iCAAiC,YAAY;AAAA,IAErD;AAAA,EACD;AAAA,EAEA,gBAAgB,YAAY,WAAW,QAAQ;AAAA,EAC/C,mBAAmB,OAAO;AAAA,IACzB,MAAM;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAY;AAAA,IACb;AAAA,IACA,MAAM;AAAA,EACP,CAAC;AAAA,GAGI,eAAe,CAAC,WACpB,MAAK,SAAS,KAAK,KACnB,MAAK,SAAS,KAAK,KACnB,MAAK,SAAS,MAAM,KACpB,MAAK,SAAS,MAAM,MACrB,MAAK,QAAQ,OAAO,GAAG,EAAE,SAAS,WAAW,GAExC,gCAAgC,CACrC,YACA,WACA,gBACI;AAAA,EACJ,QAAQ,mBAAmB;AAAA,EAC3B,IAAI,CAAC,gBAAgB,QAAQ;AAAA,IAC5B;AAAA,EACD;AAAA,EAEA,MAAM,aAAa,eAAe,OAAO,WAAW,SAAS,IAC1D,IAAI,IAAI,eAAe,MAAM,EAAE,WAC/B,UACA,UAAQ,UAAU,oBAAoB,GACtC,eAAe,MAChB;AAAA,EACF,YAAY,IAAI,UAAQ,UAAU,CAAC;AAAA,GAG9B,2BAA2B,OAAO,WAAwB;AAAA,EAC/D,MAAM,eAAe,OAAO,SAAS;AAAA,EACrC,IAAI,CAAC,cAAc;AAAA,IAClB,OAAO,IAAI;AAAA,EACZ;AAAA,EAEA,MAAM,YAAY,MAAM,4BAA4B,YAAY;AAAA,EAChE,MAAM,cAAc,IAAI,IAAY;AAAA,IACnC,UAAQ,UAAU,oBAAoB;AAAA,EACvC,CAAC;AAAA,EAED,WAAW,cAAc,UAAU,aAAa;AAAA,IAC/C,8BAA8B,YAAY,WAAW,WAAW;AAAA,EACjE;AAAA,EAEA,OAAO;AAAA,GAGF,kCAAkC,OACvC,QACA,mBACI;AAAA,EACJ,MAAM,cAAc,MAAM,yBAAyB,MAAM;AAAA,EACzD,IAAI,YAAY,SAAS,GAAG;AAAA,IAC3B,OAAO;AAAA,EACR;AAAA,EAEA,OAAO,eAAe,KAAK,CAAC,UAAS,YAAY,IAAI,UAAQ,KAAI,CAAC,CAAC;AAAA,GAG9D,2BAA2B,OAChC,OACA,QACA,gBACA,aACI;AAAA,EACJ,MAAM,eAAe,MAAM,gCAC1B,QACA,cACD;AAAA,EACA,IAAI,CAAC,cAAc;AAAA,IAClB,OAAO;AAAA,EACR;AAAA,EAEA,6BAA6B,MAAM,uBAAuB,MAAM,CAAC;AAAA,EACjE,MAAM,gBAAgB,eAAe,QAAQ,CAAC,UAC7C,0BAA0B,KAAI,CAC/B;AAAA,EAEA,mBAAmB,OAAO;AAAA,IACzB,MAAM;AAAA,MACL;AAAA,MACA;AAAA,IACD;AAAA,IACA,MAAM;AAAA,EACP,CAAC;AAAA,EAED,OAAO;AAAA,GAGF,sBAAsB,CAC3B,OACA,gBACA,UACA,aACI;AAAA,EACJ,IAAI,CAAC,MAAM,cAAc,SAAS;AAAA,IACjC;AAAA,EACD;AAAA,EAEA,MAAM,qBAAqB,eAAe,OACzC,CAAC,UAAS,gBAAgB,OAAM,MAAM,aAAa,MAAM,MAC1D;AAAA,EAEA,IAAI,mBAAmB,WAAW,GAAG;AAAA,IACpC;AAAA,EACD;AAAA,EAEA,MAAM,cAAc,mBAAmB,OAAO,YAAY;AAAA,EAC1D,MAAM,gBAAgB,mBAAmB,OAAO,CAAC,UAChD,MAAK,SAAS,OAAO,CACtB;AAAA,EAEA,IAAI,YAAY,WAAW,KAAK,cAAc,SAAS,GAAG;AAAA,IACzD;AAAA,EACD;AAAA,EAEA,YAAY,QAAQ,CAAC,eAAe;AAAA,IACnC,mBAAmB,OAAO,YAAY,UAAU,QAAQ,QAAQ;AAAA,GAChE;AAAA,GAGI,wBAAwB,CAC7B,OACA,QACA,cACI;AAAA,EACJ,MAAM,WACL,CAAC,OAAO,kBACR,CAAC,OAAO,mBACR,CAAC,OAAO,iBACP,cAAc,SAAS,CAAC,OAAO,gBAAgB,CAAC,OAAO;AAAA,EAEzD,IAAI,UAAU;AAAA,IACb,OAAO,UAAQ,MAAM,cAAc,UAAU,OAAO;AAAA,EACrD;AAAA,EAEA,MAAM,UACL,cAAc,SACX,WAAS,OAAO,iBAAiB,MAAM,IACvC,WAAS,OAAO,iBAAiB,MAAM;AAAA,EAE3C,OAAO,UAAQ,MAAM,cAAc,UAAU,SAAS,OAAO;AAAA,GAGxD,wBAAwB,OAC7B,OACA,UACA,mBACA,UACA,aACI;AAAA,EACJ,IAAI;AAAA,IACH,QAAQ,wCAAqB;AAAA,IAC7B,MAAM,UAAU,MAAM,kBAAiB,iBAAiB;AAAA,IAExD,IAAI,CAAC,SAAS;AAAA,MACb;AAAA,IACD;AAAA,IAEA,aAAa,UAAU,QAAQ,QAAQ;AAAA,IACvC,mBAAmB,OAAO;AAAA,MACzB,MAAM;AAAA,QACL,WAAW;AAAA,QACX,MAAM;AAAA,QACN;AAAA,QACA,YAAY;AAAA,MACb;AAAA,MACA,MAAM;AAAA,IACP,CAAC;AAAA,IACA,OAAO,KAAK;AAAA,IACb,mBAAmB,aAAa;AAAA,MAC/B,WAAW;AAAA,MACX,SAAS,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAAA,IACzD,CAAC;AAAA;AAAA,GAIG,oBAAoB,OACzB,OACA,QACA,gBACA,UACA,aACI;AAAA,EACJ,IAAI,CAAC,MAAM,cAAc,SAAS;AAAA,IACjC;AAAA,EACD;AAAA,EAEA,MAAM,gCAAgC,MAAM,gCAC3C,QACA,cACD;AAAA,EACA,MAAM,qBAAqB,eAAe,OACzC,CAAC,UAAS,gBAAgB,OAAM,MAAM,aAAa,MAAM,MAC1D;AAAA,EAEA,IAAI,mBAAmB,WAAW,KAAK,CAAC,+BAA+B;AAAA,IACtE;AAAA,EACD;AAAA,EAEA,MAAM,gBAAgB,mBAAmB,OAAO,CAAC,UAChD,MAAK,SAAS,OAAO,CACtB;AAAA,EACA,MAAM,kBAAkB,sBAAsB,OAAO,QAAQ,MAAM;AAAA,EACnE,MAAM,wBACL,cAAc,WAAW,KAAK;AAAA,EAC/B,MAAM,oBAAoB,wBACvB,MAAM,gBAAgB,iBAAiB,QAAQ,IAC/C;AAAA,EAEH,MAAM,gBAAgB,mBAAmB,OAAO,aAAa;AAAA,IAC5D,MAAM,eAAe,WAAS,QAAQ;AAAA,IACtC,MAAM,oBAAoB,UAAQ,iBAAiB,YAAY;AAAA,IAC/D,MAAM,sBACL,OACA,UACA,mBACA,UACA,QACD;AAAA,GACA;AAAA,GAGI,yBAAyB,CAC9B,OACA,aACA,UACA,aACI;AAAA,EACJ,OAAO,WAAW;AAAA,EAClB,IAAI,CAAC,SAAS;AAAA,IACb;AAAA,EACD;AAAA,EAEA,MAAM,cAAc,WAAS,iBAAiB,OAAO,CAAC;AAAA,EACtD,MAAM,gBAAgB,SAAS,WAAW;AAAA,EAC1C,MAAM,SAAS,GAAG;AAAA,EAClB,MAAM,SAAS,SAAS,WAAW;AAAA,EAEnC,aAAa,SAAS,OAAO,QAAQ;AAAA,EACrC,mBAAmB,OAAO;AAAA,IACzB,MAAM;AAAA,MACL;AAAA,MACA;AAAA,MACA,WAAW;AAAA,MACX;AAAA,MACA,YAAY;AAAA,MACZ,YAAY;AAAA,IACb;AAAA,IACA,MAAM;AAAA,EACP,CAAC;AAAA,GAGI,wBAAwB,CAC7B,OACA,aACA,UACA,QACA,OACA,UACA,aACI;AAAA,EACJ,aAAa,aAAa,OAAO,QAAQ;AAAA,EACzC,mBAAmB,OAAO;AAAA,IACzB,MAAM;AAAA,MACL,YAAY;AAAA,MACZ,aAAa;AAAA,MACb;AAAA,MACA,WAAW;AAAA,MACX;AAAA,MACA;AAAA,MACA,YAAY;AAAA,MACZ,YAAY;AAAA,IACb;AAAA,IACA,MAAM;AAAA,EACP,CAAC;AAAA,GAGI,yBAAyB,CAC9B,OACA,aACA,YACA,QACA,OACA,UACA,YACA,aACI;AAAA,EACJ,MAAM,gBAAgB,SAAS,GAAG,uBAAuB;AAAA,EAEzD,aAAa,aAAa,OAAO,QAAQ;AAAA,EACzC,mBAAmB,OAAO;AAAA,IACzB,MAAM;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW;AAAA,MACX;AAAA,MACA,MAAM;AAAA,MACN;AAAA,MACA,YAAY;AAAA,MACZ,YAAY;AAAA,IACb;AAAA,IACA,MAAM;AAAA,EACP,CAAC;AAAA,GAGI,yBAAyB,OAC9B,OACA,QACA,aACA,UACA,aACI;AAAA,EACJ,MAAM,WAAW,WAAS,WAAW;AAAA,EACrC,MAAM,WAAW,SAAS,QAAQ,UAAU,EAAE;AAAA,EAC9C,MAAM,aAAa,SAAS,QAAQ;AAAA,EAEpC,MAAM,UAAU,OAAO;AAAA,EACvB,MAAM,QAAQ,UACX,WAAS,SAAS,WAAW,EAC5B,QAAQ,OAAO,GAAG,EAClB,QAAQ,UAAU,EAAE,IACrB;AAAA,EAEH,MAAM,SAAS,GAAG;AAAA,EAClB,MAAM,SAAS,SAAS,WAAW;AAAA,EAEnC,QAAQ,oCAAmB;AAAA,EAC3B,MAAM,UAAU,gBAAe,IAAI,UAAQ,WAAW,CAAC;AAAA,EACvD,MAAM,aAAa,SAAS,cAAc;AAAA,EAE1C,IAAI,eAAe,cAAc;AAAA,IAChC,sBACC,OACA,aACA,UACA,QACA,OACA,UACA,QACD;AAAA,IAEA;AAAA,EACD;AAAA,EAEA,uBACC,OACA,aACA,YACA,QACA,OACA,UACA,YACA,QACD;AAAA,GAGK,uBAAuB,OAC5B,OACA,QACA,aACA,UACA,aACI;AAAA,EACJ,IAAI;AAAA,IACH,MAAM,uBACL,OACA,QACA,aACA,UACA,QACD;AAAA,IACC,OAAO,KAAK;AAAA,IACb,mBAAmB,aAAa;AAAA,MAC/B,WAAW;AAAA,MACX,SAAS,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAAA,IACzD,CAAC;AAAA;AAAA,GAIG,eAAe,OACpB,OACA,QACA,gBACA,UACA,aACI;AAAA,EACJ,IAAI,CAAC,OAAO,cAAc;AAAA,IACzB;AAAA,EACD;AAAA,EAEA,MAAM,WAAW,eAAe,OAC/B,CAAC,UAAS,gBAAgB,OAAM,MAAM,aAAa,MAAM,KAC1D;AAAA,EAEA,IAAI,SAAS,WAAW,GAAG;AAAA,IAC1B;AAAA,EACD;AAAA,EAEA,MAAM,oBAAoB,SAAS,OAAO,CAAC,UAAS,MAAK,SAAS,MAAM,CAAC;AAAA,EACzE,MAAM,cAAc,SAAS,OAAO,WAAW;AAAA,EAC/C,MAAM,kBACL,kBAAkB,WAAW,KAAK,YAAY,SAAS;AAAA,EAExD,MAAM,eAAe,SAAS,OAAO,CAAC,UACrC,MAAK,QAAQ,OAAO,GAAG,EAAE,SAAS,SAAS,CAC5C;AAAA,EACA,MAAM,gBACL,aAAa,SAAS,IAAI,eAAe;AAAA,EAE1C,IAAI,mBAAmB,YAAY,SAAS,GAAG;AAAA,IAC9C,uBAAuB,OAAO,aAAa,UAAU,QAAQ;AAAA,EAC9D;AAAA,EAEA,MAAM,gBAAgB,eAAe,CAAC,gBACrC,qBAAqB,OAAO,QAAQ,aAAa,UAAU,QAAQ,CACpE;AAAA,GAGK,4BAA4B,CACjC,OACA,gBACA,UACA,aACI;AAAA,EACJ,OAAO,WAAW;AAAA,EAClB,IAAI,CAAC,SAAS;AAAA,IACb;AAAA,EACD;AAAA,EAEA,MAAM,cAAc,WAAS,iBAAiB,OAAO,CAAC;AAAA,EACtD,MAAM,gBAAgB,SAAS,WAAW;AAAA,EAC1C,MAAM,SAAS,GAAG;AAAA,EAClB,MAAM,SAAS,SAAS,WAAW;AAAA,EAEnC,aAAa,SAAS,UAAU,QAAQ;AAAA,EACxC,mBAAmB,OAAO;AAAA,IACzB,MAAM;AAAA,MACL;AAAA,MACA;AAAA,MACA,WAAW;AAAA,MACX;AAAA,MACA,YAAY;AAAA,MACZ,YAAY;AAAA,IACb;AAAA,IACA,MAAM;AAAA,EACP,CAAC;AAAA,GAGI,4BAA4B,CACjC,OACA,gBACA,UACA,aACI;AAAA,EACJ,IAAI;AAAA,IACH,MAAM,WAAW,WAAS,cAAc;AAAA,IACxC,MAAM,WAAW,SAAS,QAAQ,aAAa,EAAE;AAAA,IACjD,MAAM,aAAa,SAAS,QAAQ;AAAA,IACpC,MAAM,SAAS,GAAG;AAAA,IAClB,MAAM,SAAS,SAAS,WAAW;AAAA,IAEnC,aAAa,gBAAgB,UAAU,QAAQ;AAAA,IAC/C,mBAAmB,OAAO;AAAA,MACzB,MAAM;AAAA,QACL,aAAa;AAAA,QACb;AAAA,QACA,WAAW;AAAA,QACX,MAAM;AAAA,QACN;AAAA,QACA,YAAY;AAAA,QACZ,YAAY;AAAA,MACb;AAAA,MACA,MAAM;AAAA,IACP,CAAC;AAAA,IACA,OAAO,KAAK;AAAA,IACb,mBAAmB,aAAa;AAAA,MAC/B,WAAW;AAAA,MACX,SAAS,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAAA,IACzD,CAAC;AAAA;AAAA,GAIG,kBAAkB,CACvB,OACA,QACA,gBACA,UACA,aACI;AAAA,EACJ,IAAI,CAAC,OAAO,iBAAiB;AAAA,IAC5B;AAAA,EACD;AAAA,EAEA,MAAM,cAAc,eAAe,OAClC,CAAC,UAAS,gBAAgB,OAAM,MAAM,aAAa,MAAM,QAC1D;AAAA,EAEA,IAAI,YAAY,WAAW,GAAG;AAAA,IAC7B;AAAA,EACD;AAAA,EAEA,MAAM,uBAAuB,YAAY,OAAO,CAAC,UAChD,MAAK,SAAS,SAAS,CACxB;AAAA,EACA,MAAM,iBAAiB,YAAY,OAAO,WAAW;AAAA,EACrD,MAAM,kBACL,qBAAqB,WAAW,KAAK,eAAe,SAAS;AAAA,EAE9D,MAAM,kBAAkB,YAAY,OAAO,CAAC,UAC3C,MAAK,QAAQ,OAAO,GAAG,EAAE,SAAS,SAAS,CAC5C;AAAA,EACA,MAAM,gBACL,gBAAgB,SAAS,IAAI,kBAAkB;AAAA,EAEhD,IAAI,mBAAmB,eAAe,SAAS,GAAG;AAAA,IACjD,0BAA0B,OAAO,gBAAgB,UAAU,QAAQ;AAAA,EACpE;AAAA,EAEA,cAAc,QAAQ,CAAC,mBAAmB;AAAA,IACzC,0BAA0B,OAAO,gBAAgB,UAAU,QAAQ;AAAA,GACnE;AAAA,GAGI,8BAA8B,CACnC,UACA,kBACI;AAAA,EACJ,SAAS,QAAQ,CAAC,UAAS;AAAA,IAC1B,IACC,MAAK,QAAQ,OAAO,GAAG,EAAE,SAAS,SAAS,KAC3C,MAAK,SAAS,KAAK,GAClB;AAAA,MACD,cAAc,IAAI,KAAI;AAAA,IACvB;AAAA,GACA;AAAA,GAGI,yCAAyC,CAC9C,OACA,iBACI;AAAA,EACJ,MAAM,gBAAgB,IAAI;AAAA,EAC1B,aAAa,QAAQ,CAAC,kBAAkB;AAAA,IACvC,MAAM,aAAa,2BAClB,eACA,MAAM,eACP;AAAA,IACA,MAAM,WAAW,iBAAiB,MAAM,iBAAiB,UAAU;AAAA,IACnE,4BAA4B,UAAU,aAAa;AAAA,GACnD;AAAA,EAED,OAAO,MAAM,KAAK,aAAa;AAAA,GAG1B,6BAA6B,CAClC,OACA,iBACA,UACA,aACI;AAAA,EACJ,OAAO,WAAW;AAAA,EAClB,IAAI,CAAC,SAAS;AAAA,IACb;AAAA,EACD;AAAA,EAEA,MAAM,cAAc,WAAS,iBAAiB,OAAO,CAAC;AAAA,EACtD,MAAM,gBAAgB,SAAS,WAAW;AAAA,EAC1C,MAAM,SAAS,GAAG;AAAA,EAClB,MAAM,SAAS,SAAS,WAAW;AAAA,EAEnC,aAAa,SAAS,WAAW,QAAQ;AAAA,EACzC,mBAAmB,OAAO;AAAA,IACzB,MAAM;AAAA,MACL;AAAA,MACA;AAAA,MACA,WAAW;AAAA,MACX;AAAA,MACA,YAAY;AAAA,MACZ,YAAY;AAAA,IACb;AAAA,IACA,MAAM;AAAA,EACP,CAAC;AAAA,GAGI,gCAAgC,CACrC,OACA,iBACA,UACA,aACI;AAAA,EACJ,IAAI;AAAA,IACH,MAAM,WAAW,WAAS,eAAe;AAAA,IACzC,MAAM,WAAW,SAAS,QAAQ,YAAY,EAAE;AAAA,IAChD,MAAM,aAAa,SAAS,QAAQ;AAAA,IACpC,MAAM,SAAS,GAAG;AAAA,IAClB,MAAM,SAAS,SAAS,WAAW;AAAA,IAEnC,aAAa,iBAAiB,WAAW,QAAQ;AAAA,IACjD,mBAAmB,OAAO;AAAA,MACzB,MAAM;AAAA,QACL,aAAa;AAAA,QACb;AAAA,QACA,WAAW;AAAA,QACX;AAAA,QACA,YAAY;AAAA,QACZ,YAAY;AAAA,MACb;AAAA,MACA,MAAM;AAAA,IACP,CAAC;AAAA,IACA,OAAO,KAAK;AAAA,IACb,mBAAmB,aAAa;AAAA,MAC/B,WAAW;AAAA,MACX,SAAS,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAAA,IACzD,CAAC;AAAA;AAAA,GAIG,mBAAmB,CACxB,OACA,QACA,gBACA,UACA,aACI;AAAA,EACJ,IAAI,CAAC,OAAO,kBAAkB;AAAA,IAC7B;AAAA,EACD;AAAA,EAEA,MAAM,eAAe,eAAe,OACnC,CAAC,UAAS,gBAAgB,OAAM,MAAM,aAAa,MAAM,SAC1D;AAAA,EAEA,IAAI,aAAa,WAAW,GAAG;AAAA,IAC9B;AAAA,EACD;AAAA,EAEA,MAAM,kBAAkB,aAAa,OAAO,WAAW;AAAA,EACvD,MAAM,kBACL,aAAa,MAAM,WAAW,KAAK,gBAAgB,SAAS;AAAA,EAE7D,MAAM,mBAAmB,aAAa,OAAO,CAAC,UAC7C,MAAK,QAAQ,OAAO,GAAG,EAAE,SAAS,SAAS,CAC5C;AAAA,EAEA,IAAI,gBAAgB;AAAA,EACpB,IAAI,cAAc,WAAW,KAAK,MAAM,iBAAiB;AAAA,IACxD,gBAAgB,uCACf,OACA,YACD;AAAA,EACD;AAAA,EAEA,IAAI,mBAAmB,gBAAgB,SAAS,GAAG;AAAA,IAClD,2BAA2B,OAAO,iBAAiB,UAAU,QAAQ;AAAA,IAErE;AAAA,EACD;AAAA,EAEA,cAAc,QAAQ,CAAC,oBAAoB;AAAA,IAC1C,8BACC,OACA,iBACA,UACA,QACD;AAAA,GACA;AAAA,GAGI,sBAAsB,CAC3B,OACA,gBACA,UACA,aACI;AAAA,EACJ,IAAI,CAAC,MAAM,cAAc,SAAS;AAAA,IACjC;AAAA,EACD;AAAA,EAEA,MAAM,qBAAqB,eAAe,OACzC,CAAC,UAAS,gBAAgB,OAAM,MAAM,aAAa,MAAM,MAC1D;AAAA,EAEA,IAAI,mBAAmB,WAAW,GAAG;AAAA,IACpC;AAAA,EACD;AAAA,EAEA,MAAM,kBAAkB,mBAAmB,OAAO,YAAY;AAAA,EAC9D,MAAM,gBAAgB,mBAAmB,OAAO,CAAC,UAChD,MAAK,SAAS,OAAO,CACtB;AAAA,EAEA,IAAI,gBAAgB,WAAW,KAAK,cAAc,SAAS,GAAG;AAAA,IAC7D;AAAA,EACD;AAAA,EAEA,gBAAgB,QAAQ,CAAC,eAAe;AAAA,IACvC,mBAAmB,OAAO,YAAY,UAAU,QAAQ,QAAQ;AAAA,GAChE;AAAA,GAGI,wBAAwB,OAC7B,OACA,cACA,mBACA,UACA,aACI;AAAA,EACJ,IAAI;AAAA,IACH,QAAQ,wCAAqB;AAAA,IAC7B,MAAM,UAAU,MAAM,kBAAiB,iBAAiB;AAAA,IAExD,IAAI,CAAC,SAAS;AAAA,MACb;AAAA,IACD;AAAA,IAEA,aAAa,cAAc,QAAQ,QAAQ;AAAA,IAC3C,mBAAmB,OAAO;AAAA,MACzB,MAAM;AAAA,QACL,WAAW;AAAA,QACX,MAAM;AAAA,QACN;AAAA,QACA,YAAY;AAAA,MACb;AAAA,MACA,MAAM;AAAA,IACP,CAAC;AAAA,IACA,OAAO,KAAK;AAAA,IACb,mBAAmB,aAAa;AAAA,MAC/B,WAAW;AAAA,MACX,SAAS,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAAA,IACzD,CAAC;AAAA;AAAA,GAIG,oBAAoB,OACzB,OACA,QACA,gBACA,UACA,aACI;AAAA,EACJ,IAAI,CAAC,MAAM,cAAc,SAAS;AAAA,IACjC;AAAA,EACD;AAAA,EAEA,MAAM,gCAAgC,MAAM,gCAC3C,QACA,cACD;AAAA,EACA,MAAM,qBAAqB,eAAe,OACzC,CAAC,UAAS,gBAAgB,OAAM,MAAM,aAAa,MAAM,MAC1D;AAAA,EAEA,IAAI,mBAAmB,WAAW,KAAK,CAAC,+BAA+B;AAAA,IACtE;AAAA,EACD;AAAA,EAEA,MAAM,gBAAgB,mBAAmB,OAAO,CAAC,UAChD,MAAK,SAAS,OAAO,CACtB;AAAA,EACA,MAAM,kBAAkB,sBAAsB,OAAO,QAAQ,MAAM;AAAA,EACnE,MAAM,wBACL,cAAc,WAAW,KAAK;AAAA,EAC/B,MAAM,oBAAoB,wBACvB,MAAM,gBAAgB,iBAAiB,QAAQ,IAC/C;AAAA,EAEH,MAAM,gBAAgB,mBAAmB,OAAO,iBAAiB;AAAA,IAChE,MAAM,eAAe,WAAS,YAAY;AAAA,IAC1C,MAAM,oBAAoB,UAAQ,iBAAiB,YAAY;AAAA,IAC/D,MAAM,sBACL,OACA,cACA,mBACA,UACA,QACD;AAAA,GACA;AAAA,GAGI,4BAA4B,CACjC,qBAII;AAAA,EACJ,MAAM,QAAkB,CAAC;AAAA,EACzB,iBAAiB,QAAQ,CAAC,WAAW;AAAA,IACpC,MAAM,KAAK,OAAO,UAAU;AAAA,IAC5B,OAAO,OAAO,OAAO,WAAW,EAAE,QAAQ,CAAC,eAAe;AAAA,MACzD,MAAM,KAAK,UAAU;AAAA,KACrB;AAAA,GACD;AAAA,EAED,OAAO;AAAA,GAGF,+BAA+B,CACpC,QACA,qBACA,mBACI;AAAA,EACJ,MAAM,gBAAgB,oBAAoB,IAAI,OAAO,UAAU;AAAA,EAC/D,IAAI,kBAAkB,WAAW;AAAA,IAChC,eAAe,OAAO,cAAc;AAAA,EACrC;AAAA,EACA,OAAO,OAAO,OAAO,WAAW,EAAE,QAAQ,CAAC,SAAS;AAAA,IACnD,MAAM,cAAc,oBAAoB,IAAI,IAAI;AAAA,IAChD,IAAI,gBAAgB,WAAW;AAAA,MAC9B,eAAe,QAAQ;AAAA,IACxB;AAAA,GACA;AAAA,GAGI,sBAAsB,CAC3B,OACA,kBACA,aACI;AAAA,EACJ,MAAM,qBAAqB,0BAA0B,gBAAgB;AAAA,EAErE,IAAI,mBAAmB,SAAS,GAAG;AAAA,IAClC,wBAAwB,MAAM,gBAAgB,kBAAkB;AAAA,EACjE;AAAA,EAEA,IAAI,iBAAiB,WAAW,GAAG;AAAA,IAClC;AAAA,EACD;AAAA,EAEA,MAAM,qBAAqB,8BAA8B,gBAAgB;AAAA,EACzE,MAAM,iBAAiB,wBAAwB,MAAM,cAAc;AAAA,EAEnE,YAAY,WAAW,YAAY,oBAAoB;AAAA,IACtD,MAAM,iBAAyC,CAAC;AAAA,IAChD,QAAQ,QAAQ,CAAC,WAAW;AAAA,MAC3B,6BACC,QACA,MAAM,gBACN,cACD;AAAA,KACA;AAAA,IAED,mBAAmB,OAAO;AAAA,MACzB,MAAM;AAAA,QACL;AAAA,QACA;AAAA,QACA,SAAS,QAAQ,IAAI,CAAC,YAAY;AAAA,UACjC,eAAe,OAAO;AAAA,UACtB,YAAY,OAAO;AAAA,UACnB,aAAa,OAAO;AAAA,UACpB,YAAY,OAAO;AAAA,UACnB,SAAS,MAAM,eAAe,IAAI,OAAO,UAAU;AAAA,QACpD,EAAE;AAAA,QACF;AAAA,QACA;AAAA,MACD;AAAA,MACA,SAAS,GAAG;AAAA,MACZ,MAAM;AAAA,IACP,CAAC;AAAA,EACF;AAAA,GAGK,qBAAqB,OAC1B,OACA,QACA,oBACA,gBACA,UACA,aACI;AAAA,EACJ,MAAM,mBAAmB,wBACxB,oBACA,gBACA,UACA,KACD;AAAA,EAEA,eACC,OACA,oBACA,gBACA,UACA,QACD;AAAA,EAEA,oBAAoB,OAAO,gBAAgB,UAAU,QAAQ;AAAA,EAE7D,MAAM,kBAAkB,OAAO,QAAQ,gBAAgB,UAAU,QAAQ;AAAA,EAEzE,MAAM,aAAa,OAAO,QAAQ,gBAAgB,UAAU,QAAQ;AAAA,EAEpE,gBAAgB,OAAO,QAAQ,gBAAgB,UAAU,QAAQ;AAAA,EAEjE,iBAAiB,OAAO,QAAQ,gBAAgB,UAAU,QAAQ;AAAA,EAElE,oBAAoB,OAAO,gBAAgB,UAAU,QAAQ;AAAA,EAE7D,MAAM,kBAAkB,OAAO,QAAQ,gBAAgB,UAAU,QAAQ;AAAA,EAEzE,oBAAoB,OAAO,kBAAkB,QAAQ;AAAA,GAGhD,8BAA8B,CACnC,OACA,WACA,gBACA,cACI;AAAA,EACJ,MAAM,MAAM,KAAK,IAAI,IAAI;AAAA,EACzB,eAAe,QAAQ,CAAC,UAAS;AAAA,IAChC,IAAI,gBAAgB,OAAM,MAAM,aAAa,MAAM,WAAW;AAAA,MAC7D,aAAa,OAAM,WAAW,GAAG;AAAA,IAClC;AAAA,GACA;AAAA,GAGI,iCAAiC,CACtC,OACA,WACA,gBACA,UACA,cACI;AAAA,EACJ,MAAM,OACL,cAAc,YAAY,cAAc,WACrC,iBACA;AAAA,EAEJ,IAAI,SAAS,kBAAkB,gBAAgB;AAAA,IAC9C,4BACC,OACA,WACA,gBACA,SACD;AAAA,EACD;AAAA,EACA,mBAAmB,OAAO;AAAA,IACzB,MAAM;AAAA,MACL;AAAA,MACA;AAAA,IACD;AAAA,IACA,SAAS,GAAG;AAAA,IACZ;AAAA,EACD,CAAC;AAAA,GAGI,4BAA4B,CACjC,OACA,oBACA,gBACA,UACA,cACI;AAAA,EACJ,mBAAmB,QAAQ,CAAC,cAAc;AAAA,IACzC,+BACC,OACA,WACA,gBACA,UACA,SACD;AAAA,GACA;AAAA,GAGI,oBAGA,mBAAmB,CACxB,UACA,WACI;AAAA,EACJ,IAAI;AAAA,IACH,MAAM,WAAW,OAAO,UAAU,OAAO;AAAA,IACzC,OAAO,WAAW,SAAS,MAAM,kBAAkB,KAAK,CAAC;AAAA,IAEzD,OAAO,WAAW;AAAA,IACjB,MAAM;AAAA,IAEP,OAAO;AAAA;AAAA,GAIH,kBAAkB,CACvB,UACA,WACA,QACA,YACI;AAAA,EACJ,IAAI,CAAC;AAAA,IAAW;AAAA,EAEhB,IAAI,OAAO,OAAO,UAAU,OAAO;AAAA,EACnC,MAAM,YAAY,eAAe,KAAK,IAAI;AAAA,EAC1C,IAAI,CAAC;AAAA,IAAW;AAAA,EAEhB,OACC,KAAK,MAAM,GAAG,UAAU,KAAK,IAC7B,YACA,KAAK,MAAM,UAAU,KAAK;AAAA,EAC3B,QAAQ,UAAU,IAAI;AAAA,GAGjB,4BAA4B,OACjC,OACA,YACA,WACA,WACA,WACA,mBAIA,cACA,QACA,YACI;AAAA,EACJ,MAAM,WAAW,UAAQ,WAAW,WAAS,UAAU,CAAC;AAAA,EAGxD,MAAM,YAAY,iBAAiB,UAAU,MAAM;AAAA,EAGnD,MAAM,SAAS,MAAM,IAAI,KAAK,UAAU,EAAE,KAAK;AAAA,EAC/C,MAAM,IAAI,MAAM,UAAU,MAAM;AAAA,EAGhC,MAAM,kBAAiB,MAAM,UAAU,SAAS;AAAA,EAGhD,QAAQ,4CAAuB;AAAA,EAC/B,MAAM,oBAAmB,SAAS;AAAA,EAGlC,gBAAgB,UAAU,WAAW,QAAQ,OAAO;AAAA,EAGpD,MAAM,UAAU,MAAM,aAAa,QAAQ;AAAA,EAC3C,IAAI,CAAC;AAAA,IAAS;AAAA,EAEd,MAAM,MAAM,KAAK,IAAI,IAAI;AAAA,EACzB,aAAa,YAAY,WAAW,GAAG;AAAA,EACvC,mBAAmB,OAAO;AAAA,IACzB,MAAM;AAAA,MACL;AAAA,MACA,MAAM;AAAA,MACN,UAAU,MAAM;AAAA,MAChB;AAAA,IACD;AAAA,IACA,MAAM,GAAG;AAAA,EACV,CAAC;AAAA,GAGI,uBAAuB,OAC5B,OACA,YACA,WACA,WACA,WACA,mBAIA,cACA,QACA,YACI;AAAA,EACJ,IAAI;AAAA,IACH,MAAM,0BACL,OACA,YACA,WACA,WACA,WACA,mBACA,cACA,QACA,OACD;AAAA,IAEA,OAAO;AAAA,IACN,MAAM;AAAA,IAEP,OAAO;AAAA;AAAA,GAIH,oBAAoB,OACzB,OACA,QACA,gBACA,WACA,cACI;AAAA,EACJ,MAAM,eAAe,kBAAkB,CAAC,GAAG,OAAO,CAAC,UAClD,MAAK,SAAS,OAAO,CACtB;AAAA,EAEA,IAAI,YAAY,WAAW;AAAA,IAAG;AAAA,EAE9B,MAAM,YAAY,sBAAsB,OAAO,QAAQ,SAAS;AAAA,EAChE,QAAQ,wCAAqB;AAAA,EAC7B,MAAM,eACL,cAAc,UACV,mFAAiC,oBACjC,mFAAiC;AAAA,EACtC,QAAQ,cAAc,QAAQ,eAAe,YAAY,MACxD;AAAA,EAGD,MAAM,qBAAqB,OAAO,UAAoB;AAAA,IACrD,OAAO,eAAe,aAAa;AAAA,IACnC,IAAI,CAAC,YAAY;AAAA,MAChB;AAAA,IACD;AAAA,IAEA,MAAM,UAAU,MAAM,qBACrB,OACA,YACA,WACA,WACA,WACA,mBACA,cACA,QACA,OACD;AAAA,IACA,IAAI,CAAC,SAAS;AAAA,MACb;AAAA,IACD;AAAA,IAEA,MAAM,mBAAmB,SAAS;AAAA;AAAA,EAGnC,MAAM,mBAAmB,WAAW;AAAA,GAG/B,kBAAkB,OACvB,OACA,QACA,gBACA,cACI,kBAAkB,OAAO,QAAQ,gBAAgB,WAAW,MAAM,GAEjE,kBAAkB,OACvB,OACA,QACA,gBACA,cACI,kBAAkB,OAAO,QAAQ,gBAAgB,WAAW,MAAM,GAiBjE,mBAAmB,CACxB,OACA,WACA,eACA,YACI;AAAA,EACJ,MACE,OAAO,CAAC,OAAM,gBAAgB,IAAG,aAAa,MAAM,SAAS,EAC7D,QAAQ,CAAC,OAAM,QAAQ,IAAI,EAAC,CAAC;AAAA,GAG1B,wBAAwB,OAC7B,OACA,QACA,oBACA,OACA,WACA,sBAII;AAAA,EACJ,MAAM,UAAU,IAAI;AAAA,EAEpB,MAAM,YAAuC;AAAA,IAC5C;AAAA,MACC,WAAW,OAAO;AAAA,MAClB,WAAW;AAAA,MACX,SAAS;AAAA,IACV;AAAA,IACA;AAAA,MACC,WAAW,OAAO;AAAA,MAClB,WAAW;AAAA,MACX,SAAS;AAAA,IACV;AAAA,IACA;AAAA,MACC,WAAW,OAAO;AAAA,MAClB,WAAW;AAAA,MACX,SAAS;AAAA,IACV;AAAA,IACA;AAAA,MACC,WAAW,OAAO;AAAA,MAClB,WAAW;AAAA,MACX,SAAS;AAAA,IACV;AAAA,EACD;AAAA,EAEA,MAAM,gBAAgB,WAAW,OAAO,aAAa;AAAA,IACpD,IACC,CAAC,SAAS,aACV,CAAC,mBAAmB,SAAS,SAAS,SAAS;AAAA,MAE/C;AAAA,IAED,MAAM,SAAS,QACd,OACA,QACA,OACA,WACA,iBACD;AAAA,IACA,iBACC,OACA,SAAS,WACT,MAAM,eACN,OACD;AAAA,GACA;AAAA,EAID,OAAO,MAAM,MAAM,CAAC,OAAM,QAAQ,IAAI,EAAC,CAAC;AAAA,GAGnC,qBAAqB,OAC1B,OACA,QACA,oBACA,gBACA,WACA,sBAII;AAAA,EAKJ,MAAM,cAAc,OAAO,KAAK,MAAM,QAAQ,EAAE,SAAS;AAAA,EACzD,MAAM,QAAQ,kBAAkB,CAAC;AAAA,EACjC,IAAI,aAAa,MAAM,SAAS,KAAK;AAAA,EACrC,MAAM,yBACL,MAAM,SAAS,IACZ,MAAM,gCAAgC,QAAQ,KAAK,IACnD;AAAA,EAEJ,IAAI,cAAc,CAAC,wBAAwB;AAAA,IAC1C,aAAa,MAAM,sBAClB,OACA,QACA,oBACA,OACA,WACA,iBACD;AAAA,EACD;AAAA,EAGA,IACC,cACA,OAAO,iBACP,mBAAmB,SAAS,MAAM,GACjC;AAAA,IACD,MAAM,gBAAgB,OAAO,QAAQ,gBAAgB,SAAS;AAAA,EAC/D;AAAA,EAGA,IACC,cACA,OAAO,iBACP,mBAAmB,SAAS,MAAM,GACjC;AAAA,IACD,MAAM,gBAAgB,OAAO,QAAQ,gBAAgB,SAAS;AAAA,EAC/D;AAAA,EAKA,IAAI,YAAY;AAAA,IACf,MAAM,6BAA6B,OAAO,QAAQ,KAAK;AAAA,IAEvD,kBAAkB;AAAA,MACjB,UAAU;AAAA,MACV,UAAU,MAAM;AAAA,IACjB,CAAC;AAAA,IAED,OAAO,MAAM;AAAA,EACd;AAAA,EAEA,MAAM,cAA2B;AAAA,OAC7B;AAAA,IACH,kBACC,kBAAkB,eAAe,SAAS,IACvC,iBACA;AAAA,IACJ,SAAS;AAAA,SACL,OAAO;AAAA,MACV,cAAc,MAAM;AAAA,MACpB,WAAW;AAAA,MACX,cAAc;AAAA,IACf;AAAA,EACD;AAAA,EAEA,MAAM,cAAc,MAAM,MAAM,WAAW;AAAA,EAE3C,IAAI,CAAC,aAAa,UAAU;AAAA,IAC3B,MAAM,IAAI,MAAM,sCAAsC;AAAA,EACvD;AAAA,EACA,QAAQ,aAAa;AAAA,EAErB,MAAM,WAAW,KAAK,IAAI,IAAI;AAAA,EAE9B,mBAAmB,wBAAwB;AAAA,IAC1C,YAAY;AAAA,IACZ,WAAW,gBAAgB,UAAU;AAAA,IACrC,WAAW,mBAAmB,MAAM;AAAA,EACrC,CAAC;AAAA,EAED,MAAM,mBACL,MAAM,YACN,UACA,MAAM,cAAc,QACrB;AAAA,EAEK,iBACJ,MAAM,YACN,UACA,MAAM,cAAc,QACrB;AAAA,EAEA,mBAAmB,OAAO;AAAA,IACzB,MAAM;AAAA,MACL;AAAA,MACA;AAAA,IACD;AAAA,IACA,SAAS;AAAA,IACT,MAAM;AAAA,EACP,CAAC;AAAA,EAID,IACC,OAAO,YACP,kBACA,eAAe,KAAK,mBAAmB,GACtC;AAAA,IACD,mBAAmB,OAAO;AAAA,MACzB,MAAM,EAAE,WAAW,YAAY,SAAS;AAAA,MACxC,SAAS;AAAA,MACT,MAAM;AAAA,IACP,CAAC;AAAA,EACF;AAAA,EAEA,MAAM,oBAAoB,kBAAkB,eAAe,SAAS;AAAA,EACpE,MAAM,2BAA2B,oBAC9B,MAAM,yBACN,OACA,QACA,gBACA,QACD,IACC;AAAA,EAEH,IAAI,0BAA0B;AAAA,IAC7B,kBAAkB,EAAE,UAAU,OAAO,SAAS,CAAC;AAAA,IAE/C,OAAO;AAAA,EACR;AAAA,EAEA,IAAI,mBAAmB;AAAA,IACtB,MAAM,mBACL,OACA,QACA,oBACA,gBACA,UACA,QACD;AAAA,EACD;AAAA,EAEA,0BACC,OACA,oBACA,gBACA,UACA,SACD;AAAA,EAEA,IAAI,mBAAmB,SAAS,SAAS,GAAG;AAAA,IAC3C,kBAAkB,SAAS;AAAA,EAC5B;AAAA,EACA,IAAI,mBAAmB,SAAS,OAAO,GAAG;AAAA,IACzC,kBAAkB,OAAO;AAAA,EAC1B;AAAA,EACA,IAAI,mBAAmB,SAAS,QAAQ,GAAG;AAAA,IAC1C,kBAAkB,QAAQ;AAAA,EAC3B;AAAA,EACA,IAAI,mBAAmB,SAAS,KAAK,GAAG;AAAA,IACvC,kBAAkB,KAAK;AAAA,EACxB;AAAA,EAEA,kBAAkB,EAAE,UAAU,OAAO,SAAS,CAAC;AAAA,EAE/C,OAAO;AAAA,GAGF,oBAAoB,CACzB,OACA,QACA,sBAII;AAAA,EACJ,IAAI,MAAM,gBAAgB,SAAS,GAAG;AAAA,IACrC;AAAA,EACD;AAAA,EAEA,MAAM,UAAU,MAAM,KAAK,MAAM,gBAAgB,KAAK,CAAC;AAAA,EACvD,MAAM,cAAwB,CAAC;AAAA,EAC/B,MAAM,gBAAgB,QAAQ,CAAC,cAAc;AAAA,IAC5C,YAAY,KAAK,GAAG,SAAS;AAAA,GAC7B;AAAA,EACD,MAAM,gBAAgB,MAAM;AAAA,EAC5B,QAAQ,QAAQ,CAAC,UAAS,MAAM,aAAa,IAAI,KAAI,CAAC;AAAA,EACtD,IAAI,MAAM;AAAA,IAAgB,aAAa,MAAM,cAAc;AAAA,EAC3D,MAAM,iBAAiB,WAAW,MAAM;AAAA,IAClC,eACJ,OACA,QACA,mBACA,YAAY,SAAS,IAAI,cAAc,SACxC;AAAA,KACE,sBAAsB;AAAA,GAGb,iBAAiB,OAC7B,OACA,QACA,mBAIA,mBACI;AAAA,EACJ,IAAI,MAAM,cAAc;AAAA,IACvB,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,eAAe;AAAA,EACrB,MAAM,qBAAqB,MAAM,KAAK,MAAM,YAAY;AAAA,EACxD,MAAM,aAAa,MAAM;AAAA,EAEzB,MAAM,YAAY,KAAK,IAAI;AAAA,EAE3B,mBAAmB,OAAO;AAAA,IACzB,MAAM,EAAE,mBAAmB;AAAA,IAC3B,SAAS;AAAA,IACT,MAAM;AAAA,EACP,CAAC;AAAA,EAED,IAAI;AAAA,IACH,OAAO,MAAM,mBACZ,OACA,QACA,oBACA,gBACA,WACA,iBACD;AAAA,IACC,OAAO,OAAO;AAAA,IACf,mBAAmB,qBAAqB;AAAA,MACvC,YAAY,KAAK,IAAI,IAAI;AAAA,MACzB,WAAW,gBAAgB,UAAU;AAAA,MACrC,WAAW,mBAAmB,MAAM;AAAA,MACpC,YAAY;AAAA,MACZ,SAAS,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,IAC/D,CAAC;AAAA,IACD,MAAM,YAAY,yBACjB,OACA,oBACA,MAAM,aACP;AAAA,IACA,mBAAmB,OAAO;AAAA,MACzB,MAAM;AAAA,QACL;AAAA,QACA,OAAO,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,WACzD;AAAA,MACJ;AAAA,MACA,SAAS;AAAA,MACT,MAAM;AAAA,IACP,CAAC;AAAA,IAED,OAAO;AAAA,YACN;AAAA,IACD,MAAM,eAAe;AAAA,IACrB,kBAAkB,OAAO,QAAQ,iBAAiB;AAAA;AAAA;AAAA;AAAA,EAvoGpD;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EAKA;AAAA,EAMA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAQA;AAAA,EASA;AAAA,EACA;AAAA,EACA;AAAA,EAGA;AAAA,EACA;AAAA,EAOA;AAAA,EACA;AAAA,EACA;AAAA,EA1BM;AAAA,EA6+BA,oBAAoB;AAAA,EA8lDpB,qBACL;AAAA;;;IChmFY,uBAIA,2BAA2B,CACvC,OACA,UACI;AAAA,EACJ,MAAM,gBAAgB,MAAM,OAAO,CAAC,KAAK,SAAS,MAAM,KAAK,YAAY,CAAC;AAAA,EAE1E,OAAO;AAAA,IACN;AAAA,IACA,GAAG,MAAM,IACR,CAAC,SAAS,OAAO,KAAK,UAAU,kBAAkB,KAAK,UAAU,GAClE;AAAA,IACA,YAAY,kBAAkB,aAAa;AAAA,EAC5C,EAAE,KAAK;AAAA,CAAI;AAAA,GAGC,wBAAwB,CACpC,OACA,UACI;AAAA,EACJ,IAAI,CAAC,yBAAyB,MAAM,WAAW,GAAG;AAAA,IACjD;AAAA,EACD;AAAA,EAEA,QAAQ,IAAI,yBAAyB,OAAO,KAAK,CAAC;AAAA;AAAA;AAAA,EAlCnD;AAAA,EAOa,wBACZ,QAAQ,IAAI,6BAA6B,OACzC,QAAQ,IAAI,6BAA6B;AAAA;;;;;;;;ACT1C,sBAAS;AACT,iBAAS;AACT,eAAS;AACT;AAAA,IAGM,kBAAiB,CAAC,cACvB,UAAU,QAAQ,OAAO,GAAG,EAAE,QAAQ,MAAM,EAAE,EAAE,QAAQ,MAAM,GAAG,GAE5D,gBAAe,CAAC,cAAsB;AAAA,EAC3C,IAAI;AAAA,IACH,IAAI,YAAY,WAAW,QAAQ,IAAI,CAAC;AAAA,IAExC,OAAO;AAAA,IACN,MAAM;AAAA,IACP,OAAO;AAAA;AAAA,GAIH,mBAAkB,CAAC,SACxB,CAAC,KAAK,WAAW,GAAG,KACpB,CAAC,KAAK,WAAW,GAAG,KACpB,CAAC,KAAK,WAAW,OAAO,GAEnB,6BAA6B,CAAC,SACnC,SAAS,0BACT,KAAK,WAAW,uBAAuB,GAQlC,sBAsBA,8BAEA,uBAAuB,CAAC,SAC7B,qBAAqB,IAAI,IAAI,KAC7B,6BAA6B,KAAK,CAAC,WAAW,KAAK,WAAW,MAAM,CAAC,GAEhE,qBAKA,gBAAgB,CAAC,UACtB,MAAK,SAAS,cAAc,KAC5B,MAAK,SAAS,SAAS,KACvB,MAAK,SAAS,QAAQ,KACtB,MAAK,SAAS,WAAW,GAEpB,iBAAiB,CAAC,SACvB,iBAAgB,IAAI,KACpB,CAAC,qBAAqB,IAAI,KAC1B,CAAC,2BAA2B,IAAI,GAE3B,2BAA2B,CAAC,SACjC,iBAAgB,IAAI,KACpB,qBAAqB,IAAI,KACzB,CAAC,2BAA2B,IAAI,GAO3B,qBAAqB,OAC1B,OACA,gBACgC;AAAA,EAChC,MAAM,MAAgB,CAAC;AAAA,EACvB,MAAM,YAAsB,CAAC;AAAA,EAC7B,IAAI;AAAA,IACH,MAAM,UAAU,MAAM,IAAI,KAAK,KAAI,EAAE,KAAK;AAAA,IAC1C,WAAW,OAAO,YAAW,YAAY,OAAO,GAAG;AAAA,MAClD,IAAI,eAAe,IAAI,IAAI;AAAA,QAAG,IAAI,KAAK,IAAI,IAAI;AAAA,MAC1C,SAAI,yBAAyB,IAAI,IAAI;AAAA,QAAG,UAAU,KAAK,IAAI,IAAI;AAAA,IACrE;AAAA,IACC,MAAM;AAAA,EAIR,OAAO,EAAE,KAAK,UAAU;AAAA,GAGnB,eAAe,OAAO,QAAgB;AAAA,EAC3C,MAAM,QAAkB,CAAC;AAAA,EACzB,MAAM,OAAO,IAAI,MAAK,sBAAsB;AAAA,EAC5C,IAAI;AAAA,IACH,MAAM,MAAM,MAAM,MAAM,UACvB,KAAK,KAAK,EAAE,UAAU,MAAM,KAAK,IAAI,CAAC,CACvC;AAAA,IAEA,OAAO,IAAI,OAAO,CAAC,UAAS,CAAC,cAAc,KAAI,CAAC;AAAA,IAC/C,MAAM;AAAA,IACP,OAAO;AAAA;AAAA,GAIH,uBAAuB,OAC5B,KACA,aACA,KACA,cACI;AAAA,EACJ,MAAM,QAAQ,MAAM,aAAa,GAAG;AAAA,EACpC,MAAM,UAAU,MAAM,QAAQ,IAC7B,MAAM,IAAI,CAAC,UAAS,mBAAmB,OAAM,WAAU,CAAC,CACzD;AAAA,EACA,WAAW,UAAU,SAAS;AAAA,IAC7B,WAAW,QAAQ,OAAO;AAAA,MAAK,IAAI,IAAI,IAAI;AAAA,IAC3C,WAAW,QAAQ,OAAO;AAAA,MAAW,UAAU,IAAI,IAAI;AAAA,EACxD;AAAA,GAIK,kBAAkB,OACvB,gBACgC;AAAA,EAChC,MAAM,MAAM,IAAI;AAAA,EAChB,MAAM,YAAY,IAAI;AAAA,EACtB,MAAM,cAAa,IAAI,IAAI,WAAW,EAAE,QAAQ,MAAM,CAAC;AAAA,EAEvD,MAAM,QAAQ,IACb,YAAY,IAAI,CAAC,QAChB,qBAAqB,KAAK,aAAY,KAAK,SAAS,CACrD,CACD;AAAA,EAEA,OAAO;AAAA,IACN,KAAK,MAAM,KAAK,GAAG,EAAE,OAAO,aAAY;AAAA,IACxC,WAAW,MAAM,KAAK,SAAS,EAAE,OAAO,aAAY;AAAA,EACrD;AAAA,GAgBK,2BAA2B,OAChC,OACA,iBACA,mBACI;AAAA,EACJ,QAAQ,iCAAiB,MAAa;AAAA,EACtC,MAAM,cAAa,IAAI,IAAI,WAAW,EAAE,QAAQ,KAAK,CAAC;AAAA,EACtD,MAAM,WAAW,IAAI;AAAA,EAErB,WAAW,QAAQ,OAAO;AAAA,IACzB,IAAI,eAAe,IAAI,IAAI;AAAA,MAAG;AAAA,IAC9B,eAAe,IAAI,IAAI;AAAA,IACvB,IAAI;AAAA,IACJ,IAAI;AAAA,MACH,WAAW,IAAI,YAAY,MAAM,QAAQ,IAAI,CAAC;AAAA,MAC7C,MAAM;AAAA,MACP;AAAA;AAAA,IAED,IAAI;AAAA,IACJ,IAAI;AAAA,MACH,UAAU,eAAa,UAAU,OAAO;AAAA,MACvC,MAAM;AAAA,MACP;AAAA;AAAA,IAED,IAAI;AAAA,IACJ,IAAI;AAAA,MACH,UAAU,YAAW,YAAY,OAAO;AAAA,MACvC,MAAM;AAAA,MACP;AAAA;AAAA,IAED,WAAW,OAAO,SAAS;AAAA,MAC1B,MAAM,QAAQ,IAAI;AAAA,MAClB,IAAI,CAAC,iBAAgB,KAAK;AAAA,QAAG;AAAA,MAC7B,IAAI,qBAAqB,KAAK;AAAA,QAAG;AAAA,MACjC,IAAI,2BAA2B,KAAK;AAAA,QAAG;AAAA,MACvC,IAAI,gBAAgB,IAAI,KAAK;AAAA,QAAG;AAAA,MAChC,IAAI,CAAC,cAAa,KAAK;AAAA,QAAG;AAAA,MAC1B,SAAS,IAAI,KAAK;AAAA,IACnB;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,GAGF,qBAAqB,OAC1B,YACA,WACA,WACI;AAAA,EACJ,MAAM,cAAc,MAAM,QAAQ,IACjC,WAAW,IAAI,OAAO,cAAc;AAAA,IACnC,MAAM,WAAW,gBAAe,SAAS;AAAA,IACzC,MAAM,YAAY,OAAK,QAAQ,GAAG,aAAa;AAAA,IAC/C,MAAM,IAAI,MAAM,WAAW,0BAA0B,SAAS,CAAC;AAAA,IAE/D,OAAO;AAAA,GACP,CACF;AAAA,EAIA,OAAO,UAAS;AAAA,IACf;AAAA,IACA,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,OAAO;AAAA,EACR,CAAC;AAAA,GAGI,8BAA8B,GAEvB,iBAAiB,OAC7B,UACA,gBACI;AAAA,EACJ,QAAQ,KAAK,cAAc,WAAW,mBACrC,MAAM,gBAAgB,WAAW;AAAA,EAClC,IAAI,aAAa,WAAW,KAAK,eAAe,WAAW;AAAA,IAAG,OAAO,CAAC;AAAA,EAEtE,MAAM,YAAY,OAAK,UAAU,QAAQ;AAAA,EACzC,YAAU,WAAW,EAAE,WAAW,KAAK,CAAC;AAAA,EAExC,MAAM,SAAS,OAAK,UAAU,iBAAiB;AAAA,EAC/C,YAAU,QAAQ,EAAE,WAAW,KAAK,CAAC;AAAA,EAErC,MAAM,WAAW,IAAI,IAAY,YAAY;AAAA,EAC7C,MAAM,iBAAiB,IAAI;AAAA,EAW3B,IAAI,WAA6B,CAAC,GAAG,UAAU,GAAG,cAAc;AAAA,EAChE,SAAS,OAAO,EAAG,OAAO,6BAA6B,QAAQ;AAAA,IAC9D,MAAM,aAAa,MAAM,yBACxB,UACA,UACA,cACD;AAAA,IACA,IAAI,WAAW,SAAS;AAAA,MAAG;AAAA,IAC3B,WAAW,QAAQ;AAAA,MAAY,SAAS,IAAI,IAAI;AAAA,IAChD,WAAW;AAAA,EACZ;AAAA,EAEA,IAAI,SAAS,SAAS;AAAA,IAAG,OAAO,CAAC;AAAA,EAEjC,MAAM,SAAS,MAAM,mBACpB,MAAM,KAAK,QAAQ,GACnB,WACA,MACD;AAAA,EACA,MAAM,UAAU,OAAO;AAAA,EACvB,IAAI,CAAC,SAAS;AAAA,IACb,QAAQ,KAAK,oDAAyC,OAAO,IAAI;AAAA,EAClE;AAAA,EAEA,MAAM,IAAG,QAAQ,EAAE,OAAO,MAAM,WAAW,KAAK,CAAC;AAAA,EAOjD,MAAM,QAAgC,CAAC;AAAA,EACvC,WAAW,aAAa,UAAU;AAAA,IACjC,MAAM,aAAa,WAAW,gBAAe,SAAS;AAAA,EACvD;AAAA,EAEA,OAAO;AAAA,GAGK,wBAAwB,OAAO,gBAA0B;AAAA,EACrE,QAAQ,KAAK,cAAc,WAAW,mBACrC,MAAM,gBAAgB,WAAW;AAAA,EAClC,MAAM,WAAW,IAAI,IAAY,YAAY;AAAA,EAC7C,MAAM,iBAAiB,IAAI;AAAA,EAQ3B,IAAI,WAA6B,CAAC,GAAG,UAAU,GAAG,cAAc;AAAA,EAChE,SAAS,OAAO,EAAG,OAAO,6BAA6B,QAAQ;AAAA,IAC9D,MAAM,aAAa,MAAM,yBACxB,UACA,UACA,cACD;AAAA,IACA,IAAI,WAAW,SAAS;AAAA,MAAG;AAAA,IAC3B,WAAW,QAAQ;AAAA,MAAY,SAAS,IAAI,IAAI;AAAA,IAChD,WAAW;AAAA,EACZ;AAAA,EAEA,MAAM,QAAgC,CAAC;AAAA,EACvC,WAAW,aAAa,UAAU;AAAA,IACjC,MAAM,aAAa,WAAW,gBAAe,SAAS;AAAA,EACvD;AAAA,EAEA,OAAO;AAAA;AAAA;AAAA,EAlTF,uBAAuB,IAAI,IAAI;AAAA,IACpC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAC;AAAA,EAEK,+BAA+B,CAAC,WAAW;AAAA,EAM3C,sBAAsB;AAAA,IAC3B,GAAG;AAAA,IACH,GAAG,6BAA6B,IAAI,CAAC,WAAW,GAAG,SAAS;AAAA,EAC7D;AAAA;;;;;;;ACjEA,oBAAS;AACT,qBAAS;AACT,oBAAS;AAAA,IAyCH,oBASA,6BAA6B,CAAC,WAAwB;AAAA,EAC3D,MAAM,iBAAiB;AAAA,IACtB,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,EACR,EAAE,OAAO,CAAC,QAAuB,QAAQ,GAAG,CAAC;AAAA,EAO7C,OAAO,MAAM,KAAK,IAAI,IAAI,cAAc,CAAC;AAAA,GAIpC,uBAAuB,CAAC,WAAmB;AAAA,EAChD,MAAM,SAA+B,CAAC;AAAA,EACtC,MAAM,aAAa;AAAA,EACnB,IAAI;AAAA,EACJ,QAAQ,QAAQ,WAAW,KAAK,MAAM,OAAO,MAAM;AAAA,IAClD,SAAS,KAAK,SAAS;AAAA,IACvB,IAAI,OAAO;AAAA,MAAO,OAAO,OAAO,QAAQ,GAAG,MAAM,MAAM,CAAC;AAAA,EACzD;AAAA,EAEA,OAAO,OAAO,KAAK,MAAM,EAAE,SAAS,IAAI,SAAS;AAAA,GAI5C,eAAe,YAAY;AAAA,EAChC,IAAI;AAAA,IACH,MAAM,cAAa,UAClB,QAAQ,IAAI,mBAAmB,oBAChC;AAAA,IACA,MAAM,SAAS,MAAM,IAAI,KAAK,WAAU,EAAE,KAAK;AAAA,IAE/C,OAAO,qBAAqB,MAAM;AAAA,IACjC,MAAM;AAAA,IACP,OAAO;AAAA;AAAA,GAKH,sBAAsB,OAC3B,WACI;AAAA,EACJ,MAAM,YAAY,MAAM,aAAa;AAAA,EACrC,IAAI,CAAC;AAAA,IAAW;AAAA,EAEhB,MAAM,QAAQ,OAAO;AAAA,EACrB,MAAM,YAAY,MAAM;AAAA,EAGxB,MAAM,aAAa,mBAAmB,KACrC,CAAC,QAAQ,UAAU,SAAS,UAAU,IACvC;AAAA,EACA,IAAI,CAAC;AAAA,IAAY;AAAA,EAGjB,MAAM,gBAAgB,IAAI,IACzB,cAAc,WAAW,MAAM,aAAa,CAC7C;AAAA,EAGA,WAAW,OAAO,oBAAoB;AAAA,IACrC,MAAM,OAAO,OAAO,UAAU;AAAA,EAC/B;AAAA,EACA,MAAM,gBAAgB,kBAAkB,MAAM,MAAM;AAAA,EAGpD,IAAI,CAAC,UAAU,kBAAkB,QAAQ,UAAU,cAAc,GAAG;AAAA,IACnE,kBAAkB,mBAAmB,CAAC;AAAA,EACvC;AAAA,EACA,IAAI,CAAC,UAAU,oBAAoB,QAAQ,UAAU,gBAAgB,GAAG;AAAA,IACvE,sBAAsB,0BAA0B,CAAC;AAAA,EAClD;AAAA,EACA,IAAI,CAAC,UAAU,mBAAmB,QAAQ,UAAU,eAAe,GAAG;AAAA,IACrE,qBAAqB,yBAAyB,CAAC;AAAA,EAChD;AAAA,EACA,IAAI,CAAC,UAAU,gBAAgB,QAAQ,UAAU,YAAY,GAAG;AAAA,IAC/D,kBAAkB,sBAAsB,CAAC;AAAA,EAC1C;AAAA,EAGA,MAAM,gBAAgB,cAAc,MAAM,QAAQ,MAAM,aAAa;AAAA,EACrE,MAAM,aAAa,cAAc,OAAO,CAAC,SAAS,CAAC,cAAc,IAAI,IAAI,CAAC;AAAA,EAE1E,IAAI,WAAW,SAAS,GAAG;AAAA,IAC1B,4BAA4B,MAAM,iBAAiB,UAAU;AAAA,IAC7D,gBAAgB,OAAO,YAAY,CAAC,aAAqB;AAAA,MACxD,gBAAgB,OAAO,UAAU,MAAM,QAAQ,CAAC,mBAAmB;AAAA,QAClE,OAAO,OAAO,OAAO,UAAU,eAAe,QAAQ;AAAA,QACtD,MAAM,WAAW,OAAO;AAAA,OACxB;AAAA,KACD;AAAA,EACF;AAAA,GAIK,kBAAkB,CACvB,QACA,WACI;AAAA,EACJ,WAAW,OAAO,OAAO,KAAK,MAAM,GAAG;AAAA,IACtC,IAAI,EAAE,OAAO;AAAA,MAAS,OAAO,OAAO;AAAA,EACrC;AAAA,GAGK,kBAAkB,IAGlB,iBAAiB,OAAO,UAAqC;AAAA,EAClE,IAAI,CAAC,MAAM,cAAc;AAAA,IACxB;AAAA,EACD;AAAA,EAEA,MAAM,IAAI,MAAM,eAAe;AAAA,EAC/B,MAAM,eAAe,KAAK;AAAA,GAMrB,kBAAkB,OACvB,WACI;AAAA,EACJ,MAAM,QAAQ,OAAO;AAAA,EAKrB,MAAM,eAAe,KAAK;AAAA,EAE1B,MAAM,eAAe;AAAA,EAErB,IAAI;AAAA,IACH,MAAM,cAAc,MAAM,MAAM;AAAA,SAC5B,MAAM;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,WACL,MAAM,OAAO;AAAA,QAChB,WAAW;AAAA,QACX,cAAc;AAAA,MACf;AAAA,IACD,CAAC;AAAA,IACD,IAAI,CAAC,aAAa;AAAA,MAAU;AAAA,IAC5B,MAAM,cAAc,YAAY;AAAA,IAKhC,gBAAgB,OAAO,UAAU,WAAW;AAAA,IAC5C,OAAO,OAAO,OAAO,UAAU,WAAW;AAAA,IAC1C,MAAM,WAAW,OAAO;AAAA,IAExB,MAAM,mBACL,MAAM,YACN,OAAO,UACP,MAAM,cAAc,QACrB;AAAA,IACA,MAAM,iBACL,MAAM,YACN,OAAO,UACP,MAAM,cAAc,QACrB;AAAA,IACC,MAAM,WAEN;AAAA,IACD,MAAM;AAAA,IACN,MAAM,eAAe;AAAA,IAGrB,MAAM,gBAAgB,MAAM;AAAA;AAAA,GAIxB,qBAAqB,YAAY;AAAA,EACtC,MAAM,cAAc,UAAS,UAAQ,IAAI,IAAI,CAAC,EAAE;AAAA,EAChD,MAAM,YAAY,WAAW;AAAA,EAC7B,WAAW,mBAAmB;AAAA,EAK9B,MAAM,SAAS,WAAW;AAAA,EAC1B,IAAI,QAAQ,SAAS,OAAO,gBAAgB;AAAA,IAC3C,kBAAkB,mBAAmB,CAAC;AAAA,EACvC;AAAA,EACA,IAAI,QAAQ,SAAS,OAAO,kBAAkB;AAAA,IAI7C,sBACC,0BAA0B,WAAW,yBAAyB,CAC/D;AAAA,EACD;AAAA,EACA,IAAI,QAAQ,SAAS,OAAO,iBAAiB;AAAA,IAC5C,qBAAqB,yBAAyB,CAAC;AAAA,EAChD;AAAA,EACA,IAAI,QAAQ,SAAS,OAAO,cAAc;AAAA,IACzC,kBAAkB,sBAAsB,CAAC;AAAA,EAC1C;AAAA,EAEA,IAAI,gBAAgB,WAAW;AAAA,IAC9B,WAAW,yBAAyB;AAAA,IAEpC;AAAA,EACD;AAAA,EAEA,gBAAgB;AAAA,EAChB,IAAI,CAAC;AAAA,IAAQ;AAAA,EAGb,MAAM,oBAAoB,MAAM;AAAA,EAGhC,MAAM,gBAAgB,MAAM;AAAA,GAGvB,wBAAwB,OAAO,SAAiB;AAAA,EACrD,MAAM,MAAM,MAAM,IAAI,KAAK,IAAI,EAC7B,KAAK,EACL,MAAM,MAAM,IAAI;AAAA,EAClB,IAAI,CAAC,OAAO,IAAI,SAAS,wBAAwB;AAAA,IAChD,OAAO;AAAA,EACR;AAAA,EACA,WAAW,oBAAoB,IAAI;AAAA,EAEnC,OAAO;AAAA,GAGF,0BAAyB,YAAY;AAAA,EAC1C,MAAM,aAAa;AAAA,IAClB,UAAQ,YAAY,KAAK,MAAM,MAAM,cAAc;AAAA,IACnD,UAAQ,YAAY,KAAK,MAAM,cAAc;AAAA,EAC9C;AAAA,EACA,OAAO,cAAc,aAAa;AAAA,EAClC,IAAI,CAAC,WAAW;AAAA,IACf;AAAA,EACD;AAAA,EAEA,MAAM,QAAQ,MAAM,sBAAsB,SAAS;AAAA,EACnD,IAAI,OAAO;AAAA,IACV;AAAA,EACD;AAAA,EAEA,MAAM,qCAAqC,SAAS;AAAA,GAG/C,uCAAuC,OAAO,eAAyB;AAAA,EAC5E,OAAO,cAAc,aAAa;AAAA,EAClC,IAAI,CAAC,WAAW;AAAA,IACf;AAAA,EACD;AAAA,EAEA,MAAM,QAAQ,MAAM,sBAAsB,SAAS;AAAA,EACnD,IAAI,OAAO;AAAA,IACV;AAAA,EACD;AAAA,EAEA,MAAM,qCAAqC,SAAS;AAAA,GAG/C,kBAAkB,OACvB,YACA,WACA,cACI;AAAA,EACJ,MAAM,mBAA6B,CAAC;AAAA,EACpC,MAAM,UAAU,MAAM,SAAQ,SAAS,EAAE,MAAM,MAAM,gBAAgB;AAAA,EACrE,MAAM,QAAQ,IACb,QACE,OAAO,CAAC,UAAU,MAAM,SAAS,KAAK,CAAC,EACvC,IAAI,OAAO,UAAU;AAAA,IACrB,MAAM,UAAU,IAAI,oBAAoB;AAAA,IACxC,MAAM,QAAQ,MAAM,IAAI,KAAK,UAAQ,WAAW,KAAK,CAAC,EAAE,MAAM;AAAA,IAC9D,WAAW,IAAI,SAAS,KAAK;AAAA,GAC7B,CACH;AAAA,GAKY,WAAW,OAAO,WAAwB;AAAA,EAEtD,MAAM,SAAS,WAAW;AAAA,EAC1B,IAAI,QAAQ;AAAA,IACX,MAAM,mBAAmB;AAAA,IAEzB,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,eAA6D,CAAC;AAAA,EACpE,MAAM,aAAa,CAAC,OAAe,cAAsB;AAAA,IACxD,MAAM,aAAa,YAAY,IAAI,IAAI;AAAA,IAEvC,aAAa,KAAK;AAAA,MACjB;AAAA,MACA;AAAA,IACD,CAAC;AAAA;AAAA,EAIF,IAAI,gBAAgB,YAAY,IAAI;AAAA,EACpC,MAAM,QAAQ,eAAe,MAAM;AAAA,EAKnC,QAAQ,IAAI,uBAAuB,MAAM,cAAc;AAAA,EACvD,WAAW,oBAAoB,aAAa;AAAA,EAG5C,gBAAgB,YAAY,IAAI;AAAA,EAChC,MAAM,aAAa,cAAc,QAAQ,MAAM,aAAa;AAAA,EAC5D,4BAA4B,MAAM,iBAAiB,UAAU;AAAA,EAC7D,WAAW,+BAA+B,aAAa;AAAA,EAIvD,gBAAgB,YAAY,IAAI;AAAA,EAChC,IAAI,OAAO,gBAAgB;AAAA,IAC1B,kBAAkB,mBAAmB,CAAC;AAAA,EACvC;AAAA,EACA,IAAI,OAAO,iBAAiB;AAAA,IAC3B,qBAAqB,yBAAyB,CAAC;AAAA,EAChD;AAAA,EACA,IAAI,OAAO,cAAc;AAAA,IACxB,kBAAkB,sBAAsB,CAAC;AAAA,EAC1C;AAAA,EACA,MAAM,aAAa,2BAA2B,MAAM;AAAA,EACpD,IAAI,OAAO,kBAAkB;AAAA,IAC5B,sBAAsB,MAAM,+BAA+B,UAAU,CAAC;AAAA,IACtE,4BACC,MAAM,qCACL,MAAM,cAAc,UACpB,UACD,CACD;AAAA,EACD;AAAA,EACA,QAAQ,kDAA0B;AAAA,EAClC,WAAW,mBAAmB,MAAM,uBAAsB,UAAU;AAAA,EACpE,WAAW,wBAAwB,aAAa;AAAA,EAEhD,gBAAgB,YAAY,IAAI;AAAA,EAChC,MAAM,wBAAuB;AAAA,EAC7B,WAAW,mBAAmB,aAAa;AAAA,EAE3C,MAAM,aAAa,YAAY,IAAI;AAAA,EAGnC,MAAM,cAAc,MAAM,MAAM;AAAA,OAC5B;AAAA,IACH,MAAM;AAAA,IACN,SAAS;AAAA,SACL,OAAO;AAAA,MACV,WAAW;AAAA,IACZ;AAAA,EACD,CAAC;AAAA,EACD,MAAM,WAAW,YAAY,YAAY,CAAC;AAAA,EAC1C,MAAM,cAAc,YAAY,eAAe,CAAC;AAAA,EAChD,WAAW,iBAAiB,UAAU;AAAA,EAEtC,IAAI,OAAO,KAAK,QAAQ,EAAE,WAAW,GAAG;AAAA,IACvC,QAAQ,IACP,yEACD;AAAA,EACD;AAAA,EAGA,gBAAgB,YAAY,IAAI;AAAA,EAChC,MAAM,mBACL,MAAM,YACN,UACA,MAAM,cAAc,QACrB;AAAA,EACK,iBACJ,MAAM,YACN,UACA,MAAM,cAAc,QACrB;AAAA,EACA,WAAW,wBAAwB,aAAa;AAAA,EAMhD,gBAAgB,YAAY,IAAI;AAAA,EAChC,MAAM,iBAAiB,UACtB,MAAM,cAAc,UACpB,SACA,QACD;AAAA,EACA,MAAM,mBAAmB,UACxB,MAAM,cAAc,UACpB,WACA,QACD;AAAA,EACA,MAAM,kBAAkB,UACvB,MAAM,cAAc,UACpB,UACA,QACD;AAAA,EACA,MAAM,eAAe,UAAQ,MAAM,cAAc,UAAU,OAAO,QAAQ;AAAA,EAC1E,MAAM,eAAe,UAAQ,MAAM,cAAc,UAAU,QAAQ;AAAA,EAEnE,QAAQ,oCAAmB;AAAA,EAE3B,SAAS,cAAc,wBAAwB,YAC9C,MAAM,QAAQ,IAAI;AAAA,IACjB,OAAO,iBACJ,iBAAiB,MAAM,cAAc,QAAQ,IAC7C,QAAQ,QAAQ,SAAS;AAAA,IAC5B,OAAO,mBACJ,mBACA,MAAM,cAAc,UACpB,YACoB,MACM,OAAO,KAChC,WAAW,oBAAoB,CAAC,CACjC,CACD,IACC,QAAQ,QAAQ,SAAS;AAAA,IAC5B,OAAO,mBACJ,yBACA,MAAM,cAAc,UACpB,YACoB,IACrB,IACC,QAAQ,QAAQ,SAAS;AAAA,IAC5B,OAAO,kBACJ,kBAAkB,MAAM,cAAc,QAAQ,IAC9C,QAAQ,QAAQ,SAAS;AAAA,IAC5B,OAAO,eACJ,eAAe,MAAM,cAAc,QAAQ,IAC3C,QAAQ,QAAQ,SAAS;AAAA,IAC5B,gBAAe,MAAM,cAAc,UAAU,UAAU;AAAA,EACxD,CAAC;AAAA,EACF,IAAI;AAAA,IAAc,WAAW,4BAA4B;AAAA,EACzD,IAAI,oBAAoB;AAAA,IACvB,4BACC,gCACC,MAAM,cAAc,UACpB,kBACD,CACD;AAAA,EACD;AAAA,EACA,WAAW,mBAAmB;AAAA,EAC9B,WAAW,wBAAwB,aAAa;AAAA,EAQhD,gBAAgB,YAAY,IAAI;AAAA,EAChC,MAAM,sBAA8C;AAAA,OAC/C,kBAAkB,KAAK,CAAC;AAAA,OACxB,sBAAsB,KAAK,CAAC;AAAA,OAC5B,qBAAqB,KAAK,CAAC;AAAA,OAC3B,kBAAkB,KAAK,CAAC;AAAA,OACzB;AAAA,EACJ;AAAA,EACA,MAAM,mBAAmB;AAAA,IACxB,OAAO,iBAAiB,iBAAiB;AAAA,IACzC,OAAO,mBAAmB,mBAAmB;AAAA,IAC7C,OAAO,kBAAkB,kBAAkB;AAAA,IAC3C,OAAO,eAAe,eAAe;AAAA,IACrC;AAAA,EACD,EAAE,OAAO,CAAC,OAAmB,OAAM,IAAI;AAAA,EACvC,QAAQ,wDAA6B;AAAA,EAGrC,MAAM,0BAAyB,kBAAkB,mBAAmB;AAAA,EACpE,WAAW,mCAAmC,aAAa;AAAA,EAG3D,gBAAgB,YAAY,IAAI;AAAA,EAChC,MAAM,QAAQ,IAAI;AAAA,IACjB,OAAO,iBACJ,gBAAgB,MAAM,YAAY,gBAAgB,OAAO,IACzD,QAAQ,QAAQ;AAAA,IACnB,OAAO,mBACJ,gBAAgB,MAAM,YAAY,kBAAkB,SAAS,IAC7D,QAAQ,QAAQ;AAAA,IACnB,OAAO,kBACJ,gBAAgB,MAAM,YAAY,iBAAiB,QAAQ,IAC3D,QAAQ,QAAQ;AAAA,IACnB,OAAO,eACJ,gBAAgB,MAAM,YAAY,cAAc,KAAK,IACrD,QAAQ,QAAQ;AAAA,IACnB,gBAAgB,MAAM,YAAY,cAAc,QAAQ;AAAA,EACzD,CAAC;AAAA,EACD,IAAI,OAAO,kBAAkB,CAAC,WAAW,kBAAkB;AAAA,IAC1D,WAAW,mBAAmB,MAAa;AAAA,EAC5C;AAAA,EACA,WAAW,qBAAqB,aAAa;AAAA,EAK7C,gBAAgB,YAAY,IAAI;AAAA,EAChC,QAAQ,kCAAkB;AAAA,EAC1B,MAAM,eAAc;AAAA,IACnB,QAAQ,QAAQ,OAAO,eAAe;AAAA,IACtC,KAAK,QAAQ,OAAO,YAAY;AAAA,EACjC,CAAC;AAAA,EACD,WAAW,kBAAkB,aAAa;AAAA,EAI1C,IAAI,OAAO,UAAU;AAAA,IACpB,gBAAgB,YAAY,IAAI;AAAA,IAChC,QAAQ,gDAAyB;AAAA,IAGjC,MAAM,sBAAqB,OAAO,QAAQ;AAAA,IAC1C,WAAW,0BAA0B,aAAa;AAAA,EACnD;AAAA,EAGA,MAAM,WAAW;AAAA,EAEjB,gBAAgB,YAAY,IAAI;AAAA,EAChC,kBAAkB,OAAO,QAAQ,CAAC,aAAqB;AAAA,IACtD,gBAAgB,OAAO,UAAU,QAAQ,CAAC,mBAAmB;AAAA,MAC5D,OAAO,OAAO,UAAU,eAAe,QAAQ;AAAA,MAC/C,MAAM,WAAW;AAAA,KACjB;AAAA,GACD;AAAA,EACD,WAAW,uBAAuB,aAAa;AAAA,EAG/C,WAAW,qBAAqB,YAAY,IAAI,IAAI;AAAA,EACpD,sBAAsB,8BAA8B,YAAY;AAAA,EAEhE,MAAM,SAAwD;AAAA,IAC7D;AAAA,IACA,UAAU;AAAA,IACV;AAAA,EACD;AAAA,EAGA,WAAW,iBAAiB;AAAA,EAC5B,WAAW,mBAAmB,UAAS,UAAQ,IAAI,IAAI,CAAC,EAAE;AAAA,EAE1D,OAAO;AAAA;AAAA;AAAA,EAvlBR;AAAA,EAaA;AAAA,EAIA;AAAA,EAQA;AAAA,EAIA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEM,qBAAqB;AAAA,IAC1B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA;;;AClDA;AACA;",
|
|
103
|
+
"debugId": "3B4CA3148835955C64756E2164756E21",
|
|
8
104
|
"names": []
|
|
9
105
|
}
|