@kernlang/python 3.5.9-canary.220.1.c398cd95 → 4.0.1-canary.222.1.f06f1a51
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/dist/codegen-body-python.d.ts +86 -0
- package/dist/codegen-body-python.js +894 -28
- package/dist/codegen-body-python.js.map +1 -1
- package/dist/codegen-helpers.d.ts +1 -0
- package/dist/codegen-helpers.js +19 -6
- package/dist/codegen-helpers.js.map +1 -1
- package/dist/codegen-python.d.ts +1 -1
- package/dist/codegen-python.js +6 -2
- package/dist/codegen-python.js.map +1 -1
- package/dist/core/expr/helpers.d.ts +1 -0
- package/dist/core/expr/helpers.js +109 -2
- package/dist/core/expr/helpers.js.map +1 -1
- package/dist/core/expr/index.d.ts +1 -1
- package/dist/core/expr/index.js +214 -87
- package/dist/core/expr/index.js.map +1 -1
- package/dist/core/expr/list-ops.d.ts +81 -0
- package/dist/core/expr/list-ops.js +228 -0
- package/dist/core/expr/list-ops.js.map +1 -0
- package/dist/core/handlers/index.js +1 -0
- package/dist/core/handlers/index.js.map +1 -1
- package/dist/fastapi-portable.js +1 -0
- package/dist/fastapi-portable.js.map +1 -1
- package/dist/fastapi-route.js +132 -24
- package/dist/fastapi-route.js.map +1 -1
- package/dist/generators/data.d.ts +2 -0
- package/dist/generators/data.js +417 -14
- package/dist/generators/data.js.map +1 -1
- package/dist/generators/ground.js +52 -14
- package/dist/generators/ground.js.map +1 -1
- package/dist/targets/python.js +10 -0
- package/dist/targets/python.js.map +1 -1
- package/dist/type-map.d.ts +15 -0
- package/dist/type-map.js +46 -0
- package/dist/type-map.js.map +1 -1
- package/package.json +2 -2
package/dist/generators/data.js
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
* Data layer generators — Python generation for KERN's data nodes:
|
|
3
3
|
* model, repository, cache, dependency, service, union
|
|
4
4
|
*/
|
|
5
|
-
import { emitIdentifier, getFirstChild, getProps, handlerCode, mapSemanticType, propsOf } from '@kernlang/core';
|
|
5
|
+
import { emitIdentifier, getFirstChild, getProps, handlerCode, hasDirectSuperCtorCall, isExprObject, mapSemanticType, propsOf, } from '@kernlang/core';
|
|
6
6
|
import { emitNativeKernBodyPythonWithImports } from '../codegen-body-python.js';
|
|
7
7
|
import { buildPythonParamList, firstChild, kids, p, parseLegacyParamParts } from '../codegen-helpers.js';
|
|
8
|
-
import {
|
|
8
|
+
import { mapTsTypeToPythonAnnotation, toSnakeCase } from '../type-map.js';
|
|
9
9
|
/** Slice 4b — native KERN method body dispatch (Python target).
|
|
10
10
|
*
|
|
11
11
|
* Returns `{ code, imports }` for a method's handler. When the handler
|
|
@@ -19,17 +19,28 @@ import { mapTsTypeToPython, toSnakeCase } from '../type-map.js';
|
|
|
19
19
|
*
|
|
20
20
|
* When the handler is legacy raw, returns `{ code: handlerCode(method),
|
|
21
21
|
* imports: empty }`. */
|
|
22
|
-
function methodBodyCodePython(method) {
|
|
22
|
+
function methodBodyCodePython(method, opts) {
|
|
23
23
|
const handler = getFirstChild(method, 'handler');
|
|
24
24
|
if (!handler || getProps(handler).lang !== 'kern') {
|
|
25
25
|
return { code: handlerCode(method), imports: new Set(), helpers: new Set() };
|
|
26
26
|
}
|
|
27
27
|
const symbolMap = {};
|
|
28
|
-
|
|
28
|
+
// The implicit receiver occupies the first parameter slot: `self` for an
|
|
29
|
+
// instance member, `cls` for a static accessor (metaclass property). A user
|
|
30
|
+
// parameter that snake-cases to the receiver name would emit invalid Python
|
|
31
|
+
// (e.g. `def label(cls, cls):`), so reserve it and fail codegen early with a
|
|
32
|
+
// clear message rather than generate a SyntaxError.
|
|
33
|
+
const receiver = opts?.staticReceiver ? 'cls' : 'self';
|
|
34
|
+
const claimedSnake = new Set([receiver]);
|
|
29
35
|
const recordParam = (rawName) => {
|
|
30
36
|
if (!rawName)
|
|
31
37
|
return;
|
|
32
38
|
const snake = toSnakeCase(rawName);
|
|
39
|
+
if (snake === receiver) {
|
|
40
|
+
throw new Error(`KERN-Python codegen: parameter '${rawName}' snake-cases to '${snake}', the implicit ` +
|
|
41
|
+
`${opts?.staticReceiver ? 'static-accessor receiver (cls)' : 'method receiver (self)'}. ` +
|
|
42
|
+
'Rename the parameter to avoid shadowing the receiver.');
|
|
43
|
+
}
|
|
33
44
|
if (claimedSnake.has(snake)) {
|
|
34
45
|
throw new Error(`KERN-Python codegen: method param '${rawName}' snake-cases to '${snake}', which collides with another param on this method. ` +
|
|
35
46
|
'Rename one of the parameters to disambiguate.');
|
|
@@ -54,7 +65,16 @@ function methodBodyCodePython(method) {
|
|
|
54
65
|
recordParam(part.name);
|
|
55
66
|
}
|
|
56
67
|
}
|
|
57
|
-
|
|
68
|
+
// Class member bodies: `this` resolves to `self`, and `super(...)`/`super.x`
|
|
69
|
+
// lower to `super().__init__(...)`/`super().x` via the inClassBody flag.
|
|
70
|
+
// In a static accessor (metaclass property) body `this` is the class -> `cls`.
|
|
71
|
+
if (opts?.classBody)
|
|
72
|
+
symbolMap.this = opts?.staticReceiver ? 'cls' : 'self';
|
|
73
|
+
const { code, imports, helpers } = emitNativeKernBodyPythonWithImports(handler, {
|
|
74
|
+
symbolMap,
|
|
75
|
+
inClassBody: opts?.classBody ?? false,
|
|
76
|
+
inConstructor: opts?.isConstructor ?? false,
|
|
77
|
+
});
|
|
58
78
|
return { code, imports, helpers };
|
|
59
79
|
}
|
|
60
80
|
/** Slice 4b — flatten a method's body code + per-method imports into the
|
|
@@ -63,8 +83,8 @@ function methodBodyCodePython(method) {
|
|
|
63
83
|
* scope absorbs them, and Python caches modules after first import.
|
|
64
84
|
* Returns the indented lines (4-space prefix) ready to push into the
|
|
65
85
|
* enclosing class definition. Empty body yields a single `pass`. */
|
|
66
|
-
function methodBodyLinesPython(method) {
|
|
67
|
-
const { code, imports, helpers } = methodBodyCodePython(method);
|
|
86
|
+
function methodBodyLinesPython(method, opts) {
|
|
87
|
+
const { code, imports, helpers } = methodBodyCodePython(method, opts);
|
|
68
88
|
const lines = [];
|
|
69
89
|
for (const mod of [...imports].sort()) {
|
|
70
90
|
lines.push(` import ${mod} as __k_${mod}`);
|
|
@@ -112,6 +132,27 @@ export function formatPythonDefault(value, kernType) {
|
|
|
112
132
|
}
|
|
113
133
|
return trimmed;
|
|
114
134
|
}
|
|
135
|
+
/** Lower a field's default to a Python expression, or undefined when none.
|
|
136
|
+
* A `value={{ <expr> }}` block parses to `{ __expr: true, code: '<expr>' }`;
|
|
137
|
+
* a bare `default=...` is a raw string. `new X(...)` -> `X(...)`; literals go
|
|
138
|
+
* through formatPythonDefault (true/false/null/number/string handling). */
|
|
139
|
+
function fieldDefaultPython(field) {
|
|
140
|
+
const fp = p(field);
|
|
141
|
+
const v = fp.value;
|
|
142
|
+
let code;
|
|
143
|
+
if (v && typeof v === 'object' && v.__expr) {
|
|
144
|
+
code = v.code;
|
|
145
|
+
}
|
|
146
|
+
else if (typeof v === 'string') {
|
|
147
|
+
code = v;
|
|
148
|
+
}
|
|
149
|
+
else if (typeof fp.default === 'string') {
|
|
150
|
+
code = fp.default;
|
|
151
|
+
}
|
|
152
|
+
if (code === undefined)
|
|
153
|
+
return undefined;
|
|
154
|
+
return formatPythonDefault(code.replace(/\bnew\s+/g, ''), fp.type || '');
|
|
155
|
+
}
|
|
115
156
|
// SQLModel column override: pydantic validator types -> plain DB types for column declarations
|
|
116
157
|
const SQLMODEL_COLUMN_OVERRIDE = {
|
|
117
158
|
Email: 'str',
|
|
@@ -244,8 +285,11 @@ export function generatePythonRepository(node) {
|
|
|
244
285
|
const asyncKw = isAsync ? 'async ' : '';
|
|
245
286
|
// Slice 3c P2 follow-up: target-neutral helper reads structured `param`
|
|
246
287
|
// children when present, falls back to legacy `params="..."` otherwise.
|
|
247
|
-
|
|
248
|
-
|
|
288
|
+
// Lazy annotations (mirror of fb0bd72a for generatePythonClass): a member
|
|
289
|
+
// signature that references a custom/forward class name must be quoted so
|
|
290
|
+
// Python's eager annotation evaluation doesn't NameError on the ref.
|
|
291
|
+
const params = buildPythonParamList(method, { selfPrefix: true, lazyAnnotations: true });
|
|
292
|
+
const returns = mp.returns ? ` -> ${mapTsTypeToPythonAnnotation(mp.returns)}` : '';
|
|
249
293
|
lines.push(` ${asyncKw}def ${mname}(${params})${returns}:`);
|
|
250
294
|
// Slice 4b — methodBodyLinesPython dispatches lang=kern, builds symbol
|
|
251
295
|
// map, injects required imports inline, and falls back to raw handler
|
|
@@ -328,7 +372,12 @@ export function generatePythonDependency(node) {
|
|
|
328
372
|
lines.push(`_${name}_instance = None`);
|
|
329
373
|
lines.push('');
|
|
330
374
|
}
|
|
331
|
-
|
|
375
|
+
// Lazy annotation (mirror of d1c209de): the factory's return annotation may
|
|
376
|
+
// reference a forward-defined class, so quote it to avoid an eager-evaluation
|
|
377
|
+
// NameError. Only the ANNOTATION is mapped — `returnsType` is reused verbatim
|
|
378
|
+
// below as a CONSTRUCTOR CALL (`instance = ${returnsType}(...)`), an evaluated
|
|
379
|
+
// position that must stay a bare name.
|
|
380
|
+
lines.push(`def create_${name}() -> ${mapTsTypeToPythonAnnotation(returnsType)}:`);
|
|
332
381
|
if (scope === 'singleton') {
|
|
333
382
|
lines.push(` global _${name}_instance`);
|
|
334
383
|
lines.push(` if _${name}_instance:`);
|
|
@@ -380,7 +429,9 @@ export function generatePythonService(node) {
|
|
|
380
429
|
.map((f) => {
|
|
381
430
|
const fp = p(f);
|
|
382
431
|
const fname = toSnakeCase(fp.name || 'field');
|
|
383
|
-
|
|
432
|
+
// Lazy annotation (mirror of fb0bd72a): a ctor field typed with a custom
|
|
433
|
+
// class name must be quoted so the eager annotation doesn't NameError.
|
|
434
|
+
const ftype = fp.type ? mapTsTypeToPythonAnnotation(fp.type) : 'Any';
|
|
384
435
|
return `${fname}: ${ftype}`;
|
|
385
436
|
})
|
|
386
437
|
.join(', ');
|
|
@@ -404,8 +455,10 @@ export function generatePythonService(node) {
|
|
|
404
455
|
const asyncKw = isAsync ? 'async ' : '';
|
|
405
456
|
// Slice 3c P2 follow-up: target-neutral helper reads structured `param`
|
|
406
457
|
// children when present, falls back to legacy `params="..."` otherwise.
|
|
407
|
-
|
|
408
|
-
|
|
458
|
+
// Lazy annotations (mirror of fb0bd72a): a service member signature
|
|
459
|
+
// referencing a custom/forward class name is quoted to avoid a NameError.
|
|
460
|
+
const params = buildPythonParamList(method, { selfPrefix: true, lazyAnnotations: true });
|
|
461
|
+
const returns = mp.returns ? ` -> ${mapTsTypeToPythonAnnotation(mp.returns)}` : '';
|
|
409
462
|
lines.push(` ${asyncKw}def ${mname}(${params})${returns}:`);
|
|
410
463
|
// Slice 4b — same method dispatch as repository, sharing the helper.
|
|
411
464
|
const bodyLines = methodBodyLinesPython(method);
|
|
@@ -420,6 +473,231 @@ export function generatePythonService(node) {
|
|
|
420
473
|
}
|
|
421
474
|
return lines;
|
|
422
475
|
}
|
|
476
|
+
// ── Class (single-source class slice, Python target) ────────────────────
|
|
477
|
+
// Phase 1: structural shell parity with the TS `emitClassBody`. Emits the
|
|
478
|
+
// class header + `extends` base, static fields as class attributes, the
|
|
479
|
+
// constructor as `__init__`, instance/static methods, and getters/setters via
|
|
480
|
+
// `@property`. Method/ctor bodies route through the shared
|
|
481
|
+
// `methodBodyLinesPython`; full class-body symbol translation
|
|
482
|
+
// (`this`->`self`, `super.m()`->`super().m()`, `new X()`->`X()`) is the next
|
|
483
|
+
// sub-problem the differential class fixtures will drive.
|
|
484
|
+
export function generatePythonClass(node) {
|
|
485
|
+
const props = p(node);
|
|
486
|
+
const name = emitIdentifier(props.name, 'UnknownClass', node);
|
|
487
|
+
const baseRaw = typeof props.extends === 'string' ? props.extends : '';
|
|
488
|
+
const base = baseRaw ? emitIdentifier(baseRaw, 'object', node) : '';
|
|
489
|
+
const isStatic = (n) => {
|
|
490
|
+
const np = p(n);
|
|
491
|
+
return np.static === 'true' || np.static === true;
|
|
492
|
+
};
|
|
493
|
+
// `abstract` is ERASED at codegen on both targets (a plain, instantiable
|
|
494
|
+
// class — matching TS, where `abstract` is compile-time-only and gone from
|
|
495
|
+
// emitted JS). An abstract member is a handler-less method/getter/setter under
|
|
496
|
+
// an abstract class; it lowers to a fail-fast `raise`, so an un-overridden
|
|
497
|
+
// abstract member fails identically on TS (throw) and Python (raise) — parity
|
|
498
|
+
// by construction. `implements` is likewise erased (the semantic validator
|
|
499
|
+
// owns conformance); only a human-readable marker comment is emitted.
|
|
500
|
+
const isAbstractClass = props.abstract === 'true' || props.abstract === true;
|
|
501
|
+
const implementsRaw = typeof props.implements === 'string' ? props.implements : '';
|
|
502
|
+
const isAbstractMember = (m) => isAbstractClass && firstChild(m, 'handler') === undefined;
|
|
503
|
+
const abstractRaise = (kind, memberName) => ` raise NotImplementedError("abstract ${kind} ${name}.${memberName} not implemented")`;
|
|
504
|
+
const fields = kids(node, 'field');
|
|
505
|
+
const staticFields = fields.filter(isStatic);
|
|
506
|
+
const methods = kids(node, 'method');
|
|
507
|
+
const getters = kids(node, 'getter');
|
|
508
|
+
const setters = kids(node, 'setter');
|
|
509
|
+
const ctor = firstChild(node, 'constructor');
|
|
510
|
+
// Static accessors (static get/set) lower to a per-class metaclass: both
|
|
511
|
+
// `Box.label` reads and `Box.label = x` writes dispatch through the metaclass
|
|
512
|
+
// @property/.setter (a plain descriptor would be shadowed on assignment). The
|
|
513
|
+
// static backing field stays a class attribute. The metaclass extends
|
|
514
|
+
// `type(<base>)` so that when the base ALSO has static accessors the derived
|
|
515
|
+
// metaclass subclasses the base metaclass (no `metaclass conflict`, and the
|
|
516
|
+
// base's static accessors are inherited); when the base has none, `type(<base>)`
|
|
517
|
+
// is just `type`.
|
|
518
|
+
const staticGetters = getters.filter(isStatic);
|
|
519
|
+
const staticSetters = setters.filter(isStatic);
|
|
520
|
+
const metaName = `_${name}Meta`;
|
|
521
|
+
const metaLines = [];
|
|
522
|
+
if (staticGetters.length + staticSetters.length > 0) {
|
|
523
|
+
metaLines.push(`class ${metaName}(${base ? `type(${base})` : 'type'}):`);
|
|
524
|
+
const metaGetterNames = new Set();
|
|
525
|
+
for (const g of staticGetters) {
|
|
526
|
+
const gp = p(g);
|
|
527
|
+
const gname = toSnakeCase(gp.name || 'prop');
|
|
528
|
+
const returns = gp.returns ? ` -> ${mapTsTypeToPythonAnnotation(gp.returns)}` : '';
|
|
529
|
+
metaGetterNames.add(gname);
|
|
530
|
+
metaLines.push(' @property');
|
|
531
|
+
metaLines.push(` def ${gname}(cls)${returns}:`);
|
|
532
|
+
// Abstract static accessors fail-fast like instance ones, so an
|
|
533
|
+
// un-overridden abstract static getter raises on Python the same way it
|
|
534
|
+
// throws on TS (was silently `pass` -> None before).
|
|
535
|
+
if (isAbstractMember(g)) {
|
|
536
|
+
metaLines.push(abstractRaise('getter', gname));
|
|
537
|
+
}
|
|
538
|
+
else {
|
|
539
|
+
metaLines.push(...methodBodyLinesPython(g, { classBody: true, staticReceiver: true }));
|
|
540
|
+
}
|
|
541
|
+
metaLines.push('');
|
|
542
|
+
}
|
|
543
|
+
for (const s of staticSetters) {
|
|
544
|
+
const sname = toSnakeCase(p(s).name || 'prop');
|
|
545
|
+
if (!metaGetterNames.has(sname)) {
|
|
546
|
+
metaLines.push(' @property');
|
|
547
|
+
metaLines.push(` def ${sname}(cls): # write-only static property`);
|
|
548
|
+
metaLines.push(' return None');
|
|
549
|
+
metaLines.push('');
|
|
550
|
+
metaGetterNames.add(sname);
|
|
551
|
+
}
|
|
552
|
+
metaLines.push(` @${sname}.setter`);
|
|
553
|
+
metaLines.push(` def ${sname}(cls, ${buildPythonParamList(s, { selfPrefix: false, lazyAnnotations: true })}):`);
|
|
554
|
+
if (isAbstractMember(s)) {
|
|
555
|
+
metaLines.push(abstractRaise('setter', sname));
|
|
556
|
+
}
|
|
557
|
+
else {
|
|
558
|
+
metaLines.push(...methodBodyLinesPython(s, { classBody: true, staticReceiver: true }));
|
|
559
|
+
}
|
|
560
|
+
metaLines.push('');
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
const baseParts = [base, metaLines.length > 0 ? `metaclass=${metaName}` : ''].filter(Boolean);
|
|
564
|
+
const header = baseParts.length > 0 ? `class ${name}(${baseParts.join(', ')}):` : `class ${name}:`;
|
|
565
|
+
const body = [];
|
|
566
|
+
// Static fields -> class-level attributes (shared across instances, like TS statics).
|
|
567
|
+
for (const f of staticFields) {
|
|
568
|
+
const fp = p(f);
|
|
569
|
+
const fname = toSnakeCase(fp.name || 'field');
|
|
570
|
+
const ftype = fp.type ? mapTsTypeToPythonAnnotation(fp.type) : 'Any';
|
|
571
|
+
body.push(` ${fname}: ${ftype} = ${fieldDefaultPython(f) ?? 'None'}`);
|
|
572
|
+
}
|
|
573
|
+
if (staticFields.length > 0)
|
|
574
|
+
body.push('');
|
|
575
|
+
// Constructor -> __init__. Instance-field defaults are emitted INSIDE __init__
|
|
576
|
+
// (never as class-level attributes) so each instance gets a fresh value —
|
|
577
|
+
// matching TS per-instance field initialization and avoiding Python's
|
|
578
|
+
// shared-mutable-default trap (a class-level `items = []` would be shared by
|
|
579
|
+
// every instance). Defaults precede the constructor body, which may reassign
|
|
580
|
+
// them (TS field-init-then-constructor order).
|
|
581
|
+
const instanceDefaults = fields.filter((f) => !isStatic(f) && fieldDefaultPython(f) !== undefined);
|
|
582
|
+
const defaultLines = instanceDefaults.map((f) => ` self.${toSnakeCase(p(f).name || 'field')} = ${fieldDefaultPython(f)}`);
|
|
583
|
+
if (ctor) {
|
|
584
|
+
body.push(` def __init__(${buildPythonParamList(ctor, { selfPrefix: true, lazyAnnotations: true })}):`);
|
|
585
|
+
const ctorLines = methodBodyLinesPython(ctor, { classBody: true, isConstructor: true });
|
|
586
|
+
// Whether the constructor already calls super(...) is decided by the canonical
|
|
587
|
+
// structural predicate (shared with the validator, runtime, and TS target) —
|
|
588
|
+
// NEVER by scanning emitted text, so a `super().__init__` substring inside a
|
|
589
|
+
// string literal or comment can't change codegen. Field initializers run AFTER
|
|
590
|
+
// super (TS field-init-after-super order).
|
|
591
|
+
if (hasDirectSuperCtorCall(ctor)) {
|
|
592
|
+
// Explicit-super mode: position the field defaults right after the emitted
|
|
593
|
+
// super line. The predicate already proved a direct super exists, so this
|
|
594
|
+
// locates the real call (a native super(...) lowers to `super().__init__(...)`);
|
|
595
|
+
// the index is used only for placement, not the inject decision.
|
|
596
|
+
const superIdx = ctorLines.findIndex((line) => line.includes('super().__init__'));
|
|
597
|
+
const splice = superIdx >= 0 ? superIdx + 1 : 0;
|
|
598
|
+
body.push(...ctorLines.slice(0, splice), ...defaultLines, ...ctorLines.slice(splice));
|
|
599
|
+
}
|
|
600
|
+
else if (base) {
|
|
601
|
+
// Implicit-super mode (KERN Option C): a DERIVED constructor that omits
|
|
602
|
+
// super() gets an implicit no-arg base-init injected FIRST, then field
|
|
603
|
+
// defaults, then the body — so `this`/field access is always legal (TS
|
|
604
|
+
// requires super-before-this; Python is lax, but we emit identically for
|
|
605
|
+
// parity). The author writes explicit `super(args)` only to pass args up;
|
|
606
|
+
// when the base constructor REQUIRES args, the validator flags it.
|
|
607
|
+
body.push(' super().__init__()', ...defaultLines, ...ctorLines);
|
|
608
|
+
}
|
|
609
|
+
else {
|
|
610
|
+
body.push(...defaultLines, ...ctorLines);
|
|
611
|
+
}
|
|
612
|
+
body.push('');
|
|
613
|
+
}
|
|
614
|
+
else if (instanceDefaults.length > 0) {
|
|
615
|
+
// No explicit constructor. A derived class still forwards to its base
|
|
616
|
+
// initializer (TS subclasses without a constructor auto-forward args), then
|
|
617
|
+
// applies its own field defaults.
|
|
618
|
+
if (base) {
|
|
619
|
+
body.push(' def __init__(self, *args, **kwargs):');
|
|
620
|
+
body.push(' super().__init__(*args, **kwargs)');
|
|
621
|
+
}
|
|
622
|
+
else {
|
|
623
|
+
body.push(' def __init__(self):');
|
|
624
|
+
}
|
|
625
|
+
body.push(...defaultLines);
|
|
626
|
+
body.push('');
|
|
627
|
+
}
|
|
628
|
+
// Methods (instance + static).
|
|
629
|
+
for (const m of methods) {
|
|
630
|
+
const mp = p(m);
|
|
631
|
+
const mname = toSnakeCase(mp.name || 'method');
|
|
632
|
+
const asyncKw = mp.async === 'true' || mp.async === true ? 'async ' : '';
|
|
633
|
+
const returns = mp.returns ? ` -> ${mapTsTypeToPythonAnnotation(mp.returns)}` : '';
|
|
634
|
+
if (isStatic(m)) {
|
|
635
|
+
body.push(' @staticmethod');
|
|
636
|
+
body.push(` ${asyncKw}def ${mname}(${buildPythonParamList(m, { selfPrefix: false, lazyAnnotations: true })})${returns}:`);
|
|
637
|
+
}
|
|
638
|
+
else {
|
|
639
|
+
body.push(` ${asyncKw}def ${mname}(${buildPythonParamList(m, { selfPrefix: true, lazyAnnotations: true })})${returns}:`);
|
|
640
|
+
}
|
|
641
|
+
if (isAbstractMember(m)) {
|
|
642
|
+
body.push(abstractRaise('method', mname));
|
|
643
|
+
}
|
|
644
|
+
else {
|
|
645
|
+
body.push(...methodBodyLinesPython(m, { classBody: !isStatic(m) }));
|
|
646
|
+
}
|
|
647
|
+
body.push('');
|
|
648
|
+
}
|
|
649
|
+
// Getters -> @property. Static getters were already emitted on the metaclass.
|
|
650
|
+
const instanceGetterNames = new Set();
|
|
651
|
+
for (const g of getters) {
|
|
652
|
+
if (isStatic(g))
|
|
653
|
+
continue;
|
|
654
|
+
const gp = p(g);
|
|
655
|
+
const gname = toSnakeCase(gp.name || 'prop');
|
|
656
|
+
instanceGetterNames.add(gname);
|
|
657
|
+
const returns = gp.returns ? ` -> ${mapTsTypeToPythonAnnotation(gp.returns)}` : '';
|
|
658
|
+
body.push(' @property');
|
|
659
|
+
body.push(` def ${gname}(self)${returns}:`);
|
|
660
|
+
if (isAbstractMember(g)) {
|
|
661
|
+
body.push(abstractRaise('getter', gname));
|
|
662
|
+
}
|
|
663
|
+
else {
|
|
664
|
+
body.push(...methodBodyLinesPython(g, { classBody: true }));
|
|
665
|
+
}
|
|
666
|
+
body.push('');
|
|
667
|
+
}
|
|
668
|
+
// Setters -> @<name>.setter. Python requires a property to exist before its
|
|
669
|
+
// `.setter`; KERN allows setter-only properties, so synthesize a getter when
|
|
670
|
+
// none was declared (write-only -> returns None, matching a TS getter-less read).
|
|
671
|
+
for (const s of setters) {
|
|
672
|
+
if (isStatic(s))
|
|
673
|
+
continue; // static setters were already emitted on the metaclass
|
|
674
|
+
const sp = p(s);
|
|
675
|
+
const sname = toSnakeCase(sp.name || 'prop');
|
|
676
|
+
if (!instanceGetterNames.has(sname)) {
|
|
677
|
+
body.push(' @property');
|
|
678
|
+
body.push(` def ${sname}(self): # write-only property (no getter declared in KERN)`);
|
|
679
|
+
body.push(' return None');
|
|
680
|
+
body.push('');
|
|
681
|
+
instanceGetterNames.add(sname);
|
|
682
|
+
}
|
|
683
|
+
body.push(` @${sname}.setter`);
|
|
684
|
+
body.push(` def ${sname}(${buildPythonParamList(s, { selfPrefix: true, lazyAnnotations: true })}):`);
|
|
685
|
+
if (isAbstractMember(s)) {
|
|
686
|
+
body.push(abstractRaise('setter', sname));
|
|
687
|
+
}
|
|
688
|
+
else {
|
|
689
|
+
body.push(...methodBodyLinesPython(s, { classBody: true }));
|
|
690
|
+
}
|
|
691
|
+
body.push('');
|
|
692
|
+
}
|
|
693
|
+
if (body.length === 0)
|
|
694
|
+
body.push(' pass');
|
|
695
|
+
// `implements` is erased at codegen (the validator owns conformance); emit a
|
|
696
|
+
// human-readable marker so the relationship survives in the generated source.
|
|
697
|
+
const headerLines = implementsRaw ? [`# implements: ${implementsRaw}`, header] : [header];
|
|
698
|
+
// Metaclass (if any) must be defined before the class that references it.
|
|
699
|
+
return metaLines.length > 0 ? [...metaLines, ...headerLines, ...body] : [...headerLines, ...body];
|
|
700
|
+
}
|
|
423
701
|
// ── Union (Pydantic Discriminated Union) ────────────────────────────────
|
|
424
702
|
// union name=ContentSegment discriminant=type
|
|
425
703
|
// variant name=prose
|
|
@@ -450,7 +728,13 @@ export function generatePythonUnion(node) {
|
|
|
450
728
|
for (const field of fields) {
|
|
451
729
|
const fp = p(field);
|
|
452
730
|
const fname = toSnakeCase(fp.name || 'field');
|
|
453
|
-
|
|
731
|
+
// Lazy annotation (mirror of fb0bd72a/d1c209de): a variant field is a
|
|
732
|
+
// dataclass-style member of a `class …(BaseModel):` body, evaluated
|
|
733
|
+
// EAGERLY at import time — a custom/forward class name must be quoted to
|
|
734
|
+
// avoid a NameError. The module-level `${name} = Union[...]` alias below is
|
|
735
|
+
// built from the (already-defined) variant CLASS names, not this mapper, so
|
|
736
|
+
// it stays unquoted (an evaluated TypeAlias, not a class-body annotation).
|
|
737
|
+
const ftype = mapTsTypeToPythonAnnotation(fp.type || 'Any');
|
|
454
738
|
const isOptional = fp.optional === 'true' || fp.optional === true;
|
|
455
739
|
if (isOptional) {
|
|
456
740
|
lines.push(` ${fname}: ${ftype} | None = None`);
|
|
@@ -467,4 +751,123 @@ export function generatePythonUnion(node) {
|
|
|
467
751
|
lines.push(`${name} = Union[${variantClassNames.join(', ')}]`);
|
|
468
752
|
return lines;
|
|
469
753
|
}
|
|
754
|
+
// ── Enum (plain namespace class) ─────────────────────────────────────────
|
|
755
|
+
// enum name=Status values="Pending|Active|Done"
|
|
756
|
+
// -> class Status:
|
|
757
|
+
// Pending = 0
|
|
758
|
+
// Active = 1
|
|
759
|
+
// Done = 2
|
|
760
|
+
//
|
|
761
|
+
// enum name=Direction
|
|
762
|
+
// member name=Up value="UP"
|
|
763
|
+
// member name=Down value="DOWN"
|
|
764
|
+
// -> class Direction:
|
|
765
|
+
// Up = "UP"
|
|
766
|
+
// Down = "DOWN"
|
|
767
|
+
//
|
|
768
|
+
// Tribunal-decided representation (run tribunal-1781176354539): a PLAIN
|
|
769
|
+
// namespace class, NOT enum.Enum / IntEnum / StrEnum / a metaclass, and NO
|
|
770
|
+
// runtime library import. Members evaluate to bare `int`/`str`, so equality,
|
|
771
|
+
// arithmetic, JSON serialization and fmt interpolation all behave identically
|
|
772
|
+
// to the TS `enum` (which compiles to plain numbers/strings too) WITHOUT any
|
|
773
|
+
// runtime support — parity by construction.
|
|
774
|
+
//
|
|
775
|
+
// The implicit-numeric semantics MIRROR the TS emitter (generateEnum in
|
|
776
|
+
// packages/core/src/codegen/type-system.ts) EXACTLY, which in turn mirrors
|
|
777
|
+
// TypeScript's own enum value assignment:
|
|
778
|
+
// - the `values="A|B|C"` pipe form auto-numbers 0, 1, 2, …
|
|
779
|
+
// - a bare member child (no `value=`) takes `<previous numeric> + 1`, or 0
|
|
780
|
+
// when it is the first member
|
|
781
|
+
// - a member with an explicit numeric `value=N` resets the running counter,
|
|
782
|
+
// so the next bare member is `N + 1` (verified against tsc runtime output:
|
|
783
|
+
// `A=10, B, C=30, D` -> 10, 11, 30, 31).
|
|
784
|
+
// `export=` is intentionally ignored here, mirroring generatePythonClass /
|
|
785
|
+
// generatePythonUnion (see line ~617): Python module-level names are importable
|
|
786
|
+
// by definition, so there is no `export` keyword to emit. `const=true` produces
|
|
787
|
+
// the SAME class — TS forbids reverse-map access on const enums anyway, and the
|
|
788
|
+
// core symmetric gate rejects `Enum[0]` / `Object.keys(Enum)` on both targets,
|
|
789
|
+
// so dropping the (absent) const inlining diverges from nothing.
|
|
790
|
+
export function generatePythonEnum(node) {
|
|
791
|
+
const props = propsOf(node);
|
|
792
|
+
const name = emitIdentifier(props.name, 'UnknownEnum', node);
|
|
793
|
+
const body = [];
|
|
794
|
+
// Running implicit counter — the next value a bare member would receive.
|
|
795
|
+
// Reset to `explicitNumeric + 1` after each explicit numeric member, exactly
|
|
796
|
+
// as TypeScript's enum auto-increment does. `null` = the previous member's
|
|
797
|
+
// value is not statically numeric (expression / string member): a bare
|
|
798
|
+
// member then emits `<prevName> + 1` — the class body evaluates members in
|
|
799
|
+
// order, so the prior attribute is referencable, and the successor mirrors
|
|
800
|
+
// TS auto-increment BY CONSTRUCTION (kern-codex probe: `A = 1 << 0` then
|
|
801
|
+
// bare B is 2 in TS; a stale numeric counter silently emitted B = 0).
|
|
802
|
+
let nextImplicit = 0;
|
|
803
|
+
let prevName = null;
|
|
804
|
+
const emitBare = (mname) => nextImplicit !== null ? ` ${mname} = ${nextImplicit}` : ` ${mname} = ${prevName} + 1`;
|
|
805
|
+
const memberChildren = kids(node, 'member');
|
|
806
|
+
if (memberChildren.length > 0) {
|
|
807
|
+
for (const m of memberChildren) {
|
|
808
|
+
const mp = propsOf(m);
|
|
809
|
+
const mname = emitIdentifier(mp.name, 'unknownMember', m);
|
|
810
|
+
const rawVal = mp.value;
|
|
811
|
+
if (rawVal === undefined || rawVal === '') {
|
|
812
|
+
// Bare member -> implicit successor (numeric counter, or symbolic
|
|
813
|
+
// `prev + 1` when the previous value is an expression).
|
|
814
|
+
body.push(emitBare(mname));
|
|
815
|
+
if (nextImplicit !== null)
|
|
816
|
+
nextImplicit += 1;
|
|
817
|
+
// After a symbolic successor the NEXT bare member chains (`C = B + 1`),
|
|
818
|
+
// which `prevName` tracking below gives us for free.
|
|
819
|
+
}
|
|
820
|
+
else if (isExprObject(rawVal)) {
|
|
821
|
+
// ExprObject escape hatch: emit the carried code verbatim. The value is
|
|
822
|
+
// not statically known, so the counter goes symbolic (`prev + 1`).
|
|
823
|
+
body.push(` ${mname} = ${rawVal.code}`);
|
|
824
|
+
nextImplicit = null;
|
|
825
|
+
}
|
|
826
|
+
else if (typeof rawVal === 'string') {
|
|
827
|
+
const isQuoted = m.__quotedProps?.includes('value') === true;
|
|
828
|
+
if (isQuoted) {
|
|
829
|
+
// Explicit string member -> Python string literal. A bare member
|
|
830
|
+
// after a string member is invalid in TS (tsc errors); the symbolic
|
|
831
|
+
// `prev + 1` mirrors that as a Python TypeError at class definition —
|
|
832
|
+
// an error on both targets, fail-closed.
|
|
833
|
+
body.push(` ${mname} = ${JSON.stringify(rawVal)}`);
|
|
834
|
+
nextImplicit = null;
|
|
835
|
+
}
|
|
836
|
+
else {
|
|
837
|
+
// Bare (unquoted) value: numeric literals seed the implicit counter
|
|
838
|
+
// (matching TS — ANY finite numeric seeds it: after `A = 1.5` a bare
|
|
839
|
+
// member is 2.5 in TS, so integer-only seeding silently diverged),
|
|
840
|
+
// anything else is emitted verbatim with a symbolic counter.
|
|
841
|
+
const asNum = Number(rawVal);
|
|
842
|
+
if (rawVal.trim() !== '' && Number.isFinite(asNum)) {
|
|
843
|
+
body.push(` ${mname} = ${asNum}`);
|
|
844
|
+
nextImplicit = asNum + 1;
|
|
845
|
+
}
|
|
846
|
+
else {
|
|
847
|
+
body.push(` ${mname} = ${rawVal}`);
|
|
848
|
+
nextImplicit = null;
|
|
849
|
+
}
|
|
850
|
+
}
|
|
851
|
+
}
|
|
852
|
+
else {
|
|
853
|
+
// number | boolean prop value.
|
|
854
|
+
body.push(` ${mname} = ${String(rawVal)}`);
|
|
855
|
+
nextImplicit = typeof rawVal === 'number' && Number.isFinite(rawVal) ? rawVal + 1 : null;
|
|
856
|
+
}
|
|
857
|
+
prevName = mname;
|
|
858
|
+
}
|
|
859
|
+
}
|
|
860
|
+
else if (props.values) {
|
|
861
|
+
// `values="A|B|C"` -> auto-numbered 0, 1, 2, … (mirrors TS bare-member enum).
|
|
862
|
+
for (const v of props.values.split('|')) {
|
|
863
|
+
const mname = emitIdentifier(v.trim(), 'unknownMember', node);
|
|
864
|
+
body.push(` ${mname} = ${nextImplicit}`);
|
|
865
|
+
nextImplicit += 1;
|
|
866
|
+
}
|
|
867
|
+
}
|
|
868
|
+
// An empty enum still emits a valid (empty) namespace class.
|
|
869
|
+
if (body.length === 0)
|
|
870
|
+
body.push(' pass');
|
|
871
|
+
return [`class ${name}:`, ...body];
|
|
872
|
+
}
|
|
470
873
|
//# sourceMappingURL=data.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/generators/data.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/generators/data.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,cAAc,EACd,aAAa,EACb,QAAQ,EACR,WAAW,EACX,sBAAsB,EACtB,YAAY,EACZ,eAAe,EACf,OAAO,GACR,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,mCAAmC,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACzG,OAAO,EAAqB,2BAA2B,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7F;;;;;;;;;;;;yBAYyB;AACzB,SAAS,oBAAoB,CAC3B,MAAc,EACd,IAAiF;IAEjF,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACjD,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAClD,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;IAC/E,CAAC;IACD,MAAM,SAAS,GAA2B,EAAE,CAAC;IAC7C,yEAAyE;IACzE,4EAA4E;IAC5E,4EAA4E;IAC5E,6EAA6E;IAC7E,oDAAoD;IACpD,MAAM,QAAQ,GAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IACvD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjD,MAAM,WAAW,GAAG,CAAC,OAAe,EAAQ,EAAE;QAC5C,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,mCAAmC,OAAO,qBAAqB,KAAK,kBAAkB;gBACpF,GAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,wBAAwB,IAAI;gBACzF,uDAAuD,CAC1D,CAAC;QACJ,CAAC;QACD,IAAI,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACb,sCAAsC,OAAO,qBAAqB,KAAK,uDAAuD;gBAC5H,+CAA+C,CAClD,CAAC;QACJ,CAAC;QACD,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,KAAK,KAAK,OAAO;YAAE,SAAS,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;IACpD,CAAC,CAAC;IACF,MAAM,aAAa,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;IAChF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;YAClC,MAAM,cAAc,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;YACxG,IAAI,cAAc;gBAAE,SAAS;YAC7B,WAAW,CAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAe,IAAI,EAAE,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,SAAS,GAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAiB,IAAI,EAAE,CAAC;QAC5D,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,MAAM,IAAI,IAAI,qBAAqB,CAAC,SAAS,CAAC;gBAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IACD,6EAA6E;IAC7E,yEAAyE;IACzE,+EAA+E;IAC/E,IAAI,IAAI,EAAE,SAAS;QAAE,SAAS,CAAC,IAAI,GAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5E,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,mCAAmC,CAAC,OAAO,EAAE;QAC9E,SAAS;QACT,WAAW,EAAE,IAAI,EAAE,SAAS,IAAI,KAAK;QACrC,aAAa,EAAE,IAAI,EAAE,aAAa,IAAI,KAAK;KAC5C,CAAC,CAAC;IACH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AACpC,CAAC;AAED;;;;;qEAKqE;AACrE,SAAS,qBAAqB,CAC5B,MAAc,EACd,IAAiF;IAEjF,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACtE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,kBAAkB,GAAG,WAAW,GAAG,EAAE,CAAC,CAAC;IACpD,CAAC;IACD,2EAA2E;IAC3E,uEAAuE;IACvE,yEAAyE;IACzE,sEAAsE;IACtE,wEAAwE;IACxE,0BAA0B;IAC1B,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC;QAClC,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,WAAW,UAAU,EAAE,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IACD,IAAI,IAAI,EAAE,CAAC;QACT,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;SAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,2EAA2E;AAE3E,2DAA2D;AAC3D,MAAM,UAAU,mBAAmB,CAAC,KAAa,EAAE,QAAgB;IACjE,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IACtC,IAAI,OAAO,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC;IACxC,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,WAAW;QAAE,OAAO,MAAM,CAAC;IACjE,IAAI,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IACtD,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IACjD,IAAI,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAC5D,0BAA0B;IAC1B,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/F,OAAO,IAAI,OAAO,GAAG,CAAC;IACxB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;4EAG4E;AAC5E,SAAS,kBAAkB,CAAC,KAAa;IACvC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACpB,MAAM,CAAC,GAAG,EAAE,CAAC,KAAgB,CAAC;IAC9B,IAAI,IAAwB,CAAC;IAC7B,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAK,CAA0B,CAAC,MAAM,EAAE,CAAC;QACrE,IAAI,GAAI,CAAuB,CAAC,IAAI,CAAC;IACvC,CAAC;SAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QACjC,IAAI,GAAG,CAAC,CAAC;IACX,CAAC;SAAM,IAAI,OAAO,EAAE,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC1C,IAAI,GAAG,EAAE,CAAC,OAAiB,CAAC;IAC9B,CAAC;IACD,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACzC,OAAO,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,EAAG,EAAE,CAAC,IAAe,IAAI,EAAE,CAAC,CAAC;AACvF,CAAC;AAED,+FAA+F;AAC/F,MAAM,wBAAwB,GAA2B;IACvD,KAAK,EAAE,KAAK;IACZ,GAAG,EAAE,KAAK;IACV,WAAW,EAAE,KAAK;CACnB,CAAC;AAEF,wGAAwG;AACxG,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAChD,OAAO,wBAAwB,CAAC,QAAQ,CAAC,IAAI,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AACrF,CAAC;AAED,2EAA2E;AAC3E,8BAA8B;AAC9B,0CAA0C;AAC1C,6CAA6C;AAC7C,qDAAqD;AACrD,2CAA2C;AAE3C,MAAM,UAAU,mBAAmB,CACjC,IAAY,EACZ,OAAmE;IAEnE,MAAM,KAAK,GAAG,OAAO,CAAU,IAAI,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACzC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,MAAM,OAAO,GAAG,OAAO,EAAE,kBAAkB,IAAI,MAAM,CAAC;IACtD,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,YAAY,IAAI,WAAW,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,SAAS,IAAI,CAAC,CAAC;QAC3C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACvB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAM,EAAE,GAAG,OAAO,CAAW,GAAG,CAAC,CAAC;YAClC,MAAM,OAAO,GAAG,WAAW,CAAC,EAAE,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC;YACjD,MAAM,OAAO,GAAG,iBAAiB,CAAC,EAAE,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;YACpD,MAAM,UAAU,GAAG,EAAE,CAAC,QAAQ,KAAK,MAAM,IAAI,EAAE,CAAC,QAAQ,KAAK,IAAI,CAAC;YAClE,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC;YAE9B,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;YAC3D,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,KAAK,CAAC,IAAI,CAAC,OAAO,OAAO,KAAK,OAAO,MAAM,mBAAmB,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;YAC/F,CAAC;iBAAM,IAAI,UAAU,EAAE,CAAC;gBACtB,KAAK,CAAC,IAAI,CAAC,OAAO,OAAO,KAAK,OAAO,SAAS,CAAC,CAAC;YAClD,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,OAAO,OAAO,KAAK,OAAO,EAAE,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,SAAS,GAAG,YAAY,IAAI,UAAU,CAAC;IAC7C,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,SAAS,gBAAgB,CAAC,CAAC;IACvD,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,CAAC,IAAI,CAAC,wBAAwB,KAAK,GAAG,CAAC,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,OAAO,CAAW,GAAG,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,WAAW,CAAC,EAAE,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,iBAAiB,CAAC,EAAE,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,KAAK,MAAM,IAAI,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC;QAC/D,MAAM,QAAQ,GAAG,EAAE,CAAC,MAAM,KAAK,MAAM,IAAI,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC;QAC5D,MAAM,UAAU,GAAG,EAAE,CAAC,QAAQ,KAAK,MAAM,IAAI,EAAE,CAAC,QAAQ,KAAK,IAAI,CAAC;QAClE,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC;QAE9B,qBAAqB;QACrB,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,IAAI,SAAS;YAAE,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAClD,IAAI,QAAQ;YAAE,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC5C,IAAI,UAAU,KAAK,SAAS;YAAE,SAAS,CAAC,IAAI,CAAC,WAAW,mBAAmB,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;aACrG,IAAI,UAAU;YAAE,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEpD,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;QAE3D,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,OAAO,OAAO,KAAK,OAAO,YAAY,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5E,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,OAAO,OAAO,KAAK,OAAO,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,MAAM,EAAE,GAAG,OAAO,CAAa,GAAG,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,WAAW,CAAC,EAAE,CAAC,IAAI,IAAI,UAAU,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,KAAK,IAAI,KAAK,CAAC;QAC9C,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,aAAa,CAAC;QACtC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAElC,IAAI,IAAI,KAAK,aAAa,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;YACtD,KAAK,CAAC,IAAI,CAAC,OAAO,OAAO,WAAW,MAAM,qCAAqC,OAAO,IAAI,CAAC,CAAC;QAC9F,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,OAAO,OAAO,MAAM,MAAM,2CAA2C,OAAO,IAAI,CAAC,CAAC;QAC/F,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,2EAA2E;AAC3E,4CAA4C;AAC5C,mFAAmF;AACnF,+BAA+B;AAE/B,MAAM,UAAU,wBAAwB,CAAC,IAAY;IACnD,MAAM,KAAK,GAAG,OAAO,CAAe,IAAI,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC;IAC7B,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QAC7D,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACrC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;QACrB,MAAM,KAAK,GAAG,WAAW,CAAE,EAAE,CAAC,IAAe,IAAI,QAAQ,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,KAAK,MAAM,IAAI,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC;QACzD,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACxC,wEAAwE;QACxE,wEAAwE;QACxE,0EAA0E;QAC1E,0EAA0E;QAC1E,qEAAqE;QACrE,MAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;QACzF,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,2BAA2B,CAAC,EAAE,CAAC,OAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAE7F,KAAK,CAAC,IAAI,CAAC,OAAO,OAAO,OAAO,KAAK,IAAI,MAAM,IAAI,OAAO,GAAG,CAAC,CAAC;QAC/D,uEAAuE;QACvE,sEAAsE;QACtE,qDAAqD;QACrD,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,EAAE,IAAI,SAAS;gBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,2EAA2E;AAC3E,6DAA6D;AAC7D,uCAAuC;AACvC,8CAA8C;AAE9C,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,MAAM,KAAK,GAAG,OAAO,CAAU,IAAI,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,QAAQ,CAAC;IAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;IAClC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;IACtB,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,CAAC,CAAC;IAClC,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,GAAG,CAAC,CAAC;IACvC,IAAI,GAAG;QAAE,KAAK,CAAC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC,CAAC;IACxC,KAAK,CAAC,IAAI,CAAC,kBAAkB,OAAO,GAAG,CAAC,CAAC;IACzC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,gBAAgB;IAChB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;QACxC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QACpB,MAAM,SAAS,GAAG,WAAW,CAAE,EAAE,CAAC,IAAe,IAAI,OAAO,CAAC,CAAC;QAC9D,MAAM,GAAG,GAAI,EAAE,CAAC,GAAc,IAAI,SAAS,CAAC;QAC5C,qFAAqF;QACrF,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;YAClC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;YAChC,CAAC,CAAC,GAAG,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;QAEjD,KAAK,CAAC,IAAI,CAAC,qBAAqB,SAAS,kBAAkB,CAAC,CAAC;QAC7D,KAAK,CAAC,IAAI,CAAC,mBAAmB,OAAO,GAAG,CAAC,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,kBAAkB,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,sBAAsB,EAAE,CAAC,CAAC;QACtG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,uBAAuB;IACvB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC;QAC3C,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAClB,MAAM,EAAE,GAAG,WAAW,CAAE,EAAE,CAAC,EAAa,IAAI,QAAQ,CAAC,CAAC;QACtD,MAAM,IAAI,GAAI,EAAE,CAAC,IAAe,IAAI,EAAE,CAAC;QACvC,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAClE,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,SAAS,EAAE,CAAC;QAEhF,KAAK,CAAC,IAAI,CAAC,+BAA+B,EAAE,kBAAkB,CAAC,CAAC;QAChE,KAAK,CAAC,IAAI,CAAC,mBAAmB,MAAM,GAAG,CAAC,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,WAAW,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,4BAA4B,EAAE,CAAC,CAAC;QACxG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9E,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,2EAA2E;AAC3E,8CAA8C;AAC9C,4BAA4B;AAC5B,kDAAkD;AAClD,wCAAwC;AAExC,MAAM,UAAU,wBAAwB,CAAC,IAAY;IACnD,MAAM,KAAK,GAAG,OAAO,CAAe,IAAI,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,WAAW,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1E,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,WAAW,CAAC;IACzC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACrC,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,IAAI,KAAK,CAAY,CAAC,CAAC,CAAC,KAAK,CAAC;IAE5G,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,kBAAkB,CAAC,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,4EAA4E;IAC5E,8EAA8E;IAC9E,8EAA8E;IAC9E,+EAA+E;IAC/E,uCAAuC;IACvC,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,SAAS,2BAA2B,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAEnF,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,WAAW,CAAC,CAAC;QAC3C,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,YAAY,CAAC,CAAC;QACxC,KAAK,CAAC,IAAI,CAAC,mBAAmB,IAAI,WAAW,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAClB,MAAM,OAAO,GAAG,WAAW,CAAE,EAAE,CAAC,IAAe,IAAI,KAAK,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,EAAE,CAAC,IAAc,CAAC;QAClC,MAAM,OAAO,GAAG,EAAE,CAAC,IAAc,CAAC;QAClC,MAAM,OAAO,GAAG,EAAE,CAAC,IAAc,CAAC;QAClC,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,CAAC,IAAI,CAAC,OAAO,OAAO,MAAM,OAAO,EAAE,CAAC,CAAC;QAC5C,CAAC;aAAM,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,OAAO,OAAO,MAAM,OAAO,IAAI,OAAO,GAAG,CAAC,CAAC;QACxD,CAAC;aAAM,IAAI,OAAO,EAAE,CAAC;YACnB,KAAK,CAAC,IAAI,CAAC,OAAO,OAAO,MAAM,OAAO,IAAI,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAE,CAAC,CAAC,WAAW,CAAC,CAAC,IAAe,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,IAAI,WAAW,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,kBAAkB,WAAW,IAAI,WAAW,GAAG,CAAC,CAAC;IAC9D,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,kBAAkB,WAAW,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,sBAAsB,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAClC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,2EAA2E;AAC3E,2BAA2B;AAC3B,qDAAqD;AACrD,mFAAmF;AAEnF,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IACtB,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,IAAc,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC;IAC1E,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAErC,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC;IAE7B,0BAA0B;IAC1B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,UAAU,GAAG,MAAM;aACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAChB,MAAM,KAAK,GAAG,WAAW,CAAE,EAAE,CAAC,IAAe,IAAI,OAAO,CAAC,CAAC;YAC1D,yEAAyE;YACzE,uEAAuE;YACvE,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,2BAA2B,CAAC,EAAE,CAAC,IAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC/E,OAAO,GAAG,KAAK,KAAK,KAAK,EAAE,CAAC;QAC9B,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,0BAA0B,UAAU,IAAI,CAAC,CAAC;QACrD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAChB,MAAM,KAAK,GAAG,WAAW,CAAE,EAAE,CAAC,IAAe,IAAI,OAAO,CAAC,CAAC;YAC1D,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,KAAK,MAAM,IAAI,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,KAAK,CAAC,IAAI,CAAC,gBAAgB,GAAG,GAAG,KAAK,MAAM,KAAK,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;QACrB,MAAM,KAAK,GAAG,WAAW,CAAE,EAAE,CAAC,IAAe,IAAI,QAAQ,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,KAAK,MAAM,IAAI,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC;QACzD,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACxC,wEAAwE;QACxE,wEAAwE;QACxE,oEAAoE;QACpE,0EAA0E;QAC1E,MAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;QACzF,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,2BAA2B,CAAC,EAAE,CAAC,OAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAE7F,KAAK,CAAC,IAAI,CAAC,OAAO,OAAO,OAAO,KAAK,IAAI,MAAM,IAAI,OAAO,GAAG,CAAC,CAAC;QAC/D,qEAAqE;QACrE,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,EAAE,IAAI,SAAS;gBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,2EAA2E;AAC3E,0EAA0E;AAC1E,wEAAwE;AACxE,8EAA8E;AAC9E,2DAA2D;AAC3D,8DAA8D;AAC9D,6EAA6E;AAC7E,0DAA0D;AAC1D,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IACtB,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,IAAc,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAE,KAAK,CAAC,OAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEpE,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAW,EAAE;QACtC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO,EAAE,CAAC,MAAM,KAAK,MAAM,IAAI,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC;IACpD,CAAC,CAAC;IAEF,yEAAyE;IACzE,2EAA2E;IAC3E,+EAA+E;IAC/E,2EAA2E;IAC3E,8EAA8E;IAC9E,2EAA2E;IAC3E,sEAAsE;IACtE,MAAM,eAAe,GAAG,KAAK,CAAC,QAAQ,KAAK,MAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC;IAC7E,MAAM,aAAa,GAAG,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAE,KAAK,CAAC,UAAqB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/F,MAAM,gBAAgB,GAAG,CAAC,CAAS,EAAW,EAAE,CAAC,eAAe,IAAI,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,SAAS,CAAC;IAC3G,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,UAAkB,EAAU,EAAE,CACjE,+CAA+C,IAAI,IAAI,IAAI,IAAI,UAAU,oBAAoB,CAAC;IAEhG,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAE7C,yEAAyE;IACzE,8EAA8E;IAC9E,8EAA8E;IAC9E,sEAAsE;IACtE,6EAA6E;IAC7E,4EAA4E;IAC5E,iFAAiF;IACjF,kBAAkB;IAClB,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,IAAI,IAAI,MAAM,CAAC;IAChC,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,IAAI,aAAa,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,SAAS,CAAC,IAAI,CAAC,SAAS,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;QACzE,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;QAC1C,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;YAC9B,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAChB,MAAM,KAAK,GAAG,WAAW,CAAE,EAAE,CAAC,IAAe,IAAI,MAAM,CAAC,CAAC;YACzD,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,2BAA2B,CAAC,EAAE,CAAC,OAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7F,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC3B,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAChC,SAAS,CAAC,IAAI,CAAC,WAAW,KAAK,QAAQ,OAAO,GAAG,CAAC,CAAC;YACnD,gEAAgE;YAChE,wEAAwE;YACxE,qDAAqD;YACrD,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxB,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACzF,CAAC;YACD,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrB,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,WAAW,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAe,IAAI,MAAM,CAAC,CAAC;YAC3D,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAChC,SAAS,CAAC,IAAI,CAAC,WAAW,KAAK,sCAAsC,CAAC,CAAC;gBACvE,SAAS,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBACtC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACnB,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;YACD,SAAS,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;YACvC,SAAS,CAAC,IAAI,CACZ,WAAW,KAAK,SAAS,oBAAoB,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,IAAI,CACnG,CAAC;YACF,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxB,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACzF,CAAC;YACD,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9F,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC;IAEnG,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,sFAAsF;IACtF,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;QAC7B,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,KAAK,GAAG,WAAW,CAAE,EAAE,CAAC,IAAe,IAAI,OAAO,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,2BAA2B,CAAC,EAAE,CAAC,IAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC/E,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,KAAK,MAAM,kBAAkB,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAE3C,+EAA+E;IAC/E,0EAA0E;IAC1E,sEAAsE;IACtE,6EAA6E;IAC7E,6EAA6E;IAC7E,+CAA+C;IAC/C,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;IACnG,MAAM,YAAY,GAAG,gBAAgB,CAAC,GAAG,CACvC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,WAAW,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAe,IAAI,OAAO,CAAC,MAAM,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAClG,CAAC;IACF,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,CAAC,IAAI,CAAC,oBAAoB,oBAAoB,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;QAC3G,MAAM,SAAS,GAAG,qBAAqB,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACxF,+EAA+E;QAC/E,6EAA6E;QAC7E,6EAA6E;QAC7E,+EAA+E;QAC/E,2CAA2C;QAC3C,IAAI,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,2EAA2E;YAC3E,0EAA0E;YAC1E,iFAAiF;YACjF,iEAAiE;YACjE,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAClF,MAAM,MAAM,GAAG,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChD,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,YAAY,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACxF,CAAC;aAAM,IAAI,IAAI,EAAE,CAAC;YAChB,wEAAwE;YACxE,uEAAuE;YACvE,uEAAuE;YACvE,yEAAyE;YACzE,0EAA0E;YAC1E,mEAAmE;YACnE,IAAI,CAAC,IAAI,CAAC,4BAA4B,EAAE,GAAG,YAAY,EAAE,GAAG,SAAS,CAAC,CAAC;QACzE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,GAAG,YAAY,EAAE,GAAG,SAAS,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;SAAM,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,sEAAsE;QACtE,4EAA4E;QAC5E,kCAAkC;QAClC,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;YACtD,IAAI,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;IAED,+BAA+B;IAC/B,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,KAAK,GAAG,WAAW,CAAE,EAAE,CAAC,IAAe,IAAI,QAAQ,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,KAAK,MAAM,IAAI,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,2BAA2B,CAAC,EAAE,CAAC,OAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAC/B,IAAI,CAAC,IAAI,CACP,OAAO,OAAO,OAAO,KAAK,IAAI,oBAAoB,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,IAAI,OAAO,GAAG,CAClH,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CACP,OAAO,OAAO,OAAO,KAAK,IAAI,oBAAoB,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,IAAI,OAAO,GAAG,CACjH,CAAC;QACJ,CAAC;QACD,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;IAED,8EAA8E;IAC9E,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,QAAQ,CAAC,CAAC,CAAC;YAAE,SAAS;QAC1B,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,KAAK,GAAG,WAAW,CAAE,EAAE,CAAC,IAAe,IAAI,MAAM,CAAC,CAAC;QACzD,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,2BAA2B,CAAC,EAAE,CAAC,OAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,OAAO,GAAG,CAAC,CAAC;QAC/C,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;IACD,4EAA4E;IAC5E,6EAA6E;IAC7E,kFAAkF;IAClF,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,QAAQ,CAAC,CAAC,CAAC;YAAE,SAAS,CAAC,uDAAuD;QAClF,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,KAAK,GAAG,WAAW,CAAE,EAAE,CAAC,IAAe,IAAI,MAAM,CAAC,CAAC;QACzD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,WAAW,KAAK,6DAA6D,CAAC,CAAC;YACzF,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACd,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,oBAAoB,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;QACxG,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAE7C,6EAA6E;IAC7E,8EAA8E;IAC9E,MAAM,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,iBAAiB,aAAa,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1F,0EAA0E;IAC1E,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,GAAG,WAAW,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,EAAE,GAAG,IAAI,CAAC,CAAC;AACpG,CAAC;AAED,2EAA2E;AAC3E,8CAA8C;AAC9C,uBAAuB;AACvB,kCAAkC;AAClC,sBAAsB;AACtB,sCAAsC;AACtC,+CAA+C;AAC/C,oEAAoE;AAEpE,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,MAAM,KAAK,GAAG,OAAO,CAAU,IAAI,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,IAAI,MAAM,CAAC;IAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACvC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,wBAAwB,CAAC,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,iBAAiB,GAAa,EAAE,CAAC;IAEvC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;QACtB,MAAM,KAAK,GAAG,cAAc,CAAC,EAAE,CAAC,IAAc,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACpE,MAAM,SAAS,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC;QACtE,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAEtC,KAAK,CAAC,IAAI,CAAC,SAAS,SAAS,cAAc,CAAC,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,OAAO,WAAW,CAAC,YAAY,CAAC,cAAc,KAAK,SAAS,KAAK,GAAG,CAAC,CAAC;QACjF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,KAAK,GAAG,WAAW,CAAE,EAAE,CAAC,IAAe,IAAI,OAAO,CAAC,CAAC;YAC1D,sEAAsE;YACtE,oEAAoE;YACpE,yEAAyE;YACzE,4EAA4E;YAC5E,4EAA4E;YAC5E,2EAA2E;YAC3E,MAAM,KAAK,GAAG,2BAA2B,CAAE,EAAE,CAAC,IAAe,IAAI,KAAK,CAAC,CAAC;YACxE,MAAM,UAAU,GAAG,EAAE,CAAC,QAAQ,KAAK,MAAM,IAAI,EAAE,CAAC,QAAQ,KAAK,IAAI,CAAC;YAClE,IAAI,UAAU,EAAE,CAAC;gBACf,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,KAAK,gBAAgB,CAAC,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,KAAK,EAAE,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,YAAY,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/D,OAAO,KAAK,CAAC;AACf,CAAC;AAED,4EAA4E;AAC5E,gDAAgD;AAChD,mBAAmB;AACnB,qBAAqB;AACrB,oBAAoB;AACpB,kBAAkB;AAClB,EAAE;AACF,sBAAsB;AACtB,8BAA8B;AAC9B,kCAAkC;AAClC,sBAAsB;AACtB,mBAAmB;AACnB,uBAAuB;AACvB,EAAE;AACF,wEAAwE;AACxE,2EAA2E;AAC3E,6EAA6E;AAC7E,8EAA8E;AAC9E,6EAA6E;AAC7E,4CAA4C;AAC5C,EAAE;AACF,wEAAwE;AACxE,2EAA2E;AAC3E,0CAA0C;AAC1C,6DAA6D;AAC7D,6EAA6E;AAC7E,kCAAkC;AAClC,8EAA8E;AAC9E,+EAA+E;AAC/E,6CAA6C;AAC7C,2EAA2E;AAC3E,gFAAgF;AAChF,gFAAgF;AAChF,gFAAgF;AAChF,+EAA+E;AAC/E,iEAAiE;AACjE,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,MAAM,KAAK,GAAG,OAAO,CAAS,IAAI,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;IAE7D,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,yEAAyE;IACzE,6EAA6E;IAC7E,2EAA2E;IAC3E,uEAAuE;IACvE,2EAA2E;IAC3E,2EAA2E;IAC3E,yEAAyE;IACzE,sEAAsE;IACtE,IAAI,YAAY,GAAkB,CAAC,CAAC;IACpC,IAAI,QAAQ,GAAkB,IAAI,CAAC;IAEnC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAU,EAAE,CACzC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,YAAY,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,QAAQ,MAAM,CAAC;IAE9F,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC5C,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;YAC/B,MAAM,EAAE,GAAG,OAAO,CAAW,CAAC,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;YAC1D,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC;YAExB,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;gBAC1C,kEAAkE;gBAClE,wDAAwD;gBACxD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC3B,IAAI,YAAY,KAAK,IAAI;oBAAE,YAAY,IAAI,CAAC,CAAC;gBAC7C,wEAAwE;gBACxE,qDAAqD;YACvD,CAAC;iBAAM,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChC,wEAAwE;gBACxE,mEAAmE;gBACnE,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC3C,YAAY,GAAG,IAAI,CAAC;YACtB,CAAC;iBAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACtC,MAAM,QAAQ,GAAG,CAAC,CAAC,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;gBAC7D,IAAI,QAAQ,EAAE,CAAC;oBACb,iEAAiE;oBACjE,oEAAoE;oBACpE,sEAAsE;oBACtE,yCAAyC;oBACzC,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACtD,YAAY,GAAG,IAAI,CAAC;gBACtB,CAAC;qBAAM,CAAC;oBACN,oEAAoE;oBACpE,qEAAqE;oBACrE,mEAAmE;oBACnE,6DAA6D;oBAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;oBAC7B,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;wBACnD,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,MAAM,KAAK,EAAE,CAAC,CAAC;wBACrC,YAAY,GAAG,KAAK,GAAG,CAAC,CAAC;oBAC3B,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,MAAM,MAAM,EAAE,CAAC,CAAC;wBACtC,YAAY,GAAG,IAAI,CAAC;oBACtB,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,+BAA+B;gBAC/B,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC9C,YAAY,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3F,CAAC;YACD,QAAQ,GAAG,KAAK,CAAC;QACnB,CAAC;IACH,CAAC;SAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,8EAA8E;QAC9E,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;YAC9D,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,MAAM,YAAY,EAAE,CAAC,CAAC;YAC5C,YAAY,IAAI,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,6DAA6D;IAC7D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAE7C,OAAO,CAAC,SAAS,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AACrC,CAAC"}
|