@swf2es/format 0.0.0-stage → 0.1.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.
Files changed (98) hide show
  1. package/LICENSE +202 -0
  2. package/LICENSE.third-party +35 -0
  3. package/README.md +22 -2
  4. package/dist/abc-names.d.ts +3 -0
  5. package/dist/abc-names.d.ts.map +1 -0
  6. package/dist/abc-names.js +127 -0
  7. package/dist/abc-names.js.map +1 -0
  8. package/dist/actions.d.ts +106 -0
  9. package/dist/actions.d.ts.map +1 -0
  10. package/dist/actions.js +223 -0
  11. package/dist/actions.js.map +1 -0
  12. package/dist/air-descriptor.d.ts +11 -0
  13. package/dist/air-descriptor.d.ts.map +1 -0
  14. package/dist/air-descriptor.js +64 -0
  15. package/dist/air-descriptor.js.map +1 -0
  16. package/dist/api-versions.d.ts +12 -0
  17. package/dist/api-versions.d.ts.map +1 -0
  18. package/dist/api-versions.js +23 -0
  19. package/dist/api-versions.js.map +1 -0
  20. package/dist/bitmap.d.ts +34 -0
  21. package/dist/bitmap.d.ts.map +1 -0
  22. package/dist/bitmap.js +200 -0
  23. package/dist/bitmap.js.map +1 -0
  24. package/dist/button.d.ts +39 -0
  25. package/dist/button.d.ts.map +1 -0
  26. package/dist/button.js +61 -0
  27. package/dist/button.js.map +1 -0
  28. package/dist/compression.d.ts +47 -0
  29. package/dist/compression.d.ts.map +1 -0
  30. package/dist/compression.js +201 -0
  31. package/dist/compression.js.map +1 -0
  32. package/dist/display.d.ts +106 -0
  33. package/dist/display.d.ts.map +1 -0
  34. package/dist/display.js +306 -0
  35. package/dist/display.js.map +1 -0
  36. package/dist/filters.d.ts +66 -0
  37. package/dist/filters.d.ts.map +1 -0
  38. package/dist/filters.js +137 -0
  39. package/dist/filters.js.map +1 -0
  40. package/dist/font.d.ts +60 -0
  41. package/dist/font.d.ts.map +1 -0
  42. package/dist/font.js +169 -0
  43. package/dist/font.js.map +1 -0
  44. package/dist/index.d.ts +27 -0
  45. package/dist/index.d.ts.map +1 -0
  46. package/dist/index.js +27 -0
  47. package/dist/index.js.map +1 -0
  48. package/dist/lzma.d.ts +33 -0
  49. package/dist/lzma.d.ts.map +1 -0
  50. package/dist/lzma.js +279 -0
  51. package/dist/lzma.js.map +1 -0
  52. package/dist/pbj.d.ts +178 -0
  53. package/dist/pbj.d.ts.map +1 -0
  54. package/dist/pbj.js +485 -0
  55. package/dist/pbj.js.map +1 -0
  56. package/dist/shape.d.ts +152 -0
  57. package/dist/shape.d.ts.map +1 -0
  58. package/dist/shape.js +412 -0
  59. package/dist/shape.js.map +1 -0
  60. package/dist/sound.d.ts +71 -0
  61. package/dist/sound.d.ts.map +1 -0
  62. package/dist/sound.js +92 -0
  63. package/dist/sound.js.map +1 -0
  64. package/dist/swf.d.ts +77 -0
  65. package/dist/swf.d.ts.map +1 -0
  66. package/dist/swf.js +164 -0
  67. package/dist/swf.js.map +1 -0
  68. package/dist/tags.d.ts +57 -0
  69. package/dist/tags.d.ts.map +1 -0
  70. package/dist/tags.js +59 -0
  71. package/dist/tags.js.map +1 -0
  72. package/dist/text.d.ts +75 -0
  73. package/dist/text.d.ts.map +1 -0
  74. package/dist/text.js +136 -0
  75. package/dist/text.js.map +1 -0
  76. package/dist/zip.d.ts +17 -0
  77. package/dist/zip.d.ts.map +1 -0
  78. package/dist/zip.js +92 -0
  79. package/dist/zip.js.map +1 -0
  80. package/package.json +33 -3
  81. package/src/abc-names.ts +138 -0
  82. package/src/actions.ts +319 -0
  83. package/src/air-descriptor.ts +84 -0
  84. package/src/api-versions.ts +27 -0
  85. package/src/bitmap.ts +259 -0
  86. package/src/button.ts +99 -0
  87. package/src/compression.ts +243 -0
  88. package/src/display.ts +419 -0
  89. package/src/filters.ts +206 -0
  90. package/src/font.ts +238 -0
  91. package/src/index.ts +151 -0
  92. package/src/pbj.ts +651 -0
  93. package/src/shape.ts +618 -0
  94. package/src/sound.ts +173 -0
  95. package/src/swf.ts +234 -0
  96. package/src/tags.ts +58 -0
  97. package/src/text.ts +213 -0
  98. package/src/zip.ts +135 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pbj.js","sourceRoot":"","sources":["../src/pbj.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,152 @@
1
+ import { type Rect, SwfReader } from "./swf.js";
2
+ /** An affine transform as MATRIX holds one: a, b, c, d as numbers, tx and ty in twips. */
3
+ export interface Matrix {
4
+ a: number;
5
+ b: number;
6
+ c: number;
7
+ d: number;
8
+ tx: number;
9
+ ty: number;
10
+ }
11
+ export declare const IDENTITY: Matrix;
12
+ /** A colour transform, as CXFORM or, with alpha, CXFORMWITHALPHA: multipliers /256, offsets. */
13
+ export interface ColorTransform {
14
+ rMul: number;
15
+ gMul: number;
16
+ bMul: number;
17
+ aMul: number;
18
+ rAdd: number;
19
+ gAdd: number;
20
+ bAdd: number;
21
+ aAdd: number;
22
+ }
23
+ export interface GradientStop {
24
+ ratio: number;
25
+ /** 0xAARRGGBB. */
26
+ color: number;
27
+ }
28
+ export interface Gradient {
29
+ matrix: Matrix;
30
+ /** 0 pad, 1 reflect, 2 repeat. */
31
+ spread: number;
32
+ /** 0 normal RGB, 1 linear RGB. */
33
+ interpolation: number;
34
+ stops: GradientStop[];
35
+ /** A focal gradient's focal point, -1 to 1; 0 for any other. */
36
+ focal: number;
37
+ }
38
+ export type Fill = {
39
+ type: "solid";
40
+ color: number;
41
+ } | {
42
+ type: "linear" | "radial" | "focal";
43
+ gradient: Gradient;
44
+ } | {
45
+ type: "bitmap";
46
+ bitmap: number;
47
+ matrix: Matrix;
48
+ repeat: boolean;
49
+ smooth: boolean;
50
+ };
51
+ export interface Line {
52
+ /** Width in twips; 0 is a hairline. */
53
+ width: number;
54
+ /** 0xAARRGGBB, or the colour of a gradient's first stop for a filled line. */
55
+ color: number;
56
+ /** DefineShape4's LINESTYLE2 fields, else a round line. */
57
+ startCap: number;
58
+ endCap: number;
59
+ /** 0 round, 1 bevel, 2 miter. */
60
+ join: number;
61
+ miterLimit: number;
62
+ noHScale: boolean;
63
+ noVScale: boolean;
64
+ pixelHinting: boolean;
65
+ noClose: boolean;
66
+ fill: Fill | null;
67
+ }
68
+ /**
69
+ * A shape record: a style change, which may move the pen (moveTo, absolute),
70
+ * switch fills and line (0 for none, else 1-based into the styles in force),
71
+ * and bring new styles; or an edge from the pen, straight or quadratic,
72
+ * with its deltas in twips.
73
+ */
74
+ export type ShapeRecord = {
75
+ type: "style";
76
+ moveTo: {
77
+ x: number;
78
+ y: number;
79
+ } | null;
80
+ fill0: number | null;
81
+ fill1: number | null;
82
+ line: number | null;
83
+ styles: {
84
+ fills: Fill[];
85
+ lines: Line[];
86
+ } | null;
87
+ } | {
88
+ type: "line";
89
+ dx: number;
90
+ dy: number;
91
+ } | {
92
+ type: "curve";
93
+ cx: number;
94
+ cy: number;
95
+ ax: number;
96
+ ay: number;
97
+ };
98
+ export interface Shape {
99
+ id: number;
100
+ bounds: Rect;
101
+ /** DefineShape4's bounds without the lines' widths. */
102
+ edgeBounds: Rect | null;
103
+ fills: Fill[];
104
+ lines: Line[];
105
+ records: ShapeRecord[];
106
+ /** Whether the records ran past the tag's end. */
107
+ truncated: boolean;
108
+ }
109
+ export declare function readMatrix(r: SwfReader): Matrix;
110
+ export declare function readColorTransform(r: SwfReader, alpha: boolean): ColorTransform;
111
+ /** The records from the reader's position: fill and line bit counts first, then records to the end record. */
112
+ export declare function readRecords(r: SwfReader, version: number): {
113
+ records: ShapeRecord[];
114
+ truncated: boolean;
115
+ };
116
+ /**
117
+ * A DefineShape tag's body, of the version its code gives, from a SWF of
118
+ * `swfVersion`, which decides whether its bitmap fills may be smoothed.
119
+ */
120
+ export declare function readShape(bytes: Uint8Array, code: number, offset: number, length: number, swfVersion?: number): Shape;
121
+ /**
122
+ * DefineMorphShape or DefineMorphShape2: a shape at two ends, which a
123
+ * placement's ratio blends. Each fill and line is a pair, its start and its
124
+ * end; the end's records have the start's edges in the same order and only
125
+ * moves for style changes.
126
+ */
127
+ export interface MorphShape {
128
+ id: number;
129
+ startBounds: Rect;
130
+ endBounds: Rect;
131
+ /** DefineMorphShape2's bounds without the lines' widths. */
132
+ startEdgeBounds: Rect | null;
133
+ endEdgeBounds: Rect | null;
134
+ fills: {
135
+ start: Fill;
136
+ end: Fill;
137
+ }[];
138
+ lines: {
139
+ start: Line;
140
+ end: Line;
141
+ }[];
142
+ start: ShapeRecord[];
143
+ end: ShapeRecord[];
144
+ /** Whether either end's records ran past the tag's end. */
145
+ truncated: boolean;
146
+ }
147
+ /**
148
+ * A DefineMorphShape or DefineMorphShape2 tag's body, of the version its
149
+ * code gives, from a SWF of `swfVersion` (as `readShape`).
150
+ */
151
+ export declare function readMorphShape(bytes: Uint8Array, code: number, offset: number, length: number, swfVersion?: number): MorphShape;
152
+ //# sourceMappingURL=shape.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shape.d.ts","sourceRoot":"","sources":["../src/shape.ts"],"names":[],"mappings":"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"}
package/dist/shape.js ADDED
@@ -0,0 +1,412 @@
1
+ // Shapes as DefineShape, DefineShape2, DefineShape3 and DefineShape4 hold
2
+ // them (SWF specification, chapter 6): fill and line styles, then shape
3
+ // records, edges in twips relative to the pen and style changes that move
4
+ // it or switch styles, until an end record; and morph shapes, which hold
5
+ // two such shapes to blend. The player turns the edges into closed paths
6
+ // per fill; this file only decodes them.
7
+ import { SwfReader } from "./swf.js";
8
+ import { DefineMorphShape, DefineMorphShape2, DefineShape, DefineShape2, DefineShape3, DefineShape4, } from "./tags.js";
9
+ export const IDENTITY = { a: 1, b: 0, c: 0, d: 1, tx: 0, ty: 0 };
10
+ export function readMatrix(r) {
11
+ r.align();
12
+ const m = { ...IDENTITY };
13
+ if (r.ub(1)) {
14
+ const n = r.ub(5);
15
+ m.a = r.sb(n) / 65536;
16
+ m.d = r.sb(n) / 65536;
17
+ }
18
+ if (r.ub(1)) {
19
+ const n = r.ub(5);
20
+ m.b = r.sb(n) / 65536;
21
+ m.c = r.sb(n) / 65536;
22
+ }
23
+ const n = r.ub(5);
24
+ m.tx = r.sb(n);
25
+ m.ty = r.sb(n);
26
+ r.align();
27
+ return m;
28
+ }
29
+ export function readColorTransform(r, alpha) {
30
+ r.align();
31
+ const hasAdd = r.ub(1);
32
+ const hasMul = r.ub(1);
33
+ const n = r.ub(4);
34
+ const ct = { rMul: 1, gMul: 1, bMul: 1, aMul: 1, rAdd: 0, gAdd: 0, bAdd: 0, aAdd: 0 };
35
+ if (hasMul) {
36
+ ct.rMul = r.sb(n) / 256;
37
+ ct.gMul = r.sb(n) / 256;
38
+ ct.bMul = r.sb(n) / 256;
39
+ if (alpha) {
40
+ ct.aMul = r.sb(n) / 256;
41
+ }
42
+ }
43
+ if (hasAdd) {
44
+ ct.rAdd = r.sb(n);
45
+ ct.gAdd = r.sb(n);
46
+ ct.bAdd = r.sb(n);
47
+ if (alpha) {
48
+ ct.aAdd = r.sb(n);
49
+ }
50
+ }
51
+ r.align();
52
+ return ct;
53
+ }
54
+ /** RGB, or RGBA with alpha, as 0xAARRGGBB. */
55
+ function readColor(r, alpha) {
56
+ const red = r.u8();
57
+ const green = r.u8();
58
+ const blue = r.u8();
59
+ const a = alpha ? r.u8() : 255;
60
+ return ((a << 24) | (red << 16) | (green << 8) | blue) >>> 0;
61
+ }
62
+ function readGradient(r, alpha, focal) {
63
+ const matrix = readMatrix(r);
64
+ r.align();
65
+ const spread = r.ub(2);
66
+ const interpolation = r.ub(2);
67
+ const count = r.ub(4);
68
+ const stops = [];
69
+ for (let i = 0; i < count; i++) {
70
+ stops.push({ ratio: r.u8(), color: readColor(r, alpha) });
71
+ }
72
+ const f = focal ? r.s16() : 0;
73
+ return { matrix, spread, interpolation, stops, focal: f / 256 };
74
+ }
75
+ function readFill(r, version) {
76
+ const alpha = version >= 3;
77
+ const type = r.u8();
78
+ if (type === 0x00) {
79
+ return { type: "solid", color: readColor(r, alpha) };
80
+ }
81
+ if (type === 0x10 || type === 0x12 || type === 0x13) {
82
+ const kind = type === 0x10 ? "linear" : type === 0x12 ? "radial" : "focal";
83
+ return { type: kind, gradient: readGradient(r, alpha, type === 0x13) };
84
+ }
85
+ // Bitmap fills 0x40 to 0x43: repeating or clipped, smoothed or not. Any
86
+ // other type byte reads as one too, rather than failing the shape.
87
+ const bitmap = r.u16();
88
+ const matrix = readMatrix(r);
89
+ return { type: "bitmap", bitmap, matrix, repeat: (type & 1) === 0, smooth: (type & 2) === 0 };
90
+ }
91
+ function readFills(r, version) {
92
+ let count = r.u8();
93
+ if (count === 0xff && version >= 2) {
94
+ count = r.u16();
95
+ }
96
+ const fills = [];
97
+ for (let i = 0; i < count && !r.overrun; i++) {
98
+ fills.push(readFill(r, version));
99
+ }
100
+ return fills;
101
+ }
102
+ /** A line of DefineShape to DefineShape3, or a MORPHLINESTYLE's start or end: round, its colour only. */
103
+ function plainLine(width, color) {
104
+ return {
105
+ width,
106
+ color,
107
+ startCap: 0,
108
+ endCap: 0,
109
+ join: 0,
110
+ miterLimit: 3,
111
+ noHScale: false,
112
+ noVScale: false,
113
+ pixelHinting: false,
114
+ noClose: false,
115
+ fill: null,
116
+ };
117
+ }
118
+ /** LINESTYLE2's flags and miter limit, which MORPHLINESTYLE2 has too, before its fill or colour. */
119
+ function readLineFlags(r) {
120
+ const startCap = r.ub(2);
121
+ const join = r.ub(2);
122
+ const hasFill = r.ub(1) === 1;
123
+ const noHScale = r.ub(1) === 1;
124
+ const noVScale = r.ub(1) === 1;
125
+ const pixelHinting = r.ub(1) === 1;
126
+ r.ub(5); // reserved: the flags fill two bytes, must be zero
127
+ const noClose = r.ub(1) === 1;
128
+ const endCap = r.ub(2);
129
+ const miterLimit = join === 2 ? r.u16() / 256 : 3;
130
+ return { startCap, endCap, join, miterLimit, noHScale, noVScale, pixelHinting, noClose, hasFill };
131
+ }
132
+ /** The colour a filled line stands for where only a colour is read. */
133
+ function fillColor(fill) {
134
+ return fill.type === "solid"
135
+ ? fill.color
136
+ : fill.type === "bitmap"
137
+ ? 0xff000000
138
+ : (fill.gradient.stops[0]?.color ?? 0xff000000);
139
+ }
140
+ function readLines(r, version) {
141
+ let count = r.u8();
142
+ if (count === 0xff && version >= 2) {
143
+ count = r.u16();
144
+ }
145
+ const lines = [];
146
+ for (let i = 0; i < count && !r.overrun; i++) {
147
+ const width = r.u16();
148
+ if (version < 4) {
149
+ lines.push(plainLine(width, readColor(r, version >= 3)));
150
+ continue;
151
+ }
152
+ const { hasFill, ...flags } = readLineFlags(r);
153
+ const fill = hasFill ? readFill(r, version) : null;
154
+ const color = fill ? fillColor(fill) : readColor(r, true);
155
+ lines.push({ width, color, ...flags, fill });
156
+ }
157
+ return lines;
158
+ }
159
+ /** The records from the reader's position: fill and line bit counts first, then records to the end record. */
160
+ export function readRecords(r, version) {
161
+ r.align();
162
+ let fillBits = r.ub(4);
163
+ let lineBits = r.ub(4);
164
+ const records = [];
165
+ for (;;) {
166
+ if (r.overrun) {
167
+ return { records, truncated: true };
168
+ }
169
+ if (r.ub(1)) {
170
+ // An edge.
171
+ const straight = r.ub(1);
172
+ const n = r.ub(4) + 2;
173
+ if (straight) {
174
+ const general = r.ub(1);
175
+ const vertical = general ? 0 : r.ub(1);
176
+ const dx = general || !vertical ? r.sb(n) : 0;
177
+ const dy = general || vertical ? r.sb(n) : 0;
178
+ records.push({ type: "line", dx, dy });
179
+ }
180
+ else {
181
+ records.push({ type: "curve", cx: r.sb(n), cy: r.sb(n), ax: r.sb(n), ay: r.sb(n) });
182
+ }
183
+ continue;
184
+ }
185
+ const flags = r.ub(5);
186
+ if (flags === 0) {
187
+ return { records, truncated: false };
188
+ }
189
+ let moveTo = null;
190
+ if (flags & 1) {
191
+ const n = r.ub(5);
192
+ moveTo = { x: r.sb(n), y: r.sb(n) };
193
+ }
194
+ const fill0 = flags & 2 ? r.ub(fillBits) : null;
195
+ const fill1 = flags & 4 ? r.ub(fillBits) : null;
196
+ const line = flags & 8 ? r.ub(lineBits) : null;
197
+ let styles = null;
198
+ if (flags & 16 && version >= 2) {
199
+ styles = { fills: readFills(r, version), lines: readLines(r, version) };
200
+ r.align();
201
+ fillBits = r.ub(4);
202
+ lineBits = r.ub(4);
203
+ }
204
+ records.push({ type: "style", moveTo, fill0, fill1, line, styles });
205
+ }
206
+ }
207
+ /**
208
+ * SWF 8 brought the unsmoothed bitmap fills (0x42, 0x43). In an older SWF
209
+ * Flash Player draws the others unsmoothed as well, still or moving, as
210
+ * Ruffle reads them; AIR's runtime smooths them (`avm1-bitmap-smoothing-swf7`).
211
+ */
212
+ const SMOOTHED_FILLS_VERSION = 8;
213
+ function unsmooth(fill) {
214
+ if (fill?.type === "bitmap") {
215
+ fill.smooth = false;
216
+ }
217
+ }
218
+ function unsmoothStyles(fills, lines) {
219
+ for (let i = 0; i < fills.length; i++) {
220
+ unsmooth(fills[i]);
221
+ }
222
+ for (let i = 0; i < lines.length; i++) {
223
+ unsmooth(lines[i].fill);
224
+ }
225
+ }
226
+ /**
227
+ * A DefineShape tag's body, of the version its code gives, from a SWF of
228
+ * `swfVersion`, which decides whether its bitmap fills may be smoothed.
229
+ */
230
+ export function readShape(bytes, code, offset, length, swfVersion = SMOOTHED_FILLS_VERSION) {
231
+ const version = code === DefineShape ? 1 : code === DefineShape2 ? 2 : code === DefineShape3 ? 3 : 4;
232
+ if (code !== DefineShape &&
233
+ code !== DefineShape2 &&
234
+ code !== DefineShape3 &&
235
+ code !== DefineShape4) {
236
+ throw new Error(`tag ${code} is not a shape`);
237
+ }
238
+ const r = new SwfReader(bytes, offset, offset + length);
239
+ const id = r.u16();
240
+ const bounds = r.rect();
241
+ let edgeBounds = null;
242
+ if (version === 4) {
243
+ edgeBounds = r.rect();
244
+ r.u8();
245
+ }
246
+ const fills = readFills(r, version);
247
+ const lines = readLines(r, version);
248
+ const { records, truncated } = readRecords(r, version);
249
+ if (swfVersion < SMOOTHED_FILLS_VERSION) {
250
+ unsmoothStyles(fills, lines);
251
+ for (let i = 0; i < records.length; i++) {
252
+ const record = records[i];
253
+ if (record.type === "style" && record.styles) {
254
+ unsmoothStyles(record.styles.fills, record.styles.lines);
255
+ }
256
+ }
257
+ }
258
+ return { id, bounds, edgeBounds, fills, lines, records, truncated };
259
+ }
260
+ /** MORPHGRADIENT: both matrices, then each stop's start and end. */
261
+ function readMorphGradient(r, focal) {
262
+ const startMatrix = readMatrix(r);
263
+ const endMatrix = readMatrix(r);
264
+ // The count's byte carries spread and interpolation as a shape's
265
+ // gradient's does, which Flash writes and reads alike.
266
+ const spread = r.ub(2);
267
+ const interpolation = r.ub(2);
268
+ const count = r.ub(4);
269
+ const startStops = [];
270
+ const endStops = [];
271
+ for (let i = 0; i < count; i++) {
272
+ startStops.push({ ratio: r.u8(), color: readColor(r, true) });
273
+ endStops.push({ ratio: r.u8(), color: readColor(r, true) });
274
+ }
275
+ const startFocal = focal ? r.s16() / 256 : 0;
276
+ const endFocal = focal ? r.s16() / 256 : 0;
277
+ return {
278
+ start: { matrix: startMatrix, spread, interpolation, stops: startStops, focal: startFocal },
279
+ end: { matrix: endMatrix, spread, interpolation, stops: endStops, focal: endFocal },
280
+ };
281
+ }
282
+ function readMorphFill(r) {
283
+ const type = r.u8();
284
+ if (type === 0x00) {
285
+ return {
286
+ start: { type: "solid", color: readColor(r, true) },
287
+ end: { type: "solid", color: readColor(r, true) },
288
+ };
289
+ }
290
+ if (type === 0x10 || type === 0x12 || type === 0x13) {
291
+ const kind = type === 0x10 ? "linear" : type === 0x12 ? "radial" : "focal";
292
+ const { start, end } = readMorphGradient(r, type === 0x13);
293
+ return { start: { type: kind, gradient: start }, end: { type: kind, gradient: end } };
294
+ }
295
+ const bitmap = r.u16();
296
+ const repeat = (type & 1) === 0;
297
+ const smooth = (type & 2) === 0;
298
+ return {
299
+ start: { type: "bitmap", bitmap, matrix: readMatrix(r), repeat, smooth },
300
+ end: { type: "bitmap", bitmap, matrix: readMatrix(r), repeat, smooth },
301
+ };
302
+ }
303
+ function readMorphFills(r) {
304
+ let count = r.u8();
305
+ if (count === 0xff) {
306
+ count = r.u16();
307
+ }
308
+ const fills = [];
309
+ for (let i = 0; i < count && !r.overrun; i++) {
310
+ fills.push(readMorphFill(r));
311
+ }
312
+ return fills;
313
+ }
314
+ /**
315
+ * MORPHLINESTYLE (version 1) or MORPHLINESTYLE2 (2): both widths, then colours, or flags and a
316
+ * fill.
317
+ */
318
+ function readMorphLines(r, version) {
319
+ let count = r.u8();
320
+ if (count === 0xff) {
321
+ count = r.u16();
322
+ }
323
+ const lines = [];
324
+ for (let i = 0; i < count && !r.overrun; i++) {
325
+ const startWidth = r.u16();
326
+ const endWidth = r.u16();
327
+ if (version < 2) {
328
+ const startColor = readColor(r, true);
329
+ lines.push({
330
+ start: plainLine(startWidth, startColor),
331
+ end: plainLine(endWidth, readColor(r, true)),
332
+ });
333
+ continue;
334
+ }
335
+ const { hasFill, ...flags } = readLineFlags(r);
336
+ if (hasFill) {
337
+ const fill = readMorphFill(r);
338
+ lines.push({
339
+ start: { width: startWidth, color: fillColor(fill.start), ...flags, fill: fill.start },
340
+ end: { width: endWidth, color: fillColor(fill.end), ...flags, fill: fill.end },
341
+ });
342
+ continue;
343
+ }
344
+ const startColor = readColor(r, true);
345
+ const endColor = readColor(r, true);
346
+ lines.push({
347
+ start: { width: startWidth, color: startColor, ...flags, fill: null },
348
+ end: { width: endWidth, color: endColor, ...flags, fill: null },
349
+ });
350
+ }
351
+ return lines;
352
+ }
353
+ /**
354
+ * A DefineMorphShape or DefineMorphShape2 tag's body, of the version its
355
+ * code gives, from a SWF of `swfVersion` (as `readShape`).
356
+ */
357
+ export function readMorphShape(bytes, code, offset, length, swfVersion = SMOOTHED_FILLS_VERSION) {
358
+ if (code !== DefineMorphShape && code !== DefineMorphShape2) {
359
+ throw new Error(`tag ${code} is not a morph shape`);
360
+ }
361
+ const version = code === DefineMorphShape ? 1 : 2;
362
+ const r = new SwfReader(bytes, offset, offset + length);
363
+ const id = r.u16();
364
+ const startBounds = r.rect();
365
+ const endBounds = r.rect();
366
+ let startEdgeBounds = null;
367
+ let endEdgeBounds = null;
368
+ if (version === 2) {
369
+ startEdgeBounds = r.rect();
370
+ endEdgeBounds = r.rect();
371
+ r.u8();
372
+ }
373
+ // The end's records are where the offset says, which may be past where
374
+ // the start's end when a tool pads them.
375
+ const endOffset = r.u32();
376
+ const endAt = r.pos + endOffset;
377
+ const fills = readMorphFills(r);
378
+ const lines = readMorphLines(r, version);
379
+ // The start's records stop at the end's, where the offset lies past the
380
+ // styles and in the tag: one missing its end record reads no further. A
381
+ // style change in either end's records brings no new styles: version 1
382
+ // reads none.
383
+ const offsetValid = endOffset !== 0 && endAt >= r.pos && endAt <= r.end;
384
+ const start = readRecords(offsetValid ? new SwfReader(r.bytes, r.pos, endAt) : r, 1);
385
+ if (offsetValid) {
386
+ r.pos = endAt;
387
+ }
388
+ const end = readRecords(r, 1);
389
+ if (swfVersion < SMOOTHED_FILLS_VERSION) {
390
+ for (let i = 0; i < fills.length; i++) {
391
+ unsmooth(fills[i].start);
392
+ unsmooth(fills[i].end);
393
+ }
394
+ for (let i = 0; i < lines.length; i++) {
395
+ unsmooth(lines[i].start.fill);
396
+ unsmooth(lines[i].end.fill);
397
+ }
398
+ }
399
+ return {
400
+ id,
401
+ startBounds,
402
+ endBounds,
403
+ startEdgeBounds,
404
+ endEdgeBounds,
405
+ fills,
406
+ lines,
407
+ start: start.records,
408
+ end: end.records,
409
+ truncated: start.truncated || end.truncated,
410
+ };
411
+ }
412
+ //# sourceMappingURL=shape.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shape.js","sourceRoot":"","sources":["../src/shape.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,wEAAwE;AACxE,0EAA0E;AAC1E,yEAAyE;AACzE,yEAAyE;AACzE,yCAAyC;AACzC,OAAO,EAAa,SAAS,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,YAAY,GACb,MAAM,WAAW,CAAC;AAYnB,MAAM,CAAC,MAAM,QAAQ,GAAW,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;AAoFzE,MAAM,UAAU,UAAU,CAAC,CAAY;IACrC,CAAC,CAAC,KAAK,EAAE,CAAC;IACV,MAAM,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;IAE1B,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACZ,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACZ,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACf,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACf,CAAC,CAAC,KAAK,EAAE,CAAC;IACV,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,CAAY,EAAE,KAAc;IAC7D,CAAC,CAAC,KAAK,EAAE,CAAC;IACV,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAClB,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAEtF,IAAI,MAAM,EAAE,CAAC;QACX,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACxB,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACxB,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACxB,IAAI,KAAK,EAAE,CAAC;YACV,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAClB,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAClB,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,KAAK,EAAE,CAAC;YACV,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,CAAC,CAAC,KAAK,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,8CAA8C;AAC9C,SAAS,SAAS,CAAC,CAAY,EAAE,KAAc;IAC7C,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;IACnB,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;IACrB,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;IACpB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAC/B,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,YAAY,CAAC,CAAY,EAAE,KAAc,EAAE,KAAc;IAChE,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC,CAAC,KAAK,EAAE,CAAC;IAEV,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,KAAK,GAAmB,EAAE,CAAC;IACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC;AAClE,CAAC;AAED,SAAS,QAAQ,CAAC,CAAY,EAAE,OAAe;IAC7C,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,CAAC;IAC3B,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;IACpB,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;IACvD,CAAC;IAED,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QACpD,MAAM,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;QAC3E,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;IACzE,CAAC;IAED,wEAAwE;IACxE,mEAAmE;IACnE,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC7B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;AAChG,CAAC;AAED,SAAS,SAAS,CAAC,CAAY,EAAE,OAAe;IAC9C,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;IACnB,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QACnC,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,yGAAyG;AACzG,SAAS,SAAS,CAAC,KAAa,EAAE,KAAa;IAC7C,OAAO;QACL,KAAK;QACL,KAAK;QACL,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,CAAC;QACT,IAAI,EAAE,CAAC;QACP,UAAU,EAAE,CAAC;QACb,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,KAAK;QACnB,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,IAAI;KACX,CAAC;AACJ,CAAC;AAED,oGAAoG;AACpG,SAAS,aAAa,CACpB,CAAY;IAEZ,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAEnC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,mDAAmD;IAE5D,MAAM,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,UAAU,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AACpG,CAAC;AAED,uEAAuE;AACvE,SAAS,SAAS,CAAC,IAAU;IAC3B,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO;QAC1B,CAAC,CAAC,IAAI,CAAC,KAAK;QACZ,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ;YACtB,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,UAAU,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,SAAS,CAAC,CAAY,EAAE,OAAe;IAC9C,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;IACnB,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QACnC,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QACtB,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACzD,SAAS;QACX,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACnD,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC1D,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8GAA8G;AAC9G,MAAM,UAAU,WAAW,CACzB,CAAY,EACZ,OAAe;IAEf,CAAC,CAAC,KAAK,EAAE,CAAC;IACV,IAAI,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,OAAO,GAAkB,EAAE,CAAC;IAElC,SAAS,CAAC;QACR,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QACtC,CAAC;QAED,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACZ,WAAW;YACX,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACtB,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACxB,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACvC,MAAM,EAAE,GAAG,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9C,MAAM,EAAE,GAAG,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7C,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACtF,CAAC;YAED,SAAS;QACX,CAAC;QAED,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QACvC,CAAC;QAED,IAAI,MAAM,GAAoC,IAAI,CAAC;QACnD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAClB,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtC,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAChD,MAAM,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAChD,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/C,IAAI,MAAM,GAA4C,IAAI,CAAC;QAE3D,IAAI,KAAK,GAAG,EAAE,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;YAC/B,MAAM,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;YACxE,CAAC,CAAC,KAAK,EAAE,CAAC;YACV,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACnB,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACtE,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAEjC,SAAS,QAAQ,CAAC,IAAiB;IACjC,IAAI,IAAI,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,KAAa,EAAE,KAAa;IAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CACvB,KAAiB,EACjB,IAAY,EACZ,MAAc,EACd,MAAc,EACd,UAAU,GAAG,sBAAsB;IAEnC,MAAM,OAAO,GACX,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvF,IACE,IAAI,KAAK,WAAW;QACpB,IAAI,KAAK,YAAY;QACrB,IAAI,KAAK,YAAY;QACrB,IAAI,KAAK,YAAY,EACrB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,iBAAiB,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IACxD,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACnB,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAExB,IAAI,UAAU,GAAgB,IAAI,CAAC;IACnC,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QAClB,UAAU,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC,CAAC,EAAE,EAAE,CAAC;IACT,CAAC;IAED,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACpC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACvD,IAAI,UAAU,GAAG,sBAAsB,EAAE,CAAC;QACxC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC7C,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AACtE,CAAC;AAuBD,oEAAoE;AACpE,SAAS,iBAAiB,CAAC,CAAY,EAAE,KAAc;IACrD,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAEhC,iEAAiE;IACjE,uDAAuD;IACvD,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,UAAU,GAAmB,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAmB,EAAE,CAAC;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9D,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,OAAO;QACL,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;QAC3F,GAAG,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;KACpF,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,CAAY;IACjC,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;IACpB,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO;YACL,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE;YACnD,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE;SAClD,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QACpD,MAAM,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;QAC3E,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,iBAAiB,CAAC,CAAC,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC;QAC3D,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,CAAC;IACxF,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAChC,OAAO;QACL,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE;QACxE,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE;KACvE,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,CAAY;IAClC,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;IACnB,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAiC,EAAE,CAAC;IAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CAAC,CAAY,EAAE,OAAe;IACnD,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;IACnB,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAiC,EAAE,CAAC;IAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QACzB,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC;gBACT,KAAK,EAAE,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC;gBACxC,GAAG,EAAE,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;aAC7C,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC;gBACT,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE;gBACtF,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;aAC/E,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC;YACT,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;YACrE,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;SAChE,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAiB,EACjB,IAAY,EACZ,MAAc,EACd,MAAc,EACd,UAAU,GAAG,sBAAsB;IAEnC,IAAI,IAAI,KAAK,gBAAgB,IAAI,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,uBAAuB,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IACxD,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACnB,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7B,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAE3B,IAAI,eAAe,GAAgB,IAAI,CAAC;IACxC,IAAI,aAAa,GAAgB,IAAI,CAAC;IACtC,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QAClB,eAAe,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3B,aAAa,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACzB,CAAC,CAAC,EAAE,EAAE,CAAC;IACT,CAAC;IAED,uEAAuE;IACvE,yCAAyC;IACzC,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC;IAChC,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAEzC,wEAAwE;IACxE,wEAAwE;IACxE,uEAAuE;IACvE,cAAc;IACd,MAAM,WAAW,GAAG,SAAS,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC;IACxE,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrF,IAAI,WAAW,EAAE,CAAC;QAChB,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9B,IAAI,UAAU,GAAG,sBAAsB,EAAE,CAAC;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACzB,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9B,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,OAAO;QACL,EAAE;QACF,WAAW;QACX,SAAS;QACT,eAAe;QACf,aAAa;QACb,KAAK;QACL,KAAK;QACL,KAAK,EAAE,KAAK,CAAC,OAAO;QACpB,GAAG,EAAE,GAAG,CAAC,OAAO;QAChB,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS;KAC5C,CAAC;AACJ,CAAC"}