@realsee/hdr-toolbox 1.1.2 → 1.1.4
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 +56 -29
- package/dist/avif-codec.d.ts +43 -0
- package/dist/avif-codec.d.ts.map +1 -0
- package/dist/avif-codec.js +91 -0
- package/dist/avif-codec.js.map +1 -0
- package/dist/avif-container.d.ts +83 -0
- package/dist/avif-container.d.ts.map +1 -0
- package/dist/avif-container.js +368 -0
- package/dist/avif-container.js.map +1 -0
- package/dist/avif-gainmap.d.ts +31 -0
- package/dist/avif-gainmap.d.ts.map +1 -0
- package/dist/avif-gainmap.js +124 -0
- package/dist/avif-gainmap.js.map +1 -0
- package/dist/avif.d.ts +50 -0
- package/dist/avif.d.ts.map +1 -0
- package/dist/avif.js +206 -0
- package/dist/avif.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +32 -37
- package/dist/cli.js.map +1 -1
- package/dist/convert.d.ts +36 -17
- package/dist/convert.d.ts.map +1 -1
- package/dist/convert.js +152 -44
- package/dist/convert.js.map +1 -1
- package/dist/exr.d.ts +4 -3
- package/dist/exr.d.ts.map +1 -1
- package/dist/exr.js +160 -8
- package/dist/exr.js.map +1 -1
- package/dist/hdr-transfer.d.ts +50 -0
- package/dist/hdr-transfer.d.ts.map +1 -0
- package/dist/hdr-transfer.js +147 -0
- package/dist/hdr-transfer.js.map +1 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/package.json +10 -1
package/dist/convert.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { mkdir, readFile, writeFile } from "node:fs/promises";
|
|
2
2
|
import { dirname, extname } from "node:path";
|
|
3
3
|
import sharp from "sharp";
|
|
4
|
+
import { defaultAvifQuality, encodeAvifGainMap, encodeAvifHdr10, readAvif, } from "./avif.js";
|
|
4
5
|
import { readExr, writeExr } from "./exr.js";
|
|
5
6
|
import { readHdr, writeHdr } from "./hdr.js";
|
|
7
|
+
import { PQ_PEAK_LINEAR } from "./hdr-transfer.js";
|
|
6
8
|
import { acesSdr, agxSdr, exposureFusion, reinhardSdr } from "./tonemap.js";
|
|
7
9
|
import { composeUltraHdrBuffers, extractUltraHdrBuffers } from "./ultrahdr.js";
|
|
8
|
-
import { normalizeGainMapConfig } from "./xmp.js";
|
|
9
10
|
/** Resolves a linear HDR format from an explicit option, then the path extension. */
|
|
10
11
|
export function resolveLinearHdrFormat(explicit, path) {
|
|
11
12
|
if (explicit)
|
|
@@ -17,6 +18,17 @@ export function resolveLinearHdrFormat(explicit, path) {
|
|
|
17
18
|
return "hdr";
|
|
18
19
|
throw new Error(`Unable to infer a linear HDR format from "${path}". Use a .exr or .hdr extension.`);
|
|
19
20
|
}
|
|
21
|
+
/** Resolves the container family from the file extension. */
|
|
22
|
+
export function resolveContainerKind(path) {
|
|
23
|
+
const extension = extname(path).replace(/^\./, "").toLowerCase();
|
|
24
|
+
if (extension === "exr" || extension === "hdr" || extension === "pic")
|
|
25
|
+
return "linear";
|
|
26
|
+
if (extension === "jpg" || extension === "jpeg")
|
|
27
|
+
return "ultrahdr";
|
|
28
|
+
if (extension === "avif")
|
|
29
|
+
return "avif";
|
|
30
|
+
throw new Error(`Unsupported image extension for "${path}". Use .exr, .hdr, .jpg, .jpeg or .avif.`);
|
|
31
|
+
}
|
|
20
32
|
function decodeLinearHdr(buffer, format) {
|
|
21
33
|
return format === "exr" ? readExr(buffer) : readHdr(buffer);
|
|
22
34
|
}
|
|
@@ -33,26 +45,41 @@ async function decodeRgb(jpeg) {
|
|
|
33
45
|
.removeAlpha()
|
|
34
46
|
.raw()
|
|
35
47
|
.toBuffer({ resolveWithObject: true });
|
|
36
|
-
return {
|
|
48
|
+
return { width: info.width, height: info.height, data };
|
|
49
|
+
}
|
|
50
|
+
async function encodeRgbJpeg(image, quality) {
|
|
51
|
+
return sharp(image.data, { raw: { width: image.width, height: image.height, channels: 3 } })
|
|
52
|
+
.jpeg({ quality })
|
|
53
|
+
.toBuffer();
|
|
54
|
+
}
|
|
55
|
+
async function readSource(path, kind, inputFormat) {
|
|
56
|
+
const buffer = await readFile(path);
|
|
57
|
+
if (kind === "linear")
|
|
58
|
+
return {
|
|
59
|
+
kind: "linear",
|
|
60
|
+
image: decodeLinearHdr(buffer, resolveLinearHdrFormat(inputFormat, path)),
|
|
61
|
+
};
|
|
62
|
+
if (kind === "ultrahdr") {
|
|
63
|
+
const extracted = extractUltraHdrBuffers(buffer);
|
|
64
|
+
const [sdr, gain] = await Promise.all([decodeRgb(extracted.sdr), decodeRgb(extracted.gainMap)]);
|
|
65
|
+
return { kind: "gain", pair: { sdr, gain, config: extracted.config } };
|
|
66
|
+
}
|
|
67
|
+
const content = await readAvif(buffer);
|
|
68
|
+
if (content.kind === "gainmap")
|
|
69
|
+
return { kind: "gain", pair: content.pair };
|
|
70
|
+
return { kind: "linear", image: content.image };
|
|
37
71
|
}
|
|
38
72
|
/**
|
|
39
|
-
* Reconstructs
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
* Applies the Adobe/Android gain map recovery per channel:
|
|
43
|
-
* logBoost = lerp(log2(min), log2(max), gain^(1/gamma))
|
|
73
|
+
* Reconstructs linear light from an SDR base and gain map (ISO 21496-1 / Ultra
|
|
74
|
+
* HDR recovery, per channel):
|
|
75
|
+
* logBoost = lerp(log2(min), log2(max), gain^(1/gamma)) * weight
|
|
44
76
|
* hdr = (sdr_linear + offsetSdr) * 2^logBoost - offsetHdr
|
|
45
|
-
*
|
|
46
|
-
* intent
|
|
77
|
+
* `weight` is the fraction of the content's boost to apply. 1 gives the full HDR
|
|
78
|
+
* intent. Lower values scale highlights down to a display's headroom.
|
|
47
79
|
*/
|
|
48
|
-
|
|
49
|
-
const
|
|
50
|
-
const
|
|
51
|
-
const config = normalizeGainMapConfig(extracted.config);
|
|
52
|
-
const sdr = await decodeRgb(extracted.sdr);
|
|
53
|
-
const gain = await decodeRgb(extracted.gainMap);
|
|
54
|
-
const width = sdr.width;
|
|
55
|
-
const height = sdr.height;
|
|
80
|
+
function reconstructLinear(pair, weight) {
|
|
81
|
+
const { sdr, gain, config } = pair;
|
|
82
|
+
const { width, height } = sdr;
|
|
56
83
|
const output = new Float32Array(width * height * 3);
|
|
57
84
|
const logMin = Math.log2(config.minContentBoost);
|
|
58
85
|
const logMax = Math.log2(config.maxContentBoost);
|
|
@@ -71,23 +98,30 @@ export async function ultraHdrToLinearHdr(options) {
|
|
|
71
98
|
const gainValue = gain.data[gainIndex + channel] / 255;
|
|
72
99
|
const logRecovery = gainValue ** inverseGamma;
|
|
73
100
|
const logBoost = logMin + (logMax - logMin) * logRecovery;
|
|
74
|
-
|
|
75
|
-
|
|
101
|
+
output[sdrIndex + channel] =
|
|
102
|
+
(sdrLinear + config.offsetSdr) * 2 ** (logBoost * weight) - config.offsetHdr;
|
|
76
103
|
}
|
|
77
104
|
}
|
|
78
105
|
}
|
|
79
|
-
|
|
80
|
-
await writeFile(options.output, encodeLinearHdr({ width, height, data: output }, format));
|
|
106
|
+
return { width, height, data: output };
|
|
81
107
|
}
|
|
82
108
|
/**
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
* map as the per-pixel quotient between HDR and SDR, and composes the three into
|
|
86
|
-
* an Ultra HDR container.
|
|
109
|
+
* Fraction of the content's boost that a PQ display can show. Limits highlights
|
|
110
|
+
* to the 10000-nit PQ peak instead of clipping them.
|
|
87
111
|
*/
|
|
88
|
-
|
|
89
|
-
const
|
|
90
|
-
|
|
112
|
+
function pqBoostWeight(config) {
|
|
113
|
+
const logMax = Math.log2(config.maxContentBoost);
|
|
114
|
+
if (logMax <= 0)
|
|
115
|
+
return 1;
|
|
116
|
+
return Math.min(1, Math.log2(Math.min(config.maxContentBoost, PQ_PEAK_LINEAR)) / logMax);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Builds an SDR base and gain map from linear HDR. The base is the tone-mapped
|
|
120
|
+
* image quantised to 8-bit sRGB. The gain map is the HDR-to-base ratio, derived
|
|
121
|
+
* from the quantised base so reconstruction matches what is stored.
|
|
122
|
+
*/
|
|
123
|
+
function buildGainMapPair(image, options) {
|
|
124
|
+
const { width, height, data } = image;
|
|
91
125
|
// Determine the HDR headroom from the brightest linear value so the gain map
|
|
92
126
|
// range covers the content without clipping.
|
|
93
127
|
let peak = 1;
|
|
@@ -97,9 +131,6 @@ export async function linearHdrToUltraHdr(options) {
|
|
|
97
131
|
}
|
|
98
132
|
const maxContentBoost = Math.max(1.0001, options.maxContentBoost ?? Math.min(peak, 2 ** 14));
|
|
99
133
|
const logMax = Math.log2(maxContentBoost);
|
|
100
|
-
// Build the SDR base with the chosen tone map. Both operators return
|
|
101
|
-
// interleaved 8-bit sRGB; the gain map is then derived from this quantised
|
|
102
|
-
// base so HDR reconstruction stays consistent with what actually ships.
|
|
103
134
|
const toneMap = options.toneMap ?? "fusion";
|
|
104
135
|
const sdrPixels = toneMap === "reinhard"
|
|
105
136
|
? reinhardSdr(data, width, height)
|
|
@@ -126,16 +157,6 @@ export async function linearHdrToUltraHdr(options) {
|
|
|
126
157
|
gainPixels[base + channel] = Math.round(normalized * 255);
|
|
127
158
|
}
|
|
128
159
|
}
|
|
129
|
-
const sdrQuality = options.sdrQuality ?? 95;
|
|
130
|
-
const gainMapQuality = options.gainMapQuality ?? 95;
|
|
131
|
-
const [sdrJpeg, gainMapJpeg] = await Promise.all([
|
|
132
|
-
sharp(sdrPixels, { raw: { width, height, channels: 3 } })
|
|
133
|
-
.jpeg({ quality: sdrQuality })
|
|
134
|
-
.toBuffer(),
|
|
135
|
-
sharp(gainPixels, { raw: { width, height, channels: 3 } })
|
|
136
|
-
.jpeg({ quality: gainMapQuality })
|
|
137
|
-
.toBuffer(),
|
|
138
|
-
]);
|
|
139
160
|
const config = {
|
|
140
161
|
maxContentBoost,
|
|
141
162
|
minContentBoost: 1,
|
|
@@ -146,9 +167,96 @@ export async function linearHdrToUltraHdr(options) {
|
|
|
146
167
|
hdrCapacityMax: maxContentBoost,
|
|
147
168
|
useBaseColorSpace: true,
|
|
148
169
|
};
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
170
|
+
return {
|
|
171
|
+
sdr: { width, height, data: sdrPixels },
|
|
172
|
+
gain: { width, height, data: gainPixels },
|
|
173
|
+
config,
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
function toLinear(source, weight) {
|
|
177
|
+
return source.kind === "linear" ? source.image : reconstructLinear(source.pair, weight);
|
|
178
|
+
}
|
|
179
|
+
function toGainPair(source, options) {
|
|
180
|
+
return source.kind === "gain" ? source.pair : buildGainMapPair(source.image, options);
|
|
181
|
+
}
|
|
182
|
+
async function writeLinear(path, image, format) {
|
|
183
|
+
await mkdir(dirname(path), { recursive: true });
|
|
184
|
+
await writeFile(path, encodeLinearHdr(image, format));
|
|
185
|
+
}
|
|
186
|
+
async function writeUltraHdr(path, pair, options) {
|
|
187
|
+
const [sdrJpeg, gainJpeg] = await Promise.all([
|
|
188
|
+
encodeRgbJpeg(pair.sdr, options.sdrQuality ?? 95),
|
|
189
|
+
encodeRgbJpeg(pair.gain, options.gainMapQuality ?? 95),
|
|
190
|
+
]);
|
|
191
|
+
const container = await composeUltraHdrBuffers(sdrJpeg, gainJpeg, pair.config);
|
|
192
|
+
await mkdir(dirname(path), { recursive: true });
|
|
193
|
+
await writeFile(path, container);
|
|
194
|
+
}
|
|
195
|
+
/** Checks AVIF output options. Called before any input is read. */
|
|
196
|
+
function validateAvifOptions(options) {
|
|
197
|
+
const quality = options.avifQuality ?? defaultAvifQuality;
|
|
198
|
+
if (!Number.isFinite(quality) || quality < 0 || quality > 100)
|
|
199
|
+
throw new Error("AVIF quality must be between 0 and 100.");
|
|
200
|
+
const mode = options.avifMode ?? "gainmap";
|
|
201
|
+
if (mode !== "gainmap" && mode !== "hdr10")
|
|
202
|
+
throw new Error(`Unsupported AVIF mode "${mode}". Use "gainmap" or "hdr10".`);
|
|
203
|
+
}
|
|
204
|
+
async function writeAvif(path, source, options) {
|
|
205
|
+
const quality = options.avifQuality ?? defaultAvifQuality;
|
|
206
|
+
const mode = options.avifMode ?? "gainmap";
|
|
207
|
+
let encoded;
|
|
208
|
+
if (mode === "gainmap") {
|
|
209
|
+
encoded = await encodeAvifGainMap(toGainPair(source, options), { quality });
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
// Gain maps are reconstructed only up to the PQ peak, so highlights are not clipped.
|
|
213
|
+
const weight = source.kind === "gain" ? pqBoostWeight(source.pair.config) : 1;
|
|
214
|
+
encoded = await encodeAvifHdr10(toLinear(source, weight), { quality });
|
|
215
|
+
}
|
|
216
|
+
await mkdir(dirname(path), { recursive: true });
|
|
217
|
+
await writeFile(path, encoded);
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Converts between linear HDR (EXR, Radiance HDR), Ultra HDR JPEG and AVIF. The
|
|
221
|
+
* input and output formats come from their extensions.
|
|
222
|
+
*
|
|
223
|
+
* - Linear HDR input is tone-mapped into an SDR base and gain map when the
|
|
224
|
+
* output needs one. The tone-map options apply to that step.
|
|
225
|
+
* - Gain map input (Ultra HDR JPEG or gain map AVIF) is reconstructed to linear
|
|
226
|
+
* light for linear output. For 10-bit PQ AVIF output it is limited to the PQ
|
|
227
|
+
* peak. For Ultra HDR and gain map AVIF output it is passed through.
|
|
228
|
+
* - 10-bit PQ AVIF input is decoded to linear light.
|
|
229
|
+
*/
|
|
230
|
+
export async function convertHdrImage(options) {
|
|
231
|
+
const inputKind = resolveContainerKind(options.input);
|
|
232
|
+
const outputKind = resolveContainerKind(options.output);
|
|
233
|
+
if (outputKind === "avif")
|
|
234
|
+
validateAvifOptions(options);
|
|
235
|
+
const source = await readSource(options.input, inputKind, options.inputFormat);
|
|
236
|
+
if (outputKind === "linear") {
|
|
237
|
+
const format = resolveLinearHdrFormat(options.format, options.output);
|
|
238
|
+
await writeLinear(options.output, toLinear(source, 1), format);
|
|
239
|
+
}
|
|
240
|
+
else if (outputKind === "ultrahdr") {
|
|
241
|
+
await writeUltraHdr(options.output, toGainPair(source, options), options);
|
|
242
|
+
}
|
|
243
|
+
else {
|
|
244
|
+
await writeAvif(options.output, source, options);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
/** Reconstructs a linear-light HDR image from an Ultra HDR JPEG at full headroom. */
|
|
248
|
+
export async function ultraHdrToLinearHdr(options) {
|
|
249
|
+
await convertHdrImage(options);
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Builds an Ultra HDR JPEG from a linear float EXR or Radiance HDR file (chosen
|
|
253
|
+
* by the input extension). Tone maps the HDR data to an SDR base, derives a gain
|
|
254
|
+
* map as the per-pixel quotient between HDR and SDR, and composes the three into
|
|
255
|
+
* an Ultra HDR container.
|
|
256
|
+
*/
|
|
257
|
+
export async function linearHdrToUltraHdr(options) {
|
|
258
|
+
const { format, ...rest } = options;
|
|
259
|
+
await convertHdrImage({ ...rest, inputFormat: format });
|
|
152
260
|
}
|
|
153
261
|
/** @deprecated Use {@link ultraHdrToLinearHdr}; retained for compatibility. */
|
|
154
262
|
export const ultraHdrToExr = ultraHdrToLinearHdr;
|
package/dist/convert.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../src/convert.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../src/convert.ts"],"names":[],"mappings":"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"}
|
package/dist/exr.d.ts
CHANGED
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
*
|
|
4
4
|
* This is intentionally small: it is only meant to move linear floating point
|
|
5
5
|
* HDR pixels in and out of the UltraHDR converter, not to be a general EXR
|
|
6
|
-
* implementation. On read it accepts single-part scanline files with
|
|
7
|
-
* FLOAT channels and NO_COMPRESSION, ZIPS or ZIP compression
|
|
8
|
-
*
|
|
6
|
+
* implementation. On read it accepts single-part scanline and tiled files with
|
|
7
|
+
* HALF or FLOAT channels and NO_COMPRESSION, ZIPS or ZIP compression (tiled
|
|
8
|
+
* files are read at the highest-resolution level only). On write it emits a
|
|
9
|
+
* single-part scanline FLOAT RGB file with NO_COMPRESSION, which every EXR
|
|
9
10
|
* reader understands.
|
|
10
11
|
*/
|
|
11
12
|
/** An in-memory linear HDR image: interleaved RGB, 3 floats per pixel, top row first. */
|
package/dist/exr.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exr.d.ts","sourceRoot":"","sources":["../src/exr.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"exr.d.ts","sourceRoot":"","sources":["../src/exr.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AAEH,yFAAyF;AACzF,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,YAAY,CAAC;CACpB;AAED,kFAAkF;AAClF,MAAM,MAAM,QAAQ,GAAG,cAAc,CAAC;AA4JtC,6EAA6E;AAC7E,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CA8FtD;AA4LD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAsFtD"}
|
package/dist/exr.js
CHANGED
|
@@ -8,6 +8,15 @@ const COMPRESSION_ZIPS = 2;
|
|
|
8
8
|
const COMPRESSION_ZIP = 3;
|
|
9
9
|
/** ZIP/ZIPS pack 16 scanlines per chunk; ZIPS packs a single scanline. */
|
|
10
10
|
const ZIP_ROWS_PER_CHUNK = 16;
|
|
11
|
+
/** Bit 9 of the version field marks a tiled single-part file. */
|
|
12
|
+
const VERSION_FLAG_TILED = 0x200;
|
|
13
|
+
/** Bit 11 marks a multi-part file, bit 12 marks deep data; neither is supported. */
|
|
14
|
+
const VERSION_FLAG_MULTIPART = 0x800;
|
|
15
|
+
const VERSION_FLAG_NON_IMAGE = 0x1000;
|
|
16
|
+
/** Tile level modes (see OpenEXR tiledesc). Only ONE_LEVEL is read in full. */
|
|
17
|
+
const TILE_LEVEL_ONE = 0;
|
|
18
|
+
const TILE_LEVEL_MIPMAP = 1;
|
|
19
|
+
const TILE_LEVEL_RIPMAP = 2;
|
|
11
20
|
function halfToFloat(half) {
|
|
12
21
|
const sign = (half & 0x8000) >> 15;
|
|
13
22
|
const exponent = (half & 0x7c00) >> 10;
|
|
@@ -121,10 +130,16 @@ export function readExr(buffer) {
|
|
|
121
130
|
const reader = new ByteReader(view);
|
|
122
131
|
if (reader.uint32() !== MAGIC)
|
|
123
132
|
throw new Error("Not an OpenEXR file (bad magic number).");
|
|
124
|
-
reader.
|
|
133
|
+
const versionField = reader.uint32(); // low byte = version number, high bytes = flags
|
|
134
|
+
const isTiled = (versionField & VERSION_FLAG_TILED) !== 0;
|
|
135
|
+
if (versionField & VERSION_FLAG_MULTIPART)
|
|
136
|
+
throw new Error("Multi-part EXR files are not supported.");
|
|
137
|
+
if (versionField & VERSION_FLAG_NON_IMAGE)
|
|
138
|
+
throw new Error("Deep/non-image EXR files are not supported.");
|
|
125
139
|
let channels;
|
|
126
140
|
let compression = COMPRESSION_NONE;
|
|
127
141
|
let dataWindow;
|
|
142
|
+
let tiles;
|
|
128
143
|
// Header: a sequence of (name,type,size,value) attributes ending at a null byte.
|
|
129
144
|
while (true) {
|
|
130
145
|
const attributeName = reader.nullString();
|
|
@@ -147,12 +162,25 @@ export function readExr(buffer) {
|
|
|
147
162
|
yMax: reader.int32(),
|
|
148
163
|
};
|
|
149
164
|
}
|
|
165
|
+
else if (attributeName === "tiles") {
|
|
166
|
+
const xSize = reader.uint32();
|
|
167
|
+
const ySize = reader.uint32();
|
|
168
|
+
const mode = reader.uint8();
|
|
169
|
+
tiles = {
|
|
170
|
+
xSize,
|
|
171
|
+
ySize,
|
|
172
|
+
levelMode: mode & 0x0f,
|
|
173
|
+
roundingMode: (mode >> 4) & 0x0f,
|
|
174
|
+
};
|
|
175
|
+
}
|
|
150
176
|
reader.position = next;
|
|
151
177
|
}
|
|
152
178
|
if (!channels || !dataWindow)
|
|
153
179
|
throw new Error("EXR header is missing channels or dataWindow.");
|
|
154
180
|
if (compression === COMPRESSION_RLE)
|
|
155
181
|
throw new Error("RLE-compressed EXR files are not supported.");
|
|
182
|
+
if (isTiled && !tiles)
|
|
183
|
+
throw new Error("Tiled EXR file is missing its required tiles attribute.");
|
|
156
184
|
const width = dataWindow.xMax - dataWindow.xMin + 1;
|
|
157
185
|
const height = dataWindow.yMax - dataWindow.yMin + 1;
|
|
158
186
|
if (width <= 0 || height <= 0)
|
|
@@ -164,28 +192,55 @@ export function readExr(buffer) {
|
|
|
164
192
|
if (!red || !green || !blue)
|
|
165
193
|
throw new Error("EXR file must contain R, G and B channels for HDR conversion.");
|
|
166
194
|
const bytesPerPixel = channels.reduce((sum, channel) => sum + channel.byteSize, 0);
|
|
195
|
+
const output = new Float32Array(width * height * 3);
|
|
196
|
+
const readSample = (block, offset, pixelType) => pixelType === PIXEL_TYPE_FLOAT
|
|
197
|
+
? block.getFloat32(offset, true)
|
|
198
|
+
: halfToFloat(block.getUint16(offset, true));
|
|
199
|
+
if (isTiled && tiles) {
|
|
200
|
+
readTiledPixels(reader, buffer, output, {
|
|
201
|
+
width,
|
|
202
|
+
height,
|
|
203
|
+
channels,
|
|
204
|
+
bytesPerPixel,
|
|
205
|
+
compression,
|
|
206
|
+
tiles,
|
|
207
|
+
readSample,
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
else {
|
|
211
|
+
readScanlinePixels(reader, buffer, output, {
|
|
212
|
+
width,
|
|
213
|
+
height,
|
|
214
|
+
yMin: dataWindow.yMin,
|
|
215
|
+
channels,
|
|
216
|
+
bytesPerPixel,
|
|
217
|
+
compression,
|
|
218
|
+
readSample,
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
return { width, height, data: output };
|
|
222
|
+
}
|
|
223
|
+
/** Decodes a single-part scanline image into interleaved float RGB. */
|
|
224
|
+
function readScanlinePixels(reader, buffer, output, ctx) {
|
|
225
|
+
const { width, height, yMin, channels, bytesPerPixel, compression, readSample } = ctx;
|
|
167
226
|
const rowsPerChunk = compression === COMPRESSION_ZIP ? ZIP_ROWS_PER_CHUNK : 1;
|
|
168
227
|
const chunkCount = Math.ceil(height / rowsPerChunk);
|
|
169
228
|
// Offset table: one uint64 file offset per chunk, in scanline order.
|
|
170
229
|
const chunkOffsets = [];
|
|
171
230
|
for (let index = 0; index < chunkCount; index++)
|
|
172
231
|
chunkOffsets.push(reader.uint64());
|
|
173
|
-
const output = new Float32Array(width * height * 3);
|
|
174
|
-
const readSample = (block, offset, pixelType) => pixelType === PIXEL_TYPE_FLOAT
|
|
175
|
-
? block.getFloat32(offset, true)
|
|
176
|
-
: halfToFloat(block.getUint16(offset, true));
|
|
177
232
|
for (let chunk = 0; chunk < chunkCount; chunk++) {
|
|
178
233
|
reader.position = chunkOffsets[chunk];
|
|
179
234
|
const firstRow = reader.int32();
|
|
180
235
|
const dataSize = reader.int32();
|
|
181
236
|
const start = reader.position;
|
|
182
|
-
const rowsInChunk = Math.min(rowsPerChunk, height - (firstRow -
|
|
237
|
+
const rowsInChunk = Math.min(rowsPerChunk, height - (firstRow - yMin));
|
|
183
238
|
const expectedSize = rowsInChunk * width * bytesPerPixel;
|
|
184
239
|
const payload = new Uint8Array(buffer.buffer, buffer.byteOffset + start, dataSize);
|
|
185
240
|
const pixels = decompressChunk(compression, payload, expectedSize);
|
|
186
241
|
const block = new DataView(pixels.buffer, pixels.byteOffset, pixels.byteLength);
|
|
187
242
|
for (let row = 0; row < rowsInChunk; row++) {
|
|
188
|
-
const imageRow = firstRow -
|
|
243
|
+
const imageRow = firstRow - yMin + row;
|
|
189
244
|
const rowStart = row * width * bytesPerPixel;
|
|
190
245
|
for (let channel of channels) {
|
|
191
246
|
if (channel.name !== "R" && channel.name !== "G" && channel.name !== "B")
|
|
@@ -201,7 +256,104 @@ export function readExr(buffer) {
|
|
|
201
256
|
}
|
|
202
257
|
}
|
|
203
258
|
}
|
|
204
|
-
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Decodes a single-part tiled image into interleaved float RGB. Only the
|
|
262
|
+
* highest-resolution level (level 0) is read; for MIPMAP/RIPMAP files the extra
|
|
263
|
+
* lower-resolution levels are skipped, which is all the converter needs.
|
|
264
|
+
*/
|
|
265
|
+
function readTiledPixels(reader, buffer, output, ctx) {
|
|
266
|
+
const { width, height, channels, bytesPerPixel, compression, tiles, readSample } = ctx;
|
|
267
|
+
if (tiles.levelMode !== TILE_LEVEL_ONE &&
|
|
268
|
+
tiles.levelMode !== TILE_LEVEL_MIPMAP &&
|
|
269
|
+
tiles.levelMode !== TILE_LEVEL_RIPMAP)
|
|
270
|
+
throw new Error(`Unsupported EXR tile level mode: ${tiles.levelMode}.`);
|
|
271
|
+
// The offset table holds one entry per tile across every level. Each tile's
|
|
272
|
+
// own header carries its coordinates, so we read the table length, then
|
|
273
|
+
// locate tiles by the coordinates stored with each chunk.
|
|
274
|
+
const totalTiles = countAllTiles(width, height, tiles);
|
|
275
|
+
const chunkOffsets = [];
|
|
276
|
+
for (let index = 0; index < totalTiles; index++)
|
|
277
|
+
chunkOffsets.push(reader.uint64());
|
|
278
|
+
for (const offset of chunkOffsets) {
|
|
279
|
+
reader.position = offset;
|
|
280
|
+
const tileX = reader.int32();
|
|
281
|
+
const tileY = reader.int32();
|
|
282
|
+
const levelX = reader.int32();
|
|
283
|
+
const levelY = reader.int32();
|
|
284
|
+
const dataSize = reader.int32();
|
|
285
|
+
const start = reader.position;
|
|
286
|
+
// Only decode the full-resolution level; skip mip/rip sublevels entirely.
|
|
287
|
+
if (levelX !== 0 || levelY !== 0)
|
|
288
|
+
continue;
|
|
289
|
+
const originX = tileX * tiles.xSize;
|
|
290
|
+
const originY = tileY * tiles.ySize;
|
|
291
|
+
const tileWidth = Math.min(tiles.xSize, width - originX);
|
|
292
|
+
const tileHeight = Math.min(tiles.ySize, height - originY);
|
|
293
|
+
const expectedSize = tileWidth * tileHeight * bytesPerPixel;
|
|
294
|
+
const payload = new Uint8Array(buffer.buffer, buffer.byteOffset + start, dataSize);
|
|
295
|
+
const pixels = decompressChunk(compression, payload, expectedSize);
|
|
296
|
+
const block = new DataView(pixels.buffer, pixels.byteOffset, pixels.byteLength);
|
|
297
|
+
for (let row = 0; row < tileHeight; row++) {
|
|
298
|
+
const imageRow = originY + row;
|
|
299
|
+
const rowStart = row * tileWidth * bytesPerPixel;
|
|
300
|
+
for (const channel of channels) {
|
|
301
|
+
if (channel.name !== "R" && channel.name !== "G" && channel.name !== "B")
|
|
302
|
+
continue;
|
|
303
|
+
const target = channel.name === "R" ? 0 : channel.name === "G" ? 1 : 2;
|
|
304
|
+
let sampleOffset = rowStart + channel.byteOffset * tileWidth;
|
|
305
|
+
let pixelIndex = (imageRow * width + originX) * 3 + target;
|
|
306
|
+
for (let x = 0; x < tileWidth; x++) {
|
|
307
|
+
output[pixelIndex] = readSample(block, sampleOffset, channel.pixelType);
|
|
308
|
+
sampleOffset += channel.byteSize;
|
|
309
|
+
pixelIndex += 3;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Counts the tiles recorded in the offset table across every mip/rip level so
|
|
317
|
+
* the table can be sized correctly before the per-tile headers are read.
|
|
318
|
+
*/
|
|
319
|
+
function countAllTiles(width, height, tiles) {
|
|
320
|
+
const levelSize = (size, level) => {
|
|
321
|
+
if (tiles.roundingMode === 1)
|
|
322
|
+
return Math.max(1, Math.ceil(size / 2 ** level));
|
|
323
|
+
return Math.max(1, Math.floor(size / 2 ** level));
|
|
324
|
+
};
|
|
325
|
+
const tilesX = (w) => Math.ceil(w / tiles.xSize);
|
|
326
|
+
const tilesY = (h) => Math.ceil(h / tiles.ySize);
|
|
327
|
+
if (tiles.levelMode === TILE_LEVEL_ONE) {
|
|
328
|
+
return tilesX(width) * tilesY(height);
|
|
329
|
+
}
|
|
330
|
+
const numLevels = (size) => {
|
|
331
|
+
let count = 1;
|
|
332
|
+
let current = size;
|
|
333
|
+
while (current > 1) {
|
|
334
|
+
current = tiles.roundingMode === 1 ? Math.ceil(current / 2) : Math.floor(current / 2);
|
|
335
|
+
count++;
|
|
336
|
+
}
|
|
337
|
+
return count;
|
|
338
|
+
};
|
|
339
|
+
if (tiles.levelMode === TILE_LEVEL_MIPMAP) {
|
|
340
|
+
const levels = Math.max(numLevels(width), numLevels(height));
|
|
341
|
+
let total = 0;
|
|
342
|
+
for (let level = 0; level < levels; level++) {
|
|
343
|
+
total += tilesX(levelSize(width, level)) * tilesY(levelSize(height, level));
|
|
344
|
+
}
|
|
345
|
+
return total;
|
|
346
|
+
}
|
|
347
|
+
// RIPMAP: an independent level in each dimension.
|
|
348
|
+
const levelsX = numLevels(width);
|
|
349
|
+
const levelsY = numLevels(height);
|
|
350
|
+
let total = 0;
|
|
351
|
+
for (let ly = 0; ly < levelsY; ly++) {
|
|
352
|
+
for (let lx = 0; lx < levelsX; lx++) {
|
|
353
|
+
total += tilesX(levelSize(width, lx)) * tilesY(levelSize(height, ly));
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
return total;
|
|
205
357
|
}
|
|
206
358
|
function writeAttribute(parts, name, type, value) {
|
|
207
359
|
parts.push(Buffer.from(`${name}\0${type}\0`, "latin1"));
|
package/dist/exr.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exr.js","sourceRoot":"","sources":["../src/exr.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"exr.js","sourceRoot":"","sources":["../src/exr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAwBxC,MAAM,KAAK,GAAG,QAAQ,CAAC;AACvB,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,eAAe,GAAG,CAAC,CAAC;AAE1B,0EAA0E;AAC1E,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAE9B,iEAAiE;AACjE,MAAM,kBAAkB,GAAG,KAAK,CAAC;AACjC,oFAAoF;AACpF,MAAM,sBAAsB,GAAG,KAAK,CAAC;AACrC,MAAM,sBAAsB,GAAG,MAAM,CAAC;AAEtC,+EAA+E;AAC/E,MAAM,cAAc,GAAG,CAAC,CAAC;AACzB,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAgB5B,SAAS,WAAW,CAAC,IAAY;IAC/B,MAAM,IAAI,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IACnC,MAAM,QAAQ,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,IAAI,GAAG,MAAM,CAAC;IAC/B,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAC5E,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU;IAEe;IADrB,MAAM,GAAG,CAAC,CAAC;IACnB,YAA6B,IAAc;QAAd,SAAI,GAAJ,IAAI,CAAU;IAAG,CAAC;IAE/C,KAAK;QACH,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QACjB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM;QACJ,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QACjB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM;QACJ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QACjB,OAAO,IAAI,GAAG,aAAa,GAAG,GAAG,CAAC;IACpC,CAAC;IAED,UAAU;QACR,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;YAC9D,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,KAAa;QAChB,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC;IACvB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,QAAQ,CAAC,KAAa;QACxB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;CACF;AAED,SAAS,aAAa,CAAC,MAAkB;IACvC,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,uEAAuE;IACvE,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACjC,IAAI,IAAI,KAAK,EAAE;YAAE,MAAM;QACvB,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB;QACrC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB;QACxC,MAAM,QAAQ,GAAG,SAAS,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5F,IAAI,QAAQ,KAAK,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,2CAA2C,IAAI,MAAM,SAAS,GAAG,CAAC,CAAC;QACrF,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzD,UAAU,IAAI,QAAQ,CAAC;IACzB,CAAC;IACD,8EAA8E;IAC9E,8DAA8D;IAC9D,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,eAAe,CACtB,WAAmB,EACnB,OAAmB,EACnB,YAAoB;IAEpB,IAAI,WAAW,KAAK,gBAAgB;QAAE,OAAO,OAAO,CAAC;IACrD,IAAI,WAAW,KAAK,eAAe,IAAI,WAAW,KAAK,gBAAgB,EAAE,CAAC;QACxE,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QACtC,OAAO,cAAc,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAChD,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,qCAAqC,WAAW,GAAG,CAAC,CAAC;AACvE,CAAC;AAED;;;;GAIG;AACH,SAAS,cAAc,CAAC,MAAkB,EAAE,YAAoB;IAC9D,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;IACxE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;QACtD,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;IAC/B,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,IAAI,GAAG,IAAI,CAAC;IAChB,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,OAAO,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QAC9B,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM;YAAE,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,OAAO,CAAC,MAAc;IACpC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAC/E,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC1F,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,gDAAgD;IACtF,MAAM,OAAO,GAAG,CAAC,YAAY,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC1D,IAAI,YAAY,GAAG,sBAAsB;QACvC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,IAAI,YAAY,GAAG,sBAAsB;QACvC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAEjE,IAAI,QAAmC,CAAC;IACxC,IAAI,WAAW,GAAG,gBAAgB,CAAC;IACnC,IAAI,UAAkF,CAAC;IACvF,IAAI,KAA2B,CAAC;IAEhC,iFAAiF;IACjF,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAC1C,IAAI,aAAa,KAAK,EAAE;YAAE,MAAM;QAChC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,iBAAiB;QACtC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;QACpC,IAAI,aAAa,KAAK,UAAU,EAAE,CAAC;YACjC,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;aAAM,IAAI,aAAa,KAAK,aAAa,EAAE,CAAC;YAC3C,WAAW,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAC/B,CAAC;aAAM,IAAI,aAAa,KAAK,YAAY,EAAE,CAAC;YAC1C,UAAU,GAAG;gBACX,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE;gBACpB,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE;gBACpB,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE;gBACpB,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE;aACrB,CAAC;QACJ,CAAC;aAAM,IAAI,aAAa,KAAK,OAAO,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;YAC5B,KAAK,GAAG;gBACN,KAAK;gBACL,KAAK;gBACL,SAAS,EAAE,IAAI,GAAG,IAAI;gBACtB,YAAY,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI;aACjC,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IAC/F,IAAI,WAAW,KAAK,eAAe;QACjC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,IAAI,OAAO,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAElG,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC;IACrD,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAE5E,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAClF,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI;QACzB,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IAEnF,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACnF,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,CAAC,KAAe,EAAE,MAAc,EAAE,SAAiB,EAAU,EAAE,CAChF,SAAS,KAAK,gBAAgB;QAC5B,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC;QAChC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAEjD,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;QACrB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;YACtC,KAAK;YACL,MAAM;YACN,QAAQ;YACR,aAAa;YACb,WAAW;YACX,KAAK;YACL,UAAU;SACX,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;YACzC,KAAK;YACL,MAAM;YACN,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,QAAQ;YACR,aAAa;YACb,WAAW;YACX,UAAU;SACX,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACzC,CAAC;AAcD,uEAAuE;AACvE,SAAS,kBAAkB,CACzB,MAAkB,EAClB,MAAc,EACd,MAAoB,EACpB,GAAwB;IAExB,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC;IACtF,MAAM,YAAY,GAAG,WAAW,KAAK,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9E,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC;IAEpD,qEAAqE;IACrE,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,EAAE,KAAK,EAAE;QAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAEpF,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC;QAChD,MAAM,CAAC,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;QACvE,MAAM,YAAY,GAAG,WAAW,GAAG,KAAK,GAAG,aAAa,CAAC;QACzD,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,GAAG,KAAK,EAAE,QAAQ,CAAC,CAAC;QACnF,MAAM,MAAM,GAAG,eAAe,CAAC,WAAW,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QAEhF,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,WAAW,EAAE,GAAG,EAAE,EAAE,CAAC;YAC3C,MAAM,QAAQ,GAAG,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAC;YACvC,MAAM,QAAQ,GAAG,GAAG,GAAG,KAAK,GAAG,aAAa,CAAC;YAC7C,KAAK,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC7B,IAAI,OAAO,CAAC,IAAI,KAAK,GAAG,IAAI,OAAO,CAAC,IAAI,KAAK,GAAG,IAAI,OAAO,CAAC,IAAI,KAAK,GAAG;oBAAE,SAAS;gBACnF,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvE,IAAI,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC;gBACzD,IAAI,UAAU,GAAG,QAAQ,GAAG,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC;gBAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC/B,MAAM,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;oBACxE,YAAY,IAAI,OAAO,CAAC,QAAQ,CAAC;oBACjC,UAAU,IAAI,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAYD;;;;GAIG;AACH,SAAS,eAAe,CACtB,MAAkB,EAClB,MAAc,EACd,MAAoB,EACpB,GAAqB;IAErB,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC;IACvF,IACE,KAAK,CAAC,SAAS,KAAK,cAAc;QAClC,KAAK,CAAC,SAAS,KAAK,iBAAiB;QACrC,KAAK,CAAC,SAAS,KAAK,iBAAiB;QAErC,MAAM,IAAI,KAAK,CAAC,oCAAoC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;IAE1E,4EAA4E;IAC5E,wEAAwE;IACxE,0DAA0D;IAC1D,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAEvD,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,EAAE,KAAK,EAAE;QAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAEpF,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;QAClC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC;QAE9B,0EAA0E;QAC1E,IAAI,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC;YAAE,SAAS;QAE3C,MAAM,OAAO,GAAG,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACpC,MAAM,OAAO,GAAG,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACpC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,CAAC;QACzD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;QAC3D,MAAM,YAAY,GAAG,SAAS,GAAG,UAAU,GAAG,aAAa,CAAC;QAC5D,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,GAAG,KAAK,EAAE,QAAQ,CAAC,CAAC;QACnF,MAAM,MAAM,GAAG,eAAe,CAAC,WAAW,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QAEhF,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,UAAU,EAAE,GAAG,EAAE,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,OAAO,GAAG,GAAG,CAAC;YAC/B,MAAM,QAAQ,GAAG,GAAG,GAAG,SAAS,GAAG,aAAa,CAAC;YACjD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,GAAG,IAAI,OAAO,CAAC,IAAI,KAAK,GAAG,IAAI,OAAO,CAAC,IAAI,KAAK,GAAG;oBAAE,SAAS;gBACnF,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvE,IAAI,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;gBAC7D,IAAI,UAAU,GAAG,CAAC,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;gBAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;oBACnC,MAAM,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;oBACxE,YAAY,IAAI,OAAO,CAAC,QAAQ,CAAC;oBACjC,UAAU,IAAI,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,KAAa,EAAE,MAAc,EAAE,KAAe;IACnE,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,KAAa,EAAU,EAAE;QACxD,IAAI,KAAK,CAAC,YAAY,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;QAC/E,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IAEjE,IAAI,KAAK,CAAC,SAAS,KAAK,cAAc,EAAE,CAAC;QACvC,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,SAAS,GAAG,CAAC,IAAY,EAAU,EAAE;QACzC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,OAAO,OAAO,GAAG,CAAC,EAAE,CAAC;YACnB,OAAO,GAAG,KAAK,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;YACtF,KAAK,EAAE,CAAC;QACV,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,IAAI,KAAK,CAAC,SAAS,KAAK,iBAAiB,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7D,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YAC5C,KAAK,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,kDAAkD;IAClD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;QACpC,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACpC,KAAK,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,KAAe,EAAE,IAAY,EAAE,IAAY,EAAE,KAAa;IAChF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,IAAI,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACnC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAqB;IAC5C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IACtC,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,GAAG,MAAM,GAAG,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAE9E,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9B,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC9B,KAAK,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,mCAAmC;IAC9D,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEnB,yEAAyE;IACzE,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QACjD,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QACxB,KAAK,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY;QACrD,CAAC,IAAI,CAAC,CAAC;QACP,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,qBAAqB;QAC/C,CAAC,IAAI,CAAC,CAAC;QACP,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY;QACtC,CAAC,IAAI,CAAC,CAAC;QACP,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY;QACtC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IACD,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IAE1E,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAEtF,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAChC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1B,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1B,MAAM,CAAC,YAAY,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAClC,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IACpC,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACtD,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAEzD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe;IACnD,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAE5D,MAAM,kBAAkB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa;IACzD,cAAc,CAAC,MAAM,EAAE,oBAAoB,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;IACxE,MAAM,iBAAiB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1C,iBAAiB,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrC,cAAc,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;IACxE,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzC,gBAAgB,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpC,cAAc,CAAC,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAEtE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB;IAE/C,MAAM,kBAAkB,GAAG,KAAK,GAAG,CAAC,CAAC;IACrC,MAAM,gBAAgB,GAAG,kBAAkB,GAAG,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,CAAC,GAAG,gBAAgB,CAAC,CAAC,8BAA8B;IAE3E,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,eAAe,GAAG,MAAM,GAAG,CAAC,CAAC;IACnC,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,GAAG,eAAe,CAAC;IAE7D,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,WAAW,CAAC,gBAAgB,CAAC,MAAM,CAAC,cAAc,GAAG,CAAC,GAAG,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,cAAc,CAAC,CAAC;IACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,CAAC,GAAG,cAAc,CAAC;QAChC,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAChC,SAAS,CAAC,YAAY,CAAC,gBAAgB,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC;QAC1B,2EAA2E;QAC3E,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB;YAChF,IAAI,GAAG,GAAG,QAAQ,GAAG,OAAO,GAAG,kBAAkB,CAAC;YAClD,IAAI,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC;YACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/B,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;gBACzC,GAAG,IAAI,CAAC,CAAC;gBACT,KAAK,IAAI,CAAC,CAAC;YACb,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;AAC/D,CAAC"}
|