@alchemy.run/docker 0.0.0-stage → 2.0.0-beta.84
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +50 -2
- package/lib/Bootstrap.d.ts +7 -0
- package/lib/Bootstrap.d.ts.map +1 -0
- package/lib/Bootstrap.js +25 -0
- package/lib/Bootstrap.js.map +1 -0
- package/lib/BuildHash.d.ts +47 -0
- package/lib/BuildHash.d.ts.map +1 -0
- package/lib/BuildHash.js +165 -0
- package/lib/BuildHash.js.map +1 -0
- package/lib/Container.d.ts +352 -0
- package/lib/Container.d.ts.map +1 -0
- package/lib/Container.js +531 -0
- package/lib/Container.js.map +1 -0
- package/lib/Context.d.ts +86 -0
- package/lib/Context.d.ts.map +1 -0
- package/lib/Context.js +146 -0
- package/lib/Context.js.map +1 -0
- package/lib/Docker.d.ts +448 -0
- package/lib/Docker.d.ts.map +1 -0
- package/lib/Docker.js +416 -0
- package/lib/Docker.js.map +1 -0
- package/lib/Dockerfile.d.ts +72 -0
- package/lib/Dockerfile.d.ts.map +1 -0
- package/lib/Dockerfile.js +12 -0
- package/lib/Dockerfile.js.map +1 -0
- package/lib/HealthcheckCommand.d.ts +17 -0
- package/lib/HealthcheckCommand.d.ts.map +1 -0
- package/lib/HealthcheckCommand.js +33 -0
- package/lib/HealthcheckCommand.js.map +1 -0
- package/lib/Image.d.ts +151 -0
- package/lib/Image.d.ts.map +1 -0
- package/lib/Image.js +192 -0
- package/lib/Image.js.map +1 -0
- package/lib/ImageSource.d.ts +234 -0
- package/lib/ImageSource.d.ts.map +1 -0
- package/lib/ImageSource.js +469 -0
- package/lib/ImageSource.js.map +1 -0
- package/lib/Network.d.ts +70 -0
- package/lib/Network.d.ts.map +1 -0
- package/lib/Network.js +111 -0
- package/lib/Network.js.map +1 -0
- package/lib/Providers.d.ts +21 -0
- package/lib/Providers.d.ts.map +1 -0
- package/lib/Providers.js +26 -0
- package/lib/Providers.js.map +1 -0
- package/lib/Registry.d.ts +47 -0
- package/lib/Registry.d.ts.map +1 -0
- package/lib/Registry.js +67 -0
- package/lib/Registry.js.map +1 -0
- package/lib/RegistryError.d.ts +21 -0
- package/lib/RegistryError.d.ts.map +1 -0
- package/lib/RegistryError.js +28 -0
- package/lib/RegistryError.js.map +1 -0
- package/lib/RemoteImage.d.ts +118 -0
- package/lib/RemoteImage.d.ts.map +1 -0
- package/lib/RemoteImage.js +164 -0
- package/lib/RemoteImage.js.map +1 -0
- package/lib/Service.d.ts +478 -0
- package/lib/Service.d.ts.map +1 -0
- package/lib/Service.js +588 -0
- package/lib/Service.js.map +1 -0
- package/lib/ServiceImage.d.ts +78 -0
- package/lib/ServiceImage.d.ts.map +1 -0
- package/lib/ServiceImage.js +162 -0
- package/lib/ServiceImage.js.map +1 -0
- package/lib/Swarm.d.ts +119 -0
- package/lib/Swarm.d.ts.map +1 -0
- package/lib/Swarm.js +148 -0
- package/lib/Swarm.js.map +1 -0
- package/lib/Volume.d.ts +94 -0
- package/lib/Volume.d.ts.map +1 -0
- package/lib/Volume.js +133 -0
- package/lib/Volume.js.map +1 -0
- package/lib/index.d.ts +14 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +13 -0
- package/lib/index.js.map +1 -0
- package/package.json +72 -3
- package/src/Bootstrap.ts +51 -0
- package/src/BuildHash.ts +255 -0
- package/src/Container.ts +792 -0
- package/src/Context.ts +215 -0
- package/src/Docker.ts +1079 -0
- package/src/Dockerfile.ts +81 -0
- package/src/HealthcheckCommand.ts +35 -0
- package/src/Image.ts +293 -0
- package/src/ImageSource.ts +769 -0
- package/src/Network.ts +169 -0
- package/src/Providers.ts +46 -0
- package/src/Registry.ts +91 -0
- package/src/RegistryError.ts +48 -0
- package/src/RemoteImage.ts +255 -0
- package/src/Service.ts +1080 -0
- package/src/ServiceImage.ts +252 -0
- package/src/Swarm.ts +221 -0
- package/src/Volume.ts +193 -0
- package/src/index.ts +17 -0
package/lib/Context.js
ADDED
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { deepEqual, isResolved } from "alchemy/Diff";
|
|
2
|
+
import * as Provider from "alchemy/Provider";
|
|
3
|
+
import { Resource } from "alchemy/Resource";
|
|
4
|
+
import * as Effect from "effect/Effect";
|
|
5
|
+
import * as Equal from "effect/Equal";
|
|
6
|
+
import { Docker, dockerPhysicalName } from "./Docker.js";
|
|
7
|
+
/**
|
|
8
|
+
* A named Docker CLI context — a pointer to a Docker engine (local socket,
|
|
9
|
+
* SSH host, or TCP endpoint) that other Docker resources deploy through.
|
|
10
|
+
*
|
|
11
|
+
* Pass the context (or its name) to any Docker resource's `context` prop to
|
|
12
|
+
* run that resource's operations against the referenced engine instead of the
|
|
13
|
+
* default one. Changing the endpoint updates the context in place; renaming
|
|
14
|
+
* it, or clearing a previously-set endpoint, replaces it.
|
|
15
|
+
*
|
|
16
|
+
*
|
|
17
|
+
* ### Creating Contexts
|
|
18
|
+
* **Example:** Remote engine over SSH
|
|
19
|
+
* ```typescript
|
|
20
|
+
* const vps = yield* Docker.Context("vps", {
|
|
21
|
+
* docker: "host=ssh://deploy@example.com",
|
|
22
|
+
* description: "production swarm manager",
|
|
23
|
+
* });
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* ### Using a Context
|
|
27
|
+
* **Example:** Deploy resources through the context
|
|
28
|
+
* ```typescript
|
|
29
|
+
* const vps = yield* Docker.Context("vps", {
|
|
30
|
+
* docker: "host=ssh://deploy@example.com",
|
|
31
|
+
* });
|
|
32
|
+
* const network = yield* Docker.Network("app-net", {
|
|
33
|
+
* context: vps,
|
|
34
|
+
* driver: "overlay",
|
|
35
|
+
* });
|
|
36
|
+
* const app = yield* Docker.Service("app", {
|
|
37
|
+
* context: vps,
|
|
38
|
+
* image: "nginx:alpine",
|
|
39
|
+
* networks: [network.name],
|
|
40
|
+
* });
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* **Example:** Local development vs production
|
|
44
|
+
* ```typescript
|
|
45
|
+
* const dev = yield* Alchemy.ALCHEMY_DEV;
|
|
46
|
+
* const context = yield* Docker.Context("target", {
|
|
47
|
+
* name: dev ? "local" : "vps",
|
|
48
|
+
* docker: dev ? undefined : "host=ssh://deploy@example.com",
|
|
49
|
+
* });
|
|
50
|
+
* ```
|
|
51
|
+
*
|
|
52
|
+
* @resource
|
|
53
|
+
* @product Context
|
|
54
|
+
*/
|
|
55
|
+
export const Context = Resource("Docker.Context");
|
|
56
|
+
export const ContextProvider = () => Provider.effect(Context, Effect.gen(function* () {
|
|
57
|
+
const docker = yield* Docker;
|
|
58
|
+
const inspect = (nameOrId) => docker.context
|
|
59
|
+
.inspect(nameOrId)
|
|
60
|
+
.pipe(Effect.catchReason("PlatformError", "NotFound", () => Effect.undefined));
|
|
61
|
+
return Context.Provider.of({
|
|
62
|
+
list: () => Effect.succeed([]),
|
|
63
|
+
read: Effect.fn(function* ({ id, instanceId, olds, output }) {
|
|
64
|
+
const name = yield* dockerPhysicalName(id, olds, instanceId);
|
|
65
|
+
const live = yield* inspect(name);
|
|
66
|
+
if (!live)
|
|
67
|
+
return undefined;
|
|
68
|
+
const attrs = toContextAttributes(live);
|
|
69
|
+
if (output)
|
|
70
|
+
return attrs;
|
|
71
|
+
return attrs;
|
|
72
|
+
}),
|
|
73
|
+
diff: Effect.fn(function* ({ id, instanceId, news, olds, output }) {
|
|
74
|
+
if (!isResolved(news))
|
|
75
|
+
return undefined;
|
|
76
|
+
const oldDesired = yield* normalizeDesired(id, olds, instanceId);
|
|
77
|
+
const newDesired = yield* normalizeDesired(id, news, instanceId);
|
|
78
|
+
if (oldDesired.name !== newDesired.name) {
|
|
79
|
+
return { action: "replace", deleteFirst: true };
|
|
80
|
+
}
|
|
81
|
+
// `docker context update` can set docker host, but cannot reliably
|
|
82
|
+
// clear it once set. Recreate when transitioning to no docker.
|
|
83
|
+
if (oldDesired.docker && !newDesired.docker) {
|
|
84
|
+
return { action: "replace", deleteFirst: true };
|
|
85
|
+
}
|
|
86
|
+
if (!Equal.equals(oldDesired, newDesired)) {
|
|
87
|
+
return { action: "update" };
|
|
88
|
+
}
|
|
89
|
+
if (output && !(yield* inspect(output.id))) {
|
|
90
|
+
return { action: "update" };
|
|
91
|
+
}
|
|
92
|
+
return { action: "noop" };
|
|
93
|
+
}),
|
|
94
|
+
reconcile: Effect.fn(function* ({ id, instanceId, news, olds, output }) {
|
|
95
|
+
const desired = yield* normalizeDesired(id, news, instanceId);
|
|
96
|
+
if (output && olds) {
|
|
97
|
+
const oldDesired = yield* normalizeDesired(id, olds, instanceId);
|
|
98
|
+
if (deepEqual(oldDesired, desired)) {
|
|
99
|
+
const current = yield* inspect(output.id);
|
|
100
|
+
if (current) {
|
|
101
|
+
return toContextAttributes(current);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
const existing = output ? yield* inspect(output.id) : yield* inspect(desired.name);
|
|
106
|
+
if (!existing) {
|
|
107
|
+
const createArgs = {
|
|
108
|
+
name: desired.name,
|
|
109
|
+
...(desired.docker ? { docker: desired.docker } : {}),
|
|
110
|
+
...(desired.description.length > 0 ? { description: desired.description } : {}),
|
|
111
|
+
};
|
|
112
|
+
yield* docker.context.create(createArgs);
|
|
113
|
+
return toContextAttributes(yield* docker.context.inspect(desired.name));
|
|
114
|
+
}
|
|
115
|
+
const current = toContextAttributes(existing);
|
|
116
|
+
const needsUpdate = current.description !== desired.description || current.docker !== desired.docker;
|
|
117
|
+
if (needsUpdate) {
|
|
118
|
+
yield* docker.context.update({
|
|
119
|
+
name: desired.name,
|
|
120
|
+
...(desired.docker ? { docker: desired.docker } : {}),
|
|
121
|
+
description: desired.description,
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
return toContextAttributes(yield* docker.context.inspect(desired.name));
|
|
125
|
+
}),
|
|
126
|
+
delete: Effect.fn(({ output }) => docker.context.remove(output.id, true).pipe(Effect.catchReason("PlatformError", "NotFound", () => Effect.void), Effect.as(undefined))),
|
|
127
|
+
});
|
|
128
|
+
}));
|
|
129
|
+
// Every prop is optional, so `Docker.Context("ctx")` arrives with no props.
|
|
130
|
+
const normalizeDesired = (id, props, instanceId) => dockerPhysicalName(id, props, instanceId).pipe(Effect.map((name) => ({
|
|
131
|
+
name,
|
|
132
|
+
description: normalizeDescription(props?.description),
|
|
133
|
+
docker: normalizeDocker(props?.docker),
|
|
134
|
+
})));
|
|
135
|
+
const normalizeDescription = (description) => description?.trim() ?? "";
|
|
136
|
+
const normalizeDocker = (docker) => {
|
|
137
|
+
const value = docker?.trim();
|
|
138
|
+
return value && value.length > 0 ? value : undefined;
|
|
139
|
+
};
|
|
140
|
+
const toContextAttributes = (context) => ({
|
|
141
|
+
id: context.Name,
|
|
142
|
+
name: context.Name,
|
|
143
|
+
description: context.Metadata?.Description ?? "",
|
|
144
|
+
docker: context.Endpoints?.docker,
|
|
145
|
+
});
|
|
146
|
+
//# sourceMappingURL=Context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Context.js","sourceRoot":"","sources":["../src/Context.ts"],"names":[],"mappings":"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"}
|
package/lib/Docker.d.ts
ADDED
|
@@ -0,0 +1,448 @@
|
|
|
1
|
+
import type { ScopedPlanStatusSession } from "alchemy/Report";
|
|
2
|
+
import * as Context from "effect/Context";
|
|
3
|
+
import * as Effect from "effect/Effect";
|
|
4
|
+
import * as FileSystem from "effect/FileSystem";
|
|
5
|
+
import * as Layer from "effect/Layer";
|
|
6
|
+
import * as Path from "effect/Path";
|
|
7
|
+
import { PlatformError } from "effect/PlatformError";
|
|
8
|
+
import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
|
|
9
|
+
import * as Redacted from "effect/Redacted";
|
|
10
|
+
import { type DockerImagePublicationError } from "./RegistryError.ts";
|
|
11
|
+
/** Credentials for a single image registry, scoped to a Docker command. */
|
|
12
|
+
export interface RegistryCredentials {
|
|
13
|
+
/** Registry hostname, without a URL scheme. */
|
|
14
|
+
server: string;
|
|
15
|
+
/** Registry authentication username. */
|
|
16
|
+
username: string;
|
|
17
|
+
/** Registry password or access token. */
|
|
18
|
+
password: string | Redacted.Redacted<string>;
|
|
19
|
+
}
|
|
20
|
+
declare const Docker_base: Context.ServiceClass<Docker, "@alchemy/Docker", {
|
|
21
|
+
/** Runs a Docker command and returns the output. Use this to run a command that doesn't have a dedicated method. */
|
|
22
|
+
readonly run: (args: Array<string>) => Effect.Effect<CommandOutput, PlatformError>;
|
|
23
|
+
/** Writes build files and an inline Dockerfile to the given context directory. */
|
|
24
|
+
readonly materialize: (options: {
|
|
25
|
+
context: string;
|
|
26
|
+
dockerfile: string;
|
|
27
|
+
files: ReadonlyArray<{
|
|
28
|
+
path: string;
|
|
29
|
+
content: string | Uint8Array;
|
|
30
|
+
}>;
|
|
31
|
+
}) => Effect.Effect<void, PlatformError>;
|
|
32
|
+
readonly container: {
|
|
33
|
+
/** Creates a new container. */
|
|
34
|
+
readonly create: (options: {
|
|
35
|
+
name: string;
|
|
36
|
+
image: string;
|
|
37
|
+
volume: Array<string> | undefined;
|
|
38
|
+
env: Record<string, string> | undefined;
|
|
39
|
+
/** Paths to Docker env files, forwarded as repeated `--env-file`. */
|
|
40
|
+
"env-file"?: Array<string> | undefined;
|
|
41
|
+
restart: "no" | "always" | "on-failure" | "unless-stopped";
|
|
42
|
+
rm: boolean;
|
|
43
|
+
"health-cmd": string | undefined;
|
|
44
|
+
/** `--no-healthcheck`: disable any healthcheck defined by the image. */
|
|
45
|
+
"no-healthcheck"?: boolean;
|
|
46
|
+
"health-interval": string | undefined;
|
|
47
|
+
"health-timeout": string | undefined;
|
|
48
|
+
"health-retries": number | undefined;
|
|
49
|
+
"health-start-period": string | undefined;
|
|
50
|
+
"health-start-interval": string | undefined;
|
|
51
|
+
"stop-timeout": string | undefined;
|
|
52
|
+
p: Array<string> | undefined;
|
|
53
|
+
/** `--add-host` entries, each `hostname:address`. */
|
|
54
|
+
"add-host"?: Array<string> | undefined;
|
|
55
|
+
/** Docker network namespace, including `container:<id>`. */
|
|
56
|
+
network?: string | undefined;
|
|
57
|
+
/** Linux capabilities to add. */
|
|
58
|
+
"cap-add"?: Array<string> | undefined;
|
|
59
|
+
/** Host devices in Docker's `host:container[:permissions]` form. */
|
|
60
|
+
device?: Array<string> | undefined;
|
|
61
|
+
command: Array<string> | undefined;
|
|
62
|
+
label?: Record<string, string>;
|
|
63
|
+
context?: string;
|
|
64
|
+
}) => Effect.Effect<CommandOutput, PlatformError>;
|
|
65
|
+
/** Inspects a container. */
|
|
66
|
+
readonly inspect: (name: string, context?: string) => Effect.Effect<Docker.Container, PlatformError>;
|
|
67
|
+
/** Removes a container. */
|
|
68
|
+
readonly remove: (name: string, force?: boolean, context?: string) => Effect.Effect<CommandOutput, PlatformError>;
|
|
69
|
+
/** Starts a container. */
|
|
70
|
+
readonly start: (name: string, context?: string) => Effect.Effect<CommandOutput, PlatformError>;
|
|
71
|
+
/** Stops a container. */
|
|
72
|
+
readonly stop: (name: string, context?: string) => Effect.Effect<CommandOutput, PlatformError>;
|
|
73
|
+
};
|
|
74
|
+
readonly image: {
|
|
75
|
+
/**
|
|
76
|
+
* Builds locally, or publishes to a registry when credentials are
|
|
77
|
+
* supplied. With Buildx 0.26.0 or newer the image is exported straight
|
|
78
|
+
* from BuildKit (`buildx build --push`); older plugins build into the
|
|
79
|
+
* local image store and then `push`. If a session is provided, build
|
|
80
|
+
* logs will be emitted as session notes.
|
|
81
|
+
*/
|
|
82
|
+
readonly build: (options: {
|
|
83
|
+
context: string;
|
|
84
|
+
/** Image tags to build and publish together. */
|
|
85
|
+
tag: string | [string, ...string[]];
|
|
86
|
+
file?: string;
|
|
87
|
+
platform?: string;
|
|
88
|
+
target?: string;
|
|
89
|
+
"build-arg"?: Record<string, string>;
|
|
90
|
+
"cache-from"?: Array<string>;
|
|
91
|
+
"cache-to"?: Array<string>;
|
|
92
|
+
args?: Array<string>;
|
|
93
|
+
engineContext?: string;
|
|
94
|
+
/** Registry auth for the build itself (base images, caches); publishes nothing. */
|
|
95
|
+
credentials?: RegistryCredentials;
|
|
96
|
+
}, session?: ScopedPlanStatusSession, registry?: RegistryCredentials) => Effect.Effect<CommandOutput, DockerImagePublicationError>;
|
|
97
|
+
/** Pulls an image. */
|
|
98
|
+
readonly pull: (ref: string, platform?: string, context?: string, session?: Pick<ScopedPlanStatusSession, "note">) => Effect.Effect<CommandOutput, PlatformError>;
|
|
99
|
+
/**
|
|
100
|
+
* Pushes an image to a registry. When `platform` is given, only that
|
|
101
|
+
* platform's manifest is pushed (`docker push --platform`) — with the
|
|
102
|
+
* containerd image store, a bare push sends every locally-present
|
|
103
|
+
* variant of a multi-arch tag, so a stale other-arch variant in the
|
|
104
|
+
* local cache would otherwise reach the registry. Engines whose store
|
|
105
|
+
* doesn't support the flag fall back to a plain push (their local tag
|
|
106
|
+
* is already narrowed by `pull --platform`).
|
|
107
|
+
*/
|
|
108
|
+
readonly push: (ref: string, credentials: RegistryCredentials, platform?: string, context?: string, session?: Pick<ScopedPlanStatusSession, "note">) => Effect.Effect<CommandOutput, DockerImagePublicationError>;
|
|
109
|
+
/** Tags an image. */
|
|
110
|
+
readonly tag: (source: string, target: string, context?: string) => Effect.Effect<CommandOutput, PlatformError>;
|
|
111
|
+
/** Inspects an image. */
|
|
112
|
+
readonly inspect: (ref: string, context?: string) => Effect.Effect<Docker.Image, PlatformError>;
|
|
113
|
+
/** Removes an image. */
|
|
114
|
+
readonly remove: (ref: string | Array<string>, force?: boolean, context?: string) => Effect.Effect<CommandOutput, PlatformError>;
|
|
115
|
+
};
|
|
116
|
+
readonly volume: {
|
|
117
|
+
/** Creates a new volume. */
|
|
118
|
+
readonly create: (options: {
|
|
119
|
+
name: string;
|
|
120
|
+
driver?: string;
|
|
121
|
+
opt?: Record<string, string>;
|
|
122
|
+
label?: Record<string, string>;
|
|
123
|
+
context?: string;
|
|
124
|
+
}) => Effect.Effect<CommandOutput, PlatformError>;
|
|
125
|
+
/** Removes a volume. */
|
|
126
|
+
readonly remove: (name: string, context?: string) => Effect.Effect<CommandOutput, PlatformError>;
|
|
127
|
+
/** Inspects a volume. */
|
|
128
|
+
readonly inspect: (name: string, context?: string) => Effect.Effect<Docker.Volume, PlatformError>;
|
|
129
|
+
};
|
|
130
|
+
readonly context: {
|
|
131
|
+
/** Creates a new Docker context. */
|
|
132
|
+
readonly create: (options: {
|
|
133
|
+
name: string;
|
|
134
|
+
description?: string;
|
|
135
|
+
/** Raw value for `--docker`, for example `host=ssh://user@host`. */
|
|
136
|
+
docker?: string;
|
|
137
|
+
}) => Effect.Effect<CommandOutput, PlatformError>;
|
|
138
|
+
/** Updates an existing Docker context. */
|
|
139
|
+
readonly update: (options: {
|
|
140
|
+
name: string;
|
|
141
|
+
description?: string;
|
|
142
|
+
/** Raw value for `--docker`, for example `host=ssh://user@host`. */
|
|
143
|
+
docker?: string;
|
|
144
|
+
}) => Effect.Effect<CommandOutput, PlatformError>;
|
|
145
|
+
/** Inspects a Docker context. */
|
|
146
|
+
readonly inspect: (name: string) => Effect.Effect<Docker.Context, PlatformError>;
|
|
147
|
+
/** Removes a Docker context. */
|
|
148
|
+
readonly remove: (name: string, force?: boolean) => Effect.Effect<CommandOutput, PlatformError>;
|
|
149
|
+
};
|
|
150
|
+
readonly network: {
|
|
151
|
+
/** Creates a new network. */
|
|
152
|
+
readonly create: (options: {
|
|
153
|
+
name: string;
|
|
154
|
+
driver: string;
|
|
155
|
+
ipv6?: boolean;
|
|
156
|
+
label?: Record<string, string>;
|
|
157
|
+
context?: string;
|
|
158
|
+
}) => Effect.Effect<CommandOutput, PlatformError>;
|
|
159
|
+
/** Connects a container to a network. */
|
|
160
|
+
readonly connect: (options: {
|
|
161
|
+
network: string;
|
|
162
|
+
container: string;
|
|
163
|
+
alias?: string[];
|
|
164
|
+
context?: string;
|
|
165
|
+
}) => Effect.Effect<CommandOutput, PlatformError>;
|
|
166
|
+
/** Disconnects a container from a network. */
|
|
167
|
+
readonly disconnect: (options: {
|
|
168
|
+
network: string;
|
|
169
|
+
container: string;
|
|
170
|
+
context?: string;
|
|
171
|
+
}) => Effect.Effect<CommandOutput, PlatformError>;
|
|
172
|
+
/** Inspects a network. */
|
|
173
|
+
readonly inspect: (name: string, context?: string) => Effect.Effect<Docker.Network, PlatformError>;
|
|
174
|
+
/** Removes a network. */
|
|
175
|
+
readonly remove: (id: string, context?: string) => Effect.Effect<CommandOutput, PlatformError>;
|
|
176
|
+
};
|
|
177
|
+
readonly swarm: {
|
|
178
|
+
/** Initializes swarm mode on the engine (`docker swarm init`). */
|
|
179
|
+
readonly init: (options: {
|
|
180
|
+
context?: string;
|
|
181
|
+
"advertise-addr"?: string;
|
|
182
|
+
"listen-addr"?: string;
|
|
183
|
+
"default-addr-pool"?: string[];
|
|
184
|
+
"default-addr-pool-mask-length"?: number;
|
|
185
|
+
}) => Effect.Effect<CommandOutput, PlatformError>;
|
|
186
|
+
/** Reads the engine's swarm state (`docker info --format '{{json .Swarm}}'`). */
|
|
187
|
+
readonly info: (context?: string) => Effect.Effect<Docker.SwarmInfo, PlatformError>;
|
|
188
|
+
/** Leaves the swarm (`docker swarm leave`). */
|
|
189
|
+
readonly leave: (force?: boolean, context?: string) => Effect.Effect<CommandOutput, PlatformError>;
|
|
190
|
+
};
|
|
191
|
+
readonly service: {
|
|
192
|
+
/** Creates a new service. */
|
|
193
|
+
readonly create: (options: {
|
|
194
|
+
name: string;
|
|
195
|
+
image: string;
|
|
196
|
+
context?: string;
|
|
197
|
+
replicas?: number;
|
|
198
|
+
"endpoint-mode"?: "vip" | "dnsrr";
|
|
199
|
+
network?: string[];
|
|
200
|
+
constraint?: string[];
|
|
201
|
+
"replicas-max-per-node"?: number;
|
|
202
|
+
"placement-pref"?: string[];
|
|
203
|
+
"update-parallelism"?: number;
|
|
204
|
+
"update-delay"?: string;
|
|
205
|
+
"update-monitor"?: string;
|
|
206
|
+
"update-failure-action"?: "pause" | "continue" | "rollback";
|
|
207
|
+
"update-max-failure-ratio"?: number;
|
|
208
|
+
"update-order"?: "stop-first" | "start-first";
|
|
209
|
+
"rollback-parallelism"?: number;
|
|
210
|
+
"rollback-delay"?: string;
|
|
211
|
+
"rollback-monitor"?: string;
|
|
212
|
+
"rollback-failure-action"?: "pause" | "continue" | "rollback";
|
|
213
|
+
"rollback-max-failure-ratio"?: number;
|
|
214
|
+
"rollback-order"?: "stop-first" | "start-first";
|
|
215
|
+
"restart-condition"?: "none" | "on-failure" | "any";
|
|
216
|
+
"restart-delay"?: string;
|
|
217
|
+
"restart-max-attempts"?: number;
|
|
218
|
+
"restart-window"?: string;
|
|
219
|
+
"health-cmd"?: string;
|
|
220
|
+
/** `--no-healthcheck`: disable any healthcheck defined by the image. */
|
|
221
|
+
"no-healthcheck"?: boolean;
|
|
222
|
+
"health-interval"?: string;
|
|
223
|
+
"health-timeout"?: string;
|
|
224
|
+
"health-retries"?: number;
|
|
225
|
+
"health-start-period"?: string;
|
|
226
|
+
"stop-grace-period"?: string;
|
|
227
|
+
mount?: string[];
|
|
228
|
+
secret?: string[];
|
|
229
|
+
config?: string[];
|
|
230
|
+
"read-only"?: boolean;
|
|
231
|
+
publish?: string[];
|
|
232
|
+
label?: Record<string, string>;
|
|
233
|
+
env?: Record<string, string>;
|
|
234
|
+
command?: string[];
|
|
235
|
+
args?: string[];
|
|
236
|
+
}) => Effect.Effect<CommandOutput, PlatformError>;
|
|
237
|
+
/** Updates an existing service. */
|
|
238
|
+
readonly update: (options: {
|
|
239
|
+
id: string;
|
|
240
|
+
image: string;
|
|
241
|
+
context?: string;
|
|
242
|
+
replicas?: number;
|
|
243
|
+
"endpoint-mode"?: "vip" | "dnsrr";
|
|
244
|
+
"constraint-add"?: string[];
|
|
245
|
+
"constraint-rm"?: string[];
|
|
246
|
+
"replicas-max-per-node"?: number;
|
|
247
|
+
"placement-pref"?: string[];
|
|
248
|
+
"update-parallelism"?: number;
|
|
249
|
+
"update-delay"?: string;
|
|
250
|
+
"update-monitor"?: string;
|
|
251
|
+
"update-failure-action"?: "pause" | "continue" | "rollback";
|
|
252
|
+
"update-max-failure-ratio"?: number;
|
|
253
|
+
"update-order"?: "stop-first" | "start-first";
|
|
254
|
+
"rollback-parallelism"?: number;
|
|
255
|
+
"rollback-delay"?: string;
|
|
256
|
+
"rollback-monitor"?: string;
|
|
257
|
+
"rollback-failure-action"?: "pause" | "continue" | "rollback";
|
|
258
|
+
"rollback-max-failure-ratio"?: number;
|
|
259
|
+
"rollback-order"?: "stop-first" | "start-first";
|
|
260
|
+
"restart-condition"?: "none" | "on-failure" | "any";
|
|
261
|
+
"restart-delay"?: string;
|
|
262
|
+
"restart-max-attempts"?: number;
|
|
263
|
+
"restart-window"?: string;
|
|
264
|
+
"health-cmd"?: string;
|
|
265
|
+
/** `--no-healthcheck`: disable any healthcheck defined by the image. */
|
|
266
|
+
"no-healthcheck"?: boolean;
|
|
267
|
+
"health-interval"?: string;
|
|
268
|
+
"health-timeout"?: string;
|
|
269
|
+
"health-retries"?: number;
|
|
270
|
+
"health-start-period"?: string;
|
|
271
|
+
"stop-grace-period"?: string;
|
|
272
|
+
"mount-add"?: string[];
|
|
273
|
+
"secret-add"?: string[];
|
|
274
|
+
"config-add"?: string[];
|
|
275
|
+
"read-only"?: boolean;
|
|
276
|
+
"publish-add"?: string[];
|
|
277
|
+
"label-add"?: Record<string, string>;
|
|
278
|
+
"label-rm"?: string[];
|
|
279
|
+
"env-add"?: Record<string, string>;
|
|
280
|
+
args?: string;
|
|
281
|
+
}) => Effect.Effect<CommandOutput, PlatformError>;
|
|
282
|
+
/** Inspects a service. */
|
|
283
|
+
readonly inspect: (id: string, context?: string) => Effect.Effect<CommandOutput, PlatformError>;
|
|
284
|
+
/** Removes a service. */
|
|
285
|
+
readonly remove: (id: string, context?: string) => Effect.Effect<CommandOutput, PlatformError>;
|
|
286
|
+
};
|
|
287
|
+
}>;
|
|
288
|
+
export declare class Docker extends Docker_base {
|
|
289
|
+
}
|
|
290
|
+
export declare namespace Docker {
|
|
291
|
+
type ContextRef = string | {
|
|
292
|
+
name: string;
|
|
293
|
+
};
|
|
294
|
+
/**
|
|
295
|
+
* A reference to the Docker engine an operation runs against: a context
|
|
296
|
+
* name, a `Docker.Context` resource, or a `Docker.Swarm` resource
|
|
297
|
+
* (narrowed structurally by its `nodeId` attribute) — passing the swarm
|
|
298
|
+
* also orders the operation after the swarm is initialized.
|
|
299
|
+
*/
|
|
300
|
+
type EngineRef = ContextRef | {
|
|
301
|
+
nodeId: string;
|
|
302
|
+
context?: string;
|
|
303
|
+
};
|
|
304
|
+
interface SwarmInfo {
|
|
305
|
+
NodeID: string;
|
|
306
|
+
LocalNodeState: "inactive" | "pending" | "active" | "error" | "locked" | (string & {});
|
|
307
|
+
ControlAvailable: boolean;
|
|
308
|
+
Cluster?: {
|
|
309
|
+
ID: string;
|
|
310
|
+
CreatedAt?: string;
|
|
311
|
+
} | null;
|
|
312
|
+
RemoteManagers?: Array<{
|
|
313
|
+
NodeID: string;
|
|
314
|
+
Addr: string;
|
|
315
|
+
}> | null;
|
|
316
|
+
Managers?: number;
|
|
317
|
+
Nodes?: number;
|
|
318
|
+
}
|
|
319
|
+
type ContainerStatus = "created" | "running" | "paused" | "restarting" | "removing" | "exited" | "dead";
|
|
320
|
+
interface Container {
|
|
321
|
+
Id: string;
|
|
322
|
+
Image: string;
|
|
323
|
+
Name?: string;
|
|
324
|
+
State: {
|
|
325
|
+
Status: ContainerStatus;
|
|
326
|
+
/** Present when the container has a healthcheck. */
|
|
327
|
+
Health?: {
|
|
328
|
+
Status: "starting" | "healthy" | "unhealthy";
|
|
329
|
+
};
|
|
330
|
+
};
|
|
331
|
+
Created: string;
|
|
332
|
+
Config: {
|
|
333
|
+
Image: string;
|
|
334
|
+
Cmd: string[] | null;
|
|
335
|
+
Env: string[] | null;
|
|
336
|
+
Labels: Record<string, string> | null;
|
|
337
|
+
StopTimeout?: number;
|
|
338
|
+
Healthcheck?: {
|
|
339
|
+
Test: string[] | null;
|
|
340
|
+
Interval?: number;
|
|
341
|
+
Timeout?: number;
|
|
342
|
+
Retries?: number;
|
|
343
|
+
StartPeriod?: number;
|
|
344
|
+
StartInterval?: number;
|
|
345
|
+
} | null;
|
|
346
|
+
};
|
|
347
|
+
HostConfig: {
|
|
348
|
+
PortBindings: Record<string, Array<{
|
|
349
|
+
HostIp: string;
|
|
350
|
+
HostPort: string;
|
|
351
|
+
}> | null> | null;
|
|
352
|
+
Binds: string[] | null;
|
|
353
|
+
ExtraHosts: string[] | null;
|
|
354
|
+
RestartPolicy: {
|
|
355
|
+
Name: string;
|
|
356
|
+
MaximumRetryCount: number;
|
|
357
|
+
};
|
|
358
|
+
AutoRemove: boolean;
|
|
359
|
+
NetworkMode?: string;
|
|
360
|
+
CapAdd?: string[] | null;
|
|
361
|
+
Devices?: Array<{
|
|
362
|
+
PathOnHost: string;
|
|
363
|
+
PathInContainer: string;
|
|
364
|
+
CgroupPermissions: string;
|
|
365
|
+
}> | null;
|
|
366
|
+
};
|
|
367
|
+
NetworkSettings: {
|
|
368
|
+
Networks: Record<string, {
|
|
369
|
+
NetworkID: string;
|
|
370
|
+
Aliases: string[] | null;
|
|
371
|
+
}> | null;
|
|
372
|
+
Ports?: Record<string, Array<{
|
|
373
|
+
HostIp: string;
|
|
374
|
+
HostPort: string;
|
|
375
|
+
}> | null> | null;
|
|
376
|
+
};
|
|
377
|
+
}
|
|
378
|
+
interface Image {
|
|
379
|
+
Id: string;
|
|
380
|
+
Created?: string;
|
|
381
|
+
RepoTags?: string[] | null;
|
|
382
|
+
RepoDigests?: string[] | null;
|
|
383
|
+
}
|
|
384
|
+
interface Volume {
|
|
385
|
+
CreatedAt: string;
|
|
386
|
+
Driver: string;
|
|
387
|
+
Labels: Record<string, string> | null;
|
|
388
|
+
Mountpoint: string;
|
|
389
|
+
Name: string;
|
|
390
|
+
Options: Record<string, string> | null;
|
|
391
|
+
Scope: string;
|
|
392
|
+
}
|
|
393
|
+
interface Context {
|
|
394
|
+
Name: string;
|
|
395
|
+
Metadata?: {
|
|
396
|
+
Description?: string;
|
|
397
|
+
};
|
|
398
|
+
Endpoints?: {
|
|
399
|
+
docker?: string;
|
|
400
|
+
};
|
|
401
|
+
}
|
|
402
|
+
interface Network {
|
|
403
|
+
Name: string;
|
|
404
|
+
Id: string;
|
|
405
|
+
Created: string;
|
|
406
|
+
Scope: string;
|
|
407
|
+
Driver: string;
|
|
408
|
+
EnableIPv6: boolean;
|
|
409
|
+
Labels: Record<string, string> | null;
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
export interface CommandOutput {
|
|
413
|
+
exitCode: ChildProcessSpawner.ExitCode;
|
|
414
|
+
stdout: string;
|
|
415
|
+
stderr: string;
|
|
416
|
+
}
|
|
417
|
+
export interface DockerOptions {
|
|
418
|
+
/**
|
|
419
|
+
* The Docker-compatible CLI to run, e.g. `"podman"`. The `DOCKER_BIN`
|
|
420
|
+
* environment variable, when set, overrides it (per machine or CI).
|
|
421
|
+
* @default "docker"
|
|
422
|
+
*/
|
|
423
|
+
bin?: string;
|
|
424
|
+
}
|
|
425
|
+
/**
|
|
426
|
+
* Extra environment for every Docker CLI invocation, layered over the
|
|
427
|
+
* process environment (per-call variables still win). Scope it with
|
|
428
|
+
* `Effect.provideService(DockerEnvironment, { BUILDX_BUILDER: "ci" })` to
|
|
429
|
+
* target a buildx builder or Docker context without mutating `process.env`.
|
|
430
|
+
* @default {}
|
|
431
|
+
*/
|
|
432
|
+
export declare const DockerEnvironment: Context.Reference<Record<string, string>>;
|
|
433
|
+
/** The Docker CLI client, running `options.bin` (`DOCKER_BIN` overrides). */
|
|
434
|
+
export declare const dockerLive: (options?: DockerOptions) => Layer.Layer<Docker, never, ChildProcessSpawner.ChildProcessSpawner | FileSystem.FileSystem | Path.Path>;
|
|
435
|
+
/** The Docker CLI client, running `docker` (or `DOCKER_BIN`). */
|
|
436
|
+
export declare const DockerLive: Layer.Layer<Docker, never, ChildProcessSpawner.ChildProcessSpawner | FileSystem.FileSystem | Path.Path>;
|
|
437
|
+
export declare const dockerContextName: (context: Docker.ContextRef | undefined) => string | undefined;
|
|
438
|
+
/**
|
|
439
|
+
* Resolve an {@link Docker.EngineRef} to a context name. A `Docker.Swarm`
|
|
440
|
+
* reference (narrowed by its `nodeId` attribute) contributes the context the
|
|
441
|
+
* swarm was initialized on.
|
|
442
|
+
*/
|
|
443
|
+
export declare const dockerEngineContextName: (ref: Docker.EngineRef | undefined) => string | undefined;
|
|
444
|
+
export declare const dockerPhysicalName: (id: string, props: {
|
|
445
|
+
name?: string;
|
|
446
|
+
} | undefined, instanceId: string, maxLength?: number) => Effect.Effect<string, never, import("alchemy/ResourceContext").ResourceContext | import("alchemy/Stack").Stack | import("alchemy/Stage").Stage>;
|
|
447
|
+
export {};
|
|
448
|
+
//# sourceMappingURL=Docker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Docker.d.ts","sourceRoot":"","sources":["../src/Docker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAE9D,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,aAAa,EAAoC,MAAM,sBAAsB,CAAC;AAEvF,OAAO,KAAK,mBAAmB,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAK5C,OAAO,EAA+B,KAAK,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAEnG,2EAA2E;AAC3E,MAAM,WAAW,mBAAmB;IAClC,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;CAC9C;;IAuBG,oHAAoH;kBACtG,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC;IAClF,kFAAkF;0BAC5D,CAAC,OAAO,EAAE;QAC9B,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,aAAa,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAAA;SAAE,CAAC,CAAC;KACtE,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC;wBACpB;QAClB,+BAA+B;QAC/B,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;YACzB,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;YACd,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;YAClC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;YACxC,qEAAqE;YACrE,UAAU,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;YACvC,OAAO,EAAE,IAAI,GAAG,QAAQ,GAAG,YAAY,GAAG,gBAAgB,CAAC;YAC3D,EAAE,EAAE,OAAO,CAAC;YACZ,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;YACjC,wEAAwE;YACxE,gBAAgB,CAAC,EAAE,OAAO,CAAC;YAC3B,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;YACtC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;YACrC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;YACrC,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAC;YAC1C,uBAAuB,EAAE,MAAM,GAAG,SAAS,CAAC;YAC5C,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;YACnC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;YAC7B,qDAAqD;YACrD,UAAU,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;YACvC,4DAA4D;YAC5D,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YAC7B,iCAAiC;YACjC,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;YACtC,oEAAoE;YACpE,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;YACnC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;YACnC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QAClD,4BAA4B;QAC5B,QAAQ,CAAC,OAAO,EAAE,CAChB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,KACb,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACpD,2BAA2B;QAC3B,QAAQ,CAAC,MAAM,EAAE,CACf,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,MAAM,KACb,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QACjD,0BAA0B;QAC1B,QAAQ,CAAC,KAAK,EAAE,CACd,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,KACb,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QACjD,yBAAyB;QACzB,QAAQ,CAAC,IAAI,EAAE,CACb,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,KACb,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;KAClD;oBACe;QACd;;;;;;WAMG;QACH,QAAQ,CAAC,KAAK,EAAE,CACd,OAAO,EAAE;YACP,OAAO,EAAE,MAAM,CAAC;YAChB,gDAAgD;YAChD,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;YACpC,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACrC,YAAY,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YAC7B,UAAU,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YAC3B,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YACrB,aAAa,CAAC,EAAE,MAAM,CAAC;YACvB,mFAAmF;YACnF,WAAW,CAAC,EAAE,mBAAmB,CAAC;SACnC,EACD,OAAO,CAAC,EAAE,uBAAuB,EACjC,QAAQ,CAAC,EAAE,mBAAmB,KAC3B,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,2BAA2B,CAAC,CAAC;QAC/D,sBAAsB;QACtB,QAAQ,CAAC,IAAI,EAAE,CACb,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,IAAI,CAAC,uBAAuB,EAAE,MAAM,CAAC,KAC5C,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QACjD;;;;;;;;WAQG;QACH,QAAQ,CAAC,IAAI,EAAE,CACb,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,mBAAmB,EAChC,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,IAAI,CAAC,uBAAuB,EAAE,MAAM,CAAC,KAC5C,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,2BAA2B,CAAC,CAAC;QAC/D,qBAAqB;QACrB,QAAQ,CAAC,GAAG,EAAE,CACZ,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,KACb,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QACjD,yBAAyB;QACzB,QAAQ,CAAC,OAAO,EAAE,CAChB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,MAAM,KACb,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;QAChD,wBAAwB;QACxB,QAAQ,CAAC,MAAM,EAAE,CACf,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,EAC3B,KAAK,CAAC,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,MAAM,KACb,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;KAClD;qBACgB;QACf,4BAA4B;QAC5B,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;YACzB,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC7B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QAClD,wBAAwB;QACxB,QAAQ,CAAC,MAAM,EAAE,CACf,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,KACb,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QACjD,yBAAyB;QACzB,QAAQ,CAAC,OAAO,EAAE,CAChB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,KACb,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;KAClD;sBACiB;QAChB,oCAAoC;QACpC,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;YACzB,IAAI,EAAE,MAAM,CAAC;YACb,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,oEAAoE;YACpE,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QAClD,0CAA0C;QAC1C,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;YACzB,IAAI,EAAE,MAAM,CAAC;YACb,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,oEAAoE;YACpE,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QAClD,iCAAiC;QACjC,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACjF,gCAAgC;QAChC,QAAQ,CAAC,MAAM,EAAE,CACf,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,OAAO,KACZ,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;KAClD;sBACiB;QAChB,6BAA6B;QAC7B,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;YACzB,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,MAAM,CAAC;YACf,IAAI,CAAC,EAAE,OAAO,CAAC;YACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QAClD,yCAAyC;QACzC,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE;YAC1B,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,EAAE,MAAM,CAAC;YAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;YACjB,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QAClD,8CAA8C;QAC9C,QAAQ,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;YAC7B,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,EAAE,MAAM,CAAC;YAClB,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QAClD,0BAA0B;QAC1B,QAAQ,CAAC,OAAO,EAAE,CAChB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,KACb,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAClD,yBAAyB;QACzB,QAAQ,CAAC,MAAM,EAAE,CACf,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,MAAM,KACb,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;KAClD;oBACe;QACd,kEAAkE;QAClE,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE;YACvB,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;YACvB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;YAC/B,+BAA+B,CAAC,EAAE,MAAM,CAAC;SAC1C,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QAClD,iFAAiF;QACjF,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACpF,+CAA+C;QAC/C,QAAQ,CAAC,KAAK,EAAE,CACd,KAAK,CAAC,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,MAAM,KACb,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;KAClD;sBACiB;QAChB,6BAA6B;QAC7B,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;YACzB,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;YACd,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,eAAe,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;YAClC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;YACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;YACtB,uBAAuB,CAAC,EAAE,MAAM,CAAC;YACjC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;YAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;YAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;YACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAC1B,uBAAuB,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,UAAU,CAAC;YAC5D,0BAA0B,CAAC,EAAE,MAAM,CAAC;YACpC,cAAc,CAAC,EAAE,YAAY,GAAG,aAAa,CAAC;YAC9C,sBAAsB,CAAC,EAAE,MAAM,CAAC;YAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;YAC5B,yBAAyB,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,UAAU,CAAC;YAC9D,4BAA4B,CAAC,EAAE,MAAM,CAAC;YACtC,gBAAgB,CAAC,EAAE,YAAY,GAAG,aAAa,CAAC;YAChD,mBAAmB,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,KAAK,CAAC;YACpD,eAAe,CAAC,EAAE,MAAM,CAAC;YACzB,sBAAsB,CAAC,EAAE,MAAM,CAAC;YAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,wEAAwE;YACxE,gBAAgB,CAAC,EAAE,OAAO,CAAC;YAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;YAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;YAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;YAC7B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;YACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;YAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;YAClB,WAAW,CAAC,EAAE,OAAO,CAAC;YACtB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;YACnB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC/B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC7B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;YACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;SACjB,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QAClD,mCAAmC;QACnC,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;YACzB,EAAE,EAAE,MAAM,CAAC;YACX,KAAK,EAAE,MAAM,CAAC;YACd,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,eAAe,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;YAClC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;YAC5B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;YAC3B,uBAAuB,CAAC,EAAE,MAAM,CAAC;YACjC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;YAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;YAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;YACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAC1B,uBAAuB,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,UAAU,CAAC;YAC5D,0BAA0B,CAAC,EAAE,MAAM,CAAC;YACpC,cAAc,CAAC,EAAE,YAAY,GAAG,aAAa,CAAC;YAC9C,sBAAsB,CAAC,EAAE,MAAM,CAAC;YAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;YAC5B,yBAAyB,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,UAAU,CAAC;YAC9D,4BAA4B,CAAC,EAAE,MAAM,CAAC;YACtC,gBAAgB,CAAC,EAAE,YAAY,GAAG,aAAa,CAAC;YAChD,mBAAmB,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,KAAK,CAAC;YACpD,eAAe,CAAC,EAAE,MAAM,CAAC;YACzB,sBAAsB,CAAC,EAAE,MAAM,CAAC;YAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,wEAAwE;YACxE,gBAAgB,CAAC,EAAE,OAAO,CAAC;YAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;YAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;YAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;YAC7B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;YACvB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;YACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;YACxB,WAAW,CAAC,EAAE,OAAO,CAAC;YACtB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;YACzB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACrC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;YACtB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACnC,IAAI,CAAC,EAAE,MAAM,CAAC;SACf,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QAClD,0BAA0B;QAC1B,QAAQ,CAAC,OAAO,EAAE,CAChB,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,MAAM,KACb,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QACjD,yBAAyB;QACzB,QAAQ,CAAC,MAAM,EAAE,CACf,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,MAAM,KACb,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;KAClD;;AAxUL,qBAAa,MAAO,SAAQ,WA0UN;CAAG;AAEzB,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAY,UAAU,GAAG,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAEnD;;;;;OAKG;IACH,KAAY,SAAS,GAAG,UAAU,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAE1E,UAAiB,SAAS;QACxB,MAAM,EAAE,MAAM,CAAC;QACf,cAAc,EAAE,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QACvF,gBAAgB,EAAE,OAAO,CAAC;QAC1B,OAAO,CAAC,EAAE;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAC;QACpD,cAAc,CAAC,EAAE,KAAK,CAAC;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,GAAG,IAAI,CAAC;QAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB;IAED,KAAY,eAAe,GACvB,SAAS,GACT,SAAS,GACT,QAAQ,GACR,YAAY,GACZ,UAAU,GACV,QAAQ,GACR,MAAM,CAAC;IAEX,UAAiB,SAAS;QACxB,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,EAAE;YACL,MAAM,EAAE,eAAe,CAAC;YACxB,oDAAoD;YACpD,MAAM,CAAC,EAAE;gBAAE,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,WAAW,CAAA;aAAE,CAAC;SAC3D,CAAC;QACF,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE;YACN,KAAK,EAAE,MAAM,CAAC;YACd,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;YACrB,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;YACtC,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,WAAW,CAAC,EAAE;gBACZ,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;gBACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;gBAClB,OAAO,CAAC,EAAE,MAAM,CAAC;gBACjB,OAAO,CAAC,EAAE,MAAM,CAAC;gBACjB,WAAW,CAAC,EAAE,MAAM,CAAC;gBACrB,aAAa,CAAC,EAAE,MAAM,CAAC;aACxB,GAAG,IAAI,CAAC;SACV,CAAC;QACF,UAAU,EAAE;YACV,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;gBAAE,MAAM,EAAE,MAAM,CAAC;gBAAC,QAAQ,EAAE,MAAM,CAAA;aAAE,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;YACxF,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;YACvB,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;YAC5B,aAAa,EAAE;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,iBAAiB,EAAE,MAAM,CAAA;aAAE,CAAC;YAC3D,UAAU,EAAE,OAAO,CAAC;YACpB,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;YACzB,OAAO,CAAC,EAAE,KAAK,CAAC;gBACd,UAAU,EAAE,MAAM,CAAC;gBACnB,eAAe,EAAE,MAAM,CAAC;gBACxB,iBAAiB,EAAE,MAAM,CAAC;aAC3B,CAAC,GAAG,IAAI,CAAC;SACX,CAAC;QACF,eAAe,EAAE;YACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;gBAAE,SAAS,EAAE,MAAM,CAAC;gBAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;aAAE,CAAC,GAAG,IAAI,CAAC;YACjF,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;gBAAE,MAAM,EAAE,MAAM,CAAC;gBAAC,QAAQ,EAAE,MAAM,CAAA;aAAE,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;SACnF,CAAC;KACH;IAED,UAAiB,KAAK;QACpB,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAC3B,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;KAC/B;IAED,UAAiB,MAAM;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;QACtC,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;QACvC,KAAK,EAAE,MAAM,CAAC;KACf;IAED,UAAiB,OAAO;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE;YAAE,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACpC,SAAS,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KACjC;IAED,UAAiB,OAAO;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,OAAO,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;KACvC;CACF;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,mBAAmB,CAAC,QAAQ,CAAC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,2CAG7B,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,UAAU,aAAa,aAAa,4GACN,CAAC;AAmd5C,iEAAiE;AACjE,eAAO,MAAM,UAAU,yGAAe,CAAC;AAEvC,eAAO,MAAM,iBAAiB,YAAa,MAAM,CAAC,UAAU,GAAG,SAAS,KAAG,MAAM,GAAG,SAInF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,QAAS,MAAM,CAAC,SAAS,GAAG,SAAS,KAAG,MAAM,GAAG,SAKpF,CAAC;AAEF,eAAO,MAAM,kBAAkB,OACzB,MAAM,SACH;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,cACxB,MAAM,wKAOoD,CAAC"}
|