@uptimizr/playcanvas 0.1.1 → 0.1.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../src/collector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../src/collector.ts"],"names":[],"mappings":"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"}
package/dist/collector.js CHANGED
@@ -1,4 +1,4 @@
1
- import { classifyCameraGesture, resolveCadence, toCanonicalDirection, toCanonicalPosition, toCanonicalQuat, } from "@uptimizr/sdk-core";
1
+ import { poseUnchanged, resolveCadence, toCanonicalDirection, toCanonicalPosition, toCanonicalQuat, } from "@uptimizr/sdk-core";
2
2
  import { clamp01, toVec3 } from "./vec.js";
3
3
  import { createGazeRaycaster, createSceneRaycaster } from "./raycast.js";
4
4
  /**
@@ -24,30 +24,12 @@ function isPointerLocked(getCanvas) {
24
24
  const locked = document.pointerLockElement;
25
25
  return locked != null && locked === getCanvas();
26
26
  }
27
- function vec3Close(a, b, eps) {
28
- return (Math.abs(a[0] - b[0]) <= eps && Math.abs(a[1] - b[1]) <= eps && Math.abs(a[2] - b[2]) <= eps);
29
- }
30
- /** True when two poses are equal within `eps`. */
31
- function poseUnchanged(a, b, eps) {
32
- if (!vec3Close(a.position, b.position, eps))
33
- return false;
34
- if (!vec3Close(a.direction, b.direction, eps))
35
- return false;
36
- if ((a.fov === undefined) !== (b.fov === undefined))
37
- return false;
38
- if (a.fov !== undefined && b.fov !== undefined && Math.abs(a.fov - b.fov) > eps)
39
- return false;
40
- return true;
41
- }
42
27
  function sub3(a, b) {
43
28
  return [a[0] - b[0], a[1] - b[1], a[2] - b[2]];
44
29
  }
45
30
  function dot3(a, b) {
46
31
  return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
47
32
  }
48
- function len3(a) {
49
- return Math.hypot(a[0], a[1], a[2]);
50
- }
51
33
  /**
52
34
  * Derive the per-tick capture rate from a `sampling.nodes` entry: either a bare
53
35
  * {@link SampleRate} (root-only, ADR 0027) or a {@link NodeSamplingConfig} whose
@@ -138,22 +120,6 @@ function readNodeTransform(node, scaleEps) {
138
120
  }
139
121
  return sample;
140
122
  }
141
- /** True when two node samples are equal within `eps` (scale presence must also match). */
142
- function nodeSampleUnchanged(a, b, eps) {
143
- if (!vec3Close(a.position, b.position, eps))
144
- return false;
145
- if (Math.abs(a.rotation[0] - b.rotation[0]) > eps ||
146
- Math.abs(a.rotation[1] - b.rotation[1]) > eps ||
147
- Math.abs(a.rotation[2] - b.rotation[2]) > eps ||
148
- Math.abs(a.rotation[3] - b.rotation[3]) > eps) {
149
- return false;
150
- }
151
- if ((a.scale === undefined) !== (b.scale === undefined))
152
- return false;
153
- if (a.scale && b.scale && !vec3Close(a.scale, b.scale, eps))
154
- return false;
155
- return true;
156
- }
157
123
  /**
158
124
  * Resolve a declared {@link PlayCanvasActor} to a live node, or `null` when it is
159
125
  * not (yet) in the scene. A function is called each time (robust to load order
@@ -240,17 +206,6 @@ function readPlayCanvasBoneTransform(bone, scaleEps) {
240
206
  }
241
207
  return sample;
242
208
  }
243
- /** Round an AABB to mm precision so tiny float jitter doesn't re-send the box. */
244
- function roundAabb(b) {
245
- return b.map((v) => Math.round(v * 1000) / 1000);
246
- }
247
- /** True when two AABBs match within `eps` on every axis. */
248
- function aabbClose(a, b, eps) {
249
- for (let i = 0; i < 6; i++)
250
- if (Math.abs((a[i] ?? 0) - (b[i] ?? 0)) > eps)
251
- return false;
252
- return true;
253
- }
254
209
  function meshInstancesOf(node) {
255
210
  return node.render?.meshInstances ?? node.model?.meshInstances ?? [];
256
211
  }
@@ -417,6 +372,17 @@ export function playcanvasCollector(options) {
417
372
  name: "playcanvas",
418
373
  start(ctx) {
419
374
  const appView = app;
375
+ // The engine-agnostic aggregator (#10): the connector reads live engine
376
+ // state into plain-number snapshot DTOs and hands them here; the
377
+ // offload-eligible math (matrix-free decompose idle-diffs, visibility
378
+ // bucketing, gesture classification) runs main-thread by default or inside
379
+ // the offload worker, behind the client `offload` flag.
380
+ const aggregatorConfig = {
381
+ perf: { suppressIdle: suppressIdlePerfSamples, fpsThreshold: perfFpsThreshold },
382
+ node: { suppressIdle: suppressIdleSamples },
383
+ visibility: { centeredCos: visCenteredCos, boundingBox: visBoundingBox, boundsEps: 1e-3 },
384
+ };
385
+ const snapshot = ctx.createAggregation(aggregatorConfig);
420
386
  const timers = [];
421
387
  const domListeners = [];
422
388
  const frameCallbacks = [];
@@ -426,7 +392,6 @@ export function playcanvasCollector(options) {
426
392
  let disposed = false;
427
393
  let lastPointerMove = 0;
428
394
  let lastPose;
429
- let lastFps;
430
395
  // camera_gesture (ADR 0025) bracket state: the camera snapshot at
431
396
  // pointer-down, diffed against pointer-up to classify the navigation.
432
397
  let gestureStart = null;
@@ -476,8 +441,8 @@ export function playcanvasCollector(options) {
476
441
  ? toCanonicalPosition(gazeHit.point, "right")
477
442
  : undefined;
478
443
  const hitMesh = gazeHit && gazeHit.name ? gazeHit.name : undefined;
479
- ctx.emit({
480
- type: "camera_sample",
444
+ snapshot({
445
+ channel: "camera",
481
446
  position: pose.position,
482
447
  direction: pose.direction,
483
448
  ...(pose.fov !== undefined ? { fov: pose.fov } : {}),
@@ -508,13 +473,11 @@ export function playcanvasCollector(options) {
508
473
  const fps = readFps();
509
474
  if (fps <= 0)
510
475
  return;
511
- if (suppressIdlePerfSamples &&
512
- lastFps !== undefined &&
513
- Math.abs(fps - lastFps) <= perfFpsThreshold) {
514
- return;
515
- }
516
- lastFps = fps;
517
- ctx.emit({ type: "frame_perf", fps });
476
+ // Hand the engine FPS read to the aggregator; it owns the idle-diff (and,
477
+ // for engines that supply a frame-time window, the percentiles/longFrames).
478
+ // PlayCanvas exposes only an averaged FPS, so the window stays empty and the
479
+ // aggregator emits `frame_perf` with `fps` alone — byte-for-byte unchanged.
480
+ snapshot({ channel: "perf", frameTimes: new Float32Array(0), fps, jankFrameMs: 0 });
518
481
  };
519
482
  // Drive a continuous channel either on a timer (fixed interval) or once per
520
483
  // engine frame ("frame"). PlayCanvas owns its render loop, so the connector
@@ -553,10 +516,12 @@ export function playcanvasCollector(options) {
553
516
  // actor gets its own cadence-driven sampler: resolve the node (lazily —
554
517
  // resolvers handle load order), refuse cameras (the visitor camera is
555
518
  // already `camera_sample`; "events live once"), read the WORLD transform,
556
- // convert it to the canonical frame, and emit. Idle suppression skips
557
- // samples where the transform is unchanged so a static actor costs nothing.
519
+ // convert it to the canonical frame, and hand the decomposed sample to the
520
+ // aggregator. PlayCanvas applies a right-handed→canonical conversion (ADR
521
+ // 0018), so we pass the already-decomposed sample (never the raw matrix
522
+ // path); the aggregator owns the idle-diff so a static actor stays off the
523
+ // wire (#10).
558
524
  const root = appView.root;
559
- const lastNodeSample = new Map();
560
525
  const refusedCamera = new Set();
561
526
  for (const id of actorIds) {
562
527
  const actor = actorMap[id];
@@ -580,40 +545,24 @@ export function playcanvasCollector(options) {
580
545
  }
581
546
  return;
582
547
  }
583
- const sample = readNodeTransform(node, cameraEpsilon);
584
- const prev = lastNodeSample.get(id);
585
- if (!(suppressIdleSamples && prev && nodeSampleUnchanged(prev, sample, cameraEpsilon))) {
586
- lastNodeSample.set(id, sample);
587
- ctx.emit({
588
- type: "node_transform",
589
- nodeId: id,
590
- position: sample.position,
591
- rotation: sample.rotation,
592
- ...(sample.scale ? { scale: sample.scale } : {}),
593
- });
594
- }
595
- // Subtree descendants (ADR 0033): walk the bounded hierarchy and emit
596
- // each kept node's WORLD transform with its `childPath`. Idle
597
- // suppression is keyed per (actor, childPath) so a static part costs
598
- // nothing on the wire.
548
+ snapshot({
549
+ channel: "node",
550
+ nodeId: id,
551
+ decomposed: readNodeTransform(node, cameraEpsilon),
552
+ scaleEps: cameraEpsilon,
553
+ });
554
+ // Subtree descendants (ADR 0033): walk the bounded hierarchy and hand
555
+ // each kept node's WORLD transform with its `childPath` to the
556
+ // aggregator, which idle-diffs per (actor, childPath) so a static part
557
+ // costs nothing on the wire.
599
558
  if (subtree) {
600
559
  for (const { childPath, node: child } of collectSubtree(node, subtree)) {
601
- const childSample = readNodeTransform(child, cameraEpsilon);
602
- const key = `${id}\u0000${childPath}`;
603
- const childPrev = lastNodeSample.get(key);
604
- if (suppressIdleSamples &&
605
- childPrev &&
606
- nodeSampleUnchanged(childPrev, childSample, cameraEpsilon)) {
607
- continue;
608
- }
609
- lastNodeSample.set(key, childSample);
610
- ctx.emit({
611
- type: "node_transform",
560
+ snapshot({
561
+ channel: "node",
612
562
  nodeId: id,
613
563
  childPath,
614
- position: childSample.position,
615
- rotation: childSample.rotation,
616
- ...(childSample.scale ? { scale: childSample.scale } : {}),
564
+ decomposed: readNodeTransform(child, cameraEpsilon),
565
+ scaleEps: cameraEpsilon,
617
566
  });
618
567
  }
619
568
  }
@@ -626,11 +575,13 @@ export function playcanvasCollector(options) {
626
575
  // Skeleton bone capture (`node_transform` + `boneId`, ADR 0027 Tier 2).
627
576
  // For each declared skinned actor, resolve its skeleton bones (by the
628
577
  // configured allowlist or "*"), then sample each bone's skeleton-LOCAL
629
- // pose at the actor's cadence. Per-bone idle suppression keeps a still
630
- // rig free. The local frame is parent-relative, so motion replays onto a
631
- // differently-placed instance of the same rig (ADR 0027).
578
+ // pose at the actor's cadence and hand the decomposed sample to the
579
+ // aggregator (which idle-diffs per (actor, bone), #10). PlayCanvas reads
580
+ // the local TRS via `getLocal*` and applies the canonical conversion (ADR
581
+ // 0018), so — like nodes — we pass the decomposed sample, never the raw
582
+ // matrix path. The local frame is parent-relative, so motion replays onto
583
+ // a differently-placed instance of the same rig (ADR 0027).
632
584
  const root = appView.root;
633
- const lastBoneSample = new Map();
634
585
  const warnedNoSkeleton = new Set();
635
586
  for (const id of boneActorIds) {
636
587
  const actor = actorMap[id];
@@ -658,19 +609,12 @@ export function playcanvasCollector(options) {
658
609
  const sample = readPlayCanvasBoneTransform(bone, cameraEpsilon);
659
610
  if (!sample)
660
611
  continue;
661
- const key = `${id}\u0000${boneName}`;
662
- const prev = lastBoneSample.get(key);
663
- if (suppressIdleSamples && prev && nodeSampleUnchanged(prev, sample, cameraEpsilon)) {
664
- continue;
665
- }
666
- lastBoneSample.set(key, sample);
667
- ctx.emit({
668
- type: "node_transform",
612
+ snapshot({
613
+ channel: "node",
669
614
  nodeId: id,
670
615
  boneId: boneName,
671
- position: sample.position,
672
- rotation: sample.rotation,
673
- ...(sample.scale ? { scale: sample.scale } : {}),
616
+ decomposed: sample,
617
+ scaleEps: cameraEpsilon,
674
618
  });
675
619
  }
676
620
  };
@@ -679,14 +623,12 @@ export function playcanvasCollector(options) {
679
623
  }
680
624
  }
681
625
  // --- Per-object dwell (`mesh_visibility`, #37) ---
682
- // Accumulate on-screen / near-centre time per object every engine frame
683
- // (frameend pauses when the tab is hidden like Babylon's onBeforeRender),
684
- // then flush one bucketed summary per object per window (ADR 0012).
626
+ // Each engine frame we read which tracked objects are on-screen (the engine
627
+ // bounds/frustum reads must stay main-thread) and hand the raw per-tick
628
+ // observations to the aggregator; it owns the dwell/centred/screen-fraction
629
+ // bucketing and the per-window flush (ADR 0012, #10). `frameend` pauses when
630
+ // the tab is hidden — like Babylon's onBeforeRender.
685
631
  if (want.meshVisibility) {
686
- const accum = new Map();
687
- // Last AABB sent per mesh, so a static box is sent once then suppressed.
688
- const sentBounds = new Map();
689
- const boundsEps = 1e-3;
690
632
  let lastVisTime = ctx.now();
691
633
  const sampleVisibility = () => {
692
634
  const now = ctx.now();
@@ -699,11 +641,12 @@ export function playcanvasCollector(options) {
699
641
  const cf = camView.forward;
700
642
  const camPos = [cp.x, cp.y, cp.z];
701
643
  const forward = [cf.x, cf.y, cf.z];
702
- const fwdLen = len3(forward) || 1;
703
- // Half vertical FOV in radians; fall back for ortho / missing fov.
704
- const vfov = verticalFovRad(camView.camera);
705
- const halfFov = vfov !== undefined ? vfov / 2 : 0.4;
644
+ // Vertical FOV in radians; `0` lets the aggregator apply its `0.8`
645
+ // default (→ half-FOV `0.4`), matching the previous ortho/missing-fov
646
+ // fallback.
647
+ const fov = verticalFovRad(camView.camera) ?? 0;
706
648
  let tracked = 0;
649
+ const observations = [];
707
650
  appView.root?.forEach?.((raw) => {
708
651
  const node = raw;
709
652
  if (meshInstancesOf(node).length === 0)
@@ -728,54 +671,41 @@ export function playcanvasCollector(options) {
728
671
  if (!sphereInFront(bounds.center, bounds.radius, camPos, forward)) {
729
672
  return;
730
673
  }
731
- const toCenter = sub3(bounds.center, camPos);
732
- const dist = len3(toCenter) || 1e-6;
733
- const cosAngle = dot3(toCenter, forward) / (dist * fwdLen);
734
- const screenFraction = clamp01(Math.atan2(bounds.radius, dist) / (halfFov || 1e-6));
735
- let entry = accum.get(name);
736
- if (!entry) {
737
- entry = { visibleMs: 0, centeredMs: 0, maxScreenFraction: 0 };
738
- accum.set(name, entry);
739
- }
740
- entry.visibleMs += stepMs;
741
- if (cosAngle >= visCenteredCos)
742
- entry.centeredMs += stepMs;
743
- if (screenFraction > entry.maxScreenFraction)
744
- entry.maxScreenFraction = screenFraction;
745
- if (visBoundingBox) {
746
- // Canonical frame negates Z (right-handed PlayCanvas → canonical),
747
- // which swaps the Z min/max — match hitPoint / camera_sample (ADR 0018).
748
- const [aMinX, aMinY, aMinZ, aMaxX, aMaxY, aMaxZ] = bounds.aabb;
749
- entry.bounds = [aMinX, aMinY, -aMaxZ, aMaxX, aMaxY, -aMinZ];
750
- }
751
- });
752
- };
753
- const flushVisibility = () => {
754
- for (const [mesh, entry] of accum) {
755
- if (entry.visibleMs <= 0)
756
- continue;
757
- let bounds;
758
- if (entry.bounds) {
759
- const rounded = roundAabb(entry.bounds);
760
- const prev = sentBounds.get(mesh);
761
- if (!prev || !aabbClose(prev, rounded, boundsEps)) {
762
- bounds = rounded;
763
- sentBounds.set(mesh, rounded);
764
- }
765
- }
766
- ctx.emit({
767
- type: "mesh_visibility",
768
- mesh,
769
- visibleMs: Math.round(entry.visibleMs),
770
- ...(entry.centeredMs > 0 ? { centeredMs: Math.round(entry.centeredMs) } : {}),
771
- ...(entry.maxScreenFraction > 0
772
- ? { maxScreenFraction: entry.maxScreenFraction }
674
+ observations.push({
675
+ mesh: name,
676
+ center: bounds.center,
677
+ radius: bounds.radius,
678
+ // Ride the world AABB along only when bounds capture is on (#53). The
679
+ // canonical frame negates Z (right-handed PlayCanvas → canonical),
680
+ // swapping the Z min/max match hitPoint / camera_sample (ADR 0018);
681
+ // the aggregator dedupes/rounds it across the window.
682
+ ...(visBoundingBox
683
+ ? {
684
+ aabb: [
685
+ bounds.aabb[0],
686
+ bounds.aabb[1],
687
+ -bounds.aabb[5],
688
+ bounds.aabb[3],
689
+ bounds.aabb[4],
690
+ -bounds.aabb[2],
691
+ ],
692
+ }
773
693
  : {}),
774
- ...(bounds ? { bounds } : {}),
775
694
  });
776
- }
777
- accum.clear();
695
+ });
696
+ if (observations.length === 0)
697
+ return;
698
+ snapshot({
699
+ channel: "visibilityTick",
700
+ stepMs,
701
+ camPos,
702
+ // Pass the raw (un-normalized) forward; the aggregator normalizes.
703
+ forward,
704
+ fov,
705
+ meshes: observations,
706
+ });
778
707
  };
708
+ const flushVisibility = () => snapshot({ channel: "visibilityFlush" });
779
709
  // Sample every frame; flush on the window timer + once on stop (trailing).
780
710
  frameCallbacks.push(sampleVisibility);
781
711
  ensureFrameendBound();
@@ -840,8 +770,8 @@ export function playcanvasCollector(options) {
840
770
  if (hoverMesh !== undefined && !hoverActed) {
841
771
  const dwellMs = now - hoverStartMs;
842
772
  if (dwellMs >= hoverMinDwellMs) {
843
- ctx.emit({
844
- type: "hover_dwell",
773
+ snapshot({
774
+ channel: "hover",
845
775
  mesh: hoverMesh,
846
776
  dwellMs,
847
777
  ...(hoverSource ? { source: hoverSource } : {}),
@@ -977,19 +907,14 @@ export function playcanvasCollector(options) {
977
907
  gestureStart = null;
978
908
  if (!opened)
979
909
  return;
980
- const classified = classifyCameraGesture(opened.sample, readGestureSample(), {
981
- sensitivity: cameraGestureSensitivity,
982
- });
983
- if (!classified)
984
- return;
985
- ctx.emit({
986
- type: "camera_gesture",
987
- kind: classified.kind,
910
+ // Hand the start→end bracket to the aggregator; the (pure) classification
911
+ // math runs there, main-thread or in the worker (#10).
912
+ snapshot({
913
+ channel: "gesture",
914
+ start: opened.sample,
915
+ end: readGestureSample(),
988
916
  durationMs: Math.max(0, Math.round(ctx.now() - opened.ts)),
989
- ...(classified.orbitDeg !== undefined ? { orbitDeg: classified.orbitDeg } : {}),
990
- ...(classified.rollDeg !== undefined ? { rollDeg: classified.rollDeg } : {}),
991
- ...(classified.zoomRatio !== undefined ? { zoomRatio: classified.zoomRatio } : {}),
992
- ...(classified.panDist !== undefined ? { panDist: classified.panDist } : {}),
917
+ options: { sensitivity: cameraGestureSensitivity },
993
918
  ...(opened.source ? { source: opened.source } : {}),
994
919
  });
995
920
  };
@@ -1 +1 @@
1
- {"version":3,"file":"collector.js","sourceRoot":"","sources":["../src/collector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collector.js","sourceRoot":"","sources":["../src/collector.ts"],"names":[],"mappings":"AAeA,OAAO,EACL,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AA2DzE;;;GAGG;AACH,SAAS,aAAa,CAAC,EAAoB;IACzC,MAAM,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC;IACzB,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,OAAO;QAAE,OAAO,CAAC,CAAC;IAC5D,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AACrE,CAAC;AAED;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,SAAwB;IAC/C,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IAClD,MAAM,MAAM,GAAG,QAAQ,CAAC,kBAAkB,CAAC;IAC3C,OAAO,MAAM,IAAI,IAAI,IAAK,MAAkB,KAAK,SAAS,EAAE,CAAC;AAC/D,CAAC;AAID,SAAS,IAAI,CAAC,CAAQ,EAAE,CAAQ;IAC9B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AACD,SAAS,IAAI,CAAC,CAAQ,EAAE,CAAQ;IAC9B,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AAoCD;;;;GAIG;AACH,SAAS,QAAQ,CAAC,KAAkD;IAClE,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,EAAE,CAAC;IACjE,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,SAAS,WAAW,CAAC,KAAkD;IACrE,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC7D,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC9B,MAAM,EAAE,GAAG,OAAO,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7E,IAAI,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IACrB,OAAO;QACL,OAAO,EAAE,OAAyB;QAClC,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,CAAC;QAC7B,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,EAAE;QAC9B,OAAO,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;KACtC,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,cAAc,CAAC,IAA0B,EAAE,GAAkB;IACpE,MAAM,GAAG,GAAoB,EAAE,CAAC;IAChC,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC;IACvC,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,OAAmB,CAAC,CAAC;IACxE,MAAM,KAAK,GAAuE,EAAE,CAAC;IACrF,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QACxC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;QACrD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAC5D,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAS,CAAC,0BAA0B;QAC/D,IAAI,cAAc,CAAC,IAAI,CAAC;YAAE,SAAS,CAAC,mCAAmC;QACvE,IAAI,UAAU,IAAI,UAAW,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7E,IAAI,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;YACzB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;gBACxC,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;gBAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;YACnF,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,iFAAiF;AACjF,SAAS,cAAc,CAAC,IAA0B;IAChD,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;AAC7B,CAAC;AAED;;;;;;GAMG;AACH,SAAS,iBAAiB,CAAC,IAA0B,EAAE,QAAgB;IACrE,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACvD,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IAC7D,MAAM,MAAM,GAAe;QACzB,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAS;QAC/D,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAS;KACjE,CAAC;IACF,MAAM,CAAC,GAAG,IAAI,CAAC,iBAAiB,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC;IACnD,IACE,CAAC;QACD,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,EAC9F,CAAC;QACD,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAOD;;;;;GAKG;AACH,SAAS,gBAAgB,CACvB,IAAqB,EACrB,KAAsB;IAEtB,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;QAChC,OAAQ,KAAK,EAA8C,IAAI,IAAI,CAAC;IACtE,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAQ,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAA6C,IAAI,IAAI,CAAC;IACvF,CAAC;IACD,OAAQ,KAAqC,IAAI,IAAI,CAAC;AACxD,CAAC;AA2BD;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,IAAqB;IAC7C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,GAAG,GAAoB,EAAE,CAAC;IAChC,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC;IAChG,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,EAAE,KAAK,CAAC;QACrC,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC;YACxB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YACzD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACf,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,SAAS,sBAAsB,CAAC,IAAqB,EAAE,OAAuB;IAC5E,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,IAAI,OAAO,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC;IAClC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAyB,CAAC;IAChD,KAAK,MAAM,CAAC,IAAI,KAAK;QAAE,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7E,MAAM,GAAG,GAAoB,EAAE,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,2BAA2B,CAAC,IAAmB,EAAE,QAAgB;IACxE,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,gBAAgB;QAAE,OAAO,IAAI,CAAC;IAClE,MAAM,CAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAClC,MAAM,CAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAClC,MAAM,MAAM,GAAe;QACzB,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAS;QAC/D,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAS;KACjE,CAAC;IACF,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;IACjC,IACE,CAAC;QACD,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,EAC9F,CAAC;QACD,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAuBD,SAAS,eAAe,CAAC,IAAwB;IAC/C,OAAO,IAAI,CAAC,MAAM,EAAE,aAAa,IAAI,IAAI,CAAC,KAAK,EAAE,aAAa,IAAI,EAAE,CAAC;AACvE,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,IAAwB;IAC/C,IAAI,IAAI,GAAG,QAAQ,EACjB,IAAI,GAAG,QAAQ,EACf,IAAI,GAAG,QAAQ,EACf,IAAI,GAAG,CAAC,QAAQ,EAChB,IAAI,GAAG,CAAC,QAAQ,EAChB,IAAI,GAAG,CAAC,QAAQ,CAAC;IACnB,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,KAAK,MAAM,EAAE,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC;QACpB,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,UAAU,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,UAAU;YAAE,SAAS;QAC3F,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QACxB,KAAK,GAAG,IAAI,CAAC;QACb,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI;YAAE,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;QAC7B,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI;YAAE,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;QAC7B,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI;YAAE,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;QAC7B,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI;YAAE,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;QAC7B,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI;YAAE,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;QAC7B,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI;YAAE,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO;QACL,MAAM,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACjE,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;QAC/D,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;KAC3C,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,aAAa,CAAC,MAAa,EAAE,MAAc,EAAE,MAAa,EAAE,OAAc;IACjF,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;AAC1D,CAAC;AAqPD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAmC;IACrE,MAAM,EACJ,GAAG,EACH,MAAM,EACN,cAAc,GAAG,IAAI,EACrB,YAAY,GAAG,IAAI,EACnB,qBAAqB,GAAG,GAAG,EAC3B,mBAAmB,GAAG,IAAI,EAC1B,uBAAuB,GAAG,KAAK,EAC/B,aAAa,GAAG,IAAI,EACpB,gBAAgB,GAAG,CAAC,EACpB,wBAAwB,GAAG,CAAC,EAC5B,OAAO,GAAG,EAAE,EACZ,QAAQ,GAAG,EAAE,GACd,GAAG,OAAO,CAAC;IAEZ,+EAA+E;IAC/E,+EAA+E;IAC/E,sEAAsE;IACtE,MAAM,aAAa,GAAG,cAAc,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACtE,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAChE,MAAM,kBAAkB,GAAG,cAAc,CAAC,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;IAEvF,8EAA8E;IAC9E,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;IAC9C,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAE3D,MAAM,IAAI,GAAG;QACX,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,aAAa,CAAC,IAAI,KAAK,KAAK;QAChE,WAAW,EAAE,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,kBAAkB,CAAC,IAAI,KAAK,KAAK;QAC/E,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI;QAC9B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;QAChC,yEAAyE;QACzE,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,IAAI;QAC5C,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;QACpC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,KAAK,KAAK;QAC1D,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI;QACxC,8CAA8C;QAC9C,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,KAAK;QAC/C,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,KAAK;QACvC,6DAA6D;QAC7D,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,KAAK;QAC/C,2EAA2E;QAC3E,oEAAoE;QACpE,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,aAAa,CAAC,IAAI,KAAK,KAAK;QACzF,wEAAwE;QACxE,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI;QAC5B,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI;QAC5B,4EAA4E;QAC5E,QAAQ,EAAE,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,cAAc;KACvD,CAAC;IAEF,+EAA+E;IAC/E,yEAAyE;IACzE,gFAAgF;IAChF,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK;QACzB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE;YAC9C,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACpE,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,CAAC,IAAI,CACV,8BAA8B,EAAE,0CAA0C;oBACxE,kEAAkE,CACrE,CAAC;YACJ,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC;QACJ,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAEtC,8EAA8E;IAC9E,gFAAgF;IAChF,8EAA8E;IAC9E,+BAA+B;IAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK;QAC7B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE;YAC9C,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACpE,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,CAAC,IAAI,CACV,8BAA8B,EAAE,0CAA0C;oBACxE,8DAA8D,CACjE,CAAC;gBACF,OAAO,KAAK,CAAC;YACf,CAAC;YACD,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAM,CAAC,EAAE,CAAE,CAAC;YACjC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;YAC5B,IAAI,OAAO,KAAK,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;gBACzE,OAAO,CAAC,IAAI,CACV,8BAA8B,EAAE,8CAA8C;oBAC5E,gCAAgC,CACnC,CAAC;gBACF,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QACJ,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;IAE1C,oDAAoD;IACpD,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC;IAC7C,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC;IAC7C,MAAM,gBAAgB,GACpB,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpF,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;IACpF,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;IAC7C,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC;IAEpD,gDAAgD;IAChD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;IAC3C,MAAM,eAAe,GAAG,SAAS,CAAC,UAAU,IAAI,GAAG,CAAC;IACpD,MAAM,kBAAkB,GACtB,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAE1F,wDAAwD;IACxD,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC;IAClD,MAAM,kBAAkB,GAAG,YAAY,CAAC,UAAU,IAAI,KAAK,CAAC;IAE5D,8EAA8E;IAC9E,yEAAyE;IACzE,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7F,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,KAAK,CAAC,GAAqB;YACzB,MAAM,OAAO,GAAG,GAAyB,CAAC;YAC1C,wEAAwE;YACxE,iEAAiE;YACjE,sEAAsE;YACtE,2EAA2E;YAC3E,wDAAwD;YACxD,MAAM,gBAAgB,GAAqB;gBACzC,IAAI,EAAE,EAAE,YAAY,EAAE,uBAAuB,EAAE,YAAY,EAAE,gBAAgB,EAAE;gBAC/E,IAAI,EAAE,EAAE,YAAY,EAAE,mBAAmB,EAAE;gBAC3C,UAAU,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,IAAI,EAAE;aAC1F,CAAC;YACF,MAAM,QAAQ,GAAG,GAAG,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;YACzD,MAAM,MAAM,GAAqC,EAAE,CAAC;YACpD,MAAM,YAAY,GAIb,EAAE,CAAC;YACR,MAAM,cAAc,GAAsB,EAAE,CAAC;YAC7C,4EAA4E;YAC5E,MAAM,aAAa,GAAsB,EAAE,CAAC;YAC5C,IAAI,aAAa,GAAG,KAAK,CAAC;YAC1B,IAAI,QAAQ,GAAG,KAAK,CAAC;YAErB,IAAI,eAAe,GAAG,CAAC,CAAC;YACxB,IAAI,QAAgC,CAAC;YACrC,kEAAkE;YAClE,sEAAsE;YACtE,IAAI,YAAY,GACd,IAAI,CAAC;YAEP,MAAM,OAAO,GAAG,GAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;YAE7D,6FAA6F;YAC7F,MAAM,cAAc,GAAG,CAAC,GAA8B,EAAsB,EAAE;gBAC5E,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ;oBAAE,OAAO,SAAS,CAAC;gBAC1D,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;gBACzC,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;oBACtB,MAAM,MAAM,GACV,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,IAAI,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;oBACnF,0EAA0E;oBAC1E,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;gBACtD,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC;YAEF,sEAAsE;YACtE,6EAA6E;YAC7E,+EAA+E;YAC/E,MAAM,SAAS,GAA0B,IAAI,CAAC,IAAI;gBAChD,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,IAAI,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAS,CAAC;YAEd,MAAM,YAAY,GAAG,GAAG,EAAE;gBACxB,MAAM,CAAC,GAAG,MAAoC,CAAC;gBAC/C,2EAA2E;gBAC3E,4EAA4E;gBAC5E,8BAA8B;gBAC9B,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC3B,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC;gBACrB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAU,CAAC;gBAC3E,MAAM,SAAS,GAAG,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAU,CAAC;gBAC7E,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBACrC,MAAM,IAAI,GAAe;oBACvB,QAAQ;oBACR,SAAS;oBACT,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACtC,CAAC;gBACF,IAAI,mBAAmB,IAAI,QAAQ,IAAI,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,CAAC;oBACpF,OAAO;gBACT,CAAC;gBACD,QAAQ,GAAG,IAAI,CAAC;gBAChB,yEAAyE;gBACzE,uEAAuE;gBACvE,iEAAiE;gBACjE,MAAM,OAAO,GAAG,SAAS,EAAE,EAAE,CAAC;gBAC9B,MAAM,QAAQ,GAAG,OAAO;oBACtB,CAAC,CAAE,mBAAmB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAW;oBACxD,CAAC,CAAC,SAAS,CAAC;gBACd,MAAM,OAAO,GAAG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;gBACnE,QAAQ,CAAC;oBACP,OAAO,EAAE,QAAQ;oBACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpD,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAChC,CAAC,CAAC;YACL,CAAC,CAAC;YAEF,wEAAwE;YACxE,uEAAuE;YACvE,6EAA6E;YAC7E,yEAAyE;YACzE,MAAM,iBAAiB,GAAG,GAAwB,EAAE;gBAClD,MAAM,CAAC,GAAG,MAAoC,CAAC;gBAC/C,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC1B,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;gBACpB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACf,MAAM,MAAM,GAAwB;oBAClC,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAU;oBAChE,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAU;oBAChE,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAU;iBAC5D,CAAC;gBACF,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBACrC,IAAI,GAAG,KAAK,SAAS;oBAAE,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;gBACxC,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC;YAEF,MAAM,UAAU,GAAG,GAAG,EAAE;gBACtB,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;gBACtB,IAAI,GAAG,IAAI,CAAC;oBAAE,OAAO;gBACrB,0EAA0E;gBAC1E,4EAA4E;gBAC5E,6EAA6E;gBAC7E,4EAA4E;gBAC5E,QAAQ,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;YACtF,CAAC,CAAC;YAEF,4EAA4E;YAC5E,4EAA4E;YAC5E,0EAA0E;YAC1E,kDAAkD;YAClD,MAAM,SAAS,GAAG,GAAG,EAAE;gBACrB,IAAI,QAAQ;oBAAE,OAAO;gBACrB,KAAK,MAAM,EAAE,IAAI,cAAc;oBAAE,EAAE,EAAE,CAAC;YACxC,CAAC,CAAC;YACF,MAAM,mBAAmB,GAAG,GAAG,EAAE;gBAC/B,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;oBAClC,aAAa,GAAG,IAAI,CAAC;gBACvB,CAAC;YACH,CAAC,CAAC;YACF,MAAM,YAAY,GAAG,CAAC,OAAwB,EAAE,MAAkB,EAAE,EAAE;gBACpE,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBAChC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC/C,CAAC;qBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBACpC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC5B,mBAAmB,EAAE,CAAC;gBACxB,CAAC;YACH,CAAC,CAAC;YAEF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,YAAY,EAAE,CAAC;gBACf,YAAY,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;YAC5C,CAAC;YAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,YAAY,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YACxC,CAAC;YAED,IAAI,SAAS,EAAE,CAAC;gBACd,yEAAyE;gBACzE,wEAAwE;gBACxE,sEAAsE;gBACtE,0EAA0E;gBAC1E,2EAA2E;gBAC3E,0EAA0E;gBAC1E,wEAAwE;gBACxE,2EAA2E;gBAC3E,cAAc;gBACd,MAAM,IAAI,GAAG,OAAO,CAAC,IAAkC,CAAC;gBACxD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;gBACxC,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;oBAC1B,MAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAE,CAAC;oBAC5B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;oBACnC,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC,CAAC;oBAChE,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK;wBAAE,SAAS;oBACrC,uEAAuE;oBACvE,sEAAsE;oBACtE,uDAAuD;oBACvD,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;oBACnC,MAAM,UAAU,GAAG,GAAG,EAAE;wBACtB,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;wBAC3C,IAAI,CAAC,IAAI;4BAAE,OAAO;wBAClB,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;4BACzB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gCAC3B,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gCACtB,OAAO,CAAC,IAAI,CACV,qBAAqB,EAAE,kDAAkD;oCACvE,mEAAmE,CACtE,CAAC;4BACJ,CAAC;4BACD,OAAO;wBACT,CAAC;wBACD,QAAQ,CAAC;4BACP,OAAO,EAAE,MAAM;4BACf,MAAM,EAAE,EAAE;4BACV,UAAU,EAAE,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC;4BAClD,QAAQ,EAAE,aAAa;yBACxB,CAAC,CAAC;wBACH,sEAAsE;wBACtE,+DAA+D;wBAC/D,uEAAuE;wBACvE,6BAA6B;wBAC7B,IAAI,OAAO,EAAE,CAAC;4BACZ,KAAK,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,cAAc,CACrD,IAA4B,EAC5B,OAAO,CACR,EAAE,CAAC;gCACF,QAAQ,CAAC;oCACP,OAAO,EAAE,MAAM;oCACf,MAAM,EAAE,EAAE;oCACV,SAAS;oCACT,UAAU,EAAE,iBAAiB,CAAC,KAAK,EAAE,aAAa,CAAC;oCACnD,QAAQ,EAAE,aAAa;iCACxB,CAAC,CAAC;4BACL,CAAC;wBACH,CAAC;oBACH,CAAC,CAAC;oBACF,UAAU,EAAE,CAAC;oBACb,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;gBACpC,CAAC;YACH,CAAC;YAED,IAAI,SAAS,EAAE,CAAC;gBACd,wEAAwE;gBACxE,sEAAsE;gBACtE,uEAAuE;gBACvE,oEAAoE;gBACpE,yEAAyE;gBACzE,0EAA0E;gBAC1E,wEAAwE;gBACxE,0EAA0E;gBAC1E,4DAA4D;gBAC5D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAkC,CAAC;gBACxD,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;gBAC3C,KAAK,MAAM,EAAE,IAAI,YAAY,EAAE,CAAC;oBAC9B,MAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAE,CAAC;oBAC5B,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAM,CAAC,EAAE,CAAE,CAAC;oBACjC,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;oBACvD,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK;wBAAE,SAAS;oBACrC,MAAM,WAAW,GAAG,GAAG,EAAE;wBACvB,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;wBAC3C,IAAI,CAAC,IAAI;4BAAE,OAAO;wBAClB,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAkC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;wBACtF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;4BACvB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gCAC9B,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gCACzB,OAAO,CAAC,IAAI,CACV,qBAAqB,EAAE,qDAAqD;oCAC1E,sEAAsE,CACzE,CAAC;4BACJ,CAAC;4BACD,OAAO;wBACT,CAAC;wBACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;4BACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;4BAC3B,IAAI,OAAO,QAAQ,KAAK,QAAQ;gCAAE,SAAS;4BAC3C,MAAM,MAAM,GAAG,2BAA2B,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;4BAChE,IAAI,CAAC,MAAM;gCAAE,SAAS;4BACtB,QAAQ,CAAC;gCACP,OAAO,EAAE,MAAM;gCACf,MAAM,EAAE,EAAE;gCACV,MAAM,EAAE,QAAQ;gCAChB,UAAU,EAAE,MAAM;gCAClB,QAAQ,EAAE,aAAa;6BACxB,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC,CAAC;oBACF,WAAW,EAAE,CAAC;oBACd,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC;YAED,oDAAoD;YACpD,4EAA4E;YAC5E,wEAAwE;YACxE,4EAA4E;YAC5E,6EAA6E;YAC7E,qDAAqD;YACrD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,IAAI,WAAW,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;gBAE5B,MAAM,gBAAgB,GAAG,GAAG,EAAE;oBAC5B,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;oBACtB,MAAM,MAAM,GAAG,GAAG,GAAG,WAAW,CAAC;oBACjC,WAAW,GAAG,GAAG,CAAC;oBAClB,IAAI,MAAM,IAAI,CAAC;wBAAE,OAAO;oBAExB,MAAM,OAAO,GAAG,MAAoC,CAAC;oBACrD,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;oBACjC,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;oBAC3B,MAAM,MAAM,GAAU,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;oBACzC,MAAM,OAAO,GAAU,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC1C,mEAAmE;oBACnE,sEAAsE;oBACtE,YAAY;oBACZ,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAEhD,IAAI,OAAO,GAAG,CAAC,CAAC;oBAChB,MAAM,YAAY,GAAgC,EAAE,CAAC;oBACrD,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE;wBAC9B,MAAM,IAAI,GAAG,GAAyB,CAAC;wBACvC,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;4BAAE,OAAO;wBAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;wBACvB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;4BAAE,OAAO;wBAClD,IAAI,gBAAgB,EAAE,CAAC;4BACrB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;gCAAE,OAAO;wBAC1C,CAAC;6BAAM,CAAC;4BACN,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK;gCAAE,OAAO;4BACnC,IAAI,OAAO,IAAI,YAAY;gCAAE,OAAO;wBACtC,CAAC;wBACD,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;wBACrC,IAAI,CAAC,MAAM;4BAAE,OAAO;wBACpB,OAAO,EAAE,CAAC;wBACV,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;4BAClE,OAAO;wBACT,CAAC;wBACD,YAAY,CAAC,IAAI,CAAC;4BAChB,IAAI,EAAE,IAAI;4BACV,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,sEAAsE;4BACtE,mEAAmE;4BACnE,sEAAsE;4BACtE,sDAAsD;4BACtD,GAAG,CAAC,cAAc;gCAChB,CAAC,CAAC;oCACE,IAAI,EAAE;wCACJ,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;wCACd,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;wCACd,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;wCACf,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;wCACd,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;wCACd,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;qCACoC;iCACtD;gCACH,CAAC,CAAC,EAAE,CAAC;yBACR,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;oBACH,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;wBAAE,OAAO;oBACtC,QAAQ,CAAC;wBACP,OAAO,EAAE,gBAAgB;wBACzB,MAAM;wBACN,MAAM;wBACN,mEAAmE;wBACnE,OAAO;wBACP,GAAG;wBACH,MAAM,EAAE,YAAY;qBACrB,CAAC,CAAC;gBACL,CAAC,CAAC;gBAEF,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAC;gBAEvE,2EAA2E;gBAC3E,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBACtC,mBAAmB,EAAE,CAAC;gBACtB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC,CAAC;gBACvD,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACtC,CAAC;YAED,wEAAwE;YACxE,MAAM,WAAW,GACf,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC;YACvF,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC;YAC9C,MAAM,OAAO,GACX,WAAW,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,oBAAoB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAE7F,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,OAA6B,EAAE,EAAE;gBAClE,IAAI,CAAC,MAAM;oBAAE,OAAO;gBACpB,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBACvC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YACvD,CAAC,CAAC;YAEF,MAAM,QAAQ,GAAG,CAAC,EAAoB,EAAoB,EAAE;gBAC1D,4EAA4E;gBAC5E,yEAAyE;gBACzE,IAAI,eAAe,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;oBAAE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACrD,MAAM,IAAI,GACR,MAAM,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;oBAC1D,CAAC,CAAC,MAAM,CAAC,qBAAqB,EAAE;oBAChC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;gBAC/C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;gBAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;gBAC3B,sEAAsE;gBACtE,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACvF,CAAC,CAAC;YAEF,MAAM,MAAM,GAAG,CAAC,MAAwB,EAA0B,EAAE;gBAClE,IAAI,CAAC,OAAO;oBAAE,OAAO,SAAS,CAAC;gBAC/B,iEAAiE;gBACjE,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC/B,MAAM,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC/B,OAAO,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC7B,CAAC,CAAC;YASF,MAAM,SAAS,GAAG,CAAC,EAAoB,EAAe,EAAE;gBACtD,MAAM,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC3B,gFAAgF;gBAChF,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAE,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAU,CAAC,CAAC,CAAC,SAAS,CAAC;gBACrF,MAAM,OAAO,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;gBACjD,MAAM,MAAM,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;gBACjC,OAAO;oBACL,MAAM;oBACN,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/B,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7B,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACxB,CAAC;YACJ,CAAC,CAAC;YAEF,8DAA8D;YAC9D,6EAA6E;YAC7E,6EAA6E;YAC7E,gDAAgD;YAChD,IAAI,SAA6B,CAAC;YAClC,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,IAAI,UAAU,GAAG,KAAK,CAAC;YACvB,IAAI,WAAoC,CAAC;YAEzC,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,EAAE;gBACjC,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,UAAU,EAAE,CAAC;oBAC3C,MAAM,OAAO,GAAG,GAAG,GAAG,YAAY,CAAC;oBACnC,IAAI,OAAO,IAAI,eAAe,EAAE,CAAC;wBAC/B,QAAQ,CAAC;4BACP,OAAO,EAAE,OAAO;4BAChB,IAAI,EAAE,SAAS;4BACf,OAAO;4BACP,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yBAChD,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBACD,SAAS,GAAG,SAAS,CAAC;gBACtB,UAAU,GAAG,KAAK,CAAC;gBACnB,WAAW,GAAG,SAAS,CAAC;YAC1B,CAAC,CAAC;YAEF,MAAM,UAAU,GAAG,CACjB,GAAW,EACX,IAAwB,EACxB,MAA+B,EAC/B,EAAE;gBACF,sEAAsE;gBACtE,MAAM,MAAM,GACV,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,kBAAkB,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACzE,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,SAAS,CAAC;gBAChB,IAAI,MAAM,KAAK,SAAS;oBAAE,OAAO;gBACjC,UAAU,CAAC,GAAG,CAAC,CAAC;gBAChB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACzB,SAAS,GAAG,MAAM,CAAC;oBACnB,YAAY,GAAG,GAAG,CAAC;oBACnB,UAAU,GAAG,KAAK,CAAC;oBACnB,WAAW,GAAG,MAAM,CAAC;gBACvB,CAAC;YACH,CAAC,CAAC;YAEF,MAAM,aAAa,GAAG,CAAC,GAAY,EAAE,EAAE;gBACrC,MAAM,EAAE,GAAG,GAAuB,CAAC;gBACnC,wEAAwE;gBACxE,mDAAmD;gBACnD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACpB,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;oBAC3B,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;oBACjD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;wBACrB,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;wBACtB,IAAI,GAAG,GAAG,eAAe,IAAI,iBAAiB,EAAE,CAAC;4BAC/C,eAAe,GAAG,GAAG,CAAC;4BACtB,GAAG,CAAC,IAAI,CAAC;gCACP,IAAI,EAAE,cAAc;gCACpB,MAAM,EAAE,IAAI,CAAC,MAAM;gCACnB,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gCACrD,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gCAClD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;6BAChD,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;oBACD,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,WAAW;oBAAE,OAAO;gBAC9B,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;gBACtB,IAAI,GAAG,GAAG,eAAe,GAAG,iBAAiB;oBAAE,OAAO;gBACtD,eAAe,GAAG,GAAG,CAAC;gBACtB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;gBAC5D,GAAG,CAAC,IAAI,CAAC;oBACP,IAAI,EAAE,cAAc;oBACpB,MAAM;oBACN,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/B,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC9B,CAAC,CAAC;YACL,CAAC,CAAC;YAEF,MAAM,UAAU,GAAG,CAAC,IAAmC,EAAE,GAAY,EAAE,EAAE;gBACvE,MAAM,EAAE,GAAG,GAAuB,CAAC;gBACnC,IAAI,IAAI,KAAK,cAAc,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;oBAClC,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS;wBAAE,UAAU,GAAG,IAAI,CAAC;gBACxE,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,OAAO;oBAAE,OAAO;gBAC1B,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;gBAC5D,GAAG,CAAC,IAAI,CAAC;oBACP,IAAI;oBACJ,MAAM;oBACN,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/B,GAAG,CAAC,OAAO,EAAE,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/D,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC9B,CAAC,CAAC;YACL,CAAC,CAAC;YAEF,MAAM,OAAO,GAAG,CAAC,GAAY,EAAE,EAAE;gBAC/B,MAAM,EAAE,GAAG,GAAuB,CAAC;gBACnC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;gBACjE,4EAA4E;gBAC5E,IAAI,IAAI,CAAC,UAAU,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBACtE,UAAU,GAAG,IAAI,CAAC;gBACpB,CAAC;gBACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChB,GAAG,CAAC,IAAI,CAAC;wBACP,IAAI,EAAE,eAAe;wBACrB,MAAM;wBACN,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACjC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC/B,GAAG,CAAC,OAAO,EAAE,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC/D,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC9B,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,IAAI,CAAC,SAAS,IAAI,GAAG,EAAE,CAAC;oBAC1B,GAAG,CAAC,IAAI,CAAC;wBACP,IAAI,EAAE,kBAAkB;wBACxB,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,IAAI,EAAE,MAAM;wBACZ,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACxC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC9B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC;YAEF,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU;gBAAE,WAAW,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;YACnF,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpC,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;YACnE,CAAC;YACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/D,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU;gBAAE,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAEpF,0EAA0E;YAC1E,4EAA4E;YAC5E,+EAA+E;YAC/E,iEAAiE;YACjE,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,MAAM,aAAa,GAAG,CAAC,GAAY,EAAE,EAAE;oBACrC,YAAY,GAAG;wBACb,MAAM,EAAE,iBAAiB,EAAE;wBAC3B,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE;wBACb,MAAM,EAAE,aAAa,CAAC,GAAuB,CAAC;qBAC/C,CAAC;gBACJ,CAAC,CAAC;gBACF,MAAM,WAAW,GAAG,GAAG,EAAE;oBACvB,MAAM,MAAM,GAAG,YAAY,CAAC;oBAC5B,YAAY,GAAG,IAAI,CAAC;oBACpB,IAAI,CAAC,MAAM;wBAAE,OAAO;oBACpB,0EAA0E;oBAC1E,uDAAuD;oBACvD,QAAQ,CAAC;wBACP,OAAO,EAAE,SAAS;wBAClB,KAAK,EAAE,MAAM,CAAC,MAAM;wBACpB,GAAG,EAAE,iBAAiB,EAAE;wBACxB,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;wBAC1D,OAAO,EAAE,EAAE,WAAW,EAAE,wBAAwB,EAAE;wBAClD,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACpD,CAAC,CAAC;gBACL,CAAC,CAAC;gBACF,WAAW,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;gBAC1C,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YACxC,CAAC;YAED,+DAA+D;YAC/D,IAAI,IAAI,CAAC,UAAU;gBAAE,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAErE,uEAAuE;YACvE,2EAA2E;YAC3E,4EAA4E;YAC5E,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,WAAW,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;gBAC1E,WAAW,CAAC,sBAAsB,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC;YACpF,CAAC;YAED,4EAA4E;YAC5E,8EAA8E;YAC9E,4EAA4E;YAC5E,2EAA2E;YAC3E,2EAA2E;YAC3E,wBAAwB;YACxB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,MAAM,eAAe,GAAG,GAAG,EAAE;oBAC3B,MAAM,MAAM,GAAiD,EAAE,CAAC;oBAEhE,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC;oBAC7C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,GAAG,CAAC;wBAAE,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAE9E,sEAAsE;oBACtE,MAAM,GAAG,GACP,UACD,CAAC,WAAW,EAAE,MAAM,CAAC;oBACtB,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,cAAc,KAAK,QAAQ,IAAI,GAAG,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;wBAC5E,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC,cAAc,CAAC;oBAC1C,CAAC;oBAED,+DAA+D;oBAC/D,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC;wBAAE,OAAO;oBAC7C,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;gBACnD,CAAC,CAAC;gBACF,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC,CAAC;YAChE,CAAC;YAED,6EAA6E;YAC7E,2EAA2E;YAC3E,sEAAsE;YACtE,uEAAuE;YACvE,0EAA0E;YAC1E,kDAAkD;YAClD,IAAI,IAAI,CAAC,QAAQ,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;gBACnD,MAAM,MAAM,GAAG,MAAoC,CAAC;gBACpD,MAAM,KAAK,GAAG,CAAC,OAAgB,EAAE,EAAE,CAAC,CAAC,GAAY,EAAE,EAAE;oBACnD,MAAM,EAAE,GAAG,GAA0C,CAAC;oBACtD,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;oBACrB,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,MAAM,CAAC;wBAAE,OAAO;oBAC5C,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;oBACjC,IAAI,CAAC,MAAM;wBAAE,OAAO;oBACpB,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;gBAChE,CAAC,CAAC;gBACF,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;gBAChC,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC/B,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;gBAChD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBAC5C,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;gBACrE,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;YACnE,CAAC;YAED,OAAO;gBACL,IAAI;oBACF,qEAAqE;oBACrE,KAAK,MAAM,EAAE,IAAI,aAAa;wBAAE,EAAE,EAAE,CAAC;oBACrC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;oBACzB,QAAQ,GAAG,IAAI,CAAC;oBAChB,KAAK,MAAM,CAAC,IAAI,MAAM;wBAAE,aAAa,CAAC,CAAC,CAAC,CAAC;oBACzC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;oBAClB,IAAI,aAAa,EAAE,CAAC;wBAClB,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;wBACnC,aAAa,GAAG,KAAK,CAAC;oBACxB,CAAC;oBACD,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;oBAC1B,KAAK,MAAM,CAAC,IAAI,YAAY;wBAAE,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;oBAC9E,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC1B,CAAC;aACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}