audit-tools 0.50.19 → 0.50.21
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/audit/cli/conceptualDispatch.d.ts.map +1 -1
- package/dist/audit/cli/conceptualDispatch.js +26 -1
- package/dist/audit/cli/conceptualDispatch.js.map +1 -1
- package/dist/audit/cli/confirmIntentStep.d.ts +8 -0
- package/dist/audit/cli/confirmIntentStep.d.ts.map +1 -1
- package/dist/audit/cli/confirmIntentStep.js +19 -2
- package/dist/audit/cli/confirmIntentStep.js.map +1 -1
- package/dist/audit/cli/laneValidators.d.ts.map +1 -1
- package/dist/audit/cli/laneValidators.js +9 -1
- package/dist/audit/cli/laneValidators.js.map +1 -1
- package/dist/audit/cli/nextStepCommand.d.ts.map +1 -1
- package/dist/audit/cli/nextStepCommand.js +31 -3
- package/dist/audit/cli/nextStepCommand.js.map +1 -1
- package/dist/audit/cli/nextStepHelpers.d.ts.map +1 -1
- package/dist/audit/cli/nextStepHelpers.js +63 -2
- package/dist/audit/cli/nextStepHelpers.js.map +1 -1
- package/dist/audit/cli/resynthesizeCommand.d.ts.map +1 -1
- package/dist/audit/cli/resynthesizeCommand.js +2 -0
- package/dist/audit/cli/resynthesizeCommand.js.map +1 -1
- package/dist/audit/cli/steps.d.ts +2 -2
- package/dist/audit/io/artifacts.d.ts +3 -0
- package/dist/audit/io/artifacts.d.ts.map +1 -1
- package/dist/audit/io/artifacts.js +1 -0
- package/dist/audit/io/artifacts.js.map +1 -1
- package/dist/audit/orchestrator/dependencyMap.d.ts +1 -0
- package/dist/audit/orchestrator/dependencyMap.d.ts.map +1 -1
- package/dist/audit/orchestrator/dependencyMap.js +3 -0
- package/dist/audit/orchestrator/dependencyMap.js.map +1 -1
- package/dist/audit/orchestrator/designReviewPrompt.d.ts +2 -1
- package/dist/audit/orchestrator/designReviewPrompt.d.ts.map +1 -1
- package/dist/audit/orchestrator/designReviewPrompt.js +5 -2
- package/dist/audit/orchestrator/designReviewPrompt.js.map +1 -1
- package/dist/audit/orchestrator/executors.d.ts.map +1 -1
- package/dist/audit/orchestrator/executors.js +5 -0
- package/dist/audit/orchestrator/executors.js.map +1 -1
- package/dist/audit/orchestrator/synthesisExecutors.d.ts.map +1 -1
- package/dist/audit/orchestrator/synthesisExecutors.js +27 -1
- package/dist/audit/orchestrator/synthesisExecutors.js.map +1 -1
- package/dist/audit/reporting/synthesis.d.ts +4 -0
- package/dist/audit/reporting/synthesis.d.ts.map +1 -1
- package/dist/audit/reporting/synthesis.js +229 -5
- package/dist/audit/reporting/synthesis.js.map +1 -1
- package/dist/audit/systemic/secondOrderAdversaryPrompt.d.ts +7 -11
- package/dist/audit/systemic/secondOrderAdversaryPrompt.d.ts.map +1 -1
- package/dist/audit/systemic/secondOrderAdversaryPrompt.js +135 -54
- package/dist/audit/systemic/secondOrderAdversaryPrompt.js.map +1 -1
- package/dist/audit/types/conceptualAdjudication.d.ts +665 -0
- package/dist/audit/types/conceptualAdjudication.d.ts.map +1 -0
- package/dist/audit/types/conceptualAdjudication.js +298 -0
- package/dist/audit/types/conceptualAdjudication.js.map +1 -0
- package/opencode.json +2 -2
- package/package.json +1 -1
- package/skills/audit-code/audit-code.prompt.md +11 -1
|
@@ -1,84 +1,165 @@
|
|
|
1
|
-
// Phase E —
|
|
1
|
+
// Phase E — SECOND-ORDER ADVERSARY prompt (host_delegation).
|
|
2
2
|
//
|
|
3
|
-
// The adversary
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
3
|
+
// The adversary is a SEPARATE agent and receives the evidence the earlier
|
|
4
|
+
// design-review contributors actually produced. Aggregate metrics remain leads,
|
|
5
|
+
// never a substitute for charters, candidate dispositions, prior findings, and
|
|
6
|
+
// direct repository/source verification.
|
|
7
|
+
function priorFindings(bundle) {
|
|
8
|
+
const candidates = [
|
|
9
|
+
...(bundle.design_assessment?.contract_findings ?? []),
|
|
10
|
+
...(bundle.design_assessment?.conceptual_findings ?? []),
|
|
11
|
+
...(bundle.charter_register?.findings ?? []),
|
|
12
|
+
...(bundle.systemic_challenge?.findings ?? []),
|
|
13
|
+
];
|
|
14
|
+
const seen = new Set();
|
|
15
|
+
return candidates.filter((finding) => {
|
|
16
|
+
const key = `${finding.lens}\u0000${finding.category}\u0000${finding.title}`;
|
|
17
|
+
if (seen.has(key))
|
|
18
|
+
return false;
|
|
19
|
+
seen.add(key);
|
|
20
|
+
return true;
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
function renderPriorFindings(findings) {
|
|
24
|
+
if (findings.length === 0)
|
|
25
|
+
return ["No prior findings were banked."];
|
|
26
|
+
return findings.map((finding) => {
|
|
27
|
+
const files = finding.affected_files.map((entry) => entry.path).join(", ");
|
|
28
|
+
return `- **${finding.id} — ${finding.title}** (${finding.lens}/${finding.severity}): ${finding.summary} [${files || "no files"}]`;
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
function renderCharterProjection(bundle) {
|
|
32
|
+
const register = bundle.charter_register;
|
|
33
|
+
if (!register || register.status === "omitted") {
|
|
34
|
+
return ["No charter register was produced for this run."];
|
|
35
|
+
}
|
|
36
|
+
const projection = {
|
|
37
|
+
subsystems: register.subsystems.map((subsystem) => ({
|
|
38
|
+
node_id: subsystem.node_id,
|
|
39
|
+
members: subsystem.members,
|
|
40
|
+
charters: subsystem.charters.map((charter) => ({
|
|
41
|
+
charter_id: charter.charter_id,
|
|
42
|
+
kind: charter.kind,
|
|
43
|
+
purpose: charter.purpose,
|
|
44
|
+
confidence: charter.confidence,
|
|
45
|
+
provenance: charter.provenance,
|
|
46
|
+
nominated_alternative: charter.nominated_alternative,
|
|
47
|
+
nominated_cost: charter.nominated_cost,
|
|
48
|
+
})),
|
|
49
|
+
})),
|
|
50
|
+
goal_graph: register.goal_graph,
|
|
51
|
+
deltas: register.deltas.map((delta) => ({
|
|
52
|
+
delta_id: delta.delta_id,
|
|
53
|
+
node_id: delta.node_id,
|
|
54
|
+
goal_node_id: delta.goal_node_id,
|
|
55
|
+
pair: delta.pair,
|
|
56
|
+
kind: delta.kind,
|
|
57
|
+
routed_to: delta.routed_to,
|
|
58
|
+
summary: delta.summary,
|
|
59
|
+
})),
|
|
60
|
+
triangulated: register.triangulated,
|
|
61
|
+
disagreement: register.disagreement,
|
|
62
|
+
validation_issues: register.validation_issues,
|
|
63
|
+
};
|
|
64
|
+
return ["```json", JSON.stringify(projection, null, 2), "```"];
|
|
65
|
+
}
|
|
66
|
+
function renderAdjudication(bundle) {
|
|
67
|
+
const adjudication = bundle.conceptual_review_adjudication;
|
|
68
|
+
if (!adjudication) {
|
|
69
|
+
return ["No deep conceptual adjudication record was produced."];
|
|
70
|
+
}
|
|
71
|
+
return [
|
|
72
|
+
`Round: \`${adjudication.round_id}\``,
|
|
73
|
+
"",
|
|
74
|
+
"```json",
|
|
75
|
+
JSON.stringify({
|
|
76
|
+
contributors: adjudication.contributors.map((contributor) => contributor.role === "judge"
|
|
77
|
+
? { ...contributor, result_path: undefined }
|
|
78
|
+
: contributor),
|
|
79
|
+
candidate_dispositions: adjudication.candidate_dispositions,
|
|
80
|
+
final_finding_shares: adjudication.final_finding_shares,
|
|
81
|
+
}, null, 2),
|
|
82
|
+
"```",
|
|
83
|
+
];
|
|
84
|
+
}
|
|
16
85
|
/**
|
|
17
|
-
* Render
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* round (this round found nothing new) — the loop converges after consecutive
|
|
22
|
-
* quiet rounds, per the register's `convergence_rule`.
|
|
23
|
-
*
|
|
24
|
-
* Advance-free (design resolution 2): the lane prompt is materialized to a file
|
|
25
|
-
* and carries no continue-command — the step prompt owns the advance, so a lane
|
|
26
|
-
* executor can never become a second orchestrator driver.
|
|
86
|
+
* Render one systemic challenge round. `evidencePaths` are also granted in the
|
|
87
|
+
* host step's read set; the prompt names them so the adversary can inspect the
|
|
88
|
+
* full perspective artifacts and persisted judge adjudication rather than
|
|
89
|
+
* reasoning from counts.
|
|
27
90
|
*/
|
|
28
91
|
export function renderSecondOrderAdversaryPrompt(opts) {
|
|
29
|
-
const metricLines = opts.metrics.rollups.map((
|
|
92
|
+
const metricLines = opts.metrics.rollups.map((rollup) => `- ${rollup.label}: ${rollup.count} ${rollup.unit}`);
|
|
30
93
|
metricLines.push(`- Max fan-out (out-degree): ${opts.metrics.max_fan_out}`);
|
|
94
|
+
const bankedFindings = priorFindings(opts.bundle);
|
|
95
|
+
const evidencePaths = [...new Set(opts.evidencePaths)].sort();
|
|
31
96
|
return [
|
|
32
97
|
"# Design review — systemic improvement-seeking challenge (second-order adversary)",
|
|
33
98
|
"",
|
|
34
99
|
`You are a SEPARATE second-order adversary. This is challenge round ${opts.round}.`,
|
|
35
|
-
`The
|
|
36
|
-
"to push HARDER and find what earlier rounds missed.",
|
|
100
|
+
`The audit already banked ${bankedFindings.length} distinct finding(s). Push HARDER for what those findings and their contributors missed.`,
|
|
37
101
|
"",
|
|
38
102
|
"## Mandate — optimization / better-way, NOT defect-finding",
|
|
39
|
-
"
|
|
40
|
-
"human-grade pressure
|
|
41
|
-
"- What is **redundant** — done more than once
|
|
103
|
+
"",
|
|
104
|
+
"Do NOT hunt ordinary bugs (other lenses own that). Re-interrogate the system with human-grade pressure for SUPERIOR ALTERNATIVES to things that currently work:",
|
|
105
|
+
"- What is **redundant** — done more than once or more than needed?",
|
|
42
106
|
"- What is **serial that could be parallel**?",
|
|
43
|
-
"- What is **duplicated** across places that should share?",
|
|
107
|
+
"- What is **duplicated** across places that should share one mechanism?",
|
|
44
108
|
"- What is **over-built** — complexity with no payload?",
|
|
45
109
|
"- What **assumption went unquestioned**?",
|
|
46
|
-
"- Is there a **categorically better approach**
|
|
110
|
+
"- Is there a **categorically better approach** for a whole subsystem?",
|
|
111
|
+
"",
|
|
112
|
+
"## Required evidence files",
|
|
113
|
+
"",
|
|
114
|
+
"Read these full artifacts before concluding the round. They include the charter register, persisted conceptual judge/adjudication record, and every current-round perspective result:",
|
|
115
|
+
...evidencePaths.map((path) => `- \`${path}\``),
|
|
116
|
+
"",
|
|
117
|
+
"## Stated-purpose / goal / delta projection",
|
|
118
|
+
"",
|
|
119
|
+
"This projection comes from `charter_register.json`, not `docs_digest.json`. Treat triangulated telos as a lead, preserve disagreement, and inspect the full artifact when the projection raises a question:",
|
|
120
|
+
...renderCharterProjection(opts.bundle),
|
|
121
|
+
"",
|
|
122
|
+
"## Conceptual contributors, dispositions, and attribution",
|
|
123
|
+
"",
|
|
124
|
+
...renderAdjudication(opts.bundle),
|
|
125
|
+
"",
|
|
126
|
+
"## Actual banked findings",
|
|
127
|
+
"",
|
|
128
|
+
...renderPriorFindings(bankedFindings),
|
|
129
|
+
"",
|
|
130
|
+
"## Repository/source verification (required)",
|
|
131
|
+
"",
|
|
132
|
+
"Use the repository and the strongest structural tools available. For every proposed improvement, inspect exact source sites, trace relevant callers and callees in both directions, and verify the affected paths. Before any negative or exhaustive claim, check structural-index coverage/freshness and directly read every reported gap. If equivalent symbol search, bidirectional tracing, exact snippets, or coverage accounting is unavailable, state that limitation and do not present the claim as comprehensive. Aggregate counts and prior-review consensus are never proof.",
|
|
47
133
|
"",
|
|
48
134
|
"## Aggregate metrics (supporting evidence — necessary, NOT sufficient)",
|
|
49
|
-
"
|
|
50
|
-
"
|
|
135
|
+
"",
|
|
136
|
+
"These abstract, language-neutral counts are leads only:",
|
|
51
137
|
...metricLines,
|
|
52
138
|
"",
|
|
53
139
|
"## True lens (required)",
|
|
54
|
-
"
|
|
55
|
-
"or `performance
|
|
56
|
-
"`architecture`. The lens routes the improvement to the right place in synthesis.",
|
|
140
|
+
"",
|
|
141
|
+
"Tag each finding with its TRUE lens — for example, test parallelization is `tests` or `performance`, and operational simplification is `operability`. Do not default everything to `architecture`.",
|
|
57
142
|
"",
|
|
58
143
|
"## Loop-until-dry",
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
"round, submit an EMPTY findings array; that marks a quiet round, and the loop",
|
|
62
|
-
"converges after consecutive quiet rounds. Otherwise submit the new",
|
|
63
|
-
"improvements (each pointing at at least one real component).",
|
|
144
|
+
"",
|
|
145
|
+
"The review is done only when consecutive rounds yield NOTHING NEW. If genuine source-backed pressure finds no new improvement this round, submit an empty `findings` array. Otherwise submit only new improvements, each anchored to at least one real component.",
|
|
64
146
|
"",
|
|
65
147
|
"## Output",
|
|
148
|
+
"",
|
|
66
149
|
`Write JSON to \`${opts.submissionPath}\` with this shape:`,
|
|
67
150
|
"",
|
|
68
151
|
"```json",
|
|
69
152
|
"{",
|
|
70
|
-
' "findings": [',
|
|
71
|
-
|
|
72
|
-
'
|
|
73
|
-
'
|
|
74
|
-
'
|
|
75
|
-
'
|
|
76
|
-
'
|
|
77
|
-
'
|
|
78
|
-
'
|
|
79
|
-
|
|
80
|
-
" }",
|
|
81
|
-
" ]",
|
|
153
|
+
' "findings": [{',
|
|
154
|
+
' "id": "<stable id>",',
|
|
155
|
+
' "title": "<the improvement>",',
|
|
156
|
+
' "category": "systemic_improvement",',
|
|
157
|
+
' "severity": "low|medium|high",',
|
|
158
|
+
' "confidence": "low|medium|high",',
|
|
159
|
+
' "lens": "<the TRUE lens: tests|performance|operability|...>",',
|
|
160
|
+
' "summary": "<what to do, why it is better, and source verification>",',
|
|
161
|
+
' "affected_files": [{ "path": "<a real repo path>" }]',
|
|
162
|
+
" }]",
|
|
82
163
|
"}",
|
|
83
164
|
"```",
|
|
84
165
|
"",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secondOrderAdversaryPrompt.js","sourceRoot":"","sources":["../../../src/audit/systemic/secondOrderAdversaryPrompt.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"secondOrderAdversaryPrompt.js","sourceRoot":"","sources":["../../../src/audit/systemic/secondOrderAdversaryPrompt.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,EAAE;AACF,0EAA0E;AAC1E,gFAAgF;AAChF,+EAA+E;AAC/E,yCAAyC;AAMzC,SAAS,aAAa,CAAC,MAAsB;IAC3C,MAAM,UAAU,GAAG;QACjB,GAAG,CAAC,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,IAAI,EAAE,CAAC;QACtD,GAAG,CAAC,MAAM,CAAC,iBAAiB,EAAE,mBAAmB,IAAI,EAAE,CAAC;QACxD,GAAG,CAAC,MAAM,CAAC,gBAAgB,EAAE,QAAQ,IAAI,EAAE,CAAC;QAC5C,GAAG,CAAC,MAAM,CAAC,kBAAkB,EAAE,QAAQ,IAAI,EAAE,CAAC;KAC/C,CAAC;IACF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;QACnC,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,IAAI,SAAS,OAAO,CAAC,QAAQ,SAAS,OAAO,CAAC,KAAK,EAAE,CAAC;QAC7E,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAAC,QAA4B;IACvD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,gCAAgC,CAAC,CAAC;IACrE,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3E,OAAO,OAAO,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,KAAK,OAAO,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ,MAAM,OAAO,CAAC,OAAO,KAAK,KAAK,IAAI,UAAU,GAAG,CAAC;IACrI,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAsB;IACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC;IACzC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/C,OAAO,CAAC,gDAAgD,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,UAAU,GAAG;QACjB,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAClD,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC7C,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;gBACpD,cAAc,EAAE,OAAO,CAAC,cAAc;aACvC,CAAC,CAAC;SACJ,CAAC,CAAC;QACH,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACtC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CAAC;QACH,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;KAC9C,CAAC;IACF,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAsB;IAChD,MAAM,YAAY,GAAG,MAAM,CAAC,8BAA8B,CAAC;IAC3D,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,CAAC,sDAAsD,CAAC,CAAC;IAClE,CAAC;IACD,OAAO;QACL,YAAY,YAAY,CAAC,QAAQ,IAAI;QACrC,EAAE;QACF,SAAS;QACT,IAAI,CAAC,SAAS,CACZ;YACE,YAAY,EAAE,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAC1D,WAAW,CAAC,IAAI,KAAK,OAAO;gBAC1B,CAAC,CAAC,EAAE,GAAG,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE;gBAC5C,CAAC,CAAC,WAAW,CAChB;YACD,sBAAsB,EAAE,YAAY,CAAC,sBAAsB;YAC3D,oBAAoB,EAAE,YAAY,CAAC,oBAAoB;SACxD,EACD,IAAI,EACJ,CAAC,CACF;QACD,KAAK;KACN,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gCAAgC,CAAC,IAMhD;IACC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAC1C,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,EAAE,CAChE,CAAC;IACF,WAAW,CAAC,IAAI,CAAC,+BAA+B,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5E,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAE9D,OAAO;QACL,mFAAmF;QACnF,EAAE;QACF,sEAAsE,IAAI,CAAC,KAAK,GAAG;QACnF,4BAA4B,cAAc,CAAC,MAAM,0FAA0F;QAC3I,EAAE;QACF,4DAA4D;QAC5D,EAAE;QACF,iKAAiK;QACjK,oEAAoE;QACpE,8CAA8C;QAC9C,yEAAyE;QACzE,wDAAwD;QACxD,0CAA0C;QAC1C,uEAAuE;QACvE,EAAE;QACF,4BAA4B;QAC5B,EAAE;QACF,uLAAuL;QACvL,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,IAAI,CAAC;QAC/C,EAAE;QACF,6CAA6C;QAC7C,EAAE;QACF,6MAA6M;QAC7M,GAAG,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC;QACvC,EAAE;QACF,2DAA2D;QAC3D,EAAE;QACF,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC;QAClC,EAAE;QACF,2BAA2B;QAC3B,EAAE;QACF,GAAG,mBAAmB,CAAC,cAAc,CAAC;QACtC,EAAE;QACF,8CAA8C;QAC9C,EAAE;QACF,0jBAA0jB;QAC1jB,EAAE;QACF,wEAAwE;QACxE,EAAE;QACF,yDAAyD;QACzD,GAAG,WAAW;QACd,EAAE;QACF,yBAAyB;QACzB,EAAE;QACF,oMAAoM;QACpM,EAAE;QACF,mBAAmB;QACnB,EAAE;QACF,mQAAmQ;QACnQ,EAAE;QACF,WAAW;QACX,EAAE;QACF,mBAAmB,IAAI,CAAC,cAAc,qBAAqB;QAC3D,EAAE;QACF,SAAS;QACT,GAAG;QACH,kBAAkB;QAClB,0BAA0B;QAC1B,mCAAmC;QACnC,yCAAyC;QACzC,oCAAoC;QACpC,sCAAsC;QACtC,mEAAmE;QACnE,2EAA2E;QAC3E,0DAA0D;QAC1D,MAAM;QACN,GAAG;QACH,KAAK;QACL,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
|