@dnyantra/dtly 0.2.2 → 0.3.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/README.md +16 -3
- package/dist/cli.js +33 -3
- package/dist/cli.js.map +1 -1
- package/dist/core/anim.js +20 -0
- package/dist/core/anim.js.map +1 -1
- package/dist/core/captions.d.ts +13 -0
- package/dist/core/captions.js +57 -0
- package/dist/core/captions.js.map +1 -0
- package/dist/core/geo.d.ts +13 -0
- package/dist/core/geo.js +41 -0
- package/dist/core/geo.js.map +1 -0
- package/dist/core/model.d.ts +112 -9
- package/dist/core/model.js.map +1 -1
- package/dist/core/path.d.ts +35 -0
- package/dist/core/path.js +324 -0
- package/dist/core/path.js.map +1 -0
- package/dist/core/svg.d.ts +22 -0
- package/dist/core/svg.js +217 -0
- package/dist/core/svg.js.map +1 -0
- package/dist/core/text.d.ts +3 -1
- package/dist/core/text.js +49 -3
- package/dist/core/text.js.map +1 -1
- package/dist/mcp/server.js +28 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/ops/ops.d.ts +7 -0
- package/dist/ops/ops.js +11 -1
- package/dist/ops/ops.js.map +1 -1
- package/dist/presets/app.d.ts +2 -0
- package/dist/presets/app.js +82 -0
- package/dist/presets/app.js.map +1 -0
- package/dist/presets/captions.d.ts +2 -0
- package/dist/presets/captions.js +48 -0
- package/dist/presets/captions.js.map +1 -0
- package/dist/presets/charts.d.ts +2 -0
- package/dist/presets/charts.js +162 -0
- package/dist/presets/charts.js.map +1 -0
- package/dist/presets/index.d.ts +1 -1
- package/dist/presets/index.js +62 -1
- package/dist/presets/index.js.map +1 -1
- package/dist/presets/maps.d.ts +2 -0
- package/dist/presets/maps.js +79 -0
- package/dist/presets/maps.js.map +1 -0
- package/dist/render/fx.d.ts +11 -0
- package/dist/render/fx.js +87 -0
- package/dist/render/fx.js.map +1 -0
- package/dist/render/grade.d.ts +20 -0
- package/dist/render/grade.js +178 -0
- package/dist/render/grade.js.map +1 -0
- package/dist/render/lottie.d.ts +36 -0
- package/dist/render/lottie.js +523 -0
- package/dist/render/lottie.js.map +1 -0
- package/dist/render/node-host.d.ts +1 -0
- package/dist/render/node-host.js +15 -4
- package/dist/render/node-host.js.map +1 -1
- package/dist/render/perspective.d.ts +5 -0
- package/dist/render/perspective.js +71 -0
- package/dist/render/perspective.js.map +1 -0
- package/dist/render/renderer.d.ts +6 -0
- package/dist/render/renderer.js +156 -95
- package/dist/render/renderer.js.map +1 -1
- package/dist/render/shapes.d.ts +6 -0
- package/dist/render/shapes.js +129 -0
- package/dist/render/shapes.js.map +1 -0
- package/dist/render/tiles.d.ts +11 -0
- package/dist/render/tiles.js +42 -0
- package/dist/render/tiles.js.map +1 -0
- package/dist/render/transcribe.d.ts +14 -0
- package/dist/render/transcribe.js +55 -0
- package/dist/render/transcribe.js.map +1 -0
- package/dist/studio/server.js +14 -1
- package/dist/studio/server.js.map +1 -1
- package/dist/studio-app/app.js +5 -4
- package/dist/studio-app/app.js.map +4 -4
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/plugin/skills/moti/SKILL.md +23 -3
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
// Captions preset: short-form style captions with the spoken word highlighted.
|
|
2
|
+
import { cuesToWords, paginate, parseSubtitles } from '../core/captions.js';
|
|
3
|
+
import { addLayer, getComp } from '../ops/ops.js';
|
|
4
|
+
const n = (v, d) => (typeof v === 'number' ? v : d);
|
|
5
|
+
const s = (v, d) => (typeof v === 'string' ? v : d);
|
|
6
|
+
const r3 = (t) => Math.round(t * 1000) / 1000;
|
|
7
|
+
export const CAPTION_PRESETS = {
|
|
8
|
+
'captions.add': {
|
|
9
|
+
kind: 'captions',
|
|
10
|
+
description: 'Captions with the current word highlighted (Reels/Shorts style), from word timings, cues or SRT/VTT text. Pages of a few words appear in sync; every page is an editable text layer.',
|
|
11
|
+
params: '{words?: [{text, start, end}], cues?: [{start, end, text}], srt?: string (SRT or VTT text), offset?: s, maxWords?: 4, maxChars?: 22, position?: [x,y] (default lower third), size?, color?, highlight?: colour, mode?: "current"|"spoken", box?: highlight plate colour, plate?: colour behind the whole line, uppercase?: boolean, style?: "pop"|"fade"|"none", font?, name?}',
|
|
12
|
+
apply: (p, compId, o) => {
|
|
13
|
+
const comp = getComp(p, compId);
|
|
14
|
+
let words = o.words ?? [];
|
|
15
|
+
if (!words.length) {
|
|
16
|
+
const cues = o.cues ?? (typeof o.srt === 'string' ? parseSubtitles(o.srt) : []);
|
|
17
|
+
words = cuesToWords(cues);
|
|
18
|
+
}
|
|
19
|
+
if (!words.length)
|
|
20
|
+
throw new Error('No captions: pass words, cues or srt');
|
|
21
|
+
const off = n(o.offset, 0);
|
|
22
|
+
const pages = paginate(words.map((w) => ({ ...w, start: w.start + off, end: w.end + off })), n(o.maxWords, 4), n(o.maxChars, 22));
|
|
23
|
+
const pos = o.position ?? [comp.width / 2, comp.height * 0.72];
|
|
24
|
+
const size = n(o.size, Math.round(comp.width / 13));
|
|
25
|
+
const style = s(o.style, 'pop');
|
|
26
|
+
const created = [];
|
|
27
|
+
pages.forEach((page, i) => {
|
|
28
|
+
const start = page[0].start, next = pages[i + 1]?.[0].start;
|
|
29
|
+
const end = Math.min(next ?? Infinity, page[page.length - 1].end + 0.35);
|
|
30
|
+
const text = page.map((w) => (o.uppercase ? w.text.toUpperCase() : w.text)).join(' ');
|
|
31
|
+
const layer = addLayer(p, comp.id, {
|
|
32
|
+
type: 'text', name: `${s(o.name, 'caption')}-${i + 1}`, text, size, weight: 800, color: s(o.color, '#ffffff'), font: o.font,
|
|
33
|
+
inPoint: r3(start), outPoint: r3(Math.max(end, start + 0.3)), maxWidth: comp.width * 0.86,
|
|
34
|
+
transform: { position: pos },
|
|
35
|
+
stroke: { color: '#000000', width: Math.max(4, Math.round(size * 0.1)) },
|
|
36
|
+
...(o.plate ? { box: { color: s(o.plate, '#000000aa'), padding: [Math.round(size * 0.35), Math.round(size * 0.18)], radius: Math.round(size * 0.25) } } : {}),
|
|
37
|
+
karaoke: { words: page.map((w) => [r3(w.start), r3(w.end)]), color: s(o.highlight, '#FFC93C'), mode: o.mode === 'spoken' ? 'spoken' : 'current', ...(o.box ? { box: s(o.box, '#E8692A') } : {}) },
|
|
38
|
+
animators: style === 'none' ? [] : style === 'fade'
|
|
39
|
+
? [{ unit: 'line', duration: 0.18, ease: 'easeOut', from: { opacity: 0 } }]
|
|
40
|
+
: [{ unit: 'word', stagger: 0.04, duration: 0.22, ease: 'backOut', from: { opacity: 0, scale: 70 } }],
|
|
41
|
+
}, 0);
|
|
42
|
+
created.push(layer.id);
|
|
43
|
+
});
|
|
44
|
+
return { created, note: `${pages.length} caption pages from ${words.length} words` };
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=captions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"captions.js","sourceRoot":"","sources":["../../src/presets/captions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { addLayer, getComp } from '../ops/ops.js';
|
|
2
|
+
const PALETTE = ['#E8692A', '#FFC93C', '#4DA3FF', '#5FB3A0', '#C78BC0', '#E5534B', '#9BD35A', '#F28FB0'];
|
|
3
|
+
const r3 = (t) => Math.round(t * 1000) / 1000;
|
|
4
|
+
const kf = (...k) => ({ keyframes: k.map(([t, v, ease]) => (ease ? { t: r3(t), v, ease } : { t: r3(t), v })) });
|
|
5
|
+
const n = (v, d) => (typeof v === 'number' ? v : d);
|
|
6
|
+
const s = (v, d) => (typeof v === 'string' ? v : d);
|
|
7
|
+
const fmtOf = (o) => ({ prefix: o.prefix, suffix: o.suffix, decimals: o.decimals, locale: o.locale });
|
|
8
|
+
// Adds layers in stacking order (first = top) and returns their ids.
|
|
9
|
+
const build = (p, compId, group, parts) => {
|
|
10
|
+
const g = addLayer(p, compId, group, 0);
|
|
11
|
+
const ids = [g.id];
|
|
12
|
+
[...parts].reverse().forEach((l) => ids.push(addLayer(p, compId, { ...l, parent: g.id }, 1).id));
|
|
13
|
+
return ids;
|
|
14
|
+
};
|
|
15
|
+
const data = (o) => (o.data ?? []).map((d) => (typeof d === 'number' ? { value: d } : d));
|
|
16
|
+
export const CHART_PRESETS = {
|
|
17
|
+
'chart.bar': {
|
|
18
|
+
kind: 'chart',
|
|
19
|
+
description: 'Bar chart: bars grow from the baseline one after another while their values count up; labels underneath.',
|
|
20
|
+
params: '{data: [{label, value, color?}], position?: [x,y] (centre), size?: [w,h], start?: s, duration?: s, stagger?: s, color?, colors?: string[], max?, prefix?, suffix?, decimals?, locale? (en-IN), textColor?, showValues?: true, name?}',
|
|
21
|
+
apply: (p, compId, o) => {
|
|
22
|
+
const comp = getComp(p, compId);
|
|
23
|
+
const d = data(o), t0 = n(o.start, 0), dur = n(o.duration, 0.9), stg = n(o.stagger, 0.12);
|
|
24
|
+
const [W, H] = o.size ?? [comp.width * 0.8, comp.height * 0.3];
|
|
25
|
+
const max = n(o.max, Math.max(...d.map((x) => x.value), 1));
|
|
26
|
+
const gap = W / Math.max(1, d.length), barW = gap * 0.62, base = H / 2;
|
|
27
|
+
const fs = Math.round(Math.min(gap * 0.32, comp.width / 22));
|
|
28
|
+
const text = s(o.textColor, '#ffffff');
|
|
29
|
+
const parts = [{ type: 'shape', name: 'axis', shape: 'line', points: [[-W / 2, base], [W / 2, base]], stroke: text, strokeWidth: 3, transform: { anchor: [0, 0], position: [0, 0], opacity: 60 }, inPoint: t0, trim: { end: kf([t0, 0, 'expoOut'], [t0 + 0.6, 100]) } }];
|
|
30
|
+
d.forEach((x, i) => {
|
|
31
|
+
const h = (x.value / max) * H, cx = -W / 2 + gap * (i + 0.5), ts = t0 + 0.2 + i * stg;
|
|
32
|
+
const color = x.color ?? o.colors?.[i] ?? s(o.color, PALETTE[i % PALETTE.length]);
|
|
33
|
+
parts.push({ type: 'shape', name: `bar-${i + 1}`, shape: 'rect', size: [barW, h], radius: Math.min(12, barW / 6), fill: color, inPoint: t0,
|
|
34
|
+
transform: { anchor: [0, h / 2], position: [cx, base], scale: kf([ts, [100, 0], 'expoOut'], [ts + dur, [100, 100]]) } });
|
|
35
|
+
if (o.showValues !== false)
|
|
36
|
+
parts.push({ type: 'text', name: `value-${i + 1}`, text: '{value}', value: kf([ts, 0, 'expoOut'], [ts + dur, x.value]), format: fmtOf(o), size: fs, weight: 800, color: text, inPoint: t0,
|
|
37
|
+
transform: { position: [cx, base - h - fs * 0.8], opacity: kf([ts, 0], [ts + 0.25, 100]) } });
|
|
38
|
+
if (x.label)
|
|
39
|
+
parts.push({ type: 'text', name: `label-${i + 1}`, text: x.label, size: Math.round(fs * 0.8), weight: 600, color: text, inPoint: t0, maxWidth: gap * 0.95,
|
|
40
|
+
transform: { position: [cx, base + fs * 0.95] }, animators: [{ unit: 'line', delay: ts - t0, duration: 0.5, ease: 'cubicOut', from: { opacity: 0, y: 20 } }] });
|
|
41
|
+
});
|
|
42
|
+
return { created: build(p, compId, { type: 'null', name: s(o.name, 'bar-chart'), inPoint: t0, transform: { position: o.position ?? [comp.width / 2, comp.height / 2] } }, parts) };
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
'chart.line': {
|
|
46
|
+
kind: 'chart',
|
|
47
|
+
description: 'Line chart: a smooth line draws on across the points, dots pop in as it passes them, an area fill fades in underneath.',
|
|
48
|
+
params: '{data: [{label?, value}] or numbers, position?, size?: [w,h], start?, duration?, color?, area?: true, showValues?: false, prefix?, suffix?, decimals?, locale?, textColor?, name?}',
|
|
49
|
+
apply: (p, compId, o) => {
|
|
50
|
+
const comp = getComp(p, compId);
|
|
51
|
+
const d = data(o), t0 = n(o.start, 0), dur = n(o.duration, 1.6), color = s(o.color, PALETTE[0]), text = s(o.textColor, '#ffffff');
|
|
52
|
+
const [W, H] = o.size ?? [comp.width * 0.8, comp.height * 0.28];
|
|
53
|
+
const max = n(o.max, Math.max(...d.map((x) => x.value), 1)), min = n(o.min, Math.min(0, ...d.map((x) => x.value)));
|
|
54
|
+
const pts = d.map((x, i) => [-W / 2 + (W * i) / Math.max(1, d.length - 1), H / 2 - ((x.value - min) / (max - min || 1)) * H]);
|
|
55
|
+
// Catmull-Rom → cubic bezier for a smooth line through every point.
|
|
56
|
+
let path = `M${pts[0][0]} ${pts[0][1]}`;
|
|
57
|
+
for (let i = 0; i < pts.length - 1; i++) {
|
|
58
|
+
const p0 = pts[i - 1] ?? pts[i], p1 = pts[i], p2 = pts[i + 1], p3 = pts[i + 2] ?? p2;
|
|
59
|
+
path += ` C${p1[0] + (p2[0] - p0[0]) / 6} ${p1[1] + (p2[1] - p0[1]) / 6} ${p2[0] - (p3[0] - p1[0]) / 6} ${p2[1] - (p3[1] - p1[1]) / 6} ${p2[0]} ${p2[1]}`;
|
|
60
|
+
}
|
|
61
|
+
const fs = Math.round(comp.width / 30);
|
|
62
|
+
const parts = [];
|
|
63
|
+
pts.forEach((pt, i) => {
|
|
64
|
+
const ts = t0 + (dur * i) / Math.max(1, pts.length - 1);
|
|
65
|
+
parts.push({ type: 'shape', name: `dot-${i + 1}`, shape: 'ellipse', size: [22, 22], fill: '#ffffff', stroke: color, strokeWidth: 6, inPoint: t0,
|
|
66
|
+
transform: { position: pt, scale: kf([ts - 0.05, [0, 0], 'backOut'], [ts + 0.35, [100, 100]]) } });
|
|
67
|
+
if (o.showValues)
|
|
68
|
+
parts.push({ type: 'text', name: `value-${i + 1}`, text: '{value}', value: d[i].value, format: fmtOf(o), size: fs, weight: 800, color: text, inPoint: r3(ts),
|
|
69
|
+
transform: { position: [pt[0], pt[1] - fs * 1.1] }, animators: [{ unit: 'line', duration: 0.4, ease: 'backOut', from: { opacity: 0, scale: 50 } }] });
|
|
70
|
+
if (d[i].label)
|
|
71
|
+
parts.push({ type: 'text', name: `label-${i + 1}`, text: d[i].label, size: Math.round(fs * 0.8), weight: 600, color: text, inPoint: t0,
|
|
72
|
+
transform: { position: [pt[0], H / 2 + fs * 1.2], opacity: kf([ts - 0.1, 0], [ts + 0.2, 70]) } });
|
|
73
|
+
});
|
|
74
|
+
parts.push({ type: 'shape', name: 'line', shape: 'path', path, stroke: color, strokeWidth: 8, transform: { anchor: [0, 0], position: [0, 0] }, inPoint: t0,
|
|
75
|
+
trim: { end: kf([t0, 0, 'easyEase'], [t0 + dur, 100]) } });
|
|
76
|
+
if (o.area !== false)
|
|
77
|
+
parts.push({ type: 'shape', name: 'area', shape: 'path', path: `${path} L${pts[pts.length - 1][0]} ${H / 2} L${pts[0][0]} ${H / 2} Z`, inPoint: t0,
|
|
78
|
+
fill: { linear: { from: [0, -H / 2], to: [0, H / 2], stops: [[0, `${color}88`], [1, `${color}00`]] } }, transform: { anchor: [0, 0], position: [0, 0] },
|
|
79
|
+
// Revealed left to right in step with the line drawing on.
|
|
80
|
+
masks: [{ shape: 'rect', rect: kf([t0, [-W / 2 - 10, -H, 0, H * 2], 'easyEase'], [t0 + dur, [-W / 2 - 10, -H, W + 20, H * 2]]) }] });
|
|
81
|
+
parts.push({ type: 'shape', name: 'axis', shape: 'line', points: [[-W / 2, H / 2], [W / 2, H / 2]], stroke: text, strokeWidth: 3, inPoint: t0, transform: { anchor: [0, 0], position: [0, 0], opacity: 50 }, trim: { end: kf([t0, 0, 'expoOut'], [t0 + 0.6, 100]) } });
|
|
82
|
+
return { created: build(p, compId, { type: 'null', name: s(o.name, 'line-chart'), inPoint: t0, transform: { position: o.position ?? [comp.width / 2, comp.height / 2] } }, parts) };
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
'chart.donut': {
|
|
86
|
+
kind: 'chart',
|
|
87
|
+
description: 'Donut / pie chart: segments sweep round one after another; the centre shows the total (or a title) and a legend lists each part.',
|
|
88
|
+
params: '{data: [{label, value, color?}], position?, diameter?, thickness? (diameter/2 = pie), start?, duration?, stagger?, centerText?: string | "total", prefix?, suffix?, decimals?, locale?, legend?: true, textColor?, name?}',
|
|
89
|
+
apply: (p, compId, o) => {
|
|
90
|
+
const comp = getComp(p, compId);
|
|
91
|
+
const d = data(o), t0 = n(o.start, 0), dur = n(o.duration, 0.8), stg = n(o.stagger, 0.25), text = s(o.textColor, '#ffffff');
|
|
92
|
+
const D = n(o.diameter, comp.width * 0.55), th = Math.min(n(o.thickness, D * 0.18), D / 2);
|
|
93
|
+
const total = d.reduce((a, x) => a + x.value, 0) || 1;
|
|
94
|
+
const parts = [];
|
|
95
|
+
let acc = 0;
|
|
96
|
+
d.forEach((x, i) => {
|
|
97
|
+
const a0 = (acc / total) * 100, a1 = ((acc + x.value) / total) * 100, ts = t0 + i * stg;
|
|
98
|
+
acc += x.value;
|
|
99
|
+
parts.push({ type: 'shape', name: `segment-${i + 1}`, shape: 'ellipse', size: [D - th, D - th], stroke: x.color ?? PALETTE[i % PALETTE.length], strokeWidth: th, lineCap: 'butt', inPoint: t0,
|
|
100
|
+
trim: { start: a0, end: kf([ts, a0, 'cubicOut'], [ts + dur, a1]) }, transform: { position: [0, 0] } });
|
|
101
|
+
});
|
|
102
|
+
const centre = o.centerText ?? 'total';
|
|
103
|
+
if (centre && th < D / 2)
|
|
104
|
+
parts.unshift(centre === 'total'
|
|
105
|
+
? { type: 'text', name: 'total', text: '{value}', value: kf([t0, 0, 'expoOut'], [t0 + stg * d.length + dur, total]), format: fmtOf(o), size: Math.round(D * 0.16), weight: 800, color: text, inPoint: t0, transform: { position: [0, 0] } }
|
|
106
|
+
: { type: 'text', name: 'center', text: String(centre), size: Math.round(D * 0.12), weight: 800, color: text, inPoint: t0, maxWidth: D - th * 2.2, transform: { position: [0, 0] }, animators: [{ unit: 'word', stagger: 0.08, duration: 0.5, ease: 'backOut', from: { opacity: 0, scale: 60 } }] });
|
|
107
|
+
if (o.legend !== false) {
|
|
108
|
+
const fs = Math.round(comp.width / 30), rowH = fs * 1.6;
|
|
109
|
+
d.forEach((x, i) => {
|
|
110
|
+
const y = D / 2 + fs * 2 + i * rowH, ts = t0 + i * stg;
|
|
111
|
+
parts.push({ type: 'shape', name: `legend-dot-${i + 1}`, shape: 'ellipse', size: [fs * 0.7, fs * 0.7], fill: x.color ?? PALETTE[i % PALETTE.length], inPoint: t0, transform: { position: [-D * 0.42, y], opacity: kf([ts, 0], [ts + 0.3, 100]) } });
|
|
112
|
+
parts.push({ type: 'text', name: `legend-${i + 1}`, text: `${x.label ?? `Part ${i + 1}`} · ${Math.round((x.value / total) * 100)}%`, size: fs, weight: 600, align: 'left', color: text, inPoint: t0,
|
|
113
|
+
transform: { position: [-D * 0.42 + fs, y] }, animators: [{ unit: 'line', delay: ts - t0, duration: 0.5, ease: 'cubicOut', from: { opacity: 0, x: -30 } }] });
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
return { created: build(p, compId, { type: 'null', name: s(o.name, 'donut-chart'), inPoint: t0, transform: { position: o.position ?? [comp.width / 2, comp.height * 0.42] } }, parts) };
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
'chart.progress': {
|
|
120
|
+
kind: 'chart',
|
|
121
|
+
description: 'Progress ring (or bar) that fills to a percentage while the number counts up in the middle.',
|
|
122
|
+
params: '{value: 0-100, style?: "ring"|"bar", label?, position?, diameter? (ring) | size?: [w,h] (bar), thickness?, start?, duration?, color?, trackColor?, textColor?, name?}',
|
|
123
|
+
apply: (p, compId, o) => {
|
|
124
|
+
const comp = getComp(p, compId);
|
|
125
|
+
const v = n(o.value, 75), t0 = n(o.start, 0), dur = n(o.duration, 1.4), color = s(o.color, PALETTE[0]), track = s(o.trackColor, '#ffffff22'), text = s(o.textColor, '#ffffff');
|
|
126
|
+
const parts = [];
|
|
127
|
+
if (o.style === 'bar') {
|
|
128
|
+
const [W, H] = o.size ?? [comp.width * 0.75, 36];
|
|
129
|
+
parts.push({ type: 'text', name: 'percent', text: '{value}', value: kf([t0, 0, 'expoOut'], [t0 + dur, v]), format: { suffix: '%' }, size: Math.round(H * 1.6), weight: 800, align: 'right', color: text, inPoint: t0, transform: { position: [W / 2, -H * 1.6] } });
|
|
130
|
+
if (o.label)
|
|
131
|
+
parts.push({ type: 'text', name: 'label', text: String(o.label), size: Math.round(H * 1.1), weight: 600, align: 'left', color: text, inPoint: t0, transform: { position: [-W / 2, -H * 1.6] } });
|
|
132
|
+
parts.push({ type: 'shape', name: 'fill', shape: 'rect', size: [W, H], radius: H / 2, fill: color, inPoint: t0, transform: { anchor: [-W / 2, 0], position: [-W / 2, 0], scale: kf([t0, [0, 100], 'expoOut'], [t0 + dur, [v, 100]]) } });
|
|
133
|
+
parts.push({ type: 'shape', name: 'track', shape: 'rect', size: [W, H], radius: H / 2, fill: track, inPoint: t0, transform: { position: [0, 0] } });
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
const D = n(o.diameter, comp.width * 0.5), th = n(o.thickness, D * 0.09);
|
|
137
|
+
parts.push({ type: 'text', name: 'percent', text: '{value}', value: kf([t0, 0, 'expoOut'], [t0 + dur, v]), format: { suffix: '%' }, size: Math.round(D * 0.24), weight: 800, color: text, inPoint: t0, transform: { position: [0, o.label ? -D * 0.05 : 0] } });
|
|
138
|
+
if (o.label)
|
|
139
|
+
parts.push({ type: 'text', name: 'label', text: String(o.label), size: Math.round(D * 0.08), weight: 600, color: text, inPoint: t0, maxWidth: D * 0.7, transform: { position: [0, D * 0.15] } });
|
|
140
|
+
parts.push({ type: 'shape', name: 'ring', shape: 'ellipse', size: [D, D], stroke: color, strokeWidth: th, inPoint: t0, trim: { end: kf([t0, 0, 'expoOut'], [t0 + dur, v]) }, transform: { position: [0, 0] } });
|
|
141
|
+
parts.push({ type: 'shape', name: 'track', shape: 'ellipse', size: [D, D], stroke: track, strokeWidth: th, inPoint: t0, transform: { position: [0, 0] } });
|
|
142
|
+
}
|
|
143
|
+
return { created: build(p, compId, { type: 'null', name: s(o.name, 'progress'), inPoint: t0, transform: { position: o.position ?? [comp.width / 2, comp.height / 2] } }, parts) };
|
|
144
|
+
},
|
|
145
|
+
},
|
|
146
|
+
'element.counter': {
|
|
147
|
+
kind: 'element',
|
|
148
|
+
description: 'A big number that counts up (₹4,999 · 10,000+ customers · 98%), with an optional caption under it.',
|
|
149
|
+
params: '{to: number, from?: 0, start?, duration?, prefix?, suffix?, decimals?, locale? (en-IN groups as 1,00,000), label?, size?, color?, labelColor?, position?, name?}',
|
|
150
|
+
apply: (p, compId, o) => {
|
|
151
|
+
const comp = getComp(p, compId);
|
|
152
|
+
const t0 = n(o.start, 0), dur = n(o.duration, 1.5), size = n(o.size, Math.round(comp.width / 6));
|
|
153
|
+
const parts = [{ type: 'text', name: 'number', text: '{value}', value: kf([t0, n(o.from, 0), 'expoOut'], [t0 + dur, n(o.to, 100)]), format: fmtOf(o), size, weight: 800, color: s(o.color, '#ffffff'), inPoint: t0,
|
|
154
|
+
transform: { position: [0, 0], scale: kf([t0, [70, 70], 'backOut'], [t0 + 0.5, [100, 100]]) }, animators: [{ unit: 'line', duration: 0.3, from: { opacity: 0 } }] }];
|
|
155
|
+
if (o.label)
|
|
156
|
+
parts.push({ type: 'text', name: 'caption', text: String(o.label), size: Math.round(size * 0.32), weight: 600, color: s(o.labelColor, '#ffffffcc'), inPoint: t0, maxWidth: comp.width * 0.8,
|
|
157
|
+
transform: { position: [0, size * 0.85] }, animators: [{ unit: 'word', delay: 0.3, stagger: 0.06, duration: 0.5, ease: 'cubicOut', from: { opacity: 0, y: 24 } }] });
|
|
158
|
+
return { created: build(p, compId, { type: 'null', name: s(o.name, 'counter'), inPoint: t0, transform: { position: o.position ?? [comp.width / 2, comp.height / 2] } }, parts) };
|
|
159
|
+
},
|
|
160
|
+
},
|
|
161
|
+
};
|
|
162
|
+
//# sourceMappingURL=charts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"charts.js","sourceRoot":"","sources":["../../src/presets/charts.ts"],"names":[],"mappings":"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"}
|
package/dist/presets/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Project } from '../core/model.js';
|
|
2
2
|
type Params = Record<string, unknown>;
|
|
3
3
|
export interface Preset {
|
|
4
|
-
kind: 'text' | 'kinetic' | 'opener' | 'slides' | 'transition' | 'element';
|
|
4
|
+
kind: 'text' | 'kinetic' | 'opener' | 'slides' | 'transition' | 'element' | 'chart' | 'overlay' | 'map' | 'captions';
|
|
5
5
|
description: string;
|
|
6
6
|
params: string;
|
|
7
7
|
apply: (p: Project, comp: string | undefined, params: Params) => {
|
package/dist/presets/index.js
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { addLayer, findLayer, getComp, OpError, setKeyframe, updateLayer } from '../ops/ops.js';
|
|
2
2
|
import { TEXT_ANIMATORS } from './text.js';
|
|
3
|
+
import { CHART_PRESETS } from './charts.js';
|
|
4
|
+
import { APP_PRESETS } from './app.js';
|
|
5
|
+
import { CAPTION_PRESETS } from './captions.js';
|
|
6
|
+
import { MAP_PRESETS } from './maps.js';
|
|
3
7
|
const num = (v, d) => (typeof v === 'number' ? v : d);
|
|
4
8
|
const str = (v, d) => (typeof v === 'string' ? v : d);
|
|
5
9
|
const r3 = (t) => Math.round(t * 1000) / 1000;
|
|
@@ -149,7 +153,7 @@ PRESETS['slides.slideshow'] = {
|
|
|
149
153
|
PRESETS['transition.between'] = {
|
|
150
154
|
kind: 'transition',
|
|
151
155
|
description: 'Animates two overlapping layers (clips, images or precomps) so one hands over to the other at the overlap.',
|
|
152
|
-
params: '{from: layerId (outgoing), to: layerId (incoming, must start before `from` ends), type: "push"|"crossfade"|"zoom"|"wipe"|"whip"|"slideUp", duration?: s}',
|
|
156
|
+
params: '{from: layerId (outgoing), to: layerId (incoming, must start before `from` ends), type: "push"|"crossfade"|"zoom"|"wipe"|"whip"|"slideUp"|"glitch"|"rgbWhip"|"warp"|"flash", duration?: s}',
|
|
153
157
|
apply: (p, compId, o) => {
|
|
154
158
|
const a = findLayer(p, str(o.from, '')), b = findLayer(p, str(o.to, ''));
|
|
155
159
|
const comp = a.comp;
|
|
@@ -189,6 +193,36 @@ PRESETS['transition.between'] = {
|
|
|
189
193
|
for (const id of [a.layer.id, b.layer.id])
|
|
190
194
|
updateLayer(p, id, { motionBlur: { samples: 12, shutter: 360 } });
|
|
191
195
|
break;
|
|
196
|
+
case 'glitch': {
|
|
197
|
+
// Hard cut in the middle of a burst of digital glitching.
|
|
198
|
+
const mid = r3(t1 + d / 2);
|
|
199
|
+
addFx(p, a.layer.id, { type: 'glitch', amount: kf([t1, 0], [mid, 100]) });
|
|
200
|
+
addFx(p, b.layer.id, { type: 'glitch', amount: kf([mid, 100], [t2, 0]) });
|
|
201
|
+
setKeyframe(p, b.layer.id, 'transform.opacity', t1, 0, 'hold');
|
|
202
|
+
setKeyframe(p, b.layer.id, 'transform.opacity', mid, 100);
|
|
203
|
+
break;
|
|
204
|
+
}
|
|
205
|
+
case 'rgbWhip':
|
|
206
|
+
pos(a.layer.id, [t1, center, 'expoIn'], [t2, [-W / 2, H / 2]]);
|
|
207
|
+
pos(b.layer.id, [t1, [W * 1.5, H / 2], 'expoOut'], [t2, center]);
|
|
208
|
+
for (const id of [a.layer.id, b.layer.id]) {
|
|
209
|
+
updateLayer(p, id, { motionBlur: { samples: 10, shutter: 270 } });
|
|
210
|
+
addFx(p, id, { type: 'rgbSplit', amount: kf([t1, 0, 'easeIn'], [r3(t1 + d / 2), 40, 'easeOut'], [t2, 0]) });
|
|
211
|
+
}
|
|
212
|
+
break;
|
|
213
|
+
case 'warp': {
|
|
214
|
+
const mid = r3(t1 + d / 2);
|
|
215
|
+
addFx(p, a.layer.id, { type: 'wave', amplitude: kf([t1, 0, 'easeIn'], [t2, 80]), wavelength: 260, speed: 2 });
|
|
216
|
+
addFx(p, b.layer.id, { type: 'wave', amplitude: kf([t1, 80, 'easeOut'], [t2, 0]), wavelength: 260, speed: 2 });
|
|
217
|
+
setKeyframe(p, b.layer.id, 'transform.opacity', t1, 0, 'easyEase');
|
|
218
|
+
setKeyframe(p, b.layer.id, 'transform.opacity', mid, 100);
|
|
219
|
+
break;
|
|
220
|
+
}
|
|
221
|
+
case 'flash':
|
|
222
|
+
setKeyframe(p, b.layer.id, 'transform.opacity', t1, 0, 'hold');
|
|
223
|
+
setKeyframe(p, b.layer.id, 'transform.opacity', r3(t1 + d / 2), 100);
|
|
224
|
+
PRESETS['overlay.lightLeak'].apply(p, comp.id, { start: t1 - d * 0.2, duration: d * 1.6, intensity: 100 });
|
|
225
|
+
break;
|
|
192
226
|
default: // push
|
|
193
227
|
pos(a.layer.id, [t1, center, 'expoInOut'], [t2, [-W / 2, H / 2]]);
|
|
194
228
|
pos(b.layer.id, [t1, [W * 1.5, H / 2], 'expoInOut'], [t2, center]);
|
|
@@ -196,6 +230,32 @@ PRESETS['transition.between'] = {
|
|
|
196
230
|
return { created: [], note: `${type} from ${a.layer.id} to ${b.layer.id} at ${t1}s–${t2}s` };
|
|
197
231
|
},
|
|
198
232
|
};
|
|
233
|
+
const addFx = (p, id, e) => {
|
|
234
|
+
const { layer } = findLayer(p, id);
|
|
235
|
+
layer.effects = [...(layer.effects ?? []), e];
|
|
236
|
+
};
|
|
237
|
+
PRESETS['overlay.lightLeak'] = {
|
|
238
|
+
kind: 'overlay',
|
|
239
|
+
description: 'Warm film light leak: soft glowing colour blobs drift across the frame (screen blend) — on cuts, openers or to add warmth.',
|
|
240
|
+
params: '{start?: s, duration?: s (default 1.2), colors?: string[], intensity?: 0-100 (default 80), direction?: "left"|"right"}',
|
|
241
|
+
apply: (p, compId, o) => {
|
|
242
|
+
const comp = getComp(p, compId);
|
|
243
|
+
const t0 = Math.max(0, num(o.start, 0)), d = num(o.duration, 1.2), peak = num(o.intensity, 80);
|
|
244
|
+
const colors = o.colors ?? ['#ff8a3d', '#ffd166', '#ff4f6d'];
|
|
245
|
+
const dir = o.direction === 'left' ? -1 : 1, W = comp.width, H = comp.height;
|
|
246
|
+
const created = [];
|
|
247
|
+
colors.forEach((c, i) => {
|
|
248
|
+
const r = Math.max(W, H) * (0.55 + i * 0.12);
|
|
249
|
+
const y = H * (0.25 + 0.3 * i);
|
|
250
|
+
created.push(addLayer(p, comp.id, { type: 'shape', name: `light-leak-${i + 1}`, shape: 'ellipse', size: [r * 2, r * 2], blendMode: 'screen',
|
|
251
|
+
fill: { radial: { center: [0, 0], radius: r, stops: [[0, `${c}ee`], [0.45, `${c}66`], [1, `${c}00`]] } },
|
|
252
|
+
inPoint: r3(t0), outPoint: r3(t0 + d),
|
|
253
|
+
transform: { position: kf([t0, [W / 2 - dir * W * (0.8 + i * 0.2), y], 'easyEase'], [t0 + d, [W / 2 + dir * W * (0.6 + i * 0.15), y + H * 0.1]]),
|
|
254
|
+
opacity: kf([t0, 0, 'easeOut'], [t0 + d * 0.4, peak, 'easeIn'], [t0 + d, 0]) } }, 0).id);
|
|
255
|
+
});
|
|
256
|
+
return { created };
|
|
257
|
+
},
|
|
258
|
+
};
|
|
199
259
|
PRESETS['element.lowerThird'] = {
|
|
200
260
|
kind: 'element',
|
|
201
261
|
description: 'Lower third: an accent bar wipes in, then name and title slide out from behind it.',
|
|
@@ -231,5 +291,6 @@ PRESETS['element.highlightWord'] = {
|
|
|
231
291
|
return { created: [] };
|
|
232
292
|
},
|
|
233
293
|
};
|
|
294
|
+
Object.assign(PRESETS, CHART_PRESETS, APP_PRESETS, CAPTION_PRESETS, MAP_PRESETS);
|
|
234
295
|
export const listPresets = () => Object.entries(PRESETS).map(([name, p]) => `${name} [${p.kind}] — ${p.description}\n params: ${p.params}`).join('\n');
|
|
235
296
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/presets/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/presets/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAC,cAAc,EAAC,MAAM,WAAW,CAAC;AACzC,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAC,WAAW,EAAC,MAAM,UAAU,CAAC;AACrC,OAAO,EAAC,eAAe,EAAC,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAC,WAAW,EAAC,MAAM,WAAW,CAAC;AAUtC,MAAM,GAAG,GAAG,CAAC,CAAU,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,MAAM,GAAG,GAAG,CAAC,CAAU,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,MAAM,EAAE,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;AACtD,MAAM,EAAE,GAAG,CAAI,GAAG,CAAuB,EAAE,EAAE,CAAC,CAAC,EAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC;AAEnI,MAAM,CAAC,MAAM,OAAO,GAA2B,EAAE,CAAC;AAElD,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;IACzD,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,GAAG;QACxB,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,MAAM,EAAE,+EAA+E;QACvF,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;YACrB,MAAM,EAAC,KAAK,EAAC,GAAG,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;YAC/C,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;gBAAE,MAAM,IAAI,OAAO,CAAC,GAAG,KAAK,CAAC,EAAE,sBAAsB,CAAC,CAAC;YAChF,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,EAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,EAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,EAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC;YAC1O,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC;YACxL,OAAO,EAAC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,IAAI,OAAO,KAAK,CAAC,EAAE,EAAE,EAAC,CAAC;QAC/D,CAAC;KACF,CAAC;AACJ,CAAC;AAED,OAAO,CAAC,kBAAkB,CAAC,GAAG;IAC5B,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,gJAAgJ;IAC7J,MAAM,EAAE,gTAAgT;IACxT,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;QACtB,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAChC,MAAM,OAAO,GAAI,CAAC,CAAC,OAAoB,IAAI,EAAE,CAAC;QAC9C,MAAM,GAAG,GAAI,CAAC,CAAC,QAAiB,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACtE,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAE,CAAC,CAAC,QAAqB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACxB,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC;QACtC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;YACvC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;YAC7D,MAAM,IAAI,GAAG,QAAQ,IAAI,CAAC,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YACrE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YAC5E,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE;gBACjC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC;gBACpF,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAA0B;gBAC9F,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;gBAChH,SAAS,EAAE,EAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAO,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC;gBAChJ,SAAS,EAAE,CAAC,GAAG,cAAc,CAAC,KAAK,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAc,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,QAAiB,EAAE,IAAI,EAAE,EAAC,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAC,EAAC,CAAC,CAAC,CAAC;aAChO,CAAC,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACvB,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;QACH,OAAO,EAAC,OAAO,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAC,CAAC;IAC9D,CAAC;CACF,CAAC;AAEF,OAAO,CAAC,mBAAmB,CAAC,GAAG;IAC7B,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,yHAAyH;IACtI,MAAM,EAAE,qIAAqI;IAC7I,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;QACtB,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAChC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC3B,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAI,CAAC,CAAC,QAAiB,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3E,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACzE,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;QACnD,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,CAAC,CAAW,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACtE,GAAG,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,GAAG,EAAE,UAAU,EAAE,EAAC,OAAO,EAAE,CAAC,EAAC;YAChK,SAAS,EAAE,EAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAO,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAC;YAC1M,IAAI,EAAE,EAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,EAAC,EAAa,CAAC,CAAC;QACrE,GAAG,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,GAAG,GAAG,EAAE,QAAQ,EAAE,EAAE,GAAG,GAAG;YACtI,SAAS,EAAE,EAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAO,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAC,EAAa,CAAC,CAAC;QACpK,GAAG,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAA0B,EAAE,OAAO,EAAE,EAAE,GAAG,GAAG;YAChL,QAAQ,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,EAAE,SAAS,EAAE,EAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAC;YAC5D,SAAS,EAAE,CAAC,EAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAC,EAAC,CAAC;YAC3H,OAAO,EAAE,CAAC,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAC,CAAC,EAAa,CAAC,CAAC;QACpF,GAAG,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,GAAG;YAChK,SAAS,EAAE,EAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,EAAC,EAAE,IAAI,EAAE,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,EAAC,EAAa,CAAC,CAAC;QAChL,IAAI,CAAC,CAAC,OAAO;YAAE,GAAG,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAA0B,EAAE,OAAO,EAAE,EAAE,GAAG,GAAG;gBAClM,SAAS,EAAE,EAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,GAAG,GAAG,CAAC,EAAC,EAAE,SAAS,EAAE,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAC,CAAC,EAAE,IAAI,GAAG,GAAG,EAAC,EAAC,CAAC,EAAa,CAAC,CAAC;QAC3K,OAAO,EAAC,OAAO,EAAE,IAAI,EAAE,qBAAqB,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAC,CAAC;IACxE,CAAC;CACF,CAAC;AAEF,OAAO,CAAC,aAAa,CAAC,GAAG;IACvB,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,sFAAsF;IACnG,MAAM,EAAE,yGAAyG;IACjH,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;QACtB,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAChC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC3B,MAAM,MAAM,GAAI,CAAC,CAAC,MAAmB,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACtF,MAAM,GAAG,GAAG,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QACzC,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACtB,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,GAAG;gBAC7I,SAAS,EAAE,EAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAO,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAC,EAAa,CAAC,CAAC,EAAE,CAAC,CAAC;QACnP,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC;YACjM,IAAI,EAAE,CAAC,CAAC,IAA0B,EAAE,OAAO,EAAE,EAAE,GAAG,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI;YAClF,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,SAAS,EAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpD,OAAO,EAAC,OAAO,EAAC,CAAC;IACnB,CAAC;CACF,CAAC;AAEF,OAAO,CAAC,kBAAkB,CAAC,GAAG;IAC5B,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,qIAAqI;IAClJ,MAAM,EAAE,yWAAyW;IACjX,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;QACtB,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAChC,MAAM,KAAK,GAAI,CAAC,CAAC,KAA2F,IAAI,EAAE,CAAC;QACnH,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,kBAAkB,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACvF,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;YACtB,MAAM,KAAK,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;YACnC,MAAM,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC;YACzB,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACpF,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE;gBACjC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;gBAChG,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,EAAC,MAAM,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3E,SAAS,EAAE,EAAC,KAAK,EAAE,EAAE,CAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAC;aACrG,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACnC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACvB,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,YAAY,EAAE,SAAS,CAAC;oBAChL,OAAO,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI;oBACtG,SAAS,EAAE,EAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,EAAC;oBAC5E,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,KAAK,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,SAAS;oBACvK,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAC;oBACxE,SAAS,EAAE,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,EAAE,SAAS,IAAI,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC,EAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9K,CAAC;QACH,CAAC,CAAC,CAAC;QACH,0CAA0C;QAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,UAAuB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;QACrG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;YAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAC,CAAC,CAAC;QACxK,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK;YAAE,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;QAC7C,OAAO,EAAC,OAAO,EAAE,IAAI,EAAE,qBAAqB,GAAG,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,EAAE,EAAE,EAAC,CAAC;IACnH,CAAC;CACF,CAAC;AAEF,OAAO,CAAC,oBAAoB,CAAC,GAAG;IAC9B,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,4GAA4G;IACzH,MAAM,EAAE,4LAA4L;IACpM,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;QACtB,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACzE,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;QACpB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC/B,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC7C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QACtC,MAAM,MAAM,GAAS,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,CAAC,EAAU,EAAE,GAAG,CAA0B,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvI,+EAA+E;QAC/E,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;YAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;QACnG,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,WAAW;gBACd,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;gBAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;gBAC7H,MAAM;YACR,KAAK,MAAM;gBACT,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;gBAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC3H,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;gBAC7H,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;gBAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;gBAC5H,MAAM;YACR,KAAK,MAAM;gBACT,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAC,KAAK,EAAE,CAAC,EAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAmC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;gBAC9J,MAAM;YACR,KAAK,SAAS;gBACZ,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;gBACnE,MAAM;YACR,KAAK,MAAM;gBACT,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/D,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;gBACjE,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;oBAAE,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,EAAC,UAAU,EAAE,EAAC,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAC,EAAC,CAAC,CAAC;gBACzG,MAAM;YACR,KAAK,QAAQ,EAAE,CAAC;gBACd,0DAA0D;gBAC1D,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC3B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC;gBACxE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC;gBACxE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;gBAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,mBAAmB,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC1H,MAAM;YACR,CAAC;YACD,KAAK,SAAS;gBACZ,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/D,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;gBACjE,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;oBAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,EAAC,UAAU,EAAE,EAAC,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAC,EAAC,CAAC,CAAC;oBAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC;gBAAC,CAAC;gBACxN,MAAM;YACR,KAAK,MAAM,EAAE,CAAC;gBACZ,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC3B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAC,CAAC,CAAC;gBAC5G,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAC,CAAC,CAAC;gBAC7G,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;gBAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,mBAAmB,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC9H,MAAM;YACR,CAAC;YACD,KAAK,OAAO;gBACV,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;gBAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,mBAAmB,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBACrI,OAAO,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,EAAC,KAAK,EAAE,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,CAAC,GAAG,GAAG,EAAE,SAAS,EAAE,GAAG,EAAC,CAAC,CAAC;gBACzG,MAAM;YACR,SAAS,OAAO;gBACd,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,EAAC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,SAAS,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAC,CAAC;IAC7F,CAAC;CACF,CAAC;AAEF,MAAM,KAAK,GAAG,CAAC,CAAU,EAAE,EAAU,EAAE,CAAS,EAAE,EAAE;IAClD,MAAM,EAAC,KAAK,EAAC,GAAG,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACjC,KAAK,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF,OAAO,CAAC,mBAAmB,CAAC,GAAG;IAC7B,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,4HAA4H;IACzI,MAAM,EAAE,wHAAwH;IAChI,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;QACtB,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAChC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC/F,MAAM,MAAM,GAAI,CAAC,CAAC,MAAmB,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAC3E,MAAM,GAAG,GAAG,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QAC7E,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACtB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;YAC7C,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ;gBACxI,IAAI,EAAE,EAAC,MAAM,EAAE,EAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,EAAC,EAAC;gBACpG,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;gBACrC,SAAS,EAAE,EAAC,QAAQ,EAAE,EAAE,CAAO,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACnJ,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAC,EAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACzG,CAAC,CAAC,CAAC;QACH,OAAO,EAAC,OAAO,EAAC,CAAC;IACnB,CAAC;CACF,CAAC;AAEF,OAAO,CAAC,oBAAoB,CAAC,GAAG;IAC9B,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,oFAAoF;IACjG,MAAM,EAAE,4FAA4F;IACpG,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;QACtB,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAChC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QACvF,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACtC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAC5B,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,GAAG;YACtH,SAAS,EAAE,EAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAO,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAC,EAAa,CAAC,CAAC;QAChM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrB,MAAM,EAAE,GAAG,CAAC,IAAY,EAAE,IAAY,EAAE,EAAU,EAAE,KAAa,EAAE,CAAS,EAAE,IAAY,EAAE,EAAE,CAC5F,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAA0B,EAAE,OAAO,EAAE,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,EAAE,GAAG,GAAG;YAClL,SAAS,EAAE,EAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAC,EAAE,KAAK,EAAE,CAAC,EAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,EAAC,CAAC;YACnG,SAAS,EAAE,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,EAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,EAAC,EAAC,CAAC,EAAa,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1M,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;QACvG,IAAI,CAAC,CAAC,KAAK;YAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAC5F,OAAO,EAAC,OAAO,EAAC,CAAC;IACnB,CAAC;CACF,CAAC;AAEF,OAAO,CAAC,uBAAuB,CAAC,GAAG;IACjC,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,yFAAyF;IACtG,MAAM,EAAE,8EAA8E;IACtF,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE;QAClB,MAAM,EAAC,KAAK,EAAC,GAAG,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;QAC/C,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;YAAE,MAAM,IAAI,OAAO,CAAC,GAAG,KAAK,CAAC,EAAE,sBAAsB,CAAC,CAAC;QAChF,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACpE,KAAK,CAAC,GAAG,GAAG,EAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,OAAO,EAAG,CAAC,CAAC,OAA4B,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,EAAC,CAAC;QAC7K,OAAO,EAAC,OAAO,EAAE,EAAE,EAAC,CAAC;IACvB,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;AAEjF,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE,CAC9B,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,WAAW,iBAAiB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
// Map presets: an animated route from real coordinates, with pins, labels and a travelling marker.
|
|
2
|
+
import { distanceKm, fitView, viewToPx } from '../core/geo.js';
|
|
3
|
+
import { pointAt, parsePath } from '../core/path.js';
|
|
4
|
+
import { addLayer, getComp } from '../ops/ops.js';
|
|
5
|
+
const n = (v, d) => (typeof v === 'number' ? v : d);
|
|
6
|
+
const s = (v, d) => (typeof v === 'string' ? v : d);
|
|
7
|
+
const r3 = (t) => Math.round(t * 1000) / 1000;
|
|
8
|
+
const kf = (...k) => ({ keyframes: k.map(([t, v, ease]) => (ease ? { t: r3(t), v, ease } : { t: r3(t), v })) });
|
|
9
|
+
const PIN = 'M0 0 C-6 -10 -18 -16 -18 -28 C-18 -38 -10 -46 0 -46 C10 -46 18 -38 18 -28 C18 -16 6 -10 0 0 Z';
|
|
10
|
+
export const MAP_PRESETS = {
|
|
11
|
+
'map.route': {
|
|
12
|
+
kind: 'map',
|
|
13
|
+
description: 'Animated map route from real coordinates: the path draws on, a marker travels along it, start/end pins drop in with labels. Optional real map background (see `dtly map-tiles`).',
|
|
14
|
+
params: '{route: [[lat, lon], ...], labels?: string[] (one per point, "" to skip), start?, duration?, color?, width?, dashed?: boolean, smooth?: true, marker?: "dot"|"pin"|"none", background?: {src, bounds: [[latNW, lonNW], [latSE, lonSE]]}, size?: [w,h], position?, pinColor?, labelColor?, showDistance?: boolean, name?}',
|
|
15
|
+
apply: (p, compId, o) => {
|
|
16
|
+
const comp = getComp(p, compId);
|
|
17
|
+
const route = o.route ?? [];
|
|
18
|
+
if (route.length < 2)
|
|
19
|
+
throw new Error('map.route needs at least two [lat, lon] points');
|
|
20
|
+
const bg = o.background;
|
|
21
|
+
const [W, H] = o.size ?? [comp.width, comp.height];
|
|
22
|
+
const toPx = bg ? viewToPx({ bounds: bg.bounds, size: [W, H] }) : fitView(route, W, H).toPx;
|
|
23
|
+
const pts = route.map((ll) => { const [x, y] = toPx(ll); return [x - W / 2, y - H / 2]; });
|
|
24
|
+
const t0 = n(o.start, 0), dur = n(o.duration, 3), color = s(o.color, '#E8692A'), lw = n(o.width, Math.round(comp.width / 90));
|
|
25
|
+
let d = `M${pts[0][0]} ${pts[0][1]}`;
|
|
26
|
+
if (o.smooth !== false && pts.length > 2) {
|
|
27
|
+
for (let i = 0; i < pts.length - 1; i++) {
|
|
28
|
+
const p0 = pts[i - 1] ?? pts[i], p1 = pts[i], p2 = pts[i + 1], p3 = pts[i + 2] ?? p2;
|
|
29
|
+
d += ` C${p1[0] + (p2[0] - p0[0]) / 6} ${p1[1] + (p2[1] - p0[1]) / 6} ${p2[0] - (p3[0] - p1[0]) / 6} ${p2[1] - (p3[1] - p1[1]) / 6} ${p2[0]} ${p2[1]}`;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
else
|
|
33
|
+
for (const q of pts.slice(1))
|
|
34
|
+
d += ` L${q[0]} ${q[1]}`;
|
|
35
|
+
const created = [];
|
|
36
|
+
const group = addLayer(p, compId, { type: 'null', name: s(o.name, 'route'), inPoint: t0, transform: { position: o.position ?? [comp.width / 2, comp.height / 2] } }, 0);
|
|
37
|
+
created.push(group.id);
|
|
38
|
+
const groupIndex = getComp(p, compId).layers.indexOf(group);
|
|
39
|
+
// Parts are added top-down, each directly below the previous one.
|
|
40
|
+
const add = (l) => created.push(addLayer(p, compId, { ...l, parent: group.id }, groupIndex + created.length).id);
|
|
41
|
+
const labels = o.labels ?? [];
|
|
42
|
+
const fs = Math.round(comp.width / 26);
|
|
43
|
+
// Pins and labels at each named stop (top of stack, added first).
|
|
44
|
+
pts.forEach((pt, i) => {
|
|
45
|
+
const isEnd = i === 0 || i === pts.length - 1;
|
|
46
|
+
if (!isEnd && !labels[i])
|
|
47
|
+
return;
|
|
48
|
+
const at = t0 + (i === 0 ? 0 : (dur * i) / (pts.length - 1));
|
|
49
|
+
if (labels[i])
|
|
50
|
+
add({ type: 'text', name: `label-${i + 1}`, text: labels[i], size: fs, weight: 800, color: s(o.labelColor, '#ffffff'), inPoint: r3(at),
|
|
51
|
+
box: { color: '#000000aa', padding: [Math.round(fs * 0.45), Math.round(fs * 0.2)], radius: Math.round(fs * 0.3) },
|
|
52
|
+
transform: { position: [pt[0], pt[1] - fs * 2.6] }, animators: [{ unit: 'line', duration: 0.4, ease: 'backOut', from: { opacity: 0, y: 30, scale: 80 } }] });
|
|
53
|
+
add({ type: 'shape', name: `pin-${i + 1}`, shape: 'path', path: PIN, fill: i === pts.length - 1 ? s(o.pinColor, color) : '#ffffff', stroke: '#00000066', strokeWidth: 2,
|
|
54
|
+
inPoint: r3(at), transform: { anchor: [0, 0], position: pt, scale: kf([at, [0, 0], 'backOut'], [at + 0.45, [100 * fs / 30, 100 * fs / 30]]) },
|
|
55
|
+
effects: [{ type: 'dropShadow', blur: 8, distance: 4, opacity: 40 }] });
|
|
56
|
+
});
|
|
57
|
+
// Travelling marker: position keyframes sampled along the path, in step with the draw-on.
|
|
58
|
+
if (o.marker !== 'none') {
|
|
59
|
+
const path = parsePath(d), N = 40;
|
|
60
|
+
const keys = Array.from({ length: N + 1 }, (_, k) => ({ t: r3(t0 + (dur * k) / N), v: pointAt(path, k / N).p }));
|
|
61
|
+
add({ type: 'shape', name: 'marker', shape: 'ellipse', size: [lw * 2.6, lw * 2.6], fill: '#ffffff', stroke: color, strokeWidth: lw * 0.6, inPoint: t0, outPoint: r3(t0 + dur + 0.2),
|
|
62
|
+
transform: { position: { keyframes: keys } }, effects: [{ type: 'glow', color, radius: 18, strength: 70 }] });
|
|
63
|
+
}
|
|
64
|
+
add({ type: 'shape', name: 'route-line', shape: 'path', path: d, stroke: color, strokeWidth: lw, ...(o.dashed ? { dash: [lw * 2, lw * 1.6], lineCap: 'butt' } : {}), inPoint: t0,
|
|
65
|
+
transform: { anchor: [0, 0], position: [0, 0] }, trim: { end: kf([t0, 0, 'linear'], [t0 + dur, 100]) } });
|
|
66
|
+
add({ type: 'shape', name: 'route-casing', shape: 'path', path: d, stroke: '#00000055', strokeWidth: lw * 1.9, inPoint: t0,
|
|
67
|
+
transform: { anchor: [0, 0], position: [0, 0] }, trim: { end: kf([t0, 0, 'linear'], [t0 + dur, 100]) } });
|
|
68
|
+
if (o.showDistance) {
|
|
69
|
+
const km = route.slice(1).reduce((a, q, i) => a + distanceKm(route[i], q), 0);
|
|
70
|
+
add({ type: 'text', name: 'distance', text: '{value}', value: kf([t0, 0], [t0 + dur, Math.round(km)]), format: { suffix: ' km' }, size: Math.round(fs * 1.4), weight: 800, color: s(o.labelColor, '#ffffff'), inPoint: t0,
|
|
71
|
+
box: { color: '#000000aa', padding: [fs * 0.5, fs * 0.25], radius: fs * 0.3 }, transform: { position: [0, H / 2 - fs * 4] } });
|
|
72
|
+
}
|
|
73
|
+
if (bg)
|
|
74
|
+
add({ type: 'image', name: 'map', src: bg.src, size: [W, H], fit: 'fill', inPoint: t0, transform: { position: [0, 0], anchor: [W / 2, H / 2] } });
|
|
75
|
+
return { created, note: bg ? 'Route drawn over the map image' : 'No background: add a map image (dtly map-tiles) or a solid underneath' };
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=maps.js.map
|