@nodetool-ai/runtime 0.7.0-rc.22 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -0
- package/dist/.nodetool-build-stamp +1 -0
- package/dist/agent-memory.d.ts +118 -0
- package/dist/agent-memory.d.ts.map +1 -0
- package/dist/agent-memory.js +186 -0
- package/dist/agent-memory.js.map +1 -0
- package/dist/async-local-storage.d.ts +20 -0
- package/dist/async-local-storage.d.ts.map +1 -0
- package/dist/async-local-storage.js +28 -0
- package/dist/async-local-storage.js.map +1 -0
- package/dist/blender-executor.d.ts +93 -0
- package/dist/blender-executor.d.ts.map +1 -0
- package/dist/blender-executor.js +294 -0
- package/dist/blender-executor.js.map +1 -0
- package/dist/comfy-executor.d.ts +23 -1
- package/dist/comfy-executor.d.ts.map +1 -1
- package/dist/comfy-executor.js +234 -55
- package/dist/comfy-executor.js.map +1 -1
- package/dist/context-packer.d.ts +1 -1
- package/dist/context-packer.d.ts.map +1 -1
- package/dist/context-packer.js +23 -25
- package/dist/context-packer.js.map +1 -1
- package/dist/context.d.ts +954 -127
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +2424 -513
- package/dist/context.js.map +1 -1
- package/dist/cost-reconciler.d.ts +32 -0
- package/dist/cost-reconciler.d.ts.map +1 -0
- package/dist/cost-reconciler.js +21 -0
- package/dist/cost-reconciler.js.map +1 -0
- package/dist/entities.d.ts +33 -0
- package/dist/entities.d.ts.map +1 -0
- package/dist/entities.js +43 -0
- package/dist/entities.js.map +1 -0
- package/dist/external-media-fetch.d.ts +29 -0
- package/dist/external-media-fetch.d.ts.map +1 -0
- package/dist/external-media-fetch.js +38 -0
- package/dist/external-media-fetch.js.map +1 -0
- package/dist/generation-receipt.d.ts +86 -0
- package/dist/generation-receipt.d.ts.map +1 -0
- package/dist/generation-receipt.js +137 -0
- package/dist/generation-receipt.js.map +1 -0
- package/dist/generation-registry.d.ts +67 -0
- package/dist/generation-registry.d.ts.map +1 -0
- package/dist/generation-registry.js +126 -0
- package/dist/generation-registry.js.map +1 -0
- package/dist/google/client.d.ts +196 -0
- package/dist/google/client.d.ts.map +1 -0
- package/dist/google/client.js +396 -0
- package/dist/google/client.js.map +1 -0
- package/dist/google/index.d.ts +3 -0
- package/dist/google/index.d.ts.map +1 -0
- package/dist/google/index.js +3 -0
- package/dist/google/index.js.map +1 -0
- package/dist/google/token.d.ts +15 -0
- package/dist/google/token.d.ts.map +1 -0
- package/dist/google/token.js +24 -0
- package/dist/google/token.js.map +1 -0
- package/dist/host-binaries.d.ts +106 -0
- package/dist/host-binaries.d.ts.map +1 -0
- package/dist/host-binaries.js +344 -0
- package/dist/host-binaries.js.map +1 -0
- package/dist/image-codec.d.ts +74 -0
- package/dist/image-codec.d.ts.map +1 -0
- package/dist/image-codec.js +273 -0
- package/dist/image-codec.js.map +1 -0
- package/dist/index.d.ts +56 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +43 -4
- package/dist/index.js.map +1 -1
- package/dist/invocation-account.d.ts +43 -0
- package/dist/invocation-account.d.ts.map +1 -0
- package/dist/invocation-account.js +60 -0
- package/dist/invocation-account.js.map +1 -0
- package/dist/media-ref-bytes.d.ts +19 -0
- package/dist/media-ref-bytes.d.ts.map +1 -0
- package/dist/media-ref-bytes.js +181 -0
- package/dist/media-ref-bytes.js.map +1 -0
- package/dist/node-executor.d.ts +113 -2
- package/dist/node-executor.d.ts.map +1 -1
- package/dist/permission-gate.d.ts +152 -0
- package/dist/permission-gate.d.ts.map +1 -0
- package/dist/permission-gate.js +87 -0
- package/dist/permission-gate.js.map +1 -0
- package/dist/prefixed-storage-adapter.d.ts +33 -0
- package/dist/prefixed-storage-adapter.d.ts.map +1 -0
- package/dist/prefixed-storage-adapter.js +70 -0
- package/dist/prefixed-storage-adapter.js.map +1 -0
- package/dist/prompt-asset-refs.d.ts +222 -0
- package/dist/prompt-asset-refs.d.ts.map +1 -0
- package/dist/prompt-asset-refs.js +751 -0
- package/dist/prompt-asset-refs.js.map +1 -0
- package/dist/provider-cache.d.ts +3 -0
- package/dist/provider-cache.d.ts.map +1 -0
- package/dist/provider-cache.js +8 -0
- package/dist/provider-cache.js.map +1 -0
- package/dist/providers/aki-provider.d.ts +33 -10
- package/dist/providers/aki-provider.d.ts.map +1 -1
- package/dist/providers/aki-provider.js +84 -77
- package/dist/providers/aki-provider.js.map +1 -1
- package/dist/providers/alibaba-provider.d.ts +39 -0
- package/dist/providers/alibaba-provider.d.ts.map +1 -0
- package/dist/providers/alibaba-provider.js +86 -0
- package/dist/providers/alibaba-provider.js.map +1 -0
- package/dist/providers/anthropic-provider.d.ts +52 -3
- package/dist/providers/anthropic-provider.d.ts.map +1 -1
- package/dist/providers/anthropic-provider.js +1020 -338
- package/dist/providers/anthropic-provider.js.map +1 -1
- package/dist/providers/atlascloud-provider.d.ts +101 -0
- package/dist/providers/atlascloud-provider.d.ts.map +1 -0
- package/dist/providers/atlascloud-provider.js +1009 -0
- package/dist/providers/atlascloud-provider.js.map +1 -0
- package/dist/providers/atlascloud-transport.d.ts +100 -0
- package/dist/providers/atlascloud-transport.d.ts.map +1 -0
- package/dist/providers/atlascloud-transport.js +364 -0
- package/dist/providers/atlascloud-transport.js.map +1 -0
- package/dist/providers/atlascloud-webhook-registry.d.ts +35 -0
- package/dist/providers/atlascloud-webhook-registry.d.ts.map +1 -0
- package/dist/providers/atlascloud-webhook-registry.js +104 -0
- package/dist/providers/atlascloud-webhook-registry.js.map +1 -0
- package/dist/providers/audio-mime.d.ts +11 -0
- package/dist/providers/audio-mime.d.ts.map +1 -0
- package/dist/providers/audio-mime.js +46 -0
- package/dist/providers/audio-mime.js.map +1 -0
- package/dist/providers/base-provider.d.ts +481 -24
- package/dist/providers/base-provider.d.ts.map +1 -1
- package/dist/providers/base-provider.js +1259 -42
- package/dist/providers/base-provider.js.map +1 -1
- package/dist/providers/cassette-provider.d.ts +217 -0
- package/dist/providers/cassette-provider.d.ts.map +1 -0
- package/dist/providers/cassette-provider.js +502 -0
- package/dist/providers/cassette-provider.js.map +1 -0
- package/dist/providers/cerebras-provider.d.ts +6 -12
- package/dist/providers/cerebras-provider.d.ts.map +1 -1
- package/dist/providers/cerebras-provider.js +8 -33
- package/dist/providers/cerebras-provider.js.map +1 -1
- package/dist/providers/claude-agent-provider.d.ts +131 -68
- package/dist/providers/claude-agent-provider.d.ts.map +1 -1
- package/dist/providers/claude-agent-provider.js +1095 -515
- package/dist/providers/claude-agent-provider.js.map +1 -1
- package/dist/providers/codex-provider.d.ts +82 -0
- package/dist/providers/codex-provider.d.ts.map +1 -0
- package/dist/providers/codex-provider.js +492 -0
- package/dist/providers/codex-provider.js.map +1 -0
- package/dist/providers/cohere-provider.d.ts +5 -2
- package/dist/providers/cohere-provider.d.ts.map +1 -1
- package/dist/providers/cohere-provider.js +9 -2
- package/dist/providers/cohere-provider.js.map +1 -1
- package/dist/providers/comfy-cloud-provider.d.ts +30 -0
- package/dist/providers/comfy-cloud-provider.d.ts.map +1 -0
- package/dist/providers/comfy-cloud-provider.js +42 -0
- package/dist/providers/comfy-cloud-provider.js.map +1 -0
- package/dist/providers/content-filter.d.ts +46 -0
- package/dist/providers/content-filter.d.ts.map +1 -0
- package/dist/providers/content-filter.js +92 -0
- package/dist/providers/content-filter.js.map +1 -0
- package/dist/providers/context-exceeded.d.ts +37 -0
- package/dist/providers/context-exceeded.d.ts.map +1 -0
- package/dist/providers/context-exceeded.js +114 -0
- package/dist/providers/context-exceeded.js.map +1 -0
- package/dist/providers/context-window.d.ts +44 -0
- package/dist/providers/context-window.d.ts.map +1 -0
- package/dist/providers/context-window.js +145 -0
- package/dist/providers/context-window.js.map +1 -0
- package/dist/providers/contract/index.d.ts +4 -0
- package/dist/providers/contract/index.d.ts.map +1 -0
- package/dist/providers/contract/index.js +4 -0
- package/dist/providers/contract/index.js.map +1 -0
- package/dist/providers/contract/probe-manifest.d.ts +75 -0
- package/dist/providers/contract/probe-manifest.d.ts.map +1 -0
- package/dist/providers/contract/probe-manifest.js +379 -0
- package/dist/providers/contract/probe-manifest.js.map +1 -0
- package/dist/providers/contract/probe-runner.d.ts +57 -0
- package/dist/providers/contract/probe-runner.d.ts.map +1 -0
- package/dist/providers/contract/probe-runner.js +180 -0
- package/dist/providers/contract/probe-runner.js.map +1 -0
- package/dist/providers/contract/redact.d.ts +29 -0
- package/dist/providers/contract/redact.d.ts.map +1 -0
- package/dist/providers/contract/redact.js +113 -0
- package/dist/providers/contract/redact.js.map +1 -0
- package/dist/providers/core-tools.d.ts +74 -0
- package/dist/providers/core-tools.d.ts.map +1 -0
- package/dist/providers/core-tools.js +127 -0
- package/dist/providers/core-tools.js.map +1 -0
- package/dist/providers/cost-calculator.d.ts +69 -50
- package/dist/providers/cost-calculator.d.ts.map +1 -1
- package/dist/providers/cost-calculator.js +207 -397
- package/dist/providers/cost-calculator.js.map +1 -1
- package/dist/providers/credential-check.d.ts +45 -0
- package/dist/providers/credential-check.d.ts.map +1 -0
- package/dist/providers/credential-check.js +159 -0
- package/dist/providers/credential-check.js.map +1 -0
- package/dist/providers/custom-model-kinds.d.ts +33 -0
- package/dist/providers/custom-model-kinds.d.ts.map +1 -0
- package/dist/providers/custom-model-kinds.js +96 -0
- package/dist/providers/custom-model-kinds.js.map +1 -0
- package/dist/providers/custom-openai-provider.d.ts +81 -0
- package/dist/providers/custom-openai-provider.d.ts.map +1 -0
- package/dist/providers/custom-openai-provider.js +182 -0
- package/dist/providers/custom-openai-provider.js.map +1 -0
- package/dist/providers/custom-provider-registry.d.ts +19 -0
- package/dist/providers/custom-provider-registry.d.ts.map +1 -0
- package/dist/providers/custom-provider-registry.js +52 -0
- package/dist/providers/custom-provider-registry.js.map +1 -0
- package/dist/providers/deepseek-provider.d.ts +8 -14
- package/dist/providers/deepseek-provider.d.ts.map +1 -1
- package/dist/providers/deepseek-provider.js +6 -35
- package/dist/providers/deepseek-provider.js.map +1 -1
- package/dist/providers/defaults.d.ts +12 -0
- package/dist/providers/defaults.d.ts.map +1 -0
- package/dist/providers/defaults.js +12 -0
- package/dist/providers/defaults.js.map +1 -0
- package/dist/providers/elevenlabs-provider.d.ts +49 -0
- package/dist/providers/elevenlabs-provider.d.ts.map +1 -0
- package/dist/providers/elevenlabs-provider.js +142 -0
- package/dist/providers/elevenlabs-provider.js.map +1 -0
- package/dist/providers/entity-references.d.ts +31 -0
- package/dist/providers/entity-references.d.ts.map +1 -0
- package/dist/providers/entity-references.js +113 -0
- package/dist/providers/entity-references.js.map +1 -0
- package/dist/providers/evolink-provider.d.ts +38 -0
- package/dist/providers/evolink-provider.d.ts.map +1 -0
- package/dist/providers/evolink-provider.js +304 -0
- package/dist/providers/evolink-provider.js.map +1 -0
- package/dist/providers/fake-provider.d.ts +72 -1
- package/dist/providers/fake-provider.d.ts.map +1 -1
- package/dist/providers/fake-provider.js +203 -1
- package/dist/providers/fake-provider.js.map +1 -1
- package/dist/providers/fal-generations.d.ts +106 -0
- package/dist/providers/fal-generations.d.ts.map +1 -0
- package/dist/providers/fal-generations.js +286 -0
- package/dist/providers/fal-generations.js.map +1 -0
- package/dist/providers/fal-provider.d.ts +171 -7
- package/dist/providers/fal-provider.d.ts.map +1 -1
- package/dist/providers/fal-provider.js +1369 -64
- package/dist/providers/fal-provider.js.map +1 -1
- package/dist/providers/fal-queue.d.ts +47 -0
- package/dist/providers/fal-queue.d.ts.map +1 -0
- package/dist/providers/fal-queue.js +231 -0
- package/dist/providers/fal-queue.js.map +1 -0
- package/dist/providers/gemini-provider.d.ts +148 -8
- package/dist/providers/gemini-provider.d.ts.map +1 -1
- package/dist/providers/gemini-provider.js +1500 -316
- package/dist/providers/gemini-provider.js.map +1 -1
- package/dist/providers/gmi-provider.d.ts +21 -0
- package/dist/providers/gmi-provider.d.ts.map +1 -0
- package/dist/providers/gmi-provider.js +34 -0
- package/dist/providers/gmi-provider.js.map +1 -0
- package/dist/providers/gpt-image-size.d.ts +3 -0
- package/dist/providers/gpt-image-size.d.ts.map +1 -0
- package/dist/providers/gpt-image-size.js +37 -0
- package/dist/providers/gpt-image-size.js.map +1 -0
- package/dist/providers/groq-provider.d.ts +9 -12
- package/dist/providers/groq-provider.d.ts.map +1 -1
- package/dist/providers/groq-provider.js +19 -33
- package/dist/providers/groq-provider.js.map +1 -1
- package/dist/providers/groq-request.d.ts +38 -0
- package/dist/providers/groq-request.d.ts.map +1 -0
- package/dist/providers/groq-request.js +138 -0
- package/dist/providers/groq-request.js.map +1 -0
- package/dist/providers/higgsfield-provider.d.ts +30 -0
- package/dist/providers/higgsfield-provider.d.ts.map +1 -0
- package/dist/providers/higgsfield-provider.js +131 -0
- package/dist/providers/higgsfield-provider.js.map +1 -0
- package/dist/providers/higgsfield-transport.d.ts +106 -0
- package/dist/providers/higgsfield-transport.d.ts.map +1 -0
- package/dist/providers/higgsfield-transport.js +182 -0
- package/dist/providers/higgsfield-transport.js.map +1 -0
- package/dist/providers/http-transport.d.ts +74 -0
- package/dist/providers/http-transport.d.ts.map +1 -0
- package/dist/providers/http-transport.js +152 -0
- package/dist/providers/http-transport.js.map +1 -0
- package/dist/providers/huggingface-provider.d.ts +71 -3
- package/dist/providers/huggingface-provider.d.ts.map +1 -1
- package/dist/providers/huggingface-provider.js +230 -34
- package/dist/providers/huggingface-provider.js.map +1 -1
- package/dist/providers/image-mime.d.ts +39 -0
- package/dist/providers/image-mime.d.ts.map +1 -0
- package/dist/providers/image-mime.js +111 -0
- package/dist/providers/image-mime.js.map +1 -0
- package/dist/providers/image-ref.d.ts +21 -0
- package/dist/providers/image-ref.d.ts.map +1 -0
- package/dist/providers/image-ref.js +44 -0
- package/dist/providers/image-ref.js.map +1 -0
- package/dist/providers/index.d.ts +84 -8
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +239 -56
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/jina-provider.d.ts +10 -2
- package/dist/providers/jina-provider.d.ts.map +1 -1
- package/dist/providers/jina-provider.js +16 -7
- package/dist/providers/jina-provider.js.map +1 -1
- package/dist/providers/kie-provider.d.ts +170 -9
- package/dist/providers/kie-provider.d.ts.map +1 -1
- package/dist/providers/kie-provider.js +1176 -228
- package/dist/providers/kie-provider.js.map +1 -1
- package/dist/providers/kie-webhook-registry.d.ts +28 -0
- package/dist/providers/kie-webhook-registry.d.ts.map +1 -0
- package/dist/providers/kie-webhook-registry.js +91 -0
- package/dist/providers/kie-webhook-registry.js.map +1 -0
- package/dist/providers/llama-provider.d.ts +21 -37
- package/dist/providers/llama-provider.d.ts.map +1 -1
- package/dist/providers/llama-provider.js +43 -354
- package/dist/providers/llama-provider.js.map +1 -1
- package/dist/providers/lmstudio-provider.d.ts +4 -7
- package/dist/providers/lmstudio-provider.d.ts.map +1 -1
- package/dist/providers/lmstudio-provider.js +24 -15
- package/dist/providers/lmstudio-provider.js.map +1 -1
- package/dist/providers/manifest-models.d.ts +341 -1
- package/dist/providers/manifest-models.d.ts.map +1 -1
- package/dist/providers/manifest-models.js +1106 -22
- package/dist/providers/manifest-models.js.map +1 -1
- package/dist/providers/media-mime.d.ts +14 -0
- package/dist/providers/media-mime.d.ts.map +1 -0
- package/dist/providers/media-mime.js +35 -0
- package/dist/providers/media-mime.js.map +1 -0
- package/dist/providers/meshy-provider.d.ts +14 -1
- package/dist/providers/meshy-provider.d.ts.map +1 -1
- package/dist/providers/meshy-provider.js +76 -46
- package/dist/providers/meshy-provider.js.map +1 -1
- package/dist/providers/meta-provider.d.ts +22 -0
- package/dist/providers/meta-provider.d.ts.map +1 -0
- package/dist/providers/meta-provider.js +54 -0
- package/dist/providers/meta-provider.js.map +1 -0
- package/dist/providers/minimax-provider.d.ts +25 -18
- package/dist/providers/minimax-provider.d.ts.map +1 -1
- package/dist/providers/minimax-provider.js +211 -72
- package/dist/providers/minimax-provider.js.map +1 -1
- package/dist/providers/mistral-provider.d.ts +6 -12
- package/dist/providers/mistral-provider.d.ts.map +1 -1
- package/dist/providers/mistral-provider.js +10 -34
- package/dist/providers/mistral-provider.js.map +1 -1
- package/dist/providers/moonshot-provider.d.ts +11 -15
- package/dist/providers/moonshot-provider.d.ts.map +1 -1
- package/dist/providers/moonshot-provider.js +33 -23
- package/dist/providers/moonshot-provider.js.map +1 -1
- package/dist/providers/node-llama-cpp-provider.d.ts +98 -0
- package/dist/providers/node-llama-cpp-provider.d.ts.map +1 -0
- package/dist/providers/node-llama-cpp-provider.js +479 -0
- package/dist/providers/node-llama-cpp-provider.js.map +1 -0
- package/dist/providers/nodetool-provider.d.ts +49 -0
- package/dist/providers/nodetool-provider.d.ts.map +1 -0
- package/dist/providers/nodetool-provider.js +224 -0
- package/dist/providers/nodetool-provider.js.map +1 -0
- package/dist/providers/oauth/browser-launcher.d.ts +23 -0
- package/dist/providers/oauth/browser-launcher.d.ts.map +1 -0
- package/dist/providers/oauth/browser-launcher.js +45 -0
- package/dist/providers/oauth/browser-launcher.js.map +1 -0
- package/dist/providers/oauth/claude-code-credentials.d.ts +74 -0
- package/dist/providers/oauth/claude-code-credentials.d.ts.map +1 -0
- package/dist/providers/oauth/claude-code-credentials.js +133 -0
- package/dist/providers/oauth/claude-code-credentials.js.map +1 -0
- package/dist/providers/oauth/claude-code-login.d.ts +124 -0
- package/dist/providers/oauth/claude-code-login.d.ts.map +1 -0
- package/dist/providers/oauth/claude-code-login.js +230 -0
- package/dist/providers/oauth/claude-code-login.js.map +1 -0
- package/dist/providers/oauth/claude-code-oauth-client.d.ts +111 -0
- package/dist/providers/oauth/claude-code-oauth-client.d.ts.map +1 -0
- package/dist/providers/oauth/claude-code-oauth-client.js +207 -0
- package/dist/providers/oauth/claude-code-oauth-client.js.map +1 -0
- package/dist/providers/oauth/errors.d.ts +54 -0
- package/dist/providers/oauth/errors.d.ts.map +1 -0
- package/dist/providers/oauth/errors.js +79 -0
- package/dist/providers/oauth/errors.js.map +1 -0
- package/dist/providers/oauth/index.d.ts +105 -0
- package/dist/providers/oauth/index.d.ts.map +1 -0
- package/dist/providers/oauth/index.js +167 -0
- package/dist/providers/oauth/index.js.map +1 -0
- package/dist/providers/oauth/jwt-claims.d.ts +23 -0
- package/dist/providers/oauth/jwt-claims.d.ts.map +1 -0
- package/dist/providers/oauth/jwt-claims.js +67 -0
- package/dist/providers/oauth/jwt-claims.js.map +1 -0
- package/dist/providers/oauth/local-callback-server.d.ts +60 -0
- package/dist/providers/oauth/local-callback-server.d.ts.map +1 -0
- package/dist/providers/oauth/local-callback-server.js +148 -0
- package/dist/providers/oauth/local-callback-server.js.map +1 -0
- package/dist/providers/oauth/oauth-client.d.ts +55 -0
- package/dist/providers/oauth/oauth-client.d.ts.map +1 -0
- package/dist/providers/oauth/oauth-client.js +161 -0
- package/dist/providers/oauth/oauth-client.js.map +1 -0
- package/dist/providers/oauth/openai-oauth-provider.d.ts +129 -0
- package/dist/providers/oauth/openai-oauth-provider.d.ts.map +1 -0
- package/dist/providers/oauth/openai-oauth-provider.js +265 -0
- package/dist/providers/oauth/openai-oauth-provider.js.map +1 -0
- package/dist/providers/oauth/pkce-helper.d.ts +43 -0
- package/dist/providers/oauth/pkce-helper.d.ts.map +1 -0
- package/dist/providers/oauth/pkce-helper.js +57 -0
- package/dist/providers/oauth/pkce-helper.js.map +1 -0
- package/dist/providers/oauth/redaction.d.ts +22 -0
- package/dist/providers/oauth/redaction.d.ts.map +1 -0
- package/dist/providers/oauth/redaction.js +59 -0
- package/dist/providers/oauth/redaction.js.map +1 -0
- package/dist/providers/oauth/secure-credential-store.d.ts +67 -0
- package/dist/providers/oauth/secure-credential-store.d.ts.map +1 -0
- package/dist/providers/oauth/secure-credential-store.js +73 -0
- package/dist/providers/oauth/secure-credential-store.js.map +1 -0
- package/dist/providers/oauth/token-store.d.ts +53 -0
- package/dist/providers/oauth/token-store.d.ts.map +1 -0
- package/dist/providers/oauth/token-store.js +78 -0
- package/dist/providers/oauth/token-store.js.map +1 -0
- package/dist/providers/oauth/types.d.ts +64 -0
- package/dist/providers/oauth/types.d.ts.map +1 -0
- package/dist/providers/oauth/types.js +12 -0
- package/dist/providers/oauth/types.js.map +1 -0
- package/dist/providers/object-tracking.d.ts +47 -0
- package/dist/providers/object-tracking.d.ts.map +1 -0
- package/dist/providers/object-tracking.js +46 -0
- package/dist/providers/object-tracking.js.map +1 -0
- package/dist/providers/offline-model-index.d.ts +20 -0
- package/dist/providers/offline-model-index.d.ts.map +1 -0
- package/dist/providers/offline-model-index.js +112 -0
- package/dist/providers/offline-model-index.js.map +1 -0
- package/dist/providers/ollama-provider.d.ts +28 -1
- package/dist/providers/ollama-provider.d.ts.map +1 -1
- package/dist/providers/ollama-provider.js +193 -43
- package/dist/providers/ollama-provider.js.map +1 -1
- package/dist/providers/openai-compat/client.d.ts +57 -0
- package/dist/providers/openai-compat/client.d.ts.map +1 -0
- package/dist/providers/openai-compat/client.js +157 -0
- package/dist/providers/openai-compat/client.js.map +1 -0
- package/dist/providers/openai-compat/decode.d.ts +36 -0
- package/dist/providers/openai-compat/decode.d.ts.map +1 -0
- package/dist/providers/openai-compat/decode.js +55 -0
- package/dist/providers/openai-compat/decode.js.map +1 -0
- package/dist/providers/openai-compat/errors.d.ts +54 -0
- package/dist/providers/openai-compat/errors.d.ts.map +1 -0
- package/dist/providers/openai-compat/errors.js +144 -0
- package/dist/providers/openai-compat/errors.js.map +1 -0
- package/dist/providers/openai-compat/index.d.ts +8 -0
- package/dist/providers/openai-compat/index.d.ts.map +1 -0
- package/dist/providers/openai-compat/index.js +5 -0
- package/dist/providers/openai-compat/index.js.map +1 -0
- package/dist/providers/openai-compat/sse.d.ts +14 -0
- package/dist/providers/openai-compat/sse.d.ts.map +1 -0
- package/dist/providers/openai-compat/sse.js +69 -0
- package/dist/providers/openai-compat/sse.js.map +1 -0
- package/dist/providers/openai-compat/types.d.ts +75 -0
- package/dist/providers/openai-compat/types.d.ts.map +1 -0
- package/dist/providers/openai-compat/types.js +9 -0
- package/dist/providers/openai-compat/types.js.map +1 -0
- package/dist/providers/openai-compat-provider.d.ts +90 -0
- package/dist/providers/openai-compat-provider.d.ts.map +1 -0
- package/dist/providers/openai-compat-provider.js +282 -0
- package/dist/providers/openai-compat-provider.js.map +1 -0
- package/dist/providers/openai-provider.d.ts +89 -26
- package/dist/providers/openai-provider.d.ts.map +1 -1
- package/dist/providers/openai-provider.js +990 -105
- package/dist/providers/openai-provider.js.map +1 -1
- package/dist/providers/openrouter-provider.d.ts +6 -12
- package/dist/providers/openrouter-provider.d.ts.map +1 -1
- package/dist/providers/openrouter-provider.js +24 -53
- package/dist/providers/openrouter-provider.js.map +1 -1
- package/dist/providers/provider-call-failure.d.ts +39 -0
- package/dist/providers/provider-call-failure.d.ts.map +1 -0
- package/dist/providers/provider-call-failure.js +132 -0
- package/dist/providers/provider-call-failure.js.map +1 -0
- package/dist/providers/provider-error.d.ts +59 -0
- package/dist/providers/provider-error.d.ts.map +1 -0
- package/dist/providers/provider-error.js +165 -0
- package/dist/providers/provider-error.js.map +1 -0
- package/dist/providers/provider-generations.d.ts +99 -0
- package/dist/providers/provider-generations.d.ts.map +1 -0
- package/dist/providers/provider-generations.js +71 -0
- package/dist/providers/provider-generations.js.map +1 -0
- package/dist/providers/provider-queue.d.ts +62 -0
- package/dist/providers/provider-queue.d.ts.map +1 -0
- package/dist/providers/provider-queue.js +28 -0
- package/dist/providers/provider-queue.js.map +1 -0
- package/dist/providers/provider-registry.d.ts +33 -14
- package/dist/providers/provider-registry.d.ts.map +1 -1
- package/dist/providers/provider-registry.js +85 -68
- package/dist/providers/provider-registry.js.map +1 -1
- package/dist/providers/provider-request-log.d.ts +53 -0
- package/dist/providers/provider-request-log.d.ts.map +1 -0
- package/dist/providers/provider-request-log.js +157 -0
- package/dist/providers/provider-request-log.js.map +1 -0
- package/dist/providers/provider-session.d.ts +3 -0
- package/dist/providers/provider-session.d.ts.map +1 -0
- package/dist/providers/provider-session.js +10 -0
- package/dist/providers/provider-session.js.map +1 -0
- package/dist/providers/provider-transport.d.ts +11 -0
- package/dist/providers/provider-transport.d.ts.map +1 -0
- package/dist/providers/provider-transport.js +11 -0
- package/dist/providers/provider-transport.js.map +1 -0
- package/dist/providers/python-provider.d.ts +20 -12
- package/dist/providers/python-provider.d.ts.map +1 -1
- package/dist/providers/python-provider.js +185 -25
- package/dist/providers/python-provider.js.map +1 -1
- package/dist/providers/replicate-provider.d.ts +89 -7
- package/dist/providers/replicate-provider.d.ts.map +1 -1
- package/dist/providers/replicate-provider.js +801 -65
- package/dist/providers/replicate-provider.js.map +1 -1
- package/dist/providers/replicate-retry.d.ts +30 -0
- package/dist/providers/replicate-retry.d.ts.map +1 -0
- package/dist/providers/replicate-retry.js +97 -0
- package/dist/providers/replicate-retry.js.map +1 -0
- package/dist/providers/responses-api.d.ts +27 -0
- package/dist/providers/responses-api.d.ts.map +1 -0
- package/dist/providers/responses-api.js +297 -0
- package/dist/providers/responses-api.js.map +1 -0
- package/dist/providers/reve-provider.d.ts +45 -0
- package/dist/providers/reve-provider.d.ts.map +1 -0
- package/dist/providers/reve-provider.js +159 -0
- package/dist/providers/reve-provider.js.map +1 -0
- package/dist/providers/rodin-provider.d.ts +23 -1
- package/dist/providers/rodin-provider.d.ts.map +1 -1
- package/dist/providers/rodin-provider.js +89 -51
- package/dist/providers/rodin-provider.js.map +1 -1
- package/dist/providers/safe-url.d.ts +70 -0
- package/dist/providers/safe-url.d.ts.map +1 -0
- package/dist/providers/safe-url.js +277 -0
- package/dist/providers/safe-url.js.map +1 -0
- package/dist/providers/scripted-provider.d.ts +9 -0
- package/dist/providers/scripted-provider.d.ts.map +1 -1
- package/dist/providers/scripted-provider.js +86 -10
- package/dist/providers/scripted-provider.js.map +1 -1
- package/dist/providers/structured-output.d.ts +42 -0
- package/dist/providers/structured-output.d.ts.map +1 -0
- package/dist/providers/structured-output.js +83 -0
- package/dist/providers/structured-output.js.map +1 -0
- package/dist/providers/together-provider.d.ts +19 -16
- package/dist/providers/together-provider.d.ts.map +1 -1
- package/dist/providers/together-provider.js +103 -225
- package/dist/providers/together-provider.js.map +1 -1
- package/dist/providers/topaz-provider.d.ts +44 -0
- package/dist/providers/topaz-provider.d.ts.map +1 -0
- package/dist/providers/topaz-provider.js +239 -0
- package/dist/providers/topaz-provider.js.map +1 -0
- package/dist/providers/types.d.ts +603 -4
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/types.js +81 -1
- package/dist/providers/types.js.map +1 -1
- package/dist/providers/useapi-provider.d.ts +27 -0
- package/dist/providers/useapi-provider.d.ts.map +1 -0
- package/dist/providers/useapi-provider.js +266 -0
- package/dist/providers/useapi-provider.js.map +1 -0
- package/dist/providers/video-duration.d.ts +6 -0
- package/dist/providers/video-duration.d.ts.map +1 -0
- package/dist/providers/video-duration.js +63 -0
- package/dist/providers/video-duration.js.map +1 -0
- package/dist/providers/video-frame-fallback.d.ts +39 -0
- package/dist/providers/video-frame-fallback.d.ts.map +1 -0
- package/dist/providers/video-frame-fallback.js +155 -0
- package/dist/providers/video-frame-fallback.js.map +1 -0
- package/dist/providers/video-frames.d.ts +61 -0
- package/dist/providers/video-frames.d.ts.map +1 -0
- package/dist/providers/video-frames.js +208 -0
- package/dist/providers/video-frames.js.map +1 -0
- package/dist/providers/video-mime.d.ts +14 -0
- package/dist/providers/video-mime.d.ts.map +1 -0
- package/dist/providers/video-mime.js +44 -0
- package/dist/providers/video-mime.js.map +1 -0
- package/dist/providers/video-to-audio.d.ts +34 -0
- package/dist/providers/video-to-audio.d.ts.map +1 -0
- package/dist/providers/video-to-audio.js +62 -0
- package/dist/providers/video-to-audio.js.map +1 -0
- package/dist/providers/vllm-provider.d.ts +22 -8
- package/dist/providers/vllm-provider.d.ts.map +1 -1
- package/dist/providers/vllm-provider.js +48 -23
- package/dist/providers/vllm-provider.js.map +1 -1
- package/dist/providers/voyage-provider.d.ts +10 -2
- package/dist/providers/voyage-provider.d.ts.map +1 -1
- package/dist/providers/voyage-provider.js +16 -7
- package/dist/providers/voyage-provider.js.map +1 -1
- package/dist/providers/xai-provider.d.ts +54 -13
- package/dist/providers/xai-provider.d.ts.map +1 -1
- package/dist/providers/xai-provider.js +299 -22
- package/dist/providers/xai-provider.js.map +1 -1
- package/dist/python-bridge-base.d.ts +358 -0
- package/dist/python-bridge-base.d.ts.map +1 -0
- package/dist/python-bridge-base.js +1557 -0
- package/dist/python-bridge-base.js.map +1 -0
- package/dist/python-bridge-codec.d.ts +28 -0
- package/dist/python-bridge-codec.d.ts.map +1 -0
- package/dist/python-bridge-codec.js +39 -0
- package/dist/python-bridge-codec.js.map +1 -0
- package/dist/python-bridge-factory.d.ts +52 -0
- package/dist/python-bridge-factory.d.ts.map +1 -0
- package/dist/python-bridge-factory.js +69 -0
- package/dist/python-bridge-factory.js.map +1 -0
- package/dist/python-bridge-framing.d.ts +68 -0
- package/dist/python-bridge-framing.d.ts.map +1 -0
- package/dist/python-bridge-framing.js +91 -0
- package/dist/python-bridge-framing.js.map +1 -0
- package/dist/python-bridge-types.d.ts +545 -2
- package/dist/python-bridge-types.d.ts.map +1 -1
- package/dist/python-bridge-types.js +49 -1
- package/dist/python-bridge-types.js.map +1 -1
- package/dist/python-graph-resolver.d.ts +57 -0
- package/dist/python-graph-resolver.d.ts.map +1 -0
- package/dist/python-graph-resolver.js +79 -0
- package/dist/python-graph-resolver.js.map +1 -0
- package/dist/python-node-executor.d.ts +36 -4
- package/dist/python-node-executor.d.ts.map +1 -1
- package/dist/python-node-executor.js +177 -86
- package/dist/python-node-executor.js.map +1 -1
- package/dist/python-stdio-bridge.d.ts +18 -37
- package/dist/python-stdio-bridge.d.ts.map +1 -1
- package/dist/python-stdio-bridge.js +148 -475
- package/dist/python-stdio-bridge.js.map +1 -1
- package/dist/python-websocket-bridge.d.ts +140 -0
- package/dist/python-websocket-bridge.d.ts.map +1 -0
- package/dist/python-websocket-bridge.js +561 -0
- package/dist/python-websocket-bridge.js.map +1 -0
- package/dist/python-worker-stderr.d.ts +4 -0
- package/dist/python-worker-stderr.d.ts.map +1 -0
- package/dist/python-worker-stderr.js +24 -0
- package/dist/python-worker-stderr.js.map +1 -0
- package/dist/recommended-models.d.ts +2 -2
- package/dist/recommended-models.d.ts.map +1 -1
- package/dist/recommended-models.js +24 -4
- package/dist/recommended-models.js.map +1 -1
- package/dist/recoverable-node-error.d.ts +31 -0
- package/dist/recoverable-node-error.d.ts.map +1 -0
- package/dist/recoverable-node-error.js +37 -0
- package/dist/recoverable-node-error.js.map +1 -0
- package/dist/redact-params.d.ts +13 -0
- package/dist/redact-params.d.ts.map +1 -0
- package/dist/redact-params.js +57 -0
- package/dist/redact-params.js.map +1 -0
- package/dist/sandbox-module-catalog.d.ts +43 -0
- package/dist/sandbox-module-catalog.d.ts.map +1 -0
- package/dist/sandbox-module-catalog.js +25 -0
- package/dist/sandbox-module-catalog.js.map +1 -0
- package/dist/storage-workspace.d.ts +59 -0
- package/dist/storage-workspace.d.ts.map +1 -0
- package/dist/storage-workspace.js +426 -0
- package/dist/storage-workspace.js.map +1 -0
- package/dist/swappable-python-bridge.d.ts +83 -0
- package/dist/swappable-python-bridge.d.ts.map +1 -0
- package/dist/swappable-python-bridge.js +246 -0
- package/dist/swappable-python-bridge.js.map +1 -0
- package/dist/telemetry.d.ts +7 -0
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +23 -0
- package/dist/telemetry.js.map +1 -1
- package/dist/testing.d.ts +81 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +130 -0
- package/dist/testing.js.map +1 -0
- package/dist/token-counter.d.ts +30 -0
- package/dist/token-counter.d.ts.map +1 -0
- package/dist/token-counter.js +156 -0
- package/dist/token-counter.js.map +1 -0
- package/dist/trace-exporters.d.ts +10 -0
- package/dist/trace-exporters.d.ts.map +1 -1
- package/dist/trace-exporters.js +59 -20
- package/dist/trace-exporters.js.map +1 -1
- package/dist/tracing-helpers.d.ts +45 -4
- package/dist/tracing-helpers.d.ts.map +1 -1
- package/dist/tracing-helpers.js +62 -19
- package/dist/tracing-helpers.js.map +1 -1
- package/dist/turn-budget.d.ts +278 -0
- package/dist/turn-budget.d.ts.map +1 -0
- package/dist/turn-budget.js +365 -0
- package/dist/turn-budget.js.map +1 -0
- package/dist/variable-channel.d.ts +48 -0
- package/dist/variable-channel.d.ts.map +1 -0
- package/dist/variable-channel.js +110 -0
- package/dist/variable-channel.js.map +1 -0
- package/dist/workspace.d.ts +119 -0
- package/dist/workspace.d.ts.map +1 -0
- package/dist/workspace.js +112 -0
- package/dist/workspace.js.map +1 -0
- package/package.json +107 -19
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"python-bridge-base.js","sourceRoot":"","sources":["../src/python-bridge-base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEzE,sEAAsE;AACtE,2EAA2E;AAC3E,yEAAyE;AACzE,2DAA2D;AAC3D,MAAM,UAAU,GACd,kBAAkB,CAA+B,aAAa,CAAC,CAAC;AAClE,MAAM,UAAU,GACd,kBAAkB,CAA+B,aAAa,CAAC,CAAC;AAElE,SAAS,SAAS,CAAC,GAAW;IAC5B,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,gDAAgD,CAAC,CAAC;AAC1E,CAAC;AACD,MAAM,UAAU,GACd,UAAU,EAAE,UAAU,IAAI,CAAC,GAAW,EAAE,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC,CAAC;AAChF,uEAAuE;AACvE,wEAAwE;AACxE,iDAAiD;AACjD,MAAM,eAAe;IACnB,EAAE,CAAC,CAAS,EAAE,EAAgC;QAC5C,SAAS,CAAC,0BAA0B,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,CAAC,CAAS,EAAE,GAAG,EAAa;QAC9B,SAAS,CAAC,0BAA0B,CAAC,CAAC;IACxC,CAAC;IACD,kBAAkB;QAChB,SAAS,CAAC,0BAA0B,CAAC,CAAC;IACxC,CAAC;CACF;AACD,6EAA6E;AAC7E,mEAAmE;AACnE,oEAAoE;AACpE,uDAAuD;AACvD,MAAM,YAAY,GAAG,CAAC,UAAU,EAAE,YAAY;IAC5C,eAAe,CAAyD,CAAC;AAE3E,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,yBAAyB,EAC1B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,MAAM,GAAG,GAAG,YAAY,CAAC,qCAAqC,CAAC,CAAC;AAEhE;;;;;;;;;;;;;;;GAeG;AACH,SAAS,0BAA0B;IACjC,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC,iCAAiC,CAAC,EAAE,IAAI,EAAE,CAAC;IAC7E,IAAI,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACzD,IAAI,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3D,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAC7B,OAAO,GAAG,CAAC,UAAU,CAAC,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC9D,CAAC;AAkCD,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAsBlC,MAAM,0BAA0B,GAAG,MAAM,CACvC,cAAc,EAAE,CAAC,oCAAoC,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CACzE,CAAC;AACF,MAAM,yBAAyB,GAAG,MAAM,CACtC,cAAc,EAAE,CAAC,mCAAmC,CAAC,IAAI,KAAK,CAC/D,CAAC;AACF,MAAM,gCAAgC,GAAG,MAAM,CAC7C,cAAc,EAAE,CAAC,0CAA0C,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAC9E,CAAC;AACF,MAAM,qBAAqB,GAAG,MAAM,CAClC,cAAc,EAAE,CAAC,uCAAuC,CAAC;IACvD,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CACzB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,OAAgB,gBACpB,SAAQ,YAAY;IAGV,aAAa,GAAyB,EAAE,CAAC;IACzC,WAAW,GAA4B,EAAE,CAAC;IAC1C,aAAa,GAA8B,IAAI,CAAC;IAChD,QAAQ,GAAG,IAAI,GAAG,EAA0B,CAAC;IAC7C,cAAc,GAAG,IAAI,GAAG,EAAgC,CAAC;IACnE;;;;;OAKG;IACO,mBAAmB,GAAG,IAAI,GAAG,EAGpC,CAAC;IACJ;;;;;OAKG;IACO,qBAAqB,GAAG,IAAI,GAAG,EAGtC,CAAC;IACM,QAAQ,CAAsB;IAC9B,UAAU,GAAG,KAAK,CAAC;IACrB,eAAe,GAAyB,IAAI,CAAC;IAErD,YAAY,OAAO,GAAwB,EAAE;QAC3C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACH,IAAI,mBAAmB;QACrB,OAAO,CACL,IAAI,CAAC,QAAQ,CAAC,IAAI;YAClB,IAAI,CAAC,cAAc,CAAC,IAAI;YACxB,IAAI,CAAC,mBAAmB,CAAC,IAAI;YAC7B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAChC,CAAC;IACJ,CAAC;IAaD;;;OAGG;IACO,iBAAiB,KAAU,CAAC;IAEtC,sEAAsE;IAEtE,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAC3C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CACN,uGAAuG,EACvG,GAAG,CACJ,CAAC;QACJ,CAAC;IACH,CAAC;IAED,eAAe;QACb,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CACxC,GAAG,EAAE;gBACH,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC9B,CAAC,EACD,CAAC,GAAG,EAAE,EAAE;gBACN,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;gBAC5B,MAAM,GAAG,CAAC;YACZ,CAAC,CACF,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,uEAAuE;IAE7D,cAAc,CAAC,GAA4B;QACnD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAc,CAAC;QAChC,MAAM,SAAS,GAAG,GAAG,CAAC,UAA2B,CAAC;QAElD,IAAI,0BAA0B,EAAE,EAAE,CAAC;YACjC,MAAM,UAAU,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAC5C,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBACxB,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;gBAC5D,OAAO;YACT,CAAC;QACH,CAAC;QAED,IAAI,IAAI,KAAK,UAAU,IAAI,SAAS,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC7C,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,IAAI,GAAG,GAAG,CAAC,IAIhB,CAAC;gBACF,qEAAqE;gBACrE,oEAAoE;gBACpE,oEAAoE;gBACpE,oEAAoE;gBACpE,sEAAsE;gBACtE,oEAAoE;gBACpE,sEAAsE;gBACtE,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC;oBACnD,CAAC,CAAC,IAAI,CAAC,gBAAgB;oBACvB,CAAC,CAAC,CAAC,CAAC;gBACN,IAAI,aAAa,GAAG,2BAA2B,EAAE,CAAC;oBAChD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBAChC,OAAO,CAAC,MAAM,CACZ,IAAI,KAAK,CACP,uDAAuD,aAAa,IAAI;wBACtE,8CAA8C,2BAA2B,IAAI;wBAC7E,mEAAmE;wBACnE,0DAA0D,yBAAyB,GAAG,CACzF,CACF,CAAC;oBACF,OAAO;gBACT,CAAC;gBACD,IAAI,aAAa,GAAG,uBAAuB,EAAE,CAAC;oBAC5C,8DAA8D;oBAC9D,iDAAiD;oBACjD,IAAI,CAAC,IAAI,CACP,QAAQ,EACR,oCAAoC,aAAa,iBAAiB;wBAChE,eAAe,uBAAuB,sCAAsC,CAC/E,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;gBAChC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;gBAC1C,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,KAAK,QAAQ,IAAI,SAAS,EAAE,CAAC;YAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACrD,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACtC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,IAA+B,CAAC,CAAC;gBACvD,OAAO;YACT,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC7C,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAChC,IAAI,OAAO,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC;oBAChC,OAAO,CAAC,MAAM,CACZ,IAAI,KAAK,CACP,oEAAoE,CACrE,CACF,CAAC;oBACF,OAAO;gBACT,CAAC;gBACD,MAAM,IAAI,GAAG,GAAG,CAAC,IAGhB,CAAC;gBACF,OAAO,CAAC,OAAO,CAAC;oBACd,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,KAAK,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC,EAAE;iBACpE,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,KAAK,OAAO,IAAI,SAAS,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACrD,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACtC,MAAM,IAAI,GAAG,GAAG,CAAC,IAA6C,CAAC;gBAC/D,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAClC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC9C,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACtB,OAAO;YACT,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC7C,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAChC,MAAM,IAAI,GAAG,GAAG,CAAC,IAA6C,CAAC;gBAC/D,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAClC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC9C,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,KAAK,OAAO,IAAI,SAAS,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACrD,IAAI,SAAS,EAAE,CAAC;gBACd,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,IAA+B,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,KAAK,YAAY,IAAI,SAAS,EAAE,CAAC;YAC9C,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,GAAG,CAAC,IAA+B,CAAC,CAAC;QAC1E,CAAC;aAAM,IAAI,IAAI,KAAK,YAAY,IAAI,SAAS,EAAE,CAAC;YAC9C,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,CAAC,IAA+B,CAAC,CAAC;QACxE,CAAC;aAAM,IAAI,IAAI,KAAK,UAAU,IAAI,SAAS,EAAE,CAAC;YAC5C,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,GAAG,CAAC,IAA+B,CAAC,CAAC;QAC3E,CAAC;aAAM,IAAI,IAAI,KAAK,UAAU,IAAI,SAAS,EAAE,CAAC;YAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC7C,IAAI,OAAO,EAAE,UAAU,EAAE,CAAC;gBACxB,MAAM,IAAI,GAAG,GAAG,CAAC,IAA2C,CAAC;gBAC7D,OAAO,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;YACzD,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;aAAM,IAAI,IAAI,KAAK,aAAa,IAAI,SAAS,EAAE,CAAC;YAC/C,sEAAsE;YACtE,yEAAyE;YACzE,wEAAwE;YACxE,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACxD,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,GAAG,CAAC,IAAkB,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,KAAK,eAAe,IAAI,SAAS,EAAE,CAAC;YACjD,uEAAuE;YACvE,qEAAqE;YACrE,wEAAwE;YACxE,gEAAgE;YAChE,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC1D,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,GAAG,CAAC,IAAoB,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,SAAiB,EAAE,OAAe;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAChC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,sEAAsE;QACxE,CAAC;IACH,CAAC;IAEO,kBAAkB,CACxB,SAAiB,EACjB,IAA6B;QAE7B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,OAAO,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ;YAClE,OAAO;QACT,IACE,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;YAC3B,IAAI,GAAG,CAAC;YACR,IAAI,GAAG,qBAAqB,EAC5B,CAAC;YACD,IAAI,CAAC,mBAAmB,CACtB,SAAS,EACT,4CAA4C,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,GAAG,CACzE,CAAC;YACF,OAAO;QACT,CAAC;QACD,OAAO,CAAC,aAAa,KAAK,IAAI,GAAG,EAAE,CAAC;QACpC,OAAO,CAAC,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAG5C,CAAC;QACF,IACE,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;YAC/B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,EAC3C,CAAC;YACD,IAAI,CAAC,mBAAmB,CACtB,SAAS,EACT,yCAAyC,IAAI,GAAG,CACjD,CAAC;YACF,OAAO;QACT,CAAC;QACD,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IACrE,CAAC;IAEO,gBAAgB,CACtB,SAAiB,EACjB,IAA6B;QAE7B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,IACE,CAAC,OAAO;YACR,OAAO,IAAI,KAAK,QAAQ;YACxB,OAAO,MAAM,KAAK,QAAQ;YAC1B,CAAC,CAAC,KAAK,YAAY,UAAU,CAAC;YAE9B,OAAO;QACT,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAClD,IACE,CAAC,QAAQ;YACT,MAAM,KAAK,QAAQ,CAAC,QAAQ;YAC5B,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,EACrC,CAAC;YACD,IAAI,CAAC,mBAAmB,CACtB,SAAS,EACT,mEAAmE,IAAI,GAAG,CAC3E,CAAC;YACF,OAAO;QACT,CAAC;QACD,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,QAAQ,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC;IACpC,CAAC;IAEO,mBAAmB,CACzB,SAAiB,EACjB,IAA6B;QAE7B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtC,IACE,CAAC,OAAO;YACR,OAAO,IAAI,KAAK,QAAQ;YACxB,OAAO,IAAI,KAAK,QAAQ;YACxB,OAAO,cAAc,KAAK,QAAQ;YAElC,OAAO;QACT,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAClD,IACE,CAAC,QAAQ;YACT,IAAI,KAAK,QAAQ,CAAC,IAAI;YACtB,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,EACnC,CAAC;YACD,IAAI,CAAC,mBAAmB,CACtB,SAAS,EACT,iCAAiC,IAAI,GAAG,CACzC,CAAC;YACF,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;QACzB,CAAC;QACD,MAAM,MAAM,GAAG,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;YACzC,IAAI,CAAC,mBAAmB,CACtB,SAAS,EACT,uBAAuB,IAAI,+BAA+B,CAC3D,CAAC;YACF,OAAO;QACT,CAAC;QACD,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACpC,OAAO,CAAC,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAG5C,CAAC;QACF,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACtC,CAAC;IAED;;;;;;;;;;;;;OAaG;IACK,mBAAmB,CACzB,IAAwB,EACxB,SAAwB,EACxB,MAA0B;QAE1B,GAAG,CAAC,IAAI,CACN,gDAAgD,IAAI,IAAI,WAAW,gBACjE,SAAS,IAAI,QACf,MAAM,MAAM,IAAI,0BAA0B,EAAE,CAC7C,CAAC;QACF,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvB,MAAM,GAAG,GAAG,IAAI,KAAK,CACnB,uBAAuB,IAAI,IAAI,WAAW,+BACxC,MAAM,IAAI,0BACZ,EAAE,CACH,CAAC;QAEF,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC3C,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC7C,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAChC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAES,iBAAiB,CAAC,KAAY;QACtC,KAAK,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,KAAK,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC1C,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;QACjC,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;IACrC,CAAC;IAED,sEAAsE;IAE5D,KAAK,CAAC,SAAS;QACvB,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;QAC/B,wEAAwE;QACxE,sEAAsE;QACtE,uEAAuE;QACvE,kEAAkE;QAClE,MAAM,SAAS,GACb,IAAI,CAAC,QAAQ,CAAC,eAAe,IAAI,yBAAyB,CAAC;QAE7D,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,IAAI,KAAiC,CAAC;YACtC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE;gBAC3B,OAAO,EAAE,GAAG,EAAE;oBACZ,IAAI,KAAK;wBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;oBAC/B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBAChC,OAAO,EAAE,CAAC;gBACZ,CAAC;gBACD,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE;oBACd,IAAI,KAAK;wBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;oBAC/B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBAChC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACd,CAAC;aACF,CAAC,CAAC;YACH,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBAClB,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;oBACtB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBAChC,MAAM,CACJ,IAAI,KAAK,CAAC,0CAA0C,SAAS,KAAK,CAAC,CACpE,CAAC;gBACJ,CAAC,EAAE,SAAS,CAAC,CAAC;YAChB,CAAC;YACD,IAAI,CAAC;gBACH,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACpE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,KAAK;oBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC/B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAChC,MAAM,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,sEAAsE;IAEtE;;;;;;;;;;OAUG;IACO,gBAAgB,CAAC,QAAqC;QAC9D,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QACzB,MAAM,OAAO,GAA4B,EAAE,CAAC;QAC5C,IAAI,QAAQ,CAAC,MAAM;YAAE,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC;QACvD,IAAI,QAAQ,CAAC,KAAK;YAAE,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC;QACpD,IAAI,QAAQ,CAAC,UAAU;YAAE,OAAO,CAAC,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC;QACnE,IAAI,QAAQ,CAAC,MAAM;YAAE,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC;QACvD,IAAI,QAAQ,CAAC,cAAc,IAAI,IAAI,EAAE,CAAC;YACpC,OAAO,CAAC,gBAAgB,GAAG,QAAQ,CAAC,cAAc,CAAC;QACrD,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,OAAO,CACX,QAAgB,EAChB,MAA+B,EAC/B,OAA+B,EAC/B,KAAwB,EACxB,UAA2C,EAC3C,QAA0B;QAE1B,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;QAC/B,MAAM,SAAS,GACb,IAAI,CAAC,QAAQ,CAAC,gBAAgB,IAAI,0BAA0B,CAAC;QAE/D,GAAG,CAAC,KAAK,CAAC,kCAAkC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;QAEvE,MAAM,WAAW,GAA4B;YAC3C,SAAS,EAAE,QAAQ;YACnB,MAAM;YACN,OAAO;YACP,KAAK;YACL,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;SACnC,CAAC;QACF,IACE,IAAI,CAAC,aAAa,EAAE,gBAAgB,IAAI,IAAI;YAC5C,IAAI,CAAC,aAAa,CAAC,gBAAgB,IAAI,CAAC,EACxC,CAAC;YACD,WAAW,CAAC,eAAe,CAAC,GAAG,YAAY,CAAC;QAC9C,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,OAAO,CAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACpE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;YAC9D,IAAI,CAAC;gBACH,IAAI,CAAC,KAAK,CAAC;oBACT,IAAI,EAAE,SAAS;oBACf,UAAU,EAAE,SAAS;oBACrB,IAAI,EAAE,WAAW;iBAClB,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAChC,MAAM,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YACnB,OAAO,cAAc,CAAC;QACxB,CAAC;QAED,IAAI,KAAiC,CAAC;QACtC,MAAM,cAAc,GAAG,IAAI,OAAO,CAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;YAC9D,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBACtB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBAClC,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAChC,IAAI,CAAC;oBACH,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACzB,CAAC;gBAAC,MAAM,CAAC;oBACP,qDAAqD;gBACvD,CAAC;gBACD,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;gBAClD,MAAM,CACJ,IAAI,KAAK,CACP,gBAAgB,QAAQ,qBAAqB,SAAS,4BAA4B;oBAChF,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAmB,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACtD,CACF,CAAC;YACJ,CAAC,EAAE,SAAS,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC;QAC9D,CAAC;gBAAS,CAAC;YACT,IAAI,KAAK,EAAE,CAAC;gBACV,YAAY,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,CAAC,aAAa,CAClB,QAAgB,EAChB,MAA+B,EAC/B,OAA+B,EAC/B,KAAwB,EACxB,UAA2C,EAC3C,QAA0B;QAE1B,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAoB,EAAE,CAAC;QACnC,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,IAAI,KAAK,GAAiB,IAAI,CAAC;QAC/B,IAAI,WAAW,GAAyB,IAAI,CAAC;QAC7C,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,WAAW,GAAwB,IAAI,CAAC;QAE5C,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE;gBAC3B,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS;gBACxB,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS;gBACvB,UAAU;aACX,CAAC,CAAC;QACL,CAAC;QAED,MAAM,OAAO,GAAG,CAAC,KAA8B,EAAE,EAAE;YACjD,MAAM,CAAC,IAAI,CAAC;gBACV,OAAO,EAAG,KAAK,CAAC,OAAmC,IAAI,EAAE;gBACzD,KAAK,EAAG,KAAK,CAAC,KAAoC,IAAI,EAAE;aACzD,CAAC,CAAC;YACH,IAAI,WAAW,EAAE,CAAC;gBAChB,WAAW,EAAE,CAAC;gBACd,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,aAAa,GAAG,IAAI,OAAO,CAC/B,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAClB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QACnE,CAAC,CACF,CAAC;QAEF,aAAa;aACV,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,WAAW,GAAG;gBACZ,OAAO,EAAG,MAAM,CAAC,OAAmC,IAAI,EAAE;gBAC1D,KAAK,EAAG,MAAM,CAAC,KAAoC,IAAI,EAAE;aAC1D,CAAC;YACF,IAAI,GAAG,IAAI,CAAC;YACZ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAChC,IAAI,WAAW,EAAE,CAAC;gBAChB,WAAW,EAAE,CAAC;gBACd,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;QACH,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,KAAK,GAAG,GAAG,CAAC;YACZ,IAAI,GAAG,IAAI,CAAC;YACZ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAChC,IAAI,WAAW,EAAE,CAAC;gBAChB,WAAW,EAAE,CAAC;gBACd,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;QACH,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,CAAC;gBACT,IAAI,EAAE,gBAAgB;gBACtB,UAAU,EAAE,SAAS;gBACrB,IAAI,EAAE;oBACJ,SAAS,EAAE,QAAQ;oBACnB,MAAM;oBACN,OAAO;oBACP,KAAK;oBACL,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;iBACnC;aACF,CAAC,CAAC;YAEH,OAAO,IAAI,EAAE,CAAC;gBACZ,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACzB,YAAY,IAAI,CAAC,CAAC;oBAClB,MAAM,MAAM,CAAC,KAAK,EAAG,CAAC;gBACxB,CAAC;gBACD,IAAI,IAAI;oBAAE,MAAM;gBAChB,IAAI,KAAK;oBAAE,MAAM,KAAK,CAAC;gBACvB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;oBAClC,WAAW,GAAG,OAAO,CAAC;gBACxB,CAAC,CAAC,CAAC;YACL,CAAC;YACD,IAAI,KAAK;gBAAE,MAAM,KAAK,CAAC;YACvB,IAAI,YAAY,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC;gBACtC,MAAM,WAAW,CAAC;YACpB,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,yEAAyE;YACzE,yEAAyE;YACzE,qEAAqE;YACrE,8DAA8D;YAC9D,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAChC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACtC,IAAI,CAAC;oBACH,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACzB,CAAC;gBAAC,MAAM,CAAC;oBACP,qDAAqD;gBACvD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,CAAC,SAAiB;QACtB,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAC9B,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAClB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE;gBACjC,OAAO;gBACP,MAAM;gBACN,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;aAClB,CAAC,CAAC;YACH,IAAI,CAAC;gBACH,IAAI,CAAC,KAAK,CAAC;oBACT,IAAI,EAAE,eAAe;oBACrB,UAAU,EAAE,SAAS;oBACrB,IAAI,EAAE,EAAE;iBACT,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACtC,MAAM,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC,CACF,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACtD,0EAA0E;QAC1E,sEAAsE;QACtE,IAAI,CAAC,WAAW;YACd,MAAM,CAAC,aAAa,CAAC,IAAI,IAAI;gBAC3B,CAAC,CAAC,IAAI,CAAC,WAAW;gBAClB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;QACrC,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;;;;;;;OAQG;IACO,KAAK,CAAC,2BAA2B;QACzC,MAAM,SAAS,GACb,IAAI,CAAC,QAAQ,CAAC,eAAe,IAAI,yBAAyB,CAAC;QAC7D,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;QAChC,CAAC;QAED,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;QAC/B,IAAI,KAAiC,CAAC;QAEtC,MAAM,aAAa,GAAG,IAAI,OAAO,CAC/B,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAClB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE;gBACjC,OAAO;gBACP,MAAM;gBACN,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;aAClB,CAAC,CAAC;YACH,IAAI,CAAC;gBACH,IAAI,CAAC,KAAK,CAAC;oBACT,IAAI,EAAE,eAAe;oBACrB,UAAU,EAAE,SAAS;oBACrB,IAAI,EAAE,EAAE;iBACT,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACtC,MAAM,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC,CACF,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,OAAO,CAA0B,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;YACxE,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBACtB,oEAAoE;gBACpE,4DAA4D;gBAC5D,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACtC,MAAM,CACJ,IAAI,KAAK,CAAC,wCAAwC,SAAS,KAAK,CAAC,CAClE,CAAC;YACJ,CAAC,EAAE,SAAS,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC;YACnE,IAAI,CAAC,aAAa,GAAG,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACtD,mEAAmE;YACnE,IAAI,CAAC,WAAW;gBACd,MAAM,CAAC,aAAa,CAAC,IAAI,IAAI;oBAC3B,CAAC,CAAC,IAAI,CAAC,WAAW;oBAClB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;YACrC,OAAO,IAAI,CAAC,aAAa,CAAC;QAC5B,CAAC;gBAAS,CAAC;YACT,IAAI,KAAK,EAAE,CAAC;gBACV,YAAY,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IAED,WAAW,CAAC,QAAgB;QAC1B,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;;;;;OAMG;IACH,WAAW;QACT,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sEAAsE;IAEtE,KAAK,CAAC,aAAa;QACjB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;QAC7D,OAAQ,MAA8C,CAAC,SAAS,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,UAAkB,EAClB,SAAiB,EACjB,OAAgC;QAEhC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE;YACzD,QAAQ,EAAE,UAAU;YACpB,UAAU,EAAE,SAAS;YACrB,OAAO,EAAE,OAAO,IAAI,EAAE;SACvB,CAAC,CAAC;QACH,OAAQ,MAAgD,CAAC,MAAM,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,UAAkB,EAClB,QAAmC,EACnC,KAAa,EACb,OAAiC;QAEjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE;YAC3D,QAAQ,EAAE,UAAU;YACpB,QAAQ;YACR,KAAK;YACL,GAAG,OAAO;SACX,CAAC,CAAC;QACH,OAAQ,MAA+C,CAAC,OAAO,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,CAAC,cAAc,CACnB,UAAkB,EAClB,QAAmC,EACnC,KAAa,EACb,OAAiC;QAEjC,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;QAC/B,MAAM,MAAM,GAA8B,EAAE,CAAC;QAC7C,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,IAAI,KAAK,GAAiB,IAAI,CAAC;QAC/B,IAAI,WAAW,GAAwB,IAAI,CAAC;QAE5C,MAAM,OAAO,GAAG,CAAC,KAA8B,EAAE,EAAE;YACjD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,IAAI,WAAW,EAAE,CAAC;gBAChB,WAAW,EAAE,CAAC;gBACd,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,aAAa,GAAG,IAAI,OAAO,CAC/B,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAClB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QACnE,CAAC,CACF,CAAC;QAEF,aAAa;aACV,IAAI,CAAC,GAAG,EAAE;YACT,IAAI,GAAG,IAAI,CAAC;YACZ,IAAI,WAAW,EAAE,CAAC;gBAChB,WAAW,EAAE,CAAC;gBACd,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;QACH,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,KAAK,GAAG,GAAG,CAAC;YACZ,IAAI,GAAG,IAAI,CAAC;YACZ,IAAI,WAAW,EAAE,CAAC;gBAChB,WAAW,EAAE,CAAC;gBACd,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;QACH,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,CAAC;gBACT,IAAI,EAAE,iBAAiB;gBACvB,UAAU,EAAE,SAAS;gBACrB,IAAI,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE;aAC5D,CAAC,CAAC;YAEH,OAAO,IAAI,EAAE,CAAC;gBACZ,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC;oBAAE,MAAM,MAAM,CAAC,KAAK,EAAG,CAAC;gBAChD,IAAI,IAAI;oBAAE,MAAM;gBAChB,IAAI,KAAK;oBAAE,MAAM,KAAK,CAAC;gBACvB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;oBAClC,WAAW,GAAG,OAAO,CAAC;gBACxB,CAAC,CAAC,CAAC;YACL,CAAC;YACD,IAAI,KAAK;gBAAE,MAAM,KAAK,CAAC;QACzB,CAAC;gBAAS,CAAC;YACT,wEAAwE;YACxE,sEAAsE;YACtE,2BAA2B;YAC3B,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACtC,IAAI,CAAC;oBACH,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACzB,CAAC;gBAAC,MAAM,CAAC;oBACP,qDAAqD;gBACvD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,UAAkB,EAClB,MAA+B,EAC/B,OAAgC,EAChC,MAAoB;QAEpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CACzC,wBAAwB,EACxB;YACE,QAAQ,EAAE,UAAU;YACpB,MAAM;YACN,OAAO,EAAE,OAAO,IAAI,EAAE;SACvB,EACD,MAAM,CACP,CAAC;QACF,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,UAAkB,EAClB,KAAiB,EACjB,MAA+B,EAC/B,OAAgC,EAChC,MAAoB;QAEpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CACzC,yBAAyB,EACzB;YACE,QAAQ,EAAE,UAAU;YACpB,KAAK;YACL,MAAM;YACN,OAAO,EAAE,OAAO,IAAI,EAAE;SACvB,EACD,MAAM,CACP,CAAC;QACF,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,UAAkB,EAClB,MAA+B,EAC/B,OAAgC,EAChC,MAAoB;QAEpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CACzC,wBAAwB,EACxB;YACE,QAAQ,EAAE,UAAU;YACpB,MAAM;YACN,OAAO,EAAE,OAAO,IAAI,EAAE;SACvB,EACD,MAAM,CACP,CAAC;QACF,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,UAAkB,EAClB,KAAiB,EACjB,MAA+B,EAC/B,OAAgC,EAChC,MAAoB;QAEpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CACzC,yBAAyB,EACzB;YACE,QAAQ,EAAE,UAAU;YACpB,KAAK;YACL,MAAM;YACN,OAAO,EAAE,OAAO,IAAI,EAAE;SACvB,EACD,MAAM,CACP,CAAC;QACF,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,wBAAwB,CAC5B,UAAkB,EAClB,MAA8B,EAC9B,MAA+B,EAC/B,OAAgC,EAChC,MAAoB;QAEpB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAClC,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YACtB,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YACtB,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,EAC5C,CAAC;YACD,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;QACJ,CAAC;QACD,IACE,CAAC,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,YAAY,UAAU,CAAC,CAAC,EACtE,CAAC;YACD,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,UAAU,GAAG,CAAC,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,MAAM,CAC9C,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,UAAU,EAC1C,CAAC,CACF,CAAC;QACF,IAAI,UAAU,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACb,yCAAyC,UAAU,4CAA4C,CAChG,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CACzC,6BAA6B,EAC7B;YACE,QAAQ,EAAE,UAAU;YACpB,gBAAgB,EAAE,MAAM;YACxB,gBAAgB,EAAE,MAAM;YACxB,MAAM;YACN,OAAO,EAAE,OAAO,IAAI,EAAE;SACvB,EACD,MAAM,CACP,CAAC;QACF,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,UAAkB,EAClB,MAA+B,EAC/B,OAAgC;QAEhC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,EAAE;YACpE,QAAQ,EAAE,UAAU;YACpB,MAAM;YACN,OAAO,EAAE,OAAO,IAAI,EAAE;SACvB,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,UAAkB,EAClB,MAA+B,EAC/B,OAAgC;QAEhC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,EAAE;YAClE,QAAQ,EAAE,UAAU;YACpB,MAAM;YACN,OAAO,EAAE,OAAO,IAAI,EAAE;SACvB,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,CAAC,WAAW,CAChB,UAAkB,EAClB,IAAY,EACZ,KAAa,EACb,OAAiC;QAEjC,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAiB,EAAE,CAAC;QAChC,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,IAAI,KAAK,GAAiB,IAAI,CAAC;QAC/B,IAAI,WAAW,GAAwB,IAAI,CAAC;QAE5C,MAAM,OAAO,GAAG,CAAC,KAA8B,EAAE,EAAE;YACjD,MAAM,KAAK,GAAG,KAAK,CAAC,KAA+C,CAAC;YACpE,IAAI,KAAK,EAAE,KAAK;gBAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,WAAW,EAAE,CAAC;gBAChB,WAAW,EAAE,CAAC;gBACd,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,aAAa,GAAG,IAAI,OAAO,CAC/B,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAClB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QACnE,CAAC,CACF,CAAC;QAEF,aAAa;aACV,IAAI,CAAC,GAAG,EAAE;YACT,IAAI,GAAG,IAAI,CAAC;YACZ,IAAI,WAAW,EAAE,CAAC;gBAChB,WAAW,EAAE,CAAC;gBACd,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;QACH,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,KAAK,GAAG,GAAG,CAAC;YACZ,IAAI,GAAG,IAAI,CAAC;YACZ,IAAI,WAAW,EAAE,CAAC;gBAChB,WAAW,EAAE,CAAC;gBACd,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;QACH,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,CAAC;gBACT,IAAI,EAAE,cAAc;gBACpB,UAAU,EAAE,SAAS;gBACrB,IAAI,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE;aACxD,CAAC,CAAC;YAEH,OAAO,IAAI,EAAE,CAAC;gBACZ,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC;oBAAE,MAAM,MAAM,CAAC,KAAK,EAAG,CAAC;gBAChD,IAAI,IAAI;oBAAE,MAAM;gBAChB,IAAI,KAAK;oBAAE,MAAM,KAAK,CAAC;gBACvB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;oBAClC,WAAW,GAAG,OAAO,CAAC;gBACxB,CAAC,CAAC,CAAC;YACL,CAAC;YACD,IAAI,KAAK;gBAAE,MAAM,KAAK,CAAC;QACzB,CAAC;gBAAS,CAAC;YACT,wEAAwE;YACxE,sEAAsE;YACtE,2BAA2B;YAC3B,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACtC,IAAI,CAAC;oBACH,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACzB,CAAC;gBAAC,MAAM,CAAC;oBACP,qDAAqD;gBACvD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CACf,UAAkB,EAClB,KAAiB,EACjB,KAAa,EACb,OAAiC;QAEjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE;YACtD,QAAQ,EAAE,UAAU;YACpB,KAAK;YACL,KAAK;YACL,GAAG,OAAO;SACX,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,MAGT,CAAC;QACF,OAAO;YACL,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,MAAM,EAAE,CAAC,CAAC,MAAM;SACjB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,UAAkB,EAClB,IAAuB,EACvB,KAAa,EACb,UAAmB;QAEnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE;YAC5D,QAAQ,EAAE,UAAU;YACpB,IAAI;YACJ,KAAK;YACL,UAAU;SACX,CAAC,CAAC;QACH,OAAQ,MAAqC,CAAC,UAAU,CAAC;IAC3D,CAAC;IAED,yEAAyE;IAEzE;;;;OAIG;IACH,KAAK,CAAC,gBAAgB;QACpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;QAClE,OAAQ,MAAyC,CAAC,MAAM,CAAC;IAC3D,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,KAAK,CAAC,aAAa,CACjB,GAAyB,EACzB,UAAiD,EACjD,SAAS,GAAW,UAAU,EAAE;QAEhC,oEAAoE;QACpE,0EAA0E;QAC1E,wEAAwE;QACxE,iCAAiC;QACjC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC;QAC/B,MAAM,OAAO,GACX,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE;YACvC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE;YAClC,CAAC,CAAC,IAAI,CAAC;QACX,OAAO,IAAI,CAAC,kBAAkB,CAC5B,iBAAiB,EACjB,OAAO;QACP,wEAAwE;QACxE,sEAAsE;QACtE,wEAAwE;QACxE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAmC,CAAC,EACtD,SAAS,CACV,CAAC;IACJ,CAAC;IAED,yEAAyE;IACzE,KAAK,CAAC,YAAY,CAChB,GAAwB,EACxB,UAAiD,EACjD,SAAS,GAAW,UAAU,EAAE;QAEhC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC;QAC/B,MAAM,OAAO,GACX,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE;YACvC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE;YAClC,CAAC,CAAC,IAAI,CAAC;QACX,OAAO,IAAI,CAAC,kBAAkB,CAC5B,gBAAgB,EAChB,OAAO,EACP,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAwC,CAAC,EAChE,SAAS,CACV,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACO,kBAAkB,CAC1B,IAAY,EACZ,IAA6B,EAC7B,UAAqD,EACrD,SAAiB;QAEjB,MAAM,aAAa,GACjB,IAAI,CAAC,QAAQ,CAAC,qBAAqB,IAAI,gCAAgC,CAAC;QAC1E,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,IAAI,KAAiC,CAAC;YACtC,MAAM,MAAM,GAAG,CAAC,EAAc,EAAE,EAAE;gBAChC,IAAI,OAAO;oBAAE,OAAO;gBACpB,OAAO,GAAG,IAAI,CAAC;gBACf,IAAI,KAAK;oBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC/B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAChC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACtC,EAAE,EAAE,CAAC;YACP,CAAC,CAAC;YACF,yEAAyE;YACzE,yEAAyE;YACzE,2DAA2D;YAC3D,MAAM,YAAY,GAAG,GAAG,EAAE;gBACxB,IAAI,aAAa,IAAI,CAAC;oBAAE,OAAO;gBAC/B,IAAI,KAAK;oBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC/B,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;oBACtB,IAAI,CAAC;wBACH,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBACzB,CAAC;oBAAC,MAAM,CAAC;wBACP,qDAAqD;oBACvD,CAAC;oBACD,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;oBAClD,MAAM,CAAC,GAAG,EAAE,CACV,MAAM,CACJ,IAAI,KAAK,CACP,aAAa,SAAS,8BAA8B,aAAa,KAAK;wBACpE,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAmB,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACtD,CACF,CACF,CAAC;gBACJ,CAAC,EAAE,aAAa,CAAC,CAAC;YACpB,CAAC,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE;gBAC3B,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS;gBACxB,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS;gBACvB,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;oBACpB,YAAY,EAAE,CAAC;oBACf,UAAU,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;gBAC3B,CAAC;aACF,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE;gBACjC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;gBAC9B,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC1C,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;aAClB,CAAC,CAAC;YACH,YAAY,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,GAAG,EAAE,CACV,MAAM,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAC5D,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,mBAAmB,CAAC,SAAiB;QACnC,2EAA2E;QAC3E,yEAAyE;QACzE,sDAAsD;QACtD,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,qDAAqD;QACvD,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,MAAM,CACd,IAAI,KAAK,CAAC,mBAAmB,SAAS,kBAAkB,CAAC,CAC1D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,mFAAmF;IACnF,KAAK,CAAC,iBAAiB,CAAC,MAAc;QACpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE;YACvD,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;QACH,OAAO,OAAO,CAAE,MAAgC,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;;;OAOG;IACH,uBAAuB;QACrB,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,gBAAgB,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED,4EAA4E;IAC5E,wBAAwB,CAAC,OAAe;QACtC,OAAO,CACL,CAAC,IAAI,CAAC,aAAa,EAAE,gBAAgB,IAAI,CAAC,CAAC,IAAI,CAAC;YAChD,CAAC,IAAI,CAAC,aAAa,EAAE,sBAAsB,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CACrE,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,WAAW,CAAC,GAAG,GAAsB,EAAE;QAC3C,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC;YACjC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACzB,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;QACpE,MAAM,WAAW,GAAqB;YACpC,wEAAwE;YACxE,6DAA6D;YAC7D,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,OAAoB,CAAC,CAAC,CAAC,EAAE;SAC3E,CAAC;QACF,IAAI,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;YACnC,WAAW,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QACnD,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,0EAA0E;IAE1E;;;;;;;OAOG;IACH,oBAAoB;QAClB,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,gBAAgB,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CAAC,GAAgB;QAC7B,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,MAAM,CAAC,GAAgB;QAC3B,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,YAAY,CACxB,IAA6B,EAC7B,GAAgB;QAEhB,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAAE,OAAO;QACzC,MAAM,IAAI,GAA4B,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;QAC5D,IAAI,GAAG,CAAC,UAAU;YAAE,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,UAAU,CAAC;QACtD,IAAI,GAAG,CAAC,MAAM;YAAE,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC;QAC1C,IAAI,GAAG,CAAC,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CAAC,iBAAiB,IAAI,SAAS,EAAE;gBACvC,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,0EAA0E;IAE1E;;;;;;OAMG;IACH,aAAa;QACX,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;QAClC,OAAO,CACL,CAAC,MAAM,EAAE,gBAAgB,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CACxE,CAAC;IACJ,CAAC;IAED,kEAAkE;IAClE,cAAc;QACZ,OAAO,IAAI,CAAC,aAAa,EAAE,KAAK,IAAI,IAAI,CAAC;IAC3C,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,YAAY,CACV,QAAiC,EACjC,OAAO,GAAwB,EAAE,EACjC,OAAqC,EACrC,SAAS,GAAW,UAAU,EAAE;QAEhC,yEAAyE;QACzE,yDAAyD;QACzD,MAAM,IAAI,GAA4B,EAAE,QAAQ,EAAE,CAAC;QACnD,IAAI,OAAO,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC9C,IAAI,OAAO,CAAC,QAAQ;YAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC3C,IAAI,OAAO,CAAC,WAAW;YAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAClD,IAAI,OAAO,CAAC,OAAO,IAAI,IAAI;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAE5D,OAAO,IAAI,OAAO,CAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACzD,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,MAAM,MAAM,GAAG,CAAC,EAAc,EAAE,EAAE;gBAChC,IAAI,OAAO;oBAAE,OAAO;gBACpB,OAAO,GAAG,IAAI,CAAC;gBACf,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACtC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC3C,EAAE,EAAE,CAAC;YACP,CAAC,CAAC;YACF,IAAI,OAAO;gBAAE,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC9D,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE;gBACjC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAClB,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAA4B,CAAC,CAAC;gBACrD,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC1C,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;aAClB,CAAC,CAAC;YACH,IAAI,CAAC;gBACH,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACrE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,GAAG,EAAE,CACV,MAAM,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAC5D,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACH,kBAAkB,CAAC,SAAiB;QAClC,wEAAwE;QACxE,6DAA6D;QAC7D,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,qDAAqD;QACvD,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,MAAM,CACd,IAAI,KAAK,CAAC,sBAAsB,SAAS,kBAAkB,CAAC,CAC7D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,yEAAyE;IAEzE;;;;;;;;OAQG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvD,CAAC;IAED,oEAAoE;IACpE,gBAAgB;QACd,OAAO,IAAI,CAAC,aAAa,EAAE,OAAO,IAAI,IAAI,CAAC;IAC7C,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,cAAc,CACZ,GAAsB,EACtB,MAA8B,EAC9B,OAAO,GAA0B,EAAE,EACnC,OAAuC,EACvC,SAAS,GAAW,UAAU,EAAE;QAEhC,MAAM,IAAI,GAA4B,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;QACtD,IAAI,OAAO,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC9C,IAAI,OAAO,CAAC,OAAO,IAAI,IAAI;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAE5D,OAAO,IAAI,OAAO,CAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3D,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,MAAM,MAAM,GAAG,CAAC,EAAc,EAAE,EAAE;gBAChC,IAAI,OAAO;oBAAE,OAAO;gBACpB,OAAO,GAAG,IAAI,CAAC;gBACf,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACtC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC7C,EAAE,EAAE,CAAC;YACP,CAAC,CAAC;YACF,IAAI,OAAO;gBAAE,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAChE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE;gBACjC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAClB,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAA8B,CAAC,CAAC;gBACvD,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC1C,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;aAClB,CAAC,CAAC;YACH,IAAI,CAAC;gBACH,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACvE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,GAAG,EAAE,CACV,MAAM,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAC5D,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACH,oBAAoB,CAAC,SAAiB;QACpC,wEAAwE;QACxE,6DAA6D;QAC7D,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,qDAAqD;QACvD,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,MAAM,CACd,IAAI,KAAK,CAAC,sBAAsB,SAAS,kBAAkB,CAAC,CAC7D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,MAAM,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,QAAgB;QACtC,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,WAAW,CACf,QAAgB,EAChB,KAAiB,EACjB,OAAO,GAA4B,EAAE;QAErC,wDAAwD;QACxD,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE;YACxC,QAAQ;YACR,IAAI,EAAE,KAAK;YACX,GAAG,OAAO;SACX,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CACb,QAAgB,EAChB,OAAO,GAA4B,EAAE;QAErC,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,4EAA4E;QAC5E,8DAA8D;QAC9D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;QACjE,OAAO,CACJ,MAAM,CAAC,WAAmD,IAAI,MAAM,CACtE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,OAAO,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,WAAW;QACf,OAAO,qBAAqB,CAAC,KAAK,CAChC,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,EAAE,CAAC,CAC7C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAO,GAA4B,EAAE;QACnD,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAAe;QACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;QACjE,MAAM,MAAM,GAAI,MAAwC,CAAC,MAAM,IAAI,EAAE,CAAC;QACtE,2EAA2E;QAC3E,+DAA+D;QAC/D,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,GAA8B,EAC9B,UAAsD,EACtD,SAAS,GAAW,UAAU,EAAE;QAEhC,OAAO,IAAI,CAAC,kBAAkB,CAC5B,uBAAuB,EACvB,EAAE,GAAG,GAAG,EAAE,EACV,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAA6B,CAAC,EAChD,SAAS,CACV,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,MAAc,EAAE,QAAgB;QACtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE;YAC7D,MAAM;YACN,QAAQ;SACT,CAAC,CAAC;QACH,OAAO,OAAO,CAAE,MAAgC,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IAES,KAAK,CAAC,aAAa,CAC3B,IAAY,EACZ,IAA6B;QAE7B,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;QAC/B,OAAO,IAAI,OAAO,CAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC9D,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE;gBACjC,OAAO;gBACP,MAAM;gBACN,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;aAClB,CAAC,CAAC;YACH,IAAI,CAAC;gBACH,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACtC,MAAM,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,4EAA4E;IAClE,KAAK,CAAC,iBAAiB,CAC/B,IAAY,EACZ,IAA6B,EAC7B,MAAoB;QAEpB,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;QAC/B,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,qBAAqB,SAAS,kBAAkB,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,IAAI,OAAO,CAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACpD,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACpE,MAAM,OAAO,GAAG,GAAG,EAAE;gBACnB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAChC,OAAO,EAAE,CAAC;gBACV,IAAI,CAAC;oBACH,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACzB,CAAC;gBAAC,MAAM,CAAC;oBACP,2DAA2D;gBAC7D,CAAC;gBACD,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,SAAS,kBAAkB,CAAC,CAAC,CAAC;YACtE,CAAC,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE;gBAC3B,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;oBACjB,OAAO,EAAE,CAAC;oBACV,OAAO,CAAC,KAAK,CAAC,CAAC;gBACjB,CAAC;gBACD,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;oBAChB,OAAO,EAAE,CAAC;oBACV,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChB,CAAC;aACF,CAAC,CAAC;YACH,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3D,IAAI,CAAC;gBACH,IAAI,CAAC,KAAK,CAAC;oBACT,IAAI;oBACJ,UAAU,EAAE,SAAS;oBACrB,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE;iBAC/C,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAChC,OAAO,EAAE,CAAC;gBACV,MAAM,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,sEAAsE;IAEtE;;;OAGG;IACH,sBAAsB,CAAC,MAAM,GAAG,EAAE;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The msgpack codec both Python-bridge transports share.
|
|
3
|
+
*
|
|
4
|
+
* Python's msgpack encodes any integer above 2^32 as a `uint64` (wire type
|
|
5
|
+
* 0xcf), and msgpackr decodes a `uint64` to a **BigInt** by default. That
|
|
6
|
+
* silently breaks the bridge's own typed contract: `ModelDownloadUpdate`
|
|
7
|
+
* declares `total_bytes: number`, so every consumer does plain arithmetic on
|
|
8
|
+
* it — and a BigInt makes `downloaded / total` throw `TypeError: Cannot mix
|
|
9
|
+
* BigInt and other types`, `Math.trunc()` throw, and `z.number()` reject the
|
|
10
|
+
* frame. A remote model download over 4 GiB (most diffusion models) hit all
|
|
11
|
+
* three, and the failure surfaced as an undecodable frame.
|
|
12
|
+
*
|
|
13
|
+
* Nothing on this wire needs more than 2^53: the values that cross the 2^32
|
|
14
|
+
* line are byte counts and millisecond timestamps. So the decoder reads int64
|
|
15
|
+
* as a number, and the declared types become true again.
|
|
16
|
+
*
|
|
17
|
+
* `mapsAsObjects` is NOT a preference — it restores a default. msgpackr's
|
|
18
|
+
* module-level `unpack` sets it; a hand-built `Unpackr` does not, and would
|
|
19
|
+
* hand every caller a `Map` instead of a frame object.
|
|
20
|
+
*/
|
|
21
|
+
/** Encode one bridge message to msgpack bytes. */
|
|
22
|
+
export declare function packBridgeMessage(msg: Record<string, unknown>): Buffer;
|
|
23
|
+
/**
|
|
24
|
+
* Decode one msgpack payload into a bridge message, reading int64 as a number
|
|
25
|
+
* rather than a BigInt (see the module comment).
|
|
26
|
+
*/
|
|
27
|
+
export declare function unpackBridgeMessage(payload: Buffer | Uint8Array): Record<string, unknown>;
|
|
28
|
+
//# sourceMappingURL=python-bridge-codec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"python-bridge-codec.d.ts","sourceRoot":"","sources":["../src/python-bridge-codec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AASH,kDAAkD;AAClD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAEtE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,GAAG,UAAU,GAC3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAIzB"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The msgpack codec both Python-bridge transports share.
|
|
3
|
+
*
|
|
4
|
+
* Python's msgpack encodes any integer above 2^32 as a `uint64` (wire type
|
|
5
|
+
* 0xcf), and msgpackr decodes a `uint64` to a **BigInt** by default. That
|
|
6
|
+
* silently breaks the bridge's own typed contract: `ModelDownloadUpdate`
|
|
7
|
+
* declares `total_bytes: number`, so every consumer does plain arithmetic on
|
|
8
|
+
* it — and a BigInt makes `downloaded / total` throw `TypeError: Cannot mix
|
|
9
|
+
* BigInt and other types`, `Math.trunc()` throw, and `z.number()` reject the
|
|
10
|
+
* frame. A remote model download over 4 GiB (most diffusion models) hit all
|
|
11
|
+
* three, and the failure surfaced as an undecodable frame.
|
|
12
|
+
*
|
|
13
|
+
* Nothing on this wire needs more than 2^53: the values that cross the 2^32
|
|
14
|
+
* line are byte counts and millisecond timestamps. So the decoder reads int64
|
|
15
|
+
* as a number, and the declared types become true again.
|
|
16
|
+
*
|
|
17
|
+
* `mapsAsObjects` is NOT a preference — it restores a default. msgpackr's
|
|
18
|
+
* module-level `unpack` sets it; a hand-built `Unpackr` does not, and would
|
|
19
|
+
* hand every caller a `Map` instead of a frame object.
|
|
20
|
+
*/
|
|
21
|
+
import { pack, Unpackr } from "msgpackr";
|
|
22
|
+
const unpackr = new Unpackr({
|
|
23
|
+
int64AsType: "number",
|
|
24
|
+
mapsAsObjects: true
|
|
25
|
+
});
|
|
26
|
+
/** Encode one bridge message to msgpack bytes. */
|
|
27
|
+
export function packBridgeMessage(msg) {
|
|
28
|
+
return pack(msg);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Decode one msgpack payload into a bridge message, reading int64 as a number
|
|
32
|
+
* rather than a BigInt (see the module comment).
|
|
33
|
+
*/
|
|
34
|
+
export function unpackBridgeMessage(payload) {
|
|
35
|
+
// SAFETY: every frame on this wire is a msgpack map; a worker that sends
|
|
36
|
+
// anything else is a protocol desync the callers already handle.
|
|
37
|
+
return unpackr.unpack(payload);
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=python-bridge-codec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"python-bridge-codec.js","sourceRoot":"","sources":["../src/python-bridge-codec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;IAC1B,WAAW,EAAE,QAAQ;IACrB,aAAa,EAAE,IAAI;CACpB,CAAC,CAAC;AAEH,kDAAkD;AAClD,MAAM,UAAU,iBAAiB,CAAC,GAA4B;IAC5D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAA4B;IAE5B,yEAAyE;IACzE,iEAAiE;IACjE,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAA4B,CAAC;AAC5D,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Factory that selects the right Python worker bridge transport.
|
|
3
|
+
*
|
|
4
|
+
* Centralizes the one decision every server entry point would otherwise
|
|
5
|
+
* duplicate: spawn a local Python subprocess, or attach to an already-running
|
|
6
|
+
* remote worker over WebSocket?
|
|
7
|
+
*
|
|
8
|
+
* The selector is the `NODETOOL_WORKER_URL` environment variable:
|
|
9
|
+
*
|
|
10
|
+
* - When set, it must be the full WebSocket URL of a running worker — a
|
|
11
|
+
* `ws://` or `wss://` address (e.g. the Docker container's port, such as
|
|
12
|
+
* `ws://127.0.0.1:7777`). The remote {@link WebsocketPythonBridge} is used.
|
|
13
|
+
* That bridge never spawns a process and is allowed to connect in production,
|
|
14
|
+
* unlike the local stdio bridge.
|
|
15
|
+
* - When unset (or blank), the local {@link PythonStdioBridge} is used — it
|
|
16
|
+
* spawns `python -m nodetool.worker` as a subprocess and is gated to
|
|
17
|
+
* non-production environments (unless explicitly overridden).
|
|
18
|
+
*
|
|
19
|
+
* `options.wsUrl` takes precedence over the env var, so programmatic and test
|
|
20
|
+
* callers can force the WebSocket transport without mutating the environment.
|
|
21
|
+
*
|
|
22
|
+
* Auth: the WebSocket bridge's shared-secret bearer token is sourced the same
|
|
23
|
+
* way — `options.workerToken ?? process.env.NODETOOL_WORKER_TOKEN`. When set,
|
|
24
|
+
* the bridge sends `Authorization: Bearer <token>` on connect and every
|
|
25
|
+
* reconnect; when unset/empty, no header is sent.
|
|
26
|
+
*/
|
|
27
|
+
import type { PythonBridgeBase } from "./python-bridge-base.js";
|
|
28
|
+
import type { PythonBridgeOptions } from "./python-bridge-types.js";
|
|
29
|
+
/**
|
|
30
|
+
* Called with every bridge {@link createPythonBridge} builds.
|
|
31
|
+
*
|
|
32
|
+
* The hook exists so a host can attach cross-cutting wiring to bridges it
|
|
33
|
+
* never sees constructed — the worker idle-clock heartbeat, whose listener
|
|
34
|
+
* needs database access this package does not have. Registering is what makes
|
|
35
|
+
* a host a heartbeat source; a host that registers nothing is unaffected.
|
|
36
|
+
*/
|
|
37
|
+
export type PythonBridgeObserver = (bridge: PythonBridgeBase) => void;
|
|
38
|
+
/**
|
|
39
|
+
* Register an observer for every bridge created from now on. Returns a
|
|
40
|
+
* function that unregisters it. An observer that throws is ignored: bridge
|
|
41
|
+
* creation must not fail because a bystander did.
|
|
42
|
+
*/
|
|
43
|
+
export declare function onPythonBridgeCreated(observer: PythonBridgeObserver): () => void;
|
|
44
|
+
/**
|
|
45
|
+
* Create the appropriate Python worker bridge for the current environment.
|
|
46
|
+
*
|
|
47
|
+
* Returns a {@link WebsocketPythonBridge} when a WebSocket URL is supplied via
|
|
48
|
+
* `options.wsUrl` or the `NODETOOL_WORKER_URL` env var; otherwise returns a
|
|
49
|
+
* local {@link PythonStdioBridge}. See the module doc for the full contract.
|
|
50
|
+
*/
|
|
51
|
+
export declare function createPythonBridge(options?: PythonBridgeOptions): PythonBridgeBase;
|
|
52
|
+
//# sourceMappingURL=python-bridge-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"python-bridge-factory.d.ts","sourceRoot":"","sources":["../src/python-bridge-factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE;;;;;;;GAOG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAItE;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,oBAAoB,GAC7B,MAAM,IAAI,CAGZ;AAaD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,GAAE,mBAAwB,GAChC,gBAAgB,CAclB"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Factory that selects the right Python worker bridge transport.
|
|
3
|
+
*
|
|
4
|
+
* Centralizes the one decision every server entry point would otherwise
|
|
5
|
+
* duplicate: spawn a local Python subprocess, or attach to an already-running
|
|
6
|
+
* remote worker over WebSocket?
|
|
7
|
+
*
|
|
8
|
+
* The selector is the `NODETOOL_WORKER_URL` environment variable:
|
|
9
|
+
*
|
|
10
|
+
* - When set, it must be the full WebSocket URL of a running worker — a
|
|
11
|
+
* `ws://` or `wss://` address (e.g. the Docker container's port, such as
|
|
12
|
+
* `ws://127.0.0.1:7777`). The remote {@link WebsocketPythonBridge} is used.
|
|
13
|
+
* That bridge never spawns a process and is allowed to connect in production,
|
|
14
|
+
* unlike the local stdio bridge.
|
|
15
|
+
* - When unset (or blank), the local {@link PythonStdioBridge} is used — it
|
|
16
|
+
* spawns `python -m nodetool.worker` as a subprocess and is gated to
|
|
17
|
+
* non-production environments (unless explicitly overridden).
|
|
18
|
+
*
|
|
19
|
+
* `options.wsUrl` takes precedence over the env var, so programmatic and test
|
|
20
|
+
* callers can force the WebSocket transport without mutating the environment.
|
|
21
|
+
*
|
|
22
|
+
* Auth: the WebSocket bridge's shared-secret bearer token is sourced the same
|
|
23
|
+
* way — `options.workerToken ?? process.env.NODETOOL_WORKER_TOKEN`. When set,
|
|
24
|
+
* the bridge sends `Authorization: Bearer <token>` on connect and every
|
|
25
|
+
* reconnect; when unset/empty, no header is sent.
|
|
26
|
+
*/
|
|
27
|
+
import { PythonStdioBridge } from "./python-stdio-bridge.js";
|
|
28
|
+
import { WebsocketPythonBridge } from "./python-websocket-bridge.js";
|
|
29
|
+
const bridgeObservers = new Set();
|
|
30
|
+
/**
|
|
31
|
+
* Register an observer for every bridge created from now on. Returns a
|
|
32
|
+
* function that unregisters it. An observer that throws is ignored: bridge
|
|
33
|
+
* creation must not fail because a bystander did.
|
|
34
|
+
*/
|
|
35
|
+
export function onPythonBridgeCreated(observer) {
|
|
36
|
+
bridgeObservers.add(observer);
|
|
37
|
+
return () => bridgeObservers.delete(observer);
|
|
38
|
+
}
|
|
39
|
+
function notifyBridgeObservers(bridge) {
|
|
40
|
+
for (const observer of bridgeObservers) {
|
|
41
|
+
try {
|
|
42
|
+
observer(bridge);
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
// best-effort: an observer must not break the bridge it observes
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return bridge;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Create the appropriate Python worker bridge for the current environment.
|
|
52
|
+
*
|
|
53
|
+
* Returns a {@link WebsocketPythonBridge} when a WebSocket URL is supplied via
|
|
54
|
+
* `options.wsUrl` or the `NODETOOL_WORKER_URL` env var; otherwise returns a
|
|
55
|
+
* local {@link PythonStdioBridge}. See the module doc for the full contract.
|
|
56
|
+
*/
|
|
57
|
+
export function createPythonBridge(options = {}) {
|
|
58
|
+
const wsUrl = options.wsUrl ?? process.env["NODETOOL_WORKER_URL"];
|
|
59
|
+
if (wsUrl && wsUrl.trim()) {
|
|
60
|
+
const workerToken = options.workerToken ?? process.env["NODETOOL_WORKER_TOKEN"];
|
|
61
|
+
return notifyBridgeObservers(new WebsocketPythonBridge({
|
|
62
|
+
...options,
|
|
63
|
+
wsUrl: wsUrl.trim(),
|
|
64
|
+
workerToken
|
|
65
|
+
}));
|
|
66
|
+
}
|
|
67
|
+
return notifyBridgeObservers(new PythonStdioBridge(options));
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=python-bridge-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"python-bridge-factory.js","sourceRoot":"","sources":["../src/python-bridge-factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAcrE,MAAM,eAAe,GAAG,IAAI,GAAG,EAAwB,CAAC;AAExD;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAA8B;IAE9B,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9B,OAAO,GAAG,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAwB;IACrD,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE,CAAC;QACvC,IAAI,CAAC;YACH,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,iEAAiE;QACnE,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAO,GAAwB,EAAE;IAEjC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAClE,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAC1B,MAAM,WAAW,GACf,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QAC9D,OAAO,qBAAqB,CAC1B,IAAI,qBAAqB,CAAC;YACxB,GAAG,OAAO;YACV,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;YACnB,WAAW;SACZ,CAAC,CACH,CAAC;IACJ,CAAC;IACD,OAAO,qBAAqB,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/D,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared length-prefixed msgpack framing for the Python bridge's stdio
|
|
3
|
+
* transport: `[4-byte big-endian length][msgpack payload]`.
|
|
4
|
+
*
|
|
5
|
+
* This is the ONLY place that encodes/decodes the wire framing. Both the real
|
|
6
|
+
* {@link "./python-stdio-bridge.js".PythonStdioBridge} and its faithful test
|
|
7
|
+
* fake (`tests/fixtures/fake-python-stdio-worker.ts`) import this module so
|
|
8
|
+
* the two can never drift apart — a framing bug fixed here fixes both.
|
|
9
|
+
*
|
|
10
|
+
* The WebSocket transport (`python-websocket-bridge.ts`) does NOT use this
|
|
11
|
+
* module: one WS binary message already is one frame, with no length prefix.
|
|
12
|
+
*/
|
|
13
|
+
/** Default frame-size ceiling, mirrored by `NODETOOL_BRIDGE_MAX_FRAME_SIZE`. */
|
|
14
|
+
export declare const DEFAULT_MAX_BRIDGE_FRAME_SIZE: number;
|
|
15
|
+
/**
|
|
16
|
+
* Thrown by {@link FrameDecoder.push} when a declared frame length exceeds the
|
|
17
|
+
* configured ceiling. Callers typically treat this as a fatal protocol
|
|
18
|
+
* desync (the most common cause is the worker writing non-protocol bytes —
|
|
19
|
+
* e.g. a stray `print()` — to stdout).
|
|
20
|
+
*/
|
|
21
|
+
export declare class FrameSizeError extends Error {
|
|
22
|
+
readonly length: number;
|
|
23
|
+
readonly maxFrameSize: number;
|
|
24
|
+
constructor(length: number, maxFrameSize: number);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Encode one msgpack-packed payload into a length-prefixed wire frame:
|
|
28
|
+
* `[4-byte big-endian length][payload]`.
|
|
29
|
+
*/
|
|
30
|
+
export declare function encodeFrame(payload: Buffer | Uint8Array): Buffer;
|
|
31
|
+
export interface FrameDecoderOptions {
|
|
32
|
+
/** Reject any frame whose declared length exceeds this. */
|
|
33
|
+
maxFrameSize?: number;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Incremental decoder for the length-prefixed frame stream. Feed it raw bytes
|
|
37
|
+
* as they arrive (from a socket/pipe `"data"` event) via {@link push}; it
|
|
38
|
+
* buffers partial frames and returns every frame that became complete,
|
|
39
|
+
* including the case where a single chunk contains multiple frames.
|
|
40
|
+
*
|
|
41
|
+
* Stateful and NOT reentrant-safe across a torn-down transport — call
|
|
42
|
+
* {@link reset} (or construct a fresh instance) when the underlying
|
|
43
|
+
* connection is replaced, so a stale partial frame from the old connection
|
|
44
|
+
* can't desync the new one.
|
|
45
|
+
*/
|
|
46
|
+
export declare class FrameDecoder {
|
|
47
|
+
private _buffer;
|
|
48
|
+
private readonly _maxFrameSize;
|
|
49
|
+
constructor(options?: FrameDecoderOptions);
|
|
50
|
+
/**
|
|
51
|
+
* Append `chunk` to the internal buffer and extract every complete frame
|
|
52
|
+
* now available, invoking `onFrame` with each raw (still msgpack-packed)
|
|
53
|
+
* payload as soon as it is extracted — in arrival order, before any later
|
|
54
|
+
* frame in the same chunk is even looked at. This matters when a chunk
|
|
55
|
+
* contains one or more valid frames followed by a corrupt length prefix:
|
|
56
|
+
* every frame extracted before the corrupt one has already reached
|
|
57
|
+
* `onFrame` by the time {@link FrameSizeError} is thrown, so a caller
|
|
58
|
+
* dispatching responses from `onFrame` does not lose them.
|
|
59
|
+
*
|
|
60
|
+
* Throws {@link FrameSizeError} — leaving the decoder's buffer untouched
|
|
61
|
+
* beyond the append — when a declared length exceeds the configured
|
|
62
|
+
* ceiling.
|
|
63
|
+
*/
|
|
64
|
+
push(chunk: Buffer, onFrame: (frame: Buffer) => void): void;
|
|
65
|
+
/** Drop any buffered partial frame. Call when the transport is torn down. */
|
|
66
|
+
reset(): void;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=python-bridge-framing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"python-bridge-framing.d.ts","sourceRoot":"","sources":["../src/python-bridge-framing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,gFAAgF;AAChF,eAAO,MAAM,6BAA6B,QAAoB,CAAC;AAE/D;;;;;GAKG;AACH,qBAAa,cAAe,SAAQ,KAAK;aAErB,MAAM,EAAE,MAAM;aACd,YAAY,EAAE,MAAM;IAFtC,YACkB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EAMrC;CACF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAKhE;AAED,MAAM,WAAW,mBAAmB;IAClC,2DAA2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;GAUG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IAEvC,YAAY,OAAO,GAAE,mBAAwB,EAE5C;IAED;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAY1D;IAED,6EAA6E;IAC7E,KAAK,IAAI,IAAI,CAEZ;CACF"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared length-prefixed msgpack framing for the Python bridge's stdio
|
|
3
|
+
* transport: `[4-byte big-endian length][msgpack payload]`.
|
|
4
|
+
*
|
|
5
|
+
* This is the ONLY place that encodes/decodes the wire framing. Both the real
|
|
6
|
+
* {@link "./python-stdio-bridge.js".PythonStdioBridge} and its faithful test
|
|
7
|
+
* fake (`tests/fixtures/fake-python-stdio-worker.ts`) import this module so
|
|
8
|
+
* the two can never drift apart — a framing bug fixed here fixes both.
|
|
9
|
+
*
|
|
10
|
+
* The WebSocket transport (`python-websocket-bridge.ts`) does NOT use this
|
|
11
|
+
* module: one WS binary message already is one frame, with no length prefix.
|
|
12
|
+
*/
|
|
13
|
+
/** Default frame-size ceiling, mirrored by `NODETOOL_BRIDGE_MAX_FRAME_SIZE`. */
|
|
14
|
+
export const DEFAULT_MAX_BRIDGE_FRAME_SIZE = 256 * 1024 * 1024;
|
|
15
|
+
/**
|
|
16
|
+
* Thrown by {@link FrameDecoder.push} when a declared frame length exceeds the
|
|
17
|
+
* configured ceiling. Callers typically treat this as a fatal protocol
|
|
18
|
+
* desync (the most common cause is the worker writing non-protocol bytes —
|
|
19
|
+
* e.g. a stray `print()` — to stdout).
|
|
20
|
+
*/
|
|
21
|
+
export class FrameSizeError extends Error {
|
|
22
|
+
length;
|
|
23
|
+
maxFrameSize;
|
|
24
|
+
constructor(length, maxFrameSize) {
|
|
25
|
+
super(`Incoming Python bridge frame exceeds max size (${length} > ${maxFrameSize})`);
|
|
26
|
+
this.length = length;
|
|
27
|
+
this.maxFrameSize = maxFrameSize;
|
|
28
|
+
this.name = "FrameSizeError";
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Encode one msgpack-packed payload into a length-prefixed wire frame:
|
|
33
|
+
* `[4-byte big-endian length][payload]`.
|
|
34
|
+
*/
|
|
35
|
+
export function encodeFrame(payload) {
|
|
36
|
+
const body = Buffer.isBuffer(payload) ? payload : Buffer.from(payload);
|
|
37
|
+
const header = Buffer.alloc(4);
|
|
38
|
+
header.writeUInt32BE(body.length, 0);
|
|
39
|
+
return Buffer.concat([header, body]);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Incremental decoder for the length-prefixed frame stream. Feed it raw bytes
|
|
43
|
+
* as they arrive (from a socket/pipe `"data"` event) via {@link push}; it
|
|
44
|
+
* buffers partial frames and returns every frame that became complete,
|
|
45
|
+
* including the case where a single chunk contains multiple frames.
|
|
46
|
+
*
|
|
47
|
+
* Stateful and NOT reentrant-safe across a torn-down transport — call
|
|
48
|
+
* {@link reset} (or construct a fresh instance) when the underlying
|
|
49
|
+
* connection is replaced, so a stale partial frame from the old connection
|
|
50
|
+
* can't desync the new one.
|
|
51
|
+
*/
|
|
52
|
+
export class FrameDecoder {
|
|
53
|
+
_buffer = Buffer.alloc(0);
|
|
54
|
+
_maxFrameSize;
|
|
55
|
+
constructor(options = {}) {
|
|
56
|
+
this._maxFrameSize = options.maxFrameSize ?? DEFAULT_MAX_BRIDGE_FRAME_SIZE;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Append `chunk` to the internal buffer and extract every complete frame
|
|
60
|
+
* now available, invoking `onFrame` with each raw (still msgpack-packed)
|
|
61
|
+
* payload as soon as it is extracted — in arrival order, before any later
|
|
62
|
+
* frame in the same chunk is even looked at. This matters when a chunk
|
|
63
|
+
* contains one or more valid frames followed by a corrupt length prefix:
|
|
64
|
+
* every frame extracted before the corrupt one has already reached
|
|
65
|
+
* `onFrame` by the time {@link FrameSizeError} is thrown, so a caller
|
|
66
|
+
* dispatching responses from `onFrame` does not lose them.
|
|
67
|
+
*
|
|
68
|
+
* Throws {@link FrameSizeError} — leaving the decoder's buffer untouched
|
|
69
|
+
* beyond the append — when a declared length exceeds the configured
|
|
70
|
+
* ceiling.
|
|
71
|
+
*/
|
|
72
|
+
push(chunk, onFrame) {
|
|
73
|
+
this._buffer = Buffer.concat([this._buffer, chunk]);
|
|
74
|
+
while (this._buffer.length >= 4) {
|
|
75
|
+
const length = this._buffer.readUInt32BE(0);
|
|
76
|
+
if (length > this._maxFrameSize) {
|
|
77
|
+
throw new FrameSizeError(length, this._maxFrameSize);
|
|
78
|
+
}
|
|
79
|
+
if (this._buffer.length < 4 + length)
|
|
80
|
+
break; // incomplete frame
|
|
81
|
+
const frame = this._buffer.subarray(4, 4 + length);
|
|
82
|
+
this._buffer = this._buffer.subarray(4 + length);
|
|
83
|
+
onFrame(frame);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/** Drop any buffered partial frame. Call when the transport is torn down. */
|
|
87
|
+
reset() {
|
|
88
|
+
this._buffer = Buffer.alloc(0);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=python-bridge-framing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"python-bridge-framing.js","sourceRoot":"","sources":["../src/python-bridge-framing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,gFAAgF;AAChF,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IAErB,MAAM;IACN,YAAY;IAF9B,YACkB,MAAc,EACd,YAAoB;QAEpC,KAAK,CACH,kDAAkD,MAAM,MAAM,YAAY,GAAG,CAC9E,CAAC;sBALc,MAAM;4BACN,YAAY;QAK5B,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,OAA4B;IACtD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACrC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;AACvC,CAAC;AAOD;;;;;;;;;;GAUG;AACH,MAAM,OAAO,YAAY;IACf,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjB,aAAa,CAAS;IAEvC,YAAY,OAAO,GAAwB,EAAE;QAC3C,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,IAAI,6BAA6B,CAAC;IAC7E,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,KAAa,EAAE,OAAgC;QAClD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC5C,IAAI,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBAChC,MAAM,IAAI,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACvD,CAAC;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM;gBAAE,MAAM,CAAC,mBAAmB;YAChE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC;YACnD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;YACjD,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,KAAK;QACH,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;CACF"}
|