agentfootprint 6.12.0 → 6.14.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.
@@ -286,10 +286,55 @@ export class RunnerBase {
286
286
  off(type, listener) {
287
287
  this.dispatcher.off(type, listener);
288
288
  }
289
- once(type, listener) {
290
- return this.dispatcher.once(type, listener);
289
+ once(type, listener, options) {
290
+ return this.dispatcher.once(type, listener, options);
291
+ }
292
+ /**
293
+ * Lifecycle escape hatch — drop EVERY event listener on this runner in
294
+ * one call (typed, domain-wildcard, and `'*'`). Delegates to
295
+ * `EventDispatcher.removeAllListeners()`.
296
+ *
297
+ * For long-lived runners on servers: when you can't thread an
298
+ * AbortSignal or keep every Unsubscribe handle, call this between
299
+ * requests to guarantee zero residual subscriptions. Note it also
300
+ * removes listeners wired by `enable.*` strategies — re-enable after
301
+ * calling if you still want them. Does NOT touch attached recorders
302
+ * (see `attach()` — recorders have their own Unsubscribe).
303
+ */
304
+ removeAllListeners() {
305
+ this.dispatcher.removeAllListeners();
306
+ }
307
+ /**
308
+ * Diagnostic — how many event listeners this runner currently retains.
309
+ * No argument = total across all buckets (the leak-detection number);
310
+ * with a subscription key = that bucket only. Delegates to
311
+ * `EventDispatcher.listenerCount()`.
312
+ */
313
+ listenerCount(type) {
314
+ return this.dispatcher.listenerCount(type);
291
315
  }
292
316
  // ─── Recorder attach ───────────────────────────────────────────
317
+ /**
318
+ * Attach a footprintjs CombinedRecorder to observe every subsequent run.
319
+ *
320
+ * LIFECYCLE CONTRACT (who owns cleanup):
321
+ * - Attached recorders live for the RUNNER's lifetime, not a run's.
322
+ * NOTHING auto-expires per-run — a recorder attached once observes
323
+ * every later `run()` until you call the returned Unsubscribe.
324
+ * - The CALLER owns cleanup. Keep the Unsubscribe and call it when the
325
+ * observer's life ends (request scope, UI unmount, test teardown).
326
+ * - Event listeners (`on()` / `once()`) follow the same rule, with two
327
+ * extra outs: pass `{ signal }` for AbortSignal auto-cleanup, or call
328
+ * `removeAllListeners()` to bulk-drop listeners (listeners ONLY —
329
+ * recorders are not affected).
330
+ * - `once()` listeners are the only self-expiring subscription.
331
+ *
332
+ * attach() is NOT idempotent: every call pushes another entry. (At run
333
+ * time footprintjs's executor dedupes recorders by ID, so same-ID
334
+ * duplicates won't double-fire — but the runner-side array still
335
+ * grows.) Attaching in a per-run loop without detaching is the classic
336
+ * server leak; attach once, or detach per-run.
337
+ */
293
338
  attach(recorder) {
294
339
  this.attachedRecorders.push(recorder);
295
340
  return () => {
@@ -1 +1 @@
1
- {"version":3,"file":"RunnerBase.js","sourceRoot":"","sources":["../../../src/core/RunnerBase.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAe1D,OAAO,EACL,2BAA2B,EAC3B,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,eAAe,GAGhB,MAAM,iDAAiD,CAAC;AAGzD,IAAI,SAAS,GAAG,CAAC,CAAC;AAElB;;GAEG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AAC5C,CAAC;AAED,MAAM,OAAgB,UAAU;IACX,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACnC,iBAAiB,GAAuB,EAAE,CAAC;IAE9D;;;;;OAKG;IACO,YAAY,CAAgC;IAEtD;;;;;;;;;;;;;;;;;;;;OAoBG;IACK,KAAK,CAAwB;IAErC;;;;;;;;;;;;;OAaG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC;IAC1C,CAAC;IAED;;;;;;;;;;OAUG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;IAChC,CAAC;IAED,kEAAkE;IAElE;;;;;;;;;;;;;;OAcG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,uJAAuJ,CAChL,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;;;;;;;;;OAUG;IACK,YAAY,CAA0C;IAE9D;;;;;;;;;;;;;OAaG;IACH,UAAU;QACR,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,YAAY,CAAC,KAAsB,CAAC;QAClD,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC7C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,CAAC,YAAY,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;YACzC,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC7C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,YAAY,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;YACzC,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,8DAA8D;QAC9D,kEAAkE;QAClE,qEAAqE;QACrE,qEAAqE;QACrE,6DAA6D;QAC7D,kEAAkE;QAClE,mEAAmE;QACnE,+CAA+C;QAC/C,IAAI,CAAC,YAAY,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAY,CAAC;QAC9C,IAAI,CAAC,YAAY,GAAG,EAAE,KAAK,EAAE,CAAC;QAC9B,OAAO,KAAU,CAAC;IACpB,CAAC;IAED;;;;;OAKG;IACO,kBAAkB;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;OAKG;IACH,cAAc,CAAc,QAAmD;QAC7E,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC7C,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC7C,OAAO,QAAQ,CAAC,QAAQ,CAAM,CAAC;IACjC,CAAC;IAED;;;;;OAKG;IACO,oBAAoB;QAC5B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACO,SAAS,CAAC,OAAwB;QAC1C,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,wFAAwF,CACjH,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,OAAO,EAAE,CAAC;IACzB,CAAC;IAoBD,mEAAmE;IAEnE;;;;;;;;OAQG;IACO,WAAW,CACnB,QAA2B,EAC3B,MAAe;QAEf,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;YAAE,OAAO,SAAS,CAAC;QAC3C,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC5C,IAAI,UAAU,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAE/C,MAAM,SAAS,GACb,UAAU,CAAC,SAAS,KAAK,SAAS;YAChC,CAAC,CAAC,UAAU,CAAC,SAAS;YACtB,CAAC,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,QAAQ,IAAI,MAAM;gBACrE,CAAC,CAAE,MAAkC,CAAC,SAAS;gBAC/C,CAAC,CAAC,SAAS,CAAC;QAEhB,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAE7C,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;IACjD,CAAC;IAED;;;OAGG;IACK,gBAAgB,CAAC,UAA+B,EAAE,SAAkB;QAC1E,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAChC,MAAM,cAAc,GAClB,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,IAAI,QAAQ,IAAI,SAAS;YAC1E,CAAC,CAAC,MAAM,CAAE,SAAiC,CAAC,MAAM,CAAC;YACnD,CAAC,CAAC,uBAAuB,CAAC;QAC9B,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YACvB,IAAI,EAAE,8BAA8B;YACpC,OAAO,EAAE;gBACP,MAAM,EAAE,cAAc;gBACtB,eAAe,EACb,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI;oBACjD,CAAC,CAAE,SAA+C;oBAClD,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;aAC1B;YACD,IAAI,EAAE;gBACJ,GAAG,IAAI;gBACP,cAAc,EAAE,GAAG,UAAU,CAAC,aAAa,SAAS;gBACpD,WAAW,EAAE,UAAU,CAAC,WAAW;aACpC;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACO,eAAe,CAAC,UAA+B,EAAE,KAAc;QACvE,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAChC,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC;QAC1D,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YACvB,IAAI,EAAE,6BAA6B;YACnC,OAAO,EAAE;gBACP,WAAW,EACT,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;oBACzC,CAAC,CAAE,KAA2C;oBAC9C,CAAC,CAAC,EAAE,KAAK,EAAE;gBACf,gBAAgB;aACjB;YACD,IAAI,EAAE;gBACJ,GAAG,IAAI;gBACP,cAAc,EAAE,GAAG,UAAU,CAAC,aAAa,UAAU;gBACrD,WAAW,EAAE,UAAU,CAAC,WAAW;aACpC;SACF,CAAC,CAAC;IACL,CAAC;IAUD,EAAE,CACA,IAAY,EACZ,QAA8C,EAC9C,OAAuB;QAEvB,sEAAsE;QACtE,kEAAkE;QAClE,qEAAqE;QACrE,OACE,IAAI,CAAC,UAAU,CAAC,EAKjB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC7B,CAAC;IAID,GAAG,CAAC,IAAY,EAAE,QAA8C;QAE5D,IAAI,CAAC,UAAU,CAAC,GAIjB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACpB,CAAC;IAID,IAAI,CAAC,IAAY,EAAE,QAA8C;QAC/D,OACE,IAAI,CAAC,UAAU,CAAC,IAIjB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACpB,CAAC;IAED,kEAAkE;IAElE,MAAM,CAAC,QAA0B;QAC/B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtC,OAAO,GAAG,EAAE;YACV,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACrD,IAAI,GAAG,IAAI,CAAC;gBAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC;IACJ,CAAC;IAED,iEAAiE;IAExD,MAAM,GAAoB;QACjC,SAAS,EAAE,CAAC,IAAuB,EAAmB,EAAE;QACtD,gEAAgE;QAChE,4DAA4D;QAC5D,8DAA8D;QAC9D,6DAA6D;QAC7D,6DAA6D;QAC7D,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;QAC/D,uCAAuC;QACvC,6CAA6C;QAC7C,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,2BAA2B,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;QAC3E,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;QACzD,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;KACtE,CAAC;IAEF,kEAAkE;IAElE;;;;;;;OAOG;IACH,IAAI,CAAC,IAAY,EAAE,OAAgC;QACjD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAA+B,CAAC;YAAE,OAAO;QAC9E,MAAM,IAAI,GAAc,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG;YACZ,IAAI,EAAE,IAAI;YACV,OAAO;YACP,IAAI;SACyD,CAAC;QAChE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,kEAAkE;IAElE;;;OAGG;IACO,WAAW;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,OAAO;YACL,WAAW,EAAE,GAAG;YAChB,WAAW,EAAE,CAAC;YACd,cAAc,EAAE,iBAAiB;YACjC,WAAW,EAAE,EAAE;YACf,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE;YACvC,KAAK,EAAE,gBAAgB;SACxB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACO,eAAe;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;OAIG;IACO,aAAa;QACrB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;CACF"}
1
+ {"version":3,"file":"RunnerBase.js","sourceRoot":"","sources":["../../../src/core/RunnerBase.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@
12
12
  */
13
13
  import { FlowChartExecutor, flowChart, isFlowEvent, } from 'footprintjs';
14
14
  import { RunnerBase, makeRunId } from '../core/RunnerBase.js';
15
+ import { buildEventMeta } from '../bridge/eventMeta.js';
15
16
  import { ContextRecorder } from '../recorders/core/ContextRecorder.js';
16
17
  import { streamRecorder } from '../recorders/core/StreamRecorder.js';
17
18
  import { agentRecorder } from '../recorders/core/AgentRecorder.js';
@@ -29,7 +30,7 @@ export class Parallel extends RunnerBase {
29
30
  compositionPath: [],
30
31
  };
31
32
  /**
32
- * Per-branch first-error messages captured during the current run.
33
+ * Per-branch first-error records captured during the current run.
33
34
  *
34
35
  * Filled by an internal CombinedRecorder attached in `createExecutor()`
35
36
  * that observes footprintjs `FlowErrorEvent`s. Errors are keyed by the
@@ -38,10 +39,33 @@ export class Parallel extends RunnerBase {
38
39
  * `try/catch` semantics that preceded the v0.x architectural refactor.
39
40
  *
40
41
  * Read by the Merge stage to populate strict-mode error messages and
41
- * tolerant-mode `BranchOutcome.error` strings. Cleared at the start of
42
- * every `run()` / `resume()`.
42
+ * tolerant-mode `BranchOutcome.error` strings, and by
43
+ * `rethrowWithBranchAttribution()` to correlate fail-fast rejections by
44
+ * error IDENTITY (`record.raw`). Cleared at the start of every `run()` /
45
+ * `resume()`; writes are epoch-guarded (see `runEpoch`) so abandoned
46
+ * fail-fast stragglers from a dead run cannot contaminate the live one.
43
47
  */
44
48
  branchErrors = new Map();
49
+ /**
50
+ * Monotonic run token — incremented at every `createExecutor()` (i.e.
51
+ * each `run()` / `resume()`). The branch-error recorder captures the
52
+ * epoch current at attach time and only writes while it is STILL
53
+ * current. Under fail-fast, abandoned siblings of a rejected run keep
54
+ * executing in the background; without this guard a late failure from
55
+ * run N would land in run N+1's `branchErrors` (first-error-wins would
56
+ * then block run N+1's real error).
57
+ */
58
+ runEpoch = 0;
59
+ /** Ids of branches declared `{ required: true }`. See `ParallelBranchOptions.required`. */
60
+ requiredIds;
61
+ /**
62
+ * True when EVERY branch is required — the fork node carries
63
+ * footprintjs's `failFast` flag, so the first branch failure rejects
64
+ * `executor.run()` with the RAW branch error before the Merge stage
65
+ * can attribute it. `run()`/`resume()` re-attribute via
66
+ * `rethrowWithBranchAttribution()`.
67
+ */
68
+ failFastEngaged;
45
69
  constructor(opts, branches, merge) {
46
70
  super();
47
71
  this.opts = opts;
@@ -52,6 +76,9 @@ export class Parallel extends RunnerBase {
52
76
  }
53
77
  this.branches = branches;
54
78
  this.merge = merge;
79
+ // Set BEFORE initChart — buildChart reads both fields.
80
+ this.requiredIds = new Set(branches.filter((b) => b.required === true).map((b) => b.id));
81
+ this.failFastEngaged = branches.every((b) => b.required === true);
55
82
  // Eager chart construction — see `RunnerBase.initChart` JSDoc.
56
83
  // Safe: the merge stage's closure captures `this.branchErrors`
57
84
  // (an instance field initialized at declaration time, line 130),
@@ -99,18 +126,109 @@ export class Parallel extends RunnerBase {
99
126
  async run(input, options) {
100
127
  const executor = this.createExecutor();
101
128
  this.lastExecutor = executor;
102
- const result = await executor.run({
103
- input: { message: input.message },
104
- ...(options ?? {}),
105
- });
129
+ let result;
130
+ try {
131
+ result = await executor.run({
132
+ input: { message: input.message },
133
+ ...(options ?? {}),
134
+ });
135
+ }
136
+ catch (err) {
137
+ this.rethrowWithBranchAttribution(err);
138
+ }
106
139
  return this.finalizeResult(executor, result);
107
140
  }
108
141
  async resume(checkpoint, input, options) {
109
142
  this.emitPauseResume(checkpoint, input);
110
143
  const executor = this.createExecutor();
111
- const result = await executor.resume(checkpoint, input, options);
144
+ let result;
145
+ try {
146
+ result = await executor.resume(checkpoint, input, options);
147
+ }
148
+ catch (err) {
149
+ this.rethrowWithBranchAttribution(err);
150
+ }
112
151
  return this.finalizeResult(executor, result);
113
152
  }
153
+ /**
154
+ * Re-attribute a fail-fast abort to its originating branch.
155
+ *
156
+ * When `failFastEngaged` (every branch required), a failing branch
157
+ * rejects `executor.run()` with the RAW branch error — the Merge stage,
158
+ * which normally attributes failures by branch id, never runs. The
159
+ * internal `parallel-branch-errors` recorder DID see the failure
160
+ * (FlowRecorder.onError fires before the fork rejects), so correlate
161
+ * the rejection against that map and wrap it in a branch-naming error.
162
+ * Also emit the `composition.exit` (status `'err'`) the aborted Merge
163
+ * stage could not, preserving enter/exit pairing for dashboards.
164
+ *
165
+ * Correlation is by error IDENTITY first (`record.raw === err` — the
166
+ * recorder stores the ORIGINAL error object from
167
+ * `FlowErrorEvent.structuredError.raw`), with bare-message equality as
168
+ * a fallback for throws whose identity doesn't survive an engine
169
+ * boundary (e.g. non-Error values). Identity matching is what makes
170
+ * attribution work for ANY named Error subclass — `TypeError`, provider
171
+ * SDK errors like `RateLimitError`, etc. — where message-only matching
172
+ * would silently fail against name-prefixed strings.
173
+ *
174
+ * Rejections that don't correlate (engine errors, merge-stage errors,
175
+ * non-fail-fast runs) are rethrown untouched.
176
+ *
177
+ * Only engaged on the `run()` / `resume()` path — a Parallel chart
178
+ * MOUNTED into an outer composition rejects raw (see
179
+ * `ParallelBranchOptions.required` JSDoc, "Nested-mounting limitation").
180
+ */
181
+ rethrowWithBranchAttribution(err) {
182
+ if (this.failFastEngaged) {
183
+ const match = this.correlateBranchError(err);
184
+ if (match !== undefined) {
185
+ const [branchId, recorded] = match;
186
+ this.emitFailFastAbortExit();
187
+ throw new Error(`Parallel '${this.id}': required branch '${branchId}' failed: ${recorded.message}`, {
188
+ cause: err,
189
+ });
190
+ }
191
+ }
192
+ throw err;
193
+ }
194
+ /**
195
+ * Find the branch whose recorded first error corresponds to `err`:
196
+ * identity match on the original thrown value first, bare-message
197
+ * equality second. Returns `undefined` when nothing correlates.
198
+ */
199
+ correlateBranchError(err) {
200
+ for (const entry of this.branchErrors) {
201
+ if (entry[1].raw === err)
202
+ return entry;
203
+ }
204
+ const message = err instanceof Error ? err.message : String(err);
205
+ for (const entry of this.branchErrors) {
206
+ if (entry[1].message === message)
207
+ return entry;
208
+ }
209
+ return undefined;
210
+ }
211
+ /**
212
+ * Synthetic `composition.exit` for fail-fast aborts (no stage scope to
213
+ * emit from). Meta is built from the SAME run context the paired
214
+ * `composition.enter` used (`buildEventMeta` + `currentRunContext`), so
215
+ * the pair shares one real `runId` — Convention 4 run-scoping. Only the
216
+ * `runtimeStageId` degrades (`'unknown#0'`): the abort happens outside
217
+ * any stage, so there is no stage origin to attach.
218
+ */
219
+ emitFailFastAbortExit() {
220
+ this.dispatcher.dispatch({
221
+ type: 'agentfootprint.composition.exit',
222
+ payload: {
223
+ kind: 'Parallel',
224
+ id: this.id,
225
+ name: this.name,
226
+ status: 'err',
227
+ durationMs: Date.now() - this.currentRunContext.runStartMs,
228
+ },
229
+ meta: buildEventMeta(undefined, this.currentRunContext),
230
+ });
231
+ }
114
232
  createExecutor() {
115
233
  this.currentRunContext = {
116
234
  runStartMs: Date.now(),
@@ -120,6 +238,10 @@ export class Parallel extends RunnerBase {
120
238
  // Reset per-run branch-error capture. Fork children now mount the
121
239
  // branch runner's own chart (no try/catch wrapper); errors are
122
240
  // captured via FlowRecorder.onError correlation by subflow path.
241
+ // The epoch bump invalidates recorders of any PREVIOUS run whose
242
+ // abandoned fail-fast siblings are still executing — their late
243
+ // errors must not land in this run's map.
244
+ this.runEpoch += 1;
123
245
  this.branchErrors.clear();
124
246
  // Reuse the cached chart built at constructor time.
125
247
  const executor = new FlowChartExecutor(this.getSpec());
@@ -129,7 +251,7 @@ export class Parallel extends RunnerBase {
129
251
  executor.attachCombinedRecorder(streamRecorder({ dispatcher, getRunContext: getRunCtx }));
130
252
  executor.attachCombinedRecorder(agentRecorder({ dispatcher, getRunContext: getRunCtx }));
131
253
  executor.attachCombinedRecorder(compositionRecorder({ dispatcher, getRunContext: getRunCtx }));
132
- executor.attachCombinedRecorder(this.makeBranchErrorRecorder());
254
+ executor.attachCombinedRecorder(this.makeBranchErrorRecorder(this.runEpoch));
133
255
  for (const r of this.attachedRecorders)
134
256
  executor.attachCombinedRecorder(r);
135
257
  return executor;
@@ -146,12 +268,20 @@ export class Parallel extends RunnerBase {
146
268
  *
147
269
  * Only the FIRST error per branch is kept. Errors fired outside any
148
270
  * branch (e.g., a Merge-stage error) are ignored.
271
+ *
272
+ * `epoch` is the run token current at attach time. Under fail-fast, a
273
+ * rejected run's abandoned siblings keep executing in the background —
274
+ * THIS recorder (attached to that dead run's executor) may still
275
+ * receive their late `onError` events while a NEW run is live. The
276
+ * epoch check drops those writes so the live run's map stays clean.
149
277
  */
150
- makeBranchErrorRecorder() {
278
+ makeBranchErrorRecorder(epoch) {
151
279
  const branchIds = new Set(this.branches.map((b) => b.id));
152
280
  return {
153
281
  id: 'parallel-branch-errors',
154
282
  onError: (event) => {
283
+ if (epoch !== this.runEpoch)
284
+ return; // straggler from a dead run
155
285
  if (!isFlowEvent(event))
156
286
  return;
157
287
  const ctx = event.traversalContext;
@@ -169,15 +299,19 @@ export class Parallel extends RunnerBase {
169
299
  if (branchId === undefined || !branchIds.has(branchId))
170
300
  return;
171
301
  if (!this.branchErrors.has(branchId)) {
172
- // Strip the leading "Error: " that `error.toString()` adds
173
- // for standard `Error` instances so the captured message
174
- // matches the original `throw new Error(msg)` reason exactly
175
- // (consumers expect the bare message). Non-Error throws
176
- // never carry this prefix, so the strip is a no-op there.
177
- const m = event.message.startsWith('Error: ')
178
- ? event.message.slice('Error: '.length)
179
- : event.message;
180
- this.branchErrors.set(branchId, m);
302
+ // `structuredError` preserves both the BARE message (no
303
+ // `TypeError:` / `RateLimitError:` name prefix consumers
304
+ // expect the original `throw new X(msg)` reason exactly) and
305
+ // the ORIGINAL error object (`raw`) used for identity-based
306
+ // fail-fast re-attribution. Fall back to the flat
307
+ // `event.message` (stripping the standard `Error: ` prefix)
308
+ // only if a future footprintjs shape omits `structuredError`.
309
+ const structured = event.structuredError;
310
+ const message = structured?.message ??
311
+ (event.message.startsWith('Error: ')
312
+ ? event.message.slice('Error: '.length)
313
+ : event.message);
314
+ this.branchErrors.set(branchId, { message, raw: structured?.raw });
181
315
  }
182
316
  },
183
317
  };
@@ -241,14 +375,18 @@ export class Parallel extends RunnerBase {
241
375
  // detects this via `branches.map(b => b.id) \ keys(branchResults)`
242
376
  // and either throws (strict mode) or synthesizes `BranchOutcome`
243
377
  // entries for the tolerant `outcomes-fn` merge.
378
+ //
379
+ // The outputMapper itself is wrapped (`wrapBranchOutputMapper`) so a
380
+ // MAPPER throw is also attributed to its branch — see the helper's
381
+ // JSDoc for why footprintjs can't attribute that class on its own.
244
382
  for (const branch of branches) {
245
383
  builder = builder.addSubFlowChart(branch.id, branch.runner.getSpec(), branch.name, {
246
384
  inputMapper: (parent) => ({ message: parent.userMessage ?? '' }),
247
- outputMapper: (sfOutput) => ({
385
+ outputMapper: wrapBranchOutputMapper(branch.id, this.branchErrors, (sfOutput) => ({
248
386
  branchResults: {
249
387
  [branch.id]: typeof sfOutput === 'string' ? sfOutput : '',
250
388
  },
251
- }),
389
+ })),
252
390
  });
253
391
  }
254
392
  // Merge stage — runs after all fork children complete (join point).
@@ -256,6 +394,7 @@ export class Parallel extends RunnerBase {
256
394
  // `parallel-branch-errors` recorder) so per-branch error messages
257
395
  // survive subflow boundary swallowing in footprintjs.
258
396
  const branchErrors = this.branchErrors;
397
+ const requiredIds = this.requiredIds;
259
398
  const mergeStage = async (scope) => {
260
399
  const results = scope.branchResults ?? {};
261
400
  // Detect failures by absence: any expected branch id missing
@@ -263,18 +402,19 @@ export class Parallel extends RunnerBase {
263
402
  // fire — i.e., one whose subflow errored. The specific error
264
403
  // message comes from the recorder-captured `branchErrors` map.
265
404
  //
266
- // Caveat: footprintjs does NOT fire `FlowRecorder.onError` for
267
- // errors thrown INSIDE `applyOutputMapping` (those are caught
268
- // separately in `SubflowExecutor` and routed to
269
- // `parentContext.addError('outputMapperError', ...)`). A branch
270
- // whose subflow completed cleanly but whose outputMapper threw
271
- // will therefore show up here as a missing id with no entry in
272
- // `branchErrors` strict-mode aggregation prints `unknown
273
- // error` for it and tolerant-mode synthesizes the same string.
274
- // This is a known gap; see `core-flow/README.md` Decision 8.
405
+ // footprintjs does NOT fire `FlowRecorder.onError` for errors
406
+ // thrown INSIDE `applyOutputMapping` (those are caught separately
407
+ // in `SubflowExecutor` and routed to
408
+ // `parentContext.addError('outputMapperError', ...)`), so the
409
+ // recorder alone would miss mapper-class failures. The
410
+ // `wrapBranchOutputMapper` wrapper on every branch mount records
411
+ // those into `branchErrors` before rethrowing, so both strict-mode
412
+ // aggregation and tolerant-mode `BranchOutcome.error` print the
413
+ // real message instead of `unknown error`.
275
414
  const failedIds = branches.map((b) => b.id).filter((id) => !(id in results));
276
415
  const isTolerant = merge.kind === 'outcomes-fn';
277
- if (failedIds.length > 0 && !isTolerant) {
416
+ const failedRequired = failedIds.filter((id) => requiredIds.has(id));
417
+ if (failedIds.length > 0 && (!isTolerant || failedRequired.length > 0)) {
278
418
  typedEmit(scope, 'agentfootprint.composition.exit', {
279
419
  kind: 'Parallel',
280
420
  id: compositionId,
@@ -282,8 +422,18 @@ export class Parallel extends RunnerBase {
282
422
  status: 'err',
283
423
  durationMs: Date.now() - this.currentRunContext.runStartMs,
284
424
  });
425
+ // A REQUIRED branch failed under a tolerant merge: required
426
+ // overrides tolerance — reject the run, naming the branch(es).
427
+ // (Strict merges below already reject on ANY failure, required
428
+ // or not, with the pre-existing aggregate message.)
429
+ if (isTolerant) {
430
+ const details = failedRequired
431
+ .map((id) => ` ${id}: ${branchErrors.get(id)?.message ?? 'unknown error'}`)
432
+ .join('\n');
433
+ throw new Error(`Parallel '${compositionId}': ${failedRequired.length} required branch(es) failed:\n${details}`);
434
+ }
285
435
  const details = failedIds
286
- .map((id) => ` ${id}: ${branchErrors.get(id) ?? 'unknown error'}`)
436
+ .map((id) => ` ${id}: ${branchErrors.get(id)?.message ?? 'unknown error'}`)
287
437
  .join('\n');
288
438
  throw new Error(`Parallel '${compositionId}': ${failedIds.length} branch(es) failed:\n${details}\n` +
289
439
  `(use .mergeOutcomesWithFn() for tolerant-mode partial-failure handling)`);
@@ -311,7 +461,7 @@ export class Parallel extends RunnerBase {
311
461
  else {
312
462
  outcomes[b.id] = {
313
463
  ok: false,
314
- error: branchErrors.get(b.id) ?? 'unknown error',
464
+ error: branchErrors.get(b.id)?.message ?? 'unknown error',
315
465
  };
316
466
  }
317
467
  }
@@ -351,9 +501,63 @@ export class Parallel extends RunnerBase {
351
501
  return merged;
352
502
  };
353
503
  builder = builder.addFunction('Merge', mergeStage, 'merge', 'Parallel merge');
354
- return builder.build();
504
+ const chart = builder.build();
505
+ // Required-branch fail-fast: when EVERY branch is required, engage
506
+ // footprintjs's fork-level `failFast` (`Promise.all` — first branch
507
+ // error rejects the whole run, aborting before the Merge join).
508
+ //
509
+ // The fan-out node here is the SEED node — stacked `addSubFlowChart`
510
+ // calls fork from the builder cursor, which is the chart root.
511
+ // footprintjs only exposes a `failFast` option on its selector/list
512
+ // builders, so for a plain stacked-subflow fork we stamp the public
513
+ // `StageNode.failFast` field on the built chart's root directly
514
+ // (the exact field `ChildrenExecutor.executeNodeChildren` reads).
515
+ //
516
+ // Deliberately NOT engaged for a MIXED required/optional set:
517
+ // fork-level failFast is all-or-nothing, so an OPTIONAL sibling's
518
+ // throw would also abort the run. Mixed sets are enforced at the
519
+ // Merge join instead (see `mergeStage`).
520
+ if (this.failFastEngaged) {
521
+ chart.root.failFast = true;
522
+ }
523
+ return chart;
355
524
  }
356
525
  }
526
+ /**
527
+ * Wrap a branch's `outputMapper` so a mapper throw is ATTRIBUTED to its
528
+ * branch before footprintjs swallows it.
529
+ *
530
+ * footprintjs's `SubflowExecutor` catches outputMapper errors into
531
+ * `parentContext.addError('outputMapperError', ...)` WITHOUT firing
532
+ * `FlowRecorder.onError` — so Parallel's internal `parallel-branch-errors`
533
+ * recorder never sees them, and the Merge stage would fall back to
534
+ * `'unknown error'` for the missing branch id. Recording into the
535
+ * branch-error map here (first error per branch wins, mirroring the
536
+ * recorder's semantics) closes that attribution gap. The error is then
537
+ * RETHROWN so footprintjs's existing bookkeeping stays untouched: the
538
+ * `outputMapperError` debug entry is still written and the branch id is
539
+ * still absent from `branchResults` (which is how the Merge stage detects
540
+ * the failure).
541
+ *
542
+ * @internal Exported for direct unit testing — not part of the public API
543
+ * (not re-exported from the package barrel).
544
+ */
545
+ export function wrapBranchOutputMapper(branchId, branchErrors, inner) {
546
+ return (sfOutput) => {
547
+ try {
548
+ return inner(sfOutput);
549
+ }
550
+ catch (err) {
551
+ if (!branchErrors.has(branchId)) {
552
+ branchErrors.set(branchId, {
553
+ message: err instanceof Error ? err.message : String(err),
554
+ raw: err,
555
+ });
556
+ }
557
+ throw err;
558
+ }
559
+ };
560
+ }
357
561
  /** Fluent builder. Requires at least 2 branches + one merge strategy. */
358
562
  export class ParallelBuilder {
359
563
  opts;
@@ -395,6 +599,7 @@ export class ParallelBuilder {
395
599
  ...(opts.groupTranslator !== undefined && {
396
600
  groupTranslator: opts.groupTranslator,
397
601
  }),
602
+ ...(opts.required !== undefined && { required: opts.required }),
398
603
  };
399
604
  this.branches.push(entry);
400
605
  return this;
@@ -1 +1 @@
1
- {"version":3,"file":"Parallel.js","sourceRoot":"","sources":["../../../src/core-flow/Parallel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,WAAW,GAOZ,MAAM,aAAa,CAAC;AAKrB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AA2G3D,MAAM,OAAO,QAAS,SAAQ,UAAyC;IAC5D,IAAI,CAAS;IACb,EAAE,CAAS;IACH,QAAQ,CAAyB;IACjC,KAAK,CAAgB;IACrB,IAAI,CAAkB;IAE/B,iBAAiB,GAAe;QACtC,UAAU,EAAE,CAAC;QACb,KAAK,EAAE,SAAS;QAChB,eAAe,EAAE,EAAE;KACpB,CAAC;IAEF;;;;;;;;;;;;OAYG;IACc,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE1D,YAAY,IAAqB,EAAE,QAAgC,EAAE,KAAoB;QACvF,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC;QACpC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,UAAU,CAAC;QAChC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;QAChG,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,+DAA+D;QAC/D,+DAA+D;QAC/D,iEAAiE;QACjE,iDAAiD;QACjD,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,OAAwB,EAAE;QACtC,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,oEAAoE;IAEpE,iEAAiE;IAC9C,kBAAkB;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;IACnC,CAAC;IAED;;;;;OAKG;IACgB,oBAAoB;QACrC,MAAM,OAAO,GAAkB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvD,QAAQ,EAAE,CAAC,CAAC,EAAE;YACd,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,6DAA6D;YAC7D,+DAA+D;YAC/D,8DAA8D;YAC9D,6DAA6D;YAC7D,yDAAyD;YACzD,oCAAoC;YACpC,OAAO,EACL,CAAC,CAAC,eAAe,KAAK,SAAS;gBAC7B,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC;gBAC5C,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE;SAC5B,CAAC,CAAC,CAAC;QACJ,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO;YACP,KAAK,EAAE;gBACL,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;aAC/B;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,GAAG,CACP,KAAoB,EACpB,OAAoB;QAEpB,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACvC,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC;YAChC,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE;YACjC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;SACnB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,MAAM,CACV,UAA+B,EAC/B,KAAe,EACf,OAAoB;QAEpB,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,iBAAiB,GAAG;YACvB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;YACtB,KAAK,EAAE,SAAS,EAAE;YAClB,eAAe,EAAE,CAAC,YAAY,IAAI,CAAC,EAAE,EAAE,CAAC;SACzC,CAAC;QAEF,kEAAkE;QAClE,+DAA+D;QAC/D,iEAAiE;QACjE,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAE1B,oDAAoD;QACpD,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAEvD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACxC,MAAM,SAAS,GAAG,GAAe,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC;QAE3D,QAAQ,CAAC,sBAAsB,CAAC,IAAI,eAAe,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAC/F,QAAQ,CAAC,sBAAsB,CAAC,cAAc,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAC1F,QAAQ,CAAC,sBAAsB,CAAC,aAAa,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QACzF,QAAQ,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAC/F,QAAQ,CAAC,sBAAsB,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;QAChE,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,iBAAiB;YAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QAC3E,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,uBAAuB;QAC7B,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1D,OAAO;YACL,EAAE,EAAE,wBAAwB;YAC5B,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBACjB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;oBAAE,OAAO;gBAChC,MAAM,GAAG,GAAG,KAAK,CAAC,gBAAgB,CAAC;gBACnC,IAAI,CAAC,GAAG;oBAAE,OAAO;gBACjB,4DAA4D;gBAC5D,gEAAgE;gBAChE,+DAA+D;gBAC/D,+DAA+D;gBAC/D,6DAA6D;gBAC7D,eAAe;gBACf,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;gBAClC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACnC,MAAM,QAAQ,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAClE,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;oBAAE,OAAO;gBAC/D,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACrC,2DAA2D;oBAC3D,yDAAyD;oBACzD,6DAA6D;oBAC7D,wDAAwD;oBACxD,0DAA0D;oBAC1D,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC;wBAC3C,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;wBACvC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;oBAClB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;IAEO,cAAc,CACpB,QAA2B,EAC3B,MAAe;QAEf,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAClD,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,IAAI,MAAM,YAAY,KAAK;YAAE,MAAM,MAAM,CAAC;QAC1C,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,MAAM,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IAEO,UAAU;QAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC;QAC9B,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC;QAElC,MAAM,IAAI,GAAG,CAAC,KAAgC,EAAE,EAAE;YAChD,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAiB,CAAC;YAC7C,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;YACjC,KAAK,CAAC,aAAa,GAAG,EAAE,CAAC;YACzB,SAAS,CAAC,KAAK,EAAE,kCAAkC,EAAE;gBACnD,IAAI,EAAE,UAAU;gBAChB,EAAE,EAAE,aAAa;gBACjB,IAAI,EAAE,eAAe;gBACrB,UAAU,EAAE,QAAQ,CAAC,MAAM;aAC5B,CAAC,CAAC;YACH,SAAS,CAAC,KAAK,EAAE,uCAAuC,EAAE;gBACxD,QAAQ,EAAE,aAAa;gBACvB,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;aAC5D,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,mEAAmE;QACnE,8DAA8D;QAC9D,qEAAqE;QACrE,qEAAqE;QACrE,gCAAgC;QAChC,IAAI,OAAO,GAAG,SAAS,CAAgB,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE;YACjE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,KAAK,SAAS,IAAI;gBAChD,kBAAkB,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC;aACtD,CAAC;YACF,WAAW,EAAE,aAAa,QAAQ,CAAC,MAAM,aAAa;SACvD,CAAC,CAAC;QAEH,iEAAiE;QACjE,mEAAmE;QACnE,mEAAmE;QACnE,sEAAsE;QACtE,EAAE;QACF,oEAAoE;QACpE,gEAAgE;QAChE,iEAAiE;QACjE,8DAA8D;QAC9D,4DAA4D;QAC5D,kDAAkD;QAClD,EAAE;QACF,kEAAkE;QAClE,iEAAiE;QACjE,gEAAgE;QAChE,mEAAmE;QACnE,iEAAiE;QACjE,gDAAgD;QAChD,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE;gBACjF,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAG,MAAM,CAAC,WAAsB,IAAI,EAAE,EAAE,CAAC;gBAC5E,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;oBAC3B,aAAa,EAAE;wBACb,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;qBAC1D;iBACF,CAAC;aACH,CAAC,CAAC;QACL,CAAC;QAED,oEAAoE;QACpE,6DAA6D;QAC7D,kEAAkE;QAClE,sDAAsD;QACtD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,MAAM,UAAU,GAAG,KAAK,EAAE,KAAgC,EAAmB,EAAE;YAC7E,MAAM,OAAO,GAAI,KAAK,CAAC,aAAwC,IAAI,EAAE,CAAC;YAEtE,6DAA6D;YAC7D,+DAA+D;YAC/D,6DAA6D;YAC7D,+DAA+D;YAC/D,EAAE;YACF,+DAA+D;YAC/D,8DAA8D;YAC9D,gDAAgD;YAChD,gEAAgE;YAChE,+DAA+D;YAC/D,+DAA+D;YAC/D,2DAA2D;YAC3D,+DAA+D;YAC/D,6DAA6D;YAC7D,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,CAAC,CAAC;YAC7E,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC;YAChD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACxC,SAAS,CAAC,KAAK,EAAE,iCAAiC,EAAE;oBAClD,IAAI,EAAE,UAAU;oBAChB,EAAE,EAAE,aAAa;oBACjB,IAAI,EAAE,eAAe;oBACrB,MAAM,EAAE,KAAK;oBACb,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU;iBAC3D,CAAC,CAAC;gBACH,MAAM,OAAO,GAAG,SAAS;qBACtB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,eAAe,EAAE,CAAC;qBAClE,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,MAAM,IAAI,KAAK,CACb,aAAa,aAAa,MAAM,SAAS,CAAC,MAAM,wBAAwB,OAAO,IAAI;oBACjF,yEAAyE,CAC5E,CAAC;YACJ,CAAC;YAED,kEAAkE;YAClE,oDAAoD;YACpD,mEAAmE;YACnE,mEAAmE;YACnE,6DAA6D;YAC7D,IAAI,MAAc,CAAC;YACnB,IAAI,CAAC;gBACH,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBACxB,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;gBAC7B,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;oBAChC,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAC1D,CAAC;qBAAM,CAAC;oBACN,gEAAgE;oBAChE,MAAM,QAAQ,GAAkC,EAAE,CAAC;oBACnD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;wBACzB,IAAI,CAAC,CAAC,EAAE,IAAI,OAAO,EAAE,CAAC;4BACpB,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAE,EAAE,CAAC;wBACvD,CAAC;6BAAM,CAAC;4BACN,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG;gCACf,EAAE,EAAE,KAAK;gCACT,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,eAAe;6BACjD,CAAC;wBACJ,CAAC;oBACH,CAAC;oBACD,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,SAAS,CAAC,KAAK,EAAE,iCAAiC,EAAE;oBAClD,IAAI,EAAE,UAAU;oBAChB,EAAE,EAAE,aAAa;oBACjB,IAAI,EAAE,eAAe;oBACrB,MAAM,EAAE,KAAK;oBACb,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU;iBAC3D,CAAC,CAAC;gBACH,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;YACnD,SAAS,CAAC,KAAK,EAAE,sCAAsC,EAAE;gBACvD,QAAQ,EAAE,aAAa;gBACvB,4DAA4D;gBAC5D,uDAAuD;gBACvD,QAAQ,EAAE,KAAK,CAAC,IAAI;gBACpB,aAAa,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;gBACnC,+DAA+D;gBAC/D,+DAA+D;gBAC/D,iDAAiD;gBACjD,iBAAiB,EAAE,cAAc;gBACjC,gBAAgB,EAAE,QAAQ,CAAC,MAAM;aAClC,CAAC,CAAC;YACH,SAAS,CAAC,KAAK,EAAE,iCAAiC,EAAE;gBAClD,IAAI,EAAE,UAAU;gBAChB,EAAE,EAAE,aAAa;gBACjB,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,IAAI;gBACZ,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU;aAC3D,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QAEF,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;QAE9E,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CACF;AAED,yEAAyE;AACzE,MAAM,OAAO,eAAe;IACT,IAAI,CAAkB;IACtB,QAAQ,GAAkB,EAAE,CAAC;IACtC,KAAK,CAA4B;IACxB,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAE7C,YAAY,IAAqB;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAU,EAAE,MAAmB,EAAE,UAA2C;QACjF,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,2CAA2C,EAAE,GAAG,CAAC,CAAC;QACpE,CAAC;QACD,qEAAqE;QACrE,+DAA+D;QAC/D,8DAA8D;QAC9D,kEAAkE;QAClE,oEAAoE;QACpE,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,0BAA0B,EAAE,sHAAsH,CACnJ,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrB,MAAM,IAAI,GACR,OAAO,UAAU,KAAK,QAAQ;YAC5B,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAkC,CAAC;YACxD,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAgB;YACzB,EAAE;YACF,MAAM;YACN,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;YACrB,GAAG,CAAC,IAAI,CAAC,eAAe,KAAK,SAAS,IAAI;gBACxC,eAAe,EAAE,IAAI,CAAC,eAAe;aACtC,CAAC;SACH,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,EAAW;QACrB,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oEAAoE;IACpE,YAAY,CAAC,IAAyB;QACpC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;OASG;IACH,mBAAmB,CAAC,EAAmB;QACrC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACb,6FAA6F,CAC9F,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;CACF;AAED,yEAAyE;AAEzE,KAAK,UAAU,YAAY,CACzB,KAAgC,EAChC,IAAyB,EACzB,OAAyC;IAEzC,yEAAyE;IACzE,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;SACrC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SAC9D,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,WAAW,GAAG,GAAG,IAAI,CAAC,MAAM,OAAO,QAAQ,EAAE,CAAC;IACpD,MAAM,QAAQ,GAAiB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;IAExE,SAAS,CAAC,KAAK,EAAE,iCAAiC,EAAE;QAClD,SAAS,EAAE,CAAC;QACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;QAC5B,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,iBAAiB,EAAE,CAAC;QACpB,aAAa,EAAE,CAAC;QAChB,UAAU,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;KACzE,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC5C,QAAQ;QACR,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QACxE,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;KACnE,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;IACxC,SAAS,CAAC,KAAK,EAAE,+BAA+B,EAAE;QAChD,SAAS,EAAE,CAAC;QACZ,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,aAAa,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM;QACxC,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,UAAU;KACX,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,OAAO,CAAC;AAC1B,CAAC;AAED,SAAS,SAAS,CAAC,CAAS;IAC1B,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,QAAQ,CAAC,CAAS,EAAE,CAAS;IACpC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IAC5B,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"Parallel.js","sourceRoot":"","sources":["../../../src/core-flow/Parallel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,WAAW,GAOZ,MAAM,aAAa,CAAC;AAKrB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAmB,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAsK3D,MAAM,OAAO,QAAS,SAAQ,UAAyC;IAC5D,IAAI,CAAS;IACb,EAAE,CAAS;IACH,QAAQ,CAAyB;IACjC,KAAK,CAAgB;IACrB,IAAI,CAAkB;IAE/B,iBAAiB,GAAe;QACtC,UAAU,EAAE,CAAC;QACb,KAAK,EAAE,SAAS;QAChB,eAAe,EAAE,EAAE;KACpB,CAAC;IAEF;;;;;;;;;;;;;;;OAeG;IACc,YAAY,GAAG,IAAI,GAAG,EAA6B,CAAC;IAErE;;;;;;;;OAQG;IACK,QAAQ,GAAG,CAAC,CAAC;IAErB,2FAA2F;IAC1E,WAAW,CAAsB;IAElD;;;;;;OAMG;IACc,eAAe,CAAU;IAE1C,YAAY,IAAqB,EAAE,QAAgC,EAAE,KAAoB;QACvF,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC;QACpC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,UAAU,CAAC;QAChC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;QAChG,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,uDAAuD;QACvD,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzF,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;QAClE,+DAA+D;QAC/D,+DAA+D;QAC/D,iEAAiE;QACjE,iDAAiD;QACjD,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,OAAwB,EAAE;QACtC,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,oEAAoE;IAEpE,iEAAiE;IAC9C,kBAAkB;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;IACnC,CAAC;IAED;;;;;OAKG;IACgB,oBAAoB;QACrC,MAAM,OAAO,GAAkB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvD,QAAQ,EAAE,CAAC,CAAC,EAAE;YACd,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,6DAA6D;YAC7D,+DAA+D;YAC/D,8DAA8D;YAC9D,6DAA6D;YAC7D,yDAAyD;YACzD,oCAAoC;YACpC,OAAO,EACL,CAAC,CAAC,eAAe,KAAK,SAAS;gBAC7B,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC;gBAC5C,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE;SAC5B,CAAC,CAAC,CAAC;QACJ,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO;YACP,KAAK,EAAE;gBACL,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;aAC/B;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,GAAG,CACP,KAAoB,EACpB,OAAoB;QAEpB,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACvC,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;QAC7B,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC;gBAC1B,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE;gBACjC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;aACnB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,MAAM,CACV,UAA+B,EAC/B,KAAe,EACf,OAAoB;QAEpB,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACvC,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACK,4BAA4B,CAAC,GAAY;QAC/C,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;YAC7C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC;gBACnC,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CACb,aAAa,IAAI,CAAC,EAAE,uBAAuB,QAAQ,aAAa,QAAQ,CAAC,OAAO,EAAE,EAClF;oBACE,KAAK,EAAE,GAAG;iBACX,CACF,CAAC;YACJ,CAAC;QACH,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED;;;;OAIG;IACK,oBAAoB,CAAC,GAAY;QACvC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG;gBAAE,OAAO,KAAK,CAAC;QACzC,CAAC;QACD,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO;gBAAE,OAAO,KAAK,CAAC;QACjD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;;OAOG;IACK,qBAAqB;QAC3B,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YACvB,IAAI,EAAE,iCAAiC;YACvC,OAAO,EAAE;gBACP,IAAI,EAAE,UAAU;gBAChB,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,KAAK;gBACb,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU;aAC3D;YACD,IAAI,EAAE,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC;SACxD,CAAC,CAAC;IACL,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,iBAAiB,GAAG;YACvB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;YACtB,KAAK,EAAE,SAAS,EAAE;YAClB,eAAe,EAAE,CAAC,YAAY,IAAI,CAAC,EAAE,EAAE,CAAC;SACzC,CAAC;QAEF,kEAAkE;QAClE,+DAA+D;QAC/D,iEAAiE;QACjE,iEAAiE;QACjE,gEAAgE;QAChE,0CAA0C;QAC1C,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;QACnB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAE1B,oDAAoD;QACpD,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAEvD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACxC,MAAM,SAAS,GAAG,GAAe,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC;QAE3D,QAAQ,CAAC,sBAAsB,CAAC,IAAI,eAAe,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAC/F,QAAQ,CAAC,sBAAsB,CAAC,cAAc,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAC1F,QAAQ,CAAC,sBAAsB,CAAC,aAAa,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QACzF,QAAQ,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAC/F,QAAQ,CAAC,sBAAsB,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7E,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,iBAAiB;YAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QAC3E,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACK,uBAAuB,CAAC,KAAa;QAC3C,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1D,OAAO;YACL,EAAE,EAAE,wBAAwB;YAC5B,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBACjB,IAAI,KAAK,KAAK,IAAI,CAAC,QAAQ;oBAAE,OAAO,CAAC,4BAA4B;gBACjE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;oBAAE,OAAO;gBAChC,MAAM,GAAG,GAAG,KAAK,CAAC,gBAAgB,CAAC;gBACnC,IAAI,CAAC,GAAG;oBAAE,OAAO;gBACjB,4DAA4D;gBAC5D,gEAAgE;gBAChE,+DAA+D;gBAC/D,+DAA+D;gBAC/D,6DAA6D;gBAC7D,eAAe;gBACf,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;gBAClC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACnC,MAAM,QAAQ,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAClE,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;oBAAE,OAAO;gBAC/D,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACrC,wDAAwD;oBACxD,2DAA2D;oBAC3D,6DAA6D;oBAC7D,4DAA4D;oBAC5D,kDAAkD;oBAClD,4DAA4D;oBAC5D,8DAA8D;oBAC9D,MAAM,UAAU,GAAG,KAAK,CAAC,eAAe,CAAC;oBACzC,MAAM,OAAO,GACX,UAAU,EAAE,OAAO;wBACnB,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC;4BAClC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;4BACvC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACrB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;gBACrE,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;IAEO,cAAc,CACpB,QAA2B,EAC3B,MAAe;QAEf,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAClD,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,IAAI,MAAM,YAAY,KAAK;YAAE,MAAM,MAAM,CAAC;QAC1C,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,MAAM,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IAEO,UAAU;QAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC;QAC9B,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC;QAElC,MAAM,IAAI,GAAG,CAAC,KAAgC,EAAE,EAAE;YAChD,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAiB,CAAC;YAC7C,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;YACjC,KAAK,CAAC,aAAa,GAAG,EAAE,CAAC;YACzB,SAAS,CAAC,KAAK,EAAE,kCAAkC,EAAE;gBACnD,IAAI,EAAE,UAAU;gBAChB,EAAE,EAAE,aAAa;gBACjB,IAAI,EAAE,eAAe;gBACrB,UAAU,EAAE,QAAQ,CAAC,MAAM;aAC5B,CAAC,CAAC;YACH,SAAS,CAAC,KAAK,EAAE,uCAAuC,EAAE;gBACxD,QAAQ,EAAE,aAAa;gBACvB,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;aAC5D,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,mEAAmE;QACnE,8DAA8D;QAC9D,qEAAqE;QACrE,qEAAqE;QACrE,gCAAgC;QAChC,IAAI,OAAO,GAAG,SAAS,CAAgB,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE;YACjE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,KAAK,SAAS,IAAI;gBAChD,kBAAkB,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC;aACtD,CAAC;YACF,WAAW,EAAE,aAAa,QAAQ,CAAC,MAAM,aAAa;SACvD,CAAC,CAAC;QAEH,iEAAiE;QACjE,mEAAmE;QACnE,mEAAmE;QACnE,sEAAsE;QACtE,EAAE;QACF,oEAAoE;QACpE,gEAAgE;QAChE,iEAAiE;QACjE,8DAA8D;QAC9D,4DAA4D;QAC5D,kDAAkD;QAClD,EAAE;QACF,kEAAkE;QAClE,iEAAiE;QACjE,gEAAgE;QAChE,mEAAmE;QACnE,iEAAiE;QACjE,gDAAgD;QAChD,EAAE;QACF,qEAAqE;QACrE,mEAAmE;QACnE,mEAAmE;QACnE,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE;gBACjF,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAG,MAAM,CAAC,WAAsB,IAAI,EAAE,EAAE,CAAC;gBAC5E,YAAY,EAAE,sBAAsB,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;oBAChF,aAAa,EAAE;wBACb,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;qBAC1D;iBACF,CAAC,CAAC;aACJ,CAAC,CAAC;QACL,CAAC;QAED,oEAAoE;QACpE,6DAA6D;QAC7D,kEAAkE;QAClE,sDAAsD;QACtD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,MAAM,UAAU,GAAG,KAAK,EAAE,KAAgC,EAAmB,EAAE;YAC7E,MAAM,OAAO,GAAI,KAAK,CAAC,aAAwC,IAAI,EAAE,CAAC;YAEtE,6DAA6D;YAC7D,+DAA+D;YAC/D,6DAA6D;YAC7D,+DAA+D;YAC/D,EAAE;YACF,8DAA8D;YAC9D,kEAAkE;YAClE,qCAAqC;YACrC,8DAA8D;YAC9D,uDAAuD;YACvD,iEAAiE;YACjE,mEAAmE;YACnE,gEAAgE;YAChE,2CAA2C;YAC3C,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,CAAC,CAAC;YAC7E,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC;YAChD,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACrE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;gBACvE,SAAS,CAAC,KAAK,EAAE,iCAAiC,EAAE;oBAClD,IAAI,EAAE,UAAU;oBAChB,EAAE,EAAE,aAAa;oBACjB,IAAI,EAAE,eAAe;oBACrB,MAAM,EAAE,KAAK;oBACb,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU;iBAC3D,CAAC,CAAC;gBACH,4DAA4D;gBAC5D,+DAA+D;gBAC/D,+DAA+D;gBAC/D,oDAAoD;gBACpD,IAAI,UAAU,EAAE,CAAC;oBACf,MAAM,OAAO,GAAG,cAAc;yBAC3B,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,OAAO,IAAI,eAAe,EAAE,CAAC;yBAC3E,IAAI,CAAC,IAAI,CAAC,CAAC;oBACd,MAAM,IAAI,KAAK,CACb,aAAa,aAAa,MAAM,cAAc,CAAC,MAAM,iCAAiC,OAAO,EAAE,CAChG,CAAC;gBACJ,CAAC;gBACD,MAAM,OAAO,GAAG,SAAS;qBACtB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,OAAO,IAAI,eAAe,EAAE,CAAC;qBAC3E,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,MAAM,IAAI,KAAK,CACb,aAAa,aAAa,MAAM,SAAS,CAAC,MAAM,wBAAwB,OAAO,IAAI;oBACjF,yEAAyE,CAC5E,CAAC;YACJ,CAAC;YAED,kEAAkE;YAClE,oDAAoD;YACpD,mEAAmE;YACnE,mEAAmE;YACnE,6DAA6D;YAC7D,IAAI,MAAc,CAAC;YACnB,IAAI,CAAC;gBACH,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBACxB,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;gBAC7B,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;oBAChC,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAC1D,CAAC;qBAAM,CAAC;oBACN,gEAAgE;oBAChE,MAAM,QAAQ,GAAkC,EAAE,CAAC;oBACnD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;wBACzB,IAAI,CAAC,CAAC,EAAE,IAAI,OAAO,EAAE,CAAC;4BACpB,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAE,EAAE,CAAC;wBACvD,CAAC;6BAAM,CAAC;4BACN,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG;gCACf,EAAE,EAAE,KAAK;gCACT,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,IAAI,eAAe;6BAC1D,CAAC;wBACJ,CAAC;oBACH,CAAC;oBACD,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,SAAS,CAAC,KAAK,EAAE,iCAAiC,EAAE;oBAClD,IAAI,EAAE,UAAU;oBAChB,EAAE,EAAE,aAAa;oBACjB,IAAI,EAAE,eAAe;oBACrB,MAAM,EAAE,KAAK;oBACb,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU;iBAC3D,CAAC,CAAC;gBACH,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;YACnD,SAAS,CAAC,KAAK,EAAE,sCAAsC,EAAE;gBACvD,QAAQ,EAAE,aAAa;gBACvB,4DAA4D;gBAC5D,uDAAuD;gBACvD,QAAQ,EAAE,KAAK,CAAC,IAAI;gBACpB,aAAa,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;gBACnC,+DAA+D;gBAC/D,+DAA+D;gBAC/D,iDAAiD;gBACjD,iBAAiB,EAAE,cAAc;gBACjC,gBAAgB,EAAE,QAAQ,CAAC,MAAM;aAClC,CAAC,CAAC;YACH,SAAS,CAAC,KAAK,EAAE,iCAAiC,EAAE;gBAClD,IAAI,EAAE,UAAU;gBAChB,EAAE,EAAE,aAAa;gBACjB,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,IAAI;gBACZ,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU;aAC3D,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QAEF,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;QAE9E,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAE9B,mEAAmE;QACnE,oEAAoE;QACpE,gEAAgE;QAChE,EAAE;QACF,qEAAqE;QACrE,+DAA+D;QAC/D,oEAAoE;QACpE,oEAAoE;QACpE,gEAAgE;QAChE,kEAAkE;QAClE,EAAE;QACF,8DAA8D;QAC9D,kEAAkE;QAClE,iEAAiE;QACjE,yCAAyC;QACzC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC7B,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,sBAAsB,CACpC,QAAgB,EAChB,YAA4C,EAC5C,KAAqD;IAErD,OAAO,CAAC,QAAQ,EAAE,EAAE;QAClB,IAAI,CAAC;YACH,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE;oBACzB,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;oBACzD,GAAG,EAAE,GAAG;iBACT,CAAC,CAAC;YACL,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,yEAAyE;AACzE,MAAM,OAAO,eAAe;IACT,IAAI,CAAkB;IACtB,QAAQ,GAAkB,EAAE,CAAC;IACtC,KAAK,CAA4B;IACxB,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAE7C,YAAY,IAAqB;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAU,EAAE,MAAmB,EAAE,UAA2C;QACjF,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,2CAA2C,EAAE,GAAG,CAAC,CAAC;QACpE,CAAC;QACD,qEAAqE;QACrE,+DAA+D;QAC/D,8DAA8D;QAC9D,kEAAkE;QAClE,oEAAoE;QACpE,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,0BAA0B,EAAE,sHAAsH,CACnJ,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrB,MAAM,IAAI,GACR,OAAO,UAAU,KAAK,QAAQ;YAC5B,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAkC,CAAC;YACxD,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAgB;YACzB,EAAE;YACF,MAAM;YACN,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;YACrB,GAAG,CAAC,IAAI,CAAC,eAAe,KAAK,SAAS,IAAI;gBACxC,eAAe,EAAE,IAAI,CAAC,eAAe;aACtC,CAAC;YACF,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;SAChE,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,EAAW;QACrB,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oEAAoE;IACpE,YAAY,CAAC,IAAyB;QACpC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;OASG;IACH,mBAAmB,CAAC,EAAmB;QACrC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACb,6FAA6F,CAC9F,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;CACF;AAED,yEAAyE;AAEzE,KAAK,UAAU,YAAY,CACzB,KAAgC,EAChC,IAAyB,EACzB,OAAyC;IAEzC,yEAAyE;IACzE,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;SACrC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SAC9D,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,WAAW,GAAG,GAAG,IAAI,CAAC,MAAM,OAAO,QAAQ,EAAE,CAAC;IACpD,MAAM,QAAQ,GAAiB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;IAExE,SAAS,CAAC,KAAK,EAAE,iCAAiC,EAAE;QAClD,SAAS,EAAE,CAAC;QACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;QAC5B,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,iBAAiB,EAAE,CAAC;QACpB,aAAa,EAAE,CAAC;QAChB,UAAU,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;KACzE,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC5C,QAAQ;QACR,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QACxE,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;KACnE,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;IACxC,SAAS,CAAC,KAAK,EAAE,+BAA+B,EAAE;QAChD,SAAS,EAAE,CAAC;QACZ,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,aAAa,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM;QACxC,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,UAAU;KACX,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,OAAO,CAAC;AAC1B,CAAC;AAED,SAAS,SAAS,CAAC,CAAS;IAC1B,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,QAAQ,CAAC,CAAS,EAAE,CAAS;IACpC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IAC5B,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AACjC,CAAC"}