@bitspark/horos 0.9.0 → 0.11.1
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.
- package/README.md +3 -3
- package/dist/src/cli.js +9 -2
- package/dist/src/cli.js.map +1 -1
- package/dist/src/core.d.ts +1 -1
- package/dist/src/core.js +172 -62
- package/dist/src/core.js.map +1 -1
- package/dist/src/diagnose.d.ts +36 -3
- package/dist/src/diagnose.js +465 -150
- package/dist/src/diagnose.js.map +1 -1
- package/package.json +10 -10
package/README.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# horos for TypeScript
|
|
2
2
|
|
|
3
|
-
`npm install @bitspark/horos@0.
|
|
3
|
+
`npm install @bitspark/horos@0.11.1`
|
|
4
4
|
|
|
5
5
|
Import `wf` and `conforms` from `@bitspark/horos`, and `diagnose` and
|
|
6
6
|
`checkingProfile` from `@bitspark/horos/diagnose`. Values come from the public
|
|
7
|
-
@bitspark/ontos-core 0.
|
|
7
|
+
@bitspark/ontos-core 0.17.0 package.
|
|
8
8
|
|
|
9
|
-
See the [form contract](https://github.com/Bitspark/horos/blob/v0.
|
|
9
|
+
See the [form contract](https://github.com/Bitspark/horos/blob/v0.11.1/docs/spec/horos.md).
|
|
10
10
|
The package exports declarations for both entrypoints. There are no private
|
|
11
11
|
proof/witness entrypoints or compatibility aliases.
|
package/dist/src/cli.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
/** Evaluate wf/conforms over ontos-codec-v1 hex. */
|
|
2
|
+
/** Evaluate wf/conforms, and their diagnoses as JSON, over ontos-codec-v1 hex. */
|
|
3
3
|
import { decode } from "@bitspark/ontos-codec";
|
|
4
|
+
import { diagnose, diagnoseWf } from "./diagnose.js";
|
|
4
5
|
import { conforms, wf } from "./index.js";
|
|
5
6
|
function value(hex) {
|
|
6
7
|
if (!/^(?:[0-9a-f]{2})*$/u.test(hex))
|
|
@@ -15,8 +16,14 @@ try {
|
|
|
15
16
|
else if (args[0] === "conforms" && args.length === 3) {
|
|
16
17
|
console.log(conforms(value(args[2]), value(args[1])));
|
|
17
18
|
}
|
|
19
|
+
else if (args[0] === "diagnose-wf" && args.length === 2) {
|
|
20
|
+
console.log(JSON.stringify(diagnoseWf(value(args[1]))));
|
|
21
|
+
}
|
|
22
|
+
else if (args[0] === "diagnose" && args.length === 3) {
|
|
23
|
+
console.log(JSON.stringify(diagnose(value(args[2]), value(args[1]))));
|
|
24
|
+
}
|
|
18
25
|
else {
|
|
19
|
-
throw new Error("usage: horos-conform wf <descriptor> | conforms <descriptor> <value>");
|
|
26
|
+
throw new Error("usage: horos-conform wf <descriptor> | conforms <descriptor> <value> | diagnose-wf <descriptor> | diagnose <descriptor> <value>");
|
|
20
27
|
}
|
|
21
28
|
}
|
|
22
29
|
catch (error) {
|
package/dist/src/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AACA,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AACA,kFAAkF;AAClF,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAE1C,SAAS,KAAK,CAAC,GAAW;IACxB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC/E,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,IAAI,CAAC;IACH,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;SAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;SAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,aAAa,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;SAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CACb,iIAAiI,CAClI,CAAC;IACJ,CAAC;AACH,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC"}
|
package/dist/src/core.d.ts
CHANGED
|
@@ -23,7 +23,7 @@ export declare const ATOM_LEN_BOUND_MIN: bigint;
|
|
|
23
23
|
/**
|
|
24
24
|
* The shared recursion-depth guard (horos-internal#37) — the SAME constant in all three cores (Rust
|
|
25
25
|
* `MAX_RECURSION_DEPTH`, Go `MaxRecursionDepth`). `conformsIn`/`wfIn` recurse on the
|
|
26
|
-
* native stack; termination is bounded by `|v|` (
|
|
26
|
+
* native stack; termination is bounded by `|v|` (`wf`'s guardedness) but there is no
|
|
27
27
|
* stack bound, so an adversarial-but-finite value (e.g. a tuple nested hundreds of
|
|
28
28
|
* thousands deep) could overflow the stack — a `RangeError: Maximum call stack size
|
|
29
29
|
* exceeded` — at a core-dependent depth, breaking the total/never-throws contract.
|
package/dist/src/core.js
CHANGED
|
@@ -17,15 +17,15 @@
|
|
|
17
17
|
*
|
|
18
18
|
* rec/ref guarded recursion
|
|
19
19
|
* -------------------------
|
|
20
|
-
* `rec` binds a recursion name to its body descriptor; `ref` unfolds it
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
* unfoldings
|
|
28
|
-
*
|
|
20
|
+
* `rec` binds a recursion name to its body descriptor; `ref` unfolds it. A `ref`
|
|
21
|
+
* denotes the `rec` that lexically encloses it in the written descriptor (ADR 0011):
|
|
22
|
+
* each binding closes over the environment it was written in, and a `ref` continues in
|
|
23
|
+
* its binding's environment, never the unfolding site's. `wf` requires a descent into
|
|
24
|
+
* a strict substructure of v between every `rec` and each `ref` that denotes it, so
|
|
25
|
+
* between two descents each unfolding reaches a `rec` strictly above every descriptor
|
|
26
|
+
* node checked since the last descent: a `ref` never unfolds a binding twice at one
|
|
27
|
+
* v-node. Termination: unfoldings are bounded by |v| times the descriptor's nesting,
|
|
28
|
+
* and every frame counts against MAX_RECURSION_DEPTH.
|
|
29
29
|
*/
|
|
30
30
|
import { Atom, Tuple, bytesEqual } from "@bitspark/ontos-core";
|
|
31
31
|
import { readBool, readInt, readList, readMap, readSet, readText, recognizeInt, } from "@bitspark/ontos-data";
|
|
@@ -59,7 +59,7 @@ function atomLenBoundInRange(n) {
|
|
|
59
59
|
/**
|
|
60
60
|
* The shared recursion-depth guard (horos-internal#37) — the SAME constant in all three cores (Rust
|
|
61
61
|
* `MAX_RECURSION_DEPTH`, Go `MaxRecursionDepth`). `conformsIn`/`wfIn` recurse on the
|
|
62
|
-
* native stack; termination is bounded by `|v|` (
|
|
62
|
+
* native stack; termination is bounded by `|v|` (`wf`'s guardedness) but there is no
|
|
63
63
|
* stack bound, so an adversarial-but-finite value (e.g. a tuple nested hundreds of
|
|
64
64
|
* thousands deep) could overflow the stack — a `RangeError: Maximum call stack size
|
|
65
65
|
* exceeded` — at a core-dependent depth, breaking the total/never-throws contract.
|
|
@@ -86,6 +86,62 @@ function consContainsName(s, name) {
|
|
|
86
86
|
}
|
|
87
87
|
return false;
|
|
88
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* One check's memo (ADR 0013). A check reaches one sub-check along two routes only below a
|
|
91
|
+
* union or intersection with two or more alternatives over the same value, so the memo is
|
|
92
|
+
* kept only there: the check enters shared mode at such a node, and everything below it is
|
|
93
|
+
* shared. Outside shared mode no position is numbered and nothing is kept, so a check
|
|
94
|
+
* without such a node costs what it did before ADR 0013.
|
|
95
|
+
*
|
|
96
|
+
* In shared mode a value is named by the object itself, so a subvalue shared between
|
|
97
|
+
* several places is checked once; a descriptor node is named by its position in the
|
|
98
|
+
* written descriptor, numbered from its parent's position and its item index. The node
|
|
99
|
+
* where shared mode begins is reached by one route, so it takes a fresh number; a binding
|
|
100
|
+
* entered before shared mode takes one for its body when a shared `ref` first needs it.
|
|
101
|
+
* The position fixes the node's environment (ADR 0011), so a shared composite sub-check's
|
|
102
|
+
* verdict is a function of (value, position, depth) alone. -1 means outside shared mode.
|
|
103
|
+
*/
|
|
104
|
+
class Checker {
|
|
105
|
+
values;
|
|
106
|
+
positions;
|
|
107
|
+
next = 0;
|
|
108
|
+
memo = new Map();
|
|
109
|
+
/** A new position number, distinct from every other of this check. */
|
|
110
|
+
fresh() {
|
|
111
|
+
this.next += 1;
|
|
112
|
+
return this.next;
|
|
113
|
+
}
|
|
114
|
+
/** The position of item `index` below position `parent` (`parent` itself for -1). */
|
|
115
|
+
position(parent, index) {
|
|
116
|
+
if (parent < 0)
|
|
117
|
+
return -1;
|
|
118
|
+
if (index < 0)
|
|
119
|
+
return parent;
|
|
120
|
+
this.positions ??= new Map();
|
|
121
|
+
let children = this.positions.get(parent);
|
|
122
|
+
if (children === undefined) {
|
|
123
|
+
children = new Map();
|
|
124
|
+
this.positions.set(parent, children);
|
|
125
|
+
}
|
|
126
|
+
let id = children.get(index);
|
|
127
|
+
if (id === undefined) {
|
|
128
|
+
id = this.fresh();
|
|
129
|
+
children.set(index, id);
|
|
130
|
+
}
|
|
131
|
+
return id;
|
|
132
|
+
}
|
|
133
|
+
key(v, at, depth) {
|
|
134
|
+
this.values ??= new Map();
|
|
135
|
+
let id = this.values.get(v);
|
|
136
|
+
if (id === undefined) {
|
|
137
|
+
id = this.values.size;
|
|
138
|
+
this.values.set(v, id);
|
|
139
|
+
}
|
|
140
|
+
return `${id},${at},${depth}`;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
/** Leaf arms never use their checker; leaf-only callers share this one, which stays empty. */
|
|
144
|
+
const LEAF_CHECKER = new Checker();
|
|
89
145
|
/**
|
|
90
146
|
* If `t` is `Tuple(Atom("horos/<ctor>"), args...)` with a valid-UTF-8 label under the
|
|
91
147
|
* reserved namespace, return `{ ctor, args }`. Otherwise `undefined` (not a horos
|
|
@@ -165,7 +221,11 @@ function matchesKeyGrammar(s) {
|
|
|
165
221
|
return false;
|
|
166
222
|
for (let i = 1; i < cps.length; i += 1) {
|
|
167
223
|
const cp = cps[i].codePointAt(0);
|
|
168
|
-
if (!(isAsciiLower(cp) ||
|
|
224
|
+
if (!(isAsciiLower(cp) ||
|
|
225
|
+
isAsciiDigit(cp) ||
|
|
226
|
+
cp === 0x2e ||
|
|
227
|
+
cp === 0x5f ||
|
|
228
|
+
cp === 0x2d)) {
|
|
169
229
|
return false; // . _ -
|
|
170
230
|
}
|
|
171
231
|
}
|
|
@@ -221,18 +281,15 @@ export function conforms(v, t) {
|
|
|
221
281
|
// Soundness gate (spec §3 MUST): `v : T` presupposes `wf(T)`. A descriptor that is
|
|
222
282
|
// not well-formed admits no values, even where an individual arm would otherwise
|
|
223
283
|
// match — so check `wf` once at the entry and never arm-by-arm below.
|
|
224
|
-
return wf(t) && conformsIn(v, t,
|
|
284
|
+
return wf(t) && conformsIn(new Checker(), v, t, -1, -1, undefined, 0, false);
|
|
225
285
|
}
|
|
226
286
|
/**
|
|
227
|
-
* `conforms` with the recursion environment threaded through:
|
|
228
|
-
*
|
|
229
|
-
*
|
|
230
|
-
*
|
|
231
|
-
* descent since — a `ref` to a pending name is unguarded (it would loop) and
|
|
232
|
-
* yields `false`. Descending into a child value clears `pending`; same-v
|
|
233
|
-
* combinators (union/and/not) thread it unchanged.
|
|
287
|
+
* `conforms` with the recursion environment threaded through: `env` binds each `rec` name
|
|
288
|
+
* that lexically encloses `t` to its body descriptor; each node's tail is the environment
|
|
289
|
+
* its `rec` was written in, so the node is the binding's closure. Callers check `wf(t)`
|
|
290
|
+
* first; `conformsIn` relies on its guardedness (see the module comment).
|
|
234
291
|
*/
|
|
235
|
-
function conformsIn(v, t, env,
|
|
292
|
+
function conformsIn(c, v, t, parent, index, env, depth, shared) {
|
|
236
293
|
// Recursion-depth guard (horos-internal#37): past MAX_RECURSION_DEPTH frames, return a deterministic
|
|
237
294
|
// `false` rather than risk a native-stack overflow (RangeError). Counted at the same
|
|
238
295
|
// point in all three cores so the trip depth is byte-identical.
|
|
@@ -241,6 +298,20 @@ function conformsIn(v, t, env, pending, depth) {
|
|
|
241
298
|
const h = head(t);
|
|
242
299
|
if (h === undefined)
|
|
243
300
|
return false; // not a horos descriptor
|
|
301
|
+
if (!shared || isLeafCtor(h.ctor))
|
|
302
|
+
return node(c, v, h, -1, env, depth, shared);
|
|
303
|
+
// `t` is item `index` below position `parent`; numbered only here (see Checker).
|
|
304
|
+
const at = c.position(parent, index);
|
|
305
|
+
const key = c.key(v, at, depth);
|
|
306
|
+
const hit = c.memo.get(key);
|
|
307
|
+
if (hit !== undefined)
|
|
308
|
+
return hit;
|
|
309
|
+
const r = node(c, v, h, at, env, depth, true);
|
|
310
|
+
c.memo.set(key, r);
|
|
311
|
+
return r;
|
|
312
|
+
}
|
|
313
|
+
/** One descriptor node against `v`; `conformsIn` memoizes the composite ones in shared mode. */
|
|
314
|
+
function node(c, v, h, at, env, depth, shared) {
|
|
244
315
|
const { ctor, args } = h;
|
|
245
316
|
switch (ctor) {
|
|
246
317
|
// Top.
|
|
@@ -366,6 +437,25 @@ function conformsIn(v, t, env, pending, depth) {
|
|
|
366
437
|
return matchesLowercaseUuid(s);
|
|
367
438
|
}
|
|
368
439
|
// Scalars — delegate to the frozen ontos/data recognizers.
|
|
440
|
+
// Integer bounds (ADR 0010): a canonical int of any width, compared exactly with an
|
|
441
|
+
// inclusive bound that is itself a canonical int in the i128 range.
|
|
442
|
+
case "int-min":
|
|
443
|
+
case "int-max": {
|
|
444
|
+
if (args.length !== 1)
|
|
445
|
+
return false;
|
|
446
|
+
let bound;
|
|
447
|
+
let n;
|
|
448
|
+
try {
|
|
449
|
+
bound = readInt(args[0]);
|
|
450
|
+
n = readInt(v);
|
|
451
|
+
}
|
|
452
|
+
catch {
|
|
453
|
+
return false;
|
|
454
|
+
}
|
|
455
|
+
if (!atomLenBoundInRange(bound))
|
|
456
|
+
return false;
|
|
457
|
+
return ctor === "int-min" ? n >= bound : n <= bound;
|
|
458
|
+
}
|
|
369
459
|
case "scalar": {
|
|
370
460
|
if (args.length !== 1)
|
|
371
461
|
return false;
|
|
@@ -387,8 +477,7 @@ function conformsIn(v, t, env, pending, depth) {
|
|
|
387
477
|
return false;
|
|
388
478
|
}
|
|
389
479
|
}
|
|
390
|
-
// Tuples & compounds. Each child descriptor types a child VALUE — a descent
|
|
391
|
-
// the guard (pending) is cleared.
|
|
480
|
+
// Tuples & compounds. Each child descriptor types a child VALUE — a descent.
|
|
392
481
|
case "tuple": {
|
|
393
482
|
if (!(v instanceof Tuple))
|
|
394
483
|
return false;
|
|
@@ -396,7 +485,7 @@ function conformsIn(v, t, env, pending, depth) {
|
|
|
396
485
|
if (items.length !== args.length)
|
|
397
486
|
return false;
|
|
398
487
|
for (let i = 0; i < items.length; i += 1) {
|
|
399
|
-
if (!conformsIn(items[i], args[i],
|
|
488
|
+
if (!conformsIn(c, items[i], args[i], at, i + 1, env, depth + 1, shared))
|
|
400
489
|
return false;
|
|
401
490
|
}
|
|
402
491
|
return true;
|
|
@@ -406,8 +495,8 @@ function conformsIn(v, t, env, pending, depth) {
|
|
|
406
495
|
return false;
|
|
407
496
|
if (!(v instanceof Tuple))
|
|
408
497
|
return false;
|
|
409
|
-
for (const
|
|
410
|
-
if (!conformsIn(c, args[0],
|
|
498
|
+
for (const item of v.items()) {
|
|
499
|
+
if (!conformsIn(c, item, args[0], at, 1, env, depth + 1, shared))
|
|
411
500
|
return false;
|
|
412
501
|
}
|
|
413
502
|
return true;
|
|
@@ -429,7 +518,7 @@ function conformsIn(v, t, env, pending, depth) {
|
|
|
429
518
|
if (head0 === undefined || !bytesEqual(head0, lb))
|
|
430
519
|
return false;
|
|
431
520
|
for (let i = 0; i < ts.length; i += 1) {
|
|
432
|
-
if (!conformsIn(items[i + 1], ts[i],
|
|
521
|
+
if (!conformsIn(c, items[i + 1], ts[i], at, i + 2, env, depth + 1, shared))
|
|
433
522
|
return false;
|
|
434
523
|
}
|
|
435
524
|
return true;
|
|
@@ -447,7 +536,7 @@ function conformsIn(v, t, env, pending, depth) {
|
|
|
447
536
|
return false;
|
|
448
537
|
}
|
|
449
538
|
for (const e of elems) {
|
|
450
|
-
if (!conformsIn(e, args[0],
|
|
539
|
+
if (!conformsIn(c, e, args[0], at, 1, env, depth + 1, shared))
|
|
451
540
|
return false;
|
|
452
541
|
}
|
|
453
542
|
return true;
|
|
@@ -463,7 +552,7 @@ function conformsIn(v, t, env, pending, depth) {
|
|
|
463
552
|
return false;
|
|
464
553
|
}
|
|
465
554
|
for (const e of elems) {
|
|
466
|
-
if (!conformsIn(e, args[0],
|
|
555
|
+
if (!conformsIn(c, e, args[0], at, 1, env, depth + 1, shared))
|
|
467
556
|
return false;
|
|
468
557
|
}
|
|
469
558
|
return true;
|
|
@@ -479,8 +568,8 @@ function conformsIn(v, t, env, pending, depth) {
|
|
|
479
568
|
return false;
|
|
480
569
|
}
|
|
481
570
|
for (const [k, val] of entries) {
|
|
482
|
-
if (!conformsIn(k, args[0],
|
|
483
|
-
!conformsIn(val, args[1],
|
|
571
|
+
if (!conformsIn(c, k, args[0], at, 1, env, depth + 1, shared) ||
|
|
572
|
+
!conformsIn(c, val, args[1], at, 2, env, depth + 1, shared)) {
|
|
484
573
|
return false;
|
|
485
574
|
}
|
|
486
575
|
}
|
|
@@ -491,19 +580,25 @@ function conformsIn(v, t, env, pending, depth) {
|
|
|
491
580
|
case "record": {
|
|
492
581
|
if (args.length < 1)
|
|
493
582
|
return false;
|
|
494
|
-
return conformsRecord(v, args[0], args.slice(1), env, depth);
|
|
583
|
+
return conformsRecord(c, v, args[0], args.slice(1), at, env, depth, shared);
|
|
495
584
|
}
|
|
496
|
-
// Composition — recurse on the SAME v
|
|
585
|
+
// Composition — recurse on the SAME v.
|
|
586
|
+
// Two or more alternatives over one value: below them a sub-check can be reached along
|
|
587
|
+
// several routes, so they are checked in shared mode (see Checker).
|
|
497
588
|
case "union": {
|
|
498
|
-
|
|
499
|
-
|
|
589
|
+
const share = shared || args.length > 1;
|
|
590
|
+
const uat = shared || !share ? at : c.fresh();
|
|
591
|
+
for (let i = 0; i < args.length; i += 1) {
|
|
592
|
+
if (conformsIn(c, v, args[i], uat, i + 1, env, depth + 1, share))
|
|
500
593
|
return true;
|
|
501
594
|
}
|
|
502
595
|
return false;
|
|
503
596
|
}
|
|
504
597
|
case "and": {
|
|
505
|
-
|
|
506
|
-
|
|
598
|
+
const share = shared || args.length > 1;
|
|
599
|
+
const uat = shared || !share ? at : c.fresh();
|
|
600
|
+
for (let i = 0; i < args.length; i += 1) {
|
|
601
|
+
if (!conformsIn(c, v, args[i], uat, i + 1, env, depth + 1, share))
|
|
507
602
|
return false;
|
|
508
603
|
}
|
|
509
604
|
return true;
|
|
@@ -511,7 +606,7 @@ function conformsIn(v, t, env, pending, depth) {
|
|
|
511
606
|
case "not": {
|
|
512
607
|
if (args.length !== 1)
|
|
513
608
|
return false;
|
|
514
|
-
return !conformsIn(v, args[0],
|
|
609
|
+
return !conformsIn(c, v, args[0], at, 1, env, depth + 1, shared);
|
|
515
610
|
}
|
|
516
611
|
// Singleton — membership by ontos structural identity (defines no new equality).
|
|
517
612
|
case "exact": {
|
|
@@ -519,7 +614,8 @@ function conformsIn(v, t, env, pending, depth) {
|
|
|
519
614
|
return false;
|
|
520
615
|
return exactEqual(v, args[0]);
|
|
521
616
|
}
|
|
522
|
-
// Recursion. rec binds the name; ref unfolds
|
|
617
|
+
// Recursion. rec binds the name; ref unfolds the binding that lexically encloses it.
|
|
618
|
+
// Each unfolding is one counted frame, so the depth bound is the backstop (ADR 0011).
|
|
523
619
|
case "rec": {
|
|
524
620
|
if (args.length !== 2)
|
|
525
621
|
return false;
|
|
@@ -528,11 +624,10 @@ function conformsIn(v, t, env, pending, depth) {
|
|
|
528
624
|
return false;
|
|
529
625
|
const nb = nm.bytes();
|
|
530
626
|
const body = args[1];
|
|
531
|
-
// Push one shared node
|
|
532
|
-
//
|
|
533
|
-
const
|
|
534
|
-
|
|
535
|
-
return conformsIn(v, body, e, p, depth + 1);
|
|
627
|
+
// Push one shared node (no per-frame spread copy); the child frame sees this
|
|
628
|
+
// binding innermost-first. The node closes over `env`.
|
|
629
|
+
const bodyAt = c.position(at, 2);
|
|
630
|
+
return conformsIn(c, v, body, bodyAt, -1, cons({ name: nb, body, bodyAt }, env), depth + 1, shared);
|
|
536
631
|
}
|
|
537
632
|
case "ref": {
|
|
538
633
|
if (args.length !== 1)
|
|
@@ -540,16 +635,17 @@ function conformsIn(v, t, env, pending, depth) {
|
|
|
540
635
|
const nm = args[0];
|
|
541
636
|
if (!(nm instanceof Atom))
|
|
542
637
|
return false;
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
// outer binding of the same name.
|
|
548
|
-
const body = lookupLast(env, nb);
|
|
549
|
-
if (body === undefined)
|
|
638
|
+
// The nearest enclosing binding in the written descriptor: `env` holds exactly
|
|
639
|
+
// the bindings that lexically enclose this `ref` (ADR 0011).
|
|
640
|
+
const found = lookupBinding(env, nm.bytes());
|
|
641
|
+
if (found === undefined)
|
|
550
642
|
return false; // unbound reference
|
|
551
|
-
|
|
552
|
-
|
|
643
|
+
// Unfold in the binding's own environment, so the body's free refs keep the
|
|
644
|
+
// bindings they were written under. The body is checked at its own position.
|
|
645
|
+
if (shared && found.head.bodyAt < 0)
|
|
646
|
+
found.head.bodyAt = c.fresh();
|
|
647
|
+
const bodyAt = shared ? found.head.bodyAt : -1;
|
|
648
|
+
return conformsIn(c, v, found.head.body, bodyAt, -1, found, depth + 1, shared);
|
|
553
649
|
}
|
|
554
650
|
// Unknown ctor or wrong arity → not a recognized descriptor.
|
|
555
651
|
default:
|
|
@@ -587,7 +683,7 @@ function readField(f) {
|
|
|
587
683
|
return undefined;
|
|
588
684
|
return { name, required, ty: args[2] };
|
|
589
685
|
}
|
|
590
|
-
function conformsRecord(v, mode, fields, env, depth) {
|
|
686
|
+
function conformsRecord(c, v, mode, fields, at, env, depth, shared) {
|
|
591
687
|
// mode is a bare atom flag (open | closed).
|
|
592
688
|
const mb = atomBytes(mode);
|
|
593
689
|
if (mb === undefined)
|
|
@@ -631,14 +727,15 @@ function conformsRecord(v, mode, fields, env, depth) {
|
|
|
631
727
|
// covers. Field names are pairwise-distinct (`wf(record)`, checked at entry), so a
|
|
632
728
|
// present declared key is counted at most once.
|
|
633
729
|
let covered = 0;
|
|
634
|
-
for (
|
|
635
|
-
const fld = readField(
|
|
730
|
+
for (let k = 0; k < fields.length; k += 1) {
|
|
731
|
+
const fld = readField(fields[k]);
|
|
636
732
|
if (fld === undefined)
|
|
637
733
|
return false; // malformed field descriptor
|
|
638
734
|
const val = present.get(fld.name);
|
|
639
735
|
if (val !== undefined) {
|
|
640
736
|
covered += 1;
|
|
641
|
-
|
|
737
|
+
// Field k is the record's item k + 2; its type is the field form's item 3.
|
|
738
|
+
if (!conformsIn(c, val, fld.ty, c.position(at, k + 2), 3, env, depth + 1, shared))
|
|
642
739
|
return false;
|
|
643
740
|
}
|
|
644
741
|
else if (fld.required) {
|
|
@@ -665,6 +762,8 @@ export function isLeafCtor(ctor) {
|
|
|
665
762
|
case "atom-exact":
|
|
666
763
|
case "atom-len":
|
|
667
764
|
case "atom-in":
|
|
765
|
+
case "int-min":
|
|
766
|
+
case "int-max":
|
|
668
767
|
case "text-len":
|
|
669
768
|
case "key-grammar":
|
|
670
769
|
case "text-non-blank":
|
|
@@ -685,7 +784,7 @@ export function leafClassifies(v, t) {
|
|
|
685
784
|
const h = head(t);
|
|
686
785
|
if (h === undefined || !isLeafCtor(h.ctor))
|
|
687
786
|
return false;
|
|
688
|
-
return
|
|
787
|
+
return node(LEAF_CHECKER, v, h, -1, undefined, 0, false);
|
|
689
788
|
}
|
|
690
789
|
/** Decide whether a LEAF descriptor `t` is well-formed (the `horos/wf-leaf(T)` builtin). */
|
|
691
790
|
export function leafWellFormed(t) {
|
|
@@ -784,6 +883,17 @@ function wfIn(t, bound, pending, depth) {
|
|
|
784
883
|
case "text-non-blank":
|
|
785
884
|
case "lowercase-uuid":
|
|
786
885
|
return args.length === 0;
|
|
886
|
+
case "int-min":
|
|
887
|
+
case "int-max": {
|
|
888
|
+
if (args.length !== 1)
|
|
889
|
+
return false;
|
|
890
|
+
try {
|
|
891
|
+
return atomLenBoundInRange(readInt(args[0]));
|
|
892
|
+
}
|
|
893
|
+
catch {
|
|
894
|
+
return false;
|
|
895
|
+
}
|
|
896
|
+
}
|
|
787
897
|
case "scalar": {
|
|
788
898
|
if (args.length !== 1)
|
|
789
899
|
return false;
|
|
@@ -899,14 +1009,14 @@ function exactEqual(left, right) {
|
|
|
899
1009
|
return true;
|
|
900
1010
|
}
|
|
901
1011
|
/**
|
|
902
|
-
* Find the
|
|
903
|
-
*
|
|
904
|
-
*
|
|
1012
|
+
* Find the binding of `name`, searching from the innermost (head) binding outward, so an
|
|
1013
|
+
* inner `rec` shadows an outer binding of the same name. Returns the environment node,
|
|
1014
|
+
* which is the binding's closure, or `undefined` if unbound.
|
|
905
1015
|
*/
|
|
906
|
-
function
|
|
1016
|
+
function lookupBinding(env, name) {
|
|
907
1017
|
for (let n = env; n !== undefined; n = n.tail) {
|
|
908
1018
|
if (bytesEqual(n.head.name, name))
|
|
909
|
-
return n
|
|
1019
|
+
return n;
|
|
910
1020
|
}
|
|
911
1021
|
return undefined;
|
|
912
1022
|
}
|
package/dist/src/core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/core.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAc,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EACL,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,OAAO,EACP,OAAO,EACP,QAAQ,EACR,YAAY,GACb,MAAM,sBAAsB,CAAC;AAK9B;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAAC;AAElC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,wBAAwB;AAC7E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,qBAAqB;AAEtE;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,CAAS;IACpC,OAAO,CAAC,IAAI,kBAAkB,IAAI,CAAC,IAAI,kBAAkB,CAAC;AAC5D,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEvC,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAqB/E,kFAAkF;AAClF,SAAS,IAAI,CAAI,IAAO,EAAE,IAAyB;IACjD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxB,CAAC;AAED,6FAA6F;AAC7F,SAAS,gBAAgB,CAAC,CAA+B,EAAE,IAAgB;IACzE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;IAC5C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAaD;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO;IACH,MAAM,CAAiC;IACvC,SAAS,CAA+C;IACxD,IAAI,GAAG,CAAC,CAAC;IACR,IAAI,GAAG,IAAI,GAAG,EAAmB,CAAC;IAE3C,sEAAsE;IACtE,KAAK;QACH,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;QACf,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,qFAAqF;IACrF,QAAQ,CAAC,MAAc,EAAE,KAAa;QACpC,IAAI,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC,CAAC;QAC1B,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO,MAAM,CAAC;QAC7B,IAAI,CAAC,SAAS,KAAK,IAAI,GAAG,EAAE,CAAC;QAC7B,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YAClB,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,GAAG,CAAC,CAAQ,EAAE,EAAU,EAAE,KAAa;QACrC,IAAI,CAAC,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QAC1B,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,GAAG,EAAE,IAAI,EAAE,IAAI,KAAK,EAAE,CAAC;IAChC,CAAC;CACF;AAED,8FAA8F;AAC9F,MAAM,YAAY,GAAG,IAAI,OAAO,EAAE,CAAC;AAEnC;;;;;;;;;GASG;AACH,SAAS,IAAI,CAAC,CAAQ;IACpB,IAAI,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5C,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;IACxB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACzC,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;IAC7B,IAAI,CAAC,CAAC,UAAU,YAAY,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACpD,IAAI,KAAa,CAAC;IAClB,IAAI,CAAC;QACH,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IACnD,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACvE,CAAC;AAED,wEAAwE;AACxE,SAAS,SAAS,CAAC,CAAQ;IACzB,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACnD,CAAC;AAED,8EAA8E;AAC9E,6FAA6F;AAC7F,gFAAgF;AAChF,6EAA6E;AAC7E,+EAA+E;AAC/E,iFAAiF;AACjF,mFAAmF;AACnF,iFAAiF;AACjF,iFAAiF;AACjF,8EAA8E;AAC9E,iFAAiF;AAEjF,6DAA6D;AAC7D,SAAS,YAAY,CAAC,EAAU;IAC9B,OAAO,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC;AAClC,CAAC;AAED,kDAAkD;AAClD,SAAS,YAAY,CAAC,EAAU;IAC9B,OAAO,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC;AAClC,CAAC;AAED,6EAA6E;AAC7E,SAAS,UAAU,CAAC,EAAU;IAC5B,OAAO,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC;AACxD,CAAC;AAED;;;;;GAKG;AACH,SAAS,SAAS,CAAC,EAAU;IAC3B,OAAO,CACL,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,CACvF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CAAC,CAAS;IAClC,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACnB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC;IACtC,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAChE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC;QACnC,IAAI,CAAC,CACH,YAAY,CAAC,EAAE,CAAC;YAChB,YAAY,CAAC,EAAE,CAAC;YAChB,EAAE,KAAK,IAAI;YACX,EAAE,KAAK,IAAI;YACX,EAAE,KAAK,IAAI,CACZ,EAAE,CAAC;YACF,OAAO,KAAK,CAAC,CAAC,QAAQ;QACxB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,SAAS,UAAU,CAAC,CAAS;IAC3B,KAAK,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;QACnB,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC;YAAE,OAAO,IAAI,CAAC;IAClD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,SAAS,oBAAoB,CAAC,CAAS;IACrC,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACnB,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;QAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC9E,GAAG,IAAI,CAAC,CAAC;QACX,CAAC;QACD,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,CAAE,CAAC,WAAW,CAAC,CAAC,CAAE,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAC,CAAC,SAAS;YACpF,GAAG,IAAI,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IACD,OAAO,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,0BAA0B;AACvD,CAAC;AAED,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ,CAAC,CAAQ,EAAE,CAAQ;IACzC,mFAAmF;IACnF,iFAAiF;IACjF,sEAAsE;IACtE,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/E,CAAC;AAED;;;;;GAKG;AACH,SAAS,UAAU,CACjB,CAAU,EACV,CAAQ,EACR,CAAQ,EACR,MAAc,EACd,KAAa,EACb,GAA8B,EAC9B,KAAa,EACb,MAAe;IAEf,qGAAqG;IACrG,qFAAqF;IACrF,gEAAgE;IAChE,IAAI,KAAK,GAAG,mBAAmB;QAAE,OAAO,KAAK,CAAC;IAC9C,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,CAAC,yBAAyB;IAC5D,IAAI,CAAC,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAChF,iFAAiF;IACjF,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACrC,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IAClC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACnB,OAAO,CAAC,CAAC;AACX,CAAC;AAED,gGAAgG;AAChG,SAAS,IAAI,CACX,CAAU,EACV,CAAQ,EACR,CAAO,EACP,EAAU,EACV,GAA8B,EAC9B,KAAa,EACb,MAAe;IAEf,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACzB,QAAQ,IAAI,EAAE,CAAC;QACb,OAAO;QACP,KAAK,KAAK;YACR,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;QAE3B,SAAS;QACT,KAAK,MAAM;YACT,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC;QAChD,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACpC,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;YAC/B,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAC;YACvD,OAAO,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5B,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACpC,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,EAAE,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAC;YACnC,+EAA+E;YAC/E,+EAA+E;YAC/E,2FAA2F;YAC3F,iFAAiF;YACjF,+EAA+E;YAC/E,oFAAoF;YACpF,4EAA4E;YAC5E,IAAI,EAAU,CAAC;YACf,IAAI,EAAU,CAAC;YACf,IAAI,CAAC;gBACH,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;gBACvB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBAAE,OAAO,KAAK,CAAC;YACvE,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YAC9B,OAAO,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;QAChC,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACpC,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,EAAE,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAC;YACnC,IAAI,KAAc,CAAC;YACnB,IAAI,CAAC;gBACH,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;YAC5B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;YACD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBACxB,IAAI,EAAE,KAAK,SAAS,IAAI,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC;oBAAE,OAAO,IAAI,CAAC;YAC1D,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,0FAA0F;QAC1F,gFAAgF;QAChF,8EAA8E;QAC9E,wEAAwE;QACxE,sCAAsC;QACtC,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACpC,IAAI,CAAS,CAAC;YACd,IAAI,EAAU,CAAC;YACf,IAAI,EAAU,CAAC;YACf,IAAI,CAAC;gBACH,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAChB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;gBACvB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBAAE,OAAO,KAAK,CAAC;YACvE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,gCAAgC;YACjE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACpC,IAAI,CAAS,CAAC;YACd,IAAI,CAAC;gBACH,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC;QACD,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACtB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACpC,IAAI,CAAS,CAAC;YACd,IAAI,CAAC;gBACH,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;QACD,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACtB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACpC,IAAI,CAAS,CAAC;YACd,IAAI,CAAC;gBACH,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC;QAED,2DAA2D;QAC3D,oFAAoF;QACpF,oEAAoE;QACpE,KAAK,SAAS,CAAC;QACf,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACpC,IAAI,KAAa,CAAC;YAClB,IAAI,CAAS,CAAC;YACd,IAAI,CAAC;gBACH,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;gBAC1B,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC9C,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;QACtD,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACpC,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;YAC9B,IAAI,CAAC,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAC;YAClC,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC7B,QAAQ,IAAI,EAAE,CAAC;gBACb,6EAA6E;gBAC7E,4EAA4E;gBAC5E,sEAAsE;gBACtE,KAAK,KAAK;oBACR,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnC,KAAK,WAAW;oBACd,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/B,KAAK,MAAM;oBACT,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/B;oBACE,OAAO,KAAK,CAAC;YACjB,CAAC;QACH,CAAC;QAED,6EAA6E;QAC7E,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACxC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;YAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAE,EAAE,IAAI,CAAC,CAAC,CAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC;oBACxE,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACpC,IAAI,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACxC,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;gBAC7B,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC;oBAAE,OAAO,KAAK,CAAC;YAClF,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YAClC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;YACvB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACxC,MAAM,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,EAAE,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAC;YACnC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YACjD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;YACnC,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC;gBAAE,OAAO,KAAK,CAAC;YAChE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC,CAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC;oBAC1E,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,gFAAgF;QAChF,qDAAqD;QACrD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACpC,IAAI,KAAc,CAAC;YACnB,IAAI,CAAC;gBACH,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACtB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;YACD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC;oBAAE,OAAO,KAAK,CAAC;YAC/E,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACpC,IAAI,KAAc,CAAC;YACnB,IAAI,CAAC;gBACH,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACrB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;YACD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC;oBAAE,OAAO,KAAK,CAAC;YAC/E,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACpC,IAAI,OAA8B,CAAC;YACnC,IAAI,CAAC;gBACH,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACvB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;YACD,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;gBAC/B,IACE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC;oBAC1D,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,EAC5D,CAAC;oBACD,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,gFAAgF;QAChF,oCAAoC;QACpC,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YAClC,OAAO,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC/E,CAAC;QAED,uCAAuC;QACvC,uFAAuF;QACvF,oEAAoE;QACpE,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,KAAK,GAAG,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YACxC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;YAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxC,IAAI,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC;oBAAE,OAAO,IAAI,CAAC;YACjF,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,KAAK,GAAG,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YACxC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;YAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC;oBAAE,OAAO,KAAK,CAAC;YACnF,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACpC,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;QACpE,CAAC;QAED,iFAAiF;QACjF,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACpC,OAAO,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;QACjC,CAAC;QAED,qFAAqF;QACrF,sFAAsF;QACtF,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACpC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;YACpB,IAAI,CAAC,CAAC,EAAE,YAAY,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;YACxC,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;YACtB,6EAA6E;YAC7E,uDAAuD;YACvD,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACjC,OAAO,UAAU,CACf,CAAC,EACD,CAAC,EACD,IAAI,EACJ,MAAM,EACN,CAAC,CAAC,EACF,IAAI,CAAU,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAC9C,KAAK,GAAG,CAAC,EACT,MAAM,CACP,CAAC;QACJ,CAAC;QACD,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACpC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;YACpB,IAAI,CAAC,CAAC,EAAE,YAAY,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;YACxC,+EAA+E;YAC/E,6DAA6D;YAC7D,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;YAC7C,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAC,CAAC,oBAAoB;YAC3D,4EAA4E;YAC5E,6EAA6E;YAC7E,IAAI,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;YACnE,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,OAAO,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;QACjF,CAAC;QAED,6DAA6D;QAC7D;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AASD;;;GAGG;AACH,SAAS,SAAS,CAAC,CAAQ;IACzB,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,SAAS,CAAC;IAC5D,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACnB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACxC,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;IACrC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC7C,MAAM,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACjC,IAAI,QAAiB,CAAC;IACtB,IAAI,CAAC,KAAK,KAAK;QAAE,QAAQ,GAAG,IAAI,CAAC;SAC5B,IAAI,CAAC,KAAK,KAAK;QAAE,QAAQ,GAAG,KAAK,CAAC;;QAClC,OAAO,SAAS,CAAC;IACtB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAE,EAAE,CAAC;AAC1C,CAAC;AAED,SAAS,cAAc,CACrB,CAAU,EACV,CAAQ,EACR,IAAW,EACX,MAAwB,EACxB,EAAU,EACV,GAA8B,EAC9B,KAAa,EACb,MAAe;IAEf,4CAA4C;IAC5C,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,EAAE,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACnC,IAAI,IAAa,CAAC;IAClB,MAAM,CAAC,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;IAC3B,IAAI,CAAC,KAAK,MAAM;QAAE,IAAI,GAAG,IAAI,CAAC;SACzB,IAAI,CAAC,KAAK,QAAQ;QAAE,IAAI,GAAG,KAAK,CAAC;;QACjC,OAAO,KAAK,CAAC;IAClB,0CAA0C;IAC1C,IAAI,OAA8B,CAAC;IACnC,IAAI,CAAC;QACH,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IACD,iFAAiF;IACjF,8EAA8E;IAC9E,kFAAkF;IAClF,mFAAmF;IACnF,mFAAmF;IACnF,4DAA4D;IAC5D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAiB,CAAC;IACzC,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;QAC/B,IAAI,GAAW,CAAC;QAChB,IAAI,CAAC;YACH,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACxB,CAAC;IACD,+EAA+E;IAC/E,oFAAoF;IACpF,+EAA+E;IAC/E,mFAAmF;IACnF,gDAAgD;IAChD,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC;QAClC,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC,CAAC,6BAA6B;QAClE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,CAAC;YACb,2EAA2E;YAC3E,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC;gBAC/E,OAAO,KAAK,CAAC;QACjB,CAAC;aAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,iFAAiF;IACjF,oFAAoF;IACpF,iFAAiF;IACjF,yEAAyE;IACzE,IAAI,CAAC,IAAI,IAAI,OAAO,KAAK,OAAO,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACpD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,8EAA8E;AAE9E;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,KAAK,CAAC;QACX,KAAK,MAAM,CAAC;QACZ,KAAK,YAAY,CAAC;QAClB,KAAK,UAAU,CAAC;QAChB,KAAK,SAAS,CAAC;QACf,KAAK,SAAS,CAAC;QACf,KAAK,SAAS,CAAC;QACf,KAAK,UAAU,CAAC;QAChB,KAAK,aAAa,CAAC;QACnB,KAAK,gBAAgB,CAAC;QACtB,KAAK,gBAAgB,CAAC;QACtB,KAAK,QAAQ,CAAC;QACd,KAAK,OAAO;YACV,OAAO,IAAI,CAAC;QACd;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,CAAQ,EAAE,CAAQ;IAC/C,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACzD,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,cAAc,CAAC,CAAQ;IACrC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACzD,OAAO,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,mBAAmB,CACjC,CAAQ;IAER,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC;AAED,8EAA8E;AAC9E,0BAA0B;AAC1B,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,MAAM,UAAU,EAAE,CAAC,CAAQ;IACzB,OAAO,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,IAAI,CACX,CAAQ,EACR,KAAmC,EACnC,OAAqC,EACrC,KAAa;IAEb,oGAAoG;IACpG,wFAAwF;IACxF,0FAA0F;IAC1F,IAAI,KAAK,GAAG,mBAAmB;QAAE,OAAO,KAAK,CAAC;IAC9C,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAClC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACzB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,KAAK,CAAC;QACX,KAAK,MAAM;YACT,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;QAC3B,KAAK,YAAY;YACf,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAE,YAAY,IAAI,CAAC;QACvD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACpC,IAAI,EAAU,CAAC;YACf,IAAI,EAAU,CAAC;YACf,IAAI,CAAC;gBACH,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;gBACvB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;YACD,+FAA+F;YAC/F,sCAAsC;YACtC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBAAE,OAAO,KAAK,CAAC;YACvE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC9B,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACpC,IAAI,KAAc,CAAC;YACnB,IAAI,CAAC;gBACH,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;YAC5B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;YACD,0DAA0D;YAC1D,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC;QAC/C,CAAC;QACD,yFAAyF;QACzF,+FAA+F;QAC/F,4CAA4C;QAC5C,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACpC,IAAI,EAAU,CAAC;YACf,IAAI,EAAU,CAAC;YACf,IAAI,CAAC;gBACH,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;gBACvB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBAAE,OAAO,KAAK,CAAC;YACvE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC9B,CAAC;QACD,KAAK,aAAa,CAAC;QACnB,KAAK,gBAAgB,CAAC;QACtB,KAAK,gBAAgB;YACnB,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;QAC3B,KAAK,SAAS,CAAC;QACf,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACpC,IAAI,CAAC;gBACH,OAAO,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC;YAChD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACpC,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;YAC9B,IAAI,CAAC,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAC;YAClC,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC7B,OAAO,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,MAAM,CAAC;QACnE,CAAC;QACD,uEAAuE;QACvE,KAAK,OAAO;YACV,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QACnE,KAAK,KAAK;YACR,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC1E,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YAClC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,YAAY,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QAC5E,CAAC;QACD,KAAK,SAAS,CAAC;QACf,KAAK,QAAQ;YACX,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC1E,KAAK,QAAQ;YACX,OAAO,CACL,IAAI,CAAC,MAAM,KAAK,CAAC;gBACjB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,GAAG,CAAC,CAAC;gBAC3C,IAAI,CAAC,IAAI,CAAC,CAAC,CAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,GAAG,CAAC,CAAC,CAC5C,CAAC;QACJ,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YAClC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACzD,CAAC;QACD,+CAA+C;QAC/C,KAAK,OAAO,CAAC;QACb,KAAK,KAAK;YACR,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QACjE,KAAK,KAAK;YACR,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACxE,KAAK,OAAO;YACV,+CAA+C;YAC/C,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;QAC3B,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACpC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;YACpB,IAAI,CAAC,CAAC,EAAE,YAAY,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;YACxC,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;YACtB,0DAA0D;YAC1D,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACzC,CAAC;QACD,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACpC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;YACpB,IAAI,CAAC,CAAC,EAAE,YAAY,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;YACxC,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO,gBAAgB,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACvE,CAAC;QACD;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CACf,IAAW,EACX,MAAwB,EACxB,KAAmC,EACnC,KAAa;IAEb,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,EAAE,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACnC,MAAM,CAAC,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;IAC3B,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACjD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,GAAG,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAC7D,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC,CAAC,uBAAuB;QACnE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,kFAAkF;AAClF,qFAAqF;AACrF,SAAS,UAAU,CAAC,IAAW,EAAE,KAAY;IAC3C,MAAM,IAAI,GAAqB,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC/C,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAG,CAAC;QAC3B,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QACpC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACtB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;gBAAE,OAAO,KAAK,CAAC;QAC3E,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;gBAAE,OAAO,KAAK,CAAC;YACrC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAClB,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;YAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE;gBAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CACpB,GAA8B,EAC9B,IAAgB;IAEhB,KAAK,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9C,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,YAAY,CAAC,KAAiB;IACrC,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,KAAK,MAAM,CAAC,IAAI,KAAK;QAAE,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACnD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,2FAA2F;AAC3F,SAAS,EAAE,CAAC,EAAiB;IAC3B,IAAI,CAAC;QACH,EAAE,EAAE,CAAC;QACL,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|