litedbmodel 2.2.1 → 2.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/README.md +2 -1
  2. package/dist/DBModel.d.ts.map +1 -1
  3. package/dist/DBModel.js +3 -0
  4. package/dist/DBModel.js.map +1 -1
  5. package/dist/Middleware.d.ts +19 -2
  6. package/dist/Middleware.d.ts.map +1 -1
  7. package/dist/Middleware.js +1 -0
  8. package/dist/Middleware.js.map +1 -1
  9. package/dist/decorators.d.ts.map +1 -1
  10. package/dist/decorators.js +8 -0
  11. package/dist/decorators.js.map +1 -1
  12. package/dist/drivers/MysqlHelper.d.ts +1 -1
  13. package/dist/drivers/MysqlHelper.d.ts.map +1 -1
  14. package/dist/drivers/MysqlHelper.js.map +1 -1
  15. package/dist/drivers/PostgresHelper.d.ts +1 -1
  16. package/dist/drivers/PostgresHelper.d.ts.map +1 -1
  17. package/dist/drivers/PostgresHelper.js.map +1 -1
  18. package/dist/drivers/SqliteHelper.d.ts +1 -1
  19. package/dist/drivers/SqliteHelper.d.ts.map +1 -1
  20. package/dist/drivers/SqliteHelper.js.map +1 -1
  21. package/dist/index.cjs +99 -33
  22. package/dist/scp/connection-routing.d.ts +38 -1
  23. package/dist/scp/connection-routing.d.ts.map +1 -1
  24. package/dist/scp/connection-routing.js +64 -5
  25. package/dist/scp/connection-routing.js.map +1 -1
  26. package/dist/scp/dbmodel-runtime.d.ts +2 -1
  27. package/dist/scp/dbmodel-runtime.d.ts.map +1 -1
  28. package/dist/scp/dbmodel-runtime.js +2 -1
  29. package/dist/scp/dbmodel-runtime.js.map +1 -1
  30. package/dist/scp/decorator-adapter.d.ts +22 -0
  31. package/dist/scp/decorator-adapter.d.ts.map +1 -1
  32. package/dist/scp/decorator-adapter.js +26 -0
  33. package/dist/scp/decorator-adapter.js.map +1 -1
  34. package/dist/scp/emit/emitter.d.ts +21 -8
  35. package/dist/scp/emit/emitter.d.ts.map +1 -1
  36. package/dist/scp/emit/emitter.js +121 -39
  37. package/dist/scp/emit/emitter.js.map +1 -1
  38. package/dist/scp/emit/endpoint.d.ts +3 -8
  39. package/dist/scp/emit/endpoint.d.ts.map +1 -1
  40. package/dist/scp/exec-context.d.ts +39 -17
  41. package/dist/scp/exec-context.d.ts.map +1 -1
  42. package/dist/scp/exec-context.js +69 -35
  43. package/dist/scp/exec-context.js.map +1 -1
  44. package/dist/scp/grouping.d.ts.map +1 -1
  45. package/dist/scp/grouping.js +0 -0
  46. package/dist/scp/grouping.js.map +1 -1
  47. package/dist/scp/index.cjs +251 -624
  48. package/dist/scp/index.d.ts +8 -12
  49. package/dist/scp/index.d.ts.map +1 -1
  50. package/dist/scp/index.js +10 -28
  51. package/dist/scp/index.js.map +1 -1
  52. package/dist/scp/index.mjs +251 -612
  53. package/dist/scp/leaf-transport.d.ts +155 -12
  54. package/dist/scp/leaf-transport.d.ts.map +1 -1
  55. package/dist/scp/leaf-transport.js +31 -12
  56. package/dist/scp/leaf-transport.js.map +1 -1
  57. package/dist/scp/leaves.d.ts +59 -33
  58. package/dist/scp/leaves.d.ts.map +1 -1
  59. package/dist/scp/leaves.js +225 -65
  60. package/dist/scp/leaves.js.map +1 -1
  61. package/dist/scp/makesql/compile-select.d.ts +28 -1
  62. package/dist/scp/makesql/compile-select.d.ts.map +1 -1
  63. package/dist/scp/makesql/compile-select.js +19 -17
  64. package/dist/scp/makesql/compile-select.js.map +1 -1
  65. package/dist/scp/makesql/index.d.ts +2 -2
  66. package/dist/scp/makesql/index.d.ts.map +1 -1
  67. package/dist/scp/makesql/index.js +4 -6
  68. package/dist/scp/makesql/index.js.map +1 -1
  69. package/dist/scp/makesql/tx.d.ts +27 -69
  70. package/dist/scp/makesql/tx.d.ts.map +1 -1
  71. package/dist/scp/makesql/tx.js +26 -448
  72. package/dist/scp/makesql/tx.js.map +1 -1
  73. package/dist/scp/middleware.d.ts +4 -4
  74. package/dist/scp/middleware.d.ts.map +1 -1
  75. package/dist/scp/middleware.js +2 -2
  76. package/dist/scp/middleware.js.map +1 -1
  77. package/dist/scp/relation.d.ts +31 -12
  78. package/dist/scp/relation.d.ts.map +1 -1
  79. package/dist/scp/relation.js +16 -6
  80. package/dist/scp/relation.js.map +1 -1
  81. package/dist/scp/typed-object.d.ts +23 -19
  82. package/dist/scp/typed-object.d.ts.map +1 -1
  83. package/dist/scp/typed-object.js +24 -30
  84. package/dist/scp/typed-object.js.map +1 -1
  85. package/dist/scp/write-bundle.d.ts +21 -70
  86. package/dist/scp/write-bundle.d.ts.map +1 -1
  87. package/dist/scp/write-bundle.js +15 -79
  88. package/dist/scp/write-bundle.js.map +1 -1
  89. package/dist/types.d.ts +12 -0
  90. package/dist/types.d.ts.map +1 -1
  91. package/dist/types.js.map +1 -1
  92. package/docs/architecture.md +452 -0
  93. package/docs/design/phase-a-execution-context.md +2 -0
  94. package/package.json +15 -4
  95. package/dist/scp/writes.d.ts +0 -251
  96. package/dist/scp/writes.d.ts.map +0 -1
  97. package/dist/scp/writes.js +0 -176
  98. package/dist/scp/writes.js.map +0 -1
  99. package/docs/proposal/contracts-architecture-feasibility.md +0 -328
  100. package/docs/proposal/contracts-architecture.md +0 -579
  101. package/docs/proposal/litedbmodel-v2-scp-architecture.md +0 -433
  102. package/docs/proposal/sql-dynamic-expansion-spec.md +0 -175
  103. package/docs/proposal/v0-coverage-matrix.md +0 -157
  104. package/docs/proposal/v2-completeness-plan.md +0 -90
  105. package/docs/proposal/v2-sql-parity-checklist.md +0 -162
@@ -29,6 +29,7 @@
29
29
  * | row types | `makesql/outtype.deriveReadRow` over the model's `@column` SoT |
30
30
  * | column SQL types | `decorator-adapter.deriveModelColumns` / `modelColumnResolver` |
31
31
  * | relation declarations | `decorator-adapter.relationDeclOf` |
32
+ * | the statement's NAMED db | `decorator-adapter.connectionOf` (a relation's: the op's own) |
32
33
  * | find hard-limit cap | `limit-config.resolveFindHardLimit` |
33
34
  * | the leaf catalog | `leaf-transport.Db` (imported by the emitted module) |
34
35
  *
@@ -43,15 +44,27 @@
43
44
  * ## SKIP / dynamic WHERE (CLAUDE.md §2 — settled)
44
45
  *
45
46
  * A predicate declared `optional` is present-or-absent PER CALL, so the final SQL can only be
46
- * determined at execution time. The emitter therefore does NOT bake it: it passes the WHERE as
47
- * FRAGMENTS — SQL text + params, and a skipped fragment is simply omitted — and the `executeSQL`
48
- * leaf assembles the survivors when it runs ({@link import('../leaves').assembleDynamicWhere}); the
49
- * `?`→`$N` render happens after that, on the final SQL. There is no intermediate IR vocabulary: a
50
- * fragment is `{sql, params}` and nothing else, and a skipped one evaluates to `null` (bc's `cond` is
51
- * lazy, so a dropped fragment's params are never evaluated).
47
+ * determined at execution time. A BOUNDED predicate is not — it is the same on every call — so it is
48
+ * lowered into the static `sql` HERE, at emit time (native-clean), exactly as it is on a read that
49
+ * declares no optional predicate at all. A read's WHERE therefore splits by that ONE property: the
50
+ * bounded predicates ARE the emitted statement's WHERE, and only the ACTUALLY-optional ones accumulate
51
+ * a plan — one `{skipped, sql, params}` FRAGMENT each, which the `executeSQL` leaf continues the static
52
+ * WHERE with when it runs ({@link import('../leaves').assembleDynamicWhere}); the `?`→`$N` render
53
+ * happens after that, on the final SQL. There is no intermediate IR vocabulary: a fragment is SQL text
54
+ * + params + a SKIP FLAG (`skipped` = `param === null`). Every fragment is the SAME struct — never a
55
+ * `cond`-to-null element — so the go/rust native-codegen emitters resolve the plan (a variant/nullable
56
+ * array element is the one shape they reject).
52
57
  *
53
- * A statement with NO optional predicate carries no plan at all — its WHERE is lowered into the
54
- * static `sql` at emit time (native-clean). One path, chosen per statement.
58
+ * A read with NO optional predicate carries no plan at all. One statement, one plan holding exactly the
59
+ * predicates that are optional.
60
+ *
61
+ * The plan also carries WHERE the clause goes, because the emitter is what put the WHERE there: a SKIP
62
+ * read's `sql` port is the statement's HEAD (up to the end of its WHERE region) and the plan carries the
63
+ * connector plus the `tail` text and its bound values, straight off the same
64
+ * {@link import('../makesql/compile-select').SelectBundle} this read compiled. The leaf concatenates the
65
+ * three pieces; it never scans the statement to find the boundary again — a scan that took a NESTED
66
+ * statement's tail keyword for the outer one's (#198) and counted a QUOTED `?` the placeholder render
67
+ * skips (#202).
55
68
  */
56
69
  Object.defineProperty(exports, "__esModule", { value: true });
57
70
  exports.emitBehaviorModule = emitBehaviorModule;
@@ -133,6 +146,20 @@ class EmitContext {
133
146
  bindTypeOf(model, column) {
134
147
  return tsScalar((0, coltype_1.sqlTypeToBcScalar)(this.sqlTypeOf(model, column)));
135
148
  }
149
+ /**
150
+ * The NAMED connection every statement of an endpoint declared over `model` runs on — read from the
151
+ * model, the ONE authority ({@link connectionOf}), and handed to {@link execOptions} as its `db`
152
+ * field. `{}` ⇒ the DEFAULT connection, which leaves a bounded read's option record unspelled
153
+ * entirely (native-clean).
154
+ *
155
+ * A RELATION's child fetch does NOT come through here: its connection is the TARGET model's, which
156
+ * `relationDeclOf` already resolved onto the compiled op (`RelationOp.connection`) — the emitter
157
+ * consumes that rather than re-deriving it from a second model handle.
158
+ */
159
+ dbOf(model) {
160
+ const db = (0, decorator_adapter_1.connectionOf)(model);
161
+ return db !== undefined ? { db } : {};
162
+ }
136
163
  // ── methods ────────────────────────────────────────────────────────────────────────────────
137
164
  method(name, endpoint) {
138
165
  assertIdentifier(name, `endpoint name '${name}'`);
@@ -200,12 +227,9 @@ class EmitContext {
200
227
  const readResolve = endpoint.view !== undefined ? (t, c) => resolve(t === alias ? baseTable : t, c) : resolve;
201
228
  const cap = this.bakedFindCap(endpoint);
202
229
  const where = endpoint.where ?? [];
203
- const dynamic = where.some(isOptional);
204
- if (dynamic && endpoint.view !== undefined) {
205
- throw new Error(`emit: endpoint '${name}': a QUERY view-model binds its own CTE params BEFORE the WHERE, and a ` +
206
- `dynamic (SKIP) WHERE is assembled at execution time — the two cannot share one param order. ` +
207
- `Declare the view's own predicate inside the view query, or drop the optional predicate.`);
208
- }
230
+ // CLAUDE.md §2: the WHERE splits by ONE property — a BOUNDED predicate is lowered into the static
231
+ // statement below, only an ACTUALLY-optional one accumulates a plan the leaf assembles per call.
232
+ const optional = where.filter(isOptional);
209
233
  const params = [];
210
234
  for (const p of where)
211
235
  this.declareWhereParams(model, p, params);
@@ -213,21 +237,30 @@ class EmitContext {
213
237
  // therefore the order the parameters are declared in.
214
238
  const limit = this.page(endpoint.limit ?? (cap !== null ? cap + 1 : undefined), params);
215
239
  const offset = this.page(endpoint.offset, params);
216
- // A read with ANY optional predicate carries its WHOLE WHERE as fragments (the leaf assembles the
217
- // survivors at execution time); a fully-bounded read lowers its WHERE into the static `sql` here.
218
240
  const compiled = (0, compile_select_1.compileSelect)({
219
241
  dialect: this.spec.dialect,
220
242
  tableName: table,
221
243
  select: projection.join(', '),
222
- ...(dynamic ? {} : { conditions: this.conditions(model, where) }),
244
+ // The BOUNDED predicates — this read's static WHERE, whatever else it declares. (An all-optional
245
+ // read compiles an EMPTY condition set, which is the same no-WHERE statement it always was.)
246
+ conditions: this.conditions(model, where.filter((p) => !isOptional(p))),
223
247
  ...(endpoint.view !== undefined ? { cte: cteOf(endpoint.view) } : {}),
224
248
  ...(endpoint.order !== undefined ? { order: endpoint.order } : {}),
225
249
  ...(limit !== undefined ? { limit } : {}),
226
250
  ...(offset !== undefined ? { offset } : {}),
227
251
  ...(endpoint.lock === 'update' ? { forUpdate: true } : endpoint.lock === 'share' ? { forShare: true } : {}),
228
252
  });
229
- const bigint = endpoint.bigint === true;
230
- const call = `${quote(compiled.sql)}, [${compiled.params.map(renderSlot).join(', ')}], false, false, ${bigint}${dynamic ? `, ${this.dynamicWherePlan(model, where)}` : ''}`;
253
+ // A SKIP read hands the leaf the statement's HEAD (up to the end of its WHERE region) and puts the
254
+ // rest — the connector, the tail text and the tail's own bound values — in the plan, so the leaf
255
+ // CONCATENATES instead of scanning the finished statement for the boundary (#198 / #202). The split
256
+ // comes from the builder that created the boundary (`compileSelect`), never from re-reading its
257
+ // output. A read with no optional predicate carries no plan and therefore the WHOLE statement.
258
+ const plan = optional.length > 0 ? this.dynamicWherePlan(model, optional, compiled) : undefined;
259
+ const [sql, slots] = plan === undefined ? [compiled.sql, compiled.params] : [compiled.head, compiled.headParams];
260
+ const call = `${quote(sql)}, [${slots.map(renderSlot).join(', ')}]${execOptions({
261
+ ...this.dbOf(model),
262
+ ...(plan !== undefined ? { whereDynamic: plan } : {}),
263
+ })}`;
231
264
  const rowObj = objOf((0, outtype_1.deriveReadRow)(table, projection, readResolve, `endpoint '${name}'`).outType, name);
232
265
  const selections = normalizeSelections(endpoint.with ?? []);
233
266
  const fresh = freshNames(params.map((p) => p.name));
@@ -245,7 +278,7 @@ class EmitContext {
245
278
  const lines = [];
246
279
  const parentVar = fresh('rows');
247
280
  lines.push(`const ${parentVar}: WireValue[] = Db.executeSQL(${call});`);
248
- const graph = this.relations(model, parentVar, rowObj, selections, lines, fresh, bigint, `endpoint '${name}'`);
281
+ const graph = this.relations(model, parentVar, rowObj, selections, lines, fresh, `endpoint '${name}'`);
249
282
  const rowType = this.declareInterface(`${cap1(name)}Row`, graph.obj);
250
283
  // The terminal binding is the SINGLE de-box point: the annotation is what bc reads, the one
251
284
  // assertion is what narrows the opaque wire value for tsc.
@@ -254,17 +287,29 @@ class EmitContext {
254
287
  return { name, params, returnType: `${rowType}[]`, lines };
255
288
  }
256
289
  /**
257
- * The DYNAMIC WHERE plan expression: one fragment per declared predicate — `{sql, params}` from the
258
- * SAME `compileWhere` that produces a bounded WHERE — with an optional one wrapped in a conditional
259
- * that yields `null` when its parameter is absent. That is the whole fragment vocabulary.
290
+ * The DYNAMIC WHERE plan expression: ONE fragment per OPTIONAL predicate — never a bounded one, which
291
+ * is already in the static statement (CLAUDE.md §2) — every fragment the SAME struct
292
+ * `{skipped, sql, params}`, with `sql`/`params` from the SAME `compileWhere` that produces a bounded
293
+ * WHERE and `skipped` the per-call SKIP decision carried as DATA (`param === null`). That is the whole
294
+ * fragment vocabulary (SQL + params + a SKIP flag). The array is HOMOGENEOUS — never a `cond`-to-null
295
+ * element — so the go/rust native-codegen emitters resolve it (a variant/nullable array element is the
296
+ * one shape they reject); the `executeSQL` leaf drops the `skipped` fragments at run and continues the
297
+ * static WHERE with the survivors.
298
+ *
299
+ * The plan also carries what FINISHES the statement, taken straight off the bundle this same read
300
+ * compiled ({@link import('../makesql/compile-select').SelectBundle}): `lead` — the connector the first
301
+ * survivor joins with, which is `AND` exactly when the builder emitted a static WHERE — and `tail` /
302
+ * `tailParams`, the text and bound values that follow the WHERE region. The leaf then concatenates
303
+ * `head` + clause + `tail`; nothing on the run side has to find the boundary again, which is what a
304
+ * lexical scan got wrong on a nested statement (#198) and on a quoted `?` (#202).
260
305
  */
261
- dynamicWherePlan(model, where) {
262
- const frags = where.map((p) => {
306
+ dynamicWherePlan(model, optional, compiled) {
307
+ const frags = optional.map((p) => {
263
308
  const w = (0, compile_1.compileWhere)(this.conditions(model, [p]), this.spec.dialect);
264
- const frag = `{ sql: ${quote(w.sql)}, params: [${w.params.map(renderSlot).join(', ')}] }`;
265
- return isParameterised(p) && p.optional === true ? `${p.param} !== null ? ${frag} : null` : frag;
309
+ return `{ skipped: ${p.param} === null, sql: ${quote(w.sql)}, params: [${w.params.map(renderSlot).join(', ')}] }`;
266
310
  });
267
- return `{ frags: [${frags.join(', ')}] }`;
311
+ return (`{ frags: [${frags.join(', ')}], lead: ${quote(compiled.lead)}, tail: ${quote(compiled.tail)}, ` +
312
+ `tailParams: [${compiled.tailParams.map(renderSlot).join(', ')}] }`);
268
313
  }
269
314
  /**
270
315
  * Emit ONE relation LEVEL: for each selected relation, pluck the parent key set, run the ONE batched
@@ -272,7 +317,7 @@ class EmitContext {
272
317
  * selection recurses FIRST, so a grandchild level is grouped into its own parent before that parent
273
318
  * is grouped into ours (one query per depth — never one per parent).
274
319
  */
275
- relations(model, parentVar, parentObj, selections, lines, fresh, bigint, at) {
320
+ relations(model, parentVar, parentObj, selections, lines, fresh, at) {
276
321
  let acc = parentVar;
277
322
  const obj = { ...parentObj };
278
323
  let terminalCall = '';
@@ -284,17 +329,30 @@ class EmitContext {
284
329
  lines.push(`const ${keysVar}: WireValue[] = Db.pluck(${acc}, ${jsonArray((0, relation_1.parentKeyCols)(op))});`);
285
330
  const childVar = fresh(sel.name);
286
331
  // The runaway guard the compiled op resolved (`hasManyHardLimit` / the per-relation override):
287
- // baked onto the child fetch so the `executeSQL` transport asserts the RAW child row count —
288
- // the only point they are visible, since `group` receives an already-nested graph. A relation
289
- // batch never carries a dynamic WHERE (its SQL is fully static), so the `whereDynamic` slot is
290
- // an honest `null`. Uncapped ⇒ the ports stop at `bigint` and the call is byte-unchanged.
332
+ // baked onto the child fetch so the `executeSQL` transport asserts the RAW child row count — the
333
+ // only point they are visible, since `group` receives an already-nested graph. A relation batch
334
+ // never carries a dynamic WHERE (its SQL is fully static), and it says so with the `whereDynamic:
335
+ // null` FIELD of the option record — an uncapped batch on the DEFAULT connection carries no
336
+ // record at all.
291
337
  const guard = (0, relation_1.relationGuard)(op);
292
- const guardPorts = guard !== null ? `, null, ${JSON.stringify(guard)}` : '';
293
- lines.push(`const ${childVar}: WireValue[] = Db.executeSQL(${quote(op.sql)}, [${keysVar}], false, false, ${bigint}${guardPorts});`);
338
+ // The guard rides as a CONCRETE `CapGuard` struct (leaf-transport), so the native emitters build
339
+ // it directly: `limit` is an `Int` LITERAL (a plain `number` would emit as a float and the wire
340
+ // int-probe would miss the cap). EVERY field is spelled — bc types a port by the literal wired
341
+ // into it, so a struct with a field left out is a DIFFERENT type and `bc generate` rejects the
342
+ // module (#208); `relationGuard` is total in `model` so there is nothing to branch on.
343
+ const guardExpr = guard !== null ? `{ limit: ${guard.limit} as Int, model: ${quote(guard.model)}, relation: ${quote(guard.relation)} }` : undefined;
344
+ // CROSS-DB (V0 R1): the batch runs on the TARGET model's connection, which `relationDeclOf`
345
+ // already resolved onto the compiled op — v1 `LazyRelation.ts:236` runs a relation on
346
+ // `TargetClass.getDriverType()`'s driver, so a relation whose target lives in another database is
347
+ // fetched THERE and not against the parent's (which would read a missing / same-named table).
348
+ lines.push(`const ${childVar}: WireValue[] = Db.executeSQL(${quote(op.sql)}, [${keysVar}]${execOptions({
349
+ ...(op.connection !== undefined ? { db: op.connection } : {}),
350
+ ...(guardExpr !== undefined ? { guard: guardExpr } : {}),
351
+ })});`);
294
352
  let childRows = childVar;
295
353
  let childObj = objOf((0, outtype_1.deriveReadRow)(decl.targetTable, decl.select, this.resolver(targetModel), `${at} relation '${sel.name}'`).outType, `${at} relation '${sel.name}'`);
296
354
  if (sel.with.length > 0) {
297
- const nested = this.relations(targetModel, childVar, childObj, normalizeSelections(sel.with), lines, fresh, bigint, `${at}.${sel.name}`);
355
+ const nested = this.relations(targetModel, childVar, childObj, normalizeSelections(sel.with), lines, fresh, `${at}.${sel.name}`);
298
356
  childObj = nested.obj;
299
357
  childRows = nested.terminalVar;
300
358
  }
@@ -353,7 +411,7 @@ class EmitContext {
353
411
  params,
354
412
  returnType: `${rowType}[]`,
355
413
  lines: [
356
- `const ${out}: ${rowType}[] = Db.executeSQL(${quote(op.sql)}, [${op.params.map(renderSlot).join(', ')}], true, ${returning !== undefined}, false) as ${rowType}[];`,
414
+ `const ${out}: ${rowType}[] = Db.executeSQL(${quote(op.sql)}, [${op.params.map(renderSlot).join(', ')}]${execOptions({ ...this.dbOf(model), write: { returning: returning !== undefined } })}) as ${rowType}[];`,
357
415
  `return ${out};`,
358
416
  ],
359
417
  };
@@ -443,7 +501,7 @@ class EmitContext {
443
501
  params,
444
502
  returnType: `${rowType}[]`,
445
503
  lines: [
446
- `const ${out}: ${rowType}[] = Db.executeSQL(${quote(op.sql)}, [${slots.join(', ')}], true, ${endpoint.returning !== undefined}, false) as ${rowType}[];`,
504
+ `const ${out}: ${rowType}[] = Db.executeSQL(${quote(op.sql)}, [${slots.join(', ')}]${execOptions({ ...this.dbOf(model), write: { returning: endpoint.returning !== undefined } })}) as ${rowType}[];`,
447
505
  `return ${out};`,
448
506
  ],
449
507
  };
@@ -471,7 +529,7 @@ class EmitContext {
471
529
  params,
472
530
  returnType: `${rowType}[]`,
473
531
  lines: [
474
- `const ${out}: ${rowType}[] = Db.executeSQL(${quote(op.sql)}, [${op.params.map(renderSlot).join(', ')}], true, ${endpoint.returning !== undefined}, false) as ${rowType}[];`,
532
+ `const ${out}: ${rowType}[] = Db.executeSQL(${quote(op.sql)}, [${op.params.map(renderSlot).join(', ')}]${execOptions({ ...this.dbOf(model), write: { returning: endpoint.returning !== undefined } })}) as ${rowType}[];`,
475
533
  `return ${out};`,
476
534
  ],
477
535
  };
@@ -693,6 +751,30 @@ function isParameterised(p) {
693
751
  function isOptional(p) {
694
752
  return isParameterised(p) && p.optional === true;
695
753
  }
754
+ /**
755
+ * Render the OPTIONAL `opts` argument of `Db.executeSQL` — the ONE place the option record
756
+ * ({@link import('../leaf-transport').ExecOptions}) is spelled, for every emitted statement of every op.
757
+ *
758
+ * A statement that carries NO option at all (a bounded read of a DEFAULT-connection model, an uncapped
759
+ * relation child of one) renders NOTHING: the port is omitted and the payload stays `sql` + `params`
760
+ * (native-clean). ONLY those statements are unchanged by named-DB routing — every statement that ALREADY
761
+ * carried a record (a write, a SKIP read, a guarded relation child) now spells `db: null` in it too. The
762
+ * frozen conformance vectors are unaffected for a different reason: a vector carries the statements the
763
+ * transport handed the driver (`sql` + `params`) and no control record at all (`grep -c opts
764
+ * conformance/vectors/*.json` = 0). Any other statement spells the WHOLE record — bc types a port by the
765
+ * literal wired into it
766
+ * and rejects a partial one — so each absent fact is the `null` VALUE of its own NAMED field. That is
767
+ * what removed the positional filler #193 is about: nothing has to be passed to reach the field after it.
768
+ *
769
+ * `write` is ONE field carrying the write's own `returning` (the `WriteMode` struct), so "returns rows
770
+ * but is not a write" is not a state the ABI can hold — three statement shapes, three values.
771
+ */
772
+ function execOptions(o) {
773
+ if (o.db === undefined && o.write === undefined && o.whereDynamic === undefined && o.guard === undefined)
774
+ return '';
775
+ const write = o.write === undefined ? 'null' : `{ returning: ${o.write.returning} }`;
776
+ return `, { db: ${o.db === undefined ? 'null' : quote(o.db)}, write: ${write}, whereDynamic: ${o.whereDynamic ?? 'null'}, guard: ${o.guard ?? 'null'} }`;
777
+ }
696
778
  /**
697
779
  * Render ONE bound slot: a parameter sentinel becomes its identifier, anything else a TS literal.
698
780
  *
@@ -1 +1 @@
1
- {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../../src/scp/emit/emitter.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;;AAqHH,gDAMC;AAxHD,6CAA2G;AAE3G,8DAA4F;AAC5F,gDAAkD;AAClD,sDAA0E;AAC1E,sCAAiE;AACjE,gDAAmD;AACnD,wCAAuF;AACvF,kEAA+D;AAC/D,0CAAgH;AAChH,kDAAuD;AACvD,4DAO8B;AAC9B,iDAAkE;AAsElE,iGAAiG;AAEjG;;;;;GAKG;AACH,MAAM,QAAQ;IACS;IAArB,YAAqB,IAAY;QAAZ,SAAI,GAAJ,IAAI,CAAQ;IAAG,CAAC;CACtC;AAQD,iGAAiG;AAEjG;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,IAAc;IAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,QAAQ,yBAAyB,CAAC,CAAC;IACnG,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5E,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC;AACnE,CAAC;AAYD,MAAM,WAAW;IAMc;IAL7B,yEAAyE;IACxD,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxD,0DAA0D;IACjD,SAAS,GAAsB,EAAE,CAAC;IAE3C,YAA6B,IAAc;QAAd,SAAI,GAAJ,IAAI,CAAU;IAAG,CAAC;IAE/C,+FAA+F;IAEvF,QAAQ,CAAC,KAAqB;QACpC,MAAM,CAAC,GAAG,IAAA,uCAAmB,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC9D,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,gBAAgB,KAAK,CAAC,IAAI,sEAAsE;gBAC9F,yEAAyE,CAC5E,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,6EAA6E;IACrE,SAAS,CAAC,KAAqB;QACrC,MAAM,KAAK,GAAG,IAAA,+BAAW,EAAC,KAAK,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,IAAA,sCAAkB,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC;QACvE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,gBAAgB,KAAK,CAAC,IAAI,0CAA0C,KAAK,IAAI,CAAC,CAAC;QACjG,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,SAAS,CAAC,KAAqB,EAAE,MAAc;QACrD,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,gBAAgB,KAAK,CAAC,IAAI,qBAAqB,MAAM,wCAAwC;gBAC3F,sDAAsD,CACzD,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,mGAAmG;IAC3F,UAAU,CAAC,KAAqB,EAAE,MAAc;QACtD,OAAO,QAAQ,CAAC,IAAA,2BAAiB,EAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,8FAA8F;IAE9F,MAAM,CAAC,IAAY,EAAE,QAAkB;QACrC,gBAAgB,CAAC,IAAI,EAAE,kBAAkB,IAAI,GAAG,CAAC,CAAC;QAClD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1E,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAClB,IAAI;YACJ,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7D,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChD,CAAC,CAAC;QACH,OAAO,CAAC,CAAC;IACX,CAAC;IAEO,KAAK,CAAC,IAAY,EAAE,QAAkB;QAC5C,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtB,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACnC,KAAK,QAAQ,CAAC;YACd,KAAK,QAAQ,CAAC;YACd,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACpC,KAAK,YAAY,CAAC;YAClB,KAAK,YAAY,CAAC;YAClB,KAAK,YAAY;gBACf,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,8FAA8F;IAE9F;;;;;OAKG;IACK,YAAY,CAAC,QAAsB;QACzC,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAC9C,OAAO,IAAA,mCAAoB,GAAE,CAAC;IAChC,CAAC;IAED;;;;;;;;OAQG;IACK,IAAI,CAAC,CAAwB,EAAE,MAAmB;QACxD,IAAI,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC;QACvD,gBAAgB,CAAC,CAAC,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACtD,OAAO,EAAE,IAAI,EAAE,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;IACzC,CAAC;IAEO,IAAI,CAAC,IAAY,EAAE,QAAsB;QAC/C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,SAAS,GAAG,IAAA,+BAAW,EAAC,KAAK,CAAC,CAAC;QACrC,gGAAgG;QAChG,kFAAkF;QAClF,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,SAAS,CAAC;QAChD,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9D,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,MAAM,WAAW,GACf,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAE5F,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvC,IAAI,OAAO,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CACb,mBAAmB,IAAI,yEAAyE;gBAC9F,8FAA8F;gBAC9F,yFAAyF,CAC5F,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAgB,EAAE,CAAC;QAC/B,KAAK,MAAM,CAAC,IAAI,KAAK;YAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QACjE,iGAAiG;QACjG,sDAAsD;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;QACxF,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAElD,kGAAkG;QAClG,kGAAkG;QAClG,MAAM,QAAQ,GAAG,IAAA,8BAAa,EAAC;YAC7B,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;YAC1B,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;YAC7B,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;YACjE,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrE,GAAG,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACvF,CAAC,CAAC;QAExB,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC;QACxC,MAAM,IAAI,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,MAAM,GAC3G,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EACzD,EAAE,CAAC;QAEH,MAAM,MAAM,GAAG,KAAK,CAAC,IAAA,uBAAa,EAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACxG,MAAM,UAAU,GAAG,mBAAmB,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAE5D,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACpD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAClE,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;YAC1B,OAAO;gBACL,IAAI;gBACJ,MAAM;gBACN,UAAU,EAAE,GAAG,OAAO,IAAI;gBAC1B,KAAK,EAAE,CAAC,SAAS,GAAG,KAAK,OAAO,sBAAsB,IAAI,QAAQ,OAAO,KAAK,EAAE,UAAU,GAAG,GAAG,CAAC;aAClG,CAAC;QACJ,CAAC;QAED,iGAAiG;QACjG,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,SAAS,SAAS,iCAAiC,IAAI,IAAI,CAAC,CAAC;QACxE,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,IAAI,GAAG,CAAC,CAAC;QAC/G,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QACrE,4FAA4F;QAC5F,2DAA2D;QAC3D,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,SAAS,KAAK,CAAC,WAAW,KAAK,OAAO,QAAQ,KAAK,CAAC,YAAY,OAAO,OAAO,KAAK,CAAC;QAC9G,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;QAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,IAAI,EAAE,KAAK,EAAE,CAAC;IAC7D,CAAC;IAED;;;;OAIG;IACK,gBAAgB,CAAC,KAAqB,EAAE,KAA2B;QACzE,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5B,MAAM,CAAC,GAAG,IAAA,sBAAY,EAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvE,MAAM,IAAI,GAAG,UAAU,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAC1F,OAAO,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,eAAe,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;QACnG,CAAC,CAAC,CAAC;QACH,OAAO,aAAa,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IAC5C,CAAC;IAED;;;;;OAKG;IACK,SAAS,CACf,KAAqB,EACrB,SAAiB,EACjB,SAAuC,EACvC,UAA2E,EAC3E,KAAe,EACf,KAA+B,EAC/B,MAAe,EACf,EAAU;QAEV,IAAI,GAAG,GAAG,SAAS,CAAC;QACpB,MAAM,GAAG,GAAiC,EAAE,GAAG,SAAS,EAAE,CAAC;QAC3D,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACrE,MAAM,EAAE,GAAG,IAAA,4BAAiB,EAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;YAC/D,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC;YACzC,KAAK,CAAC,IAAI,CAAC,SAAS,OAAO,4BAA4B,GAAG,KAAK,SAAS,CAAC,IAAA,wBAAa,EAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YACjG,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACjC,+FAA+F;YAC/F,6FAA6F;YAC7F,8FAA8F;YAC9F,+FAA+F;YAC/F,0FAA0F;YAC1F,MAAM,KAAK,GAAG,IAAA,wBAAa,EAAC,EAAE,CAAC,CAAC;YAChC,MAAM,UAAU,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5E,KAAK,CAAC,IAAI,CAAC,SAAS,QAAQ,iCAAiC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,OAAO,oBAAoB,MAAM,GAAG,UAAU,IAAI,CAAC,CAAC;YACpI,IAAI,SAAS,GAAG,QAAQ,CAAC;YACzB,IAAI,QAAQ,GAAG,KAAK,CAClB,IAAA,uBAAa,EAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,cAAc,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,OAAO,EAChH,GAAG,EAAE,cAAc,GAAG,CAAC,IAAI,GAAG,CAC/B,CAAC;YACF,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;gBACzI,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC;gBACtB,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC;YACjC,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;YACvC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC;YACjF,WAAW,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC;YACxC,YAAY,GAAG,YAAY,GAAG,KAAK,SAAS,KAAK,SAAS,CAAC,IAAA,wBAAa,EAAC,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,IAAA,wBAAa,EAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,MAAM,GAAG,CAAC;YACjJ,KAAK,CAAC,IAAI,CAAC,SAAS,WAAW,mBAAmB,YAAY,GAAG,CAAC,CAAC;YACnE,GAAG,GAAG,WAAW,CAAC;QACpB,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5C,CAAC;IAED,gGAAgG;IACxF,YAAY,CAAC,KAAqB,EAAE,IAAY,EAAE,EAAU;QAClE,MAAM,GAAG,GAAG,IAAA,4BAAe,EAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC;QACvE,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE,YAAY,KAAK,CAAC,IAAI,2BAA2B,IAAI,iCAAiC,CAAC,CAAC;QACrH,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAChC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE,eAAe,IAAI,0EAA0E,CAAC,CAAC;QAC5H,CAAC;QACD,OAAO,IAAA,kCAAc,EAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;IAED,+FAA+F;IAEvF,KAAK,CAAC,IAAY,EAAE,QAA0D;QACpF,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC7B,MAAM,KAAK,GAAG,IAAA,+BAAW,EAAC,KAAK,CAAC,CAAC;QACjC,MAAM,MAAM,GAAgB,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QACrC,MAAM,KAAK,GAA4B,EAAE,KAAK,EAAE,CAAC;QACjD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAE7C,IAAI,SAAyC,CAAC;QAC9C,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC/B,SAAS,GAAG,QAAQ,CAAC;YACrB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YACjE,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBACtC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClD,KAAK,CAAC,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,IAAI,QAAQ,CAAC;YACjE,CAAC;QACH,CAAC;aAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtC,SAAS,GAAG,QAAQ,CAAC;YACrB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAC3D,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,IAAI,GAAG,CAAC,CAAC;QACpF,CAAC;aAAM,CAAC;YACN,SAAS,GAAG,QAAQ,CAAC;YACrB,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,IAAI,GAAG,CAAC,CAAC;QACpF,CAAC;QAED,MAAM,EAAE,GAAG,IAAA,qBAAgB,EAAC,EAAE,SAAS,EAAE,KAAK,EAA4C,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACrI,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC1D,OAAO;YACL,IAAI;YACJ,MAAM;YACN,UAAU,EAAE,GAAG,OAAO,IAAI;YAC1B,KAAK,EAAE;gBACL,SAAS,GAAG,KAAK,OAAO,sBAAsB,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,SAAS,KAAK,SAAS,eAAe,OAAO,KAAK;gBACnK,UAAU,GAAG,GAAG;aACjB;SACF,CAAC;IACJ,CAAC;IAED,yGAAyG;IACjG,UAAU,CAChB,KAAqB,EACrB,QAAiC,EACjC,MAAwB,EACxB,KAA8B,EAC9B,MAAmB;QAEnB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,MAAM,WAAW,CAAC,CAAC;QACnG,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,gBAAgB,CAAC,CAAC,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;YACpD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACvE,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,SAAS,CAAC,KAAqB,EAAE,KAA2B,EAAE,MAAmB,EAAE,EAAU;QACnG,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE,oDAAoD,CAAC,CAAC;QACzG,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC9B,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;YACpE,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW;gBAAE,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;YACvE,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACjD,MAAM,IAAI,KAAK,CACb,SAAS,EAAE,iFAAiF;oBAC1F,0CAA0C,CAAC,CAAC,IAAI,gCAAgC,CACnF,CAAC;YACJ,CAAC;YACD,MAAM,GAAG,GAAG,CAAqB,CAAC;YAClC,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE,+EAA+E,CAAC,CAAC;YAC9G,CAAC;YACD,IAAI,GAAG,CAAC,EAAE,KAAK,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE,6DAA6D,CAAC,CAAC;YACjH,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,cAAc,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;YACxD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC3E,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACxE,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;IAC1B,CAAC;IAED,8FAA8F;IAEtF,KAAK,CAAC,IAAY,EAAE,QAAsE;QAChG,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC3E,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC7B,gBAAgB,CAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC;QAClE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,UAAU,CAAC;QAC5C,MAAM,MAAM,GAAgB,EAAE,CAAC;QAC/B,MAAM,KAAK,GAA4B,EAAE,KAAK,EAAE,IAAA,+BAAW,EAAC,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QACpF,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAEtD,oGAAoG;QACpG,oGAAoG;QACpG,MAAM,WAAW,GAAG,CAAC,MAAc,EAAY,EAAE;YAC/C,IAAI,CAAC,EAAE;gBAAE,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM,CAAC,GAAG,GAAG,QAAQ,CAAC,KAAK,IAAI,MAAM,EAAE,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACtE,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,UAAU,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClH,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACnC,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,OAAO;gBAAE,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YACxE,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBACtC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClD,KAAK,CAAC,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,IAAI,QAAQ,CAAC;YACjE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,UAAU;gBAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YACxE,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,OAAO;gBAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,CAAC,EAAE;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAEnG,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvE,MAAM,EAAE,GAAG,IAAA,qBAAgB,EAAC,EAAE,SAAS,EAAE,KAAK,EAA4C,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACrI,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5F,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC1D,OAAO;YACL,IAAI;YACJ,MAAM;YACN,UAAU,EAAE,GAAG,OAAO,IAAI;YAC1B,KAAK,EAAE;gBACL,SAAS,GAAG,KAAK,OAAO,sBAAsB,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAC,SAAS,KAAK,SAAS,eAAe,OAAO,KAAK;gBACxJ,UAAU,GAAG,GAAG;aACjB;SACF,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,UAAU,CAAC,IAAY,EAAE,QAA4B;QAC3D,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC7B,gBAAgB,CAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC;QAClE,MAAM,MAAM,GAAgB,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QAChH,MAAM,KAAK,GAA4B;YACrC,KAAK,EAAE,IAAA,+BAAW,EAAC,KAAK,CAAC;YACzB,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE;SACxF,CAAC;QACF,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACtD,MAAM,EAAE,GAAG,IAAA,qBAAgB,EAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAA4C,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/I,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;QACnE,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC1D,OAAO;YACL,IAAI;YACJ,MAAM;YACN,UAAU,EAAE,GAAG,OAAO,IAAI;YAC1B,KAAK,EAAE;gBACL,SAAS,GAAG,KAAK,OAAO,sBAAsB,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAC,SAAS,KAAK,SAAS,eAAe,OAAO,KAAK;gBAC5K,UAAU,GAAG,GAAG;aACjB;SACF,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,cAAc,CAAC,KAAqB,EAAE,SAAwC,EAAE,KAA8B;QACpH,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO;QACpC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,IAAA,0BAAa,EAAC,KAAK,CAAC,CAAC;QAClC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI;YAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC1D,CAAC;IAED,+FAA+F;IACvF,YAAY,CAAC,IAAY,EAAE,KAAqB,EAAE,SAAwC;QAChG,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC5D,OAAO,IAAI,CAAC,gBAAgB,CAC1B,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAClB,KAAK,CAAC,IAAA,uBAAa,EAAC,IAAA,+BAAW,EAAC,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,IAAI,aAAa,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CACxH,CAAC;IACJ,CAAC;IAED,oGAAoG;IAC5F,UAAU,CAAC,IAAY,EAAE,KAAqB,EAAE,OAA0B;QAChF,MAAM,GAAG,GAAiC,EAAE,CAAC;QAC7C,KAAK,MAAM,CAAC,IAAI,OAAO;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAA,2BAAiB,EAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9E,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC3D,CAAC;IAED,8FAA8F;IAE9F,sFAAsF;IAC9E,kBAAkB,CAAC,KAAqB,EAAE,CAAY,EAAE,MAAmB;QACjF,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACjD,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;gBACxB,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS;oBAAE,SAAS;gBACpC,gBAAgB,CAAC,CAAC,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;gBACpD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC3E,CAAC;YACD,OAAO;QACT,CAAC;QACD,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,8BAA8B;QAC/D,gBAAgB,CAAC,CAAC,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACtF,CAAC;IAED;;;;;OAKG;IACK,UAAU,CAAC,KAAqB,EAAE,KAA2B;QACnE,MAAM,GAAG,GAAmC,EAAE,CAAC;QAC/C,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,KAAqB,EAAQ,EAAE;YACvD,+FAA+F;YAC/F,oGAAoG;YACpG,IAAI,CAAC,GAAG,GAAG,CAAC;YACZ,OAAO,CAAC,IAAI,GAAG;gBAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YAChD,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QACjB,CAAC,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACxB,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACpB,SAAS;YACX,CAAC;YACD,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC3B,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,cAAc,EAAE,IAAI,CAAC,CAAC;gBACrC,SAAS;YACX,CAAC;YACD,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACxB,GAAG,CAAC,YAAY,EAAE,IAAI,mBAAQ,CAAC,IAAA,+BAAW,EAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,IAAI,CAA8B,CAAC,CAAC;gBAC/H,SAAS;YACX,CAAC;YACD,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC1B,MAAM,WAAW,GAAG,IAAA,+BAAW,EAAC,KAAK,CAAC,CAAC;gBACvC,MAAM,GAAG,GAAG,IAAI,qBAAU,CACxB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,EACjE,IAAA,+BAAW,EAAC,CAAC,CAAC,KAAK,CAAC,EACpB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,IAAA,+BAAW,EAAC,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,EACzE,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,EAC1B,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CACjC,CAAC;gBACF,GAAG,CAAC,cAAc,EAAE,GAAgC,CAAC,CAAC;gBACtD,SAAS;YACX,CAAC;YACD,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACpB,GAAG,CAAC,IAAA,4BAAe,EAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAA8B,CAAC,CAAC;gBACtG,SAAS;YACX,CAAC;YACD,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACzB,+FAA+F;gBAC/F,0FAA0F;gBAC1F,GAAG,CACD,IAAA,6BAAgB,EAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAA,+BAAW,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EACzG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAA8B,CAC3F,CAAC;gBACF,SAAS;YACX,CAAC;YACD,MAAM,GAAG,GAAG,CAAqB,CAAC;YAClC,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAA8B,CAAC;YACjE,IAAI,GAAG,CAAC,EAAE,KAAK,IAAI;gBAAE,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;;gBACrC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,GAAsB,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACK,cAAc,CAAC,KAAqB,EAAE,OAA0B;QACtE,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,UAAU;YAAE,OAAO,SAAS,CAAC;QACvD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,mCAAgB,EAAC,CAAC,IAAA,mBAAc,EAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1F,CAAC;IAED;;;;OAIG;IACK,aAAa,CAAC,KAAqB,EAAE,CAAmB;QAC9D,gBAAgB,CAAC,CAAC,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QACpD,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC,OAAO,CAAC,MAAM,kCAAkC,CAAC,CAAC;QACzI,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YACrC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACrG,CAAC;QACD,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QAClF,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,yGAAyG;IACjG,WAAW,CAAC,CAAsC,EAAE,MAAsB;QAChF,MAAM,QAAQ,GAAG,IAAA,+BAAW,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,WAAW,GAAG,IAAA,+BAAW,EAAC,MAAM,CAAC,CAAC;QACxC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAkB,EAAE,EAAE;YACxC,MAAM,MAAM,GAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;YACxE,gGAAgG;YAChG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,CAAC,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;gBACvC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,sBAAW,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC;YACpG,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAe,CAAC,EAAE,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,8FAA8F;IAE9F,kFAAkF;IAC1E,gBAAgB;QACtB,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3F,CAAC;IAED,wGAAwG;IAChG,gBAAgB,CAAC,IAAY,EAAE,GAAiC;QACtE,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;aAC7B,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;aACvE,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,gEAAgE,IAAI,GAAG,CAAC,CAAC;QAC3F,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gGAAgG;IACxF,MAAM,CAAC,CAAe,EAAE,QAAgB;QAC9C,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,QAAQ,CAAC,CAAa,CAAC,CAAC;QAC1D,IAAI,KAAK,IAAI,CAAC;YAAE,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAmB,EAAE,QAAQ,CAAC,SAAS,CAAC;QAChF,IAAI,KAAK,IAAI,CAAC;YAAE,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAmB,EAAE,QAAQ,CAAC,IAAI,CAAC;QAC3E,IAAI,KAAK,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,GAAmC,CAAC,CAAC;QACpG,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC;IAClF,CAAC;IAED,8FAA8F;IAE9F,MAAM,CAAC,OAA0B;QAC/B,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/H,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACrG,MAAM,IAAI,GAAG;YACX,iGAAiG;YACjG,IAAI;YACJ,mGAAmG;YACnG,8FAA8F;YAC9F,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,6EAA6E;YACpG,8CAA8C;YAC9C,oBAAoB,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,+BAA+B;YACxH,sBAAsB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG;YACpD,EAAE;SACH,CAAC;QACF,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,aAAa,IAAI,OAAO,IAAI,KAAK,CAAC,CAAC;QAC5F,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC7B,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnE,OAAO,sBAAsB,CAAC,CAAC,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,UAAU,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QACtH,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IACtH,CAAC;CACF;AAED,iGAAiG;AAEjG,sGAAsG;AACtG,MAAM,OAAO,GAAoE;IAC/E,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,GAAG;IACP,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,GAAG;IACP,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,MAAM;CACb,CAAC;AAEF,kFAAkF;AAClF,SAAS,eAAe,CAAC,CAAY;IACnC,OAAO,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;AACzE,CAAC;AAED,yGAAyG;AACzG,SAAS,UAAU,CAAC,CAAY;IAC9B,OAAO,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC;AACnD,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,UAAU,CAAC,IAAa;IAC/B,IAAI,IAAI,YAAY,QAAQ;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC;IAC/C,MAAM,GAAG,GAAI,IAA6C,EAAE,YAAY,EAAE,GAAG,CAAC;IAC9E,IAAI,GAAG,YAAY,QAAQ;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC;IAC7C,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,gGAAgG;AAChG,SAAS,iBAAiB,CAAC,CAAU;IACnC,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,aAAa,IAAK,CAA6B,CAAC;AAChG,CAAC;AAED,6FAA6F;AAC7F,SAAS,KAAK,CAAC,IAAuC;IACpD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC;IACtC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;IACrB,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;AAC1H,CAAC;AAED,wDAAwD;AACxD,SAAS,KAAK,CAAC,CAAe,EAAE,EAAU;IACxC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,GAAoB,CAAC,CAAC,CAAC,SAAS,CAAC;IACpG,MAAM,GAAG,GAAG,GAAG,KAAK,SAAS,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,IAAI,GAAG,CAAC,CAAC,CAAE,GAAG,CAAC,GAAoC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjJ,IAAI,GAAG,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE,4CAA4C,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACnH,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE,oGAAoG,CAAC,CAAC;IACnI,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,sFAAsF;AACtF,SAAS,QAAQ,CAAC,CAAW;IAC3B,QAAQ,CAAC,EAAE,CAAC;QACV,KAAK,KAAK;YACR,OAAO,KAAK,CAAC;QACf,KAAK,OAAO;YACV,OAAO,OAAO,CAAC;QACjB,KAAK,MAAM;YACT,OAAO,SAAS,CAAC;QACnB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;IACpB,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAkC;IAC7D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AACjH,CAAC;AAED;;;;GAIG;AACH,SAAS,UAAU,CAAC,WAA8B,EAAE;IAClD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAiB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC;IACxC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,KAAK,CAAC,CAAS;IACtB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,SAAS,CAAC,KAAwB;IACzC,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAC5C,CAAC;AAED,SAAS,IAAI,CAAC,CAAS;IACrB,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;AAC/E,CAAC;AAED,wFAAwF;AACxF,SAAS,QAAQ,CAAC,CAAS;IACzB,OAAO,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY,EAAE,EAAU;IAChD,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE,uCAAuC,CAAC,CAAC;IACtE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../../src/scp/emit/emitter.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEG;;AAsHH,gDAMC;AAzHD,6CAA2G;AAE3G,8DAA+G;AAC/G,gDAAkD;AAClD,sDAA0E;AAC1E,sCAAiE;AACjE,gDAAmD;AACnD,wCAAuF;AACvF,kEAA+D;AAC/D,0CAAgH;AAChH,kDAAuD;AACvD,4DAQ8B;AAC9B,iDAAkE;AAsElE,iGAAiG;AAEjG;;;;;GAKG;AACH,MAAM,QAAQ;IACS;IAArB,YAAqB,IAAY;QAAZ,SAAI,GAAJ,IAAI,CAAQ;IAAG,CAAC;CACtC;AAQD,iGAAiG;AAEjG;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,IAAc;IAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,QAAQ,yBAAyB,CAAC,CAAC;IACnG,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5E,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC;AACnE,CAAC;AAYD,MAAM,WAAW;IAMc;IAL7B,yEAAyE;IACxD,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxD,0DAA0D;IACjD,SAAS,GAAsB,EAAE,CAAC;IAE3C,YAA6B,IAAc;QAAd,SAAI,GAAJ,IAAI,CAAU;IAAG,CAAC;IAE/C,+FAA+F;IAEvF,QAAQ,CAAC,KAAqB;QACpC,MAAM,CAAC,GAAG,IAAA,uCAAmB,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC9D,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,gBAAgB,KAAK,CAAC,IAAI,sEAAsE;gBAC9F,yEAAyE,CAC5E,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,6EAA6E;IACrE,SAAS,CAAC,KAAqB;QACrC,MAAM,KAAK,GAAG,IAAA,+BAAW,EAAC,KAAK,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,IAAA,sCAAkB,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC;QACvE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,gBAAgB,KAAK,CAAC,IAAI,0CAA0C,KAAK,IAAI,CAAC,CAAC;QACjG,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,SAAS,CAAC,KAAqB,EAAE,MAAc;QACrD,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,gBAAgB,KAAK,CAAC,IAAI,qBAAqB,MAAM,wCAAwC;gBAC3F,sDAAsD,CACzD,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,mGAAmG;IAC3F,UAAU,CAAC,KAAqB,EAAE,MAAc;QACtD,OAAO,QAAQ,CAAC,IAAA,2BAAiB,EAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;IAED;;;;;;;;;OASG;IACK,IAAI,CAAC,KAAqB;QAChC,MAAM,EAAE,GAAG,IAAA,gCAAY,EAAC,KAAK,CAAC,CAAC;QAC/B,OAAO,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACxC,CAAC;IAED,8FAA8F;IAE9F,MAAM,CAAC,IAAY,EAAE,QAAkB;QACrC,gBAAgB,CAAC,IAAI,EAAE,kBAAkB,IAAI,GAAG,CAAC,CAAC;QAClD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1E,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAClB,IAAI;YACJ,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7D,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChD,CAAC,CAAC;QACH,OAAO,CAAC,CAAC;IACX,CAAC;IAEO,KAAK,CAAC,IAAY,EAAE,QAAkB;QAC5C,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtB,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACnC,KAAK,QAAQ,CAAC;YACd,KAAK,QAAQ,CAAC;YACd,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACpC,KAAK,YAAY,CAAC;YAClB,KAAK,YAAY,CAAC;YAClB,KAAK,YAAY;gBACf,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,8FAA8F;IAE9F;;;;;OAKG;IACK,YAAY,CAAC,QAAsB;QACzC,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAC9C,OAAO,IAAA,mCAAoB,GAAE,CAAC;IAChC,CAAC;IAED;;;;;;;;OAQG;IACK,IAAI,CAAC,CAAwB,EAAE,MAAmB;QACxD,IAAI,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC;QACvD,gBAAgB,CAAC,CAAC,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACtD,OAAO,EAAE,IAAI,EAAE,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;IACzC,CAAC;IAEO,IAAI,CAAC,IAAY,EAAE,QAAsB;QAC/C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,SAAS,GAAG,IAAA,+BAAW,EAAC,KAAK,CAAC,CAAC;QACrC,gGAAgG;QAChG,kFAAkF;QAClF,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,SAAS,CAAC;QAChD,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9D,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,MAAM,WAAW,GACf,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAE5F,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;QACnC,kGAAkG;QAClG,iGAAiG;QACjG,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAE1C,MAAM,MAAM,GAAgB,EAAE,CAAC;QAC/B,KAAK,MAAM,CAAC,IAAI,KAAK;YAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QACjE,iGAAiG;QACjG,sDAAsD;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;QACxF,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAElD,MAAM,QAAQ,GAAG,IAAA,8BAAa,EAAC;YAC7B,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;YAC1B,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;YAC7B,iGAAiG;YACjG,6FAA6F;YAC7F,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YACvE,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrE,GAAG,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACvF,CAAC,CAAC;QAExB,mGAAmG;QACnG,iGAAiG;QACjG,oGAAoG;QACpG,gGAAgG;QAChG,+FAA+F;QAC/F,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAChG,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;QACjH,MAAM,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC;YAC9E,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACnB,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtD,CAAC,EAAE,CAAC;QAEL,MAAM,MAAM,GAAG,KAAK,CAAC,IAAA,uBAAa,EAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACxG,MAAM,UAAU,GAAG,mBAAmB,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAE5D,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACpD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAClE,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;YAC1B,OAAO;gBACL,IAAI;gBACJ,MAAM;gBACN,UAAU,EAAE,GAAG,OAAO,IAAI;gBAC1B,KAAK,EAAE,CAAC,SAAS,GAAG,KAAK,OAAO,sBAAsB,IAAI,QAAQ,OAAO,KAAK,EAAE,UAAU,GAAG,GAAG,CAAC;aAClG,CAAC;QACJ,CAAC;QAED,iGAAiG;QACjG,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,SAAS,SAAS,iCAAiC,IAAI,IAAI,CAAC,CAAC;QACxE,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,IAAI,GAAG,CAAC,CAAC;QACvG,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QACrE,4FAA4F;QAC5F,2DAA2D;QAC3D,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,SAAS,KAAK,CAAC,WAAW,KAAK,OAAO,QAAQ,KAAK,CAAC,YAAY,OAAO,OAAO,KAAK,CAAC;QAC9G,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;QAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,IAAI,EAAE,KAAK,EAAE,CAAC;IAC7D,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACK,gBAAgB,CAAC,KAAqB,EAAE,QAAsC,EAAE,QAAsB;QAC5G,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC/B,MAAM,CAAC,GAAG,IAAA,sBAAY,EAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvE,OAAO,cAAc,CAAC,CAAC,KAAK,mBAAmB,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QACpH,CAAC,CAAC,CAAC;QACH,OAAO,CACL,aAAa,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI;YAChG,gBAAgB,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CACpE,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,SAAS,CACf,KAAqB,EACrB,SAAiB,EACjB,SAAuC,EACvC,UAA2E,EAC3E,KAAe,EACf,KAA+B,EAC/B,EAAU;QAEV,IAAI,GAAG,GAAG,SAAS,CAAC;QACpB,MAAM,GAAG,GAAiC,EAAE,GAAG,SAAS,EAAE,CAAC;QAC3D,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACrE,MAAM,EAAE,GAAG,IAAA,4BAAiB,EAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;YAC/D,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC;YACzC,KAAK,CAAC,IAAI,CAAC,SAAS,OAAO,4BAA4B,GAAG,KAAK,SAAS,CAAC,IAAA,wBAAa,EAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YACjG,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACjC,+FAA+F;YAC/F,iGAAiG;YACjG,gGAAgG;YAChG,kGAAkG;YAClG,4FAA4F;YAC5F,iBAAiB;YACjB,MAAM,KAAK,GAAG,IAAA,wBAAa,EAAC,EAAE,CAAC,CAAC;YAChC,iGAAiG;YACjG,gGAAgG;YAChG,+FAA+F;YAC/F,+FAA+F;YAC/F,uFAAuF;YACvF,MAAM,SAAS,GACb,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,KAAK,mBAAmB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YACpI,4FAA4F;YAC5F,sFAAsF;YACtF,kGAAkG;YAClG,8FAA8F;YAC9F,KAAK,CAAC,IAAI,CACR,SAAS,QAAQ,iCAAiC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,OAAO,IAAI,WAAW,CAAC;gBAC1F,GAAG,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7D,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACzD,CAAC,IAAI,CACP,CAAC;YACF,IAAI,SAAS,GAAG,QAAQ,CAAC;YACzB,IAAI,QAAQ,GAAG,KAAK,CAClB,IAAA,uBAAa,EAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,cAAc,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,OAAO,EAChH,GAAG,EAAE,cAAc,GAAG,CAAC,IAAI,GAAG,CAC/B,CAAC;YACF,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;gBACjI,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC;gBACtB,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC;YACjC,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;YACvC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC;YACjF,WAAW,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC;YACxC,YAAY,GAAG,YAAY,GAAG,KAAK,SAAS,KAAK,SAAS,CAAC,IAAA,wBAAa,EAAC,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,IAAA,wBAAa,EAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,MAAM,GAAG,CAAC;YACjJ,KAAK,CAAC,IAAI,CAAC,SAAS,WAAW,mBAAmB,YAAY,GAAG,CAAC,CAAC;YACnE,GAAG,GAAG,WAAW,CAAC;QACpB,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5C,CAAC;IAED,gGAAgG;IACxF,YAAY,CAAC,KAAqB,EAAE,IAAY,EAAE,EAAU;QAClE,MAAM,GAAG,GAAG,IAAA,4BAAe,EAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC;QACvE,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE,YAAY,KAAK,CAAC,IAAI,2BAA2B,IAAI,iCAAiC,CAAC,CAAC;QACrH,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAChC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE,eAAe,IAAI,0EAA0E,CAAC,CAAC;QAC5H,CAAC;QACD,OAAO,IAAA,kCAAc,EAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;IAED,+FAA+F;IAEvF,KAAK,CAAC,IAAY,EAAE,QAA0D;QACpF,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC7B,MAAM,KAAK,GAAG,IAAA,+BAAW,EAAC,KAAK,CAAC,CAAC;QACjC,MAAM,MAAM,GAAgB,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QACrC,MAAM,KAAK,GAA4B,EAAE,KAAK,EAAE,CAAC;QACjD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAE7C,IAAI,SAAyC,CAAC;QAC9C,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC/B,SAAS,GAAG,QAAQ,CAAC;YACrB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YACjE,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBACtC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClD,KAAK,CAAC,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,IAAI,QAAQ,CAAC;YACjE,CAAC;QACH,CAAC;aAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtC,SAAS,GAAG,QAAQ,CAAC;YACrB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAC3D,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,IAAI,GAAG,CAAC,CAAC;QACpF,CAAC;aAAM,CAAC;YACN,SAAS,GAAG,QAAQ,CAAC;YACrB,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,IAAI,GAAG,CAAC,CAAC;QACpF,CAAC;QAED,MAAM,EAAE,GAAG,IAAA,qBAAgB,EAAC,EAAE,SAAS,EAAE,KAAK,EAA4C,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACrI,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC1D,OAAO;YACL,IAAI;YACJ,MAAM;YACN,UAAU,EAAE,GAAG,OAAO,IAAI;YAC1B,KAAK,EAAE;gBACL,SAAS,GAAG,KAAK,OAAO,sBAAsB,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,KAAK,SAAS,EAAE,EAAE,CAAC,QAAQ,OAAO,KAAK;gBAChN,UAAU,GAAG,GAAG;aACjB;SACF,CAAC;IACJ,CAAC;IAED,yGAAyG;IACjG,UAAU,CAChB,KAAqB,EACrB,QAAiC,EACjC,MAAwB,EACxB,KAA8B,EAC9B,MAAmB;QAEnB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,MAAM,WAAW,CAAC,CAAC;QACnG,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,gBAAgB,CAAC,CAAC,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;YACpD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACvE,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,SAAS,CAAC,KAAqB,EAAE,KAA2B,EAAE,MAAmB,EAAE,EAAU;QACnG,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE,oDAAoD,CAAC,CAAC;QACzG,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC9B,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;YACpE,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW;gBAAE,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;YACvE,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACjD,MAAM,IAAI,KAAK,CACb,SAAS,EAAE,iFAAiF;oBAC1F,0CAA0C,CAAC,CAAC,IAAI,gCAAgC,CACnF,CAAC;YACJ,CAAC;YACD,MAAM,GAAG,GAAG,CAAqB,CAAC;YAClC,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE,+EAA+E,CAAC,CAAC;YAC9G,CAAC;YACD,IAAI,GAAG,CAAC,EAAE,KAAK,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE,6DAA6D,CAAC,CAAC;YACjH,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,cAAc,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;YACxD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC3E,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACxE,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;IAC1B,CAAC;IAED,8FAA8F;IAEtF,KAAK,CAAC,IAAY,EAAE,QAAsE;QAChG,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC3E,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC7B,gBAAgB,CAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC;QAClE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,UAAU,CAAC;QAC5C,MAAM,MAAM,GAAgB,EAAE,CAAC;QAC/B,MAAM,KAAK,GAA4B,EAAE,KAAK,EAAE,IAAA,+BAAW,EAAC,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QACpF,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAEtD,oGAAoG;QACpG,oGAAoG;QACpG,MAAM,WAAW,GAAG,CAAC,MAAc,EAAY,EAAE;YAC/C,IAAI,CAAC,EAAE;gBAAE,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM,CAAC,GAAG,GAAG,QAAQ,CAAC,KAAK,IAAI,MAAM,EAAE,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACtE,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,UAAU,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClH,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACnC,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,OAAO;gBAAE,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YACxE,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBACtC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClD,KAAK,CAAC,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,IAAI,QAAQ,CAAC;YACjE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,UAAU;gBAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YACxE,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,OAAO;gBAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,CAAC,EAAE;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAEnG,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvE,MAAM,EAAE,GAAG,IAAA,qBAAgB,EAAC,EAAE,SAAS,EAAE,KAAK,EAA4C,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACrI,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5F,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC1D,OAAO;YACL,IAAI;YACJ,MAAM;YACN,UAAU,EAAE,GAAG,OAAO,IAAI;YAC1B,KAAK,EAAE;gBACL,SAAS,GAAG,KAAK,OAAO,sBAAsB,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,KAAK,SAAS,EAAE,EAAE,CAAC,QAAQ,OAAO,KAAK;gBACrM,UAAU,GAAG,GAAG;aACjB;SACF,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,UAAU,CAAC,IAAY,EAAE,QAA4B;QAC3D,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC7B,gBAAgB,CAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC;QAClE,MAAM,MAAM,GAAgB,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QAChH,MAAM,KAAK,GAA4B;YACrC,KAAK,EAAE,IAAA,+BAAW,EAAC,KAAK,CAAC;YACzB,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE;SACxF,CAAC;QACF,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACtD,MAAM,EAAE,GAAG,IAAA,qBAAgB,EAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAA4C,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/I,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;QACnE,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC1D,OAAO;YACL,IAAI;YACJ,MAAM;YACN,UAAU,EAAE,GAAG,OAAO,IAAI;YAC1B,KAAK,EAAE;gBACL,SAAS,GAAG,KAAK,OAAO,sBAAsB,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,KAAK,SAAS,EAAE,EAAE,CAAC,QAAQ,OAAO,KAAK;gBACzN,UAAU,GAAG,GAAG;aACjB;SACF,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,cAAc,CAAC,KAAqB,EAAE,SAAwC,EAAE,KAA8B;QACpH,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO;QACpC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,IAAA,0BAAa,EAAC,KAAK,CAAC,CAAC;QAClC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI;YAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC1D,CAAC;IAED,+FAA+F;IACvF,YAAY,CAAC,IAAY,EAAE,KAAqB,EAAE,SAAwC;QAChG,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC5D,OAAO,IAAI,CAAC,gBAAgB,CAC1B,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAClB,KAAK,CAAC,IAAA,uBAAa,EAAC,IAAA,+BAAW,EAAC,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,IAAI,aAAa,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CACxH,CAAC;IACJ,CAAC;IAED,oGAAoG;IAC5F,UAAU,CAAC,IAAY,EAAE,KAAqB,EAAE,OAA0B;QAChF,MAAM,GAAG,GAAiC,EAAE,CAAC;QAC7C,KAAK,MAAM,CAAC,IAAI,OAAO;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAA,2BAAiB,EAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9E,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC3D,CAAC;IAED,8FAA8F;IAE9F,sFAAsF;IAC9E,kBAAkB,CAAC,KAAqB,EAAE,CAAY,EAAE,MAAmB;QACjF,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACjD,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;gBACxB,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS;oBAAE,SAAS;gBACpC,gBAAgB,CAAC,CAAC,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;gBACpD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC3E,CAAC;YACD,OAAO;QACT,CAAC;QACD,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,8BAA8B;QAC/D,gBAAgB,CAAC,CAAC,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACtF,CAAC;IAED;;;;;OAKG;IACK,UAAU,CAAC,KAAqB,EAAE,KAA2B;QACnE,MAAM,GAAG,GAAmC,EAAE,CAAC;QAC/C,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,KAAqB,EAAQ,EAAE;YACvD,+FAA+F;YAC/F,oGAAoG;YACpG,IAAI,CAAC,GAAG,GAAG,CAAC;YACZ,OAAO,CAAC,IAAI,GAAG;gBAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YAChD,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QACjB,CAAC,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACxB,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACpB,SAAS;YACX,CAAC;YACD,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC3B,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,cAAc,EAAE,IAAI,CAAC,CAAC;gBACrC,SAAS;YACX,CAAC;YACD,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACxB,GAAG,CAAC,YAAY,EAAE,IAAI,mBAAQ,CAAC,IAAA,+BAAW,EAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,IAAI,CAA8B,CAAC,CAAC;gBAC/H,SAAS;YACX,CAAC;YACD,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC1B,MAAM,WAAW,GAAG,IAAA,+BAAW,EAAC,KAAK,CAAC,CAAC;gBACvC,MAAM,GAAG,GAAG,IAAI,qBAAU,CACxB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,EACjE,IAAA,+BAAW,EAAC,CAAC,CAAC,KAAK,CAAC,EACpB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,IAAA,+BAAW,EAAC,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,EACzE,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,EAC1B,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CACjC,CAAC;gBACF,GAAG,CAAC,cAAc,EAAE,GAAgC,CAAC,CAAC;gBACtD,SAAS;YACX,CAAC;YACD,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACpB,GAAG,CAAC,IAAA,4BAAe,EAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAA8B,CAAC,CAAC;gBACtG,SAAS;YACX,CAAC;YACD,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACzB,+FAA+F;gBAC/F,0FAA0F;gBAC1F,GAAG,CACD,IAAA,6BAAgB,EAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAA,+BAAW,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EACzG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAA8B,CAC3F,CAAC;gBACF,SAAS;YACX,CAAC;YACD,MAAM,GAAG,GAAG,CAAqB,CAAC;YAClC,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAA8B,CAAC;YACjE,IAAI,GAAG,CAAC,EAAE,KAAK,IAAI;gBAAE,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;;gBACrC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,GAAsB,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACK,cAAc,CAAC,KAAqB,EAAE,OAA0B;QACtE,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,UAAU;YAAE,OAAO,SAAS,CAAC;QACvD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,mCAAgB,EAAC,CAAC,IAAA,mBAAc,EAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1F,CAAC;IAED;;;;OAIG;IACK,aAAa,CAAC,KAAqB,EAAE,CAAmB;QAC9D,gBAAgB,CAAC,CAAC,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QACpD,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC,OAAO,CAAC,MAAM,kCAAkC,CAAC,CAAC;QACzI,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YACrC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACrG,CAAC;QACD,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QAClF,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,yGAAyG;IACjG,WAAW,CAAC,CAAsC,EAAE,MAAsB;QAChF,MAAM,QAAQ,GAAG,IAAA,+BAAW,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,WAAW,GAAG,IAAA,+BAAW,EAAC,MAAM,CAAC,CAAC;QACxC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAkB,EAAE,EAAE;YACxC,MAAM,MAAM,GAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;YACxE,gGAAgG;YAChG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,CAAC,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;gBACvC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,sBAAW,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC;YACpG,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAe,CAAC,EAAE,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,8FAA8F;IAE9F,kFAAkF;IAC1E,gBAAgB;QACtB,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3F,CAAC;IAED,wGAAwG;IAChG,gBAAgB,CAAC,IAAY,EAAE,GAAiC;QACtE,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;aAC7B,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;aACvE,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,gEAAgE,IAAI,GAAG,CAAC,CAAC;QAC3F,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gGAAgG;IACxF,MAAM,CAAC,CAAe,EAAE,QAAgB;QAC9C,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,QAAQ,CAAC,CAAa,CAAC,CAAC;QAC1D,IAAI,KAAK,IAAI,CAAC;YAAE,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAmB,EAAE,QAAQ,CAAC,SAAS,CAAC;QAChF,IAAI,KAAK,IAAI,CAAC;YAAE,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAmB,EAAE,QAAQ,CAAC,IAAI,CAAC;QAC3E,IAAI,KAAK,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,GAAmC,CAAC,CAAC;QACpG,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC;IAClF,CAAC;IAED,8FAA8F;IAE9F,MAAM,CAAC,OAA0B;QAC/B,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/H,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACrG,MAAM,IAAI,GAAG;YACX,iGAAiG;YACjG,IAAI;YACJ,mGAAmG;YACnG,8FAA8F;YAC9F,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,6EAA6E;YACpG,8CAA8C;YAC9C,oBAAoB,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,+BAA+B;YACxH,sBAAsB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG;YACpD,EAAE;SACH,CAAC;QACF,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,aAAa,IAAI,OAAO,IAAI,KAAK,CAAC,CAAC;QAC5F,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC7B,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnE,OAAO,sBAAsB,CAAC,CAAC,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,UAAU,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QACtH,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IACtH,CAAC;CACF;AAED,iGAAiG;AAEjG,sGAAsG;AACtG,MAAM,OAAO,GAAoE;IAC/E,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,GAAG;IACP,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,GAAG;IACP,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,MAAM;CACb,CAAC;AAEF,kFAAkF;AAClF,SAAS,eAAe,CAAC,CAAY;IACnC,OAAO,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;AACzE,CAAC;AAKD,yGAAyG;AACzG,SAAS,UAAU,CAAC,CAAY;IAC9B,OAAO,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC;AACnD,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAS,WAAW,CAAC,CASpB;IACC,IAAI,CAAC,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,YAAY,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACpH,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC;IACrF,OAAO,WAAW,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,KAAK,mBAAmB,CAAC,CAAC,YAAY,IAAI,MAAM,YAAY,CAAC,CAAC,KAAK,IAAI,MAAM,IAAI,CAAC;AAC3J,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,UAAU,CAAC,IAAa;IAC/B,IAAI,IAAI,YAAY,QAAQ;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC;IAC/C,MAAM,GAAG,GAAI,IAA6C,EAAE,YAAY,EAAE,GAAG,CAAC;IAC9E,IAAI,GAAG,YAAY,QAAQ;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC;IAC7C,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,gGAAgG;AAChG,SAAS,iBAAiB,CAAC,CAAU;IACnC,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,aAAa,IAAK,CAA6B,CAAC;AAChG,CAAC;AAED,6FAA6F;AAC7F,SAAS,KAAK,CAAC,IAAuC;IACpD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC;IACtC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;IACrB,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;AAC1H,CAAC;AAED,wDAAwD;AACxD,SAAS,KAAK,CAAC,CAAe,EAAE,EAAU;IACxC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,GAAoB,CAAC,CAAC,CAAC,SAAS,CAAC;IACpG,MAAM,GAAG,GAAG,GAAG,KAAK,SAAS,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,IAAI,GAAG,CAAC,CAAC,CAAE,GAAG,CAAC,GAAoC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjJ,IAAI,GAAG,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE,4CAA4C,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACnH,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE,oGAAoG,CAAC,CAAC;IACnI,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,sFAAsF;AACtF,SAAS,QAAQ,CAAC,CAAW;IAC3B,QAAQ,CAAC,EAAE,CAAC;QACV,KAAK,KAAK;YACR,OAAO,KAAK,CAAC;QACf,KAAK,OAAO;YACV,OAAO,OAAO,CAAC;QACjB,KAAK,MAAM;YACT,OAAO,SAAS,CAAC;QACnB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;IACpB,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAkC;IAC7D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AACjH,CAAC;AAED;;;;GAIG;AACH,SAAS,UAAU,CAAC,WAA8B,EAAE;IAClD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAiB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC;IACxC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,KAAK,CAAC,CAAS;IACtB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,SAAS,CAAC,KAAwB;IACzC,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAC5C,CAAC;AAED,SAAS,IAAI,CAAC,CAAS;IACrB,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;AAC/E,CAAC;AAED,wFAAwF;AACxF,SAAS,QAAQ,CAAC,CAAS;IACzB,OAAO,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY,EAAE,EAAU;IAChD,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE,uCAAuC,CAAC,CAAC;IACtE,CAAC;AACH,CAAC"}
@@ -21,9 +21,9 @@ export type ComparisonOp = 'eq' | 'ne' | 'lt' | 'le' | 'gt' | 'ge' | 'like';
21
21
  /**
22
22
  * `<column> <op> <param>`. The parameter's TS type is resolved from the column's declared SQL type.
23
23
  *
24
- * `optional: true` makes the predicate a SKIP member: the parameter is nullable and the fragment is
25
- * DROPPED when it is null. The emitter lowers that to a conditional over the two STATIC SQL texts
26
- * (bc's `?:` → a Conditional node), so every branch is still fully static SQL.
24
+ * `optional: true` makes the predicate a SKIP member: the parameter is nullable and the predicate is
25
+ * DROPPED when it is null. Only such a predicate rides the dynamic-WHERE plan the `executeSQL` leaf
26
+ * assembles per call; a BOUNDED one is lowered into the emitted statement's static WHERE (CLAUDE.md §2).
27
27
  */
28
28
  export interface ComparePredicate {
29
29
  readonly kind?: 'compare';
@@ -161,11 +161,6 @@ export interface ReadEndpoint {
161
161
  readonly with?: readonly RelationSelection[];
162
162
  /** #98 — read from a derived CTE (a QUERY view-model) instead of the base table. */
163
163
  readonly view?: QueryView;
164
- /**
165
- * Read the row set in EXACT-integer mode (`bigint` port). Set when the projection carries a
166
- * 64-bit column so the driver hands over exact values rather than rounded doubles.
167
- */
168
- readonly bigint?: boolean;
169
164
  }
170
165
  /** `column ← param` for a write's VALUES / SET list. */
171
166
  export interface ValueBinding {
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../../../src/scp/emit/endpoint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../../../src/scp/emit/endpoint.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@
12
12
  * 2. a **middleware chain** — {@link ExecutionContext.middleware}, wrapping every SQL (empty in
13
13
  * Phase A = passthrough; the registration API is Phase D — this is only the hook point);
14
14
  * 3. {@link ExecutionContext.withConnection}`(conn, tx)` — derive a tx-scoped ctx that pins ONE
15
- * connection so every statement in a transaction body runs on it.
15
+ * connection so every statement in a transaction body of the tx's own database (an unnamed one, or one naming that database) runs on it.
16
16
  *
17
17
  * ## The central seam (§2 of the design) — ALL SQL funnels through here
18
18
  *
@@ -46,7 +46,8 @@
46
46
  * ## Per-execution connection ownership (§3) — the concurrent-tx fix
47
47
  *
48
48
  * A transaction acquires ONE connection, scopes it into an {@link AsyncLocalStorage} ctx, runs its
49
- * body (every statement resolves that connection via `connectionFor`), COMMITs/ROLLBACKs, and
49
+ * body (every statement of the tx's own database resolves that connection via `connectionFor`, and a statement
50
+ * naming a DIFFERENT database is rejected), COMMITs/ROLLBACKs, and
50
51
  * releases it. Concurrent transactions each run in their own ALS ctx with their own connection —
51
52
  * **isolated**. There is NO driver-global single-slot writer (the shared-slot model — `pool.query`
52
53
  * per statement, or a `Mutex<Option<writer>>` — is what corrupts concurrent transactions; see the
@@ -151,7 +152,7 @@ export interface ExecutionContext {
151
152
  connectionFor(intent: StatementIntent): SyncConnection;
152
153
  /** The middleware chain wrapping every SQL (§4). Empty in Phase A. */
153
154
  readonly middleware: MiddlewareChain;
154
- /** Derive a tx-scoped ctx pinning `conn` (every statement resolves it while `tx` is true). */
155
+ /** Derive a tx-scoped ctx pinning `conn` (every statement of the tx's own database (an unnamed one, or one naming that database) resolves it while `tx` is true). */
155
156
  withConnection(conn: SyncConnection, tx: boolean): ExecutionContext;
156
157
  }
157
158
  /** The ASYNC execution context (live PG / MySQL) — the same contract, async connections. */
@@ -236,12 +237,26 @@ export interface AsyncConnectionPool {
236
237
  /** Return a connection to the pool. `destroy` ⇒ drop it (a poisoned/aborted connection). */
237
238
  release(conn: AsyncConnection, destroy?: boolean): Promise<void>;
238
239
  }
240
+ /**
241
+ * What the ALS pin carries: the transaction's OWNED connection and the NAME of the database it opened
242
+ * on (`null` ⇒ the default connection). The name has to ride HERE and nowhere else on this plane,
243
+ * because {@link PooledAsyncContext.withConnection} returns `this` — the tx-scoped ctx is not a distinct
244
+ * object, so a per-scope fact cannot be a field on it. `connectionFor` reads both: the connection to run
245
+ * on, and the name a NAMED statement must agree with ({@link assertTxDbAgrees}). The four ports carry the
246
+ * same pair on their tx-scoped ctx (the go / python / rust `connection` field, php's).
247
+ */
248
+ export interface PinnedTx {
249
+ readonly conn: AsyncConnection;
250
+ /** The connection NAME the transaction opened on (`null` ⇒ the default connection). */
251
+ readonly db: string | null;
252
+ }
239
253
  /**
240
254
  * A pooled async {@link AsyncExecutionContext}. Outside a transaction, `connectionFor` acquires a
241
255
  * fresh pooled connection per statement (the existing read fan-out model — each concurrent sibling
242
256
  * on its own connection). Inside a transaction, {@link withTransactionAsync} pins ONE acquired
243
- * connection into the ALS store; `connectionFor` returns THAT for every statement in the body, so
244
- * the whole tx runs on one owned connection — isolated from concurrent transactions.
257
+ * connection into the ALS store; `connectionFor` returns THAT for every statement in the body of the tx's own database
258
+ * (an unnamed one, or one naming that database — a statement naming a DIFFERENT database is rejected), so the
259
+ * whole tx runs on one owned connection — isolated from concurrent transactions.
245
260
  *
246
261
  * NB: outside a tx, `connectionFor` returns a **per-statement** owned connection wrapper that
247
262
  * acquires-runs-releases; the read walker issues one statement per `executeAsync`, matching the
@@ -277,21 +292,26 @@ export declare class PooledAsyncContext implements AsyncExecutionContext {
277
292
  get stickyClock(): WriterStickyClock;
278
293
  }
279
294
  /**
280
- * Run `fn` inside the ALS scope with `conn` pinned as the ambient tx connection (§3). Every
281
- * `connectionFor` inside `fn` (async boundaries included) returns `conn`. This is the TS
282
- * per-execution ownership mechanism (v1 `DBModel.ts` `txContext.run`); the native ports use
295
+ * Run `fn` inside the ALS scope with `conn` pinned as the ambient tx connection (§3), together with
296
+ * `db` — the connection NAME the transaction opened on. Every `connectionFor` inside `fn` (async
297
+ * boundaries included) returns `conn` for a statement of the tx's own database — an unnamed one, or
298
+ * one naming `db`; one naming a DIFFERENT database is REJECTED there (`assertTxDbAgrees`), because a
299
+ * transaction is ONE connection on ONE database. This is the TS per-execution ownership mechanism
300
+ * (v1 `DBModel.ts` `txContext.run`); the native ports use
283
301
  * task-local (rust) / `context.Context` (go) / contextvars (py) / an explicit arg (php) for the
284
302
  * SAME effect.
285
303
  */
286
- export declare function runWithPinnedAsyncConnection<R>(conn: AsyncConnection, fn: () => Promise<R>): Promise<R>;
304
+ export declare function runWithPinnedAsyncConnection<R>(conn: AsyncConnection, db: string | null, fn: () => Promise<R>): Promise<R>;
287
305
  /**
288
- * The tx-owned connection pinned in the CURRENT async scope, or `undefined` if not inside a
289
- * transaction. {@link withTransactionAsync} reads this to detect a NESTED transaction (an inner
306
+ * The transaction pinned in the CURRENT async scope — its owned connection AND the connection NAME it
307
+ * opened on ({@link PinnedTx}) — or `undefined` if not inside a transaction.
308
+ * {@link withTransactionAsync} reads this to detect a NESTED transaction (an inner
290
309
  * `withTransactionAsync` running inside an outer's ALS scope joins the outer instead of opening a
291
- * new physical transaction). The native ports read their task-local / contextvar / `context.Context`
292
- * for the SAME nested detection.
310
+ * new physical transaction), and `connectionFor` reads the name to reject a statement that names a
311
+ * DIFFERENT database than the transaction opened on. The native ports read their task-local /
312
+ * contextvar / `context.Context` for the SAME nested detection.
293
313
  */
294
- export declare function currentPinnedAsyncConnection(): AsyncConnection | undefined;
314
+ export declare function currentPinnedAsyncConnection(): PinnedTx | undefined;
295
315
  /**
296
316
  * Transaction options for {@link withTransactionAsync}. The full Phase B contract (isolation / retry
297
317
  * / rollbackOnly) lives in {@link import('./tx-options').TransactionOptions}; this re-exports it so
@@ -308,7 +328,8 @@ export type TxOptions = TransactionOptions;
308
328
  * **Per attempt** (up to `retryLimit`):
309
329
  * 1. acquire ONE fresh connection from the pool (a retry after a connection error thus RECONNECTS);
310
330
  * 2. pin it into the ALS ctx (`runWithPinnedAsyncConnection`) so EVERY statement `fn` issues
311
- * resolves THAT connection — never a fresh pooled one;
331
+ * of the tx's own database resolves THAT connection — never a fresh pooled one, and a statement
332
+ * naming a DIFFERENT database is rejected instead;
312
333
  * 3. issue the isolation-aware BEGIN ({@link beginStatements}: PG `BEGIN ISOLATION LEVEL …`;
313
334
  * MySQL a preceding `SET TRANSACTION ISOLATION LEVEL …` then `BEGIN`);
314
335
  * 4. run `fn(txCtx)` → `COMMIT` (or `ROLLBACK` if `rollbackOnly`, still returning the body result);
@@ -378,8 +399,9 @@ export declare function transaction<R>(ctx: PooledAsyncContext, fn: () => Promis
378
399
  * no committed change, but the body result is still returned, e.g. the short-circuit reason);
379
400
  * - a THROW from `fn` → best-effort `ROLLBACK`, re-raise (the caller maps the driver error).
380
401
  *
381
- * Every statement `fn` issues resolves the pinned tx connection via `connectionFor` (the tx-owned
382
- * conn), so the whole body runs atomically on one connection. This is the boundary the write/tx leaf
402
+ * Every statement `fn` issues of the tx's own database (an unnamed one, or one naming that database) resolves the pinned tx connection via
403
+ * `connectionFor` (the tx-owned conn), so the whole body runs atomically on one connection; one naming a
404
+ * DIFFERENT database is rejected instead of joining it. This is the boundary the write/tx leaf
383
405
  * path runs inside; the tx-control statements (BEGIN/COMMIT/ROLLBACK) go through the seam here, while
384
406
  * the body's data statements ride the `executeSQL` transport leaf.
385
407
  */