@brandlab-digital/conformance 0.1.0-alpha.1 → 0.1.0-alpha.10
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/search-certification.d.ts +19 -0
- package/dist/search-certification.d.ts.map +1 -0
- package/dist/search-certification.js +145 -0
- package/dist/search-certification.js.map +1 -0
- package/dist/vitest.d.ts +82 -0
- package/dist/vitest.d.ts.map +1 -1
- package/dist/vitest.js +2291 -16
- package/dist/vitest.js.map +1 -1
- package/package.json +8 -2
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface SearchCertificationHtmlSnapshot {
|
|
2
|
+
title: string | null;
|
|
3
|
+
description: string | null;
|
|
4
|
+
canonical: string | null;
|
|
5
|
+
robots: string | null;
|
|
6
|
+
openGraph: Record<string, string>;
|
|
7
|
+
twitter: Record<string, string>;
|
|
8
|
+
jsonLd: unknown[];
|
|
9
|
+
jsonLdTypes: string[];
|
|
10
|
+
googleTagPresent: boolean;
|
|
11
|
+
implementationCopyMatches: string[];
|
|
12
|
+
}
|
|
13
|
+
export interface SearchCertificationSnapshotComparison {
|
|
14
|
+
matches: boolean;
|
|
15
|
+
differences: string[];
|
|
16
|
+
}
|
|
17
|
+
export declare function extractSearchCertificationHtmlSnapshot(html: string): SearchCertificationHtmlSnapshot;
|
|
18
|
+
export declare function compareSearchCertificationHtmlSnapshots(expected: SearchCertificationHtmlSnapshot, actual: SearchCertificationHtmlSnapshot): SearchCertificationSnapshotComparison;
|
|
19
|
+
//# sourceMappingURL=search-certification.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-certification.d.ts","sourceRoot":"","sources":["../src/search-certification.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,+BAA+B;IAC9C,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,MAAM,EAAE,OAAO,EAAE,CAAA;IACjB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,gBAAgB,EAAE,OAAO,CAAA;IACzB,yBAAyB,EAAE,MAAM,EAAE,CAAA;CACpC;AAED,MAAM,WAAW,qCAAqC;IACpD,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,MAAM,EAAE,CAAA;CACtB;AAqID,wBAAgB,sCAAsC,CACpD,IAAI,EAAE,MAAM,GACX,+BAA+B,CAgBjC;AAED,wBAAgB,uCAAuC,CACrD,QAAQ,EAAE,+BAA+B,EACzC,MAAM,EAAE,+BAA+B,GACtC,qCAAqC,CAyBvC"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
const IMPLEMENTATION_COPY_PATTERNS = [
|
|
2
|
+
/\btemplate\b/i,
|
|
3
|
+
/\bhelper\b/i,
|
|
4
|
+
/\bscaffold\b/i,
|
|
5
|
+
/\bplaceholder\b/i,
|
|
6
|
+
/\breplace with real\b/i,
|
|
7
|
+
];
|
|
8
|
+
function decodeHtml(value) {
|
|
9
|
+
return value
|
|
10
|
+
.replace(/&/g, '&')
|
|
11
|
+
.replace(/"/g, '"')
|
|
12
|
+
.replace(/'/g, "'")
|
|
13
|
+
.replace(/'/gi, "'")
|
|
14
|
+
.replace(/</g, '<')
|
|
15
|
+
.replace(/>/g, '>');
|
|
16
|
+
}
|
|
17
|
+
function getAttribute(tag, name) {
|
|
18
|
+
const pattern = new RegExp(`${name}\\s*=\\s*["']([^"']*)["']`, 'i');
|
|
19
|
+
return decodeHtml(tag.match(pattern)?.[1] ?? '');
|
|
20
|
+
}
|
|
21
|
+
function findMetaContent(html, attribute, key) {
|
|
22
|
+
const metaPattern = /<meta\b[^>]*>/gi;
|
|
23
|
+
const tags = html.match(metaPattern) ?? [];
|
|
24
|
+
for (const tag of tags) {
|
|
25
|
+
if (getAttribute(tag, attribute) === key) {
|
|
26
|
+
return getAttribute(tag, 'content') || null;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
function findOpenGraph(html) {
|
|
32
|
+
const values = {};
|
|
33
|
+
const metaPattern = /<meta\b[^>]*>/gi;
|
|
34
|
+
const tags = html.match(metaPattern) ?? [];
|
|
35
|
+
for (const tag of tags) {
|
|
36
|
+
const property = getAttribute(tag, 'property');
|
|
37
|
+
if (property.startsWith('og:')) {
|
|
38
|
+
values[property] = getAttribute(tag, 'content');
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return values;
|
|
42
|
+
}
|
|
43
|
+
function findTwitter(html) {
|
|
44
|
+
const values = {};
|
|
45
|
+
const metaPattern = /<meta\b[^>]*>/gi;
|
|
46
|
+
const tags = html.match(metaPattern) ?? [];
|
|
47
|
+
for (const tag of tags) {
|
|
48
|
+
const name = getAttribute(tag, 'name');
|
|
49
|
+
if (name.startsWith('twitter:')) {
|
|
50
|
+
values[name] = getAttribute(tag, 'content');
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return values;
|
|
54
|
+
}
|
|
55
|
+
function findCanonical(html) {
|
|
56
|
+
const linkPattern = /<link\b[^>]*>/gi;
|
|
57
|
+
const tags = html.match(linkPattern) ?? [];
|
|
58
|
+
for (const tag of tags) {
|
|
59
|
+
if (getAttribute(tag, 'rel').toLowerCase() === 'canonical') {
|
|
60
|
+
return getAttribute(tag, 'href') || null;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
function parseJsonLd(html) {
|
|
66
|
+
const payloads = [];
|
|
67
|
+
const scriptPattern = /<script\b[^>]*type=["']application\/ld\+json["'][^>]*>([\s\S]*?)<\/script>/gi;
|
|
68
|
+
for (const match of html.matchAll(scriptPattern)) {
|
|
69
|
+
try {
|
|
70
|
+
payloads.push(JSON.parse(decodeHtml(match[1]).trim()));
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
payloads.push({ parseError: true });
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return payloads;
|
|
77
|
+
}
|
|
78
|
+
function collectJsonLdTypes(payloads) {
|
|
79
|
+
const types = new Set();
|
|
80
|
+
function visit(value) {
|
|
81
|
+
if (!value || typeof value !== 'object')
|
|
82
|
+
return;
|
|
83
|
+
const record = value;
|
|
84
|
+
const type = record['@type'];
|
|
85
|
+
if (typeof type === 'string') {
|
|
86
|
+
types.add(type);
|
|
87
|
+
}
|
|
88
|
+
else if (Array.isArray(type)) {
|
|
89
|
+
type.filter((item) => typeof item === 'string').forEach((item) => types.add(item));
|
|
90
|
+
}
|
|
91
|
+
if (Array.isArray(record['@graph'])) {
|
|
92
|
+
record['@graph'].forEach(visit);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
payloads.forEach(visit);
|
|
96
|
+
return [...types].sort();
|
|
97
|
+
}
|
|
98
|
+
function collectImplementationCopyMatches(html) {
|
|
99
|
+
const visibleText = html
|
|
100
|
+
.replace(/<script\b[\s\S]*?<\/script>/gi, ' ')
|
|
101
|
+
.replace(/<style\b[\s\S]*?<\/style>/gi, ' ')
|
|
102
|
+
.replace(/<[^>]+>/g, ' ')
|
|
103
|
+
.replace(/\s+/g, ' ');
|
|
104
|
+
return IMPLEMENTATION_COPY_PATTERNS
|
|
105
|
+
.filter((pattern) => pattern.test(visibleText))
|
|
106
|
+
.map((pattern) => pattern.source);
|
|
107
|
+
}
|
|
108
|
+
export function extractSearchCertificationHtmlSnapshot(html) {
|
|
109
|
+
const title = decodeHtml(html.match(/<title[^>]*>([\s\S]*?)<\/title>/i)?.[1]?.trim() ?? '');
|
|
110
|
+
const jsonLd = parseJsonLd(html);
|
|
111
|
+
return {
|
|
112
|
+
title: title || null,
|
|
113
|
+
description: findMetaContent(html, 'name', 'description'),
|
|
114
|
+
canonical: findCanonical(html),
|
|
115
|
+
robots: findMetaContent(html, 'name', 'robots'),
|
|
116
|
+
openGraph: findOpenGraph(html),
|
|
117
|
+
twitter: findTwitter(html),
|
|
118
|
+
jsonLd,
|
|
119
|
+
jsonLdTypes: collectJsonLdTypes(jsonLd),
|
|
120
|
+
googleTagPresent: /googletagmanager\.com\/gtag\/js|gtag\(/.test(html),
|
|
121
|
+
implementationCopyMatches: collectImplementationCopyMatches(html),
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
export function compareSearchCertificationHtmlSnapshots(expected, actual) {
|
|
125
|
+
const differences = [];
|
|
126
|
+
for (const field of ['title', 'description', 'canonical', 'robots']) {
|
|
127
|
+
if (expected[field] !== actual[field]) {
|
|
128
|
+
differences.push(`${field} changed`);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
if (JSON.stringify(expected.jsonLdTypes) !== JSON.stringify(actual.jsonLdTypes)) {
|
|
132
|
+
differences.push('jsonLdTypes changed');
|
|
133
|
+
}
|
|
134
|
+
if (expected.googleTagPresent !== actual.googleTagPresent) {
|
|
135
|
+
differences.push('googleTagPresent changed');
|
|
136
|
+
}
|
|
137
|
+
if (actual.implementationCopyMatches.length > 0) {
|
|
138
|
+
differences.push('implementation-facing copy detected');
|
|
139
|
+
}
|
|
140
|
+
return {
|
|
141
|
+
matches: differences.length === 0,
|
|
142
|
+
differences,
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=search-certification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-certification.js","sourceRoot":"","sources":["../src/search-certification.ts"],"names":[],"mappings":"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"}
|
package/dist/vitest.d.ts
CHANGED
|
@@ -13,6 +13,68 @@ export interface SourcePatternMatch {
|
|
|
13
13
|
column: number;
|
|
14
14
|
text: string;
|
|
15
15
|
}
|
|
16
|
+
export interface PackageJsonLike {
|
|
17
|
+
dependencies?: Record<string, string>;
|
|
18
|
+
devDependencies?: Record<string, string>;
|
|
19
|
+
}
|
|
20
|
+
export interface SharedPackageVersionIssue {
|
|
21
|
+
packageName: string;
|
|
22
|
+
installedVersion: string | null;
|
|
23
|
+
issue: "missing" | "mismatch" | "not-exact";
|
|
24
|
+
}
|
|
25
|
+
export interface NpmDistTagIssue {
|
|
26
|
+
packageName: string;
|
|
27
|
+
tag: string;
|
|
28
|
+
expectedVersion: string;
|
|
29
|
+
actualVersion: string | null;
|
|
30
|
+
}
|
|
31
|
+
export type BrandlabArchitectureProfile = "dynamic-data-driven" | "root-level-data-driven" | "static-route-heavy-legacy";
|
|
32
|
+
export type BrandlabArchitectureStatus = "standard" | "legacy-exception";
|
|
33
|
+
export interface BrandlabArchitectureConfigLike {
|
|
34
|
+
profile?: string;
|
|
35
|
+
status?: string;
|
|
36
|
+
targetProfile?: string;
|
|
37
|
+
migrationRationale?: string;
|
|
38
|
+
staticRouteFileLimit?: number;
|
|
39
|
+
largeRouteFileLineLimit?: number;
|
|
40
|
+
routeFileContentCharLimit?: number;
|
|
41
|
+
routeFamilies?: readonly {
|
|
42
|
+
name?: string;
|
|
43
|
+
model?: string;
|
|
44
|
+
route?: string;
|
|
45
|
+
dataSource?: string;
|
|
46
|
+
}[];
|
|
47
|
+
contentOwnership?: {
|
|
48
|
+
routeFiles?: string;
|
|
49
|
+
pageData?: string;
|
|
50
|
+
componentCopy?: string;
|
|
51
|
+
};
|
|
52
|
+
topology?: {
|
|
53
|
+
allowedRootDirs?: readonly string[];
|
|
54
|
+
allowedComponentDirs?: readonly string[];
|
|
55
|
+
allowedLibDirs?: readonly string[];
|
|
56
|
+
allowedTypeFiles?: readonly string[];
|
|
57
|
+
legacyAllowedRootDirs?: readonly string[];
|
|
58
|
+
legacyAllowedComponentDirs?: readonly string[];
|
|
59
|
+
legacyAllowedLibDirs?: readonly string[];
|
|
60
|
+
legacyAllowedTypeFiles?: readonly string[];
|
|
61
|
+
targetTopology?: string;
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
export interface BrandlabArchitectureIssue {
|
|
65
|
+
code: string;
|
|
66
|
+
severity: "error" | "warning" | "legacy-accepted";
|
|
67
|
+
detail: string;
|
|
68
|
+
path?: string;
|
|
69
|
+
}
|
|
70
|
+
export interface BrandlabArchitectureReport {
|
|
71
|
+
profile: string | null;
|
|
72
|
+
status: string | null;
|
|
73
|
+
pageFileCount: number;
|
|
74
|
+
staticPageFileCount: number;
|
|
75
|
+
dynamicPageFileCount: number;
|
|
76
|
+
issues: BrandlabArchitectureIssue[];
|
|
77
|
+
}
|
|
16
78
|
export declare const BRANDLAB_FORBIDDEN_SOURCE_PATTERNS: readonly SourcePattern[];
|
|
17
79
|
export declare function scanTextFiles(options: {
|
|
18
80
|
roots: readonly string[];
|
|
@@ -21,4 +83,24 @@ export declare function findForbiddenBrandlabPatterns(options: {
|
|
|
21
83
|
roots: readonly string[];
|
|
22
84
|
patterns?: readonly SourcePattern[];
|
|
23
85
|
}): SourcePatternMatch[];
|
|
86
|
+
export declare function evaluateSharedPackageVersionSpecs(options: {
|
|
87
|
+
packageJson: PackageJsonLike;
|
|
88
|
+
expectedVersion: string;
|
|
89
|
+
packageNames: readonly string[];
|
|
90
|
+
}): SharedPackageVersionIssue[];
|
|
91
|
+
export declare function evaluateNpmDistTags(options: {
|
|
92
|
+
packageName: string;
|
|
93
|
+
expectedVersion: string;
|
|
94
|
+
distTags: Record<string, string | undefined>;
|
|
95
|
+
tags?: readonly string[];
|
|
96
|
+
}): NpmDistTagIssue[];
|
|
97
|
+
export declare function isSearchCertificationFresh(evidence: {
|
|
98
|
+
evidenceRecordedAt?: string;
|
|
99
|
+
} | null | undefined, now?: number, maxAgeDays?: number): boolean;
|
|
100
|
+
export declare function evaluateBrandlabArchitecture(options: {
|
|
101
|
+
root: string;
|
|
102
|
+
architecture?: BrandlabArchitectureConfigLike | null;
|
|
103
|
+
largeRouteFileLineLimit?: number;
|
|
104
|
+
routeFileContentCharLimit?: number;
|
|
105
|
+
}): BrandlabArchitectureReport;
|
|
24
106
|
//# sourceMappingURL=vitest.d.ts.map
|
package/dist/vitest.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vitest.d.ts","sourceRoot":"","sources":["../src/vitest.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"vitest.d.ts","sourceRoot":"","sources":["../src/vitest.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,KAAK,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;CAC7C;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,MAAM,2BAA2B,GACnC,qBAAqB,GACrB,wBAAwB,GACxB,2BAA2B,CAAC;AAEhC,MAAM,MAAM,0BAA0B,GAAG,UAAU,GAAG,kBAAkB,CAAC;AAEzE,MAAM,WAAW,8BAA8B;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,aAAa,CAAC,EAAE,SAAS;QACvB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,EAAE,CAAC;IACJ,gBAAgB,CAAC,EAAE;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QACpC,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QACzC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QACnC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QACrC,qBAAqB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAC1C,0BAA0B,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAC/C,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QACzC,sBAAsB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,iBAAiB,CAAC;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,MAAM,EAAE,yBAAyB,EAAE,CAAC;CACrC;AAycD,eAAO,MAAM,kCAAkC,EAAE,SAAS,aAAa,EAiBtE,CAAC;AA8VF,wBAAgB,aAAa,CAAC,OAAO,EAAE;IACrC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1B,GAAG,cAAc,EAAE,CAOnB;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE;IACrD,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;CACrC,GAAG,kBAAkB,EAAE,CAyBvB;AAUD,wBAAgB,iCAAiC,CAAC,OAAO,EAAE;IACzD,WAAW,EAAE,eAAe,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC,GAAG,yBAAyB,EAAE,CA2B9B;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC7C,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1B,GAAG,eAAe,EAAE,CAgBpB;AAED,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE;IAAE,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,EAC5D,GAAG,SAAa,EAChB,UAAU,SAAK,WAOhB;AAED,wBAAgB,4BAA4B,CAAC,OAAO,EAAE;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,8BAA8B,GAAG,IAAI,CAAC;IACrD,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,yBAAyB,CAAC,EAAE,MAAM,CAAC;CACpC,GAAG,0BAA0B,CA86D7B"}
|