@calltelemetry/ct-lab-mcp 0.3.2 → 0.4.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.
@@ -11,8 +11,103 @@ import { CapacityExceededError, GlobalCapacityExceededError, DatastoreCapacityEx
11
11
  import { ProtectedVmViolationError } from "../guardrails/types.js";
12
12
  import { applianceSshExecutor } from "../appliance/executor.js";
13
13
  import { MockProxmoxClient } from "../proxmox/mock.js";
14
- import { canonicalMode, canonicalOperationBlocked } from "./canonical-guard.js";
14
+ import { canonicalMode, runCanonicalOperation } from "./canonical-guard.js";
15
15
  export const ProvisionVmInputShape = {
16
+ assetId: z
17
+ .string()
18
+ .min(1)
19
+ .optional()
20
+ .describe("Canonical asset ID to create; required when canonical apply needs an exact resulting identity."),
21
+ hostAssetId: z
22
+ .string()
23
+ .min(1)
24
+ .optional()
25
+ .describe("Canonical inventory host asset ID; required in canonical mode."),
26
+ templateAssetId: z
27
+ .string()
28
+ .min(1)
29
+ .optional()
30
+ .describe("Canonical inventory template asset ID; required for canonical template provisioning."),
31
+ source: z
32
+ .enum(["template", "alma97-cloud", "alma97-iso"])
33
+ .optional()
34
+ .default("template")
35
+ .describe("Canonical provisioning source. Use alma97-cloud for a fresh Proxmox base-image VM."),
36
+ purpose: z
37
+ .string()
38
+ .min(1)
39
+ .optional()
40
+ .describe("Explicit UAT/provisioning purpose recorded in the canonical receipt."),
41
+ operationId: z
42
+ .string()
43
+ .min(1)
44
+ .optional()
45
+ .describe("Unique idempotency operation ID for the canonical provision receipt."),
46
+ ttlHours: z
47
+ .number()
48
+ .int()
49
+ .positive()
50
+ .optional()
51
+ .describe("Canonical lease duration in hours."),
52
+ version: z
53
+ .string()
54
+ .min(1)
55
+ .optional()
56
+ .describe("Exact immutable release version or approved stable alias."),
57
+ diskGb: z
58
+ .number()
59
+ .positive()
60
+ .optional()
61
+ .describe("Requested disk size in GB for canonical provisioning."),
62
+ apply: z
63
+ .boolean()
64
+ .optional()
65
+ .default(false)
66
+ .describe("Execute canonical provisioning. Omit for the reviewed dry-run plan."),
67
+ confirmAssetId: z
68
+ .string()
69
+ .min(1)
70
+ .optional()
71
+ .describe("Exact resulting asset ID confirmation required with apply=true."),
72
+ outputFile: z
73
+ .string()
74
+ .min(1)
75
+ .optional()
76
+ .describe("Separate reviewed inventory candidate output path."),
77
+ receiptFile: z
78
+ .string()
79
+ .min(1)
80
+ .optional()
81
+ .describe("Canonical provision plan/receipt path."),
82
+ workspaceRoot: z
83
+ .string()
84
+ .min(1)
85
+ .optional()
86
+ .describe("Materialized workspace root required for direct immutable AlmaLinux provisioning."),
87
+ nativeCliDir: z
88
+ .string()
89
+ .min(1)
90
+ .optional()
91
+ .describe("Immutable native CLI artifact directory for direct provisioning."),
92
+ importStorage: z
93
+ .string()
94
+ .min(1)
95
+ .optional()
96
+ .describe("Proxmox import-capable storage for alma97-cloud."),
97
+ releaseSha256: z
98
+ .string()
99
+ .min(1)
100
+ .optional()
101
+ .describe("Exact Call Telemetry release bundle SHA-256."),
102
+ cloudImageUrl: z.string().url().optional().describe("Approved AlmaLinux GenericCloud image URL."),
103
+ cloudImageSha256: z.string().min(1).optional().describe("Approved AlmaLinux GenericCloud image SHA-256."),
104
+ requiredFreeGb: z.number().int().nonnegative().optional().describe("Required datastore reserve after the requested disk."),
105
+ confirmVmPrefix: z.string().min(1).optional().describe("Exact VM name confirmation required for direct apply."),
106
+ confirmVmid: z.number().int().positive().optional().describe("Exact VMID confirmation required for alma97-cloud apply."),
107
+ confirmCloudImageSha256: z.string().min(1).optional().describe("Exact cloud image digest confirmation required for alma97-cloud apply."),
108
+ confirmReleaseSha256: z.string().min(1).optional().describe("Exact release digest confirmation required for direct apply."),
109
+ confirmExistingSmbiosUuid: z.string().min(1).optional().describe("Exact existing guest UUID confirmation for retained cloud recovery."),
110
+ recoverIncomplete: z.boolean().optional().default(false).describe("Resume one exact retained alma97-cloud pending operation after identity proof."),
16
111
  sourceVmIdOrName: z
17
112
  .union([z.string(), z.number()])
18
113
  .optional()
@@ -130,21 +225,118 @@ export const ProvisionVmInputShape = {
130
225
  };
131
226
  export const ProvisionVmInputSchema = z
132
227
  .object(ProvisionVmInputShape)
133
- .refine((data) => Boolean(data.sourceVmIdOrName || data.template), { message: "Either 'sourceVmIdOrName' or 'template' must be provided." })
134
- .refine((data) => Boolean(data.newVmName || data.name), { message: "Either 'newVmName' or 'name' must be provided." });
228
+ .refine((data) => data.source !== "template" || Boolean(data.sourceVmIdOrName || data.template || data.templateAssetId), { message: "Template provisioning requires sourceVmIdOrName, template, or templateAssetId." })
229
+ .refine((data) => data.source !== "template" || Boolean(data.newVmName || data.name), { message: "Template provisioning requires newVmName or name." });
135
230
  export async function handleProvisionVm(rawArgs, context) {
136
231
  let autoClaimId;
137
232
  let slotClaim;
138
233
  try {
139
- if (canonicalMode(context)) {
140
- return canonicalOperationBlocked("provision_vm", "canonical VM provisioning is not delegated to the legacy hypervisor manager until exact asset identity and receipts are available");
141
- }
142
234
  const parseResult = ProvisionVmInputSchema.safeParse(rawArgs);
143
235
  if (!parseResult.success) {
144
236
  const errMsg = parseResult.error.errors.map((e) => `${e.path.join(".")}: ${e.message}`).join("; ");
145
237
  return createToolErrorResult(ProxmoxErrorCode.VALIDATION_ERROR, errMsg);
146
238
  }
147
239
  const args = parseResult.data;
240
+ if (canonicalMode(context)) {
241
+ const source = args.source ?? "template";
242
+ const directSource = source !== "template";
243
+ const newName = args.newVmName ?? args.name;
244
+ if (!args.assetId ||
245
+ !args.hostAssetId ||
246
+ !newName ||
247
+ !args.purpose ||
248
+ !args.linearIssue ||
249
+ !args.operationId ||
250
+ args.memoryMb === undefined ||
251
+ args.cpuCores === undefined ||
252
+ args.diskGb === undefined ||
253
+ !args.storage ||
254
+ !args.networkBridge
255
+ || (source === "template" && (!args.templateAssetId || !args.ipAddress))
256
+ || (directSource && (!args.version || !args.workspaceRoot || !args.nativeCliDir))
257
+ || (source === "alma97-cloud" && !args.importStorage)) {
258
+ return createToolErrorResult(ProxmoxErrorCode.VALIDATION_ERROR, "Canonical provision_vm requires assetId, hostAssetId, name, memoryMb, cpuCores, diskGb, storage, networkBridge, purpose, linearIssue, and operationId; template requires templateAssetId, while direct sources require version, workspaceRoot, nativeCliDir, and alma97-cloud requires importStorage.");
259
+ }
260
+ if (args.apply && (!args.assetId || args.confirmAssetId !== args.assetId)) {
261
+ return createToolErrorResult(ProxmoxErrorCode.VALIDATION_ERROR, "Canonical apply requires assetId and confirmAssetId to match exactly.");
262
+ }
263
+ if (args.apply && (!args.outputFile || !args.receiptFile)) {
264
+ return createToolErrorResult(ProxmoxErrorCode.VALIDATION_ERROR, "Canonical apply requires separate outputFile and receiptFile paths.");
265
+ }
266
+ if (args.apply && directSource && (!args.confirmVmPrefix || !args.confirmReleaseSha256)) {
267
+ return createToolErrorResult(ProxmoxErrorCode.VALIDATION_ERROR, "Direct canonical apply requires confirmVmPrefix and confirmReleaseSha256.");
268
+ }
269
+ if (args.apply && source === "alma97-cloud" && (args.confirmVmid === undefined || !args.confirmCloudImageSha256)) {
270
+ return createToolErrorResult(ProxmoxErrorCode.VALIDATION_ERROR, "alma97-cloud apply requires confirmVmid and confirmCloudImageSha256.");
271
+ }
272
+ const command = [
273
+ "vm", "provision",
274
+ "--source", source,
275
+ ...(args.assetId ? ["--asset-id", args.assetId] : []),
276
+ "--host-asset-id", args.hostAssetId,
277
+ ...(args.templateAssetId ? ["--template-asset-id", args.templateAssetId] : []),
278
+ "--name", newName,
279
+ "--purpose", args.purpose,
280
+ "--linear-issue", args.linearIssue,
281
+ "--operation-id", args.operationId,
282
+ ];
283
+ if (args.ipAddress)
284
+ command.push("--ip", args.ipAddress);
285
+ if (args.memoryMb !== undefined)
286
+ command.push("--memory-mb", String(args.memoryMb));
287
+ if (args.cpuCores !== undefined)
288
+ command.push("--vcpus", String(args.cpuCores));
289
+ if (args.diskGb !== undefined)
290
+ command.push("--disk-gb", String(args.diskGb));
291
+ if (args.storage)
292
+ command.push("--storage", args.storage);
293
+ if (args.networkBridge)
294
+ command.push("--network", args.networkBridge);
295
+ if (args.vlan !== undefined)
296
+ command.push("--vlan-tag", String(args.vlan));
297
+ const vmid = args.newVmId ?? args.vmid;
298
+ if (vmid !== undefined)
299
+ command.push("--vmid", String(vmid));
300
+ if (args.version)
301
+ command.push("--version", args.version);
302
+ if (args.workspaceRoot)
303
+ command.push("--workspace-root", args.workspaceRoot);
304
+ if (args.nativeCliDir)
305
+ command.push("--native-cli-dir", args.nativeCliDir);
306
+ if (args.importStorage)
307
+ command.push("--import-storage", args.importStorage);
308
+ if (args.releaseSha256)
309
+ command.push("--release-sha256", args.releaseSha256);
310
+ if (args.cloudImageUrl)
311
+ command.push("--cloud-image-url", args.cloudImageUrl);
312
+ if (args.cloudImageSha256)
313
+ command.push("--cloud-image-sha256", args.cloudImageSha256);
314
+ if (args.requiredFreeGb !== undefined)
315
+ command.push("--required-free-gb", String(args.requiredFreeGb));
316
+ const ttlHours = args.ttlHours;
317
+ if (ttlHours !== undefined)
318
+ command.push("--ttl-hours", String(ttlHours));
319
+ if (args.recoverIncomplete)
320
+ command.push("--recover-incomplete");
321
+ if (args.apply) {
322
+ command.push("--apply", "--confirm-asset-id", args.confirmAssetId, "--output-file", args.outputFile, "--receipt-file", args.receiptFile);
323
+ if (args.confirmVmPrefix)
324
+ command.push("--confirm-vm-prefix", args.confirmVmPrefix);
325
+ if (args.confirmVmid !== undefined)
326
+ command.push("--confirm-vmid", String(args.confirmVmid));
327
+ if (args.confirmCloudImageSha256)
328
+ command.push("--confirm-cloud-image-sha256", args.confirmCloudImageSha256);
329
+ if (args.confirmReleaseSha256)
330
+ command.push("--confirm-release-sha256", args.confirmReleaseSha256);
331
+ if (args.confirmExistingSmbiosUuid)
332
+ command.push("--confirm-existing-smbios-uuid", args.confirmExistingSmbiosUuid);
333
+ }
334
+ if (!args.apply && args.outputFile)
335
+ command.push("--output-file", args.outputFile);
336
+ if (!args.apply && args.receiptFile)
337
+ command.push("--receipt-file", args.receiptFile);
338
+ return runCanonicalOperation(context.canonicalBridge, "provision_vm", command);
339
+ }
148
340
  const source = (args.sourceVmIdOrName ?? args.template);
149
341
  const newName = (args.newVmName ?? args.name);
150
342
  const targetHost = args.targetHost || args.host;
@@ -304,6 +496,35 @@ export async function handleProvisionVm(rawArgs, context) {
304
496
  // Auto Provision VM (Milestone M4)
305
497
  // ============================================================================
306
498
  export const AutoProvisionVmInputShape = {
499
+ assetId: z.string().min(1).optional().describe("Canonical resulting asset ID."),
500
+ hostAssetId: z.string().min(1).optional().describe("Canonical inventory host asset ID."),
501
+ templateAssetId: z.string().min(1).optional().describe("Canonical inventory template asset ID."),
502
+ source: z.enum(["template", "alma97-cloud", "alma97-iso"]).optional().default("template").describe("Canonical provisioning source."),
503
+ purpose: z.string().min(1).optional().describe("Explicit canonical provisioning purpose."),
504
+ operationId: z.string().min(1).optional().describe("Unique canonical provision operation ID."),
505
+ ttlHours: z.number().int().positive().optional().describe("Canonical lease duration in hours."),
506
+ apply: z.boolean().optional().default(false).describe("Execute canonical provisioning; otherwise return a plan."),
507
+ confirmAssetId: z.string().min(1).optional().describe("Exact asset confirmation for apply=true."),
508
+ outputFile: z.string().min(1).optional().describe("Separate reviewed inventory candidate output path."),
509
+ receiptFile: z.string().min(1).optional().describe("Canonical provision plan/receipt path."),
510
+ workspaceRoot: z.string().min(1).optional().describe("Materialized workspace root required for direct immutable AlmaLinux provisioning."),
511
+ nativeCliDir: z.string().min(1).optional().describe("Immutable native CLI artifact directory for direct provisioning."),
512
+ importStorage: z.string().min(1).optional().describe("Proxmox import-capable storage for alma97-cloud."),
513
+ releaseSha256: z.string().min(1).optional().describe("Exact Call Telemetry release bundle SHA-256."),
514
+ cloudImageUrl: z.string().url().optional().describe("Approved AlmaLinux GenericCloud image URL."),
515
+ cloudImageSha256: z.string().min(1).optional().describe("Approved AlmaLinux GenericCloud image SHA-256."),
516
+ requiredFreeGb: z.number().int().nonnegative().optional().describe("Required datastore reserve after the requested disk."),
517
+ confirmVmPrefix: z.string().min(1).optional().describe("Exact VM name confirmation required for direct apply."),
518
+ confirmVmid: z.number().int().positive().optional().describe("Exact VMID confirmation required for alma97-cloud apply."),
519
+ confirmCloudImageSha256: z.string().min(1).optional().describe("Exact cloud image digest confirmation required for alma97-cloud apply."),
520
+ confirmReleaseSha256: z.string().min(1).optional().describe("Exact release digest confirmation required for direct apply."),
521
+ confirmExistingSmbiosUuid: z.string().min(1).optional().describe("Exact existing guest UUID confirmation for retained cloud recovery."),
522
+ recoverIncomplete: z.boolean().optional().default(false).describe("Resume one exact retained alma97-cloud pending operation after identity proof."),
523
+ diskGb: z.number().positive().optional().describe("Requested disk size in GB."),
524
+ memoryMb: z.number().positive().optional().describe("Requested memory in MB."),
525
+ cpuCores: z.number().int().positive().optional().describe("Requested vCPU count."),
526
+ newVmId: z.union([z.string(), z.number()]).optional().describe("Optional target VMID."),
527
+ vmid: z.union([z.string(), z.number()]).optional().describe("Alias for newVmId."),
307
528
  template: z
308
529
  .union([z.string(), z.number()])
309
530
  .optional()
@@ -420,15 +641,112 @@ export async function handleAutoProvisionVm(rawArgs, context) {
420
641
  let createdHost;
421
642
  const startTime = Date.now();
422
643
  try {
423
- if (canonicalMode(context)) {
424
- return canonicalOperationBlocked("auto_provision_vm", "canonical VM provisioning is not delegated to the legacy hypervisor manager until exact asset identity and receipts are available");
425
- }
426
644
  const parseResult = AutoProvisionVmInputSchema.safeParse(rawArgs);
427
645
  if (!parseResult.success) {
428
646
  const errMsg = parseResult.error.errors.map((e) => `${e.path.join(".")}: ${e.message}`).join("; ");
429
647
  return createToolErrorResult(ProxmoxErrorCode.VALIDATION_ERROR, errMsg);
430
648
  }
431
649
  const args = parseResult.data;
650
+ if (canonicalMode(context)) {
651
+ const source = args.source ?? "template";
652
+ const directSource = source !== "template";
653
+ const newName = args.name || args.newVmName;
654
+ if (!args.assetId ||
655
+ !args.hostAssetId ||
656
+ !newName ||
657
+ !args.purpose ||
658
+ !args.linearIssue ||
659
+ !args.operationId ||
660
+ args.memoryMb === undefined ||
661
+ args.cpuCores === undefined ||
662
+ args.diskGb === undefined ||
663
+ !args.storage ||
664
+ !args.networkBridge
665
+ || (source === "template" && (!args.templateAssetId || !args.ipAddress))
666
+ || (directSource && (!args.targetVersion && !args.version || !args.workspaceRoot || !args.nativeCliDir))
667
+ || (source === "alma97-cloud" && !args.importStorage)) {
668
+ return createToolErrorResult(ProxmoxErrorCode.VALIDATION_ERROR, "Canonical auto_provision_vm requires assetId, hostAssetId, name, memoryMb, cpuCores, diskGb, storage, networkBridge, purpose, linearIssue, and operationId; template requires templateAssetId, while direct sources require version, workspaceRoot, nativeCliDir, and alma97-cloud requires importStorage.");
669
+ }
670
+ if (args.apply && (!args.assetId || args.confirmAssetId !== args.assetId)) {
671
+ return createToolErrorResult(ProxmoxErrorCode.VALIDATION_ERROR, "Canonical apply requires assetId and confirmAssetId to match exactly.");
672
+ }
673
+ if (args.apply && (!args.outputFile || !args.receiptFile)) {
674
+ return createToolErrorResult(ProxmoxErrorCode.VALIDATION_ERROR, "Canonical apply requires separate outputFile and receiptFile paths.");
675
+ }
676
+ if (args.apply && directSource && (!args.confirmVmPrefix || !args.confirmReleaseSha256)) {
677
+ return createToolErrorResult(ProxmoxErrorCode.VALIDATION_ERROR, "Direct canonical apply requires confirmVmPrefix and confirmReleaseSha256.");
678
+ }
679
+ if (args.apply && source === "alma97-cloud" && (args.confirmVmid === undefined || !args.confirmCloudImageSha256)) {
680
+ return createToolErrorResult(ProxmoxErrorCode.VALIDATION_ERROR, "alma97-cloud apply requires confirmVmid and confirmCloudImageSha256.");
681
+ }
682
+ const command = [
683
+ "vm", "provision", "--source", source,
684
+ ...(args.assetId ? ["--asset-id", args.assetId] : []),
685
+ "--host-asset-id", args.hostAssetId,
686
+ ...(args.templateAssetId ? ["--template-asset-id", args.templateAssetId] : []),
687
+ "--name", newName,
688
+ "--purpose", args.purpose,
689
+ "--linear-issue", args.linearIssue,
690
+ "--operation-id", args.operationId,
691
+ ];
692
+ if (args.ipAddress)
693
+ command.push("--ip", args.ipAddress);
694
+ if (args.memoryMb !== undefined)
695
+ command.push("--memory-mb", String(args.memoryMb));
696
+ if (args.cpuCores !== undefined)
697
+ command.push("--vcpus", String(args.cpuCores));
698
+ if (args.diskGb !== undefined)
699
+ command.push("--disk-gb", String(args.diskGb));
700
+ if (args.storage)
701
+ command.push("--storage", args.storage);
702
+ if (args.networkBridge)
703
+ command.push("--network", args.networkBridge);
704
+ if (args.vlan !== undefined)
705
+ command.push("--vlan-tag", String(args.vlan));
706
+ const vmid = args.newVmId ?? args.vmid;
707
+ if (vmid !== undefined)
708
+ command.push("--vmid", String(vmid));
709
+ const version = args.targetVersion || args.version;
710
+ if (version)
711
+ command.push("--version", version);
712
+ if (args.workspaceRoot)
713
+ command.push("--workspace-root", args.workspaceRoot);
714
+ if (args.nativeCliDir)
715
+ command.push("--native-cli-dir", args.nativeCliDir);
716
+ if (args.importStorage)
717
+ command.push("--import-storage", args.importStorage);
718
+ if (args.releaseSha256)
719
+ command.push("--release-sha256", args.releaseSha256);
720
+ if (args.cloudImageUrl)
721
+ command.push("--cloud-image-url", args.cloudImageUrl);
722
+ if (args.cloudImageSha256)
723
+ command.push("--cloud-image-sha256", args.cloudImageSha256);
724
+ if (args.requiredFreeGb !== undefined)
725
+ command.push("--required-free-gb", String(args.requiredFreeGb));
726
+ const ttlHours = args.ttlHours ?? (args.durationMinutes !== undefined ? args.durationMinutes / 60 : undefined);
727
+ if (ttlHours !== undefined)
728
+ command.push("--ttl-hours", String(ttlHours));
729
+ if (args.recoverIncomplete)
730
+ command.push("--recover-incomplete");
731
+ if (args.apply) {
732
+ command.push("--apply", "--confirm-asset-id", args.confirmAssetId, "--output-file", args.outputFile, "--receipt-file", args.receiptFile);
733
+ if (args.confirmVmPrefix)
734
+ command.push("--confirm-vm-prefix", args.confirmVmPrefix);
735
+ if (args.confirmVmid !== undefined)
736
+ command.push("--confirm-vmid", String(args.confirmVmid));
737
+ if (args.confirmCloudImageSha256)
738
+ command.push("--confirm-cloud-image-sha256", args.confirmCloudImageSha256);
739
+ if (args.confirmReleaseSha256)
740
+ command.push("--confirm-release-sha256", args.confirmReleaseSha256);
741
+ if (args.confirmExistingSmbiosUuid)
742
+ command.push("--confirm-existing-smbios-uuid", args.confirmExistingSmbiosUuid);
743
+ }
744
+ if (!args.apply && args.outputFile)
745
+ command.push("--output-file", args.outputFile);
746
+ if (!args.apply && args.receiptFile)
747
+ command.push("--receipt-file", args.receiptFile);
748
+ return runCanonicalOperation(context.canonicalBridge, "auto_provision_vm", command);
749
+ }
432
750
  const rawHost = args.host || args.targetHost;
433
751
  const targetHost = !rawHost || rawHost === "auto" ? undefined : rawHost;
434
752
  const hypervisorType = args.hypervisorType || "any";
@@ -1 +1 @@
1
- {"version":3,"file":"provision-tools.js","sourceRoot":"","sources":["../../../src/tools/provision-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provision-tools.js","sourceRoot":"","sources":["../../../src/tools/provision-tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAkB,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC1F,OAAO,EACL,qBAAqB,EACrB,yBAAyB,GAE1B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC3B,8BAA8B,GAE/B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE5E,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,gGAAgG,CAAC;IAC7G,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,gEAAgE,CAAC;IAC7E,eAAe,EAAE,CAAC;SACf,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,sFAAsF,CAAC;IACnG,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,UAAU,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;SAChD,QAAQ,EAAE;SACV,OAAO,CAAC,UAAU,CAAC;SACnB,QAAQ,CAAC,oFAAoF,CAAC;IACjG,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,sEAAsE,CAAC;IACnF,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,sEAAsE,CAAC;IACnF,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,EAAE;SACV,QAAQ,EAAE;SACV,QAAQ,CAAC,oCAAoC,CAAC;IACjD,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,2DAA2D,CAAC;IACxE,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,EAAE;SACV,QAAQ,CAAC,uDAAuD,CAAC;IACpE,KAAK,EAAE,CAAC;SACL,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,qEAAqE,CAAC;IAClF,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,iEAAiE,CAAC;IAC9E,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,oDAAoD,CAAC;IACjE,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,wCAAwC,CAAC;IACrD,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,mFAAmF,CAAC;IAChG,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,kEAAkE,CAAC;IAC/E,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,kDAAkD,CAAC;IAC/D,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,8CAA8C,CAAC;IAC3D,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;IACjG,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;IACzG,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;IAC1H,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;IAC/G,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;IACxH,uBAAuB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wEAAwE,CAAC;IACxI,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;IAC3H,yBAAyB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qEAAqE,CAAC;IACvI,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,gFAAgF,CAAC;IACnJ,gBAAgB,EAAE,CAAC;SAChB,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;SAC/B,QAAQ,EAAE;SACV,QAAQ,CAAC,sGAAsG,CAAC;IACnH,QAAQ,EAAE,CAAC;SACR,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;SAC/B,QAAQ,EAAE;SACV,QAAQ,CAAC,6BAA6B,CAAC;IAC1C,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,6EAA6E,CAAC;IAC1F,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,sBAAsB,CAAC;IACnC,OAAO,EAAE,CAAC;SACP,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;SAC/B,QAAQ,EAAE;SACV,QAAQ,CAAC,gEAAgE,CAAC;IAC7E,IAAI,EAAE,CAAC;SACJ,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;SAC/B,QAAQ,EAAE;SACV,QAAQ,CAAC,oBAAoB,CAAC;IACjC,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,mHAAmH,CAAC;IAChI,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,uBAAuB,CAAC;IACpC,cAAc,EAAE,CAAC;SACd,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;SAChC,QAAQ,EAAE;SACV,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,qEAAqE,CAAC;IAClF,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,sDAAsD,CAAC;IACnE,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,0CAA0C,CAAC;IACvD,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;SACP,QAAQ,EAAE;SACV,QAAQ,CAAC,mCAAmC,CAAC;IAChD,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,EAAE;SACV,QAAQ,CAAC,qBAAqB,CAAC;IAClC,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,IAAI,CAAC;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,sCAAsC,CAAC;IACnD,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,yEAAyE,CAAC;IACtF,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,mEAAmE,CAAC;IAChF,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,wDAAwD,CAAC;IACrE,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,uCAAuC,CAAC;IACpD,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,4DAA4D,CAAC;IACzE,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,qFAAqF,CAAC;IAClG,aAAa,EAAE,CAAC;SACb,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CAAC,iFAAiF,CAAC;IAC9F,KAAK,EAAE,CAAC;SACL,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,0BAA0B,CAAC;IACvC,IAAI,EAAE,CAAC;SACJ,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;SACxC,QAAQ,EAAE;SACV,QAAQ,CAAC,wEAAwE,CAAC;IACrF,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,qCAAqC,CAAC;IAClD,SAAS,EAAE,CAAC;SACT,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CAAC,uDAAuD,CAAC;IACpE,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,4CAA4C,CAAC;CAC1D,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC;KACpC,MAAM,CAAC,qBAAqB,CAAC;KAC7B,MAAM,CACL,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,EAC/G,EAAE,OAAO,EAAE,gFAAgF,EAAE,CAC9F;KACA,MAAM,CACL,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,EAC5E,EAAE,OAAO,EAAE,mDAAmD,EAAE,CACjE,CAAC;AAKJ,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAA4B,EAC5B,OAAoB;IAEpB,IAAI,WAA+B,CAAC;IACpC,IAAI,SAAsC,CAAC;IAE3C,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,sBAAsB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC9D,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnG,OAAO,qBAAqB,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;QAE9B,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,UAAU,CAAC;YACzC,MAAM,YAAY,GAAG,MAAM,KAAK,UAAU,CAAC;YAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC;YAC5C,IACE,CAAC,IAAI,CAAC,OAAO;gBACb,CAAC,IAAI,CAAC,WAAW;gBACjB,CAAC,OAAO;gBACR,CAAC,IAAI,CAAC,OAAO;gBACb,CAAC,IAAI,CAAC,WAAW;gBACjB,CAAC,IAAI,CAAC,WAAW;gBACjB,IAAI,CAAC,QAAQ,KAAK,SAAS;gBAC3B,IAAI,CAAC,QAAQ,KAAK,SAAS;gBAC3B,IAAI,CAAC,MAAM,KAAK,SAAS;gBACzB,CAAC,IAAI,CAAC,OAAO;gBACb,CAAC,IAAI,CAAC,aAAa;mBAChB,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;mBACrE,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;mBAC9E,CAAC,MAAM,KAAK,cAAc,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,EACrD,CAAC;gBACD,OAAO,qBAAqB,CAC1B,gBAAgB,CAAC,gBAAgB,EACjC,uSAAuS,CACxS,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1E,OAAO,qBAAqB,CAC1B,gBAAgB,CAAC,gBAAgB,EACjC,uEAAuE,CACxE,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC1D,OAAO,qBAAqB,CAC1B,gBAAgB,CAAC,gBAAgB,EACjC,qEAAqE,CACtE,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,CAAC,KAAK,IAAI,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC;gBACxF,OAAO,qBAAqB,CAC1B,gBAAgB,CAAC,gBAAgB,EACjC,2EAA2E,CAC5E,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,CAAC,KAAK,IAAI,MAAM,KAAK,cAAc,IAAI,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC;gBACjH,OAAO,qBAAqB,CAC1B,gBAAgB,CAAC,gBAAgB,EACjC,sEAAsE,CACvE,CAAC;YACJ,CAAC;YACD,MAAM,OAAO,GAAG;gBACd,IAAI,EAAE,WAAW;gBACjB,UAAU,EAAE,MAAM;gBAClB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrD,iBAAiB,EAAE,IAAI,CAAC,WAAW;gBACnC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,qBAAqB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9E,QAAQ,EAAE,OAAO;gBACjB,WAAW,EAAE,IAAI,CAAC,OAAO;gBACzB,gBAAgB,EAAE,IAAI,CAAC,WAAW;gBAClC,gBAAgB,EAAE,IAAI,CAAC,WAAW;aACnC,CAAC;YAEF,IAAI,IAAI,CAAC,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACzD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpF,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAChF,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9E,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1D,IAAI,IAAI,CAAC,aAAa;gBAAE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACtE,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC3E,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC;YACvC,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7D,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1D,IAAI,IAAI,CAAC,aAAa;gBAAE,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC7E,IAAI,IAAI,CAAC,YAAY;gBAAE,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAC3E,IAAI,IAAI,CAAC,aAAa;gBAAE,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC7E,IAAI,IAAI,CAAC,aAAa;gBAAE,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC7E,IAAI,IAAI,CAAC,aAAa;gBAAE,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC9E,IAAI,IAAI,CAAC,gBAAgB;gBAAE,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACvF,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;YACvG,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC/B,IAAI,QAAQ,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC1E,IAAI,IAAI,CAAC,iBAAiB;gBAAE,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACjE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,EAAE,IAAI,CAAC,cAAe,EAAE,eAAe,EAAE,IAAI,CAAC,UAAW,EAAE,gBAAgB,EAAE,IAAI,CAAC,WAAY,CAAC,CAAC;gBAC5I,IAAI,IAAI,CAAC,eAAe;oBAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;gBACpF,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;oBAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC7F,IAAI,IAAI,CAAC,uBAAuB;oBAAE,OAAO,CAAC,IAAI,CAAC,8BAA8B,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;gBAC7G,IAAI,IAAI,CAAC,oBAAoB;oBAAE,OAAO,CAAC,IAAI,CAAC,0BAA0B,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBACnG,IAAI,IAAI,CAAC,yBAAyB;oBAAE,OAAO,CAAC,IAAI,CAAC,gCAAgC,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC;YACrH,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU;gBAAE,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACnF,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW;gBAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACtF,OAAO,qBAAqB,CAAC,OAAO,CAAC,eAAe,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;QACjF,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,QAAQ,CAAE,CAAC;QACzD,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAE,CAAC;QAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC;QAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;QAEjF,IAAI,UAAU,GAAa,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;YACzB,CAAC;iBAAM,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACzC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC;QAED,+EAA+E;QAC/E,IAAI,mBAAmB,GAAG,UAAU,CAAC;QACrC,IAAI,CAAC,mBAAmB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;YACtD,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACnE,IAAI,WAAW,EAAE,CAAC;gBAChB,mBAAmB,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC;YACpD,CAAC;QACH,CAAC;QAED,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;QAE/B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC;gBACtD,GAAG,EAAE,WAAW,IAAI,OAAO;gBAC3B,SAAS,EAAE,SAAS,IAAI,OAAO;gBAC/B,WAAW,EAAE,WAAW,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;gBAChF,UAAU,EAAE,mBAAmB;gBAC/B,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,eAAe,EAAE,EAAE;gBACnB,OAAO,EAAE,uBAAuB,OAAO,EAAE;aAC1C,CAAC,CAAC;YACH,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC;YAClC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;YAC9B,SAAS,GAAG,WAAW,CAAC;QAC1B,CAAC;QAED,wDAAwD;QACxD,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;QACvF,MAAM,WAAW,GAA4D;YAC3E,gBAAgB,EAAE,MAAM;YACxB,SAAS,EAAE,OAAO;YAClB,OAAO,EAAE,OAAO;YAChB,UAAU,EAAE,mBAAmB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACrF,cAAc,EAAE,cAAc;YAC9B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,2BAA2B,WAAW,IAAI,YAAY,GAAG;YAC1F,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;YACnG,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC;YAC1C,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EAAE,WAAW;YACxB,aAAa,EAAE,aAAa;YAC5B,IAAI,EAAE,UAAU;YAChB,SAAS,EAAE,SAAS;YACpB,WAAW,EAAE,OAAO;SACrB,CAAC;QAEF,IAAI,eAAkC,CAAC;QAEvC,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;YAC9B,eAAe,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7E,CAAC;aAAM,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAClC,uCAAuC;YACvC,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,CAAC,UAAU,IAAI,cAAc,CAAQ,CAAC;YACrD,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACxD,MAAM,YAAY,GAAG,MAAM,YAAY,iBAAiB,CAAC;YACzD,MAAM,UAAU,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;YAChG,MAAM,aAAa,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YAEzF,MAAM,UAAU,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC;YACrD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE;gBACzE,IAAI,EAAE,WAAW,CAAC,SAAS;gBAC3B,WAAW,EAAE,WAAW,CAAC,WAAW;aACrC,CAAC,CAAC;YAEH,IAAI,aAAa,EAAE,CAAC;gBAClB,IAAI,CAAC;oBACH,MAAM,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBACnC,CAAC;gBAAC,MAAM,CAAC;oBACP,qBAAqB;gBACvB,CAAC;YACH,CAAC;YAED,eAAe,GAAG;gBAChB,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC;gBACxB,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,MAAM;gBAChB,UAAU,EAAE,SAAS;gBACrB,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;gBAC7C,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;gBACnD,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,WAAW;gBACxB,WAAW,EAAE,OAAO;gBACpB,QAAQ,EAAE,SAAS,CAAC,IAAI;gBACxB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,IAAI,EAAE,YAAY;gBAClB,iBAAiB,EAAE;oBACjB,QAAQ,EAAE,MAAM;oBAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa;oBACrC,IAAI,EAAE,CAAC,YAAY;iBACpB;aACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;QAED,2CAA2C;QAC3C,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;YAC1F,CAAC;YAAC,OAAO,SAAS,EAAE,CAAC;gBACnB,OAAO,CAAC,KAAK,CAAC,oDAAoD,EAAE,SAAS,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,qBAAqB,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;QAEpE,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,SAAS,CAAC,QAAQ;iBACzB;aACF;YACD,iBAAiB,EAAE,SAAS,CAAC,iBAAiB;SAC/C,CAAC;IACJ,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,+EAA+E;QAC/E,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YACrD,CAAC;YAAC,MAAM,CAAC;gBACP,wBAAwB;YAC1B,CAAC;QACH,CAAC;QAED,IAAI,KAAK,YAAY,yBAAyB,EAAE,CAAC;YAC/C,OAAO,qBAAqB,CAAC,gBAAgB,CAAC,0BAA0B,EAAE,KAAK,CAAC,OAAO,EAAE;gBACvF,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;aACrB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,KAAK,YAAY,qBAAqB,IAAI,KAAK,YAAY,2BAA2B,IAAI,KAAK,YAAY,8BAA8B,EAAE,CAAC;YAC9I,OAAO,qBAAqB,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAClF,CAAC;QAED,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnE,OAAO,qBAAqB,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;IACzE,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,mCAAmC;AACnC,+EAA+E;AAE/E,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IAC/E,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;IACxF,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;IAChG,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IACpI,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IAC1F,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IAC9F,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;IAC/F,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,0DAA0D,CAAC;IACjH,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IACjG,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;IACvG,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;IAC5F,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mFAAmF,CAAC;IACzI,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kEAAkE,CAAC;IACvH,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;IACxG,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;IACpG,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;IACjG,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;IACzG,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;IAC1H,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;IAC/G,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;IACxH,uBAAuB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wEAAwE,CAAC;IACxI,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;IAC3H,yBAAyB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qEAAqE,CAAC;IACvI,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,gFAAgF,CAAC;IACnJ,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IAC/E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IAC9E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IAClF,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IACvF,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IACjF,QAAQ,EAAE,CAAC;SACR,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;SAC/B,QAAQ,EAAE;SACV,QAAQ,CAAC,0HAA0H,CAAC;IACvI,gBAAgB,EAAE,CAAC;SAChB,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;SAC/B,QAAQ,EAAE;SACV,QAAQ,CAAC,qBAAqB,CAAC;IAClC,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,0EAA0E,CAAC;IACvF,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,iBAAiB,CAAC;IAC9B,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,8IAA8I,CAAC;IAC3J,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,iBAAiB,CAAC;IAC9B,cAAc,EAAE,CAAC;SACd,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;SAChC,QAAQ,EAAE;SACV,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,qEAAqE,CAAC;IAClF,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,8EAA8E,CAAC;IAC3F,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,0BAA0B,CAAC;IACvC,YAAY,EAAE,CAAC;SACZ,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;SAC1E,QAAQ,EAAE;SACV,QAAQ,CAAC,wEAAwE,CAAC;IACrF,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,iDAAiD,CAAC;IAC9D,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,4DAA4D,CAAC;IACzE,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,8BAA8B,CAAC;IAC3C,IAAI,EAAE,CAAC;SACJ,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;SACxC,QAAQ,EAAE;SACV,QAAQ,CAAC,iDAAiD,CAAC;IAC9D,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,qCAAqC,CAAC;IAClD,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,IAAI,CAAC;SACT,QAAQ,EAAE;SACV,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,CAAC,0CAA0C,CAAC;IACvD,eAAe,EAAE,CAAC;SACf,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,IAAI,CAAC;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,uBAAuB,CAAC;IACpC,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,IAAI,CAAC;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,sCAAsC,CAAC;IACnD,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,yEAAyE,CAAC;IACtF,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,wDAAwD,CAAC;IACrE,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,uCAAuC,CAAC;IACpD,YAAY,EAAE,CAAC;SACZ,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CAAC,8EAA8E,CAAC;IAC3F,mBAAmB,EAAE,CAAC;SACnB,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,GAAG,CAAC;SACZ,QAAQ,CAAC,sDAAsD,CAAC;CACpE,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAI9E,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAAgC,EAChC,OAAoB;IAEpB,IAAI,WAAwC,CAAC;IAC7C,IAAI,WAAwC,CAAC;IAC7C,IAAI,WAA+B,CAAC;IACpC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,0BAA0B,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAClE,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnG,OAAO,qBAAqB,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;QAE9B,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,UAAU,CAAC;YACzC,MAAM,YAAY,GAAG,MAAM,KAAK,UAAU,CAAC;YAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC;YAC5C,IACE,CAAC,IAAI,CAAC,OAAO;gBACb,CAAC,IAAI,CAAC,WAAW;gBACjB,CAAC,OAAO;gBACR,CAAC,IAAI,CAAC,OAAO;gBACb,CAAC,IAAI,CAAC,WAAW;gBACjB,CAAC,IAAI,CAAC,WAAW;gBACjB,IAAI,CAAC,QAAQ,KAAK,SAAS;gBAC3B,IAAI,CAAC,QAAQ,KAAK,SAAS;gBAC3B,IAAI,CAAC,MAAM,KAAK,SAAS;gBACzB,CAAC,IAAI,CAAC,OAAO;gBACb,CAAC,IAAI,CAAC,aAAa;mBAChB,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;mBACrE,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;mBACrG,CAAC,MAAM,KAAK,cAAc,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,EACrD,CAAC;gBACD,OAAO,qBAAqB,CAC1B,gBAAgB,CAAC,gBAAgB,EACjC,4SAA4S,CAC7S,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1E,OAAO,qBAAqB,CAC1B,gBAAgB,CAAC,gBAAgB,EACjC,uEAAuE,CACxE,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC1D,OAAO,qBAAqB,CAC1B,gBAAgB,CAAC,gBAAgB,EACjC,qEAAqE,CACtE,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,CAAC,KAAK,IAAI,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC;gBACxF,OAAO,qBAAqB,CAC1B,gBAAgB,CAAC,gBAAgB,EACjC,2EAA2E,CAC5E,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,CAAC,KAAK,IAAI,MAAM,KAAK,cAAc,IAAI,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC;gBACjH,OAAO,qBAAqB,CAC1B,gBAAgB,CAAC,gBAAgB,EACjC,sEAAsE,CACvE,CAAC;YACJ,CAAC;YACD,MAAM,OAAO,GAAG;gBACd,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM;gBACrC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrD,iBAAiB,EAAE,IAAI,CAAC,WAAW;gBACnC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,qBAAqB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9E,QAAQ,EAAE,OAAO;gBACjB,WAAW,EAAE,IAAI,CAAC,OAAO;gBACzB,gBAAgB,EAAE,IAAI,CAAC,WAAW;gBAClC,gBAAgB,EAAE,IAAI,CAAC,WAAW;aACnC,CAAC;YAEF,IAAI,IAAI,CAAC,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACzD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpF,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAChF,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9E,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1D,IAAI,IAAI,CAAC,aAAa;gBAAE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACtE,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC3E,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC;YACvC,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC;YACnD,IAAI,OAAO;gBAAE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAChD,IAAI,IAAI,CAAC,aAAa;gBAAE,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC7E,IAAI,IAAI,CAAC,YAAY;gBAAE,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAC3E,IAAI,IAAI,CAAC,aAAa;gBAAE,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC7E,IAAI,IAAI,CAAC,aAAa;gBAAE,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC7E,IAAI,IAAI,CAAC,aAAa;gBAAE,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC9E,IAAI,IAAI,CAAC,gBAAgB;gBAAE,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACvF,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;YACvG,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC/G,IAAI,QAAQ,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC1E,IAAI,IAAI,CAAC,iBAAiB;gBAAE,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACjE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,EAAE,IAAI,CAAC,cAAe,EAAE,eAAe,EAAE,IAAI,CAAC,UAAW,EAAE,gBAAgB,EAAE,IAAI,CAAC,WAAY,CAAC,CAAC;gBAC5I,IAAI,IAAI,CAAC,eAAe;oBAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;gBACpF,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;oBAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC7F,IAAI,IAAI,CAAC,uBAAuB;oBAAE,OAAO,CAAC,IAAI,CAAC,8BAA8B,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;gBAC7G,IAAI,IAAI,CAAC,oBAAoB;oBAAE,OAAO,CAAC,IAAI,CAAC,0BAA0B,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBACnG,IAAI,IAAI,CAAC,yBAAyB;oBAAE,OAAO,CAAC,IAAI,CAAC,gCAAgC,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC;YACrH,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU;gBAAE,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACnF,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW;gBAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACtF,OAAO,qBAAqB,CAAC,OAAO,CAAC,eAAe,EAAE,mBAAmB,EAAE,OAAO,CAAC,CAAC;QACtF,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC;QAC7C,MAAM,UAAU,GAAG,CAAC,OAAO,IAAI,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;QACxE,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC;QACpD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC;QACzD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC;QAChD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;QACtE,MAAM,MAAM,GACV,IAAI,CAAC,IAAI;YACT,IAAI,CAAC,SAAS;YACd,gBAAgB,YAAY,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;QAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,WAAW,IAAI,KAAK,IAAI,MAAM,CAAC;QACnE,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC;QACjD,MAAM,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,IAAI,GAAG,CAAC;QAE5D,IAAI,UAAU,GAAa,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;YACzB,CAAC;iBAAM,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACzC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC;QAED,qCAAqC;QACrC,WAAW,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC;YAChD,GAAG,EAAE,KAAK,IAAI,WAAW,IAAI,MAAM;YACnC,SAAS;YACT,WAAW,EAAE,WAAW,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9E,KAAK;YACL,YAAY;YACZ,aAAa;YACb,MAAM;YACN,UAAU,EAAE,UAAU;YACtB,UAAU;YACV,cAAc;YACd,eAAe;YACf,OAAO,EAAE,oBAAoB,YAAY,QAAQ,MAAM,EAAE;SAC1D,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;QAClC,WAAW,GAAG,MAAM,CAAC;QACrB,MAAM,OAAO,GAAuB,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QAEnF,2BAA2B;QAC3B,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,gBAAgB,CAAC;QACtD,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;YAC3C,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,oBAAoB,CAAC;oBAC/D,gBAAgB,EAAE,IAAI;oBACtB,IAAI,EAAE,MAAM;iBACb,CAAC,CAAC;gBACH,MAAM,UAAU,GACd,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;oBAC7B,GAAG,CAAC,IAAI,CACN,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;wBACzC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;wBACrC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAC/E,CAAC;gBACJ,IAAI,UAAU,EAAE,CAAC;oBACf,QAAQ,GAAG,UAAU,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC;gBAC9C,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,0BAA0B;YAC5B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;gBACvB,QAAQ,GAAG,wBAAwB,CAAC;YACtC,CAAC;iBAAM,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;gBACrC,QAAQ,GAAG,KAAK,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACN,QAAQ,GAAG,KAAK,CAAC;YACnB,CAAC;QACH,CAAC;QAED,4BAA4B;QAC5B,MAAM,WAAW,GAA4D;YAC3E,gBAAgB,EAAE,QAAQ;YAC1B,SAAS,EAAE,MAAM;YACjB,UAAU,EAAE,MAAM;YAClB,cAAc,EAAE,OAAO;YACvB,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,oBAAoB,YAAY,QAAQ,WAAW,IAAI,KAAK,IAAI,YAAY,GAAG;YAC5F,WAAW,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI;YAC/B,QAAQ,EAAE,CAAC;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW;YACX,aAAa,EAAE,IAAI;YACnB,IAAI,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,UAAU,CAAC;YAC5F,SAAS;YACT,WAAW,EAAE,WAAW,CAAC,OAAO;SACjC,CAAC;QAEF,IAAI,eAAkC,CAAC;QAEvC,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;YAC9B,eAAe,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7E,CAAC;aAAM,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAClC,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,MAAa,CAAC,CAAC;YAC/D,MAAM,YAAY,GAAG,MAAM,YAAY,iBAAiB,CAAC;YACzD,MAAM,UAAU,GAAG,GAAG,CAAC;YACvB,MAAM,SAAS,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC;YACnG,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACtF,MAAM,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACjD,eAAe,GAAG;gBAChB,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC;gBACxB,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,MAAM;gBAChB,UAAU,EAAE,SAAS;gBACrB,MAAM,EAAE,SAAS;gBACjB,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;gBACnD,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW;gBACX,WAAW,EAAE,WAAW,CAAC,OAAO;gBAChC,QAAQ,EAAE,SAAS,CAAC,IAAI;gBACxB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,IAAI,EAAE,YAAY;gBAClB,iBAAiB,EAAE;oBACjB,QAAQ,EAAE,MAAM;oBAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa;oBACrC,IAAI,EAAE,CAAC,YAAY;iBACpB;aACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;QAED,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC;QAEnC,qCAAqC;QACrC,MAAM,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,eAAe,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;QAEpG,gCAAgC;QAChC,MAAM,UAAU,GACd,IAAI,CAAC,SAAS;YACd,CAAC,eAAe,CAAC,WAAW,IAAI,eAAe,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;gBACpE,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC;gBAChC,CAAC,CAAC,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;QAExE,6CAA6C;QAC7C,IAAI,YAAY,GAA6B,YAAY,CAAC;QAC1D,IAAI,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAE7C,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,IAAI,oBAAoB,CAAC;YACnE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,mBAAmB,GAAG,IAAI,CAAC;YAC7C,IAAI,OAAO,GAAG,KAAK,CAAC;YAEpB,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,SAAS,EAAE,CAAC;gBAC1C,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;oBACxE,IAAI,SAAS,EAAE,CAAC;wBACd,OAAO,GAAG,IAAI,CAAC;wBACf,YAAY,GAAG,SAAS,CAAC;wBACzB,MAAM;oBACR,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,mBAAmB;gBACrB,CAAC;gBAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBACvC,IAAI,OAAO,GAAG,IAAI,GAAG,SAAS,EAAE,CAAC;oBAC/B,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC/E,CAAC;qBAAM,CAAC;oBACN,MAAM;gBACR,CAAC;YACH,CAAC;YAED,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAEzC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CACb,gCAAgC,mBAAmB,QAAQ,UAAU,kCAAkC,CACxG,CAAC;YACJ,CAAC;QACH,CAAC;QAED,oDAAoD;QACpD,IAAI,eAAmC,CAAC;QACxC,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,IAAI,oBAAoB,CAAC;YACnE,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;gBACpC,QAAQ,EAAE,UAAU;gBACpB,IAAI,EAAE,IAAI;gBACV,WAAW,EAAE,aAAa;gBAC1B,IAAI,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;gBAChC,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;YACH,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CACb,uCAAuC,aAAa,QAAQ,UAAU,KAAK,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAC5G,CAAC;YACJ,CAAC;YACD,eAAe,GAAG,aAAa,CAAC;QAClC,CAAC;QAED,yCAAyC;QACzC,MAAM,UAAU,GAAwB;YACtC,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,IAAI,EAAE,eAAe,CAAC,IAAI;YAC1B,MAAM,EAAE,eAAe,CAAC,IAAI;YAC5B,IAAI,EAAE,WAAW,CAAC,MAAM;YACxB,cAAc,EAAE,OAAO;YACvB,SAAS,EAAE,UAAU;YACrB,WAAW,EAAE;gBACX,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,OAAO;aACd;YACD,WAAW,EAAE,WAAW,UAAU,MAAM;YACxC,aAAa;YACb,eAAe;YACf,YAAY;YACZ,KAAK;YACL,WAAW;YACX,MAAM;YACN,IAAI,EAAE,UAAU;YAChB,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,eAAe;YACf,YAAY;YACZ,IAAI,EAAE,eAAe,CAAC,IAAI;YAC1B,iBAAiB,EAAE,eAAe,CAAC,iBAAiB;SACrD,CAAC;QAEF,MAAM,SAAS,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;QAExD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,SAAS,CAAC,QAAQ;iBACzB;aACF;YACD,iBAAiB,EAAE,SAAS,CAAC,iBAAiB;SAC/C,CAAC;IACJ,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,8DAA8D;QAC9D,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC7D,CAAC;YAAC,MAAM,CAAC;gBACP,8BAA8B;YAChC,CAAC;QACH,CAAC;QAED,8EAA8E;QAC9E,IAAI,WAAW,IAAI,WAAW,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;YAC5D,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC;oBACvC,UAAU,EAAE,WAAW;oBACvB,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC;oBAC/B,MAAM,EAAE,SAAS;oBACjB,KAAK,EAAE,IAAI;iBACZ,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,2BAA2B;YAC7B,CAAC;QACH,CAAC;QAED,IAAI,KAAK,YAAY,yBAAyB,EAAE,CAAC;YAC/C,OAAO,qBAAqB,CAAC,gBAAgB,CAAC,0BAA0B,EAAE,KAAK,CAAC,OAAO,EAAE;gBACvF,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;aACrB,CAAC,CAAC;QACL,CAAC;QAED,IACE,KAAK,YAAY,qBAAqB;YACtC,KAAK,YAAY,2BAA2B;YAC5C,KAAK,YAAY,8BAA8B,EAC/C,CAAC;YACD,OAAO,qBAAqB,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAClF,CAAC;QAED,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnE,OAAO,qBAAqB,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;IACzE,CAAC;AACH,CAAC"}
@@ -9,6 +9,11 @@ import { z } from "zod";
9
9
  import { CallToolResult } from "../types/mcp.js";
10
10
  import { ToolContext } from "./list-hosts.js";
11
11
  export declare const PurgeSlotsInputShape: {
12
+ operationId: z.ZodOptional<z.ZodString>;
13
+ artifactReceipt: z.ZodOptional<z.ZodString>;
14
+ apply: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
15
+ confirmAssets: z.ZodOptional<z.ZodString>;
16
+ receiptFile: z.ZodOptional<z.ZodString>;
12
17
  host: z.ZodDefault<z.ZodOptional<z.ZodEnum<["proxmox-lab", "proxmox-mini", "proxmox-minis-lab", "esxi-intel-192-168-123-176", "all"]>>>;
13
18
  hypervisorType: z.ZodDefault<z.ZodOptional<z.ZodEnum<["proxmox", "esxi", "all"]>>>;
14
19
  olderThanMinutes: z.ZodOptional<z.ZodNumber>;
@@ -19,6 +24,11 @@ export declare const PurgeSlotsInputShape: {
19
24
  includeOrphans: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
20
25
  };
21
26
  export declare const PurgeSlotsInputSchema: z.ZodObject<{
27
+ operationId: z.ZodOptional<z.ZodString>;
28
+ artifactReceipt: z.ZodOptional<z.ZodString>;
29
+ apply: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
30
+ confirmAssets: z.ZodOptional<z.ZodString>;
31
+ receiptFile: z.ZodOptional<z.ZodString>;
22
32
  host: z.ZodDefault<z.ZodOptional<z.ZodEnum<["proxmox-lab", "proxmox-mini", "proxmox-minis-lab", "esxi-intel-192-168-123-176", "all"]>>>;
23
33
  hypervisorType: z.ZodDefault<z.ZodOptional<z.ZodEnum<["proxmox", "esxi", "all"]>>>;
24
34
  olderThanMinutes: z.ZodOptional<z.ZodNumber>;
@@ -31,16 +41,26 @@ export declare const PurgeSlotsInputSchema: z.ZodObject<{
31
41
  hypervisorType: "proxmox" | "esxi" | "all";
32
42
  dryRun: boolean;
33
43
  host: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "all" | "esxi-intel-192-168-123-176";
44
+ apply: boolean;
34
45
  destroyVms: boolean;
35
46
  force: boolean;
36
47
  includeOrphans: boolean;
37
48
  linearIssue?: string | undefined;
49
+ operationId?: string | undefined;
50
+ artifactReceipt?: string | undefined;
51
+ confirmAssets?: string | undefined;
52
+ receiptFile?: string | undefined;
38
53
  olderThanMinutes?: number | undefined;
39
54
  }, {
40
55
  hypervisorType?: "proxmox" | "esxi" | "all" | undefined;
41
56
  dryRun?: boolean | undefined;
42
57
  host?: "proxmox-lab" | "proxmox-mini" | "proxmox-minis-lab" | "all" | "esxi-intel-192-168-123-176" | undefined;
43
58
  linearIssue?: string | undefined;
59
+ operationId?: string | undefined;
60
+ artifactReceipt?: string | undefined;
61
+ apply?: boolean | undefined;
62
+ confirmAssets?: string | undefined;
63
+ receiptFile?: string | undefined;
44
64
  olderThanMinutes?: number | undefined;
45
65
  destroyVms?: boolean | undefined;
46
66
  force?: boolean | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"purge-slots.d.ts","sourceRoot":"","sources":["../../../src/tools/purge-slots.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAA2C,MAAM,iBAAiB,CAAC;AAE1F,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAI9C,eAAO,MAAM,oBAAoB;;;;;;;;;CAwChC,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAiC,CAAC;AACpE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEvE,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,kBAAkB,YAAK,EAChC,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,cAAc,CAAC,CA6DzB"}
1
+ {"version":3,"file":"purge-slots.d.ts","sourceRoot":"","sources":["../../../src/tools/purge-slots.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAA2C,MAAM,iBAAiB,CAAC;AAE1F,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAI9C,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;CAgEhC,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAiC,CAAC;AACpE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEvE,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,kBAAkB,YAAK,EAChC,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,cAAc,CAAC,CA+EzB"}
@@ -8,8 +8,32 @@
8
8
  import { z } from "zod";
9
9
  import { ProxmoxErrorCode, createToolErrorResult } from "../types/mcp.js";
10
10
  import { formatPurgeResult } from "../utils/formatters.js";
11
- import { canonicalMode, canonicalOperationBlocked } from "./canonical-guard.js";
11
+ import { canonicalMode, runCanonicalOperation } from "./canonical-guard.js";
12
12
  export const PurgeSlotsInputShape = {
13
+ operationId: z
14
+ .string()
15
+ .min(1)
16
+ .optional()
17
+ .describe("Unique idempotency operation ID for the canonical reclaim receipt."),
18
+ artifactReceipt: z
19
+ .string()
20
+ .min(1)
21
+ .optional()
22
+ .describe("Durable failure/test evidence required before canonical reclaim."),
23
+ apply: z
24
+ .boolean()
25
+ .optional()
26
+ .default(false)
27
+ .describe("Execute the canonical reclaim. Omit for the reviewed dry-run plan."),
28
+ confirmAssets: z
29
+ .string()
30
+ .optional()
31
+ .describe("Comma-separated exact eligible asset IDs from the canonical plan."),
32
+ receiptFile: z
33
+ .string()
34
+ .min(1)
35
+ .optional()
36
+ .describe("Optional path for the canonical reclaim plan/receipt."),
13
37
  host: z
14
38
  .enum(["proxmox-lab", "proxmox-mini", "proxmox-minis-lab", "esxi-intel-192-168-123-176", "all"])
15
39
  .optional()
@@ -53,10 +77,27 @@ export const PurgeSlotsInputShape = {
53
77
  export const PurgeSlotsInputSchema = z.object(PurgeSlotsInputShape);
54
78
  export async function handlePurgeSlots(rawArgs = {}, context) {
55
79
  try {
80
+ const args = PurgeSlotsInputSchema.parse(rawArgs);
56
81
  if (canonicalMode(context)) {
57
- return canonicalOperationBlocked("purge_slots", "canonical lease garbage collection must prove exact asset identity and artifact receipts before release");
82
+ if (!args.operationId || !args.artifactReceipt) {
83
+ return createToolErrorResult(ProxmoxErrorCode.VALIDATION_ERROR, "Canonical purge_slots requires operationId and artifactReceipt; it never reclaims by age or VM name alone.");
84
+ }
85
+ if (args.force || args.includeOrphans || args.olderThanMinutes !== undefined || args.linearIssue) {
86
+ return createToolErrorResult(ProxmoxErrorCode.VALIDATION_ERROR, "Canonical reclaim only releases expired/releasable claims selected by lab-inventory; force, age, issue, and orphan shortcuts are disabled.");
87
+ }
88
+ const command = [
89
+ "claims", "gc",
90
+ "--operation-id", args.operationId,
91
+ "--artifact-receipt", args.artifactReceipt,
92
+ ];
93
+ if (args.confirmAssets)
94
+ command.push("--confirm-assets", args.confirmAssets);
95
+ if (args.apply)
96
+ command.push("--apply");
97
+ if (args.receiptFile)
98
+ command.push("--receipt-file", args.receiptFile);
99
+ return runCanonicalOperation(context.canonicalBridge, "purge_slots", command);
58
100
  }
59
- const args = PurgeSlotsInputSchema.parse(rawArgs);
60
101
  let purgeResult;
61
102
  if (context.slotManager.purgeSlots) {
62
103
  purgeResult = await context.slotManager.purgeSlots({