runspec-node 0.23.0 → 0.25.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/dist/cli.d.ts +20 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +219 -0
- package/dist/cli.js.map +1 -1
- package/dist/logging_setup.d.ts +10 -1
- package/dist/logging_setup.d.ts.map +1 -1
- package/dist/logging_setup.js +86 -3
- package/dist/logging_setup.js.map +1 -1
- package/dist/logs.d.ts +85 -0
- package/dist/logs.d.ts.map +1 -0
- package/dist/logs.js +504 -0
- package/dist/logs.js.map +1 -0
- package/package.json +1 -1
- package/src/cli.ts +220 -0
- package/src/logging_setup.ts +88 -4
- package/src/logs.ts +507 -0
- package/tests/test_cli_bin.test.ts +126 -0
- package/tests/test_logs.test.ts +209 -0
- package/tests/test_print_capture.test.ts +82 -0
package/dist/cli.d.ts
CHANGED
|
@@ -1,4 +1,24 @@
|
|
|
1
1
|
import type { ScriptSpec } from './models';
|
|
2
2
|
export declare function main(): void;
|
|
3
|
+
/**
|
|
4
|
+
* Generate a venv-shaped `bin/` for the runnables declared in `{projectRoot}/
|
|
5
|
+
* runspec.toml`: a `bin/runspec` shim plus one `bin/<runnable>` per runnable.
|
|
6
|
+
* The shims resolve their own location, so the folder stays relocatable and
|
|
7
|
+
* works from any cwd (paired with caller-relative findConfig). Returns a
|
|
8
|
+
* summary; performs the filesystem writes. Exported for testing.
|
|
9
|
+
*/
|
|
10
|
+
export declare function scaffoldBin(projectRoot: string): {
|
|
11
|
+
written: Array<{
|
|
12
|
+
name: string;
|
|
13
|
+
target: string;
|
|
14
|
+
}>;
|
|
15
|
+
warnings: string[];
|
|
16
|
+
};
|
|
17
|
+
/** Resolve a runnable's script: package.json bin first, then ./<name>.{js,cjs,mjs}. */
|
|
18
|
+
export declare function resolveScript(projectRoot: string, name: string, binMap: Record<string, string>): string | null;
|
|
19
|
+
/** package.json `bin` as a {name: relPath} map. A string bin maps the package name. */
|
|
20
|
+
export declare function readBinMap(projectRoot: string): Record<string, string>;
|
|
21
|
+
/** POSIX shim that resolves the project root relative to itself, then execs node. */
|
|
22
|
+
export declare function shimContent(relPath: string): string;
|
|
3
23
|
export declare function buildSchema(name: string, script: ScriptSpec, fmt: string): Record<string, unknown>;
|
|
4
24
|
//# sourceMappingURL=cli.d.ts.map
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAW,MAAM,UAAU,CAAC;AAMpD,wBAAgB,IAAI,IAAI,IAAI,CAwC3B;AAqFD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAiCzH;AAQD,uFAAuF;AACvF,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI,CAU9G;AAED,uFAAuF;AACvF,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAStE;AAUD,qFAAqF;AACrF,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnD;AAkID,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAqBlG"}
|
package/dist/cli.js
CHANGED
|
@@ -34,10 +34,15 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.main = main;
|
|
37
|
+
exports.scaffoldBin = scaffoldBin;
|
|
38
|
+
exports.resolveScript = resolveScript;
|
|
39
|
+
exports.readBinMap = readBinMap;
|
|
40
|
+
exports.shimContent = shimContent;
|
|
37
41
|
exports.buildSchema = buildSchema;
|
|
38
42
|
const fs = __importStar(require("fs"));
|
|
39
43
|
const path = __importStar(require("path"));
|
|
40
44
|
const finder_1 = require("./finder");
|
|
45
|
+
const logs = __importStar(require("./logs"));
|
|
41
46
|
const loader_1 = require("./loader");
|
|
42
47
|
const parser_1 = require("./parser");
|
|
43
48
|
const _CLI_CONFIG = path.join(__dirname, 'runspec.toml');
|
|
@@ -59,6 +64,8 @@ function main() {
|
|
|
59
64
|
const commands = {
|
|
60
65
|
init: cmdInit,
|
|
61
66
|
local: cmdLocal,
|
|
67
|
+
bin: cmdBin,
|
|
68
|
+
logs: cmdLogs,
|
|
62
69
|
jump: cmdJump,
|
|
63
70
|
serve: cmdServe,
|
|
64
71
|
};
|
|
@@ -128,6 +135,183 @@ function cmdLocal(args) {
|
|
|
128
135
|
process.exit(1);
|
|
129
136
|
}
|
|
130
137
|
}
|
|
138
|
+
function cmdBin(_args) {
|
|
139
|
+
let configPath;
|
|
140
|
+
try {
|
|
141
|
+
configPath = (0, finder_1.findConfig)(process.cwd()).configPath;
|
|
142
|
+
}
|
|
143
|
+
catch {
|
|
144
|
+
console.log("✗ No runspec.toml found. Run 'runspec init' first.");
|
|
145
|
+
process.exit(1);
|
|
146
|
+
}
|
|
147
|
+
const projectRoot = path.dirname(configPath);
|
|
148
|
+
const result = scaffoldBin(projectRoot);
|
|
149
|
+
console.log(`Wrote ${result.written.length} shim(s) to ${path.join(projectRoot, 'bin')}/:\n`);
|
|
150
|
+
for (const w of result.written)
|
|
151
|
+
console.log(` ✓ bin/${w.name}${w.target ? ` → ${w.target}` : ''}`);
|
|
152
|
+
if (result.warnings.length) {
|
|
153
|
+
console.log('\nIssues:\n');
|
|
154
|
+
for (const msg of result.warnings)
|
|
155
|
+
console.log(` ✗ ${msg}`);
|
|
156
|
+
}
|
|
157
|
+
console.log('\nThis folder is now venv-shaped — a controller can invoke bin/<runnable> and');
|
|
158
|
+
console.log('discover/manage it via bin/runspec, from any working directory.');
|
|
159
|
+
if (result.warnings.length)
|
|
160
|
+
process.exit(1);
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Generate a venv-shaped `bin/` for the runnables declared in `{projectRoot}/
|
|
164
|
+
* runspec.toml`: a `bin/runspec` shim plus one `bin/<runnable>` per runnable.
|
|
165
|
+
* The shims resolve their own location, so the folder stays relocatable and
|
|
166
|
+
* works from any cwd (paired with caller-relative findConfig). Returns a
|
|
167
|
+
* summary; performs the filesystem writes. Exported for testing.
|
|
168
|
+
*/
|
|
169
|
+
function scaffoldBin(projectRoot) {
|
|
170
|
+
const raw = (0, loader_1.loadRaw)(configPathOf(projectRoot));
|
|
171
|
+
const runnables = Object.keys(raw.runnables);
|
|
172
|
+
const binMap = readBinMap(projectRoot);
|
|
173
|
+
const binDir = path.join(projectRoot, 'bin');
|
|
174
|
+
fs.mkdirSync(binDir, { recursive: true });
|
|
175
|
+
// The venv shape includes a logs/ dir (created lazily on first run anyway).
|
|
176
|
+
fs.mkdirSync(path.join(projectRoot, 'logs'), { recursive: true });
|
|
177
|
+
const written = [];
|
|
178
|
+
const warnings = [];
|
|
179
|
+
// bin/runspec — the CLI a controller shells for discovery + log management.
|
|
180
|
+
const cliTarget = resolveRunspecCli(projectRoot);
|
|
181
|
+
if (cliTarget) {
|
|
182
|
+
writeShim(path.join(binDir, 'runspec'), toPosix(path.relative(projectRoot, cliTarget)));
|
|
183
|
+
written.push({ name: 'runspec', target: toPosix(path.relative(projectRoot, cliTarget)) });
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
warnings.push("runspec-node is not installed — run 'npm install runspec-node', then 'runspec bin' again (bin/runspec skipped)");
|
|
187
|
+
}
|
|
188
|
+
// bin/<runnable> — one per declared runnable.
|
|
189
|
+
for (const name of runnables) {
|
|
190
|
+
const script = resolveScript(projectRoot, name, binMap);
|
|
191
|
+
if (!script) {
|
|
192
|
+
warnings.push(`${name}: no script found — add package.json bin["${name}"] or create ./${name}.js`);
|
|
193
|
+
continue;
|
|
194
|
+
}
|
|
195
|
+
const rel = toPosix(path.relative(projectRoot, script));
|
|
196
|
+
writeShim(path.join(binDir, name), rel);
|
|
197
|
+
written.push({ name, target: rel });
|
|
198
|
+
}
|
|
199
|
+
return { written, warnings };
|
|
200
|
+
}
|
|
201
|
+
const SCRIPT_EXTS = ['.js', '.cjs', '.mjs'];
|
|
202
|
+
function configPathOf(projectRoot) {
|
|
203
|
+
return path.join(projectRoot, 'runspec.toml');
|
|
204
|
+
}
|
|
205
|
+
/** Resolve a runnable's script: package.json bin first, then ./<name>.{js,cjs,mjs}. */
|
|
206
|
+
function resolveScript(projectRoot, name, binMap) {
|
|
207
|
+
if (binMap[name]) {
|
|
208
|
+
const p = path.resolve(projectRoot, binMap[name]);
|
|
209
|
+
return fs.existsSync(p) ? p : null;
|
|
210
|
+
}
|
|
211
|
+
for (const ext of SCRIPT_EXTS) {
|
|
212
|
+
const p = path.join(projectRoot, name + ext);
|
|
213
|
+
if (fs.existsSync(p))
|
|
214
|
+
return p;
|
|
215
|
+
}
|
|
216
|
+
return null;
|
|
217
|
+
}
|
|
218
|
+
/** package.json `bin` as a {name: relPath} map. A string bin maps the package name. */
|
|
219
|
+
function readBinMap(projectRoot) {
|
|
220
|
+
try {
|
|
221
|
+
const pkg = JSON.parse(fs.readFileSync(path.join(projectRoot, 'package.json'), 'utf-8'));
|
|
222
|
+
if (typeof pkg.bin === 'string')
|
|
223
|
+
return pkg.name ? { [pkg.name]: pkg.bin } : {};
|
|
224
|
+
if (pkg.bin && typeof pkg.bin === 'object')
|
|
225
|
+
return pkg.bin;
|
|
226
|
+
}
|
|
227
|
+
catch {
|
|
228
|
+
// no package.json / unparseable — fall back to the file-name convention
|
|
229
|
+
}
|
|
230
|
+
return {};
|
|
231
|
+
}
|
|
232
|
+
function resolveRunspecCli(projectRoot) {
|
|
233
|
+
const candidates = [
|
|
234
|
+
path.join(projectRoot, 'node_modules', 'runspec-node', 'bin', 'runspec.js'),
|
|
235
|
+
path.join(projectRoot, 'node_modules', '.bin', 'runspec'),
|
|
236
|
+
];
|
|
237
|
+
return candidates.find((c) => fs.existsSync(c)) ?? null;
|
|
238
|
+
}
|
|
239
|
+
/** POSIX shim that resolves the project root relative to itself, then execs node. */
|
|
240
|
+
function shimContent(relPath) {
|
|
241
|
+
return ['#!/bin/sh', '# Generated by `runspec bin` — do not edit.', 'DIR=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)', `exec node "$DIR/${relPath}" "$@"`, ''].join('\n');
|
|
242
|
+
}
|
|
243
|
+
function writeShim(shimPath, relPath) {
|
|
244
|
+
fs.writeFileSync(shimPath, shimContent(relPath), 'utf-8');
|
|
245
|
+
fs.chmodSync(shimPath, 0o755);
|
|
246
|
+
}
|
|
247
|
+
function toPosix(p) {
|
|
248
|
+
return p.split(path.sep).join('/');
|
|
249
|
+
}
|
|
250
|
+
function cmdLogs(args) {
|
|
251
|
+
const has = (name) => args.includes(name);
|
|
252
|
+
const valueFlags = new Set(['--since', '--user', '--run', '--older-than', '--max-files', '--max-total-size']);
|
|
253
|
+
const val = (name) => {
|
|
254
|
+
const i = args.indexOf(name);
|
|
255
|
+
return i >= 0 && i + 1 < args.length ? args[i + 1] : undefined;
|
|
256
|
+
};
|
|
257
|
+
// Positionals are tokens that aren't flags or flag-values.
|
|
258
|
+
const positionals = [];
|
|
259
|
+
for (let i = 0; i < args.length; i++) {
|
|
260
|
+
const a = args[i];
|
|
261
|
+
if (a.startsWith('-')) {
|
|
262
|
+
if (valueFlags.has(a))
|
|
263
|
+
i++; // skip its value
|
|
264
|
+
continue;
|
|
265
|
+
}
|
|
266
|
+
positionals.push(a);
|
|
267
|
+
}
|
|
268
|
+
// `runspec logs status|prune|compact [runnable]` vs `runspec logs <runnable>`.
|
|
269
|
+
const target = positionals[0];
|
|
270
|
+
const verb = target === 'status' || target === 'prune' || target === 'compact' ? target : 'view';
|
|
271
|
+
const runnable = verb === 'view' ? target : positionals[1] ?? null;
|
|
272
|
+
try {
|
|
273
|
+
if (verb === 'view') {
|
|
274
|
+
if (!runnable) {
|
|
275
|
+
console.log('✗ A runnable is required: runspec logs <runnable>');
|
|
276
|
+
process.exit(1);
|
|
277
|
+
}
|
|
278
|
+
logs.view(runnable, {
|
|
279
|
+
since: val('--since') ? logs.parseDuration(val('--since')) : null,
|
|
280
|
+
run: val('--run') ?? null,
|
|
281
|
+
user: val('--user') ?? null,
|
|
282
|
+
asJson: has('--json'),
|
|
283
|
+
follow: has('--follow'),
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
else if (verb === 'status') {
|
|
287
|
+
logs.status(runnable, { asJson: has('--json') });
|
|
288
|
+
}
|
|
289
|
+
else if (verb === 'prune') {
|
|
290
|
+
logs.prune(runnable, {
|
|
291
|
+
olderThan: val('--older-than') ? logs.parseDuration(val('--older-than')) : null,
|
|
292
|
+
maxFiles: val('--max-files') ? parseInt(val('--max-files'), 10) : null,
|
|
293
|
+
maxTotalSize: val('--max-total-size') ? logs.parseSize(val('--max-total-size')) : null,
|
|
294
|
+
dryRun: has('--dry-run'),
|
|
295
|
+
asJson: has('--json'),
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
else if (verb === 'compact') {
|
|
299
|
+
if (!val('--older-than')) {
|
|
300
|
+
console.log('✗ compact requires --older-than (e.g. --older-than 7d)');
|
|
301
|
+
process.exit(1);
|
|
302
|
+
}
|
|
303
|
+
logs.compact(runnable, logs.parseDuration(val('--older-than')), {
|
|
304
|
+
gzip: has('--gzip'),
|
|
305
|
+
dryRun: has('--dry-run'),
|
|
306
|
+
asJson: has('--json'),
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
catch (err) {
|
|
311
|
+
console.log(`✗ ${err.message}`);
|
|
312
|
+
process.exit(1);
|
|
313
|
+
}
|
|
314
|
+
}
|
|
131
315
|
async function cmdJump(args) {
|
|
132
316
|
const parsed = (0, parser_1.parse)({ scriptName: 'runspec', argv: ['jump', ...args], configPath: _CLI_CONFIG });
|
|
133
317
|
const fmt = String(parsed['format'] ?? 'text');
|
|
@@ -625,6 +809,8 @@ Usage:
|
|
|
625
809
|
Commands:
|
|
626
810
|
init Create runspec.toml and a code stub
|
|
627
811
|
local List runnables and emit tool schemas
|
|
812
|
+
bin Generate a venv-shaped bin/ so a controller can run this folder
|
|
813
|
+
logs View, status, prune, or compact per-invocation audit logs
|
|
628
814
|
jump Execute a runnable on a remote host via SSH
|
|
629
815
|
serve Start the MCP stdio server for local runnables
|
|
630
816
|
|
|
@@ -635,6 +821,8 @@ Examples:
|
|
|
635
821
|
runspec init --example
|
|
636
822
|
runspec local
|
|
637
823
|
runspec local --format mcp
|
|
824
|
+
runspec bin
|
|
825
|
+
runspec logs deploy
|
|
638
826
|
runspec serve`);
|
|
639
827
|
}
|
|
640
828
|
function printCommandHelp(command) {
|
|
@@ -662,6 +850,37 @@ Examples:
|
|
|
662
850
|
runspec local --format mcp
|
|
663
851
|
runspec local --format mcp --script deploy
|
|
664
852
|
runspec local --format json`,
|
|
853
|
+
bin: `runspec bin — Generate a venv-shaped bin/ for this folder's runnables
|
|
854
|
+
|
|
855
|
+
Writes bin/runspec plus one bin/<runnable> shim per runnable in runspec.toml,
|
|
856
|
+
so a controller (e.g. runspec-console) can invoke bin/<runnable> and discover
|
|
857
|
+
the folder via bin/runspec — from any working directory, including over SSH.
|
|
858
|
+
|
|
859
|
+
Each runnable's script is resolved from package.json "bin", falling back to
|
|
860
|
+
./<runnable>.js | .cjs | .mjs next to runspec.toml. Re-run after adding a
|
|
861
|
+
runnable or 'npm install'. (POSIX shims; Windows support is a follow-up.)
|
|
862
|
+
|
|
863
|
+
Examples:
|
|
864
|
+
npm install runspec-node
|
|
865
|
+
runspec bin`,
|
|
866
|
+
logs: `runspec logs — View, status, prune, or compact per-invocation audit logs
|
|
867
|
+
|
|
868
|
+
For runnables using [config.logging] store = "per-run" (one file per
|
|
869
|
+
invocation, no in-process rotation). Reads/maintains the project's logs/.
|
|
870
|
+
|
|
871
|
+
View (default):
|
|
872
|
+
runspec logs <runnable> merged, timestamp-sorted stream
|
|
873
|
+
runspec logs <runnable> --follow live tail across invocations
|
|
874
|
+
runspec logs <runnable> --since 1h --user alice --run <id>
|
|
875
|
+
runspec logs <runnable> --json raw JSON lines
|
|
876
|
+
|
|
877
|
+
Status / retention (default to all runnables):
|
|
878
|
+
runspec logs status [runnable] [--json] per-runnable file + disk inventory
|
|
879
|
+
runspec logs compact [runnable] --older-than 7d [--gzip] [--dry-run]
|
|
880
|
+
runspec logs prune [runnable] --older-than 90d | --max-files N | --max-total-size 5GB [--dry-run]
|
|
881
|
+
|
|
882
|
+
prune/compact never touch a single-mode {runnable}.log — only per-run files
|
|
883
|
+
and archives. Add --json to any verb for machine-readable output.`,
|
|
665
884
|
jump: `runspec jump — Execute a runnable on a remote host via SSH
|
|
666
885
|
|
|
667
886
|
Not yet implemented in the Node package.
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,oBAwCC;AA4FD,kCAiCC;AASD,sCAUC;AAGD,gCASC;AAWD,kCAEC;AAkID,kCAqBC;AAtXD,uCAAyB;AACzB,2CAA6B;AAE7B,qCAAsC;AACtC,6CAA+B;AAC/B,qCAAmC;AAEnC,qCAAiC;AAGjC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AAEzD,iFAAiF;AAEjF,SAAgB,IAAI;IAClB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE3B,sBAAsB;IACtB,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnF,IAAI,OAAO,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,QAAQ,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAC1H,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC1B,OAAO;IACT,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC7D,SAAS,EAAE,CAAC;QACZ,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAA6D;QACzE,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,QAAQ;QACf,GAAG,EAAE,MAAM;QACX,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,QAAQ;KAChB,CAAC;IAEF,IAAI,CAAC,CAAC,OAAO,IAAI,QAAQ,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,uBAAuB,OAAO,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,0BAA0B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,iFAAiF;AAEjF,SAAS,OAAO,CAAC,IAAc;IAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,YAAY,CAAC;IACzD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAE3C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAEnD,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,6EAA6E,CAAC,CAAC;QAC7F,CAAC;QACD,eAAe,CAAC,WAAW,CAAC,CAAC;QAC7B,gBAAgB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAChC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC1B,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAAG,QAAQ,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAClE,eAAe,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAC3C,YAAY,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC1C,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,QAAQ,CAAC,IAAc;IAC9B,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC;IAChD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAE7C,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IAEnC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,4FAA4F,CAAC,CAAC;QAC1G,OAAO;IACT,CAAC;IAED,8CAA8C;IAC9C,MAAM,QAAQ,GAAG,UAAU;QACzB,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC;QACrD,CAAC,CAAC,UAAU,CAAC;IAEf,IAAI,UAAU,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,gBAAgB,UAAU,aAAa,CAAC,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;QACnB,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;SAAM,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;SAAM,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,sBAAsB,GAAG,EAAE,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;QACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,MAAM,CAAC,KAAe;IAC7B,IAAI,UAAkB,CAAC;IACvB,IAAI,CAAC;QACH,UAAU,GAAG,IAAA,mBAAU,EAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,UAAU,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;QACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;IAExC,OAAO,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,OAAO,CAAC,MAAM,eAAe,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9F,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACvG,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC3B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,QAAQ;YAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,+EAA+E,CAAC,CAAC;IAC7F,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;IAC/E,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,WAAW,CAAC,WAAmB;IAC7C,MAAM,GAAG,GAAG,IAAA,gBAAO,EAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC7C,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,4EAA4E;IAC5E,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAElE,MAAM,OAAO,GAA4C,EAAE,CAAC;IAC5D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,4EAA4E;IAC5E,MAAM,SAAS,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACjD,IAAI,SAAS,EAAE,CAAC;QACd,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;QACxF,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5F,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,IAAI,CAAC,gHAAgH,CAAC,CAAC;IAClI,CAAC;IAED,8CAA8C;IAC9C,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,6CAA6C,IAAI,kBAAkB,IAAI,KAAK,CAAC,CAAC;YACnG,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;QACxD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QACxC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE5C,SAAS,YAAY,CAAC,WAAmB;IACvC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;AAChD,CAAC;AAED,uFAAuF;AACvF,SAAgB,aAAa,CAAC,WAAmB,EAAE,IAAY,EAAE,MAA8B;IAC7F,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACjB,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAClD,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACrC,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC;QAC7C,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,uFAAuF;AACvF,SAAgB,UAAU,CAAC,WAAmB;IAC5C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QACzF,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChF,IAAI,GAAG,CAAC,GAAG,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAC,GAA6B,CAAC;IACvF,CAAC;IAAC,MAAM,CAAC;QACP,wEAAwE;IAC1E,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,iBAAiB,CAAC,WAAmB;IAC5C,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,CAAC;QAC3E,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,CAAC;KAC1D,CAAC;IACF,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC1D,CAAC;AAED,qFAAqF;AACrF,SAAgB,WAAW,CAAC,OAAe;IACzC,OAAO,CAAC,WAAW,EAAE,6CAA6C,EAAE,qDAAqD,EAAE,mBAAmB,OAAO,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChL,CAAC;AAED,SAAS,SAAS,CAAC,QAAgB,EAAE,OAAe;IAClD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;IAC1D,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,OAAO,CAAC,CAAS;IACxB,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,OAAO,CAAC,IAAc;IAC7B,MAAM,GAAG,GAAG,CAAC,IAAY,EAAW,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC9G,MAAM,GAAG,GAAG,CAAC,IAAY,EAAsB,EAAE;QAC/C,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjE,CAAC,CAAC;IACF,2DAA2D;IAC3D,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,CAAC,EAAE,CAAC,CAAC,iBAAiB;YAC7C,SAAS;QACX,CAAC;QACD,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IAED,+EAA+E;IAC/E,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IACjG,MAAM,QAAQ,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAEnE,IAAI,CAAC;QACH,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;gBAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,CAAC,CAAC,CAAC,IAAI;gBAClE,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI;gBACzB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI;gBAC3B,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC;gBACrB,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC;aACxB,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACnD,CAAC;aAAM,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBACnB,SAAS,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAE,CAAC,CAAC,CAAC,CAAC,IAAI;gBAChF,QAAQ,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI;gBACvE,YAAY,EAAE,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAE,CAAC,CAAC,CAAC,CAAC,IAAI;gBACvF,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC;gBACxB,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC;aACtB,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;gBACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAE,CAAC,EAAE;gBAC/D,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC;gBACnB,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC;gBACxB,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC;aACtB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,MAAO,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,IAAc;IACnC,MAAM,MAAM,GAAG,IAAA,cAAK,EAAC,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;IAClG,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,CAAC;IAE/C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAuB,CAAC;IAClD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAChD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;QACnF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAuB,CAAC;IACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAuB,CAAC;IACtD,MAAM,QAAQ,GAAI,MAAM,CAAC,WAAW,CAA0B,IAAI,EAAE,CAAC;IAErE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,wDAAa,QAAQ,GAAC,CAAC;IACnE,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAEpC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,GAAG,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QACD,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,KAAK,CAAC,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;QACnC,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,QAAQ,CAAC,KAAe;IAC/B,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,gFAAgF,CAAC,CAAC;QAC9F,OAAO,CAAC,GAAG,CAAC,yFAAyF,CAAC,CAAC;QACvG,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,kLAAkL,CAAC,CAAC;QAChM,OAAO;IACT,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,SAAS,CAA0B,CAAC;IAC9D,KAAK,EAAE,CAAC;AACV,CAAC;AAED,iFAAiF;AAEjF,SAAgB,WAAW,CAAC,IAAY,EAAE,MAAkB,EAAE,GAAW;IACvE,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,KAAK,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;QAC/D,UAAU,CAAC,OAAO,CAAC,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,GAAG,CAAC,QAAQ;YAAE,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,MAAM,GAA4B;QACtC,IAAI;QACJ,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE;QACrC,YAAY,EAAE,MAAM,CAAC,QAAQ,IAAI,SAAS;QAC1C,UAAU,EAAE,MAAM,CAAC,MAAM,IAAI,MAAM;QACnC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE;KAC5C,CAAC;IAEF,IAAI,YAAY,CAAC,MAAM;QAAG,MAAM,CAAC,aAAa,CAA6B,CAAC,UAAU,CAAC,GAAG,YAAY,CAAC;IACvG,IAAI,MAAM,CAAC,cAAc;QAAE,MAAM,CAAC,mBAAmB,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC;IAE/E,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,eAAe,CAAC,GAAY;IACnC,MAAM,OAAO,GAA2B;QACtC,GAAG,EAAE,QAAQ;QACb,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,QAAQ;KACjB,CAAC;IAEF,IAAI,IAAI,GAA4B,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,QAAQ,EAAE,CAAC;IACrF,IAAI,GAAG,CAAC,WAAW;QAAE,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC;IAC3D,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI;QAAE,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;IACrF,IAAI,GAAG,CAAC,OAAO;QAAE,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;IAC5C,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QACd,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IACD,IAAI,GAAG,CAAC,OAAO;QAAE,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;IAC/C,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS;QAAE,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC;IACnE,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS;QAAE,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC;IACnE,IAAI,GAAG,CAAC,QAAQ;QAAE,IAAI,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAExD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,iFAAiF;AAEjF,SAAS,aAAa;IACpB,IAAI,CAAC;QACH,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,mBAAU,EAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,IAAA,gBAAO,EAAC,UAAU,CAAC,CAAC;QAChC,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7G,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,UAAyE,EAAE,GAAW;IACrG,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IACnF,IAAI,GAAG,KAAK,KAAK;QAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACpC,OAAO,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,cAAc,CAAC,UAAyE;IAC/F,MAAM,QAAQ,GAAkE,EAAE,CAAC;IACnF,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,OAAO,CAAC,GAAG,CAAC,SAAS,UAAU,CAAC,MAAM,yBAAyB,CAAC,CAAC;IACjE,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC;QAC3B,KAAK,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,KAAK,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAC;YAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC9D,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC;YAE7E,IAAI,CAAC,IAAI,CAAC,WAAW;gBAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,uDAAuD,CAAC,CAAC;YACtG,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,mDAAmD,CAAC,CAAC;YAC/F,KAAK,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;gBAC7D,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;oBACrC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,sCAAsC,CAAC,CAAC;gBAC3E,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACzB,KAAK,MAAM,GAAG,IAAI,QAAQ;YAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;QACvD,KAAK,MAAM,GAAG,IAAI,MAAM;YAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;AAC5E,CAAC;AAED,iFAAiF;AAEjF,SAAS,YAAY,CAAC,GAAW;IAC/B,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAChF,OAAO,CAAC,IAAI,UAAU,CAAC;AACzB,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB,EAAE,IAAY;IACrD,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uCAAuC,CAAC,CAAC;QAClF,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,kCAAkC,CAAC,CAAC;QAClF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,OAAO,GAAG,yGAAyG,IAAI,mCAAmC,IAAI,uCAAuC,IAAI,2EAA2E,CAAC;IAC3R,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,mCAAmC,IAAI,YAAY,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB;IACvC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uCAAuC,CAAC,CAAC;QAClF,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,kCAAkC,CAAC,CAAC;QAClF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,OAAO,GAAG;QACd,mGAAmG;QACnG,EAAE;QACF,SAAS;QACT,iFAAiF;QACjF,yBAAyB;QACzB,EAAE;QACF,cAAc;QACd,6GAA6G;QAC7G,iHAAiH;QACjH,2GAA2G;QAC3G,gHAAgH;QAChH,+GAA+G;QAC/G,EAAE;QACF,QAAQ;QACR,mFAAmF;QACnF,4BAA4B;QAC5B,sBAAsB;QACtB,EAAE;QACF,aAAa;QACb,+FAA+F;QAC/F,oGAAoG;QACpG,+FAA+F;QAC/F,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW,EAAE,IAAY;IACjD,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;QAC1B,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,aAAa,CAAC,CAAC;QAC9D,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,YAAY,CAAC,CAAC;IAC9D,CAAC;SAAM,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;QACjC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,aAAa,CAAC,CAAC;QAC9D,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,YAAY,CAAC,CAAC;IAC9D,CAAC;SAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,aAAa,CAAC,CAAC;QAC9D,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,YAAY,CAAC,CAAC;IAC9D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgB,EAAE,OAAe;IAC3D,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC;IAC1E,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,GAAW,EAAE,IAAY,EAAE,IAAY;IAC3D,MAAM,SAAS,GAAqD;QAClE,UAAU,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,iIAAiI,EAAE;QACtK,UAAU,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,gIAAgI,EAAE;QACrK,MAAM,EAAM,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,qIAAqI,EAAE;KAC3K,CAAC;IAEF,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IACrD,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,cAAc,CAAC,GAAW,EAAE,OAAgB;IACnD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAEtC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC/B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAC/C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC;IAEtD,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;QAC/E,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;QAChF,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB,EAAE,OAAe,EAAE,QAAuB;IAChF,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,IAAI,CAAC;QACH,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,WAAW,CAAsC,CAAC;QAC5E,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,QAAQ,KAAK,IAAI;YAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;;YAChE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,MAAO,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,iFAAiF;AAEjF,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDrB,CAAC;AAEF,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;CAmBpB,CAAC;AAEF,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4CrB,CAAC;AAEF,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;CAmBpB,CAAC;AAEF,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CrB,CAAC;AAEF,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;CAkBpB,CAAC;AAEF,iFAAiF;AAEjF,SAAS,OAAO,CAAC,IAAc,EAAE,IAAY;IAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC9D,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,iFAAiF;AAEjF,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;gBAsBE,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAe;IACvC,MAAM,IAAI,GAA2B;QACnC,IAAI,EAAE;;;;;;;;;;;yBAWe;QAErB,KAAK,EAAE;;;;;;;;;;8BAUmB;QAE1B,GAAG,EAAE;;;;;;;;;;;;gBAYO;QAEZ,IAAI,EAAE;;;;;;;;;;;;;;;;;oEAiB0D;QAEhE,IAAI,EAAE;;;kEAGwD;QAE9D,KAAK,EAAE;;;;;;iLAMsK;KAC9K,CAAC;IAEF,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7B,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,0BAA0B,OAAO,IAAI,CAAC,CAAC;QACnD,SAAS,EAAE,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/logging_setup.d.ts
CHANGED
|
@@ -31,6 +31,15 @@ export declare class Logger {
|
|
|
31
31
|
}
|
|
32
32
|
export declare function getLogger(name: string): Logger;
|
|
33
33
|
declare function _periodForDate(d: Date, when: 'daily' | 'midnight' | 'weekly'): string;
|
|
34
|
+
/**
|
|
35
|
+
* Walk up from `start` looking for a `package.json` that is NOT inside a
|
|
36
|
+
* `node_modules` directory — that's the project root. Returns null if we
|
|
37
|
+
* reach the filesystem root without finding one.
|
|
38
|
+
*
|
|
39
|
+
* Skipping node_modules is intentional: dependency packages bundle their
|
|
40
|
+
* own package.json, but they're not the project root the user owns.
|
|
41
|
+
*/
|
|
42
|
+
declare function findProjectRoot(start: string): string | null;
|
|
34
43
|
/**
|
|
35
44
|
* Emit one summary record to the file (via the standard logger pipeline —
|
|
36
45
|
* picked up by the file handler, dropped by the console handlers) and one
|
|
@@ -91,5 +100,5 @@ export interface ConfigureLoggingOptions {
|
|
|
91
100
|
*/
|
|
92
101
|
export declare function configureLogging(opts: ConfigureLoggingOptions): void;
|
|
93
102
|
export declare function _resetForTest(): void;
|
|
94
|
-
export { _periodForDate, RUN_SUMMARY_LOGGER, EXCEPTION_LOGGER, buildExcStructured, formatCompactTrace };
|
|
103
|
+
export { _periodForDate, RUN_SUMMARY_LOGGER, EXCEPTION_LOGGER, buildExcStructured, formatCompactTrace, findProjectRoot };
|
|
95
104
|
//# sourceMappingURL=logging_setup.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logging_setup.d.ts","sourceRoot":"","sources":["../src/logging_setup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAa9C,QAAA,MAAM,kBAAkB,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"logging_setup.d.ts","sourceRoot":"","sources":["../src/logging_setup.ts"],"names":[],"mappings":"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"}
|
package/dist/logging_setup.js
CHANGED
|
@@ -47,6 +47,7 @@ exports._resetForTest = _resetForTest;
|
|
|
47
47
|
exports._periodForDate = _periodForDate;
|
|
48
48
|
exports.buildExcStructured = buildExcStructured;
|
|
49
49
|
exports.formatCompactTrace = formatCompactTrace;
|
|
50
|
+
exports.findProjectRoot = findProjectRoot;
|
|
50
51
|
const fs = __importStar(require("fs"));
|
|
51
52
|
const path = __importStar(require("path"));
|
|
52
53
|
const os = __importStar(require("os"));
|
|
@@ -61,6 +62,15 @@ const _handlers = [];
|
|
|
61
62
|
let _runId = null;
|
|
62
63
|
const RUN_SUMMARY_LOGGER = 'runspec.runsummary';
|
|
63
64
|
exports.RUN_SUMMARY_LOGGER = RUN_SUMMARY_LOGGER;
|
|
65
|
+
// Captured-stdout records are logged under this name (mirrors Python's
|
|
66
|
+
// `runspec.print`). Used only for clarity in the audit file.
|
|
67
|
+
const PRINT_LOGGER = 'runspec.print';
|
|
68
|
+
// The real `process.stdout.write`, captured before we tee it. The stdout
|
|
69
|
+
// handler writes through this so its own output isn't re-captured (mirrors
|
|
70
|
+
// Python capturing the real sys.stdout reference before the tee swap).
|
|
71
|
+
let _rawStdoutWrite = null;
|
|
72
|
+
let _stdoutBuf = '';
|
|
73
|
+
let _captureInstalled = false;
|
|
64
74
|
// Uncaught exceptions are emitted on this dedicated logger so the file handler
|
|
65
75
|
// records them while the console handlers drop them by name — console display is
|
|
66
76
|
// handled explicitly in _handleUncaught (debug-gated).
|
|
@@ -208,8 +218,12 @@ class StdoutHandler {
|
|
|
208
218
|
return; // WARNING+ belongs on stderr
|
|
209
219
|
if (record.loggerName === RUN_SUMMARY_LOGGER || record.loggerName === EXCEPTION_LOGGER)
|
|
210
220
|
return;
|
|
221
|
+
if (record.fromPrint)
|
|
222
|
+
return; // the real stdout write already emitted this
|
|
211
223
|
try {
|
|
212
|
-
|
|
224
|
+
// Write through the *raw* stream so this output isn't re-captured by the
|
|
225
|
+
// print-capture tee (would double it in the audit file).
|
|
226
|
+
(_rawStdoutWrite ?? process.stdout.write.bind(process.stdout))(formatConsole(record, this.showTracebacks) + '\n');
|
|
213
227
|
}
|
|
214
228
|
catch {
|
|
215
229
|
// never disrupt
|
|
@@ -251,8 +265,9 @@ class RunSummaryCounter {
|
|
|
251
265
|
DEBUG: 0, INFO: 0, WARNING: 0, ERROR: 0, CRITICAL: 0,
|
|
252
266
|
};
|
|
253
267
|
emit(record) {
|
|
254
|
-
// Don't count runspec's own bookkeeping records (summary + uncaught-exception)
|
|
255
|
-
|
|
268
|
+
// Don't count runspec's own bookkeeping records (summary + uncaught-exception)
|
|
269
|
+
// or captured stdout lines — only genuine logger events.
|
|
270
|
+
if (record.loggerName === RUN_SUMMARY_LOGGER || record.loggerName === EXCEPTION_LOGGER || record.fromPrint)
|
|
256
271
|
return;
|
|
257
272
|
const label = LEVEL_LABEL[record.levelNum];
|
|
258
273
|
if (label && label in this.counts) {
|
|
@@ -608,6 +623,64 @@ function _handleUncaught(err) {
|
|
|
608
623
|
process.stderr.write((err.stack ?? String(err)) + '\n'); // safety fallback
|
|
609
624
|
}
|
|
610
625
|
}
|
|
626
|
+
// ── stdout capture (print → audit log) ─────────────────────────────────────────
|
|
627
|
+
/** Emit one captured stdout line as a file-only record (skipped by console + counter). */
|
|
628
|
+
function emitPrintLine(line) {
|
|
629
|
+
if (_handlers.length === 0)
|
|
630
|
+
return;
|
|
631
|
+
const record = { ts: new Date(), levelNum: 20, loggerName: PRINT_LOGGER, message: redact(line), fromPrint: true };
|
|
632
|
+
for (const h of _handlers) {
|
|
633
|
+
try {
|
|
634
|
+
if (record.levelNum >= h.level)
|
|
635
|
+
h.emit(record);
|
|
636
|
+
}
|
|
637
|
+
catch {
|
|
638
|
+
// never disrupt
|
|
639
|
+
}
|
|
640
|
+
}
|
|
641
|
+
}
|
|
642
|
+
/**
|
|
643
|
+
* Tee `process.stdout.write`: output still reaches the real stream unchanged
|
|
644
|
+
* (so pipes / `runspec serve` capture are untouched), and each complete line is
|
|
645
|
+
* also written to the audit file as a `fromPrint` record. Mirrors Python's
|
|
646
|
+
* `_StdoutTee`, so a runnable's `console.log` output is preserved in the
|
|
647
|
+
* per-invocation log — not just the run summary.
|
|
648
|
+
*/
|
|
649
|
+
function installStdoutCapture() {
|
|
650
|
+
if (_captureInstalled)
|
|
651
|
+
return;
|
|
652
|
+
_captureInstalled = true;
|
|
653
|
+
_rawStdoutWrite = process.stdout.write.bind(process.stdout);
|
|
654
|
+
const patched = function (chunk, encoding, cb) {
|
|
655
|
+
const result = _rawStdoutWrite(chunk, encoding, cb);
|
|
656
|
+
try {
|
|
657
|
+
const s = typeof chunk === 'string' ? chunk : Buffer.isBuffer(chunk) ? chunk.toString(typeof encoding === 'string' ? encoding : 'utf8') : '';
|
|
658
|
+
if (s) {
|
|
659
|
+
_stdoutBuf += s;
|
|
660
|
+
let idx;
|
|
661
|
+
while ((idx = _stdoutBuf.indexOf('\n')) !== -1) {
|
|
662
|
+
const line = _stdoutBuf.slice(0, idx);
|
|
663
|
+
_stdoutBuf = _stdoutBuf.slice(idx + 1);
|
|
664
|
+
if (line)
|
|
665
|
+
emitPrintLine(line);
|
|
666
|
+
}
|
|
667
|
+
}
|
|
668
|
+
}
|
|
669
|
+
catch {
|
|
670
|
+
// never disrupt
|
|
671
|
+
}
|
|
672
|
+
return result;
|
|
673
|
+
};
|
|
674
|
+
process.stdout.write = patched;
|
|
675
|
+
// Flush a trailing partial line at exit. Registered before installExitHooks so
|
|
676
|
+
// it runs before the run-summary record (FIFO exit handlers).
|
|
677
|
+
process.on('exit', () => {
|
|
678
|
+
if (_stdoutBuf) {
|
|
679
|
+
emitPrintLine(_stdoutBuf);
|
|
680
|
+
_stdoutBuf = '';
|
|
681
|
+
}
|
|
682
|
+
});
|
|
683
|
+
}
|
|
611
684
|
function installExitHooks() {
|
|
612
685
|
if (_exitHooksInstalled)
|
|
613
686
|
return;
|
|
@@ -709,6 +782,9 @@ function configureLogging(opts) {
|
|
|
709
782
|
userTarget,
|
|
710
783
|
};
|
|
711
784
|
}
|
|
785
|
+
// Tee stdout into the audit log so printed output (not just the run summary)
|
|
786
|
+
// is preserved. Installed before the exit hooks so its flush runs first.
|
|
787
|
+
installStdoutCapture();
|
|
712
788
|
// Uncaught-exception handling is always installed (independent of the summary
|
|
713
789
|
// toggle) so the structured exception record reaches the audit file even when
|
|
714
790
|
// summary is off. The exit hook only flushes a summary when _summaryState is set.
|
|
@@ -723,6 +799,13 @@ function _resetForTest() {
|
|
|
723
799
|
_loggers.clear();
|
|
724
800
|
_handlers.length = 0;
|
|
725
801
|
_summaryState = null;
|
|
802
|
+
// Un-tee stdout so the patch doesn't leak across tests.
|
|
803
|
+
if (_rawStdoutWrite) {
|
|
804
|
+
process.stdout.write = _rawStdoutWrite;
|
|
805
|
+
_rawStdoutWrite = null;
|
|
806
|
+
}
|
|
807
|
+
_stdoutBuf = '';
|
|
808
|
+
_captureInstalled = false;
|
|
726
809
|
// Note: process event listeners installed by installExitHooks() stay —
|
|
727
810
|
// they no-op when _summaryState is null, which is the test-time state.
|
|
728
811
|
}
|