borgmcp 4.3.0 → 4.4.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.
@@ -16,16 +16,37 @@ const CANONICAL_NPM_REGISTRY = 'https://registry.npmjs.org/';
16
16
  const REENTRY_ENV = 'BORG_UPDATE_REENTRY';
17
17
  const MAX_CAPTURE_BYTES = 1024 * 1024;
18
18
  const EXACT_SEMVER = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-(?:0|[1-9]\d*|\d*[A-Za-z-][0-9A-Za-z-]*)(?:\.(?:0|[1-9]\d*|\d*[A-Za-z-][0-9A-Za-z-]*))*)?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$/;
19
+ class RegistryChangedDuringUpdateError extends Error {
20
+ expectedRegistry;
21
+ observedRegistry;
22
+ constructor(expectedRegistry, observedRegistry) {
23
+ super(`npm registry changed during update from ${expectedRegistry} to ${observedRegistry}`);
24
+ this.expectedRegistry = expectedRegistry;
25
+ this.observedRegistry = observedRegistry;
26
+ this.name = 'RegistryChangedDuringUpdateError';
27
+ }
28
+ }
19
29
  function signalExitCode(error) {
20
30
  return error instanceof CommandSignalError ? error.exitCode : null;
21
31
  }
22
32
  function errorMessage(error, fallback) {
23
33
  return error instanceof Error ? error.message : fallback;
24
34
  }
35
+ function updateRetryCommand(registry) {
36
+ return `borg update --yes${registry ? ` --registry ${shellEscape(registry)}` : ''}`;
37
+ }
38
+ function renderUpdateRetry(error, registry) {
39
+ if (error instanceof RegistryChangedDuringUpdateError) {
40
+ return (`The configured npm registry changed during the update.\n` +
41
+ `Restore ${error.expectedRegistry} and retry with: ${updateRetryCommand(error.expectedRegistry)}\n` +
42
+ `Or deliberately start a new update against the current registry with: ${updateRetryCommand(error.observedRegistry)}\n`);
43
+ }
44
+ return `Retry with: ${updateRetryCommand(registry)}\n`;
45
+ }
25
46
  function hasErrorCode(error, code) {
26
47
  return error instanceof Error && error.code === code;
27
48
  }
28
- function renderReentryPreflightFailure(error, target) {
49
+ function renderReentryPreflightFailure(error, target, registry) {
29
50
  return (`Update preflight failed: ${errorMessage(error, 'unknown failure')}\n` +
30
51
  `Observed update state:\n` +
31
52
  ` client: ${CLIENT_PACKAGE}@${target.clientVersion} installed and verified before re-entry\n` +
@@ -33,7 +54,7 @@ function renderReentryPreflightFailure(error, target) {
33
54
  ` prepared runtime: not inspected\n` +
34
55
  ` running runtime: not inspected\n` +
35
56
  `Server mutation was not attempted.\n` +
36
- `Retry with: borg update --yes\n`);
57
+ renderUpdateRetry(error, registry));
37
58
  }
38
59
  function renderServerState(client, server, status, update) {
39
60
  const updateLine = update === null
@@ -53,6 +74,27 @@ function renderServerState(client, server, status, update) {
53
74
  export function isExactSemver(value) {
54
75
  return typeof value === 'string' && EXACT_SEMVER.test(value);
55
76
  }
77
+ function normalizeRegistryUrl(value) {
78
+ if (value !== value.trim())
79
+ throw new Error('npm registry URL must not contain surrounding whitespace');
80
+ let url;
81
+ try {
82
+ url = new URL(value);
83
+ }
84
+ catch {
85
+ throw new Error('npm registry URL is invalid');
86
+ }
87
+ if (url.protocol !== 'https:' ||
88
+ url.username !== '' ||
89
+ url.password !== '' ||
90
+ url.search !== '' ||
91
+ url.hash !== '') {
92
+ throw new Error('npm registry URL must be an HTTPS URL without credentials, query, or fragment');
93
+ }
94
+ if (!url.pathname.endsWith('/'))
95
+ url.pathname += '/';
96
+ return url.href;
97
+ }
56
98
  function isCanonicalSha512Integrity(value) {
57
99
  if (typeof value !== 'string' || !value.startsWith('sha512-') || value.includes(' '))
58
100
  return false;
@@ -83,6 +125,7 @@ function isHttpsOrigin(value) {
83
125
  export function parseUpdateArgs(args, reentryAuthorized = false) {
84
126
  let yes = false;
85
127
  let help = false;
128
+ let registry;
86
129
  let clientVersion;
87
130
  let serverVersion;
88
131
  let serverPresent;
@@ -95,6 +138,20 @@ export function parseUpdateArgs(args, reentryAuthorized = false) {
95
138
  else if (arg === '--help' || arg === '-h') {
96
139
  help = true;
97
140
  }
141
+ else if (arg === '--registry') {
142
+ if (registry !== undefined)
143
+ return { ok: false, error: '--registry may be specified only once' };
144
+ const value = args[index + 1];
145
+ if (!value)
146
+ return { ok: false, error: '--registry requires a value' };
147
+ index += 1;
148
+ try {
149
+ registry = normalizeRegistryUrl(value);
150
+ }
151
+ catch (error) {
152
+ return { ok: false, error: errorMessage(error, 'npm registry URL is invalid') };
153
+ }
154
+ }
98
155
  else if (arg === '--target-client' || arg === '--target-server' || arg === '--server-present') {
99
156
  hasInternalOption = true;
100
157
  const value = args[index + 1];
@@ -130,10 +187,11 @@ export function parseUpdateArgs(args, reentryAuthorized = false) {
130
187
  ok: true,
131
188
  yes,
132
189
  ...(help ? { help: true } : {}),
190
+ ...(registry ? { registry } : {}),
133
191
  target: { clientVersion, serverVersion, serverPresent },
134
192
  };
135
193
  }
136
- return { ok: true, yes, ...(help ? { help: true } : {}) };
194
+ return { ok: true, yes, ...(help ? { help: true } : {}), ...(registry ? { registry } : {}) };
137
195
  }
138
196
  function validatePublishedPackage(value, expectedName) {
139
197
  if (value.name !== expectedName || !isExactSemver(value.version)) {
@@ -394,7 +452,7 @@ function verifyServerStatus(status, target) {
394
452
  }
395
453
  return 'running';
396
454
  }
397
- function renderServerFailureRecovery(status, updateAttempted, retryCommand) {
455
+ function renderServerFailureRecovery(status, updateAttempted, retryCommand, error, registry) {
398
456
  let text = '';
399
457
  if (status?.state === 'stopped') {
400
458
  text += renderStoppedServiceRecovery(status);
@@ -404,7 +462,10 @@ function renderServerFailureRecovery(status, updateAttempted, retryCommand) {
404
462
  `Check it with: borg server status\n` +
405
463
  `If it is stopped, run the recovery command reported by borg server status.\n`);
406
464
  }
407
- if (retryCommand !== 'borg server start') {
465
+ if (error instanceof RegistryChangedDuringUpdateError) {
466
+ text += renderUpdateRetry(error, registry);
467
+ }
468
+ else if (retryCommand !== 'borg server start') {
408
469
  text += status?.state === 'stopped'
409
470
  ? `Then retry the failed stage with: ${retryCommand}\n`
410
471
  : `Next: ${retryCommand}\n`;
@@ -429,6 +490,7 @@ export async function runUpdate(options, deps) {
429
490
  let pair;
430
491
  let client;
431
492
  let discoveredServer;
493
+ const updateRetry = updateRetryCommand(options.registry);
432
494
  try {
433
495
  [pair, client, discoveredServer] = await Promise.all([
434
496
  publishedPair(options.target, deps),
@@ -439,7 +501,7 @@ export async function runUpdate(options, deps) {
439
501
  catch (error) {
440
502
  const interrupted = signalExitCode(error);
441
503
  deps.stderr(options.target
442
- ? renderReentryPreflightFailure(error, options.target)
504
+ ? renderReentryPreflightFailure(error, options.target, options.registry)
443
505
  : (`Update preflight failed: ${errorMessage(error, 'unknown failure')}\n` +
444
506
  `Observed update state:\n` +
445
507
  ` client: not inspected (registry preflight incomplete)\n` +
@@ -447,7 +509,9 @@ export async function runUpdate(options, deps) {
447
509
  ` prepared runtime: not inspected\n` +
448
510
  ` running runtime: not inspected\n` +
449
511
  `No mutation was attempted.\n` +
450
- `Manual fallback: npm install -g ${CLIENT_PACKAGE} && npm install -g ${SERVER_PACKAGE}\n`));
512
+ (error instanceof RegistryChangedDuringUpdateError
513
+ ? renderUpdateRetry(error, options.registry)
514
+ : `Manual fallback: npm install -g ${CLIENT_PACKAGE} && npm install -g ${SERVER_PACKAGE}\n`)));
451
515
  return interrupted ?? 1;
452
516
  }
453
517
  const serverWasPresent = options.target?.serverPresent ?? discoveredServer !== null;
@@ -459,10 +523,10 @@ export async function runUpdate(options, deps) {
459
523
  ` prepared runtime: not inspected\n` +
460
524
  ` running runtime: not inspected\n` +
461
525
  `Server mutation was not attempted.\n` +
462
- `Retry with: borg update --yes\n`);
526
+ `Retry with: ${updateRetry}\n`);
463
527
  return 1;
464
528
  }
465
- deps.stdout(`Published update plan (${CANONICAL_NPM_REGISTRY}):\n` +
529
+ deps.stdout(`Published update plan (${options.registry ?? CANONICAL_NPM_REGISTRY}):\n` +
466
530
  ` client: ${CLIENT_PACKAGE}@${client.version} -> ${CLIENT_PACKAGE}@${pair.client.version}\n` +
467
531
  ` target integrity: ${pair.client.integrity}\n` +
468
532
  ` server: ${discoveredServer ? `${SERVER_PACKAGE}@${discoveredServer.version}` : 'not installed'} -> ${SERVER_PACKAGE}@${pair.server.version}\n` +
@@ -499,6 +563,7 @@ export async function runUpdate(options, deps) {
499
563
  const args = [
500
564
  'update',
501
565
  '--yes',
566
+ ...(options.registry ? ['--registry', options.registry] : []),
502
567
  '--target-client', pair.client.version,
503
568
  '--target-server', pair.server.version,
504
569
  '--server-present', serverWasPresent ? 'yes' : 'no',
@@ -518,7 +583,7 @@ export async function runUpdate(options, deps) {
518
583
  ` prepared runtime: not inspected\n` +
519
584
  ` running runtime: not inspected\n` +
520
585
  `Server mutation was not attempted.\n` +
521
- `Retry with: borg update --yes\n`);
586
+ renderUpdateRetry(error, options.registry));
522
587
  return interrupted ?? 1;
523
588
  }
524
589
  }
@@ -536,7 +601,9 @@ export async function runUpdate(options, deps) {
536
601
  ` prepared runtime: not inspected\n` +
537
602
  ` running runtime: not inspected\n` +
538
603
  `Server mutation was not attempted.\n` +
539
- `Next: reinstall ${CLIENT_PACKAGE}@${pair.client.version} from ${CANONICAL_NPM_REGISTRY}, then rerun borg update --yes.\n`);
604
+ (error instanceof RegistryChangedDuringUpdateError
605
+ ? renderUpdateRetry(error, options.registry)
606
+ : `Next: reinstall ${CLIENT_PACKAGE}@${pair.client.version} from ${options.registry ?? CANONICAL_NPM_REGISTRY}, then rerun ${updateRetry}.\n`));
540
607
  return interrupted ?? 1;
541
608
  }
542
609
  if (!serverWasPresent) {
@@ -574,7 +641,7 @@ export async function runUpdate(options, deps) {
574
641
  ` prepared runtime: not inspected\n` +
575
642
  ` running runtime: not inspected\n` +
576
643
  `Server runtime mutation was not attempted.\n` +
577
- `Retry with: borg update --yes\n`);
644
+ renderUpdateRetry(error, options.registry));
578
645
  return interrupted ?? 1;
579
646
  }
580
647
  let observedStatus = null;
@@ -599,7 +666,7 @@ export async function runUpdate(options, deps) {
599
666
  initialServerState = status.state;
600
667
  if (status.installedController !== exactServerIdentity(pair.server.version)) {
601
668
  failureStage = 'server controller identity check';
602
- retryCommand = 'borg update --yes';
669
+ retryCommand = updateRetry;
603
670
  throw new Error('server status contradicted the verified controller identity');
604
671
  }
605
672
  try {
@@ -634,7 +701,7 @@ export async function runUpdate(options, deps) {
634
701
  retryCommand = 'borg server update';
635
702
  const state = verifyServerStatus(status, pair.server);
636
703
  failureStage = 'final package verification';
637
- retryCommand = 'borg update --yes';
704
+ retryCommand = updateRetry;
638
705
  const [finalClient, finalServer] = await Promise.all([
639
706
  deps.currentClient(),
640
707
  deps.currentServer(),
@@ -678,7 +745,7 @@ export async function runUpdate(options, deps) {
678
745
  }
679
746
  deps.stderr(`Server update failed during ${failureStage}: ${errorMessage(error, 'unknown failure')}.\n` +
680
747
  renderServerState(client, server, observedStatus, observedUpdate) +
681
- renderServerFailureRecovery(observedStatus, updateAttempted, retryCommand));
748
+ renderServerFailureRecovery(observedStatus, updateAttempted, retryCommand, error, options.registry));
682
749
  return interrupted ?? 1;
683
750
  }
684
751
  }
@@ -757,24 +824,26 @@ async function npmText(commandPath, args, label) {
757
824
  throw new Error(`npm ${label} lookup failed`);
758
825
  return singleLine(result.stdout, label);
759
826
  }
760
- function requireCanonicalRegistry(value) {
761
- let normalized;
762
- try {
763
- normalized = new URL(value).href;
764
- }
765
- catch {
766
- throw new Error('npm registry configuration is invalid');
827
+ function requireAcknowledgedRegistry(value, acknowledgedRegistry) {
828
+ const normalized = normalizeRegistryUrl(value);
829
+ if (acknowledgedRegistry !== undefined) {
830
+ const acknowledged = normalizeRegistryUrl(acknowledgedRegistry);
831
+ if (acknowledged !== normalized) {
832
+ throw new Error(`the configured npm registry ${normalized} does not match the explicitly acknowledged registry ${acknowledged}`);
833
+ }
834
+ return normalized;
767
835
  }
768
836
  if (normalized !== CANONICAL_NPM_REGISTRY) {
769
- throw new Error(`borg update requires the canonical npm registry ${CANONICAL_NPM_REGISTRY}; ` +
770
- `the configured registry is unsupported. Use your package manager manually for this installation.`);
837
+ throw new Error(`borg update uses the canonical npm registry ${CANONICAL_NPM_REGISTRY} by default; ` +
838
+ `the configured registry ${normalized} has not been explicitly acknowledged. ` +
839
+ `Rerun with: borg update --registry ${shellEscape(normalized)} to acknowledge this exact registry for one update.`);
771
840
  }
841
+ return normalized;
772
842
  }
773
- async function resolveNpmContext() {
843
+ async function resolveNpmContext(acknowledgedRegistry) {
774
844
  const commandPath = which.sync('npm');
775
845
  const commandIdentity = await realpath(commandPath);
776
- const registry = await npmText(commandPath, ['config', 'get', 'registry'], 'registry');
777
- requireCanonicalRegistry(registry);
846
+ const registry = requireAcknowledgedRegistry(await npmText(commandPath, ['config', 'get', 'registry'], 'registry'), acknowledgedRegistry);
778
847
  const prefixText = await npmText(commandPath, ['prefix', '--global'], 'global prefix');
779
848
  const rootText = await npmText(commandPath, ['root', '--global'], 'global root');
780
849
  if (!isAbsolute(prefixText) || !isAbsolute(rootText)) {
@@ -786,15 +855,16 @@ async function resolveNpmContext() {
786
855
  if (relativeRoot === '' || relativeRoot.startsWith('..') || isAbsolute(relativeRoot)) {
787
856
  throw new Error('npm global root is outside its global prefix');
788
857
  }
789
- return { commandPath, commandIdentity, prefix, root };
858
+ return { commandPath, commandIdentity, registry, prefix, root };
790
859
  }
791
860
  async function assertNpmContext(context) {
792
861
  const activeCommand = which.sync('npm');
793
862
  if (await realpath(activeCommand) !== context.commandIdentity) {
794
863
  throw new Error('active npm executable changed during update');
795
864
  }
796
- const registry = await npmText(context.commandPath, ['config', 'get', 'registry'], 'registry');
797
- requireCanonicalRegistry(registry);
865
+ const registry = normalizeRegistryUrl(await npmText(context.commandPath, ['config', 'get', 'registry'], 'registry'));
866
+ if (registry !== context.registry)
867
+ throw new RegistryChangedDuringUpdateError(context.registry, registry);
798
868
  const prefix = await realpath(await npmText(context.commandPath, ['prefix', '--global'], 'global prefix'));
799
869
  if (prefix !== context.prefix)
800
870
  throw new Error('npm global prefix changed during update');
@@ -889,8 +959,7 @@ async function defaultPublishedPackage(name, version, context) {
889
959
  throw new Error('invalid registry target version');
890
960
  // Keep npm context validation above, but read the registry's typed manifest
891
961
  // contract directly rather than parsing npm CLI presentation output.
892
- void context;
893
- const endpoint = new URL(`${encodeURIComponent(name)}/${encodeURIComponent(version)}`, CANONICAL_NPM_REGISTRY);
962
+ const endpoint = new URL(`${encodeURIComponent(name)}/${encodeURIComponent(version)}`, context.registry);
894
963
  let published;
895
964
  try {
896
965
  const response = await fetch(endpoint, {
@@ -920,8 +989,7 @@ async function defaultPublishedPackage(name, version, context) {
920
989
  return published;
921
990
  }
922
991
  async function defaultPublishedVersions(name, context) {
923
- void context;
924
- const endpoint = new URL(encodeURIComponent(name), CANONICAL_NPM_REGISTRY);
992
+ const endpoint = new URL(encodeURIComponent(name), context.registry);
925
993
  try {
926
994
  const response = await fetch(endpoint, {
927
995
  headers: { Accept: 'application/json' },
@@ -974,10 +1042,10 @@ async function defaultConfirm(message, defaultYes = false) {
974
1042
  rl.close();
975
1043
  }
976
1044
  }
977
- export function buildDefaultUpdateDeps() {
1045
+ export function buildDefaultUpdateDeps(acknowledgedRegistry) {
978
1046
  let contextPromise;
979
1047
  const context = async () => {
980
- contextPromise ??= resolveNpmContext();
1048
+ contextPromise ??= resolveNpmContext(acknowledgedRegistry);
981
1049
  return assertNpmContext(await contextPromise);
982
1050
  };
983
1051
  return {
@@ -997,7 +1065,7 @@ export function buildDefaultUpdateDeps() {
997
1065
  '--global',
998
1066
  ...(options?.ignoreScripts ? ['--ignore-scripts'] : []),
999
1067
  `--prefix=${npm.prefix}`,
1000
- `--registry=${CANONICAL_NPM_REGISTRY}`,
1068
+ `--registry=${npm.registry}`,
1001
1069
  `${name}@${version}`,
1002
1070
  ], { inherit: true });
1003
1071
  if (result.code !== 0)
@@ -1032,18 +1100,19 @@ export function buildDefaultUpdateDeps() {
1032
1100
  stderr: (text) => process.stderr.write(text),
1033
1101
  };
1034
1102
  }
1035
- export async function runEarlyUpdate(argv, deps = buildDefaultUpdateDeps()) {
1103
+ export async function runEarlyUpdate(argv, deps) {
1036
1104
  if (argv[2] !== 'update')
1037
1105
  return null;
1038
1106
  const parsed = parseUpdateArgs(argv.slice(3), process.env[REENTRY_ENV] === '1');
1107
+ const resolvedDeps = deps ?? buildDefaultUpdateDeps(parsed.ok ? parsed.registry : undefined);
1039
1108
  if (!parsed.ok) {
1040
- deps.stderr(`${parsed.error}\nRun \`borg update --help\` for usage.\n`);
1109
+ resolvedDeps.stderr(`${parsed.error}\nRun \`borg update --help\` for usage.\n`);
1041
1110
  return 1;
1042
1111
  }
1043
1112
  if (parsed.help) {
1044
- deps.stdout(updateHelpText(''));
1113
+ resolvedDeps.stdout(updateHelpText(''));
1045
1114
  return 0;
1046
1115
  }
1047
- return runUpdate(parsed, deps);
1116
+ return runUpdate(parsed, resolvedDeps);
1048
1117
  }
1049
1118
  //# sourceMappingURL=update-cmd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update-cmd.js","sourceRoot":"","sources":["../src/update-cmd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update-cmd.js","sourceRoot":"","sources":["../src/update-cmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,wCAAwC,EAAE,MAAM,+BAA+B,CAAC;AAEzF,MAAM,cAAc,GAAG,SAAS,CAAC;AACjC,MAAM,cAAc,GAAG,gBAAgB,CAAC;AACxC,MAAM,cAAc,GAAG,gBAAgB,CAAC;AACxC,MAAM,sBAAsB,GAAG,6BAA6B,CAAC;AAC7D,MAAM,WAAW,GAAG,qBAAqB,CAAC;AAC1C,MAAM,iBAAiB,GAAG,IAAI,GAAG,IAAI,CAAC;AACtC,MAAM,YAAY,GAAG,iLAAiL,CAAC;AAuHvM,MAAM,gCAAiC,SAAQ,KAAK;IAEvC;IACA;IAFX,YACW,gBAAwB,EACxB,gBAAwB;QAEjC,KAAK,CAAC,2CAA2C,gBAAgB,OAAO,gBAAgB,EAAE,CAAC,CAAC;QAHnF,qBAAgB,GAAhB,gBAAgB,CAAQ;QACxB,qBAAgB,GAAhB,gBAAgB,CAAQ;QAGjC,IAAI,CAAC,IAAI,GAAG,kCAAkC,CAAC;IACjD,CAAC;CACF;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,KAAK,YAAY,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AACrE,CAAC;AAED,SAAS,YAAY,CAAC,KAAc,EAAE,QAAgB;IACpD,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC3D,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAiB;IAC3C,OAAO,oBAAoB,QAAQ,CAAC,CAAC,CAAC,eAAe,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACtF,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc,EAAE,QAAiB;IAC1D,IAAI,KAAK,YAAY,gCAAgC,EAAE,CAAC;QACtD,OAAO,CACL,0DAA0D;YAC1D,WAAW,KAAK,CAAC,gBAAgB,oBAAoB,kBAAkB,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI;YACnG,yEAAyE,kBAAkB,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CACxH,CAAC;IACJ,CAAC;IACD,OAAO,eAAe,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC;AACzD,CAAC;AAED,SAAS,YAAY,CAAC,KAAc,EAAE,IAAY;IAChD,OAAO,KAAK,YAAY,KAAK,IAAK,KAA+B,CAAC,IAAI,KAAK,IAAI,CAAC;AAClF,CAAC;AAED,SAAS,6BAA6B,CAAC,KAAc,EAAE,MAAoB,EAAE,QAAiB;IAC5F,OAAO,CACL,4BAA4B,YAAY,CAAC,KAAK,EAAE,iBAAiB,CAAC,IAAI;QACtE,0BAA0B;QAC1B,aAAa,cAAc,IAAI,MAAM,CAAC,aAAa,2CAA2C;QAC9F,yDAAyD;QACzD,qCAAqC;QACrC,oCAAoC;QACpC,sCAAsC;QACtC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CACnC,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,MAAwB,EACxB,MAAwB,EACxB,MAA2B,EAC3B,MAAiC;IAEjC,MAAM,UAAU,GAAG,MAAM,KAAK,IAAI;QAChC,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ;YAC1B,CAAC,CAAC,UAAU,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC,QAAQ,GAAG;YACnD,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,iBAAiB,GAAG,CAAC;IAC1E,OAAO,CACL,0BAA0B;QAC1B,6BAA6B,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,KAAK,cAAc,IAAI,MAAM,CAAC,aAAa,KAAK;QAC1G,wCAAwC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,KAAK,cAAc,IAAI,MAAM,CAAC,aAAa,KAAK;QACrH,uBAAuB,MAAM,EAAE,eAAe,IAAI,aAAa,IAAI;QACnE,yBAAyB,MAAM,EAAE,iBAAiB,IAAI,aAAa,IAAI;QACvE,sBAAsB,MAAM,EAAE,cAAc,IAAI,aAAa,IAAI;QACjE,wBAAwB,MAAM,EAAE,gBAAgB,IAAI,aAAa,IAAI;QACrE,oBAAoB,UAAU,IAAI,CACnC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAa;IACzC,IAAI,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IACxG,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IACD,IACE,GAAG,CAAC,QAAQ,KAAK,QAAQ;QACzB,GAAG,CAAC,QAAQ,KAAK,EAAE;QACnB,GAAG,CAAC,QAAQ,KAAK,EAAE;QACnB,GAAG,CAAC,MAAM,KAAK,EAAE;QACjB,GAAG,CAAC,IAAI,KAAK,EAAE,EACf,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,+EAA+E,CAAC,CAAC;IACnG,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC;IACrD,OAAO,GAAG,CAAC,IAAI,CAAC;AAClB,CAAC;AAED,SAAS,0BAA0B,CAAC,KAAc;IAChD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACnG,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7C,OAAO,KAAK,CAAC,MAAM,KAAK,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC;IACrE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3B,OAAO,CACL,GAAG,CAAC,QAAQ,KAAK,QAAQ;YACzB,GAAG,CAAC,MAAM,KAAK,KAAK;YACpB,GAAG,CAAC,QAAQ,KAAK,EAAE;YACnB,GAAG,CAAC,QAAQ,KAAK,EAAE;YACnB,GAAG,CAAC,QAAQ,KAAK,GAAG;YACpB,GAAG,CAAC,MAAM,KAAK,EAAE;YACjB,GAAG,CAAC,IAAI,KAAK,EAAE,CAChB,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,IAAuB,EACvB,iBAAiB,GAAG,KAAK;IAEzB,IAAI,GAAG,GAAG,KAAK,CAAC;IAChB,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,IAAI,QAA4B,CAAC;IACjC,IAAI,aAAiC,CAAC;IACtC,IAAI,aAAiC,CAAC;IACtC,IAAI,aAAkC,CAAC;IACvC,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAE9B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACpC,GAAG,GAAG,IAAI,CAAC;QACb,CAAC;aAAM,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC5C,IAAI,GAAG,IAAI,CAAC;QACd,CAAC;aAAM,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;YAChC,IAAI,QAAQ,KAAK,SAAS;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,uCAAuC,EAAE,CAAC;YACjG,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,KAAK;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC;YACvE,KAAK,IAAI,CAAC,CAAC;YACX,IAAI,CAAC;gBACH,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,6BAA6B,CAAC,EAAE,CAAC;YAClF,CAAC;QACH,CAAC;aAAM,IAAI,GAAG,KAAK,iBAAiB,IAAI,GAAG,KAAK,iBAAiB,IAAI,GAAG,KAAK,kBAAkB,EAAE,CAAC;YAChG,iBAAiB,GAAG,IAAI,CAAC;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,KAAK;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,GAAG,mBAAmB,EAAE,CAAC;YACnE,KAAK,IAAI,CAAC,CAAC;YACX,IAAI,GAAG,KAAK,iBAAiB;gBAAE,aAAa,GAAG,KAAK,CAAC;YACrD,IAAI,GAAG,KAAK,iBAAiB;gBAAE,aAAa,GAAG,KAAK,CAAC;YACrD,IAAI,GAAG,KAAK,kBAAkB,EAAE,CAAC;gBAC/B,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBACtC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,qCAAqC,EAAE,CAAC;gBACrE,CAAC;gBACD,aAAa,GAAG,KAAK,KAAK,KAAK,CAAC;YAClC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,GAAG,EAAE,EAAE,CAAC;QACxD,CAAC;IACH,CAAC;IAED,IAAI,iBAAiB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC5C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,6CAA6C,EAAE,CAAC;IAC7E,CAAC;IACD,IAAI,iBAAiB,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YACpE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,gFAAgF,EAAE,CAAC;QAChH,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC;YACnE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,sDAAsD,EAAE,CAAC;QACtF,CAAC;QACD,OAAO;YACL,EAAE,EAAE,IAAI;YACR,GAAG;YACH,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/B,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjC,MAAM,EAAE,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE;SACxD,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/F,CAAC;AAED,SAAS,wBAAwB,CAC/B,KAAuB,EACvB,YAA2D;IAE3D,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,gCAAgC,YAAY,4DAA4D,CAAC,CAAC;IAC5H,CAAC;IACD,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,6BAA6B,YAAY,oBAAoB,CAAC,CAAC;IACjF,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,iCAAiC,YAAY,IAAI,cAAc,aAAa,CAAC,CAAC;IAChG,CAAC;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,MAAgC,EAChC,IAAgB;IAEhB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACzC,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,IAAI,QAAQ,CAAC;QACxE,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,IAAI,QAAQ,CAAC;KACzE,CAAC,CAAC;IACH,wBAAwB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACjD,wBAAwB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACjD,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QACnG,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,MAAM,CAAC,aAAa,KAAK,MAAM,CAAC,aAAa,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CACb,mCAAmC,cAAc,IAAI,MAAM,CAAC,OAAO,SAAS,cAAc,IAAI,MAAM,CAAC,aAAa,IAAI;YACtH,GAAG,cAAc,IAAI,MAAM,CAAC,OAAO,SAAS,cAAc,IAAI,MAAM,CAAC,aAAa,IAAI;YACtF,6DAA6D,CAC9D,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,mBAA2B,EAC3B,IAAgE;IAEhE,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,mCAAmC,cAAc,MAAM,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,cAAc,GAAG,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;SAClE,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;SACrE,IAAI,CAAC,6BAA6B,CAAC,CAAC;IACvC,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACpE,wBAAwB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACjD,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,+BAA+B,cAAc,mBAAmB,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,MAAM,CAAC,aAAa,KAAK,mBAAmB;YAAE,OAAO,MAAM,CAAC;IAClE,CAAC;IACD,MAAM,IAAI,KAAK,CACb,gBAAgB,cAAc,iBAAiB,cAAc,IAAI,mBAAmB,EAAE,CACvF,CAAC;AACJ,CAAC;AAED,SAAS,6BAA6B,CAAC,IAAY,EAAE,KAAa;IAChE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/E,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACjF,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC1C,IAAI,SAAS,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC,CAAC;QACpD,IAAI,SAAS,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,eAAe,CACtB,SAA2B,EAC3B,SAA2B;IAE3B,IACE,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI;QACjC,SAAS,CAAC,OAAO,KAAK,SAAS,CAAC,OAAO;QACvC,SAAS,CAAC,aAAa,KAAK,SAAS,CAAC,aAAa,EACnD,CAAC;QACD,MAAM,IAAI,KAAK,CACb,GAAG,SAAS,CAAC,IAAI,+CAA+C,SAAS,CAAC,OAAO,QAAQ;YACzF,GAAG,cAAc,IAAI,SAAS,CAAC,aAAa,EAAE,CAC/C,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAe;IAC1C,OAAO,GAAG,cAAc,IAAI,OAAO,EAAE,CAAC;AACxC,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,wBAAwB,IAAI,CAC7D,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,CAAC,UAAU,CAAC,sCAAsC,CAAC;QACxD,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,sCAAsC,CAAC,MAAM,CAAC,CAAC,CAC1E,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B,CAAC,KAAc;IAClD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7E,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,IAAI,MAAM,CAAC,IAAI,KAAK,sBAAsB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;QACxE,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE;QACzD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YACtE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAmB,EAAE,CAAC;AACjD,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc;IAC9C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7E,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,IAAI,MAAM,CAAC,KAAK,KAAK,OAAO;QAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACxD,IACE,MAAM,CAAC,KAAK,KAAK,OAAO;QACxB,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,IAAK,MAAM,CAAC,GAAc,IAAI,CAAC;QAChE,MAAM,CAAC,aAAa,KAAK,QAAQ;QACjC,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QACjE,CAAC,MAAM,CAAC,iBAAiB,KAAK,IAAI;YAChC,CAAC,OAAO,MAAM,CAAC,iBAAiB,KAAK,QAAQ,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC1G,CAAC,MAAM,CAAC,cAAc,KAAK,IAAI,IAAI,OAAO,MAAM,CAAC,cAAc,KAAK,QAAQ,CAAC;QAC7E,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC;QACjE,CAAC,CAAC,YAAY,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAc,CAAC;QACpE,MAAM,CAAC,eAAe,KAAK,oCAAoC,EAC/D,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC;AACpE,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,IACE,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC;QAC5D,OAAO,MAAM,CAAC,oBAAoB,KAAK,QAAQ;QAC/C,CAAC,MAAM,CAAC,gBAAgB,KAAK,IAAI,IAAI,OAAO,MAAM,CAAC,gBAAgB,KAAK,QAAQ,CAAC;QACjF,CAAC,MAAM,CAAC,kBAAkB,KAAK,IAAI,IAAI,OAAO,MAAM,CAAC,kBAAkB,KAAK,QAAQ,CAAC;QACrF,CAAC,MAAM,CAAC,eAAe,KAAK,IAAI,IAAI,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ,CAAC;QAC/E,CAAC,MAAM,CAAC,iBAAiB,KAAK,IAAI,IAAI,OAAO,MAAM,CAAC,iBAAiB,KAAK,QAAQ,CAAC;QACnF,CAAC,MAAM,CAAC,cAAc,KAAK,IAAI,IAAI,OAAO,MAAM,CAAC,cAAc,KAAK,QAAQ,CAAC;QAC7E,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC;QACjE,CAAC,CAAC,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAc,CAAC;QAC/E,CAAC,MAAM,CAAC,eAAe,KAAK,IAAI,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS,CAAC;QACjH,CAAC,MAAM,CAAC,aAAa,KAAK,WAAW,IAAI,MAAM,CAAC,aAAa,KAAK,aAAa,CAAC;QAChF,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,EACjC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IACD,IACE,CAAC,MAAM,CAAC,kBAAkB,KAAK,IAAI,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAC9F,CAAC,MAAM,CAAC,iBAAiB,KAAK,IAAI,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAC5F,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IACD,IACE,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,CAC9B,MAAM,CAAC,eAAe,KAAK,IAAI;QAC/B,MAAM,CAAC,iBAAiB,KAAK,IAAI;QACjC,MAAM,CAAC,cAAc,KAAK,IAAI;QAC9B,MAAM,CAAC,QAAQ,KAAK,IAAI;QACxB,MAAM,CAAC,IAAI,KAAK,SAAS,CAC1B,CAAC;QACF,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,EAC1D,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,eAAe,GAAiC,IAAI,CAAC;IACzD,IAAI,WAAW,GAAgC,IAAI,CAAC;IACpD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,WAAW,GAAG,wBAAwB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC5D,IAAI,WAAW,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QAC9F,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAuB,CAAC,EAAE,CAAC;YAC/E,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC7E,CAAC;QACD,eAAe,GAAG,MAAM,CAAC,eAAe,KAAK,IAAI,IAAI,MAAM,CAAC,aAAa,KAAK,UAAU;YACtF,CAAC,CAAC,4BAA4B,CAAC,MAAM,CAAC,gBAAgB,CAAC;YACvD,CAAC,CAAC,IAAI,CAAC;QACT,IACE,CAAC,MAAM,CAAC,eAAe,KAAK,IAAI,IAAI,MAAM,CAAC,aAAa,KAAK,UAAU,IAAI,eAAe,KAAK,IAAI,CAAC;YACpG,CAAC,MAAM,CAAC,aAAa,KAAK,UAAU,IAAI,MAAM,CAAC,gBAAgB,KAAK,IAAI,CAAC;YACzE,CAAC,MAAM,CAAC,eAAe,KAAK,IAAI,IAAI,MAAM,CAAC,aAAa,KAAK,QAAQ,CAAC,EACtE,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IACD,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,MAAM;QACpB,mBAAmB,EAAE,MAAM,CAAC,oBAAoB;QAChD,eAAe,EAAE,MAAM,CAAC,gBAAgB;QACxC,iBAAiB,EAAE,MAAM,CAAC,kBAAkB;QAC5C,cAAc,EAAE,MAAM,CAAC,eAAe;QACtC,gBAAgB,EAAE,MAAM,CAAC,iBAAiB;QAC1C,aAAa,EAAE,MAAM,CAAC,cAAc;QACpC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,IAAI,EAAE,MAAM,CAAC,IAA4B;QACzC,cAAc,EAAE,MAAM,CAAC,eAAe;QACtC,eAAe,EAAE,eAAe;QAChC,WAAW;QACX,YAAY,EAAE,MAAM,CAAC,aAAa;QAClC,UAAU,EAAE,MAAM,CAAC,WAAW;KAC/B,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAAC,SAA8B;IACjE,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,OAAO,CAAC;IAClF,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,QAAQ,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,SAAS,CAAC,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;QAChF,MAAM,IAAI,KAAK,CAAC,qDAAqD,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC9F,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,IACE,CAAC,MAAM,CAAC,UAAU,KAAK,8BAA8B,IAAI,MAAM,CAAC,UAAU,KAAK,mBAAmB,CAAC;YACnG,CAAC,CAAC,qBAAqB,EAAE,UAAU,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAkB,CAAC;YACtG,MAAM,CAAC,aAAa,KAAK,WAAW;YACpC,CAAC,MAAM,CAAC,UAAU,KAAK,8BAA8B,IAAI,MAAM,CAAC,QAAQ,KAAK,qBAAqB,CAAC;YACnG,CAAC,MAAM,CAAC,UAAU,KAAK,mBAAmB,IAAI,MAAM,CAAC,QAAQ,KAAK,qBAAqB,CAAC,EACxF,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;QACD,OAAO;YACL,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,MAAM,CAAC,UAAU;YAC5B,QAAQ,EAAE,MAAM,CAAC,QAA2C;SAC7D,CAAC;IACJ,CAAC;IACD,IACE,CAAC,MAAM,CAAC,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC;QAC7D,OAAO,MAAM,CAAC,oBAAoB,KAAK,QAAQ;QAC/C,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;QACnC,OAAO,MAAM,CAAC,kBAAkB,KAAK,QAAQ;QAC7C,CAAC,MAAM,CAAC,eAAe,KAAK,IAAI,IAAI,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ,CAAC;QAC/E,CAAC,MAAM,CAAC,cAAc,KAAK,IAAI,IAAI,OAAO,MAAM,CAAC,cAAc,KAAK,QAAQ,CAAC;QAC7E,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC;QACxD,MAAM,CAAC,aAAa,KAAK,WAAW;QACpC,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC;QACjC,CAAC,0BAA0B,CAAC,MAAM,CAAC,kBAAkB,CAAC,EACtD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IACD,IACE,CAAC,MAAM,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,MAAM,CAAC,eAAe,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QAChG,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,EAC1G,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IACD,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,mBAAmB,EAAE,MAAM,CAAC,oBAAoB;QAChD,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,iBAAiB,EAAE,MAAM,CAAC,kBAAkB;QAC5C,cAAc,EAAE,MAAM,CAAC,eAAe;QACtC,aAAa,EAAE,MAAM,CAAC,cAAc;QACpC,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,UAAU,EAAE,MAAM,CAAC,WAAW;KAC/B,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAoB,EAAE,MAAwB;IACxE,MAAM,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACrD,IACE,MAAM,CAAC,mBAAmB,KAAK,QAAQ;QACvC,MAAM,CAAC,eAAe,KAAK,QAAQ;QACnC,MAAM,CAAC,iBAAiB,KAAK,MAAM,CAAC,SAAS;QAC7C,MAAM,CAAC,UAAU,KAAK,IAAI,EAC1B,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,sGAAsG,CAAC,CAAC;IAC1H,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,IACE,MAAM,CAAC,cAAc,KAAK,IAAI;YAC9B,MAAM,CAAC,gBAAgB,KAAK,IAAI;YAChC,MAAM,CAAC,aAAa,KAAK,IAAI;YAC7B,MAAM,CAAC,QAAQ,KAAK,IAAI;YACxB,MAAM,CAAC,IAAI,KAAK,SAAS;YACzB,MAAM,CAAC,YAAY,KAAK,WAAW,EACnC,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;QACjG,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IACE,MAAM,CAAC,cAAc,KAAK,QAAQ;QAClC,MAAM,CAAC,gBAAgB,KAAK,MAAM,CAAC,SAAS;QAC5C,MAAM,CAAC,IAAI,KAAK,SAAS;QACzB,MAAM,CAAC,YAAY,KAAK,WAAW;QACnC,MAAM,CAAC,QAAQ,KAAK,IAAI;QACxB,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,EAC/B,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,2BAA2B,CAClC,MAA2B,EAC3B,eAAwB,EACxB,YAAoB,EACpB,KAAc,EACd,QAAiB;IAEjB,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,MAAM,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;QAChC,IAAI,IAAI,4BAA4B,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;SAAM,IAAI,eAAe,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QAC9C,IAAI,IAAI,CACN,wEAAwE;YACxE,qCAAqC;YACrC,8EAA8E,CAC/E,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,YAAY,gCAAgC,EAAE,CAAC;QACtD,IAAI,IAAI,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;SAAM,IAAI,YAAY,KAAK,mBAAmB,EAAE,CAAC;QAChD,IAAI,IAAI,MAAM,EAAE,KAAK,KAAK,SAAS;YACjC,CAAC,CAAC,qCAAqC,YAAY,IAAI;YACvD,CAAC,CAAC,SAAS,YAAY,IAAI,CAAC;IAChC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,4BAA4B,CAAC,MAAoB;IACxD,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,OAAO,EAAE,CAAC;QAC1C,OAAO,4FAA4F,CAAC;IACtG,CAAC;IACD,IAAI,MAAM,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1E,OAAO,sDAAsD,OAAO,IAAI,CAAC;IAC3E,CAAC;IACD,OAAO,sEAAsE,CAAC;AAChF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAsB,EAAE,IAAgB;IACtE,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;QAChC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,IAA4D,CAAC;IACjE,IAAI,MAAwB,CAAC;IAC7B,IAAI,gBAAyC,CAAC;IAC9C,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzD,IAAI,CAAC;QACH,CAAC,IAAI,EAAE,MAAM,EAAE,gBAAgB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACnD,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;YACnC,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,EAAE;SACrB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM;YACxB,CAAC,CAAC,6BAA6B,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC;YACxE,CAAC,CAAC,CACA,4BAA4B,YAAY,CAAC,KAAK,EAAE,iBAAiB,CAAC,IAAI;gBACtE,0BAA0B;gBAC1B,2DAA2D;gBAC3D,sEAAsE;gBACtE,qCAAqC;gBACrC,oCAAoC;gBACpC,8BAA8B;gBAC9B,CAAC,KAAK,YAAY,gCAAgC;oBAChD,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC;oBAC5C,CAAC,CAAC,mCAAmC,cAAc,sBAAsB,cAAc,IAAI,CAAC,CAC/F,CAAC,CAAC;QACL,OAAO,WAAW,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,EAAE,aAAa,IAAI,gBAAgB,KAAK,IAAI,CAAC;IACpF,IAAI,OAAO,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;QACxE,IAAI,CAAC,MAAM,CACT,2DAA2D;YAC3D,0BAA0B;YAC1B,aAAa,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,KAAK,cAAc,IAAI,MAAM,CAAC,aAAa,KAAK;YAC1F,oCAAoC;YACpC,qCAAqC;YACrC,oCAAoC;YACpC,sCAAsC;YACtC,eAAe,WAAW,IAAI,CAC/B,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,CAAC,MAAM,CACT,0BAA0B,OAAO,CAAC,QAAQ,IAAI,sBAAsB,MAAM;QAC1E,aAAa,cAAc,IAAI,MAAM,CAAC,OAAO,OAAO,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI;QAC7F,yBAAyB,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI;QAClD,aAAa,gBAAgB,CAAC,CAAC,CAAC,GAAG,cAAc,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,eAAe,OAAO,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI;QACjJ,yBAAyB,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI;QAClD,iBAAiB,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI;QAChE,mBAAmB,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,sBAAsB,IAAI,CAC5E,CAAC;IAEF,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,kGAAkG,CAAC,CAAC;YAChH,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAC/B,UAAU,cAAc,IAAI,MAAM,CAAC,OAAO,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YACtE,GAAG,gBAAgB,CAAC,CAAC,CAAC,QAAQ,cAAc,IAAI,gBAAgB,EAAE,OAAO,IAAI,SAAS,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;YACzH,SAAS,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,UAAU,CAC/D,CAAC;QACF,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,2CAA2C,CAAC,CAAC;YACzD,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,4EAA4E,CAAC,CAAC;YAC1F,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,qDAAqD,CAAC,CAAC;YACnE,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,aAAa,KAAK,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QACjG,IAAI,eAAe,GAA4B,IAAI,CAAC;QACpD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,aAAa,CACtB,cAAc,EACd,IAAI,CAAC,MAAM,CAAC,OAAO,EACnB,EAAE,aAAa,EAAE,IAAI,EAAE,CACxB,CAAC;YACF,eAAe,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAC7C,eAAe,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9C,MAAM,IAAI,GAAG;gBACX,QAAQ;gBACR,OAAO;gBACP,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7D,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;gBACtC,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;gBACtC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;aACpD,CAAC;YACF,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC3D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,CAAC,MAAM,CACT,qCAAqC,YAAY,CAAC,KAAK,EAAE,iBAAiB,CAAC,KAAK;gBAChF,0BAA0B;gBAC1B,aAAa,eAAe;oBAC1B,CAAC,CAAC,GAAG,eAAe,CAAC,IAAI,IAAI,eAAe,CAAC,OAAO,yBAAyB;oBAC7E,CAAC,CAAC,yCAAyC,IAAI;gBACjD,6CAA6C,gBAAgB;oBAC3D,CAAC,CAAC,GAAG,gBAAgB,CAAC,IAAI,IAAI,gBAAgB,CAAC,OAAO,EAAE;oBACxD,CAAC,CAAC,eAAe,IAAI;gBACvB,qCAAqC;gBACrC,oCAAoC;gBACpC,sCAAsC;gBACtC,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAC3C,CAAC;YACF,OAAO,WAAW,IAAI,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,CACT,GAAG,YAAY,CAAC,KAAK,EAAE,4BAA4B,CAAC,IAAI;YACxD,0BAA0B;YAC1B,iCAAiC;YACjC,wBAAwB,gBAAgB;gBACtC,CAAC,CAAC,GAAG,gBAAgB,CAAC,IAAI,IAAI,gBAAgB,CAAC,OAAO,EAAE;gBACxD,CAAC,CAAC,eAAe,IAAI;YACvB,qCAAqC;YACrC,oCAAoC;YACpC,sCAAsC;YACtC,CAAC,KAAK,YAAY,gCAAgC;gBAChD,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC;gBAC5C,CAAC,CAAC,mBAAmB,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,SAAS,OAAO,CAAC,QAAQ,IAAI,sBAAsB,gBAAgB,WAAW,KAAK,CAAC,CACjJ,CAAC;QACF,OAAO,WAAW,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CACT,0EAA0E,YAAY,CAAC,KAAK,EAAE,iBAAiB,CAAC,KAAK,CACtH,CAAC;YACF,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,CAAC,MAAM,CACT,WAAW,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,4CAA4C;YAC5F,6DAA6D,CAC9D,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,MAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,IAAI,CAAC,gBAAgB;YAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QACrF,IACE,gBAAgB,CAAC,OAAO,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO;YAChD,gBAAgB,CAAC,aAAa,KAAK,IAAI,CAAC,MAAM,CAAC,aAAa,EAC5D,CAAC;YACD,MAAM,IAAI,CAAC,aAAa,CACtB,cAAc,EACd,IAAI,CAAC,MAAM,CAAC,OAAO,EACnB,EAAE,aAAa,EAAE,IAAI,EAAE,CACxB,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC5C,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACnF,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,GAAG,QAAQ,CAAC;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,CACT,wDAAwD,YAAY,CAAC,KAAK,EAAE,iBAAiB,CAAC,KAAK;YACnG,0BAA0B;YAC1B,aAAa,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,KAAK,cAAc,IAAI,MAAM,CAAC,aAAa,KAAK;YAC1F,6DAA6D;YAC7D,qCAAqC;YACrC,oCAAoC;YACpC,8CAA8C;YAC9C,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAC3C,CAAC;QACF,OAAO,WAAW,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,cAAc,GAAwB,IAAI,CAAC;IAC/C,IAAI,cAAc,GAA8B,IAAI,CAAC;IACrD,IAAI,kBAAkB,GAAiC,IAAI,CAAC;IAC5D,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,IAAI,uBAAuB,GAAG,KAAK,CAAC;IACpC,IAAI,YAAY,GAA6B,6BAA6B,CAAC;IAC3E,IAAI,YAAY,GAAG,oBAAoB,CAAC;IACxC,MAAM,yBAAyB,GAAG,KAAK,IAAmB,EAAE;QAC1D,uBAAuB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC;YACH,cAAc,GAAG,2BAA2B,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;QAChG,CAAC;QAAC,MAAM,CAAC;YACP,cAAc,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAAC;QACH,IAAI,MAAM,GAAG,2BAA2B,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC1F,cAAc,GAAG,MAAM,CAAC;QACxB,kBAAkB,GAAG,MAAM,CAAC,KAAK,CAAC;QAClC,IAAI,MAAM,CAAC,mBAAmB,KAAK,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5E,YAAY,GAAG,kCAAkC,CAAC;YAClD,YAAY,GAAG,WAAW,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACjF,CAAC;QACD,IAAI,CAAC;YACH,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,cAAc,GAAG,IAAI,CAAC;YACtB,eAAe,GAAG,IAAI,CAAC;YACvB,YAAY,GAAG,2BAA2B,CAAC;YAC3C,YAAY,GAAG,oBAAoB,CAAC;YACpC,MAAM,MAAM,GAAG,kBAAkB,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC3F,cAAc,GAAG,MAAM,CAAC;YACxB,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC/B,MAAM,yBAAyB,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC;YACpF,CAAC;YACD,MAAM,cAAc,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAChE,IACE,MAAM,CAAC,mBAAmB,KAAK,cAAc;gBAC7C,MAAM,CAAC,QAAQ,KAAK,cAAc;gBAClC,MAAM,CAAC,iBAAiB,KAAK,IAAI,CAAC,MAAM,CAAC,SAAS;gBAClD,MAAM,CAAC,UAAU,KAAK,IAAI;gBAC1B,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,cAAc,KAAK,cAAc,CAAC,EACzE,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;YAC5E,CAAC;YACD,YAAY,GAAG,iCAAiC,CAAC;YACjD,YAAY,GAAG,oBAAoB,CAAC;YACpC,uBAAuB,GAAG,IAAI,CAAC;YAC/B,MAAM,GAAG,2BAA2B,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;YACtF,cAAc,GAAG,MAAM,CAAC;QAC1B,CAAC;QACD,YAAY,GAAG,iCAAiC,CAAC;QACjD,YAAY,GAAG,oBAAoB,CAAC;QACpC,MAAM,KAAK,GAAG,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACtD,YAAY,GAAG,4BAA4B,CAAC;QAC5C,YAAY,GAAG,WAAW,CAAC;QAC3B,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACnD,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,EAAE;SACrB,CAAC,CAAC;QACH,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC7F,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,kBAAkB,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC5D,YAAY,GAAG,kCAAkC,CAAC;YAClD,YAAY,GAAG,mBAAmB,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,YAAY,GAAG,sCAAsC,CAAC;YACtD,YAAY,GAAG,oBAAoB,CAAC;YACpC,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAS,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,eAAe,GAAG,KAAK,KAAK,SAAS;gBACzC,CAAC,CAAC,mDAAmD;gBACrD,CAAC,CAAC,0CAA0C,CAAC;YAC/C,IAAI,CAAC,MAAM,CACT,WAAW,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,QAAQ,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,eAAe,KAAK;gBACtH,sDAAsD,YAAY,CAAC,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAClG,CAAC;YACF,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,MAAM,CACT,KAAK,KAAK,SAAS;YACjB,CAAC,CAAC,CACA,WAAW,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,QAAQ,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,eAAe;gBAC5G,4BAA4B,CAAC,MAAM,CAAC,CACrC;YACD,CAAC,CAAC,WAAW,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,QAAQ,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,+CAA+C,CACjJ,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,6DAA6D,CAAC,CAAC;QAC3E,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,eAAe,IAAI,CAAC,uBAAuB,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAC3E,MAAM,yBAAyB,EAAE,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,MAAM,CACT,+BAA+B,YAAY,KAAK,YAAY,CAAC,KAAK,EAAE,iBAAiB,CAAC,KAAK;YAC3F,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,CAAC;YACjE,2BAA2B,CAAC,cAAc,EAAE,eAAe,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CACpG,CAAC;QACF,OAAO,WAAW,IAAI,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAQD,MAAM,kBAAmB,SAAQ,KAAK;IAC3B,QAAQ,CAAS;IAE1B,YAAY,MAAsB,EAAE,MAAM,GAAG,EAAE;QAC7C,KAAK,CAAC,sBAAsB,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,CAAC;CACF;AAED,SAAS,UAAU,CACjB,OAAe,EACf,IAAuB,EACvB,UAA0D,EAAE;IAE5D,OAAO,IAAI,OAAO,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE;QAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE;YACtC,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/D,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG;SAChC,CAAC,CAAC;QACH,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,IAAI,GAAG,CAAC,KAAY,EAAE,EAAE;YAC5B,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC;QACF,MAAM,MAAM,GAAG,CAAC,OAAe,EAAE,KAAa,EAAU,EAAE;YACxD,MAAM,IAAI,GAAG,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC9C,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,iBAAiB,EAAE,CAAC;gBAChD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACtB,IAAI,CAAC,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC,CAAC;YAC9D,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QACF,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YAClC,IAAI,OAAO;gBAAE,OAAO;YACpB,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,IAAI,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;gBAC7C,OAAO;YACT,CAAC;YACD,OAAO,GAAG,IAAI,CAAC;YACf,cAAc,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,IAAY;IAClC,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACjE,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,MAAiC,CAAC;AAC3C,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,KAAa;IAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1B,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAc;IACzC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,MAAM,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;SACrD,OAAO,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAClG,OAAO,6BAA6B,OAAO,EAAE,CAAC;AAChD,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,WAAmB,EAAE,IAAuB,EAAE,KAAa;IAChF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IACnD,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,gBAAgB,CAAC,CAAC;IACrE,OAAO,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,2BAA2B,CAAC,KAAa,EAAE,oBAA6B;IAC/E,MAAM,UAAU,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC/C,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;QACvC,MAAM,YAAY,GAAG,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;QAChE,IAAI,YAAY,KAAK,UAAU,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CACb,+BAA+B,UAAU,wDAAwD,YAAY,EAAE,CAChH,CAAC;QACJ,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,IAAI,UAAU,KAAK,sBAAsB,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CACb,+CAA+C,sBAAsB,eAAe;YACpF,2BAA2B,UAAU,yCAAyC;YAC9E,sCAAsC,WAAW,CAAC,UAAU,CAAC,qDAAqD,CACnH,CAAC;IACJ,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,oBAA6B;IAC5D,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,2BAA2B,CAC1C,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EACrE,oBAAoB,CACrB,CAAC;IACF,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,eAAe,CAAC,CAAC;IACvF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,aAAa,CAAC,CAAC;IACjF,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5C,IAAI,YAAY,KAAK,EAAE,IAAI,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACrF,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAClE,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,OAAmB;IACjD,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,MAAM,QAAQ,CAAC,aAAa,CAAC,KAAK,OAAO,CAAC,eAAe,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;IACrH,IAAI,QAAQ,KAAK,OAAO,CAAC,QAAQ;QAAE,MAAM,IAAI,gCAAgC,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC1G,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC;IAC3G,IAAI,MAAM,KAAK,OAAO,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC1F,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;IACrG,IAAI,IAAI,KAAK,OAAO,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IACpF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,UAAU,CAAC,QAAiC,EAAE,OAAe;IACpE,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;IACzB,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IACxC,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1D,MAAM,KAAK,GAAI,GAA+B,CAAC,OAAO,CAAC,CAAC;QACxD,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;IAC9C,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,qCAAqC,OAAO,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,KAMzC;IACC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACvD,IAAI,eAAe,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,6CAA6C,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;IACnE,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7G,MAAM,IAAI,KAAK,CAAC,aAAa,KAAK,CAAC,IAAI,+BAA+B,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;IACtE,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACvD,IAAI,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO,yCAAyC,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,MAAM,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,WAAW,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO,8CAA8C,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAClD,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC;IACjG,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3G,MAAM,IAAI,KAAK,CAAC,aAAa,KAAK,CAAC,IAAI,IAAI,cAAc,sBAAsB,CAAC,CAAC;IACnF,CAAC;IACD,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,aAAa,EAAE,MAAM,CAAC,OAAO;QAC7B,WAAW;QACX,OAAO,EAAE,WAAW;KACrB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,IAAmD,EACnD,OAAmC,EACnC,QAAiB,EACjB,OAAmB;IAEnB,IAAI,WAAmB,CAAC;IACxB,IAAI,CAAC;QACH,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,2BAA2B,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CACb,GAAG,OAAO,kDAAkD;gBAC5D,iEAAiE;gBACjE,qGAAqG,CACtG,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IACD,OAAO,mBAAmB,CAAC;QACzB,IAAI;QACJ,OAAO;QACP,OAAO,EAAE,OAAO,CAAC,IAAI;QACrB,WAAW;QACX,GAAG,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACrE,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,IAAmD,EACnD,OAAe,EACf,OAAmB;IAEnB,IAAI,OAAO,KAAK,QAAQ,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACxG,4EAA4E;IAC5E,qEAAqE;IACrE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzG,IAAI,SAA2B,CAAC;IAChC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;YACrC,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;YACvC,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAY,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC9C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QACD,MAAM,QAAQ,GAAG,MAAiC,CAAC;QACnD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAA2C,CAAC;QAClE,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAmD,CAAC;QAClF,SAAS,GAAG;YACV,IAAI,EAAE,QAAQ,CAAC,IAAgC;YAC/C,OAAO,EAAE,QAAQ,CAAC,OAAiB;YACnC,SAAS,EAAE,IAAI,EAAE,SAAmB;YACpC,aAAa,EAAE,YAAY,EAAE,CAAC,cAAc,CAAW;SACxD,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,IAAI,OAAO,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,wBAAwB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC1C,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,IAAmD,EACnD,OAAmB;IAEnB,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;YACrC,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;YACvC,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAY,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC9C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,QAAQ,GAAI,MAAkC,CAAC,QAAQ,CAAC;QAC9D,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YAC7E,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,EAAE,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAAc,EAAE,UAAU,GAAG,KAAK;IACxE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/C,IAAI,UAAU,KAAK,EAAE;QAAE,OAAO,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACxD,OAAO,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACnE,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,OAAe,EAAE,UAAU,GAAG,KAAK;IAC/D,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7E,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;QACrB,WAAW,GAAG,IAAI,CAAC;QACnB,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC,CAAC,CAAC;IACH,IAAI,CAAC;QACH,OAAO,uBAAuB,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC;IACzE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,WAAW;YAAE,OAAO,aAAa,CAAC;QACtC,IAAK,KAA+B,CAAC,IAAI,KAAK,qBAAqB;YAAE,OAAO,KAAK,CAAC;QAClF,MAAM,KAAK,CAAC;IACd,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,oBAA6B;IAClE,IAAI,cAA+C,CAAC;IACpD,MAAM,OAAO,GAAG,KAAK,IAAyB,EAAE;QAC9C,cAAc,KAAK,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;QAC3D,OAAO,gBAAgB,CAAC,MAAM,cAAc,CAAC,CAAC;IAChD,CAAC,CAAC;IACF,OAAO;QACL,aAAa,EAAE,KAAK,IAAI,EAAE;YACxB,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAAO,EAAE,CAAC,CAAC;YACrF,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YACxD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,aAAa,EAAE,KAAK,IAAI,EAAE,CAAC,iBAAiB,CAC1C,cAAc,EACd,iBAAiB,EACjB,KAAK,EACL,MAAM,OAAO,EAAE,CAChB;QACD,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,uBAAuB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,OAAO,EAAE,CAAC;QAClG,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,wBAAwB,CAAC,IAAI,EAAE,MAAM,OAAO,EAAE,CAAC;QAClF,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;YAC9C,MAAM,GAAG,GAAG,MAAM,OAAO,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE;gBAC/C,SAAS;gBACT,UAAU;gBACV,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvD,YAAY,GAAG,CAAC,MAAM,EAAE;gBACxB,cAAc,GAAG,CAAC,QAAQ,EAAE;gBAC5B,GAAG,IAAI,IAAI,OAAO,EAAE;aACrB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACtB,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,wBAAwB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACvF,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;YAC/B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,EAAE;gBACpE,OAAO,EAAE,IAAI;gBACb,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE;aAC5C,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,IAAI,CAAC;QACrB,CAAC;QACD,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;YAChF,IAAI,MAAe,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACrC,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,IAAI,KAAK,CAAC,UAAU,OAAO,yBAAyB,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAClG,CAAC;YACD,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAClD,CAAC;QACD,qBAAqB,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YACtC,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAChD,MAAM,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACxD,CAAC;QACD,wBAAwB,EAAE,KAAK,IAAI,EAAE,CAAC,wCAAwC,EAAE;QAChF,OAAO,EAAE,cAAc;QACvB,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI;QAC1E,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;QAC5C,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;KAC7C,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAuB,EACvB,IAAiB;IAEjB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACtC,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC;IAChF,MAAM,YAAY,GAAG,IAAI,IAAI,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC7F,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,YAAY,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,2CAA2C,CAAC,CAAC;QAChF,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,YAAY,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AACzC,CAAC"}
@@ -204,11 +204,20 @@ borg update
204
204
  The command performs a zero-mutation registry preflight for the exact proposed
205
205
  `borgmcp` and `borgmcp-server` versions, their SHA-512 integrity values, and an
206
206
  identical exact `borgmcp-shared` dependency pin. Lookup and installation are
207
- bound to the canonical `https://registry.npmjs.org/` authority and one proven npm
208
- executable, global prefix, and global root. An alternate configured registry,
209
- changed npm context, registry failure, malformed manifest, mismatched or ranged
210
- shared pin, unsupported package manager, or ambiguous binary fails before
211
- confirmation and mutation with manual-update guidance.
207
+ bound to one proven npm executable, configured registry, global prefix, and
208
+ global root. The canonical `https://registry.npmjs.org/` needs no extra option.
209
+ To use an alternate HTTPS registry deliberately, name that exact configured URL
210
+ for the current invocation:
211
+
212
+ ```bash
213
+ borg update --registry https://npm.example.com/
214
+ ```
215
+
216
+ The acknowledgement is not persisted or transferable to another URL. A missing
217
+ acknowledgement fails before mutation. A registry change detected after an
218
+ earlier phase refuses before any subsequent package mutation and reports the
219
+ partial state. Registry failure, malformed manifest, mismatched or ranged shared
220
+ pin, unsupported package manager, or ambiguous binary also fails closed.
212
221
 
213
222
  The client is installed first. Borg then verifies and re-enters through the new
214
223
  client binary before any server mutation. If that install, verification, or
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "borgmcp",
3
- "version": "4.3.0",
3
+ "version": "4.4.0",
4
4
  "description": "Coordinate AI coding agents in shared cubes. Works with Claude Code, Codex, and OpenCode.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
package/src/cli-help.ts CHANGED
@@ -210,12 +210,15 @@ export function updateHelpText(version: string): string {
210
210
  `Usage:\n` +
211
211
  ` borg update Confirm interactively, then update\n` +
212
212
  ` borg update --yes Update without prompting (required outside a TTY)\n` +
213
+ ` borg update --registry <url>\n` +
214
+ ` Acknowledge this exact configured npm registry for one update\n` +
213
215
  ` borg update --help Show this help\n\n` +
214
216
  `Before changing anything, Borg reads the exact published client and server manifests,\n` +
215
217
  `requires matching exact borgmcp-shared pins, and verifies canonical npm ownership. The client is\n` +
216
218
  `installed first and the update continues under that new client before the server controller\n` +
217
- `and runtime are updated. Alternate registries and unsupported or ambiguous package-manager\n` +
218
- `provenance fail closed with manual-update guidance.\n\n` +
219
+ `and runtime are updated. An alternate configured registry requires an exact per-invocation\n` +
220
+ `--registry acknowledgement; registry changes refuse before any subsequent package mutation,\n` +
221
+ `and unsupported or ambiguous package-manager provenance fails closed.\n\n` +
219
222
  `If no local server is installed, the server phase is skipped. A failure after the client\n` +
220
223
  `succeeds is reported as partial completion with status-specific recovery. Borg never starts\n` +
221
224
  `a stopped server. After package verification, Borg replaces stale borgmcp package launch paths\n` +