dsh-cliworker-now 0.0.0-stage → 0.7.7
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/LICENSE +21 -0
- package/README.en.md +364 -0
- package/README.md +368 -2
- package/cordis.patch.yml +3 -0
- package/lib/account-models.mjs +262 -0
- package/lib/client.js +22139 -0
- package/lib/client.js.map +1 -0
- package/lib/grok-catalog.mjs +145 -0
- package/lib/hermes-native-entry.py +96 -0
- package/lib/hermes-nous-refresh.py +331 -0
- package/lib/index.js +14544 -0
- package/lib/index.js.map +1 -0
- package/lib/native-launch.mjs +234 -0
- package/lib/native-spawn.mjs +32 -0
- package/lib/own-account-lease.mjs +105 -0
- package/lib/pi-installation.mjs +87 -0
- package/lib/pi-login.mjs +80 -0
- package/lib/pi-native-catalog.mjs +417 -0
- package/lib/pi-omp-bridge.mjs +602 -0
- package/lib/pi-omp-environment.mjs +15 -0
- package/lib/pi-omp-refresh.mjs +324 -0
- package/lib/private-launch.mjs +23 -0
- package/lib/terminal-bridge.mjs +18 -0
- package/lib/typert.host.d.ts +3 -0
- package/lib/typert.host.js +1430 -0
- package/lib/typert.remote-client.d.ts +72 -0
- package/lib/typert.remote-client.d.ts.map +1 -0
- package/lib/typert.remote-client.js +1256 -0
- package/lib/types/client/account-query-queue.d.ts +16 -0
- package/lib/types/client/account-query-queue.js +61 -0
- package/lib/types/client/account-query-queue.js.map +1 -0
- package/lib/types/client/account-terminal-css.d.ts +1 -0
- package/lib/types/client/account-terminal-css.js +3 -0
- package/lib/types/client/account-terminal-css.js.map +1 -0
- package/lib/types/client/account-terminal.d.ts +17 -0
- package/lib/types/client/account-terminal.js +525 -0
- package/lib/types/client/account-terminal.js.map +1 -0
- package/lib/types/client/assets/antigravity.png +0 -0
- package/lib/types/client/assets/claude-code.png +0 -0
- package/lib/types/client/assets/cliworker-now-logo.png +0 -0
- package/lib/types/client/assets/codex.png +0 -0
- package/lib/types/client/assets/grok.png +0 -0
- package/lib/types/client/assets/hermes.png +0 -0
- package/lib/types/client/assets/kimi-dark.png +0 -0
- package/lib/types/client/assets/kimi-light.png +0 -0
- package/lib/types/client/assets/mimo-code.png +0 -0
- package/lib/types/client/assets/omp.png +0 -0
- package/lib/types/client/assets/opencode.png +0 -0
- package/lib/types/client/assets/pi.png +0 -0
- package/lib/types/client/assets/zcode.png +0 -0
- package/lib/types/client/composer-keymap.d.ts +18 -0
- package/lib/types/client/composer-keymap.js +49 -0
- package/lib/types/client/composer-keymap.js.map +1 -0
- package/lib/types/client/conversation-timeline.d.ts +6 -0
- package/lib/types/client/conversation-timeline.js +65 -0
- package/lib/types/client/conversation-timeline.js.map +1 -0
- package/lib/types/client/copy-text.d.ts +5 -0
- package/lib/types/client/copy-text.js +45 -0
- package/lib/types/client/copy-text.js.map +1 -0
- package/lib/types/client/icons.d.ts +21 -0
- package/lib/types/client/icons.js +68 -0
- package/lib/types/client/icons.js.map +1 -0
- package/lib/types/client/index.d.ts +3 -0
- package/lib/types/client/index.js +124 -0
- package/lib/types/client/index.js.map +1 -0
- package/lib/types/client/management-styles.d.ts +1 -0
- package/lib/types/client/management-styles.js +17 -0
- package/lib/types/client/management-styles.js.map +1 -0
- package/lib/types/client/name-copy.d.ts +5 -0
- package/lib/types/client/name-copy.js +107 -0
- package/lib/types/client/name-copy.js.map +1 -0
- package/lib/types/client/native-job-overlay.d.ts +11 -0
- package/lib/types/client/native-job-overlay.js +129 -0
- package/lib/types/client/native-job-overlay.js.map +1 -0
- package/lib/types/client/operation-error.d.ts +2 -0
- package/lib/types/client/operation-error.js +12 -0
- package/lib/types/client/operation-error.js.map +1 -0
- package/lib/types/client/panel.d.ts +8 -0
- package/lib/types/client/panel.js +310 -0
- package/lib/types/client/panel.js.map +1 -0
- package/lib/types/client/rename-copy-styles.d.ts +1 -0
- package/lib/types/client/rename-copy-styles.js +21 -0
- package/lib/types/client/rename-copy-styles.js.map +1 -0
- package/lib/types/client/rename-worker.d.ts +9 -0
- package/lib/types/client/rename-worker.js +53 -0
- package/lib/types/client/rename-worker.js.map +1 -0
- package/lib/types/client/role-presets.d.ts +6 -0
- package/lib/types/client/role-presets.js +111 -0
- package/lib/types/client/role-presets.js.map +1 -0
- package/lib/types/client/settings-dialog.d.ts +13 -0
- package/lib/types/client/settings-dialog.js +442 -0
- package/lib/types/client/settings-dialog.js.map +1 -0
- package/lib/types/client/stat-popover.d.ts +10 -0
- package/lib/types/client/stat-popover.js +32 -0
- package/lib/types/client/stat-popover.js.map +1 -0
- package/lib/types/client/styles.d.ts +9 -0
- package/lib/types/client/styles.js +221 -0
- package/lib/types/client/styles.js.map +1 -0
- package/lib/types/client/telemetry.d.ts +11 -0
- package/lib/types/client/telemetry.js +24 -0
- package/lib/types/client/telemetry.js.map +1 -0
- package/lib/types/client/worker-card.d.ts +10 -0
- package/lib/types/client/worker-card.js +75 -0
- package/lib/types/client/worker-card.js.map +1 -0
- package/lib/types/client/worker-model-menu.d.ts +9 -0
- package/lib/types/client/worker-model-menu.js +136 -0
- package/lib/types/client/worker-model-menu.js.map +1 -0
- package/lib/types/client/workers.d.ts +21 -0
- package/lib/types/client/workers.js +59 -0
- package/lib/types/client/workers.js.map +1 -0
- package/lib/types/client/zcode-login-link-provider.d.ts +9 -0
- package/lib/types/client/zcode-login-link-provider.js +105 -0
- package/lib/types/client/zcode-login-link-provider.js.map +1 -0
- package/lib/types/client/zcode-login-link.d.ts +16 -0
- package/lib/types/client/zcode-login-link.js +194 -0
- package/lib/types/client/zcode-login-link.js.map +1 -0
- package/lib/types/host/account-identity.d.ts +16 -0
- package/lib/types/host/account-identity.js +126 -0
- package/lib/types/host/account-identity.js.map +1 -0
- package/lib/types/host/account-login.d.ts +10 -0
- package/lib/types/host/account-login.js +126 -0
- package/lib/types/host/account-login.js.map +1 -0
- package/lib/types/host/account-models.d.mts +21 -0
- package/lib/types/host/account-models.mjs +262 -0
- package/lib/types/host/accounts.d.ts +42 -0
- package/lib/types/host/accounts.js +945 -0
- package/lib/types/host/accounts.js.map +1 -0
- package/lib/types/host/adapters.d.ts +24 -0
- package/lib/types/host/adapters.js +380 -0
- package/lib/types/host/adapters.js.map +1 -0
- package/lib/types/host/agy-context.d.ts +8 -0
- package/lib/types/host/agy-context.js +122 -0
- package/lib/types/host/agy-context.js.map +1 -0
- package/lib/types/host/agy-models.d.ts +5 -0
- package/lib/types/host/agy-models.js +37 -0
- package/lib/types/host/agy-models.js.map +1 -0
- package/lib/types/host/agy-windows-account.d.ts +14 -0
- package/lib/types/host/agy-windows-account.js +104 -0
- package/lib/types/host/agy-windows-account.js.map +1 -0
- package/lib/types/host/authorized-catalog.d.ts +14 -0
- package/lib/types/host/authorized-catalog.js +35 -0
- package/lib/types/host/authorized-catalog.js.map +1 -0
- package/lib/types/host/bridge-protocol.d.ts +15 -0
- package/lib/types/host/bridge-protocol.js +80 -0
- package/lib/types/host/bridge-protocol.js.map +1 -0
- package/lib/types/host/claude-native-oauth.d.ts +17 -0
- package/lib/types/host/claude-native-oauth.js +272 -0
- package/lib/types/host/claude-native-oauth.js.map +1 -0
- package/lib/types/host/claude-own-route.d.ts +33 -0
- package/lib/types/host/claude-own-route.js +250 -0
- package/lib/types/host/claude-own-route.js.map +1 -0
- package/lib/types/host/cli-account-binding.d.ts +33 -0
- package/lib/types/host/cli-account-binding.js +540 -0
- package/lib/types/host/cli-account-binding.js.map +1 -0
- package/lib/types/host/cli-protocol.d.ts +27 -0
- package/lib/types/host/cli-protocol.js +212 -0
- package/lib/types/host/cli-protocol.js.map +1 -0
- package/lib/types/host/codex-account.d.ts +8 -0
- package/lib/types/host/codex-account.js +143 -0
- package/lib/types/host/codex-account.js.map +1 -0
- package/lib/types/host/codex-models.d.ts +6 -0
- package/lib/types/host/codex-models.js +169 -0
- package/lib/types/host/codex-models.js.map +1 -0
- package/lib/types/host/extended-adapters.d.ts +44 -0
- package/lib/types/host/extended-adapters.js +207 -0
- package/lib/types/host/extended-adapters.js.map +1 -0
- package/lib/types/host/first-party-account-context.d.ts +26 -0
- package/lib/types/host/first-party-account-context.js +55 -0
- package/lib/types/host/first-party-account-context.js.map +1 -0
- package/lib/types/host/first-party-models.d.ts +29 -0
- package/lib/types/host/first-party-models.js +459 -0
- package/lib/types/host/first-party-models.js.map +1 -0
- package/lib/types/host/grok-adapter.d.ts +44 -0
- package/lib/types/host/grok-adapter.js +293 -0
- package/lib/types/host/grok-adapter.js.map +1 -0
- package/lib/types/host/grok-models.d.ts +47 -0
- package/lib/types/host/grok-models.js +320 -0
- package/lib/types/host/grok-models.js.map +1 -0
- package/lib/types/host/harness-opencode-accounts.d.ts +17 -0
- package/lib/types/host/harness-opencode-accounts.js +80 -0
- package/lib/types/host/harness-opencode-accounts.js.map +1 -0
- package/lib/types/host/hermes-account-context.d.ts +8 -0
- package/lib/types/host/hermes-account-context.js +99 -0
- package/lib/types/host/hermes-account-context.js.map +1 -0
- package/lib/types/host/hermes-accounts.d.ts +19 -0
- package/lib/types/host/hermes-accounts.js +356 -0
- package/lib/types/host/hermes-accounts.js.map +1 -0
- package/lib/types/host/hermes-adapter.d.ts +93 -0
- package/lib/types/host/hermes-adapter.js +455 -0
- package/lib/types/host/hermes-adapter.js.map +1 -0
- package/lib/types/host/hermes-env.d.ts +4 -0
- package/lib/types/host/hermes-env.js +22 -0
- package/lib/types/host/hermes-env.js.map +1 -0
- package/lib/types/host/hermes-installation.d.ts +10 -0
- package/lib/types/host/hermes-installation.js +181 -0
- package/lib/types/host/hermes-installation.js.map +1 -0
- package/lib/types/host/hermes-models.d.ts +26 -0
- package/lib/types/host/hermes-models.js +328 -0
- package/lib/types/host/hermes-models.js.map +1 -0
- package/lib/types/host/hermes-native-entry.py +96 -0
- package/lib/types/host/hermes-nous-refresh.py +331 -0
- package/lib/types/host/hermes-nous.d.ts +53 -0
- package/lib/types/host/hermes-nous.js +343 -0
- package/lib/types/host/hermes-nous.js.map +1 -0
- package/lib/types/host/hermes-renewal.d.ts +27 -0
- package/lib/types/host/hermes-renewal.js +292 -0
- package/lib/types/host/hermes-renewal.js.map +1 -0
- package/lib/types/host/hermes-suppression.d.ts +7 -0
- package/lib/types/host/hermes-suppression.js +69 -0
- package/lib/types/host/hermes-suppression.js.map +1 -0
- package/lib/types/host/hermes-windows-installation.d.ts +5 -0
- package/lib/types/host/hermes-windows-installation.js +91 -0
- package/lib/types/host/hermes-windows-installation.js.map +1 -0
- package/lib/types/host/index.d.ts +140 -0
- package/lib/types/host/index.js +947 -0
- package/lib/types/host/index.js.map +1 -0
- package/lib/types/host/kimi-accounts.d.ts +17 -0
- package/lib/types/host/kimi-accounts.js +220 -0
- package/lib/types/host/kimi-accounts.js.map +1 -0
- package/lib/types/host/kimi-oauth-models.d.ts +14 -0
- package/lib/types/host/kimi-oauth-models.js +246 -0
- package/lib/types/host/kimi-oauth-models.js.map +1 -0
- package/lib/types/host/managed-agent.d.ts +4 -0
- package/lib/types/host/managed-agent.js +127 -0
- package/lib/types/host/managed-agent.js.map +1 -0
- package/lib/types/host/mimo-configuration.d.ts +22 -0
- package/lib/types/host/mimo-configuration.js +258 -0
- package/lib/types/host/mimo-configuration.js.map +1 -0
- package/lib/types/host/mimo-metadata-cache.d.ts +22 -0
- package/lib/types/host/mimo-metadata-cache.js +121 -0
- package/lib/types/host/mimo-metadata-cache.js.map +1 -0
- package/lib/types/host/native-capability-cache.d.ts +11 -0
- package/lib/types/host/native-capability-cache.js +94 -0
- package/lib/types/host/native-capability-cache.js.map +1 -0
- package/lib/types/host/native-launch.d.mts +2 -0
- package/lib/types/host/native-launch.mjs +234 -0
- package/lib/types/host/native-process.d.ts +5 -0
- package/lib/types/host/native-process.js +41 -0
- package/lib/types/host/native-process.js.map +1 -0
- package/lib/types/host/native-spawn.mjs +32 -0
- package/lib/types/host/opencode-adapter.d.ts +94 -0
- package/lib/types/host/opencode-adapter.js +507 -0
- package/lib/types/host/opencode-adapter.js.map +1 -0
- package/lib/types/host/opencode-native.d.ts +27 -0
- package/lib/types/host/opencode-native.js +403 -0
- package/lib/types/host/opencode-native.js.map +1 -0
- package/lib/types/host/own-account-lease.d.mts +5 -0
- package/lib/types/host/own-account-lease.mjs +105 -0
- package/lib/types/host/pi-installation.d.mts +7 -0
- package/lib/types/host/pi-installation.mjs +87 -0
- package/lib/types/host/pi-omp-accounts.d.ts +28 -0
- package/lib/types/host/pi-omp-accounts.js +175 -0
- package/lib/types/host/pi-omp-accounts.js.map +1 -0
- package/lib/types/host/pi-omp-adapter.d.ts +32 -0
- package/lib/types/host/pi-omp-adapter.js +190 -0
- package/lib/types/host/pi-omp-adapter.js.map +1 -0
- package/lib/types/host/pi-omp-environment.d.mts +1 -0
- package/lib/types/host/pi-omp-environment.mjs +15 -0
- package/lib/types/host/pi-omp-identity.d.ts +2 -0
- package/lib/types/host/pi-omp-identity.js +142 -0
- package/lib/types/host/pi-omp-identity.js.map +1 -0
- package/lib/types/host/pi-omp-logout.d.ts +3 -0
- package/lib/types/host/pi-omp-logout.js +152 -0
- package/lib/types/host/pi-omp-logout.js.map +1 -0
- package/lib/types/host/pi-omp-native.d.ts +71 -0
- package/lib/types/host/pi-omp-native.js +753 -0
- package/lib/types/host/pi-omp-native.js.map +1 -0
- package/lib/types/host/pi-omp-refresh.d.mts +7 -0
- package/lib/types/host/pi-omp-refresh.mjs +324 -0
- package/lib/types/host/private-launch.mjs +23 -0
- package/lib/types/host/process.d.ts +43 -0
- package/lib/types/host/process.js +134 -0
- package/lib/types/host/process.js.map +1 -0
- package/lib/types/host/protocol.d.ts +23 -0
- package/lib/types/host/protocol.js +112 -0
- package/lib/types/host/protocol.js.map +1 -0
- package/lib/types/host/roles.d.ts +34 -0
- package/lib/types/host/roles.js +80 -0
- package/lib/types/host/roles.js.map +1 -0
- package/lib/types/host/routing.d.ts +31 -0
- package/lib/types/host/routing.js +248 -0
- package/lib/types/host/routing.js.map +1 -0
- package/lib/types/host/runtime.d.ts +60 -0
- package/lib/types/host/runtime.js +598 -0
- package/lib/types/host/runtime.js.map +1 -0
- package/lib/types/host/storage.d.ts +48 -0
- package/lib/types/host/storage.js +449 -0
- package/lib/types/host/storage.js.map +1 -0
- package/lib/types/host/telemetry.d.ts +17 -0
- package/lib/types/host/telemetry.js +158 -0
- package/lib/types/host/telemetry.js.map +1 -0
- package/lib/types/host/windows-account-bootstrap.ps1 +44 -0
- package/lib/types/host/windows-account-launch.mjs +47 -0
- package/lib/types/host/windows-account-owner.ps1 +137 -0
- package/lib/types/host/windows-account-stdio.mjs +19 -0
- package/lib/types/host/windows-account-terminal.d.ts +17 -0
- package/lib/types/host/windows-account-terminal.js +208 -0
- package/lib/types/host/windows-account-terminal.js.map +1 -0
- package/lib/types/host/windows-agy-account.ps1 +81 -0
- package/lib/types/host/windows-cli-installation.d.ts +31 -0
- package/lib/types/host/windows-cli-installation.js +157 -0
- package/lib/types/host/windows-cli-installation.js.map +1 -0
- package/lib/types/host/windows-hidden-launch.mjs +49 -0
- package/lib/types/host/windows-hidden-process.d.ts +12 -0
- package/lib/types/host/windows-hidden-process.js +116 -0
- package/lib/types/host/windows-hidden-process.js.map +1 -0
- package/lib/types/host/zcode-account-models.d.ts +16 -0
- package/lib/types/host/zcode-account-models.js +114 -0
- package/lib/types/host/zcode-account-models.js.map +1 -0
- package/lib/types/host/zcode-adapter.d.ts +93 -0
- package/lib/types/host/zcode-adapter.js +808 -0
- package/lib/types/host/zcode-adapter.js.map +1 -0
- package/lib/types/host/zcode-grok-accounts.d.ts +30 -0
- package/lib/types/host/zcode-grok-accounts.js +408 -0
- package/lib/types/host/zcode-grok-accounts.js.map +1 -0
- package/lib/types/shared/accounts.d.ts +47 -0
- package/lib/types/shared/accounts.js +2 -0
- package/lib/types/shared/accounts.js.map +1 -0
- package/lib/types/shared/builtin-presets.d.ts +2 -0
- package/lib/types/shared/builtin-presets.js +231 -0
- package/lib/types/shared/builtin-presets.js.map +1 -0
- package/lib/types/shared/cli-settings.d.ts +5 -0
- package/lib/types/shared/cli-settings.js +2 -0
- package/lib/types/shared/cli-settings.js.map +1 -0
- package/lib/types/shared/model-presentation.d.ts +10 -0
- package/lib/types/shared/model-presentation.js +95 -0
- package/lib/types/shared/model-presentation.js.map +1 -0
- package/lib/types/shared/models.d.ts +7 -0
- package/lib/types/shared/models.js +35 -0
- package/lib/types/shared/models.js.map +1 -0
- package/lib/types/shared/telemetry.d.ts +18 -0
- package/lib/types/shared/telemetry.js +16 -0
- package/lib/types/shared/telemetry.js.map +1 -0
- package/lib/types/shared/types.d.ts +127 -0
- package/lib/types/shared/types.js +147 -0
- package/lib/types/shared/types.js.map +1 -0
- package/lib/windows-account-bootstrap.ps1 +44 -0
- package/lib/windows-account-launch.mjs +47 -0
- package/lib/windows-account-owner.ps1 +137 -0
- package/lib/windows-account-stdio.mjs +19 -0
- package/lib/windows-agy-account.ps1 +81 -0
- package/lib/windows-hidden-launch.mjs +49 -0
- package/lib/zcode-resume.mjs +423 -0
- package/package.json +109 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pi-omp-native.js","sourceRoot":"","sources":["../../../src/host/pi-omp-native.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AACzG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAA;AAEzC,OAAO,EAAE,0BAA0B,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAGlG,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1G,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,sBAAsB,CAAA;AAE7B,MAAM,MAAM,GAAG,CAAC,CAAU,EAA4B,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AAC1G,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,EAAE,eAAe,CAAC,CAAA;AAChG,MAAM,UAAU,GACd,oKAAoK,CAAA;AACtK,MAAM,wBAAwB,GAA2B;IACvD,MAAM,EAAE,gBAAgB;IACxB,SAAS,EAAE,mBAAmB;IAC9B,MAAM,EAAE,gBAAgB;IACxB,GAAG,EAAE,aAAa;IAClB,IAAI,EAAE,cAAc;IACpB,UAAU,EAAE,oBAAoB;IAChC,OAAO,EAAE,iBAAiB;IAC1B,QAAQ,EAAE,kBAAkB;IAC5B,GAAG,EAAE,aAAa;IAClB,mBAAmB,EAAE,eAAe;IACpC,eAAe,EAAE,uBAAuB;CACzC,CAAA;AACD,SAAS,yBAAyB,CAAC,KAAc,EAAE,SAAS,IAAI,GAAG,EAAU;IAC3E,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IACnF,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACvC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IACpF,OAAO,MAAM,CAAA;AACf,CAAC;AAUD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,GAAa,EAAE,IAAI,GAAG,WAAW,EAAE,EAAE,EAAE,CAC3E,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;AAEtC,yFAAyF;AACzF,MAAM,UAAU,sBAAsB,CACpC,IAAY,EACZ,KAAK,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE;IAE/C,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACpC,IAAI,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAA;IACxC,OAAO,KAAK;SACT,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;SAC3B,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;SAChB,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;AACnE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAY;IACnD,KAAK,MAAM,OAAO,IAAI,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,CAAA;YACjC,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC1B,qEAAqE;gBACrE,IACE,CAAC,CACC,CAAC,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,MAAM,CAAC;oBAC1C,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,WAAW,OAAO,EAAE,CAC5E;oBAED,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;YAC7D,CAAC;iBAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;QACpF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;gBAAE,MAAK;YAC7D,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;AACH,CAAC;AACD,sFAAsF;AACtF,KAAK,UAAU,YAAY,CAAC,IAAY,EAAE,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI;IAC/D,IAAI,IAAkD,CAAA;IACtD,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;QAC/B,MAAM,kBAAkB,CAAC,SAAS,CAAC,CAAA;QACnC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,CAAA;QACrC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,cAAc,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;QACxG,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAA;QAC/B,IAAI,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC;YAChE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;QAC/C,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC,CAAA;QACzF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QAChC,IACE,CAAC,MAAM,CAAC,MAAM,EAAE;YAChB,MAAM,CAAC,KAAK,KAAK,CAAC;YAClB,MAAM,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG;YACxB,MAAM,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG;YACxB,MAAM,CAAC,IAAI,GAAG,KAAK;YAEnB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;QAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAA;QAC5C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QAClE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QAC/B,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAA;QACjC,IACE,OAAO,CAAC,cAAc,EAAE;YACxB,OAAO,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG;YAC1B,OAAO,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG;YAC1B,OAAO,CAAC,KAAK,KAAK,CAAC;YACnB,SAAS,KAAK,MAAM,CAAC,IAAI;YACzB,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;YAC1B,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;YAChC,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;YAC3B,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;YAEjC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;QACvD,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAA;QACxE,MAAM,KAAK,CAAA;IACb,CAAC;YAAS,CAAC;QACT,MAAM,IAAI,EAAE,KAAK,EAAE,CAAA;IACrB,CAAC;AACH,CAAC;AACD,SAAS,WAAW,CAAC,GAAuB,EAAE,IAAI,GAAG,KAAK;IACxD,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAA;IACnB,MAAM,MAAM,GAAY,IAAI;QAC1B,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;QACvD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;IACpC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IACrE,OAAO,MAAM,CAAA;AACf,CAAC;AACD,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAA;IACxF,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,cAAc,CAAC,KAAK,CAAC,CAAA;AAC5G,CAAC;AACD,SAAS,eAAe,CACtB,IAAY,EACZ,IAAa,EACb,QAAkB;IAElB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IACpE,IAAI,QAAQ;QAAE,OAAO,SAAS,CAAA;IAC9B,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAA;QACnC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAC5F,OAAO,YAAY,CAAA;IACrB,CAAC;IACD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;QACvG,IACE,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;YAChC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;YAC9B,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC;YAEhE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;QACxD,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAA;QAChE,OAAO,YAAY,CAAA;IACrB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;AACvD,CAAC;AAcD,KAAK,UAAU,MAAM,CAAC,GAAa,EAAE,IAAY,EAAE,OAAgB;IACjE,MAAM,MAAM,GAAiB;QAC3B,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC;QACvB,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,EAAE;QACV,UAAU,EAAE,EAAE;QACd,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,EAAE;QACf,KAAK,EAAE,IAAI,GAAG,EAAE;QAChB,OAAO,EAAE,KAAK;QACd,GAAG,EAAE,EAAE;QACP,gBAAgB,EAAE,KAAK;KACxB,CAAA;IACD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAA;IAChE,IAAI,MAAM;QACR,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1D,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAQ;YAC9D,MAAM,KAAK,GAAG,8CAA8C,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;YAC9E,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;YAChE,IAAI,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YACpB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACpG,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;YAC5B,IAAI,GAAG,KAAK,KAAK,IAAI,iCAAiC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE;gBACnF,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAA;YAChC,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;YACtG,4EAA4E;YAC5E,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;QAC9D,CAAC;IACH,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,MAAM,CAAC,IAAI,GAAG,WAAW,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;QACtE,MAAM,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,CAAA;QAC1E,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAA;QACvG,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACnG,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAClD,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,CAAA;QAC7E,MAAM,CAAC,MAAM;YACX,QAAQ,CAAC,oBAAoB,KAAK,SAAS;gBACzC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB,EAAE,CAAA;QAC7D,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAC3B,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC7B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;YACnG,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAC9C,IAAI,KAAK,KAAK,YAAY;gBAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACvD,IAAI,KAAK,KAAK,SAAS;gBAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAA;QAChD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QAC/E,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QAC9E,MAAM,CAAC,gBAAgB,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAA;QACjD,iFAAiF;QACjF,MAAM,CAAC,MAAM,GAAG;YACd,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;gBACrB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,EAAE;gBAC/F,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,MAAM,CAAC,oBAAoB,KAAK,SAAS;gBAC3C,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,oBAAoB,EAAE,MAAM,CAAC,oBAAoB,EAAE,CAAC;SAC3D,CAAA;QACD,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC7B,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC7B,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC;YACpE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;YACrE,6EAA6E;YAC7E,4EAA4E;YAC5E,IACE,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ;gBACnC,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC1C,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE;gBAEtB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC3B,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC;YAC7C,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAA;YACpE,IAAI,CAAC,KAAK;gBAAE,SAAQ;YACpB,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,MAAM,CAAC,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAA;YAC3E,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;YACzE,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,UAAU,EAAE,KAAK,CAAC,CAAA;YAChD,MAAM,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;YACzD,IAAI,GAAG;gBAAE,MAAM,SAAS,CAAC,GAAG,IAAI,MAAM,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;YACzE,IAAI,EAA4B,CAAA;YAChC,IAAI,CAAC;gBACH,EAAE,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,CAAA;gBAC3B,IAAK,EAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,GAAG,EAAU,EAAE,WAAW,KAAK,IAAI;oBACvE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;gBACpD,MAAM,MAAM,GAAG,IAAI,GAAG,CACpB,EAAE;qBACC,OAAO,CAAC,mDAAmD,CAAC;qBAC5D,GAAG,EAAE;qBACL,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAC3B,CAAA;gBACD,IAAI,IAAI,KAAK,UAAU,IAAI,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBAC1D,MAAM,CAAC,WAAW,GAAG,EAAE;yBACpB,OAAO,CACN,iGAAiG,CAClG;yBACA,GAAG,EAAE,CAAA;oBACR,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;wBACrC,MAAM,IAAI,GAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;wBAC1C,cAAc,CAAC,IAAI,CAAC,CAAA;wBACpB,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,GAAG,CAAC,cAAc,CAAC,CAAA;wBAC5E,IAAI,KAAK,KAAK,YAAY;4BAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;wBACjE,IAAI,KAAK,KAAK,SAAS;4BAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAA;oBAChD,CAAC;gBACH,CAAC;gBACD,IAAI,IAAI,KAAK,WAAW,IAAI,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC;oBACnD,MAAM,CAAC,UAAU,GAAG,EAAE;yBACnB,OAAO,CACN,gGAAgG,CACjG;yBACA,GAAG,EAAE,CAAA;gBACV,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;oBACpC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;wBAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;gBAC/F,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,EAAE,EAAE,KAAK,EAAE,CAAA;gBACX,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,GAAG,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YAC7F,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,IAAI,GAAG,yBAAyB,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IACtE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;QACvC,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACvF,2EAA2E;IAC3E,iFAAiF;IACjF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,kBAAkB,CAAC,CAAA;IAC5D,IACE,MAAM,CAAC,MAAM,CAAC;QACd,MAAM,CAAC,MAAM,KAAK,uBAAuB;QACzC,MAAM,CAAC,OAAO,KAAK,6CAA6C;QAChE,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB;QAEjC,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;IACpD,OAAO,MAAM,CAAA;AACf,CAAC;AACD,KAAK,UAAU,WAAW,CACxB,GAAa,EACb,OAA2B,EAC3B,EAA4D;IAE5D,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAA;IAChC,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,IAAI,WAAW,EAAE,CAAA;IACjD,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAA;IAC9B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,wBAAwB,CAAC,CAAC,CAAA;IACvF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,EAAE,EAAE,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAC5F,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;QACtE,MAAM,OAAO,GAAmB,EAAE,CAAA;QAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAA;YAChC,OAAO,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;QAChD,CAAC;QACD,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAA;QAChC,OAAO,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACnC,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IACrD,CAAC;AACH,CAAC;AAED,yFAAyF;AACzF,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,GAAa,EACb,cAAkC,EAClC,MAAmB,EACnB,UAAmC,EAAE;IAErC,OAAO,WAAW,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC7F,MAAM,MAAM,GAAG,EAAE,CAAA;QACjB,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YAChD,MAAM,UAAU,GACd,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM;gBAC/B,MAAM,CAAC,WAAW,CAAC,MAAM;gBACzB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,CAC/C,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,CAClD;gBACD,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YAC5F,IAAI,CAAC,UAAU;gBAAE,SAAQ;YACzB,yEAAyE;YACzE,iEAAiE;YACjE,MAAM,SAAS,GACb,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YACnG,MAAM,gBAAgB,GACpB,MAAM,CAAC,gBAAgB;gBACvB,CAAC,CAAC,SAAS;oBACT,EAAE,QAAQ,CAAC,MAAM,CAAC;qBACjB,KAAK,CAAC,OAAO,CAAC;qBACd,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;oBACb,MAAM,KAAK,GAAG,0DAA0D,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;oBAC1F,OAAO,CACL,KAAK;wBACL,KAAK,CAAC,CAAC,CAAC;6BACL,IAAI,EAAE;6BACN,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC;6BAC/B,IAAI,EAAE,CACV,CAAA;gBACH,CAAC,CAAC,CAAA;YACN,MAAM,CAAC,IAAI,CAAC;gBACV,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAkB;gBACxD,KAAK,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM;gBACxC,SAAS,EAAE,MAAM,CAAC,QAAQ;gBAC1B,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;gBAC3B,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;gBAC5E,gBAAgB;aACjB,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,GAAa,EACb,cAAkC,EAClC,MAAmB,EACnB,UAAmC,EAAE;IAErC,OAAO,CAAC,MAAM,sBAAsB,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAClG,EAAE;QACF,KAAK;KACN,CAAC,CAAC,CAAA;AACL,CAAC;AACD,SAAS,YAAY,CAAC,OAAuB;IAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IAC9E,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAA;IACrG,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAA2B,CAAA;IACtG,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAiB,CAAA;IACpD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAe,CAAA;IACpC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,KAAK,MAAM,QAAQ,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACtE,mBAAmB,CAAC,GAAG,CACrB,QAAQ,EACR,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CACzD,CAAA;QACH,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,UAAU;YAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAA;IACjE,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAA;IAC/B,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAA0B,EAAE,CAAC;QACjE,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAChD,IAAI,KAAK,KAAK,YAAY;YAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACjD,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,GAAG,IAAI,CAAA;IACzC,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAC3D,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAA;QAC5F,IAAI,KAAK,KAAK,YAAY;YAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;QAC1D,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,GAAG,IAAI,CAAA;IACzC,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAA0B,EAAE,CAAC;QACzE,IACE,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ;YACnC,QAAQ,CAAC,MAAM;YACf,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAEpE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IACpB,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IACrF,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;AAC7E,CAAC;AACD,uFAAuF;AACvF,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,GAAa,EAAE,UAA8B,EAAE;IAC5F,OAAO,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACjD,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;QACpC,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,WAAW,EAAE,CAAC,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE;YAC5D,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE;YACvC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;YACpE,SAAS,EAAE,OAAO;iBACf,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CACJ,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM;gBAC1B,CAAC,CAAC,WAAW,CAAC,MAAM;gBACpB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM;gBACzB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM;gBACxC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAC7E;iBACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;SAC1B,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AACD,KAAK,UAAU,gBAAgB,CAAC,GAAa,EAAE,OAAuB,EAAE,OAA2B;IACjG,IAAI,CAAC,OAAO,CAAC,WAAW;QAAE,OAAO,SAAS,CAAA;IAC1C,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IACpC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAwB,CAAA;IAC9C,KAAK,MAAM,MAAM,IAAI,OAAO;QAC1B,KAAK,MAAM,QAAQ,IAAI,GAAG,KAAK,IAAI;YACjC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAC1B,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxD,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAChC,MAAM,WAAW,GACf,GAAG,KAAK,IAAI;QACV,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YACrD,QAAQ;YACR,IAAI;YACJ,GAAG,EAAE,SAAgB;YACrB,UAAU,EAAE,SAA+B;SAC5C,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACnE,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,eAAe,EAAE;YAC5D,GAAG;YACH,UAAU,EAAE,KAAK,GAAG,CAAC;SACtB,CAAC,CAAC,CAAA;IACT,MAAM,OAAO,GAAU,EAAE,CAAA;IACzB,MAAM,KAAK,GAAU,EAAE,CAAA;IACvB,KAAK,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,WAAW,EAAE,CAAC;QAC9D,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,EAAE,cAAc,EAAE,CAAC;YACjD,KAAK,CAAC,IAAI,CAAC;gBACT,QAAQ;gBACR,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9B,IAAI,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,cAAc,EAAE,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aACvF,CAAC,CAAA;YACF,SAAQ;QACV,CAAC;QACD,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;QACxC,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;QACrE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAA;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;QAC1F,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAA;QAC9B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;QACvG,OAAO,CAAC,IAAI,CAAC;YACX,QAAQ;YACR,IAAI;YACJ,IAAI,EAAE,kBAAkB,CAAC,IAAI,CAAC;YAC9B,SAAS;YACT,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxD,CAAC,CAAA;IACJ,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,OAAO,SAAS,CAAA;IACrC,kFAAkF;IAClF,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,WAAW,EAAE,EAAE,iBAAiB,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;IAC1F,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAA;IAChC,MAAM,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IACrD,+EAA+E;IAC/E,MAAM,SAAS,GAAG,kBAAkB,CAAC;QACnC,GAAG;QACH,IAAI,EAAE,MAAM,QAAQ,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,EAAE,CAAC;QACrD,WAAW,EAAE,MAAM,QAAQ,CAAC,OAAO,CAAC,WAAW,IAAI,WAAW,EAAE,CAAC;KAClE,CAAC,CAAA;IACF,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAA;IACpD,MAAM,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IACnD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAA;IAC9B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QACrG,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACzC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACjC,MAAM,OAAO,GAAG;QACd,OAAO,EAAE,CAAC;QACV,GAAG;QACH,QAAQ,EAAE,kBAAkB,CAAC;YAC3B,OAAO;YACP,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,WAAW,EAAE,CAAC,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC;YACrD,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;SAC/C,CAAC;QACF,OAAO;QACP,KAAK;KACN,CAAA;IACD,MAAM,KAAK,GAAG,UAAU,EAAE,CAAA;IAC1B,MAAM,sBAAsB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACzC,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAA;QAChC,MAAM,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QACpD,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,CAAA;QACpC,IACE,CAAC,SAAS,CAAC,WAAW,EAAE;YACxB,SAAS,CAAC,cAAc,EAAE;YAC1B,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,SAAS,CAAC,IAAI,GAAG,KAAK,CAAC;YAExD,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;QACzC,IAAI,QAAQ,CAAA;QACZ,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAA;QAC1D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;gBAAE,MAAM,KAAK,CAAA;QACrE,CAAC;QACD,IAAI,QAAQ,IAAI,kBAAkB,CAAC,QAAQ,CAAC,KAAK,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7E,MAAM,yBAAyB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YAC9C,MAAM,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YAC5C,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;QACrD,CAAC;QACD,gFAAgF;QAChF,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QACrD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACtD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,sBAAsB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QACzC,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC;AACD,oHAAoH;AACpH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,GAAa,EACb,WAAmB,EACnB,UAA8B,EAAE;IAEhC,IAAI,CAAC;QACH,OAAO,MAAM,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACvD,IAAI,gBAAgB,GAAG,KAAK,CAAA;YAC5B,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;gBACxB,0EAA0E;gBAC1E,sEAAsE;gBACtE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAwB,CAAA;gBAClD,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAwB,CAAA;gBACxD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;oBAC7B,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;wBAAE,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;oBACjF,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,WAAW;wBAAE,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;gBAClF,CAAC;gBACD,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;oBACjC,GAAG,MAAM;oBACT,IAAI,EAAE,MAAM,CAAC,WAAW,CACtB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE;wBACvD,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,MAAM;4BAAE,OAAO,KAAK,CAAA;wBACrD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;wBACnE,IAAI,CAAC,OAAO;4BAAE,gBAAgB,GAAG,IAAI,CAAA;wBACrC,OAAO,OAAO,CAAA;oBAChB,CAAC,CAAC,CACH;oBACD,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;wBAC7C,IAAI,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,MAAM;4BAAE,OAAO,KAAK,CAAA;wBAC/D,MAAM,OAAO,GACX,GAAG,CAAC,eAAe,KAAK,OAAO;4BAC/B,CAAC,CAAC,GAAG,CAAC,cAAc;4BACpB,CAAC,CAAC,gBAAgB,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;wBAChE,IAAI,CAAC,OAAO;4BAAE,gBAAgB,GAAG,IAAI,CAAA;wBACrC,OAAO,OAAO,CAAA;oBAChB,CAAC,CAAC;iBACH,CAAC,CAAC,CAAA;YACL,CAAC;YACD,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;YAClG,IAAI,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI;gBACjC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;YACvD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;YAC5D,MAAM,MAAM,GAAG,MAAM,EAAE,KAAK,IAAI,WAAW,CAAA;YAC3C,IAAI,CAAC;gBACH,IAAI,MAAM,EAAE,KAAK;oBACf,OAAO;wBACL,UAAU,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC;wBAC1B,OAAO;wBACP,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;wBACjC,GAAG;wBACH,SAAS,EAAE,MAAM;wBACjB,cAAc,EAAE,MAAM,CAAC,IAAI;wBAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;qBACxB,CAAA;gBACH,MAAM,KAAK,GACT,GAAG,KAAK,IAAI;oBACV,CAAC,CAAC;wBACE,WAAW,EAAE,IAAI;wBACjB,aAAa,EAAE,EAAE,SAAS,EAAE;wBAC5B,eAAe,EAAE,MAAM,CAAC,MAAM,CAC5B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EACnB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAChD;wBACD,iBAAiB,EAAE,GAAG;wBACtB,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;qBAC9F;oBACH,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,EAAE,iBAAiB,EAAE,GAAG,EAAE,CAAA;gBAC7D,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBAClD,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAA;oBAChC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,UAAU,EAAE,MAAM,CAAC,CAAA;oBAC7D,MAAM,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;oBAC9E,MAAM,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;gBAC7C,CAAC;gBACD,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;oBAClB,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAA;oBAC3E,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;oBACnD,MAAM,QAAQ,GAAG,GAAG,UAAU,IAAI,UAAU,EAAE,MAAM,CAAA;oBACpD,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;oBAClF,MAAM,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;oBAClC,0EAA0E;oBAC1E,yEAAyE;oBACzE,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI;wBACzC;4BACE,UAAU;4BACV,uQAAuQ;4BACvQ,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE;4BACxC,4FAA4F;yBAC7F;wBACD;4BACE,WAAW;4BACX,uNAAuN;4BACvN,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;4BACnB,6CAA6C;yBAC9C;qBACO,EAAE,CAAC;wBACX,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,UAAU,EAAE,KAAK,CAAC,CAAA;wBAC5D,MAAM,SAAS,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;wBAC3D,MAAM,EAAE,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC,CAAA;wBACtC,IAAI,CAAC;4BACH,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;4BACf,KAAK,MAAM,GAAG,IAAI,IAAI;gCACpB,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CACpB,GAAG,CAAC,IAAI,KAAK,UAAU;oCACrB,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,cAAc,CAAC;oCACnE,CAAC,CAAC;wCACE,GAAG,CAAC,WAAW;wCACf,GAAG,CAAC,OAAO;wCACX,GAAG,CAAC,UAAU;wCACd,GAAG,CAAC,aAAa;wCACjB,GAAG,CAAC,kBAAkB;wCACtB,GAAG,CAAC,MAAM;qCACX,CAAC,CACP,CAAA;wBACL,CAAC;gCAAS,CAAC;4BACT,EAAE,CAAC,KAAK,EAAE,CAAA;wBACZ,CAAC;wBACD,MAAM,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;wBAC3C,6EAA6E;wBAC7E,MAAM,OAAO,CAAC,GAAG,CACf,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CACnF,CAAA;oBACH,CAAC;gBACH,CAAC;gBACD,IAAI,MAAM,EAAE,CAAC;oBACX,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAA;oBAChC,MAAM,yBAAyB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;oBAC5D,MAAM,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;gBAC3E,CAAC;gBACD,OAAO;oBACL,UAAU,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC;oBAC1B,OAAO;oBACP,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;oBACjC,GAAG;oBACH,SAAS,EAAE,MAAM;oBACjB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC5E,CAAA;YACH,CAAC;oBAAS,CAAC;gBACT,IAAI,MAAM;oBAAE,MAAM,sBAAsB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;YACrE,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAA;QAChC,IACE,KAAK,YAAY,KAAK;YACtB;gBACE,gBAAgB;gBAChB,oCAAoC;gBACpC,iBAAiB;aAClB,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;YAEzB,MAAM,KAAK,CAAA;QACb,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;IACrD,CAAC;AACH,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,GAAa,EACb,cAAkC,EAClC,MAAmB,EACnB,UAAmC,EAAE;IAErC,MAAM,CAAC,cAAc,EAAE,CAAA;IACvB,IAAI,CAAC;QACH,OAAO,MAAM,WAAW,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YAC3F,MAAM,CAAC,cAAc,EAAE,CAAA;YACvB,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,mBAAmB,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;YACpF,MAAM,MAAM,GAAmB,EAAE,CAAA;YACjC,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAE,aAAa,GAAG,KAAK,EAAE,EAAE,CACzD,OAAO,KAAK,KAAK,QAAQ;gBACzB,CAAC,aAAa;oBACZ,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC;oBACjC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC1D,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;gBACZ,CAAC,CAAC,KAAK,CAAA;YACX,MAAM,GAAG,GAAG,CAAC,QAAgB,EAAE,MAAuB,EAAE,EAAE;gBACxD,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;gBAClC,MAAM,CAAC,IAAI,CACT,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE;oBAC9B,OAAO,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC;oBACxC,IAAI,EAAE,MAAM,EAAE,IAAI;iBACnB,CAAC,CACH,CAAA;YACH,CAAC,CAAA;YACD,IAAI,YAAY,GAAG,KAAK,CAAA;YACxB,MAAM,OAAO,GAAG,CAAC,QAAgB,EAAE,IAAY,EAAE,KAA0B,EAAE,QAAkB,EAAE,EAAE;gBACjG,IAAI,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,YAAY;oBAAE,OAAM;gBACnE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACzC,IAAI,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;wBAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;gBACnF,CAAC;qBAAM,IACL,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC;oBAChC,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBAElE,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;;oBACnB,YAAY,GAAG,IAAI,CAAA;YAC1B,CAAC,CAAA;YACD,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAoC;gBACrF,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YACtC,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,mBAAmB;gBAChD,KAAK,MAAM,GAAG,IAAI,IAAI;oBACpB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAA;YACpF,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAoC,EAAE,CAAC;gBAC7F,IAAI,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;oBAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;YAC5E,CAAC;YACD,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,wBAAwB,CAAC;gBACzE,IAAI,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;YAC7D,IAAI,MAAM,CAAC,MAAM;gBAAE,OAAO,0BAA0B,CAAC,MAAM,CAAC,CAAA;YAC5D,IAAI,OAAO,IAAI,YAAY;gBACzB,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,CAAA;YACtF,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,mBAAmB,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM;gBACvF,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAA;YAC5E,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAA;QAC9E,CAAC,CAAC,CAAA;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,CAAC,cAAc,EAAE,CAAA;QACvB,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAA;IAC/D,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,SAAiB;IAC7D,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;QAC5F,IACE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CACxB,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,IAAI,KAAK,QAAQ,CACpG;YAED,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;QACxD,OAAO,KAAK,CAAA;IACd,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export function refreshFingerprint(value: unknown): string
|
|
2
|
+
export function refreshPrincipal(value: unknown): string | undefined
|
|
3
|
+
export function refreshJson(path: string, privateFile?: boolean): Promise<any>
|
|
4
|
+
export function writeRefreshJson(path: string, value: unknown): Promise<void>
|
|
5
|
+
export function assertPiOmpRefreshSources(root: string, expected?: any): Promise<any>
|
|
6
|
+
export function assertPiOmpRefreshCache(root: string, receipt: any): Promise<void>
|
|
7
|
+
export function finishPiOmpRefresh(root: string, nonce: string, executable: string, expectedReceipt: any): Promise<void>
|
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
import { constants } from 'node:fs'
|
|
2
|
+
import { lstat, open, realpath, rename, rm, writeFile } from 'node:fs/promises'
|
|
3
|
+
import { createHash, randomUUID } from 'node:crypto'
|
|
4
|
+
import { createRequire } from 'node:module'
|
|
5
|
+
import { dirname, join } from 'node:path'
|
|
6
|
+
import { pathToFileURL } from 'node:url'
|
|
7
|
+
import { DatabaseSync } from 'node:sqlite'
|
|
8
|
+
import { inspectPiInstallation } from './pi-installation.mjs'
|
|
9
|
+
import { ownsOwnAccountLease, releaseOwnAccountLease } from './own-account-lease.mjs'
|
|
10
|
+
|
|
11
|
+
const object = (value) => value !== null && typeof value === 'object' && !Array.isArray(value)
|
|
12
|
+
const stable = (value) =>
|
|
13
|
+
JSON.stringify(
|
|
14
|
+
object(value)
|
|
15
|
+
? Object.fromEntries(
|
|
16
|
+
Object.keys(value)
|
|
17
|
+
.sort()
|
|
18
|
+
.map((key) => [key, JSON.parse(stable(value[key]))]),
|
|
19
|
+
)
|
|
20
|
+
: Array.isArray(value)
|
|
21
|
+
? value.map((entry) => JSON.parse(stable(entry)))
|
|
22
|
+
: (value ?? null),
|
|
23
|
+
)
|
|
24
|
+
export const refreshFingerprint = (value) => createHash('sha256').update(stable(value)).digest('hex')
|
|
25
|
+
const changed = () => new Error('账号配置已变化,请重新刷新模型')
|
|
26
|
+
const unsafe = () => new Error('无法安全保存账号续期,请重新登录')
|
|
27
|
+
function claims(value) {
|
|
28
|
+
try {
|
|
29
|
+
if (typeof value !== 'string' || value.length > 65536) return {}
|
|
30
|
+
const parsed = JSON.parse(Buffer.from(value.split('.')[1] ?? '', 'base64url').toString('utf8'))
|
|
31
|
+
return object(parsed) ? parsed : {}
|
|
32
|
+
} catch {
|
|
33
|
+
return {}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/** Identity comparison only, never a remote authentication assertion. */
|
|
37
|
+
export function refreshPrincipal(value) {
|
|
38
|
+
if (!object(value) || value.type !== 'oauth') return undefined
|
|
39
|
+
const identity = claims(value.id_token ?? value.idToken)
|
|
40
|
+
const token = claims(value.access ?? value.access_token)
|
|
41
|
+
const account =
|
|
42
|
+
value.accountId ?? value.account_id ?? token['https://api.openai.com/auth']?.chatgpt_account_id
|
|
43
|
+
const subject = identity.sub ?? token.sub ?? value.userId ?? value.user_id
|
|
44
|
+
const email = identity.email ?? value.email
|
|
45
|
+
const text = (item) => typeof item === 'string' && !!item
|
|
46
|
+
if (!text(account) && !text(subject) && !text(email)) return undefined
|
|
47
|
+
return refreshFingerprint({
|
|
48
|
+
...(text(account) ? { accountId: account } : {}),
|
|
49
|
+
...(text(subject) ? { subject } : text(email) ? { email: email.toLowerCase() } : {}),
|
|
50
|
+
...(text(identity.iss ?? token.iss) ? { issuer: identity.iss ?? token.iss } : {}),
|
|
51
|
+
...(text(value.organizationId ?? value.organization_id)
|
|
52
|
+
? { organization: value.organizationId ?? value.organization_id }
|
|
53
|
+
: {}),
|
|
54
|
+
})
|
|
55
|
+
}
|
|
56
|
+
export async function refreshJson(path, privateFile = true) {
|
|
57
|
+
let handle
|
|
58
|
+
let buffer
|
|
59
|
+
try {
|
|
60
|
+
if ((await realpath(dirname(path))) !== dirname(path)) throw unsafe()
|
|
61
|
+
const location = await lstat(path)
|
|
62
|
+
if (location.isSymbolicLink() || !location.isFile() || location.nlink !== 1) throw unsafe()
|
|
63
|
+
handle = await open(path, constants.O_RDONLY | constants.O_NOFOLLOW | constants.O_NONBLOCK)
|
|
64
|
+
const before = await handle.stat()
|
|
65
|
+
if (
|
|
66
|
+
!before.isFile() ||
|
|
67
|
+
before.dev !== location.dev || before.ino !== location.ino ||
|
|
68
|
+
before.nlink !== 1 ||
|
|
69
|
+
before.size > 16 * 1024 * 1024 ||
|
|
70
|
+
(privateFile && (process.platform !== 'win32' && (before.mode & 0o077)))
|
|
71
|
+
)
|
|
72
|
+
throw unsafe()
|
|
73
|
+
buffer = Buffer.alloc(before.size + 1)
|
|
74
|
+
let length = 0
|
|
75
|
+
while (length < buffer.length) {
|
|
76
|
+
const { bytesRead } = await handle.read(buffer, length, buffer.length - length, length)
|
|
77
|
+
if (!bytesRead) break
|
|
78
|
+
length += bytesRead
|
|
79
|
+
}
|
|
80
|
+
const after = await handle.stat()
|
|
81
|
+
const current = await lstat(path)
|
|
82
|
+
if (current.isSymbolicLink() || current.dev !== before.dev || current.ino !== before.ino) throw changed()
|
|
83
|
+
if (length !== before.size || after.mtimeMs !== before.mtimeMs || after.size !== before.size)
|
|
84
|
+
throw changed()
|
|
85
|
+
return JSON.parse(buffer.subarray(0, length).toString('utf8'))
|
|
86
|
+
} finally {
|
|
87
|
+
buffer?.fill(0)
|
|
88
|
+
await handle?.close()
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
export async function writeRefreshJson(path, value) {
|
|
92
|
+
const temporary = `${path}.${randomUUID()}.tmp`
|
|
93
|
+
try {
|
|
94
|
+
await writeFile(temporary, JSON.stringify(value), { flag: 'wx', mode: 0o600 })
|
|
95
|
+
await rename(temporary, path)
|
|
96
|
+
} finally {
|
|
97
|
+
await rm(temporary, { force: true })
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
function validReceipt(value) {
|
|
101
|
+
if (
|
|
102
|
+
!object(value) ||
|
|
103
|
+
value.version !== 1 ||
|
|
104
|
+
!['pi', 'omp'].includes(value.cli) ||
|
|
105
|
+
!Array.isArray(value.entries)
|
|
106
|
+
)
|
|
107
|
+
throw unsafe()
|
|
108
|
+
for (const entry of value.entries)
|
|
109
|
+
if (
|
|
110
|
+
!object(entry) ||
|
|
111
|
+
typeof entry.provider !== 'string' ||
|
|
112
|
+
typeof entry.path !== 'string' ||
|
|
113
|
+
typeof entry.hash !== 'string'
|
|
114
|
+
)
|
|
115
|
+
throw unsafe()
|
|
116
|
+
return value
|
|
117
|
+
}
|
|
118
|
+
async function sourceIdentity(entry) {
|
|
119
|
+
if ((await realpath(dirname(entry.path))) !== dirname(entry.path)) throw changed()
|
|
120
|
+
const info = await lstat(entry.path)
|
|
121
|
+
if (
|
|
122
|
+
info.isSymbolicLink() ||
|
|
123
|
+
!info.isFile() ||
|
|
124
|
+
info.nlink !== 1 ||
|
|
125
|
+
info.dev !== entry.dev ||
|
|
126
|
+
info.ino !== entry.ino
|
|
127
|
+
)
|
|
128
|
+
throw changed()
|
|
129
|
+
}
|
|
130
|
+
function rowCredential(row) {
|
|
131
|
+
if (!row || row.credential_type !== 'oauth' || row.disabled_cause) return undefined
|
|
132
|
+
return { ...JSON.parse(row.data), type: 'oauth' }
|
|
133
|
+
}
|
|
134
|
+
export async function assertPiOmpRefreshSources(root, expected) {
|
|
135
|
+
const receipt = validReceipt(expected ?? (await refreshJson(join(root, 'receipt.json'))))
|
|
136
|
+
for (const entry of receipt.entries) {
|
|
137
|
+
await sourceIdentity(entry)
|
|
138
|
+
let current
|
|
139
|
+
if (receipt.cli === 'pi') current = (await refreshJson(entry.path, false))[entry.provider]
|
|
140
|
+
else {
|
|
141
|
+
const db = new DatabaseSync(entry.path, { readOnly: true })
|
|
142
|
+
try {
|
|
143
|
+
current = rowCredential(
|
|
144
|
+
db
|
|
145
|
+
.prepare(
|
|
146
|
+
'SELECT credential_type,data,disabled_cause FROM auth_credentials WHERE rowid=? AND provider=?',
|
|
147
|
+
)
|
|
148
|
+
.get(entry.rowId, entry.provider),
|
|
149
|
+
)
|
|
150
|
+
} finally {
|
|
151
|
+
db.close()
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
if (
|
|
155
|
+
!current ||
|
|
156
|
+
refreshFingerprint(current) !== entry.hash ||
|
|
157
|
+
refreshPrincipal(current) !== entry.principal
|
|
158
|
+
)
|
|
159
|
+
throw changed()
|
|
160
|
+
}
|
|
161
|
+
return receipt
|
|
162
|
+
}
|
|
163
|
+
export async function assertPiOmpRefreshCache(root, receipt) {
|
|
164
|
+
await refreshedEntries(root, validReceipt(receipt))
|
|
165
|
+
}
|
|
166
|
+
async function refreshedEntries(root, receipt) {
|
|
167
|
+
const result = []
|
|
168
|
+
if (receipt.cli === 'pi') {
|
|
169
|
+
const data = await refreshJson(join(root, 'agent/auth.json'))
|
|
170
|
+
const expected = [...receipt.entries, ...(receipt.fixed ?? [])].map((entry) => entry.provider).sort()
|
|
171
|
+
if (refreshFingerprint(Object.keys(data).sort()) !== refreshFingerprint(expected)) throw unsafe()
|
|
172
|
+
for (const entry of receipt.fixed ?? [])
|
|
173
|
+
if (refreshFingerprint(data[entry.provider]) !== entry.hash) throw unsafe()
|
|
174
|
+
for (const entry of receipt.entries) result.push([entry, data[entry.provider]])
|
|
175
|
+
} else {
|
|
176
|
+
const db = new DatabaseSync(join(root, 'agent/agent.db'), { readOnly: true })
|
|
177
|
+
try {
|
|
178
|
+
const rows = db
|
|
179
|
+
.prepare('SELECT rowid AS id,provider,credential_type,data,disabled_cause FROM auth_credentials')
|
|
180
|
+
.all()
|
|
181
|
+
if (rows.length !== receipt.entries.length + (receipt.fixed?.length ?? 0)) throw unsafe()
|
|
182
|
+
for (const entry of receipt.fixed ?? []) {
|
|
183
|
+
const row = rows.find((row) => row.id === entry.cacheRowId && row.provider === entry.provider)
|
|
184
|
+
if (
|
|
185
|
+
!row ||
|
|
186
|
+
refreshFingerprint({
|
|
187
|
+
...JSON.parse(row.data),
|
|
188
|
+
type: row.credential_type,
|
|
189
|
+
disabled_cause: row.disabled_cause,
|
|
190
|
+
}) !== entry.hash
|
|
191
|
+
)
|
|
192
|
+
throw unsafe()
|
|
193
|
+
}
|
|
194
|
+
for (const entry of receipt.entries)
|
|
195
|
+
result.push([
|
|
196
|
+
entry,
|
|
197
|
+
rowCredential(
|
|
198
|
+
db
|
|
199
|
+
.prepare(
|
|
200
|
+
'SELECT credential_type,data,disabled_cause FROM auth_credentials WHERE rowid=? AND provider=?',
|
|
201
|
+
)
|
|
202
|
+
.get(entry.cacheRowId, entry.provider),
|
|
203
|
+
),
|
|
204
|
+
])
|
|
205
|
+
} finally {
|
|
206
|
+
db.close()
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
for (const [entry, next] of result)
|
|
210
|
+
if (
|
|
211
|
+
!next ||
|
|
212
|
+
refreshPrincipal(next) !== entry.principal ||
|
|
213
|
+
typeof next.access !== 'string' ||
|
|
214
|
+
!next.access ||
|
|
215
|
+
typeof next.refresh !== 'string' ||
|
|
216
|
+
!next.refresh ||
|
|
217
|
+
!Number.isFinite(next.expires)
|
|
218
|
+
)
|
|
219
|
+
throw unsafe()
|
|
220
|
+
return result
|
|
221
|
+
}
|
|
222
|
+
/** Called only by Host after capture/process-scope cleanup confirmed exit. */
|
|
223
|
+
export async function finishPiOmpRefresh(root, nonce, executable, expectedReceipt) {
|
|
224
|
+
if (!(await ownsOwnAccountLease(root, nonce))) return
|
|
225
|
+
try {
|
|
226
|
+
// This snapshot is retained in the Host closure before launch. Never trust a
|
|
227
|
+
// runtime-writable receipt to select unsandboxed source write destinations.
|
|
228
|
+
const receipt = validReceipt(expectedReceipt)
|
|
229
|
+
const entries = await refreshedEntries(root, receipt)
|
|
230
|
+
for (const [entry, next] of entries) {
|
|
231
|
+
if (refreshFingerprint(next) === entry.hash) continue
|
|
232
|
+
await sourceIdentity(entry)
|
|
233
|
+
if (receipt.cli === 'pi') {
|
|
234
|
+
const { dist } = inspectPiInstallation(executable)
|
|
235
|
+
const require = createRequire(join(dist, 'core/auth-storage.js'))
|
|
236
|
+
const lockfile = require('proper-lockfile')
|
|
237
|
+
// Same canonical auth path and lock convention as Pi 1.0.4. Never call
|
|
238
|
+
// AuthStorage.create here: its initialization would recreate a logged-out file.
|
|
239
|
+
const unlock = await lockfile.lock(entry.path, { realpath: false, retries: 0, stale: 30000 })
|
|
240
|
+
try {
|
|
241
|
+
await sourceIdentity(entry)
|
|
242
|
+
const data = await refreshJson(entry.path, false)
|
|
243
|
+
if (
|
|
244
|
+
refreshFingerprint(data[entry.provider]) !== entry.hash ||
|
|
245
|
+
refreshPrincipal(data[entry.provider]) !== entry.principal
|
|
246
|
+
)
|
|
247
|
+
throw changed()
|
|
248
|
+
const handle = await open(
|
|
249
|
+
entry.path,
|
|
250
|
+
constants.O_WRONLY | constants.O_NOFOLLOW | constants.O_NONBLOCK,
|
|
251
|
+
)
|
|
252
|
+
try {
|
|
253
|
+
const info = await handle.stat()
|
|
254
|
+
if (info.dev !== entry.dev || info.ino !== entry.ino || info.nlink !== 1) throw changed()
|
|
255
|
+
const bytes = Buffer.from(JSON.stringify({ ...data, [entry.provider]: next }, null, 2))
|
|
256
|
+
try {
|
|
257
|
+
let offset = 0
|
|
258
|
+
while (offset < bytes.length) {
|
|
259
|
+
const { bytesWritten } = await handle.write(bytes, offset, bytes.length - offset, offset)
|
|
260
|
+
if (!bytesWritten) throw unsafe()
|
|
261
|
+
offset += bytesWritten
|
|
262
|
+
}
|
|
263
|
+
await handle.truncate(bytes.length)
|
|
264
|
+
await handle.sync()
|
|
265
|
+
} finally {
|
|
266
|
+
bytes.fill(0)
|
|
267
|
+
}
|
|
268
|
+
} finally {
|
|
269
|
+
await handle.close()
|
|
270
|
+
}
|
|
271
|
+
} finally {
|
|
272
|
+
await unlock()
|
|
273
|
+
}
|
|
274
|
+
} else {
|
|
275
|
+
// SQLite URI mode=rw never recreates a source deleted after preflight.
|
|
276
|
+
const db = new DatabaseSync(`${pathToFileURL(entry.path).href}?mode=rw`)
|
|
277
|
+
try {
|
|
278
|
+
db.exec('PRAGMA busy_timeout=0; BEGIN IMMEDIATE')
|
|
279
|
+
const row = db
|
|
280
|
+
.prepare(
|
|
281
|
+
'SELECT credential_type,data,disabled_cause FROM auth_credentials WHERE rowid=? AND provider=?',
|
|
282
|
+
)
|
|
283
|
+
.get(entry.rowId, entry.provider)
|
|
284
|
+
const current = rowCredential(row)
|
|
285
|
+
if (
|
|
286
|
+
!current ||
|
|
287
|
+
refreshFingerprint(current) !== entry.hash ||
|
|
288
|
+
refreshPrincipal(current) !== entry.principal
|
|
289
|
+
)
|
|
290
|
+
throw changed()
|
|
291
|
+
const { type: _type, ...data } = next
|
|
292
|
+
const update = db
|
|
293
|
+
.prepare(
|
|
294
|
+
'UPDATE auth_credentials SET data=? WHERE rowid=? AND provider=? AND credential_type=? AND data=? AND disabled_cause IS NULL',
|
|
295
|
+
)
|
|
296
|
+
.run(JSON.stringify(data), entry.rowId, entry.provider, 'oauth', row.data)
|
|
297
|
+
if (Number(update.changes) !== 1) throw changed()
|
|
298
|
+
db.exec('COMMIT')
|
|
299
|
+
} catch (error) {
|
|
300
|
+
try {
|
|
301
|
+
db.exec('ROLLBACK')
|
|
302
|
+
} catch {}
|
|
303
|
+
throw error
|
|
304
|
+
} finally {
|
|
305
|
+
db.close()
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
// Reuse the updated Host-held expectation in the next metadata phase and
|
|
309
|
+
// this same prepare's final worker request; don't reject our own refresh.
|
|
310
|
+
entry.hash = refreshFingerprint(next)
|
|
311
|
+
}
|
|
312
|
+
await writeRefreshJson(join(root, 'receipt.json'), receipt)
|
|
313
|
+
} catch (error) {
|
|
314
|
+
if (
|
|
315
|
+
error?.message === '账号配置已变化,请重新刷新模型' ||
|
|
316
|
+
error?.message === '无法安全保存账号续期,请重新登录'
|
|
317
|
+
)
|
|
318
|
+
throw error
|
|
319
|
+
throw unsafe()
|
|
320
|
+
} finally {
|
|
321
|
+
// A CAS conflict is a completed safe refusal, not an unconfirmed process exit.
|
|
322
|
+
await releaseOwnAccountLease(root, nonce)
|
|
323
|
+
}
|
|
324
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// Set a private file-creation mask without mutating the shared Harness process.
|
|
2
|
+
import { forwardNativeStdio, spawnNativeProcess } from './native-spawn.mjs'
|
|
3
|
+
import { nativeLaunchArgv } from './native-launch.mjs'
|
|
4
|
+
process.umask(0o077)
|
|
5
|
+
const [executable, ...argv] = nativeLaunchArgv(process.argv.slice(2))
|
|
6
|
+
// This helper is also used under POSIX PTYs, whose original handles must stay.
|
|
7
|
+
// Windows ConPTY account launch unwraps it in windows-account-launch.mjs.
|
|
8
|
+
const backgroundPipes = process.platform === 'win32'
|
|
9
|
+
const child = spawnNativeProcess(executable, argv, { env: process.env, stdio: backgroundPipes ? ['pipe', 'pipe', 'pipe'] : 'inherit' })
|
|
10
|
+
if (backgroundPipes) forwardNativeStdio(child)
|
|
11
|
+
let stopped = false
|
|
12
|
+
for (const signal of ['SIGTERM', 'SIGINT'])
|
|
13
|
+
process.on(signal, () => {
|
|
14
|
+
stopped = true
|
|
15
|
+
child.kill(signal)
|
|
16
|
+
})
|
|
17
|
+
child.on('error', () => {
|
|
18
|
+
process.stderr.write('CLI launch failed\n')
|
|
19
|
+
process.exitCode = 1
|
|
20
|
+
})
|
|
21
|
+
child.on('close', (code, signal) => {
|
|
22
|
+
process.exitCode = stopped || signal ? 143 : (code ?? 1)
|
|
23
|
+
})
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { SubprocessHandle, SubprocessSpawnSpec, SubprocessTerminalSpawnSpec, SubprocessTerminalHandle } from '@deepseek-ai/dsh-subprocess';
|
|
2
|
+
import type { ModelChoice, Preference, TaskMode } from '../shared/types.ts';
|
|
3
|
+
export interface ProcessBackend {
|
|
4
|
+
resolveExecutable(name: string): Promise<string>;
|
|
5
|
+
spawn(spec: SubprocessSpawnSpec): SubprocessHandle;
|
|
6
|
+
spawnTerminal?(spec: SubprocessTerminalSpawnSpec): Promise<SubprocessTerminalHandle>;
|
|
7
|
+
}
|
|
8
|
+
/** A process range is still unconfirmed; callers must stop admitting work. */
|
|
9
|
+
export declare class ProcessCleanupUnconfirmedError extends Error {
|
|
10
|
+
constructor();
|
|
11
|
+
}
|
|
12
|
+
export interface RuntimeConfig {
|
|
13
|
+
executable: string;
|
|
14
|
+
codexExecutable?: string;
|
|
15
|
+
claudeExecutable?: string;
|
|
16
|
+
kimiExecutable?: string;
|
|
17
|
+
mimoExecutable?: string;
|
|
18
|
+
zcodeExecutable?: string;
|
|
19
|
+
grokExecutable?: string;
|
|
20
|
+
ompExecutable?: string;
|
|
21
|
+
piExecutable?: string;
|
|
22
|
+
hermesExecutable?: string;
|
|
23
|
+
hermesHome?: string;
|
|
24
|
+
opencodeExecutable?: string;
|
|
25
|
+
zcodeAuthDirectory?: string;
|
|
26
|
+
zcodeBuiltinConfig?: string;
|
|
27
|
+
stateDirectory?: string;
|
|
28
|
+
/** @deprecated Legacy deployment input; own-account isolation ignores it. */
|
|
29
|
+
zaiCredentialRef?: string;
|
|
30
|
+
/** @deprecated Test/old API compatibility only; must never be invoked. */
|
|
31
|
+
resolveCredential?: (ref: string) => Promise<string | undefined>;
|
|
32
|
+
maxConcurrent: number;
|
|
33
|
+
timeoutMs: number;
|
|
34
|
+
graceMs: number;
|
|
35
|
+
maxLineBytes: number;
|
|
36
|
+
maxRunBytes: number;
|
|
37
|
+
maxTimelineItems: number;
|
|
38
|
+
}
|
|
39
|
+
export declare const DEFAULT_CONFIG: RuntimeConfig;
|
|
40
|
+
export declare function projectDirectory(input: string): string;
|
|
41
|
+
export declare function agyArguments(executable: string, project: string, preference: Preference, mode: TaskMode, prompt: string, timeoutMs: number, conversationId?: string): string[];
|
|
42
|
+
/** Bound discovery and always await managed process cleanup. No agent prompt is sent. */
|
|
43
|
+
export declare function discoverModels(backend: ProcessBackend, config: RuntimeConfig, cwd: string, signal: AbortSignal): Promise<ModelChoice[]>;
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { accessSync, constants, realpathSync, statSync } from 'node:fs';
|
|
2
|
+
import { homedir } from 'node:os';
|
|
3
|
+
import { isAbsolute, parse, resolve, sep } from 'node:path';
|
|
4
|
+
/** A process range is still unconfirmed; callers must stop admitting work. */
|
|
5
|
+
export class ProcessCleanupUnconfirmedError extends Error {
|
|
6
|
+
constructor() {
|
|
7
|
+
super('CLI catalog process cleanup did not reach quiescence');
|
|
8
|
+
this.name = 'ProcessCleanupUnconfirmedError';
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export const DEFAULT_CONFIG = {
|
|
12
|
+
executable: 'agy',
|
|
13
|
+
maxConcurrent: 2,
|
|
14
|
+
timeoutMs: 1_800_000,
|
|
15
|
+
graceMs: 5000,
|
|
16
|
+
maxLineBytes: 1_048_576,
|
|
17
|
+
maxRunBytes: 16_777_216,
|
|
18
|
+
maxTimelineItems: 1000,
|
|
19
|
+
};
|
|
20
|
+
export function projectDirectory(input) {
|
|
21
|
+
if (!isAbsolute(input))
|
|
22
|
+
throw new Error('Project must be an absolute directory');
|
|
23
|
+
const path = realpathSync(input);
|
|
24
|
+
const home = realpathSync(homedir());
|
|
25
|
+
const key = (value) => process.platform === 'win32' ? value.toLowerCase() : value;
|
|
26
|
+
if (key(path) === key(parse(path).root) || key(path) === key(home) || key(home).startsWith(key(path + sep)))
|
|
27
|
+
throw new Error('Refusing a root or home directory as workspace');
|
|
28
|
+
const forbidden = [
|
|
29
|
+
'.ssh',
|
|
30
|
+
'.aws',
|
|
31
|
+
'.codex',
|
|
32
|
+
'.claude',
|
|
33
|
+
'.kimi-code',
|
|
34
|
+
'.config/mimocode',
|
|
35
|
+
'.local/share/mimocode',
|
|
36
|
+
'.agents',
|
|
37
|
+
'.grok',
|
|
38
|
+
'.pi',
|
|
39
|
+
'.omp',
|
|
40
|
+
'.dsh',
|
|
41
|
+
'.hermes',
|
|
42
|
+
'.zcode',
|
|
43
|
+
'.local/share/opencode',
|
|
44
|
+
'.gemini',
|
|
45
|
+
'.config',
|
|
46
|
+
'Library/Keychains',
|
|
47
|
+
'Library/Application Support/Google',
|
|
48
|
+
'Library/Application Support/Microsoft Edge',
|
|
49
|
+
];
|
|
50
|
+
if (forbidden.some((name) => {
|
|
51
|
+
const root = resolve(home, name);
|
|
52
|
+
return key(path) === key(root) || key(path).startsWith(key(root + sep));
|
|
53
|
+
}))
|
|
54
|
+
throw new Error('Refusing a credential or application configuration directory');
|
|
55
|
+
if (!statSync(path).isDirectory())
|
|
56
|
+
throw new Error('Project is not a directory');
|
|
57
|
+
accessSync(path, constants.R_OK | constants.X_OK);
|
|
58
|
+
return path;
|
|
59
|
+
}
|
|
60
|
+
export function agyArguments(executable, project, preference, mode, prompt, timeoutMs, conversationId) {
|
|
61
|
+
// --disable-slash-commands also disables --mode plan in agy 1.2.16.
|
|
62
|
+
// Prefix plain task text instead, and keep the native mode effective.
|
|
63
|
+
return [
|
|
64
|
+
executable,
|
|
65
|
+
'--add-dir',
|
|
66
|
+
project,
|
|
67
|
+
'--sandbox',
|
|
68
|
+
'--dangerously-skip-permissions',
|
|
69
|
+
'--mode',
|
|
70
|
+
mode,
|
|
71
|
+
'--model',
|
|
72
|
+
preference.model,
|
|
73
|
+
...(preference.effort === 'default' ? [] : ['--effort', preference.effort]),
|
|
74
|
+
'--output-format',
|
|
75
|
+
'stream-json',
|
|
76
|
+
'--print-timeout',
|
|
77
|
+
`${Math.ceil(timeoutMs / 1000)}s`,
|
|
78
|
+
...(conversationId ? ['--conversation', conversationId] : []),
|
|
79
|
+
'--print',
|
|
80
|
+
`任务:\n${prompt}`,
|
|
81
|
+
];
|
|
82
|
+
}
|
|
83
|
+
/** Bound discovery and always await managed process cleanup. No agent prompt is sent. */
|
|
84
|
+
export async function discoverModels(backend, config, cwd, signal) {
|
|
85
|
+
const executable = await backend.resolveExecutable(config.executable);
|
|
86
|
+
signal.throwIfAborted();
|
|
87
|
+
const control = AbortSignal.any([signal, AbortSignal.timeout(30_000)]);
|
|
88
|
+
const process = backend.spawn({
|
|
89
|
+
argv: [executable, 'models'],
|
|
90
|
+
cwd,
|
|
91
|
+
stdio: { stdin: 'ignore', stdout: 'pipe', stderr: 'pipe' },
|
|
92
|
+
graceMs: config.graceMs,
|
|
93
|
+
signal: control,
|
|
94
|
+
});
|
|
95
|
+
void process.done.catch(() => undefined);
|
|
96
|
+
let stdout = '';
|
|
97
|
+
let stderr = '';
|
|
98
|
+
const read = async (stream, out) => {
|
|
99
|
+
if (stream)
|
|
100
|
+
for await (const chunk of stream)
|
|
101
|
+
out(String(chunk));
|
|
102
|
+
};
|
|
103
|
+
try {
|
|
104
|
+
await Promise.all([
|
|
105
|
+
read(process.stdout, (s) => {
|
|
106
|
+
stdout += s;
|
|
107
|
+
if (stdout.length > config.maxLineBytes)
|
|
108
|
+
throw new Error('Model catalog too large');
|
|
109
|
+
}),
|
|
110
|
+
read(process.stderr, (s) => {
|
|
111
|
+
stderr = (stderr + s).slice(-4096);
|
|
112
|
+
}),
|
|
113
|
+
]);
|
|
114
|
+
const outcome = await process.done;
|
|
115
|
+
control.throwIfAborted();
|
|
116
|
+
if (outcome.exitCode !== 0)
|
|
117
|
+
throw new Error(`无法读取 Antigravity 模型:${stderr || outcome.exitCode}`);
|
|
118
|
+
const models = stdout.split(/\r?\n/).flatMap((line) => {
|
|
119
|
+
const [id, ...label] = line.split('\t');
|
|
120
|
+
return id && label.length && /^[A-Za-z0-9_.:/-]+$/.test(id)
|
|
121
|
+
? [{ id, label: label.join(' ').trim() }]
|
|
122
|
+
: [];
|
|
123
|
+
});
|
|
124
|
+
if (!models.length)
|
|
125
|
+
throw new Error('Antigravity returned no model catalog; check login with agy models');
|
|
126
|
+
return models;
|
|
127
|
+
}
|
|
128
|
+
finally {
|
|
129
|
+
process.terminate();
|
|
130
|
+
await process.waitForExit();
|
|
131
|
+
await process.done.catch(() => undefined);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=process.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../../src/host/process.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { WorkerEvent } from '../shared/types.ts';
|
|
2
|
+
export interface ProtocolResult {
|
|
3
|
+
conversationId: string;
|
|
4
|
+
status: string;
|
|
5
|
+
response: string;
|
|
6
|
+
error?: string;
|
|
7
|
+
}
|
|
8
|
+
export type EventInput = Omit<WorkerEvent, 'seq' | 'runId' | 'time'>;
|
|
9
|
+
/** Antigravity 1.2.16 NDJSON framing, including split UTF-8 characters. */
|
|
10
|
+
export declare class AgyProtocol {
|
|
11
|
+
private emit;
|
|
12
|
+
private identify;
|
|
13
|
+
private maxLineBytes;
|
|
14
|
+
private decoder;
|
|
15
|
+
private pending;
|
|
16
|
+
result?: ProtocolResult;
|
|
17
|
+
conversationId?: string;
|
|
18
|
+
constructor(emit: (event: EventInput) => void, identify: (id: string) => void, maxLineBytes: number);
|
|
19
|
+
feed(chunk: Buffer | string): void;
|
|
20
|
+
end(): void;
|
|
21
|
+
private id;
|
|
22
|
+
private line;
|
|
23
|
+
}
|