aontu 0.61.0 → 0.62.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/agentsmd.d.ts +1 -0
- package/dist/agentsmd.js +7 -1
- package/dist/agentsmd.js.map +1 -1
- package/dist/allow.d.ts +23 -0
- package/dist/allow.js +230 -0
- package/dist/allow.js.map +1 -0
- package/dist/aontu.d.ts +4 -2
- package/dist/aontu.js +4 -2
- package/dist/aontu.js.map +1 -1
- package/dist/cli.d.ts +10 -1
- package/dist/cli.js +941 -24
- package/dist/cli.js.map +1 -1
- package/dist/format.js +57 -1
- package/dist/format.js.map +1 -1
- package/dist/helpdoc.d.ts +16 -0
- package/dist/helpdoc.js +59 -0
- package/dist/helpdoc.js.map +1 -0
- package/dist/hints.js +15 -2
- package/dist/hints.js.map +1 -1
- package/dist/lang.js +93 -40
- package/dist/lang.js.map +1 -1
- package/dist/lower.d.ts +3 -0
- package/dist/lower.js +3 -0
- package/dist/lower.js.map +1 -1
- package/dist/lsp.d.ts +1 -1
- package/dist/lsp.js +1 -1
- package/dist/lsp.js.map +1 -1
- package/dist/relation.d.ts +2 -0
- package/dist/relation.js +7 -1
- package/dist/relation.js.map +1 -1
- package/dist/render.js +26 -21
- package/dist/render.js.map +1 -1
- package/dist/sigdecl.js +1 -1
- package/dist/sigdecl.js.map +1 -1
- package/dist/std.js +104 -69
- package/dist/std.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/val/AggFuncVal.js +2 -2
- package/dist/val/AggFuncVal.js.map +1 -1
- package/dist/val/CmpFuncVal.d.ts +20 -0
- package/dist/val/CmpFuncVal.js +245 -0
- package/dist/val/CmpFuncVal.js.map +1 -0
- package/dist/val/EachFuncVal.d.ts +1 -2
- package/dist/val/EachFuncVal.js +15 -29
- package/dist/val/EachFuncVal.js.map +1 -1
- package/dist/val/FormFuncVal.js.map +1 -1
- package/dist/val/LowerFuncVal.js +17 -1
- package/dist/val/LowerFuncVal.js.map +1 -1
- package/dist/val/NamerFuncVal.d.ts +12 -0
- package/dist/val/NamerFuncVal.js +176 -0
- package/dist/val/NamerFuncVal.js.map +1 -0
- package/dist/val/NilVal.js +29 -3
- package/dist/val/NilVal.js.map +1 -1
- package/dist/val/NomFuncVal.d.ts +12 -0
- package/dist/val/NomFuncVal.js +187 -0
- package/dist/val/NomFuncVal.js.map +1 -0
- package/dist/val/PackFuncVal.js +3 -3
- package/dist/val/PackFuncVal.js.map +1 -1
- package/dist/val/RefVal.js +1 -1
- package/dist/val/TranslateFuncVal.d.ts +12 -0
- package/dist/val/TranslateFuncVal.js +101 -0
- package/dist/val/TranslateFuncVal.js.map +1 -0
- package/dist/val/UpperFuncVal.js +17 -1
- package/dist/val/UpperFuncVal.js.map +1 -1
- package/dist/val/caserange.d.ts +3 -0
- package/dist/val/caserange.js +110 -0
- package/dist/val/caserange.js.map +1 -0
- package/dist/vet.d.ts +12 -0
- package/dist/vet.js +209 -1
- package/dist/vet.js.map +1 -1
- package/grammar/aontu.abnf +1 -1
- package/grammar/aontu.gbnf +1 -1
- package/grammar/aontu.lark +1 -1
- package/grammar/aontu.tmLanguage.json +1 -1
- package/package.json +1 -1
- package/skill/SKILL.md +8 -0
- package/skill/init/check.sh +28 -0
- package/skill/init/data.aon +12 -0
- package/skill/init/model.aon +19 -0
- package/skill/tasks.md +151 -0
- package/src/agentsmd.ts +13 -2
- package/src/allow.ts +316 -0
- package/src/aontu.ts +10 -1
- package/src/cli.ts +1066 -28
- package/src/format.ts +75 -3
- package/src/helpdoc.ts +77 -0
- package/src/hints.ts +16 -2
- package/src/lang.ts +98 -42
- package/src/lower.ts +3 -3
- package/src/lsp.ts +1 -1
- package/src/relation.ts +21 -1
- package/src/render.ts +26 -21
- package/src/sigdecl.ts +1 -1
- package/src/std.ts +104 -69
- package/src/val/AggFuncVal.ts +2 -2
- package/src/val/CmpFuncVal.ts +411 -0
- package/src/val/EachFuncVal.ts +49 -50
- package/src/val/LowerFuncVal.ts +18 -1
- package/src/val/NilVal.ts +29 -3
- package/src/val/NomFuncVal.ts +287 -0
- package/src/val/PackFuncVal.ts +3 -3
- package/src/val/RefVal.ts +1 -1
- package/src/val/TranslateFuncVal.ts +182 -0
- package/src/val/UpperFuncVal.ts +18 -1
- package/src/val/caserange.ts +115 -0
- package/src/vet.ts +287 -1
- package/src/val/FormFuncVal.ts +0 -119
package/dist/std.js
CHANGED
|
@@ -2,19 +2,23 @@
|
|
|
2
2
|
/* Copyright (c) 2025 Richard Rodger, MIT License */
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.AONTU_MODELS = exports.AONTU_SCHEME = exports.STD_SOURCES = void 0;
|
|
5
|
-
// THE
|
|
6
|
-
// docs/capability-review/g4-identity-relations.md): `@"
|
|
7
|
-
// served from the engine itself — no filesystem, no package
|
|
8
|
-
// — so a document may use it under every include capability
|
|
9
|
-
// `none`, and the hermeticity posture is not widened by a source
|
|
10
|
-
// never leaves the process.
|
|
5
|
+
// THE LANGUAGE-SUPPLIED MODELS (G4 phase 4,
|
|
6
|
+
// docs/capability-review/g4-identity-relations.md): `@"aontu:system"`
|
|
7
|
+
// is served from the engine itself — no filesystem, no package
|
|
8
|
+
// resolution — so a document may use it under every include capability
|
|
9
|
+
// except `none`, and the hermeticity posture is not widened by a source
|
|
10
|
+
// that never leaves the process.
|
|
11
|
+
//
|
|
12
|
+
// EVERY name here carries the `aontu:` prefix (ADR-028): a
|
|
13
|
+
// language-supplied schema is spelled one way, and the scheme is what
|
|
14
|
+
// makes it unshadowable. There is no second, bare-name spelling.
|
|
11
15
|
//
|
|
12
16
|
// The TEXT is the shared artifact: go/std.go carries the same bytes,
|
|
13
|
-
// and test/spec/
|
|
17
|
+
// and test/spec/aontu-system.tsv pins its canon and its canon-hash in
|
|
14
18
|
// both engines, so the two copies cannot drift without a red suite.
|
|
15
19
|
// It carries no backtick for that reason: one string literal per port,
|
|
16
20
|
// and Go's raw string has no escape.
|
|
17
|
-
const STD_SYSTEM = `#
|
|
21
|
+
const STD_SYSTEM = `# aontu:system --- the SYSTEM VOCABULARY (G4 phase 4). Ports, components
|
|
18
22
|
# and relations need no syntax: they are schemas. Everything here is
|
|
19
23
|
# ordinary unification --- conjunction, spreads, marks, defaults ---
|
|
20
24
|
# so the vocabulary costs the language nothing, and an author who wants
|
|
@@ -25,48 +29,74 @@ const STD_SYSTEM = `# std/system --- the SYSTEM VOCABULARY (G4 phase 4). Ports,
|
|
|
25
29
|
# identity and version makes "v1 and v2 describe the same entity"
|
|
26
30
|
# inexpressible.
|
|
27
31
|
|
|
28
|
-
|
|
29
|
-
|
|
32
|
+
aontu: System: {
|
|
30
33
|
# One end of a connection.
|
|
31
|
-
Port: type({
|
|
32
|
-
direction: *in | out | inout
|
|
33
|
-
protocol?: string
|
|
34
|
-
})
|
|
34
|
+
Port: type({ direction:*in | out | inout protocol?:string })
|
|
35
35
|
|
|
36
36
|
# A node with ports. Where a Component sits in the tree is what it
|
|
37
37
|
# is a component OF -- containment is the document's own structure
|
|
38
38
|
# and needs no mark of its own.
|
|
39
|
-
Component: type({
|
|
40
|
-
ports?: {&: $.std.Port}
|
|
41
|
-
})
|
|
39
|
+
Component: type({ ports?:{ &: $.aontu.System.Port } })
|
|
42
40
|
|
|
43
41
|
# A component that is a service. Written out rather than as
|
|
44
|
-
# $.
|
|
42
|
+
# $.aontu.System.Component & {kind: service}: a reference from one member of
|
|
45
43
|
# this file to another does not survive being INCLUDED into a
|
|
46
44
|
# document (the marks the include carries make the referring member
|
|
47
45
|
# unusable), so the vocabulary states each schema on its own.
|
|
48
|
-
Service: type({
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
46
|
+
Service: type({ kind:service ports?:{ &: $.aontu.System.Port } })
|
|
47
|
+
|
|
48
|
+
# A semantic version (semver.org 2.0.0) as an ORDERED TUPLE: major,
|
|
49
|
+
# minor, patch, pre-release. A list and not a dotted string, because a
|
|
50
|
+
# version is COMPARED and the comparison runs component by component
|
|
51
|
+
# from the left: "1.10.0" sorts below "1.9.0" as text. A list and not
|
|
52
|
+
# a map, because a map has no order of its own to compare along.
|
|
53
|
+
#
|
|
54
|
+
# THE TAIL DEFAULTS, so [1] is [1 0 0 ""] and [1 2] is [1 2 0 ""].
|
|
55
|
+
# A major-only version is the common case and should cost one token.
|
|
56
|
+
#
|
|
57
|
+
# LEADING ZEROES ARE IMPOSSIBLE HERE rather than merely forbidden:
|
|
58
|
+
# the numeric parts are integers, and 01 is not a distinct integer
|
|
59
|
+
# literal. The spec's "MUST NOT contain leading zeroes" needs no rule.
|
|
60
|
+
#
|
|
61
|
+
# THE PRE-RELEASE CHECK IS PARTIAL, and deliberately says so. The
|
|
62
|
+
# spec's grammar is dot-separated identifiers, each non-empty, each
|
|
63
|
+
# [0-9A-Za-z-], numeric ones without leading zeroes -- which as a
|
|
64
|
+
# regex is a quantified group containing a quantifier, and re()
|
|
65
|
+
# refuses that shape outright (constraint_pattern) because it
|
|
66
|
+
# backtracks exponentially. So the alphabet is checked and the
|
|
67
|
+
# STRUCTURE is not: "beta_1" is refused, "alpha..1" and "01" are not.
|
|
68
|
+
# Carrying the pre-release as a LIST of identifiers would check it in
|
|
69
|
+
# full, one identifier per element, and is the change to make if that
|
|
70
|
+
# matters more than [1 0 0 ""] does.
|
|
71
|
+
#
|
|
72
|
+
# BUILD METADATA IS NOT CARRIED. The spec has it, and the spec also
|
|
73
|
+
# says it MUST be ignored when determining precedence -- so a type
|
|
74
|
+
# whose purpose is comparison is the wrong place for it.
|
|
75
|
+
Semver: type(
|
|
76
|
+
[
|
|
77
|
+
integer & min(0)
|
|
78
|
+
*0 | (integer & min(0))
|
|
79
|
+
*0 | (integer & min(0))
|
|
80
|
+
*"" | (string & re("^[0-9A-Za-z.-]+$"))
|
|
81
|
+
] & length(4)
|
|
82
|
+
)
|
|
53
83
|
# (The Relation schema that used to sit here is retired with the
|
|
54
84
|
# relations: magic key, RELATIONS.0.md P2: a relation is declared
|
|
55
85
|
# by the graph atoms at its field -- rel(t) & acyclic() &
|
|
56
86
|
# inverse(name) -- and the target half is rel(t)'s flow.)
|
|
57
87
|
}
|
|
58
88
|
`;
|
|
59
|
-
const STD_VIEW = `#
|
|
89
|
+
const STD_VIEW = `# aontu:view --- the FIGURE VOCABULARY (VIEWS.0.md, "6. The view
|
|
60
90
|
# document"). A view document declares its figures as data, and a
|
|
61
91
|
# declaration is just a map: this is the schema for one, so a typo is
|
|
62
92
|
# refused where every other mistake in an aontu document is refused --
|
|
63
93
|
# at evaluation, by unification -- rather than by the verb that reads
|
|
64
94
|
# it afterwards.
|
|
65
95
|
#
|
|
66
|
-
# @"
|
|
96
|
+
# @"aontu:view"
|
|
67
97
|
# @"./system.aon"
|
|
68
98
|
#
|
|
69
|
-
# views: {&: $.
|
|
99
|
+
# views: {&: $.aontu.View.Figure} & {
|
|
70
100
|
# arch: {kind: matrix, order: partition, out: "docs/arch.dsm.txt"}
|
|
71
101
|
# }
|
|
72
102
|
#
|
|
@@ -80,8 +110,7 @@ const STD_VIEW = `# std/view --- the FIGURE VOCABULARY (VIEWS.0.md, "6. The view
|
|
|
80
110
|
# canon-hash. This file carries no backtick: it is one string literal
|
|
81
111
|
# per port, and Go raw strings have no escape.
|
|
82
112
|
|
|
83
|
-
|
|
84
|
-
|
|
113
|
+
aontu: View: {
|
|
85
114
|
# One declared figure. The kind says what to draw and out says where
|
|
86
115
|
# it belongs; everything else narrows the drawing, and each option
|
|
87
116
|
# belongs to the kinds that read it.
|
|
@@ -295,7 +324,7 @@ const STD_CODE = String.raw `# aontu:code --- THE OUTPUT VOCABULARY. An aontu tr
|
|
|
295
324
|
|
|
296
325
|
%source = close({ path?:string hash?:string & re("^aon1-[A-Za-z0-9_-]+$") })
|
|
297
326
|
|
|
298
|
-
|
|
327
|
+
aontu: Code: close({ source?:%source units:[&: %unit] })
|
|
299
328
|
`;
|
|
300
329
|
const STD_PROFILE = String.raw `# aontu:profile --- THE PROFILE VOCABULARY. A profile is the data
|
|
301
330
|
# 'aontu render' applies to a unit of one language, and it is DATA and
|
|
@@ -367,7 +396,7 @@ const STD_PROFILE = String.raw `# aontu:profile --- THE PROFILE VOCABULARY. A pr
|
|
|
367
396
|
banner?: string
|
|
368
397
|
})
|
|
369
398
|
|
|
370
|
-
|
|
399
|
+
aontu: Profile: %profile
|
|
371
400
|
`;
|
|
372
401
|
// The text profile (RENDER.0.md D5): the profile of a fragment-only
|
|
373
402
|
// unit, and the fallback of every language without a lowering.
|
|
@@ -382,7 +411,7 @@ const STD_LANG_TEXT = String.raw `# aontu:lang/text --- THE TEXT PROFILE. The pr
|
|
|
382
411
|
|
|
383
412
|
@"aontu:profile"
|
|
384
413
|
|
|
385
|
-
|
|
414
|
+
aontu: Profile: { lang:"text" indent:{ unit:" " width:2 } }
|
|
386
415
|
`;
|
|
387
416
|
// THE TYPESCRIPT PROFILE (docs/design/RENDER.0.md D5, P5): the data the
|
|
388
417
|
// typescript lowering renders under -- two spaces, the JSDoc forms, the
|
|
@@ -402,7 +431,7 @@ const STD_LANG_TYPESCRIPT = String.raw `# aontu:lang/typescript --- THE TYPESCRI
|
|
|
402
431
|
|
|
403
432
|
@"aontu:profile"
|
|
404
433
|
|
|
405
|
-
|
|
434
|
+
aontu: Profile: {
|
|
406
435
|
lang: "typescript"
|
|
407
436
|
lowering: "typescript"
|
|
408
437
|
indent: { unit:" " width:2 }
|
|
@@ -410,13 +439,15 @@ profile: {
|
|
|
410
439
|
comment: block: { open:"/*" prefix:" * " close:" */" }
|
|
411
440
|
comment: doc: { open:"/**" prefix:" * " close:" */" }
|
|
412
441
|
str: quote: "\""
|
|
413
|
-
str: escape:
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
442
|
+
str: escape: {
|
|
443
|
+
"8": "\\b"
|
|
444
|
+
"9": "\\t"
|
|
445
|
+
"10": "\\n"
|
|
446
|
+
"12": "\\f"
|
|
447
|
+
"13": "\\r"
|
|
448
|
+
"34": "\\\""
|
|
449
|
+
"92": "\\\\"
|
|
450
|
+
}
|
|
420
451
|
ident: {
|
|
421
452
|
chars: "ascii-word"
|
|
422
453
|
reserved: [
|
|
@@ -477,14 +508,16 @@ profile: {
|
|
|
477
508
|
case: alias: "pascal"
|
|
478
509
|
acronyms: []
|
|
479
510
|
}
|
|
480
|
-
types: prim:
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
511
|
+
types: prim: {
|
|
512
|
+
string: "string"
|
|
513
|
+
int: "number"
|
|
514
|
+
bigint: "bigint"
|
|
515
|
+
float: "number"
|
|
516
|
+
decimal: "string"
|
|
517
|
+
bool: "boolean"
|
|
518
|
+
null: "null"
|
|
519
|
+
any: "unknown"
|
|
520
|
+
}
|
|
488
521
|
types: list: { close:"[]" childPrec:2 }
|
|
489
522
|
types: map: { open:"Record<" close:">" }
|
|
490
523
|
types: opt: { close:" | null" prec:1 childPrec:2 }
|
|
@@ -511,21 +544,23 @@ const STD_LANG_GO = String.raw `# aontu:lang/go --- THE GO PROFILE. The data a u
|
|
|
511
544
|
|
|
512
545
|
@"aontu:profile"
|
|
513
546
|
|
|
514
|
-
|
|
547
|
+
aontu: Profile: {
|
|
515
548
|
lang: "go"
|
|
516
549
|
lowering: "go"
|
|
517
550
|
indent: { unit:"\t" width:1 }
|
|
518
551
|
comment: { line:prefix:"// " block:{ open:"/*" close:"*/" } doc:prefix:"// " }
|
|
519
552
|
str: quote: "\""
|
|
520
|
-
str: escape:
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
553
|
+
str: escape: {
|
|
554
|
+
"7": "\\a"
|
|
555
|
+
"8": "\\b"
|
|
556
|
+
"9": "\\t"
|
|
557
|
+
"10": "\\n"
|
|
558
|
+
"11": "\\v"
|
|
559
|
+
"12": "\\f"
|
|
560
|
+
"13": "\\r"
|
|
561
|
+
"34": "\\\""
|
|
562
|
+
"92": "\\\\"
|
|
563
|
+
}
|
|
529
564
|
ident: {
|
|
530
565
|
chars: "ascii-word"
|
|
531
566
|
reserved: [
|
|
@@ -604,14 +639,16 @@ profile: {
|
|
|
604
639
|
"XSS"
|
|
605
640
|
]
|
|
606
641
|
}
|
|
607
|
-
types: prim:
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
642
|
+
types: prim: {
|
|
643
|
+
string: "string"
|
|
644
|
+
int: "int64"
|
|
645
|
+
bigint: "string"
|
|
646
|
+
float: "float64"
|
|
647
|
+
decimal: "string"
|
|
648
|
+
bool: "bool"
|
|
649
|
+
null: "any"
|
|
650
|
+
any: "any"
|
|
651
|
+
}
|
|
615
652
|
types: list: open: "[]"
|
|
616
653
|
types: map: open: "map["
|
|
617
654
|
types: opt: open: "*"
|
|
@@ -619,10 +656,8 @@ profile: {
|
|
|
619
656
|
}
|
|
620
657
|
`;
|
|
621
658
|
exports.STD_SOURCES = {
|
|
622
|
-
'
|
|
623
|
-
'
|
|
624
|
-
'std/view': STD_VIEW,
|
|
625
|
-
'std/view.aon': STD_VIEW,
|
|
659
|
+
'aontu:system': STD_SYSTEM,
|
|
660
|
+
'aontu:view': STD_VIEW,
|
|
626
661
|
'aontu:code': STD_CODE,
|
|
627
662
|
'aontu:lang/go': STD_LANG_GO,
|
|
628
663
|
'aontu:lang/text': STD_LANG_TEXT,
|
package/dist/std.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"std.js","sourceRoot":"","sources":["../src/std.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAEpD,
|
|
1
|
+
{"version":3,"file":"std.js","sourceRoot":"","sources":["../src/std.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAEpD,4CAA4C;AAC5C,sEAAsE;AACtE,+DAA+D;AAC/D,uEAAuE;AACvE,wEAAwE;AACxE,iCAAiC;AACjC,EAAE;AACF,2DAA2D;AAC3D,sEAAsE;AACtE,iEAAiE;AACjE,EAAE;AACF,qEAAqE;AACrE,sEAAsE;AACtE,oEAAoE;AACpE,uEAAuE;AACvE,qCAAqC;AAErC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmElB,CAAA;AAGD,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkEhB,CAAA;AAGD,4DAA4D;AAC5D,uEAAuE;AACvE,sEAAsE;AACtE,sEAAsE;AACtE,sEAAsE;AACtE,8DAA8D;AAC9D,EAAE;AACF,mEAAmE;AACnE,iEAAiE;AACjE,sEAAsE;AACtE,oEAAoE;AACpE,gEAAgE;AAChE,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgK1B,CAAA;AAGD,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuE7B,CAAA;AAGD,oEAAoE;AACpE,+DAA+D;AAC/D,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;CAY/B,CAAA;AAED,wEAAwE;AACxE,wEAAwE;AACxE,uEAAuE;AACvE,uEAAuE;AACvE,oEAAoE;AACpE,qEAAqE;AACrE,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0GrC,CAAA;AAED,2EAA2E;AAC3E,wEAAwE;AACxE,uEAAuE;AACvE,4DAA4D;AAC5D,gDAAgD;AAChD,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2H7B,CAAA;AAEY,QAAA,WAAW,GAA2B;IACjD,cAAc,EAAE,UAAU;IAC1B,YAAY,EAAE,QAAQ;IACtB,YAAY,EAAE,QAAQ;IACtB,eAAe,EAAE,WAAW;IAC5B,iBAAiB,EAAE,aAAa;IAChC,uBAAuB,EAAE,mBAAmB;IAC5C,eAAe,EAAE,WAAW;CAC7B,CAAA;AAED,sEAAsE;AACtE,qEAAqE;AACrE,WAAW;AACE,QAAA,YAAY,GAAG,QAAQ,CAAA;AACvB,QAAA,YAAY,GACvB,MAAM,CAAC,IAAI,CAAC,QAAA,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,QAAA,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA"}
|