@the-ai-company/cbio-node-runtime 0.32.0 → 0.39.0

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.
@@ -0,0 +1,33 @@
1
+ import type { SecretPolicy } from "../vault/vault.js";
2
+ export interface LocalSecretIngressWriter {
3
+ addSecret(secretName: string, secretValue: string, options?: SecretPolicy): Promise<void>;
4
+ hasSecret(secretName: string): boolean;
5
+ updateSecret?(secretName: string, secretValue: string): Promise<void>;
6
+ }
7
+ export interface LocalSecretIngressOptions {
8
+ vault: LocalSecretIngressWriter;
9
+ secretName: string;
10
+ allowedOrigins?: string[];
11
+ overwrite?: boolean;
12
+ host?: string;
13
+ port?: number;
14
+ path?: string;
15
+ authToken?: string;
16
+ once?: boolean;
17
+ maxBodyBytes?: number;
18
+ }
19
+ export interface LocalSecretIngressResult {
20
+ secretName: string;
21
+ }
22
+ export interface LocalSecretIngressHandle {
23
+ readonly secretName: string;
24
+ readonly host: string;
25
+ readonly port: number;
26
+ readonly path: string;
27
+ readonly baseUrl: string;
28
+ readonly url: string;
29
+ readonly authToken: string;
30
+ close(): Promise<void>;
31
+ waitForSecret(): Promise<LocalSecretIngressResult>;
32
+ }
33
+ export declare function startLocalSecretIngress(options: LocalSecretIngressOptions): Promise<LocalSecretIngressHandle>;
@@ -0,0 +1,162 @@
1
+ import * as crypto from "node:crypto";
2
+ import * as http from "node:http";
3
+ function normalizeIngressPath(input) {
4
+ if (!input)
5
+ return `/cbio/ingest/${crypto.randomBytes(12).toString("hex")}`;
6
+ return input.startsWith("/") ? input : `/${input}`;
7
+ }
8
+ function isAuthorized(req, authToken) {
9
+ const header = req.headers.authorization;
10
+ if (typeof header === "string" && header === `Bearer ${authToken}`) {
11
+ return true;
12
+ }
13
+ const fallback = req.headers["x-cbio-ingest-token"];
14
+ return typeof fallback === "string" && fallback === authToken;
15
+ }
16
+ async function readRequestBody(req, maxBodyBytes) {
17
+ const chunks = [];
18
+ let total = 0;
19
+ for await (const chunk of req) {
20
+ const next = typeof chunk === "string" ? Buffer.from(chunk) : chunk;
21
+ total += next.length;
22
+ if (total > maxBodyBytes) {
23
+ throw new Error("CBIO_LOCAL_SECRET_TOO_LARGE");
24
+ }
25
+ chunks.push(next);
26
+ }
27
+ return Buffer.concat(chunks);
28
+ }
29
+ function extractSecret(body, contentType) {
30
+ const normalizedType = (contentType ?? "").split(";")[0].trim().toLowerCase();
31
+ if (normalizedType === "application/json") {
32
+ const parsed = JSON.parse(body.toString("utf8"));
33
+ const candidate = parsed.secret ?? parsed.value ?? parsed.token;
34
+ if (typeof candidate !== "string" || candidate.length === 0) {
35
+ throw new Error("CBIO_LOCAL_SECRET_MISSING");
36
+ }
37
+ return candidate;
38
+ }
39
+ const value = body.toString("utf8");
40
+ if (!value) {
41
+ throw new Error("CBIO_LOCAL_SECRET_MISSING");
42
+ }
43
+ return value;
44
+ }
45
+ export async function startLocalSecretIngress(options) {
46
+ const { vault, secretName, allowedOrigins, overwrite = false, host = "127.0.0.1", port = 0, path, authToken = crypto.randomBytes(24).toString("base64url"), once = true, maxBodyBytes = 64 * 1024, } = options;
47
+ const ingressPath = normalizeIngressPath(path);
48
+ let settled = false;
49
+ let completionResult = null;
50
+ let completionError = null;
51
+ const waiters = [];
52
+ const server = http.createServer(async (req, res) => {
53
+ try {
54
+ if ((req.socket.remoteAddress ?? "") !== host) {
55
+ res.statusCode = 403;
56
+ res.end(JSON.stringify({ error: "CBIO_LOCAL_SECRET_REMOTE_DENIED" }));
57
+ return;
58
+ }
59
+ if ((req.method ?? "GET").toUpperCase() !== "POST" || (req.url ?? "/") !== ingressPath) {
60
+ res.statusCode = 404;
61
+ res.end(JSON.stringify({ error: "CBIO_LOCAL_SECRET_NOT_FOUND" }));
62
+ return;
63
+ }
64
+ if (!isAuthorized(req, authToken)) {
65
+ res.statusCode = 401;
66
+ res.end(JSON.stringify({ error: "CBIO_LOCAL_SECRET_UNAUTHORIZED" }));
67
+ return;
68
+ }
69
+ if (settled && once) {
70
+ res.statusCode = 409;
71
+ res.end(JSON.stringify({ error: "CBIO_LOCAL_SECRET_ALREADY_CONSUMED" }));
72
+ return;
73
+ }
74
+ const body = await readRequestBody(req, maxBodyBytes);
75
+ const secretValue = extractSecret(body, req.headers["content-type"]);
76
+ if (vault.hasSecret(secretName)) {
77
+ if (!overwrite || !vault.updateSecret) {
78
+ res.statusCode = 409;
79
+ res.end(JSON.stringify({ error: "CBIO_LOCAL_SECRET_ALREADY_EXISTS" }));
80
+ return;
81
+ }
82
+ await vault.updateSecret(secretName, secretValue);
83
+ }
84
+ else {
85
+ await vault.addSecret(secretName, secretValue, { allowedOrigins });
86
+ }
87
+ settled = true;
88
+ completionResult = { secretName };
89
+ for (const waiter of waiters.splice(0)) {
90
+ waiter.resolve(completionResult);
91
+ }
92
+ res.statusCode = 201;
93
+ res.setHeader("Content-Type", "application/json");
94
+ res.end(JSON.stringify({ ok: true, secretName }));
95
+ if (once) {
96
+ setImmediate(() => {
97
+ server.close();
98
+ });
99
+ }
100
+ }
101
+ catch (error) {
102
+ if (!settled && completionError == null) {
103
+ completionError = error;
104
+ for (const waiter of waiters.splice(0)) {
105
+ waiter.reject(error);
106
+ }
107
+ }
108
+ const code = error instanceof Error ? error.message : "CBIO_LOCAL_SECRET_INGEST_FAILED";
109
+ res.statusCode = code === "CBIO_LOCAL_SECRET_TOO_LARGE" ? 413 : 400;
110
+ res.setHeader("Content-Type", "application/json");
111
+ res.end(JSON.stringify({ error: code }));
112
+ }
113
+ });
114
+ server.on("close", () => {
115
+ if (!settled && completionError == null) {
116
+ completionError = new Error("CBIO_LOCAL_SECRET_INGRESS_CLOSED");
117
+ for (const waiter of waiters.splice(0)) {
118
+ waiter.reject(completionError);
119
+ }
120
+ }
121
+ });
122
+ await new Promise((resolve, reject) => {
123
+ server.once("error", reject);
124
+ server.listen(port, host, () => {
125
+ server.off("error", reject);
126
+ resolve();
127
+ });
128
+ });
129
+ const address = server.address();
130
+ if (!address || typeof address === "string") {
131
+ throw new Error("Failed to determine local secret ingress address.");
132
+ }
133
+ const resolvedAddress = address;
134
+ const baseUrl = `http://${host}:${resolvedAddress.port}`;
135
+ const url = `${baseUrl}${ingressPath}`;
136
+ return {
137
+ secretName,
138
+ host,
139
+ port: resolvedAddress.port,
140
+ path: ingressPath,
141
+ baseUrl,
142
+ url,
143
+ authToken,
144
+ close() {
145
+ return new Promise((resolve, reject) => {
146
+ server.close((err) => (err ? reject(err) : resolve()));
147
+ });
148
+ },
149
+ waitForSecret() {
150
+ if (completionResult) {
151
+ return Promise.resolve(completionResult);
152
+ }
153
+ if (completionError != null) {
154
+ return Promise.reject(completionError);
155
+ }
156
+ return new Promise((resolve, reject) => {
157
+ waiters.push({ resolve, reject });
158
+ });
159
+ },
160
+ };
161
+ }
162
+ //# sourceMappingURL=localSecretIngress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localSecretIngress.js","sourceRoot":"","sources":["../../src/http/localSecretIngress.ts"],"names":[],"mappings":"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"}
@@ -3,12 +3,14 @@
3
3
  * Owner, Agent, storage, errors. Consumer surface only.
4
4
  */
5
5
  export { CbioIdentity, CbioAgent } from "../agent/agent.js";
6
- export type { ActivityLogConfig, GetAgentOptions, IssuedCapabilityName, ManagedAgentHandleConfig, ManagedAgentCapabilityInfo, ManagedAgentCapabilityStatus, ManagedAgentContext, ManagedAgentIssueConfig, ManagedAgentIssueOptions, ManagedAgentLoadOptions, ManagedAgentStorageConfig, RegisterChildIdentityOptions, RegisterChildIdentityResult, IdentityLoadKeys, IdentityLoadOptions, RuntimePermissionName, RuntimePermissions, } from "../agent/agent.js";
6
+ export type { ActivityLogConfig, GetAgentOptions, IssuedCapabilityName, ManagedAgentHandleConfig, ManagedAgentCapabilityInfo, ManagedAgentCapabilityStatus, ManagedAgentContext, ManagedAgentIssueConfig, ManagedAgentIssueOptions, ManagedAgentLoadOptions, ManagedAgentStorageConfig, RegisterChildIdentityOptions, RegisterChildIdentityResult, IdentityLoadKeys, IdentityLoadOptions, RuntimePermissionName, RuntimePermissions, SecretValidationResult, SecretValidationStatus, SecretValidator, SecretValidatorHandle, SecretProofAlgorithm, StartLocalSecretIngressOptions, } from "../agent/agent.js";
7
7
  export type { MergeResult } from "../vault/vault.js";
8
8
  export type { FetchFailure, FetchJsonAndAddSecretOptions, FetchJsonAndUpdateSecretOptions, FetchResult, FetchSuccess, } from "../http/secretAcquisition.js";
9
- export { generateIdentityKeys } from "../protocol/crypto.js";
9
+ export { generateIdentityKeys, derivePublicKey } from "../protocol/crypto.js";
10
10
  export { IdentityError, IdentityErrorCode } from "../errors.js";
11
11
  export type { IStorageProvider } from "../storage/provider.js";
12
12
  export { FsStorageProvider } from "../storage/fs.js";
13
13
  export { MemoryStorageProvider } from "../storage/memory.js";
14
14
  export { startLocalAuthProxy, type FetchWithAuthLike, type LocalAuthProxyOptions, type LocalAuthProxyHandle, } from "../http/localAuthProxy.js";
15
+ export { genericHttpValidator, type GenericHttpSecretValidatorConfig, } from "../http/genericSecretValidator.js";
16
+ export { startLocalSecretIngress, type LocalSecretIngressHandle, type LocalSecretIngressOptions, type LocalSecretIngressResult, type LocalSecretIngressWriter, } from "../http/localSecretIngress.js";
@@ -3,9 +3,11 @@
3
3
  * Owner, Agent, storage, errors. Consumer surface only.
4
4
  */
5
5
  export { CbioIdentity, CbioAgent } from "../agent/agent.js";
6
- export { generateIdentityKeys } from "../protocol/crypto.js";
6
+ export { generateIdentityKeys, derivePublicKey } from "../protocol/crypto.js";
7
7
  export { IdentityError, IdentityErrorCode } from "../errors.js";
8
8
  export { FsStorageProvider } from "../storage/fs.js";
9
9
  export { MemoryStorageProvider } from "../storage/memory.js";
10
10
  export { startLocalAuthProxy, } from "../http/localAuthProxy.js";
11
+ export { genericHttpValidator, } from "../http/genericSecretValidator.js";
12
+ export { startLocalSecretIngress, } from "../http/localSecretIngress.js";
11
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AA4B5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EACL,mBAAmB,GAIpB,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAkC5D,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EACL,mBAAmB,GAIpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,oBAAoB,GAErB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,uBAAuB,GAKxB,MAAM,+BAA+B,CAAC"}
@@ -15,6 +15,9 @@ export declare class CbioVault {
15
15
  #private;
16
16
  private static readonly PERSIST_SALT;
17
17
  private static readonly VERSIONED_SECRET_PREFIX;
18
+ private static readonly REVOCATION_PREFIX;
19
+ private static readonly SECRET_OPERATION_WINDOW_MS;
20
+ private static readonly SECRET_OPERATION_LIMIT;
18
21
  /**
19
22
  * @internal Used by Owner. Binds storage and loads vault from disk. Do not call directly.
20
23
  */
@@ -39,6 +42,11 @@ export declare class CbioVault {
39
42
  * WARNING: This is an ADMIN-ONLY method. Do not use in Agent's autonomous logic.
40
43
  */
41
44
  getSecret(secretName: string): string | undefined;
45
+ internalHasSecret(secretName: string): boolean;
46
+ internalGetSecret(secretName: string): string | undefined;
47
+ internalSetSecret(secretName: string, secretValue: string, options?: SecretPolicy): Promise<void>;
48
+ internalDeleteSecret(secretName: string): Promise<void>;
49
+ assertSecretOperationAllowed(secretName: string, operation: string): void;
42
50
  /**
43
51
  * Case 4: Permanently delete a secret from memory and disk.
44
52
  * @internal @admin
@@ -65,6 +73,7 @@ export declare class CbioVault {
65
73
  unseal(kdk: string, sealed: string): void;
66
74
  hasSecret(secretName: string): boolean;
67
75
  listSecretNames(): string[];
76
+ listAllSecretNames(): string[];
68
77
  /**
69
78
  * Read activity log. Owner-only. Returns [] if activity log not enabled.
70
79
  */
@@ -7,6 +7,7 @@ import { FsStorageProvider } from '../storage/fs.js';
7
7
  import { appendActivityLog, readActivityLog, readActivityLogMetadata, } from '../audit/ActivityLog.js';
8
8
  import { sealBlob, unsealBlob } from '../sealed/seal.js';
9
9
  import { normalizeSecretPolicyOrigin } from './secretPolicy.js';
10
+ import { CHILD_KEY_PREFIX } from '../protocol/childSecretNaming.js';
10
11
  const VAULT_FORMAT_VERSION = "v1.0";
11
12
  const SUPPORTED_VERSIONS = ["v1.0"];
12
13
  /**
@@ -25,11 +26,18 @@ export class CbioVault {
25
26
  #activityLogKey = null;
26
27
  #activityLogKeyIsDerived = false;
27
28
  #identityFingerprint = null;
29
+ #secretOperationHistory = new Map();
28
30
  static PERSIST_SALT = "CBIO_VAULT_PERSIST_V1";
29
31
  static VERSIONED_SECRET_PREFIX = "__cbio_secret_version__:";
32
+ static REVOCATION_PREFIX = "cbio:revocation:";
33
+ static SECRET_OPERATION_WINDOW_MS = 60_000;
34
+ static SECRET_OPERATION_LIMIT = 60;
30
35
  static #isVersionStorageKey(secretName) {
31
36
  return secretName.startsWith(_a.VERSIONED_SECRET_PREFIX);
32
37
  }
38
+ static #isInternalSecretName(secretName) {
39
+ return secretName.startsWith(CHILD_KEY_PREFIX) || secretName.startsWith(_a.REVOCATION_PREFIX);
40
+ }
33
41
  static #normalizeAllowedOrigins(allowedOrigins) {
34
42
  if (!allowedOrigins || allowedOrigins.length === 0)
35
43
  return undefined;
@@ -50,6 +58,9 @@ export class CbioVault {
50
58
  if (_a.#isVersionStorageKey(secretName)) {
51
59
  throw new IdentityError(IdentityErrorCode.SECRET_NOT_FOUND, `Secret name '${secretName}' is reserved for internal version storage.`);
52
60
  }
61
+ if (_a.#isInternalSecretName(secretName)) {
62
+ throw new IdentityError(IdentityErrorCode.PERMISSION_DENIED, `Secret name '${secretName}' is reserved for internal runtime records.`);
63
+ }
53
64
  }
54
65
  #createVersionedSecret(secretName, secretValue, options) {
55
66
  const versionId = 'v1';
@@ -110,8 +121,8 @@ export class CbioVault {
110
121
  async #replaceSecretFromVault(secretName, otherVault) {
111
122
  const otherMetadata = otherVault.#secretMetadata.get(secretName);
112
123
  if (otherMetadata) {
113
- if (this.hasSecret(secretName)) {
114
- await this.deleteSecret(secretName);
124
+ if (this.internalHasSecret(secretName)) {
125
+ await this.internalDeleteSecret(secretName);
115
126
  }
116
127
  const clonedMetadata = this.#cloneSecretMetadata(secretName, otherMetadata);
117
128
  for (const version of Object.values(clonedMetadata.versions)) {
@@ -169,7 +180,7 @@ export class CbioVault {
169
180
  */
170
181
  async addSecret(secretName, secretValue, options) {
171
182
  this.#assertPublicSecretName(secretName);
172
- if (this.hasSecret(secretName)) {
183
+ if (this.#secretMetadata.has(secretName)) {
173
184
  throw new IdentityError(IdentityErrorCode.SECRET_ALREADY_EXISTS, `Secret name '${secretName}' already exists. Use updateSecret to overwrite.`);
174
185
  }
175
186
  this.#createVersionedSecret(secretName, secretValue, { allowedOrigins: options?.allowedOrigins });
@@ -234,6 +245,54 @@ export class CbioVault {
234
245
  return undefined;
235
246
  return this.#getActiveVersionValue(secretName);
236
247
  }
248
+ internalHasSecret(secretName) {
249
+ return this.#secretMetadata.has(secretName);
250
+ }
251
+ internalGetSecret(secretName) {
252
+ return this.#getActiveVersionValue(secretName);
253
+ }
254
+ async internalSetSecret(secretName, secretValue, options) {
255
+ if (this.#secretMetadata.has(secretName)) {
256
+ const metadata = this.#secretMetadata.get(secretName);
257
+ if (!metadata) {
258
+ throw new IdentityError(IdentityErrorCode.SECRET_NOT_FOUND, `Secret name '${secretName}' not found.`);
259
+ }
260
+ const active = metadata.versions[metadata.activeVersion];
261
+ if (!active) {
262
+ throw new IdentityError(IdentityErrorCode.SECRET_NOT_FOUND, `Secret name '${secretName}' has no active version.`);
263
+ }
264
+ this.#secrets.set(active.storageKey, secretValue);
265
+ if (options?.allowedOrigins) {
266
+ metadata.allowedOrigins = _a.#normalizeAllowedOrigins(options.allowedOrigins);
267
+ }
268
+ }
269
+ else {
270
+ this.#createVersionedSecret(secretName, secretValue, { allowedOrigins: options?.allowedOrigins });
271
+ }
272
+ await this.#persistIfPossible();
273
+ }
274
+ async internalDeleteSecret(secretName) {
275
+ const metadata = this.#secretMetadata.get(secretName);
276
+ if (!metadata) {
277
+ throw new IdentityError(IdentityErrorCode.SECRET_NOT_FOUND, `Secret name '${secretName}' not found. Nothing to delete.`);
278
+ }
279
+ for (const version of Object.values(metadata.versions)) {
280
+ this.#secrets.delete(version.storageKey);
281
+ }
282
+ this.#secretMetadata.delete(secretName);
283
+ await this.#persistIfPossible();
284
+ }
285
+ assertSecretOperationAllowed(secretName, operation) {
286
+ const key = `${operation}:${secretName}`;
287
+ const now = Date.now();
288
+ const existing = this.#secretOperationHistory.get(key) ?? [];
289
+ const recent = existing.filter((ts) => now - ts < _a.SECRET_OPERATION_WINDOW_MS);
290
+ if (recent.length >= _a.SECRET_OPERATION_LIMIT) {
291
+ throw new IdentityError(IdentityErrorCode.SECRET_OPERATION_RATE_LIMITED, `Secret operation '${operation}' is rate-limited for '${secretName}'.`);
292
+ }
293
+ recent.push(now);
294
+ this.#secretOperationHistory.set(key, recent);
295
+ }
237
296
  /**
238
297
  * Case 4: Permanently delete a secret from memory and disk.
239
298
  * @internal @admin
@@ -452,12 +511,22 @@ export class CbioVault {
452
511
  hasSecret(secretName) {
453
512
  if (_a.#isVersionStorageKey(secretName))
454
513
  return false;
514
+ if (_a.#isInternalSecretName(secretName))
515
+ return false;
455
516
  if (this.#secrets.has(secretName)) {
456
517
  throw new IdentityError(IdentityErrorCode.VAULT_CORRUPTED, `Secret '${secretName}' exists in legacy format. Legacy vault format is no longer supported.`);
457
518
  }
458
519
  return this.#secretMetadata.has(secretName);
459
520
  }
460
521
  listSecretNames() {
522
+ for (const secretName of this.#secrets.keys()) {
523
+ if (!_a.#isVersionStorageKey(secretName)) {
524
+ throw new IdentityError(IdentityErrorCode.VAULT_CORRUPTED, `Secret '${secretName}' exists in legacy format. Legacy vault format is no longer supported.`);
525
+ }
526
+ }
527
+ return Array.from(this.#secretMetadata.keys()).filter((secretName) => !_a.#isInternalSecretName(secretName));
528
+ }
529
+ listAllSecretNames() {
461
530
  for (const secretName of this.#secrets.keys()) {
462
531
  if (!_a.#isVersionStorageKey(secretName)) {
463
532
  throw new IdentityError(IdentityErrorCode.VAULT_CORRUPTED, `Secret '${secretName}' exists in legacy format. Legacy vault format is no longer supported.`);
@@ -492,8 +561,8 @@ export class CbioVault {
492
561
  throw new IdentityError(IdentityErrorCode.MERGE_IDENTITY_MISMATCH, "Cannot merge vaults belonging to different identities.");
493
562
  }
494
563
  const conflicts = [];
495
- for (const secretName of otherVault.listSecretNames()) {
496
- if (this.hasSecret(secretName))
564
+ for (const secretName of otherVault.listAllSecretNames()) {
565
+ if (this.internalHasSecret(secretName))
497
566
  conflicts.push(secretName);
498
567
  }
499
568
  if (conflicts.length > 0 && onConflict === 'abort') {
@@ -508,8 +577,8 @@ export class CbioVault {
508
577
  const added = [];
509
578
  const skipped = [];
510
579
  const overwritten = [];
511
- for (const secretName of otherVault.listSecretNames()) {
512
- if (!this.hasSecret(secretName)) {
580
+ for (const secretName of otherVault.listAllSecretNames()) {
581
+ if (!this.internalHasSecret(secretName)) {
513
582
  await this.#replaceSecretFromVault(secretName, otherVault);
514
583
  added.push(secretName);
515
584
  }
@@ -1 +1 @@
1
- {"version":3,"file":"vault.js","sourceRoot":"","sources":["../../src/vault/vault.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vault.js","sourceRoot":"","sources":["../../src/vault/vault.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EACH,iBAAiB,EACjB,eAAe,EACf,uBAAuB,GAG1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEpE,MAAM,oBAAoB,GAAG,MAAM,CAAC;AACpC,MAAM,kBAAkB,GAAG,CAAC,MAAM,CAAC,CAAC;AAsBpC;;;;;;GAMG;AACH,MAAM,OAAO,SAAS;IAClB,QAAQ,GAAwB,IAAI,GAAG,EAAE,CAAC;IAC1C,eAAe,GAAsC,IAAI,GAAG,EAAE,CAAC;IAC/D,WAAW,GAAkB,IAAI,CAAC;IAClC,QAAQ,GAA4B,IAAI,CAAC;IACzC,WAAW,GAAkB,IAAI,CAAC;IAClC,eAAe,GAAkB,IAAI,CAAC;IACtC,wBAAwB,GAAG,KAAK,CAAC;IACjC,oBAAoB,GAAkB,IAAI,CAAC;IAC3C,uBAAuB,GAA0B,IAAI,GAAG,EAAE,CAAC;IACnD,MAAM,CAAU,YAAY,GAAG,uBAAuB,CAAC;IACvD,MAAM,CAAU,uBAAuB,GAAG,0BAA0B,CAAC;IACrE,MAAM,CAAU,iBAAiB,GAAG,kBAAkB,CAAC;IACvD,MAAM,CAAU,0BAA0B,GAAG,MAAM,CAAC;IACpD,MAAM,CAAU,sBAAsB,GAAG,EAAE,CAAC;IAEpD,MAAM,CAAC,oBAAoB,CAAC,UAAkB;QAC1C,OAAO,UAAU,CAAC,UAAU,CAAC,EAAS,CAAC,uBAAuB,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,CAAC,qBAAqB,CAAC,UAAkB;QAC3C,OAAO,UAAU,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,EAAS,CAAC,iBAAiB,CAAC,CAAC;IACzG,CAAC;IAED,MAAM,CAAC,wBAAwB,CAAC,cAAkC;QAC9D,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QACrE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAChE,IAAI,CAAC;gBACD,OAAO,2BAA2B,CAAC,MAAM,CAAC,CAAC;YAC/C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,MAAM,IAAI,aAAa,CACnB,iBAAiB,CAAC,sBAAsB,EACxC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACzD,CAAC;YACN,CAAC;QACL,CAAC,CAAC,CAAC,CAAC,CAAC;QACL,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1D,CAAC;IAED,sBAAsB,CAAC,UAAkB,EAAE,SAAiB;QACxD,OAAO,GAAG,EAAS,CAAC,uBAAuB,GAAG,UAAU,IAAI,SAAS,EAAE,CAAC;IAC5E,CAAC;IAED,uBAAuB,CAAC,UAAkB;QACtC,IAAI,EAAS,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,aAAa,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,gBAAgB,UAAU,6CAA6C,CAAC,CAAC;QACzI,CAAC;QACD,IAAI,EAAS,CAAC,qBAAqB,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,aAAa,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,gBAAgB,UAAU,6CAA6C,CAAC,CAAC;QAC1I,CAAC;IACL,CAAC;IAED,sBAAsB,CAAC,UAAkB,EAAE,WAAmB,EAAE,OAAuE;QACnI,MAAM,SAAS,GAAG,IAAI,CAAC;QACvB,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAC3C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE;YACjC,aAAa,EAAE,SAAS;YACxB,iBAAiB,EAAE,CAAC;YACpB,QAAQ,EAAE;gBACN,CAAC,SAAS,CAAC,EAAE;oBACT,UAAU;oBACV,KAAK,EAAE,QAAQ;oBACf,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;oBACrB,GAAG,CAAC,OAAO,EAAE,YAAY,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC;iBACvE;aACJ;YACD,GAAG,CAAC,OAAO,EAAE,cAAc,IAAI,EAAE,cAAc,EAAE,EAAS,CAAC,wBAAwB,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;SACjH,CAAC,CAAC;IACP,CAAC;IAED,sBAAsB,CAAC,UAAkB;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACtD,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE9B,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,aAAa,CACnB,iBAAiB,CAAC,eAAe,EACjC,WAAW,UAAU,wEAAwE,CAChG,CAAC;QACN,CAAC;QAED,MAAM,IAAI,aAAa,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,gBAAgB,UAAU,oCAAoC,CAAC,CAAC;IAChI,CAAC;IAED,sBAAsB,CAAC,UAAkB;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,aAAa,CACnB,iBAAiB,CAAC,eAAe,EACjC,WAAW,UAAU,wEAAwE,CAChG,CAAC;YACN,CAAC;YACD,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACzD,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,CAAC;IAED,oBAAoB,CAAC,UAAkB,EAAE,QAA8B;QACnE,MAAM,QAAQ,GAAwC,EAAE,CAAC;QACzD,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnE,QAAQ,CAAC,SAAS,CAAC,GAAG;gBAClB,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1E,CAAC;QACN,CAAC;QACD,OAAO;YACH,aAAa,EAAE,QAAQ,CAAC,aAAa;YACrC,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;YAC7C,QAAQ;YACR,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACvF,CAAC;IACN,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,UAAkB,EAAE,UAAqB;QACnE,MAAM,aAAa,GAAG,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACjE,IAAI,aAAa,EAAE,CAAC;YAChB,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;YAChD,CAAC;YACD,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;YAC5E,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3D,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBAC1D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACtB,MAAM,IAAI,aAAa,CACnB,iBAAiB,CAAC,gBAAgB,EAClC,WAAW,UAAU,yCAAyC,CACjE,CAAC;gBACN,CAAC;gBACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACjD,CAAC;YACD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;YACrD,OAAO;QACX,CAAC;QAED,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,aAAa,CACnB,iBAAiB,CAAC,eAAe,EACjC,WAAW,UAAU,wFAAwF,CAChH,CAAC;QACN,CAAC;QAED,MAAM,IAAI,aAAa,CACnB,iBAAiB,CAAC,gBAAgB,EAClC,WAAW,UAAU,0CAA0C,CAClE,CAAC;IACN,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CACjB,MAAc,EACd,UAAkB,EAClB,OAA0B,EAC1B,cAAuB,EACvB,uBAAuB,GAAG,KAAK;QAE/B,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE,uBAAuB,CAAC,CAAC;QAChG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CACd,MAAc,EACd,IAAY,EACZ,UAAkB,EAClB,OAA0B,EAC1B,cAAuB,EACvB,uBAAuB,GAAG,KAAK;QAE/B,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE,uBAAuB,CAAC,CAAC;QAChG,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,cAAc,CAChB,MAAc,EACd,UAAkB,EAClB,OAA0B,EAC1B,cAAuB,EACvB,uBAAuB,GAAG,KAAK;QAE/B,MAAM,QAAQ,GAAG,OAAO,IAAI,IAAI,iBAAiB,EAAE,CAAC;QACpD,MAAM,OAAO,GAAG,GAAG,UAAU,oBAAoB,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACzF,IAAI,CAAC;YACD,MAAM,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACnD,MAAM,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,MAAM,GAAG,GAAG,gEAAgE;gBAChE,UAAU,CAAC,CAAC,OAAO,IAAI;gBACvB,2EAA2E,CAAC;YACxF,MAAM,IAAI,aAAa,CAAC,iBAAiB,CAAC,wBAAwB,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3F,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,eAAe,GAAG,cAAc,IAAI,IAAI,CAAC;QAC9C,IAAI,CAAC,wBAAwB,GAAG,uBAAuB,CAAC;QAExD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,YAAY,EAAE,CAAC;QAC9C,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5F,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,UAAkB,EAAE,WAAmB,EAAE,OAAsB;QAC3E,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;QACzC,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,aAAa,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,gBAAgB,UAAU,kDAAkD,CAAC,CAAC;QACnJ,CAAC;QACD,IAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE,WAAW,EAAE,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;QAClG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,WAAmB;QACtD,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,MAAM,IAAI,aAAa,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,gBAAgB,UAAU,oCAAoC,CAAC,CAAC;QAChI,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,IAAI,aAAa,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,gBAAgB,UAAU,0BAA0B,CAAC,CAAC;QACtH,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAClD,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,UAAkB,EAAE,cAAiC;QAC/E,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;QACzD,QAAQ,CAAC,cAAc,GAAG,EAAS,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;QAC7E,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,WAAmB,EAAE,YAAoB;QAC5E,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC;QAC/C,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,aAAa,CACnB,iBAAiB,CAAC,sBAAsB,EACxC,WAAW,UAAU,+DAA+D,CACvF,CAAC;QACN,CAAC;QACD,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;QACtD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,aAAa,CACnB,iBAAiB,CAAC,6BAA6B,EAC/C,WAAW,UAAU,+BAA+B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,gBAAgB,EAAE,CACjH,CAAC;QACN,CAAC;QAED,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC1D,IAAI,OAAO;YAAE,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC;QAE1C,MAAM,SAAS,GAAG,IAAI,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QACnD,QAAQ,CAAC,iBAAiB,IAAI,CAAC,CAAC;QAChC,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAC3C,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG;YAC3B,UAAU;YACV,KAAK,EAAE,QAAQ;YACf,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,YAAY,EAAE,gBAAgB;SACjC,CAAC;QACF,QAAQ,CAAC,aAAa,GAAG,SAAS,CAAC;QACnC,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAC,UAAkB;QACxB,IAAI,EAAS,CAAC,oBAAoB,CAAC,UAAU,CAAC;YAAE,OAAO,SAAS,CAAC;QACjE,OAAO,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;IACnD,CAAC;IAED,iBAAiB,CAAC,UAAkB;QAChC,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAChD,CAAC;IAED,iBAAiB,CAAC,UAAkB;QAChC,OAAO,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,UAAkB,EAAE,WAAmB,EAAE,OAAsB;QACnF,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACtD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACZ,MAAM,IAAI,aAAa,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,gBAAgB,UAAU,cAAc,CAAC,CAAC;YAC1G,CAAC;YACD,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YACzD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACV,MAAM,IAAI,aAAa,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,gBAAgB,UAAU,0BAA0B,CAAC,CAAC;YACtH,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YAClD,IAAI,OAAO,EAAE,cAAc,EAAE,CAAC;gBAC1B,QAAQ,CAAC,cAAc,GAAG,EAAS,CAAC,wBAAwB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACzF,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE,WAAW,EAAE,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;QACtG,CAAC;QACD,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,UAAkB;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,MAAM,IAAI,aAAa,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,gBAAgB,UAAU,iCAAiC,CAAC,CAAC;QAC7H,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACxC,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACpC,CAAC;IAED,4BAA4B,CAAC,UAAkB,EAAE,SAAiB;QAC9D,MAAM,GAAG,GAAG,GAAG,SAAS,IAAI,UAAU,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAC7D,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,EAAS,CAAC,0BAA0B,CAAC,CAAC;QACxF,IAAI,MAAM,CAAC,MAAM,IAAI,EAAS,CAAC,sBAAsB,EAAE,CAAC;YACpD,MAAM,IAAI,aAAa,CACnB,iBAAiB,CAAC,6BAA6B,EAC/C,qBAAqB,SAAS,0BAA0B,UAAU,IAAI,CACzE,CAAC;QACN,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAAC,UAAkB;QACjC,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,MAAM,IAAI,aAAa,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,gBAAgB,UAAU,iCAAiC,CAAC,CAAC;QAC7H,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACxC,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,KAAuB;QAC5C,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAC9F,MAAM,QAAQ,GAAG;YACb,CAAC,EAAE,CAAC;YACJ,OAAO,EAAE,iBAAiB,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;YACjE,UAAU,EAAE,IAAI,CAAC,WAAW;SAC/B,CAAC;QACF,MAAM,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAClF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,sBAAsB,CAAC,KAAuB;QAChD,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,MAAc,EAAE,UAAmB,EAAE,OAA0B;QACtE,MAAM,kBAAkB,GAAG,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC;QAC1D,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACtB,MAAM,IAAI,aAAa,CACnB,iBAAiB,CAAC,wBAAwB,EAC1C,4EAA4E,CAC/E,CAAC;QACN,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,iBAAiB,EAAE,CAAC;QACrE,MAAM,MAAM,GAAG,GAAG,kBAAkB,MAAM,CAAC;QAE3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE1E,MAAM,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,MAAM,IAAI,aAAa,CACnB,iBAAiB,CAAC,4BAA4B,EAC9C,sDAAsD,MAAM,EAAE,CACjE,CAAC;QACN,CAAC;QACD,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChF,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,IAAI,aAAa,CACnB,iBAAiB,CAAC,4BAA4B,EAC9C,mEAAmE,MAAM,yBAAyB,CACrG,CAAC;QACN,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACJ,MAAM,QAAQ,CAAC,KAAK,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;YACjD,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAAc;QAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACrD,OAAO,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,GAAW;QACZ,IAAI,CAAC;YACD,OAAO,QAAQ,CAAC;gBACZ,OAAO,EAAE,oBAAoB;gBAC7B,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC1C,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC;aAC3D,EAAE,GAAG,CAAC,CAAC;QACZ,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,IAAI,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,WAAW;gBAAE,MAAM,CAAC,CAAC;YACtD,MAAM,IAAI,aAAa,CAAC,iBAAiB,CAAC,WAAW,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9G,CAAC;IACL,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,GAAW,EAAE,MAAc;QAC9B,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACrC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,IAAI,CAAC,YAAY,aAAa;gBAAE,MAAM,CAAC,CAAC;YACxC,MAAM,IAAI,aAAa,CAAC,iBAAiB,CAAC,WAAW,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAChH,CAAC;IACL,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,MAAc;QACnC,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,EAAS,CAAC,YAAY,CAAC,CAAC;QAC5D,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC;QAC7E,MAAM,OAAO,GAAG;YACZ,OAAO,EAAE,oBAAoB;YAC7B,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC1C,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC;SAC3D,CAAC;QACF,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;QACvE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACpF,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAChC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,gBAAgB,CAAC,IAAS;QACtB,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC5D,MAAM,IAAI,aAAa,CACnB,iBAAiB,CAAC,eAAe,EACjC,iFAAiF,CACpF,CAAC;QACN,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,cAAc,KAAK,QAAQ,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;YAC1E,MAAM,IAAI,aAAa,CACnB,iBAAiB,CAAC,eAAe,EACjC,wFAAwF,CAC3F,CAAC;QACN,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,CAC1B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAsD,CAAC,CACzC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,kBAAkB;QACpB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACxD,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvE,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAc,EAAE,UAAkB,EAAE,OAA0B,EAAE,OAAgC,UAAU;QAClH,MAAM,QAAQ,GAAG,OAAO,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,iBAAiB,EAAE,CAAC;QACrE,MAAM,MAAM,GAAG,GAAG,UAAU,MAAM,CAAC;QAEnC,MAAM,OAAO,GAAG,KAAK,EAAE,CAAS,EAAoB,EAAE;YAClD,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACtC,IAAI,CAAC,MAAM;oBAAE,OAAO,KAAK,CAAC;gBAC1B,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAClD,OAAO,IAAI,CAAC;YAChB,CAAC;YAAC,MAAM,CAAC;gBACL,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC,CAAC;QAEF,IAAI,MAAM,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAC9C,OAAO;QACX,CAAC;QAED,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QACtD,IAAI,WAAW,EAAE,CAAC;YACd,IAAI,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxB,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;oBAClB,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;gBAC9C,CAAC;qBAAM,CAAC;oBACJ,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC3C,IAAI,MAAM;wBAAE,MAAM,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;oBACrD,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAClC,CAAC;gBACD,OAAO;YACX,CAAC;YACD,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;gBACtB,MAAM,IAAI,aAAa,CAAC,iBAAiB,CAAC,oBAAoB,EAAE,yBAAyB,UAAU,EAAE,CAAC,CAAC;YAC3G,CAAC;YACD,OAAO;QACX,CAAC;QAED,IAAI,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACJ,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC3C,IAAI,MAAM;oBAAE,MAAM,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBACrD,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAClC,CAAC;YACD,OAAO;QACX,CAAC;QAED,uHAAuH;QACvH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAChC,MAAM,IAAI,aAAa,CACnB,iBAAiB,CAAC,eAAe,EACjC,yBAAyB,UAAU,QAAQ,MAAM,2DAA2D,CAC/G,CAAC;QACN,CAAC;QACD,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC;YAClC,IAAI,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;gBAC1B,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;oBACxD,IAAI,CAAC,eAAe,GAAG,GAAG,IAAI,IAAI,CAAC,iBAAiB,CAAC;gBACzD,CAAC;gBACD,OAAO;YACX,CAAC;QACL,CAAC;QAED,MAAM,IAAI,aAAa,CACnB,iBAAiB,CAAC,oBAAoB,EACtC,yBAAyB,UAAU,8IAA8I,CACpL,CAAC;IACN,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,MAAc,EAAE,IAAY;QACnD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC9C,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,MAAc,EAAE,MAAc;QACvD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,EAAS,CAAC,YAAY,CAAC,CAAC;QAC5D,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC;QAC7E,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAClC,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACpC,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;QAC3E,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACzB,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAgB,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAChG,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACnC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,aAAa,CACnB,iBAAiB,CAAC,eAAe,EACjC,yBAAyB,IAAI,CAAC,OAAO,IAAI,WAAW,yEAAyE,CAChI,CAAC;QACN,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,SAAS,CAAC,UAAkB;QACxB,IAAI,EAAS,CAAC,oBAAoB,CAAC,UAAU,CAAC;YAAE,OAAO,KAAK,CAAC;QAC7D,IAAI,EAAS,CAAC,qBAAqB,CAAC,UAAU,CAAC;YAAE,OAAO,KAAK,CAAC;QAC9D,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,aAAa,CACnB,iBAAiB,CAAC,eAAe,EACjC,WAAW,UAAU,wEAAwE,CAChG,CAAC;QACN,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAChD,CAAC;IAED,eAAe;QACX,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;YAC5C,IAAI,CAAC,EAAS,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9C,MAAM,IAAI,aAAa,CACnB,iBAAiB,CAAC,eAAe,EACjC,WAAW,UAAU,wEAAwE,CAChG,CAAC;YACN,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAS,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC;IACxH,CAAC;IAED,kBAAkB;QACd,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;YAC5C,IAAI,CAAC,EAAS,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9C,MAAM,IAAI,aAAa,CACnB,iBAAiB,CAAC,eAAe,EACjC,WAAW,UAAU,wEAAwE,CAChG,CAAC;YACN,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAChB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO,EAAE,CAAC;QACvD,OAAO,MAAM,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,sBAAsB;QACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO,IAAI,CAAC;QACzD,OAAO,MAAM,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IAC9E,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,SAAS,CAAC,UAAqB,EAAE,OAAyD;QAC5F,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,OAAO,CAAC;QAElD,IAAI,IAAI,CAAC,oBAAoB,KAAK,UAAU,CAAC,oBAAoB,EAAE,CAAC;YAChE,MAAM,IAAI,aAAa,CAAC,iBAAiB,CAAC,uBAAuB,EAAE,wDAAwD,CAAC,CAAC;QACjI,CAAC;QAED,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,KAAK,MAAM,UAAU,IAAI,UAAU,CAAC,kBAAkB,EAAE,EAAE,CAAC;YACvD,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC;gBAAE,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvE,CAAC;QAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;YACjD,OAAO;gBACH,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,EAAE;gBACT,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,EAAE;gBACf,SAAS;aACZ,CAAC;QACN,CAAC;QAED,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,KAAK,MAAM,UAAU,IAAI,UAAU,CAAC,kBAAkB,EAAE,EAAE,CAAC;YACvD,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;gBACtC,MAAM,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;gBAC3D,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC3B,CAAC;iBAAM,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;gBAC/B,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7B,CAAC;iBAAM,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;gBACpC,MAAM,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;gBAC3D,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACjC,CAAC;QACL,CAAC;QACD,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAChC,OAAO;YACH,MAAM,EAAE,IAAI;YACZ,KAAK;YACL,OAAO;YACP,WAAW;SACd,CAAC;IACN,CAAC"}