@flighthq/tool-capture 0.3.1-next.971.33e20ba → 0.3.1-next.975.01aea94
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/captureBaselineCoverageManifest.d.ts +23 -7
- package/dist/captureBaselineCoverageManifest.d.ts.map +1 -1
- package/dist/captureBaselineCoverageManifest.js +77 -20
- package/dist/captureBaselineCoverageManifest.js.map +1 -1
- package/dist/captureValidation.d.ts.map +1 -1
- package/dist/captureValidation.js +6 -2
- package/dist/captureValidation.js.map +1 -1
- package/package.json +5 -5
- package/src/captureBaselineCoverageManifest.test.ts +197 -52
- package/src/captureValidation.test.ts +7 -3
|
@@ -1,7 +1,12 @@
|
|
|
1
|
+
/** The three kinds of evidence a capture target can carry. Each is independently losable. */
|
|
2
|
+
export type CaptureBaselineEvidenceKind = 'fingerprint' | 'oracle' | 'screenshot';
|
|
1
3
|
export interface CaptureBaselineCoverageManifest {
|
|
2
|
-
schemaVersion:
|
|
3
|
-
/**
|
|
4
|
-
|
|
4
|
+
schemaVersion: 2;
|
|
5
|
+
/**
|
|
6
|
+
* Per subject (`functional`, `examples`): each `entry/renderer` identity mapped to the sorted evidence
|
|
7
|
+
* kinds it carries. A target with no evidence at all is absent rather than mapped to an empty list.
|
|
8
|
+
*/
|
|
9
|
+
subjects: Record<string, Record<string, CaptureBaselineEvidenceKind[]>>;
|
|
5
10
|
}
|
|
6
11
|
export interface CaptureBaselineCoverageDiff {
|
|
7
12
|
/** Identities covered now that the manifest does not record. */
|
|
@@ -11,10 +16,11 @@ export interface CaptureBaselineCoverageDiff {
|
|
|
11
16
|
/** Identities the manifest records that this run never visited. Only meaningful whole-repo. */
|
|
12
17
|
absent: string[];
|
|
13
18
|
}
|
|
14
|
-
export declare const CAPTURE_BASELINE_COVERAGE_MANIFEST_VERSION =
|
|
19
|
+
export declare const CAPTURE_BASELINE_COVERAGE_MANIFEST_VERSION = 2;
|
|
20
|
+
export declare const CAPTURE_BASELINE_EVIDENCE_KINDS: readonly CaptureBaselineEvidenceKind[];
|
|
15
21
|
/** Where the committed pin lives — one file, keyed by subject, beside the reachability baseline. */
|
|
16
22
|
export declare function captureBaselineCoverageManifestPath(root: string): string;
|
|
17
|
-
export declare function createCaptureBaselineCoverageManifest(subjects: Readonly<Record<string, readonly
|
|
23
|
+
export declare function createCaptureBaselineCoverageManifest(subjects: Readonly<Record<string, Readonly<Record<string, readonly CaptureBaselineEvidenceKind[]>>>>): CaptureBaselineCoverageManifest;
|
|
18
24
|
/**
|
|
19
25
|
* Diffs observed coverage against the manifest for one subject.
|
|
20
26
|
*
|
|
@@ -29,13 +35,21 @@ export declare function createCaptureBaselineCoverageManifest(subjects: Readonly
|
|
|
29
35
|
* absence check entirely (any entry could have been excluded), and `activeRenderers` narrows it to the
|
|
30
36
|
* renderers this run actually ran, so `--renderer=webgl` does not report every canvas pin as vanished.
|
|
31
37
|
*/
|
|
32
|
-
export declare function diffCaptureBaselineCoverage(manifest: Readonly<CaptureBaselineCoverageManifest>, subject: string, covered: readonly
|
|
38
|
+
export declare function diffCaptureBaselineCoverage(manifest: Readonly<CaptureBaselineCoverageManifest>, subject: string, covered: Readonly<Record<string, readonly CaptureBaselineEvidenceKind[]>>, visited: readonly string[], scope: Readonly<{
|
|
33
39
|
entryFiltered: boolean;
|
|
34
40
|
activeRenderers: readonly string[] | null;
|
|
35
41
|
undetermined?: readonly string[];
|
|
42
|
+
/**
|
|
43
|
+
* The evidence kinds this run was able to observe. A run that never looked at screenshots must not
|
|
44
|
+
* report every screenshot pin as lost — the same not-observed-is-not-absent rule the other two scope
|
|
45
|
+
* fields apply to entries and renderers, applied to the third axis.
|
|
46
|
+
*/
|
|
47
|
+
kinds?: readonly CaptureBaselineEvidenceKind[];
|
|
36
48
|
}>): CaptureBaselineCoverageDiff;
|
|
37
49
|
/** `entry/renderer`, the identity a manifest pins. */
|
|
38
50
|
export declare function formatCaptureBaselineCoverageIdentity(entry: string, renderer: string): string;
|
|
51
|
+
/** `entry/renderer#kind` — the unit a loss is named in. `#` because a renderer id may contain `:`. */
|
|
52
|
+
export declare function formatCaptureBaselineEvidenceIdentity(identity: string, kind: CaptureBaselineEvidenceKind): string;
|
|
39
53
|
/**
|
|
40
54
|
* True when the diff records something the operator must accept or repair — in EITHER direction.
|
|
41
55
|
*
|
|
@@ -47,6 +61,8 @@ export declare function formatCaptureBaselineCoverageIdentity(entry: string, ren
|
|
|
47
61
|
* both halves. The sibling registrar manifest fails in both directions for the same reason.
|
|
48
62
|
*/
|
|
49
63
|
export declare function isCaptureBaselineCoverageFailure(diff: Readonly<CaptureBaselineCoverageDiff>): boolean;
|
|
64
|
+
/** Every `target#kind` a manifest pins for one subject, sorted. */
|
|
65
|
+
export declare function listCaptureBaselineEvidence(manifest: Readonly<CaptureBaselineCoverageManifest>, subject: string): string[];
|
|
50
66
|
/** The committed pin, or an empty manifest when none exists yet. A missing file is not an error. */
|
|
51
67
|
export declare function readCaptureBaselineCoverageManifest(root: string): CaptureBaselineCoverageManifest;
|
|
52
68
|
/**
|
|
@@ -60,5 +76,5 @@ export declare function readCaptureBaselineCoverageManifest(root: string): Captu
|
|
|
60
76
|
* determined that identity to be uncovered. Everything else is carried forward. One flaky target therefore
|
|
61
77
|
* cannot quietly retire a pin, and cannot block the whole acceptance either.
|
|
62
78
|
*/
|
|
63
|
-
export declare function writeCaptureBaselineCoverageManifest(root: string, subject: string,
|
|
79
|
+
export declare function writeCaptureBaselineCoverageManifest(root: string, subject: string, covered: Readonly<Record<string, readonly CaptureBaselineEvidenceKind[]>>, activeRenderers?: readonly string[] | null, determined?: readonly string[] | null, observedKinds?: readonly CaptureBaselineEvidenceKind[] | null): CaptureBaselineCoverageManifest;
|
|
64
80
|
//# sourceMappingURL=captureBaselineCoverageManifest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"captureBaselineCoverageManifest.d.ts","sourceRoot":"","sources":["../src/captureBaselineCoverageManifest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"captureBaselineCoverageManifest.d.ts","sourceRoot":"","sources":["../src/captureBaselineCoverageManifest.ts"],"names":[],"mappings":"AAqCA,6FAA6F;AAC7F,MAAM,MAAM,2BAA2B,GAAG,aAAa,GAAG,QAAQ,GAAG,YAAY,CAAC;AAElF,MAAM,WAAW,+BAA+B;IAC9C,aAAa,EAAE,CAAC,CAAC;IACjB;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,2BAA2B,EAAE,CAAC,CAAC,CAAC;CACzE;AAED,MAAM,WAAW,2BAA2B;IAC1C,gEAAgE;IAChE,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,qFAAqF;IACrF,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,+FAA+F;IAC/F,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,eAAO,MAAM,0CAA0C,IAAI,CAAC;AAE5D,eAAO,MAAM,+BAA+B,EAAE,SAAS,2BAA2B,EAIjF,CAAC;AAEF,oGAAoG;AACpG,wBAAgB,mCAAmC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExE;AAED,wBAAgB,qCAAqC,CACnD,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,2BAA2B,EAAE,CAAC,CAAC,CAAC,CAAC,GACnG,+BAA+B,CAcjC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,QAAQ,CAAC,+BAA+B,CAAC,EACnD,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,2BAA2B,EAAE,CAAC,CAAC,EACzE,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,KAAK,EAAE,QAAQ,CAAC;IACd,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAC1C,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,2BAA2B,EAAE,CAAC;CAChD,CAAC,GACD,2BAA2B,CAiC7B;AAED,sDAAsD;AACtD,wBAAgB,qCAAqC,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE7F;AAED,sGAAsG;AACtG,wBAAgB,qCAAqC,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,2BAA2B,GAAG,MAAM,CAEjH;AAED;;;;;;;;;GASG;AACH,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,QAAQ,CAAC,2BAA2B,CAAC,GAAG,OAAO,CAErG;AAED,mEAAmE;AACnE,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,QAAQ,CAAC,+BAA+B,CAAC,EACnD,OAAO,EAAE,MAAM,GACd,MAAM,EAAE,CAKV;AAED,oGAAoG;AACpG,wBAAgB,mCAAmC,CAAC,IAAI,EAAE,MAAM,GAAG,+BAA+B,CAejG;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oCAAoC,CAClD,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,2BAA2B,EAAE,CAAC,CAAC,EACzE,eAAe,GAAE,SAAS,MAAM,EAAE,GAAG,IAAW,EAChD,UAAU,GAAE,SAAS,MAAM,EAAE,GAAG,IAAW,EAC3C,aAAa,GAAE,SAAS,2BAA2B,EAAE,GAAG,IAAW,GAClE,+BAA+B,CAuBjC"}
|
|
@@ -22,17 +22,41 @@
|
|
|
22
22
|
// The manifest records only that a target HAD a comparable baseline, never what the baseline contained.
|
|
23
23
|
// It is a pin on the SHAPE of the evidence, not on the evidence, so re-baselining a scene is not a
|
|
24
24
|
// manifest change and does not need acceptance.
|
|
25
|
+
//
|
|
26
|
+
// ★ ONE DEFECT, THREE TIERS, ONE MANIFEST. The pipeline records which evidence EXISTS and never records
|
|
27
|
+
// which evidence SHOULD exist, so wherever evidence is optional its absence is indistinguishable from
|
|
28
|
+
// satisfaction. That surfaced independently in three tiers over the SAME target set — a missing
|
|
29
|
+
// fingerprint skips the regression comparison, a missing `sha256` leaves `changed` null so
|
|
30
|
+
// `--fail-on-changed` cannot fire, and a missing (or misspelled) `assertRender` export silently runs no
|
|
31
|
+
// oracle. They are not three defects: they are three kinds of evidence about one row, and a target's
|
|
32
|
+
// evidence profile is ONE fact. Three parallel manifests would be three places for that fact to drift
|
|
33
|
+
// apart, so the kinds are COLUMNS on one row here, and a loss is named as `target#kind`.
|
|
25
34
|
import { existsSync, readFileSync, writeFileSync } from 'node:fs';
|
|
26
35
|
import { join } from 'node:path';
|
|
27
|
-
export const CAPTURE_BASELINE_COVERAGE_MANIFEST_VERSION =
|
|
36
|
+
export const CAPTURE_BASELINE_COVERAGE_MANIFEST_VERSION = 2;
|
|
37
|
+
export const CAPTURE_BASELINE_EVIDENCE_KINDS = [
|
|
38
|
+
'fingerprint',
|
|
39
|
+
'oracle',
|
|
40
|
+
'screenshot',
|
|
41
|
+
];
|
|
28
42
|
/** Where the committed pin lives — one file, keyed by subject, beside the reachability baseline. */
|
|
29
43
|
export function captureBaselineCoverageManifestPath(root) {
|
|
30
44
|
return join(root, 'scripts', 'capture-baseline-coverage-manifest.json');
|
|
31
45
|
}
|
|
32
46
|
export function createCaptureBaselineCoverageManifest(subjects) {
|
|
33
47
|
const out = {};
|
|
34
|
-
for (const [subject,
|
|
35
|
-
|
|
48
|
+
for (const [subject, targets] of Object.entries(subjects)) {
|
|
49
|
+
const row = {};
|
|
50
|
+
// A target with no evidence at all is ABSENT rather than pinned-with-nothing: pinning an empty row
|
|
51
|
+
// would assert "this target is known to carry no evidence", which is the claim the manifest exists
|
|
52
|
+
// to make impossible to state by accident.
|
|
53
|
+
for (const identity of Object.keys(targets).sort()) {
|
|
54
|
+
const kinds = [...new Set(targets[identity])].sort();
|
|
55
|
+
if (kinds.length > 0)
|
|
56
|
+
row[identity] = kinds;
|
|
57
|
+
}
|
|
58
|
+
out[subject] = row;
|
|
59
|
+
}
|
|
36
60
|
return { schemaVersion: CAPTURE_BASELINE_COVERAGE_MANIFEST_VERSION, subjects: out };
|
|
37
61
|
}
|
|
38
62
|
/**
|
|
@@ -50,18 +74,24 @@ export function createCaptureBaselineCoverageManifest(subjects) {
|
|
|
50
74
|
* renderers this run actually ran, so `--renderer=webgl` does not report every canvas pin as vanished.
|
|
51
75
|
*/
|
|
52
76
|
export function diffCaptureBaselineCoverage(manifest, subject, covered, visited, scope) {
|
|
53
|
-
const
|
|
54
|
-
const
|
|
77
|
+
const kindObserved = (kind) => scope.kinds === undefined || scope.kinds.includes(kind);
|
|
78
|
+
const pinnedRows = manifest.subjects[subject] ?? {};
|
|
79
|
+
const pinned = new Set(Object.entries(pinnedRows).flatMap(([identity, kinds]) => kinds.filter(kindObserved).map((kind) => formatCaptureBaselineEvidenceIdentity(identity, kind))));
|
|
80
|
+
const coveredSet = new Set(Object.entries(covered).flatMap(([identity, kinds]) => [...kinds].filter(kindObserved).map((kind) => formatCaptureBaselineEvidenceIdentity(identity, kind))));
|
|
55
81
|
const visitedSet = new Set(visited);
|
|
82
|
+
const targetOf = (evidence) => evidence.slice(0, evidence.lastIndexOf('#'));
|
|
56
83
|
const rendererOf = (identity) => identity.slice(identity.lastIndexOf('/') + 1);
|
|
57
84
|
const rendererActive = (identity) => scope.activeRenderers === null || scope.activeRenderers.includes(rendererOf(identity));
|
|
58
|
-
const gained =
|
|
59
|
-
const lost = [...pinned].filter((
|
|
85
|
+
const gained = [...coveredSet].filter((evidence) => !pinned.has(evidence)).sort();
|
|
86
|
+
const lost = [...pinned].filter((evidence) => visitedSet.has(targetOf(evidence)) && !coveredSet.has(evidence)).sort();
|
|
60
87
|
const undeterminedSet = new Set(scope.undetermined ?? []);
|
|
61
88
|
const absent = scope.entryFiltered
|
|
62
89
|
? []
|
|
63
90
|
: [...pinned]
|
|
64
|
-
.filter((
|
|
91
|
+
.filter((evidence) => {
|
|
92
|
+
const identity = targetOf(evidence);
|
|
93
|
+
return rendererActive(identity) && !visitedSet.has(identity) && !undeterminedSet.has(identity);
|
|
94
|
+
})
|
|
65
95
|
.sort();
|
|
66
96
|
return { gained, lost, absent };
|
|
67
97
|
}
|
|
@@ -69,6 +99,10 @@ export function diffCaptureBaselineCoverage(manifest, subject, covered, visited,
|
|
|
69
99
|
export function formatCaptureBaselineCoverageIdentity(entry, renderer) {
|
|
70
100
|
return `${entry}/${renderer}`;
|
|
71
101
|
}
|
|
102
|
+
/** `entry/renderer#kind` — the unit a loss is named in. `#` because a renderer id may contain `:`. */
|
|
103
|
+
export function formatCaptureBaselineEvidenceIdentity(identity, kind) {
|
|
104
|
+
return `${identity}#${kind}`;
|
|
105
|
+
}
|
|
72
106
|
/**
|
|
73
107
|
* True when the diff records something the operator must accept or repair — in EITHER direction.
|
|
74
108
|
*
|
|
@@ -82,14 +116,30 @@ export function formatCaptureBaselineCoverageIdentity(entry, renderer) {
|
|
|
82
116
|
export function isCaptureBaselineCoverageFailure(diff) {
|
|
83
117
|
return diff.gained.length > 0 || diff.lost.length > 0 || diff.absent.length > 0;
|
|
84
118
|
}
|
|
119
|
+
/** Every `target#kind` a manifest pins for one subject, sorted. */
|
|
120
|
+
export function listCaptureBaselineEvidence(manifest, subject) {
|
|
121
|
+
const targets = manifest.subjects[subject] ?? {};
|
|
122
|
+
return Object.entries(targets)
|
|
123
|
+
.flatMap(([identity, kinds]) => kinds.map((kind) => formatCaptureBaselineEvidenceIdentity(identity, kind)))
|
|
124
|
+
.sort();
|
|
125
|
+
}
|
|
85
126
|
/** The committed pin, or an empty manifest when none exists yet. A missing file is not an error. */
|
|
86
127
|
export function readCaptureBaselineCoverageManifest(root) {
|
|
87
128
|
const path = captureBaselineCoverageManifestPath(root);
|
|
88
129
|
if (!existsSync(path))
|
|
89
130
|
return createCaptureBaselineCoverageManifest({});
|
|
90
131
|
const parsed = JSON.parse(readFileSync(path, 'utf8'));
|
|
91
|
-
const subjects = parsed.subjects;
|
|
92
|
-
|
|
132
|
+
const subjects = parsed.subjects ?? {};
|
|
133
|
+
const migrated = {};
|
|
134
|
+
for (const [subject, value] of Object.entries(subjects)) {
|
|
135
|
+
// Schema 1 pinned a bare identity list, and every identity in it meant "has a comparable fingerprint"
|
|
136
|
+
// because that was the only evidence kind the manifest knew about. Read it as exactly that claim
|
|
137
|
+
// rather than as a target with all three, which would manufacture pins nobody ever accepted.
|
|
138
|
+
migrated[subject] = Array.isArray(value)
|
|
139
|
+
? Object.fromEntries(value.map((identity) => [identity, ['fingerprint']]))
|
|
140
|
+
: value;
|
|
141
|
+
}
|
|
142
|
+
return createCaptureBaselineCoverageManifest(migrated);
|
|
93
143
|
}
|
|
94
144
|
/**
|
|
95
145
|
* Rewrites ONE subject's pin, preserving every other subject — an update run covers the subject it ran and
|
|
@@ -102,19 +152,26 @@ export function readCaptureBaselineCoverageManifest(root) {
|
|
|
102
152
|
* determined that identity to be uncovered. Everything else is carried forward. One flaky target therefore
|
|
103
153
|
* cannot quietly retire a pin, and cannot block the whole acceptance either.
|
|
104
154
|
*/
|
|
105
|
-
export function writeCaptureBaselineCoverageManifest(root, subject,
|
|
155
|
+
export function writeCaptureBaselineCoverageManifest(root, subject, covered, activeRenderers = null, determined = null, observedKinds = null) {
|
|
106
156
|
const existing = readCaptureBaselineCoverageManifest(root);
|
|
107
157
|
const determinedSet = determined === null ? null : new Set(determined);
|
|
108
|
-
const
|
|
158
|
+
const previous = existing.subjects[subject] ?? {};
|
|
159
|
+
const merged = {};
|
|
160
|
+
for (const [identity, kinds] of Object.entries(previous)) {
|
|
109
161
|
const renderer = identity.slice(identity.lastIndexOf('/') + 1);
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
162
|
+
const rendererOutOfScope = activeRenderers !== null && !activeRenderers.includes(renderer);
|
|
163
|
+
const notDetermined = determinedSet !== null && !determinedSet.has(identity);
|
|
164
|
+
// Carry forward every kind this run could not speak for: a renderer it did not run, a target it
|
|
165
|
+
// never settled, or an evidence kind it never observed. A run retires only what it positively
|
|
166
|
+
// determined to be gone, on all three axes.
|
|
167
|
+
const carried = kinds.filter((kind) => rendererOutOfScope || notDetermined || (observedKinds !== null && !observedKinds.includes(kind)));
|
|
168
|
+
if (carried.length > 0)
|
|
169
|
+
merged[identity] = carried;
|
|
170
|
+
}
|
|
171
|
+
for (const [identity, kinds] of Object.entries(covered)) {
|
|
172
|
+
merged[identity] = [...new Set([...(merged[identity] ?? []), ...kinds])];
|
|
173
|
+
}
|
|
174
|
+
const manifest = createCaptureBaselineCoverageManifest({ ...existing.subjects, [subject]: merged });
|
|
118
175
|
writeFileSync(captureBaselineCoverageManifestPath(root), `${JSON.stringify(manifest, null, 2)}\n`);
|
|
119
176
|
return manifest;
|
|
120
177
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"captureBaselineCoverageManifest.js","sourceRoot":"","sources":["../src/captureBaselineCoverageManifest.ts"],"names":[],"mappings":"AAAA,sGAAsG;AACtG,2CAA2C;AAC3C,EAAE;AACF,6FAA6F;AAC7F,sGAAsG;AACtG,wGAAwG;AACxG,yGAAyG;AACzG,wGAAwG;AACxG,uGAAuG;AACvG,yGAAyG;AACzG,yGAAyG;AACzG,EAAE;AACF,sGAAsG;AACtG,0GAA0G;AAC1G,yGAAyG;AACzG,sGAAsG;AACtG,yGAAyG;AACzG,yGAAyG;AACzG,sGAAsG;AACtG,cAAc;AACd,EAAE;AACF,wGAAwG;AACxG,mGAAmG;AACnG,gDAAgD;
|
|
1
|
+
{"version":3,"file":"captureBaselineCoverageManifest.js","sourceRoot":"","sources":["../src/captureBaselineCoverageManifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"captureValidation.d.ts","sourceRoot":"","sources":["../src/captureValidation.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"captureValidation.d.ts","sourceRoot":"","sources":["../src/captureValidation.ts"],"names":[],"mappings":"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"}
|
|
@@ -903,10 +903,14 @@ export async function runCaptureValidation(input) {
|
|
|
903
903
|
// identity that ran and no longer has a baseline is named individually, instead of being absorbed into
|
|
904
904
|
// an "uncovered" count that still satisfies the floor as long as one other target compared.
|
|
905
905
|
const coverageDiff = options.gateRegression && !options.updateCoverage
|
|
906
|
-
? diffCaptureBaselineCoverage(readCaptureBaselineCoverageManifest(options.root), options.subject, [...new Set(coveredIdentities)], [...new Set(visitedIdentities)], {
|
|
906
|
+
? diffCaptureBaselineCoverage(readCaptureBaselineCoverageManifest(options.root), options.subject, Object.fromEntries([...new Set(coveredIdentities)].map((identity) => [identity, ['fingerprint']])), [...new Set(visitedIdentities)], {
|
|
907
907
|
entryFiltered,
|
|
908
908
|
activeRenderers: options.rendererFilter.length > 0 ? [...options.rendererFilter] : null,
|
|
909
909
|
undetermined: [...new Set(undeterminedIdentities)],
|
|
910
|
+
// Validation observes the FINGERPRINT column and nothing else. Without this the screenshot
|
|
911
|
+
// and oracle pins would read as lost on every validate run — absence of observation reported
|
|
912
|
+
// as absence of evidence, which is the defect this manifest exists to prevent.
|
|
913
|
+
kinds: ['fingerprint'],
|
|
910
914
|
})
|
|
911
915
|
: { gained: [], lost: [], absent: [] };
|
|
912
916
|
const coverageFailed = isCaptureBaselineCoverageFailure(coverageDiff);
|
|
@@ -924,7 +928,7 @@ export async function runCaptureValidation(input) {
|
|
|
924
928
|
return createResult(true);
|
|
925
929
|
}
|
|
926
930
|
const identities = [...new Set(coveredIdentities)];
|
|
927
|
-
writeCaptureBaselineCoverageManifest(options.root, options.subject, identities, options.rendererFilter.length > 0 ? [...options.rendererFilter] : null, [...new Set(visitedIdentities)]);
|
|
931
|
+
writeCaptureBaselineCoverageManifest(options.root, options.subject, Object.fromEntries(identities.map((identity) => [identity, ['fingerprint']])), options.rendererFilter.length > 0 ? [...options.rendererFilter] : null, [...new Set(visitedIdentities)], ['fingerprint']);
|
|
928
932
|
if (!options.quiet)
|
|
929
933
|
console.log(`\ncapture baseline coverage manifest updated — ${identities.length} identit${identities.length === 1 ? 'y' : 'ies'} pinned for ${options.subject}`);
|
|
930
934
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"captureValidation.js","sourceRoot":"","sources":["../src/captureValidation.ts"],"names":[],"mappings":"AAAA,sGAAsG;AACtG,6EAA6E;AAC7E,oGAAoG;AACpG,8DAA8D;AAC9D,EAAE;AACF,iGAAiG;AACjG,wGAAwG;AACxG,oGAAoG;AACpG,qGAAqG;AACrG,oGAAoG;AACpG,EAAE;AACF,kGAAkG;AAClG,sGAAsG;AACtG,qGAAqG;AACrG,oFAAoF;AACpF,4EAA4E;AAC5E,EAAE;AACF,uGAAuG;AACvG,wGAAwG;AACxG,sBAAsB;AAEtB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,0BAA0B,EAC1B,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EACL,2BAA2B,EAC3B,qCAAqC,EACrC,gCAAgC,EAChC,mCAAmC,EACnC,oCAAoC,GACrC,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAExE,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEvG,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC/G,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElF,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,2BAA2B,EAAE,gCAAgC,EAAE,MAAM,6BAA6B,CAAC;AAE5G,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAkI1D,SAAS,cAAc,CAAC,KAAa,EAAE,QAAgB;IACrD,OAAO,GAAG,KAAK,KAAK,QAAQ,EAAE,CAAC;AACjC,CAAC;AAED,SAAS,mBAAmB,CAC1B,KAAsB,EACtB,cAAiC,EACjC,YAAoE;IAEpE,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/F,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE;QACzC,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;QAC5E,OAAO,CAAC,OAAO,KAAK,KAAK,IAAI,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,qBAAqB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IACjH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,QAAQ,CAAC,CAAS,EAAE,CAAS;IACpC,MAAM,UAAU,GAAG,0BAA0B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,OAAO,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;AACzD,CAAC;AAED,SAAS,OAAO,CACd,KAAsF,EACtF,YAAyC,EACzC,CAAS,EACT,CAAS,EACT,KAAa,EACb,SAAiB;IAEjB,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAE,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC;IAClE,IAAI,IAAI,KAAK,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;AACjH,CAAC;AAED,qGAAqG;AACrG,uGAAuG;AACvG,gGAAgG;AAChG,MAAM,UAAU,6BAA6B,CAC3C,aAAqB,EACrB,SAAkB,EAClB,wBAA2C,EAAE;IAE7C,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,SAAS;YACd,CAAC,CAAC,6CAA6C;YAC/C,CAAC,CAAC,2FAA2F,CAAC;IAClG,CAAC;IACD,kGAAkG;IAClG,mGAAmG;IACnG,qGAAqG;IACrG,oFAAoF;IACpF,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,OAAO,uCAAuC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,uHAAuH,CAAC;IACxM,CAAC;IACD,IAAI,aAAa,KAAK,CAAC;QAAE,OAAO,mEAAmE,CAAC;IACpG,OAAO,kDAAkD,CAAC;AAC5D,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,OAAuB,EACvB,OAAe,EACf,KAAsB,EACtB,QAAgB,EAChB,OAAe;IAEf,oGAAoG;IACpG,mGAAmG;IACnG,gGAAgG;IAChG,oGAAoG;IACpG,8FAA8F;IAC9F,sEAAsE;IACtE,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB,IAAI,IAAI,GAAgB,IAAI,CAAC;IAC7B,IAAI,CAAC;QACH,oGAAoG;QACpG,uEAAuE;QACvE,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACvD,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;YACvB,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,OAAO;gBAAE,SAAS,KAAK,2BAA2B,CAAC,CAAC,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;QACH,gCAAgC,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,aAAa,KAAK,OAAO,CAAC,CAAC,CAAC;QACjF,MAAM,KAAK,GAAG,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC7D,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,IAAI,KAAK,EAAE,EAAE;YACrC,SAAS,EAAE,kBAAkB;YAC7B,OAAO,EAAE,mBAAmB,EAAE;SAC/B,CAAC,CAAC;QACH,kGAAkG;QAClG,oGAAoG;QACpG,sGAAsG;QACtG,oGAAoG;QACpG,sGAAsG;QACtG,0FAA0F;QAC1F,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACxC,MAAM,yBAAyB,GAAG,MAAM,IAAI;aACzC,eAAe,CACd,GAAG,EAAE;YACH,MAAM,CAAC,GAAG,MAGT,CAAC;YACF,MAAM,YAAY,GAAG,CAAC,CAAC,gBAAgB,CAAC;YACxC,OAAO,CACL,YAAY,EAAE,KAAK,KAAK,QAAQ;gBAChC,YAAY,EAAE,KAAK,KAAK,QAAQ;gBAChC,CAAC,YAAY,EAAE,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,CAAC,0BAA0B,KAAK,UAAU,CAAC;gBACtF,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,IAAI,CAC7C,CAAC;QACJ,CAAC,EACD,IAAI,EACJ,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CACjD;aACA,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;aAChB,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;QACtB,IAAI,yBAAyB,IAAI,CAAC,MAAM,6BAA6B,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC7E,MAAM,IAAI;iBACP,eAAe,CACd,GAAG,EAAE;gBACH,MAAM,YAAY,GAAI,MAAyD,CAAC,gBAAgB,CAAC;gBACjG,OAAO,CACL,YAAY,EAAE,KAAK,KAAK,QAAQ;oBAChC,YAAY,EAAE,KAAK,KAAK,QAAQ;oBAChC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,IAAI,CAC7C,CAAC;YACJ,CAAC,EACD,IAAI,EACJ,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CACjD;iBACA,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACrB,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC,CAAC;QAC/D,MAAM,YAAY,GAAG,MAAM,IAAI;aAC5B,QAAQ,CAAC,GAAG,EAAE,CAAE,MAAyD,CAAC,gBAAgB,IAAI,IAAI,CAAC;aACnG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,YAAY,EAAE,eAAe,KAAK,SAAS,IAAI,YAAY,CAAC,eAAe,KAAK,wBAAwB,EAAE,CAAC;YAC7G,OAAO;gBACL,WAAW,EAAE,IAAI;gBACjB,MAAM,EAAE,oBAAoB,YAAY,CAAC,eAAe,yBAAyB,wBAAwB,EAAE;gBAC3G,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE,KAAK;aACf,CAAC;QACJ,CAAC;QACD,IAAI,YAAY,EAAE,KAAK,KAAK,QAAQ,IAAI,YAAY,CAAC,WAAW;YAC9D,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACnG,IAAI,YAAY,EAAE,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,cAAc,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,CAAC;YACzD,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;gBAC5B,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YACzF,CAAC;QACH,CAAC;QACD,uGAAuG;QACvG,gGAAgG;QAChG,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5F,MAAM,MAAM,GAAG,YAAY,EAAE,KAAK,IAAI,aAAa,IAAI,SAAS,IAAI,OAAO,CAAC;QAC5E,IAAI,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC;YAClC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,wBAAwB,MAAM,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC7G,OAAO;YACL,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,MAAM,IAAI,+BAA+B,CAAC,YAAY,EAAE,QAAQ,CAAC;YACzE,WAAW,EAAE,KAAK;YAClB,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,qGAAqG;QACrG,IAAI,oBAAoB,CAAC,GAAG,CAAC;YAC3B,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACzF,OAAO;YACL,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;YACxD,WAAW,EAAE,KAAK;YAClB,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,MAAM,IAAI,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,IAAU;IAC7C,MAAM,MAAM,GAAG,MAAM,IAAI;SACtB,cAAc,CAAC,GAAG,EAAE,CAClB,MAA2F,CAAC,UAAU,EAAE,IAAI;QAC7G,KAAK;QACH,CAAC,CAAE,MAAyE,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO;QACrG,CAAC,CAAC,IAAI,CACT;SACA,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACrB,MAAM,OAAO,GAAG,MAAM,EAAE,SAAS,EAAE,CAAC;IACpC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC9C,MAAM,MAAM,EAAE,OAAO,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;QACxE,MAAM,OAAO,GAAG,yBAAyB,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzE,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YAC1C,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;YAC1B,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC;YACnB,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC;YACrB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC;YAClC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC;YACpC,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,OAAO,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC/E,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;YAC5E,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,GAAG,GAAG,kBAAkB,CAAC;YAC/B,IAAI,WAAW,GAAG,GAAG,QAAQ,GAAG,CAAC;YACjC,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC;gBACrC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC;gBACvD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;gBAC/E,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC;oBACrC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC;oBACtD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;oBAC9E,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBACvB,IAAI,KAAK,GAAG,CAAC,CAAC;oBACd,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAClD,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;4BACjD,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;4BAC1C,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAE,CAAC;4BAC3B,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;4BAC/B,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;4BAC/B,KAAK,EAAE,CAAC;wBACV,CAAC;oBACH,CAAC;oBACD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;wBACvB,MAAM,KAAK,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;wBACxD,WAAW,IAAI,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,GAAG,CAAE,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAE,CAAC;oBAC9D,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,WAAW,CAAC;QACrB,CAAC,EAAE,OAAO,CAAC,CAAC;IACd,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,EAAE,OAAO,EAAE,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,iGAAiG;AACjG,uGAAuG;AACvG,uFAAuF;AACvF,EAAE;AACF,qGAAqG;AACrG,uGAAuG;AACvG,sGAAsG;AACtG,uGAAuG;AACvG,mGAAmG;AACnG,8DAA8D;AAC9D,EAAE;AACF,qGAAqG;AACrG,oGAAoG;AACpG,uGAAuG;AACvG,MAAM,UAAU,+BAA+B,CAC7C,YAA8E,EAC9E,QAAgB;IAEhB,MAAM,MAAM,GAAG,UAAU,QAAQ,SAAS,mBAAmB,EAAE,IAAI,CAAC;IACpE,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QACxD,OAAO,gEAAgE,MAAM,2CAA2C,CAAC;IAC3H,CAAC;IACD,IAAI,YAAY,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACrC,OAAO,iDAAiD,MAAM,wCAAwC,CAAC;IACzG,CAAC;IACD,IAAI,YAAY,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,gDAAgD,MAAM,iCAAiC,CAAC;IACjG,CAAC;IACD,mGAAmG;IACnG,uGAAuG;IACvG,0GAA0G;IAC1G,kBAAkB;IAClB,MAAM,KAAK,GAAI,YAAmC,CAAC,KAAK,CAAC;IACzD,MAAM,KAAK,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,GAAG,CAAC;IAChE,OAAO,kCAAkC,KAAK,cAAc,YAAY,CAAC,KAAK,MAAM,MAAM,kDAAkD,CAAC;AAC/I,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CACxC,MAA8G,EAC9G,KAAK,GAAG,EAAE;IAEV,MAAM,QAAQ,GAAG,MAAM;SACpB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC;SAChF,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAS,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC,CAAC;SACrG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7E,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAE,CAAC,QAAQ,CAAC;IACxD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3G,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC/C,OAAO;QACL,8BAA8B,QAAQ,CAAC,MAAM,qBAAqB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;QACvF,GAAG,KAAK;QACR,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,GAAoC;IACjF,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC;IACrD,IAAI,GAAG,CAAC,mBAAmB,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAChD,OAAO,GAAG,CAAC,iBAAiB,KAAK,CAAC,IAAI,GAAG,CAAC,eAAe,GAAG,CAAC,CAAC;AAChE,CAAC;AAED,4FAA4F;AAC5F,mGAAmG;AACnG,oGAAoG;AACpG,EAAE;AACF,kGAAkG;AAClG,oGAAoG;AACpG,kGAAkG;AAClG,kFAAkF;AAClF,MAAM,UAAU,kCAAkC,CAAC,GAAwC;IACzF,IAAI,CAAC,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC;IACzD,OAAO,GAAG,CAAC,qBAAqB,KAAK,CAAC,IAAI,GAAG,CAAC,mBAAmB,GAAG,CAAC,CAAC;AACxE,CAAC;AAsBD,KAAK,UAAU,YAAY,CACzB,KAAsB,EACtB,UAAkB,EAClB,YAAoB,EACpB,SAAwB,EACxB,OAAmD,EACnD,OAAqC;IAErC,MAAM,MAAM,GAAgB;QAC1B,OAAO,EAAE,EAAE;QACX,YAAY,EAAE,EAAE;QAChB,OAAO,EAAE,EAAE;QACX,kBAAkB,EAAE,CAAC;QACrB,mBAAmB,EAAE,CAAC;QACtB,cAAc,EAAE,CAAC;QACjB,eAAe,EAAE,CAAC;QAClB,gBAAgB,EAAE,CAAC;QACnB,YAAY,EAAE,CAAC;QACf,YAAY,EAAE,CAAC;QACf,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,EAAE;KACX,CAAC;IAEF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,IAAI,YAAY,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAE9F,MAAM,SAAS,GAAG,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAE3F,wGAAwG;IACxG,+FAA+F;IAC/F,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,CAAC,MAAM,CAAC,IAAI,CAChB,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,sDAAsD,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAC5H,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;YACjB,KAAK,EAAE,KAAK,CAAC,IAAI;YACjB,SAAS,EAAE,EAAE;YACb,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,wCAAwC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE;SACxF,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAClE,MAAM,UAAU,GAAG,CAAC,IAAgB,EAAE,KAAa,EAAE,OAAe,EAAU,EAAE,CAC9E,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,KAAa,EAAE,OAAe,EAAE,KAA4B,EAAU,EAAE,CACzG,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAE7D,IAAI,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,MAAM,CAAC,YAAY,CAAC,IAAI,CACtB,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,qCAAqC,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAC5F,CAAC;QACF,MAAM,CAAC,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;YACjB,KAAK,EAAE,KAAK,CAAC,IAAI;YACjB,SAAS;YACT,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,yBAAyB;SACnC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE3C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,SAAS,EAAE;YAAE,MAAM;QACvB,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,QAAQ;YACpB,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE;YAC3E,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC;QAC7D,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM;QAC/B,IAAI,KAAK,CAAC,OAAO;YAAE,MAAM;QACzB,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YAC/B,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;gBACtB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBAC9E,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;oBACjB,KAAK,EAAE,KAAK,CAAC,IAAI;oBACjB,SAAS,EAAE,CAAC,QAAQ,CAAC;oBACrB,IAAI,EAAE,MAAM;oBACZ,MAAM,EAAE,SAAS;oBACjB,OAAO,EAAE,KAAK,CAAC,MAAM;iBACtB,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC/D,MAAM,CAAC,YAAY,EAAE,CAAC;gBACtB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;oBACjB,KAAK,EAAE,KAAK,CAAC,IAAI;oBACjB,SAAS,EAAE,CAAC,QAAQ,CAAC;oBACrB,IAAI,EAAE,MAAM;oBACZ,MAAM,EAAE,QAAQ;oBAChB,OAAO,EAAE,KAAK,CAAC,MAAM;iBACtB,CAAC,CAAC;YACL,CAAC;YACD,oGAAoG;YACpG,mGAAmG;YACnG,iGAAiG;YACjG,qDAAqD;YACrD,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,qCAAqC,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;YACtF,SAAS;QACX,CAAC;QACD,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACtC,mGAAmG;QACnG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,qCAAqC,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QAEjF,+FAA+F;QAC/F,wFAAwF;QACxF,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC;YAAE,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAEtF,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;YACzE,IAAI,MAAM,KAAK,SAAS;gBAAE,MAAM;YAChC,IAAI,MAAM,CAAC,OAAO;gBAAE,MAAM;YAC1B,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3F,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;gBACrE,MAAM,IAAI,GAAG,mDAAmD,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC;gBACrG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;gBACvD,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;oBACjB,KAAK,EAAE,KAAK,CAAC,IAAI;oBACjB,SAAS,EAAE,CAAC,QAAQ,CAAC;oBACrB,IAAI,EAAE,WAAW;oBACjB,MAAM,EAAE,SAAS;oBACjB,OAAO,EAAE,IAAI;oBACb,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC;iBAClG,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,oGAAoG;YACpG,qGAAqG;YACrG,iGAAiG;YACjG,gGAAgG;YAChG,oGAAoG;YACpG,gCAAgC;YAChC,IAAI,2BAA2B,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC7C,MAAM,IAAI,GACR,oGAAoG,CAAC;gBACvG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;gBACvD,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;oBACjB,KAAK,EAAE,KAAK,CAAC,IAAI;oBACjB,SAAS,EAAE,CAAC,QAAQ,CAAC;oBACrB,IAAI,EAAE,UAAU;oBAChB,MAAM,EAAE,SAAS;oBACjB,OAAO,EAAE,IAAI;iBACd,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,kGAAkG;YAClG,0FAA0F;YAC1F,8FAA8F;YAC9F,8FAA8F;YAC9F,8FAA8F;YAC9F,MAAM,UAAU,GAAG,OAAO,CAAC,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;YACzE,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;YAC9G,MAAM,UAAU,GAAG,yBAAyB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC7F,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;YAClG,CAAC;YACD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC;YACrE,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;gBACjB,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,SAAS,EAAE,CAAC,QAAQ,CAAC;gBACrB,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,kBAAkB;aAC5B,CAAC,CAAC;YACH,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,qCAAqC,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;YACjF,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YACpC,SAAS;QACX,CAAC;QAED,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QACvG,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE,mCAAmC,CAAC,CAAC,CAAC;YACvF,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;gBACjB,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,SAAS,EAAE,CAAC,QAAQ,CAAC;gBACrB,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,yBAAyB;aACnC,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,kGAAkG;QAClG,+FAA+F;QAC/F,qFAAqF;QACrF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,qCAAqC,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QACjF,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAC9C,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACpC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,iCAAiC,CAAC,CAAC,CAAC;YACpF,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAC5B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;gBACjB,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,SAAS,EAAE,CAAC,QAAQ,CAAC;gBACrB,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,iCAAiC;aAC3C,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAC1B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,uBAAuB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAChH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;gBACjB,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,SAAS,EAAE,CAAC,QAAQ,CAAC;gBACrB,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,uBAAuB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACjD,QAAQ,EAAE,IAAI;gBACd,SAAS,EAAE,OAAO,CAAC,mBAAmB;aACvC,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,yBAAyB,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;YAC7F,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAChB,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;gBAC/G,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;gBACpG,MAAM,SAAS,GAAG,gCAAgC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;gBAC1F,MAAM,OAAO,GAAG,cAAc,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,mBAAmB,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC;gBACxG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC1D,MAAM,CAAC,kBAAkB,EAAE,CAAC;gBAC5B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;oBACjB,KAAK,EAAE,KAAK,CAAC,IAAI;oBACjB,SAAS,EAAE,CAAC,QAAQ,CAAC;oBACrB,IAAI,EAAE,YAAY;oBAClB,MAAM,EAAE,QAAQ;oBAChB,OAAO;oBACP,QAAQ,EAAE,IAAI;oBACd,SAAS,EAAE,OAAO,CAAC,mBAAmB;oBACtC,gBAAgB,EAAE,SAAS,CAAC,MAAM;oBAClC,kBAAkB;oBAClB,iBAAiB;iBAClB,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,MAAM,CAAC,IAAI,CAChB,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,cAAc,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAC/F,CAAC;gBACF,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBAC1B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;oBACjB,KAAK,EAAE,KAAK,CAAC,IAAI;oBACjB,SAAS,EAAE,CAAC,QAAQ,CAAC;oBACrB,IAAI,EAAE,YAAY;oBAClB,MAAM,EAAE,QAAQ;oBAChB,OAAO,EAAE,cAAc,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,mBAAmB,EAAE;oBACzE,QAAQ,EAAE,IAAI;oBACd,SAAS,EAAE,OAAO,CAAC,mBAAmB;iBACvC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,SAAS,EAAE;QAAE,OAAO,MAAM,CAAC;IAE/B,+FAA+F;IAC/F,YAAY;IACZ,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,CAAC,QAAgB,EAAW,EAAE,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC3F,MAAM,KAAK,GAA+E,EAAE,CAAC;IAC7F,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACpD,uGAAuG;IACvG,qGAAqG;IACrG,MAAM,qBAAqB,GAAa,EAAE,CAAC;IAC3C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAE,EAAE,OAAO,CAAC,CAAC,CAAE,EAAE,EAAE,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;YAClF,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;YACxC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;YAChG,iGAAiG;YACjG,gGAAgG;YAChG,gGAAgG;YAChG,0FAA0F;YAC1F,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBAClC,4FAA4F;gBAC5F,wFAAwF;gBACxF,8FAA8F;gBAC9F,iCAAiC;gBACjC,EAAE;gBACF,6FAA6F;gBAC7F,gGAAgG;gBAChG,qFAAqF;gBACrF,0FAA0F;gBAC1F,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC/D,qBAAqB,CAAC,IAAI,CAAC,GAAG,SAAS,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;oBAChE,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;oBACvC,6FAA6F;oBAC7F,6FAA6F;oBAC7F,2FAA2F;oBAC3F,oFAAoF;oBACpF,MAAM,KAAK,GAAG,GAAG,SAAS,mBAAmB,KAAK,CAAC,SAAS,UAAU,CAAC;oBACvE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACxC,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BAC5C,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAE,EAAE,OAAO,CAAC,CAAC,CAAE,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;wBACxG,CAAC;oBACH,CAAC;oBACD,SAAS;gBACX,CAAC;gBACD,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE,CAAC;oBAC/B,IAAI,QAAQ,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;wBACjC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;oBAC7G,CAAC;gBACH,CAAC;gBACD,SAAS;YACX,CAAC;YACD,mGAAmG;YACnG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC5C,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAE,EAAE,OAAO,CAAC,CAAC,CAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;gBAC5G,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,qGAAqG;IACrG,wGAAwG;IACxG,uGAAuG;IACvG,wFAAwF;IACxF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC/F,MAAM,CAAC,eAAe,EAAE,CAAC;QACzB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;YACjB,KAAK,EAAE,KAAK,CAAC,IAAI;YACjB,SAAS,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC/B,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,6BAA6B,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,qBAAqB,CAAC;SAChG,CAAC,CAAC;IACL,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAChF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;oBACjB,KAAK,EAAE,KAAK,CAAC,IAAI;oBACjB,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;oBAC3B,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,UAAU;oBAClB,OAAO,EAAE,UAAU,IAAI,CAAC,KAAK,aAAa,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBAChE,QAAQ,EAAE,IAAI,CAAC,IAAI;oBACnB,SAAS,EAAE,IAAI,CAAC,SAAS;iBAC1B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YAC9B,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,MAAM,QAAQ,GAAG,KAAK;iBACnB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACT,MAAM,KAAK,GAAG,qBAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAE,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;gBACzF,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;oBAChB,SAAS,GAAG,IAAI,CAAC;oBACjB,MAAM,CAAC,cAAc,EAAE,CAAC;oBACxB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;wBACjB,KAAK,EAAE,KAAK,CAAC,IAAI;wBACjB,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;wBACrB,IAAI,EAAE,QAAQ;wBACd,MAAM,EAAE,QAAQ;wBAChB,OAAO,EAAE,UAAU,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE;wBAClE,QAAQ,EAAE,CAAC,CAAC,IAAI;wBAChB,SAAS,EAAE,CAAC,CAAC,SAAS;qBACvB,CAAC,CAAC;oBACH,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;gBAClE,CAAC;gBACD,MAAM,CAAC,YAAY,EAAE,CAAC;gBACtB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;oBACjB,KAAK,EAAE,KAAK,CAAC,IAAI;oBACjB,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBACrB,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,QAAQ;oBAChB,OAAO,EAAE,UAAU,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE;oBAClE,QAAQ,EAAE,CAAC,CAAC,IAAI;oBAChB,SAAS,EAAE,CAAC,CAAC,SAAS;iBACvB,CAAC,CAAC;gBACH,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACnD,CAAC,CAAC;iBACD,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;YAC5C,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YACjF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,oGAAoG;AACpG,qGAAqG;AACrG,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAEzE,SAAS,gCAAgC,CACvC,kBAAiC,EACjC,iBAAgC;IAEhC,IAAI,kBAAkB,KAAK,IAAI,EAAE,CAAC;QAChC,OAAO;YACL,OAAO,EAAE,2EAA2E;YACpF,MAAM,EAAE,aAAa;SACtB,CAAC;IACJ,CAAC;IACD,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;QAC/B,OAAO;YACL,OAAO,EAAE,6EAA6E;YACtF,MAAM,EAAE,aAAa;SACtB,CAAC;IACJ,CAAC;IACD,IAAI,kBAAkB,KAAK,iBAAiB,EAAE,CAAC;QAC7C,OAAO;YACL,OAAO,EAAE,yEAAyE;YAClF,MAAM,EAAE,SAAS;SAClB,CAAC;IACJ,CAAC;IACD,OAAO;QACL,OAAO,EAAE,6EAA6E;QACtF,MAAM,EAAE,WAAW;KACpB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,KAAyC;IAEzC,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM;QAC1B,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAO,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;IACvB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAClG,sGAAsG;IACtG,0FAA0F;IAC1F,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,CAAC;IACxE,MAAM,OAAO,GAAqC;QAChD,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1C,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,EAAE;QAC1C,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC;QACpD,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,KAAK;QAC7B,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK;QAC3B,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,IAAI,KAAK;QACrD,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,KAAK;QAC7C,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,IAAI;QAC5C,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI;QACpC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,IAAI,CAAC;QAC7C,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,IAAI,4BAA4B;QAC9E,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,wBAAwB;QAClE,eAAe,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,eAAe,IAAI,EAAE,CAAC;QACrD,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE;QAClC,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,EAAE;QACtC,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,EAAE;QACtC,qBAAqB,EAAE,KAAK,CAAC,qBAAqB,IAAI,EAAE;KACzD,CAAC;IACF,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,KAAK,SAAS,CAAC;IACvD,MAAM,QAAQ,GACZ,KAAK,CAAC,cAAc;QACpB,CAAC,MAAM,aAAa,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACtF,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC,CAAC;IACN,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;IACtC,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAC;IAExC,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAC3B,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAC5B,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,MAAM,MAAM,GAA6B,EAAE,CAAC;IAC5C,MAAM,iBAAiB,GAAa,EAAE,CAAC;IACvC,MAAM,iBAAiB,GAAa,EAAE,CAAC;IACvC,MAAM,sBAAsB,GAAa,EAAE,CAAC;IAE5C,IAAI,CAAC;QACH,iGAAiG;QACjG,yFAAyF;QACzF,gEAAgE;QAChE,MAAM,OAAO,GAAuB,IAAI,GAAG,EAAE,CAAC;QAC9C,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAChD,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YACrC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,YAAY,CAAC;iBACrE,MAAM,CACL,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,SAAS,CACvG;iBACA,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAChD,CAAC;QACF,MAAM,sBAAsB,GAAG,KAAK,CAAC,UAAU;YAC7C,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;QAC1E,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,sBAAsB,EAAE,EAAE,KAAK,IAAI,EAAE;YACxD,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;gBACpB,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,EAAE,CAAC;gBACpC,IAAI,GAAG,KAAK,SAAS;oBAAE,OAAO;gBAC9B,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACtE,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;gBACzG,IAAI,MAAmC,CAAC;gBACxC,IAAI,OAAO,CAAC,kBAAkB,IAAI,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;oBACzG,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;gBACtG,CAAC;qBAAM,IAAI,OAAO,CAAC,kBAAkB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAChE,MAAM,GAAG,KAAK,CAAC;gBACjB,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC,CAAC,CACH,CAAC;QAEF,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9D,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACjF,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,KAAK,IAAI,EAAE;gBAC/D,OAAO,IAAI,EAAE,CAAC;oBACZ,IAAI,SAAS,EAAE;wBAAE,MAAM;oBACvB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;oBACzB,IAAI,CAAC,GAAG;wBAAE,MAAM;oBAChB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;oBACrG,kBAAkB,IAAI,MAAM,CAAC,kBAAkB,CAAC;oBAChD,cAAc,IAAI,MAAM,CAAC,cAAc,CAAC;oBACxC,eAAe,IAAI,MAAM,CAAC,eAAe,CAAC;oBAC1C,mBAAmB,IAAI,MAAM,CAAC,mBAAmB,CAAC;oBAClD,gBAAgB,IAAI,MAAM,CAAC,gBAAgB,CAAC;oBAC5C,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC;oBACpC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC;oBACpC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;oBAC1B,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;oBAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;oBAC9B,iBAAiB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;oBAC1C,iBAAiB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;oBAC1C,sBAAsB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;oBACpD,sBAAsB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;oBACpD,iBAAiB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;oBAC1C,iBAAiB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;oBAC1C,IAAI,CAAC,OAAO,CAAC,KAAK;wBAAE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM;4BAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC1E,CAAC;YACH,CAAC,CAAC,CAAC;YACH,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC;gBACnE,IAAI,SAAS,EAAE;oBAAE,MAAM;gBACvB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;gBAChH,kBAAkB,IAAI,MAAM,CAAC,kBAAkB,CAAC;gBAChD,cAAc,IAAI,MAAM,CAAC,cAAc,CAAC;gBACxC,eAAe,IAAI,MAAM,CAAC,eAAe,CAAC;gBAC1C,mBAAmB,IAAI,MAAM,CAAC,mBAAmB,CAAC;gBAClD,gBAAgB,IAAI,MAAM,CAAC,gBAAgB,CAAC;gBAC5C,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC;gBACpC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC;gBACpC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;gBAC1B,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC9B,IAAI,CAAC,OAAO,CAAC,KAAK;oBAAE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM;wBAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;IACH,CAAC;YAAS,CAAC;QACT,IAAI,WAAW;YAAE,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACvD,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,MAAM,WAAW,GAAG,SAAS,EAAE,CAAC;IAChC,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE5E,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,KAAK;YAChB,OAAO,CAAC,GAAG,CACT,IAAI;gBACF,iBAAiB,CAAC,YAAY,GAAG,CAAC,EAAE;oBAClC,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,EAAE,MAAM,CAAC;oBACxD,kBAAkB,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC;oBAC9C,kBAAkB,CAAC,YAAY,EAAE,eAAe,EAAE,MAAM,CAAC;iBAC1D,CAAC;gBACF,IAAI,CACP,CAAC;QACJ,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,YAAY,4DAA4D,CAAC,CAAC,CAAC;YACnG,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,YAAY,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,IAAI,CAAC,OAAO,CAAC,KAAK;YAChB,OAAO,CAAC,GAAG,CACT,IAAI;gBACF,iBAAiB,CAAC,YAAY,GAAG,CAAC,EAAE;oBAClC,kBAAkB,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC;oBAC9C,kBAAkB,CAAC,YAAY,EAAE,eAAe,EAAE,MAAM,CAAC;iBAC1D,CAAC;gBACF,EAAE,CAAC,GAAG,CAAC,kCAAkC,CAAC;gBAC1C,IAAI,CACP,CAAC;QACJ,OAAO,YAAY,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,sGAAsG;IACtG,iGAAiG;IACjG,MAAM,wBAAwB,GAAG,kCAAkC,CAAC;QAClE,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,WAAW;QACX,qBAAqB,EAAE,gBAAgB,GAAG,kBAAkB;QAC5D,mBAAmB;KACpB,CAAC,CAAC;IACH,MAAM,oBAAoB,GAAG,8BAA8B,CAAC;QAC1D,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,WAAW;QACX,iBAAiB,EAAE,YAAY,GAAG,cAAc;QAChD,eAAe;QACf,mBAAmB,EAAE,OAAO,CAAC,cAAc,CAAC,MAAM;KACnD,CAAC,CAAC;IACH,gGAAgG;IAChG,uGAAuG;IACvG,4FAA4F;IAC5F,MAAM,YAAY,GAChB,OAAO,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,cAAc;QAC/C,CAAC,CAAC,2BAA2B,CACzB,mCAAmC,CAAC,OAAO,CAAC,IAAI,CAAC,EACjD,OAAO,CAAC,OAAO,EACf,CAAC,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC,EAC/B,CAAC,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC,EAC/B;YACE,aAAa;YACb,eAAe,EAAE,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI;YACvF,YAAY,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,sBAAsB,CAAC,CAAC;SACnD,CACF;QACH,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC3C,MAAM,cAAc,GAAG,gCAAgC,CAAC,YAAY,CAAC,CAAC;IACtE,qGAAqG;IACrG,wGAAwG;IACxG,wGAAwG;IACxG,kGAAkG;IAClG,sGAAsG;IACtG,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QAC3B,oGAAoG;QACpG,qGAAqG;QACrG,iGAAiG;QACjG,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,sFAAsF,CAAC,CAAC,CAAC;YAC9G,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QACD,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACnD,oCAAoC,CAClC,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,OAAO,EACf,UAAU,EACV,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EACtE,CAAC,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAChC,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,KAAK;YAChB,OAAO,CAAC,GAAG,CACT,kDAAkD,UAAU,CAAC,MAAM,WAAW,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,eAAe,OAAO,CAAC,OAAO,EAAE,CACpJ,CAAC;IACN,CAAC;IACD,MAAM,MAAM,GACV,cAAc;QACd,kBAAkB,GAAG,CAAC;QACtB,cAAc,GAAG,CAAC;QAClB,YAAY,GAAG,CAAC;QAChB,oBAAoB;QACpB,wBAAwB,CAAC;IAC3B,IAAI,CAAC,OAAO,CAAC,KAAK;QAChB,OAAO,CAAC,GAAG,CACT,IAAI;YACF,iBAAiB,CAAC,MAAM,EAAE;gBACxB,kBAAkB,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,CAAC;gBACjE,kBAAkB,CAAC,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,CAAC;gBACnE,kBAAkB,CAAC,YAAY,EAAE,eAAe,EAAE,MAAM,CAAC;gBACzD,kBAAkB,CAAC,cAAc,EAAE,eAAe,EAAE,MAAM,CAAC;gBAC3D,kBAAkB,CAAC,eAAe,EAAE,kBAAkB,EAAE,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC/F,kBAAkB,CAAC,mBAAmB,EAAE,sBAAsB,EAAE,wBAAwB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC3G,kBAAkB,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC;gBAC9C,kBAAkB,CAAC,YAAY,EAAE,eAAe,EAAE,MAAM,CAAC;aAC1D,CAAC;YACF,IAAI,CACP,CAAC;IACJ,kGAAkG;IAClG,kGAAkG;IAClG,iGAAiG;IACjG,MAAM,OAAO,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;IACnD,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK;QAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAE7D,KAAK,MAAM,QAAQ,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC;QACzC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,QAAQ,yCAAyC,CAAC,CAAC,CAAC;IAClF,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;QAC3C,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,QAAQ,uCAAuC,CAAC,CAAC,CAAC;IAChF,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;QAC3C,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,QAAQ,mCAAmC,CAAC,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,CAAC,KAAK,CACX,EAAE,CAAC,GAAG,CACJ,qPAAqP,CACtP,CACF,CAAC;IACJ,CAAC;IAED,wGAAwG;IACxG,yDAAyD;IACzD,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,IAAI;QAC3C,CAAC,QAAQ,EAAE,eAAe,EAAE,oBAAoB,CAAC;QACjD,CAAC,YAAY,EAAE,mBAAmB,EAAE,wBAAwB,CAAC;KACrD,EAAE,CAAC;QACX,IAAI,SAAS,KAAK,CAAC;YAAE,SAAS;QAC9B,MAAM,KAAK,GAAG;YACZ,GAAG,IAAI,GAAG,CACR,MAAM;iBACH,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC;iBAC5G,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAC/B;SACF,CAAC;QACF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,GAAG,KAAK,KAAK,eAAe,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACzD,IAAI,CAAC,OAAO,CAAC,KAAK;gBAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,IAAI,wBAAwB,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,CACX,EAAE,CAAC,GAAG,CACJ,wCAAwC,mBAAmB,QAAQ,mBAAmB,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,sKAAsK,CACjR,CACF,CAAC;IACJ,CAAC;IACD,IAAI,oBAAoB,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CACX,EAAE,CAAC,GAAG,CACJ,wCAAwC,eAAe,QAAQ,eAAe,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,yCAAyC,CAC5I,CACF,CAAC;QACF,KAAK,MAAM,MAAM,IAAI,IAAI,GAAG,CAC1B,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAC9G,EAAE,CAAC;YACF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,MAAM,EAAE,CAAC,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IACD,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;IAE5B,SAAS,YAAY,CAAC,UAAmB;QACvC,MAAM,UAAU,GACd,KAAK,CAAC,UAAU,KAAK,KAAK;YACxB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,OAAO,CACL,KAAK,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,EAChC,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CACnG,CAAC;QACR,MAAM,MAAM,GAA4B;YACtC,OAAO,EAAE,WAAW;YACpB,YAAY;YACZ,cAAc;YACd,YAAY;YACZ,eAAe;YACf,kBAAkB;YAClB,mBAAmB;YACnB,gBAAgB;YAChB,UAAU;YACV,OAAO;YACP,OAAO;YACP,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG;YACnE,UAAU;YACV,MAAM;SACP,CAAC;QACF,IAAI,UAAU,KAAK,IAAI;YAAE,kBAAkB,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;QAC9E,OAAO,MAAM,CAAC;IAChB,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"captureValidation.js","sourceRoot":"","sources":["../src/captureValidation.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flighthq/tool-capture",
|
|
3
|
-
"version": "0.3.1-next.
|
|
3
|
+
"version": "0.3.1-next.975.01aea94",
|
|
4
4
|
"author": "Joshua Granick and other contributors",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -42,10 +42,10 @@
|
|
|
42
42
|
"clean:dist": "tsx ../../scripts/clean-package-dist.ts"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@flighthq/capture": "0.3.1-next.
|
|
46
|
-
"@flighthq/render-wgpu": "0.3.1-next.
|
|
47
|
-
"@flighthq/bitmap": "0.3.1-next.
|
|
48
|
-
"@flighthq/types": "0.3.1-next.
|
|
45
|
+
"@flighthq/capture": "0.3.1-next.975.01aea94",
|
|
46
|
+
"@flighthq/render-wgpu": "0.3.1-next.975.01aea94",
|
|
47
|
+
"@flighthq/bitmap": "0.3.1-next.975.01aea94",
|
|
48
|
+
"@flighthq/types": "0.3.1-next.975.01aea94",
|
|
49
49
|
"@playwright/test": "^1.50.0",
|
|
50
50
|
"picocolors": "^1.1.1"
|
|
51
51
|
},
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import { mkdirSync, mkdtempSync, readFileSync } from 'node:fs';
|
|
1
|
+
import { mkdirSync, mkdtempSync, readFileSync, writeFileSync } from 'node:fs';
|
|
2
2
|
import { tmpdir } from 'node:os';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
4
|
|
|
5
5
|
import {
|
|
6
6
|
CAPTURE_BASELINE_COVERAGE_MANIFEST_VERSION,
|
|
7
|
+
CAPTURE_BASELINE_EVIDENCE_KINDS,
|
|
8
|
+
formatCaptureBaselineEvidenceIdentity,
|
|
9
|
+
listCaptureBaselineEvidence,
|
|
7
10
|
captureBaselineCoverageManifestPath,
|
|
8
11
|
createCaptureBaselineCoverageManifest,
|
|
9
12
|
diffCaptureBaselineCoverage,
|
|
@@ -13,10 +16,19 @@ import {
|
|
|
13
16
|
writeCaptureBaselineCoverageManifest,
|
|
14
17
|
} from './captureBaselineCoverageManifest';
|
|
15
18
|
|
|
19
|
+
const ALL = ['fingerprint', 'oracle', 'screenshot'] as const;
|
|
16
20
|
const manifest = createCaptureBaselineCoverageManifest({
|
|
17
|
-
functional:
|
|
18
|
-
|
|
21
|
+
functional: {
|
|
22
|
+
'svg-image/webgl': ALL,
|
|
23
|
+
'svg-image/canvas': ALL,
|
|
24
|
+
'node-alpha/canvas': ALL,
|
|
25
|
+
},
|
|
26
|
+
examples: { 'text/canvas': ALL },
|
|
19
27
|
});
|
|
28
|
+
const everything = (
|
|
29
|
+
identities: readonly string[],
|
|
30
|
+
): Record<string, readonly ('fingerprint' | 'oracle' | 'screenshot')[]> =>
|
|
31
|
+
Object.fromEntries(identities.map((identity) => [identity, ALL]));
|
|
20
32
|
|
|
21
33
|
describe('CAPTURE_BASELINE_COVERAGE_MANIFEST_VERSION', () => {
|
|
22
34
|
it('is the schema the manifest is written with', () => {
|
|
@@ -24,6 +36,12 @@ describe('CAPTURE_BASELINE_COVERAGE_MANIFEST_VERSION', () => {
|
|
|
24
36
|
});
|
|
25
37
|
});
|
|
26
38
|
|
|
39
|
+
describe('CAPTURE_BASELINE_EVIDENCE_KINDS', () => {
|
|
40
|
+
it('is the three evidence kinds, sorted', () => {
|
|
41
|
+
expect(CAPTURE_BASELINE_EVIDENCE_KINDS).toEqual(['fingerprint', 'oracle', 'screenshot']);
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
|
|
27
45
|
describe('captureBaselineCoverageManifestPath', () => {
|
|
28
46
|
it('pins the manifest beside the reachability baseline', () => {
|
|
29
47
|
expect(captureBaselineCoverageManifestPath('/repo')).toBe('/repo/scripts/capture-baseline-coverage-manifest.json');
|
|
@@ -32,11 +50,15 @@ describe('captureBaselineCoverageManifestPath', () => {
|
|
|
32
50
|
|
|
33
51
|
describe('createCaptureBaselineCoverageManifest', () => {
|
|
34
52
|
it('sorts identities so the committed file has a stable diff', () => {
|
|
35
|
-
expect(manifest.subjects.functional).toEqual([
|
|
53
|
+
expect(Object.keys(manifest.subjects.functional)).toEqual([
|
|
54
|
+
'node-alpha/canvas',
|
|
55
|
+
'svg-image/canvas',
|
|
56
|
+
'svg-image/webgl',
|
|
57
|
+
]);
|
|
36
58
|
});
|
|
37
59
|
|
|
38
60
|
it('keeps subjects separate', () => {
|
|
39
|
-
expect(manifest.subjects.examples).toEqual(
|
|
61
|
+
expect(manifest.subjects.examples).toEqual({ 'text/canvas': ['fingerprint', 'oracle', 'screenshot'] });
|
|
40
62
|
});
|
|
41
63
|
});
|
|
42
64
|
|
|
@@ -46,7 +68,7 @@ describe('diffCaptureBaselineCoverage', () => {
|
|
|
46
68
|
const FILTERED = { entryFiltered: true, activeRenderers: null };
|
|
47
69
|
|
|
48
70
|
it('reports nothing when observed coverage matches the pin', () => {
|
|
49
|
-
const diff = diffCaptureBaselineCoverage(manifest, 'functional', all, all, WHOLE);
|
|
71
|
+
const diff = diffCaptureBaselineCoverage(manifest, 'functional', everything(all), all, WHOLE);
|
|
50
72
|
expect(diff).toEqual({ gained: [], lost: [], absent: [] });
|
|
51
73
|
expect(isCaptureBaselineCoverageFailure(diff)).toBe(false);
|
|
52
74
|
});
|
|
@@ -55,16 +77,16 @@ describe('diffCaptureBaselineCoverage', () => {
|
|
|
55
77
|
// zero-floor is satisfied and the run stays green. Here that loss is named.
|
|
56
78
|
it('NAMES a target that ran but is no longer covered', () => {
|
|
57
79
|
const covered = ['svg-image/canvas', 'node-alpha/canvas'];
|
|
58
|
-
const diff = diffCaptureBaselineCoverage(manifest, 'functional', covered, all, WHOLE);
|
|
59
|
-
expect(diff.lost).toEqual(['svg-image/webgl']);
|
|
80
|
+
const diff = diffCaptureBaselineCoverage(manifest, 'functional', everything(covered), all, WHOLE);
|
|
81
|
+
expect(diff.lost).toEqual(['svg-image/webgl#fingerprint', 'svg-image/webgl#oracle', 'svg-image/webgl#screenshot']);
|
|
60
82
|
expect(isCaptureBaselineCoverageFailure(diff)).toBe(true);
|
|
61
83
|
});
|
|
62
84
|
|
|
63
85
|
// The manifest is an exact set: an unaccepted gain ages the pin, so it must be accepted, not ignored.
|
|
64
86
|
it('names new coverage as a gain AND fails on it', () => {
|
|
65
87
|
const covered = [...all, 'svg-text/webgl'];
|
|
66
|
-
const diff = diffCaptureBaselineCoverage(manifest, 'functional', covered, covered, WHOLE);
|
|
67
|
-
expect(diff.gained).toEqual(['svg-text/webgl']);
|
|
88
|
+
const diff = diffCaptureBaselineCoverage(manifest, 'functional', everything(covered), covered, WHOLE);
|
|
89
|
+
expect(diff.gained).toEqual(['svg-text/webgl#fingerprint', 'svg-text/webgl#oracle', 'svg-text/webgl#screenshot']);
|
|
68
90
|
expect(diff.lost).toEqual([]);
|
|
69
91
|
expect(isCaptureBaselineCoverageFailure(diff)).toBe(true);
|
|
70
92
|
});
|
|
@@ -73,10 +95,16 @@ describe('diffCaptureBaselineCoverage', () => {
|
|
|
73
95
|
// check reconciles and reports clean. Only an exact set names the half that left and the half that came.
|
|
74
96
|
it('catches a SAME-COUNT swap, naming both halves', () => {
|
|
75
97
|
const covered = ['svg-image/canvas', 'node-alpha/canvas', 'svg-text/webgl'];
|
|
76
|
-
const diff = diffCaptureBaselineCoverage(
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
98
|
+
const diff = diffCaptureBaselineCoverage(
|
|
99
|
+
manifest,
|
|
100
|
+
'functional',
|
|
101
|
+
everything(covered),
|
|
102
|
+
[...all, 'svg-text/webgl'],
|
|
103
|
+
WHOLE,
|
|
104
|
+
);
|
|
105
|
+
expect(covered.length).toBe(Object.keys(manifest.subjects.functional).length);
|
|
106
|
+
expect(diff.lost).toEqual(['svg-image/webgl#fingerprint', 'svg-image/webgl#oracle', 'svg-image/webgl#screenshot']);
|
|
107
|
+
expect(diff.gained).toEqual(['svg-text/webgl#fingerprint', 'svg-text/webgl#oracle', 'svg-text/webgl#screenshot']);
|
|
80
108
|
expect(isCaptureBaselineCoverageFailure(diff)).toBe(true);
|
|
81
109
|
});
|
|
82
110
|
|
|
@@ -85,25 +113,35 @@ describe('diffCaptureBaselineCoverage', () => {
|
|
|
85
113
|
it('reports a vanished target as absent ONLY on a whole-repo run', () => {
|
|
86
114
|
const covered = ['svg-image/canvas', 'svg-image/webgl'];
|
|
87
115
|
const visited = covered;
|
|
88
|
-
expect(diffCaptureBaselineCoverage(manifest, 'functional', covered, visited, WHOLE).absent).toEqual([
|
|
89
|
-
'node-alpha/canvas',
|
|
116
|
+
expect(diffCaptureBaselineCoverage(manifest, 'functional', everything(covered), visited, WHOLE).absent).toEqual([
|
|
117
|
+
'node-alpha/canvas#fingerprint',
|
|
118
|
+
'node-alpha/canvas#oracle',
|
|
119
|
+
'node-alpha/canvas#screenshot',
|
|
90
120
|
]);
|
|
91
|
-
expect(diffCaptureBaselineCoverage(manifest, 'functional', covered, visited, FILTERED).absent).toEqual(
|
|
121
|
+
expect(diffCaptureBaselineCoverage(manifest, 'functional', everything(covered), visited, FILTERED).absent).toEqual(
|
|
122
|
+
[],
|
|
123
|
+
);
|
|
92
124
|
});
|
|
93
125
|
|
|
94
126
|
// A scoped run must still be able to fail: it visited the target and found no baseline.
|
|
95
127
|
it('still reports a loss on a scoped run for a target it actually visited', () => {
|
|
96
|
-
const diff = diffCaptureBaselineCoverage(manifest, 'functional',
|
|
97
|
-
expect(diff.lost).toEqual(['svg-image/webgl']);
|
|
128
|
+
const diff = diffCaptureBaselineCoverage(manifest, 'functional', {}, ['svg-image/webgl'], FILTERED);
|
|
129
|
+
expect(diff.lost).toEqual(['svg-image/webgl#fingerprint', 'svg-image/webgl#oracle', 'svg-image/webgl#screenshot']);
|
|
98
130
|
expect(isCaptureBaselineCoverageFailure(diff)).toBe(true);
|
|
99
131
|
});
|
|
100
132
|
|
|
101
133
|
// --renderer=webgl must not report every canvas pin as vanished.
|
|
102
134
|
it('narrows the absence check to the renderers the run actually ran', () => {
|
|
103
|
-
const diff = diffCaptureBaselineCoverage(
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
135
|
+
const diff = diffCaptureBaselineCoverage(
|
|
136
|
+
manifest,
|
|
137
|
+
'functional',
|
|
138
|
+
everything(['svg-image/webgl']),
|
|
139
|
+
['svg-image/webgl'],
|
|
140
|
+
{
|
|
141
|
+
entryFiltered: false,
|
|
142
|
+
activeRenderers: ['webgl'],
|
|
143
|
+
},
|
|
144
|
+
);
|
|
107
145
|
expect(diff.absent).toEqual([]);
|
|
108
146
|
expect(diff.lost).toEqual([]);
|
|
109
147
|
});
|
|
@@ -114,7 +152,7 @@ describe('diffCaptureBaselineCoverage', () => {
|
|
|
114
152
|
const diff = diffCaptureBaselineCoverage(
|
|
115
153
|
manifest,
|
|
116
154
|
'functional',
|
|
117
|
-
['svg-image/canvas', 'node-alpha/canvas'],
|
|
155
|
+
everything(['svg-image/canvas', 'node-alpha/canvas']),
|
|
118
156
|
['svg-image/canvas', 'node-alpha/canvas'],
|
|
119
157
|
{
|
|
120
158
|
entryFiltered: false,
|
|
@@ -128,8 +166,60 @@ describe('diffCaptureBaselineCoverage', () => {
|
|
|
128
166
|
});
|
|
129
167
|
|
|
130
168
|
it('treats an unknown subject as an empty pin rather than throwing', () => {
|
|
131
|
-
const diff = diffCaptureBaselineCoverage(manifest, 'reference', ['a/canvas'], ['a/canvas'], WHOLE);
|
|
132
|
-
expect(diff).toEqual({
|
|
169
|
+
const diff = diffCaptureBaselineCoverage(manifest, 'reference', everything(['a/canvas']), ['a/canvas'], WHOLE);
|
|
170
|
+
expect(diff).toEqual({
|
|
171
|
+
gained: ['a/canvas#fingerprint', 'a/canvas#oracle', 'a/canvas#screenshot'],
|
|
172
|
+
lost: [],
|
|
173
|
+
absent: [],
|
|
174
|
+
});
|
|
175
|
+
expect(isCaptureBaselineCoverageFailure(diff)).toBe(true);
|
|
176
|
+
});
|
|
177
|
+
});
|
|
178
|
+
|
|
179
|
+
describe('evidence-kind scope', () => {
|
|
180
|
+
const all = ['svg-image/webgl', 'svg-image/canvas', 'node-alpha/canvas'];
|
|
181
|
+
|
|
182
|
+
// ★ The rule that makes ONE manifest over three tiers safe. A validate run observes fingerprints and
|
|
183
|
+
// nothing else; without this it would report every screenshot and oracle pin as lost on every run —
|
|
184
|
+
// absence of OBSERVATION reported as absence of EVIDENCE, which is the defect being fixed.
|
|
185
|
+
it('does not report a kind the run never observed', () => {
|
|
186
|
+
const diff = diffCaptureBaselineCoverage(
|
|
187
|
+
manifest,
|
|
188
|
+
'functional',
|
|
189
|
+
Object.fromEntries(all.map((identity) => [identity, ['fingerprint'] as const])),
|
|
190
|
+
all,
|
|
191
|
+
{ entryFiltered: false, activeRenderers: null, kinds: ['fingerprint'] },
|
|
192
|
+
);
|
|
193
|
+
expect(diff).toEqual({ gained: [], lost: [], absent: [] });
|
|
194
|
+
});
|
|
195
|
+
|
|
196
|
+
// Same run, same data, WITHOUT declaring the observed kind: the two unobserved columns read as lost.
|
|
197
|
+
// This is the control — it shows the guard above is load-bearing rather than decorative.
|
|
198
|
+
it('DOES report them when the run fails to declare what it observed', () => {
|
|
199
|
+
const diff = diffCaptureBaselineCoverage(
|
|
200
|
+
manifest,
|
|
201
|
+
'functional',
|
|
202
|
+
Object.fromEntries(all.map((identity) => [identity, ['fingerprint'] as const])),
|
|
203
|
+
all,
|
|
204
|
+
{ entryFiltered: false, activeRenderers: null },
|
|
205
|
+
);
|
|
206
|
+
expect(diff.lost).toContain('svg-image/webgl#oracle');
|
|
207
|
+
expect(diff.lost).toContain('svg-image/webgl#screenshot');
|
|
208
|
+
expect(diff.lost).not.toContain('svg-image/webgl#fingerprint');
|
|
209
|
+
});
|
|
210
|
+
|
|
211
|
+
// One target losing ONE of its three columns is the erosion this consolidation must still catch.
|
|
212
|
+
it('names the single lost column, not the whole target', () => {
|
|
213
|
+
const covered: Record<string, readonly ('fingerprint' | 'oracle' | 'screenshot')[]> = {
|
|
214
|
+
'svg-image/webgl': ['fingerprint', 'screenshot'],
|
|
215
|
+
'svg-image/canvas': ALL,
|
|
216
|
+
'node-alpha/canvas': ALL,
|
|
217
|
+
};
|
|
218
|
+
const diff = diffCaptureBaselineCoverage(manifest, 'functional', covered, all, {
|
|
219
|
+
entryFiltered: false,
|
|
220
|
+
activeRenderers: null,
|
|
221
|
+
});
|
|
222
|
+
expect(diff.lost).toEqual(['svg-image/webgl#oracle']);
|
|
133
223
|
expect(isCaptureBaselineCoverageFailure(diff)).toBe(true);
|
|
134
224
|
});
|
|
135
225
|
});
|
|
@@ -140,12 +230,36 @@ describe('formatCaptureBaselineCoverageIdentity', () => {
|
|
|
140
230
|
});
|
|
141
231
|
});
|
|
142
232
|
|
|
233
|
+
describe('formatCaptureBaselineEvidenceIdentity', () => {
|
|
234
|
+
// `#`, not `:` — a renderer id may itself contain a colon (`flight:webgl`), so a colon separator
|
|
235
|
+
// would make the target and the kind ambiguous to split.
|
|
236
|
+
it('joins target and kind with a separator no renderer id contains', () => {
|
|
237
|
+
expect(formatCaptureBaselineEvidenceIdentity('svg-image/flight:webgl', 'oracle')).toBe(
|
|
238
|
+
'svg-image/flight:webgl#oracle',
|
|
239
|
+
);
|
|
240
|
+
});
|
|
241
|
+
});
|
|
242
|
+
|
|
143
243
|
describe('isCaptureBaselineCoverageFailure', () => {
|
|
144
244
|
it('is true in every direction and false only for an exact match', () => {
|
|
145
245
|
expect(isCaptureBaselineCoverageFailure({ gained: [], lost: [], absent: [] })).toBe(false);
|
|
146
|
-
expect(isCaptureBaselineCoverageFailure({ gained: ['x/canvas'], lost: [], absent: [] })).toBe(true);
|
|
147
|
-
expect(isCaptureBaselineCoverageFailure({ gained: [], lost: ['x/canvas'], absent: [] })).toBe(true);
|
|
148
|
-
expect(isCaptureBaselineCoverageFailure({ gained: [], lost: [], absent: ['x/canvas'] })).toBe(true);
|
|
246
|
+
expect(isCaptureBaselineCoverageFailure({ gained: ['x/canvas#oracle'], lost: [], absent: [] })).toBe(true);
|
|
247
|
+
expect(isCaptureBaselineCoverageFailure({ gained: [], lost: ['x/canvas#fingerprint'], absent: [] })).toBe(true);
|
|
248
|
+
expect(isCaptureBaselineCoverageFailure({ gained: [], lost: [], absent: ['x/canvas#screenshot'] })).toBe(true);
|
|
249
|
+
});
|
|
250
|
+
});
|
|
251
|
+
|
|
252
|
+
describe('listCaptureBaselineEvidence', () => {
|
|
253
|
+
it('flattens every pinned target into its individual evidence units', () => {
|
|
254
|
+
expect(listCaptureBaselineEvidence(manifest, 'examples')).toEqual([
|
|
255
|
+
'text/canvas#fingerprint',
|
|
256
|
+
'text/canvas#oracle',
|
|
257
|
+
'text/canvas#screenshot',
|
|
258
|
+
]);
|
|
259
|
+
});
|
|
260
|
+
|
|
261
|
+
it('is empty for a subject the manifest does not pin', () => {
|
|
262
|
+
expect(listCaptureBaselineEvidence(manifest, 'reference')).toEqual([]);
|
|
149
263
|
});
|
|
150
264
|
});
|
|
151
265
|
|
|
@@ -158,8 +272,25 @@ describe('readCaptureBaselineCoverageManifest', () => {
|
|
|
158
272
|
it('round-trips what was written', () => {
|
|
159
273
|
const root = mkdtempSync(join(tmpdir(), 'flight-coverage-'));
|
|
160
274
|
mkdirSync(join(root, 'scripts'));
|
|
161
|
-
writeCaptureBaselineCoverageManifest(root, 'functional', ['b/canvas', 'a/webgl']);
|
|
162
|
-
expect(readCaptureBaselineCoverageManifest(root).subjects.functional).toEqual(['a/webgl', 'b/canvas']);
|
|
275
|
+
writeCaptureBaselineCoverageManifest(root, 'functional', everything(['b/canvas', 'a/webgl']));
|
|
276
|
+
expect(Object.keys(readCaptureBaselineCoverageManifest(root).subjects.functional)).toEqual(['a/webgl', 'b/canvas']);
|
|
277
|
+
});
|
|
278
|
+
});
|
|
279
|
+
|
|
280
|
+
describe('schema 1 migration', () => {
|
|
281
|
+
// Schema 1 knew only fingerprints, so a bare identity list means fingerprint-only. Reading it as all
|
|
282
|
+
// three would manufacture screenshot and oracle pins nobody ever accepted, and the next run would
|
|
283
|
+
// report them as losses.
|
|
284
|
+
it('reads a v1 identity list as fingerprint evidence only', () => {
|
|
285
|
+
const root = mkdtempSync(join(tmpdir(), 'flight-coverage-v1-'));
|
|
286
|
+
mkdirSync(join(root, 'scripts'));
|
|
287
|
+
writeFileSync(
|
|
288
|
+
join(root, 'scripts', 'capture-baseline-coverage-manifest.json'),
|
|
289
|
+
JSON.stringify({ schemaVersion: 1, subjects: { functional: ['a/webgl', 'b/canvas'] } }),
|
|
290
|
+
);
|
|
291
|
+
const read = readCaptureBaselineCoverageManifest(root);
|
|
292
|
+
expect(read.schemaVersion).toBe(2);
|
|
293
|
+
expect(read.subjects.functional).toEqual({ 'a/webgl': ['fingerprint'], 'b/canvas': ['fingerprint'] });
|
|
163
294
|
});
|
|
164
295
|
});
|
|
165
296
|
|
|
@@ -168,56 +299,70 @@ describe('writeCaptureBaselineCoverageManifest', () => {
|
|
|
168
299
|
it('rewrites ONE subject and preserves the others', () => {
|
|
169
300
|
const root = mkdtempSync(join(tmpdir(), 'flight-coverage-'));
|
|
170
301
|
mkdirSync(join(root, 'scripts'));
|
|
171
|
-
writeCaptureBaselineCoverageManifest(root, 'examples', ['text/canvas']);
|
|
172
|
-
const manifest = writeCaptureBaselineCoverageManifest(root, 'functional', ['a/webgl']);
|
|
173
|
-
expect(manifest.subjects).toEqual(
|
|
302
|
+
writeCaptureBaselineCoverageManifest(root, 'examples', everything(['text/canvas']));
|
|
303
|
+
const manifest = writeCaptureBaselineCoverageManifest(root, 'functional', everything(['a/webgl']));
|
|
304
|
+
expect(Object.keys(manifest.subjects.examples)).toEqual(['text/canvas']);
|
|
305
|
+
expect(Object.keys(manifest.subjects.functional)).toEqual(['a/webgl']);
|
|
174
306
|
});
|
|
175
307
|
|
|
176
308
|
// The regression tier runs --renderer=canvas,webgl,webgpu. Such a run must not retire dom pins.
|
|
177
309
|
it('carries pins for renderers the update run did not cover', () => {
|
|
178
310
|
const root = mkdtempSync(join(tmpdir(), 'flight-coverage-'));
|
|
179
311
|
mkdirSync(join(root, 'scripts'));
|
|
180
|
-
writeCaptureBaselineCoverageManifest(root, 'functional', ['a/dom', 'a/canvas']);
|
|
181
|
-
const manifest = writeCaptureBaselineCoverageManifest(root, 'functional', ['a/canvas'], [
|
|
182
|
-
|
|
312
|
+
writeCaptureBaselineCoverageManifest(root, 'functional', everything(['a/dom', 'a/canvas']));
|
|
313
|
+
const manifest = writeCaptureBaselineCoverageManifest(root, 'functional', everything(['a/canvas']), [
|
|
314
|
+
'canvas',
|
|
315
|
+
'webgl',
|
|
316
|
+
]);
|
|
317
|
+
expect(Object.keys(manifest.subjects.functional)).toEqual(['a/canvas', 'a/dom']);
|
|
183
318
|
});
|
|
184
319
|
|
|
185
320
|
// One flaky target must not retire its own pin: the run never determined it, so the pin stands.
|
|
186
321
|
it('carries forward a pin the run did not determine', () => {
|
|
187
322
|
const root = mkdtempSync(join(tmpdir(), 'flight-coverage-'));
|
|
188
323
|
mkdirSync(join(root, 'scripts'));
|
|
189
|
-
writeCaptureBaselineCoverageManifest(root, 'examples', ['collision/webgpu', 'collision/canvas']);
|
|
190
|
-
const manifestAfter = writeCaptureBaselineCoverageManifest(
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
324
|
+
writeCaptureBaselineCoverageManifest(root, 'examples', everything(['collision/webgpu', 'collision/canvas']));
|
|
325
|
+
const manifestAfter = writeCaptureBaselineCoverageManifest(
|
|
326
|
+
root,
|
|
327
|
+
'examples',
|
|
328
|
+
everything(['collision/canvas']),
|
|
329
|
+
null,
|
|
330
|
+
['collision/canvas'],
|
|
331
|
+
);
|
|
332
|
+
expect(Object.keys(manifestAfter.subjects.examples)).toEqual(['collision/canvas', 'collision/webgpu']);
|
|
194
333
|
});
|
|
195
334
|
|
|
196
335
|
// Determined AND uncovered is a real retirement, and must still go through.
|
|
197
336
|
it('retires a pin the run determined to be uncovered', () => {
|
|
198
337
|
const root = mkdtempSync(join(tmpdir(), 'flight-coverage-'));
|
|
199
338
|
mkdirSync(join(root, 'scripts'));
|
|
200
|
-
writeCaptureBaselineCoverageManifest(root, 'examples', ['collision/webgpu', 'collision/canvas']);
|
|
201
|
-
const manifestAfter = writeCaptureBaselineCoverageManifest(
|
|
202
|
-
|
|
203
|
-
'
|
|
204
|
-
|
|
205
|
-
|
|
339
|
+
writeCaptureBaselineCoverageManifest(root, 'examples', everything(['collision/webgpu', 'collision/canvas']));
|
|
340
|
+
const manifestAfter = writeCaptureBaselineCoverageManifest(
|
|
341
|
+
root,
|
|
342
|
+
'examples',
|
|
343
|
+
everything(['collision/canvas']),
|
|
344
|
+
null,
|
|
345
|
+
['collision/canvas', 'collision/webgpu'],
|
|
346
|
+
);
|
|
347
|
+
expect(Object.keys(manifestAfter.subjects.examples)).toEqual(['collision/canvas']);
|
|
206
348
|
});
|
|
207
349
|
|
|
208
350
|
// With no renderer scope the run speaks for the whole subject, so a dropped target really is retired.
|
|
209
351
|
it('retires a target on an unscoped update', () => {
|
|
210
352
|
const root = mkdtempSync(join(tmpdir(), 'flight-coverage-'));
|
|
211
353
|
mkdirSync(join(root, 'scripts'));
|
|
212
|
-
writeCaptureBaselineCoverageManifest(root, 'functional', ['a/dom', 'a/canvas']);
|
|
213
|
-
const manifest = writeCaptureBaselineCoverageManifest(root, 'functional', ['a/canvas'])
|
|
214
|
-
|
|
354
|
+
writeCaptureBaselineCoverageManifest(root, 'functional', everything(['a/dom', 'a/canvas']));
|
|
355
|
+
const manifest = writeCaptureBaselineCoverageManifest(root, 'functional', everything(['a/canvas']), null, [
|
|
356
|
+
'a/canvas',
|
|
357
|
+
'a/dom',
|
|
358
|
+
]);
|
|
359
|
+
expect(Object.keys(manifest.subjects.functional)).toEqual(['a/canvas']);
|
|
215
360
|
});
|
|
216
361
|
|
|
217
362
|
it('writes a trailing newline so the format gate never churns it', () => {
|
|
218
363
|
const root = mkdtempSync(join(tmpdir(), 'flight-coverage-'));
|
|
219
364
|
mkdirSync(join(root, 'scripts'));
|
|
220
|
-
writeCaptureBaselineCoverageManifest(root, 'functional', ['a/webgl']);
|
|
365
|
+
writeCaptureBaselineCoverageManifest(root, 'functional', everything(['a/webgl']));
|
|
221
366
|
expect(readFileSync(captureBaselineCoverageManifestPath(root), 'utf8').endsWith('}\n')).toBe(true);
|
|
222
367
|
});
|
|
223
368
|
});
|
|
@@ -284,7 +284,9 @@ describe('runCaptureValidation', () => {
|
|
|
284
284
|
expect(result.regressionFailures).toBe(1);
|
|
285
285
|
expect(result.shouldFail).toBe(true);
|
|
286
286
|
// A target with a FAILING comparison still has baseline evidence, so it is still covered.
|
|
287
|
-
expect(readCaptureBaselineCoverageManifest(root).subjects.functional).toEqual(
|
|
287
|
+
expect(readCaptureBaselineCoverageManifest(root).subjects.functional).toEqual({
|
|
288
|
+
'sample/canvas': ['fingerprint'],
|
|
289
|
+
});
|
|
288
290
|
});
|
|
289
291
|
|
|
290
292
|
// The blanket refusal this replaces was too coarse: one flaky target blocked every acceptance. The
|
|
@@ -293,7 +295,7 @@ describe('runCaptureValidation', () => {
|
|
|
293
295
|
it('keeps the pin of a target it could not load, instead of retiring it', async () => {
|
|
294
296
|
const { root, kill } = createRegressionFixture('export const scene = 1;\n', sha256('export const scene = 1;\n'));
|
|
295
297
|
mkdirSync(join(root, 'scripts'), { recursive: true });
|
|
296
|
-
writeCaptureBaselineCoverageManifest(root, 'functional',
|
|
298
|
+
writeCaptureBaselineCoverageManifest(root, 'functional', { 'sample/canvas': ['fingerprint'] });
|
|
297
299
|
const result = await runCaptureValidation({
|
|
298
300
|
subject: 'functional',
|
|
299
301
|
entries: [{ name: 'sample', renderers: ['canvas'] }],
|
|
@@ -310,7 +312,9 @@ describe('runCaptureValidation', () => {
|
|
|
310
312
|
});
|
|
311
313
|
expect(result.loadFailures).toBeGreaterThan(0);
|
|
312
314
|
expect(result.shouldFail).toBe(true);
|
|
313
|
-
expect(readCaptureBaselineCoverageManifest(root).subjects.functional).toEqual(
|
|
315
|
+
expect(readCaptureBaselineCoverageManifest(root).subjects.functional).toEqual({
|
|
316
|
+
'sample/canvas': ['fingerprint'],
|
|
317
|
+
});
|
|
314
318
|
});
|
|
315
319
|
|
|
316
320
|
it('yields NO PAIRS when a declared parity reference is skipped, instead of falling back to all-pairs', async () => {
|