@nisli/core 0.54.1 → 0.55.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.
Files changed (47) hide show
  1. package/README.md +93 -3
  2. package/dist/component.js +146 -5
  3. package/dist/component.js.map +1 -1
  4. package/dist/diagnostics.d.ts +48 -0
  5. package/dist/diagnostics.js +118 -0
  6. package/dist/diagnostics.js.map +1 -0
  7. package/dist/disposable.d.ts +14 -0
  8. package/dist/disposable.js +8 -0
  9. package/dist/disposable.js.map +1 -0
  10. package/dist/emitter.d.ts +2 -1
  11. package/dist/emitter.js +2 -1
  12. package/dist/emitter.js.map +1 -1
  13. package/dist/hmr/registry.js +8 -1
  14. package/dist/hmr/registry.js.map +1 -1
  15. package/dist/index.d.ts +5 -3
  16. package/dist/index.js +6 -2
  17. package/dist/index.js.map +1 -1
  18. package/dist/injector.d.ts +9 -2
  19. package/dist/injector.js +18 -0
  20. package/dist/injector.js.map +1 -1
  21. package/dist/lifecycle.d.ts +9 -0
  22. package/dist/lifecycle.js +17 -7
  23. package/dist/lifecycle.js.map +1 -1
  24. package/dist/projection.js +24 -5
  25. package/dist/projection.js.map +1 -1
  26. package/dist/query.d.ts +134 -55
  27. package/dist/query.js +379 -188
  28. package/dist/query.js.map +1 -1
  29. package/dist/resource.d.ts +2 -1
  30. package/dist/resource.js +21 -4
  31. package/dist/resource.js.map +1 -1
  32. package/dist/settle.d.ts +61 -0
  33. package/dist/settle.js +106 -0
  34. package/dist/settle.js.map +1 -0
  35. package/dist/signal.d.ts +42 -7
  36. package/dist/signal.js +248 -68
  37. package/dist/signal.js.map +1 -1
  38. package/dist/template-audit.d.ts +64 -0
  39. package/dist/template-audit.js +246 -0
  40. package/dist/template-audit.js.map +1 -0
  41. package/dist/template.d.ts +70 -1
  42. package/dist/template.js +322 -65
  43. package/dist/template.js.map +1 -1
  44. package/dist/view-transition.d.ts +70 -0
  45. package/dist/view-transition.js +98 -0
  46. package/dist/view-transition.js.map +1 -0
  47. package/package.json +1 -1
package/dist/template.js CHANGED
@@ -9,8 +9,111 @@
9
9
  * 1. First render: parse template, clone, create bindings, mount
10
10
  * 2. Updates: signal changes trigger individual binding updates (O(1))
11
11
  */
12
- import { signal, isSignal, effect, computed, } from './signal.js';
12
+ import { signal, isSignal, effect, computed, untrack, } from './signal.js';
13
13
  import { isRef } from './ref.js';
14
+ // First-parse audit (ADR 0030.2 T4). The import is static — core has no
15
+ // build-time dev/prod define yet (a named Wave-1 deliverable, §8) — but every
16
+ // entry point is a no-op behind template-audit's own dev flag.
17
+ import { auditTemplate, captureCallsite } from './template-audit.js';
18
+ const canMoveWithin = (parent) => typeof parent.moveBefore === 'function';
19
+ /**
20
+ * Value-returning untrack. signal.ts's `untrack` is `(fn: () => void) => void`
21
+ * (the value-returning form is a 0030.2 §3 papercut owned elsewhere); this
22
+ * local wrapper closes over the result until that lands.
23
+ */
24
+ function untracked(fn) {
25
+ let result;
26
+ untrack(() => { result = fn(); });
27
+ return result;
28
+ }
29
+ /**
30
+ * Mark a string as trusted raw HTML. `html:inner` accepts ONLY branded
31
+ * values — a bare string throws N106 (the accidental-XSS-sink class closes,
32
+ * ADR 0030.2 §3). NEVER wrap user-generated input.
33
+ */
34
+ export function raw(value) {
35
+ return { __raw: true, value };
36
+ }
37
+ function isRawHtml(value) {
38
+ return (typeof value === 'object'
39
+ && value !== null
40
+ && '__raw' in value
41
+ && value.__raw === true
42
+ && typeof value.value === 'string');
43
+ }
44
+ /**
45
+ * Mark a string as untrusted markup to be sanitized at the sink — the brand
46
+ * for user-generated HTML, which must NEVER go through `raw()`.
47
+ *
48
+ * `html:inner` writes it with the platform's `Element.setHTML()` (the spec's
49
+ * XSS-safe default sanitizer) when the engine has one, otherwise with the hook
50
+ * registered by {@link setSanitizerFallback}. With NEITHER available the
51
+ * binding throws N107: it never falls back to `innerHTML`. nisli bundles no
52
+ * sanitizer — the trust decision, and its bytes, stay in the app.
53
+ */
54
+ export function sanitized(value) {
55
+ return { __sanitize: true, value };
56
+ }
57
+ function isSanitizedHtml(value) {
58
+ return (typeof value === 'object'
59
+ && value !== null
60
+ && '__sanitize' in value
61
+ && value.__sanitize === true
62
+ && typeof value.value === 'string');
63
+ }
64
+ let sanitizerFallback = null;
65
+ /**
66
+ * Register the sanitizing writer used for `sanitized()` values on engines
67
+ * WITHOUT native `Element.setHTML()` (Safari today, older Chromium/Firefox),
68
+ * or `null` to unregister. Native `setHTML()` always wins where it exists, so
69
+ * modern engines never pay the hook. nisli ships no sanitizer; wire one:
70
+ *
71
+ * setSanitizerFallback((el, html) => {
72
+ * el.innerHTML = DOMPurify.sanitize(html);
73
+ * });
74
+ */
75
+ export function setSanitizerFallback(fn) {
76
+ sanitizerFallback = fn;
77
+ }
78
+ const nativeSetHtml = (el, html) => {
79
+ el.setHTML(html);
80
+ };
81
+ /**
82
+ * The sanitizing writer for this element, or `null` when the engine has none
83
+ * and the app registered none — the fail-closed signal N107 is thrown on.
84
+ *
85
+ * The method must be the one on `Element.prototype`, not merely *a* callable
86
+ * named `setHTML`. A duck-typed check here is a sanitizer bypass: an element
87
+ * carrying its own `setHTML` — DOM clobbering, an unsafe polyfill, a library
88
+ * shim — would be trusted as the platform sanitizer and would preempt the
89
+ * fallback the app explicitly registered as safe. Verified: with an
90
+ * own-property `setHTML`, the registered fallback was never called and
91
+ * `<img src=x onerror=…>` reached innerHTML intact.
92
+ *
93
+ * Read from the prototype per write rather than captured at module load, so a
94
+ * late polyfill or a test's stub is still honoured; identity is what is
95
+ * checked, not existence. Replacing `Element.prototype.setHTML` wholesale is
96
+ * out of scope — an attacker who can do that owns the realm regardless.
97
+ */
98
+ function sanitizerFor(el) {
99
+ const platform = typeof Element === 'function'
100
+ ? Element.prototype.setHTML
101
+ : undefined;
102
+ return typeof platform === 'function'
103
+ && el.setHTML === platform
104
+ ? nativeSetHtml
105
+ : sanitizerFallback;
106
+ }
107
+ function isTrustedHtml(value) {
108
+ const tt = globalThis.trustedTypes;
109
+ return tt !== undefined && tt.isHTML(value);
110
+ }
111
+ // TODO(diagnostics): replace with the core diagnostics leaf (parallel
112
+ // worktree); template-layer codes N101–N107 register there. N105–N107 are
113
+ // thrown (correctness/security guards), unlike the warn-level audit codes.
114
+ function nisliError(code, message) {
115
+ return new Error(`[nisli] ${code}: ${message}`);
116
+ }
14
117
  // ── Template cache ──────────────────────────────────────────────────
15
118
  /**
16
119
  * Cache parsed templates by their static string parts.
@@ -18,6 +121,67 @@ import { isRef } from './ref.js';
18
121
  * reference per call site, we use WeakMap for efficient caching.
19
122
  */
20
123
  const templateCache = new WeakMap();
124
+ /** Parses performed since module load — test-only regression hook (issue 0015). */
125
+ let parseCount = 0;
126
+ /** @internal Test-only: number of actual `<template>` parses performed. */
127
+ export function __templateParseCount() {
128
+ return parseCount;
129
+ }
130
+ /**
131
+ * Parse-once (ADR 0030.2 T4, issue 0015): build the marker HTML string and
132
+ * parse it into a `<template>` exactly once per callsite, keyed by
133
+ * TemplateStringsArray identity. The string depends only on the static
134
+ * `strings` (marker indices are positional), so every TemplateResult from the
135
+ * same callsite shares one parsed template and clones per mount.
136
+ *
137
+ * The first parse also runs the one-time static audit (template-audit.ts)
138
+ * over the pristine parsed element — it still carries the raw `@event`/
139
+ * `class:`/marker attributes that processAttributes later strips from clones.
140
+ */
141
+ function parseTemplate(strings, valueCount) {
142
+ let template = templateCache.get(strings);
143
+ if (template)
144
+ return template;
145
+ // Build the HTML string with markers.
146
+ // Track HTML parsing state to auto-quote markers in unquoted
147
+ // attribute positions where the > in --> would close the tag.
148
+ // See ADR 0069.
149
+ let htmlStr = '';
150
+ let inTag = false;
151
+ let quoteChar = null;
152
+ for (let i = 0; i < strings.length; i++) {
153
+ const s = strings[i] ?? '';
154
+ for (let c = 0; c < s.length; c++) {
155
+ const ch = s.charAt(c);
156
+ if (quoteChar) {
157
+ if (ch === quoteChar)
158
+ quoteChar = null;
159
+ }
160
+ else if (inTag) {
161
+ if (ch === '>')
162
+ inTag = false;
163
+ else if (ch === '"' || ch === "'")
164
+ quoteChar = ch;
165
+ }
166
+ else {
167
+ if (ch === '<')
168
+ inTag = true;
169
+ }
170
+ }
171
+ htmlStr += s;
172
+ if (i < valueCount) {
173
+ const needsQuotes = inTag && !quoteChar && /=\s*$/.test(s);
174
+ htmlStr += needsQuotes ? `"${createMarker(i)}"` : createMarker(i);
175
+ }
176
+ }
177
+ parseCount++;
178
+ template = document.createElement('template');
179
+ template.innerHTML = htmlStr;
180
+ templateCache.set(strings, template);
181
+ // Dev-only first-parse audit (N101–N104); no-op when disabled.
182
+ auditTemplate(strings, template);
183
+ return template;
184
+ }
21
185
  // ── Marker for expression slots ─────────────────────────────────────
22
186
  const MARKER_PREFIX = '<!--bk-';
23
187
  const MARKER_SUFFIX = '-->';
@@ -46,44 +210,29 @@ function createMarker(index) {
46
210
  export function html(strings, ...values) {
47
211
  const bindings = [];
48
212
  const disposers = [];
213
+ // Dev-only: remember the authoring callsite for first-parse audit
214
+ // diagnostics — by first-mount time this frame is gone from the stack.
215
+ captureCallsite(strings);
216
+ let mounted = false;
49
217
  return {
50
218
  __templateResult: true,
51
219
  mount(host) {
52
- // Build the HTML string with markers.
53
- // Track HTML parsing state to auto-quote markers in unquoted
54
- // attribute positions where the > in --> would close the tag.
55
- // See ADR 0069.
56
- let htmlStr = '';
57
- let inTag = false;
58
- let quoteChar = null;
59
- for (let i = 0; i < strings.length; i++) {
60
- const s = strings[i] ?? '';
61
- for (let c = 0; c < s.length; c++) {
62
- const ch = s.charAt(c);
63
- if (quoteChar) {
64
- if (ch === quoteChar)
65
- quoteChar = null;
66
- }
67
- else if (inTag) {
68
- if (ch === '>')
69
- inTag = false;
70
- else if (ch === '"' || ch === "'")
71
- quoteChar = ch;
72
- }
73
- else {
74
- if (ch === '<')
75
- inTag = true;
76
- }
77
- }
78
- htmlStr += s;
79
- if (i < values.length) {
80
- const needsQuotes = inTag && !quoteChar && /=\s*$/.test(s);
81
- htmlStr += needsQuotes ? `"${createMarker(i)}"` : createMarker(i);
82
- }
220
+ // Single-mount guard (ADR 0030.2 T4 + §8): a second mount of a live,
221
+ // un-disposed result with value bindings would attach a second set of
222
+ // bindings to the same shared arrays — shared-binding corruption.
223
+ // Zero-binding templates (the registry's shared static icon pattern)
224
+ // stay multi-mountable; dispose() → mount() stays legal.
225
+ if (mounted && values.length > 0) {
226
+ throw nisliError('N105', `mount() on an already-mounted TemplateResult with ${values.length} value ` +
227
+ `binding(s) — dispose() it first or create a fresh template per mount. ` +
228
+ `Template starts: ${JSON.stringify((strings[0] ?? '').slice(0, 60))}`);
83
229
  }
84
- // Parse the HTML
85
- const template = document.createElement('template');
86
- template.innerHTML = htmlStr;
230
+ mounted = true;
231
+ // Parse-once: the parsed template is cached per callsite; each mount
232
+ // only pays the clone + binding walk. The per-mount processNode walk
233
+ // below REMAINS by design until the ADR 0014-class work — caching
234
+ // removes the *parse*, not the walk (ADR 0030.2 §8).
235
+ const template = parseTemplate(strings, values.length);
87
236
  const fragment = template.content.cloneNode(true);
88
237
  // Walk the DOM tree and replace markers with bindings
89
238
  processNode(fragment, values, bindings, disposers);
@@ -107,6 +256,7 @@ export function html(strings, ...values) {
107
256
  }
108
257
  }
109
258
  bindings.length = 0;
259
+ mounted = false;
110
260
  },
111
261
  };
112
262
  }
@@ -488,10 +638,14 @@ function bindAttribute(el, name, value, bindings, disposers) {
488
638
  return;
489
639
  }
490
640
  // Auto-resolution: framework components get _setProp for custom props
491
- // (preserves types). Standard HTML attributes (id, style, data-*,
492
- // aria-*) always use setAttribute even on framework components.
641
+ // (preserves types). Standard HTML attributes (id, style, data-*, aria-*,
642
+ // and — ADR 0030.2 §8 — title/role/tabindex/name) always use setAttribute
643
+ // even on framework components: routed through _setProp they were silently
644
+ // dead (no component declares them as props).
493
645
  const isHtmlAttr = name === 'id' || name === 'style'
494
- || name === 'slot' || name.startsWith('data-') || name.startsWith('aria-');
646
+ || name === 'slot' || name === 'title' || name === 'role'
647
+ || name === 'tabindex' || name === 'name'
648
+ || name.startsWith('data-') || name.startsWith('aria-');
495
649
  const hasPropSetter = !isHtmlAttr && typeof el._setProp === 'function';
496
650
  if (hasPropSetter) {
497
651
  if (isSignal(value)) {
@@ -617,30 +771,95 @@ function bindClass(el, className, value, bindings, disposers) {
617
771
  }
618
772
  }
619
773
  /**
620
- * Bind trusted HTML content to an element's innerHTML.
774
+ * Bind branded HTML content to an element's inner markup.
621
775
  *
622
- * WARNING: This is for trusted content only (e.g., highlighted search results
623
- * from @orama/highlight, diff2html output). NEVER use with user-generated input.
776
+ * Never a bare string — a brand is the author's explicit decision about where
777
+ * the markup came from, which is what closes the accidental-XSS-sink class
778
+ * (ADR 0030.2 §3/§8). Three shapes resolve, in the order they are checked:
624
779
  *
625
- * Supports both static strings and reactive Signal<string> values.
626
- * When the signal changes, innerHTML is updated reactively.
780
+ * - `raw()` (core owns the `__raw` brand; @nisli/ssg re-exports it):
781
+ * author-asserted trust → today's `innerHTML` sink, unchanged.
782
+ * NEVER wrap user-generated input in raw().
783
+ * - `sanitized()` → the sanitizer sink: native `Element.setHTML()`, else the
784
+ * `setSanitizerFallback()` hook, else N107. It NEVER reaches `innerHTML`
785
+ * (ADR 0019:124–128, bet-09(c)).
786
+ * - A native `TrustedHTML` object → the same `innerHTML` sink as `raw()`,
787
+ * passed through unwrapped so Trusted-Types-enforcing apps can assign
788
+ * policy output directly.
789
+ *
790
+ * Anything else throws N106. Supports both static values and reactive
791
+ * `Signal`s of them; when the signal changes the content is rewritten through
792
+ * the same branch. null/undefined (branded or not) clears the content.
627
793
  *
628
794
  * Usage in templates:
629
- * html`<span html:inner="${highlightedHtml}"></span>`
795
+ * html`<span html:inner="${raw(highlightedHtml)}"></span>`
796
+ * html`<span html:inner="${sanitized(userComment)}"></span>`
630
797
  */
631
798
  function bindInnerHtml(el, value, bindings, disposers) {
799
+ // PURE — validates the brand and proves a sink exists without writing
800
+ // anything, so the eager signal check below can run it for its throw alone.
801
+ // A SanitizedHtml resolves to ITSELF (the writer routes it to the
802
+ // sanitizer); everything else resolves to the innerHTML payload.
803
+ const resolveHtml = (v) => {
804
+ if (v == null)
805
+ return '';
806
+ if (isRawHtml(v)) {
807
+ // Both brands at once: trust is not resolvable in favour of the raw
808
+ // sink, so reject rather than guess which one the author meant.
809
+ if (isSanitizedHtml(v)) {
810
+ throw nisliError('N106', `html:inner rejects a value branded both raw() and sanitized() — the ` +
811
+ `trust decision is ambiguous. Pick one brand.`);
812
+ }
813
+ return v.value;
814
+ }
815
+ if (isSanitizedHtml(v)) {
816
+ // FAIL CLOSED. Untrusted markup is only ever eligible to be written once
817
+ // a sanitizing sink is proven to exist; no native setHTML() and no
818
+ // registered hook is a hard error, because silently downgrading to
819
+ // innerHTML would reopen the exact XSS hole this brand closes.
820
+ if (sanitizerFor(el) === null) {
821
+ throw nisliError('N107', `html:inner cannot render sanitized() markup: this engine has no native ` +
822
+ `Element.setHTML() and no fallback is registered. Wire one at startup — ` +
823
+ `setSanitizerFallback((el, html) => { el.innerHTML = DOMPurify.sanitize(html) }) ` +
824
+ `— nisli ships no sanitizer and will not fall back to innerHTML.`);
825
+ }
826
+ return v;
827
+ }
828
+ if (isTrustedHtml(v))
829
+ return v;
830
+ throw nisliError('N106', `html:inner rejects unbranded values (got ${typeof v}). Wrap trusted markup ` +
831
+ `in raw(html), untrusted markup in sanitized(html) — and never wrap ` +
832
+ `user-generated input in raw().`);
833
+ };
834
+ const writeHtml = (v) => {
835
+ const resolved = resolveHtml(v);
836
+ if (isSanitizedHtml(resolved)) {
837
+ // The sanitizer sink. resolveHtml has already proven a writer exists,
838
+ // and `el.innerHTML` is unreachable from this branch by construction.
839
+ sanitizerFor(el)?.(el, resolved.value);
840
+ return;
841
+ }
842
+ // The raw sink, unchanged: a plain string, or a TrustedHTML object handed
843
+ // over WITHOUT stringifying it (stringifying would defeat the CSP check).
844
+ // The cast only satisfies the DOM library's `string` typing.
845
+ el.innerHTML = resolved;
846
+ };
632
847
  if (isSignal(value)) {
848
+ // Validate the INITIAL value untracked and eagerly so an unbranded or
849
+ // unsanitizable signal throws synchronously out of mount(); later invalid
850
+ // values throw inside the effect and land in effect error containment
851
+ // (console.error, element content untouched).
852
+ untracked(() => resolveHtml(value.value));
633
853
  const binding = { type: 'innerHtml', element: el };
634
854
  bindings.push(binding);
635
855
  const dispose = effect(() => {
636
- const v = value.value;
637
- el.innerHTML = v == null ? '' : String(v);
856
+ writeHtml(value.value);
638
857
  });
639
858
  binding.dispose = dispose;
640
859
  disposers.push(dispose);
641
860
  }
642
861
  else {
643
- el.innerHTML = value == null ? '' : String(value);
862
+ writeHtml(value);
644
863
  }
645
864
  }
646
865
  function bindEvent(el, eventName, handler, modifiers, bindings) {
@@ -693,9 +912,13 @@ function bindEvent(el, eventName, handler, modifiers, bindings) {
693
912
  }
694
913
  }
695
914
  // Wrap in try/catch for error containment — THIS is the installed handler.
915
+ // Handler bodies run UNTRACKED (ADR 0030.2 §8, surfaced by the T5 review):
916
+ // synchronous dispatchEvent from inside an effect would otherwise run the
917
+ // handler under that effect's observer — widening the effect's dependency
918
+ // set with every signal the handler reads and mis-attributing its writes.
696
919
  safeHandler = (e) => {
697
920
  try {
698
- composed(e);
921
+ untrack(() => composed(e));
699
922
  }
700
923
  catch (err) {
701
924
  console.error(`Event handler error for '${eventName}':`, err);
@@ -716,17 +939,6 @@ function bindEvent(el, eventName, handler, modifiers, bindings) {
716
939
  dispose: () => el.removeEventListener(eventName, safeHandler),
717
940
  });
718
941
  }
719
- /**
720
- * Conditional rendering helper.
721
- * Shows the template when condition is truthy.
722
- *
723
- * Supports both static and reactive (signal) conditions.
724
- * For signal conditions, returns a computed that reactively switches
725
- * between the template and null.
726
- *
727
- * The template argument can be a TemplateResult or a lazy callback
728
- * `() => TemplateResult` to avoid evaluating expensive branches.
729
- */
730
942
  // ── each() reactive list rendering ──────────────────────────────────
731
943
  /** Brand for each result detection */
732
944
  const EACH_BRAND = Symbol.for('backlog.each');
@@ -841,20 +1053,65 @@ export function each(items, keyFn, templateFn) {
841
1053
  for (const entry of newEntries) {
842
1054
  const nextSibling = cursor.nextSibling;
843
1055
  if (nextSibling !== entry.wrapper) {
844
- parent.insertBefore(entry.wrapper, nextSibling);
1056
+ if (entry.wrapper.parentNode === parent && canMoveWithin(parent)) {
1057
+ // Already attached under this parent: atomic move preconditions hold.
1058
+ parent.moveBefore(entry.wrapper, nextSibling);
1059
+ }
1060
+ else {
1061
+ // Fresh wrapper, or a browser without moveBefore().
1062
+ parent.insertBefore(entry.wrapper, nextSibling);
1063
+ }
845
1064
  }
846
1065
  cursor = entry.wrapper;
847
1066
  }
848
1067
  entries = newEntries;
849
1068
  }
850
1069
  }
851
- export function when(condition, template) {
852
- const resolveTemplate = () => typeof template === 'function' ? template() : template;
1070
+ /**
1071
+ * Conditional rendering helper (ADR 0030.2 §3, boolean-gated with `else`).
1072
+ *
1073
+ * Shows `template` when the condition is truthy, `elseTemplate` (optional)
1074
+ * when falsy. Both arms accept a TemplateResult or a lazy callback
1075
+ * `() => TemplateResult`; callbacks are only evaluated for the active arm.
1076
+ *
1077
+ * Semantics for signal conditions:
1078
+ * - The gate is `!!condition.value` — a truthy→truthy (or falsy→falsy)
1079
+ * transition returns the memoized previous result, so the live branch is
1080
+ * NEVER rebuilt (no state/scroll/focus loss) and callbacks never re-run.
1081
+ * - Branch callbacks evaluate UNTRACKED: a signal read during branch
1082
+ * construction does not subscribe the when() computed, so it cannot
1083
+ * trigger a rebuild. Reactive parts inside a branch must be interpolated
1084
+ * as signals/computeds (values), not read raw at construction time.
1085
+ */
1086
+ export function when(condition, template, elseTemplate) {
1087
+ const resolveBranch = (branch) => {
1088
+ if (branch === undefined)
1089
+ return null;
1090
+ if (typeof branch === 'function')
1091
+ return untracked(branch);
1092
+ return branch;
1093
+ };
853
1094
  if (isSignal(condition)) {
854
- // Reactive: return a computed that re-evaluates when the signal changes
855
- return computed(() => condition.value ? resolveTemplate() : null);
1095
+ // Boolean-gated memo: notify() marks observers dirty EAGERLY (before
1096
+ // value-equality is known), so a computed chain alone cannot stop a
1097
+ // truthy→truthy recompute from re-evaluating the branch. The memo pins
1098
+ // branch evaluation to actual boolean FLIPS; equal gates return the
1099
+ // cached result, which the slot then memoizes by identity (ADR 0008.1).
1100
+ let lastGate;
1101
+ let lastResult = null;
1102
+ return computed(() => {
1103
+ const gate = !!condition.value;
1104
+ if (gate === lastGate)
1105
+ return lastResult;
1106
+ const next = gate ? resolveBranch(template) : resolveBranch(elseTemplate);
1107
+ // Commit the memo only after a successful resolve so a throwing branch
1108
+ // callback retries on the next read (computed error containment).
1109
+ lastGate = gate;
1110
+ lastResult = next;
1111
+ return next;
1112
+ });
856
1113
  }
857
- return condition ? resolveTemplate() : null;
1114
+ return condition ? resolveBranch(template) : resolveBranch(elseTemplate);
858
1115
  }
859
1116
  /**
860
1117
  * Build a DOM element by a (possibly *dynamic*) tag name with reactive
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../src/template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../src/template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,MAAM,EACN,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,OAAO,GAGR,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,KAAK,EAAY,MAAM,UAAU,CAAC;AAC3C,wEAAwE;AACxE,8EAA8E;AAC9E,+DAA+D;AAC/D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAkBrE,MAAM,aAAa,GAAG,CAAC,MAAkB,EAA+B,EAAE,CACxE,OAAQ,MAAqC,CAAC,UAAU,KAAK,UAAU,CAAC;AAO1E;;;;GAIG;AACH,SAAS,SAAS,CAAI,EAAW;IAC/B,IAAI,MAAU,CAAC;IACf,OAAO,CAAC,GAAG,EAAE,GAAG,MAAM,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,OAAO,MAAM,CAAC;AAChB,CAAC;AAeD;;;;GAIG;AACH,MAAM,UAAU,GAAG,CAAC,KAAa;IAC/B,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,KAAK,EAAE,CAAC;AACzC,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;WACtB,KAAK,KAAK,IAAI;WACd,OAAO,IAAI,KAAK;WACf,KAAiB,CAAC,KAAK,KAAK,IAAI;WACjC,OAAQ,KAAiB,CAAC,KAAK,KAAK,QAAQ,CAChD,CAAC;AACJ,CAAC;AAgBD;;;;;;;;;GASG;AACH,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,OAAO,EAAE,UAAU,EAAE,IAAa,EAAE,KAAK,EAAE,CAAC;AAC9C,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;WACtB,KAAK,KAAK,IAAI;WACd,YAAY,IAAI,KAAK;WACpB,KAAuB,CAAC,UAAU,KAAK,IAAI;WAC5C,OAAQ,KAAuB,CAAC,KAAK,KAAK,QAAQ,CACtD,CAAC;AACJ,CAAC;AAOD,IAAI,iBAAiB,GAA6B,IAAI,CAAC;AAEvD;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAAC,EAA4B;IAC/D,iBAAiB,GAAG,EAAE,CAAC;AACzB,CAAC;AAOD,MAAM,aAAa,GAAsB,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE;IACnD,EAA6B,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,YAAY,CAAC,EAAW;IAC/B,MAAM,QAAQ,GAAG,OAAO,OAAO,KAAK,UAAU;QAC5C,CAAC,CAAE,OAAO,CAAC,SAA6C,CAAC,OAAO;QAChE,CAAC,CAAC,SAAS,CAAC;IACd,OAAO,OAAO,QAAQ,KAAK,UAAU;WAC/B,EAAsC,CAAC,OAAO,KAAK,QAAQ;QAC/D,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,iBAAiB,CAAC;AACxB,CAAC;AAmBD,SAAS,aAAa,CAAC,KAAc;IACnC,MAAM,EAAE,GAAI,UAAoD,CAAC,YAAY,CAAC;IAC9E,OAAO,EAAE,KAAK,SAAS,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9C,CAAC;AAED,sEAAsE;AACtE,0EAA0E;AAC1E,2EAA2E;AAC3E,SAAS,UAAU,CAAC,IAAY,EAAE,OAAe;IAC/C,OAAO,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,uEAAuE;AAEvE;;;;GAIG;AACH,MAAM,aAAa,GAAG,IAAI,OAAO,EAA6C,CAAC;AAE/E,mFAAmF;AACnF,IAAI,UAAU,GAAG,CAAC,CAAC;AAEnB,2EAA2E;AAC3E,MAAM,UAAU,oBAAoB;IAClC,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,aAAa,CAAC,OAA6B,EAAE,UAAkB;IACtE,IAAI,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,sCAAsC;IACtC,6DAA6D;IAC7D,8DAA8D;IAC9D,gBAAgB;IAChB,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,SAAS,GAAkB,IAAI,CAAC;IAEpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,SAAS,EAAE,CAAC;gBAAC,IAAI,EAAE,KAAK,SAAS;oBAAE,SAAS,GAAG,IAAI,CAAC;YAAC,CAAC;iBACrD,IAAI,KAAK,EAAE,CAAC;gBACf,IAAI,EAAE,KAAK,GAAG;oBAAE,KAAK,GAAG,KAAK,CAAC;qBACzB,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG;oBAAE,SAAS,GAAG,EAAE,CAAC;YACpD,CAAC;iBAAM,CAAC;gBAAC,IAAI,EAAE,KAAK,GAAG;oBAAE,KAAK,GAAG,IAAI,CAAC;YAAC,CAAC;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC,CAAC;QACb,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC;YACnB,MAAM,WAAW,GAAG,KAAK,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC3D,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,UAAU,EAAE,CAAC;IACb,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAC9C,QAAQ,CAAC,SAAS,GAAG,OAAO,CAAC;IAC7B,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAErC,+DAA+D;IAC/D,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAEjC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,uEAAuE;AAEvE,MAAM,aAAa,GAAG,SAAS,CAAC;AAChC,MAAM,aAAa,GAAG,KAAK,CAAC;AAC5B,MAAM,WAAW,GAAG,KAAK,CAAC;AAE1B;;;;GAIG;AACH,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,GAAG,aAAa,GAAG,KAAK,GAAG,aAAa,EAAE,CAAC;AACpD,CAAC;AAiDD,uEAAuE;AAEvE;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,IAAI,CAClB,OAA6B,EAC7B,GAAG,MAAiB;IAEpB,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,MAAM,SAAS,GAAmB,EAAE,CAAC;IACrC,kEAAkE;IAClE,uEAAuE;IACvE,eAAe,CAAC,OAAO,CAAC,CAAC;IACzB,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,OAAO;QACL,gBAAgB,EAAE,IAAa;QAE/B,KAAK,CAAC,IAAiB;YACrB,qEAAqE;YACrE,sEAAsE;YACtE,kEAAkE;YAClE,qEAAqE;YACrE,yDAAyD;YACzD,IAAI,OAAO,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjC,MAAM,UAAU,CACd,MAAM,EACN,qDAAqD,MAAM,CAAC,MAAM,SAAS;oBAC3E,wEAAwE;oBACxE,oBAAoB,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CACtE,CAAC;YACJ,CAAC;YACD,OAAO,GAAG,IAAI,CAAC;YAEf,qEAAqE;YACrE,qEAAqE;YACrE,kEAAkE;YAClE,qDAAqD;YACrD,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YACvD,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAqB,CAAC;YAEtE,sDAAsD;YACtD,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YAEnD,kBAAkB;YAClB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC;QAED,OAAO;YACL,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;gBAC1B,IAAI,CAAC;oBAAC,CAAC,EAAE,CAAC;gBAAC,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;YAC3B,CAAC;YACD,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YACrB,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACzB,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;oBAChC,IAAI,CAAC;wBAAC,CAAC,CAAC,OAAO,EAAE,CAAC;oBAAC,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;gBACnC,CAAC;YACH,CAAC;YACD,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YACpB,OAAO,GAAG,KAAK,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,uEAAuE;AAEvE,SAAS,WAAW,CAClB,IAAU,EACV,MAAiB,EACjB,QAAmB,EACnB,SAAyB;IAEzB,6BAA6B;IAC7B,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;QACxC,MAAM,EAAE,GAAG,IAAe,CAAC;QAC3B,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IACrD,CAAC;IAED,4CAA4C;IAC5C,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,IAAe,CAAC;QAChC,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;QACvC,sCAAsC;QACtC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5B,wBAAwB,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC9D,OAAO,CAAC,sCAAsC;QAChD,CAAC;IACH,CAAC;IAED,wDAAwD;IACxD,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IACtC,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CACxB,EAAW,EACX,MAAiB,EACjB,QAAmB,EACnB,SAAyB;IAEzB,kDAAkD;IAClD,MAAM,aAAa,GAAa,EAAE,CAAC;IAEnC,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QAE7B,4BAA4B;QAC5B,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5C,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACtC,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAEtC,sDAAsD;YACtD,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACvD,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;oBAClC,mEAAmE;oBACnE,mEAAmE;oBACnE,uDAAuD;oBACvD,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,OAAwB,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAC1E,CAAC;YACH,CAAC;YACD,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,SAAS;QACX,CAAC;QAED,gCAAgC;QAChC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACvD,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5B,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YACvD,CAAC;YACD,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,SAAS;QACX,CAAC;QAED,wDAAwD;QACxD,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;YAC1B,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACvD,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5B,aAAa,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YAChD,CAAC;YACD,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,SAAS;QACX,CAAC;QAED,wCAAwC;QACxC,IAAI,IAAI,KAAK,KAAK,IAAI,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YACxD,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACvD,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5B,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;oBAChB,KAAa,CAAC,OAAO,GAAG,EAAE,CAAC;oBAC5B,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,GAAI,KAAa,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3D,CAAC;YACH,CAAC;YACD,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,SAAS;QACX,CAAC;QAED,oDAAoD;QACpD,IAAI,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAC5D,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBACzB,iEAAiE;gBACjE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,IAAI,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5D,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;gBACzE,CAAC;qBAAM,CAAC;oBACN,sDAAsD;oBACtD,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;wBACnE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC5B,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAA6B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;wBACnE,OAAO,GAAG,IAAI,IAAI,IAAI,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACzD,CAAC,CAAC,CAAC;oBACH,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACrE,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;gBAC3F,CAAC;YACH,CAAC;YACD,SAAS;QACX,CAAC;IACH,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CACzB,OAA6F;IAE7F,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,cAAc,GAAmB,EAAE,CAAC;IAC1C,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvD,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,MAAM,GAAG,GAAG,GAA8B,CAAC;YAC3C,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,MAAe,EAAE,EAAE;gBAC7C,EAAU,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;YACH,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACL,EAAU,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,SAAS,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC;QACzC,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,QAAkC,CAAC;YAC/C,IAAI,WAAW,GAAa,EAAE,CAAC;YAC/B,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,EAAE;gBACnC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzD,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;oBAC9B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;wBAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACpD,CAAC;gBACD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;oBACvB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC;wBAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACxD,CAAC;gBACD,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC,CAAC;YACF,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YAC1C,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;aAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,EAAE,CAAC;YACpD,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxD,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO;QACL,OAAO,EAAE,EAAE;QACX,OAAO;YACL,KAAK,MAAM,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/C,IAAI,CAAC;oBAAC,OAAO,EAAE,CAAC;gBAAC,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAC/B,OAAgB,EAChB,KAAc,EACd,QAAmB,EACnB,SAAyB;IAEzB,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAClC,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,wEAAwE;QACxE,2EAA2E;QAC3E,sEAAsE;QACtE,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACrD,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACxC,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAE5C,IAAI,cAAc,GAAqB,EAAE,CAAC;QAC1C,IAAI,YAAY,GAAW,EAAE,CAAC;QAC9B,IAAI,uBAAuB,GAAmB,EAAE,CAAC;QACjD,IAAI,WAAW,GAAgB,IAAI,CAAC;QACpC,yEAAyE;QACzE,yDAAyD;QACzD,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;QAC5C,IAAI,SAAS,GAAY,YAAY,CAAC;QAEtC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,EAAE;YAC1B,MAAM,QAAQ,GAAI,KAAiC,CAAC,KAAK,CAAC;YAC1D,4DAA4D;YAC5D,8DAA8D;YAC9D,+DAA+D;YAC/D,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;YACxC,IAAI,CAAC,UAAU;gBAAE,OAAO;YAExB,mEAAmE;YACnE,oEAAoE;YACpE,oEAAoE;YACpE,qEAAqE;YACrE,uEAAuE;YACvE,kBAAkB;YAClB,IAAI,QAAQ,KAAK,SAAS;gBAAE,OAAO;YACnC,SAAS,GAAG,QAAQ,CAAC;YAErB,MAAM,UAAU,GAAG,OAAO,CACxB,QAAQ;mBACL,OAAO,QAAQ,KAAK,QAAQ;mBAC5B,kBAAkB,IAAI,QAAQ,CAClC,CAAC;YACF,MAAM,SAAS,GAAG,OAAO,CACvB,QAAQ;mBACL,OAAO,QAAQ,KAAK,QAAQ;mBAC5B,QAAQ,IAAI,QAAQ;mBACnB,QAAgB,CAAC,MAAM,KAAK,SAAS,CAC1C,CAAC;YACF,MAAM,WAAW,GAAG,QAAQ,IAAI,IAAI;mBAC/B,QAAQ,KAAK,KAAK;mBAClB,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;mBACxB,CAAC,UAAU;mBACX,CAAC,SAAS,CAAC;YAEhB,IAAI,WAAW,IAAI,WAAW,EAAE,CAAC;gBAC/B,WAAW,CAAC,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACpC,OAAO;YACT,CAAC;YAED,uEAAuE;YACvE,wEAAwE;YACxE,sEAAsE;YACtE,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;gBAC/B,IAAI,CAAC;oBAAC,CAAC,CAAC,OAAO,EAAE,CAAC;gBAAC,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;YACnC,CAAC;YACD,KAAK,MAAM,OAAO,IAAI,uBAAuB,EAAE,CAAC;gBAC9C,IAAI,CAAC;oBAAC,OAAO,EAAE,CAAC;gBAAC,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;YACjC,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;gBAChC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;YACrC,CAAC;YACD,YAAY,GAAG,EAAE,CAAC;YAClB,cAAc,GAAG,EAAE,CAAC;YACpB,uBAAuB,GAAG,EAAE,CAAC;YAC7B,WAAW,GAAG,IAAI,CAAC;YAEnB,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;gBACrB,oCAAoC;YACtC,CAAC;iBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnC,8CAA8C;gBAC9C,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;oBAC5B,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,kBAAkB,IAAI,IAAI,EAAE,CAAC;wBACnE,MAAM,GAAG,GAAG,IAAsB,CAAC;wBACnC,MAAM,OAAO,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;wBAClD,GAAG,CAAC,KAAK,CAAC,OAAiC,CAAC,CAAC;wBAC7C,MAAM,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;wBACtC,YAAY,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;wBAC5B,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBACzB,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;oBAC9C,CAAC;yBAAM,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,QAAQ,IAAI,IAAI,IAAK,IAAY,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;wBACtG,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAW,CAAC,CAAC;wBAChD,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;wBACnC,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;wBAC9C,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;oBACtD,CAAC;yBAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;wBAC1C,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;wBACvD,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBAC5B,UAAU,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;oBAC/C,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,IAAI,UAAU,EAAE,CAAC;gBACtB,wBAAwB;gBACxB,MAAM,GAAG,GAAG,QAA0B,CAAC;gBACvC,MAAM,OAAO,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;gBAClD,GAAG,CAAC,KAAK,CAAC,OAAiC,CAAC,CAAC;gBAC7C,YAAY,GAAG,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;gBACvC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACzB,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAC9C,CAAC;iBAAM,IAAI,SAAS,EAAE,CAAC;gBACrB,wCAAwC;gBACxC,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAe,CAAC,CAAC;gBACpD,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACnC,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC9C,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACtD,CAAC;iBAAM,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;gBAC9B,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACxD,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC/B,UAAU,CAAC,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YAClD,CAAC;QACH,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxB,0EAA0E;QAC1E,2EAA2E;QAC3E,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE;YAClB,KAAK,MAAM,CAAC,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC;oBAAC,CAAC,CAAC,OAAO,EAAE,CAAC;gBAAC,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;YACnC,CAAC;YACD,KAAK,MAAM,cAAc,IAAI,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/D,IAAI,CAAC;oBAAC,cAAc,EAAE,CAAC;gBAAC,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;YACxC,CAAC;YACD,YAAY,GAAG,EAAE,CAAC;YAClB,WAAW,GAAG,IAAI,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,kBAAkB,IAAI,KAAK,EAAE,CAAC;QAC7E,oCAAoC;QACpC,MAAM,MAAM,GAAG,KAAuB,CAAC;QACvC,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACpD,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACxC,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAE5C,yCAAyC;QACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;QAClD,MAAM,CAAC,KAAK,CAAC,OAAiC,CAAC,CAAC;QAChD,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAExC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACzC,CAAC;SAAM,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,IAAI,KAAK,IAAK,KAAa,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC1G,wCAAwC;QACxC,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAY,CAAC,CAAC;QACjD,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9C,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,4BAA4B;QAC5B,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACrD,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACxC,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAE5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,kBAAkB,IAAI,IAAI,EAAE,CAAC;gBACnE,MAAM,OAAO,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;gBACjD,IAAuB,CAAC,KAAK,CAAC,OAAiC,CAAC,CAAC;gBAClE,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBACxC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAE,IAAuB,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3D,CAAC;iBAAM,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,QAAQ,IAAI,IAAI,IAAK,IAAY,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACtG,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAW,CAAC,CAAC;gBAChD,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBAChD,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBACvD,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QAC5C,0CAA0C;QAC1C,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;SAAM,CAAC;QACN,mCAAmC;QACnC,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACxD,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CACpB,EAAW,EACX,IAAY,EACZ,KAAc,EACd,QAAmB,EACnB,SAAyB;IAEzB,gEAAgE;IAChE,8DAA8D;IAC9D,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,kBAAkB,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QACnD,OAAO;IACT,CAAC;IAED,sEAAsE;IACtE,0EAA0E;IAC1E,0EAA0E;IAC1E,2EAA2E;IAC3E,8CAA8C;IAC9C,MAAM,UAAU,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,OAAO;WAC/C,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM;WACtD,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,MAAM;WACtC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,CAAC,UAAU,IAAI,OAAQ,EAAU,CAAC,QAAQ,KAAK,UAAU,CAAC;IAEhF,IAAI,aAAa,EAAE,CAAC;QAClB,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,MAAM,OAAO,GAAqB,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;YAC3E,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvB,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,EAAE;gBACzB,EAAU,CAAC,QAAQ,CAAC,IAAI,EAAG,KAAiC,CAAC,KAAK,CAAC,CAAC;YACvE,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;YAC1B,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACL,EAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACpC,CAAC;QACD,OAAO;IACT,CAAC;IAED,kBAAkB,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,kBAAkB,CACzB,EAAW,EACX,IAAY,EACZ,KAAc,EACd,QAAmB,EACnB,SAAyB;IAEzB,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,OAAO,GAAqB,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QAC3E,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEvB,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,EAAE;YAC1B,MAAM,CAAC,GAAI,KAAiC,CAAC,KAAK,CAAC;YACnD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;gBAC7B,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;iBAAM,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBACtB,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;QAC1B,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;YACrC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;aAAM,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1B,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,kBAAkB,CACzB,EAAW,EACX,KAAc,EACd,QAAmB,EACnB,SAAyB;IAEzB,oEAAoE;IACpE,8DAA8D;IAC9D,wEAAwE;IACxE,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,WAAW,GAAa,EAAE,CAAC;IAE/B,MAAM,YAAY,GAAG,CAAC,GAAY,EAAE,EAAE;QACpC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,4DAA4D;YAC5D,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC7B,WAAW,GAAG,IAAI,CAAC;QACrB,CAAC;QACD,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAE9C,kDAAkD;QAClD,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QACD,kBAAkB;QAClB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QACD,WAAW,GAAG,IAAI,CAAC;IACrB,CAAC,CAAC;IAEF,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,OAAO,GAAqB,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QACpF,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEvB,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,EAAE;YAC1B,YAAY,CAAE,KAAiC,CAAC,KAAK,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;QAC1B,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAChB,EAAW,EACX,SAAiB,EACjB,KAAc,EACd,QAAmB,EACnB,SAAyB;IAEzB,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,OAAO,GAAiB,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC;QACxE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEvB,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,EAAE;YAC1B,MAAM,CAAC,GAAI,KAAiC,CAAC,KAAK,CAAC;YACnD,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;QAC1B,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,SAAS,aAAa,CACpB,EAAW,EACX,KAAc,EACd,QAAmB,EACnB,SAAyB;IAEzB,sEAAsE;IACtE,4EAA4E;IAC5E,kEAAkE;IAClE,iEAAiE;IACjE,MAAM,WAAW,GAAG,CAAC,CAAU,EAAwC,EAAE;QACvE,IAAI,CAAC,IAAI,IAAI;YAAE,OAAO,EAAE,CAAC;QACzB,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YACjB,oEAAoE;YACpE,gEAAgE;YAChE,IAAI,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvB,MAAM,UAAU,CACd,MAAM,EACN,sEAAsE;oBACtE,8CAA8C,CAC/C,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,CAAC,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;YACvB,yEAAyE;YACzE,mEAAmE;YACnE,mEAAmE;YACnE,+DAA+D;YAC/D,IAAI,YAAY,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC9B,MAAM,UAAU,CACd,MAAM,EACN,yEAAyE;oBACzE,yEAAyE;oBACzE,kFAAkF;oBAClF,iEAAiE,CAClE,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,aAAa,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;QAC/B,MAAM,UAAU,CACd,MAAM,EACN,4CAA4C,OAAO,CAAC,yBAAyB;YAC7E,qEAAqE;YACrE,gCAAgC,CACjC,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,CAAU,EAAQ,EAAE;QACrC,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9B,sEAAsE;YACtE,sEAAsE;YACtE,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;YACvC,OAAO;QACT,CAAC;QACD,0EAA0E;QAC1E,0EAA0E;QAC1E,6DAA6D;QAC7D,EAAE,CAAC,SAAS,GAAG,QAAkB,CAAC;IACpC,CAAC,CAAC;IAEF,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,sEAAsE;QACtE,0EAA0E;QAC1E,sEAAsE;QACtE,8CAA8C;QAC9C,SAAS,CAAC,GAAG,EAAE,CAAC,WAAW,CAAE,KAAiC,CAAC,KAAK,CAAC,CAAC,CAAC;QAEvE,MAAM,OAAO,GAAqB,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACrE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEvB,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,EAAE;YAC1B,SAAS,CAAE,KAAiC,CAAC,KAAK,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;QAC1B,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,SAAS,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAChB,EAAW,EACX,SAAiB,EACjB,OAAsB,EACtB,SAAmB,EACnB,QAAmB;IAEnB,4EAA4E;IAC5E,6EAA6E;IAC7E,2EAA2E;IAC3E,0EAA0E;IAC1E,4EAA4E;IAC5E,0EAA0E;IAC1E,IAAI,WAA2B,CAAC;IAEhC,+EAA+E;IAC/E,IAAI,QAAQ,GAAkB,OAAO,CAAC;IAEtC,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC;QACvB,QAAQ,GAAG,CAAC,CAAQ,EAAE,EAAE;YACtB,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,KAAK,CAAC,CAAC,CAAC,CAAC;QACX,CAAC,CAAC;IACJ,CAAC;IACD,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,QAAQ,CAAC;QACvB,QAAQ,GAAG,CAAC,CAAQ,EAAE,EAAE;YACtB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,KAAK,CAAC,CAAC,CAAC,CAAC;QACX,CAAC,CAAC;IACJ,CAAC;IACD,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC;QACvB,QAAQ,GAAG,CAAC,CAAQ,EAAE,EAAE;YACtB,yEAAyE;YACzE,EAAE,CAAC,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YAC/C,KAAK,CAAC,CAAC,CAAC,CAAC;QACX,CAAC,CAAC;IACJ,CAAC;IAED,qBAAqB;IACrB,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACtD,MAAM,MAAM,GAA2B;gBACrC,KAAK,EAAE,OAAO;gBACd,MAAM,EAAE,QAAQ;gBAChB,KAAK,EAAE,GAAG;gBACV,GAAG,EAAE,KAAK;aACX,CAAC;YACF,MAAM,KAAK,GAAG,QAAQ,CAAC;YACvB,QAAQ,GAAG,CAAC,CAAQ,EAAE,EAAE;gBACtB,IAAK,CAAmB,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC7C,KAAK,CAAC,CAAC,CAAC,CAAC;gBACX,CAAC;YACH,CAAC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,2EAA2E;IAC3E,0EAA0E;IAC1E,0EAA0E;IAC1E,0EAA0E;IAC1E,WAAW,GAAG,CAAC,CAAQ,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,4BAA4B,SAAS,IAAI,EAAE,GAAG,CAAC,CAAC;QAChE,CAAC;IACH,CAAC,CAAC;IAEF,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAE5C,4EAA4E;IAC5E,6EAA6E;IAC7E,6EAA6E;IAC7E,4EAA4E;IAC5E,4CAA4C;IAC5C,QAAQ,CAAC,IAAI,CAAC;QACZ,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,EAAE;QACX,SAAS;QACT,OAAO,EAAE,WAAW;QACpB,SAAS;QACT,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC;KAC9D,CAAC,CAAC;AACL,CAAC;AAED,uEAAuE;AAEvE,sCAAsC;AACtC,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAW9C;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,IAAI,CAClB,KAA0B,EAC1B,KAAkD,EAClD,UAAsF;IAEtF,IAAI,WAAoB,CAAC;IACzB,IAAI,SAAkB,CAAC;IACvB,IAAI,OAAO,GAAmB,EAAE,CAAC;IACjC,IAAI,aAAa,GAAwB,IAAI,CAAC;IAE9C,OAAO;QACL,gBAAgB,EAAE,IAAa;QAE/B,KAAK,CAAC,IAAiB;YACrB,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;YACnD,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAC/C,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC9B,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAE5B,aAAa,GAAG,MAAM,CAAC,GAAG,EAAE;gBAC1B,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC;gBAC7B,SAAS,CAAC,QAAQ,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,IAAI,aAAa,EAAE,CAAC;gBAClB,aAAa,EAAE,CAAC;gBAChB,aAAa,GAAG,IAAI,CAAC;YACvB,CAAC;YACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;YACjC,CAAC;YACD,OAAO,GAAG,EAAE,CAAC;QACf,CAAC;KACF,CAAC;IAEF,SAAS,SAAS,CAAC,QAAa;QAC9B,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,wEAAwE;QACxE,yEAAyE;QACzE,yEAAyE;QACzE,MAAM,UAAU,GAA4D,EAAE,CAAC;QAC/E,MAAM,UAAU,GAAG,IAAI,GAAG,EAA2B,CAAC;QACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,IAAI,KAAK,SAAS;gBAAE,SAAS;YACjC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC3B,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBAChC,MAAM,YAAY,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACjF,OAAO,CAAC,KAAK,CACX,8CAA8C,YAAY,GAAG;oBAC7D,oBAAoB,aAAa,QAAQ,CAAC,2BAA2B,CACtE,CAAC;gBACF,OAAO;YACT,CAAC;YACD,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACvB,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QAC3C,CAAC;QAED,4BAA4B;QAC5B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAiC,CAAC;QACxD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC;QAED,yBAAyB;QACzB,MAAM,UAAU,GAAmB,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAmB,CAAC;QAE3C,KAAK,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,UAAU,EAAE,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAEjB,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,QAAQ,EAAE,CAAC;gBACb,kCAAkC;gBAClC,QAAQ,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC;gBACjC,QAAQ,CAAC,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC;gBACnC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,kDAAkD;gBAClD,iEAAiE;gBACjE,2DAA2D;gBAC3D,sDAAsD;gBACtD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAc,CAAC;gBAC7C,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAClC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;gBACpD,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC;gBACnC,MAAM,cAAc,GAAG,UAAU,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;gBAC3D,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC9B,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC;QAED,mCAAmC;QACnC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;gBAC/B,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,oEAAoE;QACpE,wDAAwD;QACxD,IAAI,MAAM,GAAS,WAAW,CAAC;QAC/B,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;YACvC,IAAI,WAAW,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClC,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,KAAK,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;oBACjE,sEAAsE;oBACtE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;gBAChD,CAAC;qBAAM,CAAC;oBACN,oDAAoD;oBACpD,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;YACD,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC;QACzB,CAAC;QAED,OAAO,GAAG,UAAU,CAAC;IACvB,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,IAAI,CAClB,SAAkB,EAClB,QAAiD,EACjD,YAAsD;IAEtD,MAAM,aAAa,GAAG,CACpB,MAA2D,EACpC,EAAE;QACzB,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACtC,IAAI,OAAO,MAAM,KAAK,UAAU;YAAE,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;QAC3D,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACxB,qEAAqE;QACrE,oEAAoE;QACpE,uEAAuE;QACvE,oEAAoE;QACpE,wEAAwE;QACxE,IAAI,QAA6B,CAAC;QAClC,IAAI,UAAU,GAA0B,IAAI,CAAC;QAC7C,OAAO,QAAQ,CAAC,GAAG,EAAE;YACnB,MAAM,IAAI,GAAG,CAAC,CAAE,SAAqC,CAAC,KAAK,CAAC;YAC5D,IAAI,IAAI,KAAK,QAAQ;gBAAE,OAAO,UAAU,CAAC;YACzC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;YAC1E,uEAAuE;YACvE,kEAAkE;YAClE,QAAQ,GAAG,IAAI,CAAC;YAChB,UAAU,GAAG,IAAI,CAAC;YAClB,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;AAC3E,CAAC;AA4BD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,EAAE,CAChB,GAAW,EACX,QAAiB,EAAE,EACnB,QAA8B;IAE9B,IAAI,IAAI,GAAuB,IAAI,CAAC;IACpC,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,MAAM,SAAS,GAAmB,EAAE,CAAC;IAErC,OAAO;QACL,gBAAgB,EAAE,IAAI;QAEtB,KAAK,CAAC,IAAiB;YACrB,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YAC5C,IAAI,GAAG,OAAO,CAAC;YAEf,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/C,IAAI,GAAG,KAAK,SAAS;oBAAE,SAAS;gBAChC,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;oBAClB,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;wBACd,GAAW,CAAC,OAAO,GAAG,OAAO,CAAC;wBAC/B,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,GAAI,GAAW,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBACzD,CAAC;oBACD,SAAS;gBACX,CAAC;gBACD,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;oBACjB,oEAAoE;oBACpE,uEAAuE;oBACvE,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAoC,CAAC,EAAE,CAAC;wBACpF,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;oBACnD,CAAC;oBACD,SAAS;gBACX,CAAC;gBACD,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;oBACpB,kBAAkB,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;oBACtD,SAAS;gBACX,CAAC;gBACD,kBAAkB,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC7D,CAAC;YAED,uEAAuE;YACvE,oEAAoE;YACpE,MAAM,IAAI,GAAc,EAAE,CAAC;YAC3B,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAChC,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;gBACzB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;gBAC1C,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC5B,wBAAwB,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC/D,CAAC;YAED,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;QAED,OAAO;YACL,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;gBAC1B,IAAI,CAAC;oBAAC,CAAC,EAAE,CAAC;gBAAC,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC;YAC1C,CAAC;YACD,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YACrB,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACzB,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;oBAChC,IAAI,CAAC;wBAAC,CAAC,CAAC,OAAO,EAAE,CAAC;oBAAC,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;YACD,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YACpB,IAAI,EAAE,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,GAAG,IAAI,CAAC;QACd,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,QAAyC,EAAE,GAAc;IAChF,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO;IACnC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,KAAK,MAAM,CAAC,IAAI,QAAQ;YAAE,eAAe,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACpD,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrB,CAAC;AACH,CAAC"}