@react-x11/components 0.12.0 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/html/controls.d.ts +41 -5
- package/dist/html/controls.d.ts.map +1 -1
- package/dist/html/controls.js +85 -57
- package/dist/html/controls.js.map +1 -1
- package/dist/html/css/cascade.d.ts +134 -20
- package/dist/html/css/cascade.d.ts.map +1 -1
- package/dist/html/css/cascade.js +545 -126
- package/dist/html/css/cascade.js.map +1 -1
- package/dist/html/css/color.d.ts +18 -0
- package/dist/html/css/color.d.ts.map +1 -1
- package/dist/html/css/color.js +27 -0
- package/dist/html/css/color.js.map +1 -1
- package/dist/html/css/parse.d.ts +47 -6
- package/dist/html/css/parse.d.ts.map +1 -1
- package/dist/html/css/parse.js +336 -30
- package/dist/html/css/parse.js.map +1 -1
- package/dist/html/css/style.d.ts +142 -15
- package/dist/html/css/style.d.ts.map +1 -1
- package/dist/html/css/style.js +563 -147
- package/dist/html/css/style.js.map +1 -1
- package/dist/html/css/transform.d.ts +85 -0
- package/dist/html/css/transform.d.ts.map +1 -0
- package/dist/html/css/transform.js +425 -0
- package/dist/html/css/transform.js.map +1 -0
- package/dist/html/css/ua.d.ts +11 -1
- package/dist/html/css/ua.d.ts.map +1 -1
- package/dist/html/css/ua.js +73 -9
- package/dist/html/css/ua.js.map +1 -1
- package/dist/html/css/values.d.ts +4 -0
- package/dist/html/css/values.d.ts.map +1 -1
- package/dist/html/css/values.js.map +1 -1
- package/dist/html/dom.d.ts.map +1 -1
- package/dist/html/dom.js +3 -1
- package/dist/html/dom.js.map +1 -1
- package/dist/html/fonts.d.ts +78 -4
- package/dist/html/fonts.d.ts.map +1 -1
- package/dist/html/fonts.js +373 -19
- package/dist/html/fonts.js.map +1 -1
- package/dist/html/form.d.ts +200 -0
- package/dist/html/form.d.ts.map +1 -0
- package/dist/html/form.js +801 -0
- package/dist/html/form.js.map +1 -0
- package/dist/html/index.d.ts +12 -0
- package/dist/html/index.d.ts.map +1 -1
- package/dist/html/index.js +30 -301
- package/dist/html/index.js.map +1 -1
- package/dist/html/layout/axes.d.ts +14 -0
- package/dist/html/layout/axes.d.ts.map +1 -0
- package/dist/html/layout/axes.js +28 -0
- package/dist/html/layout/axes.js.map +1 -0
- package/dist/html/layout/block.d.ts +93 -12
- package/dist/html/layout/block.d.ts.map +1 -1
- package/dist/html/layout/block.js +393 -39
- package/dist/html/layout/block.js.map +1 -1
- package/dist/html/layout/boxes.d.ts +90 -2
- package/dist/html/layout/boxes.d.ts.map +1 -1
- package/dist/html/layout/boxes.js +74 -10
- package/dist/html/layout/boxes.js.map +1 -1
- package/dist/html/layout/cache.d.ts +1 -1
- package/dist/html/layout/cache.d.ts.map +1 -1
- package/dist/html/layout/cache.js +6 -0
- package/dist/html/layout/cache.js.map +1 -1
- package/dist/html/layout/css-grid.d.ts.map +1 -1
- package/dist/html/layout/css-grid.js +90 -18
- package/dist/html/layout/css-grid.js.map +1 -1
- package/dist/html/layout/flex.d.ts.map +1 -1
- package/dist/html/layout/flex.js +574 -84
- package/dist/html/layout/flex.js.map +1 -1
- package/dist/html/layout/inline.d.ts +3 -0
- package/dist/html/layout/inline.d.ts.map +1 -1
- package/dist/html/layout/inline.js +154 -54
- package/dist/html/layout/inline.js.map +1 -1
- package/dist/html/layout/multicol.d.ts +42 -0
- package/dist/html/layout/multicol.d.ts.map +1 -0
- package/dist/html/layout/multicol.js +897 -0
- package/dist/html/layout/multicol.js.map +1 -0
- package/dist/html/layout/shaping.d.ts +7 -0
- package/dist/html/layout/shaping.d.ts.map +1 -1
- package/dist/html/layout/shaping.js +25 -20
- package/dist/html/layout/shaping.js.map +1 -1
- package/dist/html/layout/table.d.ts.map +1 -1
- package/dist/html/layout/table.js +62 -18
- package/dist/html/layout/table.js.map +1 -1
- package/dist/html/node.d.ts +90 -15
- package/dist/html/node.d.ts.map +1 -1
- package/dist/html/node.js +771 -186
- package/dist/html/node.js.map +1 -1
- package/dist/html/paint.d.ts +101 -5
- package/dist/html/paint.d.ts.map +1 -1
- package/dist/html/paint.js +1502 -160
- package/dist/html/paint.js.map +1 -1
- package/dist/html/svg.d.ts +15 -2
- package/dist/html/svg.d.ts.map +1 -1
- package/dist/html/svg.js +249 -17
- package/dist/html/svg.js.map +1 -1
- package/dist/html/widgets.d.ts +29 -0
- package/dist/html/widgets.d.ts.map +1 -0
- package/dist/html/widgets.js +700 -0
- package/dist/html/widgets.js.map +1 -0
- package/dist/html/woff2.d.ts +14 -0
- package/dist/html/woff2.d.ts.map +1 -0
- package/dist/html/woff2.js +608 -0
- package/dist/html/woff2.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/maps/controller.d.ts +17 -1
- package/dist/maps/controller.d.ts.map +1 -1
- package/dist/maps/controller.js +27 -7
- package/dist/maps/controller.js.map +1 -1
- package/dist/richtext/node.d.ts +8 -1
- package/dist/richtext/node.d.ts.map +1 -1
- package/dist/richtext/node.js +5 -1
- package/dist/richtext/node.js.map +1 -1
- package/dist/richtext/runs.d.ts +25 -6
- package/dist/richtext/runs.d.ts.map +1 -1
- package/dist/richtext/runs.js +240 -24
- package/dist/richtext/runs.js.map +1 -1
- package/package.json +2 -2
- package/src/html/controls.ts +114 -51
- package/src/html/css/cascade.ts +614 -140
- package/src/html/css/color.ts +29 -0
- package/src/html/css/parse.ts +388 -33
- package/src/html/css/style.ts +688 -150
- package/src/html/css/transform.ts +459 -0
- package/src/html/css/ua.ts +77 -10
- package/src/html/css/values.ts +4 -0
- package/src/html/dom.ts +3 -1
- package/src/html/fonts.ts +417 -24
- package/src/html/form.ts +962 -0
- package/src/html/index.ts +49 -338
- package/src/html/layout/axes.ts +62 -0
- package/src/html/layout/block.ts +447 -37
- package/src/html/layout/boxes.ts +143 -14
- package/src/html/layout/cache.ts +6 -0
- package/src/html/layout/css-grid.ts +95 -22
- package/src/html/layout/flex.ts +675 -78
- package/src/html/layout/inline.ts +159 -55
- package/src/html/layout/multicol.ts +977 -0
- package/src/html/layout/shaping.ts +27 -18
- package/src/html/layout/table.ts +62 -19
- package/src/html/node.ts +798 -172
- package/src/html/paint.ts +1742 -241
- package/src/html/svg.ts +277 -19
- package/src/html/widgets.ts +821 -0
- package/src/html/woff2.ts +612 -0
- package/src/index.ts +1 -0
- package/src/maps/controller.ts +28 -7
- package/src/richtext/node.ts +13 -2
- package/src/richtext/runs.ts +313 -35
package/dist/html/fonts.js
CHANGED
|
@@ -35,18 +35,69 @@
|
|
|
35
35
|
// keyed by a family list, the text layouts', the metrics', ntk's, that the
|
|
36
36
|
// text has to be set again.
|
|
37
37
|
//
|
|
38
|
+
// **A face the text engine cannot set is not registered.** A face is drawn by
|
|
39
|
+
// the engine, and an engine can read a file it cannot draw every weight of:
|
|
40
|
+
// ntk cuts an instance out of a variable face for the weight and the size a
|
|
41
|
+
// style asks for, and fontkit, which does the cutting, could not cut one out
|
|
42
|
+
// of a WOFF2 — the container nearly every variable web font is served in.
|
|
43
|
+
// The throw came out of the first text layout in the family, and the
|
|
44
|
+
// document it took down was nextjs.org's blog, for Geist. So a face is asked
|
|
45
|
+
// for an instance once, before it is registered (`refusal`), and one the
|
|
46
|
+
// engine refuses is a source that did not load: the next is tried, and with
|
|
47
|
+
// none left the family stays out of the list and the text is set in the
|
|
48
|
+
// next one, as a browser sets it when it cannot use a font.
|
|
49
|
+
//
|
|
50
|
+
// **A WOFF2 an engine does not take is handed over as the font inside it.**
|
|
51
|
+
// The web serves a font as WOFF2 and as little else, and not every engine
|
|
52
|
+
// reads one: CoreText reads an sfnt and nothing more, so react-x11's
|
|
53
|
+
// `loadFont` throws for a WOFF2 on macOS, and the fontkit ntk cuts a
|
|
54
|
+
// variable face with cut nothing out of one. Either way the page was set in
|
|
55
|
+
// its fallback — nextjs.org in Arial, the family its `local()` names, where
|
|
56
|
+
// a browser sets it in Geist. So a file is offered as it was served, and
|
|
57
|
+
// where that is refused the sfnt it wraps is rebuilt (`woff2.ts`) and
|
|
58
|
+
// offered in its place (`_register`); only a font refused both ways is a
|
|
59
|
+
// source that did not load. Nothing asks which engine it is.
|
|
60
|
+
//
|
|
61
|
+
// **A variable face is set at the weight its rule has for a style's.** The
|
|
62
|
+
// weight a style asks for is a place on the face's `wght` axis, clamped to
|
|
63
|
+
// the range its `@font-face` declares (CSS Fonts 4, 7.2), and the rule is
|
|
64
|
+
// the document's: the value is said here (`wght`) and handed to the engine
|
|
65
|
+
// with the run (`layout/axes.ts`). Left alone, ntk moves the axis to the
|
|
66
|
+
// style's weight whatever the rule declared, and CoreText, for a face
|
|
67
|
+
// react-x11 registered, does not move it — every weight of Geist was its
|
|
68
|
+
// regular on macOS.
|
|
69
|
+
//
|
|
38
70
|
// A family split by `unicode-range` is registered a name per range, since the
|
|
39
71
|
// font manager picks among one name's faces by weight and slant alone, and
|
|
40
72
|
// the range that holds the most of the document's characters goes first: the
|
|
41
73
|
// first family is the one a run is set in, and the others are reached through
|
|
42
74
|
// the fallback for the characters it lacks.
|
|
43
75
|
//
|
|
76
|
+
// **A family the document declares is never the system's by that name.**
|
|
77
|
+
// CSS Fonts 4 (5.2) has a family defined by `@font-face` with no face
|
|
78
|
+
// present treated as missing, and forbids matching a platform font of the
|
|
79
|
+
// same name. That holds for a family whose sources are all `local()`s too,
|
|
80
|
+
// which is the one that used to get past: next/font declares
|
|
81
|
+
// `"GeistSans Fallback"` as `src: local("Arial")`, the rule was dropped for
|
|
82
|
+
// having no `url()`, and the name went to the text engine as written —
|
|
83
|
+
// where fontconfig's nearest guess for a family nobody has was Hiragino Sans
|
|
84
|
+
// at 400 and Gill Sans Ultra Bold at 450.
|
|
85
|
+
//
|
|
86
|
+
// A `local()` is a source like a `url()`, tried in the order `src` lists
|
|
87
|
+
// them, and what it comes to is **an alias**: a face the system has goes
|
|
88
|
+
// into the list as its family's name (`localFamily`), in the place of the
|
|
89
|
+
// document's, and nothing is registered. A font manager has no lookup by a
|
|
90
|
+
// face's name — it answers any family with its best guess — so the question
|
|
91
|
+
// is put as a match, and the answer is believed only when the face that
|
|
92
|
+
// comes back says it is the one named.
|
|
93
|
+
//
|
|
44
94
|
// What stays the application's: registering a face adds it to ntk's
|
|
45
95
|
// fallback chain, where it can supply a glyph no other face has to text
|
|
46
96
|
// anywhere in the app (react-x11's `loadFont` says so), and nothing is ever
|
|
47
97
|
// unregistered — the font manager has no way to. A session that visits many
|
|
48
98
|
// sites keeps their faces, one registration per distinct declaration.
|
|
49
|
-
import { loadFont } from 'react-x11';
|
|
99
|
+
import { loadFont, openFont } from 'react-x11';
|
|
100
|
+
import { isWoff2, sfntFromWoff2 } from './woff2.js';
|
|
50
101
|
/** The formats a font manager reads. A source hinted as anything else — an
|
|
51
102
|
* `embedded-opentype` for old Internet Explorer, an `svg` font — is not
|
|
52
103
|
* asked for; one with no hint is. */
|
|
@@ -71,7 +122,10 @@ function registryOf(app) {
|
|
|
71
122
|
next: 0,
|
|
72
123
|
names: new Map(),
|
|
73
124
|
ready: new Set(),
|
|
125
|
+
locals: new Map(),
|
|
126
|
+
axes: new Map(),
|
|
74
127
|
pending: new Map(),
|
|
128
|
+
warned: false,
|
|
75
129
|
};
|
|
76
130
|
REGISTRIES.set(app, registry);
|
|
77
131
|
}
|
|
@@ -104,6 +158,14 @@ export class WebFonts {
|
|
|
104
158
|
* lists that come to one string share an entry, which can ask for a face
|
|
105
159
|
* a little early; never for one nothing wants. */
|
|
106
160
|
_sources = new Map();
|
|
161
|
+
/** The groups by the names they are registered under, which is how a
|
|
162
|
+
* list the engine is handed names one (`wght`). */
|
|
163
|
+
_groups = new Map();
|
|
164
|
+
/** Lists → weight and slant → the axis value text in them is set at. */
|
|
165
|
+
_axes = new Map();
|
|
166
|
+
/** Whether any loaded face has a weight axis to set; null for not yet
|
|
167
|
+
* asked since the faces changed. */
|
|
168
|
+
_variable = null;
|
|
107
169
|
/** The document's characters, as the last `request` saw them. */
|
|
108
170
|
_text = null;
|
|
109
171
|
_seen = new Set();
|
|
@@ -183,14 +245,17 @@ export class WebFonts {
|
|
|
183
245
|
order: order++,
|
|
184
246
|
};
|
|
185
247
|
for (const m of members) {
|
|
186
|
-
const ready = registry?.ready.has(faceKey(name, m.rule)) ?? false;
|
|
187
248
|
const face = {
|
|
188
249
|
rule: m.rule,
|
|
189
250
|
element: m.element,
|
|
190
251
|
group,
|
|
191
252
|
family,
|
|
192
|
-
state:
|
|
253
|
+
state: 'idle',
|
|
254
|
+
local: null,
|
|
255
|
+
wght: null,
|
|
193
256
|
};
|
|
257
|
+
if (registry?.ready.has(faceKey(name, m.rule)))
|
|
258
|
+
arrive(face, registry);
|
|
194
259
|
group.faces.push(face);
|
|
195
260
|
made.set(m, face);
|
|
196
261
|
}
|
|
@@ -199,6 +264,11 @@ export class WebFonts {
|
|
|
199
264
|
families.set(key, family);
|
|
200
265
|
}
|
|
201
266
|
this._families = families;
|
|
267
|
+
this._groups.clear();
|
|
268
|
+
for (const family of families.values()) {
|
|
269
|
+
for (const group of family.groups)
|
|
270
|
+
this._groups.set(group.name, group);
|
|
271
|
+
}
|
|
202
272
|
this._faces = declared.map((d) => made.get(d));
|
|
203
273
|
// the ranges are new, and so is what they cover
|
|
204
274
|
if (this._text !== null)
|
|
@@ -224,8 +294,16 @@ export class WebFonts {
|
|
|
224
294
|
}
|
|
225
295
|
used.push(family);
|
|
226
296
|
for (const group of orderedGroups(family)) {
|
|
227
|
-
|
|
297
|
+
// the name its files are registered under, then the families its
|
|
298
|
+
// `local()`s came to
|
|
299
|
+
const ready = group.faces.filter((f) => f.state === 'ready');
|
|
300
|
+
if (ready.some((f) => f.local === null))
|
|
228
301
|
out.push(group.name);
|
|
302
|
+
for (const face of ready) {
|
|
303
|
+
if (face.local !== null && !out.includes(face.local)) {
|
|
304
|
+
out.push(face.local);
|
|
305
|
+
}
|
|
306
|
+
}
|
|
229
307
|
}
|
|
230
308
|
}
|
|
231
309
|
let mapped = out.length ? out.join(', ') : this._fallback;
|
|
@@ -259,6 +337,62 @@ export class WebFonts {
|
|
|
259
337
|
for (const family of families)
|
|
260
338
|
family.wants.add(want);
|
|
261
339
|
}
|
|
340
|
+
/** Whether any face the document has loaded is a variable font whose rule
|
|
341
|
+
* declares a range of weights: whether `wght` has anything to say. */
|
|
342
|
+
get variable() {
|
|
343
|
+
if (this._variable === null) {
|
|
344
|
+
this._variable = false;
|
|
345
|
+
for (const group of this._groups.values()) {
|
|
346
|
+
if (group.faces.some((f) => ranged(f) !== null))
|
|
347
|
+
this._variable = true;
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
return this._variable;
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* Where on its weight axis text in a family list — one `map` made — is
|
|
354
|
+
* set at a weight and slant, or null where no axis is this document's to
|
|
355
|
+
* set.
|
|
356
|
+
*
|
|
357
|
+
* CSS has the weight a style asks for applied to a variable face's `wght`
|
|
358
|
+
* axis, clamped to the range its `@font-face` rule declares (CSS Fonts 4,
|
|
359
|
+
* 7.2): `font-weight: 100 900` is every weight the file has, and
|
|
360
|
+
* under `font-weight: 400 700` text at 900 is set at 700. The rule is the
|
|
361
|
+
* document's, so the value is said here and handed to the engine with the
|
|
362
|
+
* run (`layout/axes.ts`). An engine left to itself either moves the axis
|
|
363
|
+
* to the style's weight, past what the rule declared — ntk — or not at
|
|
364
|
+
* all: a face react-x11 registers with CoreText is drawn at its file's
|
|
365
|
+
* default, and every weight of Geist on macOS was the regular.
|
|
366
|
+
*
|
|
367
|
+
* Only the list's first family is asked, the one text is set in, and only
|
|
368
|
+
* a face whose rule declares a range: one declared at a single weight is
|
|
369
|
+
* left as the engine sets it.
|
|
370
|
+
*/
|
|
371
|
+
wght(list, weight, italic) {
|
|
372
|
+
if (!this.variable)
|
|
373
|
+
return null;
|
|
374
|
+
let byFace = this._axes.get(list);
|
|
375
|
+
if (!byFace)
|
|
376
|
+
this._axes.set(list, (byFace = new Map()));
|
|
377
|
+
const key = italic ? -weight : weight;
|
|
378
|
+
let axis = byFace.get(key);
|
|
379
|
+
if (axis === undefined) {
|
|
380
|
+
axis = null;
|
|
381
|
+
const comma = list.indexOf(',');
|
|
382
|
+
const first = (comma < 0 ? list : list.slice(0, comma)).trim();
|
|
383
|
+
const face = bestFace(
|
|
384
|
+
// the faces registered under the name, which the engine picks among
|
|
385
|
+
this._groups
|
|
386
|
+
.get(first)
|
|
387
|
+
?.faces.filter((f) => f.state === 'ready' && f.local === null) ?? [], weight, italic);
|
|
388
|
+
const range = face && ranged(face);
|
|
389
|
+
if (range) {
|
|
390
|
+
axis = weightAxis(Math.max(range[0], Math.min(weight, range[1])));
|
|
391
|
+
}
|
|
392
|
+
byFace.set(key, axis);
|
|
393
|
+
}
|
|
394
|
+
return axis;
|
|
395
|
+
}
|
|
262
396
|
/**
|
|
263
397
|
* Ask for the faces the styles noted since the last call want, for the
|
|
264
398
|
* characters `text` holds — the document's own. True when the lists the
|
|
@@ -292,6 +426,7 @@ export class WebFonts {
|
|
|
292
426
|
destroy() {
|
|
293
427
|
this._destroyed = true;
|
|
294
428
|
this._families.clear();
|
|
429
|
+
this._groups.clear();
|
|
295
430
|
this._forget();
|
|
296
431
|
}
|
|
297
432
|
/** Every list mapped before this is stale: a face arrived, or the faces
|
|
@@ -299,6 +434,8 @@ export class WebFonts {
|
|
|
299
434
|
_forget() {
|
|
300
435
|
this._memo.clear();
|
|
301
436
|
this._sources.clear();
|
|
437
|
+
this._axes.clear();
|
|
438
|
+
this._variable = null;
|
|
302
439
|
}
|
|
303
440
|
/**
|
|
304
441
|
* Load the face in a group that best matches a weight and slant, passing
|
|
@@ -387,7 +524,7 @@ export class WebFonts {
|
|
|
387
524
|
const registry = registryOf(app);
|
|
388
525
|
const key = faceKey(face.group.name, face.rule);
|
|
389
526
|
if (registry.ready.has(key)) {
|
|
390
|
-
face
|
|
527
|
+
arrive(face, registry);
|
|
391
528
|
return 'ready';
|
|
392
529
|
}
|
|
393
530
|
face.state = 'loading';
|
|
@@ -404,7 +541,7 @@ export class WebFonts {
|
|
|
404
541
|
registry.ready.add(key);
|
|
405
542
|
settle(ok);
|
|
406
543
|
};
|
|
407
|
-
const sources = face.rule.sources.filter((s) => s.format === null || READABLE.has(s.format));
|
|
544
|
+
const sources = face.rule.sources.filter((s) => 'local' in s || s.format === null || READABLE.has(s.format));
|
|
408
545
|
let i = 0;
|
|
409
546
|
let sync = true;
|
|
410
547
|
/** Ask for the next source. `'ready'` registered it, `'waiting'` is
|
|
@@ -412,6 +549,21 @@ export class WebFonts {
|
|
|
412
549
|
const next = () => {
|
|
413
550
|
while (i < sources.length) {
|
|
414
551
|
const source = sources[i++];
|
|
552
|
+
if ('local' in source) {
|
|
553
|
+
// nothing to ask the host for, and nothing to wait on
|
|
554
|
+
const family = this._destroyed
|
|
555
|
+
? null
|
|
556
|
+
: localFamily(app, source.local, face.rule);
|
|
557
|
+
if (family === null)
|
|
558
|
+
continue;
|
|
559
|
+
registry.locals.set(key, family);
|
|
560
|
+
finish(true);
|
|
561
|
+
if (sync)
|
|
562
|
+
arrive(face, registry);
|
|
563
|
+
else
|
|
564
|
+
this._settled(face, true);
|
|
565
|
+
return 'ready';
|
|
566
|
+
}
|
|
415
567
|
let answer;
|
|
416
568
|
try {
|
|
417
569
|
answer = this._ask({
|
|
@@ -424,13 +576,21 @@ export class WebFonts {
|
|
|
424
576
|
continue;
|
|
425
577
|
}
|
|
426
578
|
if (isPromise(answer)) {
|
|
427
|
-
answer
|
|
579
|
+
answer
|
|
580
|
+
.then((result) => this._register(face, result, source.url))
|
|
581
|
+
.then(after, () => after(false));
|
|
428
582
|
return 'waiting';
|
|
429
583
|
}
|
|
430
|
-
|
|
584
|
+
const registered = this._register(face, answer, source.url);
|
|
585
|
+
if (isPromise(registered)) {
|
|
586
|
+
// a WOFF2 being handed over as the font inside it
|
|
587
|
+
registered.then(after, () => after(false));
|
|
588
|
+
return 'waiting';
|
|
589
|
+
}
|
|
590
|
+
if (registered) {
|
|
431
591
|
finish(true);
|
|
432
592
|
if (sync)
|
|
433
|
-
face
|
|
593
|
+
arrive(face, registry);
|
|
434
594
|
else
|
|
435
595
|
this._settled(face, true);
|
|
436
596
|
return 'ready';
|
|
@@ -457,16 +617,47 @@ export class WebFonts {
|
|
|
457
617
|
}
|
|
458
618
|
return outcome === 'ready' ? 'ready' : 'loading';
|
|
459
619
|
}
|
|
460
|
-
/**
|
|
461
|
-
*
|
|
462
|
-
*
|
|
463
|
-
*
|
|
464
|
-
|
|
620
|
+
/**
|
|
621
|
+
* Register a face's bytes under its group's name. False when the host
|
|
622
|
+
* declined, or the font manager could not read them — a file that is not
|
|
623
|
+
* a font — or read them and cannot set text in them (`refusal`), and the
|
|
624
|
+
* next source is tried.
|
|
625
|
+
*
|
|
626
|
+
* A WOFF2 the engine does not take as served is handed over again as the
|
|
627
|
+
* font inside it (`woff2.ts`), and the answer is then a promise: CoreText
|
|
628
|
+
* reads no such container, so react-x11's `loadFont` refuses every one on
|
|
629
|
+
* macOS, and an ntk whose fontkit cuts no instance out of one cuts it out
|
|
630
|
+
* of the sfnt. Nothing here asks which engine it is: the file is offered
|
|
631
|
+
* as the web served it, and rebuilt only for an engine that said no.
|
|
632
|
+
*/
|
|
633
|
+
_register(face, result, url) {
|
|
465
634
|
if (this._destroyed || !this._app || result?.kind !== 'font')
|
|
466
635
|
return false;
|
|
636
|
+
const refused = this._set(face, result.bytes);
|
|
637
|
+
if (refused === null)
|
|
638
|
+
return true;
|
|
639
|
+
if (!isWoff2(result.bytes))
|
|
640
|
+
return this._declined(url, refused);
|
|
641
|
+
return sfntFromWoff2(result.bytes).then((sfnt) => {
|
|
642
|
+
if (this._destroyed || !this._app)
|
|
643
|
+
return false;
|
|
644
|
+
const still = sfnt ? this._set(face, sfnt) : refused;
|
|
645
|
+
return still === null || this._declined(url, still);
|
|
646
|
+
});
|
|
647
|
+
}
|
|
648
|
+
/** Hand a font file to the font manager, under a face's group's name.
|
|
649
|
+
* Null when it registered; otherwise why the engine cannot set text in
|
|
650
|
+
* it (`refusal`), or `''` for bytes it could not read at all. */
|
|
651
|
+
_set(face, bytes) {
|
|
467
652
|
const { weight, style } = face.rule;
|
|
653
|
+
const app = this._app;
|
|
468
654
|
try {
|
|
469
|
-
loadFont
|
|
655
|
+
// `loadFont` opens the file first too, and finds this one opened
|
|
656
|
+
const opened = openFont(app, bytes);
|
|
657
|
+
const refused = refusal(app, opened, this._fallback);
|
|
658
|
+
if (refused !== null)
|
|
659
|
+
return refused;
|
|
660
|
+
loadFont(app, bytes, {
|
|
470
661
|
family: face.group.name,
|
|
471
662
|
// a range is registered at the weight nearest regular in it: the
|
|
472
663
|
// font manager picks among a group's faces by distance from one
|
|
@@ -474,32 +665,195 @@ export class WebFonts {
|
|
|
474
665
|
weight: Math.max(weight[0], Math.min(400, weight[1])),
|
|
475
666
|
style,
|
|
476
667
|
});
|
|
477
|
-
|
|
668
|
+
const axis = opened.variationAxes?.wght;
|
|
669
|
+
if (axis && axis.min < axis.max) {
|
|
670
|
+
const key = faceKey(face.group.name, face.rule);
|
|
671
|
+
registryOf(this._app).axes.set(key, [axis.min, axis.max]);
|
|
672
|
+
}
|
|
673
|
+
return null;
|
|
478
674
|
}
|
|
479
675
|
catch {
|
|
480
|
-
return
|
|
676
|
+
return '';
|
|
481
677
|
}
|
|
482
678
|
}
|
|
679
|
+
/** A source did not register, and the one the engine refused is said. */
|
|
680
|
+
_declined(url, why) {
|
|
681
|
+
if (why && this._app)
|
|
682
|
+
warnRefused(registryOf(this._app), url, why);
|
|
683
|
+
return false;
|
|
684
|
+
}
|
|
483
685
|
/** A face arrived, or will not. Either way the boxes are built again: an
|
|
484
686
|
* arrival changes the lists, and a failure has the next face asked for,
|
|
485
687
|
* by a family that has to be asked again to ask it. */
|
|
486
688
|
_settled(face, ok) {
|
|
487
689
|
if (this._destroyed)
|
|
488
690
|
return;
|
|
489
|
-
|
|
691
|
+
if (ok && this._app)
|
|
692
|
+
arrive(face, registryOf(this._app));
|
|
693
|
+
else
|
|
694
|
+
face.state = ok ? 'ready' : 'failed';
|
|
490
695
|
if (!ok)
|
|
491
696
|
face.family.asked.clear();
|
|
492
697
|
this._forget();
|
|
493
698
|
this._changed();
|
|
494
699
|
}
|
|
495
700
|
}
|
|
701
|
+
/** A registered face is the document's to use: what the connection knows
|
|
702
|
+
* of it — the family a `local()` came to, the axis its file has — is the
|
|
703
|
+
* face's. */
|
|
704
|
+
function arrive(face, registry) {
|
|
705
|
+
const key = faceKey(face.group.name, face.rule);
|
|
706
|
+
face.state = 'ready';
|
|
707
|
+
face.local = registry.locals.get(key) ?? null;
|
|
708
|
+
face.wght = registry.axes.get(key) ?? null;
|
|
709
|
+
}
|
|
710
|
+
/** One object a value: ntk tells two runs' variations apart by identity,
|
|
711
|
+
* and would set two runs at one weight as two. */
|
|
712
|
+
const WEIGHTS = new Map();
|
|
713
|
+
function weightAxis(wght) {
|
|
714
|
+
let axis = WEIGHTS.get(wght);
|
|
715
|
+
if (!axis)
|
|
716
|
+
WEIGHTS.set(wght, (axis = { wght }));
|
|
717
|
+
return axis;
|
|
718
|
+
}
|
|
719
|
+
/** The weights a loaded face's axis is set within: the range its rule
|
|
720
|
+
* declares, inside the one its file has. Null for a face with no axis, or
|
|
721
|
+
* declared at a single weight. */
|
|
722
|
+
function ranged(face) {
|
|
723
|
+
if (face.state !== 'ready' || !face.wght)
|
|
724
|
+
return null;
|
|
725
|
+
const lo = Math.max(face.rule.weight[0], face.wght[0]);
|
|
726
|
+
const hi = Math.min(face.rule.weight[1], face.wght[1]);
|
|
727
|
+
return face.rule.weight[0] < face.rule.weight[1] && lo <= hi
|
|
728
|
+
? [lo, hi]
|
|
729
|
+
: null;
|
|
730
|
+
}
|
|
731
|
+
/** The axes a style moves without naming one: ntk sets `wght` from the
|
|
732
|
+
* weight and `opsz` from the size (its `docs/fonts.md`), and nothing here
|
|
733
|
+
* hands it a `font-variation-settings`. A face with neither is set as its
|
|
734
|
+
* file has it, whatever else varies in it. */
|
|
735
|
+
const DRIVEN_AXES = ['wght', 'opsz'];
|
|
736
|
+
/**
|
|
737
|
+
* Why the text engine cannot set text in an opened face, or null when it
|
|
738
|
+
* can: the face is asked for the instance a layout will ask it for, at the
|
|
739
|
+
* far end of each axis a style moves, and the answer is the engine's own.
|
|
740
|
+
* What it cost unasked was the document: ntk instantiates inside `match`,
|
|
741
|
+
* so the throw came out of the first layout in the family, at whatever
|
|
742
|
+
* weight was not the file's default.
|
|
743
|
+
*
|
|
744
|
+
* Only an engine that draws through the face is asked. CoreText and
|
|
745
|
+
* DirectWrite move an axis themselves, and the face react-x11 opens there
|
|
746
|
+
* is fontkit's, for an application to read: what it cannot do says nothing
|
|
747
|
+
* about what they draw.
|
|
748
|
+
*/
|
|
749
|
+
export function refusal(app, font, family) {
|
|
750
|
+
const axes = font.variationAxes;
|
|
751
|
+
if (!axes || typeof font.variation !== 'function')
|
|
752
|
+
return null;
|
|
753
|
+
const settings = {};
|
|
754
|
+
for (const tag of DRIVEN_AXES) {
|
|
755
|
+
const axis = axes[tag];
|
|
756
|
+
if (!axis)
|
|
757
|
+
continue;
|
|
758
|
+
const far = axis.max !== axis.default ? axis.max : axis.min;
|
|
759
|
+
if (far !== axis.default)
|
|
760
|
+
settings[tag] = far;
|
|
761
|
+
}
|
|
762
|
+
if (!Object.keys(settings).length)
|
|
763
|
+
return null;
|
|
764
|
+
try {
|
|
765
|
+
font.variation(settings);
|
|
766
|
+
return null;
|
|
767
|
+
}
|
|
768
|
+
catch (error) {
|
|
769
|
+
return instantiates(app, family)
|
|
770
|
+
? String(error?.message ?? error)
|
|
771
|
+
: null;
|
|
772
|
+
}
|
|
773
|
+
}
|
|
774
|
+
/** Whether the engine's faces are cut into instances as an opened one is:
|
|
775
|
+
* the face it matches a family with has `variation`, as ntk's has and a
|
|
776
|
+
* CoreText or DirectWrite one has not. An engine that cannot say — no
|
|
777
|
+
* family to match — is taken to, since what is at stake is the document. */
|
|
778
|
+
function instantiates(app, family) {
|
|
779
|
+
try {
|
|
780
|
+
const fonts = app
|
|
781
|
+
.fonts;
|
|
782
|
+
const face = fonts?.match?.(family);
|
|
783
|
+
return !face || typeof face.variation === 'function';
|
|
784
|
+
}
|
|
785
|
+
catch {
|
|
786
|
+
return true;
|
|
787
|
+
}
|
|
788
|
+
}
|
|
789
|
+
/** Said once a connection, in development: a page set in its fallback
|
|
790
|
+
* family looks like a font that never loaded, and this says it did. */
|
|
791
|
+
function warnRefused(registry, url, why) {
|
|
792
|
+
if (registry.warned)
|
|
793
|
+
return;
|
|
794
|
+
registry.warned = true;
|
|
795
|
+
const g = globalThis;
|
|
796
|
+
if (g.process?.env?.NODE_ENV === 'production')
|
|
797
|
+
return;
|
|
798
|
+
g.console?.warn(`@react-x11/components: <Html> loaded the font at ${url} and the text ` +
|
|
799
|
+
'engine cannot set text in it, so its family is left out and the text ' +
|
|
800
|
+
'is set in the next one — as it is for every face the engine refuses. ' +
|
|
801
|
+
`A variable font served as WOFF2 is the usual cause.\n${why}`);
|
|
802
|
+
}
|
|
496
803
|
/** A face's identity within a registered name. */
|
|
497
804
|
function faceKey(name, rule) {
|
|
498
805
|
return `${name}\u0000${faceSignature(rule)}`;
|
|
499
806
|
}
|
|
500
807
|
function faceSignature(rule) {
|
|
501
808
|
const range = rangeKey(rule.unicodeRange);
|
|
502
|
-
|
|
809
|
+
const sources = rule.sources.map((s) => 'local' in s ? `local(${s.local})` : s.url);
|
|
810
|
+
return `${sources.join(' ')}@${rule.weight.join('-')}${rule.style}#${range}`;
|
|
811
|
+
}
|
|
812
|
+
/**
|
|
813
|
+
* The family of the face a `local()` names, or null when the system has no
|
|
814
|
+
* such face and the next source is tried.
|
|
815
|
+
*
|
|
816
|
+
* CSS Fonts 4 (4.3.1) has the name be one face's — its full name or its
|
|
817
|
+
* PostScript name, never a family's, and never a platform's substitute for
|
|
818
|
+
* it. A font manager has no lookup by either: it takes a family and answers
|
|
819
|
+
* with its best guess, which for a name nobody has is some other font. So
|
|
820
|
+
* the name is matched as a family, at the weight and slant the rule declares
|
|
821
|
+
* its face to have, and the answer counts only when the face that comes back
|
|
822
|
+
* says it is the one asked for: by its family, which is the full name of a
|
|
823
|
+
* family's regular face and how `local()` is nearly always spelled
|
|
824
|
+
* (`local(Arial)`), or by its PostScript name, where an engine finds a face
|
|
825
|
+
* by one. A full name with a style in it (`local(Arial Bold)`) is no family,
|
|
826
|
+
* and is not found.
|
|
827
|
+
*
|
|
828
|
+
* What comes back is the family and not the face: the list names it, and
|
|
829
|
+
* the engine picks among its faces by the weight and slant of the text, as
|
|
830
|
+
* it does for any family. Bold text in a family declared as the one face
|
|
831
|
+
* `local(Arial)` is set in Arial's bold, where a browser emboldens the
|
|
832
|
+
* regular.
|
|
833
|
+
*/
|
|
834
|
+
function localFamily(app, name, rule) {
|
|
835
|
+
const fonts = app.fonts;
|
|
836
|
+
if (typeof fonts?.match !== 'function')
|
|
837
|
+
return null;
|
|
838
|
+
const [lo, hi] = rule.weight;
|
|
839
|
+
try {
|
|
840
|
+
const face = fonts.match(name, {
|
|
841
|
+
weight: Math.max(lo, Math.min(400, hi)),
|
|
842
|
+
style: rule.style,
|
|
843
|
+
});
|
|
844
|
+
const family = face?.familyName;
|
|
845
|
+
if (!family)
|
|
846
|
+
return null;
|
|
847
|
+
const want = name.toLowerCase();
|
|
848
|
+
return family.toLowerCase() === want ||
|
|
849
|
+
face.postscriptName?.toLowerCase() === want
|
|
850
|
+
? family
|
|
851
|
+
: null;
|
|
852
|
+
}
|
|
853
|
+
catch {
|
|
854
|
+
// no fontconfig, or a name it could not read: not found
|
|
855
|
+
return null;
|
|
856
|
+
}
|
|
503
857
|
}
|
|
504
858
|
function rangeKey(ranges) {
|
|
505
859
|
return ranges ? ranges.map(([a, b]) => `${a}-${b}`).join(',') : '*';
|
package/dist/html/fonts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fonts.js","sourceRoot":"","sources":["../../src/html/fonts.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fonts.js","sourceRoot":"","sources":["../../src/html/fonts.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,0EAA0E;AAC1E,8EAA8E;AAC9E,yEAAyE;AACzE,yEAAyE;AACzE,0EAA0E;AAC1E,wEAAwE;AACxE,EAAE;AACF,sEAAsE;AACtE,0EAA0E;AAC1E,0EAA0E;AAC1E,6EAA6E;AAC7E,8EAA8E;AAC9E,8EAA8E;AAC9E,8EAA8E;AAC9E,oEAAoE;AACpE,0EAA0E;AAC1E,6EAA6E;AAC7E,mBAAmB;AACnB,EAAE;AACF,2EAA2E;AAC3E,yEAAyE;AACzE,6EAA6E;AAC7E,8EAA8E;AAC9E,2EAA2E;AAC3E,0EAA0E;AAC1E,4EAA4E;AAC5E,6EAA6E;AAC7E,qBAAqB;AACrB,EAAE;AACF,8EAA8E;AAC9E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,4BAA4B;AAC5B,EAAE;AACF,8EAA8E;AAC9E,4EAA4E;AAC5E,4EAA4E;AAC5E,6EAA6E;AAC7E,0EAA0E;AAC1E,qEAAqE;AACrE,6EAA6E;AAC7E,yEAAyE;AACzE,4EAA4E;AAC5E,wEAAwE;AACxE,4DAA4D;AAC5D,EAAE;AACF,4EAA4E;AAC5E,0EAA0E;AAC1E,qEAAqE;AACrE,qEAAqE;AACrE,4EAA4E;AAC5E,4EAA4E;AAC5E,yEAAyE;AACzE,sEAAsE;AACtE,yEAAyE;AACzE,6DAA6D;AAC7D,EAAE;AACF,2EAA2E;AAC3E,2EAA2E;AAC3E,0EAA0E;AAC1E,2EAA2E;AAC3E,yEAAyE;AACzE,sEAAsE;AACtE,yEAAyE;AACzE,oBAAoB;AACpB,EAAE;AACF,8EAA8E;AAC9E,2EAA2E;AAC3E,6EAA6E;AAC7E,8EAA8E;AAC9E,4CAA4C;AAC5C,EAAE;AACF,yEAAyE;AACzE,sEAAsE;AACtE,0EAA0E;AAC1E,2EAA2E;AAC3E,6DAA6D;AAC7D,4EAA4E;AAC5E,uEAAuE;AACvE,6EAA6E;AAC7E,0CAA0C;AAC1C,EAAE;AACF,yEAAyE;AACzE,yEAAyE;AACzE,0EAA0E;AAC1E,2EAA2E;AAC3E,4EAA4E;AAC5E,wEAAwE;AACxE,uCAAuC;AACvC,EAAE;AACF,oEAAoE;AACpE,wEAAwE;AACxE,4EAA4E;AAC5E,4EAA4E;AAC5E,sEAAsE;AACtE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAM/C,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAqBpD;;sCAEsC;AACtC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC;IACvB,OAAO;IACP,MAAM;IACN,UAAU;IACV,UAAU;IACV,KAAK;IACL,KAAK;IACL,YAAY;IACZ,kBAAkB;IAClB,iBAAiB;IACjB,qBAAqB;IACrB,qBAAqB;CACtB,CAAC,CAAC;AAwDH,MAAM,UAAU,GAAG,IAAI,OAAO,EAAoB,CAAC;AAEnD,SAAS,UAAU,CAAC,GAAW;IAC7B,IAAI,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG;YACT,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,IAAI,GAAG,EAAE;YAChB,KAAK,EAAE,IAAI,GAAG,EAAE;YAChB,MAAM,EAAE,IAAI,GAAG,EAAE;YACjB,IAAI,EAAE,IAAI,GAAG,EAAE;YACf,OAAO,EAAE,IAAI,GAAG,EAAE;YAClB,MAAM,EAAE,KAAK;SACd,CAAC;QACF,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,0DAA0D;AAC1D,SAAS,OAAO,CAAC,CAAS;IACxB,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,GAAG,CAAC;QACF,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;QAC/C,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACzB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;IAChB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,OAAO,QAAQ;IACX,IAAI,CAAgB;IACpB,IAAI,CAAM;IACV,QAAQ,CAAa;IACrB,SAAS,CAAS;IAClB,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC9C,yDAAyD;IACjD,MAAM,GAAW,EAAE,CAAC;IAC5B;kCAC8B;IACtB,SAAS,GAAG,EAAE,CAAC;IACvB,sEAAsE;IAC9D,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C;;;uDAGmD;IAC3C,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC/C;wDACoD;IAC5C,OAAO,GAAG,IAAI,GAAG,EAAiB,CAAC;IAC3C,wEAAwE;IAChE,KAAK,GAAG,IAAI,GAAG,EAA0C,CAAC;IAClE;yCACqC;IAC7B,SAAS,GAAmB,IAAI,CAAC;IACzC,iEAAiE;IACzD,KAAK,GAAkB,IAAI,CAAC;IAC5B,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1B,OAAO,GAAgB,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;IAC1C,UAAU,GAAG,KAAK,CAAC;IAE3B,YAAY,GAAY,EAAE,GAAQ,EAAE,OAAmB,EAAE,QAAgB;QACvE,IAAI,CAAC,IAAI,GAAG,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QACjE,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED;4DACwD;IACxD,WAAW,CAAC,MAAc;QACxB,IAAI,MAAM,KAAK,IAAI,CAAC,SAAS;YAAE,OAAO;QACtC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;QACxB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAC,QAAwB;QAC/B,MAAM,SAAS,GAAG,QAAQ;aACvB,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CACtE;aACA,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClB,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;YACjC,oDAAoD;YACpD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACvE,OAAO;QACT,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAE3B,8DAA8D;QAC9D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuC,CAAC;QAChE,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC3C,IAAI,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,CAAC,MAAM;gBAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;YACrD,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC/C,IAAI,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,CAAC,IAAI;gBAAE,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC3C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAsB,CAAC;QAC3C,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjC,MAAM,MAAM,GAAW;gBACrB,MAAM,EAAE,EAAE;gBACV,qEAAqE;gBACrE,0CAA0C;gBAC1C,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;gBACxC,KAAK,EAAE,IAAI,GAAG,EAAE;aACjB,CAAC;YACF,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,MAAM,EAAE,CAAC;gBACtC,MAAM,cAAc,GAAG,GAAG,GAAG,SAAS,KAAK,SAAS,OAAO;qBACxD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;qBACjC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpB,IAAI,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBAC/C,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,IAAI,GAAG,gBAAgB,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;oBACrE,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;gBAC5C,CAAC;gBACD,MAAM,KAAK,GAAU;oBACnB,IAAI;oBACJ,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY;oBACpC,KAAK,EAAE,EAAE;oBACT,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;oBACrD,KAAK,EAAE,KAAK,EAAE;iBACf,CAAC;gBACF,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;oBACxB,MAAM,IAAI,GAAS;wBACjB,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,OAAO,EAAE,CAAC,CAAC,OAAO;wBAClB,KAAK;wBACL,MAAM;wBACN,KAAK,EAAE,MAAM;wBACb,KAAK,EAAE,IAAI;wBACX,IAAI,EAAE,IAAI;qBACX,CAAC;oBACF,IAAI,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;wBAC5C,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;oBACzB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACvB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gBACpB,CAAC;gBACD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;YACD,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM;gBAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACzE,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC;QAChD,gDAAgD;QAChD,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI;YAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,GAAG,CAAC,IAAY;QACd,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACtC,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YACtD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACf,SAAS;YACX,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAClB,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1C,iEAAiE;gBACjE,qBAAqB;gBACrB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC;gBAC7D,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;oBAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC9D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;wBACrD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACvB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QAC1D,yEAAyE;QACzE,yEAAyE;QACzE,wEAAwE;QACxE,wEAAwE;QACxE,uEAAuE;QACvE,uEAAuE;QACvE,kBAAkB;QAClB,IAAI,IAAI,CAAC,MAAM,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/C,MAAM,GAAG,sBAAsB,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC7B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,CAAC,OAAO;gBAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;;gBACzC,KAAK,MAAM,CAAC,IAAI,IAAI;oBAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;wBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,KAAoB;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACrD,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,MAAM,IAAI,GAAG,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,KAAK,MAAM,MAAM,IAAI,QAAQ;YAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC;IAED;2EACuE;IACvE,IAAI,QAAQ;QACV,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC1C,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;oBAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACzE,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,IAAI,CAAC,IAAY,EAAE,MAAc,EAAE,MAAe;QAChD,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAChC,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;QACxD,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QACtC,IAAI,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,GAAG,IAAI,CAAC;YACZ,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC/D,MAAM,IAAI,GAAG,QAAQ;YACnB,oEAAoE;YACpE,IAAI,CAAC,OAAO;iBACT,GAAG,CAAC,KAAK,CAAC;gBACX,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,EAAE,EACtE,MAAM,EACN,MAAM,CACP,CAAC;YACF,MAAM,KAAK,GAAG,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpE,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACxB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;OAOG;IACH,OAAO,CAAC,IAAY;QAClB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,KAAK,CAAC;QAC1D,IAAI,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9D,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC7C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBAChC,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,SAAS;gBACrC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACvB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACzC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBAClC,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC;wBAAE,SAAS;oBAClC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,GAAG,CAAC;wBAAE,KAAK,GAAG,IAAI,CAAC;gBACtE,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,KAAK;YAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO;QACL,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED;mBACe;IACP,OAAO;QACb,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,KAAY,EAAE,MAAc,EAAE,MAAe;QACzD,SAAS,CAAC;YACR,MAAM,IAAI,GAAG,QAAQ,CACnB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,EAC/C,MAAM,EACN,MAAM,CACP,CAAC;YACF,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM;gBAAE,OAAO,KAAK,CAAC;YACjD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,OAAO,KAAK,QAAQ;gBAAE,OAAO,OAAO,KAAK,OAAO,CAAC;QACvD,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,QAAQ,CAAC,IAAY,EAAE,MAAe;QAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAChD,MAAM,IAAI,GACR,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;YAC3D,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;YACnB,CAAC,CAAC,CAAC,CAAC;QACR,IAAI,IAAI,KAAK,CAAC;YAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACnC,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;oBACnC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC;oBAC7D,CAAC,IAAI,CAAC,CAAC;oBACP,SAAS;gBACX,CAAC;YACH,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7C,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC7C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBAClC,IAAI,CAAC,KAAK,CAAC,MAAM;wBAAE,SAAS;oBAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;oBACd,KAAK,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;wBACpC,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;oBAC9C,CAAC;oBACD,+DAA+D;oBAC/D,2DAA2D;oBAC3D,4CAA4C;oBAC5C,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC;wBAAE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;oBAC3D,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACzB,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;IAClD,CAAC;IAED;gBACY;IACJ,WAAW;QACjB,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC7C,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1C,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC;oBAC9C,GAAG,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC;YAC5B,CAAC;YACD,GAAG,IAAI,GAAG,CAAC;QACb,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;6EACyE;IACjE,KAAK,CAAC,IAAU;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;YACtB,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACvB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;YACnD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,MAA8B,CAAC;QACnC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAClB,GAAG,EACH,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CACtD,CAAC;QACF,MAAM,MAAM,GAAG,CAAC,EAAW,EAAQ,EAAE;YACnC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,EAAE;gBAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChC,MAAM,CAAC,EAAE,CAAC,CAAC;QACb,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CACtC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CACnE,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB;gEACwD;QACxD,MAAM,IAAI,GAAG,GAAiC,EAAE;YAC9C,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC1B,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC5B,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;oBACtB,sDAAsD;oBACtD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU;wBAC5B,CAAC,CAAC,IAAI;wBACN,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC9C,IAAI,MAAM,KAAK,IAAI;wBAAE,SAAS;oBAC9B,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;oBACjC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACb,IAAI,IAAI;wBAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;;wBAC5B,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBAC/B,OAAO,OAAO,CAAC;gBACjB,CAAC;gBACD,IAAI,MAAuB,CAAC;gBAC5B,IAAI,CAAC;oBACH,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;wBACjB,GAAG,EAAE,MAAM,CAAC,GAAG;wBACf,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,IAAI,CAAC,OAAO;qBACtB,CAAC,CAAC;gBACL,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS;gBACX,CAAC;gBACD,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;oBACtB,MAAM;yBACH,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;yBAC1D,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;oBACnC,OAAO,SAAS,CAAC;gBACnB,CAAC;gBACD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC5D,IAAI,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC1B,kDAAkD;oBAClD,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC3C,OAAO,SAAS,CAAC;gBACnB,CAAC;gBACD,IAAI,UAAU,EAAE,CAAC;oBACf,MAAM,CAAC,IAAI,CAAC,CAAC;oBACb,IAAI,IAAI;wBAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;;wBAC5B,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBAC/B,OAAO,OAAO,CAAC;gBACjB,CAAC;YACH,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,CAAC,UAAmB,EAAQ,EAAE;YAC1C,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,CAAC;gBACb,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC5B,CAAC;iBAAM,IAAI,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;gBAC7B,MAAM,CAAC,KAAK,CAAC,CAAC;gBACd,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,KAAK,CAAC;QACb,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YACvB,MAAM,CAAC,KAAK,CAAC,CAAC;YACd,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;YACtB,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,OAAO,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACnD,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,SAAS,CACf,IAAU,EACV,MAA6B,EAC7B,GAAW;QAEX,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,MAAM,EAAE,IAAI,KAAK,MAAM;YAAE,OAAO,KAAK,CAAC;QAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAClC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAChE,OAAO,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YAC/C,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI;gBAAE,OAAO,KAAK,CAAC;YAChD,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACrD,OAAO,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;sEAEkE;IAC1D,IAAI,CAAC,IAAU,EAAE,KAAiB;QACxC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAsC,CAAC;QACxD,IAAI,CAAC;YACH,iEAAiE;YACjE,MAAM,MAAM,GAAe,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAChD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACrD,IAAI,OAAO,KAAK,IAAI;gBAAE,OAAO,OAAO,CAAC;YACrC,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE;gBACnB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;gBACvB,iEAAiE;gBACjE,gEAAgE;gBAChE,kEAAkE;gBAClE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrD,KAAK;aACN,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC;YACxC,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAChC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChD,UAAU,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7D,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,yEAAyE;IACjE,SAAS,CAAC,GAAW,EAAE,GAAW;QACxC,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI;YAAE,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACnE,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;4DAEwD;IAChD,QAAQ,CAAC,IAAU,EAAE,EAAW;QACtC,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO;QAC5B,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI;YAAE,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;;YACpD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC1C,IAAI,CAAC,EAAE;YAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnC,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;CACF;AAED;;cAEc;AACd,SAAS,MAAM,CAAC,IAAU,EAAE,QAAkB;IAC5C,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;IACrB,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;IAC9C,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;AAC7C,CAAC;AAQD;mDACmD;AACnD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;AAE9C,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,CAAC,IAAI;QAAE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAChD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;mCAEmC;AACnC,SAAS,MAAM,CAAC,IAAU;IACxB,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACtD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE;QAC1D,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC;QACV,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAQD;;;+CAG+C;AAC/C,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAErC;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,OAAO,CACrB,GAAW,EACX,IAAgB,EAChB,MAAc;IAEd,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC;IAChC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IAC/D,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAC5C,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAC5D,IAAI,GAAG,KAAK,IAAI,CAAC,OAAO;YAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAChD,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAC/C,IAAI,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC;YAC9B,CAAC,CAAC,MAAM,CAAE,KAAe,EAAE,OAAO,IAAI,KAAK,CAAC;YAC5C,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;AACH,CAAC;AAED;;;6EAG6E;AAC7E,SAAS,YAAY,CAAC,GAAW,EAAE,MAAc;IAC/C,IAAI,CAAC;QACH,MAAM,KAAK,GAAI,GAAuD;aACnE,KAAK,CAAC;QACT,MAAM,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,MAAM,CAAkC,CAAC;QACrE,OAAO,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,UAAU,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;wEACwE;AACxE,SAAS,WAAW,CAAC,QAAkB,EAAE,GAAW,EAAE,GAAW;IAC/D,IAAI,QAAQ,CAAC,MAAM;QAAE,OAAO;IAC5B,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,CAAC,GAAG,UAGT,CAAC;IACF,IAAI,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,KAAK,YAAY;QAAE,OAAO;IACtD,CAAC,CAAC,OAAO,EAAE,IAAI,CACb,oDAAoD,GAAG,gBAAgB;QACrE,uEAAuE;QACvE,uEAAuE;QACvE,wDAAwD,GAAG,EAAE,CAChE,CAAC;AACJ,CAAC;AAED,kDAAkD;AAClD,SAAS,OAAO,CAAC,IAAY,EAAE,IAAkB;IAC/C,OAAO,GAAG,IAAI,SAAS,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;AAC/C,CAAC;AAED,SAAS,aAAa,CAAC,IAAkB;IACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACrC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAC3C,CAAC;IACF,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC;AAC/E,CAAC;AAWD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAS,WAAW,CAClB,GAAW,EACX,IAAY,EACZ,IAAkB;IAElB,MAAM,KAAK,GAAI,GAA8B,CAAC,KAAK,CAAC;IACpD,IAAI,OAAO,KAAK,EAAE,KAAK,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IACpD,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;YAC7B,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACvC,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,EAAE,UAAU,CAAC;QAChC,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAChC,OAAO,MAAM,CAAC,WAAW,EAAE,KAAK,IAAI;YAClC,IAAI,CAAC,cAAc,EAAE,WAAW,EAAE,KAAK,IAAI;YAC3C,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAAC,MAAM,CAAC;QACP,wDAAwD;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,MAAiC;IACjD,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACtE,CAAC;AAED,yEAAyE;AACzE,SAAS,aAAa,CAAC,MAAc;IACnC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC;IACnD,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAC5B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CACvD,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CACtB,KAAU,EACV,MAAc,EACd,MAAe;IAEf,IAAI,IAAI,GAAa,IAAI,CAAC;IAC1B,IAAI,SAAS,GAAG,QAAQ,CAAC;IACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GACT,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YACxC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC1D,IAAI,KAAK,GAAG,SAAS,EAAE,CAAC;YACtB,IAAI,GAAG,IAAI,CAAC;YACZ,SAAS,GAAG,KAAK,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,cAAc,CAAC,IAAY,EAAE,CAAC,EAAE,EAAE,EAAE,CAAmB;IAC9D,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE;QAAE,OAAO,CAAC,CAAC;IACvC,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;QAC/B,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,IAAI,GAAG;YAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAC7C,IAAI,EAAE,GAAG,IAAI;YAAE,OAAO,IAAI,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;QACzC,OAAO,IAAI,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,IAAI,GAAG,GAAG;QAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAClE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,yDAAyD;AACzD,SAAS,YAAY,CAAC,MAAmB,EAAE,EAAU,EAAE,EAAU;IAC/D,OAAO,UAAU,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,UAAU,CAAC,MAAmB,EAAE,KAAa;IACpD,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IACtB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK;YAAE,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;;YAChC,CAAC,GAAG,GAAG,CAAC;IACf,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,SAAS,CAAI,KAAc;IAClC,OAAO,OAAQ,KAA2B,EAAE,IAAI,KAAK,UAAU,CAAC;AAClE,CAAC"}
|