silvery 0.19.2 → 0.21.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 +9 -4
- package/dist/Text-Lq0dmj8-.mjs +239 -0
- package/dist/Text-Lq0dmj8-.mjs.map +1 -0
- package/dist/UPNG-Bo33r8rA.mjs +3 -0
- package/dist/UPNG-DosRPdF4.mjs +5075 -0
- package/dist/UPNG-DosRPdF4.mjs.map +1 -0
- package/dist/__vite-browser-external-2447137e-D_JM6skp.mjs +6 -0
- package/dist/__vite-browser-external-2447137e-D_JM6skp.mjs.map +1 -0
- package/dist/{animation-Cn64yepo.mjs → animation-ZMN2_XKv.mjs} +2 -2
- package/dist/animation-ZMN2_XKv.mjs.map +1 -0
- package/dist/{ansi-Cc33mW54.d.mts → ansi-2Xn0yatP.d.mts} +1 -1
- package/dist/{ansi-Cc33mW54.d.mts.map → ansi-2Xn0yatP.d.mts.map} +1 -1
- package/dist/{ansi-CLOitHKx.mjs → ansi-D1KQMAbf.mjs} +1 -1
- package/dist/{ansi-CLOitHKx.mjs.map → ansi-D1KQMAbf.mjs.map} +1 -1
- package/dist/ansi-yC4RyBNY.mjs +22441 -0
- package/dist/ansi-yC4RyBNY.mjs.map +1 -0
- package/dist/apng-CR08rIaH.mjs +58 -0
- package/dist/apng-CR08rIaH.mjs.map +1 -0
- package/dist/apng-DaHfVaVI.mjs +3 -0
- package/dist/assets/resvgjs.darwin-arm64-BtufyGW1.node +0 -0
- package/dist/assets/skia.darwin-arm64-DQs5sT6N.node +0 -0
- package/dist/backend-B-WYLUib.mjs +13396 -0
- package/dist/backend-B-WYLUib.mjs.map +1 -0
- package/dist/backends-CUtan80W.mjs +3 -0
- package/dist/backends-DIVYzKqd.mjs +1083 -0
- package/dist/backends-DIVYzKqd.mjs.map +1 -0
- package/dist/bound-term-0sPrrzH1.d.mts +4640 -0
- package/dist/bound-term-0sPrrzH1.d.mts.map +1 -0
- package/dist/canvas-1v7dPT-_.mjs +3 -0
- package/dist/canvas-CSuPOMNt.mjs +1442 -0
- package/dist/canvas-CSuPOMNt.mjs.map +1 -0
- package/dist/{chunk-Vs_PY4HZ.mjs → chunk-BSw8zbkd.mjs} +1 -1
- package/dist/cli-dvo0r2fs.mjs +4 -0
- package/dist/compare-CQodSH4G.mjs +376 -0
- package/dist/compare-CQodSH4G.mjs.map +1 -0
- package/dist/compare-DHlcxEYA.mjs +3 -0
- package/dist/context-BU5LkkIy.mjs.map +1 -1
- package/dist/devtools-CJdt5H0X.mjs +2 -0
- package/dist/{devtools-DxkSLXDA.mjs → devtools-DcQjgyjL.mjs} +5 -4
- package/dist/{devtools-DxkSLXDA.mjs.map → devtools-DcQjgyjL.mjs.map} +1 -1
- package/dist/easing-BI-ASGMO.d.mts +24 -0
- package/dist/easing-BI-ASGMO.d.mts.map +1 -0
- package/dist/{eta-Bb3RH3wh.mjs → eta-CJlGH06n.mjs} +1 -1
- package/dist/{eta-Bb3RH3wh.mjs.map → eta-CJlGH06n.mjs.map} +1 -1
- package/dist/flexily-zero-adapter-C3Vj0fPt.mjs +306 -0
- package/dist/flexily-zero-adapter-C3Vj0fPt.mjs.map +1 -0
- package/dist/{flexily-zero-adapter-CMxXhdOL.mjs → flexily-zero-adapter-C4lW_Ov5.mjs} +1 -1
- package/dist/fonts-BFmhXDv7.mjs +88 -0
- package/dist/fonts-BFmhXDv7.mjs.map +1 -0
- package/dist/gif-C_AjaT9d.mjs +188 -0
- package/dist/gif-C_AjaT9d.mjs.map +1 -0
- package/dist/gif-DaC4XrxA.mjs +3 -0
- package/dist/gifenc-BOUT-KFB.mjs +730 -0
- package/dist/gifenc-BOUT-KFB.mjs.map +1 -0
- package/dist/image-C2Birh2x.mjs +1252 -0
- package/dist/image-C2Birh2x.mjs.map +1 -0
- package/dist/index-BUMxS65f.d.mts +453 -0
- package/dist/index-BUMxS65f.d.mts.map +1 -0
- package/dist/{index-D3saHouR.d.mts → index-CSQf13CI.d.mts} +1057 -1133
- package/dist/index-CSQf13CI.d.mts.map +1 -0
- package/dist/{index-BXslOebb.d.mts → index-Cl9KKjQ_.d.mts} +4919 -3921
- package/dist/index-Cl9KKjQ_.d.mts.map +1 -0
- package/dist/index-XbNrPhWl.d.mts +336 -0
- package/dist/index-XbNrPhWl.d.mts.map +1 -0
- package/dist/index.d.mts +8 -5
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +14 -12
- package/dist/index.mjs.map +1 -1
- package/dist/key-mapping-CS-YD_cD.mjs +132 -0
- package/dist/key-mapping-CS-YD_cD.mjs.map +1 -0
- package/dist/key-mapping-Yn-Jgrij.mjs +3 -0
- package/dist/{layout-engine-B6Cdz1yZ.mjs → layout-engine-C07LEXWT.mjs} +1 -1
- package/dist/layout-engine-C2px0RJE.mjs +67 -0
- package/dist/layout-engine-C2px0RJE.mjs.map +1 -0
- package/dist/layout-signals-Cnw6xk8Q.mjs +988 -0
- package/dist/layout-signals-Cnw6xk8Q.mjs.map +1 -0
- package/dist/mouse-events-Dki3ISIp.mjs +1044 -0
- package/dist/mouse-events-Dki3ISIp.mjs.map +1 -0
- package/dist/{multi-progress-Bq9Oi_WI.mjs → multi-progress-CIRjrzma.mjs} +3 -3
- package/dist/{multi-progress-Bq9Oi_WI.mjs.map → multi-progress-CIRjrzma.mjs.map} +1 -1
- package/dist/{multi-progress-DAQC7eap.d.mts → multi-progress-DHZ2xUT2.d.mts} +2 -2
- package/dist/{multi-progress-DAQC7eap.d.mts.map → multi-progress-DHZ2xUT2.d.mts.map} +1 -1
- package/dist/{node-BeWlnCPY.mjs → node-CjM5Rt-M.mjs} +4 -4
- package/dist/node-CjM5Rt-M.mjs.map +1 -0
- package/dist/playwright-D5YiZcNS.mjs +76397 -0
- package/dist/playwright-D5YiZcNS.mjs.map +1 -0
- package/dist/png-codec-Dp84742B.mjs +36 -0
- package/dist/png-codec-Dp84742B.mjs.map +1 -0
- package/dist/png-codec-QwOtJ8Zs.mjs +3 -0
- package/dist/progress-DB_Xo071.mjs +675 -0
- package/dist/progress-DB_Xo071.mjs.map +1 -0
- package/dist/{progress-bar-CXE5Qfkd.mjs → progress-bar-oJwq22CR.mjs} +4 -4
- package/dist/{progress-bar-CXE5Qfkd.mjs.map → progress-bar-oJwq22CR.mjs.map} +1 -1
- package/dist/rasterizer-BRXrDdWx.mjs +3 -0
- package/dist/rasterizer-CpEhJvdR.mjs +296 -0
- package/dist/rasterizer-CpEhJvdR.mjs.map +1 -0
- package/dist/reconciler-DldIJB93.mjs +2083 -0
- package/dist/reconciler-DldIJB93.mjs.map +1 -0
- package/dist/{render-string-CDCeYkS3.mjs → render-string-BcoCpjCB.mjs} +1 -1
- package/dist/{render-string-Darrg7ku.mjs → render-string-DkQacASz.mjs} +2707 -549
- package/dist/render-string-DkQacASz.mjs.map +1 -0
- package/dist/resvg-js-DkOndZI3.mjs +203 -0
- package/dist/resvg-js-DkOndZI3.mjs.map +1 -0
- package/dist/runtime.d.mts +3 -2
- package/dist/runtime.mjs +3 -3
- package/dist/schemes-JjNp4aSl.mjs +2611 -0
- package/dist/schemes-JjNp4aSl.mjs.map +1 -0
- package/dist/{spinner-CGo34vyR.d.mts → spinner-CZINHpkV.d.mts} +2 -2
- package/dist/{spinner-CGo34vyR.d.mts.map → spinner-CZINHpkV.d.mts.map} +1 -1
- package/dist/{spinner-CeOmcuw_.mjs → spinner-D9lrHr8s.mjs} +7 -7
- package/dist/spinner-D9lrHr8s.mjs.map +1 -0
- package/dist/src-5w9QR6_8.mjs +1071 -0
- package/dist/src-5w9QR6_8.mjs.map +1 -0
- package/dist/src-BNTToU7l.mjs +4387 -0
- package/dist/src-BNTToU7l.mjs.map +1 -0
- package/dist/{src-CF-6UN01.mjs → src-BR4xNwdG.mjs} +10436 -2622
- package/dist/src-BR4xNwdG.mjs.map +1 -0
- package/dist/{types-Bk2yw9Qj.mjs → src-DKp-_OFG.mjs} +34 -94
- package/dist/src-DKp-_OFG.mjs.map +1 -0
- package/dist/src-bt8wSrfJ.mjs +258 -0
- package/dist/src-bt8wSrfJ.mjs.map +1 -0
- package/dist/src-e33Y6kNJ.mjs +3 -0
- package/dist/src-iDwu25UD.mjs +1814 -0
- package/dist/src-iDwu25UD.mjs.map +1 -0
- package/dist/steps-Bp2uNqnn.d.mts +202 -0
- package/dist/steps-Bp2uNqnn.d.mts.map +1 -0
- package/dist/svg-15lZZzxq.mjs +486 -0
- package/dist/svg-15lZZzxq.mjs.map +1 -0
- package/dist/svg-Cz0UXcDj.mjs +255 -0
- package/dist/svg-Cz0UXcDj.mjs.map +1 -0
- package/dist/svg-DY72a4HK.mjs +3 -0
- package/dist/svg-g1D6ErwR.d.mts +82 -0
- package/dist/svg-g1D6ErwR.d.mts.map +1 -0
- package/dist/term.d.mts +3 -0
- package/dist/term.mjs +9 -0
- package/dist/term.mjs.map +1 -0
- package/dist/theme.d.mts +95 -2
- package/dist/theme.d.mts.map +1 -0
- package/dist/theme.mjs +9 -3
- package/dist/theme.mjs.map +1 -0
- package/dist/{types-BH_v3iMT.d.mts → types-kt_fKR37.d.mts} +2 -15
- package/dist/types-kt_fKR37.d.mts.map +1 -0
- package/dist/ui/animation.d.mts +2 -1
- package/dist/ui/animation.mjs +1 -1
- package/dist/ui/ansi.d.mts +1 -1
- package/dist/ui/ansi.mjs +1 -1
- package/dist/ui/cli.d.mts +3 -3
- package/dist/ui/cli.mjs +5 -5
- package/dist/ui/display.d.mts +1 -1
- package/dist/ui/image.d.mts +2 -2
- package/dist/ui/image.mjs +2 -2
- package/dist/ui/input.d.mts +1 -1
- package/dist/ui/input.mjs +4 -2
- package/dist/ui/input.mjs.map +1 -1
- package/dist/ui/progress.d.mts +5 -249
- package/dist/ui/progress.mjs +5 -858
- package/dist/ui/react.d.mts +1 -1
- package/dist/ui/react.mjs +2 -2
- package/dist/ui/recording-chrome-react.d.mts +21 -0
- package/dist/ui/recording-chrome-react.d.mts.map +1 -0
- package/dist/ui/recording-chrome-react.mjs +105 -0
- package/dist/ui/recording-chrome-react.mjs.map +1 -0
- package/dist/ui/recording-chrome.d.mts +2 -0
- package/dist/ui/recording-chrome.mjs +2 -0
- package/dist/ui/utils.mjs +1 -1
- package/dist/ui/wrappers.d.mts +3 -3
- package/dist/ui/wrappers.mjs +2 -2
- package/dist/ui.d.mts +7 -6
- package/dist/ui.mjs +8 -7
- package/dist/{useLatest-Bg2x4bfP.d.mts → useLatest-DRDDVwjh.d.mts} +5 -25
- package/dist/useLatest-DRDDVwjh.d.mts.map +1 -0
- package/dist/{with-text-input-CRfoiFFG.d.mts → with-text-input-YeohVLeo.d.mts} +4 -55
- package/dist/with-text-input-YeohVLeo.d.mts.map +1 -0
- package/dist/wrapper-C70ATkVv.mjs +3527 -0
- package/dist/wrapper-C70ATkVv.mjs.map +1 -0
- package/dist/{wrappers-UTADQkSY.mjs → wrappers-BCUYITrY.mjs} +5 -157
- package/dist/wrappers-BCUYITrY.mjs.map +1 -0
- package/dist/{yoga-adapter-8oRGRw8V.mjs → yoga-adapter-BnZX1PAY.mjs} +28 -2
- package/dist/yoga-adapter-BnZX1PAY.mjs.map +1 -0
- package/dist/yoga-adapter-DxgsQ_gg.mjs +2 -0
- package/dist/zipBundle-3nqeDRtm.mjs +3 -0
- package/dist/zipBundle-VNAYFmqJ.mjs +2003 -0
- package/dist/zipBundle-VNAYFmqJ.mjs.map +1 -0
- package/package.json +20 -9
- package/dist/animation-Cn64yepo.mjs.map +0 -1
- package/dist/cli-BKp0YtBD.mjs +0 -4
- package/dist/devtools-9QY4teqI.mjs +0 -2
- package/dist/flexily-zero-adapter-BlQa46nr.mjs +0 -3385
- package/dist/flexily-zero-adapter-BlQa46nr.mjs.map +0 -1
- package/dist/image-CTII5QWI.mjs +0 -477
- package/dist/image-CTII5QWI.mjs.map +0 -1
- package/dist/index-BXslOebb.d.mts.map +0 -1
- package/dist/index-BnA7mNpo.d.mts +0 -175
- package/dist/index-BnA7mNpo.d.mts.map +0 -1
- package/dist/index-D3saHouR.d.mts.map +0 -1
- package/dist/layout-engine-ClUgv6jB.mjs +0 -50
- package/dist/layout-engine-ClUgv6jB.mjs.map +0 -1
- package/dist/node-BeWlnCPY.mjs.map +0 -1
- package/dist/reconciler-Cwgm8hRR.mjs +0 -8459
- package/dist/reconciler-Cwgm8hRR.mjs.map +0 -1
- package/dist/render-string-Darrg7ku.mjs.map +0 -1
- package/dist/spinner-CeOmcuw_.mjs.map +0 -1
- package/dist/src-B5GjfG7g.mjs +0 -4305
- package/dist/src-B5GjfG7g.mjs.map +0 -1
- package/dist/src-CChwjk0Z.mjs +0 -738
- package/dist/src-CChwjk0Z.mjs.map +0 -1
- package/dist/src-CF-6UN01.mjs.map +0 -1
- package/dist/src-NCKb8kE5.mjs +0 -2660
- package/dist/src-NCKb8kE5.mjs.map +0 -1
- package/dist/types-BH_v3iMT.d.mts.map +0 -1
- package/dist/types-Bk2yw9Qj.mjs.map +0 -1
- package/dist/ui/progress.d.mts.map +0 -1
- package/dist/ui/progress.mjs.map +0 -1
- package/dist/useLatest-Bg2x4bfP.d.mts.map +0 -1
- package/dist/with-text-input-CRfoiFFG.d.mts.map +0 -1
- package/dist/wrappers-UTADQkSY.mjs.map +0 -1
- package/dist/yoga-adapter-8oRGRw8V.mjs.map +0 -1
- package/dist/yoga-adapter-D_CcxSt5.mjs +0 -2
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { n as __esmMin, o as __toESM } from "./chunk-BSw8zbkd.mjs";
|
|
2
|
+
import { n as selectRasterizer, t as init_rasterizer } from "./rasterizer-CpEhJvdR.mjs";
|
|
3
|
+
//#region ../termless/src/view/apng.ts
|
|
4
|
+
async function loadUpng() {
|
|
5
|
+
if (upngModule) return upngModule;
|
|
6
|
+
try {
|
|
7
|
+
upngModule = await import("./UPNG-Bo33r8rA.mjs").then((m) => /* @__PURE__ */ __toESM(m.default, 1));
|
|
8
|
+
return upngModule;
|
|
9
|
+
} catch {
|
|
10
|
+
throw new Error("createApng() requires upng-js. Install it:\n bun add upng-js");
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Encode animation frames as an animated PNG (APNG).
|
|
15
|
+
*
|
|
16
|
+
* Each SVG frame is rasterized to RGBA pixels via the selected renderer
|
|
17
|
+
* (`options.renderer`, default `auto`), then combined into a single APNG file
|
|
18
|
+
* via upng-js.
|
|
19
|
+
*
|
|
20
|
+
* @param frames - SVG frames with durations
|
|
21
|
+
* @param options - Animation options plus optional `scale` and `renderer`
|
|
22
|
+
* @returns APNG file as Uint8Array
|
|
23
|
+
*/
|
|
24
|
+
async function createApng(frames, options) {
|
|
25
|
+
if (frames.length === 0) throw new Error("createApng requires at least one frame");
|
|
26
|
+
const [UPNG, rasterizer] = await Promise.all([loadUpng(), selectRasterizer(options?.renderer ?? "auto")]);
|
|
27
|
+
const defaultDuration = options?.defaultDuration ?? 100;
|
|
28
|
+
const scale = options?.scale ?? 2;
|
|
29
|
+
const rgbaBuffers = [];
|
|
30
|
+
const delays = [];
|
|
31
|
+
let width = 0;
|
|
32
|
+
let height = 0;
|
|
33
|
+
try {
|
|
34
|
+
for (const frame of frames) {
|
|
35
|
+
const duration = frame.duration || defaultDuration;
|
|
36
|
+
const rendered = frame.snapshot && rasterizer.rasterizeCells ? await rasterizer.rasterizeCells(frame.snapshot, scale) : await rasterizer.rasterize(frame.svg, scale);
|
|
37
|
+
if (width === 0) {
|
|
38
|
+
width = rendered.width;
|
|
39
|
+
height = rendered.height;
|
|
40
|
+
}
|
|
41
|
+
rgbaBuffers.push(rendered.pixels.buffer);
|
|
42
|
+
delays.push(duration);
|
|
43
|
+
}
|
|
44
|
+
} finally {
|
|
45
|
+
await rasterizer.dispose?.();
|
|
46
|
+
}
|
|
47
|
+
const apng = UPNG.encode(rgbaBuffers, width, height, 0, delays);
|
|
48
|
+
return new Uint8Array(apng);
|
|
49
|
+
}
|
|
50
|
+
var upngModule;
|
|
51
|
+
var init_apng = __esmMin((() => {
|
|
52
|
+
init_rasterizer();
|
|
53
|
+
upngModule = null;
|
|
54
|
+
}));
|
|
55
|
+
//#endregion
|
|
56
|
+
export { init_apng as n, createApng as t };
|
|
57
|
+
|
|
58
|
+
//# sourceMappingURL=apng-CR08rIaH.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apng-CR08rIaH.mjs","names":[],"sources":["../../termless/src/view/apng.ts"],"sourcesContent":["/**\n * Animated PNG (APNG) encoder for termless.\n *\n * Converts SVG frames to an APNG using upng-js for APNG encoding. SVG → pixel\n * rasterization goes through the **renderer** (`./rasterizer.ts`): `canvas`\n * (`@napi-rs/canvas`) when its binding loads, `resvg` as the fallback.\n *\n * `upng-js` is an optional/lazy-loaded dependency — throws a clear error if\n * missing.\n */\n\n// Module declarations live in ./upng.d.ts (picked up via tsconfig `include` glob).\nimport type { AnimationFrame, AnimationOptions } from \"./animation-types.ts\"\nimport { selectRasterizer, type RendererKind } from \"./rasterizer.ts\"\n\n// Lazy-cached imports\nlet upngModule: typeof import(\"upng-js\") | null = null\n\nasync function loadUpng() {\n if (upngModule) return upngModule\n try {\n upngModule = await import(\"upng-js\")\n return upngModule\n } catch {\n throw new Error(\"createApng() requires upng-js. Install it:\\n bun add upng-js\")\n }\n}\n\n/**\n * Encode animation frames as an animated PNG (APNG).\n *\n * Each SVG frame is rasterized to RGBA pixels via the selected renderer\n * (`options.renderer`, default `auto`), then combined into a single APNG file\n * via upng-js.\n *\n * @param frames - SVG frames with durations\n * @param options - Animation options plus optional `scale` and `renderer`\n * @returns APNG file as Uint8Array\n */\nexport async function createApng(\n frames: AnimationFrame[],\n options?: AnimationOptions & { scale?: number; renderer?: RendererKind },\n): Promise<Uint8Array> {\n if (frames.length === 0) {\n throw new Error(\"createApng requires at least one frame\")\n }\n\n const [UPNG, rasterizer] = await Promise.all([loadUpng(), selectRasterizer(options?.renderer ?? \"auto\")])\n\n const defaultDuration = options?.defaultDuration ?? 100\n const scale = options?.scale ?? 2\n\n const rgbaBuffers: ArrayBuffer[] = []\n const delays: number[] = []\n let width = 0\n let height = 0\n\n try {\n for (const frame of frames) {\n const duration = frame.duration || defaultDuration\n\n // Cell-native path (swash): skip the SVG round-trip when a snapshot exists.\n const rendered =\n frame.snapshot && rasterizer.rasterizeCells\n ? await rasterizer.rasterizeCells(frame.snapshot, scale)\n : await rasterizer.rasterize(frame.svg, scale)\n\n // Use first frame's dimensions as the canvas size\n if (width === 0) {\n width = rendered.width\n height = rendered.height\n }\n\n rgbaBuffers.push(rendered.pixels.buffer as ArrayBuffer)\n delays.push(duration)\n }\n } finally {\n // Release the headless-Chromium instance the `browser` renderer holds.\n await rasterizer.dispose?.()\n }\n\n // upng-js encode: cnum=0 means lossless (full RGBA, no quantization)\n const apng = UPNG.encode(rgbaBuffers, width, height, 0, delays)\n return new Uint8Array(apng)\n}\n"],"mappings":";;;AAkBA,eAAe,WAAW;AACxB,KAAI,WAAY,QAAO;AACvB,KAAI;AACF,eAAa,MAAM,OAAO,uBAAA,MAAA,MAAA,wBAAA,EAAA,SAAA,EAAA,CAAA;AAC1B,SAAO;SACD;AACN,QAAM,IAAI,MAAM,gEAAgE;;;;;;;;;;;;;;AAepF,eAAsB,WACpB,QACA,SACqB;AACrB,KAAI,OAAO,WAAW,EACpB,OAAM,IAAI,MAAM,yCAAyC;CAG3D,MAAM,CAAC,MAAM,cAAc,MAAM,QAAQ,IAAI,CAAC,UAAU,EAAE,iBAAiB,SAAS,YAAY,OAAO,CAAC,CAAC;CAEzG,MAAM,kBAAkB,SAAS,mBAAmB;CACpD,MAAM,QAAQ,SAAS,SAAS;CAEhC,MAAM,cAA6B,EAAE;CACrC,MAAM,SAAmB,EAAE;CAC3B,IAAI,QAAQ;CACZ,IAAI,SAAS;AAEb,KAAI;AACF,OAAK,MAAM,SAAS,QAAQ;GAC1B,MAAM,WAAW,MAAM,YAAY;GAGnC,MAAM,WACJ,MAAM,YAAY,WAAW,iBACzB,MAAM,WAAW,eAAe,MAAM,UAAU,MAAM,GACtD,MAAM,WAAW,UAAU,MAAM,KAAK,MAAM;AAGlD,OAAI,UAAU,GAAG;AACf,YAAQ,SAAS;AACjB,aAAS,SAAS;;AAGpB,eAAY,KAAK,SAAS,OAAO,OAAsB;AACvD,UAAO,KAAK,SAAS;;WAEf;AAER,QAAM,WAAW,WAAW;;CAI9B,MAAM,OAAO,KAAK,OAAO,aAAa,OAAO,QAAQ,GAAG,OAAO;AAC/D,QAAO,IAAI,WAAW,KAAK;;;;kBAtEwC;AAGjE,cAA8C"}
|
|
Binary file
|
|
Binary file
|