diff --git a/dist/index.js b/dist/index.js index 0a3df00..f597362 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,20 +1,21 @@ -import { createRequire } from 'module'; import path from 'path'; import fs from 'fs/promises'; import { styleText } from 'util'; +import sharp from 'sharp'; +import { jsxs, Fragment, jsx } from 'preact/jsx-runtime'; +import 'preact'; -const require$1 = createRequire(import.meta.url); var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; -var __require = /* @__PURE__ */ ((x3) => typeof require$1 !== "undefined" ? require$1 : typeof Proxy !== "undefined" ? new Proxy(x3, { - get: (a2, b2) => (typeof require$1 !== "undefined" ? require$1 : a2)[b2] -}) : x3)(function(x3) { - if (typeof require$1 !== "undefined") return require$1.apply(this, arguments); - throw Error('Dynamic require of "' + x3 + '" is not supported'); +var __require = /* @__PURE__ */ ((x2) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x2, { + get: (a, b) => (typeof require !== "undefined" ? require : a)[b] +}) : x2)(function(x2) { + if (typeof require !== "undefined") return require.apply(this, arguments); + throw Error('Dynamic require of "' + x2 + '" is not supported'); }); var __esm = (fn, res) => function __init() { return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res; @@ -92,109 +93,109 @@ var require_tiny_inflate = __commonJS({ var code_tree = new Tree(); var lengths = new Uint8Array(288 + 32); function tinf_build_bits_base(bits2, base, delta, first) { - var i2, sum; - for (i2 = 0; i2 < delta; ++i2) bits2[i2] = 0; - for (i2 = 0; i2 < 30 - delta; ++i2) bits2[i2 + delta] = i2 / delta | 0; - for (sum = first, i2 = 0; i2 < 30; ++i2) { - base[i2] = sum; - sum += 1 << bits2[i2]; + var i, sum; + for (i = 0; i < delta; ++i) bits2[i] = 0; + for (i = 0; i < 30 - delta; ++i) bits2[i + delta] = i / delta | 0; + for (sum = first, i = 0; i < 30; ++i) { + base[i] = sum; + sum += 1 << bits2[i]; } } function tinf_build_fixed_trees(lt, dt) { - var i2; - for (i2 = 0; i2 < 7; ++i2) lt.table[i2] = 0; + var i; + for (i = 0; i < 7; ++i) lt.table[i] = 0; lt.table[7] = 24; lt.table[8] = 152; lt.table[9] = 112; - for (i2 = 0; i2 < 24; ++i2) lt.trans[i2] = 256 + i2; - for (i2 = 0; i2 < 144; ++i2) lt.trans[24 + i2] = i2; - for (i2 = 0; i2 < 8; ++i2) lt.trans[24 + 144 + i2] = 280 + i2; - for (i2 = 0; i2 < 112; ++i2) lt.trans[24 + 144 + 8 + i2] = 144 + i2; - for (i2 = 0; i2 < 5; ++i2) dt.table[i2] = 0; + for (i = 0; i < 24; ++i) lt.trans[i] = 256 + i; + for (i = 0; i < 144; ++i) lt.trans[24 + i] = i; + for (i = 0; i < 8; ++i) lt.trans[24 + 144 + i] = 280 + i; + for (i = 0; i < 112; ++i) lt.trans[24 + 144 + 8 + i] = 144 + i; + for (i = 0; i < 5; ++i) dt.table[i] = 0; dt.table[5] = 32; - for (i2 = 0; i2 < 32; ++i2) dt.trans[i2] = i2; + for (i = 0; i < 32; ++i) dt.trans[i] = i; } var offs = new Uint16Array(16); - function tinf_build_tree(t2, lengths2, off, num) { - var i2, sum; - for (i2 = 0; i2 < 16; ++i2) t2.table[i2] = 0; - for (i2 = 0; i2 < num; ++i2) t2.table[lengths2[off + i2]]++; - t2.table[0] = 0; - for (sum = 0, i2 = 0; i2 < 16; ++i2) { - offs[i2] = sum; - sum += t2.table[i2]; + function tinf_build_tree(t, lengths2, off, num) { + var i, sum; + for (i = 0; i < 16; ++i) t.table[i] = 0; + for (i = 0; i < num; ++i) t.table[lengths2[off + i]]++; + t.table[0] = 0; + for (sum = 0, i = 0; i < 16; ++i) { + offs[i] = sum; + sum += t.table[i]; } - for (i2 = 0; i2 < num; ++i2) { - if (lengths2[off + i2]) t2.trans[offs[lengths2[off + i2]]++] = i2; + for (i = 0; i < num; ++i) { + if (lengths2[off + i]) t.trans[offs[lengths2[off + i]]++] = i; } } - function tinf_getbit(d3) { - if (!d3.bitcount--) { - d3.tag = d3.source[d3.sourceIndex++]; - d3.bitcount = 7; + function tinf_getbit(d2) { + if (!d2.bitcount--) { + d2.tag = d2.source[d2.sourceIndex++]; + d2.bitcount = 7; } - var bit = d3.tag & 1; - d3.tag >>>= 1; + var bit = d2.tag & 1; + d2.tag >>>= 1; return bit; } - function tinf_read_bits(d3, num, base) { + function tinf_read_bits(d2, num, base) { if (!num) return base; - while (d3.bitcount < 24) { - d3.tag |= d3.source[d3.sourceIndex++] << d3.bitcount; - d3.bitcount += 8; + while (d2.bitcount < 24) { + d2.tag |= d2.source[d2.sourceIndex++] << d2.bitcount; + d2.bitcount += 8; } - var val = d3.tag & 65535 >>> 16 - num; - d3.tag >>>= num; - d3.bitcount -= num; + var val = d2.tag & 65535 >>> 16 - num; + d2.tag >>>= num; + d2.bitcount -= num; return val + base; } - function tinf_decode_symbol(d3, t2) { - while (d3.bitcount < 24) { - d3.tag |= d3.source[d3.sourceIndex++] << d3.bitcount; - d3.bitcount += 8; + function tinf_decode_symbol(d2, t) { + while (d2.bitcount < 24) { + d2.tag |= d2.source[d2.sourceIndex++] << d2.bitcount; + d2.bitcount += 8; } var sum = 0, cur = 0, len = 0; - var tag = d3.tag; + var tag = d2.tag; do { cur = 2 * cur + (tag & 1); tag >>>= 1; ++len; - sum += t2.table[len]; - cur -= t2.table[len]; + sum += t.table[len]; + cur -= t.table[len]; } while (cur >= 0); - d3.tag = tag; - d3.bitcount -= len; - return t2.trans[sum + cur]; + d2.tag = tag; + d2.bitcount -= len; + return t.trans[sum + cur]; } - function tinf_decode_trees(d3, lt, dt) { + function tinf_decode_trees(d2, lt, dt) { var hlit, hdist, hclen; - var i2, num, length; - hlit = tinf_read_bits(d3, 5, 257); - hdist = tinf_read_bits(d3, 5, 1); - hclen = tinf_read_bits(d3, 4, 4); - for (i2 = 0; i2 < 19; ++i2) lengths[i2] = 0; - for (i2 = 0; i2 < hclen; ++i2) { - var clen = tinf_read_bits(d3, 3, 0); - lengths[clcidx[i2]] = clen; + var i, num, length; + hlit = tinf_read_bits(d2, 5, 257); + hdist = tinf_read_bits(d2, 5, 1); + hclen = tinf_read_bits(d2, 4, 4); + for (i = 0; i < 19; ++i) lengths[i] = 0; + for (i = 0; i < hclen; ++i) { + var clen = tinf_read_bits(d2, 3, 0); + lengths[clcidx[i]] = clen; } tinf_build_tree(code_tree, lengths, 0, 19); for (num = 0; num < hlit + hdist; ) { - var sym = tinf_decode_symbol(d3, code_tree); + var sym = tinf_decode_symbol(d2, code_tree); switch (sym) { case 16: var prev = lengths[num - 1]; - for (length = tinf_read_bits(d3, 2, 3); length; --length) { + for (length = tinf_read_bits(d2, 2, 3); length; --length) { lengths[num++] = prev; } break; case 17: - for (length = tinf_read_bits(d3, 3, 3); length; --length) { + for (length = tinf_read_bits(d2, 3, 3); length; --length) { lengths[num++] = 0; } break; case 18: - for (length = tinf_read_bits(d3, 7, 11); length; --length) { + for (length = tinf_read_bits(d2, 7, 11); length; --length) { lengths[num++] = 0; } break; @@ -206,62 +207,62 @@ var require_tiny_inflate = __commonJS({ tinf_build_tree(lt, lengths, 0, hlit); tinf_build_tree(dt, lengths, hlit, hdist); } - function tinf_inflate_block_data(d3, lt, dt) { + function tinf_inflate_block_data(d2, lt, dt) { while (1) { - var sym = tinf_decode_symbol(d3, lt); + var sym = tinf_decode_symbol(d2, lt); if (sym === 256) { return TINF_OK; } if (sym < 256) { - d3.dest[d3.destLen++] = sym; + d2.dest[d2.destLen++] = sym; } else { var length, dist, offs2; - var i2; + var i; sym -= 257; - length = tinf_read_bits(d3, length_bits[sym], length_base[sym]); - dist = tinf_decode_symbol(d3, dt); - offs2 = d3.destLen - tinf_read_bits(d3, dist_bits[dist], dist_base[dist]); - for (i2 = offs2; i2 < offs2 + length; ++i2) { - d3.dest[d3.destLen++] = d3.dest[i2]; + length = tinf_read_bits(d2, length_bits[sym], length_base[sym]); + dist = tinf_decode_symbol(d2, dt); + offs2 = d2.destLen - tinf_read_bits(d2, dist_bits[dist], dist_base[dist]); + for (i = offs2; i < offs2 + length; ++i) { + d2.dest[d2.destLen++] = d2.dest[i]; } } } } - function tinf_inflate_uncompressed_block(d3) { + function tinf_inflate_uncompressed_block(d2) { var length, invlength; - var i2; - while (d3.bitcount > 8) { - d3.sourceIndex--; - d3.bitcount -= 8; + var i; + while (d2.bitcount > 8) { + d2.sourceIndex--; + d2.bitcount -= 8; } - length = d3.source[d3.sourceIndex + 1]; - length = 256 * length + d3.source[d3.sourceIndex]; - invlength = d3.source[d3.sourceIndex + 3]; - invlength = 256 * invlength + d3.source[d3.sourceIndex + 2]; + length = d2.source[d2.sourceIndex + 1]; + length = 256 * length + d2.source[d2.sourceIndex]; + invlength = d2.source[d2.sourceIndex + 3]; + invlength = 256 * invlength + d2.source[d2.sourceIndex + 2]; if (length !== (~invlength & 65535)) return TINF_DATA_ERROR; - d3.sourceIndex += 4; - for (i2 = length; i2; --i2) - d3.dest[d3.destLen++] = d3.source[d3.sourceIndex++]; - d3.bitcount = 0; + d2.sourceIndex += 4; + for (i = length; i; --i) + d2.dest[d2.destLen++] = d2.source[d2.sourceIndex++]; + d2.bitcount = 0; return TINF_OK; } function tinf_uncompress(source, dest) { - var d3 = new Data(source, dest); + var d2 = new Data(source, dest); var bfinal, btype, res; do { - bfinal = tinf_getbit(d3); - btype = tinf_read_bits(d3, 2, 0); + bfinal = tinf_getbit(d2); + btype = tinf_read_bits(d2, 2, 0); switch (btype) { case 0: - res = tinf_inflate_uncompressed_block(d3); + res = tinf_inflate_uncompressed_block(d2); break; case 1: - res = tinf_inflate_block_data(d3, sltree, sdtree); + res = tinf_inflate_block_data(d2, sltree, sdtree); break; case 2: - tinf_decode_trees(d3, d3.ltree, d3.dtree); - res = tinf_inflate_block_data(d3, d3.ltree, d3.dtree); + tinf_decode_trees(d2, d2.ltree, d2.dtree); + res = tinf_inflate_block_data(d2, d2.ltree, d2.dtree); break; default: res = TINF_DATA_ERROR; @@ -269,13 +270,13 @@ var require_tiny_inflate = __commonJS({ if (res !== TINF_OK) throw new Error("Data error"); } while (!bfinal); - if (d3.destLen < d3.dest.length) { - if (typeof d3.dest.slice === "function") - return d3.dest.slice(0, d3.destLen); + if (d2.destLen < d2.dest.length) { + if (typeof d2.dest.slice === "function") + return d2.dest.slice(0, d2.destLen); else - return d3.dest.subarray(0, d3.destLen); + return d2.dest.subarray(0, d2.destLen); } - return d3.dest; + return d2.dest; } tinf_build_fixed_trees(sltree, sdtree); tinf_build_bits_base(length_bits, length_base, 4, 3); @@ -290,16 +291,16 @@ var require_tiny_inflate = __commonJS({ var require_swap = __commonJS({ "node_modules/unicode-trie/swap.js"(exports2, module) { var isBigEndian = new Uint8Array(new Uint32Array([305419896]).buffer)[0] === 18; - var swap = (b2, n2, m3) => { - let i2 = b2[n2]; - b2[n2] = b2[m3]; - b2[m3] = i2; + var swap = (b, n, m2) => { + let i = b[n]; + b[n] = b[m2]; + b[m2] = i; }; var swap32 = (array) => { const len = array.length; - for (let i2 = 0; i2 < len; i2 += 4) { - swap(array, i2, i2 + 3); - swap(array, i2 + 1, i2 + 2); + for (let i = 0; i < len; i += 4) { + swap(array, i, i + 3); + swap(array, i + 1, i + 2); } }; var swap32LE = (array) => { @@ -414,44 +415,44 @@ var require_b64 = __commonJS({ return code - LOWER + 26; } function b64ToByteArray(b64) { - var i2, j2, l3, tmp, placeHolders, arr; + var i, j, l2, tmp, placeHolders, arr; if (b64.length % 4 > 0) { throw new Error("Invalid string. Length must be a multiple of 4"); } var len = b64.length; placeHolders = "=" === b64.charAt(len - 2) ? 2 : "=" === b64.charAt(len - 1) ? 1 : 0; arr = new Arr(b64.length * 3 / 4 - placeHolders); - l3 = placeHolders > 0 ? b64.length - 4 : b64.length; - var L2 = 0; - function push(v3) { - arr[L2++] = v3; + l2 = placeHolders > 0 ? b64.length - 4 : b64.length; + var L = 0; + function push(v2) { + arr[L++] = v2; } - for (i2 = 0, j2 = 0; i2 < l3; i2 += 4, j2 += 3) { - tmp = decode2(b64.charAt(i2)) << 18 | decode2(b64.charAt(i2 + 1)) << 12 | decode2(b64.charAt(i2 + 2)) << 6 | decode2(b64.charAt(i2 + 3)); + for (i = 0, j = 0; i < l2; i += 4, j += 3) { + tmp = decode2(b64.charAt(i)) << 18 | decode2(b64.charAt(i + 1)) << 12 | decode2(b64.charAt(i + 2)) << 6 | decode2(b64.charAt(i + 3)); push((tmp & 16711680) >> 16); push((tmp & 65280) >> 8); push(tmp & 255); } if (placeHolders === 2) { - tmp = decode2(b64.charAt(i2)) << 2 | decode2(b64.charAt(i2 + 1)) >> 4; + tmp = decode2(b64.charAt(i)) << 2 | decode2(b64.charAt(i + 1)) >> 4; push(tmp & 255); } else if (placeHolders === 1) { - tmp = decode2(b64.charAt(i2)) << 10 | decode2(b64.charAt(i2 + 1)) << 4 | decode2(b64.charAt(i2 + 2)) >> 2; + tmp = decode2(b64.charAt(i)) << 10 | decode2(b64.charAt(i + 1)) << 4 | decode2(b64.charAt(i + 2)) >> 2; push(tmp >> 8 & 255); push(tmp & 255); } return arr; } function uint8ToBase64(uint8) { - var i2, extraBytes = uint8.length % 3, output = "", temp, length; + var i, extraBytes = uint8.length % 3, output = "", temp, length; function encode(num) { return lookup.charAt(num); } function tripletToBase64(num) { return encode(num >> 18 & 63) + encode(num >> 12 & 63) + encode(num >> 6 & 63) + encode(num & 63); } - for (i2 = 0, length = uint8.length - extraBytes; i2 < length; i2 += 3) { - temp = (uint8[i2] << 16) + (uint8[i2 + 1] << 8) + uint8[i2 + 2]; + for (i = 0, length = uint8.length - extraBytes; i < length; i += 3) { + temp = (uint8[i] << 16) + (uint8[i + 1] << 8) + uint8[i + 2]; output += tripletToBase64(temp); } switch (extraBytes) { @@ -731,17 +732,17 @@ var require_parse = __commonJS({ var require_walk = __commonJS({ "node_modules/postcss-value-parser/lib/walk.js"(exports2, module) { module.exports = function walk(nodes, cb, bubble) { - var i2, max2, node, result; - for (i2 = 0, max2 = nodes.length; i2 < max2; i2 += 1) { - node = nodes[i2]; + var i, max2, node, result; + for (i = 0, max2 = nodes.length; i < max2; i += 1) { + node = nodes[i]; if (!bubble) { - result = cb(node, i2, nodes); + result = cb(node, i, nodes); } if (result !== false && node.type === "function" && Array.isArray(node.nodes)) { walk(node.nodes, cb, bubble); } if (bubble) { - cb(node, i2, nodes); + cb(node, i, nodes); } } }; @@ -777,11 +778,11 @@ var require_stringify = __commonJS({ return value; } function stringify(nodes, custom) { - var result, i2; + var result, i; if (Array.isArray(nodes)) { result = ""; - for (i2 = nodes.length - 1; ~i2; i2 -= 1) { - result = stringifyNode(nodes[i2], custom) + result; + for (i = nodes.length - 1; ~i; i -= 1) { + result = stringifyNode(nodes[i], custom) + result; } return result; } @@ -931,8 +932,8 @@ var require_camelize = __commonJS({ }, {}); } function camelCase(str) { - return str.replace(/[_.-](\w|$)/g, function(_2, x3) { - return x3.toUpperCase(); + return str.replace(/[_.-](\w|$)/g, function(_, x2) { + return x2.toUpperCase(); }); } var isArray = Array.isArray || function(obj) { @@ -954,22 +955,22 @@ var require_camelize = __commonJS({ } return keys; }; - function map(xs, f3) { + function map(xs, f) { if (xs.map) { - return xs.map(f3); + return xs.map(f); } var res = []; - for (var i2 = 0; i2 < xs.length; i2++) { - res.push(f3(xs[i2], i2)); + for (var i = 0; i < xs.length; i++) { + res.push(f(xs[i], i)); } return res; } - function reduce(xs, f3, acc) { + function reduce(xs, f, acc) { if (xs.reduce) { - return xs.reduce(f3, acc); + return xs.reduce(f, acc); } - for (var i2 = 0; i2 < xs.length; i2++) { - acc = f3(acc, xs[i2], i2); + for (var i = 0; i < xs.length; i++) { + acc = f(acc, xs[i], i); } return acc; } @@ -1281,8 +1282,8 @@ var require_css_to_react_native = __commonJS({ } tokenStream.expectEmpty(); var top = values[0], _values$ = values[1], right = _values$ === void 0 ? top : _values$, _values$2 = values[2], bottom = _values$2 === void 0 ? top : _values$2, _values$3 = values[3], left = _values$3 === void 0 ? right : _values$3; - var keyFor = function keyFor2(n2) { - return "" + prefix + directions[n2] + suffix; + var keyFor = function keyFor2(n) { + return "" + prefix + directions[n] + suffix; }; return _ref2 = {}, _ref2[keyFor(0)] = top, _ref2[keyFor(1)] = right, _ref2[keyFor(2)] = bottom, _ref2[keyFor(3)] = left, _ref2; }; @@ -1593,18 +1594,18 @@ var require_css_to_react_native = __commonJS({ return function(key, valueIfOmitted) { return function(functionStream) { var _ref3, _ref4; - var x3 = functionStream.expect(tokenType); - var y2; + var x2 = functionStream.expect(tokenType); + var y; if (functionStream.hasTokens()) { functionStream.expect(COMMA); - y2 = functionStream.expect(tokenType); + y = functionStream.expect(tokenType); } else if (valueIfOmitted !== void 0) { - y2 = valueIfOmitted; + y = valueIfOmitted; } else { - return x3; + return x2; } functionStream.expectEmpty(); - return [(_ref3 = {}, _ref3[key + "Y"] = y2, _ref3), (_ref4 = {}, _ref4[key + "X"] = x3, _ref4)]; + return [(_ref3 = {}, _ref3[key + "Y"] = y, _ref3), (_ref4 = {}, _ref4[key + "X"] = x2, _ref4)]; }; }; }; @@ -1733,8 +1734,8 @@ var require_css_to_react_native = __commonJS({ _proto[SYMBOL_MATCH] = function() { if (!this.hasTokens()) return null; var node = this.nodes[this.index]; - for (var i2 = 0; i2 < arguments.length; i2 += 1) { - var tokenDescriptor = i2 < 0 || arguments.length <= i2 ? void 0 : arguments[i2]; + for (var i = 0; i < arguments.length; i += 1) { + var tokenDescriptor = i < 0 || arguments.length <= i ? void 0 : arguments[i]; var value = tokenDescriptor(node); if (value !== null) { this.index += 1; @@ -1813,7 +1814,7 @@ var require_css_to_react_native = __commonJS({ var transformShorthandValue = process.env.NODE_ENV === "production" ? baseTransformShorthandValue : function(propName, value) { try { return baseTransformShorthandValue(propName, value); - } catch (e2) { + } catch (e) { throw new Error('Failed to parse declaration "' + propName + ": " + value + '"'); } }; @@ -1955,17 +1956,17 @@ var require_css_background_parser = __commonJS({ var bgRepeat = parseSimpleList(styleObject.backgroundRepeat); var bgSize = parseSimpleList(styleObject.backgroundSize); var background; - for (var i2 = 0, ii = bgImage.length; i2 < ii; i2++) { + for (var i = 0, ii = bgImage.length; i < ii; i++) { background = new Background({ - image: bgImage[i2], - attachment: bgAttachment[i2 % bgAttachment.length], - clip: bgClip[i2 % bgClip.length], - origin: bgOrigin[i2 % bgOrigin.length], - position: bgPosition[i2 % bgPosition.length], - repeat: bgRepeat[i2 % bgRepeat.length], - size: bgSize[i2 % bgSize.length] + image: bgImage[i], + attachment: bgAttachment[i % bgAttachment.length], + clip: bgClip[i % bgClip.length], + origin: bgOrigin[i % bgOrigin.length], + position: bgPosition[i % bgPosition.length], + repeat: bgRepeat[i % bgRepeat.length], + size: bgSize[i % bgSize.length] }); - if (i2 === ii - 1) { + if (i === ii - 1) { background.color = bgColor; } list.backgrounds.push(background); @@ -1990,7 +1991,7 @@ var require_css_box_shadow = __commonJS({ const inset = parts.includes("inset"); const last = parts.slice(-1)[0]; const color = !isLength(last) ? last : void 0; - const nums = parts.filter((n2) => n2 !== "inset").filter((n2) => n2 !== color).map(toNum); + const nums = parts.filter((n) => n !== "inset").filter((n) => n !== color).map(toNum); const [offsetX, offsetY, blurRadius, spreadRadius] = nums; return { inset, @@ -2017,16 +2018,16 @@ var require_css_box_shadow = __commonJS({ blurRadius, spreadRadius, color - ].filter((v3) => v3 !== null && v3 !== void 0).map(toPx).map((s2) => ("" + s2).trim()).join(" "); + ].filter((v2) => v2 !== null && v2 !== void 0).map(toPx).map((s) => ("" + s).trim()).join(" "); }; - var isLength = (v3) => v3 === "0" || LENGTH_REG.test(v3); - var toNum = (v3) => { - if (!/px$/.test(v3) && v3 !== "0") return v3; - const n2 = parseFloat(v3); - return !isNaN(n2) ? n2 : v3; + var isLength = (v2) => v2 === "0" || LENGTH_REG.test(v2); + var toNum = (v2) => { + if (!/px$/.test(v2) && v2 !== "0") return v2; + const n = parseFloat(v2); + return !isNaN(n) ? n : v2; }; - var toPx = (n2) => typeof n2 === "number" && n2 !== 0 ? n2 + "px" : n2; - var parse2 = (str) => str.split(VALUES_REG).map((s2) => s2.trim()).map(parseValue); + var toPx = (n) => typeof n === "number" && n !== 0 ? n + "px" : n; + var parse2 = (str) => str.split(VALUES_REG).map((s) => s.trim()).map(parseValue); var stringify = (arr) => arr.map(stringifyValue).join(", "); module.exports = { parse: parse2, @@ -2351,48 +2352,48 @@ var init_wrapAsm_f766f97f = __esm({ WRAP_NO_WRAP = YGEnums.WRAP_NO_WRAP = 0; WRAP_WRAP = YGEnums.WRAP_WRAP = 1; WRAP_WRAP_REVERSE = YGEnums.WRAP_WRAP_REVERSE = 2; - wrapAsm = (E3) => { - function _2(E4, _3, T3) { - let N3 = E4[_3]; - E4[_3] = function(...E5) { - return T3.call(this, N3, ...E5); + wrapAsm = (E2) => { + function _(E3, _2, T2) { + let N2 = E3[_2]; + E3[_2] = function(...E4) { + return T2.call(this, N2, ...E4); }; } - for (let T3 of ["setPosition", "setMargin", "setFlexBasis", "setWidth", "setHeight", "setMinWidth", "setMinHeight", "setMaxWidth", "setMaxHeight", "setPadding"]) { - let N3 = { [YGEnums.UNIT_POINT]: E3.Node.prototype[T3], [YGEnums.UNIT_PERCENT]: E3.Node.prototype[`${T3}Percent`], [YGEnums.UNIT_AUTO]: E3.Node.prototype[`${T3}Auto`] }; - _2(E3.Node.prototype, T3, function(E4, ..._3) { - let I2, L2; - let O3 = _3.pop(); - if ("auto" === O3) I2 = YGEnums.UNIT_AUTO, L2 = void 0; - else if ("object" == typeof O3) I2 = O3.unit, L2 = O3.valueOf(); - else if (I2 = "string" == typeof O3 && O3.endsWith("%") ? YGEnums.UNIT_PERCENT : YGEnums.UNIT_POINT, L2 = parseFloat(O3), !Number.isNaN(O3) && Number.isNaN(L2)) throw Error(`Invalid value ${O3} for ${T3}`); - if (!N3[I2]) throw Error(`Failed to execute "${T3}": Unsupported unit '${O3}'`); - return void 0 !== L2 ? N3[I2].call(this, ..._3, L2) : N3[I2].call(this, ..._3); + for (let T2 of ["setPosition", "setMargin", "setFlexBasis", "setWidth", "setHeight", "setMinWidth", "setMinHeight", "setMaxWidth", "setMaxHeight", "setPadding"]) { + let N2 = { [YGEnums.UNIT_POINT]: E2.Node.prototype[T2], [YGEnums.UNIT_PERCENT]: E2.Node.prototype[`${T2}Percent`], [YGEnums.UNIT_AUTO]: E2.Node.prototype[`${T2}Auto`] }; + _(E2.Node.prototype, T2, function(E3, ..._2) { + let I, L; + let O2 = _2.pop(); + if ("auto" === O2) I = YGEnums.UNIT_AUTO, L = void 0; + else if ("object" == typeof O2) I = O2.unit, L = O2.valueOf(); + else if (I = "string" == typeof O2 && O2.endsWith("%") ? YGEnums.UNIT_PERCENT : YGEnums.UNIT_POINT, L = parseFloat(O2), !Number.isNaN(O2) && Number.isNaN(L)) throw Error(`Invalid value ${O2} for ${T2}`); + if (!N2[I]) throw Error(`Failed to execute "${T2}": Unsupported unit '${O2}'`); + return void 0 !== L ? N2[I].call(this, ..._2, L) : N2[I].call(this, ..._2); }); } - function T2(_3) { - return E3.MeasureCallback.implement({ measure: (...E4) => { - let { width: T3, height: N3 } = _3(...E4); - return { width: T3 ?? NaN, height: N3 ?? NaN }; + function T(_2) { + return E2.MeasureCallback.implement({ measure: (...E3) => { + let { width: T2, height: N2 } = _2(...E3); + return { width: T2 ?? NaN, height: N2 ?? NaN }; } }); } - function N2(_3) { - return E3.DirtiedCallback.implement({ dirtied: _3 }); + function N(_2) { + return E2.DirtiedCallback.implement({ dirtied: _2 }); } - return _2(E3.Node.prototype, "setMeasureFunc", function(E4, _3) { - return _3 ? E4.call(this, T2(_3)) : this.unsetMeasureFunc(); - }), _2(E3.Node.prototype, "setDirtiedFunc", function(E4, _3) { - E4.call(this, N2(_3)); - }), _2(E3.Config.prototype, "free", function() { - E3.Config.destroy(this); - }), _2(E3.Node, "create", (_3, T3) => T3 ? E3.Node.createWithConfig(T3) : E3.Node.createDefault()), _2(E3.Node.prototype, "free", function() { - E3.Node.destroy(this); - }), _2(E3.Node.prototype, "freeRecursive", function() { - for (let E4 = 0, _3 = this.getChildCount(); E4 < _3; ++E4) this.getChild(0).freeRecursive(); + return _(E2.Node.prototype, "setMeasureFunc", function(E3, _2) { + return _2 ? E3.call(this, T(_2)) : this.unsetMeasureFunc(); + }), _(E2.Node.prototype, "setDirtiedFunc", function(E3, _2) { + E3.call(this, N(_2)); + }), _(E2.Config.prototype, "free", function() { + E2.Config.destroy(this); + }), _(E2.Node, "create", (_2, T2) => T2 ? E2.Node.createWithConfig(T2) : E2.Node.createDefault()), _(E2.Node.prototype, "free", function() { + E2.Node.destroy(this); + }), _(E2.Node.prototype, "freeRecursive", function() { + for (let E3 = 0, _2 = this.getChildCount(); E3 < _2; ++E3) this.getChild(0).freeRecursive(); this.free(); - }), _2(E3.Node.prototype, "calculateLayout", function(E4, _3 = NaN, T3 = NaN, N3 = YGEnums.DIRECTION_LTR) { - return E4.call(this, _3, T3, N3); - }), { Config: E3.Config, Node: E3.Node, ...YGEnums }; + }), _(E2.Node.prototype, "calculateLayout", function(E3, _2 = NaN, T2 = NaN, N2 = YGEnums.DIRECTION_LTR) { + return E3.call(this, _2, T2, N2); + }), { Config: E2.Config, Node: E2.Node, ...YGEnums }; }; } }); @@ -2478,165 +2479,165 @@ var init_asm = __esm({ init_wrapAsm_f766f97f(); init_wrapAsm_f766f97f(); yoga = (() => { - var r2 = "undefined" != typeof document && document.currentScript ? document.currentScript.src : void 0; - return function(e2 = {}) { - u4 || (u4 = void 0 !== e2 ? e2 : {}), u4.ready = new Promise(function(r3, e3) { - s2 = r3, A2 = e3; + var r = "undefined" != typeof document && document.currentScript ? document.currentScript.src : void 0; + return function(e = {}) { + u2 || (u2 = void 0 !== e ? e : {}), u2.ready = new Promise(function(r3, e2) { + s = r3, A = e2; }); - var a2, i2, n2 = Object.assign({}, u4), f3 = ""; - "undefined" != typeof document && document.currentScript && (f3 = document.currentScript.src), r2 && (f3 = r2), f3 = 0 !== f3.indexOf("blob:") ? f3.substr(0, f3.replace(/[?#].*/, "").lastIndexOf("/") + 1) : ""; - var t2 = u4.print || console.log.bind(console), b2 = u4.printErr || console.warn.bind(console); - function o2() { + var a, i, n = Object.assign({}, u2), f = ""; + "undefined" != typeof document && document.currentScript && (f = document.currentScript.src), r && (f = r), f = 0 !== f.indexOf("blob:") ? f.substr(0, f.replace(/[?#].*/, "").lastIndexOf("/") + 1) : ""; + var t = u2.print || console.log.bind(console), b = u2.printErr || console.warn.bind(console); + function o() { } - function k3(r3) { + function k2(r3) { this.exports = (function(r4) { - for (var e3, a3 = new Uint8Array(123), i3 = 25; i3 >= 0; --i3) a3[48 + i3] = 52 + i3, a3[65 + i3] = i3, a3[97 + i3] = 26 + i3; - function n3(r5, e4, i4) { - for (var n4, f5, t4 = 0, b4 = e4, o4 = i4.length, k5 = e4 + (3 * o4 >> 2) - ("=" == i4[o4 - 2]) - ("=" == i4[o4 - 1]); t4 < o4; t4 += 4) n4 = a3[i4.charCodeAt(t4 + 1)], f5 = a3[i4.charCodeAt(t4 + 2)], r5[b4++] = a3[i4.charCodeAt(t4)] << 2 | n4 >> 4, b4 < k5 && (r5[b4++] = n4 << 4 | f5 >> 2), b4 < k5 && (r5[b4++] = f5 << 6 | a3[i4.charCodeAt(t4 + 3)]); + for (var e2, a2 = new Uint8Array(123), i2 = 25; i2 >= 0; --i2) a2[48 + i2] = 52 + i2, a2[65 + i2] = i2, a2[97 + i2] = 26 + i2; + function n2(r5, e3, i3) { + for (var n3, f3, t3 = 0, b3 = e3, o3 = i3.length, k4 = e3 + (3 * o3 >> 2) - ("=" == i3[o3 - 2]) - ("=" == i3[o3 - 1]); t3 < o3; t3 += 4) n3 = a2[i3.charCodeAt(t3 + 1)], f3 = a2[i3.charCodeAt(t3 + 2)], r5[b3++] = a2[i3.charCodeAt(t3)] << 2 | n3 >> 4, b3 < k4 && (r5[b3++] = n3 << 4 | f3 >> 2), b3 < k4 && (r5[b3++] = f3 << 6 | a2[i3.charCodeAt(t3 + 3)]); } - a3[43] = 62, a3[47] = 63; - var f4 = new ArrayBuffer(16), t3 = new Int32Array(f4), b3 = new Float32Array(f4), o3 = new Float64Array(f4); - function k4() { + a2[43] = 62, a2[47] = 63; + var f2 = new ArrayBuffer(16), t2 = new Int32Array(f2), b2 = new Float32Array(f2), o2 = new Float64Array(f2); + function k3() { throw Error("abort"); } - function c4(r5) { - b3[2] = r5; + function c3(r5) { + b2[2] = r5; } - function u5() { - return b3[2]; + function u3() { + return b2[2]; } return (function(r5) { - var a4, i4 = r5.a, f5 = i4.a, b4 = f5.buffer; - f5.grow = function(r10) { + var a3, i3 = r5.a, f3 = i3.a, b3 = f3.buffer; + f3.grow = function(r10) { r10 |= 0; - var a5 = 0 | eU(), i5 = a5 + r10 | 0; - if (a5 < i5 && i5 < 65536) { - var n4 = new ArrayBuffer(N3(i5, 65536)); - new Int8Array(n4).set(s3), s3 = new Int8Array(n4), A3 = new Int16Array(n4), l4 = new Int32Array(n4), d4 = new Uint8Array(n4), h4 = new Uint16Array(n4), v4 = new Uint32Array(n4), p3 = new Float32Array(n4), m4 = new Float64Array(n4), b4 = n4, f5.buffer = b4, e3 = d4; + var a4 = 0 | eU(), i4 = a4 + r10 | 0; + if (a4 < i4 && i4 < 65536) { + var n3 = new ArrayBuffer(N2(i4, 65536)); + new Int8Array(n3).set(s2), s2 = new Int8Array(n3), A2 = new Int16Array(n3), l3 = new Int32Array(n3), d3 = new Uint8Array(n3), h4 = new Uint16Array(n3), v3 = new Uint32Array(n3), p2 = new Float32Array(n3), m3 = new Float64Array(n3), b3 = n3, f3.buffer = b3, e2 = d3; } - return a5; + return a4; }; - var s3 = new Int8Array(b4), A3 = new Int16Array(b4), l4 = new Int32Array(b4), d4 = new Uint8Array(b4), h4 = new Uint16Array(b4), v4 = new Uint32Array(b4), p3 = new Float32Array(b4), m4 = new Float64Array(b4), N3 = Math.imul, w4 = Math.fround, y3 = Math.abs, E4 = Math.clz32, G3 = Math.min, R3 = Math.max, g4 = i4.b, Z2 = i4.c, W2 = i4.d, V3 = i4.e, B3 = i4.f, T3 = i4.g, I3 = i4.h, X2 = i4.i, O4 = i4.j, L3 = i4.k, _3 = i4.l, F2 = i4.m, C3 = i4.n, S4 = i4.o, P4 = i4.p, Y2 = i4.q, U2 = i4.r, M3 = i4.s, H3 = i4.t, Q3 = i4.u, z3 = i4.v, j3 = i4.w, D4 = i4.x, x4 = i4.y, J3 = i4.z, K4 = i4.A, q3 = i4.B, $3 = i4.C, rr2 = i4.D, re3 = 73632, ra3 = 0; - function ri2(r10, e4, a5, i5, n4, f6, b5, o4, c5, A4, h5, v5, m5, N4) { - var E5, G4, R4, g5, Z3, W3, V4, B4, I4 = 0, X3 = w4(0), O5 = w4(0), L4 = 0, _4 = 0, F3 = 0, C4 = w4(0), S5 = w4(0), P5 = w4(0), Y3 = 0, U3 = 0, M4 = 0, H4 = w4(0), Q4 = w4(0), z4 = w4(0), j4 = 0, D5 = w4(0), x5 = 0, J4 = w4(0), K5 = w4(0), q4 = 0, $4 = 0, rr3 = 0, ra4 = 0, ri3 = 0, rn3 = w4(0), rf4 = 0, rb3 = w4(0), rk3 = 0, rA3 = 0, rl4 = 0, rd3 = 0, rh3 = w4(0), rp3 = 0, rN3 = 0, rw3 = 0, rG3 = 0, rX3 = w4(0), rL3 = 0, r_3 = 0, rF3 = 0, rC3 = w4(0), rY3 = w4(0), rH3 = 0, rz3 = w4(0), rD3 = w4(0), rx3 = w4(0), rJ3 = 0, rK3 = 0, rq3 = w4(0), r$3 = 0, r03 = w4(0), r24 = w4(0), r12 = w4(0), r43 = w4(0), r33 = 0, r82 = 0, r92 = 0, r72 = 0, er2 = 0, ei2 = 0, ef3 = 0, et3 = 0, eb2 = 0, eo2 = w4(0), ek2 = w4(0); - re3 = I4 = re3 - 384 | 0; + var s2 = new Int8Array(b3), A2 = new Int16Array(b3), l3 = new Int32Array(b3), d3 = new Uint8Array(b3), h4 = new Uint16Array(b3), v3 = new Uint32Array(b3), p2 = new Float32Array(b3), m3 = new Float64Array(b3), N2 = Math.imul, w3 = Math.fround, y2 = Math.abs, E3 = Math.clz32, G2 = Math.min, R3 = Math.max, g3 = i3.b, Z2 = i3.c, W2 = i3.d, V2 = i3.e, B2 = i3.f, T2 = i3.g, I2 = i3.h, X2 = i3.i, O3 = i3.j, L2 = i3.k, _2 = i3.l, F2 = i3.m, C2 = i3.n, S3 = i3.o, P3 = i3.p, Y2 = i3.q, U2 = i3.r, M3 = i3.s, H2 = i3.t, Q2 = i3.u, z2 = i3.v, j2 = i3.w, D3 = i3.x, x3 = i3.y, J2 = i3.z, K3 = i3.A, q2 = i3.B, $2 = i3.C, rr2 = i3.D, re3 = 73632, ra3 = 0; + function ri2(r10, e3, a4, i4, n3, f4, b4, o3, c4, A3, h5, v4, m4, N3) { + var E4, G3, R4, g4, Z3, W3, V3, B3, I3 = 0, X3 = w3(0), O4 = w3(0), L3 = 0, _3 = 0, F3 = 0, C3 = w3(0), S4 = w3(0), P4 = w3(0), Y3 = 0, U3 = 0, M4 = 0, H3 = w3(0), Q3 = w3(0), z3 = w3(0), j3 = 0, D4 = w3(0), x4 = 0, J3 = w3(0), K4 = w3(0), q3 = 0, $3 = 0, rr3 = 0, ra4 = 0, ri3 = 0, rn3 = w3(0), rf4 = 0, rb3 = w3(0), rk3 = 0, rA3 = 0, rl4 = 0, rd3 = 0, rh3 = w3(0), rp3 = 0, rN3 = 0, rw3 = 0, rG3 = 0, rX3 = w3(0), rL3 = 0, r_3 = 0, rF3 = 0, rC3 = w3(0), rY3 = w3(0), rH3 = 0, rz3 = w3(0), rD3 = w3(0), rx3 = w3(0), rJ3 = 0, rK3 = 0, rq3 = w3(0), r$3 = 0, r03 = w3(0), r23 = w3(0), r12 = w3(0), r43 = w3(0), r33 = 0, r82 = 0, r92 = 0, r72 = 0, er2 = 0, ei2 = 0, ef3 = 0, et3 = 0, eb2 = 0, eo2 = w3(0), ek2 = w3(0); + re3 = I3 = re3 - 384 | 0; r: { e: { a: { - if (!(n4 ? e4 != e4 : 0)) { - if (!(f6 ? a5 != a5 : 0)) { - if (l4[(L4 = (c5 ? 0 : 4) + h5 | 0) >> 2] = l4[L4 >> 2] + 1, L4 = 3 & l4[r10 + 24 >> 2], r$3 = (0 | i5) <= 1 ? 1 : i5, rf4 = L4 || r$3, s3[r10 + 300 | 0] = 252 & d4[r10 + 300 | 0] | 3 & rf4, L4 = r10 + 252 | 0, i5 = ((0 | rf4) != 1) << 3, S5 = rP2(r10, rL3 = (0 | rf4) == 2 ? 3 : 2, b5), p3[L4 + i5 >> 2] = S5, _4 = L4, L4 = ((0 | rf4) == 1) << 3, Q4 = rS2(r10, rL3, b5), p3[_4 + L4 >> 2] = Q4, H4 = rP2(r10, 0, b5), p3[r10 + 256 >> 2] = H4, C4 = rS2(r10, 0, b5), p3[r10 + 264 >> 2] = C4, eb2 = (F3 = r10 + 268 | 0) + i5 | 0, eo2 = rM2(r10, rL3), p3[eb2 >> 2] = eo2, eb2 = L4 + F3 | 0, eo2 = rU2(r10, rL3), p3[eb2 >> 2] = eo2, X3 = rM2(r10, 0), p3[r10 + 272 >> 2] = X3, P5 = rU2(r10, 0), p3[r10 + 280 >> 2] = P5, eb2 = (_4 = i5) + (i5 = r10 + 284 | 0) | 0, eo2 = rZ2(r10, rL3, b5), p3[eb2 >> 2] = eo2, eb2 = i5 + L4 | 0, eo2 = rW2(r10, rL3, b5), p3[eb2 >> 2] = eo2, O5 = rZ2(r10, 0, b5), p3[r10 + 288 >> 2] = O5, D5 = rW2(r10, 0, b5), p3[r10 + 296 >> 2] = D5, S5 = w4(S5 + Q4), Q4 = w4(H4 + C4), i5 = l4[r10 + 8 >> 2]) { - H4 = w4(w4(w4(p3[r10 + 284 >> 2] + p3[r10 + 292 >> 2]) + p3[r10 + 268 >> 2]) + p3[r10 + 276 >> 2]), a5 = f6 ? w4(a5 - Q4) : w4(NaN), X3 = w4(w4(O5 + D5) + X3), e4 = O5 = n4 ? w4(e4 - S5) : w4(NaN); - i: if (e4 == e4) { - if ((e4 = w4(O5 - H4)) != e4) { - e4 = w4(0); + if (!(n3 ? e3 != e3 : 0)) { + if (!(f4 ? a4 != a4 : 0)) { + if (l3[(L3 = (c4 ? 0 : 4) + h5 | 0) >> 2] = l3[L3 >> 2] + 1, L3 = 3 & l3[r10 + 24 >> 2], r$3 = (0 | i4) <= 1 ? 1 : i4, rf4 = L3 || r$3, s2[r10 + 300 | 0] = 252 & d3[r10 + 300 | 0] | 3 & rf4, L3 = r10 + 252 | 0, i4 = ((0 | rf4) != 1) << 3, S4 = rP2(r10, rL3 = (0 | rf4) == 2 ? 3 : 2, b4), p2[L3 + i4 >> 2] = S4, _3 = L3, L3 = ((0 | rf4) == 1) << 3, Q3 = rS2(r10, rL3, b4), p2[_3 + L3 >> 2] = Q3, H3 = rP2(r10, 0, b4), p2[r10 + 256 >> 2] = H3, C3 = rS2(r10, 0, b4), p2[r10 + 264 >> 2] = C3, eb2 = (F3 = r10 + 268 | 0) + i4 | 0, eo2 = rM2(r10, rL3), p2[eb2 >> 2] = eo2, eb2 = L3 + F3 | 0, eo2 = rU2(r10, rL3), p2[eb2 >> 2] = eo2, X3 = rM2(r10, 0), p2[r10 + 272 >> 2] = X3, P4 = rU2(r10, 0), p2[r10 + 280 >> 2] = P4, eb2 = (_3 = i4) + (i4 = r10 + 284 | 0) | 0, eo2 = rZ2(r10, rL3, b4), p2[eb2 >> 2] = eo2, eb2 = i4 + L3 | 0, eo2 = rW2(r10, rL3, b4), p2[eb2 >> 2] = eo2, O4 = rZ2(r10, 0, b4), p2[r10 + 288 >> 2] = O4, D4 = rW2(r10, 0, b4), p2[r10 + 296 >> 2] = D4, S4 = w3(S4 + Q3), Q3 = w3(H3 + C3), i4 = l3[r10 + 8 >> 2]) { + H3 = w3(w3(w3(p2[r10 + 284 >> 2] + p2[r10 + 292 >> 2]) + p2[r10 + 268 >> 2]) + p2[r10 + 276 >> 2]), a4 = f4 ? w3(a4 - Q3) : w3(NaN), X3 = w3(w3(O4 + D4) + X3), e3 = O4 = n3 ? w3(e3 - S4) : w3(NaN); + i: if (e3 == e3) { + if ((e3 = w3(O4 - H3)) != e3) { + e3 = w3(0); break i; } - e4 = eu2(e4, w4(0)); + e3 = eu2(e3, w3(0)); } - S5 = w4(X3 + P5), X3 = a5; - n: if (a5 == a5) { - if ((X3 = w4(a5 - S5)) != X3) { - X3 = w4(0); + S4 = w3(X3 + P4), X3 = a4; + n: if (a4 == a4) { + if ((X3 = w3(a4 - S4)) != X3) { + X3 = w3(0); break n; } - X3 = eu2(X3, w4(0)); + X3 = eu2(X3, w3(0)); } - if (!((0 | n4) != 1 | (0 | f6) != 1)) { - i5 = (e4 = ro2(r10, 2, O5, b5)) != e4, X3 = w4(w4(rZ2(r10, 2, b5) + rM2(r10, 2)) + w4(rW2(r10, 2, b5) + rU2(r10, 2))); + if (!((0 | n3) != 1 | (0 | f4) != 1)) { + i4 = (e3 = ro2(r10, 2, O4, b4)) != e3, X3 = w3(w3(rZ2(r10, 2, b4) + rM2(r10, 2)) + w3(rW2(r10, 2, b4) + rU2(r10, 2))); f: { - if (!(i5 | X3 != X3)) { - e4 = eu2(e4, X3); + if (!(i4 | X3 != X3)) { + e3 = eu2(e3, X3); break f; } - e4 = i5 ? X3 : e4; + e3 = i4 ? X3 : e3; } - p3[r10 + 516 >> 2] = e4, i5 = (e4 = ro2(r10, 0, a5, o4)) != e4, a5 = w4(w4(rZ2(r10, 0, b5) + rM2(r10, 0)) + w4(rW2(r10, 0, b5) + rU2(r10, 0))); + p2[r10 + 516 >> 2] = e3, i4 = (e3 = ro2(r10, 0, a4, o3)) != e3, a4 = w3(w3(rZ2(r10, 0, b4) + rM2(r10, 0)) + w3(rW2(r10, 0, b4) + rU2(r10, 0))); t: { - if (!(i5 | a5 != a5)) { - e4 = eu2(e4, a5); + if (!(i4 | a4 != a4)) { + e3 = eu2(e3, a4); break t; } - e4 = i5 ? a5 : e4; + e3 = i4 ? a4 : e3; } - p3[r10 + 520 >> 2] = e4; + p2[r10 + 520 >> 2] = e3; break r; } b: { - if (16 & d4[r10 + 4 | 0]) { - eY[0 | i5](I4 + 24 | 0, r10, e4, n4, X3, f6, 0); + if (16 & d3[r10 + 4 | 0]) { + eY[0 | i4](I3 + 24 | 0, r10, e3, n3, X3, f4, 0); break b; } - eY[0 | i5](I4 + 24 | 0, r10, e4, n4, X3, f6); + eY[0 | i4](I3 + 24 | 0, r10, e3, n3, X3, f4); } - l4[h5 + 20 >> 2] = l4[h5 + 20 >> 2] + 1, l4[(i5 = (N4 << 2) + h5 | 0) + 24 >> 2] = l4[i5 + 24 >> 2] + 1, e4 = w4(H4 + p3[I4 + 24 >> 2]), i5 = (e4 = ro2(r10, 2, n4 ? (0 | n4) == 2 ? e4 : O5 : e4, b5)) != e4, X3 = w4(w4(rZ2(r10, 2, b5) + rM2(r10, 2)) + w4(rW2(r10, 2, b5) + rU2(r10, 2))); + l3[h5 + 20 >> 2] = l3[h5 + 20 >> 2] + 1, l3[(i4 = (N3 << 2) + h5 | 0) + 24 >> 2] = l3[i4 + 24 >> 2] + 1, e3 = w3(H3 + p2[I3 + 24 >> 2]), i4 = (e3 = ro2(r10, 2, n3 ? (0 | n3) == 2 ? e3 : O4 : e3, b4)) != e3, X3 = w3(w3(rZ2(r10, 2, b4) + rM2(r10, 2)) + w3(rW2(r10, 2, b4) + rU2(r10, 2))); o: { - if (!(i5 | X3 != X3)) { - e4 = eu2(e4, X3); + if (!(i4 | X3 != X3)) { + e3 = eu2(e3, X3); break o; } - e4 = i5 ? X3 : e4; + e3 = i4 ? X3 : e3; } - p3[r10 + 516 >> 2] = e4, e4 = w4(S5 + p3[I4 + 28 >> 2]), i5 = (e4 = ro2(r10, 0, f6 ? (0 | f6) == 2 ? e4 : a5 : e4, o4)) != e4, a5 = w4(w4(rZ2(r10, 0, b5) + rM2(r10, 0)) + w4(rW2(r10, 0, b5) + rU2(r10, 0))); + p2[r10 + 516 >> 2] = e3, e3 = w3(S4 + p2[I3 + 28 >> 2]), i4 = (e3 = ro2(r10, 0, f4 ? (0 | f4) == 2 ? e3 : a4 : e3, o3)) != e3, a4 = w3(w3(rZ2(r10, 0, b4) + rM2(r10, 0)) + w3(rW2(r10, 0, b4) + rU2(r10, 0))); k: { - if (!(i5 | a5 != a5)) { - e4 = eu2(e4, a5); + if (!(i4 | a4 != a4)) { + e3 = eu2(e3, a4); break k; } - e4 = i5 ? a5 : e4; + e3 = i4 ? a4 : e3; } - p3[r10 + 520 >> 2] = e4; + p2[r10 + 520 >> 2] = e3; break r; } - if (i5 = l4[r10 + 556 >> 2], N4 = l4[r10 + 560 >> 2], (0 | i5) == (0 | N4)) { - Q4 = w4(a5 - Q4), i5 = (e4 = ro2(r10, 2, -3 & n4 ? w4(e4 - S5) : w4(w4(w4(p3[r10 + 284 >> 2] + p3[r10 + 292 >> 2]) + p3[r10 + 268 >> 2]) + p3[r10 + 276 >> 2]), b5)) != e4, a5 = w4(w4(rZ2(r10, 2, b5) + rM2(r10, 2)) + w4(rW2(r10, 2, b5) + rU2(r10, 2))); + if (i4 = l3[r10 + 556 >> 2], N3 = l3[r10 + 560 >> 2], (0 | i4) == (0 | N3)) { + Q3 = w3(a4 - Q3), i4 = (e3 = ro2(r10, 2, -3 & n3 ? w3(e3 - S4) : w3(w3(w3(p2[r10 + 284 >> 2] + p2[r10 + 292 >> 2]) + p2[r10 + 268 >> 2]) + p2[r10 + 276 >> 2]), b4)) != e3, a4 = w3(w3(rZ2(r10, 2, b4) + rM2(r10, 2)) + w3(rW2(r10, 2, b4) + rU2(r10, 2))); c: { - if (!(i5 | a5 != a5)) { - e4 = eu2(e4, a5); + if (!(i4 | a4 != a4)) { + e3 = eu2(e3, a4); break c; } - e4 = i5 ? a5 : e4; + e3 = i4 ? a4 : e3; } - p3[r10 + 516 >> 2] = e4, i5 = (e4 = ro2(r10, 0, -3 & f6 ? Q4 : w4(w4(w4(O5 + D5) + X3) + P5), o4)) != e4, a5 = w4(w4(rZ2(r10, 0, b5) + rM2(r10, 0)) + w4(rW2(r10, 0, b5) + rU2(r10, 0))); + p2[r10 + 516 >> 2] = e3, i4 = (e3 = ro2(r10, 0, -3 & f4 ? Q3 : w3(w3(w3(O4 + D4) + X3) + P4), o3)) != e3, a4 = w3(w3(rZ2(r10, 0, b4) + rM2(r10, 0)) + w3(rW2(r10, 0, b4) + rU2(r10, 0))); u: { - if (!(i5 | a5 != a5)) { - e4 = eu2(e4, a5); + if (!(i4 | a4 != a4)) { + e3 = eu2(e3, a4); break u; } - e4 = i5 ? a5 : e4; + e3 = i4 ? a4 : e3; } - p3[r10 + 520 >> 2] = e4; + p2[r10 + 520 >> 2] = e3; break r; } - s: if (!c5) { - if (O5 = w4(e4 - S5), X3 = w4(a5 - Q4), !((0 | n4) == 2 & O5 <= w4(0) | !(!(X3 <= w4(0)) | (0 | f6) != 2) & X3 == X3) & ((0 | n4) != 1 | (0 | f6) != 1)) break s; - i5 = (e4 = ro2(r10, 2, O5 == O5 ? (0 | n4) == 2 && O5 < w4(0) ? w4(0) : O5 : w4(0), b5)) != e4, a5 = w4(w4(rZ2(r10, 2, b5) + rM2(r10, 2)) + w4(rW2(r10, 2, b5) + rU2(r10, 2))); + s: if (!c4) { + if (O4 = w3(e3 - S4), X3 = w3(a4 - Q3), !((0 | n3) == 2 & O4 <= w3(0) | !(!(X3 <= w3(0)) | (0 | f4) != 2) & X3 == X3) & ((0 | n3) != 1 | (0 | f4) != 1)) break s; + i4 = (e3 = ro2(r10, 2, O4 == O4 ? (0 | n3) == 2 && O4 < w3(0) ? w3(0) : O4 : w3(0), b4)) != e3, a4 = w3(w3(rZ2(r10, 2, b4) + rM2(r10, 2)) + w3(rW2(r10, 2, b4) + rU2(r10, 2))); A: { - if (!(i5 | a5 != a5)) { - e4 = eu2(e4, a5); + if (!(i4 | a4 != a4)) { + e3 = eu2(e3, a4); break A; } - e4 = i5 ? a5 : e4; + e3 = i4 ? a4 : e3; } - p3[r10 + 516 >> 2] = e4, i5 = (e4 = ro2(r10, 0, X3 != X3 ? w4(0) : (0 | f6) == 2 && X3 < w4(0) ? w4(0) : X3, o4)) != e4, a5 = w4(w4(rZ2(r10, 0, b5) + rM2(r10, 0)) + w4(rW2(r10, 0, b5) + rU2(r10, 0))); + p2[r10 + 516 >> 2] = e3, i4 = (e3 = ro2(r10, 0, X3 != X3 ? w3(0) : (0 | f4) == 2 && X3 < w3(0) ? w3(0) : X3, o3)) != e3, a4 = w3(w3(rZ2(r10, 0, b4) + rM2(r10, 0)) + w3(rW2(r10, 0, b4) + rU2(r10, 0))); l: { - if (!(i5 | a5 != a5)) { - e4 = eu2(e4, a5); + if (!(i4 | a4 != a4)) { + e3 = eu2(e3, a4); break l; } - e4 = i5 ? a5 : e4; + e3 = i4 ? a4 : e3; } - p3[r10 + 520 >> 2] = e4; + p2[r10 + 520 >> 2] = e3; break r; } - for (rd3 = (rr3 = N4 - i5 | 0) >> 2; L4 = l4[i5 >> 2], l4[L4 + 552 >> 2] != (0 | r10) && (F3 = l4[r10 + 568 >> 2], L4 = rV2(l4[F3 >> 2], d4[F3 + 8 | 0], L4, r10, U3, 0), l4[i5 >> 2] = L4, l4[L4 + 552 >> 2] = r10), U3 = U3 + 1 | 0, (0 | N4) != (0 | (i5 = i5 + 4 | 0)); ) ; - s3[r10 + 300 | 0] = 251 & d4[r10 + 300 | 0], U3 = 3, i5 = (rH3 = l4[r10 + 24 >> 2]) >>> 2 & 3; + for (rd3 = (rr3 = N3 - i4 | 0) >> 2; L3 = l3[i4 >> 2], l3[L3 + 552 >> 2] != (0 | r10) && (F3 = l3[r10 + 568 >> 2], L3 = rV2(l3[F3 >> 2], d3[F3 + 8 | 0], L3, r10, U3, 0), l3[i4 >> 2] = L3, l3[L3 + 552 >> 2] = r10), U3 = U3 + 1 | 0, (0 | N3) != (0 | (i4 = i4 + 4 | 0)); ) ; + s2[r10 + 300 | 0] = 251 & d3[r10 + 300 | 0], U3 = 3, i4 = (rH3 = l3[r10 + 24 >> 2]) >>> 2 & 3; d: { h: { v: { if ((0 | rf4) == 2) { - N4 = 0; - p: switch (i5 - 2 | 0) { + N3 = 0; + p: switch (i4 - 2 | 0) { case 0: break d; case 1: @@ -2647,72 +2648,72 @@ var init_asm = __esm({ U3 = 2; break d; } - if (U3 = 2, N4 = 0, i5 >>> 0 > 1) break h; + if (U3 = 2, N3 = 0, i4 >>> 0 > 1) break h; } - N4 = U3; + N3 = U3; } - U3 = i5; + U3 = i4; } - r03 = w4(e4 - S5), rh3 = w4(w4(rZ2(r10, U3, b5) + rM2(r10, U3)) + w4(rW2(r10, U3, b5) + rU2(r10, U3))), D5 = w4(rZ2(r10, N4, b5) + rM2(r10, N4)), rb3 = w4(D5 + w4(rW2(r10, N4, b5) + rU2(r10, N4))), C4 = rs2(r10, 0, r03, (rk3 = U3 >>> 0 > 1) ? rh3 : rb3, b5), J4 = rs2(r10, 1, r24 = w4(a5 - Q4), rk3 ? rb3 : rh3, o4), K5 = rk3 ? J4 : C4, Q4 = rk3 ? C4 : J4, rp3 = l4[r10 + 560 >> 2], L4 = l4[r10 + 556 >> 2], x5 = rk3 ? n4 : f6; - m: if ((0 | x5) == 1) { - if ((0 | L4) == (0 | rp3)) break a; - for (i5 = 0, F3 = L4; ; ) { - _4 = i5, i5 = l4[F3 >> 2]; + r03 = w3(e3 - S4), rh3 = w3(w3(rZ2(r10, U3, b4) + rM2(r10, U3)) + w3(rW2(r10, U3, b4) + rU2(r10, U3))), D4 = w3(rZ2(r10, N3, b4) + rM2(r10, N3)), rb3 = w3(D4 + w3(rW2(r10, N3, b4) + rU2(r10, N3))), C3 = rs2(r10, 0, r03, (rk3 = U3 >>> 0 > 1) ? rh3 : rb3, b4), J3 = rs2(r10, 1, r23 = w3(a4 - Q3), rk3 ? rb3 : rh3, o3), K4 = rk3 ? J3 : C3, Q3 = rk3 ? C3 : J3, rp3 = l3[r10 + 560 >> 2], L3 = l3[r10 + 556 >> 2], x4 = rk3 ? n3 : f4; + m: if ((0 | x4) == 1) { + if ((0 | L3) == (0 | rp3)) break a; + for (i4 = 0, F3 = L3; ; ) { + _3 = i4, i4 = l3[F3 >> 2]; N: { - if (!rQ2(i5)) { - i5 = _4; + if (!rQ2(i4)) { + i4 = _3; break N; } - if (Y3 = 0, _4 || !(_4 = l4[i5 + 552 >> 2])) break m; + if (Y3 = 0, _3 || !(_3 = l3[i4 + 552 >> 2])) break m; w: { y: { - a5 = p3[i5 + 32 >> 2]; - if ((a5 == a5 || (X3 = w4(0), (a5 = p3[i5 + 28 >> 2]) > w4(0))) && (X3 = a5, a5 != a5)) break y; - if (w4(y3(X3)) < w4(9999999747378752e-20)) break m; - if (_4) break y; - a5 = w4(0); + a4 = p2[i4 + 32 >> 2]; + if ((a4 == a4 || (X3 = w3(0), (a4 = p2[i4 + 28 >> 2]) > w3(0))) && (X3 = a4, a4 != a4)) break y; + if (w3(y2(X3)) < w3(9999999747378752e-20)) break m; + if (_3) break y; + a4 = w3(0); break w; } - if ((a5 = p3[i5 + 36 >> 2]) != a5) { - if (s3[i5 + 4 | 0] < 0) { - a5 = w4(1); + if ((a4 = p2[i4 + 36 >> 2]) != a4) { + if (s2[i4 + 4 | 0] < 0) { + a4 = w3(1); break w; } - if (a5 = w4(0), !((e4 = p3[i5 + 28 >> 2]) < w4(0))) break w; - a5 = w4(-e4); + if (a4 = w3(0), !((e3 = p2[i4 + 28 >> 2]) < w3(0))) break w; + a4 = w3(-e3); } - if (a5 != a5) break N; + if (a4 != a4) break N; } - if (w4(y3(a5)) < w4(9999999747378752e-20)) break m; + if (w3(y2(a4)) < w3(9999999747378752e-20)) break m; } - if (Y3 = i5, (0 | rp3) == (0 | (F3 = F3 + 4 | 0))) break; + if (Y3 = i4, (0 | rp3) == (0 | (F3 = F3 + 4 | 0))) break; } } - if ((0 | L4) == (0 | rp3)) break a; - for (ra4 = (0 | rf4) <= 1 ? 1 : rf4, rN3 = (rw3 = C4 != C4) | (0 | n4) != 1, rG3 = J4 == J4, r_3 = C4 == C4, X3 = w4(0); ; ) { - M4 = l4[L4 >> 2], rc2(M4), F3 = l4[M4 + 24 >> 2]; + if ((0 | L3) == (0 | rp3)) break a; + for (ra4 = (0 | rf4) <= 1 ? 1 : rf4, rN3 = (rw3 = C3 != C3) | (0 | n3) != 1, rG3 = J3 == J3, r_3 = C3 == C3, X3 = w3(0); ; ) { + M4 = l3[L3 >> 2], rc2(M4), F3 = l3[M4 + 24 >> 2]; G: { if (4194304 & F3) { - if ((function r11(e5, a6) { - var i6 = 0, n5 = 0, f7 = 0, t4 = 0, b6 = 0, o5 = 0; - for (re3 = i6 = re3 - 320 | 0, l4[(i6 = n5 = ry2(i6, 0, 288)) + 16 >> 2] = 2143289344, l4[i6 + 20 >> 2] = 2143289344, ry2(i6 + 24 | 0, 0, 49), l4[i6 + 80 >> 2] = 2143289344, t4 = i6 + 288 | 0, f7 = i6 + 96 | 0; l4[(i6 = f7) + 16 >> 2] = -1082130432, l4[i6 + 20 >> 2] = -1082130432, l4[i6 + 8 >> 2] = 0, l4[i6 + 12 >> 2] = 0, l4[i6 >> 2] = -1082130432, l4[i6 + 4 >> 2] = -1082130432, (0 | t4) != (0 | (f7 = i6 + 24 | 0)); ) ; - if (l4[n5 + 312 >> 2] = -1082130432, l4[n5 + 316 >> 2] = -1082130432, l4[n5 + 304 >> 2] = 0, l4[n5 + 308 >> 2] = 0, l4[n5 + 296 >> 2] = -1082130432, l4[n5 + 300 >> 2] = -1082130432, l4[n5 + 288 >> 2] = 2143289344, l4[n5 + 292 >> 2] = 2143289344, ru3(e5 + 228 | 0, n5, 320), l4[e5 + 244 >> 2] = 0, l4[e5 + 248 >> 2] = 0, s3[e5 + 4 | 0] = 1 | d4[e5 + 4 | 0], f7 = l4[e5 + 556 >> 2], b6 = l4[e5 + 560 >> 2], (0 | f7) != (0 | b6)) for (; i6 = l4[f7 >> 2], l4[i6 + 552 >> 2] != (0 | e5) && (t4 = l4[e5 + 568 >> 2], i6 = rV2(l4[t4 >> 2], d4[t4 + 8 | 0], i6, e5, o5, a6), l4[f7 >> 2] = i6, l4[i6 + 552 >> 2] = e5, i6 = l4[f7 >> 2]), r11(i6, a6), o5 = o5 + 1 | 0, (0 | b6) != (0 | (f7 = f7 + 4 | 0)); ) ; - re3 = n5 + 320 | 0; - })(M4, 0), F3 = 1 | (i5 = d4[M4 + 4 | 0]), s3[M4 + 4 | 0] = F3, !(4 & i5)) break G; - s3[M4 + 4 | 0] = 251 & F3; + if ((function r11(e4, a5) { + var i5 = 0, n4 = 0, f5 = 0, t3 = 0, b5 = 0, o4 = 0; + for (re3 = i5 = re3 - 320 | 0, l3[(i5 = n4 = ry2(i5, 0, 288)) + 16 >> 2] = 2143289344, l3[i5 + 20 >> 2] = 2143289344, ry2(i5 + 24 | 0, 0, 49), l3[i5 + 80 >> 2] = 2143289344, t3 = i5 + 288 | 0, f5 = i5 + 96 | 0; l3[(i5 = f5) + 16 >> 2] = -1082130432, l3[i5 + 20 >> 2] = -1082130432, l3[i5 + 8 >> 2] = 0, l3[i5 + 12 >> 2] = 0, l3[i5 >> 2] = -1082130432, l3[i5 + 4 >> 2] = -1082130432, (0 | t3) != (0 | (f5 = i5 + 24 | 0)); ) ; + if (l3[n4 + 312 >> 2] = -1082130432, l3[n4 + 316 >> 2] = -1082130432, l3[n4 + 304 >> 2] = 0, l3[n4 + 308 >> 2] = 0, l3[n4 + 296 >> 2] = -1082130432, l3[n4 + 300 >> 2] = -1082130432, l3[n4 + 288 >> 2] = 2143289344, l3[n4 + 292 >> 2] = 2143289344, ru3(e4 + 228 | 0, n4, 320), l3[e4 + 244 >> 2] = 0, l3[e4 + 248 >> 2] = 0, s2[e4 + 4 | 0] = 1 | d3[e4 + 4 | 0], f5 = l3[e4 + 556 >> 2], b5 = l3[e4 + 560 >> 2], (0 | f5) != (0 | b5)) for (; i5 = l3[f5 >> 2], l3[i5 + 552 >> 2] != (0 | e4) && (t3 = l3[e4 + 568 >> 2], i5 = rV2(l3[t3 >> 2], d3[t3 + 8 | 0], i5, e4, o4, a5), l3[f5 >> 2] = i5, l3[i5 + 552 >> 2] = e4, i5 = l3[f5 >> 2]), r11(i5, a5), o4 = o4 + 1 | 0, (0 | b5) != (0 | (f5 = f5 + 4 | 0)); ) ; + re3 = n4 + 320 | 0; + })(M4, 0), F3 = 1 | (i4 = d3[M4 + 4 | 0]), s2[M4 + 4 | 0] = F3, !(4 & i4)) break G; + s2[M4 + 4 | 0] = 251 & F3; break G; } - if (c5 && (rO2(M4, (i5 = 3 & F3) || ra4, Q4, K5, C4), F3 = l4[M4 + 24 >> 2]), (196608 & F3) == 131072) break G; + if (c4 && (rO2(M4, (i4 = 3 & F3) || ra4, Q3, K4, C3), F3 = l3[M4 + 24 >> 2]), (196608 & F3) == 131072) break G; R: { if ((0 | Y3) == (0 | M4)) { - l4[Y3 + 308 >> 2] = 0, l4[Y3 + 304 >> 2] = m5, a5 = w4(0); + l3[Y3 + 308 >> 2] = 0, l3[Y3 + 304 >> 2] = m4, a4 = w3(0); break R; } - _4 = (rF3 = l4[r10 + 24 >> 2]) >>> 2 & 3; + _3 = (rF3 = l3[r10 + 24 >> 2]) >>> 2 & 3; g: { Z: if ((0 | rf4) == 2) { - i5 = 3; - W: switch (_4 - 2 | 0) { + i4 = 3; + W: switch (_3 - 2 | 0) { case 0: break g; case 1: @@ -2720,36 +2721,36 @@ var init_asm = __esm({ default: break Z; } - i5 = 2; + i4 = 2; break g; } - i5 = _4; + i4 = _3; } - O5 = (rA3 = i5 >>> 0 > 1) ? C4 : J4, a5 = w4(0), e4 = p3[M4 + 40 >> 2]; + O4 = (rA3 = i4 >>> 0 > 1) ? C3 : J3, a4 = w3(0), e3 = p2[M4 + 40 >> 2]; V: { B: { - _4 = l4[M4 + 40 >> 2]; - T: if ((0 | _4) != 2139156720) { - if ((0 | _4) == 2140081935) break B; - j4 = 4276; + _3 = l3[M4 + 40 >> 2]; + T: if ((0 | _3) != 2139156720) { + if ((0 | _3) == 2140081935) break B; + j3 = 4276; I: { - if ((0 | _4) != 2141891242) { - if (e4 == e4) break I; - j4 = 4268; + if ((0 | _3) != 2141891242) { + if (e3 == e3) break I; + j3 = 4268; } - a5 = p3[j4 >> 2]; + a4 = p2[j3 >> 2]; X: { - O: switch (0 | (_4 = l4[j4 + 4 >> 2])) { + O: switch (0 | (_3 = l3[j3 + 4 >> 2])) { case 0: case 3: break O; default: break X; } - if (e4 = w4(NaN), !(p3[M4 + 28 >> 2] > w4(0))) break V; - ri3 = (j4 = s3[M4 + 4 | 0] < 0) ? 2143289344 : 0, _4 = j4 ? 3 : 1, E5 = ri3, t3[2] = E5, a5 = u5(); + if (e3 = w3(NaN), !(p2[M4 + 28 >> 2] > w3(0))) break V; + ri3 = (j3 = s2[M4 + 4 | 0] < 0) ? 2143289344 : 0, _3 = j3 ? 3 : 1, E4 = ri3, t2[2] = E4, a4 = u3(); } - switch (e4 = w4(NaN), _4 - 1 | 0) { + switch (e3 = w3(NaN), _3 - 1 | 0) { case 0: break B; case 1: @@ -2758,207 +2759,207 @@ var init_asm = __esm({ break V; } } - if (G4 = (-1073741825 & _4) + 536870912 | 0, t3[2] = G4, a5 = u5(), !(1073741824 & _4)) break B; + if (G3 = (-1073741825 & _3) + 536870912 | 0, t2[2] = G3, a4 = u3(), !(1073741824 & _3)) break B; } - e4 = w4(w4(O5 * a5) * w4(0.009999999776482582)); + e3 = w3(w3(O4 * a4) * w3(0.009999999776482582)); break V; } - e4 = a5; + e3 = a4; } - a5 = p3[M4 + 572 >> 2], _4 = 0; + a4 = p2[M4 + 572 >> 2], _3 = 0; L: { - _: switch (0 | ($4 = l4[M4 + 576 >> 2])) { + _: switch (0 | ($3 = l3[M4 + 576 >> 2])) { case 0: case 3: break L; default: break _; } - if (S5 = p3[M4 + 572 >> 2], !((0 | $4) != 1 | S5 != S5)) { - if (a5 < w4(0)) break L; - _4 = 1; + if (S4 = p2[M4 + 572 >> 2], !((0 | $3) != 1 | S4 != S4)) { + if (a4 < w3(0)) break L; + _3 = 1; break L; } - if (_4 = 1, (0 | $4) != 2 | S5 != S5 || (_4 = 0, a5 < w4(0))) break L; - _4 = r_3; + if (_3 = 1, (0 | $3) != 2 | S4 != S4 || (_3 = 0, a4 < w3(0))) break L; + _3 = r_3; } - S5 = p3[M4 + 580 >> 2], j4 = 0; + S4 = p2[M4 + 580 >> 2], j3 = 0; F: { - C: switch (0 | (q4 = l4[M4 + 584 >> 2])) { + C: switch (0 | (q3 = l3[M4 + 584 >> 2])) { case 0: case 3: break F; default: break C; } - if (P5 = p3[M4 + 580 >> 2], !((0 | q4) != 1 | P5 != P5)) { - if (S5 < w4(0)) break F; - j4 = 1; + if (P4 = p2[M4 + 580 >> 2], !((0 | q3) != 1 | P4 != P4)) { + if (S4 < w3(0)) break F; + j3 = 1; break F; } - if (j4 = 1, (0 | q4) != 2 | P5 != P5 || (j4 = 0, S5 < w4(0))) break F; - j4 = rG3; + if (j3 = 1, (0 | q3) != 2 | P4 != P4 || (j3 = 0, S4 < w3(0))) break F; + j3 = rG3; } S: { P: { - if (!(e4 != e4 | O5 != O5)) { - if (a5 = p3[M4 + 308 >> 2], (!d4[l4[M4 + 568 >> 2] + 20 | 0] | l4[M4 + 304 >> 2] == (0 | m5)) & a5 == a5) break S; - if (!((a5 = w4(w4(rZ2(M4, i5, C4) + rM2(M4, i5)) + w4(rW2(M4, i5, C4) + rU2(M4, i5)))) <= e4) & e4 < a5) break P; - a5 = e4; + if (!(e3 != e3 | O4 != O4)) { + if (a4 = p2[M4 + 308 >> 2], (!d3[l3[M4 + 568 >> 2] + 20 | 0] | l3[M4 + 304 >> 2] == (0 | m4)) & a4 == a4) break S; + if (!((a4 = w3(w3(rZ2(M4, i4, C3) + rM2(M4, i4)) + w3(rW2(M4, i4, C3) + rU2(M4, i4)))) <= e3) & e3 < a4) break P; + a4 = e3; break P; } - if (_4 & rA3) { - O5 = w4(w4(rZ2(M4, 2, C4) + rM2(M4, 2)) + w4(rW2(M4, 2, C4) + rU2(M4, 2))), e4 = w4(NaN); - Y: switch ($4 - 1 | 0) { + if (_3 & rA3) { + O4 = w3(w3(rZ2(M4, 2, C3) + rM2(M4, 2)) + w3(rW2(M4, 2, C3) + rU2(M4, 2))), e3 = w3(NaN); + Y: switch ($3 - 1 | 0) { case 1: - a5 = w4(w4(C4 * a5) * w4(0.009999999776482582)); + a4 = w3(w3(C3 * a4) * w3(0.009999999776482582)); case 0: - if (e4 = a5, O5 <= e4) break P; + if (e3 = a4, O4 <= e3) break P; break; default: break Y; } - if (!(e4 == e4 | O5 == O5)) { - a5 = e4; + if (!(e3 == e3 | O4 == O4)) { + a4 = e3; break P; } - if (e4 < O5) { - a5 = O5; + if (e3 < O4) { + a4 = O4; break P; } - a5 = e4 != e4 ? O5 : e4; + a4 = e3 != e3 ? O4 : e3; break P; } - if (!(rA3 | 1 ^ j4)) { - e4 = w4(w4(rZ2(M4, 0, C4) + rM2(M4, 0)) + w4(rW2(M4, 0, C4) + rU2(M4, 0))), a5 = w4(NaN); - U: switch (q4 - 1 | 0) { + if (!(rA3 | 1 ^ j3)) { + e3 = w3(w3(rZ2(M4, 0, C3) + rM2(M4, 0)) + w3(rW2(M4, 0, C3) + rU2(M4, 0))), a4 = w3(NaN); + U: switch (q3 - 1 | 0) { case 1: - S5 = w4(w4(J4 * S5) * w4(0.009999999776482582)); + S4 = w3(w3(J3 * S4) * w3(0.009999999776482582)); case 0: - if (a5 = S5, e4 <= a5) break P; + if (a4 = S4, e3 <= a4) break P; break; default: break U; } - if (a5 != a5 & e4 != e4) break P; - if (e4 > a5) { - a5 = e4; + if (a4 != a4 & e3 != e3) break P; + if (e3 > a4) { + a4 = e3; break P; } - a5 = a5 != a5 ? e4 : a5; + a4 = a4 != a4 ? e3 : a4; break P; } - if (l4[I4 + 360 >> 2] = 2143289344, l4[I4 + 24 >> 2] = 2143289344, ri3 = 0, l4[I4 + 356 >> 2] = 0, l4[I4 + 352 >> 2] = 0, P5 = w4(rP2(M4, 2, C4) + rS2(M4, 2, C4)), H4 = rP2(M4, 0, C4), z4 = rS2(M4, 0, C4), O5 = w4(NaN), rl4 = 0, e4 = w4(NaN), _4) { + if (l3[I3 + 360 >> 2] = 2143289344, l3[I3 + 24 >> 2] = 2143289344, ri3 = 0, l3[I3 + 356 >> 2] = 0, l3[I3 + 352 >> 2] = 0, P4 = w3(rP2(M4, 2, C3) + rS2(M4, 2, C3)), H3 = rP2(M4, 0, C3), z3 = rS2(M4, 0, C3), O4 = w3(NaN), rl4 = 0, e3 = w3(NaN), _3) { M: { - H: switch ($4 - 1 | 0) { + H: switch ($3 - 1 | 0) { case 0: - e4 = a5; + e3 = a4; break M; case 1: break H; default: break M; } - e4 = w4(w4(C4 * a5) * w4(0.009999999776482582)); + e3 = w3(w3(C3 * a4) * w3(0.009999999776482582)); } - l4[I4 + 356 >> 2] = 1, e4 = w4(P5 + e4), p3[I4 + 24 >> 2] = e4, rl4 = 1; + l3[I3 + 356 >> 2] = 1, e3 = w3(P4 + e3), p2[I3 + 24 >> 2] = e3, rl4 = 1; } - if (H4 = w4(H4 + z4), j4) { - a5 = w4(NaN); + if (H3 = w3(H3 + z3), j3) { + a4 = w3(NaN); Q: { - z: switch (q4 - 1 | 0) { + z: switch (q3 - 1 | 0) { case 0: - a5 = S5; + a4 = S4; break Q; case 1: break z; default: break Q; } - a5 = w4(w4(J4 * S5) * w4(0.009999999776482582)); + a4 = w3(w3(J3 * S4) * w3(0.009999999776482582)); } - l4[I4 + 352 >> 2] = 1, O5 = w4(H4 + a5), p3[I4 + 360 >> 2] = O5, ri3 = 1; + l3[I3 + 352 >> 2] = 1, O4 = w3(H3 + a4), p2[I3 + 360 >> 2] = O4, ri3 = 1; } - $4 = i5 >>> 0 < 2, q4 = 3145728 & rF3; + $3 = i4 >>> 0 < 2, q3 = 3145728 & rF3; j: { D: { x: { - if (!(!rA3 & (0 | q4) == 2097152)) { - if (rw3 | (0 | q4) == 2097152) break D; - if (e4 != e4) break x; + if (!(!rA3 & (0 | q3) == 2097152)) { + if (rw3 | (0 | q3) == 2097152) break D; + if (e3 != e3) break x; break D; } - if (rw3 | e4 == e4) break j; + if (rw3 | e3 == e3) break j; } - rl4 = 2, l4[I4 + 356 >> 2] = 2, p3[I4 + 24 >> 2] = C4, e4 = C4; + rl4 = 2, l3[I3 + 356 >> 2] = 2, p2[I3 + 24 >> 2] = C3, e3 = C3; } J: { - if (!(!$4 & (0 | q4) == 2097152)) { - if ((0 | q4) == 2097152 | J4 != J4) break j; - if (O5 != O5) break J; + if (!(!$3 & (0 | q3) == 2097152)) { + if ((0 | q3) == 2097152 | J3 != J3) break j; + if (O4 != O4) break J; break j; } - if (O5 == O5 | J4 != J4) break j; + if (O4 == O4 | J3 != J3) break j; } - ri3 = 2, l4[I4 + 352 >> 2] = 2, p3[I4 + 360 >> 2] = J4, O5 = J4; + ri3 = 2, l3[I3 + 352 >> 2] = 2, p2[I3 + 360 >> 2] = J3, O4 = J3; } - q4 = (a5 = p3[M4 + 224 >> 2]) != a5; - K: if (!q4) { + q3 = (a4 = p2[M4 + 224 >> 2]) != a4; + K: if (!q3) { q: { if (!(rA3 | (0 | rl4) != 1)) { - l4[I4 + 352 >> 2] = 1, p3[I4 + 360 >> 2] = H4 + w4(w4(e4 - P5) / a5); + l3[I3 + 352 >> 2] = 1, p2[I3 + 360 >> 2] = H3 + w3(w3(e3 - P4) / a4); break q; } - if ($4 | (0 | ri3) != 1) break K; - l4[I4 + 356 >> 2] = 1, p3[I4 + 24 >> 2] = w4(w4(O5 - H4) * a5) + P5; + if ($3 | (0 | ri3) != 1) break K; + l3[I3 + 356 >> 2] = 1, p2[I3 + 24 >> 2] = w3(w3(O4 - H3) * a4) + P4; } ri3 = 1, rl4 = 1; } F3 = (F3 = F3 >>> 13 & 7) || rF3 >>> 10 & 7; - $: if (!((0 | F3) == 5 | (0 | rl4) == 1 | (rA3 | (_4 | rN3)) | (0 | F3) != 4)) { - if (l4[I4 + 356 >> 2] = 1, p3[I4 + 24 >> 2] = C4, q4) break $; - ri3 = 1, l4[I4 + 352 >> 2] = 1, p3[I4 + 360 >> 2] = w4(C4 - P5) / a5; + $: if (!((0 | F3) == 5 | (0 | rl4) == 1 | (rA3 | (_3 | rN3)) | (0 | F3) != 4)) { + if (l3[I3 + 356 >> 2] = 1, p2[I3 + 24 >> 2] = C3, q3) break $; + ri3 = 1, l3[I3 + 352 >> 2] = 1, p2[I3 + 360 >> 2] = w3(C3 - P4) / a4; } - rr: if (!($4 | (0 | f6) != 1 | J4 != J4 | j4 | (0 | F3) != 4 | (0 | ri3) == 1)) { - if (l4[I4 + 352 >> 2] = 1, p3[I4 + 360 >> 2] = J4, q4) break rr; - l4[I4 + 356 >> 2] = 1, p3[I4 + 24 >> 2] = w4(J4 - H4) * a5; + rr: if (!($3 | (0 | f4) != 1 | J3 != J3 | j3 | (0 | F3) != 4 | (0 | ri3) == 1)) { + if (l3[I3 + 352 >> 2] = 1, p2[I3 + 360 >> 2] = J3, q3) break rr; + l3[I3 + 356 >> 2] = 1, p2[I3 + 24 >> 2] = w3(J3 - H3) * a4; } - if (rg2(M4, 2, C4, C4, I4 + 356 | 0, I4 + 24 | 0), rg2(M4, 0, J4, C4, I4 + 352 | 0, I4 + 360 | 0), rt3(M4, p3[I4 + 24 >> 2], p3[I4 + 360 >> 2], rf4, l4[I4 + 356 >> 2], l4[I4 + 352 >> 2], C4, J4, 0, 5, A4, h5, v5, m5), F3 = (e4 = p3[(M4 + (l4[(i5 << 2) + 4252 >> 2] << 2) | 0) + 516 >> 2]) != e4, a5 = w4(w4(rZ2(M4, i5, C4) + rM2(M4, i5)) + w4(rW2(M4, i5, C4) + rU2(M4, i5))), !(F3 | a5 != a5)) { - a5 = eu2(e4, a5); + if (rg2(M4, 2, C3, C3, I3 + 356 | 0, I3 + 24 | 0), rg2(M4, 0, J3, C3, I3 + 352 | 0, I3 + 360 | 0), rt3(M4, p2[I3 + 24 >> 2], p2[I3 + 360 >> 2], rf4, l3[I3 + 356 >> 2], l3[I3 + 352 >> 2], C3, J3, 0, 5, A3, h5, v4, m4), F3 = (e3 = p2[(M4 + (l3[(i4 << 2) + 4252 >> 2] << 2) | 0) + 516 >> 2]) != e3, a4 = w3(w3(rZ2(M4, i4, C3) + rM2(M4, i4)) + w3(rW2(M4, i4, C3) + rU2(M4, i4))), !(F3 | a4 != a4)) { + a4 = eu2(e3, a4); break P; } - a5 = F3 ? a5 : e4; + a4 = F3 ? a4 : e3; } - p3[M4 + 308 >> 2] = a5; + p2[M4 + 308 >> 2] = a4; } - l4[M4 + 304 >> 2] = m5; + l3[M4 + 304 >> 2] = m4; } - X3 = w4(X3 + w4(a5 + w4(rP2(M4, U3, C4) + rS2(M4, U3, C4)))); + X3 = w3(X3 + w3(a4 + w3(rP2(M4, U3, C3) + rS2(M4, U3, C3)))); } - if ((0 | rp3) == (0 | (L4 = L4 + 4 | 0))) break; + if ((0 | rp3) == (0 | (L3 = L3 + 4 | 0))) break; } break e; } - l4[I4 >> 2] = 3023, rB2(r10, I4), eX(), k4(); + l3[I3 >> 2] = 3023, rB2(r10, I3), eX(), k3(); } - l4[I4 + 16 >> 2] = 3105, rB2(r10, I4 + 16 | 0), eX(), k4(); + l3[I3 + 16 >> 2] = 3105, rB2(r10, I3 + 16 | 0), eX(), k3(); } - X3 = w4(0); + X3 = w3(0); } - e4 = w4(X3 + w4(0)), rz3 = rk3 ? o4 : b5, rC3 = rk3 ? b5 : o4, rr3 >>> 0 >= 5 && (e4 = w4(w4(rv2(r10, U3, K5) * w4(rd3 - 1 >>> 0)) + e4)), i5 = e4 > Q4, rp3 = 786432 & rH3, rG3 = (0 | x5) == 2 && rp3 && i5 ? 1 : x5, r82 = (rw3 = (0 | (M4 = rk3 ? f6 : n4)) == 1) & (1 ^ c5), rk3 = U3 >>> 0 < 2, r92 = -3 & M4, rF3 = r10 + 208 | 0, q4 = (f6 = N4 << 2) + 4220 | 0, r72 = !rp3 & rw3, er2 = (0 | M4) != 1 | c5, rA3 = (L4 = U3 << 2) + 4220 | 0, r_3 = L4 + 4252 | 0, ei2 = (rl4 = K5 == K5) << 1, $4 = f6 + 4252 | 0, ef3 = !x5 | !i5, rH3 = I4 + 52 | 0, r12 = rv2(r10, N4, K5), F3 = 0, i5 = 0, ri3 = 0; + e3 = w3(X3 + w3(0)), rz3 = rk3 ? o3 : b4, rC3 = rk3 ? b4 : o3, rr3 >>> 0 >= 5 && (e3 = w3(w3(rv2(r10, U3, K4) * w3(rd3 - 1 >>> 0)) + e3)), i4 = e3 > Q3, rp3 = 786432 & rH3, rG3 = (0 | x4) == 2 && rp3 && i4 ? 1 : x4, r82 = (rw3 = (0 | (M4 = rk3 ? f4 : n3)) == 1) & (1 ^ c4), rk3 = U3 >>> 0 < 2, r92 = -3 & M4, rF3 = r10 + 208 | 0, q3 = (f4 = N3 << 2) + 4220 | 0, r72 = !rp3 & rw3, er2 = (0 | M4) != 1 | c4, rA3 = (L3 = U3 << 2) + 4220 | 0, r_3 = L3 + 4252 | 0, ei2 = (rl4 = K4 == K4) << 1, $3 = f4 + 4252 | 0, ef3 = !x4 | !i4, rH3 = I3 + 52 | 0, r12 = rv2(r10, N3, K4), F3 = 0, i4 = 0, ri3 = 0; re: { for (; ; ) { - j4 = i5, ry2(I4 + 24 | 0, 0, 44), i5 = l4[r10 + 560 >> 2], f6 = l4[r10 + 556 >> 2]; - ra: if ((0 | i5) != (0 | f6)) { - if ((0 | (i5 = i5 - f6 | 0)) < 0) break re; - if (L4 = en(I4 + 360 | 0, i5 >> 2, 0, rH3), i5 = l4[I4 + 44 >> 2], f6 = l4[I4 + 48 >> 2] - i5 | 0, f6 = rm2(l4[I4 + 364 >> 2] - f6 | 0, i5, f6), i5 = l4[I4 + 44 >> 2], l4[I4 + 364 >> 2] = i5, l4[I4 + 44 >> 2] = f6, _4 = l4[I4 + 368 >> 2], Y3 = l4[I4 + 372 >> 2], f6 = l4[I4 + 48 >> 2], l4[I4 + 368 >> 2] = f6, x5 = l4[I4 + 52 >> 2], l4[I4 + 48 >> 2] = _4, l4[I4 + 52 >> 2] = Y3, l4[I4 + 372 >> 2] = x5, l4[L4 >> 2] = i5, (0 | i5) != (0 | f6) && (l4[I4 + 368 >> 2] = f6 + ((i5 - f6 | 0) + 3 & -4)), !i5) break ra; - rE2(i5); + j3 = i4, ry2(I3 + 24 | 0, 0, 44), i4 = l3[r10 + 560 >> 2], f4 = l3[r10 + 556 >> 2]; + ra: if ((0 | i4) != (0 | f4)) { + if ((0 | (i4 = i4 - f4 | 0)) < 0) break re; + if (L3 = en(I3 + 360 | 0, i4 >> 2, 0, rH3), i4 = l3[I3 + 44 >> 2], f4 = l3[I3 + 48 >> 2] - i4 | 0, f4 = rm2(l3[I3 + 364 >> 2] - f4 | 0, i4, f4), i4 = l3[I3 + 44 >> 2], l3[I3 + 364 >> 2] = i4, l3[I3 + 44 >> 2] = f4, _3 = l3[I3 + 368 >> 2], Y3 = l3[I3 + 372 >> 2], f4 = l3[I3 + 48 >> 2], l3[I3 + 368 >> 2] = f4, x4 = l3[I3 + 52 >> 2], l3[I3 + 48 >> 2] = _3, l3[I3 + 52 >> 2] = Y3, l3[I3 + 372 >> 2] = x4, l3[L3 >> 2] = i4, (0 | i4) != (0 | f4) && (l3[I3 + 368 >> 2] = f4 + ((i4 - f4 | 0) + 3 & -4)), !i4) break ra; + rE2(i4); } - f6 = (Y3 = l4[r10 + 24 >> 2]) >>> 2 & 3; + f4 = (Y3 = l3[r10 + 24 >> 2]) >>> 2 & 3; ri: { - rn: if ((0 | ((i5 = 3 & Y3) || r$3)) == 2) { - i5 = 3; - rf: switch (f6 - 2 | 0) { + rn: if ((0 | ((i4 = 3 & Y3) || r$3)) == 2) { + i4 = 3; + rf: switch (f4 - 2 | 0) { case 0: break ri; case 1: @@ -2966,64 +2967,64 @@ var init_asm = __esm({ default: break rn; } - i5 = 2; + i4 = 2; break ri; } - i5 = f6; + i4 = f4; } - X3 = rv2(r10, i5, C4), L4 = F3, _4 = l4[r10 + 560 >> 2], f6 = l4[r10 + 556 >> 2]; - rt: if (!(L4 >>> 0 >= _4 - f6 >> 2 >>> 0)) for (x5 = 786432 & Y3, a5 = w4(0); ; ) { - if (_4 - f6 >> 2 >>> 0 <= L4 >>> 0) break re; - if (Y3 = l4[(L4 << 2) + f6 >> 2], !(4194304 & (rr3 = l4[Y3 + 24 >> 2]) | (196608 & rr3) == 131072)) { - if (l4[Y3 + 548 >> 2] = j4, e4 = rP2(Y3, i5, C4), O5 = rS2(Y3, i5, C4), f6 = l4[I4 + 24 >> 2], S5 = (0 | L4) == (0 | F3) ? w4(0) : X3, e4 = w4(e4 + O5), O5 = p3[Y3 + 308 >> 2], P5 = ro2(Y3, i5, O5, rC3), !(f6 ? !(w4(S5 + w4(e4 + w4(a5 + P5))) > Q4) | !x5 : 1)) break rt; - if (l4[I4 + 24 >> 2] = f6 + 1, S5 = w4(S5 + w4(e4 + P5)), p3[I4 + 28 >> 2] = S5 + p3[I4 + 28 >> 2], rQ2(Y3)) { + X3 = rv2(r10, i4, C3), L3 = F3, _3 = l3[r10 + 560 >> 2], f4 = l3[r10 + 556 >> 2]; + rt: if (!(L3 >>> 0 >= _3 - f4 >> 2 >>> 0)) for (x4 = 786432 & Y3, a4 = w3(0); ; ) { + if (_3 - f4 >> 2 >>> 0 <= L3 >>> 0) break re; + if (Y3 = l3[(L3 << 2) + f4 >> 2], !(4194304 & (rr3 = l3[Y3 + 24 >> 2]) | (196608 & rr3) == 131072)) { + if (l3[Y3 + 548 >> 2] = j3, e3 = rP2(Y3, i4, C3), O4 = rS2(Y3, i4, C3), f4 = l3[I3 + 24 >> 2], S4 = (0 | L3) == (0 | F3) ? w3(0) : X3, e3 = w3(e3 + O4), O4 = p2[Y3 + 308 >> 2], P4 = ro2(Y3, i4, O4, rC3), !(f4 ? !(w3(S4 + w3(e3 + w3(a4 + P4))) > Q3) | !x4 : 1)) break rt; + if (l3[I3 + 24 >> 2] = f4 + 1, S4 = w3(S4 + w3(e3 + P4)), p2[I3 + 28 >> 2] = S4 + p2[I3 + 28 >> 2], rQ2(Y3)) { rb: { - if (l4[Y3 + 552 >> 2]) { - if ((e4 = p3[Y3 + 32 >> 2]) != e4 && (e4 = (e4 = p3[Y3 + 28 >> 2]) > w4(0) ? e4 : w4(0)), p3[I4 + 32 >> 2] = e4 + p3[I4 + 32 >> 2], (e4 = p3[Y3 + 36 >> 2]) == e4) break rb; - if (s3[Y3 + 4 | 0] < 0) { - e4 = w4(1); + if (l3[Y3 + 552 >> 2]) { + if ((e3 = p2[Y3 + 32 >> 2]) != e3 && (e3 = (e3 = p2[Y3 + 28 >> 2]) > w3(0) ? e3 : w3(0)), p2[I3 + 32 >> 2] = e3 + p2[I3 + 32 >> 2], (e3 = p2[Y3 + 36 >> 2]) == e3) break rb; + if (s2[Y3 + 4 | 0] < 0) { + e3 = w3(1); break rb; } - if (e4 = w4(0), !((P5 = p3[Y3 + 28 >> 2]) < w4(0))) break rb; - e4 = w4(-P5); + if (e3 = w3(0), !((P4 = p2[Y3 + 28 >> 2]) < w3(0))) break rb; + e3 = w3(-P4); break rb; } - e4 = w4(0), p3[I4 + 32 >> 2] = p3[I4 + 32 >> 2] + w4(0); + e3 = w3(0), p2[I3 + 32 >> 2] = p2[I3 + 32 >> 2] + w3(0); } - p3[I4 + 36 >> 2] = p3[I4 + 36 >> 2] - w4(e4 * O5); + p2[I3 + 36 >> 2] = p2[I3 + 36 >> 2] - w3(e3 * O4); } - f6 = l4[I4 + 48 >> 2]; + f4 = l3[I3 + 48 >> 2]; ro: { - if ((0 | f6) != l4[I4 + 52 >> 2]) { - l4[f6 >> 2] = Y3, l4[I4 + 48 >> 2] = f6 + 4; + if ((0 | f4) != l3[I3 + 52 >> 2]) { + l3[f4 >> 2] = Y3, l3[I3 + 48 >> 2] = f4 + 4; break ro; } - if ((_4 = (rr3 = (f6 = f6 - l4[I4 + 44 >> 2] | 0) >> 2) + 1 | 0) >>> 0 >= 1073741824) break re; - if (ra4 = f6 >>> 1 | 0, rr3 = en(I4 + 360 | 0, f6 >>> 0 >= 2147483644 ? 1073741823 : _4 >>> 0 < ra4 >>> 0 ? ra4 : _4, rr3, rH3), l4[l4[I4 + 368 >> 2] >> 2] = Y3, l4[I4 + 368 >> 2] = l4[I4 + 368 >> 2] + 4, f6 = l4[I4 + 44 >> 2], _4 = l4[I4 + 48 >> 2] - f6 | 0, _4 = rm2(l4[I4 + 364 >> 2] - _4 | 0, f6, _4), f6 = l4[I4 + 44 >> 2], l4[I4 + 364 >> 2] = f6, l4[I4 + 44 >> 2] = _4, Y3 = l4[I4 + 368 >> 2], ra4 = l4[I4 + 372 >> 2], _4 = l4[I4 + 48 >> 2], l4[I4 + 368 >> 2] = _4, rN3 = l4[I4 + 52 >> 2], l4[I4 + 48 >> 2] = Y3, l4[I4 + 52 >> 2] = ra4, l4[I4 + 372 >> 2] = rN3, l4[rr3 >> 2] = f6, (0 | f6) != (0 | _4) && (l4[I4 + 368 >> 2] = _4 + ((f6 - _4 | 0) + 3 & -4)), !f6) break ro; - rE2(f6); + if ((_3 = (rr3 = (f4 = f4 - l3[I3 + 44 >> 2] | 0) >> 2) + 1 | 0) >>> 0 >= 1073741824) break re; + if (ra4 = f4 >>> 1 | 0, rr3 = en(I3 + 360 | 0, f4 >>> 0 >= 2147483644 ? 1073741823 : _3 >>> 0 < ra4 >>> 0 ? ra4 : _3, rr3, rH3), l3[l3[I3 + 368 >> 2] >> 2] = Y3, l3[I3 + 368 >> 2] = l3[I3 + 368 >> 2] + 4, f4 = l3[I3 + 44 >> 2], _3 = l3[I3 + 48 >> 2] - f4 | 0, _3 = rm2(l3[I3 + 364 >> 2] - _3 | 0, f4, _3), f4 = l3[I3 + 44 >> 2], l3[I3 + 364 >> 2] = f4, l3[I3 + 44 >> 2] = _3, Y3 = l3[I3 + 368 >> 2], ra4 = l3[I3 + 372 >> 2], _3 = l3[I3 + 48 >> 2], l3[I3 + 368 >> 2] = _3, rN3 = l3[I3 + 52 >> 2], l3[I3 + 48 >> 2] = Y3, l3[I3 + 52 >> 2] = ra4, l3[I3 + 372 >> 2] = rN3, l3[rr3 >> 2] = f4, (0 | f4) != (0 | _3) && (l3[I3 + 368 >> 2] = _3 + ((f4 - _3 | 0) + 3 & -4)), !f4) break ro; + rE2(f4); } - f6 = l4[r10 + 556 >> 2], _4 = l4[r10 + 560 >> 2], a5 = w4(a5 + S5); + f4 = l3[r10 + 556 >> 2], _3 = l3[r10 + 560 >> 2], a4 = w3(a4 + S4); } - if (!((L4 = L4 + 1 | 0) >>> 0 < _4 - f6 >> 2 >>> 0)) break; + if (!((L3 = L3 + 1 | 0) >>> 0 < _3 - f4 >> 2 >>> 0)) break; } - !((z4 = p3[I4 + 32 >> 2]) > w4(0)) | !(z4 < w4(1)) || (l4[I4 + 32 >> 2] = 1065353216, z4 = w4(1)), !((rn3 = p3[I4 + 36 >> 2]) > w4(0)) | !(rn3 < w4(1)) || (l4[I4 + 36 >> 2] = 1065353216, rn3 = w4(1)), l4[I4 + 40 >> 2] = L4, H4 = p3[I4 + 28 >> 2], x5 = l4[I4 + 24 >> 2], ri3 && rE2(ri3), S5 = p3[I4 + 56 >> 2], rr3 = l4[I4 + 48 >> 2], ri3 = l4[I4 + 44 >> 2]; + !((z3 = p2[I3 + 32 >> 2]) > w3(0)) | !(z3 < w3(1)) || (l3[I3 + 32 >> 2] = 1065353216, z3 = w3(1)), !((rn3 = p2[I3 + 36 >> 2]) > w3(0)) | !(rn3 < w3(1)) || (l3[I3 + 36 >> 2] = 1065353216, rn3 = w3(1)), l3[I3 + 40 >> 2] = L3, H3 = p2[I3 + 28 >> 2], x4 = l3[I3 + 24 >> 2], ri3 && rE2(ri3), S4 = p2[I3 + 56 >> 2], rr3 = l3[I3 + 48 >> 2], ri3 = l3[I3 + 44 >> 2]; rk: { rc: { ru: { rs: if ((0 | rG3) != 1) { - a5 = w4(0), e4 = p3[rF3 >> 2]; + a4 = w3(0), e3 = p2[rF3 >> 2]; rA: { rl: { - i5 = l4[rF3 >> 2]; - rd: if ((0 | i5) != 2139156720) { - if ((0 | i5) == 2140081935) break rl; - f6 = 4276; + i4 = l3[rF3 >> 2]; + rd: if ((0 | i4) != 2139156720) { + if ((0 | i4) == 2140081935) break rl; + f4 = 4276; rh: { - if ((0 | i5) != 2141891242) { - if (e4 == e4) break rh; - f6 = 4268; + if ((0 | i4) != 2141891242) { + if (e3 == e3) break rh; + f4 = 4268; } - switch (a5 = p3[f6 >> 2], e4 = w4(NaN), l4[f6 + 4 >> 2] - 1 | 0) { + switch (a4 = p2[f4 >> 2], e3 = w3(NaN), l3[f4 + 4 >> 2] - 1 | 0) { case 0: break rl; case 1: @@ -3032,26 +3033,26 @@ var init_asm = __esm({ break rA; } } - if (R4 = (-1073741825 & i5) + 536870912 | 0, t3[2] = R4, a5 = u5(), !(1073741824 & i5)) break rl; + if (R4 = (-1073741825 & i4) + 536870912 | 0, t2[2] = R4, a4 = u3(), !(1073741824 & i4)) break rl; } - e4 = w4(w4(a5 * b5) * w4(0.009999999776482582)); + e3 = w3(w3(a4 * b4) * w3(0.009999999776482582)); break rA; } - e4 = a5; + e3 = a4; } - a5 = w4(0), X3 = p3[r10 + 216 >> 2]; + a4 = w3(0), X3 = p2[r10 + 216 >> 2]; rv: { rp: { - i5 = l4[r10 + 216 >> 2]; - rm: if ((0 | i5) != 2139156720) { - if ((0 | i5) == 2140081935) break rp; - f6 = 4276; + i4 = l3[r10 + 216 >> 2]; + rm: if ((0 | i4) != 2139156720) { + if ((0 | i4) == 2140081935) break rp; + f4 = 4276; rN: { - if ((0 | i5) != 2141891242) { + if ((0 | i4) != 2141891242) { if (X3 == X3) break rN; - f6 = 4268; + f4 = 4268; } - switch (a5 = p3[f6 >> 2], X3 = w4(NaN), l4[f6 + 4 >> 2] - 1 | 0) { + switch (a4 = p2[f4 >> 2], X3 = w3(NaN), l3[f4 + 4 >> 2] - 1 | 0) { case 0: break rp; case 1: @@ -3060,26 +3061,26 @@ var init_asm = __esm({ break rv; } } - if (g5 = (-1073741825 & i5) + 536870912 | 0, t3[2] = g5, a5 = u5(), !(1073741824 & i5)) break rp; + if (g4 = (-1073741825 & i4) + 536870912 | 0, t2[2] = g4, a4 = u3(), !(1073741824 & i4)) break rp; } - X3 = w4(w4(a5 * b5) * w4(0.009999999776482582)); + X3 = w3(w3(a4 * b4) * w3(0.009999999776482582)); break rv; } - X3 = a5; + X3 = a4; } - a5 = w4(0), O5 = p3[r10 + 212 >> 2]; + a4 = w3(0), O4 = p2[r10 + 212 >> 2]; rw: { ry: { - i5 = l4[r10 + 212 >> 2]; - rE: if ((0 | i5) != 2139156720) { - if ((0 | i5) == 2140081935) break ry; - f6 = 4276; + i4 = l3[r10 + 212 >> 2]; + rE: if ((0 | i4) != 2139156720) { + if ((0 | i4) == 2140081935) break ry; + f4 = 4276; rG: { - if ((0 | i5) != 2141891242) { - if (O5 == O5) break rG; - f6 = 4268; + if ((0 | i4) != 2141891242) { + if (O4 == O4) break rG; + f4 = 4268; } - switch (a5 = p3[f6 >> 2], P5 = w4(NaN), l4[f6 + 4 >> 2] - 1 | 0) { + switch (a4 = p2[f4 >> 2], P4 = w3(NaN), l3[f4 + 4 >> 2] - 1 | 0) { case 0: break ry; case 1: @@ -3088,26 +3089,26 @@ var init_asm = __esm({ break rw; } } - if (Z3 = (-1073741825 & i5) + 536870912 | 0, t3[2] = Z3, a5 = u5(), !(1073741824 & i5)) break ry; + if (Z3 = (-1073741825 & i4) + 536870912 | 0, t2[2] = Z3, a4 = u3(), !(1073741824 & i4)) break ry; } - P5 = w4(w4(a5 * o4) * w4(0.009999999776482582)); + P4 = w3(w3(a4 * o3) * w3(0.009999999776482582)); break rw; } - P5 = a5; + P4 = a4; } - a5 = w4(0), O5 = p3[r10 + 220 >> 2]; + a4 = w3(0), O4 = p2[r10 + 220 >> 2]; rR: { rg: { - i5 = l4[r10 + 220 >> 2]; - rZ: if ((0 | i5) != 2139156720) { - if ((0 | i5) == 2140081935) break rg; - f6 = 4276; + i4 = l3[r10 + 220 >> 2]; + rZ: if ((0 | i4) != 2139156720) { + if ((0 | i4) == 2140081935) break rg; + f4 = 4276; rW: { - if ((0 | i5) != 2141891242) { - if (O5 == O5) break rW; - f6 = 4268; + if ((0 | i4) != 2141891242) { + if (O4 == O4) break rW; + f4 = 4268; } - switch (a5 = p3[f6 >> 2], O5 = w4(NaN), l4[f6 + 4 >> 2] - 1 | 0) { + switch (a4 = p2[f4 >> 2], O4 = w3(NaN), l3[f4 + 4 >> 2] - 1 | 0) { case 0: break rg; case 1: @@ -3116,147 +3117,147 @@ var init_asm = __esm({ break rR; } } - if (W3 = (-1073741825 & i5) + 536870912 | 0, t3[2] = W3, a5 = u5(), !(1073741824 & i5)) break rg; + if (W3 = (-1073741825 & i4) + 536870912 | 0, t2[2] = W3, a4 = u3(), !(1073741824 & i4)) break rg; } - O5 = w4(w4(a5 * o4) * w4(0.009999999776482582)); + O4 = w3(w3(a4 * o3) * w3(0.009999999776482582)); break rR; } - O5 = a5; + O4 = a4; } - if ((a5 = w4(((i5 = U3 >>> 0 > 1) ? e4 : P5) - rh3)) == a5 & a5 > H4 || (a5 = w4((i5 ? X3 : O5) - rh3)) == a5 & a5 < H4) break ru; - if (d4[l4[r10 + 568 >> 2] + 11 | 0]) break rs; - if (a5 = H4, !l4[r10 + 552 >> 2] | z4 == w4(0)) break rc; - e4 = p3[r10 + 32 >> 2]; + if ((a4 = w3(((i4 = U3 >>> 0 > 1) ? e3 : P4) - rh3)) == a4 & a4 > H3 || (a4 = w3((i4 ? X3 : O4) - rh3)) == a4 & a4 < H3) break ru; + if (d3[l3[r10 + 568 >> 2] + 11 | 0]) break rs; + if (a4 = H3, !l3[r10 + 552 >> 2] | z3 == w3(0)) break rc; + e3 = p2[r10 + 32 >> 2]; rV: { rB: { - if (e4 == e4) { - a5 = e4; + if (e3 == e3) { + a4 = e3; break rB; } - if (!((a5 = p3[r10 + 28 >> 2]) > w4(0))) break rV; + if (!((a4 = p2[r10 + 28 >> 2]) > w3(0))) break rV; } - if (a5 != a5) { - a5 = Q4; + if (a4 != a4) { + a4 = Q3; break rc; } - e4 = p3[r10 + 32 >> 2]; + e3 = p2[r10 + 32 >> 2]; } - if (e4 != e4 && (a5 = H4, !((e4 = p3[r10 + 28 >> 2]) > w4(0))) || (a5 = Q4, e4 != w4(0))) break rc; - a5 = H4; + if (e3 != e3 && (a4 = H3, !((e3 = p2[r10 + 28 >> 2]) > w3(0))) || (a4 = Q3, e3 != w3(0))) break rc; + a4 = H3; break rc; } - a5 = Q4; + a4 = Q3; } - if (a5 != a5) break rc; - S5 = w4(a5 - H4); + if (a4 != a4) break rc; + S4 = w3(a4 - H3); break rk; } - if (!(H4 < w4(0))) break rk; - S5 = w4(-H4); + if (!(H3 < w3(0))) break rk; + S4 = w3(-H3); } - if (Q4 = a5, !r82) { + if (Q3 = a4, !r82) { rT: { if ((0 | ri3) == (0 | rr3)) { - P5 = w4(0); + P4 = w3(0); break rT; } - for (O5 = w4(0), f6 = ri3; ; ) { - H4 = p3[(i5 = l4[f6 >> 2]) + 308 >> 2], a5 = ro2(i5, U3, H4, rC3); + for (O4 = w3(0), f4 = ri3; ; ) { + H3 = p2[(i4 = l3[f4 >> 2]) + 308 >> 2], a4 = ro2(i4, U3, H3, rC3); rI: { - if (S5 < w4(0)) { - Y3 = l4[i5 + 552 >> 2]; + if (S4 < w3(0)) { + Y3 = l3[i4 + 552 >> 2]; rX: { if (!Y3) { - X3 = w4(0); + X3 = w3(0); break rX; } - if ((X3 = p3[i5 + 36 >> 2]) == X3) break rX; - if (s3[i5 + 4 | 0] < 0) { - X3 = w4(1); + if ((X3 = p2[i4 + 36 >> 2]) == X3) break rX; + if (s2[i4 + 4 | 0] < 0) { + X3 = w3(1); break rX; } - if (X3 = w4(0), !((e4 = p3[i5 + 28 >> 2]) < w4(0))) break rX; - X3 = w4(-e4); + if (X3 = w3(0), !((e3 = p2[i4 + 28 >> 2]) < w3(0))) break rX; + X3 = w3(-e3); } - if (!((e4 = w4(a5 * w4(-X3))) > w4(0) | e4 < w4(0))) break rI; - _4 = (e4 = ro2(i5, U3, X3 = w4(w4(w4(S5 / rn3) * e4) + a5), Q4)) != e4, P5 = w4(w4(rZ2(i5, U3, C4) + rM2(i5, U3)) + w4(rW2(i5, U3, C4) + rU2(i5, U3))); + if (!((e3 = w3(a4 * w3(-X3))) > w3(0) | e3 < w3(0))) break rI; + _3 = (e3 = ro2(i4, U3, X3 = w3(w3(w3(S4 / rn3) * e3) + a4), Q3)) != e3, P4 = w3(w3(rZ2(i4, U3, C3) + rM2(i4, U3)) + w3(rW2(i4, U3, C3) + rU2(i4, U3))); rO: { - if (!(_4 | P5 != P5)) { - e4 = eu2(e4, P5); + if (!(_3 | P4 != P4)) { + e3 = eu2(e3, P4); break rO; } - e4 = _4 ? P5 : e4; + e3 = _3 ? P4 : e3; } - if (X3 != X3 | e4 != e4 | e4 == X3) break rI; - e4 = w4(e4 - a5); + if (X3 != X3 | e3 != e3 | e3 == X3) break rI; + e3 = w3(e3 - a4); rL: { if (!Y3) { - a5 = w4(0); + a4 = w3(0); break rL; } - if ((a5 = p3[i5 + 36 >> 2]) == a5) break rL; - if (s3[i5 + 4 | 0] < 0) { - a5 = w4(1); + if ((a4 = p2[i4 + 36 >> 2]) == a4) break rL; + if (s2[i4 + 4 | 0] < 0) { + a4 = w3(1); break rL; } - if (a5 = w4(0), !((X3 = p3[i5 + 28 >> 2]) < w4(0))) break rL; - a5 = w4(-X3); + if (a4 = w3(0), !((X3 = p2[i4 + 28 >> 2]) < w3(0))) break rL; + a4 = w3(-X3); } - O5 = w4(O5 + e4), rn3 = w4(w4(a5 * H4) + rn3); + O4 = w3(O4 + e3), rn3 = w3(w3(a4 * H3) + rn3); break rI; } - if (!(S5 > w4(0)) | !l4[i5 + 552 >> 2] || (X3 = p3[i5 + 32 >> 2]) != X3 && !((X3 = p3[i5 + 28 >> 2]) > w4(0)) || !(X3 < w4(0) | X3 > w4(0))) break rI; - _4 = (e4 = ro2(i5, U3, P5 = w4(w4(w4(S5 / z4) * X3) + a5), Q4)) != e4, H4 = w4(w4(rZ2(i5, U3, C4) + rM2(i5, U3)) + w4(rW2(i5, U3, C4) + rU2(i5, U3))); + if (!(S4 > w3(0)) | !l3[i4 + 552 >> 2] || (X3 = p2[i4 + 32 >> 2]) != X3 && !((X3 = p2[i4 + 28 >> 2]) > w3(0)) || !(X3 < w3(0) | X3 > w3(0))) break rI; + _3 = (e3 = ro2(i4, U3, P4 = w3(w3(w3(S4 / z3) * X3) + a4), Q3)) != e3, H3 = w3(w3(rZ2(i4, U3, C3) + rM2(i4, U3)) + w3(rW2(i4, U3, C3) + rU2(i4, U3))); r_: { - if (!(_4 | H4 != H4)) { - e4 = eu2(e4, H4); + if (!(_3 | H3 != H3)) { + e3 = eu2(e3, H3); break r_; } - e4 = _4 ? H4 : e4; + e3 = _3 ? H3 : e3; } - if (P5 != P5 | e4 != e4 | e4 == P5) break rI; - z4 = w4(z4 - X3), O5 = w4(O5 + w4(e4 - a5)); + if (P4 != P4 | e3 != e3 | e3 == P4) break rI; + z3 = w3(z3 - X3), O4 = w3(O4 + w3(e3 - a4)); } - if ((0 | rr3) == (0 | (f6 = f6 + 4 | 0))) break; + if ((0 | rr3) == (0 | (f4 = f4 + 4 | 0))) break; } - for (H4 = w4(S5 - O5), rD3 = w4(H4 / rn3), rx3 = w4(H4 / z4), rK3 = !(ra4 = rw3 & (!(12 & d4[r10 + 26 | 0]) | ef3)), rN3 = l4[$4 >> 2], P5 = w4(0), _4 = ri3; ; ) { - f6 = l4[_4 >> 2], a5 = ro2(f6, U3, p3[f6 + 308 >> 2], rC3); + for (H3 = w3(S4 - O4), rD3 = w3(H3 / rn3), rx3 = w3(H3 / z3), rK3 = !(ra4 = rw3 & (!(12 & d3[r10 + 26 | 0]) | ef3)), rN3 = l3[$3 >> 2], P4 = w3(0), _3 = ri3; ; ) { + f4 = l3[_3 >> 2], a4 = ro2(f4, U3, p2[f4 + 308 >> 2], rC3); rF: { rC: { - if (H4 < w4(0)) { + if (H3 < w3(0)) { rS: { - if (!l4[f6 + 552 >> 2]) { - e4 = w4(0); + if (!l3[f4 + 552 >> 2]) { + e3 = w3(0); break rS; } - if ((e4 = p3[f6 + 36 >> 2]) == e4) break rS; - if (s3[f6 + 4 | 0] < 0) { - e4 = w4(1); + if ((e3 = p2[f4 + 36 >> 2]) == e3) break rS; + if (s2[f4 + 4 | 0] < 0) { + e3 = w3(1); break rS; } - if (e4 = w4(0), !((X3 = p3[f6 + 28 >> 2]) < w4(0))) break rS; - e4 = w4(-X3); + if (e3 = w3(0), !((X3 = p2[f4 + 28 >> 2]) < w3(0))) break rS; + e3 = w3(-X3); } - if (X3 = a5, (e4 = w4(a5 * w4(-e4))) == w4(0)) break rF; - e4 = rn3 == w4(0) ? w4(a5 + e4) : w4(w4(rD3 * e4) + a5); + if (X3 = a4, (e3 = w3(a4 * w3(-e3))) == w3(0)) break rF; + e3 = rn3 == w3(0) ? w3(a4 + e3) : w3(w3(rD3 * e3) + a4); break rC; } - if (X3 = a5, !(H4 > w4(0)) | !l4[f6 + 552 >> 2] || (e4 = p3[f6 + 32 >> 2]) != e4 && !((e4 = p3[f6 + 28 >> 2]) > w4(0)) || !(e4 < w4(0) | e4 > w4(0))) break rF; - e4 = w4(w4(rx3 * e4) + a5); + if (X3 = a4, !(H3 > w3(0)) | !l3[f4 + 552 >> 2] || (e3 = p2[f4 + 32 >> 2]) != e3 && !((e3 = p2[f4 + 28 >> 2]) > w3(0)) || !(e3 < w3(0) | e3 > w3(0))) break rF; + e3 = w3(w3(rx3 * e3) + a4); } - if (i5 = (e4 = ro2(f6, U3, e4, Q4)) != e4, X3 = w4(w4(rZ2(f6, U3, C4) + rM2(f6, U3)) + w4(rW2(f6, U3, C4) + rU2(f6, U3))), !(i5 | X3 != X3)) { - X3 = eu2(e4, X3); + if (i4 = (e3 = ro2(f4, U3, e3, Q3)) != e3, X3 = w3(w3(rZ2(f4, U3, C3) + rM2(f4, U3)) + w3(rW2(f4, U3, C3) + rU2(f4, U3))), !(i4 | X3 != X3)) { + X3 = eu2(e3, X3); break rF; } - X3 = i5 ? X3 : e4; + X3 = i4 ? X3 : e3; } - e4 = rP2(f6, U3, C4), O5 = rS2(f6, U3, C4), z4 = rP2(f6, N4, C4), rq3 = rS2(f6, N4, C4), O5 = w4(e4 + O5), r43 = w4(X3 + O5), p3[I4 + 352 >> 2] = r43, l4[I4 + 344 >> 2] = 1, z4 = w4(z4 + rq3), e4 = p3[f6 + 224 >> 2]; + e3 = rP2(f4, U3, C3), O4 = rS2(f4, U3, C3), z3 = rP2(f4, N3, C3), rq3 = rS2(f4, N3, C3), O4 = w3(e3 + O4), r43 = w3(X3 + O4), p2[I3 + 352 >> 2] = r43, l3[I3 + 344 >> 2] = 1, z3 = w3(z3 + rq3), e3 = p2[f4 + 224 >> 2]; rP: { - if (e4 == e4) { - l4[I4 + 348 >> 2] = 1, O5 = w4(r43 - O5), p3[I4 + 356 >> 2] = z4 + (rk3 ? w4(O5 * e4) : w4(O5 / e4)), O5 = p3[(Y3 = f6 + (rN3 << 3) | 0) + 572 >> 2], i5 = l4[Y3 + 576 >> 2], e4 = p3[Y3 + 572 >> 2]; + if (e3 == e3) { + l3[I3 + 348 >> 2] = 1, O4 = w3(r43 - O4), p2[I3 + 356 >> 2] = z3 + (rk3 ? w3(O4 * e3) : w3(O4 / e3)), O4 = p2[(Y3 = f4 + (rN3 << 3) | 0) + 572 >> 2], i4 = l3[Y3 + 576 >> 2], e3 = p2[Y3 + 572 >> 2]; break rP; } - e4 = p3[(Y3 = f6 + (rN3 << 3) | 0) + 572 >> 2]; + e3 = p2[(Y3 = f4 + (rN3 << 3) | 0) + 572 >> 2]; rY: { rU: { rM: { @@ -3267,35 +3268,35 @@ var init_asm = __esm({ rD: { rx: { if (!rl4) { - O5 = p3[Y3 + 572 >> 2], i5 = l4[Y3 + 576 >> 2]; + O4 = p2[Y3 + 572 >> 2], i4 = l3[Y3 + 576 >> 2]; break rx; } - O5 = p3[Y3 + 572 >> 2]; + O4 = p2[Y3 + 572 >> 2]; rJ: { rK: { rq: { - r$: switch (0 | (i5 = l4[Y3 + 576 >> 2])) { + r$: switch (0 | (i4 = l3[Y3 + 576 >> 2])) { case 0: case 3: break rq; default: break r$; } - if (!((0 | i5) != 1 | e4 != e4)) { - if (!(ra4 & O5 < w4(0))) break rJ; + if (!((0 | i4) != 1 | e3 != e3)) { + if (!(ra4 & O4 < w3(0))) break rJ; break rK; } - if (!(rK3 | (!(O5 < w4(0)) | ((0 | i5) != 2 | e4 != e4)))) break rK; + if (!(rK3 | (!(O4 < w3(0)) | ((0 | i4) != 2 | e3 != e3)))) break rK; break rJ; } if (!ra4) break rJ; } - if ((Y3 = l4[f6 + 24 >> 2] >>> 13 & 7) || (Y3 = l4[r10 + 24 >> 2] >>> 10 & 7), (0 | Y3) != 4 || (ea(I4 + 24 | 0, f6, N4), 3 == l4[I4 + 28 >> 2])) break rJ; - if (ee(I4 + 360 | 0, f6, N4), 3 != l4[I4 + 364 >> 2]) break rD; + if ((Y3 = l3[f4 + 24 >> 2] >>> 13 & 7) || (Y3 = l3[r10 + 24 >> 2] >>> 10 & 7), (0 | Y3) != 4 || (ea(I3 + 24 | 0, f4, N3), 3 == l3[I3 + 28 >> 2])) break rJ; + if (ee(I3 + 360 | 0, f4, N3), 3 != l3[I3 + 364 >> 2]) break rD; } - e4 = O5; + e3 = O4; } - switch (0 | i5) { + switch (0 | i4) { case 0: case 3: break rz; @@ -3303,22 +3304,22 @@ var init_asm = __esm({ break rj; } } - l4[I4 + 348 >> 2] = 1; + l3[I3 + 348 >> 2] = 1; break rU; } - if (!((0 | i5) != 1 | e4 != e4)) { - if ((e4 = O5) < w4(0)) break rz; + if (!((0 | i4) != 1 | e3 != e3)) { + if ((e3 = O4) < w3(0)) break rz; break rM; } - if ((0 | i5) != 2 | e4 != e4) break rQ; - if (K5 != K5) break rz; - if (!(O5 < w4(0))) break rH; + if ((0 | i4) != 2 | e3 != e3) break rQ; + if (K4 != K4) break rz; + if (!(O4 < w3(0))) break rH; } - l4[I4 + 348 >> 2] = ei2; + l3[I3 + 348 >> 2] = ei2; break rU; } - e4 = w4(NaN); - r0: switch (i5 - 1 | 0) { + e3 = w3(NaN); + r0: switch (i4 - 1 | 0) { case 1: break rH; case 0: @@ -3326,87 +3327,87 @@ var init_asm = __esm({ default: break rM; } - e4 = O5; + e3 = O4; break rM; } - e4 = w4(w4(K5 * O5) * w4(0.009999999776482582)); + e3 = w3(w3(K4 * O4) * w3(0.009999999776482582)); } - e4 = w4(z4 + e4), p3[I4 + 356 >> 2] = e4, l4[I4 + 348 >> 2] = (rw3 | (0 | i5) != 2) & e4 == e4; + e3 = w3(z3 + e3), p2[I3 + 356 >> 2] = e3, l3[I3 + 348 >> 2] = (rw3 | (0 | i4) != 2) & e3 == e3; break rY; } - p3[I4 + 356 >> 2] = K5; + p2[I3 + 356 >> 2] = K4; } - e4 = O5; + e3 = O4; } - rg2(f6, U3, Q4, C4, I4 + 344 | 0, I4 + 352 | 0), rg2(f6, N4, K5, C4, I4 + 348 | 0, I4 + 356 | 0); + rg2(f4, U3, Q3, C3, I3 + 344 | 0, I3 + 352 | 0), rg2(f4, N3, K4, C3, I3 + 348 | 0, I3 + 356 | 0); r2: { r1: { r4: { - r3: switch (0 | i5) { + r3: switch (0 | i4) { case 0: case 3: break r4; default: break r3; } - if (!((0 | i5) != 1 | e4 != e4)) { - if (O5 < w4(0)) break r4; + if (!((0 | i4) != 1 | e3 != e3)) { + if (O4 < w3(0)) break r4; break r1; } - if ((0 | i5) != 2 | e4 != e4) break r1; - if (O5 < w4(0)) break r4; + if ((0 | i4) != 2 | e3 != e3) break r1; + if (O4 < w3(0)) break r4; if (Y3 = 0, rl4) break r2; } - if (Y3 = 0, (i5 = l4[f6 + 24 >> 2] >>> 13 & 7) || (i5 = l4[r10 + 24 >> 2] >>> 10 & 7), (0 | i5) != 4 || (ea(I4 + 24 | 0, f6, N4), 3 == l4[I4 + 28 >> 2])) break r2; - ee(I4 + 360 | 0, f6, N4), Y3 = 3 != l4[I4 + 364 >> 2]; + if (Y3 = 0, (i4 = l3[f4 + 24 >> 2] >>> 13 & 7) || (i4 = l3[r10 + 24 >> 2] >>> 10 & 7), (0 | i4) != 4 || (ea(I3 + 24 | 0, f4, N3), 3 == l3[I3 + 28 >> 2])) break r2; + ee(I3 + 360 | 0, f4, N3), Y3 = 3 != l3[I3 + 364 >> 2]; break r2; } Y3 = 0; } - e4 = p3[I4 + 352 >> 2], O5 = p3[I4 + 356 >> 2], z4 = (i5 = U3 >>> 0 > 1) ? e4 : O5, e4 = i5 ? O5 : e4, rJ3 = l4[I4 + 344 >> 2], r33 = l4[I4 + 348 >> 2], et3 = i5 ? rJ3 : r33, rJ3 = i5 ? r33 : rJ3, i5 = (1 ^ Y3) & c5, rt3(f6, z4, e4, 3 & d4[r10 + 300 | 0], et3, rJ3, C4, J4, i5, i5 ? 4 : 7, A4, h5, v5, m5), P5 = w4(P5 + w4(X3 - a5)), i5 = d4[r10 + 300 | 0]; + e3 = p2[I3 + 352 >> 2], O4 = p2[I3 + 356 >> 2], z3 = (i4 = U3 >>> 0 > 1) ? e3 : O4, e3 = i4 ? O4 : e3, rJ3 = l3[I3 + 344 >> 2], r33 = l3[I3 + 348 >> 2], et3 = i4 ? rJ3 : r33, rJ3 = i4 ? r33 : rJ3, i4 = (1 ^ Y3) & c4, rt3(f4, z3, e3, 3 & d3[r10 + 300 | 0], et3, rJ3, C3, J3, i4, i4 ? 4 : 7, A3, h5, v4, m4), P4 = w3(P4 + w3(X3 - a4)), i4 = d3[r10 + 300 | 0]; r8: { r6: { - if (4 & i5) { - Y3 = 251 & i5; + if (4 & i4) { + Y3 = 251 & i4; break r6; } - if (Y3 = 251 & i5, i5 = 0, !(4 & d4[f6 + 300 | 0])) break r8; + if (Y3 = 251 & i4, i4 = 0, !(4 & d3[f4 + 300 | 0])) break r8; } - i5 = 4; + i4 = 4; } - if (s3[r10 + 300 | 0] = i5 | Y3, (0 | rr3) == (0 | (_4 = _4 + 4 | 0))) break; + if (s2[r10 + 300 | 0] = i4 | Y3, (0 | rr3) == (0 | (_3 = _3 + 4 | 0))) break; } } - S5 = w4(S5 - P5); + S4 = w3(S4 - P4); } - i5 = d4[r10 + 300 | 0], s3[r10 + 300 | 0] = 251 & i5 | (S5 < w4(0) ? 4 : 4 & i5), O5 = w4(rZ2(r10, U3, b5) + rM2(r10, U3)), rD3 = w4(rW2(r10, U3, b5) + rU2(r10, U3)), H4 = rv2(r10, U3, b5); + i4 = d3[r10 + 300 | 0], s2[r10 + 300 | 0] = 251 & i4 | (S4 < w3(0) ? 4 : 4 & i4), O4 = w3(rZ2(r10, U3, b4) + rM2(r10, U3)), rD3 = w3(rW2(r10, U3, b4) + rU2(r10, U3)), H3 = rv2(r10, U3, b4); r5: { - if (!(!(S5 > w4(0)) | (0 | rG3) != 2)) { - P5 = w4(0), a5 = w4(0); + if (!(!(S4 > w3(0)) | (0 | rG3) != 2)) { + P4 = w3(0), a4 = w3(0); r9: { r7: { - e4 = p3[(i5 = rF3 + (l4[r_3 >> 2] << 2) | 0) >> 2], f6 = (0 | (i5 = l4[i5 >> 2])) == 2139156720; + e3 = p2[(i4 = rF3 + (l3[r_3 >> 2] << 2) | 0) >> 2], f4 = (0 | (i4 = l3[i4 >> 2])) == 2139156720; er: { - if (!f6) { - if (_4 = (0 | i5) == 2140081935) break r7; - if ((Y3 = (0 | i5) == 2141891242) | e4 != e4) break r5; - if (_4) break r7; + if (!f4) { + if (_3 = (0 | i4) == 2140081935) break r7; + if ((Y3 = (0 | i4) == 2141891242) | e3 != e3) break r5; + if (_3) break r7; if (Y3) break r5; - if (V4 = (-1073741825 & i5) + 536870912 | 0, t3[2] = V4, a5 = u5(), !(1073741824 & i5)) break er; + if (V3 = (-1073741825 & i4) + 536870912 | 0, t2[2] = V3, a4 = u3(), !(1073741824 & i4)) break er; } - a5 = w4(w4(rC3 * a5) * w4(0.009999999776482582)); + a4 = w3(w3(rC3 * a4) * w3(0.009999999776482582)); } - if (a5 != a5) break r5; - a5 = w4(0); - ee: if (!f6) { - if ((0 | i5) == 2140081935) break r7; - f6 = 4276; + if (a4 != a4) break r5; + a4 = w3(0); + ee: if (!f4) { + if ((0 | i4) == 2140081935) break r7; + f4 = 4276; ea: { - if ((0 | i5) != 2141891242) { - if (e4 == e4) break ea; - f6 = 4268; + if ((0 | i4) != 2141891242) { + if (e3 == e3) break ea; + f4 = 4268; } - switch (a5 = p3[f6 >> 2], X3 = w4(NaN), l4[f6 + 4 >> 2] - 1 | 0) { + switch (a4 = p2[f4 >> 2], X3 = w3(NaN), l3[f4 + 4 >> 2] - 1 | 0) { case 0: break r7; case 1: @@ -3415,425 +3416,425 @@ var init_asm = __esm({ break r9; } } - if (B4 = (-1073741825 & i5) + 536870912 | 0, t3[2] = B4, a5 = u5(), !(1073741824 & i5)) break r7; + if (B3 = (-1073741825 & i4) + 536870912 | 0, t2[2] = B3, a4 = u3(), !(1073741824 & i4)) break r7; } - X3 = w4(w4(rC3 * a5) * w4(0.009999999776482582)); + X3 = w3(w3(rC3 * a4) * w3(0.009999999776482582)); break r9; } - X3 = a5; + X3 = a4; } - if ((e4 = w4(w4(w4(X3 - O5) - rD3) - w4(Q4 - S5))) != e4) break r5; - P5 = eu2(e4, w4(0)); + if ((e3 = w3(w3(w3(X3 - O4) - rD3) - w3(Q3 - S4))) != e3) break r5; + P4 = eu2(e3, w3(0)); break r5; } - P5 = S5; + P4 = S4; } - Y3 = L4 >>> 0 <= F3 >>> 0; + Y3 = L3 >>> 0 <= F3 >>> 0; ei: { if (!Y3) { - for (rr3 = l4[r10 + 556 >> 2], ra4 = (i5 = l4[r10 + 560 >> 2] - rr3 >> 2) >>> 0 < F3 >>> 0 ? F3 : i5, _4 = 0, i5 = F3; ; ) { - if ((0 | i5) == (0 | ra4)) break re; - if (f6 = l4[rr3 + (i5 << 2) >> 2], (196608 & l4[f6 + 24 >> 2]) != 131072 && (ea(rN3 = I4 + 24 | 0, f6, U3), rK3 = l4[I4 + 28 >> 2], ee(rN3, f6, U3), _4 = (((0 | rK3) == 3) + _4 | 0) + (3 == l4[I4 + 28 >> 2]) | 0), (0 | L4) == (0 | (i5 = i5 + 1 | 0))) break; + for (rr3 = l3[r10 + 556 >> 2], ra4 = (i4 = l3[r10 + 560 >> 2] - rr3 >> 2) >>> 0 < F3 >>> 0 ? F3 : i4, _3 = 0, i4 = F3; ; ) { + if ((0 | i4) == (0 | ra4)) break re; + if (f4 = l3[rr3 + (i4 << 2) >> 2], (196608 & l3[f4 + 24 >> 2]) != 131072 && (ea(rN3 = I3 + 24 | 0, f4, U3), rK3 = l3[I3 + 28 >> 2], ee(rN3, f4, U3), _3 = (((0 | rK3) == 3) + _3 | 0) + (3 == l3[I3 + 28 >> 2]) | 0), (0 | L3) == (0 | (i4 = i4 + 1 | 0))) break; } - if (z4 = w4(0), a5 = H4, _4) break ei; + if (z3 = w3(0), a4 = H3, _3) break ei; } - z4 = w4(0), _4 = 0, a5 = H4; - en: switch ((l4[r10 + 24 >> 2] >>> 4 & 7) - 1 | 0) { + z3 = w3(0), _3 = 0, a4 = H3; + en: switch ((l3[r10 + 24 >> 2] >>> 4 & 7) - 1 | 0) { case 0: - z4 = w4(P5 * w4(0.5)); + z3 = w3(P4 * w3(0.5)); break ei; case 1: - z4 = P5; + z3 = P4; break ei; case 2: - if (x5 >>> 0 < 2) break ei; - a5 = w4(H4 + w4((eo2 = w4(0), ek2 = eu2(P5, w4(0)), ((eb2 = P5 != P5) ? eo2 : ek2) / w4(x5 - 1 >>> 0)))); + if (x4 >>> 0 < 2) break ei; + a4 = w3(H3 + w3((eo2 = w3(0), ek2 = eu2(P4, w3(0)), ((eb2 = P4 != P4) ? eo2 : ek2) / w3(x4 - 1 >>> 0)))); break ei; case 4: - z4 = w4(P5 / w4(x5 + 1 >>> 0)), a5 = w4(H4 + z4); + z3 = w3(P4 / w3(x4 + 1 >>> 0)), a4 = w3(H3 + z3); break ei; case 3: break en; default: break ei; } - z4 = w4(w4(P5 * w4(0.5)) / w4(x5 >>> 0)), a5 = w4(w4(z4 + z4) + H4); + z3 = w3(w3(P4 * w3(0.5)) / w3(x4 >>> 0)), a4 = w3(w3(z3 + z3) + H3); } - if (e4 = w4(O5 + z4), S5 = w4(0), x5 = rj2(r10), Y3) a5 = w4(0); + if (e3 = w3(O4 + z3), S4 = w3(0), x4 = rj2(r10), Y3) a4 = w3(0); else { - for (rr3 = L4 - 1 | 0, rx3 = w4(P5 / w4(0 | _4)), O5 = w4(0), X3 = w4(0), i5 = F3; ; ) { - if (f6 = l4[r10 + 556 >> 2], l4[r10 + 560 >> 2] - f6 >> 2 >>> 0 <= i5 >>> 0) break re; - _4 = (f6 = l4[f6 + (i5 << 2) >> 2]) + 228 | 0, ru3(I4 + 24 | 0, _4, 320), a5 = w4(a5 - ((0 | i5) == (0 | rr3) ? H4 : w4(0))), ra4 = l4[f6 + 24 >> 2]; + for (rr3 = L3 - 1 | 0, rx3 = w3(P4 / w3(0 | _3)), O4 = w3(0), X3 = w3(0), i4 = F3; ; ) { + if (f4 = l3[r10 + 556 >> 2], l3[r10 + 560 >> 2] - f4 >> 2 >>> 0 <= i4 >>> 0) break re; + _3 = (f4 = l3[f4 + (i4 << 2) >> 2]) + 228 | 0, ru3(I3 + 24 | 0, _3, 320), a4 = w3(a4 - ((0 | i4) == (0 | rr3) ? H3 : w3(0))), ra4 = l3[f4 + 24 >> 2]; ef: if (!(4194304 & ra4)) { et: { if ((196608 & ra4) == 131072) { - if (!r52(f6, U3)) break et; - if (!c5) break ef; - P5 = rI2(f6, U3, Q4), rn3 = rM2(r10, U3), rq3 = rP2(f6, U3, C4), p3[_4 + (l4[rA3 >> 2] << 2) >> 2] = rq3 + w4(P5 + rn3); + if (!r52(f4, U3)) break et; + if (!c4) break ef; + P4 = rI2(f4, U3, Q3), rn3 = rM2(r10, U3), rq3 = rP2(f4, U3, C3), p2[_3 + (l3[rA3 >> 2] << 2) >> 2] = rq3 + w3(P4 + rn3); break ef; } - if (ea(I4 + 360 | 0, f6, U3), e4 = w4(e4 + (3 == l4[I4 + 364 >> 2] ? rx3 : w4(-0))), c5 && (ra4 = _4, _4 = l4[rA3 >> 2] << 2, p3[ra4 + _4 >> 2] = e4 + p3[_4 + (I4 + 24 | 0) >> 2]), ee(I4 + 360 | 0, f6, U3), e4 = w4(e4 + (3 == l4[I4 + 364 >> 2] ? rx3 : w4(-0))), !er2) { - e4 = w4(e4 + w4(w4(a5 + w4(rP2(f6, U3, C4) + rS2(f6, U3, C4))) + p3[I4 + 104 >> 2])), S5 = K5; + if (ea(I3 + 360 | 0, f4, U3), e3 = w3(e3 + (3 == l3[I3 + 364 >> 2] ? rx3 : w3(-0))), c4 && (ra4 = _3, _3 = l3[rA3 >> 2] << 2, p2[ra4 + _3 >> 2] = e3 + p2[_3 + (I3 + 24 | 0) >> 2]), ee(I3 + 360 | 0, f4, U3), e3 = w3(e3 + (3 == l3[I3 + 364 >> 2] ? rx3 : w3(-0))), !er2) { + e3 = w3(e3 + w3(w3(a4 + w3(rP2(f4, U3, C3) + rS2(f4, U3, C3))) + p2[I3 + 104 >> 2])), S4 = K4; break ef; } - if (e4 = w4(e4 + w4(a5 + w4(p3[(_4 = f6 + 516 | 0) + (l4[r_3 >> 2] << 2) >> 2] + w4(rP2(f6, U3, C4) + rS2(f6, U3, C4))))), x5) { - P5 = rR2(f6), rn3 = rP2(f6, 0, C4), P5 = w4(P5 + rn3), rn3 = w4(w4(p3[f6 + 520 >> 2] + w4(rP2(f6, 0, C4) + rS2(f6, 0, C4))) - P5), f6 = O5 != O5; + if (e3 = w3(e3 + w3(a4 + w3(p2[(_3 = f4 + 516 | 0) + (l3[r_3 >> 2] << 2) >> 2] + w3(rP2(f4, U3, C3) + rS2(f4, U3, C3))))), x4) { + P4 = rR2(f4), rn3 = rP2(f4, 0, C3), P4 = w3(P4 + rn3), rn3 = w3(w3(p2[f4 + 520 >> 2] + w3(rP2(f4, 0, C3) + rS2(f4, 0, C3))) - P4), f4 = O4 != O4; eb: { - if (!(f6 | P5 != P5)) { - O5 = eu2(O5, P5); + if (!(f4 | P4 != P4)) { + O4 = eu2(O4, P4); break eb; } - O5 = f6 ? P5 : O5; + O4 = f4 ? P4 : O4; } - if (!((f6 = X3 != X3) | rn3 != rn3)) { + if (!((f4 = X3 != X3) | rn3 != rn3)) { X3 = eu2(X3, rn3); break ef; } - X3 = f6 ? rn3 : X3; + X3 = f4 ? rn3 : X3; break ef; } - if (!((P5 = w4(p3[_4 + (l4[$4 >> 2] << 2) >> 2] + w4(rP2(f6, N4, C4) + rS2(f6, N4, C4)))) != P5 | (f6 = S5 != S5))) { - S5 = eu2(S5, P5); + if (!((P4 = w3(p2[_3 + (l3[$3 >> 2] << 2) >> 2] + w3(rP2(f4, N3, C3) + rS2(f4, N3, C3)))) != P4 | (f4 = S4 != S4))) { + S4 = eu2(S4, P4); break ef; } - S5 = f6 ? P5 : S5; + S4 = f4 ? P4 : S4; break ef; } - if (!c5) break ef; - P5 = p3[(f6 = l4[rA3 >> 2] << 2) + (I4 + 24 | 0) >> 2], eb2 = f6 + _4 | 0, eo2 = w4(z4 + w4(P5 + rM2(r10, U3))), p3[eb2 >> 2] = eo2; + if (!c4) break ef; + P4 = p2[(f4 = l3[rA3 >> 2] << 2) + (I3 + 24 | 0) >> 2], eb2 = f4 + _3 | 0, eo2 = w3(z3 + w3(P4 + rM2(r10, U3))), p2[eb2 >> 2] = eo2; } - if ((0 | L4) == (0 | (i5 = i5 + 1 | 0))) break; + if ((0 | L3) == (0 | (i4 = i4 + 1 | 0))) break; } - a5 = w4(X3 + O5); + a4 = w3(X3 + O4); } - if (O5 = x5 ? a5 : S5, P5 = K5, !r92) { - i5 = (a5 = ro2(r10, N4, w4(rb3 + O5), rz3)) != a5, X3 = w4(w4(rZ2(r10, N4, b5) + rM2(r10, N4)) + w4(rW2(r10, N4, b5) + rU2(r10, N4))); + if (O4 = x4 ? a4 : S4, P4 = K4, !r92) { + i4 = (a4 = ro2(r10, N3, w3(rb3 + O4), rz3)) != a4, X3 = w3(w3(rZ2(r10, N3, b4) + rM2(r10, N3)) + w3(rW2(r10, N3, b4) + rU2(r10, N3))); eo: { - if (!(i5 | X3 != X3)) { - a5 = eu2(a5, X3); + if (!(i4 | X3 != X3)) { + a4 = eu2(a4, X3); break eo; } - a5 = i5 ? X3 : a5; + a4 = i4 ? X3 : a4; } - P5 = w4(a5 - rb3); + P4 = w3(a4 - rb3); } - i5 = (a5 = ro2(r10, N4, w4(rb3 + (r72 ? K5 : O5)), rz3)) != a5, X3 = w4(w4(rZ2(r10, N4, b5) + rM2(r10, N4)) + w4(rW2(r10, N4, b5) + rU2(r10, N4))); + i4 = (a4 = ro2(r10, N3, w3(rb3 + (r72 ? K4 : O4)), rz3)) != a4, X3 = w3(w3(rZ2(r10, N3, b4) + rM2(r10, N3)) + w3(rW2(r10, N3, b4) + rU2(r10, N3))); ek: { - if (!(i5 | X3 != X3)) { - a5 = eu2(a5, X3); + if (!(i4 | X3 != X3)) { + a4 = eu2(a4, X3); break ek; } - a5 = i5 ? X3 : a5; + a4 = i4 ? X3 : a4; } - if (X3 = w4(a5 - rb3), !(!c5 | Y3)) for (; ; ) { - if (i5 = l4[r10 + 556 >> 2], l4[r10 + 560 >> 2] - i5 >> 2 >>> 0 <= F3 >>> 0) break re; - i5 = l4[i5 + (F3 << 2) >> 2], f6 = l4[i5 + 24 >> 2]; - ec: if (!(4194304 & f6)) { - if ((196608 & f6) == 131072) { - if (f6 = l4[q4 >> 2], r52(i5, N4) && (a5 = w4(w4(rI2(i5, N4, K5) + rM2(r10, N4)) + rP2(i5, N4, C4)), p3[(i5 + (f6 << 2) | 0) + 228 >> 2] = a5, a5 == a5)) break ec; - eb2 = i5 + (f6 << 2) | 0, eo2 = w4(rM2(r10, N4) + rP2(i5, N4, C4)), p3[eb2 + 228 >> 2] = eo2; + if (X3 = w3(a4 - rb3), !(!c4 | Y3)) for (; ; ) { + if (i4 = l3[r10 + 556 >> 2], l3[r10 + 560 >> 2] - i4 >> 2 >>> 0 <= F3 >>> 0) break re; + i4 = l3[i4 + (F3 << 2) >> 2], f4 = l3[i4 + 24 >> 2]; + ec: if (!(4194304 & f4)) { + if ((196608 & f4) == 131072) { + if (f4 = l3[q3 >> 2], r52(i4, N3) && (a4 = w3(w3(rI2(i4, N3, K4) + rM2(r10, N3)) + rP2(i4, N3, C3)), p2[(i4 + (f4 << 2) | 0) + 228 >> 2] = a4, a4 == a4)) break ec; + eb2 = i4 + (f4 << 2) | 0, eo2 = w3(rM2(r10, N3) + rP2(i4, N3, C3)), p2[eb2 + 228 >> 2] = eo2; break ec; } - (f6 = f6 >>> 13 & 7) || (f6 = l4[r10 + 24 >> 2] >>> 10 & 7); + (f4 = f4 >>> 13 & 7) || (f4 = l3[r10 + 24 >> 2] >>> 10 & 7); eu: { es: { eA: { - if ((0 | f6) == 5) { - f6 = 8 & l4[r10 + 24 >> 2] ? 5 : 1; + if ((0 | f4) == 5) { + f4 = 8 & l3[r10 + 24 >> 2] ? 5 : 1; break eA; } - if ((0 | f6) != 4 || (ea(I4 + 24 | 0, i5, N4), f6 = 4, 3 == l4[I4 + 28 >> 2])) break eA; - if (ee(I4 + 360 | 0, i5, N4), _4 = l4[$4 >> 2], 3 == l4[I4 + 364 >> 2]) break es; - O5 = p3[(_4 = i5 + (_4 << 3) | 0) + 572 >> 2]; + if ((0 | f4) != 4 || (ea(I3 + 24 | 0, i4, N3), f4 = 4, 3 == l3[I3 + 28 >> 2])) break eA; + if (ee(I3 + 360 | 0, i4, N3), _3 = l3[$3 >> 2], 3 == l3[I3 + 364 >> 2]) break es; + O4 = p2[(_3 = i4 + (_3 << 3) | 0) + 572 >> 2]; el: { - ed: switch (0 | (f6 = l4[_4 + 576 >> 2])) { + ed: switch (0 | (f4 = l3[_3 + 576 >> 2])) { case 0: case 3: break el; default: break ed; } - if (S5 = p3[_4 + 572 >> 2], !((0 | f6) != 1 | S5 != S5)) { - if (a5 = D5, O5 < w4(0)) break el; + if (S4 = p2[_3 + 572 >> 2], !((0 | f4) != 1 | S4 != S4)) { + if (a4 = D4, O4 < w3(0)) break el; break eu; } - if (a5 = D5, !(O5 < w4(0)) & rl4 | ((0 | f6) != 2 | S5 != S5)) break eu; + if (a4 = D4, !(O4 < w3(0)) & rl4 | ((0 | f4) != 2 | S4 != S4)) break eu; } - O5 = p3[(i5 + (l4[r_3 >> 2] << 2) | 0) + 516 >> 2], a5 = (a5 = p3[i5 + 224 >> 2]) == a5 ? w4(w4(rP2(i5, N4, C4) + rS2(i5, N4, C4)) + (rk3 ? w4(O5 * a5) : w4(O5 / a5))) : X3, p3[I4 + 360 >> 2] = a5, eb2 = I4, eo2 = w4(O5 + w4(rP2(i5, U3, C4) + rS2(i5, U3, C4))), p3[eb2 + 24 >> 2] = eo2, l4[I4 + 356 >> 2] = 1, l4[I4 + 352 >> 2] = 1, rg2(i5, U3, Q4, C4, I4 + 356 | 0, I4 + 24 | 0), rg2(i5, N4, K5, C4, I4 + 352 | 0, I4 + 360 | 0), O5 = p3[I4 + 360 >> 2], S5 = p3[I4 + 24 >> 2], a5 = (f6 = U3 >>> 0 > 1) ? O5 : S5, O5 = f6 ? S5 : O5, f6 = (0 | rp3) != 0 & (896 & l4[r10 + 24 >> 2]) != 512, rt3(i5, O5, a5, rf4, !(f6 & rk3 | O5 != O5), (!f6 | rk3) & a5 == a5, C4, J4, 1, 2, A4, h5, v5, m5), a5 = D5; + O4 = p2[(i4 + (l3[r_3 >> 2] << 2) | 0) + 516 >> 2], a4 = (a4 = p2[i4 + 224 >> 2]) == a4 ? w3(w3(rP2(i4, N3, C3) + rS2(i4, N3, C3)) + (rk3 ? w3(O4 * a4) : w3(O4 / a4))) : X3, p2[I3 + 360 >> 2] = a4, eb2 = I3, eo2 = w3(O4 + w3(rP2(i4, U3, C3) + rS2(i4, U3, C3))), p2[eb2 + 24 >> 2] = eo2, l3[I3 + 356 >> 2] = 1, l3[I3 + 352 >> 2] = 1, rg2(i4, U3, Q3, C3, I3 + 356 | 0, I3 + 24 | 0), rg2(i4, N3, K4, C3, I3 + 352 | 0, I3 + 360 | 0), O4 = p2[I3 + 360 >> 2], S4 = p2[I3 + 24 >> 2], a4 = (f4 = U3 >>> 0 > 1) ? O4 : S4, O4 = f4 ? S4 : O4, f4 = (0 | rp3) != 0 & (896 & l3[r10 + 24 >> 2]) != 512, rt3(i4, O4, a4, rf4, !(f4 & rk3 | O4 != O4), (!f4 | rk3) & a4 == a4, C3, J3, 1, 2, A3, h5, v4, m4), a4 = D4; break eu; } - _4 = l4[$4 >> 2]; + _3 = l3[$3 >> 2]; } - a5 = p3[((_4 << 2) + i5 | 0) + 516 >> 2], O5 = rP2(i5, N4, C4), S5 = rS2(i5, N4, C4), ea(I4 + 24 | 0, i5, N4), O5 = w4(P5 - w4(a5 + w4(O5 + S5))); - eh: if (3 == l4[I4 + 28 >> 2]) { - if (ee(I4 + 360 | 0, i5, N4), 3 != l4[I4 + 364 >> 2]) break eh; - a5 = w4(O5 * w4(0.5)), a5 = w4(D5 + (eo2 = w4(0), ek2 = eu2(a5, w4(0)), (eb2 = a5 != a5) ? eo2 : ek2)); + a4 = p2[((_3 << 2) + i4 | 0) + 516 >> 2], O4 = rP2(i4, N3, C3), S4 = rS2(i4, N3, C3), ea(I3 + 24 | 0, i4, N3), O4 = w3(P4 - w3(a4 + w3(O4 + S4))); + eh: if (3 == l3[I3 + 28 >> 2]) { + if (ee(I3 + 360 | 0, i4, N3), 3 != l3[I3 + 364 >> 2]) break eh; + a4 = w3(O4 * w3(0.5)), a4 = w3(D4 + (eo2 = w3(0), ek2 = eu2(a4, w3(0)), (eb2 = a4 != a4) ? eo2 : ek2)); break eu; } - if (ee(I4 + 24 | 0, i5, N4), a5 = D5, 3 == l4[I4 + 28 >> 2]) break eu; - if (ea(I4 + 24 | 0, i5, N4), 3 == l4[I4 + 28 >> 2]) { - a5 = w4(D5 + (eo2 = w4(0), ek2 = eu2(O5, w4(0)), (eb2 = O5 != O5) ? eo2 : ek2)); + if (ee(I3 + 24 | 0, i4, N3), a4 = D4, 3 == l3[I3 + 28 >> 2]) break eu; + if (ea(I3 + 24 | 0, i4, N3), 3 == l3[I3 + 28 >> 2]) { + a4 = w3(D4 + (eo2 = w3(0), ek2 = eu2(O4, w3(0)), (eb2 = O4 != O4) ? eo2 : ek2)); break eu; } - ev: switch (f6 - 1 | 0) { + ev: switch (f4 - 1 | 0) { case 1: - a5 = w4(D5 + w4(O5 * w4(0.5))); + a4 = w3(D4 + w3(O4 * w3(0.5))); break eu; case 0: break eu; default: break ev; } - a5 = w4(D5 + O5); + a4 = w3(D4 + O4); } - p3[(i5 = i5 + (l4[q4 >> 2] << 2) | 0) + 228 >> 2] = a5 + w4(rX3 + p3[i5 + 228 >> 2]); + p2[(i4 = i4 + (l3[q3 >> 2] << 2) | 0) + 228 >> 2] = a4 + w3(rX3 + p2[i4 + 228 >> 2]); } - if ((0 | (F3 = F3 + 1 | 0)) == (0 | L4)) break; + if ((0 | (F3 = F3 + 1 | 0)) == (0 | L3)) break; } - a5 = w4((j4 ? r12 : w4(0)) + X3), i5 = rY3 != rY3, e4 = w4(rD3 + e4); + a4 = w3((j3 ? r12 : w3(0)) + X3), i4 = rY3 != rY3, e3 = w3(rD3 + e3); ep: { - if (!(i5 | e4 != e4)) { - rY3 = eu2(rY3, e4); + if (!(i4 | e3 != e3)) { + rY3 = eu2(rY3, e3); break ep; } - rY3 = i5 ? e4 : rY3; + rY3 = i4 ? e3 : rY3; } - if (rX3 = w4(rX3 + a5), i5 = j4 + 1 | 0, F3 = L4, !(L4 >>> 0 < rd3 >>> 0)) break; + if (rX3 = w3(rX3 + a4), i4 = j3 + 1 | 0, F3 = L3, !(L3 >>> 0 < rd3 >>> 0)) break; } - em: if (c5 && (rp3 || rj2(r10))) { - O5 = w4(0); + em: if (c4 && (rp3 || rj2(r10))) { + O4 = w3(0); eN: { - ew: if (K5 == K5) { - e4 = w4(K5 - rX3); - ey: switch ((l4[r10 + 24 >> 2] >>> 7 & 7) - 2 | 0) { + ew: if (K4 == K4) { + e3 = w3(K4 - rX3); + ey: switch ((l3[r10 + 24 >> 2] >>> 7 & 7) - 2 | 0) { case 0: - D5 = w4(D5 + w4(e4 * w4(0.5))); + D4 = w3(D4 + w3(e3 * w3(0.5))); break ew; case 2: - if (!(K5 > rX3)) break ew; - O5 = w4(e4 / w4(i5 >>> 0)); + if (!(K4 > rX3)) break ew; + O4 = w3(e3 / w3(i4 >>> 0)); break ew; case 5: - if (K5 > rX3) { - if (D5 = w4(D5 + w4(e4 / w4(i5 << 1 >>> 0))), i5 >>> 0 < 2) break ew; - O5 = w4(e4 / w4(i5 >>> 0)); + if (K4 > rX3) { + if (D4 = w3(D4 + w3(e3 / w3(i4 << 1 >>> 0))), i4 >>> 0 < 2) break ew; + O4 = w3(e3 / w3(i4 >>> 0)); break eN; } - D5 = w4(D5 + w4(e4 * w4(0.5))); + D4 = w3(D4 + w3(e3 * w3(0.5))); break ew; case 4: - if (!(K5 > rX3) | i5 >>> 0 < 2) break ew; - O5 = w4(e4 / w4(j4 >>> 0)); + if (!(K4 > rX3) | i4 >>> 0 < 2) break ew; + O4 = w3(e3 / w3(j3 >>> 0)); break eN; case 1: break ey; default: break ew; } - D5 = w4(D5 + e4); + D4 = w3(D4 + e3); } - if (!i5) break em; + if (!i4) break em; } - for (_4 = 0, i5 = 0, f6 = 0; ; ) { - if (S5 = w4(0), a5 = w4(0), e4 = w4(0), X3 = w4(0), L4 = i5, i5 >>> 0 < rd3 >>> 0) { + for (_3 = 0, i4 = 0, f4 = 0; ; ) { + if (S4 = w3(0), a4 = w3(0), e3 = w3(0), X3 = w3(0), L3 = i4, i4 >>> 0 < rd3 >>> 0) { eE: { for (; ; ) { - if (f6 = l4[r10 + 556 >> 2], l4[r10 + 560 >> 2] - f6 >> 2 >>> 0 <= L4 >>> 0) break re; - F3 = l4[f6 + (L4 << 2) >> 2], Y3 = l4[F3 + 24 >> 2]; + if (f4 = l3[r10 + 556 >> 2], l3[r10 + 560 >> 2] - f4 >> 2 >>> 0 <= L3 >>> 0) break re; + F3 = l3[f4 + (L3 << 2) >> 2], Y3 = l3[F3 + 24 >> 2]; eG: if (!(4194304 & Y3 | (196608 & Y3) == 131072)) { - if (f6 = L4, l4[F3 + 548 >> 2] != (0 | _4)) break eE; - e4 = p3[(F3 + (l4[$4 >> 2] << 2) | 0) + 516 >> 2]; - eR: if (e4 >= w4(0)) { - if (f6 = a5 != a5, e4 = w4(e4 + w4(rP2(F3, N4, C4) + rS2(F3, N4, C4))), !(f6 | e4 != e4)) { - a5 = eu2(a5, e4); + if (f4 = L3, l3[F3 + 548 >> 2] != (0 | _3)) break eE; + e3 = p2[(F3 + (l3[$3 >> 2] << 2) | 0) + 516 >> 2]; + eR: if (e3 >= w3(0)) { + if (f4 = a4 != a4, e3 = w3(e3 + w3(rP2(F3, N3, C3) + rS2(F3, N3, C3))), !(f4 | e3 != e3)) { + a4 = eu2(a4, e3); break eR; } - a5 = f6 ? e4 : a5; + a4 = f4 ? e3 : a4; } - if ((f6 = Y3 >>> 13 & 7) || (f6 = l4[r10 + 24 >> 2] >>> 10 & 7), !(8 & d4[r10 + 24 | 0]) | (0 | f6) != 5) break eG; - e4 = rR2(F3), P5 = rP2(F3, 0, C4), e4 = w4(e4 + P5), P5 = w4(w4(p3[F3 + 520 >> 2] + w4(rP2(F3, 0, C4) + rS2(F3, 0, C4))) - e4), f6 = a5 != a5, F3 = X3 != X3; + if ((f4 = Y3 >>> 13 & 7) || (f4 = l3[r10 + 24 >> 2] >>> 10 & 7), !(8 & d3[r10 + 24 | 0]) | (0 | f4) != 5) break eG; + e3 = rR2(F3), P4 = rP2(F3, 0, C3), e3 = w3(e3 + P4), P4 = w3(w3(p2[F3 + 520 >> 2] + w3(rP2(F3, 0, C3) + rS2(F3, 0, C3))) - e3), f4 = a4 != a4, F3 = X3 != X3; eg: { - if (!(F3 | e4 != e4)) { - X3 = eu2(X3, e4); + if (!(F3 | e3 != e3)) { + X3 = eu2(X3, e3); break eg; } - X3 = F3 ? e4 : X3; + X3 = F3 ? e3 : X3; } - F3 = S5 != S5; + F3 = S4 != S4; eZ: { - if (!(F3 | P5 != P5)) { - S5 = eu2(S5, P5); + if (!(F3 | P4 != P4)) { + S4 = eu2(S4, P4); break eZ; } - S5 = F3 ? P5 : S5; + S4 = F3 ? P4 : S4; } - if (!(f6 | (e4 = w4(X3 + S5)) != e4)) { - a5 = eu2(a5, e4); + if (!(f4 | (e3 = w3(X3 + S4)) != e3)) { + a4 = eu2(a4, e3); break eG; } - a5 = f6 ? e4 : a5; + a4 = f4 ? e3 : a4; } - if ((0 | rd3) == (0 | (L4 = L4 + 1 | 0))) break; + if ((0 | rd3) == (0 | (L3 = L3 + 1 | 0))) break; } - f6 = rd3; + f4 = rd3; } - e4 = a5; + e3 = a4; } - if (P5 = w4(D5 + (_4 ? r12 : w4(0))), a5 = w4(O5 + e4), D5 = w4(P5 + a5), i5 >>> 0 < f6 >>> 0) for (H4 = w4(P5 + X3); ; ) { - if (L4 = l4[r10 + 556 >> 2], l4[r10 + 560 >> 2] - L4 >> 2 >>> 0 <= i5 >>> 0) break re; - F3 = l4[L4 + (i5 << 2) >> 2], L4 = l4[F3 + 24 >> 2]; - eW: if (!(4194304 & L4 | (196608 & L4) == 131072)) { - (L4 = L4 >>> 13 & 7) || (L4 = l4[r10 + 24 >> 2] >>> 10 & 7); + if (P4 = w3(D4 + (_3 ? r12 : w3(0))), a4 = w3(O4 + e3), D4 = w3(P4 + a4), i4 >>> 0 < f4 >>> 0) for (H3 = w3(P4 + X3); ; ) { + if (L3 = l3[r10 + 556 >> 2], l3[r10 + 560 >> 2] - L3 >> 2 >>> 0 <= i4 >>> 0) break re; + F3 = l3[L3 + (i4 << 2) >> 2], L3 = l3[F3 + 24 >> 2]; + eW: if (!(4194304 & L3 | (196608 & L3) == 131072)) { + (L3 = L3 >>> 13 & 7) || (L3 = l3[r10 + 24 >> 2] >>> 10 & 7); eV: { - eB: switch (L4 - 1 | 0) { + eB: switch (L3 - 1 | 0) { case 4: - if (8 & d4[r10 + 24 | 0]) break eV; + if (8 & d3[r10 + 24 | 0]) break eV; case 0: - e4 = rP2(F3, N4, C4), p3[(F3 + (l4[q4 >> 2] << 2) | 0) + 228 >> 2] = P5 + e4; + e3 = rP2(F3, N3, C3), p2[(F3 + (l3[q3 >> 2] << 2) | 0) + 228 >> 2] = P4 + e3; break eW; case 2: - e4 = rS2(F3, N4, C4), p3[(L4 = F3 + 228 | 0) + (l4[q4 >> 2] << 2) >> 2] = w4(D5 - e4) - p3[(L4 + (l4[$4 >> 2] << 2) | 0) + 288 >> 2]; + e3 = rS2(F3, N3, C3), p2[(L3 = F3 + 228 | 0) + (l3[q3 >> 2] << 2) >> 2] = w3(D4 - e3) - p2[(L3 + (l3[$3 >> 2] << 2) | 0) + 288 >> 2]; break eW; case 1: - p3[(L4 = F3 + 228 | 0) + (l4[q4 >> 2] << 2) >> 2] = P5 + w4(w4(a5 - p3[(L4 + (l4[$4 >> 2] << 2) | 0) + 288 >> 2]) * w4(0.5)); + p2[(L3 = F3 + 228 | 0) + (l3[q3 >> 2] << 2) >> 2] = P4 + w3(w3(a4 - p2[(L3 + (l3[$3 >> 2] << 2) | 0) + 288 >> 2]) * w3(0.5)); break eW; case 3: break eB; default: break eW; } - e4 = rP2(F3, N4, C4), p3[(F3 + (l4[q4 >> 2] << 2) | 0) + 228 >> 2] = P5 + e4, e4 = p3[(L4 = Y3 = F3 + (l4[$4 >> 2] << 3) | 0) + 572 >> 2]; + e3 = rP2(F3, N3, C3), p2[(F3 + (l3[q3 >> 2] << 2) | 0) + 228 >> 2] = P4 + e3, e3 = p2[(L3 = Y3 = F3 + (l3[$3 >> 2] << 3) | 0) + 572 >> 2]; eT: { - eI: switch (0 | (L4 = l4[L4 + 576 >> 2])) { + eI: switch (0 | (L3 = l3[L3 + 576 >> 2])) { case 0: case 3: break eT; default: break eI; } - if (X3 = p3[Y3 + 572 >> 2], !((0 | L4) != 1 | X3 != X3)) { - if (e4 < w4(0)) break eT; + if (X3 = p2[Y3 + 572 >> 2], !((0 | L3) != 1 | X3 != X3)) { + if (e3 < w3(0)) break eT; break eW; } - if (!(e4 < w4(0)) & rl4 | ((0 | L4) != 2 | X3 != X3)) break eW; + if (!(e3 < w3(0)) & rl4 | ((0 | L3) != 2 | X3 != X3)) break eW; } eX: { if (U3 >>> 0 >= 2) { - S5 = a5, e4 = p3[F3 + 516 >> 2], X3 = w4(e4 + w4(rP2(F3, U3, C4) + rS2(F3, U3, C4))); + S4 = a4, e3 = p2[F3 + 516 >> 2], X3 = w3(e3 + w3(rP2(F3, U3, C3) + rS2(F3, U3, C3))); break eX; } - S5 = w4(p3[F3 + 520 >> 2] + w4(rP2(F3, N4, C4) + rS2(F3, N4, C4))), e4 = p3[F3 + 516 >> 2], X3 = a5; + S4 = w3(p2[F3 + 520 >> 2] + w3(rP2(F3, N3, C3) + rS2(F3, N3, C3))), e3 = p2[F3 + 516 >> 2], X3 = a4; } eO: { eL: { - if (!(X3 != X3 | e4 != e4)) { - if (w4(y3(w4(X3 - e4))) < w4(9999999747378752e-20)) break eL; + if (!(X3 != X3 | e3 != e3)) { + if (w3(y2(w3(X3 - e3))) < w3(9999999747378752e-20)) break eL; break eO; } - if (X3 == X3 | e4 == e4) break eO; + if (X3 == X3 | e3 == e3) break eO; } - if (!((L4 = (e4 = p3[F3 + 520 >> 2]) != e4) | S5 != S5)) { - if (!(w4(y3(w4(S5 - e4))) < w4(9999999747378752e-20))) break eO; + if (!((L3 = (e3 = p2[F3 + 520 >> 2]) != e3) | S4 != S4)) { + if (!(w3(y2(w3(S4 - e3))) < w3(9999999747378752e-20))) break eO; break eW; } - if (S5 == S5) break eO; - if (L4) break eW; + if (S4 == S4) break eO; + if (L3) break eW; } - rt3(F3, X3, S5, rf4, 1, 1, C4, J4, 1, 3, A4, h5, v5, m5); + rt3(F3, X3, S4, rf4, 1, 1, C3, J3, 1, 3, A3, h5, v4, m4); break eW; } - eb2 = F3, eo2 = w4(w4(H4 - rR2(F3)) + rI2(F3, 0, K5)), p3[eb2 + 232 >> 2] = eo2; + eb2 = F3, eo2 = w3(w3(H3 - rR2(F3)) + rI2(F3, 0, K4)), p2[eb2 + 232 >> 2] = eo2; } - if ((0 | f6) == (0 | (i5 = i5 + 1 | 0))) break; + if ((0 | f4) == (0 | (i4 = i4 + 1 | 0))) break; } - if (L4 = (0 | _4) != (0 | j4), _4 = _4 + 1 | 0, i5 = f6, !L4) break; + if (L3 = (0 | _3) != (0 | j3), _3 = _3 + 1 | 0, i4 = f4, !L3) break; } } - _4 = r10 + 516 | 0, i5 = (e4 = ro2(r10, 2, r03, b5)) != e4, a5 = w4(w4(rZ2(r10, 2, b5) + rM2(r10, 2)) + w4(rW2(r10, 2, b5) + rU2(r10, 2))); + _3 = r10 + 516 | 0, i4 = (e3 = ro2(r10, 2, r03, b4)) != e3, a4 = w3(w3(rZ2(r10, 2, b4) + rM2(r10, 2)) + w3(rW2(r10, 2, b4) + rU2(r10, 2))); e_: { - if (!(i5 | a5 != a5)) { - e4 = eu2(e4, a5); + if (!(i4 | a4 != a4)) { + e3 = eu2(e3, a4); break e_; } - e4 = i5 ? a5 : e4; + e3 = i4 ? a4 : e3; } - p3[_4 >> 2] = e4, i5 = (e4 = ro2(r10, 0, r24, o4)) != e4, a5 = w4(w4(rZ2(r10, 0, b5) + rM2(r10, 0)) + w4(rW2(r10, 0, b5) + rU2(r10, 0))); + p2[_3 >> 2] = e3, i4 = (e3 = ro2(r10, 0, r23, o3)) != e3, a4 = w3(w3(rZ2(r10, 0, b4) + rM2(r10, 0)) + w3(rW2(r10, 0, b4) + rU2(r10, 0))); eF: { - if (!(i5 | a5 != a5)) { - e4 = eu2(e4, a5); + if (!(i4 | a4 != a4)) { + e3 = eu2(e3, a4); break eF; } - e4 = i5 ? a5 : e4; + e3 = i4 ? a4 : e3; } - p3[r10 + 520 >> 2] = e4; + p2[r10 + 520 >> 2] = e3; eC: { eS: { - if (!rG3 || !((0 | (i5 = l4[r10 + 24 >> 2] >>> 20 & 3)) == 2 | (0 | rG3) != 2)) { - if (i5 = (e4 = ro2(r10, U3, rY3, rC3)) != e4, a5 = w4(w4(rZ2(r10, U3, b5) + rM2(r10, U3)) + w4(rW2(r10, U3, b5) + rU2(r10, U3))), !(i5 | a5 != a5)) { - e4 = eu2(e4, a5); + if (!rG3 || !((0 | (i4 = l3[r10 + 24 >> 2] >>> 20 & 3)) == 2 | (0 | rG3) != 2)) { + if (i4 = (e3 = ro2(r10, U3, rY3, rC3)) != e3, a4 = w3(w3(rZ2(r10, U3, b4) + rM2(r10, U3)) + w3(rW2(r10, U3, b4) + rU2(r10, U3))), !(i4 | a4 != a4)) { + e3 = eu2(e3, a4); break eS; } - e4 = i5 ? a5 : e4; + e3 = i4 ? a4 : e3; break eS; } - if ((0 | rG3) != 2 | (0 | i5) != 2) break eC; - i5 = (a5 = w4(rh3 + Q4)) != a5, e4 = ro2(r10, U3, rY3, rC3); + if ((0 | rG3) != 2 | (0 | i4) != 2) break eC; + i4 = (a4 = w3(rh3 + Q3)) != a4, e3 = ro2(r10, U3, rY3, rC3); eY: { - if (!(i5 | e4 != e4)) { - e4 = es(a5, e4); + if (!(i4 | e3 != e3)) { + e3 = es(a4, e3); break eY; } - e4 = i5 ? e4 : a5; + e3 = i4 ? e3 : a4; } - if (!((i5 = e4 != e4) | rh3 != rh3)) { - e4 = eu2(e4, rh3); + if (!((i4 = e3 != e3) | rh3 != rh3)) { + e3 = eu2(e3, rh3); break eS; } - e4 = i5 ? rh3 : e4; + e3 = i4 ? rh3 : e3; } - p3[_4 + (l4[r_3 >> 2] << 2) >> 2] = e4; + p2[_3 + (l3[r_3 >> 2] << 2) >> 2] = e3; } eU: { eM: { - if (!M4 || (f6 = (0 | M4) != 2, i5 = l4[r10 + 24 >> 2] >>> 20 & 3, !(f6 | (0 | i5) == 2))) { - if (i5 = (e4 = ro2(r10, N4, w4(rb3 + rX3), rz3)) != e4, a5 = w4(w4(rZ2(r10, N4, b5) + rM2(r10, N4)) + w4(rW2(r10, N4, b5) + rU2(r10, N4))), !(i5 | a5 != a5)) { - e4 = eu2(e4, a5); + if (!M4 || (f4 = (0 | M4) != 2, i4 = l3[r10 + 24 >> 2] >>> 20 & 3, !(f4 | (0 | i4) == 2))) { + if (i4 = (e3 = ro2(r10, N3, w3(rb3 + rX3), rz3)) != e3, a4 = w3(w3(rZ2(r10, N3, b4) + rM2(r10, N3)) + w3(rW2(r10, N3, b4) + rU2(r10, N3))), !(i4 | a4 != a4)) { + e3 = eu2(e3, a4); break eM; } - e4 = i5 ? a5 : e4; + e3 = i4 ? a4 : e3; break eM; } - if (f6 | (0 | i5) != 2) break eU; - i5 = (a5 = w4(rb3 + K5)) != a5, e4 = ro2(r10, N4, w4(rb3 + rX3), rz3); + if (f4 | (0 | i4) != 2) break eU; + i4 = (a4 = w3(rb3 + K4)) != a4, e3 = ro2(r10, N3, w3(rb3 + rX3), rz3); eQ: { - if (!(i5 | e4 != e4)) { - e4 = es(a5, e4); + if (!(i4 | e3 != e3)) { + e3 = es(a4, e3); break eQ; } - e4 = i5 ? e4 : a5; + e3 = i4 ? e3 : a4; } - if (!((i5 = e4 != e4) | rb3 != rb3)) { - e4 = eu2(e4, rb3); + if (!((i4 = e3 != e3) | rb3 != rb3)) { + e3 = eu2(e3, rb3); break eM; } - e4 = i5 ? rb3 : e4; + e3 = i4 ? rb3 : e3; } - p3[_4 + (l4[$4 >> 2] << 2) >> 2] = e4; + p2[_3 + (l3[$3 >> 2] << 2) >> 2] = e3; } - ez: if (c5) { - if (i5 = l4[r10 + 560 >> 2], F3 = l4[r10 + 556 >> 2], (786432 & l4[r10 + 24 >> 2]) == 524288) { - for (f6 = rd3 >>> 0 <= 1 ? 1 : rd3, c5 = i5 - F3 >> 2, i5 = 0; L4 = 0, L4 = i5 >>> 0 < c5 >>> 0 ? l4[(i5 << 2) + F3 >> 2] : L4, (196608 & l4[L4 + 24 >> 2]) != 131072 && (Y3 = (L4 = L4 + 228 | 0) + (l4[q4 >> 2] << 2) | 0, j4 = l4[$4 >> 2] << 2, p3[Y3 >> 2] = w4(p3[j4 + _4 >> 2] - p3[Y3 >> 2]) - p3[(L4 + j4 | 0) + 288 >> 2]), (0 | f6) != (0 | (i5 = i5 + 1 | 0)); ) ; - F3 = l4[r10 + 556 >> 2], i5 = l4[r10 + 560 >> 2]; + ez: if (c4) { + if (i4 = l3[r10 + 560 >> 2], F3 = l3[r10 + 556 >> 2], (786432 & l3[r10 + 24 >> 2]) == 524288) { + for (f4 = rd3 >>> 0 <= 1 ? 1 : rd3, c4 = i4 - F3 >> 2, i4 = 0; L3 = 0, L3 = i4 >>> 0 < c4 >>> 0 ? l3[(i4 << 2) + F3 >> 2] : L3, (196608 & l3[L3 + 24 >> 2]) != 131072 && (Y3 = (L3 = L3 + 228 | 0) + (l3[q3 >> 2] << 2) | 0, j3 = l3[$3 >> 2] << 2, p2[Y3 >> 2] = w3(p2[j3 + _3 >> 2] - p2[Y3 >> 2]) - p2[(L3 + j3 | 0) + 288 >> 2]), (0 | f4) != (0 | (i4 = i4 + 1 | 0)); ) ; + F3 = l3[r10 + 556 >> 2], i4 = l3[r10 + 560 >> 2]; } - if ((0 | i5) != (0 | F3)) for (j4 = ((U3 >>> 0 > 1 ? rG3 : n4) | 0) != 0; ; ) { - c5 = l4[F3 >> 2]; - ej: if ((4390912 & l4[c5 + 24 >> 2]) == 131072) { - a5 = C4, Q4 = J4, d4[l4[r10 + 568 >> 2] + 21 | 0] && (Q4 = p3[r10 + 520 >> 2], a5 = p3[r10 + 516 >> 2]), n4 = l4[r10 + 24 >> 2] >>> 2 & 3; + if ((0 | i4) != (0 | F3)) for (j3 = ((U3 >>> 0 > 1 ? rG3 : n3) | 0) != 0; ; ) { + c4 = l3[F3 >> 2]; + ej: if ((4390912 & l3[c4 + 24 >> 2]) == 131072) { + a4 = C3, Q3 = J3, d3[l3[r10 + 568 >> 2] + 21 | 0] && (Q3 = p2[r10 + 520 >> 2], a4 = p2[r10 + 516 >> 2]), n3 = l3[r10 + 24 >> 2] >>> 2 & 3; eD: { ex: { if ((0 | rf4) == 2) { - f6 = 0, L4 = 3; - eJ: switch (n4 - 2 | 0) { + f4 = 0, L3 = 3; + eJ: switch (n3 - 2 | 0) { case 0: break eD; case 1: @@ -3841,38 +3842,38 @@ var init_asm = __esm({ default: break ex; } - L4 = 2; + L3 = 2; break eD; } - if (f6 = 0, n4 >>> 0 <= 1) break ex; - L4 = n4; + if (f4 = 0, n3 >>> 0 <= 1) break ex; + L3 = n3; break eD; } - L4 = n4, f6 = rL3; + L3 = n3, f4 = rL3; } - o4 = w4(rP2(c5, 2, a5) + rS2(c5, 2, a5)), O5 = rP2(c5, 0, a5), S5 = rS2(c5, 0, a5), e4 = p3[c5 + 572 >> 2]; + o3 = w3(rP2(c4, 2, a4) + rS2(c4, 2, a4)), O4 = rP2(c4, 0, a4), S4 = rS2(c4, 0, a4), e3 = p2[c4 + 572 >> 2]; eK: { eq: { - e$: switch (0 | (n4 = l4[c5 + 576 >> 2])) { + e$: switch (0 | (n3 = l3[c4 + 576 >> 2])) { case 0: case 3: break eq; default: break e$; } - b5 = p3[c5 + 572 >> 2]; + b4 = p2[c4 + 572 >> 2]; e0: { - if (!((0 | n4) != 1 | b5 != b5)) { - if (X3 = e4, !(e4 < w4(0))) break e0; + if (!((0 | n3) != 1 | b4 != b4)) { + if (X3 = e3, !(e3 < w3(0))) break e0; break eq; } e2: { - if (!((0 | n4) != 2 | b5 != b5)) { - if (a5 != a5 | e4 < w4(0)) break eq; + if (!((0 | n3) != 2 | b4 != b4)) { + if (a4 != a4 | e3 < w3(0)) break eq; break e2; } - X3 = w4(NaN); - e1: switch (n4 - 1 | 0) { + X3 = w3(NaN); + e1: switch (n3 - 1 | 0) { case 1: break e2; case 0: @@ -3880,22 +3881,22 @@ var init_asm = __esm({ default: break e0; } - X3 = e4; + X3 = e3; break e0; } - X3 = w4(w4(a5 * e4) * w4(0.009999999776482582)); + X3 = w3(w3(a4 * e3) * w3(0.009999999776482582)); } - X3 = w4(o4 + X3); + X3 = w3(o3 + X3); break eK; } - if (X3 = w4(NaN), !r52(c5, 2) || !r6(c5, 2)) break eK; - if (n4 = (e4 = ro2(c5, 2, w4(w4(p3[r10 + 516 >> 2] - w4(rM2(r10, 2) + rU2(r10, 2))) - w4(rI2(c5, 2, a5) + rT2(c5, 2, a5))), a5)) != e4, b5 = w4(w4(rZ2(c5, 2, a5) + rM2(c5, 2)) + w4(rW2(c5, 2, a5) + rU2(c5, 2))), !(n4 | b5 != b5)) { - X3 = eu2(e4, b5); + if (X3 = w3(NaN), !r52(c4, 2) || !r6(c4, 2)) break eK; + if (n3 = (e3 = ro2(c4, 2, w3(w3(p2[r10 + 516 >> 2] - w3(rM2(r10, 2) + rU2(r10, 2))) - w3(rI2(c4, 2, a4) + rT2(c4, 2, a4))), a4)) != e3, b4 = w3(w3(rZ2(c4, 2, a4) + rM2(c4, 2)) + w3(rW2(c4, 2, a4) + rU2(c4, 2))), !(n3 | b4 != b4)) { + X3 = eu2(e3, b4); break eK; } - X3 = n4 ? b5 : e4; + X3 = n3 ? b4 : e3; } - S5 = w4(O5 + S5); + S4 = w3(O4 + S4); e4: { e3: { e8: { @@ -3903,29 +3904,29 @@ var init_asm = __esm({ e5: { e9: { e7: { - Y3 = X3 != X3, b5 = p3[c5 + 580 >> 2]; + Y3 = X3 != X3, b4 = p2[c4 + 580 >> 2]; ar: { ae: { - aa: switch (0 | (n4 = l4[c5 + 584 >> 2])) { + aa: switch (0 | (n3 = l3[c4 + 584 >> 2])) { case 0: case 3: break ae; default: break aa; } - e4 = p3[c5 + 580 >> 2]; + e3 = p2[c4 + 580 >> 2]; ai: { - if (!((0 | n4) != 1 | e4 != e4)) { - if (!((e4 = b5) < w4(0))) break ai; + if (!((0 | n3) != 1 | e3 != e3)) { + if (!((e3 = b4) < w3(0))) break ai; break ae; } an: { - if (!((0 | n4) != 2 | e4 != e4)) { - if (Q4 != Q4 | b5 < w4(0)) break ae; + if (!((0 | n3) != 2 | e3 != e3)) { + if (Q3 != Q3 | b4 < w3(0)) break ae; break an; } - e4 = w4(NaN); - af: switch (n4 - 1 | 0) { + e3 = w3(NaN); + af: switch (n3 - 1 | 0) { case 1: break an; case 0: @@ -3933,228 +3934,228 @@ var init_asm = __esm({ default: break ai; } - e4 = b5; + e3 = b4; break ai; } - e4 = w4(w4(Q4 * b5) * w4(0.009999999776482582)); + e3 = w3(w3(Q3 * b4) * w3(0.009999999776482582)); } - e4 = w4(S5 + e4); + e3 = w3(S4 + e3); break ar; } - if (!(r52(c5, 0) && r6(c5, 0))) { - if (e4 = w4(NaN), X3 == X3) break e7; + if (!(r52(c4, 0) && r6(c4, 0))) { + if (e3 = w3(NaN), X3 == X3) break e7; break e8; } - if (n4 = (e4 = ro2(c5, 0, w4(w4(p3[r10 + 520 >> 2] - w4(rM2(r10, 0) + rU2(r10, 0))) - w4(rI2(c5, 0, Q4) + rT2(c5, 0, Q4))), Q4)) != e4, b5 = w4(w4(rZ2(c5, 0, a5) + rM2(c5, 0)) + w4(rW2(c5, 0, a5) + rU2(c5, 0))), !(n4 | b5 != b5)) { - e4 = eu2(e4, b5); + if (n3 = (e3 = ro2(c4, 0, w3(w3(p2[r10 + 520 >> 2] - w3(rM2(r10, 0) + rU2(r10, 0))) - w3(rI2(c4, 0, Q3) + rT2(c4, 0, Q3))), Q3)) != e3, b4 = w3(w3(rZ2(c4, 0, a4) + rM2(c4, 0)) + w3(rW2(c4, 0, a4) + rU2(c4, 0))), !(n3 | b4 != b4)) { + e3 = eu2(e3, b4); break ar; } - e4 = n4 ? b5 : e4; + e3 = n3 ? b4 : e3; } - if ((0 | Y3) == (e4 != e4 | 0) || (O5 = p3[c5 + 224 >> 2]) != O5) break e5; + if ((0 | Y3) == (e3 != e3 | 0) || (O4 = p2[c4 + 224 >> 2]) != O4) break e5; if (X3 != X3) { - X3 = w4(w4(w4(e4 - S5) * O5) + o4); + X3 = w3(w3(w3(e3 - S4) * O4) + o3); break e5; } - if (e4 == e4) break e5; + if (e3 == e3) break e5; break e9; } - if ((O5 = p3[c5 + 224 >> 2]) != O5) break e6; + if ((O4 = p2[c4 + 224 >> 2]) != O4) break e6; } - e4 = w4(S5 + w4(w4(X3 - o4) / O5)); + e3 = w3(S4 + w3(w3(X3 - o3) / O4)); } if (X3 != X3) break e8; - if (e4 == e4) break e4; + if (e3 == e3) break e4; } - n4 = 0; + n3 = 0; break e3; } - n4 = 1; + n3 = 1; } - Y3 = a5 > w4(0), b5 = (x5 = n4 & j4 & L4 >>> 0 < 2) && Y3 ? a5 : X3, n4 ^= 1, rt3(c5, b5, e4, rf4, x5 && Y3 ? 2 : n4, e4 == e4, b5, e4, 0, 6, A4, h5, v5, m5), X3 = w4(p3[c5 + 516 >> 2] + eW(c5, 2, a5)), e4 = w4(p3[c5 + 520 >> 2] + eW(c5, 0, a5)); + Y3 = a4 > w3(0), b4 = (x4 = n3 & j3 & L3 >>> 0 < 2) && Y3 ? a4 : X3, n3 ^= 1, rt3(c4, b4, e3, rf4, x4 && Y3 ? 2 : n3, e3 == e3, b4, e3, 0, 6, A3, h5, v4, m4), X3 = w3(p2[c4 + 516 >> 2] + eW(c4, 2, a4)), e3 = w3(p2[c4 + 520 >> 2] + eW(c4, 0, a4)); } - rt3(c5, X3, e4, rf4, 1, 1, X3, e4, 1, 1, A4, h5, v5, m5), o4 = (n4 = L4 >>> 0 < 2) ? a5 : Q4, b5 = d4[(Y3 = l4[r10 + 568 >> 2]) + 22 | 0] ? o4 : a5; + rt3(c4, X3, e3, rf4, 1, 1, X3, e3, 1, 1, A3, h5, v4, m4), o3 = (n3 = L3 >>> 0 < 2) ? a4 : Q3, b4 = d3[(Y3 = l3[r10 + 568 >> 2]) + 22 | 0] ? o3 : a4; ab: { ao: { - if (!(!r6(c5, L4) || r52(c5, L4))) { - x5 = l4[(L4 << 2) + 4252 >> 2] << 2, e4 = w4(w4(w4(w4(p3[x5 + _4 >> 2] - p3[(c5 + x5 | 0) + 516 >> 2]) - rU2(r10, L4)) - rS2(c5, L4, b5)) - rT2(c5, L4, n4 ? Q4 : a5)); + if (!(!r6(c4, L3) || r52(c4, L3))) { + x4 = l3[(L3 << 2) + 4252 >> 2] << 2, e3 = w3(w3(w3(w3(p2[x4 + _3 >> 2] - p2[(c4 + x4 | 0) + 516 >> 2]) - rU2(r10, L3)) - rS2(c4, L3, b4)) - rT2(c4, L3, n3 ? Q3 : a4)); break ao; } - if (!(r52(c5, L4) | (112 & l4[r10 + 24 >> 2]) != 16)) { - n4 = l4[(L4 << 2) + 4252 >> 2] << 2, e4 = w4(w4(p3[n4 + _4 >> 2] - p3[(n4 + c5 | 0) + 516 >> 2]) * w4(0.5)); + if (!(r52(c4, L3) | (112 & l3[r10 + 24 >> 2]) != 16)) { + n3 = l3[(L3 << 2) + 4252 >> 2] << 2, e3 = w3(w3(p2[n3 + _3 >> 2] - p2[(n3 + c4 | 0) + 516 >> 2]) * w3(0.5)); break ao; } - if (!(r52(c5, L4) | (112 & l4[r10 + 24 >> 2]) != 32)) { - n4 = l4[(L4 << 2) + 4252 >> 2] << 2, e4 = w4(p3[n4 + _4 >> 2] - p3[(n4 + c5 | 0) + 516 >> 2]); + if (!(r52(c4, L3) | (112 & l3[r10 + 24 >> 2]) != 32)) { + n3 = l3[(L3 << 2) + 4252 >> 2] << 2, e3 = w3(p2[n3 + _3 >> 2] - p2[(n3 + c4 | 0) + 516 >> 2]); break ao; } - if (!d4[Y3 + 21 | 0] || !r52(c5, L4)) break ab; - e4 = p3[_4 + (l4[(L4 << 2) + 4252 >> 2] << 2) >> 2], e4 = w4(w4(rI2(c5, L4, e4) + rM2(r10, L4)) + rP2(c5, L4, e4)); + if (!d3[Y3 + 21 | 0] || !r52(c4, L3)) break ab; + e3 = p2[_3 + (l3[(L3 << 2) + 4252 >> 2] << 2) >> 2], e3 = w3(w3(rI2(c4, L3, e3) + rM2(r10, L3)) + rP2(c4, L3, e3)); } - p3[(c5 + (l4[(L4 << 2) + 4220 >> 2] << 2) | 0) + 228 >> 2] = e4; + p2[(c4 + (l3[(L3 << 2) + 4220 >> 2] << 2) | 0) + 228 >> 2] = e3; } ac: { - if (!(!r6(c5, f6) || r52(c5, f6))) { - n4 = l4[(f6 << 2) + 4252 >> 2] << 2, e4 = w4(w4(w4(w4(p3[n4 + _4 >> 2] - p3[(n4 + c5 | 0) + 516 >> 2]) - rU2(r10, f6)) - rS2(c5, f6, b5)) - rT2(c5, f6, o4)); + if (!(!r6(c4, f4) || r52(c4, f4))) { + n3 = l3[(f4 << 2) + 4252 >> 2] << 2, e3 = w3(w3(w3(w3(p2[n3 + _3 >> 2] - p2[(n3 + c4 | 0) + 516 >> 2]) - rU2(r10, f4)) - rS2(c4, f4, b4)) - rT2(c4, f4, o3)); break ac; } - as: if (!r52(c5, f6)) { - if ((n4 = l4[c5 + 24 >> 2] >>> 13 & 7) || (n4 = l4[r10 + 24 >> 2] >>> 10 & 7), (0 | n4) != 2) break as; - n4 = l4[(f6 << 2) + 4252 >> 2] << 2, e4 = w4(w4(p3[n4 + _4 >> 2] - p3[(n4 + c5 | 0) + 516 >> 2]) * w4(0.5)); + as: if (!r52(c4, f4)) { + if ((n3 = l3[c4 + 24 >> 2] >>> 13 & 7) || (n3 = l3[r10 + 24 >> 2] >>> 10 & 7), (0 | n3) != 2) break as; + n3 = l3[(f4 << 2) + 4252 >> 2] << 2, e3 = w3(w3(p2[n3 + _3 >> 2] - p2[(n3 + c4 | 0) + 516 >> 2]) * w3(0.5)); break ac; } - aA: if (!r52(c5, f6)) { - L4 = l4[c5 + 24 >> 2] >>> 13 & 7, n4 = l4[r10 + 24 >> 2], L4 = L4 || n4 >>> 10 & 7; + aA: if (!r52(c4, f4)) { + L3 = l3[c4 + 24 >> 2] >>> 13 & 7, n3 = l3[r10 + 24 >> 2], L3 = L3 || n3 >>> 10 & 7; al: { - if (!((0 | L4) != 5 | 8 & n4)) { - if ((786432 & n4) == 524288) break al; + if (!((0 | L3) != 5 | 8 & n3)) { + if ((786432 & n3) == 524288) break al; break aA; } - if (((786432 & n4) == 524288 | 0) == ((0 | L4) == 3 | 0)) break aA; + if (((786432 & n3) == 524288 | 0) == ((0 | L3) == 3 | 0)) break aA; } - n4 = l4[(f6 << 2) + 4252 >> 2] << 2, e4 = w4(p3[n4 + _4 >> 2] - p3[(n4 + c5 | 0) + 516 >> 2]); + n3 = l3[(f4 << 2) + 4252 >> 2] << 2, e3 = w3(p2[n3 + _3 >> 2] - p2[(n3 + c4 | 0) + 516 >> 2]); break ac; } - if (!d4[Y3 + 21 | 0] || !r52(c5, f6)) break ej; - e4 = p3[_4 + (l4[(f6 << 2) + 4252 >> 2] << 2) >> 2], e4 = w4(w4(rI2(c5, f6, e4) + rM2(r10, f6)) + rP2(c5, f6, e4)); + if (!d3[Y3 + 21 | 0] || !r52(c4, f4)) break ej; + e3 = p2[_3 + (l3[(f4 << 2) + 4252 >> 2] << 2) >> 2], e3 = w3(w3(rI2(c4, f4, e3) + rM2(r10, f4)) + rP2(c4, f4, e3)); } - p3[(c5 + (l4[(f6 << 2) + 4220 >> 2] << 2) | 0) + 228 >> 2] = e4; + p2[(c4 + (l3[(f4 << 2) + 4220 >> 2] << 2) | 0) + 228 >> 2] = e3; } - if ((0 | (F3 = F3 + 4 | 0)) == (0 | i5)) break; + if ((0 | (F3 = F3 + 4 | 0)) == (0 | i4)) break; } - if (!((N4 | U3) & 1)) break ez; - for (f6 = 1 & N4, c5 = 1 & U3, A4 = rd3 >>> 0 <= 1 ? 1 : rd3, h5 = (N4 << 2) + 4236 | 0, v5 = (U3 << 2) + 4236 | 0, m5 = l4[r10 + 556 >> 2], N4 = l4[r10 + 560 >> 2] - m5 >> 2, i5 = 0; ; ) { - if ((0 | i5) == (0 | N4)) break re; - r10 = l4[m5 + (i5 << 2) >> 2]; - ad: if (!(64 & d4[r10 + 26 | 0])) { - if (c5 && (n4 = r10 + 228 | 0, L4 = l4[r_3 >> 2] << 2, p3[n4 + (l4[v5 >> 2] << 2) >> 2] = w4(p3[L4 + _4 >> 2] - p3[(n4 + L4 | 0) + 288 >> 2]) - p3[n4 + (l4[rA3 >> 2] << 2) >> 2]), !f6) break ad; - r10 = r10 + 228 | 0, n4 = l4[$4 >> 2] << 2, p3[r10 + (l4[h5 >> 2] << 2) >> 2] = w4(p3[n4 + _4 >> 2] - p3[(r10 + n4 | 0) + 288 >> 2]) - p3[r10 + (l4[q4 >> 2] << 2) >> 2]; + if (!((N3 | U3) & 1)) break ez; + for (f4 = 1 & N3, c4 = 1 & U3, A3 = rd3 >>> 0 <= 1 ? 1 : rd3, h5 = (N3 << 2) + 4236 | 0, v4 = (U3 << 2) + 4236 | 0, m4 = l3[r10 + 556 >> 2], N3 = l3[r10 + 560 >> 2] - m4 >> 2, i4 = 0; ; ) { + if ((0 | i4) == (0 | N3)) break re; + r10 = l3[m4 + (i4 << 2) >> 2]; + ad: if (!(64 & d3[r10 + 26 | 0])) { + if (c4 && (n3 = r10 + 228 | 0, L3 = l3[r_3 >> 2] << 2, p2[n3 + (l3[v4 >> 2] << 2) >> 2] = w3(p2[L3 + _3 >> 2] - p2[(n3 + L3 | 0) + 288 >> 2]) - p2[n3 + (l3[rA3 >> 2] << 2) >> 2]), !f4) break ad; + r10 = r10 + 228 | 0, n3 = l3[$3 >> 2] << 2, p2[r10 + (l3[h5 >> 2] << 2) >> 2] = w3(p2[n3 + _3 >> 2] - p2[(r10 + n3 | 0) + 288 >> 2]) - p2[r10 + (l3[q3 >> 2] << 2) >> 2]; } - if ((0 | A4) == (0 | (i5 = i5 + 1 | 0))) break; + if ((0 | A3) == (0 | (i4 = i4 + 1 | 0))) break; } } if (!ri3) break r; rE2(ri3); break r; } - T3(), k4(); + T2(), k3(); } - re3 = I4 + 384 | 0; + re3 = I3 + 384 | 0; } function rn2() { - var r10 = 0, e4 = 0; - B3(6952, 6953, 6954, 0, 4284, 17, 4287, 0, 4287, 0, 2528, 4289, 18), l4[(r10 = eo(8)) >> 2] = 8, l4[r10 + 4 >> 2] = 1, g4(6952, 2873, 6, 4304, 4328, 19, 0 | r10, 1), B3(6956, 6957, 6958, 6952, 4284, 20, 4284, 21, 4284, 22, 2e3, 4289, 23), l4[(r10 = eo(4)) >> 2] = 24, g4(6956, 2358, 2, 4336, 4344, 25, 0 | r10, 0), W2(6952, 1397, 2, 4348, 4356, 26, 27), W2(6952, 2978, 3, 4436, 4448, 28, 29), B3(6976, 6977, 6978, 0, 4284, 30, 4287, 0, 4287, 0, 2544, 4289, 31), l4[(r10 = eo(8)) >> 2] = 8, l4[r10 + 4 >> 2] = 1, g4(6976, 3244, 2, 4456, 4344, 32, 0 | r10, 1), B3(6979, 6980, 6981, 6976, 4284, 33, 4284, 34, 4284, 35, 2023, 4289, 36), l4[(r10 = eo(4)) >> 2] = 37, g4(6979, 2358, 2, 4464, 4344, 38, 0 | r10, 0), W2(6976, 1397, 2, 4472, 4356, 39, 40), W2(6976, 2978, 3, 4436, 4448, 28, 41), B3(6982, 6983, 6984, 0, 4284, 42, 4287, 0, 4287, 0, 2812, 4289, 43), P4(6982, 1, 4520, 4284, 44, 45), W2(6982, 2866, 1, 4520, 4284, 44, 45), W2(6982, 1128, 2, 4524, 4344, 46, 47), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 48, g4(6982, 3185, 4, 4544, 4560, 49, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 50, g4(6982, 1980, 3, 4568, 4580, 51, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 52, g4(6982, 1951, 3, 4588, 4600, 53, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 54, g4(6982, 1799, 3, 4588, 4600, 53, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 55, g4(6982, 3215, 3, 4608, 4448, 56, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 57, g4(6982, 1925, 2, 4620, 4356, 58, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 59, g4(6982, 1784, 2, 4620, 4356, 58, 0 | r10, 0), _3(6985, 1270, 4628, 60, 4289, 61), eh(1731, 0), eh(1611, 8), eh(2144, 16), eh(2454, 24), eh(2560, 32), eh(1617, 40), L3(6985), _3(6955, 2849, 4628, 62, 4289, 63), ed(2560, 0), ed(1617, 8), L3(6955), _3(6986, 2860, 4628, 64, 4289, 65), l4[(r10 = eo(4)) >> 2] = 8, l4[(e4 = eo(4)) >> 2] = 8, X2(6986, 2854, 7018, 4630, 66, 0 | r10, 7018, 4634, 67, 0 | e4), l4[(r10 = eo(4)) >> 2] = 0, l4[(e4 = eo(4)) >> 2] = 0, X2(6986, 1606, 7011, 4356, 68, 0 | r10, 7011, 4600, 69, 0 | e4), L3(6986), B3(6987, 6988, 6989, 0, 4284, 70, 4287, 0, 4287, 0, 2973, 4289, 71), P4(6987, 1, 4640, 4284, 72, 73), W2(6987, 1592, 1, 4640, 4284, 72, 73), W2(6987, 2802, 2, 4644, 4356, 74, 75), W2(6987, 1128, 2, 4652, 4344, 76, 77), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 78, g4(6987, 1752, 2, 4652, 4344, 79, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 80, g4(6987, 2956, 3, 4660, 4600, 81, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 82, g4(6987, 2881, 3, 4672, 4600, 83, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 84, g4(6987, 2334, 4, 4688, 4704, 85, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 86, g4(6987, 1484, 4, 4688, 4704, 85, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 87, g4(6987, 1355, 3, 4672, 4600, 83, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 88, g4(6987, 1817, 3, 4672, 4600, 83, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 89, g4(6987, 2823, 3, 4672, 4600, 83, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 90, g4(6987, 2378, 3, 4672, 4600, 83, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 91, g4(6987, 2163, 3, 4672, 4600, 83, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 92, g4(6987, 1319, 3, 4672, 4600, 83, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 93, g4(6987, 2412, 4, 4688, 4704, 85, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 94, g4(6987, 1503, 4, 4688, 4704, 85, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 95, g4(6987, 2235, 3, 4672, 4600, 83, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 96, g4(6987, 1219, 3, 4672, 4600, 83, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 97, g4(6987, 1136, 3, 4672, 4600, 83, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 98, g4(6987, 1158, 3, 4712, 4634, 99, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 100, g4(6987, 1845, 3, 4712, 4634, 99, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 101, g4(6987, 1464, 3, 4712, 4634, 99, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 102, g4(6987, 2218, 2, 4652, 4344, 79, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 103, g4(6987, 1195, 3, 4712, 4634, 99, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 104, g4(6987, 2500, 3, 4712, 4634, 99, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 105, g4(6987, 2590, 3, 4712, 4634, 99, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 106, g4(6987, 1539, 3, 4712, 4634, 99, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 107, g4(6987, 2249, 2, 4652, 4344, 79, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 108, g4(6987, 1650, 3, 4712, 4634, 99, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 109, g4(6987, 1427, 3, 4712, 4634, 99, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 110, g4(6987, 2204, 2, 4652, 4344, 79, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 111, g4(6987, 2608, 3, 4712, 4634, 99, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 112, g4(6987, 1555, 3, 4712, 4634, 99, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 113, g4(6987, 1670, 3, 4712, 4634, 99, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 114, g4(6987, 1444, 3, 4712, 4634, 99, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 115, g4(6987, 2566, 3, 4712, 4634, 99, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 116, g4(6987, 1520, 3, 4712, 4634, 99, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 117, g4(6987, 1624, 3, 4712, 4634, 99, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 118, g4(6987, 1407, 3, 4712, 4634, 99, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 119, g4(6987, 2304, 3, 4712, 4634, 99, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 120, g4(6987, 2092, 4, 4688, 4704, 85, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 121, g4(6987, 2718, 4, 4688, 4704, 85, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 122, g4(6987, 1574, 4, 4688, 4704, 85, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 123, g4(6987, 2187, 4, 4688, 4704, 85, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 124, g4(6987, 2897, 2, 4724, 4356, 125, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 126, g4(6987, 2346, 3, 4732, 4448, 127, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 128, g4(6987, 1371, 2, 4724, 4356, 125, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 129, g4(6987, 1831, 2, 4724, 4356, 125, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 130, g4(6987, 2836, 2, 4724, 4356, 125, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 131, g4(6987, 2395, 2, 4724, 4356, 125, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 132, g4(6987, 2175, 2, 4724, 4356, 125, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 133, g4(6987, 1337, 2, 4724, 4356, 125, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 134, g4(6987, 2422, 3, 4732, 4448, 127, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 135, g4(6987, 1858, 2, 4744, 4356, 136, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 137, g4(6987, 1207, 2, 4752, 4630, 138, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 139, g4(6987, 2514, 2, 4752, 4630, 138, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 140, g4(6987, 2599, 2, 4744, 4356, 136, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 141, g4(6987, 1660, 2, 4744, 4356, 136, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 142, g4(6987, 2620, 2, 4744, 4356, 136, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 143, g4(6987, 1683, 2, 4744, 4356, 136, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 144, g4(6987, 2578, 2, 4744, 4356, 136, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 145, g4(6987, 1637, 2, 4744, 4356, 136, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 146, g4(6987, 2319, 2, 4752, 4630, 138, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 147, g4(6987, 2102, 3, 4760, 4772, 148, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 149, g4(6987, 1231, 2, 4724, 4356, 125, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 150, g4(6987, 1147, 2, 4724, 4356, 125, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 151, g4(6987, 2729, 3, 4732, 4448, 127, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 152, g4(6987, 2194, 3, 4780, 4792, 153, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 154, g4(6987, 2985, 4, 4800, 4560, 155, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 156, g4(6987, 3006, 3, 4816, 4600, 157, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 158, g4(6987, 1292, 2, 4828, 4356, 159, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 160, g4(6987, 1387, 2, 4836, 4356, 161, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 162, g4(6987, 2997, 3, 4844, 4448, 163, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 164, g4(6987, 2913, 2, 4856, 4356, 165, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 166, g4(6987, 2933, 3, 4864, 4600, 167, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 168, g4(6987, 3308, 3, 4876, 4600, 169, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 170, g4(6987, 3306, 2, 4652, 4344, 79, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 171, g4(6987, 3325, 3, 4888, 4600, 172, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 173, g4(6987, 3323, 2, 4652, 4344, 79, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 174, g4(6987, 1118, 2, 4652, 4344, 79, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 175, g4(6987, 1110, 2, 4900, 4356, 176, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 177, g4(6987, 1243, 5, 4912, 4932, 178, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 179, g4(6987, 1736, 2, 4752, 4630, 138, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 180, g4(6987, 1714, 2, 4752, 4630, 138, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 181, g4(6987, 2148, 2, 4752, 4630, 138, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 182, g4(6987, 2461, 2, 4752, 4630, 138, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 183, g4(6987, 2632, 2, 4752, 4630, 138, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 184, g4(6987, 1696, 2, 4752, 4630, 138, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 185, g4(6987, 1259, 2, 4940, 4356, 186, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 187, g4(6987, 2432, 3, 4760, 4772, 148, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 188, g4(6987, 2112, 3, 4760, 4772, 148, 0 | r10, 0), l4[(r10 = eo(8)) + 4 >> 2] = 0, l4[r10 >> 2] = 189, g4(6987, 2740, 3, 4760, 4772, 148, 0 | r10, 0); + var r10 = 0, e3 = 0; + B2(6952, 6953, 6954, 0, 4284, 17, 4287, 0, 4287, 0, 2528, 4289, 18), l3[(r10 = eo(8)) >> 2] = 8, l3[r10 + 4 >> 2] = 1, g3(6952, 2873, 6, 4304, 4328, 19, 0 | r10, 1), B2(6956, 6957, 6958, 6952, 4284, 20, 4284, 21, 4284, 22, 2e3, 4289, 23), l3[(r10 = eo(4)) >> 2] = 24, g3(6956, 2358, 2, 4336, 4344, 25, 0 | r10, 0), W2(6952, 1397, 2, 4348, 4356, 26, 27), W2(6952, 2978, 3, 4436, 4448, 28, 29), B2(6976, 6977, 6978, 0, 4284, 30, 4287, 0, 4287, 0, 2544, 4289, 31), l3[(r10 = eo(8)) >> 2] = 8, l3[r10 + 4 >> 2] = 1, g3(6976, 3244, 2, 4456, 4344, 32, 0 | r10, 1), B2(6979, 6980, 6981, 6976, 4284, 33, 4284, 34, 4284, 35, 2023, 4289, 36), l3[(r10 = eo(4)) >> 2] = 37, g3(6979, 2358, 2, 4464, 4344, 38, 0 | r10, 0), W2(6976, 1397, 2, 4472, 4356, 39, 40), W2(6976, 2978, 3, 4436, 4448, 28, 41), B2(6982, 6983, 6984, 0, 4284, 42, 4287, 0, 4287, 0, 2812, 4289, 43), P3(6982, 1, 4520, 4284, 44, 45), W2(6982, 2866, 1, 4520, 4284, 44, 45), W2(6982, 1128, 2, 4524, 4344, 46, 47), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 48, g3(6982, 3185, 4, 4544, 4560, 49, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 50, g3(6982, 1980, 3, 4568, 4580, 51, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 52, g3(6982, 1951, 3, 4588, 4600, 53, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 54, g3(6982, 1799, 3, 4588, 4600, 53, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 55, g3(6982, 3215, 3, 4608, 4448, 56, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 57, g3(6982, 1925, 2, 4620, 4356, 58, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 59, g3(6982, 1784, 2, 4620, 4356, 58, 0 | r10, 0), _2(6985, 1270, 4628, 60, 4289, 61), eh(1731, 0), eh(1611, 8), eh(2144, 16), eh(2454, 24), eh(2560, 32), eh(1617, 40), L2(6985), _2(6955, 2849, 4628, 62, 4289, 63), ed(2560, 0), ed(1617, 8), L2(6955), _2(6986, 2860, 4628, 64, 4289, 65), l3[(r10 = eo(4)) >> 2] = 8, l3[(e3 = eo(4)) >> 2] = 8, X2(6986, 2854, 7018, 4630, 66, 0 | r10, 7018, 4634, 67, 0 | e3), l3[(r10 = eo(4)) >> 2] = 0, l3[(e3 = eo(4)) >> 2] = 0, X2(6986, 1606, 7011, 4356, 68, 0 | r10, 7011, 4600, 69, 0 | e3), L2(6986), B2(6987, 6988, 6989, 0, 4284, 70, 4287, 0, 4287, 0, 2973, 4289, 71), P3(6987, 1, 4640, 4284, 72, 73), W2(6987, 1592, 1, 4640, 4284, 72, 73), W2(6987, 2802, 2, 4644, 4356, 74, 75), W2(6987, 1128, 2, 4652, 4344, 76, 77), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 78, g3(6987, 1752, 2, 4652, 4344, 79, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 80, g3(6987, 2956, 3, 4660, 4600, 81, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 82, g3(6987, 2881, 3, 4672, 4600, 83, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 84, g3(6987, 2334, 4, 4688, 4704, 85, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 86, g3(6987, 1484, 4, 4688, 4704, 85, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 87, g3(6987, 1355, 3, 4672, 4600, 83, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 88, g3(6987, 1817, 3, 4672, 4600, 83, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 89, g3(6987, 2823, 3, 4672, 4600, 83, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 90, g3(6987, 2378, 3, 4672, 4600, 83, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 91, g3(6987, 2163, 3, 4672, 4600, 83, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 92, g3(6987, 1319, 3, 4672, 4600, 83, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 93, g3(6987, 2412, 4, 4688, 4704, 85, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 94, g3(6987, 1503, 4, 4688, 4704, 85, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 95, g3(6987, 2235, 3, 4672, 4600, 83, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 96, g3(6987, 1219, 3, 4672, 4600, 83, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 97, g3(6987, 1136, 3, 4672, 4600, 83, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 98, g3(6987, 1158, 3, 4712, 4634, 99, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 100, g3(6987, 1845, 3, 4712, 4634, 99, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 101, g3(6987, 1464, 3, 4712, 4634, 99, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 102, g3(6987, 2218, 2, 4652, 4344, 79, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 103, g3(6987, 1195, 3, 4712, 4634, 99, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 104, g3(6987, 2500, 3, 4712, 4634, 99, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 105, g3(6987, 2590, 3, 4712, 4634, 99, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 106, g3(6987, 1539, 3, 4712, 4634, 99, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 107, g3(6987, 2249, 2, 4652, 4344, 79, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 108, g3(6987, 1650, 3, 4712, 4634, 99, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 109, g3(6987, 1427, 3, 4712, 4634, 99, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 110, g3(6987, 2204, 2, 4652, 4344, 79, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 111, g3(6987, 2608, 3, 4712, 4634, 99, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 112, g3(6987, 1555, 3, 4712, 4634, 99, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 113, g3(6987, 1670, 3, 4712, 4634, 99, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 114, g3(6987, 1444, 3, 4712, 4634, 99, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 115, g3(6987, 2566, 3, 4712, 4634, 99, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 116, g3(6987, 1520, 3, 4712, 4634, 99, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 117, g3(6987, 1624, 3, 4712, 4634, 99, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 118, g3(6987, 1407, 3, 4712, 4634, 99, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 119, g3(6987, 2304, 3, 4712, 4634, 99, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 120, g3(6987, 2092, 4, 4688, 4704, 85, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 121, g3(6987, 2718, 4, 4688, 4704, 85, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 122, g3(6987, 1574, 4, 4688, 4704, 85, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 123, g3(6987, 2187, 4, 4688, 4704, 85, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 124, g3(6987, 2897, 2, 4724, 4356, 125, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 126, g3(6987, 2346, 3, 4732, 4448, 127, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 128, g3(6987, 1371, 2, 4724, 4356, 125, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 129, g3(6987, 1831, 2, 4724, 4356, 125, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 130, g3(6987, 2836, 2, 4724, 4356, 125, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 131, g3(6987, 2395, 2, 4724, 4356, 125, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 132, g3(6987, 2175, 2, 4724, 4356, 125, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 133, g3(6987, 1337, 2, 4724, 4356, 125, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 134, g3(6987, 2422, 3, 4732, 4448, 127, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 135, g3(6987, 1858, 2, 4744, 4356, 136, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 137, g3(6987, 1207, 2, 4752, 4630, 138, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 139, g3(6987, 2514, 2, 4752, 4630, 138, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 140, g3(6987, 2599, 2, 4744, 4356, 136, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 141, g3(6987, 1660, 2, 4744, 4356, 136, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 142, g3(6987, 2620, 2, 4744, 4356, 136, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 143, g3(6987, 1683, 2, 4744, 4356, 136, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 144, g3(6987, 2578, 2, 4744, 4356, 136, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 145, g3(6987, 1637, 2, 4744, 4356, 136, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 146, g3(6987, 2319, 2, 4752, 4630, 138, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 147, g3(6987, 2102, 3, 4760, 4772, 148, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 149, g3(6987, 1231, 2, 4724, 4356, 125, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 150, g3(6987, 1147, 2, 4724, 4356, 125, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 151, g3(6987, 2729, 3, 4732, 4448, 127, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 152, g3(6987, 2194, 3, 4780, 4792, 153, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 154, g3(6987, 2985, 4, 4800, 4560, 155, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 156, g3(6987, 3006, 3, 4816, 4600, 157, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 158, g3(6987, 1292, 2, 4828, 4356, 159, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 160, g3(6987, 1387, 2, 4836, 4356, 161, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 162, g3(6987, 2997, 3, 4844, 4448, 163, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 164, g3(6987, 2913, 2, 4856, 4356, 165, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 166, g3(6987, 2933, 3, 4864, 4600, 167, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 168, g3(6987, 3308, 3, 4876, 4600, 169, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 170, g3(6987, 3306, 2, 4652, 4344, 79, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 171, g3(6987, 3325, 3, 4888, 4600, 172, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 173, g3(6987, 3323, 2, 4652, 4344, 79, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 174, g3(6987, 1118, 2, 4652, 4344, 79, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 175, g3(6987, 1110, 2, 4900, 4356, 176, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 177, g3(6987, 1243, 5, 4912, 4932, 178, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 179, g3(6987, 1736, 2, 4752, 4630, 138, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 180, g3(6987, 1714, 2, 4752, 4630, 138, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 181, g3(6987, 2148, 2, 4752, 4630, 138, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 182, g3(6987, 2461, 2, 4752, 4630, 138, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 183, g3(6987, 2632, 2, 4752, 4630, 138, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 184, g3(6987, 1696, 2, 4752, 4630, 138, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 185, g3(6987, 1259, 2, 4940, 4356, 186, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 187, g3(6987, 2432, 3, 4760, 4772, 148, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 188, g3(6987, 2112, 3, 4760, 4772, 148, 0 | r10, 0), l3[(r10 = eo(8)) + 4 >> 2] = 0, l3[r10 >> 2] = 189, g3(6987, 2740, 3, 4760, 4772, 148, 0 | r10, 0); } - function rf3(r10, e4, a5, i5, n4, f6, t4) { - var b5 = 0, o4 = 0, k5 = 0, c5 = 0, u6 = 0, h5 = 0, v5 = 0, p4 = 0, w5 = 0, y4 = 0, E5 = 0, G4 = 0, R4 = 0, g5 = 0, Z3 = 0, W3 = 0, V4 = 0, B4 = 0, T4 = 0, I4 = 0; - re3 = k5 = re3 - 80 | 0, l4[k5 + 76 >> 2] = e4, B4 = k5 + 55 | 0, R4 = k5 + 56 | 0; + function rf3(r10, e3, a4, i4, n3, f4, t3) { + var b4 = 0, o3 = 0, k4 = 0, c4 = 0, u4 = 0, h5 = 0, v4 = 0, p3 = 0, w4 = 0, y3 = 0, E4 = 0, G3 = 0, R4 = 0, g4 = 0, Z3 = 0, W3 = 0, V3 = 0, B3 = 0, T3 = 0, I3 = 0; + re3 = k4 = re3 - 80 | 0, l3[k4 + 76 >> 2] = e3, B3 = k4 + 55 | 0, R4 = k4 + 56 | 0; r: { e: { a: { i: { n: for (; ; ) { - if (c5 = e4, (2147483647 ^ w5) < (0 | b5)) break i; - w5 = b5 + w5 | 0; + if (c4 = e3, (2147483647 ^ w4) < (0 | b4)) break i; + w4 = b4 + w4 | 0; f: { t: { b: { - if (o4 = d4[0 | (b5 = c5)]) for (; ; ) { + if (o3 = d3[0 | (b4 = c4)]) for (; ; ) { o: { - e4 = 255 & o4; + e3 = 255 & o3; k: { - if (!e4) { - e4 = b5; + if (!e3) { + e3 = b4; break k; } - if ((0 | e4) != 37) break o; - for (o4 = b5; ; ) { - if (37 != d4[o4 + 1 | 0]) { - e4 = o4; + if ((0 | e3) != 37) break o; + for (o3 = b4; ; ) { + if (37 != d3[o3 + 1 | 0]) { + e3 = o3; break k; } - if (b5 = b5 + 1 | 0, u6 = d4[o4 + 2 | 0], o4 = e4 = o4 + 2 | 0, (0 | u6) != 37) break; + if (b4 = b4 + 1 | 0, u4 = d3[o3 + 2 | 0], o3 = e3 = o3 + 2 | 0, (0 | u4) != 37) break; } } - if ((0 | (b5 = b5 - c5 | 0)) > (0 | (V4 = 2147483647 ^ w5))) break i; - if (r10 && rF2(r10, c5, b5), b5) continue n; - l4[k5 + 76 >> 2] = e4, b5 = e4 + 1 | 0, E5 = -1, !eO(o4 = s3[e4 + 1 | 0]) | 36 != d4[e4 + 2 | 0] || (E5 = o4 - 48 | 0, g5 = 1, b5 = e4 + 3 | 0), l4[k5 + 76 >> 2] = b5, p4 = 0, e4 = (o4 = s3[0 | b5]) - 32 | 0; + if ((0 | (b4 = b4 - c4 | 0)) > (0 | (V3 = 2147483647 ^ w4))) break i; + if (r10 && rF2(r10, c4, b4), b4) continue n; + l3[k4 + 76 >> 2] = e3, b4 = e3 + 1 | 0, E4 = -1, !eO(o3 = s2[e3 + 1 | 0]) | 36 != d3[e3 + 2 | 0] || (E4 = o3 - 48 | 0, g4 = 1, b4 = e3 + 3 | 0), l3[k4 + 76 >> 2] = b4, p3 = 0, e3 = (o3 = s2[0 | b4]) - 32 | 0; c: { - if (e4 >>> 0 > 31) { - u6 = b5; + if (e3 >>> 0 > 31) { + u4 = b4; break c; } - if (u6 = b5, !(75913 & (e4 = 1 << e4))) break c; + if (u4 = b4, !(75913 & (e3 = 1 << e3))) break c; for (; ; ) { - if (u6 = b5 + 1 | 0, l4[k5 + 76 >> 2] = u6, p4 |= e4, (e4 = (o4 = s3[b5 + 1 | 0]) - 32 | 0) >>> 0 >= 32) break c; - if (b5 = u6, !(75913 & (e4 = 1 << e4))) break; + if (u4 = b4 + 1 | 0, l3[k4 + 76 >> 2] = u4, p3 |= e3, (e3 = (o3 = s2[b4 + 1 | 0]) - 32 | 0) >>> 0 >= 32) break c; + if (b4 = u4, !(75913 & (e3 = 1 << e3))) break; } } u: { - if ((0 | o4) == 42) { - e4 = s3[u6 + 1 | 0]; + if ((0 | o3) == 42) { + e3 = s2[u4 + 1 | 0]; s: { - if (!(!eO(e4) | 36 != d4[u6 + 2 | 0])) { - l4[((e4 << 2) + n4 | 0) - 192 >> 2] = 10, o4 = u6 + 3 | 0, g5 = 1, y4 = l4[((s3[u6 + 1 | 0] << 3) + i5 | 0) - 384 >> 2]; + if (!(!eO(e3) | 36 != d3[u4 + 2 | 0])) { + l3[((e3 << 2) + n3 | 0) - 192 >> 2] = 10, o3 = u4 + 3 | 0, g4 = 1, y3 = l3[((s2[u4 + 1 | 0] << 3) + i4 | 0) - 384 >> 2]; break s; } - if (g5) break b; - if (o4 = u6 + 1 | 0, !r10) { - l4[k5 + 76 >> 2] = o4, g5 = 0, y4 = 0; + if (g4) break b; + if (o3 = u4 + 1 | 0, !r10) { + l3[k4 + 76 >> 2] = o3, g4 = 0, y3 = 0; break u; } - e4 = l4[a5 >> 2], l4[a5 >> 2] = e4 + 4, g5 = 0, y4 = l4[e4 >> 2]; + e3 = l3[a4 >> 2], l3[a4 >> 2] = e3 + 4, g4 = 0, y3 = l3[e3 >> 2]; } - if (l4[k5 + 76 >> 2] = o4, (0 | y4) >= 0) break u; - y4 = 0 - y4 | 0, p4 |= 8192; + if (l3[k4 + 76 >> 2] = o3, (0 | y3) >= 0) break u; + y3 = 0 - y3 | 0, p3 |= 8192; break u; } - if ((0 | (y4 = ei(k5 + 76 | 0))) < 0) break i; - o4 = l4[k5 + 76 >> 2]; + if ((0 | (y3 = ei(k4 + 76 | 0))) < 0) break i; + o3 = l3[k4 + 76 >> 2]; } - b5 = 0, v5 = -1; + b4 = 0, v4 = -1; A: { - if (46 != d4[0 | o4]) { - e4 = o4, G4 = 0; + if (46 != d3[0 | o3]) { + e3 = o3, G3 = 0; break A; } - if (42 == d4[o4 + 1 | 0]) { - e4 = s3[o4 + 2 | 0]; + if (42 == d3[o3 + 1 | 0]) { + e3 = s2[o3 + 2 | 0]; l: { - if (!(!eO(e4) | 36 != d4[o4 + 3 | 0])) { - l4[((e4 << 2) + n4 | 0) - 192 >> 2] = 10, e4 = o4 + 4 | 0, v5 = l4[((s3[o4 + 2 | 0] << 3) + i5 | 0) - 384 >> 2]; + if (!(!eO(e3) | 36 != d3[o3 + 3 | 0])) { + l3[((e3 << 2) + n3 | 0) - 192 >> 2] = 10, e3 = o3 + 4 | 0, v4 = l3[((s2[o3 + 2 | 0] << 3) + i4 | 0) - 384 >> 2]; break l; } - if (g5) break b; - if (e4 = o4 + 2 | 0, v5 = 0, !r10) break l; - o4 = l4[a5 >> 2], l4[a5 >> 2] = o4 + 4, v5 = l4[o4 >> 2]; + if (g4) break b; + if (e3 = o3 + 2 | 0, v4 = 0, !r10) break l; + o3 = l3[a4 >> 2], l3[a4 >> 2] = o3 + 4, v4 = l3[o3 >> 2]; } - l4[k5 + 76 >> 2] = e4, G4 = (-1 ^ v5) >>> 31 | 0; + l3[k4 + 76 >> 2] = e3, G3 = (-1 ^ v4) >>> 31 | 0; break A; } - l4[k5 + 76 >> 2] = o4 + 1, v5 = ei(k5 + 76 | 0), e4 = l4[k5 + 76 >> 2], G4 = 1; + l3[k4 + 76 >> 2] = o3 + 1, v4 = ei(k4 + 76 | 0), e3 = l3[k4 + 76 >> 2], G3 = 1; } for (; ; ) { - if (h5 = b5, u6 = 28, Z3 = e4, (b5 = s3[0 | e4]) - 123 >>> 0 < 4294967238) break a; - if (e4 = Z3 + 1 | 0, !((b5 = d4[(b5 + N3(h5, 58) | 0) + 4895 | 0]) - 1 >>> 0 < 8)) break; + if (h5 = b4, u4 = 28, Z3 = e3, (b4 = s2[0 | e3]) - 123 >>> 0 < 4294967238) break a; + if (e3 = Z3 + 1 | 0, !((b4 = d3[(b4 + N2(h5, 58) | 0) + 4895 | 0]) - 1 >>> 0 < 8)) break; } - l4[k5 + 76 >> 2] = e4; + l3[k4 + 76 >> 2] = e3; d: { h: { - if ((0 | b5) != 27) { - if (!b5) break a; - if ((0 | E5) >= 0) { - l4[(E5 << 2) + n4 >> 2] = b5, o4 = l4[(b5 = (E5 << 3) + i5 | 0) + 4 >> 2], l4[k5 + 64 >> 2] = l4[b5 >> 2], l4[k5 + 68 >> 2] = o4; + if ((0 | b4) != 27) { + if (!b4) break a; + if ((0 | E4) >= 0) { + l3[(E4 << 2) + n3 >> 2] = b4, o3 = l3[(b4 = (E4 << 3) + i4 | 0) + 4 >> 2], l3[k4 + 64 >> 2] = l3[b4 >> 2], l3[k4 + 68 >> 2] = o3; break h; } if (!r10) break f; - rN2(k5 - -64 | 0, b5, a5, t4); + rN2(k4 - -64 | 0, b4, a4, t3); break d; } - if ((0 | E5) >= 0) break a; + if ((0 | E4) >= 0) break a; } - if (b5 = 0, !r10) continue n; + if (b4 = 0, !r10) continue n; } - o4 = -65537 & p4, p4 = 8192 & p4 ? o4 : p4, E5 = 0, W3 = 1166, u6 = R4; + o3 = -65537 & p3, p3 = 8192 & p3 ? o3 : p3, E4 = 0, W3 = 1166, u4 = R4; v: { p: { m: { @@ -4170,7 +4171,7 @@ var init_asm = __esm({ V: { B: { T: { - I: switch (b5 = s3[0 | Z3], (b5 = h5 && (15 & b5) == 3 ? -33 & b5 : b5) - 88 | 0) { + I: switch (b4 = s2[0 | Z3], (b4 = h5 && (15 & b4) == 3 ? -33 & b4 : b4) - 88 | 0) { case 11: break v; case 9: @@ -4217,7 +4218,7 @@ var init_asm = __esm({ default: break I; } - X: switch (b5 - 65 | 0) { + X: switch (b4 - 65 | 0) { case 0: case 4: case 5: @@ -4231,360 +4232,360 @@ var init_asm = __esm({ default: break X; } - if ((0 | b5) == 83) break y; + if ((0 | b4) == 83) break y; break t; } - o4 = l4[k5 + 64 >> 2], h5 = l4[k5 + 68 >> 2], b5 = 1166; + o3 = l3[k4 + 64 >> 2], h5 = l3[k4 + 68 >> 2], b4 = 1166; break R; } - b5 = 0; + b4 = 0; O: switch (255 & h5) { case 0: case 1: case 6: - l4[l4[k5 + 64 >> 2] >> 2] = w5; + l3[l3[k4 + 64 >> 2] >> 2] = w4; continue n; case 2: - c5 = l4[k5 + 64 >> 2], l4[c5 >> 2] = w5, l4[c5 + 4 >> 2] = w5 >> 31; + c4 = l3[k4 + 64 >> 2], l3[c4 >> 2] = w4, l3[c4 + 4 >> 2] = w4 >> 31; continue n; case 3: - A3[l4[k5 + 64 >> 2] >> 1] = w5; + A2[l3[k4 + 64 >> 2] >> 1] = w4; continue n; case 4: - s3[l4[k5 + 64 >> 2]] = w5; + s2[l3[k4 + 64 >> 2]] = w4; continue n; case 7: break O; default: continue n; } - c5 = l4[k5 + 64 >> 2], l4[c5 >> 2] = w5, l4[c5 + 4 >> 2] = w5 >> 31; + c4 = l3[k4 + 64 >> 2], l3[c4 >> 2] = w4, l3[c4 + 4 >> 2] = w4 >> 31; continue n; } - v5 = v5 >>> 0 <= 8 ? 8 : v5, p4 |= 8, b5 = 120; + v4 = v4 >>> 0 <= 8 ? 8 : v4, p3 |= 8, b4 = 120; } - if (c5 = R4, o4 = l4[k5 + 64 >> 2], h5 = l4[k5 + 68 >> 2], o4 | h5) for (T4 = 32 & b5; s3[0 | (c5 = c5 - 1 | 0)] = T4 | d4[(15 & o4) + 5424 | 0], I4 = !h5 & o4 >>> 0 > 15 | (0 | h5) != 0, Z3 = h5, h5 = h5 >>> 4 | 0, o4 = (15 & Z3) << 28 | o4 >>> 4, I4; ) ; - if (!(8 & p4) | !(l4[k5 + 64 >> 2] | l4[k5 + 68 >> 2])) break G; - W3 = (b5 >>> 4 | 0) + 1166 | 0, E5 = 2; + if (c4 = R4, o3 = l3[k4 + 64 >> 2], h5 = l3[k4 + 68 >> 2], o3 | h5) for (T3 = 32 & b4; s2[0 | (c4 = c4 - 1 | 0)] = T3 | d3[(15 & o3) + 5424 | 0], I3 = !h5 & o3 >>> 0 > 15 | (0 | h5) != 0, Z3 = h5, h5 = h5 >>> 4 | 0, o3 = (15 & Z3) << 28 | o3 >>> 4, I3; ) ; + if (!(8 & p3) | !(l3[k4 + 64 >> 2] | l3[k4 + 68 >> 2])) break G; + W3 = (b4 >>> 4 | 0) + 1166 | 0, E4 = 2; break G; } - if (b5 = R4, h5 = c5 = l4[k5 + 68 >> 2], o4 = l4[k5 + 64 >> 2], c5 | o4) for (; s3[0 | (b5 = b5 - 1 | 0)] = 7 & o4 | 48, Z3 = !h5 & o4 >>> 0 > 7 | (0 | h5) != 0, h5 = (c5 = h5) >>> 3 | 0, o4 = (7 & c5) << 29 | o4 >>> 3, Z3; ) ; - if (c5 = b5, !(8 & p4)) break G; - v5 = (0 | (b5 = R4 - c5 | 0)) < (0 | v5) ? v5 : b5 + 1 | 0; + if (b4 = R4, h5 = c4 = l3[k4 + 68 >> 2], o3 = l3[k4 + 64 >> 2], c4 | o3) for (; s2[0 | (b4 = b4 - 1 | 0)] = 7 & o3 | 48, Z3 = !h5 & o3 >>> 0 > 7 | (0 | h5) != 0, h5 = (c4 = h5) >>> 3 | 0, o3 = (7 & c4) << 29 | o3 >>> 3, Z3; ) ; + if (c4 = b4, !(8 & p3)) break G; + v4 = (0 | (b4 = R4 - c4 | 0)) < (0 | v4) ? v4 : b4 + 1 | 0; break G; } - if (o4 = l4[k5 + 64 >> 2], h5 = b5 = l4[k5 + 68 >> 2], (0 | b5) < 0) { - h5 = c5 = 0 - (h5 + ((0 | o4) != 0) | 0) | 0, o4 = 0 - o4 | 0, l4[k5 + 64 >> 2] = o4, l4[k5 + 68 >> 2] = c5, E5 = 1, b5 = 1166; + if (o3 = l3[k4 + 64 >> 2], h5 = b4 = l3[k4 + 68 >> 2], (0 | b4) < 0) { + h5 = c4 = 0 - (h5 + ((0 | o3) != 0) | 0) | 0, o3 = 0 - o3 | 0, l3[k4 + 64 >> 2] = o3, l3[k4 + 68 >> 2] = c4, E4 = 1, b4 = 1166; break R; } - if (2048 & p4) { - E5 = 1, b5 = 1167; + if (2048 & p3) { + E4 = 1, b4 = 1167; break R; } - b5 = (E5 = 1 & p4) ? 1168 : 1166; + b4 = (E4 = 1 & p3) ? 1168 : 1166; } - W3 = b5, c5 = rK2(o4, h5, R4); + W3 = b4, c4 = rK2(o3, h5, R4); } - if ((0 | v5) < 0 ? G4 : 0) break i; - if (p4 = G4 ? -65537 & p4 : p4, b5 = l4[k5 + 64 >> 2], o4 = l4[k5 + 68 >> 2], !((b5 | o4) != 0 | v5)) { - c5 = R4, v5 = 0; + if ((0 | v4) < 0 ? G3 : 0) break i; + if (p3 = G3 ? -65537 & p3 : p3, b4 = l3[k4 + 64 >> 2], o3 = l3[k4 + 68 >> 2], !((b4 | o3) != 0 | v4)) { + c4 = R4, v4 = 0; break t; } - v5 = (0 | (b5 = !(b5 | o4) + (R4 - c5 | 0) | 0)) < (0 | v5) ? v5 : b5; + v4 = (0 | (b4 = !(b4 | o3) + (R4 - c4 | 0) | 0)) < (0 | v4) ? v4 : b4; break t; } - p4 = 0, u6 = (0 | (h5 = G4 = v5 >>> 0 >= 2147483647 ? 2147483647 : v5)) != 0; + p3 = 0, u4 = (0 | (h5 = G3 = v4 >>> 0 >= 2147483647 ? 2147483647 : v4)) != 0; L: { _: { - b5 = c5 = (b5 = l4[k5 + 64 >> 2]) || 4208; + b4 = c4 = (b4 = l3[k4 + 64 >> 2]) || 4208; F: { C: { - S: if (!(!(3 & b5) | !h5)) for (; ; ) { - if (!(p4 = d4[0 | b5])) break C; - if (u6 = (0 | (h5 = h5 - 1 | 0)) != 0, !(3 & (b5 = b5 + 1 | 0))) break S; + S: if (!(!(3 & b4) | !h5)) for (; ; ) { + if (!(p3 = d3[0 | b4])) break C; + if (u4 = (0 | (h5 = h5 - 1 | 0)) != 0, !(3 & (b4 = b4 + 1 | 0))) break S; if (!h5) break; } - if (!u6) break _; + if (!u4) break _; P: { - if (!(!d4[0 | b5] | h5 >>> 0 < 4)) for (; ; ) { - if ((-1 ^ (u6 = l4[b5 >> 2])) & u6 - 16843009 & -2139062144) break P; - if (b5 = b5 + 4 | 0, !((h5 = h5 - 4 | 0) >>> 0 > 3)) break; + if (!(!d3[0 | b4] | h5 >>> 0 < 4)) for (; ; ) { + if ((-1 ^ (u4 = l3[b4 >> 2])) & u4 - 16843009 & -2139062144) break P; + if (b4 = b4 + 4 | 0, !((h5 = h5 - 4 | 0) >>> 0 > 3)) break; } if (!h5) break _; } - u6 = 0; + u4 = 0; break F; } - u6 = 1; + u4 = 1; } for (; ; ) { - if (!u6) { - p4 = d4[0 | b5], u6 = 1; + if (!u4) { + p3 = d3[0 | b4], u4 = 1; continue; } - if (!p4) break L; - if (b5 = b5 + 1 | 0, !(h5 = h5 - 1 | 0)) break _; - u6 = 0; + if (!p3) break L; + if (b4 = b4 + 1 | 0, !(h5 = h5 - 1 | 0)) break _; + u4 = 0; } } - b5 = 0; + b4 = 0; } - if (u6 = (b5 = b5 ? b5 - c5 | 0 : G4) + c5 | 0, (0 | v5) >= 0) { - p4 = o4, v5 = b5; + if (u4 = (b4 = b4 ? b4 - c4 | 0 : G3) + c4 | 0, (0 | v4) >= 0) { + p3 = o3, v4 = b4; break t; } - if (p4 = o4, v5 = b5, d4[0 | u6]) break i; + if (p3 = o3, v4 = b4, d3[0 | u4]) break i; break t; } - if (v5) { - o4 = l4[k5 + 64 >> 2]; + if (v4) { + o3 = l3[k4 + 64 >> 2]; break N; } - b5 = 0, er(r10, 32, y4, 0, p4); + b4 = 0, er(r10, 32, y3, 0, p3); break m; } - l4[k5 + 12 >> 2] = 0, l4[k5 + 8 >> 2] = l4[k5 + 64 >> 2], o4 = k5 + 8 | 0, l4[k5 + 64 >> 2] = o4, v5 = -1; + l3[k4 + 12 >> 2] = 0, l3[k4 + 8 >> 2] = l3[k4 + 64 >> 2], o3 = k4 + 8 | 0, l3[k4 + 64 >> 2] = o3, v4 = -1; } - b5 = 0; + b4 = 0; Y: { for (; ; ) { - if (!(c5 = l4[o4 >> 2])) break Y; - if (!((u6 = (0 | (c5 = el2(k5 + 4 | 0, c5))) < 0) | c5 >>> 0 > v5 - b5 >>> 0)) { - if (o4 = o4 + 4 | 0, v5 >>> 0 > (b5 = b5 + c5 | 0) >>> 0) continue; + if (!(c4 = l3[o3 >> 2])) break Y; + if (!((u4 = (0 | (c4 = el2(k4 + 4 | 0, c4))) < 0) | c4 >>> 0 > v4 - b4 >>> 0)) { + if (o3 = o3 + 4 | 0, v4 >>> 0 > (b4 = b4 + c4 | 0) >>> 0) continue; break Y; } break; } - if (u6) break e; + if (u4) break e; } - if (u6 = 61, (0 | b5) < 0) break a; - if (er(r10, 32, y4, b5, p4), !b5) { - b5 = 0; + if (u4 = 61, (0 | b4) < 0) break a; + if (er(r10, 32, y3, b4, p3), !b4) { + b4 = 0; break m; } - for (u6 = 0, o4 = l4[k5 + 64 >> 2]; ; ) { - if (!(c5 = l4[o4 >> 2]) || (u6 = (c5 = el2(k5 + 4 | 0, c5)) + u6 | 0) >>> 0 > b5 >>> 0) break m; - if (rF2(r10, k5 + 4 | 0, c5), o4 = o4 + 4 | 0, !(b5 >>> 0 > u6 >>> 0)) break; + for (u4 = 0, o3 = l3[k4 + 64 >> 2]; ; ) { + if (!(c4 = l3[o3 >> 2]) || (u4 = (c4 = el2(k4 + 4 | 0, c4)) + u4 | 0) >>> 0 > b4 >>> 0) break m; + if (rF2(r10, k4 + 4 | 0, c4), o3 = o3 + 4 | 0, !(b4 >>> 0 > u4 >>> 0)) break; } } - er(r10, 32, y4, b5, 8192 ^ p4), b5 = (0 | b5) < (0 | y4) ? y4 : b5; + er(r10, 32, y3, b4, 8192 ^ p3), b4 = (0 | b4) < (0 | y3) ? y3 : b4; continue n; } - if ((0 | v5) < 0 ? G4 : 0) break i; - if (u6 = 61, (0 | (b5 = 0 | eY[0 | f6](r10, m4[k5 + 64 >> 3], y4, v5, p4, b5))) >= 0) continue n; + if ((0 | v4) < 0 ? G3 : 0) break i; + if (u4 = 61, (0 | (b4 = 0 | eY[0 | f4](r10, m3[k4 + 64 >> 3], y3, v4, p3, b4))) >= 0) continue n; break a; } - s3[k5 + 55 | 0] = l4[k5 + 64 >> 2], v5 = 1, c5 = B4, p4 = o4; + s2[k4 + 55 | 0] = l3[k4 + 64 >> 2], v4 = 1, c4 = B3, p3 = o3; break t; } - o4 = d4[b5 + 1 | 0], b5 = b5 + 1 | 0; + o3 = d3[b4 + 1 | 0], b4 = b4 + 1 | 0; } if (r10) break r; - if (!g5) break f; - for (b5 = 1; ; ) { - if (r10 = l4[(b5 << 2) + n4 >> 2]) { - if (rN2((b5 << 3) + i5 | 0, r10, a5, t4), w5 = 1, (0 | (b5 = b5 + 1 | 0)) != 10) continue; + if (!g4) break f; + for (b4 = 1; ; ) { + if (r10 = l3[(b4 << 2) + n3 >> 2]) { + if (rN2((b4 << 3) + i4 | 0, r10, a4, t3), w4 = 1, (0 | (b4 = b4 + 1 | 0)) != 10) continue; break r; } break; } - if (w5 = 1, b5 >>> 0 >= 10) break r; + if (w4 = 1, b4 >>> 0 >= 10) break r; for (; ; ) { - if (l4[(b5 << 2) + n4 >> 2]) break b; - if ((0 | (b5 = b5 + 1 | 0)) == 10) break; + if (l3[(b4 << 2) + n3 >> 2]) break b; + if ((0 | (b4 = b4 + 1 | 0)) == 10) break; } break r; } - u6 = 28; + u4 = 28; break a; } - if ((0 | (v5 = (0 | v5) > (0 | (h5 = u6 - c5 | 0)) ? v5 : h5)) > (2147483647 ^ E5)) break i; - if (u6 = 61, (0 | V4) < (0 | (b5 = (0 | (o4 = v5 + E5 | 0)) < (0 | y4) ? y4 : o4))) break a; - er(r10, 32, b5, o4, p4), rF2(r10, W3, E5), er(r10, 48, b5, o4, 65536 ^ p4), er(r10, 48, v5, h5, 0), rF2(r10, c5, h5), er(r10, 32, b5, o4, 8192 ^ p4); + if ((0 | (v4 = (0 | v4) > (0 | (h5 = u4 - c4 | 0)) ? v4 : h5)) > (2147483647 ^ E4)) break i; + if (u4 = 61, (0 | V3) < (0 | (b4 = (0 | (o3 = v4 + E4 | 0)) < (0 | y3) ? y3 : o3))) break a; + er(r10, 32, b4, o3, p3), rF2(r10, W3, E4), er(r10, 48, b4, o3, 65536 ^ p3), er(r10, 48, v4, h5, 0), rF2(r10, c4, h5), er(r10, 32, b4, o3, 8192 ^ p3); continue; } break; } - w5 = 0; + w4 = 0; break r; } - u6 = 61; + u4 = 61; } - l4[1761] = u6; + l3[1761] = u4; } - w5 = -1; + w4 = -1; } - return re3 = k5 + 80 | 0, w5; + return re3 = k4 + 80 | 0, w4; } - function rt3(r10, e4, a5, i5, n4, f6, t4, b5, o4, k5, c5, u6, A4, h5) { - var m5 = w4(0), E5 = 0, G4 = 0, R4 = 0, g5 = w4(0), Z3 = 0, W3 = 0, V4 = 0, B4 = w4(0); - ((l4[r10 + 312 >> 2] != (0 | h5) ? 4 & d4[r10 + 4 | 0] : 0) || (Z3 = 0, l4[r10 + 316 >> 2] != (0 | i5))) && (l4[r10 + 540 >> 2] = -1082130432, l4[r10 + 544 >> 2] = -1082130432, l4[r10 + 532 >> 2] = 0, l4[r10 + 536 >> 2] = 0, l4[r10 + 524 >> 2] = -1082130432, l4[r10 + 528 >> 2] = -1082130432, l4[r10 + 320 >> 2] = 0, Z3 = 1); - W3 = A4 + 1 | 0; + function rt3(r10, e3, a4, i4, n3, f4, t3, b4, o3, k4, c4, u4, A3, h5) { + var m4 = w3(0), E4 = 0, G3 = 0, R4 = 0, g4 = w3(0), Z3 = 0, W3 = 0, V3 = 0, B3 = w3(0); + ((l3[r10 + 312 >> 2] != (0 | h5) ? 4 & d3[r10 + 4 | 0] : 0) || (Z3 = 0, l3[r10 + 316 >> 2] != (0 | i4))) && (l3[r10 + 540 >> 2] = -1082130432, l3[r10 + 544 >> 2] = -1082130432, l3[r10 + 532 >> 2] = 0, l3[r10 + 536 >> 2] = 0, l3[r10 + 524 >> 2] = -1082130432, l3[r10 + 528 >> 2] = -1082130432, l3[r10 + 320 >> 2] = 0, Z3 = 1); + W3 = A3 + 1 | 0; e: { a: { i: { n: { - if (l4[r10 + 8 >> 2]) { - if (g5 = rP2(r10, 2, t4), B4 = rS2(r10, 2, t4), m5 = w4(rP2(r10, 0, t4) + rS2(r10, 0, t4)), A4 = r10 + 524 | 0, g5 = w4(g5 + B4), rA2(n4, e4, f6, a5, l4[r10 + 532 >> 2], p3[A4 >> 2], l4[r10 + 536 >> 2], p3[r10 + 528 >> 2], p3[r10 + 540 >> 2], p3[r10 + 544 >> 2], g5, m5, c5)) break i; - if (!(G4 = l4[r10 + 320 >> 2])) break n; - for (E5 = r10 + 324 | 0; ; ) { - if (rA2(n4, e4, f6, a5, l4[(A4 = E5 + N3(R4, 24) | 0) + 8 >> 2], p3[A4 >> 2], l4[A4 + 12 >> 2], p3[A4 + 4 >> 2], p3[A4 + 16 >> 2], p3[A4 + 20 >> 2], g5, m5, c5)) break i; - if ((0 | G4) == (0 | (R4 = R4 + 1 | 0))) break; + if (l3[r10 + 8 >> 2]) { + if (g4 = rP2(r10, 2, t3), B3 = rS2(r10, 2, t3), m4 = w3(rP2(r10, 0, t3) + rS2(r10, 0, t3)), A3 = r10 + 524 | 0, g4 = w3(g4 + B3), rA2(n3, e3, f4, a4, l3[r10 + 532 >> 2], p2[A3 >> 2], l3[r10 + 536 >> 2], p2[r10 + 528 >> 2], p2[r10 + 540 >> 2], p2[r10 + 544 >> 2], g4, m4, c4)) break i; + if (!(G3 = l3[r10 + 320 >> 2])) break n; + for (E4 = r10 + 324 | 0; ; ) { + if (rA2(n3, e3, f4, a4, l3[(A3 = E4 + N2(R4, 24) | 0) + 8 >> 2], p2[A3 >> 2], l3[A3 + 12 >> 2], p2[A3 + 4 >> 2], p2[A3 + 16 >> 2], p2[A3 + 20 >> 2], g4, m4, c4)) break i; + if ((0 | G3) == (0 | (R4 = R4 + 1 | 0))) break; } break n; } - if (!o4) { - if (!(V4 = l4[r10 + 320 >> 2])) break n; - for (G4 = r10 + 324 | 0; ; ) { - m5 = p3[(A4 = (E5 = N3(R4, 24)) + G4 | 0) >> 2]; + if (!o3) { + if (!(V3 = l3[r10 + 320 >> 2])) break n; + for (G3 = r10 + 324 | 0; ; ) { + m4 = p2[(A3 = (E4 = N2(R4, 24)) + G3 | 0) >> 2]; f: { t: { - if (!(m5 != m5 | e4 != e4)) { - if (w4(y3(w4(m5 - e4))) < w4(9999999747378752e-20)) break t; + if (!(m4 != m4 | e3 != e3)) { + if (w3(y2(w3(m4 - e3))) < w3(9999999747378752e-20)) break t; break f; } - if (m5 == m5 | e4 == e4) break f; + if (m4 == m4 | e3 == e3) break f; } - m5 = p3[(E5 = G4 + E5 | 0) + 4 >> 2]; + m4 = p2[(E4 = G3 + E4 | 0) + 4 >> 2]; b: { - if (!(m5 != m5 | a5 != a5)) { - if (w4(y3(w4(m5 - a5))) < w4(9999999747378752e-20)) break b; + if (!(m4 != m4 | a4 != a4)) { + if (w3(y2(w3(m4 - a4))) < w3(9999999747378752e-20)) break b; break f; } - if (m5 == m5 | a5 == a5) break f; + if (m4 == m4 | a4 == a4) break f; } - if (l4[E5 + 8 >> 2] != (0 | n4)) break f; - if (l4[E5 + 12 >> 2] == (0 | f6)) break i; + if (l3[E4 + 8 >> 2] != (0 | n3)) break f; + if (l3[E4 + 12 >> 2] == (0 | f4)) break i; } - if ((0 | V4) == (0 | (R4 = R4 + 1 | 0))) break; + if ((0 | V3) == (0 | (R4 = R4 + 1 | 0))) break; } break n; } - m5 = p3[(A4 = r10 + 524 | 0) >> 2]; + m4 = p2[(A3 = r10 + 524 | 0) >> 2]; o: { - if (!(m5 != m5 | e4 != e4)) { - if (w4(y3(w4(m5 - e4))) < w4(9999999747378752e-20)) break o; + if (!(m4 != m4 | e3 != e3)) { + if (w3(y2(w3(m4 - e3))) < w3(9999999747378752e-20)) break o; break n; } - if (m5 == m5 | e4 == e4) break n; + if (m4 == m4 | e3 == e3) break n; } - E5 = l4[r10 + 532 >> 2] == (0 | n4) && l4[r10 + 536 >> 2] == (0 | f6) ? A4 : 0, A4 = (m5 = p3[r10 + 528 >> 2]) != m5, G4 = a5 != a5; + E4 = l3[r10 + 532 >> 2] == (0 | n3) && l3[r10 + 536 >> 2] == (0 | f4) ? A3 : 0, A3 = (m4 = p2[r10 + 528 >> 2]) != m4, G3 = a4 != a4; k: { - if (A4 | G4) { - A4 &= G4; + if (A3 | G3) { + A3 &= G3; break k; } - A4 = w4(y3(w4(m5 - a5))) < w4(9999999747378752e-20); + A3 = w3(y2(w3(m4 - a4))) < w3(9999999747378752e-20); } - A4 = A4 ? E5 : 0; + A3 = A3 ? E4 : 0; break i; } - ri2(r10, e4, a5, i5, n4, f6, t4, b5, o4, c5, u6, W3, h5, k5), l4[r10 + 316 >> 2] = i5; + ri2(r10, e3, a4, i4, n3, f4, t3, b4, o3, c4, u4, W3, h5, k4), l3[r10 + 316 >> 2] = i4; break a; } - if (!(!A4 | Z3)) { - p3[r10 + 516 >> 2] = p3[A4 + 16 >> 2], p3[r10 + 520 >> 2] = p3[A4 + 20 >> 2], l4[(i5 = (o4 ? 12 : 16) + u6 | 0) >> 2] = l4[i5 >> 2] + 1, i5 = 0; + if (!(!A3 | Z3)) { + p2[r10 + 516 >> 2] = p2[A3 + 16 >> 2], p2[r10 + 520 >> 2] = p2[A3 + 20 >> 2], l3[(i4 = (o3 ? 12 : 16) + u4 | 0) >> 2] = l3[i4 >> 2] + 1, i4 = 0; break e; } - if (ri2(r10, e4, a5, i5, n4, f6, t4, b5, o4, c5, u6, W3, h5, k5), l4[r10 + 316 >> 2] = i5, i5 = 1, A4) break e; + if (ri2(r10, e3, a4, i4, n3, f4, t3, b4, o3, c4, u4, W3, h5, k4), l3[r10 + 316 >> 2] = i4, i4 = 1, A3) break e; } - (i5 = (A4 = l4[r10 + 320 >> 2]) + 1 | 0) >>> 0 > v4[u6 + 8 >> 2] && (l4[u6 + 8 >> 2] = i5), (0 | A4) == 8 && (l4[r10 + 320 >> 2] = 0, A4 = 0), o4 ? i5 = r10 + 524 | 0 : (l4[r10 + 320 >> 2] = A4 + 1, i5 = (N3(A4, 24) + r10 | 0) + 324 | 0), l4[i5 + 12 >> 2] = f6, l4[i5 + 8 >> 2] = n4, p3[i5 + 4 >> 2] = a5, p3[i5 >> 2] = e4, p3[i5 + 16 >> 2] = p3[r10 + 516 >> 2], p3[i5 + 20 >> 2] = p3[r10 + 520 >> 2], i5 = 1; + (i4 = (A3 = l3[r10 + 320 >> 2]) + 1 | 0) >>> 0 > v3[u4 + 8 >> 2] && (l3[u4 + 8 >> 2] = i4), (0 | A3) == 8 && (l3[r10 + 320 >> 2] = 0, A3 = 0), o3 ? i4 = r10 + 524 | 0 : (l3[r10 + 320 >> 2] = A3 + 1, i4 = (N2(A3, 24) + r10 | 0) + 324 | 0), l3[i4 + 12 >> 2] = f4, l3[i4 + 8 >> 2] = n3, p2[i4 + 4 >> 2] = a4, p2[i4 >> 2] = e3, p2[i4 + 16 >> 2] = p2[r10 + 516 >> 2], p2[i4 + 20 >> 2] = p2[r10 + 520 >> 2], i4 = 1; } - c: if (o4) { - if (n4 = l4[r10 + 520 >> 2], l4[r10 + 244 >> 2] = l4[r10 + 516 >> 2], l4[r10 + 248 >> 2] = n4, f6 = 1 | (n4 = d4[r10 + 4 | 0]), s3[r10 + 4 | 0] = f6, !(4 & n4)) break c; - s3[r10 + 4 | 0] = 251 & f6; + c: if (o3) { + if (n3 = l3[r10 + 520 >> 2], l3[r10 + 244 >> 2] = l3[r10 + 516 >> 2], l3[r10 + 248 >> 2] = n3, f4 = 1 | (n3 = d3[r10 + 4 | 0]), s2[r10 + 4 | 0] = f4, !(4 & n3)) break c; + s2[r10 + 4 | 0] = 251 & f4; } - return l4[r10 + 312 >> 2] = h5, i5; + return l3[r10 + 312 >> 2] = h5, i4; } function rb2(r10) { r10 |= 0; - var e4 = 0, a5 = 0, i5 = 0, n4 = 0, f6 = 0, t4 = 0, b5 = 0, o4 = 0, k5 = 0, c5 = 0, u6 = 0; - b5 = 8; + var e3 = 0, a4 = 0, i4 = 0, n3 = 0, f4 = 0, t3 = 0, b4 = 0, o3 = 0, k4 = 0, c4 = 0, u4 = 0; + b4 = 8; r: if (!(r10 >>> 0 > 4294967239)) { e: { for (; ; ) { - b5 = b5 >>> 0 <= 8 ? 8 : b5, f6 = e4 = l4[1731], n4 = l4[1730], r10 = r10 >>> 0 <= 8 ? 8 : r10 + 3 & -4; + b4 = b4 >>> 0 <= 8 ? 8 : b4, f4 = e3 = l3[1731], n3 = l3[1730], r10 = r10 >>> 0 <= 8 ? 8 : r10 + 3 & -4; a: { if (r10 >>> 0 <= 127) { - t4 = (r10 >>> 3 | 0) - 1 | 0; + t3 = (r10 >>> 3 | 0) - 1 | 0; break a; } - if (i5 = E4(r10), t4 = ((r10 >>> 29 - i5 ^ 4) - (i5 << 2) | 0) + 110 | 0, r10 >>> 0 <= 4095) break a; - t4 = (i5 = ((r10 >>> 30 - i5 ^ 2) - (i5 << 1) | 0) + 71 | 0) >>> 0 >= 63 ? 63 : i5; + if (i4 = E3(r10), t3 = ((r10 >>> 29 - i4 ^ 4) - (i4 << 2) | 0) + 110 | 0, r10 >>> 0 <= 4095) break a; + t3 = (i4 = ((r10 >>> 30 - i4 ^ 2) - (i4 << 1) | 0) + 71 | 0) >>> 0 >= 63 ? 63 : i4; } - if (a5 = 31 & t4, (63 & t4) >>> 0 >= 32 ? (i5 = 0, e4 = e4 >>> a5 | 0) : (i5 = e4 >>> a5 | 0, e4 = ((1 << a5) - 1 & e4) << 32 - a5 | n4 >>> a5), e4 | i5) { + if (a4 = 31 & t3, (63 & t3) >>> 0 >= 32 ? (i4 = 0, e3 = e3 >>> a4 | 0) : (i4 = e3 >>> a4 | 0, e3 = ((1 << a4) - 1 & e3) << 32 - a4 | n3 >>> a4), e3 | i4) { for (; ; ) { - n4 = i5; + n3 = i4; i: { - if (e4 | i5) { - o4 = (a5 = i5 - 1 | 0) + 1 | 0, f6 = a5, f6 = (0 | (a5 = e4 - 1 | 0)) != -1 ? o4 : f6, a5 = 63 - (i5 = (0 | (i5 = E4(i5 ^ f6))) == 32 ? E4(e4 ^ a5) + 32 | 0 : i5) | 0, ra3 = 0 - (i5 >>> 0 > 63) | 0; + if (e3 | i4) { + o3 = (a4 = i4 - 1 | 0) + 1 | 0, f4 = a4, f4 = (0 | (a4 = e3 - 1 | 0)) != -1 ? o3 : f4, a4 = 63 - (i4 = (0 | (i4 = E3(i4 ^ f4))) == 32 ? E3(e3 ^ a4) + 32 | 0 : i4) | 0, ra3 = 0 - (i4 >>> 0 > 63) | 0; break i; } - ra3 = 0, a5 = 64; + ra3 = 0, a4 = 64; } - a5 = 31 & (f6 = a5), (63 & f6) >>> 0 >= 32 ? (i5 = 0, e4 = n4 >>> a5 | 0) : (i5 = n4 >>> a5 | 0, e4 = ((1 << a5) - 1 & n4) << 32 - a5 | e4 >>> a5), o4 = e4, e4 = l4[(a5 = (t4 = f6 + t4 | 0) << 4) + 5896 >> 2], f6 = a5 + 5888 | 0; + a4 = 31 & (f4 = a4), (63 & f4) >>> 0 >= 32 ? (i4 = 0, e3 = n3 >>> a4 | 0) : (i4 = n3 >>> a4 | 0, e3 = ((1 << a4) - 1 & n3) << 32 - a4 | e3 >>> a4), o3 = e3, e3 = l3[(a4 = (t3 = f4 + t3 | 0) << 4) + 5896 >> 2], f4 = a4 + 5888 | 0; n: { - if ((0 | e4) != (0 | f6)) { - if (n4 = rp2(e4, b5, r10)) break r; - n4 = l4[e4 + 4 >> 2], l4[n4 + 8 >> 2] = l4[e4 + 8 >> 2], l4[l4[e4 + 8 >> 2] + 4 >> 2] = n4, l4[e4 + 8 >> 2] = f6, n4 = a5 + 5892 | 0, l4[e4 + 4 >> 2] = l4[n4 >> 2], l4[n4 >> 2] = e4, l4[l4[e4 + 4 >> 2] + 8 >> 2] = e4, t4 = t4 + 1 | 0, e4 = (1 & i5) << 31 | o4 >>> 1, i5 = i5 >>> 1 | 0; + if ((0 | e3) != (0 | f4)) { + if (n3 = rp2(e3, b4, r10)) break r; + n3 = l3[e3 + 4 >> 2], l3[n3 + 8 >> 2] = l3[e3 + 8 >> 2], l3[l3[e3 + 8 >> 2] + 4 >> 2] = n3, l3[e3 + 8 >> 2] = f4, n3 = a4 + 5892 | 0, l3[e3 + 4 >> 2] = l3[n3 >> 2], l3[n3 >> 2] = e3, l3[l3[e3 + 4 >> 2] + 8 >> 2] = e3, t3 = t3 + 1 | 0, e3 = (1 & i4) << 31 | o3 >>> 1, i4 = i4 >>> 1 | 0; break n; } - k5 = l4[1731], n4 = 31 & (e4 = f6 = 63 & t4), e4 >>> 0 >= 32 ? (e4 = 0, a5 = -1 >>> n4 | 0) : a5 = (e4 = -1 >>> n4 | 0) | (1 << n4) - 1 << 32 - n4, a5 &= -2, n4 = 31 & f6, f6 >>> 0 >= 32 ? (e4 = a5 << n4, a5 = 0) : (e4 = (1 << n4) - 1 & a5 >>> 32 - n4 | e4 << n4, a5 <<= n4), c5 = a5, n4 = e4, e4 = 31 & (a5 = f6 = 0 - t4 & 63), a5 >>> 0 >= 32 ? (e4 = -1 << e4, a5 = 0) : e4 = (a5 = -1 << e4) | (1 << e4) - 1 & -1 >>> 32 - e4, u6 = -2 & a5, a5 = 31 & f6, f6 >>> 0 >= 32 ? (f6 = 0, e4 = e4 >>> a5 | 0) : (f6 = e4 >>> a5 | 0, e4 = ((1 << a5) - 1 & e4) << 32 - a5 | u6 >>> a5), e4 |= c5, ra3 = n4 | f6, l4[1730] = l4[1730] & e4, l4[1731] = ra3 & k5, e4 = 1 ^ o4; + k4 = l3[1731], n3 = 31 & (e3 = f4 = 63 & t3), e3 >>> 0 >= 32 ? (e3 = 0, a4 = -1 >>> n3 | 0) : a4 = (e3 = -1 >>> n3 | 0) | (1 << n3) - 1 << 32 - n3, a4 &= -2, n3 = 31 & f4, f4 >>> 0 >= 32 ? (e3 = a4 << n3, a4 = 0) : (e3 = (1 << n3) - 1 & a4 >>> 32 - n3 | e3 << n3, a4 <<= n3), c4 = a4, n3 = e3, e3 = 31 & (a4 = f4 = 0 - t3 & 63), a4 >>> 0 >= 32 ? (e3 = -1 << e3, a4 = 0) : e3 = (a4 = -1 << e3) | (1 << e3) - 1 & -1 >>> 32 - e3, u4 = -2 & a4, a4 = 31 & f4, f4 >>> 0 >= 32 ? (f4 = 0, e3 = e3 >>> a4 | 0) : (f4 = e3 >>> a4 | 0, e3 = ((1 << a4) - 1 & e3) << 32 - a4 | u4 >>> a4), e3 |= c4, ra3 = n3 | f4, l3[1730] = l3[1730] & e3, l3[1731] = ra3 & k4, e3 = 1 ^ o3; } - if (!(e4 | i5)) break; + if (!(e3 | i4)) break; } - f6 = l4[1731], n4 = l4[1730]; + f4 = l3[1731], n3 = l3[1730]; } f: { - if (n4 | f6) { - i5 = l4[(e4 = (a5 = 63 - ((0 | (i5 = E4(f6))) == 32 ? E4(n4) + 32 | 0 : i5) | 0) << 4) + 5896 >> 2]; - t: if (!(!f6 & n4 >>> 0 < 1073741824)) { - if (t4 = 99, (0 | (e4 = e4 + 5888 | 0)) == (0 | i5)) break t; + if (n3 | f4) { + i4 = l3[(e3 = (a4 = 63 - ((0 | (i4 = E3(f4))) == 32 ? E3(n3) + 32 | 0 : i4) | 0) << 4) + 5896 >> 2]; + t: if (!(!f4 & n3 >>> 0 < 1073741824)) { + if (t3 = 99, (0 | (e3 = e3 + 5888 | 0)) == (0 | i4)) break t; for (; ; ) { - if (!t4) break t; - if (n4 = rp2(i5, b5, r10)) break r; - if (t4 = t4 - 1 | 0, i5 = l4[i5 + 8 >> 2], (0 | e4) == (0 | i5)) break; + if (!t3) break t; + if (n3 = rp2(i4, b4, r10)) break r; + if (t3 = t3 - 1 | 0, i4 = l3[i4 + 8 >> 2], (0 | e3) == (0 | i4)) break; } - i5 = e4; + i4 = e3; } if (rd2(r10 + 48 | 0)) break f; - if (!i5 || (0 | (e4 = (a5 << 4) + 5888 | 0)) == (0 | i5)) break e; + if (!i4 || (0 | (e3 = (a4 << 4) + 5888 | 0)) == (0 | i4)) break e; for (; ; ) { - if (n4 = rp2(i5, b5, r10)) break r; - if (i5 = l4[i5 + 8 >> 2], (0 | e4) == (0 | i5)) break; + if (n3 = rp2(i4, b4, r10)) break r; + if (i4 = l3[i4 + 8 >> 2], (0 | e3) == (0 | i4)) break; } break e; } if (!rd2(r10 + 48 | 0)) break e; } - if (n4 = 0, b5 - 1 & b5) break r; + if (n3 = 0, b4 - 1 & b4) break r; if (!(r10 >>> 0 <= 4294967239)) break; } break r; } - n4 = 0; + n3 = 0; } - return 0 | n4; + return 0 | n3; } - function ro2(r10, e4, a5, i5) { - var n4, f6, b5, o4, k5 = w4(0), c5 = w4(0), s4 = 0, A4 = w4(0); + function ro2(r10, e3, a4, i4) { + var n3, f4, b4, o3, k4 = w3(0), c4 = w3(0), s3 = 0, A3 = w3(0); r: { e: { a: { i: { n: { f: { - if (e4 >>> 0 <= 1) { - c5 = p3[r10 + 212 >> 2], e4 = l4[r10 + 212 >> 2]; - t: if ((0 | e4) != 2139156720) { - if ((0 | e4) == 2140081935) break f; - s4 = 4276; + if (e3 >>> 0 <= 1) { + c4 = p2[r10 + 212 >> 2], e3 = l3[r10 + 212 >> 2]; + t: if ((0 | e3) != 2139156720) { + if ((0 | e3) == 2140081935) break f; + s3 = 4276; b: { - if ((0 | e4) != 2141891242) { - if (c5 == c5) break b; - s4 = 4268; + if ((0 | e3) != 2141891242) { + if (c4 == c4) break b; + s3 = 4268; } - switch (k5 = p3[s4 >> 2], c5 = w4(NaN), l4[s4 + 4 >> 2] - 1 | 0) { + switch (k4 = p2[s3 >> 2], c4 = w3(NaN), l3[s3 + 4 >> 2] - 1 | 0) { case 0: break f; case 1: @@ -4593,24 +4594,24 @@ var init_asm = __esm({ break n; } } - if (n4 = (-1073741825 & e4) + 536870912 | 0, t3[2] = n4, k5 = u5(), !(1073741824 & e4)) break f; + if (n3 = (-1073741825 & e3) + 536870912 | 0, t2[2] = n3, k4 = u3(), !(1073741824 & e3)) break f; } - c5 = w4(w4(k5 * i5) * w4(0.009999999776482582)); + c4 = w3(w3(k4 * i4) * w3(0.009999999776482582)); break n; } - c5 = p3[r10 + 208 >> 2]; + c4 = p2[r10 + 208 >> 2]; o: { k: { - e4 = l4[r10 + 208 >> 2]; - c: if ((0 | e4) != 2139156720) { - if ((0 | e4) == 2140081935) break k; - s4 = 4276; + e3 = l3[r10 + 208 >> 2]; + c: if ((0 | e3) != 2139156720) { + if ((0 | e3) == 2140081935) break k; + s3 = 4276; u: { - if ((0 | e4) != 2141891242) { - if (c5 == c5) break u; - s4 = 4268; + if ((0 | e3) != 2141891242) { + if (c4 == c4) break u; + s3 = 4268; } - switch (k5 = p3[s4 >> 2], c5 = w4(NaN), l4[s4 + 4 >> 2] - 1 | 0) { + switch (k4 = p2[s3 >> 2], c4 = w3(NaN), l3[s3 + 4 >> 2] - 1 | 0) { case 0: break k; case 1: @@ -4619,23 +4620,23 @@ var init_asm = __esm({ break o; } } - if (f6 = (-1073741825 & e4) + 536870912 | 0, t3[2] = f6, k5 = u5(), !(1073741824 & e4)) break k; + if (f4 = (-1073741825 & e3) + 536870912 | 0, t2[2] = f4, k4 = u3(), !(1073741824 & e3)) break k; } - c5 = w4(w4(k5 * i5) * w4(0.009999999776482582)); + c4 = w3(w3(k4 * i4) * w3(0.009999999776482582)); break o; } - c5 = k5; + c4 = k4; } - k5 = w4(0), A4 = p3[r10 + 216 >> 2], r10 = l4[r10 + 216 >> 2]; + k4 = w3(0), A3 = p2[r10 + 216 >> 2], r10 = l3[r10 + 216 >> 2]; s: if ((0 | r10) != 2139156720) { if ((0 | r10) == 2140081935) break a; - e4 = 4276; + e3 = 4276; A: { if ((0 | r10) != 2141891242) { - if (A4 == A4) break A; - e4 = 4268; + if (A3 == A3) break A; + e3 = 4268; } - switch (k5 = p3[e4 >> 2], l4[e4 + 4 >> 2] - 1 | 0) { + switch (k4 = p2[e3 >> 2], l3[e3 + 4 >> 2] - 1 | 0) { case 1: break s; case 0: @@ -4644,23 +4645,23 @@ var init_asm = __esm({ break e; } } - if (b5 = (-1073741825 & r10) + 536870912 | 0, t3[2] = b5, k5 = u5(), !(1073741824 & r10)) break i; + if (b4 = (-1073741825 & r10) + 536870912 | 0, t2[2] = b4, k4 = u3(), !(1073741824 & r10)) break i; } - k5 = w4(w4(k5 * i5) * w4(0.009999999776482582)); + k4 = w3(w3(k4 * i4) * w3(0.009999999776482582)); break i; } - c5 = k5; + c4 = k4; } - k5 = w4(0), A4 = p3[r10 + 220 >> 2], r10 = l4[r10 + 220 >> 2]; + k4 = w3(0), A3 = p2[r10 + 220 >> 2], r10 = l3[r10 + 220 >> 2]; l: if ((0 | r10) != 2139156720) { if ((0 | r10) == 2140081935) break a; - e4 = 4276; + e3 = 4276; d: { if ((0 | r10) != 2141891242) { - if (A4 == A4) break d; - e4 = 4268; + if (A3 == A3) break d; + e3 = 4268; } - switch (k5 = p3[e4 >> 2], l4[e4 + 4 >> 2] - 1 | 0) { + switch (k4 = p2[e3 >> 2], l3[e3 + 4 >> 2] - 1 | 0) { case 1: break l; case 0: @@ -4669,146 +4670,146 @@ var init_asm = __esm({ break e; } } - if (o4 = (-1073741825 & r10) + 536870912 | 0, t3[2] = o4, k5 = u5(), !(1073741824 & r10)) break i; + if (o3 = (-1073741825 & r10) + 536870912 | 0, t2[2] = o3, k4 = u3(), !(1073741824 & r10)) break i; } - k5 = w4(w4(k5 * i5) * w4(0.009999999776482582)); + k4 = w3(w3(k4 * i4) * w3(0.009999999776482582)); } - if (!(k5 >= w4(0))) break e; + if (!(k4 >= w3(0))) break e; } - if (a5 > k5) break r; + if (a4 > k4) break r; } - if (!(c5 >= w4(0))) return a5; - k5 = a5 < c5 ? c5 : a5; + if (!(c4 >= w3(0))) return a4; + k4 = a4 < c4 ? c4 : a4; } - return k5; + return k4; } - function rk2(r10, e4) { - var a5 = 0, i5 = 0; - for (l4[r10 + 8 >> 2] = 0, l4[r10 + 12 >> 2] = 0, A3[r10 + 4 >> 1] = 1, l4[r10 >> 2] = 0, l4[r10 + 16 >> 2] = 0, l4[r10 + 20 >> 2] = 0, l4[r10 + 24 >> 2] = 0, l4[r10 + 36 >> 2] = 2143289344, l4[r10 + 40 >> 2] = 2141891242, l4[r10 + 28 >> 2] = 2143289344, l4[r10 + 32 >> 2] = 2143289344, i5 = ry2(r10 + 44 | 0, 0, 36); l4[i5 + (a5 << 2) >> 2] = 2143289344, (0 | (a5 = a5 + 1 | 0)) != 9; ) ; - for (a5 = 0, i5 = ry2(r10 + 80 | 0, 0, 36); l4[i5 + (a5 << 2) >> 2] = 2143289344, (0 | (a5 = a5 + 1 | 0)) != 9; ) ; - for (a5 = 0, i5 = ry2(r10 + 116 | 0, 0, 36); l4[i5 + (a5 << 2) >> 2] = 2143289344, (0 | (a5 = a5 + 1 | 0)) != 9; ) ; - for (a5 = 0, i5 = ry2(r10 + 152 | 0, 0, 36); l4[i5 + (a5 << 2) >> 2] = 2143289344, (0 | (a5 = a5 + 1 | 0)) != 9; ) ; - for (a5 = 0, l4[r10 + 196 >> 2] = 0, l4[(i5 = r10 + 188 | 0) >> 2] = 0, l4[i5 + 4 >> 2] = 0; l4[i5 + (a5 << 2) >> 2] = 2143289344, (0 | (a5 = a5 + 1 | 0)) != 3; ) ; - for (l4[r10 + 24 >> 2] = 4224, l4[r10 + 224 >> 2] = 2143289344, l4[r10 + 216 >> 2] = 2143289344, l4[r10 + 220 >> 2] = 2143289344, l4[r10 + 208 >> 2] = 2143289344, l4[r10 + 212 >> 2] = 2143289344, l4[r10 + 200 >> 2] = 2141891242, l4[r10 + 204 >> 2] = 2141891242, ry2(r10 + 228 | 0, 0, 288), l4[r10 + 244 >> 2] = 2143289344, l4[r10 + 248 >> 2] = 2143289344, ry2(r10 + 252 | 0, 0, 49), l4[r10 + 308 >> 2] = 2143289344, i5 = r10 + 516 | 0, a5 = r10 + 324 | 0; l4[a5 + 16 >> 2] = -1082130432, l4[a5 + 20 >> 2] = -1082130432, l4[a5 + 8 >> 2] = 0, l4[a5 + 12 >> 2] = 0, l4[a5 >> 2] = -1082130432, l4[a5 + 4 >> 2] = -1082130432, (0 | i5) != (0 | (a5 = a5 + 24 | 0)); ) ; - return l4[r10 + 548 >> 2] = 0, l4[r10 + 552 >> 2] = 0, l4[r10 + 516 >> 2] = 2143289344, l4[r10 + 520 >> 2] = 2143289344, l4[r10 + 572 >> 2] = 2143289344, l4[r10 + 576 >> 2] = 0, l4[r10 + 568 >> 2] = e4, l4[r10 + 540 >> 2] = -1082130432, l4[r10 + 544 >> 2] = -1082130432, l4[r10 + 532 >> 2] = 0, l4[r10 + 536 >> 2] = 0, l4[r10 + 524 >> 2] = -1082130432, l4[r10 + 528 >> 2] = -1082130432, l4[r10 + 556 >> 2] = 0, l4[r10 + 560 >> 2] = 0, l4[r10 + 564 >> 2] = 0, l4[r10 + 580 >> 2] = 2143289344, l4[r10 + 584 >> 2] = 0, d4[e4 + 10 | 0] && (l4[r10 + 24 >> 2] = 4616, s3[r10 + 4 | 0] = 128 | d4[r10 + 4 | 0]), r10; + function rk2(r10, e3) { + var a4 = 0, i4 = 0; + for (l3[r10 + 8 >> 2] = 0, l3[r10 + 12 >> 2] = 0, A2[r10 + 4 >> 1] = 1, l3[r10 >> 2] = 0, l3[r10 + 16 >> 2] = 0, l3[r10 + 20 >> 2] = 0, l3[r10 + 24 >> 2] = 0, l3[r10 + 36 >> 2] = 2143289344, l3[r10 + 40 >> 2] = 2141891242, l3[r10 + 28 >> 2] = 2143289344, l3[r10 + 32 >> 2] = 2143289344, i4 = ry2(r10 + 44 | 0, 0, 36); l3[i4 + (a4 << 2) >> 2] = 2143289344, (0 | (a4 = a4 + 1 | 0)) != 9; ) ; + for (a4 = 0, i4 = ry2(r10 + 80 | 0, 0, 36); l3[i4 + (a4 << 2) >> 2] = 2143289344, (0 | (a4 = a4 + 1 | 0)) != 9; ) ; + for (a4 = 0, i4 = ry2(r10 + 116 | 0, 0, 36); l3[i4 + (a4 << 2) >> 2] = 2143289344, (0 | (a4 = a4 + 1 | 0)) != 9; ) ; + for (a4 = 0, i4 = ry2(r10 + 152 | 0, 0, 36); l3[i4 + (a4 << 2) >> 2] = 2143289344, (0 | (a4 = a4 + 1 | 0)) != 9; ) ; + for (a4 = 0, l3[r10 + 196 >> 2] = 0, l3[(i4 = r10 + 188 | 0) >> 2] = 0, l3[i4 + 4 >> 2] = 0; l3[i4 + (a4 << 2) >> 2] = 2143289344, (0 | (a4 = a4 + 1 | 0)) != 3; ) ; + for (l3[r10 + 24 >> 2] = 4224, l3[r10 + 224 >> 2] = 2143289344, l3[r10 + 216 >> 2] = 2143289344, l3[r10 + 220 >> 2] = 2143289344, l3[r10 + 208 >> 2] = 2143289344, l3[r10 + 212 >> 2] = 2143289344, l3[r10 + 200 >> 2] = 2141891242, l3[r10 + 204 >> 2] = 2141891242, ry2(r10 + 228 | 0, 0, 288), l3[r10 + 244 >> 2] = 2143289344, l3[r10 + 248 >> 2] = 2143289344, ry2(r10 + 252 | 0, 0, 49), l3[r10 + 308 >> 2] = 2143289344, i4 = r10 + 516 | 0, a4 = r10 + 324 | 0; l3[a4 + 16 >> 2] = -1082130432, l3[a4 + 20 >> 2] = -1082130432, l3[a4 + 8 >> 2] = 0, l3[a4 + 12 >> 2] = 0, l3[a4 >> 2] = -1082130432, l3[a4 + 4 >> 2] = -1082130432, (0 | i4) != (0 | (a4 = a4 + 24 | 0)); ) ; + return l3[r10 + 548 >> 2] = 0, l3[r10 + 552 >> 2] = 0, l3[r10 + 516 >> 2] = 2143289344, l3[r10 + 520 >> 2] = 2143289344, l3[r10 + 572 >> 2] = 2143289344, l3[r10 + 576 >> 2] = 0, l3[r10 + 568 >> 2] = e3, l3[r10 + 540 >> 2] = -1082130432, l3[r10 + 544 >> 2] = -1082130432, l3[r10 + 532 >> 2] = 0, l3[r10 + 536 >> 2] = 0, l3[r10 + 524 >> 2] = -1082130432, l3[r10 + 528 >> 2] = -1082130432, l3[r10 + 556 >> 2] = 0, l3[r10 + 560 >> 2] = 0, l3[r10 + 564 >> 2] = 0, l3[r10 + 580 >> 2] = 2143289344, l3[r10 + 584 >> 2] = 0, d3[e3 + 10 | 0] && (l3[r10 + 24 >> 2] = 4616, s2[r10 + 4 | 0] = 128 | d3[r10 + 4 | 0]), r10; } function rc2(r10) { - var e4, a5, i5 = 0, n4 = 0, f6 = w4(0), b5 = w4(0), o4 = w4(0), k5 = 0, c5 = 0, s4 = 0, A4 = 0, d5 = 0, h5 = 0, v5 = 0, m5 = 0, N4 = 0; - for (l4[(k5 = re3 - 16 | 0) + 8 >> 2] = 0, l4[k5 + 12 >> 2] = 1, d5 = r10 + 200 | 0, h5 = r10 + 572 | 0, v5 = r10 + 208 | 0, m5 = r10 + 216 | 0, r10 = 0; ; ) { - N4 = r10, c5 = (A4 = l4[(k5 + 8 | 0) + (r10 << 2) >> 2]) << 2, f6 = p3[(r10 = m5 + c5 | 0) >> 2]; + var e3, a4, i4 = 0, n3 = 0, f4 = w3(0), b4 = w3(0), o3 = w3(0), k4 = 0, c4 = 0, s3 = 0, A3 = 0, d4 = 0, h5 = 0, v4 = 0, m4 = 0, N3 = 0; + for (l3[(k4 = re3 - 16 | 0) + 8 >> 2] = 0, l3[k4 + 12 >> 2] = 1, d4 = r10 + 200 | 0, h5 = r10 + 572 | 0, v4 = r10 + 208 | 0, m4 = r10 + 216 | 0, r10 = 0; ; ) { + N3 = r10, c4 = (A3 = l3[(k4 + 8 | 0) + (r10 << 2) >> 2]) << 2, f4 = p2[(r10 = m4 + c4 | 0) >> 2]; r: { e: { a: { i: { n: { - f: if (!(!((s4 = (0 | (i5 = l4[r10 >> 2])) == 2139156720) | (0 | i5) == 2140081935 | (0 | i5) == 2141891242) & f6 != f6)) { - b5 = p3[(r10 = c5 + v5 | 0) >> 2], n4 = l4[r10 >> 2]; + f: if (!(!((s3 = (0 | (i4 = l3[r10 >> 2])) == 2139156720) | (0 | i4) == 2140081935 | (0 | i4) == 2141891242) & f4 != f4)) { + b4 = p2[(r10 = c4 + v4 | 0) >> 2], n3 = l3[r10 >> 2]; t: { b: { - if ((0 | n4) != 2139156720) { - if (o4 = w4(NaN), r10 = 3, (0 | n4) == 2141891242) break t; - if ((0 | n4) != 2140081935) break b; - o4 = w4(0), r10 = 1; + if ((0 | n3) != 2139156720) { + if (o3 = w3(NaN), r10 = 3, (0 | n3) == 2141891242) break t; + if ((0 | n3) != 2140081935) break b; + o3 = w3(0), r10 = 1; break t; } - o4 = w4(0), r10 = 2; + o3 = w3(0), r10 = 2; break t; } - if (r10 = 0, b5 != b5) break t; - e4 = (-1073741825 & n4) + 536870912 | 0, t3[2] = e4, o4 = u5(), r10 = 1073741824 & n4 ? 2 : 1; + if (r10 = 0, b4 != b4) break t; + e3 = (-1073741825 & n3) + 536870912 | 0, t2[2] = e3, o3 = u3(), r10 = 1073741824 & n3 ? 2 : 1; } - n4 = r10; + n3 = r10; o: { k: { - if (!s4) { - if (b5 = w4(NaN), r10 = 3, (0 | i5) == 2141891242) break o; - if ((0 | i5) != 2140081935) break k; - b5 = w4(0), r10 = 1; + if (!s3) { + if (b4 = w3(NaN), r10 = 3, (0 | i4) == 2141891242) break o; + if ((0 | i4) != 2140081935) break k; + b4 = w3(0), r10 = 1; break o; } - b5 = w4(0), r10 = 2; + b4 = w3(0), r10 = 2; break o; } - if (r10 = 0, f6 != f6) break o; - a5 = (-1073741825 & i5) + 536870912 | 0, t3[2] = a5, b5 = u5(), r10 = 1073741824 & i5 ? 2 : 1; + if (r10 = 0, f4 != f4) break o; + a4 = (-1073741825 & i4) + 536870912 | 0, t2[2] = a4, b4 = u3(), r10 = 1073741824 & i4 ? 2 : 1; } - if ((0 | n4) != (0 | r10) | !(!r10 | b5 != b5 & o4 != o4 | w4(y3(w4(b5 - o4))) < w4(9999999747378752e-20))) break f; - if (r10 = 0, s4) break n; - if ((0 | i5) == 2140081935) break e; - if ((0 | i5) == 2141891242) break a; - if (f6 != f6) break i; - r10 = (-1073741825 & i5) + 536870912 | 0, i5 = 1073741824 & i5 ? 2 : 1; + if ((0 | n3) != (0 | r10) | !(!r10 | b4 != b4 & o3 != o3 | w3(y2(w3(b4 - o3))) < w3(9999999747378752e-20))) break f; + if (r10 = 0, s3) break n; + if ((0 | i4) == 2140081935) break e; + if ((0 | i4) == 2141891242) break a; + if (f4 != f4) break i; + r10 = (-1073741825 & i4) + 536870912 | 0, i4 = 1073741824 & i4 ? 2 : 1; break r; } - if (r10 = 0, f6 = p3[(i5 = c5 + d5 | 0) >> 2], (0 | (i5 = l4[i5 >> 2])) == 2139156720) break n; - if ((0 | i5) == 2140081935) break e; - if ((0 | i5) == 2141891242) break a; - if (f6 != f6) break i; - r10 = (-1073741825 & i5) + 536870912 | 0, i5 = 1073741824 & i5 ? 2 : 1; + if (r10 = 0, f4 = p2[(i4 = c4 + d4 | 0) >> 2], (0 | (i4 = l3[i4 >> 2])) == 2139156720) break n; + if ((0 | i4) == 2140081935) break e; + if ((0 | i4) == 2141891242) break a; + if (f4 != f4) break i; + r10 = (-1073741825 & i4) + 536870912 | 0, i4 = 1073741824 & i4 ? 2 : 1; break r; } - i5 = 2; + i4 = 2; break r; } - r10 = 2143289344, i5 = 0; + r10 = 2143289344, i4 = 0; break r; } - r10 = 2143289344, i5 = 3; + r10 = 2143289344, i4 = 3; break r; } - i5 = 1; + i4 = 1; } - if (l4[(n4 = (A4 << 3) + h5 | 0) + 4 >> 2] = i5, l4[n4 >> 2] = r10, r10 = 1, 1 & N4) break; + if (l3[(n3 = (A3 << 3) + h5 | 0) + 4 >> 2] = i4, l3[n3 >> 2] = r10, r10 = 1, 1 & N3) break; } } - function ru3(r10, e4, a5) { - var i5 = 0, n4 = 0, f6 = 0; - if (a5 >>> 0 >= 512) return x4(0 | r10, 0 | e4, 0 | a5), r10; - n4 = r10 + a5 | 0; + function ru3(r10, e3, a4) { + var i4 = 0, n3 = 0, f4 = 0; + if (a4 >>> 0 >= 512) return x3(0 | r10, 0 | e3, 0 | a4), r10; + n3 = r10 + a4 | 0; r: { - if (!((r10 ^ e4) & 3)) { + if (!((r10 ^ e3) & 3)) { e: { - if (!(3 & r10) || !a5) { - a5 = r10; + if (!(3 & r10) || !a4) { + a4 = r10; break e; } - for (a5 = r10; ; ) { - if (s3[0 | a5] = d4[0 | e4], e4 = e4 + 1 | 0, !(3 & (a5 = a5 + 1 | 0))) break e; - if (!(a5 >>> 0 < n4 >>> 0)) break; + for (a4 = r10; ; ) { + if (s2[0 | a4] = d3[0 | e3], e3 = e3 + 1 | 0, !(3 & (a4 = a4 + 1 | 0))) break e; + if (!(a4 >>> 0 < n3 >>> 0)) break; } } - i5 = -4 & n4; - if (!(i5 >>> 0 < 64) && !((f6 = i5 + -64 | 0) >>> 0 < a5 >>> 0)) for (; l4[a5 >> 2] = l4[e4 >> 2], l4[a5 + 4 >> 2] = l4[e4 + 4 >> 2], l4[a5 + 8 >> 2] = l4[e4 + 8 >> 2], l4[a5 + 12 >> 2] = l4[e4 + 12 >> 2], l4[a5 + 16 >> 2] = l4[e4 + 16 >> 2], l4[a5 + 20 >> 2] = l4[e4 + 20 >> 2], l4[a5 + 24 >> 2] = l4[e4 + 24 >> 2], l4[a5 + 28 >> 2] = l4[e4 + 28 >> 2], l4[a5 + 32 >> 2] = l4[e4 + 32 >> 2], l4[a5 + 36 >> 2] = l4[e4 + 36 >> 2], l4[a5 + 40 >> 2] = l4[e4 + 40 >> 2], l4[a5 + 44 >> 2] = l4[e4 + 44 >> 2], l4[a5 + 48 >> 2] = l4[e4 + 48 >> 2], l4[a5 + 52 >> 2] = l4[e4 + 52 >> 2], l4[a5 + 56 >> 2] = l4[e4 + 56 >> 2], l4[a5 + 60 >> 2] = l4[e4 + 60 >> 2], e4 = e4 - -64 | 0, f6 >>> 0 >= (a5 = a5 - -64 | 0) >>> 0; ) ; - if (a5 >>> 0 >= i5 >>> 0) break r; - for (; l4[a5 >> 2] = l4[e4 >> 2], e4 = e4 + 4 | 0, i5 >>> 0 > (a5 = a5 + 4 | 0) >>> 0; ) ; + i4 = -4 & n3; + if (!(i4 >>> 0 < 64) && !((f4 = i4 + -64 | 0) >>> 0 < a4 >>> 0)) for (; l3[a4 >> 2] = l3[e3 >> 2], l3[a4 + 4 >> 2] = l3[e3 + 4 >> 2], l3[a4 + 8 >> 2] = l3[e3 + 8 >> 2], l3[a4 + 12 >> 2] = l3[e3 + 12 >> 2], l3[a4 + 16 >> 2] = l3[e3 + 16 >> 2], l3[a4 + 20 >> 2] = l3[e3 + 20 >> 2], l3[a4 + 24 >> 2] = l3[e3 + 24 >> 2], l3[a4 + 28 >> 2] = l3[e3 + 28 >> 2], l3[a4 + 32 >> 2] = l3[e3 + 32 >> 2], l3[a4 + 36 >> 2] = l3[e3 + 36 >> 2], l3[a4 + 40 >> 2] = l3[e3 + 40 >> 2], l3[a4 + 44 >> 2] = l3[e3 + 44 >> 2], l3[a4 + 48 >> 2] = l3[e3 + 48 >> 2], l3[a4 + 52 >> 2] = l3[e3 + 52 >> 2], l3[a4 + 56 >> 2] = l3[e3 + 56 >> 2], l3[a4 + 60 >> 2] = l3[e3 + 60 >> 2], e3 = e3 - -64 | 0, f4 >>> 0 >= (a4 = a4 - -64 | 0) >>> 0; ) ; + if (a4 >>> 0 >= i4 >>> 0) break r; + for (; l3[a4 >> 2] = l3[e3 >> 2], e3 = e3 + 4 | 0, i4 >>> 0 > (a4 = a4 + 4 | 0) >>> 0; ) ; break r; } - if (n4 >>> 0 < 4 || (i5 = n4 - 4 | 0) >>> 0 < r10 >>> 0) { - a5 = r10; + if (n3 >>> 0 < 4 || (i4 = n3 - 4 | 0) >>> 0 < r10 >>> 0) { + a4 = r10; break r; } - for (a5 = r10; s3[0 | a5] = d4[0 | e4], s3[a5 + 1 | 0] = d4[e4 + 1 | 0], s3[a5 + 2 | 0] = d4[e4 + 2 | 0], s3[a5 + 3 | 0] = d4[e4 + 3 | 0], e4 = e4 + 4 | 0, i5 >>> 0 >= (a5 = a5 + 4 | 0) >>> 0; ) ; + for (a4 = r10; s2[0 | a4] = d3[0 | e3], s2[a4 + 1 | 0] = d3[e3 + 1 | 0], s2[a4 + 2 | 0] = d3[e3 + 2 | 0], s2[a4 + 3 | 0] = d3[e3 + 3 | 0], e3 = e3 + 4 | 0, i4 >>> 0 >= (a4 = a4 + 4 | 0) >>> 0; ) ; } - if (a5 >>> 0 < n4 >>> 0) for (; s3[0 | a5] = d4[0 | e4], e4 = e4 + 1 | 0, (0 | n4) != (0 | (a5 = a5 + 1 | 0)); ) ; + if (a4 >>> 0 < n3 >>> 0) for (; s2[0 | a4] = d3[0 | e3], e3 = e3 + 1 | 0, (0 | n3) != (0 | (a4 = a4 + 1 | 0)); ) ; return r10; } - function rs2(r10, e4, a5, i5, n4) { - var f6, b5, o4 = w4(0), k5 = 0, c5 = w4(0), s4 = w4(0), A4 = 0, d5 = 0, h5 = w4(0), v5 = w4(0); - if (!(d5 = (c5 = w4(a5 - i5)) != c5)) { - a5 = w4(0), o4 = p3[(k5 = (e4 << 2) + r10 | 0) + 208 >> 2]; + function rs2(r10, e3, a4, i4, n3) { + var f4, b4, o3 = w3(0), k4 = 0, c4 = w3(0), s3 = w3(0), A3 = 0, d4 = 0, h5 = w3(0), v4 = w3(0); + if (!(d4 = (c4 = w3(a4 - i4)) != c4)) { + a4 = w3(0), o3 = p2[(k4 = (e3 << 2) + r10 | 0) + 208 >> 2]; r: { e: { - k5 = l4[k5 + 208 >> 2]; + k4 = l3[k4 + 208 >> 2]; a: { - i: if ((0 | k5) != 2139156720) { - if ((0 | k5) == 2140081935) break e; - A4 = 4276; + i: if ((0 | k4) != 2139156720) { + if ((0 | k4) == 2140081935) break e; + A3 = 4276; n: { - if ((0 | k5) != 2141891242) { - if (o4 == o4) break n; - A4 = 4268; + if ((0 | k4) != 2141891242) { + if (o3 == o3) break n; + A3 = 4268; } - switch (a5 = p3[A4 >> 2], l4[A4 + 4 >> 2] - 1 | 0) { + switch (a4 = p2[A3 >> 2], l3[A3 + 4 >> 2] - 1 | 0) { case 0: break a; case 1: @@ -4817,29 +4818,29 @@ var init_asm = __esm({ break r; } } - if (f6 = (-1073741825 & k5) + 536870912 | 0, t3[2] = f6, a5 = u5(), !(1073741824 & k5)) break a; + if (f4 = (-1073741825 & k4) + 536870912 | 0, t2[2] = f4, a4 = u3(), !(1073741824 & k4)) break a; } - a5 = w4(w4(a5 * n4) * w4(0.009999999776482582)); + a4 = w3(w3(a4 * n3) * w3(0.009999999776482582)); } - if (a5 == a5) break e; + if (a4 == a4) break e; break r; } - s4 = w4(a5 - i5); + s3 = w3(a4 - i4); } - a5 = w4(0), o4 = p3[(r10 = (e4 << 2) + r10 | 0) + 216 >> 2]; + a4 = w3(0), o3 = p2[(r10 = (e3 << 2) + r10 | 0) + 216 >> 2]; f: { t: { - e4 = l4[r10 + 216 >> 2]; + e3 = l3[r10 + 216 >> 2]; b: { - o: if ((0 | e4) != 2139156720) { - if ((0 | e4) == 2140081935) break t; + o: if ((0 | e3) != 2139156720) { + if ((0 | e3) == 2140081935) break t; r10 = 4276; k: { - if ((0 | e4) != 2141891242) { - if (o4 == o4) break k; + if ((0 | e3) != 2141891242) { + if (o3 == o3) break k; r10 = 4268; } - switch (a5 = p3[r10 >> 2], o4 = w4(34028234663852886e22), l4[r10 + 4 >> 2] - 1 | 0) { + switch (a4 = p2[r10 >> 2], o3 = w3(34028234663852886e22), l3[r10 + 4 >> 2] - 1 | 0) { case 0: break b; case 1: @@ -4848,142 +4849,142 @@ var init_asm = __esm({ break f; } } - if (b5 = (-1073741825 & e4) + 536870912 | 0, t3[2] = b5, a5 = u5(), !(1073741824 & e4)) break b; + if (b4 = (-1073741825 & e3) + 536870912 | 0, t2[2] = b4, a4 = u3(), !(1073741824 & e3)) break b; } - a5 = w4(w4(a5 * n4) * w4(0.009999999776482582)); + a4 = w3(w3(a4 * n3) * w3(0.009999999776482582)); } - if (a5 == a5) break t; - o4 = w4(34028234663852886e22); + if (a4 == a4) break t; + o3 = w3(34028234663852886e22); break f; } - o4 = w4(a5 - i5); + o3 = w3(a4 - i4); } - if (h5 = c5, v5 = es(c5, o4), !((r10 = (a5 = o4 != o4 | d5 ? h5 : v5) != a5) | s4 != s4)) return eu2(a5, s4); - c5 = r10 ? s4 : a5; + if (h5 = c4, v4 = es(c4, o3), !((r10 = (a4 = o3 != o3 | d4 ? h5 : v4) != a4) | s3 != s3)) return eu2(a4, s3); + c4 = r10 ? s3 : a4; } - return c5; + return c4; } - function rA2(r10, e4, a5, i5, n4, f6, t4, b5, o4, k5, c5, u6, s4) { - var A4 = w4(0), l5 = w4(0), d5 = 0, h5 = 0, v5 = w4(0), m5 = w4(0), N4 = w4(0), E5 = 0, G4 = 0; - if (o4 < w4(0) | k5 < w4(0)) r10 = 0; + function rA2(r10, e3, a4, i4, n3, f4, t3, b4, o3, k4, c4, u4, s3) { + var A3 = w3(0), l4 = w3(0), d4 = 0, h5 = 0, v4 = w3(0), m4 = w3(0), N3 = w3(0), E4 = 0, G3 = 0; + if (o3 < w3(0) | k4 < w3(0)) r10 = 0; else { - v5 = f6, m5 = e4, N4 = i5, l5 = b5; - r: if (s4) { - if (A4 = p3[s4 + 16 >> 2], l5 = b5, A4 == w4(0)) break r; - m5 = rH2(+e4, E5 = +A4, 0, 0), N4 = rH2(+i5, E5, 0, 0), v5 = rH2(+f6, E5, 0, 0), l5 = rH2(+b5, E5, 0, 0); + v4 = f4, m4 = e3, N3 = i4, l4 = b4; + r: if (s3) { + if (A3 = p2[s3 + 16 >> 2], l4 = b4, A3 == w3(0)) break r; + m4 = rH2(+e3, E4 = +A3, 0, 0), N3 = rH2(+i4, E4, 0, 0), v4 = rH2(+f4, E4, 0, 0), l4 = rH2(+b4, E4, 0, 0); } - A4 = l5, s4 = 0; - e: if ((0 | r10) == (0 | n4)) { - if ((G4 = v5 != v5) | (s4 = m5 != m5)) { - s4 &= G4; + A3 = l4, s3 = 0; + e: if ((0 | r10) == (0 | n3)) { + if ((G3 = v4 != v4) | (s3 = m4 != m4)) { + s3 &= G3; break e; } - s4 = w4(y3(w4(v5 - m5))) < w4(9999999747378752e-20); + s3 = w3(y2(w3(v4 - m4))) < w3(9999999747378752e-20); } - G4 = s4; - a: if ((0 | a5) == (0 | t4)) { - if ((d5 = A4 != A4) | (s4 = N4 != N4)) { - d5 &= s4; + G3 = s3; + a: if ((0 | a4) == (0 | t3)) { + if ((d4 = A3 != A3) | (s3 = N3 != N3)) { + d4 &= s3; break a; } - d5 = w4(y3(w4(A4 - N4))) < w4(9999999747378752e-20); + d4 = w3(y2(w3(A3 - N3))) < w3(9999999747378752e-20); } - h5 = 1, s4 = 1; - i: if (!G4) { - e4 = w4(e4 - c5); + h5 = 1, s3 = 1; + i: if (!G3) { + e3 = w3(e3 - c4); n: if ((0 | r10) != 1) { - if (!((r10 = (0 | r10) != 2) | n4)) { - if (!(e4 >= o4)) break n; + if (!((r10 = (0 | r10) != 2) | n3)) { + if (!(e3 >= o3)) break n; break i; } - if (s4 = 0, !(e4 < f6) | (r10 | (0 | n4) != 2 | (e4 != e4 | f6 != f6 | o4 != o4)) || (s4 = 1, e4 >= o4)) break i; + if (s3 = 0, !(e3 < f4) | (r10 | (0 | n3) != 2 | (e3 != e3 | f4 != f4 | o3 != o3)) || (s3 = 1, e3 >= o3)) break i; } - if ((n4 = e4 != e4) | (r10 = o4 != o4)) { - s4 = r10 & n4; + if ((n3 = e3 != e3) | (r10 = o3 != o3)) { + s3 = r10 & n3; break i; } - s4 = w4(y3(w4(e4 - o4))) < w4(9999999747378752e-20); + s3 = w3(y2(w3(e3 - o3))) < w3(9999999747378752e-20); } - f: if (!d5) { - e4 = w4(i5 - u6); - t: if ((0 | a5) != 1) { - if (!((r10 = (0 | a5) != 2) | t4)) { - if (!(e4 >= k5)) break t; + f: if (!d4) { + e3 = w3(i4 - u4); + t: if ((0 | a4) != 1) { + if (!((r10 = (0 | a4) != 2) | t3)) { + if (!(e3 >= k4)) break t; break f; } - if (h5 = 0, !(e4 < b5) | (r10 | (0 | t4) != 2 | (e4 != e4 | b5 != b5 | k5 != k5)) || (h5 = 1, e4 >= k5)) break f; + if (h5 = 0, !(e3 < b4) | (r10 | (0 | t3) != 2 | (e3 != e3 | b4 != b4 | k4 != k4)) || (h5 = 1, e3 >= k4)) break f; } - if ((a5 = e4 != e4) | (r10 = k5 != k5)) { - h5 = r10 & a5; + if ((a4 = e3 != e3) | (r10 = k4 != k4)) { + h5 = r10 & a4; break f; } - h5 = w4(y3(w4(e4 - k5))) < w4(9999999747378752e-20); + h5 = w3(y2(w3(e3 - k4))) < w3(9999999747378752e-20); } - r10 = s4 & h5; + r10 = s3 & h5; } return r10; } function rl3(r10) { - var e4, a5, i5, n4 = 0, f6 = 0, b5 = 0, k5 = 0, c5 = 0, u6 = 0, s4 = 0, A4 = 0; - if (e4 = +r10, o3[0] = e4, c5 = 0 | t3[1], b5 = 0 | t3[0], (0 | (k5 = c5 >>> 20 & 2047)) == 2047) return (r10 *= 1) / r10; - if (!(n4 = b5 << 1) & (0 | (u6 = c5 << 1 | b5 >>> 31)) == 2145386496 | u6 >>> 0 < 2145386496) return !n4 & (0 | u6) == 2145386496 ? 0 * r10 : r10; + var e3, a4, i4, n3 = 0, f4 = 0, b4 = 0, k4 = 0, c4 = 0, u4 = 0, s3 = 0, A3 = 0; + if (e3 = +r10, o2[0] = e3, c4 = 0 | t2[1], b4 = 0 | t2[0], (0 | (k4 = c4 >>> 20 & 2047)) == 2047) return (r10 *= 1) / r10; + if (!(n3 = b4 << 1) & (0 | (u4 = c4 << 1 | b4 >>> 31)) == 2145386496 | u4 >>> 0 < 2145386496) return !n3 & (0 | u4) == 2145386496 ? 0 * r10 : r10; r: { - if (!k5) { - if (k5 = 0, f6 = b5 << 12, (0 | (n4 = c5 << 12 | b5 >>> 20)) > 0 | (0 | n4) >= 0) for (; k5 = k5 - 1 | 0, n4 = n4 << 1 | f6 >>> 31, f6 <<= 1, (0 | n4) > 0 | (0 | n4) >= 0; ) ; - f6 = 31 & (n4 = 1 - k5 | 0), (63 & n4) >>> 0 >= 32 ? (n4 = b5 << f6, b5 = 0) : (n4 = (1 << f6) - 1 & b5 >>> 32 - f6 | c5 << f6, b5 <<= f6); + if (!k4) { + if (k4 = 0, f4 = b4 << 12, (0 | (n3 = c4 << 12 | b4 >>> 20)) > 0 | (0 | n3) >= 0) for (; k4 = k4 - 1 | 0, n3 = n3 << 1 | f4 >>> 31, f4 <<= 1, (0 | n3) > 0 | (0 | n3) >= 0; ) ; + f4 = 31 & (n3 = 1 - k4 | 0), (63 & n3) >>> 0 >= 32 ? (n3 = b4 << f4, b4 = 0) : (n3 = (1 << f4) - 1 & b4 >>> 32 - f4 | c4 << f4, b4 <<= f4); break r; } - n4 = 1048575 & c5 | 1048576; + n3 = 1048575 & c4 | 1048576; } - if (f6 = b5, (0 | k5) > 1023) { + if (f4 = b4, (0 | k4) > 1023) { for (; ; ) { - if (!((0 | (b5 = n4 + -1048576 | 0)) < 0) && !((n4 = b5) | f6)) return 0 * r10; - if (n4 = n4 << 1 | f6 >>> 31, f6 <<= 1, !((0 | (k5 = k5 - 1 | 0)) > 1023)) break; + if (!((0 | (b4 = n3 + -1048576 | 0)) < 0) && !((n3 = b4) | f4)) return 0 * r10; + if (n3 = n3 << 1 | f4 >>> 31, f4 <<= 1, !((0 | (k4 = k4 - 1 | 0)) > 1023)) break; } - k5 = 1023; + k4 = 1023; } - if (!((0 | (b5 = n4 + -1048576 | 0)) < 0) && !((n4 = b5) | f6)) return 0 * r10; - if ((0 | n4) == 1048575 | n4 >>> 0 < 1048575) for (; k5 = k5 - 1 | 0, b5 = n4 >>> 0 < 524288, u6 = n4 << 1 | f6 >>> 31, f6 <<= 1, n4 = u6, b5; ) ; - return A4 = -2147483648 & c5, u6 = n4 + -1048576 | k5 << 20, s4 = f6, c5 = n4, s4 = f6, f6 = 31 & (b5 = 1 - k5 | 0), (63 & b5) >>> 0 >= 32 ? (n4 = 0, b5 = c5 >>> f6 | 0) : (n4 = c5 >>> f6 | 0, b5 = ((1 << f6) - 1 & c5) << 32 - f6 | s4 >>> f6), a5 = ((f6 = (0 | k5) > 0) ? s4 : b5) | 0, t3[0] = a5, i5 = (f6 ? u6 : n4) | A4, t3[1] = i5, +o3[0]; + if (!((0 | (b4 = n3 + -1048576 | 0)) < 0) && !((n3 = b4) | f4)) return 0 * r10; + if ((0 | n3) == 1048575 | n3 >>> 0 < 1048575) for (; k4 = k4 - 1 | 0, b4 = n3 >>> 0 < 524288, u4 = n3 << 1 | f4 >>> 31, f4 <<= 1, n3 = u4, b4; ) ; + return A3 = -2147483648 & c4, u4 = n3 + -1048576 | k4 << 20, s3 = f4, c4 = n3, s3 = f4, f4 = 31 & (b4 = 1 - k4 | 0), (63 & b4) >>> 0 >= 32 ? (n3 = 0, b4 = c4 >>> f4 | 0) : (n3 = c4 >>> f4 | 0, b4 = ((1 << f4) - 1 & c4) << 32 - f4 | s3 >>> f4), a4 = ((f4 = (0 | k4) > 0) ? s3 : b4) | 0, t2[0] = a4, i4 = (f4 ? u4 : n3) | A3, t2[1] = i4, +o2[0]; } function rd2(r10) { - var e4 = 0, a5 = 0, i5 = 0, n4 = 0, f6 = 0; - a5 = (i5 = l4[1396]) + (e4 = r10 + 7 & -8) | 0; + var e3 = 0, a4 = 0, i4 = 0, n3 = 0, f4 = 0; + a4 = (i4 = l3[1396]) + (e3 = r10 + 7 & -8) | 0; r: { - if (!((a5 >>> 0 <= i5 >>> 0 ? e4 : 0) || a5 >>> 0 > eU() << 16 >>> 0 && !(0 | D4(0 | a5)))) { - l4[1396] = a5; + if (!((a4 >>> 0 <= i4 >>> 0 ? e3 : 0) || a4 >>> 0 > eU() << 16 >>> 0 && !(0 | D3(0 | a4)))) { + l3[1396] = a4; break r; } - l4[1761] = 48, i5 = -1; + l3[1761] = 48, i4 = -1; } - if ((0 | i5) != -1) { - l4[(a5 = (e4 = r10 + i5 | 0) - 16 | 0) + 12 >> 2] = 16, l4[a5 >> 2] = 16, f6 = (r10 = l4[1728]) ? l4[r10 + 8 >> 2] : 0; + if ((0 | i4) != -1) { + l3[(a4 = (e3 = r10 + i4 | 0) - 16 | 0) + 12 >> 2] = 16, l3[a4 >> 2] = 16, f4 = (r10 = l3[1728]) ? l3[r10 + 8 >> 2] : 0; a: { i: { - if ((0 | f6) == (0 | i5)) { - if (n4 = i5 - (-2 & l4[i5 - 4 >> 2]) | 0, f6 = l4[n4 - 4 >> 2], l4[r10 + 8 >> 2] = e4, e4 = -16, !(1 & s3[((r10 = n4 - (-2 & f6) | 0) + l4[r10 >> 2] | 0) - 4 | 0])) break i; - e4 = l4[r10 + 4 >> 2], l4[e4 + 8 >> 2] = l4[r10 + 8 >> 2], l4[l4[r10 + 8 >> 2] + 4 >> 2] = e4, a5 = a5 - r10 | 0, l4[r10 >> 2] = a5; + if ((0 | f4) == (0 | i4)) { + if (n3 = i4 - (-2 & l3[i4 - 4 >> 2]) | 0, f4 = l3[n3 - 4 >> 2], l3[r10 + 8 >> 2] = e3, e3 = -16, !(1 & s2[((r10 = n3 - (-2 & f4) | 0) + l3[r10 >> 2] | 0) - 4 | 0])) break i; + e3 = l3[r10 + 4 >> 2], l3[e3 + 8 >> 2] = l3[r10 + 8 >> 2], l3[l3[r10 + 8 >> 2] + 4 >> 2] = e3, a4 = a4 - r10 | 0, l3[r10 >> 2] = a4; break a; } - l4[i5 + 12 >> 2] = 16, l4[i5 >> 2] = 16, l4[i5 + 8 >> 2] = e4, l4[i5 + 4 >> 2] = r10, l4[1728] = i5, e4 = 16; + l3[i4 + 12 >> 2] = 16, l3[i4 >> 2] = 16, l3[i4 + 8 >> 2] = e3, l3[i4 + 4 >> 2] = r10, l3[1728] = i4, e3 = 16; } - a5 = a5 - (r10 = e4 + i5 | 0) | 0, l4[r10 >> 2] = a5; + a4 = a4 - (r10 = e3 + i4 | 0) | 0, l3[r10 >> 2] = a4; } - l4[((-4 & a5) + r10 | 0) - 4 >> 2] = 1 | a5, e4 = l4[r10 >> 2] - 8 | 0; + l3[((-4 & a4) + r10 | 0) - 4 >> 2] = 1 | a4, e3 = l3[r10 >> 2] - 8 | 0; n: { - if (e4 >>> 0 <= 127) { - a5 = (e4 >>> 3 | 0) - 1 | 0; + if (e3 >>> 0 <= 127) { + a4 = (e3 >>> 3 | 0) - 1 | 0; break n; } - if (n4 = E4(e4), a5 = ((e4 >>> 29 - n4 ^ 4) - (n4 << 2) | 0) + 110 | 0, e4 >>> 0 <= 4095) break n; - a5 = (a5 = ((e4 >>> 30 - n4 ^ 2) - (n4 << 1) | 0) + 71 | 0) >>> 0 >= 63 ? 63 : a5; + if (n3 = E3(e3), a4 = ((e3 >>> 29 - n3 ^ 4) - (n3 << 2) | 0) + 110 | 0, e3 >>> 0 <= 4095) break n; + a4 = (a4 = ((e3 >>> 30 - n3 ^ 2) - (n3 << 1) | 0) + 71 | 0) >>> 0 >= 63 ? 63 : a4; } - e4 = a5 << 4, l4[r10 + 4 >> 2] = e4 + 5888, e4 = e4 + 5896 | 0, l4[r10 + 8 >> 2] = l4[e4 >> 2], l4[e4 >> 2] = r10, l4[l4[r10 + 8 >> 2] + 4 >> 2] = r10, e4 = l4[1730], n4 = l4[1731], r10 = 31 & a5, (63 & a5) >>> 0 >= 32 ? (a5 = 1 << r10, f6 = 0) : a5 = (f6 = 1 << r10) - 1 & 1 >>> 32 - r10, l4[1730] = f6 | e4, l4[1731] = a5 | n4; + e3 = a4 << 4, l3[r10 + 4 >> 2] = e3 + 5888, e3 = e3 + 5896 | 0, l3[r10 + 8 >> 2] = l3[e3 >> 2], l3[e3 >> 2] = r10, l3[l3[r10 + 8 >> 2] + 4 >> 2] = r10, e3 = l3[1730], n3 = l3[1731], r10 = 31 & a4, (63 & a4) >>> 0 >= 32 ? (a4 = 1 << r10, f4 = 0) : a4 = (f4 = 1 << r10) - 1 & 1 >>> 32 - r10, l3[1730] = f4 | e3, l3[1731] = a4 | n3; } - return (0 | i5) != -1; + return (0 | i4) != -1; } - function rh2(r10, e4, a5) { - var i5 = 0, n4 = 0, f6 = 0, t4 = 0, b5 = 0, o4 = 0, k5 = 0, c5 = 0, u6 = 0; + function rh2(r10, e3, a4) { + var i4 = 0, n3 = 0, f4 = 0, t3 = 0, b4 = 0, o3 = 0, k4 = 0, c4 = 0, u4 = 0; r: { e: { a: { @@ -4994,65 +4995,65 @@ var init_asm = __esm({ b: { o: { k: { - if (e4) { - if (!a5) break k; + if (e3) { + if (!a4) break k; break o; } - ra3 = 0, r10 = (r10 >>> 0) / (a5 >>> 0) | 0; + ra3 = 0, r10 = (r10 >>> 0) / (a4 >>> 0) | 0; break r; } if (!r10) break b; break t; } - if (!(a5 - 1 & a5)) break f; - t4 = 0 - (f6 = (E4(a5) + 33 | 0) - E4(e4) | 0) | 0; + if (!(a4 - 1 & a4)) break f; + t3 = 0 - (f4 = (E3(a4) + 33 | 0) - E3(e3) | 0) | 0; break i; } - ra3 = 0, r10 = (e4 >>> 0) / 0 | 0; + ra3 = 0, r10 = (e3 >>> 0) / 0 | 0; break r; } - if ((i5 = 32 - E4(e4) | 0) >>> 0 < 31) break n; + if ((i4 = 32 - E3(e3) | 0) >>> 0 < 31) break n; break a; } - if ((0 | a5) == 1) break e; - a5 = 31 & (f6 = a5 ? 31 - E4(a5 - 1 ^ a5) | 0 : 32), (63 & f6) >>> 0 >= 32 ? r10 = e4 >>> a5 | 0 : (i5 = e4 >>> a5 | 0, r10 = ((1 << a5) - 1 & e4) << 32 - a5 | r10 >>> a5), ra3 = i5; + if ((0 | a4) == 1) break e; + a4 = 31 & (f4 = a4 ? 31 - E3(a4 - 1 ^ a4) | 0 : 32), (63 & f4) >>> 0 >= 32 ? r10 = e3 >>> a4 | 0 : (i4 = e3 >>> a4 | 0, r10 = ((1 << a4) - 1 & e3) << 32 - a4 | r10 >>> a4), ra3 = i4; break r; } - f6 = i5 + 1 | 0, t4 = 63 - i5 | 0; + f4 = i4 + 1 | 0, t3 = 63 - i4 | 0; } - if (n4 = 31 & (i5 = 63 & f6), i5 >>> 0 >= 32 ? (i5 = 0, b5 = e4 >>> n4 | 0) : (i5 = e4 >>> n4 | 0, b5 = ((1 << n4) - 1 & e4) << 32 - n4 | r10 >>> n4), t4 &= 63, n4 = 31 & t4, t4 >>> 0 >= 32 ? (e4 = r10 << n4, r10 = 0) : (e4 = (1 << n4) - 1 & r10 >>> 32 - n4 | e4 << n4, r10 <<= n4), f6) for (u6 = (0 | (t4 = a5 - 1 | 0)) == -1 ? -1 : 0; k5 = a5 & (n4 = u6 - ((o4 = i5 << 1 | b5 >>> 31) + ((i5 = b5 << 1 | e4 >>> 31) >>> 0 > t4 >>> 0) | 0) >> 31), b5 = i5 - k5 | 0, i5 = o4 - (i5 >>> 0 < k5 >>> 0) | 0, e4 = e4 << 1 | r10 >>> 31, r10 = c5 | r10 << 1, c5 = 1 & n4, f6 = f6 - 1 | 0; ) ; - ra3 = e4 << 1 | r10 >>> 31, r10 = c5 | r10 << 1; + if (n3 = 31 & (i4 = 63 & f4), i4 >>> 0 >= 32 ? (i4 = 0, b4 = e3 >>> n3 | 0) : (i4 = e3 >>> n3 | 0, b4 = ((1 << n3) - 1 & e3) << 32 - n3 | r10 >>> n3), t3 &= 63, n3 = 31 & t3, t3 >>> 0 >= 32 ? (e3 = r10 << n3, r10 = 0) : (e3 = (1 << n3) - 1 & r10 >>> 32 - n3 | e3 << n3, r10 <<= n3), f4) for (u4 = (0 | (t3 = a4 - 1 | 0)) == -1 ? -1 : 0; k4 = a4 & (n3 = u4 - ((o3 = i4 << 1 | b4 >>> 31) + ((i4 = b4 << 1 | e3 >>> 31) >>> 0 > t3 >>> 0) | 0) >> 31), b4 = i4 - k4 | 0, i4 = o3 - (i4 >>> 0 < k4 >>> 0) | 0, e3 = e3 << 1 | r10 >>> 31, r10 = c4 | r10 << 1, c4 = 1 & n3, f4 = f4 - 1 | 0; ) ; + ra3 = e3 << 1 | r10 >>> 31, r10 = c4 | r10 << 1; break r; } - r10 = 0, e4 = 0; + r10 = 0, e3 = 0; } - ra3 = e4; + ra3 = e3; } return r10; } - function rv2(r10, e4, a5) { - var i5, n4, f6 = w4(0), b5 = w4(0); + function rv2(r10, e3, a4) { + var i4, n3, f4 = w3(0), b4 = w3(0); r: { e: { a: { - if ((-2 & e4) == 2) { - if (e4 = l4[r10 + 188 >> 2], f6 = p3[r10 + 188 >> 2], (0 | e4) == 2139156720 | (0 | e4) == 2140081935 | (0 | e4) == 2141891242 | f6 == f6 || (e4 = l4[r10 + 196 >> 2], f6 = p3[r10 + 196 >> 2], (0 | e4) == 2139156720 | (0 | e4) == 2140081935 | (0 | e4) == 2141891242 | f6 == f6)) break a; + if ((-2 & e3) == 2) { + if (e3 = l3[r10 + 188 >> 2], f4 = p2[r10 + 188 >> 2], (0 | e3) == 2139156720 | (0 | e3) == 2140081935 | (0 | e3) == 2141891242 | f4 == f4 || (e3 = l3[r10 + 196 >> 2], f4 = p2[r10 + 196 >> 2], (0 | e3) == 2139156720 | (0 | e3) == 2140081935 | (0 | e3) == 2141891242 | f4 == f4)) break a; break e; } - if (e4 = l4[r10 + 192 >> 2], f6 = p3[r10 + 192 >> 2], (0 | e4) == 2139156720 | (0 | e4) == 2140081935 | (0 | e4) == 2141891242 | f6 == f6 || (f6 = p3[r10 + 196 >> 2], (0 | (e4 = l4[r10 + 196 >> 2])) == 2139156720 | (0 | e4) == 2140081935 | (0 | e4) == 2141891242)) break a; - if (f6 != f6) break e; + if (e3 = l3[r10 + 192 >> 2], f4 = p2[r10 + 192 >> 2], (0 | e3) == 2139156720 | (0 | e3) == 2140081935 | (0 | e3) == 2141891242 | f4 == f4 || (f4 = p2[r10 + 196 >> 2], (0 | (e3 = l3[r10 + 196 >> 2])) == 2139156720 | (0 | e3) == 2140081935 | (0 | e3) == 2141891242)) break a; + if (f4 != f4) break e; } - f6 = w4(0); + f4 = w3(0); i: { - n: if ((0 | e4) != 2139156720) { - if ((0 | e4) == 2140081935) break r; + n: if ((0 | e3) != 2139156720) { + if ((0 | e3) == 2140081935) break r; r10 = 4276; f: { - if ((0 | e4) != 2141891242) { - if (i5 = e4, t3[2] = i5, (f6 = u5()) == f6) break f; + if ((0 | e3) != 2141891242) { + if (i4 = e3, t2[2] = i4, (f4 = u3()) == f4) break f; r10 = 4268; } - switch (f6 = p3[r10 >> 2], b5 = w4(NaN), l4[r10 + 4 >> 2] - 1 | 0) { + switch (f4 = p2[r10 >> 2], b4 = w3(NaN), l3[r10 + 4 >> 2] - 1 | 0) { case 0: break r; case 1: @@ -5061,116 +5062,116 @@ var init_asm = __esm({ break i; } } - if (n4 = (-1073741825 & e4) + 536870912 | 0, t3[2] = n4, f6 = u5(), !(1073741824 & e4)) break r; + if (n3 = (-1073741825 & e3) + 536870912 | 0, t2[2] = n3, f4 = u3(), !(1073741824 & e3)) break r; } - b5 = w4(w4(f6 * a5) * w4(0.009999999776482582)); + b4 = w3(w3(f4 * a4) * w3(0.009999999776482582)); } - return b5; + return b4; } - f6 = w4(0); + f4 = w3(0); } - return f6; + return f4; } - function rp2(r10, e4, a5) { - var i5 = 0, n4 = 0, f6 = 0, t4 = 0; - if (n4 = ((i5 = r10 + 4 | 0) + e4 | 0) - 1 & 0 - e4, e4 = l4[r10 >> 2], n4 + a5 >>> 0 <= (e4 + r10 | 0) - 4 >>> 0) { - f6 = l4[r10 + 4 >> 2], l4[f6 + 8 >> 2] = l4[r10 + 8 >> 2], l4[l4[r10 + 8 >> 2] + 4 >> 2] = f6, (0 | i5) != (0 | n4) && (n4 = n4 - i5 | 0, f6 = r10 - (-2 & l4[r10 - 4 >> 2]) | 0, i5 = n4 + l4[f6 >> 2] | 0, l4[f6 >> 2] = i5, l4[(f6 + (-4 & i5) | 0) - 4 >> 2] = i5, r10 = r10 + n4 | 0, e4 = e4 - n4 | 0, l4[r10 >> 2] = e4); + function rp2(r10, e3, a4) { + var i4 = 0, n3 = 0, f4 = 0, t3 = 0; + if (n3 = ((i4 = r10 + 4 | 0) + e3 | 0) - 1 & 0 - e3, e3 = l3[r10 >> 2], n3 + a4 >>> 0 <= (e3 + r10 | 0) - 4 >>> 0) { + f4 = l3[r10 + 4 >> 2], l3[f4 + 8 >> 2] = l3[r10 + 8 >> 2], l3[l3[r10 + 8 >> 2] + 4 >> 2] = f4, (0 | i4) != (0 | n3) && (n3 = n3 - i4 | 0, f4 = r10 - (-2 & l3[r10 - 4 >> 2]) | 0, i4 = n3 + l3[f4 >> 2] | 0, l3[f4 >> 2] = i4, l3[(f4 + (-4 & i4) | 0) - 4 >> 2] = i4, r10 = r10 + n3 | 0, e3 = e3 - n3 | 0, l3[r10 >> 2] = e3); r: { - if (a5 + 24 >>> 0 <= e4 >>> 0) { - i5 = (r10 + a5 | 0) + 8 | 0, e4 = (e4 - a5 | 0) - 8 | 0, l4[i5 >> 2] = e4, l4[(i5 + (-4 & e4) | 0) - 4 >> 2] = 1 | e4, n4 = l4[i5 >> 2] - 8 | 0; + if (a4 + 24 >>> 0 <= e3 >>> 0) { + i4 = (r10 + a4 | 0) + 8 | 0, e3 = (e3 - a4 | 0) - 8 | 0, l3[i4 >> 2] = e3, l3[(i4 + (-4 & e3) | 0) - 4 >> 2] = 1 | e3, n3 = l3[i4 >> 2] - 8 | 0; e: { - if (n4 >>> 0 <= 127) { - e4 = (n4 >>> 3 | 0) - 1 | 0; + if (n3 >>> 0 <= 127) { + e3 = (n3 >>> 3 | 0) - 1 | 0; break e; } - if (f6 = E4(n4), e4 = ((n4 >>> 29 - f6 ^ 4) - (f6 << 2) | 0) + 110 | 0, n4 >>> 0 <= 4095) break e; - e4 = (e4 = ((n4 >>> 30 - f6 ^ 2) - (f6 << 1) | 0) + 71 | 0) >>> 0 >= 63 ? 63 : e4; + if (f4 = E3(n3), e3 = ((n3 >>> 29 - f4 ^ 4) - (f4 << 2) | 0) + 110 | 0, n3 >>> 0 <= 4095) break e; + e3 = (e3 = ((n3 >>> 30 - f4 ^ 2) - (f4 << 1) | 0) + 71 | 0) >>> 0 >= 63 ? 63 : e3; } - n4 = e4 << 4, l4[i5 + 4 >> 2] = n4 + 5888, n4 = n4 + 5896 | 0, l4[i5 + 8 >> 2] = l4[n4 >> 2], l4[n4 >> 2] = i5, l4[l4[i5 + 8 >> 2] + 4 >> 2] = i5, n4 = l4[1730], f6 = l4[1731], i5 = 31 & e4, (63 & e4) >>> 0 >= 32 ? (e4 = 1 << i5, i5 = 0) : (e4 = (t4 = 1 << i5) - 1 & 1 >>> 32 - i5, i5 = t4), l4[1730] = i5 | n4, l4[1731] = e4 | f6, e4 = a5 + 8 | 0, l4[r10 >> 2] = e4, l4[((-4 & e4) + r10 | 0) - 4 >> 2] = e4; + n3 = e3 << 4, l3[i4 + 4 >> 2] = n3 + 5888, n3 = n3 + 5896 | 0, l3[i4 + 8 >> 2] = l3[n3 >> 2], l3[n3 >> 2] = i4, l3[l3[i4 + 8 >> 2] + 4 >> 2] = i4, n3 = l3[1730], f4 = l3[1731], i4 = 31 & e3, (63 & e3) >>> 0 >= 32 ? (e3 = 1 << i4, i4 = 0) : (e3 = (t3 = 1 << i4) - 1 & 1 >>> 32 - i4, i4 = t3), l3[1730] = i4 | n3, l3[1731] = e3 | f4, e3 = a4 + 8 | 0, l3[r10 >> 2] = e3, l3[((-4 & e3) + r10 | 0) - 4 >> 2] = e3; break r; } - l4[(r10 + e4 | 0) - 4 >> 2] = e4; + l3[(r10 + e3 | 0) - 4 >> 2] = e3; } r10 = r10 + 4 | 0; } else r10 = 0; return r10; } - function rm2(r10, e4, a5) { - var i5 = 0, n4 = 0; - r: if ((0 | r10) != (0 | e4)) { - if (e4 - (n4 = r10 + a5 | 0) >>> 0 <= 0 - (a5 << 1) >>> 0) return ru3(r10, e4, a5); - i5 = (r10 ^ e4) & 3; + function rm2(r10, e3, a4) { + var i4 = 0, n3 = 0; + r: if ((0 | r10) != (0 | e3)) { + if (e3 - (n3 = r10 + a4 | 0) >>> 0 <= 0 - (a4 << 1) >>> 0) return ru3(r10, e3, a4); + i4 = (r10 ^ e3) & 3; e: { a: { - if (r10 >>> 0 < e4 >>> 0) { - if (i5) { - i5 = r10; + if (r10 >>> 0 < e3 >>> 0) { + if (i4) { + i4 = r10; break e; } if (!(3 & r10)) { - i5 = r10; + i4 = r10; break a; } - for (i5 = r10; ; ) { - if (!a5) break r; - if (s3[0 | i5] = d4[0 | e4], e4 = e4 + 1 | 0, a5 = a5 - 1 | 0, !(3 & (i5 = i5 + 1 | 0))) break; + for (i4 = r10; ; ) { + if (!a4) break r; + if (s2[0 | i4] = d3[0 | e3], e3 = e3 + 1 | 0, a4 = a4 - 1 | 0, !(3 & (i4 = i4 + 1 | 0))) break; } break a; } - i: if (!i5) { - if (3 & n4) for (; ; ) { - if (!a5) break r; - if (s3[0 | (i5 = (a5 = a5 - 1 | 0) + r10 | 0)] = d4[e4 + a5 | 0], !(3 & i5)) break; + i: if (!i4) { + if (3 & n3) for (; ; ) { + if (!a4) break r; + if (s2[0 | (i4 = (a4 = a4 - 1 | 0) + r10 | 0)] = d3[e3 + a4 | 0], !(3 & i4)) break; } - if (a5 >>> 0 <= 3) break i; - for (; l4[(a5 = a5 - 4 | 0) + r10 >> 2] = l4[e4 + a5 >> 2], a5 >>> 0 > 3; ) ; + if (a4 >>> 0 <= 3) break i; + for (; l3[(a4 = a4 - 4 | 0) + r10 >> 2] = l3[e3 + a4 >> 2], a4 >>> 0 > 3; ) ; } - if (!a5) break r; - for (; s3[(a5 = a5 - 1 | 0) + r10 | 0] = d4[e4 + a5 | 0], a5; ) ; + if (!a4) break r; + for (; s2[(a4 = a4 - 1 | 0) + r10 | 0] = d3[e3 + a4 | 0], a4; ) ; break r; } - if (a5 >>> 0 <= 3) break e; - for (; l4[i5 >> 2] = l4[e4 >> 2], e4 = e4 + 4 | 0, i5 = i5 + 4 | 0, (a5 = a5 - 4 | 0) >>> 0 > 3; ) ; + if (a4 >>> 0 <= 3) break e; + for (; l3[i4 >> 2] = l3[e3 >> 2], e3 = e3 + 4 | 0, i4 = i4 + 4 | 0, (a4 = a4 - 4 | 0) >>> 0 > 3; ) ; } - if (!a5) break r; - for (; s3[0 | i5] = d4[0 | e4], i5 = i5 + 1 | 0, e4 = e4 + 1 | 0, a5 = a5 - 1 | 0; ) ; + if (!a4) break r; + for (; s2[0 | i4] = d3[0 | e3], i4 = i4 + 1 | 0, e3 = e3 + 1 | 0, a4 = a4 - 1 | 0; ) ; } return r10; } - function rN2(r10, e4, a5, i5) { - r: switch (e4 - 9 | 0) { + function rN2(r10, e3, a4, i4) { + r: switch (e3 - 9 | 0) { case 0: - e4 = l4[a5 >> 2], l4[a5 >> 2] = e4 + 4, l4[r10 >> 2] = l4[e4 >> 2]; + e3 = l3[a4 >> 2], l3[a4 >> 2] = e3 + 4, l3[r10 >> 2] = l3[e3 >> 2]; return; case 6: - e4 = l4[a5 >> 2], l4[a5 >> 2] = e4 + 4, e4 = A3[e4 >> 1], l4[r10 >> 2] = e4, l4[r10 + 4 >> 2] = e4 >> 31; + e3 = l3[a4 >> 2], l3[a4 >> 2] = e3 + 4, e3 = A2[e3 >> 1], l3[r10 >> 2] = e3, l3[r10 + 4 >> 2] = e3 >> 31; return; case 7: - e4 = l4[a5 >> 2], l4[a5 >> 2] = e4 + 4, l4[r10 >> 2] = h4[e4 >> 1], l4[r10 + 4 >> 2] = 0; + e3 = l3[a4 >> 2], l3[a4 >> 2] = e3 + 4, l3[r10 >> 2] = h4[e3 >> 1], l3[r10 + 4 >> 2] = 0; return; case 8: - e4 = l4[a5 >> 2], l4[a5 >> 2] = e4 + 4, e4 = s3[0 | e4], l4[r10 >> 2] = e4, l4[r10 + 4 >> 2] = e4 >> 31; + e3 = l3[a4 >> 2], l3[a4 >> 2] = e3 + 4, e3 = s2[0 | e3], l3[r10 >> 2] = e3, l3[r10 + 4 >> 2] = e3 >> 31; return; case 9: - e4 = l4[a5 >> 2], l4[a5 >> 2] = e4 + 4, l4[r10 >> 2] = d4[0 | e4], l4[r10 + 4 >> 2] = 0; + e3 = l3[a4 >> 2], l3[a4 >> 2] = e3 + 4, l3[r10 >> 2] = d3[0 | e3], l3[r10 + 4 >> 2] = 0; return; case 16: - e4 = l4[a5 >> 2] + 7 & -8, l4[a5 >> 2] = e4 + 8, m4[r10 >> 3] = m4[e4 >> 3]; + e3 = l3[a4 >> 2] + 7 & -8, l3[a4 >> 2] = e3 + 8, m3[r10 >> 3] = m3[e3 >> 3]; return; case 17: - eY[0 | i5](r10, a5); + eY[0 | i4](r10, a4); default: return; case 1: case 4: case 14: - e4 = l4[a5 >> 2], l4[a5 >> 2] = e4 + 4, e4 = l4[e4 >> 2], l4[r10 >> 2] = e4, l4[r10 + 4 >> 2] = e4 >> 31; + e3 = l3[a4 >> 2], l3[a4 >> 2] = e3 + 4, e3 = l3[e3 >> 2], l3[r10 >> 2] = e3, l3[r10 + 4 >> 2] = e3 >> 31; return; case 2: case 5: case 11: case 15: - e4 = l4[a5 >> 2], l4[a5 >> 2] = e4 + 4, l4[r10 >> 2] = l4[e4 >> 2], l4[r10 + 4 >> 2] = 0; + e3 = l3[a4 >> 2], l3[a4 >> 2] = e3 + 4, l3[r10 >> 2] = l3[e3 >> 2], l3[r10 + 4 >> 2] = 0; return; case 3: case 10: @@ -5178,115 +5179,115 @@ var init_asm = __esm({ case 13: break r; } - e4 = l4[a5 >> 2] + 7 & -8, l4[a5 >> 2] = e4 + 8, a5 = l4[e4 + 4 >> 2], l4[r10 >> 2] = l4[e4 >> 2], l4[r10 + 4 >> 2] = a5; + e3 = l3[a4 >> 2] + 7 & -8, l3[a4 >> 2] = e3 + 8, a4 = l3[e3 + 4 >> 2], l3[r10 >> 2] = l3[e3 >> 2], l3[r10 + 4 >> 2] = a4; } function rw2() { - rr2(7004, 3018), $3(7005, 2479, 1, 1, 0), V3(7006, 2139, 1, -128, 127), V3(7007, 2132, 1, -128, 127), V3(7008, 2130, 1, 0, 255), V3(7009, 1286, 2, -32768, 32767), V3(7010, 1277, 2, 0, 65535), V3(7011, 1315, 4, -2147483648, 2147483647), V3(7012, 1306, 4, 0, -1), V3(7013, 2658, 4, -2147483648, 2147483647), V3(7014, 2649, 4, 0, -1), eV(7015, 1776, -2147483648, 2147483647), eV(7016, 1775, 0, -1), C3(7017, 1769, 4), C3(7018, 2966, 8), S4(7019, 2676), S4(7020, 3835), O4(7021, 4, 2663), O4(7022, 2, 2688), O4(7023, 4, 2703), q3(7024, 2484), Z2(7025, 0, 3766), Z2(7026, 0, 3868), Z2(7027, 1, 3796), Z2(7028, 2, 3398), Z2(7029, 3, 3429), Z2(7030, 4, 3469), Z2(7031, 5, 3498), Z2(7032, 4, 3905), Z2(7033, 5, 3935), Z2(7026, 0, 3600), Z2(7027, 1, 3567), Z2(7028, 2, 3666), Z2(7029, 3, 3632), Z2(7030, 4, 3733), Z2(7031, 5, 3699), Z2(7034, 6, 3536), Z2(7035, 7, 3974); + rr2(7004, 3018), $2(7005, 2479, 1, 1, 0), V2(7006, 2139, 1, -128, 127), V2(7007, 2132, 1, -128, 127), V2(7008, 2130, 1, 0, 255), V2(7009, 1286, 2, -32768, 32767), V2(7010, 1277, 2, 0, 65535), V2(7011, 1315, 4, -2147483648, 2147483647), V2(7012, 1306, 4, 0, -1), V2(7013, 2658, 4, -2147483648, 2147483647), V2(7014, 2649, 4, 0, -1), eV(7015, 1776, -2147483648, 2147483647), eV(7016, 1775, 0, -1), C2(7017, 1769, 4), C2(7018, 2966, 8), S3(7019, 2676), S3(7020, 3835), O3(7021, 4, 2663), O3(7022, 2, 2688), O3(7023, 4, 2703), q2(7024, 2484), Z2(7025, 0, 3766), Z2(7026, 0, 3868), Z2(7027, 1, 3796), Z2(7028, 2, 3398), Z2(7029, 3, 3429), Z2(7030, 4, 3469), Z2(7031, 5, 3498), Z2(7032, 4, 3905), Z2(7033, 5, 3935), Z2(7026, 0, 3600), Z2(7027, 1, 3567), Z2(7028, 2, 3666), Z2(7029, 3, 3632), Z2(7030, 4, 3733), Z2(7031, 5, 3699), Z2(7034, 6, 3536), Z2(7035, 7, 3974); } - function ry2(r10, e4, a5) { - var i5 = 0, n4 = 0, f6 = 0, t4 = 0; - r: if (a5) { - if (s3[0 | r10] = e4, s3[(i5 = r10 + a5 | 0) - 1 | 0] = e4, a5 >>> 0 < 3 || (s3[r10 + 2 | 0] = e4, s3[r10 + 1 | 0] = e4, s3[i5 - 3 | 0] = e4, s3[i5 - 2 | 0] = e4, a5 >>> 0 < 7) || (s3[r10 + 3 | 0] = e4, s3[i5 - 4 | 0] = e4, a5 >>> 0 < 9) || (n4 = (i5 = 0 - r10 & 3) + r10 | 0, e4 = N3(255 & e4, 16843009), l4[n4 >> 2] = e4, l4[(a5 = (i5 = a5 - i5 & -4) + n4 | 0) - 4 >> 2] = e4, i5 >>> 0 < 9) || (l4[n4 + 8 >> 2] = e4, l4[n4 + 4 >> 2] = e4, l4[a5 - 8 >> 2] = e4, l4[a5 - 12 >> 2] = e4, i5 >>> 0 < 25) || (l4[n4 + 24 >> 2] = e4, l4[n4 + 20 >> 2] = e4, l4[n4 + 16 >> 2] = e4, l4[n4 + 12 >> 2] = e4, l4[a5 - 16 >> 2] = e4, l4[a5 - 20 >> 2] = e4, l4[a5 - 24 >> 2] = e4, l4[a5 - 28 >> 2] = e4, (a5 = i5 - (t4 = 4 & n4 | 24) | 0) >>> 0 < 32)) break r; - for (i5 = r9(e4, 0, 1, 1), f6 = ra3, e4 = n4 + t4 | 0; l4[e4 + 24 >> 2] = i5, l4[e4 + 28 >> 2] = f6, l4[e4 + 16 >> 2] = i5, l4[e4 + 20 >> 2] = f6, l4[e4 + 8 >> 2] = i5, l4[e4 + 12 >> 2] = f6, l4[e4 >> 2] = i5, l4[e4 + 4 >> 2] = f6, e4 = e4 + 32 | 0, (a5 = a5 - 32 | 0) >>> 0 > 31; ) ; + function ry2(r10, e3, a4) { + var i4 = 0, n3 = 0, f4 = 0, t3 = 0; + r: if (a4) { + if (s2[0 | r10] = e3, s2[(i4 = r10 + a4 | 0) - 1 | 0] = e3, a4 >>> 0 < 3 || (s2[r10 + 2 | 0] = e3, s2[r10 + 1 | 0] = e3, s2[i4 - 3 | 0] = e3, s2[i4 - 2 | 0] = e3, a4 >>> 0 < 7) || (s2[r10 + 3 | 0] = e3, s2[i4 - 4 | 0] = e3, a4 >>> 0 < 9) || (n3 = (i4 = 0 - r10 & 3) + r10 | 0, e3 = N2(255 & e3, 16843009), l3[n3 >> 2] = e3, l3[(a4 = (i4 = a4 - i4 & -4) + n3 | 0) - 4 >> 2] = e3, i4 >>> 0 < 9) || (l3[n3 + 8 >> 2] = e3, l3[n3 + 4 >> 2] = e3, l3[a4 - 8 >> 2] = e3, l3[a4 - 12 >> 2] = e3, i4 >>> 0 < 25) || (l3[n3 + 24 >> 2] = e3, l3[n3 + 20 >> 2] = e3, l3[n3 + 16 >> 2] = e3, l3[n3 + 12 >> 2] = e3, l3[a4 - 16 >> 2] = e3, l3[a4 - 20 >> 2] = e3, l3[a4 - 24 >> 2] = e3, l3[a4 - 28 >> 2] = e3, (a4 = i4 - (t3 = 4 & n3 | 24) | 0) >>> 0 < 32)) break r; + for (i4 = r9(e3, 0, 1, 1), f4 = ra3, e3 = n3 + t3 | 0; l3[e3 + 24 >> 2] = i4, l3[e3 + 28 >> 2] = f4, l3[e3 + 16 >> 2] = i4, l3[e3 + 20 >> 2] = f4, l3[e3 + 8 >> 2] = i4, l3[e3 + 12 >> 2] = f4, l3[e3 >> 2] = i4, l3[e3 + 4 >> 2] = f4, e3 = e3 + 32 | 0, (a4 = a4 - 32 | 0) >>> 0 > 31; ) ; } return r10; } function rE2(r10) { - var e4 = 0, a5 = 0, i5 = 0, n4 = 0, f6 = 0; + var e3 = 0, a4 = 0, i4 = 0, n3 = 0, f4 = 0; if (r10 |= 0) { - a5 = n4 = l4[(e4 = r10 - 4 | 0) >> 2], i5 = e4, (0 | (r10 = -2 & (f6 = l4[r10 - 8 >> 2]))) != (0 | f6) && (a5 = l4[(i5 = e4 - r10 | 0) + 4 >> 2], l4[a5 + 8 >> 2] = l4[i5 + 8 >> 2], l4[l4[i5 + 8 >> 2] + 4 >> 2] = a5, a5 = r10 + n4 | 0), (0 | (e4 = l4[(r10 = e4 + n4 | 0) >> 2])) != l4[(r10 + e4 | 0) - 4 >> 2] && (n4 = l4[r10 + 4 >> 2], l4[n4 + 8 >> 2] = l4[r10 + 8 >> 2], l4[l4[r10 + 8 >> 2] + 4 >> 2] = n4, a5 = e4 + a5 | 0), l4[i5 >> 2] = a5, l4[((-4 & a5) + i5 | 0) - 4 >> 2] = 1 | a5, e4 = l4[i5 >> 2] - 8 | 0; + a4 = n3 = l3[(e3 = r10 - 4 | 0) >> 2], i4 = e3, (0 | (r10 = -2 & (f4 = l3[r10 - 8 >> 2]))) != (0 | f4) && (a4 = l3[(i4 = e3 - r10 | 0) + 4 >> 2], l3[a4 + 8 >> 2] = l3[i4 + 8 >> 2], l3[l3[i4 + 8 >> 2] + 4 >> 2] = a4, a4 = r10 + n3 | 0), (0 | (e3 = l3[(r10 = e3 + n3 | 0) >> 2])) != l3[(r10 + e3 | 0) - 4 >> 2] && (n3 = l3[r10 + 4 >> 2], l3[n3 + 8 >> 2] = l3[r10 + 8 >> 2], l3[l3[r10 + 8 >> 2] + 4 >> 2] = n3, a4 = e3 + a4 | 0), l3[i4 >> 2] = a4, l3[((-4 & a4) + i4 | 0) - 4 >> 2] = 1 | a4, e3 = l3[i4 >> 2] - 8 | 0; r: { - if (e4 >>> 0 <= 127) { - r10 = (e4 >>> 3 | 0) - 1 | 0; + if (e3 >>> 0 <= 127) { + r10 = (e3 >>> 3 | 0) - 1 | 0; break r; } - if (a5 = E4(e4), r10 = ((e4 >>> 29 - a5 ^ 4) - (a5 << 2) | 0) + 110 | 0, e4 >>> 0 <= 4095) break r; - r10 = (r10 = ((e4 >>> 30 - a5 ^ 2) - (a5 << 1) | 0) + 71 | 0) >>> 0 >= 63 ? 63 : r10; + if (a4 = E3(e3), r10 = ((e3 >>> 29 - a4 ^ 4) - (a4 << 2) | 0) + 110 | 0, e3 >>> 0 <= 4095) break r; + r10 = (r10 = ((e3 >>> 30 - a4 ^ 2) - (a4 << 1) | 0) + 71 | 0) >>> 0 >= 63 ? 63 : r10; } - e4 = r10 << 4, l4[i5 + 4 >> 2] = e4 + 5888, e4 = e4 + 5896 | 0, l4[i5 + 8 >> 2] = l4[e4 >> 2], l4[e4 >> 2] = i5, l4[l4[i5 + 8 >> 2] + 4 >> 2] = i5, e4 = l4[1730], a5 = l4[1731], i5 = 31 & r10, (63 & r10) >>> 0 >= 32 ? (r10 = 1 << i5, n4 = 0) : r10 = (n4 = 1 << i5) - 1 & 1 >>> 32 - i5, l4[1730] = n4 | e4, l4[1731] = r10 | a5; + e3 = r10 << 4, l3[i4 + 4 >> 2] = e3 + 5888, e3 = e3 + 5896 | 0, l3[i4 + 8 >> 2] = l3[e3 >> 2], l3[e3 >> 2] = i4, l3[l3[i4 + 8 >> 2] + 4 >> 2] = i4, e3 = l3[1730], a4 = l3[1731], i4 = 31 & r10, (63 & r10) >>> 0 >= 32 ? (r10 = 1 << i4, n3 = 0) : r10 = (n3 = 1 << i4) - 1 & 1 >>> 32 - i4, l3[1730] = n3 | e3, l3[1731] = r10 | a4; } } - function rG2(r10, e4, a5, i5, n4) { - var f6 = 0, t4 = 0, b5 = 0, o4 = 0; - re3 = f6 = re3 - 208 | 0, l4[f6 + 204 >> 2] = a5, ry2(a5 = f6 + 160 | 0, 0, 40), l4[f6 + 200 >> 2] = l4[f6 + 204 >> 2]; + function rG2(r10, e3, a4, i4, n3) { + var f4 = 0, t3 = 0, b4 = 0, o3 = 0; + re3 = f4 = re3 - 208 | 0, l3[f4 + 204 >> 2] = a4, ry2(a4 = f4 + 160 | 0, 0, 40), l3[f4 + 200 >> 2] = l3[f4 + 204 >> 2]; r: { - if ((0 | rf3(0, e4, f6 + 200 | 0, f6 + 80 | 0, a5, i5, n4)) < 0) { - n4 = -1; + if ((0 | rf3(0, e3, f4 + 200 | 0, f4 + 80 | 0, a4, i4, n3)) < 0) { + n3 = -1; break r; } - o4 = l4[r10 + 76 >> 2] >= 0, t4 = l4[r10 >> 2], l4[r10 + 72 >> 2] <= 0 && (l4[r10 >> 2] = -33 & t4); + o3 = l3[r10 + 76 >> 2] >= 0, t3 = l3[r10 >> 2], l3[r10 + 72 >> 2] <= 0 && (l3[r10 >> 2] = -33 & t3); e: { a: { i: { - if (!l4[r10 + 48 >> 2]) { - l4[r10 + 48 >> 2] = 80, l4[r10 + 28 >> 2] = 0, l4[r10 + 16 >> 2] = 0, l4[r10 + 20 >> 2] = 0, b5 = l4[r10 + 44 >> 2], l4[r10 + 44 >> 2] = f6; + if (!l3[r10 + 48 >> 2]) { + l3[r10 + 48 >> 2] = 80, l3[r10 + 28 >> 2] = 0, l3[r10 + 16 >> 2] = 0, l3[r10 + 20 >> 2] = 0, b4 = l3[r10 + 44 >> 2], l3[r10 + 44 >> 2] = f4; break i; } - if (l4[r10 + 16 >> 2]) break a; + if (l3[r10 + 16 >> 2]) break a; } - if (a5 = -1, ef2(r10)) break e; + if (a4 = -1, ef2(r10)) break e; } - a5 = rf3(r10, e4, f6 + 200 | 0, f6 + 80 | 0, f6 + 160 | 0, i5, n4); + a4 = rf3(r10, e3, f4 + 200 | 0, f4 + 80 | 0, f4 + 160 | 0, i4, n3); } - if (b5 && (eY[l4[r10 + 36 >> 2]](r10, 0, 0), l4[r10 + 48 >> 2] = 0, l4[r10 + 44 >> 2] = b5, l4[r10 + 28 >> 2] = 0, e4 = l4[r10 + 20 >> 2], l4[r10 + 16 >> 2] = 0, l4[r10 + 20 >> 2] = 0, a5 = e4 ? a5 : -1), e4 = r10, r10 = l4[r10 >> 2], l4[e4 >> 2] = r10 | 32 & t4, n4 = 32 & r10 ? -1 : a5, !o4) break r; + if (b4 && (eY[l3[r10 + 36 >> 2]](r10, 0, 0), l3[r10 + 48 >> 2] = 0, l3[r10 + 44 >> 2] = b4, l3[r10 + 28 >> 2] = 0, e3 = l3[r10 + 20 >> 2], l3[r10 + 16 >> 2] = 0, l3[r10 + 20 >> 2] = 0, a4 = e3 ? a4 : -1), e3 = r10, r10 = l3[r10 >> 2], l3[e3 >> 2] = r10 | 32 & t3, n3 = 32 & r10 ? -1 : a4, !o3) break r; } - return re3 = f6 + 208 | 0, n4; + return re3 = f4 + 208 | 0, n3; } function rR2(r10) { - var e4 = 0, a5 = w4(0), i5 = 0, n4 = 0, f6 = 0, t4 = 0, b5 = 0, o4 = w4(0), c5 = 0; - re3 = f6 = re3 - 16 | 0, e4 = l4[r10 + 12 >> 2]; + var e3 = 0, a4 = w3(0), i4 = 0, n3 = 0, f4 = 0, t3 = 0, b4 = 0, o3 = w3(0), c4 = 0; + re3 = f4 = re3 - 16 | 0, e3 = l3[r10 + 12 >> 2]; r: { - if (e4) { - o4 = p3[r10 + 520 >> 2], a5 = p3[r10 + 516 >> 2]; + if (e3) { + o3 = p2[r10 + 520 >> 2], a4 = p2[r10 + 516 >> 2]; e: { - if (32 & d4[r10 + 4 | 0]) { - a5 = w4(eY[0 | e4](r10, a5, o4, 0)); + if (32 & d3[r10 + 4 | 0]) { + a4 = w3(eY[0 | e3](r10, a4, o3, 0)); break e; } - a5 = w4(eY[0 | e4](r10, a5, o4)); + a4 = w3(eY[0 | e3](r10, a4, o3)); } - if (a5 == a5) break r; - l4[f6 >> 2] = 3340, rB2(r10, f6), eX(), k4(); + if (a4 == a4) break r; + l3[f4 >> 2] = 3340, rB2(r10, f4), eX(), k3(); } a: { i: { - if (t4 = l4[r10 + 556 >> 2], e4 = l4[r10 + 560 >> 2], (0 | t4) != (0 | e4)) { - for (c5 = (e4 = e4 - t4 >> 2) >>> 0 <= 1 ? 1 : e4; ; ) { - if (n4 = l4[(b5 << 2) + t4 >> 2], !l4[n4 + 548 >> 2]) { - if ((196608 & (e4 = l4[n4 + 24 >> 2])) != 131072) { - if ((e4 = e4 >>> 13 & 7) || (e4 = l4[r10 + 24 >> 2] >>> 10 & 7), 2 & d4[n4 + 4 | 0] | (8 & d4[r10 + 24 | 0] ? (0 | e4) == 5 : 0)) break i; - i5 = i5 || n4; + if (t3 = l3[r10 + 556 >> 2], e3 = l3[r10 + 560 >> 2], (0 | t3) != (0 | e3)) { + for (c4 = (e3 = e3 - t3 >> 2) >>> 0 <= 1 ? 1 : e3; ; ) { + if (n3 = l3[(b4 << 2) + t3 >> 2], !l3[n3 + 548 >> 2]) { + if ((196608 & (e3 = l3[n3 + 24 >> 2])) != 131072) { + if ((e3 = e3 >>> 13 & 7) || (e3 = l3[r10 + 24 >> 2] >>> 10 & 7), 2 & d3[n3 + 4 | 0] | (8 & d3[r10 + 24 | 0] ? (0 | e3) == 5 : 0)) break i; + i4 = i4 || n3; } - if ((0 | c5) != (0 | (b5 = b5 + 1 | 0))) continue; + if ((0 | c4) != (0 | (b4 = b4 + 1 | 0))) continue; } break; } - if (i5) break a; + if (i4) break a; } - a5 = p3[r10 + 520 >> 2]; + a4 = p2[r10 + 520 >> 2]; break r; } - i5 = n4; + i4 = n3; } - a5 = w4(rR2(i5) + p3[i5 + 232 >> 2]); + a4 = w3(rR2(i4) + p2[i4 + 232 >> 2]); } - return re3 = f6 + 16 | 0, a5; + return re3 = f4 + 16 | 0, a4; } - function rg2(r10, e4, a5, i5, n4, f6) { - var b5, o4 = 0, k5 = w4(0), c5 = 0, s4 = w4(0); - k5 = p3[(o4 = (l4[(e4 << 2) + 4252 >> 2] << 2) + r10 | 0) + 216 >> 2]; + function rg2(r10, e3, a4, i4, n3, f4) { + var b4, o3 = 0, k4 = w3(0), c4 = 0, s3 = w3(0); + k4 = p2[(o3 = (l3[(e3 << 2) + 4252 >> 2] << 2) + r10 | 0) + 216 >> 2]; r: { e: { - o4 = l4[o4 + 216 >> 2]; - a: if ((0 | o4) != 2139156720) { - if ((0 | o4) == 2140081935) break e; - c5 = 4276; + o3 = l3[o3 + 216 >> 2]; + a: if ((0 | o3) != 2139156720) { + if ((0 | o3) == 2140081935) break e; + c4 = 4276; i: { - if ((0 | o4) != 2141891242) { - if (k5 == k5) break i; - c5 = 4268; + if ((0 | o3) != 2141891242) { + if (k4 == k4) break i; + c4 = 4268; } - switch (s4 = p3[c5 >> 2], k5 = w4(NaN), l4[c5 + 4 >> 2] - 1 | 0) { + switch (s3 = p2[c4 >> 2], k4 = w3(NaN), l3[c4 + 4 >> 2] - 1 | 0) { case 0: break e; case 1: @@ -5295,54 +5296,54 @@ var init_asm = __esm({ break r; } } - if (b5 = (-1073741825 & o4) + 536870912 | 0, t3[2] = b5, s4 = u5(), !(1073741824 & o4)) break e; + if (b4 = (-1073741825 & o3) + 536870912 | 0, t2[2] = b4, s3 = u3(), !(1073741824 & o3)) break e; } - k5 = w4(w4(s4 * a5) * w4(0.009999999776482582)); + k4 = w3(w3(s3 * a4) * w3(0.009999999776482582)); break r; } - k5 = s4; + k4 = s3; } - i5 = w4(k5 + w4(rP2(r10, e4, i5) + rS2(r10, e4, i5))); + i4 = w3(k4 + w3(rP2(r10, e3, i4) + rS2(r10, e3, i4))); n: { f: { - t: switch (l4[n4 >> 2]) { + t: switch (l3[n3 >> 2]) { case 1: case 2: - a5 = p3[f6 >> 2], i5 = i5 != i5 ? a5 : a5 < i5 ? a5 : i5; + a4 = p2[f4 >> 2], i4 = i4 != i4 ? a4 : a4 < i4 ? a4 : i4; break f; case 0: break t; default: break n; } - if (i5 != i5) break n; - l4[n4 >> 2] = 2; + if (i4 != i4) break n; + l3[n3 >> 2] = 2; } - p3[f6 >> 2] = i5; + p2[f4 >> 2] = i4; } } - function rZ2(r10, e4, a5) { - var i5, n4, f6 = w4(0), b5 = w4(0), o4 = 0, k5 = w4(0); - r10 = r10 + 116 | 0, o4 = l4[(e4 << 2) + 4220 >> 2]; + function rZ2(r10, e3, a4) { + var i4, n3, f4 = w3(0), b4 = w3(0), o3 = 0, k4 = w3(0); + r10 = r10 + 116 | 0, o3 = l3[(e3 << 2) + 4220 >> 2]; r: { - if ((-2 & e4) == 2) { - e4 = rX2(r10, 4, o4, 2140081935); + if ((-2 & e3) == 2) { + e3 = rX2(r10, 4, o3, 2140081935); break r; } - e4 = rY2(r10, o4, 2140081935); + e3 = rY2(r10, o3, 2140081935); } e: { a: { i: { - n: if ((0 | e4) != 2139156720) { - if ((0 | e4) == 2140081935) break e; + n: if ((0 | e3) != 2139156720) { + if ((0 | e3) == 2140081935) break e; r10 = 4276; f: { - if ((0 | e4) != 2141891242) { - if (i5 = e4, t3[2] = i5, (f6 = u5()) == f6) break f; + if ((0 | e3) != 2141891242) { + if (i4 = e3, t2[2] = i4, (f4 = u3()) == f4) break f; r10 = 4268; } - switch (f6 = p3[r10 >> 2], b5 = w4(NaN), l4[r10 + 4 >> 2] - 1 | 0) { + switch (f4 = p2[r10 >> 2], b4 = w3(NaN), l3[r10 + 4 >> 2] - 1 | 0) { case 0: break i; case 1: @@ -5351,39 +5352,39 @@ var init_asm = __esm({ break a; } } - if (n4 = (-1073741825 & e4) + 536870912 | 0, t3[2] = n4, f6 = u5(), !(1073741824 & e4)) break i; + if (n3 = (-1073741825 & e3) + 536870912 | 0, t2[2] = n3, f4 = u3(), !(1073741824 & e3)) break i; } - f6 = w4(w4(f6 * a5) * w4(0.009999999776482582)); + f4 = w3(w3(f4 * a4) * w3(0.009999999776482582)); } - if (f6 >= w4(0)) return f6; - if (b5 = f6, f6 < w4(0)) break e; + if (f4 >= w3(0)) return f4; + if (b4 = f4, f4 < w3(0)) break e; } - k5 = b5 == b5 ? b5 : w4(0); + k4 = b4 == b4 ? b4 : w3(0); } - return k5; + return k4; } - function rW2(r10, e4, a5) { - var i5, n4, f6 = w4(0), b5 = w4(0), o4 = 0, k5 = w4(0); - r10 = r10 + 116 | 0, o4 = l4[(e4 << 2) + 4236 >> 2]; + function rW2(r10, e3, a4) { + var i4, n3, f4 = w3(0), b4 = w3(0), o3 = 0, k4 = w3(0); + r10 = r10 + 116 | 0, o3 = l3[(e3 << 2) + 4236 >> 2]; r: { - if ((-2 & e4) == 2) { - e4 = rX2(r10, 5, o4, 2140081935); + if ((-2 & e3) == 2) { + e3 = rX2(r10, 5, o3, 2140081935); break r; } - e4 = rY2(r10, o4, 2140081935); + e3 = rY2(r10, o3, 2140081935); } e: { a: { i: { - n: if ((0 | e4) != 2139156720) { - if ((0 | e4) == 2140081935) break e; + n: if ((0 | e3) != 2139156720) { + if ((0 | e3) == 2140081935) break e; r10 = 4276; f: { - if ((0 | e4) != 2141891242) { - if (i5 = e4, t3[2] = i5, (f6 = u5()) == f6) break f; + if ((0 | e3) != 2141891242) { + if (i4 = e3, t2[2] = i4, (f4 = u3()) == f4) break f; r10 = 4268; } - switch (f6 = p3[r10 >> 2], b5 = w4(NaN), l4[r10 + 4 >> 2] - 1 | 0) { + switch (f4 = p2[r10 >> 2], b4 = w3(NaN), l3[r10 + 4 >> 2] - 1 | 0) { case 0: break i; case 1: @@ -5392,93 +5393,93 @@ var init_asm = __esm({ break a; } } - if (n4 = (-1073741825 & e4) + 536870912 | 0, t3[2] = n4, f6 = u5(), !(1073741824 & e4)) break i; + if (n3 = (-1073741825 & e3) + 536870912 | 0, t2[2] = n3, f4 = u3(), !(1073741824 & e3)) break i; } - f6 = w4(w4(f6 * a5) * w4(0.009999999776482582)); + f4 = w3(w3(f4 * a4) * w3(0.009999999776482582)); } - if (f6 >= w4(0)) return f6; - if (b5 = f6, f6 < w4(0)) break e; + if (f4 >= w3(0)) return f4; + if (b4 = f4, f4 < w3(0)) break e; } - k5 = b5 == b5 ? b5 : w4(0); + k4 = b4 == b4 ? b4 : w3(0); } - return k5; + return k4; } - function rV2(r10, e4, a5, i5, n4, f6) { - var t4 = 0; + function rV2(r10, e3, a4, i4, n3, f4) { + var t3 = 0; r: { e: { if (r10) { a: { - if (255 & e4) { - f6 = 0 | eY[0 | r10](a5, i5, n4, f6); + if (255 & e3) { + f4 = 0 | eY[0 | r10](a4, i4, n3, f4); break a; } - f6 = 0 | eY[0 | r10](a5, i5, n4); + f4 = 0 | eY[0 | r10](a4, i4, n3); } - if (f6) break e; + if (f4) break e; } - if (l4[(e4 = ru3(f6 = eo(588), a5, 552)) + 564 >> 2] = 0, l4[e4 + 556 >> 2] = 0, l4[e4 + 560 >> 2] = 0, n4 = l4[a5 + 556 >> 2], i5 = l4[a5 + 560 >> 2], (0 | n4) != (0 | i5)) { - if ((0 | (t4 = i5 - n4 | 0)) < 0) break r; - for (r10 = eo(t4), l4[e4 + 556 >> 2] = r10, l4[e4 + 564 >> 2] = r10 + t4; l4[r10 >> 2] = l4[n4 >> 2], r10 = r10 + 4 | 0, (0 | i5) != (0 | (n4 = n4 + 4 | 0)); ) ; - l4[e4 + 560 >> 2] = r10; + if (l3[(e3 = ru3(f4 = eo(588), a4, 552)) + 564 >> 2] = 0, l3[e3 + 556 >> 2] = 0, l3[e3 + 560 >> 2] = 0, n3 = l3[a4 + 556 >> 2], i4 = l3[a4 + 560 >> 2], (0 | n3) != (0 | i4)) { + if ((0 | (t3 = i4 - n3 | 0)) < 0) break r; + for (r10 = eo(t3), l3[e3 + 556 >> 2] = r10, l3[e3 + 564 >> 2] = r10 + t3; l3[r10 >> 2] = l3[n3 >> 2], r10 = r10 + 4 | 0, (0 | i4) != (0 | (n3 = n3 + 4 | 0)); ) ; + l3[e3 + 560 >> 2] = r10; } - r10 = l4[a5 + 572 >> 2], l4[e4 + 568 >> 2] = l4[a5 + 568 >> 2], l4[e4 + 572 >> 2] = r10, l4[e4 + 584 >> 2] = l4[a5 + 584 >> 2], r10 = l4[a5 + 580 >> 2], l4[e4 + 576 >> 2] = l4[a5 + 576 >> 2], l4[e4 + 580 >> 2] = r10, l4[e4 + 552 >> 2] = 0; + r10 = l3[a4 + 572 >> 2], l3[e3 + 568 >> 2] = l3[a4 + 568 >> 2], l3[e3 + 572 >> 2] = r10, l3[e3 + 584 >> 2] = l3[a4 + 584 >> 2], r10 = l3[a4 + 580 >> 2], l3[e3 + 576 >> 2] = l3[a4 + 576 >> 2], l3[e3 + 580 >> 2] = r10, l3[e3 + 552 >> 2] = 0; } - return f6; + return f4; } - T3(), k4(); + T2(), k3(); } - function rB2(r10, e4) { - var a5 = 0, i5 = 0, n4 = 0; - re3 = n4 = re3 - 16 | 0, l4[n4 + 12 >> 2] = e4; + function rB2(r10, e3) { + var a4 = 0, i4 = 0, n3 = 0; + re3 = n3 = re3 - 16 | 0, l3[n3 + 12 >> 2] = e3; r: { e: { if (!r10) { - e4 = l4[n4 + 12 >> 2]; + e3 = l3[n3 + 12 >> 2]; break e; } - if (e4 = l4[n4 + 12 >> 2], !(a5 = l4[r10 + 568 >> 2])) break e; - if (i5 = l4[a5 + 4 >> 2], d4[a5 + 9 | 0]) { - eY[0 | i5](a5, r10, 5, 0, 4215, e4); + if (e3 = l3[n3 + 12 >> 2], !(a4 = l3[r10 + 568 >> 2])) break e; + if (i4 = l3[a4 + 4 >> 2], d3[a4 + 9 | 0]) { + eY[0 | i4](a4, r10, 5, 0, 4215, e3); break r; } - eY[0 | i5](a5, r10, 5, 4215, e4); + eY[0 | i4](a4, r10, 5, 4215, e3); break r; } a: { - if (!d4[6936]) { - A3[(a5 = eo(28)) + 20 >> 1] = 0, l4[a5 + 16 >> 2] = 1065353216, A3[a5 + 10 >> 1] = 0, A3[a5 + 12 >> 1] = 0, l4[a5 >> 2] = 0, l4[a5 + 24 >> 2] = 0, s3[a5 + 9 | 0] = 0, i5 = 1, l4[a5 + 4 >> 2] = 1, s3[a5 + 22 | 0] = 0, l4[1733] = a5, s3[6936] = 1, l4[1732] = l4[1732] + 1; + if (!d3[6936]) { + A2[(a4 = eo(28)) + 20 >> 1] = 0, l3[a4 + 16 >> 2] = 1065353216, A2[a4 + 10 >> 1] = 0, A2[a4 + 12 >> 1] = 0, l3[a4 >> 2] = 0, l3[a4 + 24 >> 2] = 0, s2[a4 + 9 | 0] = 0, i4 = 1, l3[a4 + 4 >> 2] = 1, s2[a4 + 22 | 0] = 0, l3[1733] = a4, s2[6936] = 1, l3[1732] = l3[1732] + 1; break a; } - if (a5 = l4[1733], i5 = l4[a5 + 4 >> 2], !d4[a5 + 9 | 0]) break a; - eY[0 | i5](a5, r10, 5, 0, 4215, e4); + if (a4 = l3[1733], i4 = l3[a4 + 4 >> 2], !d3[a4 + 9 | 0]) break a; + eY[0 | i4](a4, r10, 5, 0, 4215, e3); break r; } - eY[0 | i5](a5, r10, 5, 4215, e4); + eY[0 | i4](a4, r10, 5, 4215, e3); } - re3 = n4 + 16 | 0; + re3 = n3 + 16 | 0; } - function rT2(r10, e4, a5) { - var i5, n4, f6 = w4(0), b5 = 0, o4 = w4(0); - r10 = r10 + 80 | 0, b5 = l4[(e4 << 2) + 4236 >> 2]; + function rT2(r10, e3, a4) { + var i4, n3, f4 = w3(0), b4 = 0, o3 = w3(0); + r10 = r10 + 80 | 0, b4 = l3[(e3 << 2) + 4236 >> 2]; r: { e: { - if ((-2 & e4) == 2) { - e4 = rX2(r10, 5, b5, 2140081935); + if ((-2 & e3) == 2) { + e3 = rX2(r10, 5, b4, 2140081935); break e; } - e4 = rY2(r10, b5, 2140081935); + e3 = rY2(r10, b4, 2140081935); } a: { - i: if ((0 | e4) != 2139156720) { - if ((0 | e4) == 2140081935) break r; + i: if ((0 | e3) != 2139156720) { + if ((0 | e3) == 2140081935) break r; r10 = 4276; n: { - if ((0 | e4) != 2141891242) { - if (i5 = e4, t3[2] = i5, (f6 = u5()) == f6) break n; + if ((0 | e3) != 2141891242) { + if (i4 = e3, t2[2] = i4, (f4 = u3()) == f4) break n; r10 = 4268; } - switch (f6 = p3[r10 >> 2], o4 = w4(NaN), l4[r10 + 4 >> 2] - 1 | 0) { + switch (f4 = p2[r10 >> 2], o3 = w3(NaN), l3[r10 + 4 >> 2] - 1 | 0) { case 0: break r; case 1: @@ -5487,35 +5488,35 @@ var init_asm = __esm({ break a; } } - if (n4 = (-1073741825 & e4) + 536870912 | 0, t3[2] = n4, f6 = u5(), !(1073741824 & e4)) break r; + if (n3 = (-1073741825 & e3) + 536870912 | 0, t2[2] = n3, f4 = u3(), !(1073741824 & e3)) break r; } - o4 = w4(w4(f6 * a5) * w4(0.009999999776482582)); + o3 = w3(w3(f4 * a4) * w3(0.009999999776482582)); } - return o4; + return o3; } - return f6; + return f4; } - function rI2(r10, e4, a5) { - var i5, n4, f6 = w4(0), b5 = 0, o4 = w4(0); - r10 = r10 + 80 | 0, b5 = l4[(e4 << 2) + 4220 >> 2]; + function rI2(r10, e3, a4) { + var i4, n3, f4 = w3(0), b4 = 0, o3 = w3(0); + r10 = r10 + 80 | 0, b4 = l3[(e3 << 2) + 4220 >> 2]; r: { e: { - if ((-2 & e4) == 2) { - e4 = rX2(r10, 4, b5, 2140081935); + if ((-2 & e3) == 2) { + e3 = rX2(r10, 4, b4, 2140081935); break e; } - e4 = rY2(r10, b5, 2140081935); + e3 = rY2(r10, b4, 2140081935); } a: { - i: if ((0 | e4) != 2139156720) { - if ((0 | e4) == 2140081935) break r; + i: if ((0 | e3) != 2139156720) { + if ((0 | e3) == 2140081935) break r; r10 = 4276; n: { - if ((0 | e4) != 2141891242) { - if (i5 = e4, t3[2] = i5, (f6 = u5()) == f6) break n; + if ((0 | e3) != 2141891242) { + if (i4 = e3, t2[2] = i4, (f4 = u3()) == f4) break n; r10 = 4268; } - switch (f6 = p3[r10 >> 2], o4 = w4(NaN), l4[r10 + 4 >> 2] - 1 | 0) { + switch (f4 = p2[r10 >> 2], o3 = w3(NaN), l3[r10 + 4 >> 2] - 1 | 0) { case 0: break r; case 1: @@ -5524,32 +5525,32 @@ var init_asm = __esm({ break a; } } - if (n4 = (-1073741825 & e4) + 536870912 | 0, t3[2] = n4, f6 = u5(), !(1073741824 & e4)) break r; + if (n3 = (-1073741825 & e3) + 536870912 | 0, t2[2] = n3, f4 = u3(), !(1073741824 & e3)) break r; } - o4 = w4(w4(f6 * a5) * w4(0.009999999776482582)); + o3 = w3(w3(f4 * a4) * w3(0.009999999776482582)); } - return o4; + return o3; } - return f6; + return f4; } - function rX2(r10, e4, a5, i5) { - var n4 = w4(0); - n4 = p3[(e4 = (e4 << 2) + r10 | 0) >> 2], e4 = l4[e4 >> 2]; - r: if (!((0 | e4) == 2139156720 | (0 | e4) == 2140081935 | (0 | e4) == 2141891242 | n4 == n4)) { - if (n4 = p3[(e4 = (a5 << 2) + r10 | 0) >> 2], (0 | (e4 = l4[e4 >> 2])) == 2139156720 | (0 | e4) == 2140081935 | (0 | e4) == 2141891242 | n4 == n4 || (e4 = l4[r10 + 24 >> 2], n4 = p3[r10 + 24 >> 2], (0 | e4) == 2139156720 | (0 | e4) == 2140081935 | (0 | e4) == 2141891242 | n4 == n4) || (n4 = p3[r10 + 32 >> 2], !((0 | (r10 = l4[r10 + 32 >> 2])) == 2139156720 | (0 | r10) == 2140081935 | (0 | r10) == 2141891242) && (e4 = i5, n4 != n4))) break r; - e4 = r10; + function rX2(r10, e3, a4, i4) { + var n3 = w3(0); + n3 = p2[(e3 = (e3 << 2) + r10 | 0) >> 2], e3 = l3[e3 >> 2]; + r: if (!((0 | e3) == 2139156720 | (0 | e3) == 2140081935 | (0 | e3) == 2141891242 | n3 == n3)) { + if (n3 = p2[(e3 = (a4 << 2) + r10 | 0) >> 2], (0 | (e3 = l3[e3 >> 2])) == 2139156720 | (0 | e3) == 2140081935 | (0 | e3) == 2141891242 | n3 == n3 || (e3 = l3[r10 + 24 >> 2], n3 = p2[r10 + 24 >> 2], (0 | e3) == 2139156720 | (0 | e3) == 2140081935 | (0 | e3) == 2141891242 | n3 == n3) || (n3 = p2[r10 + 32 >> 2], !((0 | (r10 = l3[r10 + 32 >> 2])) == 2139156720 | (0 | r10) == 2140081935 | (0 | r10) == 2141891242) && (e3 = i4, n3 != n3))) break r; + e3 = r10; } - return e4; + return e3; } - function rO2(r10, e4, a5, i5, n4) { - var f6 = 0, t4 = 0, b5 = w4(0), o4 = 0; - f6 = 2, t4 = l4[r10 + 24 >> 2] >>> 2 & 3; + function rO2(r10, e3, a4, i4, n3) { + var f4 = 0, t3 = 0, b4 = w3(0), o3 = 0; + f4 = 2, t3 = l3[r10 + 24 >> 2] >>> 2 & 3; r: { e: { a: { - if (!(!l4[r10 + 552 >> 2] | (0 | e4) != 2)) { - e4 = 0, f6 = 3; - i: switch (t4 - 2 | 0) { + if (!(!l3[r10 + 552 >> 2] | (0 | e3) != 2)) { + e3 = 0, f4 = 3; + i: switch (t3 - 2 | 0) { case 0: break r; case 1: @@ -5557,564 +5558,564 @@ var init_asm = __esm({ default: break a; } - f6 = 2; + f4 = 2; break r; } - if (e4 = 0, t4 >>> 0 > 1) break e; + if (e3 = 0, t3 >>> 0 > 1) break e; } - e4 = f6; + e3 = f4; } - f6 = t4; + f4 = t3; } - a5 = ey(r10, f6, a5), i5 = ey(r10, e4, i5), b5 = rP2(r10, f6, n4), p3[(t4 = r10 + 228 | 0) + (l4[(o4 = f6 << 2) + 4220 >> 2] << 2) >> 2] = a5 + b5, b5 = rS2(r10, f6, n4), p3[t4 + (l4[o4 + 4236 >> 2] << 2) >> 2] = a5 + b5, a5 = rP2(r10, e4, n4), p3[t4 + (l4[(f6 = e4 << 2) + 4220 >> 2] << 2) >> 2] = i5 + a5, a5 = rS2(r10, e4, n4), p3[t4 + (l4[f6 + 4236 >> 2] << 2) >> 2] = i5 + a5; + a4 = ey(r10, f4, a4), i4 = ey(r10, e3, i4), b4 = rP2(r10, f4, n3), p2[(t3 = r10 + 228 | 0) + (l3[(o3 = f4 << 2) + 4220 >> 2] << 2) >> 2] = a4 + b4, b4 = rS2(r10, f4, n3), p2[t3 + (l3[o3 + 4236 >> 2] << 2) >> 2] = a4 + b4, a4 = rP2(r10, e3, n3), p2[t3 + (l3[(f4 = e3 << 2) + 4220 >> 2] << 2) >> 2] = i4 + a4, a4 = rS2(r10, e3, n3), p2[t3 + (l3[f4 + 4236 >> 2] << 2) >> 2] = i4 + a4; } function rL2(r10) { - var e4 = 0, a5 = 0, i5 = 0, n4 = 0; + var e3 = 0, a4 = 0, i4 = 0, n3 = 0; if (r10 |= 0) { - if (e4 = l4[r10 >> 2], (a5 = l4[e4 + 552 >> 2]) && (rq2(a5, e4), l4[e4 + 552 >> 2] = 0), i5 = l4[e4 + 560 >> 2], a5 = l4[e4 + 556 >> 2], (0 | i5) != (0 | a5)) for (n4 = (i5 = i5 - a5 >> 2) >>> 0 <= 1 ? 1 : i5, i5 = 0; l4[l4[a5 + (i5 << 2) >> 2] + 552 >> 2] = 0, (0 | n4) != (0 | (i5 = i5 + 1 | 0)); ) ; - l4[e4 + 560 >> 2] = a5, r_2(e4 + 556 | 0), (a5 = l4[e4 + 556 >> 2]) && (l4[e4 + 560 >> 2] = a5, rE2(a5)), rE2(e4), e4 = l4[r10 + 8 >> 2], l4[r10 + 8 >> 2] = 0, e4 && eY[l4[l4[e4 >> 2] + 4 >> 2]](e4), e4 = l4[r10 + 4 >> 2], l4[r10 + 4 >> 2] = 0, e4 && eY[l4[l4[e4 >> 2] + 4 >> 2]](e4), rE2(r10); + if (e3 = l3[r10 >> 2], (a4 = l3[e3 + 552 >> 2]) && (rq2(a4, e3), l3[e3 + 552 >> 2] = 0), i4 = l3[e3 + 560 >> 2], a4 = l3[e3 + 556 >> 2], (0 | i4) != (0 | a4)) for (n3 = (i4 = i4 - a4 >> 2) >>> 0 <= 1 ? 1 : i4, i4 = 0; l3[l3[a4 + (i4 << 2) >> 2] + 552 >> 2] = 0, (0 | n3) != (0 | (i4 = i4 + 1 | 0)); ) ; + l3[e3 + 560 >> 2] = a4, r_2(e3 + 556 | 0), (a4 = l3[e3 + 556 >> 2]) && (l3[e3 + 560 >> 2] = a4, rE2(a4)), rE2(e3), e3 = l3[r10 + 8 >> 2], l3[r10 + 8 >> 2] = 0, e3 && eY[l3[l3[e3 >> 2] + 4 >> 2]](e3), e3 = l3[r10 + 4 >> 2], l3[r10 + 4 >> 2] = 0, e3 && eY[l3[l3[e3 >> 2] + 4 >> 2]](e3), rE2(r10); } } function r_2(r10) { - var e4 = 0, a5 = 0, i5 = 0, n4 = 0, f6 = 0; - re3 = n4 = re3 - 32 | 0, e4 = l4[r10 >> 2], a5 = l4[r10 + 4 >> 2] - e4 >> 2; - r: if (!(a5 >>> 0 >= l4[r10 + 8 >> 2] - e4 >> 2 >>> 0)) { - if (a5 = en(n4 + 8 | 0, a5, a5, r10 + 8 | 0), e4 = l4[r10 >> 2], i5 = l4[r10 + 4 >> 2] - e4 | 0, i5 = rm2(l4[a5 + 4 >> 2] - i5 | 0, e4, i5), e4 = l4[r10 >> 2], l4[r10 >> 2] = i5, l4[a5 + 4 >> 2] = e4, i5 = l4[r10 + 4 >> 2], l4[r10 + 4 >> 2] = l4[a5 + 8 >> 2], l4[a5 + 8 >> 2] = i5, f6 = l4[r10 + 8 >> 2], l4[r10 + 8 >> 2] = l4[a5 + 12 >> 2], l4[a5 >> 2] = e4, l4[a5 + 12 >> 2] = f6, (0 | e4) != (0 | i5) && (l4[a5 + 8 >> 2] = i5 + ((e4 - i5 | 0) + 3 & -4)), !e4) break r; - rE2(e4); + var e3 = 0, a4 = 0, i4 = 0, n3 = 0, f4 = 0; + re3 = n3 = re3 - 32 | 0, e3 = l3[r10 >> 2], a4 = l3[r10 + 4 >> 2] - e3 >> 2; + r: if (!(a4 >>> 0 >= l3[r10 + 8 >> 2] - e3 >> 2 >>> 0)) { + if (a4 = en(n3 + 8 | 0, a4, a4, r10 + 8 | 0), e3 = l3[r10 >> 2], i4 = l3[r10 + 4 >> 2] - e3 | 0, i4 = rm2(l3[a4 + 4 >> 2] - i4 | 0, e3, i4), e3 = l3[r10 >> 2], l3[r10 >> 2] = i4, l3[a4 + 4 >> 2] = e3, i4 = l3[r10 + 4 >> 2], l3[r10 + 4 >> 2] = l3[a4 + 8 >> 2], l3[a4 + 8 >> 2] = i4, f4 = l3[r10 + 8 >> 2], l3[r10 + 8 >> 2] = l3[a4 + 12 >> 2], l3[a4 >> 2] = e3, l3[a4 + 12 >> 2] = f4, (0 | e3) != (0 | i4) && (l3[a4 + 8 >> 2] = i4 + ((e3 - i4 | 0) + 3 & -4)), !e3) break r; + rE2(e3); } - re3 = n4 + 32 | 0; + re3 = n3 + 32 | 0; } - function rF2(r10, e4, a5) { - var i5 = 0, n4 = 0, f6 = 0; - if (!(32 & d4[0 | r10])) r: { - i5 = e4, r10 = l4[(e4 = r10) + 16 >> 2]; + function rF2(r10, e3, a4) { + var i4 = 0, n3 = 0, f4 = 0; + if (!(32 & d3[0 | r10])) r: { + i4 = e3, r10 = l3[(e3 = r10) + 16 >> 2]; e: { if (!r10) { - if (ef2(e4)) break e; - r10 = l4[e4 + 16 >> 2]; + if (ef2(e3)) break e; + r10 = l3[e3 + 16 >> 2]; } - if (f6 = l4[e4 + 20 >> 2], r10 - f6 >>> 0 < a5 >>> 0) { - eY[l4[e4 + 36 >> 2]](e4, i5, a5); + if (f4 = l3[e3 + 20 >> 2], r10 - f4 >>> 0 < a4 >>> 0) { + eY[l3[e3 + 36 >> 2]](e3, i4, a4); break r; } - a: if (!(l4[e4 + 80 >> 2] < 0)) { - for (r10 = a5; ; ) { - if (n4 = r10, !r10) break a; - if (10 == d4[i5 + (r10 = n4 - 1 | 0) | 0]) break; + a: if (!(l3[e3 + 80 >> 2] < 0)) { + for (r10 = a4; ; ) { + if (n3 = r10, !r10) break a; + if (10 == d3[i4 + (r10 = n3 - 1 | 0) | 0]) break; } - if (eY[l4[e4 + 36 >> 2]](e4, i5, n4) >>> 0 < n4 >>> 0) break e; - i5 = i5 + n4 | 0, a5 = a5 - n4 | 0, f6 = l4[e4 + 20 >> 2]; + if (eY[l3[e3 + 36 >> 2]](e3, i4, n3) >>> 0 < n3 >>> 0) break e; + i4 = i4 + n3 | 0, a4 = a4 - n3 | 0, f4 = l3[e3 + 20 >> 2]; } - ru3(f6, i5, a5), l4[e4 + 20 >> 2] = l4[e4 + 20 >> 2] + a5; + ru3(f4, i4, a4), l3[e3 + 20 >> 2] = l3[e3 + 20 >> 2] + a4; } } } - function rC2(r10, e4, a5) { - var i5 = 0, n4 = 0, f6 = 0; - re3 = i5 = re3 - 16 | 0, n4 = r10 + 24 | 0, eY[0 | e4](i5 + 8 | 0, n4), f6 = l4[i5 + 12 >> 2]; - r: if ((l4[l4[i5 + 8 >> 2] >> 2] & 7 << f6) >> f6 != (0 | a5)) for (eY[0 | e4](i5 + 8 | 0, n4), n4 = e4 = l4[i5 + 8 >> 2], f6 = l4[e4 >> 2], e4 = l4[i5 + 12 >> 2], l4[n4 >> 2] = f6 & (7 << e4 ^ -1) | (7 & a5) << e4; ; ) { - if (4 & (e4 = d4[r10 + 4 | 0])) break r; - if (s3[r10 + 4 | 0] = 4 | e4, (e4 = l4[r10 + 20 >> 2]) && eY[0 | e4](r10), l4[r10 + 308 >> 2] = 2143289344, !(r10 = l4[r10 + 552 >> 2])) break; + function rC2(r10, e3, a4) { + var i4 = 0, n3 = 0, f4 = 0; + re3 = i4 = re3 - 16 | 0, n3 = r10 + 24 | 0, eY[0 | e3](i4 + 8 | 0, n3), f4 = l3[i4 + 12 >> 2]; + r: if ((l3[l3[i4 + 8 >> 2] >> 2] & 7 << f4) >> f4 != (0 | a4)) for (eY[0 | e3](i4 + 8 | 0, n3), n3 = e3 = l3[i4 + 8 >> 2], f4 = l3[e3 >> 2], e3 = l3[i4 + 12 >> 2], l3[n3 >> 2] = f4 & (7 << e3 ^ -1) | (7 & a4) << e3; ; ) { + if (4 & (e3 = d3[r10 + 4 | 0])) break r; + if (s2[r10 + 4 | 0] = 4 | e3, (e3 = l3[r10 + 20 >> 2]) && eY[0 | e3](r10), l3[r10 + 308 >> 2] = 2143289344, !(r10 = l3[r10 + 552 >> 2])) break; } - re3 = i5 + 16 | 0; + re3 = i4 + 16 | 0; } - function rS2(r10, e4, a5) { - var i5, n4, f6 = w4(0), b5 = 0; - r10 = r10 + 44 | 0, b5 = l4[(e4 << 2) + 4236 >> 2]; + function rS2(r10, e3, a4) { + var i4, n3, f4 = w3(0), b4 = 0; + r10 = r10 + 44 | 0, b4 = l3[(e3 << 2) + 4236 >> 2]; r: { - if ((-2 & e4) == 2) { - r10 = rX2(r10, 5, b5, 2140081935); + if ((-2 & e3) == 2) { + r10 = rX2(r10, 5, b4, 2140081935); break r; } - r10 = rY2(r10, b5, 2140081935); + r10 = rY2(r10, b4, 2140081935); } e: { if ((0 | r10) != 2139156720) { if ((0 | r10) == 2140081935 | (0 | r10) == 2141891242) break e; - if (i5 = r10, t3[2] = i5, (f6 = u5()) != f6) return w4(NaN); - if (n4 = (-1073741825 & r10) + 536870912 | 0, t3[2] = n4, f6 = u5(), !(1073741824 & r10)) break e; + if (i4 = r10, t2[2] = i4, (f4 = u3()) != f4) return w3(NaN); + if (n3 = (-1073741825 & r10) + 536870912 | 0, t2[2] = n3, f4 = u3(), !(1073741824 & r10)) break e; } - f6 = w4(w4(f6 * a5) * w4(0.009999999776482582)); + f4 = w3(w3(f4 * a4) * w3(0.009999999776482582)); } - return f6; + return f4; } - function rP2(r10, e4, a5) { - var i5, n4, f6 = w4(0), b5 = 0; - r10 = r10 + 44 | 0, b5 = l4[(e4 << 2) + 4220 >> 2]; + function rP2(r10, e3, a4) { + var i4, n3, f4 = w3(0), b4 = 0; + r10 = r10 + 44 | 0, b4 = l3[(e3 << 2) + 4220 >> 2]; r: { - if ((-2 & e4) == 2) { - r10 = rX2(r10, 4, b5, 2140081935); + if ((-2 & e3) == 2) { + r10 = rX2(r10, 4, b4, 2140081935); break r; } - r10 = rY2(r10, b5, 2140081935); + r10 = rY2(r10, b4, 2140081935); } e: { if ((0 | r10) != 2139156720) { if ((0 | r10) == 2140081935 | (0 | r10) == 2141891242) break e; - if (i5 = r10, t3[2] = i5, (f6 = u5()) != f6) return w4(NaN); - if (n4 = (-1073741825 & r10) + 536870912 | 0, t3[2] = n4, f6 = u5(), !(1073741824 & r10)) break e; + if (i4 = r10, t2[2] = i4, (f4 = u3()) != f4) return w3(NaN); + if (n3 = (-1073741825 & r10) + 536870912 | 0, t2[2] = n3, f4 = u3(), !(1073741824 & r10)) break e; } - f6 = w4(w4(f6 * a5) * w4(0.009999999776482582)); + f4 = w3(w3(f4 * a4) * w3(0.009999999776482582)); } - return f6; + return f4; } - function rY2(r10, e4, a5) { - var i5 = w4(0); - i5 = p3[(e4 = (e4 << 2) + r10 | 0) >> 2], e4 = l4[e4 >> 2]; - r: if (!((0 | e4) == 2139156720 | (0 | e4) == 2140081935 | (0 | e4) == 2141891242 | i5 == i5)) { - if (e4 = l4[r10 + 28 >> 2], i5 = p3[r10 + 28 >> 2], (0 | e4) == 2139156720 | (0 | e4) == 2140081935 | (0 | e4) == 2141891242 | i5 == i5 || (i5 = p3[r10 + 32 >> 2], !((0 | (r10 = l4[r10 + 32 >> 2])) == 2139156720 | (0 | r10) == 2140081935 | (0 | r10) == 2141891242) && (e4 = a5, i5 != i5))) break r; - e4 = r10; + function rY2(r10, e3, a4) { + var i4 = w3(0); + i4 = p2[(e3 = (e3 << 2) + r10 | 0) >> 2], e3 = l3[e3 >> 2]; + r: if (!((0 | e3) == 2139156720 | (0 | e3) == 2140081935 | (0 | e3) == 2141891242 | i4 == i4)) { + if (e3 = l3[r10 + 28 >> 2], i4 = p2[r10 + 28 >> 2], (0 | e3) == 2139156720 | (0 | e3) == 2140081935 | (0 | e3) == 2141891242 | i4 == i4 || (i4 = p2[r10 + 32 >> 2], !((0 | (r10 = l3[r10 + 32 >> 2])) == 2139156720 | (0 | r10) == 2140081935 | (0 | r10) == 2141891242) && (e3 = a4, i4 != i4))) break r; + e3 = r10; } - return e4; + return e3; } - function rU2(r10, e4) { - var a5, i5, n4 = w4(0), f6 = 0; - r10 = r10 + 152 | 0, f6 = l4[(e4 << 2) + 4236 >> 2]; + function rU2(r10, e3) { + var a4, i4, n3 = w3(0), f4 = 0; + r10 = r10 + 152 | 0, f4 = l3[(e3 << 2) + 4236 >> 2]; r: { - if ((-2 & e4) == 2) { - r10 = rX2(r10, 5, f6, 2140081935); + if ((-2 & e3) == 2) { + r10 = rX2(r10, 5, f4, 2140081935); break r; } - r10 = rY2(r10, f6, 2140081935); + r10 = rY2(r10, f4, 2140081935); } - n4 = w4(0); + n3 = w3(0); e: if ((0 | r10) != 2139156720) { - if (n4 = w4(0), (0 | r10) == 2140081935) break e; - if ((0 | r10) != 2141891242 && (a5 = r10, t3[2] = a5, (n4 = u5()) == n4)) { - i5 = (-1073741825 & r10) + 536870912 | 0, t3[2] = i5, n4 = u5(); + if (n3 = w3(0), (0 | r10) == 2140081935) break e; + if ((0 | r10) != 2141891242 && (a4 = r10, t2[2] = a4, (n3 = u3()) == n3)) { + i4 = (-1073741825 & r10) + 536870912 | 0, t2[2] = i4, n3 = u3(); break e; } - n4 = w4(NaN); + n3 = w3(NaN); } - return eu2(n4, w4(0)); + return eu2(n3, w3(0)); } - function rM2(r10, e4) { - var a5, i5, n4 = w4(0), f6 = 0; - r10 = r10 + 152 | 0, f6 = l4[(e4 << 2) + 4220 >> 2]; + function rM2(r10, e3) { + var a4, i4, n3 = w3(0), f4 = 0; + r10 = r10 + 152 | 0, f4 = l3[(e3 << 2) + 4220 >> 2]; r: { - if ((-2 & e4) == 2) { - r10 = rX2(r10, 4, f6, 2140081935); + if ((-2 & e3) == 2) { + r10 = rX2(r10, 4, f4, 2140081935); break r; } - r10 = rY2(r10, f6, 2140081935); + r10 = rY2(r10, f4, 2140081935); } - n4 = w4(0); + n3 = w3(0); e: if ((0 | r10) != 2139156720) { - if (n4 = w4(0), (0 | r10) == 2140081935) break e; - if ((0 | r10) != 2141891242 && (a5 = r10, t3[2] = a5, (n4 = u5()) == n4)) { - i5 = (-1073741825 & r10) + 536870912 | 0, t3[2] = i5, n4 = u5(); + if (n3 = w3(0), (0 | r10) == 2140081935) break e; + if ((0 | r10) != 2141891242 && (a4 = r10, t2[2] = a4, (n3 = u3()) == n3)) { + i4 = (-1073741825 & r10) + 536870912 | 0, t2[2] = i4, n3 = u3(); break e; } - n4 = w4(NaN); + n3 = w3(NaN); } - return eu2(n4, w4(0)); + return eu2(n3, w3(0)); } - function rH2(r10, e4, a5, i5) { - var n4 = 0, f6 = 0, t4 = 0; - r10 *= e4, t4 = (n4 = (n4 = rl3(r10)) < 0 ? n4 + 1 : n4) != n4; + function rH2(r10, e3, a4, i4) { + var n3 = 0, f4 = 0, t3 = 0; + r10 *= e3, t3 = (n3 = (n3 = rl3(r10)) < 0 ? n3 + 1 : n3) != n3; r: { - if (!(!(1e-4 > y3(n4)) | t4)) { - r10 -= n4; + if (!(!(1e-4 > y2(n3)) | t3)) { + r10 -= n3; break r; } e: { - if (n4 != n4) { - r10 -= n4; + if (n3 != n3) { + r10 -= n3; break e; } - if (r10 -= n4, !(1e-4 > y3(n4 + -1))) break e; + if (r10 -= n3, !(1e-4 > y2(n3 + -1))) break e; r10 += 1; break r; } - if (a5) { + if (a4) { r10 += 1; break r; } - if (i5) break r; - f6 = 0; - a: if (!t4) { - if (f6 = 1, n4 > 0.5) break a; - f6 = 1e-4 > y3(n4 + -0.5) ? 1 : 0; + if (i4) break r; + f4 = 0; + a: if (!t3) { + if (f4 = 1, n3 > 0.5) break a; + f4 = 1e-4 > y2(n3 + -0.5) ? 1 : 0; } - r10 += f6; + r10 += f4; } - return r10 != r10 | e4 != e4 ? w4(NaN) : w4(r10 / e4); + return r10 != r10 | e3 != e3 ? w3(NaN) : w3(r10 / e3); } function rQ2(r10) { - var e4 = w4(0), a5 = 0, i5 = w4(0); - a5 = 0; - r: if ((196608 & l4[r10 + 24 >> 2]) != 131072) { - e: if (l4[r10 + 552 >> 2]) { - e4 = p3[r10 + 32 >> 2]; - if ((e4 == e4 || (e4 = p3[r10 + 28 >> 2]) > w4(0)) && (a5 = 1, e4 != w4(0))) break r; - if ((e4 = p3[r10 + 36 >> 2]) == e4) break e; - if (s3[r10 + 4 | 0] < 0) { - e4 = w4(1); + var e3 = w3(0), a4 = 0, i4 = w3(0); + a4 = 0; + r: if ((196608 & l3[r10 + 24 >> 2]) != 131072) { + e: if (l3[r10 + 552 >> 2]) { + e3 = p2[r10 + 32 >> 2]; + if ((e3 == e3 || (e3 = p2[r10 + 28 >> 2]) > w3(0)) && (a4 = 1, e3 != w3(0))) break r; + if ((e3 = p2[r10 + 36 >> 2]) == e3) break e; + if (s2[r10 + 4 | 0] < 0) { + e3 = w3(1); break e; } - if (e4 = w4(0), !((i5 = p3[r10 + 28 >> 2]) < w4(0))) break e; - e4 = w4(-i5); + if (e3 = w3(0), !((i4 = p2[r10 + 28 >> 2]) < w3(0))) break e; + e3 = w3(-i4); } - a5 = e4 != w4(0); + a4 = e3 != w3(0); } - return a5; + return a4; } - function rz2(r10, e4) { - var a5 = w4(0); + function rz2(r10, e3) { + var a4 = w3(0); r: { - if ((0 | e4) != 2139156720) { - if ((0 | e4) != 2140081935) { - if ((0 | e4) != 2141891242) break r; - l4[r10 >> 2] = 2143289344, l4[r10 + 4 >> 2] = 3; + if ((0 | e3) != 2139156720) { + if ((0 | e3) != 2140081935) { + if ((0 | e3) != 2141891242) break r; + l3[r10 >> 2] = 2143289344, l3[r10 + 4 >> 2] = 3; return; } - l4[r10 >> 2] = 0, l4[r10 + 4 >> 2] = 1; + l3[r10 >> 2] = 0, l3[r10 + 4 >> 2] = 1; return; } - l4[r10 >> 2] = 0, l4[r10 + 4 >> 2] = 2; + l3[r10 >> 2] = 0, l3[r10 + 4 >> 2] = 2; return; } - if (t3[2] = e4, (a5 = u5()) != a5) { - l4[r10 >> 2] = 2143289344, l4[r10 + 4 >> 2] = 0; + if (t2[2] = e3, (a4 = u3()) != a4) { + l3[r10 >> 2] = 2143289344, l3[r10 + 4 >> 2] = 0; return; } - l4[r10 + 4 >> 2] = 1073741824 & e4 ? 2 : 1, l4[r10 >> 2] = (-1073741825 & e4) + 536870912; + l3[r10 + 4 >> 2] = 1073741824 & e3 ? 2 : 1, l3[r10 >> 2] = (-1073741825 & e3) + 536870912; } function rj2(r10) { - var e4 = 0, a5 = 0, i5 = 0; - a5 = l4[r10 + 24 >> 2]; - r: if (8 & a5) { - if (e4 = 1, (7168 & a5) == 5120 || (e4 = 0, i5 = l4[r10 + 560 >> 2], a5 = l4[r10 + 556 >> 2], (0 | i5) == (0 | a5))) break r; - for (i5 = (r10 = i5 - a5 >> 2) >>> 0 <= 1 ? 1 : r10, r10 = 0; ; ) { - if (e4 = (196608 & (e4 = l4[l4[a5 + (r10 << 2) >> 2] + 24 >> 2])) != 131072 & (57344 & e4) == 40960) break r; - if ((0 | i5) == (0 | (r10 = r10 + 1 | 0))) break; + var e3 = 0, a4 = 0, i4 = 0; + a4 = l3[r10 + 24 >> 2]; + r: if (8 & a4) { + if (e3 = 1, (7168 & a4) == 5120 || (e3 = 0, i4 = l3[r10 + 560 >> 2], a4 = l3[r10 + 556 >> 2], (0 | i4) == (0 | a4))) break r; + for (i4 = (r10 = i4 - a4 >> 2) >>> 0 <= 1 ? 1 : r10, r10 = 0; ; ) { + if (e3 = (196608 & (e3 = l3[l3[a4 + (r10 << 2) >> 2] + 24 >> 2])) != 131072 & (57344 & e3) == 40960) break r; + if ((0 | i4) == (0 | (r10 = r10 + 1 | 0))) break; } } - return e4; + return e3; } function rD2(r10) { - var e4, a5 = 0, i5 = w4(0); - a5 = 2143289344; - if (!(w4(y3(r10)) == w4(1 / 0) | r10 != r10 || (a5 = 2139156720, r10 < w4(10842021724855044e-35) & r10 > w4(-10842021724855044e-35) | r10 == w4(0)))) { - c4(r10), e4 = -2147483648 & t3[2] | 1602224127, t3[2] = e4, i5 = u5(), c4(r10 > w4(18446742974197924e3) ? i5 : r10 < w4(-18446742974197924e3) ? i5 : r10), a5 = t3[2] - 536870912 | 1073741824; + var e3, a4 = 0, i4 = w3(0); + a4 = 2143289344; + if (!(w3(y2(r10)) == w3(1 / 0) | r10 != r10 || (a4 = 2139156720, r10 < w3(10842021724855044e-35) & r10 > w3(-10842021724855044e-35) | r10 == w3(0)))) { + c3(r10), e3 = -2147483648 & t2[2] | 1602224127, t2[2] = e3, i4 = u3(), c3(r10 > w3(18446742974197924e3) ? i4 : r10 < w3(-18446742974197924e3) ? i4 : r10), a4 = t2[2] - 536870912 | 1073741824; } - return a5; + return a4; } function rx2(r10) { - var e4, a5 = 0, i5 = w4(0); - a5 = 2143289344; - if (!(w4(y3(r10)) == w4(1 / 0) | r10 != r10 || (a5 = 2140081935, r10 < w4(10842021724855044e-35) & r10 > w4(-10842021724855044e-35) | r10 == w4(0)))) { - c4(r10), e4 = -2147483648 & t3[2] | 1610612735, t3[2] = e4, i5 = u5(), c4(r10 > w4(36893485948395848e3) ? i5 : r10 < w4(-36893485948395848e3) ? i5 : r10), a5 = t3[2] - 536870912 | 0; + var e3, a4 = 0, i4 = w3(0); + a4 = 2143289344; + if (!(w3(y2(r10)) == w3(1 / 0) | r10 != r10 || (a4 = 2140081935, r10 < w3(10842021724855044e-35) & r10 > w3(-10842021724855044e-35) | r10 == w3(0)))) { + c3(r10), e3 = -2147483648 & t2[2] | 1610612735, t2[2] = e3, i4 = u3(), c3(r10 > w3(36893485948395848e3) ? i4 : r10 < w3(-36893485948395848e3) ? i4 : r10), a4 = t2[2] - 536870912 | 0; } - return a5; + return a4; } - function rJ2(r10, e4) { + function rJ2(r10, e3) { r: { - if (e4) { - e4 = ev(l4[e4 >> 2]); + if (e3) { + e3 = ev(l3[e3 >> 2]); break r; } e: { - if (d4[6936]) { - e4 = l4[1733]; + if (d3[6936]) { + e3 = l3[1733]; break e; } - A3[(e4 = eo(28)) + 20 >> 1] = 0, l4[e4 + 16 >> 2] = 1065353216, A3[e4 + 10 >> 1] = 0, A3[e4 + 12 >> 1] = 0, l4[e4 >> 2] = 0, l4[e4 + 24 >> 2] = 0, s3[e4 + 9 | 0] = 0, l4[e4 + 4 >> 2] = 1, s3[e4 + 22 | 0] = 0, l4[1733] = e4, s3[6936] = 1, l4[1732] = l4[1732] + 1; + A2[(e3 = eo(28)) + 20 >> 1] = 0, l3[e3 + 16 >> 2] = 1065353216, A2[e3 + 10 >> 1] = 0, A2[e3 + 12 >> 1] = 0, l3[e3 >> 2] = 0, l3[e3 + 24 >> 2] = 0, s2[e3 + 9 | 0] = 0, l3[e3 + 4 >> 2] = 1, s2[e3 + 22 | 0] = 0, l3[1733] = e3, s2[6936] = 1, l3[1732] = l3[1732] + 1; } - e4 = ev(e4); + e3 = ev(e3); } - return l4[r10 + 4 >> 2] = 0, l4[r10 + 8 >> 2] = 0, l4[r10 >> 2] = e4, l4[e4 >> 2] = r10, r10; + return l3[r10 + 4 >> 2] = 0, l3[r10 + 8 >> 2] = 0, l3[r10 >> 2] = e3, l3[e3 >> 2] = r10, r10; } - function rK2(r10, e4, a5) { - var i5 = 0, n4 = 0, f6 = 0; + function rK2(r10, e3, a4) { + var i4 = 0, n3 = 0, f4 = 0; r: { - if (!e4) { - i5 = r10; + if (!e3) { + i4 = r10; break r; } - for (; r10 = r9(i5 = rh2(r10, e4, 10), n4 = ra3, 246, 0) + r10 | 0, s3[0 | (a5 = a5 - 1 | 0)] = 48 | r10, f6 = e4 >>> 0 > 9, r10 = i5, e4 = n4, f6; ) ; + for (; r10 = r9(i4 = rh2(r10, e3, 10), n3 = ra3, 246, 0) + r10 | 0, s2[0 | (a4 = a4 - 1 | 0)] = 48 | r10, f4 = e3 >>> 0 > 9, r10 = i4, e3 = n3, f4; ) ; } - if (i5) for (; a5 = a5 - 1 | 0, r10 = (i5 >>> 0) / 10 | 0, s3[0 | a5] = N3(r10, 246) + i5 | 48, e4 = i5 >>> 0 > 9, i5 = r10, e4; ) ; - return a5; + if (i4) for (; a4 = a4 - 1 | 0, r10 = (i4 >>> 0) / 10 | 0, s2[0 | a4] = N2(r10, 246) + i4 | 48, e3 = i4 >>> 0 > 9, i4 = r10, e3; ) ; + return a4; } - function rq2(r10, e4) { - var a5 = 0, i5 = 0; + function rq2(r10, e3) { + var a4 = 0, i4 = 0; r: { - e: if (a5 = l4[r10 + 556 >> 2], i5 = l4[r10 + 560 >> 2], (0 | a5) != (0 | i5)) { + e: if (a4 = l3[r10 + 556 >> 2], i4 = l3[r10 + 560 >> 2], (0 | a4) != (0 | i4)) { for (; ; ) { - if (l4[a5 >> 2] == (0 | e4)) break e; - if ((0 | i5) == (0 | (a5 = a5 + 4 | 0))) break; + if (l3[a4 >> 2] == (0 | e3)) break e; + if ((0 | i4) == (0 | (a4 = a4 + 4 | 0))) break; } break r; } - if ((0 | a5) == (0 | i5)) break r; - return e4 = a5 + 4 | 0, rm2(a5, e4, i5 - e4 | 0), l4[r10 + 560 >> 2] = i5 - 4, 1; + if ((0 | a4) == (0 | i4)) break r; + return e3 = a4 + 4 | 0, rm2(a4, e3, i4 - e3 | 0), l3[r10 + 560 >> 2] = i4 - 4, 1; } return 0; } - function r$2(r10, e4, a5) { - var i5 = 0; - r: if (l4[((i5 = r10 + 24 | 0) + (e4 << 2) | 0) + 184 >> 2] != (0 | a5)) for (l4[((e4 << 2) + i5 | 0) + 184 >> 2] = a5; ; ) { - if (4 & (e4 = d4[r10 + 4 | 0])) break r; - if (s3[r10 + 4 | 0] = 4 | e4, (e4 = l4[r10 + 20 >> 2]) && eY[0 | e4](r10), l4[r10 + 308 >> 2] = 2143289344, !(r10 = l4[r10 + 552 >> 2])) break; + function r$2(r10, e3, a4) { + var i4 = 0; + r: if (l3[((i4 = r10 + 24 | 0) + (e3 << 2) | 0) + 184 >> 2] != (0 | a4)) for (l3[((e3 << 2) + i4 | 0) + 184 >> 2] = a4; ; ) { + if (4 & (e3 = d3[r10 + 4 | 0])) break r; + if (s2[r10 + 4 | 0] = 4 | e3, (e3 = l3[r10 + 20 >> 2]) && eY[0 | e3](r10), l3[r10 + 308 >> 2] = 2143289344, !(r10 = l3[r10 + 552 >> 2])) break; } } - function r02(r10, e4, a5) { - var i5 = 0; - r: if (l4[((i5 = r10 + 24 | 0) + (e4 << 2) | 0) + 192 >> 2] != (0 | a5)) for (l4[((e4 << 2) + i5 | 0) + 192 >> 2] = a5; ; ) { - if (4 & (e4 = d4[r10 + 4 | 0])) break r; - if (s3[r10 + 4 | 0] = 4 | e4, (e4 = l4[r10 + 20 >> 2]) && eY[0 | e4](r10), l4[r10 + 308 >> 2] = 2143289344, !(r10 = l4[r10 + 552 >> 2])) break; + function r02(r10, e3, a4) { + var i4 = 0; + r: if (l3[((i4 = r10 + 24 | 0) + (e3 << 2) | 0) + 192 >> 2] != (0 | a4)) for (l3[((e3 << 2) + i4 | 0) + 192 >> 2] = a4; ; ) { + if (4 & (e3 = d3[r10 + 4 | 0])) break r; + if (s2[r10 + 4 | 0] = 4 | e3, (e3 = l3[r10 + 20 >> 2]) && eY[0 | e3](r10), l3[r10 + 308 >> 2] = 2143289344, !(r10 = l3[r10 + 552 >> 2])) break; } } - function r23(r10, e4, a5) { - var i5 = 0; - r: if (l4[((i5 = r10 + 24 | 0) + (e4 << 2) | 0) + 176 >> 2] != (0 | a5)) for (l4[((e4 << 2) + i5 | 0) + 176 >> 2] = a5; ; ) { - if (4 & (e4 = d4[r10 + 4 | 0])) break r; - if (s3[r10 + 4 | 0] = 4 | e4, (e4 = l4[r10 + 20 >> 2]) && eY[0 | e4](r10), l4[r10 + 308 >> 2] = 2143289344, !(r10 = l4[r10 + 552 >> 2])) break; + function r22(r10, e3, a4) { + var i4 = 0; + r: if (l3[((i4 = r10 + 24 | 0) + (e3 << 2) | 0) + 176 >> 2] != (0 | a4)) for (l3[((e3 << 2) + i4 | 0) + 176 >> 2] = a4; ; ) { + if (4 & (e3 = d3[r10 + 4 | 0])) break r; + if (s2[r10 + 4 | 0] = 4 | e3, (e3 = l3[r10 + 20 >> 2]) && eY[0 | e3](r10), l3[r10 + 308 >> 2] = 2143289344, !(r10 = l3[r10 + 552 >> 2])) break; } } - function r1(r10, e4) { - var a5 = 0, i5 = 0, n4 = 0; - r: if (l4[(a5 = r10 + 24 | 0) + 16 >> 2] != (0 | e4)) for (i5 = 0 | eY[9](a5), n4 = e4, l4[i5 + 16 >> 2] = n4; ; ) { - if (4 & (e4 = d4[r10 + 4 | 0])) break r; - if (s3[r10 + 4 | 0] = 4 | e4, (e4 = l4[r10 + 20 >> 2]) && eY[0 | e4](r10), l4[r10 + 308 >> 2] = 2143289344, !(r10 = l4[r10 + 552 >> 2])) break; + function r1(r10, e3) { + var a4 = 0, i4 = 0, n3 = 0; + r: if (l3[(a4 = r10 + 24 | 0) + 16 >> 2] != (0 | e3)) for (i4 = 0 | eY[9](a4), n3 = e3, l3[i4 + 16 >> 2] = n3; ; ) { + if (4 & (e3 = d3[r10 + 4 | 0])) break r; + if (s2[r10 + 4 | 0] = 4 | e3, (e3 = l3[r10 + 20 >> 2]) && eY[0 | e3](r10), l3[r10 + 308 >> 2] = 2143289344, !(r10 = l3[r10 + 552 >> 2])) break; } } - function r42(r10, e4, a5) { - var i5 = 0; - r: if (l4[((i5 = r10 + 24 | 0) + (e4 << 2) | 0) + 56 >> 2] != (0 | a5)) for (l4[((e4 << 2) + i5 | 0) + 56 >> 2] = a5; ; ) { - if (4 & (e4 = d4[r10 + 4 | 0])) break r; - if (s3[r10 + 4 | 0] = 4 | e4, (e4 = l4[r10 + 20 >> 2]) && eY[0 | e4](r10), l4[r10 + 308 >> 2] = 2143289344, !(r10 = l4[r10 + 552 >> 2])) break; + function r42(r10, e3, a4) { + var i4 = 0; + r: if (l3[((i4 = r10 + 24 | 0) + (e3 << 2) | 0) + 56 >> 2] != (0 | a4)) for (l3[((e3 << 2) + i4 | 0) + 56 >> 2] = a4; ; ) { + if (4 & (e3 = d3[r10 + 4 | 0])) break r; + if (s2[r10 + 4 | 0] = 4 | e3, (e3 = l3[r10 + 20 >> 2]) && eY[0 | e3](r10), l3[r10 + 308 >> 2] = 2143289344, !(r10 = l3[r10 + 552 >> 2])) break; } } - function r32(r10, e4, a5) { - var i5 = 0; - r: if (l4[((i5 = r10 + 24 | 0) + (e4 << 2) | 0) + 92 >> 2] != (0 | a5)) for (l4[((e4 << 2) + i5 | 0) + 92 >> 2] = a5; ; ) { - if (4 & (e4 = d4[r10 + 4 | 0])) break r; - if (s3[r10 + 4 | 0] = 4 | e4, (e4 = l4[r10 + 20 >> 2]) && eY[0 | e4](r10), l4[r10 + 308 >> 2] = 2143289344, !(r10 = l4[r10 + 552 >> 2])) break; + function r32(r10, e3, a4) { + var i4 = 0; + r: if (l3[((i4 = r10 + 24 | 0) + (e3 << 2) | 0) + 92 >> 2] != (0 | a4)) for (l3[((e3 << 2) + i4 | 0) + 92 >> 2] = a4; ; ) { + if (4 & (e3 = d3[r10 + 4 | 0])) break r; + if (s2[r10 + 4 | 0] = 4 | e3, (e3 = l3[r10 + 20 >> 2]) && eY[0 | e3](r10), l3[r10 + 308 >> 2] = 2143289344, !(r10 = l3[r10 + 552 >> 2])) break; } } - function r8(r10, e4, a5) { - var i5 = 0; - r: if (l4[((i5 = r10 + 24 | 0) + (e4 << 2) | 0) + 20 >> 2] != (0 | a5)) for (l4[((e4 << 2) + i5 | 0) + 20 >> 2] = a5; ; ) { - if (4 & (e4 = d4[r10 + 4 | 0])) break r; - if (s3[r10 + 4 | 0] = 4 | e4, (e4 = l4[r10 + 20 >> 2]) && eY[0 | e4](r10), l4[r10 + 308 >> 2] = 2143289344, !(r10 = l4[r10 + 552 >> 2])) break; + function r8(r10, e3, a4) { + var i4 = 0; + r: if (l3[((i4 = r10 + 24 | 0) + (e3 << 2) | 0) + 20 >> 2] != (0 | a4)) for (l3[((e3 << 2) + i4 | 0) + 20 >> 2] = a4; ; ) { + if (4 & (e3 = d3[r10 + 4 | 0])) break r; + if (s2[r10 + 4 | 0] = 4 | e3, (e3 = l3[r10 + 20 >> 2]) && eY[0 | e3](r10), l3[r10 + 308 >> 2] = 2143289344, !(r10 = l3[r10 + 552 >> 2])) break; } } - function r6(r10, e4) { - var a5, i5 = 0, n4 = w4(0); - r10 = r10 + 80 | 0, i5 = l4[(e4 << 2) + 4236 >> 2]; + function r6(r10, e3) { + var a4, i4 = 0, n3 = w3(0); + r10 = r10 + 80 | 0, i4 = l3[(e3 << 2) + 4236 >> 2]; r: { - if ((-2 & e4) == 2) { - r10 = rX2(r10, 5, i5, 2143289344); + if ((-2 & e3) == 2) { + r10 = rX2(r10, 5, i4, 2143289344); break r; } - r10 = rY2(r10, i5, 2143289344); + r10 = rY2(r10, i4, 2143289344); } - return (0 | r10) == 2139156720 | (0 | r10) == 2140081935 | (0 | r10) == 2141891242 ? r10 = 1 : (a5 = r10, t3[2] = a5, r10 = (n4 = u5()) == n4), r10; + return (0 | r10) == 2139156720 | (0 | r10) == 2140081935 | (0 | r10) == 2141891242 ? r10 = 1 : (a4 = r10, t2[2] = a4, r10 = (n3 = u3()) == n3), r10; } - function r52(r10, e4) { - var a5, i5 = 0, n4 = w4(0); - r10 = r10 + 80 | 0, i5 = l4[(e4 << 2) + 4220 >> 2]; + function r52(r10, e3) { + var a4, i4 = 0, n3 = w3(0); + r10 = r10 + 80 | 0, i4 = l3[(e3 << 2) + 4220 >> 2]; r: { - if ((-2 & e4) == 2) { - r10 = rX2(r10, 4, i5, 2143289344); + if ((-2 & e3) == 2) { + r10 = rX2(r10, 4, i4, 2143289344); break r; } - r10 = rY2(r10, i5, 2143289344); + r10 = rY2(r10, i4, 2143289344); } - return (0 | r10) == 2139156720 | (0 | r10) == 2140081935 | (0 | r10) == 2141891242 ? r10 = 1 : (a5 = r10, t3[2] = a5, r10 = (n4 = u5()) == n4), r10; + return (0 | r10) == 2139156720 | (0 | r10) == 2140081935 | (0 | r10) == 2141891242 ? r10 = 1 : (a4 = r10, t2[2] = a4, r10 = (n3 = u3()) == n3), r10; } - function r9(r10, e4, a5, i5) { - var n4 = 0, f6 = 0, t4 = 0, b5 = 0, o4 = 0, k5 = 0; - return k5 = N3(n4 = a5 >>> 16 | 0, f6 = r10 >>> 16 | 0), n4 = (65535 & (f6 = ((o4 = N3(t4 = 65535 & a5, b5 = 65535 & r10)) >>> 16 | 0) + N3(f6, t4) | 0)) + N3(n4, b5) | 0, ra3 = (N3(e4, a5) + k5 | 0) + N3(r10, i5) + (f6 >>> 16) + (n4 >>> 16) | 0, 65535 & o4 | n4 << 16; + function r9(r10, e3, a4, i4) { + var n3 = 0, f4 = 0, t3 = 0, b4 = 0, o3 = 0, k4 = 0; + return k4 = N2(n3 = a4 >>> 16 | 0, f4 = r10 >>> 16 | 0), n3 = (65535 & (f4 = ((o3 = N2(t3 = 65535 & a4, b4 = 65535 & r10)) >>> 16 | 0) + N2(f4, t3) | 0)) + N2(n3, b4) | 0, ra3 = (N2(e3, a4) + k4 | 0) + N2(r10, i4) + (f4 >>> 16) + (n3 >>> 16) | 0, 65535 & o3 | n3 << 16; } - function r7(r10, e4) { - var a5 = 0, i5 = 0, n4 = 0; - re3 = i5 = re3 - 16 | 0, n4 = -17 & (a5 = d4[r10 + 4 | 0]), s3[r10 + 4 | 0] = n4; + function r7(r10, e3) { + var a4 = 0, i4 = 0, n3 = 0; + re3 = i4 = re3 - 16 | 0, n3 = -17 & (a4 = d3[r10 + 4 | 0]), s2[r10 + 4 | 0] = n3; r: { - if (e4) { - if (l4[r10 + 560 >> 2] != l4[r10 + 556 >> 2]) break r; - a5 = 8 | n4; - } else a5 &= 231; - l4[r10 + 8 >> 2] = e4, s3[r10 + 4 | 0] = a5, re3 = i5 + 16 | 0; + if (e3) { + if (l3[r10 + 560 >> 2] != l3[r10 + 556 >> 2]) break r; + a4 = 8 | n3; + } else a4 &= 231; + l3[r10 + 8 >> 2] = e3, s2[r10 + 4 | 0] = a4, re3 = i4 + 16 | 0; return; } - l4[i5 >> 2] = 4059, rB2(r10, i5), eX(), k4(); + l3[i4 >> 2] = 4059, rB2(r10, i4), eX(), k3(); } - function er(r10, e4, a5, i5, n4) { - var f6 = 0; - if (re3 = f6 = re3 - 256 | 0, !(73728 & n4 | (0 | a5) <= (0 | i5))) { - if (ry2(f6, 255 & e4, (a5 = (i5 = a5 - i5 | 0) >>> 0 < 256) ? i5 : 256), !a5) for (; rF2(r10, f6, 256), (i5 = i5 - 256 | 0) >>> 0 > 255; ) ; - rF2(r10, f6, i5); + function er(r10, e3, a4, i4, n3) { + var f4 = 0; + if (re3 = f4 = re3 - 256 | 0, !(73728 & n3 | (0 | a4) <= (0 | i4))) { + if (ry2(f4, 255 & e3, (a4 = (i4 = a4 - i4 | 0) >>> 0 < 256) ? i4 : 256), !a4) for (; rF2(r10, f4, 256), (i4 = i4 - 256 | 0) >>> 0 > 255; ) ; + rF2(r10, f4, i4); } - re3 = f6 + 256 | 0; + re3 = f4 + 256 | 0; } - function ee(r10, e4, a5) { - var i5 = 0, n4 = w4(0); - ((-2 & a5) != 2 || (n4 = p3[(i5 = e4 - -64 | 0) >> 2], !((0 | (i5 = l4[i5 >> 2])) == 2139156720 | (0 | i5) == 2140081935 | (0 | i5) == 2141891242 | n4 == n4))) && (i5 = l4[((l4[(a5 << 2) + 4236 >> 2] << 2) + e4 | 0) + 44 >> 2]); - rz2(r10, i5); + function ee(r10, e3, a4) { + var i4 = 0, n3 = w3(0); + ((-2 & a4) != 2 || (n3 = p2[(i4 = e3 - -64 | 0) >> 2], !((0 | (i4 = l3[i4 >> 2])) == 2139156720 | (0 | i4) == 2140081935 | (0 | i4) == 2141891242 | n3 == n3))) && (i4 = l3[((l3[(a4 << 2) + 4236 >> 2] << 2) + e3 | 0) + 44 >> 2]); + rz2(r10, i4); } - function ea(r10, e4, a5) { - var i5 = 0, n4 = w4(0); - ((-2 & a5) != 2 || (i5 = l4[e4 + 60 >> 2], n4 = p3[e4 + 60 >> 2], !((0 | i5) == 2139156720 | (0 | i5) == 2140081935 | (0 | i5) == 2141891242 | n4 == n4))) && (i5 = l4[((l4[(a5 << 2) + 4220 >> 2] << 2) + e4 | 0) + 44 >> 2]); - rz2(r10, i5); + function ea(r10, e3, a4) { + var i4 = 0, n3 = w3(0); + ((-2 & a4) != 2 || (i4 = l3[e3 + 60 >> 2], n3 = p2[e3 + 60 >> 2], !((0 | i4) == 2139156720 | (0 | i4) == 2140081935 | (0 | i4) == 2141891242 | n3 == n3))) && (i4 = l3[((l3[(a4 << 2) + 4220 >> 2] << 2) + e3 | 0) + 44 >> 2]); + rz2(r10, i4); } function ei(r10) { - var e4 = 0, a5 = 0, i5 = 0; - for (i5 = l4[r10 >> 2]; ; ) { - if (eO(a5 = s3[0 | i5])) { - i5 = i5 + 1 | 0, l4[r10 >> 2] = i5, e4 = e4 >>> 0 <= 214748364 ? (0 | (a5 = a5 - 48 | 0)) > (2147483647 ^ (e4 = N3(e4, 10))) ? -1 : a5 + e4 | 0 : -1; + var e3 = 0, a4 = 0, i4 = 0; + for (i4 = l3[r10 >> 2]; ; ) { + if (eO(a4 = s2[0 | i4])) { + i4 = i4 + 1 | 0, l3[r10 >> 2] = i4, e3 = e3 >>> 0 <= 214748364 ? (0 | (a4 = a4 - 48 | 0)) > (2147483647 ^ (e3 = N2(e3, 10))) ? -1 : a4 + e3 | 0 : -1; continue; } break; } - return e4; + return e3; } - function en(r10, e4, a5, i5) { - var n4 = 0; - l4[r10 + 12 >> 2] = 0, l4[r10 + 16 >> 2] = i5; + function en(r10, e3, a4, i4) { + var n3 = 0; + l3[r10 + 12 >> 2] = 0, l3[r10 + 16 >> 2] = i4; r: { - if (e4) { - if (e4 >>> 0 >= 1073741824) break r; - n4 = eo(e4 << 2); + if (e3) { + if (e3 >>> 0 >= 1073741824) break r; + n3 = eo(e3 << 2); } - return l4[r10 >> 2] = n4, a5 = (a5 << 2) + n4 | 0, l4[r10 + 8 >> 2] = a5, l4[r10 + 12 >> 2] = (e4 << 2) + n4, l4[r10 + 4 >> 2] = a5, r10; + return l3[r10 >> 2] = n3, a4 = (a4 << 2) + n3 | 0, l3[r10 + 8 >> 2] = a4, l3[r10 + 12 >> 2] = (e3 << 2) + n3, l3[r10 + 4 >> 2] = a4, r10; } - eP(), k4(); + eP(), k3(); } function ef2(r10) { - var e4 = 0; - return (e4 = l4[r10 + 72 >> 2], l4[r10 + 72 >> 2] = e4 - 1 | e4, 8 & (e4 = l4[r10 >> 2])) ? (l4[r10 >> 2] = 32 | e4, -1) : (l4[r10 + 4 >> 2] = 0, l4[r10 + 8 >> 2] = 0, e4 = l4[r10 + 44 >> 2], l4[r10 + 28 >> 2] = e4, l4[r10 + 20 >> 2] = e4, l4[r10 + 16 >> 2] = e4 + l4[r10 + 48 >> 2], 0); + var e3 = 0; + return (e3 = l3[r10 + 72 >> 2], l3[r10 + 72 >> 2] = e3 - 1 | e3, 8 & (e3 = l3[r10 >> 2])) ? (l3[r10 >> 2] = 32 | e3, -1) : (l3[r10 + 4 >> 2] = 0, l3[r10 + 8 >> 2] = 0, e3 = l3[r10 + 44 >> 2], l3[r10 + 28 >> 2] = e3, l3[r10 + 20 >> 2] = e3, l3[r10 + 16 >> 2] = e3 + l3[r10 + 48 >> 2], 0); } - function et2(r10, e4, a5, i5) { - r10 |= 0, e4 |= 0, a5 |= 0, i5 |= 0; - var n4 = 0; - n4 = l4[r10 >> 2], e4 = ((r10 = l4[r10 + 4 >> 2]) >> 1) + e4 | 0, 1 & r10 && (n4 = l4[n4 + l4[e4 >> 2] >> 2]), eY[0 | n4](e4, a5, i5); + function et2(r10, e3, a4, i4) { + r10 |= 0, e3 |= 0, a4 |= 0, i4 |= 0; + var n3 = 0; + n3 = l3[r10 >> 2], e3 = ((r10 = l3[r10 + 4 >> 2]) >> 1) + e3 | 0, 1 & r10 && (n3 = l3[n3 + l3[e3 >> 2] >> 2]), eY[0 | n3](e3, a4, i4); } - function eb(r10, e4, a5) { - r10 |= 0, e4 |= 0, a5 |= 0; - var i5 = 0; - return i5 = l4[r10 >> 2], e4 = ((r10 = l4[r10 + 4 >> 2]) >> 1) + e4 | 0, 1 & r10 && (i5 = l4[i5 + l4[e4 >> 2] >> 2]), 0 | eY[0 | i5](e4, a5); + function eb(r10, e3, a4) { + r10 |= 0, e3 |= 0, a4 |= 0; + var i4 = 0; + return i4 = l3[r10 >> 2], e3 = ((r10 = l3[r10 + 4 >> 2]) >> 1) + e3 | 0, 1 & r10 && (i4 = l3[i4 + l3[e3 >> 2] >> 2]), 0 | eY[0 | i4](e3, a4); } function eo(r10) { - var e4 = 0; + var e3 = 0; r10 = r10 || 1; r: { for (; ; ) { - if (e4 = rb2(r10)) break r; - if (e4 = l4[2022]) { - eY[0 | e4](); + if (e3 = rb2(r10)) break r; + if (e3 = l3[2022]) { + eY[0 | e3](); continue; } break; } - T3(), k4(); + T2(), k3(); } - return e4; + return e3; } - function ek(r10, e4, a5) { - r10 |= 0, e4 |= 0, a5 |= 0; - var i5 = 0; - i5 = l4[r10 >> 2], e4 = ((r10 = l4[r10 + 4 >> 2]) >> 1) + e4 | 0, 1 & r10 && (i5 = l4[i5 + l4[e4 >> 2] >> 2]), eY[0 | i5](e4, a5); + function ek(r10, e3, a4) { + r10 |= 0, e3 |= 0, a4 |= 0; + var i4 = 0; + i4 = l3[r10 >> 2], e3 = ((r10 = l3[r10 + 4 >> 2]) >> 1) + e3 | 0, 1 & r10 && (i4 = l3[i4 + l3[e3 >> 2] >> 2]), eY[0 | i4](e3, a4); } - function ec2(r10, e4) { - r10 |= 0, e4 |= 0; - var a5 = 0; - return a5 = l4[r10 >> 2], e4 = ((r10 = l4[r10 + 4 >> 2]) >> 1) + e4 | 0, 1 & r10 && (a5 = l4[a5 + l4[e4 >> 2] >> 2]), 0 | eY[0 | a5](e4); + function ec2(r10, e3) { + r10 |= 0, e3 |= 0; + var a4 = 0; + return a4 = l3[r10 >> 2], e3 = ((r10 = l3[r10 + 4 >> 2]) >> 1) + e3 | 0, 1 & r10 && (a4 = l3[a4 + l3[e3 >> 2] >> 2]), 0 | eY[0 | a4](e3); } - function eu2(r10, e4) { - return (c4(r10), (2147483647 & t3[2]) >>> 0 <= 2139095040) ? (c4(e4), (2147483647 & t3[2]) >>> 0 > 2139095040) ? r10 : w4(R3(r10, e4)) : e4; + function eu2(r10, e3) { + return (c3(r10), (2147483647 & t2[2]) >>> 0 <= 2139095040) ? (c3(e3), (2147483647 & t2[2]) >>> 0 > 2139095040) ? r10 : w3(R3(r10, e3)) : e3; } - function es(r10, e4) { - return (c4(r10), (2147483647 & t3[2]) >>> 0 <= 2139095040) ? (c4(e4), (2147483647 & t3[2]) >>> 0 > 2139095040) ? r10 : w4(G3(r10, e4)) : e4; + function es(r10, e3) { + return (c3(r10), (2147483647 & t2[2]) >>> 0 <= 2139095040) ? (c3(e3), (2147483647 & t2[2]) >>> 0 > 2139095040) ? r10 : w3(G2(r10, e3)) : e3; } - function eA(r10, e4) { - r10 |= 0, e4 |= 0; - var a5 = 0; - return re3 = a5 = re3 - 16 | 0, l4[a5 + 8 >> 2] = e4, r10 = 0 | eY[0 | r10](a5 + 8 | 0), I3(l4[a5 + 8 >> 2]), re3 = a5 + 16 | 0, 0 | r10; + function eA(r10, e3) { + r10 |= 0, e3 |= 0; + var a4 = 0; + return re3 = a4 = re3 - 16 | 0, l3[a4 + 8 >> 2] = e3, r10 = 0 | eY[0 | r10](a4 + 8 | 0), I2(l3[a4 + 8 >> 2]), re3 = a4 + 16 | 0, 0 | r10; } - function el2(r10, e4) { + function el2(r10, e3) { if (!r10) return 0; r: { - if (!((-128 & e4) == 57216 | e4 >>> 0 <= 127)) { - l4[1761] = 25, r10 = -1; + if (!((-128 & e3) == 57216 | e3 >>> 0 <= 127)) { + l3[1761] = 25, r10 = -1; break r; } - s3[0 | r10] = e4, r10 = 1; + s2[0 | r10] = e3, r10 = 1; } return r10; } - function ed(r10, e4) { - var a5 = 0, i5 = 0; - l4[(a5 = eo(4)) >> 2] = e4, l4[(i5 = eo(4)) >> 2] = e4, X2(6955, 0 | r10, 7018, 4630, 192, 0 | a5, 7018, 4634, 193, 0 | i5); + function ed(r10, e3) { + var a4 = 0, i4 = 0; + l3[(a4 = eo(4)) >> 2] = e3, l3[(i4 = eo(4)) >> 2] = e3, X2(6955, 0 | r10, 7018, 4630, 192, 0 | a4, 7018, 4634, 193, 0 | i4); } - function eh(r10, e4) { - var a5 = 0, i5 = 0; - l4[(a5 = eo(4)) >> 2] = e4, l4[(i5 = eo(4)) >> 2] = e4, X2(6985, 0 | r10, 7018, 4630, 190, 0 | a5, 7018, 4634, 191, 0 | i5); + function eh(r10, e3) { + var a4 = 0, i4 = 0; + l3[(a4 = eo(4)) >> 2] = e3, l3[(i4 = eo(4)) >> 2] = e3, X2(6985, 0 | r10, 7018, 4630, 190, 0 | a4, 7018, 4634, 191, 0 | i4); } function ev(r10) { - var e4 = 0, a5 = 0; - return re3 = e4 = re3 - 16 | 0, a5 = rk2(eo(588), r10), r10 || (l4[e4 >> 2] = 2759, rB2(0, e4), eX(), k4()), re3 = e4 + 16 | 0, a5; + var e3 = 0, a4 = 0; + return re3 = e3 = re3 - 16 | 0, a4 = rk2(eo(588), r10), r10 || (l3[e3 >> 2] = 2759, rB2(0, e3), eX(), k3()), re3 = e3 + 16 | 0, a4; } - function ep(r10, e4) { - var a5 = 0; + function ep(r10, e3) { + var a4 = 0; r: { - if (1 & s3[6964]) { - a5 = l4[1740]; + if (1 & s2[6964]) { + a4 = l3[1740]; break r; } - a5 = 0 | F2(1, 4400), s3[6964] = 1, l4[1740] = a5; + a4 = 0 | F2(1, 4400), s2[6964] = 1, l3[1740] = a4; } - Q3(0 | a5, 0 | r10, 0 | e4, 0); + Q2(0 | a4, 0 | r10, 0 | e3, 0); } - function em(r10, e4) { - r10 |= 0, e4 |= 0; - var a5 = 0; - a5 = l4[r10 >> 2], e4 = ((r10 = l4[r10 + 4 >> 2]) >> 1) + e4 | 0, 1 & r10 && (a5 = l4[a5 + l4[e4 >> 2] >> 2]), eY[0 | a5](e4); + function em(r10, e3) { + r10 |= 0, e3 |= 0; + var a4 = 0; + a4 = l3[r10 >> 2], e3 = ((r10 = l3[r10 + 4 >> 2]) >> 1) + e3 | 0, 1 & r10 && (a4 = l3[a4 + l3[e3 >> 2] >> 2]), eY[0 | a4](e3); } function eN(r10) { - return l4[(r10 |= 0) >> 2] = 4508, d4[r10 + 4 | 0] && ep(l4[r10 + 8 >> 2], 1758), I3(l4[r10 + 8 >> 2]), 0 | r10; + return l3[(r10 |= 0) >> 2] = 4508, d3[r10 + 4 | 0] && ep(l3[r10 + 8 >> 2], 1758), I2(l3[r10 + 8 >> 2]), 0 | r10; } function ew(r10) { - return l4[(r10 |= 0) >> 2] = 4388, d4[r10 + 4 | 0] && ep(l4[r10 + 8 >> 2], 1758), I3(l4[r10 + 8 >> 2]), 0 | r10; + return l3[(r10 |= 0) >> 2] = 4388, d3[r10 + 4 | 0] && ep(l3[r10 + 8 >> 2], 1758), I2(l3[r10 + 8 >> 2]), 0 | r10; } - function ey(r10, e4, a5) { - return r52(r10, e4) ? rI2(r10, e4, a5) : ((a5 = rT2(r10, e4, a5)) == a5 && (a5 = w4(-a5)), a5); + function ey(r10, e3, a4) { + return r52(r10, e3) ? rI2(r10, e3, a4) : ((a4 = rT2(r10, e3, a4)) == a4 && (a4 = w3(-a4)), a4); } function eE(r10) { - var e4 = 0; - (r10 |= 0) && ((e4 = l4[r10 >> 2]) && rE2(e4), l4[1732] = l4[1732] - 1, rE2(r10)); + var e3 = 0; + (r10 |= 0) && ((e3 = l3[r10 >> 2]) && rE2(e3), l3[1732] = l3[1732] - 1, rE2(r10)); } - function eG(r10, e4, a5) { - e4 |= 0, a5 = +a5, m4[l4[(r10 |= 0) >> 2] + e4 >> 3] = a5; + function eG(r10, e3, a4) { + e3 |= 0, a4 = +a4, m3[l3[(r10 |= 0) >> 2] + e3 >> 3] = a4; } - function eR(r10, e4) { - return e4 |= 0, +m4[l4[(r10 |= 0) >> 2] + e4 >> 3]; + function eR(r10, e3) { + return e3 |= 0, +m3[l3[(r10 |= 0) >> 2] + e3 >> 3]; } function eg(r10) { - (r10 |= 0) && eY[l4[l4[r10 >> 2] + 4 >> 2]](r10); + (r10 |= 0) && eY[l3[l3[r10 >> 2] + 4 >> 2]](r10); } function eZ(r10) { - return r10 ? (l4[1761] = r10, -1) : 0; + return r10 ? (l3[1761] = r10, -1) : 0; } - function eW(r10, e4, a5) { - return w4(rP2(r10, e4, a5) + rS2(r10, e4, a5)); + function eW(r10, e3, a4) { + return w3(rP2(r10, e3, a4) + rS2(r10, e3, a4)); } - function eV(r10, e4, a5, i5) { - j3(0 | r10, 0 | e4, 8, 0, 0 | a5, -1, 0 | i5); + function eV(r10, e3, a4, i4) { + j2(0 | r10, 0 | e3, 8, 0, 0 | a4, -1, 0 | i4); } - function eB(r10, e4) { - e4 |= 0, eY[l4[(r10 |= 0) >> 2]](e4); + function eB(r10, e3) { + e3 |= 0, eY[l3[(r10 |= 0) >> 2]](e3); } function eT(r10) { return 0 | eY[0 | (r10 |= 0)](); } - function eI(r10, e4) { - e4 |= 0, eY[0 | (r10 |= 0)](e4); + function eI(r10, e3) { + e3 |= 0, eY[0 | (r10 |= 0)](e3); } function eX() { - eY[l4[1470]](), eP(), k4(); + eY[l3[1470]](), eP(), k3(); } function eO(r10) { return r10 - 48 >>> 0 < 10; @@ -6126,1051 +6127,1051 @@ var init_asm = __esm({ return 0 | (r10 |= 0); } function eF(r10) { - s3[(r10 |= 0) + 4 | 0] = 1; + s2[(r10 |= 0) + 4 | 0] = 1; } function eC(r10) { - k4(); + k3(); } function eS() { - eP(), k4(); + eP(), k3(); } function eP() { - T3(), k4(); + T2(), k3(); } - n3(e3 = d4, 1024, "T25seSBsZWFmIG5vZGVzIHdpdGggY3VzdG9tIG1lYXN1cmUgZnVuY3Rpb25zc2hvdWxkIG1hbnVhbGx5IG1hcmsgdGhlbXNlbHZlcyBhcyBkaXJ0eQBpc0RpcnR5AG1hcmtEaXJ0eQBkZXN0cm95AHNldERpc3BsYXkAZ2V0RGlzcGxheQBzZXRGbGV4AC0rICAgMFgweAAtMFgrMFggMFgtMHgrMHggMHgAc2V0RmxleEdyb3cAZ2V0RmxleEdyb3cAc2V0T3ZlcmZsb3cAZ2V0T3ZlcmZsb3cAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AHNldEFsaWduQ29udGVudABnZXRBbGlnbkNvbnRlbnQAZ2V0UGFyZW50AGltcGxlbWVudABzZXRNYXhIZWlnaHRQZXJjZW50AHNldEhlaWdodFBlcmNlbnQAc2V0TWluSGVpZ2h0UGVyY2VudABzZXRGbGV4QmFzaXNQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHVzZUxlZ2FjeVN0cmV0Y2hCZWhhdmlvdXIAc2V0VXNlTGVnYWN5U3RyZXRjaEJlaGF2aW91cgBzZXRQb2ludFNjYWxlRmFjdG9yAE1lYXN1cmVDYWxsYmFja1dyYXBwZXIARGlydGllZENhbGxiYWNrV3JhcHBlcgBDYW5ub3QgcmVzZXQgYSBub2RlIHN0aWxsIGF0dGFjaGVkIHRvIGEgb3duZXIAc2V0Qm9yZGVyAGdldEJvcmRlcgBnZXRDb21wdXRlZEJvcmRlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRNYXJnaW5BdXRvAHNldFdpZHRoQXV0bwBTY2FsZSBmYWN0b3Igc2hvdWxkIG5vdCBiZSBsZXNzIHRoYW4gemVybwBzZXRBc3BlY3RSYXRpbwBnZXRBc3BlY3RSYXRpbwBzZXRQb3NpdGlvbgBnZXRQb3NpdGlvbgBub3RpZnlPbkRlc3RydWN0aW9uAHNldEZsZXhEaXJlY3Rpb24AZ2V0RmxleERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAd2lkdGgAc2V0TWF4V2lkdGgAZ2V0TWF4V2lkdGgAc2V0V2lkdGgAZ2V0V2lkdGgAc2V0TWluV2lkdGgAZ2V0TWluV2lkdGgAZ2V0Q29tcHV0ZWRXaWR0aAB1bnNpZ25lZCBsb25nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBjcmVhdGVXaXRoQ29uZmlnAGluZgBzZXRBbGlnblNlbGYAZ2V0QWxpZ25TZWxmAFNpemUAdmFsdWUAVmFsdWUAY3JlYXRlAG1lYXN1cmUAc2V0UG9zaXRpb25UeXBlAGdldFBvc2l0aW9uVHlwZQBpc1JlZmVyZW5jZUJhc2VsaW5lAHNldElzUmVmZXJlbmNlQmFzZWxpbmUAY29weVN0eWxlAGRvdWJsZQBOb2RlAGV4dGVuZABpbnNlcnRDaGlsZABnZXRDaGlsZAByZW1vdmVDaGlsZAB2b2lkAGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodE1lYXN1cmVNb2RlIG11c3QgYmUgWUdNZWFzdXJlTW9kZVVuZGVmaW5lZABhdmFpbGFibGVXaWR0aCBpcyBpbmRlZmluaXRlIHNvIHdpZHRoTWVhc3VyZU1vZGUgbXVzdCBiZSBZR01lYXN1cmVNb2RlVW5kZWZpbmVkAHNldEV4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGlzRXhwZXJpbWVudGFsRmVhdHVyZUVuYWJsZWQAZGlydGllZABDYW5ub3QgcmVzZXQgYSBub2RlIHdoaWNoIHN0aWxsIGhhcyBjaGlsZHJlbiBhdHRhY2hlZAB1bnNldE1lYXN1cmVGdW5jAHVuc2V0RGlydGllZEZ1bmMARXhwZWN0IGN1c3RvbSBiYXNlbGluZSBmdW5jdGlvbiB0byBub3QgcmV0dXJuIE5hTgBOQU4ASU5GAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVkIGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGRvdWJsZT4AQ2hpbGQgYWxyZWFkeSBoYXMgYSBvd25lciwgaXQgbXVzdCBiZSByZW1vdmVkIGZpcnN0LgBDYW5ub3Qgc2V0IG1lYXN1cmUgZnVuY3Rpb246IE5vZGVzIHdpdGggbWVhc3VyZSBmdW5jdGlvbnMgY2Fubm90IGhhdmUgY2hpbGRyZW4uAENhbm5vdCBhZGQgY2hpbGQ6IE5vZGVzIHdpdGggbWVhc3VyZSBmdW5jdGlvbnMgY2Fubm90IGhhdmUgY2hpbGRyZW4uAChudWxsKQAlcwoAAAEAAAADAAAAAAAAAAIAAAADAAAAAQAAAAIAAAAAAAAAAQAAAAE="), n3(e3, 4270, "wH8AAAAAAADAfwMAAABpaQB2AHZp"), n3(e3, 4304, "KxsAACkbAABpGwAAYxsAAGkbAABjGwAAaWlpZmlmaQBcGwAALBsAAHZpaQAtGwAAcBsAAGlpaQ=="), n3(e3, 4368, "wwAAAMQAAADF"), n3(e3, 4388, "wwAAAMYAAADHAAAAXBs="), n3(e3, 4416, "KxsAAGkbAABjGwAAaRsAAGMbAABwGwAAaxsAAHAbAABpaWlpAAAAAFwbAABBGwAAXBsAAEMbAABEGwAAcBs="), n3(e3, 4488, "yAAAAMkAAADK"), n3(e3, 4508, "yAAAAMsAAADHAAAARxsAAFwbAABHGw=="), n3(e3, 4544, "XBsAAEcbAABjGwAAXRsAAHZpaWlpAAAAXBsAAEcbAABpGwAAdmlpZgAAAABcGwAARxsAAF0bAAB2aWlpAAAAAF0bAABIGwAAYxsAAF0bAABHGwAAaQBkaWkAdmlpZAAATBsAAEwbAABHGwAAXBsAAEwbAABcGwAATBsAAEsbAABcGwAATBsAAGMbAAAAAAAAXBsAAEwbAABjGwAAahsAAHZpaWlkAAAAXBsAAEwbAABqGwAAYxsAAE0bAABKGwAATRsAAGMbAABKGwAATRsAAGobAABNGwAAahsAAE0bAABjGwAAZGlpaQAAAABpGwAATBsAAGMbAABmaWlpAAAAAFwbAABMGwAATBsAAGQbAABcGwAATBsAAEwbAABkGwAATRsAAEwbAABMGwAATBsAAEwbAABkGwAAXRsAAEwbAABcGwAATBsAAF0bAABcGwAATBsAACkbAABcGwAATBsAAEEbAABdGwAATRsAAAAAAABcGwAATBsAAGobAABqGwAAYxsAAHZpaWRkaQAASRsAAE0b"), n3(e3, 4960, "GQAKABkZGQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAAZABEKGRkZAwoHAAEACQsYAAAJBgsAAAsABhkAAAAZGRk="), n3(e3, 5041, "DgAAAAAAAAAAGQAKDRkZGQANAAACAAkOAAAACQAOAAAO"), n3(e3, 5099, "DA=="), n3(e3, 5111, "EwAAAAATAAAAAAkMAAAAAAAMAAAM"), n3(e3, 5157, "EA=="), n3(e3, 5169, "DwAAAAQPAAAAAAkQAAAAAAAQAAAQ"), n3(e3, 5215, "Eg=="), n3(e3, 5227, "EQAAAAARAAAAAAkSAAAAAAASAAASAAAaAAAAGhoa"), n3(e3, 5282, "GgAAABoaGgAAAAAAAAk="), n3(e3, 5331, "FA=="), n3(e3, 5343, "FwAAAAAXAAAAAAkUAAAAAAAUAAAU"), n3(e3, 5389, "Fg=="), n3(e3, 5401, "FQAAAAAVAAAAAAkWAAAAAAAWAAAWAAAwMTIzNDU2Nzg5QUJDREVG"), n3(e3, 5476, "0Q=="), n3(e3, 5516, "//////////8="), n3(e3, 5584, "oB8BAAAAAAAF"), n3(e3, 5604, "zA=="), n3(e3, 5628, "zQAAAM4AAACEGw=="), n3(e3, 5652, "Ag=="), n3(e3, 5668, "//////////8="), n3(e3, 5736, "BQ=="), n3(e3, 5748, "zw=="), n3(e3, 5772, "zQAAANAAAACYGwAAAAQ="), n3(e3, 5796, "AQ=="), n3(e3, 5812, "/////wo="), n3(e3, 5880, "0g=="); - var eY = ((a4 = [null, function(r10, e4, a5, i5, n4) { - return (i5 |= 0, n4 |= 0, (a5 |= 0) ? (0 | a5) != 5 : 0) ? 0 | rG2(5736, i5, n4, 2, 3) : 0 | rG2(5592, i5, n4, 2, 3); - }, function(r10, e4, a5, i5, n4, f6) { - r10 |= 0, e4 = +e4, a5 |= 0, i5 |= 0, n4 |= 0, f6 |= 0; - var b5, k5, c5 = 0, u6 = 0, A4 = 0, h5 = 0, v5 = 0, p4 = 0, m5 = 0, w5 = 0, E5 = 0, G4 = 0, R4 = 0, g5 = 0, Z3 = 0, W3 = 0, V4 = 0, B4 = 0, T4 = 0, I4 = 0, X3 = 0; - re3 = m5 = re3 - 560 | 0, l4[m5 + 44 >> 2] = 0, b5 = +e4, o3[0] = b5, c5 = 0 | t3[1], t3[0]; + n2(e2 = d3, 1024, "T25seSBsZWFmIG5vZGVzIHdpdGggY3VzdG9tIG1lYXN1cmUgZnVuY3Rpb25zc2hvdWxkIG1hbnVhbGx5IG1hcmsgdGhlbXNlbHZlcyBhcyBkaXJ0eQBpc0RpcnR5AG1hcmtEaXJ0eQBkZXN0cm95AHNldERpc3BsYXkAZ2V0RGlzcGxheQBzZXRGbGV4AC0rICAgMFgweAAtMFgrMFggMFgtMHgrMHggMHgAc2V0RmxleEdyb3cAZ2V0RmxleEdyb3cAc2V0T3ZlcmZsb3cAZ2V0T3ZlcmZsb3cAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AHNldEFsaWduQ29udGVudABnZXRBbGlnbkNvbnRlbnQAZ2V0UGFyZW50AGltcGxlbWVudABzZXRNYXhIZWlnaHRQZXJjZW50AHNldEhlaWdodFBlcmNlbnQAc2V0TWluSGVpZ2h0UGVyY2VudABzZXRGbGV4QmFzaXNQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHVzZUxlZ2FjeVN0cmV0Y2hCZWhhdmlvdXIAc2V0VXNlTGVnYWN5U3RyZXRjaEJlaGF2aW91cgBzZXRQb2ludFNjYWxlRmFjdG9yAE1lYXN1cmVDYWxsYmFja1dyYXBwZXIARGlydGllZENhbGxiYWNrV3JhcHBlcgBDYW5ub3QgcmVzZXQgYSBub2RlIHN0aWxsIGF0dGFjaGVkIHRvIGEgb3duZXIAc2V0Qm9yZGVyAGdldEJvcmRlcgBnZXRDb21wdXRlZEJvcmRlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRNYXJnaW5BdXRvAHNldFdpZHRoQXV0bwBTY2FsZSBmYWN0b3Igc2hvdWxkIG5vdCBiZSBsZXNzIHRoYW4gemVybwBzZXRBc3BlY3RSYXRpbwBnZXRBc3BlY3RSYXRpbwBzZXRQb3NpdGlvbgBnZXRQb3NpdGlvbgBub3RpZnlPbkRlc3RydWN0aW9uAHNldEZsZXhEaXJlY3Rpb24AZ2V0RmxleERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAd2lkdGgAc2V0TWF4V2lkdGgAZ2V0TWF4V2lkdGgAc2V0V2lkdGgAZ2V0V2lkdGgAc2V0TWluV2lkdGgAZ2V0TWluV2lkdGgAZ2V0Q29tcHV0ZWRXaWR0aAB1bnNpZ25lZCBsb25nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBjcmVhdGVXaXRoQ29uZmlnAGluZgBzZXRBbGlnblNlbGYAZ2V0QWxpZ25TZWxmAFNpemUAdmFsdWUAVmFsdWUAY3JlYXRlAG1lYXN1cmUAc2V0UG9zaXRpb25UeXBlAGdldFBvc2l0aW9uVHlwZQBpc1JlZmVyZW5jZUJhc2VsaW5lAHNldElzUmVmZXJlbmNlQmFzZWxpbmUAY29weVN0eWxlAGRvdWJsZQBOb2RlAGV4dGVuZABpbnNlcnRDaGlsZABnZXRDaGlsZAByZW1vdmVDaGlsZAB2b2lkAGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodE1lYXN1cmVNb2RlIG11c3QgYmUgWUdNZWFzdXJlTW9kZVVuZGVmaW5lZABhdmFpbGFibGVXaWR0aCBpcyBpbmRlZmluaXRlIHNvIHdpZHRoTWVhc3VyZU1vZGUgbXVzdCBiZSBZR01lYXN1cmVNb2RlVW5kZWZpbmVkAHNldEV4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGlzRXhwZXJpbWVudGFsRmVhdHVyZUVuYWJsZWQAZGlydGllZABDYW5ub3QgcmVzZXQgYSBub2RlIHdoaWNoIHN0aWxsIGhhcyBjaGlsZHJlbiBhdHRhY2hlZAB1bnNldE1lYXN1cmVGdW5jAHVuc2V0RGlydGllZEZ1bmMARXhwZWN0IGN1c3RvbSBiYXNlbGluZSBmdW5jdGlvbiB0byBub3QgcmV0dXJuIE5hTgBOQU4ASU5GAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVkIGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGRvdWJsZT4AQ2hpbGQgYWxyZWFkeSBoYXMgYSBvd25lciwgaXQgbXVzdCBiZSByZW1vdmVkIGZpcnN0LgBDYW5ub3Qgc2V0IG1lYXN1cmUgZnVuY3Rpb246IE5vZGVzIHdpdGggbWVhc3VyZSBmdW5jdGlvbnMgY2Fubm90IGhhdmUgY2hpbGRyZW4uAENhbm5vdCBhZGQgY2hpbGQ6IE5vZGVzIHdpdGggbWVhc3VyZSBmdW5jdGlvbnMgY2Fubm90IGhhdmUgY2hpbGRyZW4uAChudWxsKQAlcwoAAAEAAAADAAAAAAAAAAIAAAADAAAAAQAAAAIAAAAAAAAAAQAAAAE="), n2(e2, 4270, "wH8AAAAAAADAfwMAAABpaQB2AHZp"), n2(e2, 4304, "KxsAACkbAABpGwAAYxsAAGkbAABjGwAAaWlpZmlmaQBcGwAALBsAAHZpaQAtGwAAcBsAAGlpaQ=="), n2(e2, 4368, "wwAAAMQAAADF"), n2(e2, 4388, "wwAAAMYAAADHAAAAXBs="), n2(e2, 4416, "KxsAAGkbAABjGwAAaRsAAGMbAABwGwAAaxsAAHAbAABpaWlpAAAAAFwbAABBGwAAXBsAAEMbAABEGwAAcBs="), n2(e2, 4488, "yAAAAMkAAADK"), n2(e2, 4508, "yAAAAMsAAADHAAAARxsAAFwbAABHGw=="), n2(e2, 4544, "XBsAAEcbAABjGwAAXRsAAHZpaWlpAAAAXBsAAEcbAABpGwAAdmlpZgAAAABcGwAARxsAAF0bAAB2aWlpAAAAAF0bAABIGwAAYxsAAF0bAABHGwAAaQBkaWkAdmlpZAAATBsAAEwbAABHGwAAXBsAAEwbAABcGwAATBsAAEsbAABcGwAATBsAAGMbAAAAAAAAXBsAAEwbAABjGwAAahsAAHZpaWlkAAAAXBsAAEwbAABqGwAAYxsAAE0bAABKGwAATRsAAGMbAABKGwAATRsAAGobAABNGwAAahsAAE0bAABjGwAAZGlpaQAAAABpGwAATBsAAGMbAABmaWlpAAAAAFwbAABMGwAATBsAAGQbAABcGwAATBsAAEwbAABkGwAATRsAAEwbAABMGwAATBsAAEwbAABkGwAAXRsAAEwbAABcGwAATBsAAF0bAABcGwAATBsAACkbAABcGwAATBsAAEEbAABdGwAATRsAAAAAAABcGwAATBsAAGobAABqGwAAYxsAAHZpaWRkaQAASRsAAE0b"), n2(e2, 4960, "GQAKABkZGQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAAZABEKGRkZAwoHAAEACQsYAAAJBgsAAAsABhkAAAAZGRk="), n2(e2, 5041, "DgAAAAAAAAAAGQAKDRkZGQANAAACAAkOAAAACQAOAAAO"), n2(e2, 5099, "DA=="), n2(e2, 5111, "EwAAAAATAAAAAAkMAAAAAAAMAAAM"), n2(e2, 5157, "EA=="), n2(e2, 5169, "DwAAAAQPAAAAAAkQAAAAAAAQAAAQ"), n2(e2, 5215, "Eg=="), n2(e2, 5227, "EQAAAAARAAAAAAkSAAAAAAASAAASAAAaAAAAGhoa"), n2(e2, 5282, "GgAAABoaGgAAAAAAAAk="), n2(e2, 5331, "FA=="), n2(e2, 5343, "FwAAAAAXAAAAAAkUAAAAAAAUAAAU"), n2(e2, 5389, "Fg=="), n2(e2, 5401, "FQAAAAAVAAAAAAkWAAAAAAAWAAAWAAAwMTIzNDU2Nzg5QUJDREVG"), n2(e2, 5476, "0Q=="), n2(e2, 5516, "//////////8="), n2(e2, 5584, "oB8BAAAAAAAF"), n2(e2, 5604, "zA=="), n2(e2, 5628, "zQAAAM4AAACEGw=="), n2(e2, 5652, "Ag=="), n2(e2, 5668, "//////////8="), n2(e2, 5736, "BQ=="), n2(e2, 5748, "zw=="), n2(e2, 5772, "zQAAANAAAACYGwAAAAQ="), n2(e2, 5796, "AQ=="), n2(e2, 5812, "/////wo="), n2(e2, 5880, "0g=="); + var eY = ((a3 = [null, function(r10, e3, a4, i4, n3) { + return (i4 |= 0, n3 |= 0, (a4 |= 0) ? (0 | a4) != 5 : 0) ? 0 | rG2(5736, i4, n3, 2, 3) : 0 | rG2(5592, i4, n3, 2, 3); + }, function(r10, e3, a4, i4, n3, f4) { + r10 |= 0, e3 = +e3, a4 |= 0, i4 |= 0, n3 |= 0, f4 |= 0; + var b4, k4, c4 = 0, u4 = 0, A3 = 0, h5 = 0, v4 = 0, p3 = 0, m4 = 0, w4 = 0, E4 = 0, G3 = 0, R4 = 0, g4 = 0, Z3 = 0, W3 = 0, V3 = 0, B3 = 0, T3 = 0, I3 = 0, X3 = 0; + re3 = m4 = re3 - 560 | 0, l3[m4 + 44 >> 2] = 0, b4 = +e3, o2[0] = b4, c4 = 0 | t2[1], t2[0]; r: { - if ((0 | c5) < 0) { - Z3 = 1, I4 = 1176, k5 = +(e4 = -e4), o3[0] = k5, c5 = 0 | t3[1], t3[0]; + if ((0 | c4) < 0) { + Z3 = 1, I3 = 1176, k4 = +(e3 = -e3), o2[0] = k4, c4 = 0 | t2[1], t2[0]; break r; } - if (2048 & n4) { - Z3 = 1, I4 = 1179; + if (2048 & n3) { + Z3 = 1, I3 = 1179; break r; } - I4 = (Z3 = 1 & n4) ? 1182 : 1177, X3 = !Z3; + I3 = (Z3 = 1 & n3) ? 1182 : 1177, X3 = !Z3; } e: { - if ((2146435072 & c5) == 2146435072) { - er(r10, 32, a5, c5 = Z3 + 3 | 0, -65537 & n4), rF2(r10, I4, Z3), i5 = 32 & f6, rF2(r10, e4 != e4 ? i5 ? 2450 : 3390 : i5 ? 2819 : 3394, 3), er(r10, 32, a5, c5, 8192 ^ n4), w5 = (0 | a5) < (0 | c5) ? c5 : a5; + if ((2146435072 & c4) == 2146435072) { + er(r10, 32, a4, c4 = Z3 + 3 | 0, -65537 & n3), rF2(r10, I3, Z3), i4 = 32 & f4, rF2(r10, e3 != e3 ? i4 ? 2450 : 3390 : i4 ? 2819 : 3394, 3), er(r10, 32, a4, c4, 8192 ^ n3), w4 = (0 | a4) < (0 | c4) ? c4 : a4; break e; } - V4 = m5 + 16 | 0; + V3 = m4 + 16 | 0; a: { i: { n: { - if (e4 = (function r11(e5, a6) { - var i6, n5, f7, b6 = 0, k6 = 0, c6 = 0; - if (i6 = +e5, o3[0] = i6, k6 = 0 | t3[1], c6 = 0 | t3[0], (0 | (b6 = k6 >>> 20 & 2047)) != 2047) { - if (!b6) return 0 == e5 ? b6 = 0 : (e5 = r11(18446744073709552e3 * e5, a6), b6 = l4[a6 >> 2] + -64 | 0), l4[a6 >> 2] = b6, e5; - l4[a6 >> 2] = b6 - 1022, n5 = 0 | c6, t3[0] = n5, f7 = -2146435073 & k6 | 1071644672, t3[1] = f7, e5 = +o3[0]; + if (e3 = (function r11(e4, a5) { + var i5, n4, f5, b5 = 0, k5 = 0, c5 = 0; + if (i5 = +e4, o2[0] = i5, k5 = 0 | t2[1], c5 = 0 | t2[0], (0 | (b5 = k5 >>> 20 & 2047)) != 2047) { + if (!b5) return 0 == e4 ? b5 = 0 : (e4 = r11(18446744073709552e3 * e4, a5), b5 = l3[a5 >> 2] + -64 | 0), l3[a5 >> 2] = b5, e4; + l3[a5 >> 2] = b5 - 1022, n4 = 0 | c5, t2[0] = n4, f5 = -2146435073 & k5 | 1071644672, t2[1] = f5, e4 = +o2[0]; } - return e5; - })(e4, m5 + 44 | 0), 0 != (e4 += e4)) { - if (c5 = l4[m5 + 44 >> 2], l4[m5 + 44 >> 2] = c5 - 1, (0 | (B4 = 32 | f6)) != 97) break n; + return e4; + })(e3, m4 + 44 | 0), 0 != (e3 += e3)) { + if (c4 = l3[m4 + 44 >> 2], l3[m4 + 44 >> 2] = c4 - 1, (0 | (B3 = 32 | f4)) != 97) break n; break a; } - if ((0 | (B4 = 32 | f6)) == 97) break a; - v5 = l4[m5 + 44 >> 2], p4 = (0 | i5) < 0 ? 6 : i5; + if ((0 | (B3 = 32 | f4)) == 97) break a; + v4 = l3[m4 + 44 >> 2], p3 = (0 | i4) < 0 ? 6 : i4; break i; } - v5 = c5 - 29 | 0, l4[m5 + 44 >> 2] = v5, e4 *= 268435456, p4 = (0 | i5) < 0 ? 6 : i5; + v4 = c4 - 29 | 0, l3[m4 + 44 >> 2] = v4, e3 *= 268435456, p3 = (0 | i4) < 0 ? 6 : i4; } - for (u6 = R4 = (m5 + 48 | 0) + ((0 | v5) >= 0 ? 288 : 0) | 0; i5 = e4 < 4294967296 & e4 >= 0 ? ~~e4 >>> 0 : 0, l4[u6 >> 2] = i5, u6 = u6 + 4 | 0, 0 != (e4 = (e4 - +(i5 >>> 0)) * 1e9); ) ; + for (u4 = R4 = (m4 + 48 | 0) + ((0 | v4) >= 0 ? 288 : 0) | 0; i4 = e3 < 4294967296 & e3 >= 0 ? ~~e3 >>> 0 : 0, l3[u4 >> 2] = i4, u4 = u4 + 4 | 0, 0 != (e3 = (e3 - +(i4 >>> 0)) * 1e9); ) ; f: { - if ((0 | v5) <= 0) { - i5 = v5, c5 = u6, A4 = R4; + if ((0 | v4) <= 0) { + i4 = v4, c4 = u4, A3 = R4; break f; } - for (A4 = R4, i5 = v5; ; ) { - E5 = (0 | i5) >= 29 ? 29 : i5, c5 = u6 - 4 | 0; - t: if (!(A4 >>> 0 > c5 >>> 0)) { - for (i5 = 0; h5 = l4[c5 >> 2], T4 = i5, i5 = 31 & E5, (63 & E5) >>> 0 >= 32 ? (w5 = h5 << i5, i5 = 0) : (w5 = (1 << i5) - 1 & h5 >>> 32 - i5, i5 = h5 << i5), T4 = T4 + i5 | 0, h5 = w5 + G4 | 0, h5 = r9(i5 = rh2(T4, i5 >>> 0 > T4 >>> 0 ? h5 + 1 | 0 : h5, 1e9), ra3, -1e9, 0) + T4 | 0, l4[c5 >> 2] = h5, A4 >>> 0 <= (c5 = c5 - 4 | 0) >>> 0; ) ; - if (!i5) break t; - l4[(A4 = A4 - 4 | 0) >> 2] = i5; + for (A3 = R4, i4 = v4; ; ) { + E4 = (0 | i4) >= 29 ? 29 : i4, c4 = u4 - 4 | 0; + t: if (!(A3 >>> 0 > c4 >>> 0)) { + for (i4 = 0; h5 = l3[c4 >> 2], T3 = i4, i4 = 31 & E4, (63 & E4) >>> 0 >= 32 ? (w4 = h5 << i4, i4 = 0) : (w4 = (1 << i4) - 1 & h5 >>> 32 - i4, i4 = h5 << i4), T3 = T3 + i4 | 0, h5 = w4 + G3 | 0, h5 = r9(i4 = rh2(T3, i4 >>> 0 > T3 >>> 0 ? h5 + 1 | 0 : h5, 1e9), ra3, -1e9, 0) + T3 | 0, l3[c4 >> 2] = h5, A3 >>> 0 <= (c4 = c4 - 4 | 0) >>> 0; ) ; + if (!i4) break t; + l3[(A3 = A3 - 4 | 0) >> 2] = i4; } - for (; c5 = u6, A4 >>> 0 < c5 >>> 0 && !l4[(u6 = c5 - 4 | 0) >> 2]; ) ; - if (i5 = l4[m5 + 44 >> 2] - E5 | 0, l4[m5 + 44 >> 2] = i5, u6 = c5, !((0 | i5) > 0)) break; + for (; c4 = u4, A3 >>> 0 < c4 >>> 0 && !l3[(u4 = c4 - 4 | 0) >> 2]; ) ; + if (i4 = l3[m4 + 44 >> 2] - E4 | 0, l3[m4 + 44 >> 2] = i4, u4 = c4, !((0 | i4) > 0)) break; } } - if ((0 | i5) < 0) for (W3 = ((p4 + 25 >>> 0) / 9 | 0) + 1 | 0, G4 = (0 | B4) == 102; ; ) { - w5 = (0 | (i5 = 0 - i5 | 0)) >= 9 ? 9 : i5; + if ((0 | i4) < 0) for (W3 = ((p3 + 25 >>> 0) / 9 | 0) + 1 | 0, G3 = (0 | B3) == 102; ; ) { + w4 = (0 | (i4 = 0 - i4 | 0)) >= 9 ? 9 : i4; b: { - if (c5 >>> 0 <= A4 >>> 0) { - u6 = l4[A4 >> 2]; + if (c4 >>> 0 <= A3 >>> 0) { + u4 = l3[A3 >> 2]; break b; } - for (E5 = 1e9 >>> w5 | 0, h5 = -1 << w5 ^ -1, i5 = 0, u6 = A4; T4 = i5, i5 = l4[u6 >> 2], l4[u6 >> 2] = T4 + (i5 >>> w5 | 0), i5 = N3(E5, i5 & h5), (u6 = u6 + 4 | 0) >>> 0 < c5 >>> 0; ) ; - if (u6 = l4[A4 >> 2], !i5) break b; - l4[c5 >> 2] = i5, c5 = c5 + 4 | 0; + for (E4 = 1e9 >>> w4 | 0, h5 = -1 << w4 ^ -1, i4 = 0, u4 = A3; T3 = i4, i4 = l3[u4 >> 2], l3[u4 >> 2] = T3 + (i4 >>> w4 | 0), i4 = N2(E4, i4 & h5), (u4 = u4 + 4 | 0) >>> 0 < c4 >>> 0; ) ; + if (u4 = l3[A3 >> 2], !i4) break b; + l3[c4 >> 2] = i4, c4 = c4 + 4 | 0; } - if (i5 = w5 + l4[m5 + 44 >> 2] | 0, l4[m5 + 44 >> 2] = i5, A4 = (!u6 << 2) + A4 | 0, u6 = G4 ? R4 : A4, c5 = c5 - u6 >> 2 > (0 | W3) ? u6 + (W3 << 2) | 0 : c5, !((0 | i5) < 0)) break; + if (i4 = w4 + l3[m4 + 44 >> 2] | 0, l3[m4 + 44 >> 2] = i4, A3 = (!u4 << 2) + A3 | 0, u4 = G3 ? R4 : A3, c4 = c4 - u4 >> 2 > (0 | W3) ? u4 + (W3 << 2) | 0 : c4, !((0 | i4) < 0)) break; } - i5 = 0; - o: if (!(c5 >>> 0 <= A4 >>> 0)) { - if (i5 = N3(R4 - A4 >> 2, 9), u6 = 10, (h5 = l4[A4 >> 2]) >>> 0 < 10) break o; - for (; i5 = i5 + 1 | 0, u6 = N3(u6, 10), h5 >>> 0 >= u6 >>> 0; ) ; + i4 = 0; + o: if (!(c4 >>> 0 <= A3 >>> 0)) { + if (i4 = N2(R4 - A3 >> 2, 9), u4 = 10, (h5 = l3[A3 >> 2]) >>> 0 < 10) break o; + for (; i4 = i4 + 1 | 0, u4 = N2(u4, 10), h5 >>> 0 >= u4 >>> 0; ) ; } - if ((0 | (u6 = (p4 - ((0 | B4) != 102 ? i5 : 0) | 0) - ((0 | B4) == 103 & (0 | p4) != 0) | 0)) < (N3(c5 - R4 >> 2, 9) - 9 | 0)) { - if (h5 = (0 | (E5 = u6 + 9216 | 0)) / 9 | 0, v5 = ((((0 | v5) < 0 ? 4 : 292) + m5 | 0) + (h5 << 2) | 0) - 4048 | 0, u6 = 10, (0 | (w5 = E5 + N3(h5, -9) | 0)) <= 7) for (; u6 = N3(u6, 10), (0 | (w5 = w5 + 1 | 0)) != 8; ) ; - W3 = ((E5 = l4[v5 >> 2]) >>> 0) / (u6 >>> 0) | 0, G4 = N3(W3, u6), h5 = v5 + 4 | 0; - k: if (!((0 | E5) == (0 | G4) & (0 | h5) == (0 | c5))) { - E5 = E5 - G4 | 0; - (1 & W3 || (e4 = 9007199254740992, !(!(1 & s3[v5 - 4 | 0]) | ((0 | u6) != 1e9 | A4 >>> 0 >= v5 >>> 0)))) && (e4 = 9007199254740994); - if (g5 = (0 | c5) == (0 | h5) ? 1 : 1.5, g5 = (h5 = u6 >>> 1 | 0) >>> 0 > E5 >>> 0 ? 0.5 : (0 | h5) == (0 | E5) ? g5 : 1.5, 45 != d4[0 | I4] | X3 || (g5 = -g5, e4 = -e4), l4[v5 >> 2] = G4, e4 + g5 == e4) break k; - if (i5 = u6 + G4 | 0, l4[v5 >> 2] = i5, i5 >>> 0 >= 1e9) for (; l4[v5 >> 2] = 0, (v5 = v5 - 4 | 0) >>> 0 < A4 >>> 0 && (l4[(A4 = A4 - 4 | 0) >> 2] = 0), i5 = l4[v5 >> 2] + 1 | 0, l4[v5 >> 2] = i5, i5 >>> 0 > 999999999; ) ; - if (i5 = N3(R4 - A4 >> 2, 9), u6 = 10, (h5 = l4[A4 >> 2]) >>> 0 < 10) break k; - for (; i5 = i5 + 1 | 0, u6 = N3(u6, 10), h5 >>> 0 >= u6 >>> 0; ) ; + if ((0 | (u4 = (p3 - ((0 | B3) != 102 ? i4 : 0) | 0) - ((0 | B3) == 103 & (0 | p3) != 0) | 0)) < (N2(c4 - R4 >> 2, 9) - 9 | 0)) { + if (h5 = (0 | (E4 = u4 + 9216 | 0)) / 9 | 0, v4 = ((((0 | v4) < 0 ? 4 : 292) + m4 | 0) + (h5 << 2) | 0) - 4048 | 0, u4 = 10, (0 | (w4 = E4 + N2(h5, -9) | 0)) <= 7) for (; u4 = N2(u4, 10), (0 | (w4 = w4 + 1 | 0)) != 8; ) ; + W3 = ((E4 = l3[v4 >> 2]) >>> 0) / (u4 >>> 0) | 0, G3 = N2(W3, u4), h5 = v4 + 4 | 0; + k: if (!((0 | E4) == (0 | G3) & (0 | h5) == (0 | c4))) { + E4 = E4 - G3 | 0; + (1 & W3 || (e3 = 9007199254740992, !(!(1 & s2[v4 - 4 | 0]) | ((0 | u4) != 1e9 | A3 >>> 0 >= v4 >>> 0)))) && (e3 = 9007199254740994); + if (g4 = (0 | c4) == (0 | h5) ? 1 : 1.5, g4 = (h5 = u4 >>> 1 | 0) >>> 0 > E4 >>> 0 ? 0.5 : (0 | h5) == (0 | E4) ? g4 : 1.5, 45 != d3[0 | I3] | X3 || (g4 = -g4, e3 = -e3), l3[v4 >> 2] = G3, e3 + g4 == e3) break k; + if (i4 = u4 + G3 | 0, l3[v4 >> 2] = i4, i4 >>> 0 >= 1e9) for (; l3[v4 >> 2] = 0, (v4 = v4 - 4 | 0) >>> 0 < A3 >>> 0 && (l3[(A3 = A3 - 4 | 0) >> 2] = 0), i4 = l3[v4 >> 2] + 1 | 0, l3[v4 >> 2] = i4, i4 >>> 0 > 999999999; ) ; + if (i4 = N2(R4 - A3 >> 2, 9), u4 = 10, (h5 = l3[A3 >> 2]) >>> 0 < 10) break k; + for (; i4 = i4 + 1 | 0, u4 = N2(u4, 10), h5 >>> 0 >= u4 >>> 0; ) ; } - c5 = c5 >>> 0 > (u6 = v5 + 4 | 0) >>> 0 ? u6 : c5; + c4 = c4 >>> 0 > (u4 = v4 + 4 | 0) >>> 0 ? u4 : c4; } - for (; h5 = c5, !(E5 = c5 >>> 0 <= A4 >>> 0) && !l4[(c5 = h5 - 4 | 0) >> 2]; ) ; + for (; h5 = c4, !(E4 = c4 >>> 0 <= A3 >>> 0) && !l3[(c4 = h5 - 4 | 0) >> 2]; ) ; u: { - if ((0 | B4) != 103) { - v5 = 8 & n4; + if ((0 | B3) != 103) { + v4 = 8 & n3; break u; } - if (p4 = ((c5 = (0 | (u6 = p4 || 1)) > (0 | i5) & (0 | i5) > -5) ? -1 ^ i5 : -1) + u6 | 0, f6 = (c5 ? -1 : -2) + f6 | 0, v5 = 8 & n4) break u; - c5 = -9; - s: if (!E5 && (v5 = l4[h5 - 4 >> 2])) { - if (w5 = 10, c5 = 0, (v5 >>> 0) % 10 | 0) break s; - for (; u6 = c5, c5 = c5 + 1 | 0, w5 = N3(w5, 10), !((v5 >>> 0) % (w5 >>> 0) | 0); ) ; - c5 = -1 ^ u6; + if (p3 = ((c4 = (0 | (u4 = p3 || 1)) > (0 | i4) & (0 | i4) > -5) ? -1 ^ i4 : -1) + u4 | 0, f4 = (c4 ? -1 : -2) + f4 | 0, v4 = 8 & n3) break u; + c4 = -9; + s: if (!E4 && (v4 = l3[h5 - 4 >> 2])) { + if (w4 = 10, c4 = 0, (v4 >>> 0) % 10 | 0) break s; + for (; u4 = c4, c4 = c4 + 1 | 0, w4 = N2(w4, 10), !((v4 >>> 0) % (w4 >>> 0) | 0); ) ; + c4 = -1 ^ u4; } - if (u6 = N3(h5 - R4 >> 2, 9), (-33 & f6) == 70) { - v5 = 0, p4 = (0 | (c5 = (0 | (c5 = (c5 + u6 | 0) - 9 | 0)) > 0 ? c5 : 0)) > (0 | p4) ? p4 : c5; + if (u4 = N2(h5 - R4 >> 2, 9), (-33 & f4) == 70) { + v4 = 0, p3 = (0 | (c4 = (0 | (c4 = (c4 + u4 | 0) - 9 | 0)) > 0 ? c4 : 0)) > (0 | p3) ? p3 : c4; break u; } - v5 = 0, p4 = (0 | (c5 = (0 | (c5 = ((i5 + u6 | 0) + c5 | 0) - 9 | 0)) > 0 ? c5 : 0)) > (0 | p4) ? p4 : c5; + v4 = 0, p3 = (0 | (c4 = (0 | (c4 = ((i4 + u4 | 0) + c4 | 0) - 9 | 0)) > 0 ? c4 : 0)) > (0 | p3) ? p3 : c4; } - if (w5 = -1, (((E5 = v5 | p4) ? 2147483645 : 2147483646) | 0) < (0 | p4)) break e; - G4 = (((0 | E5) != 0) + p4 | 0) + 1 | 0, u6 = -33 & f6; + if (w4 = -1, (((E4 = v4 | p3) ? 2147483645 : 2147483646) | 0) < (0 | p3)) break e; + G3 = (((0 | E4) != 0) + p3 | 0) + 1 | 0, u4 = -33 & f4; A: { - if ((0 | u6) == 70) { - if ((2147483647 ^ G4) < (0 | i5)) break e; - c5 = (0 | i5) > 0 ? i5 : 0; + if ((0 | u4) == 70) { + if ((2147483647 ^ G3) < (0 | i4)) break e; + c4 = (0 | i4) > 0 ? i4 : 0; break A; } - if (c5 = rK2(((c5 = i5 >> 31) ^ i5) - c5 | 0, 0, V4), (V4 - c5 | 0) <= 1) for (; s3[0 | (c5 = c5 - 1 | 0)] = 48, (V4 - c5 | 0) < 2; ) ; - if (s3[0 | (W3 = c5 - 2 | 0)] = f6, s3[c5 - 1 | 0] = (0 | i5) < 0 ? 45 : 43, (0 | (c5 = V4 - W3 | 0)) > (2147483647 ^ G4)) break e; + if (c4 = rK2(((c4 = i4 >> 31) ^ i4) - c4 | 0, 0, V3), (V3 - c4 | 0) <= 1) for (; s2[0 | (c4 = c4 - 1 | 0)] = 48, (V3 - c4 | 0) < 2; ) ; + if (s2[0 | (W3 = c4 - 2 | 0)] = f4, s2[c4 - 1 | 0] = (0 | i4) < 0 ? 45 : 43, (0 | (c4 = V3 - W3 | 0)) > (2147483647 ^ G3)) break e; } - if ((0 | (i5 = c5 + G4 | 0)) > (2147483647 ^ Z3)) break e; - er(r10, 32, a5, G4 = i5 + Z3 | 0, n4), rF2(r10, I4, Z3), er(r10, 48, a5, G4, 65536 ^ n4); + if ((0 | (i4 = c4 + G3 | 0)) > (2147483647 ^ Z3)) break e; + er(r10, 32, a4, G3 = i4 + Z3 | 0, n3), rF2(r10, I3, Z3), er(r10, 48, a4, G3, 65536 ^ n3); l: { d: { h: { - if ((0 | u6) == 70) { - for (i5 = 8 | (f6 = m5 + 16 | 0), v5 = 9 | f6, A4 = u6 = A4 >>> 0 > R4 >>> 0 ? R4 : A4; ; ) { - c5 = rK2(l4[A4 >> 2], 0, v5); + if ((0 | u4) == 70) { + for (i4 = 8 | (f4 = m4 + 16 | 0), v4 = 9 | f4, A3 = u4 = A3 >>> 0 > R4 >>> 0 ? R4 : A3; ; ) { + c4 = rK2(l3[A3 >> 2], 0, v4); v: { - if ((0 | u6) != (0 | A4)) { - if (m5 + 16 >>> 0 >= c5 >>> 0) break v; - for (; s3[0 | (c5 = c5 - 1 | 0)] = 48, m5 + 16 >>> 0 < c5 >>> 0; ) ; + if ((0 | u4) != (0 | A3)) { + if (m4 + 16 >>> 0 >= c4 >>> 0) break v; + for (; s2[0 | (c4 = c4 - 1 | 0)] = 48, m4 + 16 >>> 0 < c4 >>> 0; ) ; break v; } - if ((0 | c5) != (0 | v5)) break v; - s3[m5 + 24 | 0] = 48, c5 = i5; + if ((0 | c4) != (0 | v4)) break v; + s2[m4 + 24 | 0] = 48, c4 = i4; } - if (rF2(r10, c5, v5 - c5 | 0), !(R4 >>> 0 >= (A4 = A4 + 4 | 0) >>> 0)) break; + if (rF2(r10, c4, v4 - c4 | 0), !(R4 >>> 0 >= (A3 = A3 + 4 | 0) >>> 0)) break; } - if (E5 && rF2(r10, 4206, 1), (0 | p4) <= 0 | A4 >>> 0 >= h5 >>> 0) break h; + if (E4 && rF2(r10, 4206, 1), (0 | p3) <= 0 | A3 >>> 0 >= h5 >>> 0) break h; for (; ; ) { - if ((c5 = rK2(l4[A4 >> 2], 0, v5)) >>> 0 > m5 + 16 >>> 0) for (; s3[0 | (c5 = c5 - 1 | 0)] = 48, m5 + 16 >>> 0 < c5 >>> 0; ) ; - if (rF2(r10, c5, (0 | p4) >= 9 ? 9 : p4), c5 = p4 - 9 | 0, h5 >>> 0 <= (A4 = A4 + 4 | 0) >>> 0) break d; - if (i5 = (0 | p4) > 9, p4 = c5, !i5) break; + if ((c4 = rK2(l3[A3 >> 2], 0, v4)) >>> 0 > m4 + 16 >>> 0) for (; s2[0 | (c4 = c4 - 1 | 0)] = 48, m4 + 16 >>> 0 < c4 >>> 0; ) ; + if (rF2(r10, c4, (0 | p3) >= 9 ? 9 : p3), c4 = p3 - 9 | 0, h5 >>> 0 <= (A3 = A3 + 4 | 0) >>> 0) break d; + if (i4 = (0 | p3) > 9, p3 = c4, !i4) break; } break d; } - p: if (!((0 | p4) < 0)) for (R4 = A4 >>> 0 < h5 >>> 0 ? h5 : A4 + 4 | 0, i5 = 8 | (f6 = m5 + 16 | 0), h5 = 9 | f6, u6 = A4; ; ) { - c5 = rK2(l4[u6 >> 2], 0, h5), (0 | h5) == (0 | c5) && (s3[m5 + 24 | 0] = 48, c5 = i5); + p: if (!((0 | p3) < 0)) for (R4 = A3 >>> 0 < h5 >>> 0 ? h5 : A3 + 4 | 0, i4 = 8 | (f4 = m4 + 16 | 0), h5 = 9 | f4, u4 = A3; ; ) { + c4 = rK2(l3[u4 >> 2], 0, h5), (0 | h5) == (0 | c4) && (s2[m4 + 24 | 0] = 48, c4 = i4); m: { - if ((0 | u6) != (0 | A4)) { - if (m5 + 16 >>> 0 >= c5 >>> 0) break m; - for (; s3[0 | (c5 = c5 - 1 | 0)] = 48, m5 + 16 >>> 0 < c5 >>> 0; ) ; + if ((0 | u4) != (0 | A3)) { + if (m4 + 16 >>> 0 >= c4 >>> 0) break m; + for (; s2[0 | (c4 = c4 - 1 | 0)] = 48, m4 + 16 >>> 0 < c4 >>> 0; ) ; break m; } - if (rF2(r10, c5, 1), c5 = c5 + 1 | 0, !(v5 | p4)) break m; + if (rF2(r10, c4, 1), c4 = c4 + 1 | 0, !(v4 | p3)) break m; rF2(r10, 4206, 1); } - if (f6 = h5 - c5 | 0, rF2(r10, c5, (0 | f6) > (0 | p4) ? p4 : f6), p4 = p4 - f6 | 0, R4 >>> 0 <= (u6 = u6 + 4 | 0) >>> 0) break p; - if (!((0 | p4) >= 0)) break; + if (f4 = h5 - c4 | 0, rF2(r10, c4, (0 | f4) > (0 | p3) ? p3 : f4), p3 = p3 - f4 | 0, R4 >>> 0 <= (u4 = u4 + 4 | 0) >>> 0) break p; + if (!((0 | p3) >= 0)) break; } - er(r10, 48, p4 + 18 | 0, 18, 0), rF2(r10, W3, V4 - W3 | 0); + er(r10, 48, p3 + 18 | 0, 18, 0), rF2(r10, W3, V3 - W3 | 0); break l; } - c5 = p4; + c4 = p3; } - er(r10, 48, c5 + 9 | 0, 9, 0); + er(r10, 48, c4 + 9 | 0, 9, 0); } - er(r10, 32, a5, G4, 8192 ^ n4), w5 = (0 | a5) < (0 | G4) ? G4 : a5; + er(r10, 32, a4, G3, 8192 ^ n3), w4 = (0 | a4) < (0 | G3) ? G3 : a4; break e; } - v5 = (f6 << 26 >> 31 & 9) + I4 | 0; - N: if (!(i5 >>> 0 > 11)) { - for (c5 = 12 - i5 | 0, g5 = 16; g5 *= 16, c5 = c5 - 1 | 0; ) ; - if (45 == d4[0 | v5]) { - e4 = -(g5 + (-e4 - g5)); + v4 = (f4 << 26 >> 31 & 9) + I3 | 0; + N: if (!(i4 >>> 0 > 11)) { + for (c4 = 12 - i4 | 0, g4 = 16; g4 *= 16, c4 = c4 - 1 | 0; ) ; + if (45 == d3[0 | v4]) { + e3 = -(g4 + (-e3 - g4)); break N; } - e4 = e4 + g5 - g5; + e3 = e3 + g4 - g4; } - for (R4 = 2 | Z3, A4 = 32 & f6, c5 = (u6 = l4[m5 + 44 >> 2]) >> 31, c5 = rK2((c5 ^ u6) - c5 | 0, 0, V4), (0 | V4) == (0 | c5) && (s3[m5 + 15 | 0] = 48, c5 = m5 + 15 | 0), s3[0 | (p4 = c5 - 2 | 0)] = f6 + 15, s3[c5 - 1 | 0] = (0 | u6) < 0 ? 45 : 43, c5 = 8 & n4, u6 = m5 + 16 | 0; f6 = u6, h5 = 2147483648 > y3(e4) ? ~~e4 : -2147483648, s3[0 | u6] = A4 | d4[h5 + 5424 | 0], !(c5 | (0 | i5) > 0) & 0 == (e4 = (e4 - +(0 | h5)) * 16) | ((u6 = f6 + 1 | 0) - (m5 + 16 | 0) | 0) != 1 || (s3[f6 + 1 | 0] = 46, u6 = f6 + 2 | 0), 0 != e4; ) ; - if (w5 = -1, (2147483645 - (f6 = (c5 = V4 - p4 | 0) + R4 | 0) | 0) < (0 | i5)) break e; + for (R4 = 2 | Z3, A3 = 32 & f4, c4 = (u4 = l3[m4 + 44 >> 2]) >> 31, c4 = rK2((c4 ^ u4) - c4 | 0, 0, V3), (0 | V3) == (0 | c4) && (s2[m4 + 15 | 0] = 48, c4 = m4 + 15 | 0), s2[0 | (p3 = c4 - 2 | 0)] = f4 + 15, s2[c4 - 1 | 0] = (0 | u4) < 0 ? 45 : 43, c4 = 8 & n3, u4 = m4 + 16 | 0; f4 = u4, h5 = 2147483648 > y2(e3) ? ~~e3 : -2147483648, s2[0 | u4] = A3 | d3[h5 + 5424 | 0], !(c4 | (0 | i4) > 0) & 0 == (e3 = (e3 - +(0 | h5)) * 16) | ((u4 = f4 + 1 | 0) - (m4 + 16 | 0) | 0) != 1 || (s2[f4 + 1 | 0] = 46, u4 = f4 + 2 | 0), 0 != e3; ) ; + if (w4 = -1, (2147483645 - (f4 = (c4 = V3 - p3 | 0) + R4 | 0) | 0) < (0 | i4)) break e; w: { - if (i5 && !(((A4 = u6 - (m5 + 16 | 0) | 0) - 2 | 0) >= (0 | i5))) { - i5 = i5 + 2 | 0; + if (i4 && !(((A3 = u4 - (m4 + 16 | 0) | 0) - 2 | 0) >= (0 | i4))) { + i4 = i4 + 2 | 0; break w; } - i5 = A4 = u6 - (m5 + 16 | 0) | 0; + i4 = A3 = u4 - (m4 + 16 | 0) | 0; } - er(r10, 32, a5, f6 = i5 + f6 | 0, n4), rF2(r10, v5, R4), er(r10, 48, a5, f6, 65536 ^ n4), rF2(r10, m5 + 16 | 0, A4), er(r10, 48, i5 - A4 | 0, 0, 0), rF2(r10, p4, c5), er(r10, 32, a5, f6, 8192 ^ n4), w5 = (0 | a5) < (0 | f6) ? f6 : a5; + er(r10, 32, a4, f4 = i4 + f4 | 0, n3), rF2(r10, v4, R4), er(r10, 48, a4, f4, 65536 ^ n3), rF2(r10, m4 + 16 | 0, A3), er(r10, 48, i4 - A3 | 0, 0, 0), rF2(r10, p3, c4), er(r10, 32, a4, f4, 8192 ^ n3), w4 = (0 | a4) < (0 | f4) ? f4 : a4; } - return re3 = m5 + 560 | 0, 0 | w5; - }, function(r10, e4) { - r10 |= 0, e4 |= 0; - var a5, i5, n4 = 0, f6 = 0, b5 = 0, k5 = 0, c5 = 0, u6 = 0, s4 = 0, A4 = 0, d5 = 0, h5 = 0, v5 = 0, p4 = 0, N4 = 0, w5 = 0, y4 = 0, E5 = 0; - n4 = e4, e4 = l4[e4 >> 2] + 7 & -8, l4[n4 >> 2] = e4 + 16, N4 = r10, s4 = l4[e4 >> 2], f6 = l4[e4 + 4 >> 2], v5 = r10 = l4[e4 + 12 >> 2], re3 = c5 = re3 - 32 | 0, r10 &= 2147483647, u6 = r10, b5 = r10 - 1006698496 | 0, r10 = r10 - 1140785152 | 0, e4 = n4 = l4[e4 + 8 >> 2]; + return re3 = m4 + 560 | 0, 0 | w4; + }, function(r10, e3) { + r10 |= 0, e3 |= 0; + var a4, i4, n3 = 0, f4 = 0, b4 = 0, k4 = 0, c4 = 0, u4 = 0, s3 = 0, A3 = 0, d4 = 0, h5 = 0, v4 = 0, p3 = 0, N3 = 0, w4 = 0, y3 = 0, E4 = 0; + n3 = e3, e3 = l3[e3 >> 2] + 7 & -8, l3[n3 >> 2] = e3 + 16, N3 = r10, s3 = l3[e3 >> 2], f4 = l3[e3 + 4 >> 2], v4 = r10 = l3[e3 + 12 >> 2], re3 = c4 = re3 - 32 | 0, r10 &= 2147483647, u4 = r10, b4 = r10 - 1006698496 | 0, r10 = r10 - 1140785152 | 0, e3 = n3 = l3[e3 + 8 >> 2]; r: { - if ((0 | b5) == (0 | r10) & e4 >>> 0 < e4 >>> 0 | r10 >>> 0 > b5 >>> 0) { - if (n4 = v5 << 4 | (r10 = n4) >>> 28, e4 = r10 << 4 | f6 >>> 28, r10 = n4, (0 | (f6 &= 268435455)) == 134217728 & (0 | s4) != 0 | f6 >>> 0 > 134217728) { - r10 = r10 + 1073741824 | 0, r10 = (e4 = e4 + 1 | 0) ? r10 : r10 + 1 | 0; + if ((0 | b4) == (0 | r10) & e3 >>> 0 < e3 >>> 0 | r10 >>> 0 > b4 >>> 0) { + if (n3 = v4 << 4 | (r10 = n3) >>> 28, e3 = r10 << 4 | f4 >>> 28, r10 = n3, (0 | (f4 &= 268435455)) == 134217728 & (0 | s3) != 0 | f4 >>> 0 > 134217728) { + r10 = r10 + 1073741824 | 0, r10 = (e3 = e3 + 1 | 0) ? r10 : r10 + 1 | 0; break r; } - if (r10 = r10 + 1073741824 | 0, s4 | (0 | f6) != 134217728) break r; - r10 = (e4 = (f6 = 1 & e4) + e4 | 0) >>> 0 < f6 >>> 0 ? r10 + 1 | 0 : r10; + if (r10 = r10 + 1073741824 | 0, s3 | (0 | f4) != 134217728) break r; + r10 = (e3 = (f4 = 1 & e3) + e3 | 0) >>> 0 < f4 >>> 0 ? r10 + 1 | 0 : r10; break r; } - if (!(!e4 & (0 | u6) == 2147418112 ? !(f6 | s4) : u6 >>> 0 < 2147418112)) { - n4 = v5 << 4 | (r10 = n4) >>> 28, e4 = r10 << 4 | f6 >>> 28, r10 = 524287 & n4 | 2146959360; + if (!(!e3 & (0 | u4) == 2147418112 ? !(f4 | s3) : u4 >>> 0 < 2147418112)) { + n3 = v4 << 4 | (r10 = n3) >>> 28, e3 = r10 << 4 | f4 >>> 28, r10 = 524287 & n3 | 2146959360; break r; } - if (e4 = 0, r10 = 2146435072, u6 >>> 0 > 1140785151 || (r10 = 0, (p4 = u6 >>> 16 | 0) >>> 0 < 15249)) break r; - e4 = s4, r10 = f6, u6 = b5 = 65535 & v5 | 65536, h5 = n4, k5 = n4, A4 = p4 - 15233 | 0; + if (e3 = 0, r10 = 2146435072, u4 >>> 0 > 1140785151 || (r10 = 0, (p3 = u4 >>> 16 | 0) >>> 0 < 15249)) break r; + e3 = s3, r10 = f4, u4 = b4 = 65535 & v4 | 65536, h5 = n3, k4 = n3, A3 = p3 - 15233 | 0; e: { - if (64 & A4) { - n4 = e4, e4 = 31 & (b5 = A4 + -64 | 0), (63 & b5) >>> 0 >= 32 ? (r10 = n4 << e4, k5 = 0) : (r10 = (1 << e4) - 1 & n4 >>> 32 - e4 | r10 << e4, k5 = n4 << e4), b5 = r10, e4 = 0, r10 = 0; + if (64 & A3) { + n3 = e3, e3 = 31 & (b4 = A3 + -64 | 0), (63 & b4) >>> 0 >= 32 ? (r10 = n3 << e3, k4 = 0) : (r10 = (1 << e3) - 1 & n3 >>> 32 - e3 | r10 << e3, k4 = n3 << e3), b4 = r10, e3 = 0, r10 = 0; break e; } - if (!A4) break e; - d5 = k5, k5 = 31 & A4, (63 & A4) >>> 0 >= 32 ? (n4 = d5 << k5, k5 = 0) : (n4 = (1 << k5) - 1 & d5 >>> 32 - k5 | b5 << k5, k5 = d5 << k5), b5 = n4, w5 = k5, d5 = e4, k5 = 31 & (n4 = 64 - A4 | 0), (63 & n4) >>> 0 >= 32 ? (n4 = 0, e4 = r10 >>> k5 | 0) : (n4 = r10 >>> k5 | 0, e4 = ((1 << k5) - 1 & r10) << 32 - k5 | d5 >>> k5), k5 = w5 | e4, b5 |= n4, e4 = 31 & A4, (63 & A4) >>> 0 >= 32 ? (n4 = d5 << e4, e4 = 0) : (n4 = (1 << e4) - 1 & d5 >>> 32 - e4 | r10 << e4, e4 = d5 << e4), r10 = n4; + if (!A3) break e; + d4 = k4, k4 = 31 & A3, (63 & A3) >>> 0 >= 32 ? (n3 = d4 << k4, k4 = 0) : (n3 = (1 << k4) - 1 & d4 >>> 32 - k4 | b4 << k4, k4 = d4 << k4), b4 = n3, w4 = k4, d4 = e3, k4 = 31 & (n3 = 64 - A3 | 0), (63 & n3) >>> 0 >= 32 ? (n3 = 0, e3 = r10 >>> k4 | 0) : (n3 = r10 >>> k4 | 0, e3 = ((1 << k4) - 1 & r10) << 32 - k4 | d4 >>> k4), k4 = w4 | e3, b4 |= n3, e3 = 31 & A3, (63 & A3) >>> 0 >= 32 ? (n3 = d4 << e3, e3 = 0) : (n3 = (1 << e3) - 1 & d4 >>> 32 - e3 | r10 << e3, e3 = d4 << e3), r10 = n3; } - l4[c5 + 16 >> 2] = e4, l4[c5 + 20 >> 2] = r10, l4[c5 + 24 >> 2] = k5, l4[c5 + 28 >> 2] = b5, e4 = 15361 - p4 | 0; + l3[c4 + 16 >> 2] = e3, l3[c4 + 20 >> 2] = r10, l3[c4 + 24 >> 2] = k4, l3[c4 + 28 >> 2] = b4, e3 = 15361 - p3 | 0; a: { - if (64 & e4) { - f6 = h5, r10 = 31 & (e4 = e4 + -64 | 0), (63 & e4) >>> 0 >= 32 ? (n4 = 0, s4 = u6 >>> r10 | 0) : (n4 = u6 >>> r10 | 0, s4 = ((1 << r10) - 1 & u6) << 32 - r10 | f6 >>> r10), f6 = n4, h5 = 0, u6 = 0; + if (64 & e3) { + f4 = h5, r10 = 31 & (e3 = e3 + -64 | 0), (63 & e3) >>> 0 >= 32 ? (n3 = 0, s3 = u4 >>> r10 | 0) : (n3 = u4 >>> r10 | 0, s3 = ((1 << r10) - 1 & u4) << 32 - r10 | f4 >>> r10), f4 = n3, h5 = 0, u4 = 0; break a; } - if (!e4) break a; - b5 = h5, n4 = 31 & (r10 = 64 - e4 | 0), (63 & r10) >>> 0 >= 32 ? (r10 = b5 << n4, k5 = 0) : (r10 = (1 << n4) - 1 & b5 >>> 32 - n4 | u6 << n4, k5 = b5 << n4), b5 = s4, s4 = 31 & e4, (63 & e4) >>> 0 >= 32 ? (n4 = 0, b5 = f6 >>> s4 | 0) : (n4 = f6 >>> s4 | 0, b5 = ((1 << s4) - 1 & f6) << 32 - s4 | b5 >>> s4), s4 = k5 | b5, f6 = r10 | n4, b5 = h5, n4 = 31 & e4, (63 & e4) >>> 0 >= 32 ? (r10 = 0, h5 = u6 >>> n4 | 0) : (r10 = u6 >>> n4 | 0, h5 = ((1 << n4) - 1 & u6) << 32 - n4 | b5 >>> n4), u6 = r10; + if (!e3) break a; + b4 = h5, n3 = 31 & (r10 = 64 - e3 | 0), (63 & r10) >>> 0 >= 32 ? (r10 = b4 << n3, k4 = 0) : (r10 = (1 << n3) - 1 & b4 >>> 32 - n3 | u4 << n3, k4 = b4 << n3), b4 = s3, s3 = 31 & e3, (63 & e3) >>> 0 >= 32 ? (n3 = 0, b4 = f4 >>> s3 | 0) : (n3 = f4 >>> s3 | 0, b4 = ((1 << s3) - 1 & f4) << 32 - s3 | b4 >>> s3), s3 = k4 | b4, f4 = r10 | n3, b4 = h5, n3 = 31 & e3, (63 & e3) >>> 0 >= 32 ? (r10 = 0, h5 = u4 >>> n3 | 0) : (r10 = u4 >>> n3 | 0, h5 = ((1 << n3) - 1 & u4) << 32 - n3 | b4 >>> n3), u4 = r10; } - if (l4[c5 >> 2] = s4, l4[c5 + 4 >> 2] = f6, l4[c5 + 8 >> 2] = h5, l4[c5 + 12 >> 2] = u6, e4 = l4[c5 + 8 >> 2], r10 = l4[c5 + 12 >> 2] << 4 | e4 >>> 28, e4 <<= 4, n4 = l4[c5 >> 2], e4 = (u6 = l4[c5 + 4 >> 2]) >>> 28 | e4, (0 | (f6 = 268435455 & u6)) == 134217728 & (0 | (n4 |= (l4[c5 + 16 >> 2] | l4[c5 + 24 >> 2] | (l4[c5 + 20 >> 2] | l4[c5 + 28 >> 2])) != 0)) != 0 | f6 >>> 0 > 134217728) { - r10 = (e4 = e4 + 1 | 0) ? r10 : r10 + 1 | 0; + if (l3[c4 >> 2] = s3, l3[c4 + 4 >> 2] = f4, l3[c4 + 8 >> 2] = h5, l3[c4 + 12 >> 2] = u4, e3 = l3[c4 + 8 >> 2], r10 = l3[c4 + 12 >> 2] << 4 | e3 >>> 28, e3 <<= 4, n3 = l3[c4 >> 2], e3 = (u4 = l3[c4 + 4 >> 2]) >>> 28 | e3, (0 | (f4 = 268435455 & u4)) == 134217728 & (0 | (n3 |= (l3[c4 + 16 >> 2] | l3[c4 + 24 >> 2] | (l3[c4 + 20 >> 2] | l3[c4 + 28 >> 2])) != 0)) != 0 | f4 >>> 0 > 134217728) { + r10 = (e3 = e3 + 1 | 0) ? r10 : r10 + 1 | 0; break r; } - if (n4 | (0 | f6) != 134217728) break r; - r10 = (n4 = e4) >>> 0 > (e4 = e4 + (1 & e4) | 0) >>> 0 ? r10 + 1 | 0 : r10; + if (n3 | (0 | f4) != 134217728) break r; + r10 = (n3 = e3) >>> 0 > (e3 = e3 + (1 & e3) | 0) >>> 0 ? r10 + 1 | 0 : r10; } - re3 = c5 + 32 | 0, a5 = 0 | e4, t3[0] = a5, i5 = -2147483648 & v5 | r10, t3[1] = i5, y4 = N4, E5 = +o3[0], m4[y4 >> 3] = E5; - }, e_, function(r10, e4) { - e4 |= 0, l4[(r10 |= 0) + 4 >> 2] = 7, l4[r10 >> 2] = e4; - }, function(r10, e4) { - e4 |= 0, l4[(r10 |= 0) + 4 >> 2] = 10, l4[r10 >> 2] = e4; - }, function(r10, e4) { - e4 |= 0, l4[(r10 |= 0) + 4 >> 2] = 13, l4[r10 >> 2] = e4; - }, e_, e_, e_, e_, e_, e_, function(r10, e4, a5, i5, n4, f6) { - r10 |= 0, e4 |= 0, a5 = w4(a5), i5 |= 0, n4 = w4(n4), f6 |= 0; - var t4 = 0; - re3 = t4 = re3 - 16 | 0, e4 = l4[l4[e4 >> 2] + 4 >> 2], eY[l4[l4[e4 >> 2] + 8 >> 2]](t4, e4, a5, i5, n4, f6), p3[r10 >> 2] = m4[t4 >> 3], p3[r10 + 4 >> 2] = m4[t4 + 8 >> 3], re3 = t4 + 16 | 0; + re3 = c4 + 32 | 0, a4 = 0 | e3, t2[0] = a4, i4 = -2147483648 & v4 | r10, t2[1] = i4, y3 = N3, E4 = +o2[0], m3[y3 >> 3] = E4; + }, e_, function(r10, e3) { + e3 |= 0, l3[(r10 |= 0) + 4 >> 2] = 7, l3[r10 >> 2] = e3; + }, function(r10, e3) { + e3 |= 0, l3[(r10 |= 0) + 4 >> 2] = 10, l3[r10 >> 2] = e3; + }, function(r10, e3) { + e3 |= 0, l3[(r10 |= 0) + 4 >> 2] = 13, l3[r10 >> 2] = e3; + }, e_, e_, e_, e_, e_, e_, function(r10, e3, a4, i4, n3, f4) { + r10 |= 0, e3 |= 0, a4 = w3(a4), i4 |= 0, n3 = w3(n3), f4 |= 0; + var t3 = 0; + re3 = t3 = re3 - 16 | 0, e3 = l3[l3[e3 >> 2] + 4 >> 2], eY[l3[l3[e3 >> 2] + 8 >> 2]](t3, e3, a4, i4, n3, f4), p2[r10 >> 2] = m3[t3 >> 3], p2[r10 + 4 >> 2] = m3[t3 + 8 >> 3], re3 = t3 + 16 | 0; }, function(r10) { - r10 |= 0, r10 = l4[l4[r10 >> 2] + 8 >> 2], eY[l4[l4[r10 >> 2] + 8 >> 2]](r10); + r10 |= 0, r10 = l3[l3[r10 >> 2] + 8 >> 2], eY[l3[l3[r10 >> 2] + 8 >> 2]](r10); }, rn2, function(r10) { return 6952; - }, eg, function(r10, e4, a5, i5, n4, f6) { - r10 |= 0, e4 |= 0, a5 = w4(a5), i5 |= 0, n4 = w4(n4), f6 |= 0; - var t4 = 0, b5 = 0; - return re3 = t4 = re3 - 16 | 0, b5 = l4[r10 >> 2], e4 = ((r10 = l4[r10 + 4 >> 2]) >> 1) + e4 | 0, 1 & r10 && (b5 = l4[b5 + l4[e4 >> 2] >> 2]), eY[0 | b5](t4, e4, a5, i5, n4, f6), r10 = eo(16), e4 = l4[t4 + 12 >> 2], l4[r10 + 8 >> 2] = l4[t4 + 8 >> 2], l4[r10 + 12 >> 2] = e4, e4 = l4[t4 + 4 >> 2], l4[r10 >> 2] = l4[t4 >> 2], l4[r10 + 4 >> 2] = e4, re3 = t4 + 16 | 0, 0 | r10; + }, eg, function(r10, e3, a4, i4, n3, f4) { + r10 |= 0, e3 |= 0, a4 = w3(a4), i4 |= 0, n3 = w3(n3), f4 |= 0; + var t3 = 0, b4 = 0; + return re3 = t3 = re3 - 16 | 0, b4 = l3[r10 >> 2], e3 = ((r10 = l3[r10 + 4 >> 2]) >> 1) + e3 | 0, 1 & r10 && (b4 = l3[b4 + l3[e3 >> 2] >> 2]), eY[0 | b4](t3, e3, a4, i4, n3, f4), r10 = eo(16), e3 = l3[t3 + 12 >> 2], l3[r10 + 8 >> 2] = l3[t3 + 8 >> 2], l3[r10 + 12 >> 2] = e3, e3 = l3[t3 + 4 >> 2], l3[r10 >> 2] = l3[t3 >> 2], l3[r10 + 4 >> 2] = e3, re3 = t3 + 16 | 0, 0 | r10; }, function(r10) { return 6956; }, e_, e_, eg, eF, eB, eA, function(r10) { r10 |= 0; - var e4 = 0; - return s3[(e4 = eo(12)) + 4 | 0] = 0, l4[e4 + 8 >> 2] = l4[r10 >> 2], l4[r10 >> 2] = 0, l4[e4 >> 2] = 4368, 0 | e4; - }, function(r10, e4, a5) { - r10 |= 0, e4 |= 0, a5 |= 0; - var i5 = 0, n4 = 0, f6 = 0, t4 = 0; - if (re3 = i5 = re3 - 32 | 0, (n4 = l4[e4 >> 2]) >>> 0 < 2147483632) { + var e3 = 0; + return s2[(e3 = eo(12)) + 4 | 0] = 0, l3[e3 + 8 >> 2] = l3[r10 >> 2], l3[r10 >> 2] = 0, l3[e3 >> 2] = 4368, 0 | e3; + }, function(r10, e3, a4) { + r10 |= 0, e3 |= 0, a4 |= 0; + var i4 = 0, n3 = 0, f4 = 0, t3 = 0; + if (re3 = i4 = re3 - 32 | 0, (n3 = l3[e3 >> 2]) >>> 0 < 2147483632) { r: { e: { - if (n4 >>> 0 >= 11) { - t4 = eo(f6 = (15 | n4) + 1 | 0), l4[i5 + 16 >> 2] = -2147483648 | f6, l4[i5 + 8 >> 2] = t4, l4[i5 + 12 >> 2] = n4, f6 = n4 + t4 | 0; + if (n3 >>> 0 >= 11) { + t3 = eo(f4 = (15 | n3) + 1 | 0), l3[i4 + 16 >> 2] = -2147483648 | f4, l3[i4 + 8 >> 2] = t3, l3[i4 + 12 >> 2] = n3, f4 = n3 + t3 | 0; break e; } - if (s3[i5 + 19 | 0] = n4, f6 = (t4 = i5 + 8 | 0) + n4 | 0, !n4) break r; + if (s2[i4 + 19 | 0] = n3, f4 = (t3 = i4 + 8 | 0) + n3 | 0, !n3) break r; } - ru3(t4, e4 + 4 | 0, n4); + ru3(t3, e3 + 4 | 0, n3); } - return s3[0 | f6] = 0, l4[i5 >> 2] = a5, eY[0 | r10](i5 + 24 | 0, i5 + 8 | 0, i5), U2(l4[i5 + 24 >> 2]), r10 = l4[i5 + 24 >> 2], I3(0 | r10), I3(l4[i5 >> 2]), s3[i5 + 19 | 0] < 0 && rE2(l4[i5 + 8 >> 2]), re3 = i5 + 32 | 0, 0 | r10; + return s2[0 | f4] = 0, l3[i4 >> 2] = a4, eY[0 | r10](i4 + 24 | 0, i4 + 8 | 0, i4), U2(l3[i4 + 24 >> 2]), r10 = l3[i4 + 24 >> 2], I2(0 | r10), I2(l3[i4 >> 2]), s2[i4 + 19 | 0] < 0 && rE2(l3[i4 + 8 >> 2]), re3 = i4 + 32 | 0, 0 | r10; } - T3(), k4(); - }, function(r10, e4, a5) { - r10 |= 0, e4 |= 0, a5 |= 0; - var i5 = 0, n4 = 0; - i5 = r10, n4 = 0 | Y2((s3[e4 + 11 | 0] < 0 ? l4[e4 >> 2] : e4) | 0, 6956, l4[a5 >> 2]), l4[i5 >> 2] = n4; + T2(), k3(); + }, function(r10, e3, a4) { + r10 |= 0, e3 |= 0, a4 |= 0; + var i4 = 0, n3 = 0; + i4 = r10, n3 = 0 | Y2((s2[e3 + 11 | 0] < 0 ? l3[e3 >> 2] : e3) | 0, 6956, l3[a4 >> 2]), l3[i4 >> 2] = n3; }, function(r10) { return 6976; }, eg, em, function(r10) { return 6979; }, e_, e_, eg, eF, eB, eA, function(r10) { r10 |= 0; - var e4 = 0; - return s3[(e4 = eo(12)) + 4 | 0] = 0, l4[e4 + 8 >> 2] = l4[r10 >> 2], l4[r10 >> 2] = 0, l4[e4 >> 2] = 4488, 0 | e4; - }, function(r10, e4, a5) { - r10 |= 0, e4 |= 0, a5 |= 0; - var i5 = 0, n4 = 0; - i5 = r10, n4 = 0 | Y2((s3[e4 + 11 | 0] < 0 ? l4[e4 >> 2] : e4) | 0, 6979, l4[a5 >> 2]), l4[i5 >> 2] = n4; + var e3 = 0; + return s2[(e3 = eo(12)) + 4 | 0] = 0, l3[e3 + 8 >> 2] = l3[r10 >> 2], l3[r10 >> 2] = 0, l3[e3 >> 2] = 4488, 0 | e3; + }, function(r10, e3, a4) { + r10 |= 0, e3 |= 0, a4 |= 0; + var i4 = 0, n3 = 0; + i4 = r10, n3 = 0 | Y2((s2[e3 + 11 | 0] < 0 ? l3[e3 >> 2] : e3) | 0, 6979, l3[a4 >> 2]), l3[i4 >> 2] = n3; }, function(r10) { return 6982; }, eE, eT, function() { - var r10 = 0, e4 = 0; - return e4 = eo(4), A3[(r10 = eo(28)) + 20 >> 1] = 0, l4[r10 + 16 >> 2] = 1065353216, A3[r10 + 10 >> 1] = 0, A3[r10 + 12 >> 1] = 0, l4[r10 >> 2] = 0, l4[r10 + 24 >> 2] = 0, s3[r10 + 9 | 0] = 0, l4[r10 + 4 >> 2] = 1, s3[r10 + 22 | 0] = 0, l4[1732] = l4[1732] + 1, l4[e4 >> 2] = r10, 0 | e4; - }, eI, eE, function(r10, e4, a5) { - e4 |= 0, a5 |= 0, s3[(l4[(r10 |= 0) >> 2] + e4 | 0) + 20 | 0] = a5; - }, et2, function(r10, e4) { - r10 |= 0, e4 = w4(e4); - var a5 = 0, i5 = 0, n4 = 0; - if (re3 = a5 = re3 - 16 | 0, r10 = l4[r10 >> 2], !(e4 >= w4(0))) { - l4[a5 >> 2] = 2262, re3 = i5 = re3 - 16 | 0, l4[i5 + 12 >> 2] = a5; + var r10 = 0, e3 = 0; + return e3 = eo(4), A2[(r10 = eo(28)) + 20 >> 1] = 0, l3[r10 + 16 >> 2] = 1065353216, A2[r10 + 10 >> 1] = 0, A2[r10 + 12 >> 1] = 0, l3[r10 >> 2] = 0, l3[r10 + 24 >> 2] = 0, s2[r10 + 9 | 0] = 0, l3[r10 + 4 >> 2] = 1, s2[r10 + 22 | 0] = 0, l3[1732] = l3[1732] + 1, l3[e3 >> 2] = r10, 0 | e3; + }, eI, eE, function(r10, e3, a4) { + e3 |= 0, a4 |= 0, s2[(l3[(r10 |= 0) >> 2] + e3 | 0) + 20 | 0] = a4; + }, et2, function(r10, e3) { + r10 |= 0, e3 = w3(e3); + var a4 = 0, i4 = 0, n3 = 0; + if (re3 = a4 = re3 - 16 | 0, r10 = l3[r10 >> 2], !(e3 >= w3(0))) { + l3[a4 >> 2] = 2262, re3 = i4 = re3 - 16 | 0, l3[i4 + 12 >> 2] = a4; r: if (!r10) { - if (d4[6936]) { - r10 = l4[1733]; + if (d3[6936]) { + r10 = l3[1733]; break r; } - A3[(r10 = eo(28)) + 20 >> 1] = 0, l4[r10 + 16 >> 2] = 1065353216, A3[r10 + 10 >> 1] = 0, A3[r10 + 12 >> 1] = 0, l4[r10 >> 2] = 0, l4[r10 + 24 >> 2] = 0, s3[r10 + 9 | 0] = 0, l4[r10 + 4 >> 2] = 1, s3[r10 + 22 | 0] = 0, l4[1733] = r10, s3[6936] = 1, l4[1732] = l4[1732] + 1; + A2[(r10 = eo(28)) + 20 >> 1] = 0, l3[r10 + 16 >> 2] = 1065353216, A2[r10 + 10 >> 1] = 0, A2[r10 + 12 >> 1] = 0, l3[r10 >> 2] = 0, l3[r10 + 24 >> 2] = 0, s2[r10 + 9 | 0] = 0, l3[r10 + 4 >> 2] = 1, s2[r10 + 22 | 0] = 0, l3[1733] = r10, s2[6936] = 1, l3[1732] = l3[1732] + 1; } - n4 = l4[r10 + 4 >> 2]; + n3 = l3[r10 + 4 >> 2]; e: { - if (d4[r10 + 9 | 0]) { - eY[0 | n4](r10, 0, 5, 0, 4215, a5); + if (d3[r10 + 9 | 0]) { + eY[0 | n3](r10, 0, 5, 0, 4215, a4); break e; } - eY[0 | n4](r10, 0, 5, 4215, a5); + eY[0 | n3](r10, 0, 5, 4215, a4); } - re3 = i5 + 16 | 0, eX(), k4(); + re3 = i4 + 16 | 0, eX(), k3(); } - p3[r10 + 16 >> 2] = e4 == w4(0) ? w4(0) : e4, re3 = a5 + 16 | 0; - }, function(r10, e4, a5) { - r10 |= 0, e4 |= 0, a5 = w4(a5); - var i5 = 0; - i5 = l4[r10 >> 2], e4 = ((r10 = l4[r10 + 4 >> 2]) >> 1) + e4 | 0, 1 & r10 && (i5 = l4[i5 + l4[e4 >> 2] >> 2]), eY[0 | i5](e4, a5); - }, function(r10, e4) { - e4 |= 0, s3[l4[(r10 |= 0) >> 2] + 11 | 0] = e4; - }, ek, function(r10, e4) { - e4 |= 0, s3[l4[(r10 |= 0) >> 2] + 10 | 0] = e4; - }, function(r10, e4) { - return e4 |= 0, d4[(l4[(r10 |= 0) >> 2] + e4 | 0) + 20 | 0]; + p2[r10 + 16 >> 2] = e3 == w3(0) ? w3(0) : e3, re3 = a4 + 16 | 0; + }, function(r10, e3, a4) { + r10 |= 0, e3 |= 0, a4 = w3(a4); + var i4 = 0; + i4 = l3[r10 >> 2], e3 = ((r10 = l3[r10 + 4 >> 2]) >> 1) + e3 | 0, 1 & r10 && (i4 = l3[i4 + l3[e3 >> 2] >> 2]), eY[0 | i4](e3, a4); + }, function(r10, e3) { + e3 |= 0, s2[l3[(r10 |= 0) >> 2] + 11 | 0] = e3; + }, ek, function(r10, e3) { + e3 |= 0, s2[l3[(r10 |= 0) >> 2] + 10 | 0] = e3; + }, function(r10, e3) { + return e3 |= 0, d3[(l3[(r10 |= 0) >> 2] + e3 | 0) + 20 | 0]; }, eb, function(r10) { - return d4[l4[(r10 |= 0) >> 2] + 11 | 0]; + return d3[l3[(r10 |= 0) >> 2] + 11 | 0]; }, ec2, function(r10) { - return d4[l4[(r10 |= 0) >> 2] + 10 | 0]; + return d3[l3[(r10 |= 0) >> 2] + 10 | 0]; }, function() { return 0 | ry2(eo(48), 0, 48); }, eL, function() { var r10 = 0; - return l4[(r10 = eo(16)) >> 2] = 0, l4[r10 + 4 >> 2] = 0, l4[r10 + 8 >> 2] = 0, l4[r10 + 12 >> 2] = 0, 0 | r10; + return l3[(r10 = eo(16)) >> 2] = 0, l3[r10 + 4 >> 2] = 0, l3[r10 + 8 >> 2] = 0, l3[r10 + 12 >> 2] = 0, 0 | r10; }, eL, function() { var r10 = 0; - return l4[(r10 = eo(16)) + 8 >> 2] = 0, l4[r10 + 12 >> 2] = 0, l4[r10 >> 2] = 0, 0 | r10; - }, eL, eR, eG, function(r10, e4) { - return e4 |= 0, l4[l4[(r10 |= 0) >> 2] + e4 >> 2]; - }, function(r10, e4, a5) { - e4 |= 0, a5 |= 0, l4[l4[(r10 |= 0) >> 2] + e4 >> 2] = a5; + return l3[(r10 = eo(16)) + 8 >> 2] = 0, l3[r10 + 12 >> 2] = 0, l3[r10 >> 2] = 0, 0 | r10; + }, eL, eR, eG, function(r10, e3) { + return e3 |= 0, l3[l3[(r10 |= 0) >> 2] + e3 >> 2]; + }, function(r10, e3, a4) { + e3 |= 0, a4 |= 0, l3[l3[(r10 |= 0) >> 2] + e3 >> 2] = a4; }, function(r10) { return 6987; }, rL2, eT, function() { return 0 | rJ2(eo(12), 0); - }, function(r10, e4) { - return e4 |= 0, 0 | eY[0 | (r10 |= 0)](e4); + }, function(r10, e3) { + return e3 |= 0, 0 | eY[0 | (r10 |= 0)](e3); }, function(r10) { return r10 |= 0, 0 | rJ2(eo(12), r10); }, eI, rL2, function(r10) { r10 |= 0; - var e4 = 0, a5 = 0, i5 = 0, n4 = 0; - re3 = i5 = re3 - 624 | 0, e4 = l4[r10 + 4 >> 2], l4[r10 + 4 >> 2] = 0, e4 && eY[l4[l4[e4 >> 2] + 4 >> 2]](e4), e4 = l4[r10 + 8 >> 2], l4[r10 + 8 >> 2] = 0, e4 && eY[l4[l4[e4 >> 2] + 4 >> 2]](e4); + var e3 = 0, a4 = 0, i4 = 0, n3 = 0; + re3 = i4 = re3 - 624 | 0, e3 = l3[r10 + 4 >> 2], l3[r10 + 4 >> 2] = 0, e3 && eY[l3[l3[e3 >> 2] + 4 >> 2]](e3), e3 = l3[r10 + 8 >> 2], l3[r10 + 8 >> 2] = 0, e3 && eY[l3[l3[e3 >> 2] + 4 >> 2]](e3); r: { - if (r10 = l4[r10 >> 2], l4[r10 + 560 >> 2] == l4[r10 + 556 >> 2]) { - if (l4[r10 + 552 >> 2]) break r; - r_2(r10 + 556 | 0), n4 = s3[r10 + 4 | 0], e4 = rk2(i5 + 32 | 0, l4[r10 + 568 >> 2]), a5 = l4[e4 + 4 >> 2], l4[r10 >> 2] = l4[e4 >> 2], l4[r10 + 4 >> 2] = a5, a5 = l4[e4 + 20 >> 2], l4[r10 + 16 >> 2] = l4[e4 + 16 >> 2], l4[r10 + 20 >> 2] = a5, a5 = l4[e4 + 12 >> 2], l4[r10 + 8 >> 2] = l4[e4 + 8 >> 2], l4[r10 + 12 >> 2] = a5, ru3(r10 + 24 | 0, e4 + 24 | 0, 204), ru3(r10 + 228 | 0, e4 + 228 | 0, 328), (a5 = l4[r10 + 556 >> 2]) && (l4[r10 + 560 >> 2] = a5, rE2(a5)), l4[r10 + 556 >> 2] = l4[e4 + 556 >> 2], l4[r10 + 560 >> 2] = l4[e4 + 560 >> 2], l4[r10 + 564 >> 2] = l4[e4 + 564 >> 2], l4[r10 + 584 >> 2] = l4[e4 + 584 >> 2], a5 = l4[e4 + 580 >> 2], l4[r10 + 576 >> 2] = l4[e4 + 576 >> 2], l4[r10 + 580 >> 2] = a5, a5 = l4[e4 + 572 >> 2], l4[r10 + 568 >> 2] = l4[e4 + 568 >> 2], l4[r10 + 572 >> 2] = a5, (0 | n4) < 0 && (s3[r10 + 4 | 0] = 128 | d4[r10 + 4 | 0], l4[r10 + 24 >> 2] = -909 & l4[r10 + 24 >> 2] | 520), re3 = i5 + 624 | 0; + if (r10 = l3[r10 >> 2], l3[r10 + 560 >> 2] == l3[r10 + 556 >> 2]) { + if (l3[r10 + 552 >> 2]) break r; + r_2(r10 + 556 | 0), n3 = s2[r10 + 4 | 0], e3 = rk2(i4 + 32 | 0, l3[r10 + 568 >> 2]), a4 = l3[e3 + 4 >> 2], l3[r10 >> 2] = l3[e3 >> 2], l3[r10 + 4 >> 2] = a4, a4 = l3[e3 + 20 >> 2], l3[r10 + 16 >> 2] = l3[e3 + 16 >> 2], l3[r10 + 20 >> 2] = a4, a4 = l3[e3 + 12 >> 2], l3[r10 + 8 >> 2] = l3[e3 + 8 >> 2], l3[r10 + 12 >> 2] = a4, ru3(r10 + 24 | 0, e3 + 24 | 0, 204), ru3(r10 + 228 | 0, e3 + 228 | 0, 328), (a4 = l3[r10 + 556 >> 2]) && (l3[r10 + 560 >> 2] = a4, rE2(a4)), l3[r10 + 556 >> 2] = l3[e3 + 556 >> 2], l3[r10 + 560 >> 2] = l3[e3 + 560 >> 2], l3[r10 + 564 >> 2] = l3[e3 + 564 >> 2], l3[r10 + 584 >> 2] = l3[e3 + 584 >> 2], a4 = l3[e3 + 580 >> 2], l3[r10 + 576 >> 2] = l3[e3 + 576 >> 2], l3[r10 + 580 >> 2] = a4, a4 = l3[e3 + 572 >> 2], l3[r10 + 568 >> 2] = l3[e3 + 568 >> 2], l3[r10 + 572 >> 2] = a4, (0 | n3) < 0 && (s2[r10 + 4 | 0] = 128 | d3[r10 + 4 | 0], l3[r10 + 24 >> 2] = -909 & l3[r10 + 24 >> 2] | 520), re3 = i4 + 624 | 0; return; } - l4[i5 + 16 >> 2] = 3252, rB2(r10, i5 + 16 | 0), eX(), k4(); + l3[i4 + 16 >> 2] = 3252, rB2(r10, i4 + 16 | 0), eX(), k3(); } - l4[i5 >> 2] = 2046, rB2(r10, i5), eX(), k4(); - }, em, function(r10, e4) { - r10 |= 0, e4 |= 0; - var a5, i5, n4 = 0, f6 = w4(0), b5 = 0, o4 = 0, k5 = w4(0), c5 = 0, A4 = 0, h5 = 0, v5 = w4(0); + l3[i4 >> 2] = 2046, rB2(r10, i4), eX(), k3(); + }, em, function(r10, e3) { + r10 |= 0, e3 |= 0; + var a4, i4, n3 = 0, f4 = w3(0), b4 = 0, o3 = 0, k4 = w3(0), c4 = 0, A3 = 0, h5 = 0, v4 = w3(0); r: { - A4 = l4[e4 >> 2], e4 = l4[r10 >> 2]; - e: if (!((l4[A4 + 24 >> 2] ^ l4[e4 + 24 >> 2]) & 8388607)) { - v5 = p3[A4 + 40 >> 2], b5 = l4[A4 + 40 >> 2], f6 = p3[e4 + 40 >> 2]; + A3 = l3[e3 >> 2], e3 = l3[r10 >> 2]; + e: if (!((l3[A3 + 24 >> 2] ^ l3[e3 + 24 >> 2]) & 8388607)) { + v4 = p2[A3 + 40 >> 2], b4 = l3[A3 + 40 >> 2], f4 = p2[e3 + 40 >> 2]; a: { i: { - if ((0 | (n4 = l4[e4 + 40 >> 2])) != 2139156720) { - if (k5 = w4(NaN), r10 = 3, (0 | n4) == 2141891242) break a; - if ((0 | n4) != 2140081935) break i; - k5 = w4(0), r10 = 1; + if ((0 | (n3 = l3[e3 + 40 >> 2])) != 2139156720) { + if (k4 = w3(NaN), r10 = 3, (0 | n3) == 2141891242) break a; + if ((0 | n3) != 2140081935) break i; + k4 = w3(0), r10 = 1; break a; } r10 = 2; break a; } - if (r10 = 0, f6 != f6) break a; - a5 = (-1073741825 & n4) + 536870912 | 0, t3[2] = a5, k5 = u5(), r10 = 1073741824 & n4 ? 2 : 1; + if (r10 = 0, f4 != f4) break a; + a4 = (-1073741825 & n3) + 536870912 | 0, t2[2] = a4, k4 = u3(), r10 = 1073741824 & n3 ? 2 : 1; } n: { f: { - if ((0 | b5) != 2139156720) { - if (f6 = w4(NaN), n4 = 3, (0 | b5) == 2141891242) break n; - if ((0 | b5) != 2140081935) break f; - f6 = w4(0), n4 = 1; + if ((0 | b4) != 2139156720) { + if (f4 = w3(NaN), n3 = 3, (0 | b4) == 2141891242) break n; + if ((0 | b4) != 2140081935) break f; + f4 = w3(0), n3 = 1; break n; } - f6 = w4(0), n4 = 2; + f4 = w3(0), n3 = 2; break n; } - if (n4 = 0, v5 != v5) break n; - i5 = (-1073741825 & b5) + 536870912 | 0, t3[2] = i5, f6 = u5(), n4 = 1073741824 & b5 ? 2 : 1; + if (n3 = 0, v4 != v4) break n; + i4 = (-1073741825 & b4) + 536870912 | 0, t2[2] = i4, f4 = u3(), n3 = 1073741824 & b4 ? 2 : 1; } - if ((0 | n4) != (0 | r10) | !(!r10 | k5 != k5 & f6 != f6 | w4(y3(w4(k5 - f6))) < w4(9999999747378752e-20)) || (n4 = e4 + 44 | 0, o4 = A4 + 44 | 0, l4[n4 >> 2] != l4[o4 >> 2])) break e; + if ((0 | n3) != (0 | r10) | !(!r10 | k4 != k4 & f4 != f4 | w3(y2(w3(k4 - f4))) < w3(9999999747378752e-20)) || (n3 = e3 + 44 | 0, o3 = A3 + 44 | 0, l3[n3 >> 2] != l3[o3 >> 2])) break e; r10 = 0; t: { for (; ; ) { - if (b5 = r10, (0 | (r10 = r10 + 1 | 0)) == 9) break t; - if (l4[(c5 = r10 << 2) + n4 >> 2] != l4[o4 + c5 >> 2]) break; + if (b4 = r10, (0 | (r10 = r10 + 1 | 0)) == 9) break t; + if (l3[(c4 = r10 << 2) + n3 >> 2] != l3[o3 + c4 >> 2]) break; } - if (b5 >>> 0 < 8) break e; + if (b4 >>> 0 < 8) break e; } - if (n4 = e4 + 80 | 0, o4 = A4 + 80 | 0, l4[n4 >> 2] != l4[o4 >> 2]) break e; + if (n3 = e3 + 80 | 0, o3 = A3 + 80 | 0, l3[n3 >> 2] != l3[o3 >> 2]) break e; r10 = 0; b: { for (; ; ) { - if (b5 = r10, (0 | (r10 = r10 + 1 | 0)) == 9) break b; - if (l4[(c5 = r10 << 2) + n4 >> 2] != l4[o4 + c5 >> 2]) break; + if (b4 = r10, (0 | (r10 = r10 + 1 | 0)) == 9) break b; + if (l3[(c4 = r10 << 2) + n3 >> 2] != l3[o3 + c4 >> 2]) break; } - if (b5 >>> 0 < 8) break e; + if (b4 >>> 0 < 8) break e; } - if (n4 = e4 + 116 | 0, o4 = A4 + 116 | 0, l4[n4 >> 2] != l4[o4 >> 2]) break e; + if (n3 = e3 + 116 | 0, o3 = A3 + 116 | 0, l3[n3 >> 2] != l3[o3 >> 2]) break e; r10 = 0; o: { for (; ; ) { - if (b5 = r10, (0 | (r10 = r10 + 1 | 0)) == 9) break o; - if (l4[(c5 = r10 << 2) + n4 >> 2] != l4[o4 + c5 >> 2]) break; + if (b4 = r10, (0 | (r10 = r10 + 1 | 0)) == 9) break o; + if (l3[(c4 = r10 << 2) + n3 >> 2] != l3[o3 + c4 >> 2]) break; } - if (b5 >>> 0 < 8) break e; + if (b4 >>> 0 < 8) break e; } - if (n4 = e4 + 152 | 0, o4 = A4 + 152 | 0, l4[n4 >> 2] != l4[o4 >> 2]) break e; + if (n3 = e3 + 152 | 0, o3 = A3 + 152 | 0, l3[n3 >> 2] != l3[o3 >> 2]) break e; r10 = 0; k: { for (; ; ) { - if (b5 = r10, (0 | (r10 = r10 + 1 | 0)) == 9) break k; - if (l4[(c5 = r10 << 2) + n4 >> 2] != l4[o4 + c5 >> 2]) break; + if (b4 = r10, (0 | (r10 = r10 + 1 | 0)) == 9) break k; + if (l3[(c4 = r10 << 2) + n3 >> 2] != l3[o3 + c4 >> 2]) break; } - if (b5 >>> 0 < 8) break e; + if (b4 >>> 0 < 8) break e; } - if (n4 = e4 + 188 | 0, o4 = A4 + 188 | 0, l4[n4 >> 2] != l4[o4 >> 2]) break e; + if (n3 = e3 + 188 | 0, o3 = A3 + 188 | 0, l3[n3 >> 2] != l3[o3 >> 2]) break e; r10 = 0; c: { for (; ; ) { - if (b5 = r10, (0 | (r10 = r10 + 1 | 0)) == 3) break c; - if (l4[(c5 = r10 << 2) + n4 >> 2] != l4[o4 + c5 >> 2]) break; + if (b4 = r10, (0 | (r10 = r10 + 1 | 0)) == 3) break c; + if (l3[(c4 = r10 << 2) + n3 >> 2] != l3[o3 + c4 >> 2]) break; } - if (b5 >>> 0 < 2) break e; + if (b4 >>> 0 < 2) break e; } - for (c5 = A4 + 200 | 0, h5 = e4 + 200 | 0, r10 = 0, b5 = 1; ; ) { - if (r10 <<= 2, n4 = l4[r10 + c5 >> 2], o4 = l4[r10 + h5 >> 2], b5 && (b5 = 0, r10 = 1, (0 | n4) == (0 | o4))) continue; + for (c4 = A3 + 200 | 0, h5 = e3 + 200 | 0, r10 = 0, b4 = 1; ; ) { + if (r10 <<= 2, n3 = l3[r10 + c4 >> 2], o3 = l3[r10 + h5 >> 2], b4 && (b4 = 0, r10 = 1, (0 | n3) == (0 | o3))) continue; break; } - if ((0 | n4) != (0 | o4)) break e; - for (c5 = A4 + 208 | 0, h5 = e4 + 208 | 0, r10 = 0, b5 = 1; ; ) { - if (r10 <<= 2, n4 = l4[r10 + c5 >> 2], o4 = l4[r10 + h5 >> 2], b5 && (b5 = 0, r10 = 1, (0 | n4) == (0 | o4))) continue; + if ((0 | n3) != (0 | o3)) break e; + for (c4 = A3 + 208 | 0, h5 = e3 + 208 | 0, r10 = 0, b4 = 1; ; ) { + if (r10 <<= 2, n3 = l3[r10 + c4 >> 2], o3 = l3[r10 + h5 >> 2], b4 && (b4 = 0, r10 = 1, (0 | n3) == (0 | o3))) continue; break; } - if ((0 | n4) != (0 | o4)) break e; - for (c5 = A4 + 216 | 0, h5 = e4 + 216 | 0, r10 = 0, b5 = 1; ; ) { - if (r10 <<= 2, n4 = l4[r10 + c5 >> 2], o4 = l4[r10 + h5 >> 2], b5 && (b5 = 0, r10 = 1, (0 | n4) == (0 | o4))) continue; + if ((0 | n3) != (0 | o3)) break e; + for (c4 = A3 + 216 | 0, h5 = e3 + 216 | 0, r10 = 0, b4 = 1; ; ) { + if (r10 <<= 2, n3 = l3[r10 + c4 >> 2], o3 = l3[r10 + h5 >> 2], b4 && (b4 = 0, r10 = 1, (0 | n3) == (0 | o3))) continue; break; } - if ((0 | n4) != (0 | o4) || (r10 = (k5 = p3[A4 + 28 >> 2]) != k5, f6 = p3[e4 + 28 >> 2], (0 | r10) == (f6 == f6 | 0) | !(r10 | f6 != f6) & f6 != k5) || (f6 = p3[e4 + 32 >> 2], k5 = p3[A4 + 32 >> 2], (f6 == f6 | 0) == (k5 != k5 | 0) | f6 == f6 & f6 != k5) || (r10 = (k5 = p3[A4 + 36 >> 2]) != k5, f6 = p3[e4 + 36 >> 2], (0 | r10) == (f6 == f6 | 0) | !r10 & f6 != k5)) break e; - if (r10 = 0, (f6 = p3[e4 + 224 >> 2]) != f6 && (r10 = 1, (k5 = p3[A4 + 224 >> 2]) != k5) || (k5 = f6, f6 = p3[A4 + 224 >> 2], k5 == f6 | f6 != f6 & r10)) break r; + if ((0 | n3) != (0 | o3) || (r10 = (k4 = p2[A3 + 28 >> 2]) != k4, f4 = p2[e3 + 28 >> 2], (0 | r10) == (f4 == f4 | 0) | !(r10 | f4 != f4) & f4 != k4) || (f4 = p2[e3 + 32 >> 2], k4 = p2[A3 + 32 >> 2], (f4 == f4 | 0) == (k4 != k4 | 0) | f4 == f4 & f4 != k4) || (r10 = (k4 = p2[A3 + 36 >> 2]) != k4, f4 = p2[e3 + 36 >> 2], (0 | r10) == (f4 == f4 | 0) | !r10 & f4 != k4)) break e; + if (r10 = 0, (f4 = p2[e3 + 224 >> 2]) != f4 && (r10 = 1, (k4 = p2[A3 + 224 >> 2]) != k4) || (k4 = f4, f4 = p2[A3 + 224 >> 2], k4 == f4 | f4 != f4 & r10)) break r; } - for (ru3(e4 + 24 | 0, A4 + 24 | 0, 204); ; ) { - if (4 & (r10 = d4[e4 + 4 | 0])) break r; - if (s3[e4 + 4 | 0] = 4 | r10, (r10 = l4[e4 + 20 >> 2]) && eY[0 | r10](e4), l4[e4 + 308 >> 2] = 2143289344, !(e4 = l4[e4 + 552 >> 2])) break; + for (ru3(e3 + 24 | 0, A3 + 24 | 0, 204); ; ) { + if (4 & (r10 = d3[e3 + 4 | 0])) break r; + if (s2[e3 + 4 | 0] = 4 | r10, (r10 = l3[e3 + 20 >> 2]) && eY[0 | r10](e3), l3[e3 + 308 >> 2] = 2143289344, !(e3 = l3[e3 + 552 >> 2])) break; } } - }, ek, function(r10, e4) { - r10 |= 0, e4 |= 0; - var a5 = 0; - r: if (r10 = l4[r10 >> 2], ((a5 = l4[r10 + 24 >> 2]) >>> 16 & 3) != (0 | e4)) for (l4[r10 + 24 >> 2] = -196609 & a5 | e4 << 16 & 196608; ; ) { - if (4 & (e4 = d4[r10 + 4 | 0])) break r; - if (s3[r10 + 4 | 0] = 4 | e4, (e4 = l4[r10 + 20 >> 2]) && eY[0 | e4](r10), l4[r10 + 308 >> 2] = 2143289344, !(r10 = l4[r10 + 552 >> 2])) break; + }, ek, function(r10, e3) { + r10 |= 0, e3 |= 0; + var a4 = 0; + r: if (r10 = l3[r10 >> 2], ((a4 = l3[r10 + 24 >> 2]) >>> 16 & 3) != (0 | e3)) for (l3[r10 + 24 >> 2] = -196609 & a4 | e3 << 16 & 196608; ; ) { + if (4 & (e3 = d3[r10 + 4 | 0])) break r; + if (s2[r10 + 4 | 0] = 4 | e3, (e3 = l3[r10 + 20 >> 2]) && eY[0 | e3](r10), l3[r10 + 308 >> 2] = 2143289344, !(r10 = l3[r10 + 552 >> 2])) break; } - }, ek, function(r10, e4, a5) { - e4 |= 0, a5 = +a5, r42(l4[(r10 |= 0) >> 2], e4, rx2(w4(a5))); - }, function(r10, e4, a5, i5) { - r10 |= 0, e4 |= 0, a5 |= 0, i5 = +i5; - var n4 = 0; - n4 = l4[r10 >> 2], e4 = ((r10 = l4[r10 + 4 >> 2]) >> 1) + e4 | 0, 1 & r10 && (n4 = l4[n4 + l4[e4 >> 2] >> 2]), eY[0 | n4](e4, a5, i5); - }, function(r10, e4, a5) { - e4 |= 0, a5 = +a5, r42(l4[(r10 |= 0) >> 2], e4, rD2(w4(a5))); - }, function(r10, e4) { - e4 |= 0, rC2(l4[(r10 |= 0) >> 2], 5, e4); - }, function(r10, e4) { - e4 |= 0, rC2(l4[(r10 |= 0) >> 2], 6, e4); - }, function(r10, e4) { - e4 |= 0, rC2(l4[(r10 |= 0) >> 2], 7, e4); - }, function(r10, e4) { - r10 |= 0, e4 |= 0; - var a5 = 0; - r: if (r10 = l4[r10 >> 2], ((a5 = l4[r10 + 24 >> 2]) >>> 2 & 3) != (0 | e4)) for (l4[r10 + 24 >> 2] = -13 & a5 | e4 << 2 & 12; ; ) { - if (4 & (e4 = d4[r10 + 4 | 0])) break r; - if (s3[r10 + 4 | 0] = 4 | e4, (e4 = l4[r10 + 20 >> 2]) && eY[0 | e4](r10), l4[r10 + 308 >> 2] = 2143289344, !(r10 = l4[r10 + 552 >> 2])) break; + }, ek, function(r10, e3, a4) { + e3 |= 0, a4 = +a4, r42(l3[(r10 |= 0) >> 2], e3, rx2(w3(a4))); + }, function(r10, e3, a4, i4) { + r10 |= 0, e3 |= 0, a4 |= 0, i4 = +i4; + var n3 = 0; + n3 = l3[r10 >> 2], e3 = ((r10 = l3[r10 + 4 >> 2]) >> 1) + e3 | 0, 1 & r10 && (n3 = l3[n3 + l3[e3 >> 2] >> 2]), eY[0 | n3](e3, a4, i4); + }, function(r10, e3, a4) { + e3 |= 0, a4 = +a4, r42(l3[(r10 |= 0) >> 2], e3, rD2(w3(a4))); + }, function(r10, e3) { + e3 |= 0, rC2(l3[(r10 |= 0) >> 2], 5, e3); + }, function(r10, e3) { + e3 |= 0, rC2(l3[(r10 |= 0) >> 2], 6, e3); + }, function(r10, e3) { + e3 |= 0, rC2(l3[(r10 |= 0) >> 2], 7, e3); + }, function(r10, e3) { + r10 |= 0, e3 |= 0; + var a4 = 0; + r: if (r10 = l3[r10 >> 2], ((a4 = l3[r10 + 24 >> 2]) >>> 2 & 3) != (0 | e3)) for (l3[r10 + 24 >> 2] = -13 & a4 | e3 << 2 & 12; ; ) { + if (4 & (e3 = d3[r10 + 4 | 0])) break r; + if (s2[r10 + 4 | 0] = 4 | e3, (e3 = l3[r10 + 20 >> 2]) && eY[0 | e3](r10), l3[r10 + 308 >> 2] = 2143289344, !(r10 = l3[r10 + 552 >> 2])) break; } - }, function(r10, e4) { - r10 |= 0, e4 |= 0; - var a5 = 0; - r: if (r10 = l4[r10 >> 2], ((a5 = l4[r10 + 24 >> 2]) >>> 18 & 3) != (0 | e4)) for (l4[r10 + 24 >> 2] = -786433 & a5 | e4 << 18 & 786432; ; ) { - if (4 & (e4 = d4[r10 + 4 | 0])) break r; - if (s3[r10 + 4 | 0] = 4 | e4, (e4 = l4[r10 + 20 >> 2]) && eY[0 | e4](r10), l4[r10 + 308 >> 2] = 2143289344, !(r10 = l4[r10 + 552 >> 2])) break; + }, function(r10, e3) { + r10 |= 0, e3 |= 0; + var a4 = 0; + r: if (r10 = l3[r10 >> 2], ((a4 = l3[r10 + 24 >> 2]) >>> 18 & 3) != (0 | e3)) for (l3[r10 + 24 >> 2] = -786433 & a4 | e3 << 18 & 786432; ; ) { + if (4 & (e3 = d3[r10 + 4 | 0])) break r; + if (s2[r10 + 4 | 0] = 4 | e3, (e3 = l3[r10 + 20 >> 2]) && eY[0 | e3](r10), l3[r10 + 308 >> 2] = 2143289344, !(r10 = l3[r10 + 552 >> 2])) break; } - }, function(r10, e4) { - r10 |= 0, e4 |= 0; - var a5 = 0; - r: if (r10 = l4[r10 >> 2], ((a5 = l4[r10 + 24 >> 2]) >>> 4 & 7) != (0 | e4)) for (l4[r10 + 24 >> 2] = -113 & a5 | e4 << 4 & 112; ; ) { - if (4 & (e4 = d4[r10 + 4 | 0])) break r; - if (s3[r10 + 4 | 0] = 4 | e4, (e4 = l4[r10 + 20 >> 2]) && eY[0 | e4](r10), l4[r10 + 308 >> 2] = 2143289344, !(r10 = l4[r10 + 552 >> 2])) break; + }, function(r10, e3) { + r10 |= 0, e3 |= 0; + var a4 = 0; + r: if (r10 = l3[r10 >> 2], ((a4 = l3[r10 + 24 >> 2]) >>> 4 & 7) != (0 | e3)) for (l3[r10 + 24 >> 2] = -113 & a4 | e3 << 4 & 112; ; ) { + if (4 & (e3 = d3[r10 + 4 | 0])) break r; + if (s2[r10 + 4 | 0] = 4 | e3, (e3 = l3[r10 + 20 >> 2]) && eY[0 | e3](r10), l3[r10 + 308 >> 2] = 2143289344, !(r10 = l3[r10 + 552 >> 2])) break; } - }, function(r10, e4, a5) { - e4 |= 0, a5 = +a5, r8(l4[(r10 |= 0) >> 2], e4, rx2(w4(a5))); - }, function(r10, e4, a5) { - e4 |= 0, a5 = +a5, r8(l4[(r10 |= 0) >> 2], e4, rD2(w4(a5))); - }, function(r10, e4) { - e4 |= 0, r8(l4[(r10 |= 0) >> 2], e4, 2141891242); - }, function(r10, e4) { - r10 |= 0, e4 |= 0; - var a5 = 0; - r: if (r10 = l4[r10 >> 2], ((a5 = l4[r10 + 24 >> 2]) >>> 20 & 3) != (0 | e4)) for (l4[r10 + 24 >> 2] = -3145729 & a5 | e4 << 20 & 3145728; ; ) { - if (4 & (e4 = d4[r10 + 4 | 0])) break r; - if (s3[r10 + 4 | 0] = 4 | e4, (e4 = l4[r10 + 20 >> 2]) && eY[0 | e4](r10), l4[r10 + 308 >> 2] = 2143289344, !(r10 = l4[r10 + 552 >> 2])) break; + }, function(r10, e3, a4) { + e3 |= 0, a4 = +a4, r8(l3[(r10 |= 0) >> 2], e3, rx2(w3(a4))); + }, function(r10, e3, a4) { + e3 |= 0, a4 = +a4, r8(l3[(r10 |= 0) >> 2], e3, rD2(w3(a4))); + }, function(r10, e3) { + e3 |= 0, r8(l3[(r10 |= 0) >> 2], e3, 2141891242); + }, function(r10, e3) { + r10 |= 0, e3 |= 0; + var a4 = 0; + r: if (r10 = l3[r10 >> 2], ((a4 = l3[r10 + 24 >> 2]) >>> 20 & 3) != (0 | e3)) for (l3[r10 + 24 >> 2] = -3145729 & a4 | e3 << 20 & 3145728; ; ) { + if (4 & (e3 = d3[r10 + 4 | 0])) break r; + if (s2[r10 + 4 | 0] = 4 | e3, (e3 = l3[r10 + 20 >> 2]) && eY[0 | e3](r10), l3[r10 + 308 >> 2] = 2143289344, !(r10 = l3[r10 + 552 >> 2])) break; } - }, function(r10, e4) { - r10 |= 0, e4 |= 0; - var a5 = 0; - r: if (r10 = l4[r10 >> 2], ((a5 = l4[r10 + 24 >> 2]) >>> 22 & 1) != (0 | e4)) for (l4[r10 + 24 >> 2] = -4194305 & a5 | e4 << 22 & 4194304; ; ) { - if (4 & (e4 = d4[r10 + 4 | 0])) break r; - if (s3[r10 + 4 | 0] = 4 | e4, (e4 = l4[r10 + 20 >> 2]) && eY[0 | e4](r10), l4[r10 + 308 >> 2] = 2143289344, !(r10 = l4[r10 + 552 >> 2])) break; + }, function(r10, e3) { + r10 |= 0, e3 |= 0; + var a4 = 0; + r: if (r10 = l3[r10 >> 2], ((a4 = l3[r10 + 24 >> 2]) >>> 22 & 1) != (0 | e3)) for (l3[r10 + 24 >> 2] = -4194305 & a4 | e3 << 22 & 4194304; ; ) { + if (4 & (e3 = d3[r10 + 4 | 0])) break r; + if (s2[r10 + 4 | 0] = 4 | e3, (e3 = l3[r10 + 20 >> 2]) && eY[0 | e3](r10), l3[r10 + 308 >> 2] = 2143289344, !(r10 = l3[r10 + 552 >> 2])) break; } - }, function(r10, e4) { - r10 |= 0, e4 = +e4; - var a5 = 0, i5 = w4(0), n4 = w4(0); - r: if (i5 = w4(e4), n4 = p3[(r10 = l4[r10 >> 2]) + 28 >> 2], !(i5 == n4 | i5 != i5 & n4 != n4)) for (p3[r10 + 28 >> 2] = i5; ; ) { - if (4 & (a5 = d4[r10 + 4 | 0])) break r; - if (s3[r10 + 4 | 0] = 4 | a5, (a5 = l4[r10 + 20 >> 2]) && eY[0 | a5](r10), l4[r10 + 308 >> 2] = 2143289344, !(r10 = l4[r10 + 552 >> 2])) break; + }, function(r10, e3) { + r10 |= 0, e3 = +e3; + var a4 = 0, i4 = w3(0), n3 = w3(0); + r: if (i4 = w3(e3), n3 = p2[(r10 = l3[r10 >> 2]) + 28 >> 2], !(i4 == n3 | i4 != i4 & n3 != n3)) for (p2[r10 + 28 >> 2] = i4; ; ) { + if (4 & (a4 = d3[r10 + 4 | 0])) break r; + if (s2[r10 + 4 | 0] = 4 | a4, (a4 = l3[r10 + 20 >> 2]) && eY[0 | a4](r10), l3[r10 + 308 >> 2] = 2143289344, !(r10 = l3[r10 + 552 >> 2])) break; } - }, function(r10, e4, a5) { - r10 |= 0, e4 |= 0, a5 = +a5; - var i5 = 0; - i5 = l4[r10 >> 2], e4 = ((r10 = l4[r10 + 4 >> 2]) >> 1) + e4 | 0, 1 & r10 && (i5 = l4[i5 + l4[e4 >> 2] >> 2]), eY[0 | i5](e4, a5); - }, function(r10, e4) { - e4 = +e4, r1(l4[(r10 |= 0) >> 2], rx2(w4(e4))); - }, function(r10, e4) { - e4 = +e4, r1(l4[(r10 |= 0) >> 2], rD2(w4(e4))); + }, function(r10, e3, a4) { + r10 |= 0, e3 |= 0, a4 = +a4; + var i4 = 0; + i4 = l3[r10 >> 2], e3 = ((r10 = l3[r10 + 4 >> 2]) >> 1) + e3 | 0, 1 & r10 && (i4 = l3[i4 + l3[e3 >> 2] >> 2]), eY[0 | i4](e3, a4); + }, function(r10, e3) { + e3 = +e3, r1(l3[(r10 |= 0) >> 2], rx2(w3(e3))); + }, function(r10, e3) { + e3 = +e3, r1(l3[(r10 |= 0) >> 2], rD2(w3(e3))); }, function(r10) { - r1(l4[(r10 |= 0) >> 2], 2141891242); - }, function(r10, e4) { - r10 |= 0, e4 = +e4; - var a5 = 0, i5 = w4(0), n4 = w4(0); - r: if (i5 = w4(e4), n4 = p3[(r10 = l4[r10 >> 2]) + 32 >> 2], !(i5 == n4 | i5 != i5 & n4 != n4)) for (p3[r10 + 32 >> 2] = i5; ; ) { - if (4 & (a5 = d4[r10 + 4 | 0])) break r; - if (s3[r10 + 4 | 0] = 4 | a5, (a5 = l4[r10 + 20 >> 2]) && eY[0 | a5](r10), l4[r10 + 308 >> 2] = 2143289344, !(r10 = l4[r10 + 552 >> 2])) break; + r1(l3[(r10 |= 0) >> 2], 2141891242); + }, function(r10, e3) { + r10 |= 0, e3 = +e3; + var a4 = 0, i4 = w3(0), n3 = w3(0); + r: if (i4 = w3(e3), n3 = p2[(r10 = l3[r10 >> 2]) + 32 >> 2], !(i4 == n3 | i4 != i4 & n3 != n3)) for (p2[r10 + 32 >> 2] = i4; ; ) { + if (4 & (a4 = d3[r10 + 4 | 0])) break r; + if (s2[r10 + 4 | 0] = 4 | a4, (a4 = l3[r10 + 20 >> 2]) && eY[0 | a4](r10), l3[r10 + 308 >> 2] = 2143289344, !(r10 = l3[r10 + 552 >> 2])) break; } - }, function(r10, e4) { - r10 |= 0, e4 = +e4; - var a5 = 0, i5 = w4(0), n4 = w4(0); - r: if (i5 = w4(e4), n4 = p3[(r10 = l4[r10 >> 2]) + 36 >> 2], !(i5 == n4 | i5 != i5 & n4 != n4)) for (p3[r10 + 36 >> 2] = i5; ; ) { - if (4 & (a5 = d4[r10 + 4 | 0])) break r; - if (s3[r10 + 4 | 0] = 4 | a5, (a5 = l4[r10 + 20 >> 2]) && eY[0 | a5](r10), l4[r10 + 308 >> 2] = 2143289344, !(r10 = l4[r10 + 552 >> 2])) break; + }, function(r10, e3) { + r10 |= 0, e3 = +e3; + var a4 = 0, i4 = w3(0), n3 = w3(0); + r: if (i4 = w3(e3), n3 = p2[(r10 = l3[r10 >> 2]) + 36 >> 2], !(i4 == n3 | i4 != i4 & n3 != n3)) for (p2[r10 + 36 >> 2] = i4; ; ) { + if (4 & (a4 = d3[r10 + 4 | 0])) break r; + if (s2[r10 + 4 | 0] = 4 | a4, (a4 = l3[r10 + 20 >> 2]) && eY[0 | a4](r10), l3[r10 + 308 >> 2] = 2143289344, !(r10 = l3[r10 + 552 >> 2])) break; } - }, function(r10, e4) { - e4 = +e4, r23(l4[(r10 |= 0) >> 2], 0, rx2(w4(e4))); - }, function(r10, e4) { - e4 = +e4, r23(l4[(r10 |= 0) >> 2], 0, rD2(w4(e4))); + }, function(r10, e3) { + e3 = +e3, r22(l3[(r10 |= 0) >> 2], 0, rx2(w3(e3))); + }, function(r10, e3) { + e3 = +e3, r22(l3[(r10 |= 0) >> 2], 0, rD2(w3(e3))); }, function(r10) { - r23(l4[(r10 |= 0) >> 2], 0, 2141891242); - }, function(r10, e4) { - e4 = +e4, r23(l4[(r10 |= 0) >> 2], 1, rx2(w4(e4))); - }, function(r10, e4) { - e4 = +e4, r23(l4[(r10 |= 0) >> 2], 1, rD2(w4(e4))); + r22(l3[(r10 |= 0) >> 2], 0, 2141891242); + }, function(r10, e3) { + e3 = +e3, r22(l3[(r10 |= 0) >> 2], 1, rx2(w3(e3))); + }, function(r10, e3) { + e3 = +e3, r22(l3[(r10 |= 0) >> 2], 1, rD2(w3(e3))); }, function(r10) { - r23(l4[(r10 |= 0) >> 2], 1, 2141891242); - }, function(r10, e4) { - e4 = +e4, r$2(l4[(r10 |= 0) >> 2], 0, rx2(w4(e4))); - }, function(r10, e4) { - e4 = +e4, r$2(l4[(r10 |= 0) >> 2], 0, rD2(w4(e4))); - }, function(r10, e4) { - e4 = +e4, r$2(l4[(r10 |= 0) >> 2], 1, rx2(w4(e4))); - }, function(r10, e4) { - e4 = +e4, r$2(l4[(r10 |= 0) >> 2], 1, rD2(w4(e4))); - }, function(r10, e4) { - e4 = +e4, r02(l4[(r10 |= 0) >> 2], 0, rx2(w4(e4))); - }, function(r10, e4) { - e4 = +e4, r02(l4[(r10 |= 0) >> 2], 0, rD2(w4(e4))); - }, function(r10, e4) { - e4 = +e4, r02(l4[(r10 |= 0) >> 2], 1, rx2(w4(e4))); - }, function(r10, e4) { - e4 = +e4, r02(l4[(r10 |= 0) >> 2], 1, rD2(w4(e4))); - }, function(r10, e4) { - r10 |= 0, e4 = +e4; - var a5 = 0, i5 = w4(0), n4 = w4(0); - r: if (i5 = w4(e4), n4 = p3[(r10 = l4[r10 >> 2]) + 224 >> 2], !(i5 == n4 | i5 != i5 & n4 != n4)) for (p3[r10 + 224 >> 2] = i5; ; ) { - if (4 & (a5 = d4[r10 + 4 | 0])) break r; - if (s3[r10 + 4 | 0] = 4 | a5, (a5 = l4[r10 + 20 >> 2]) && eY[0 | a5](r10), l4[r10 + 308 >> 2] = 2143289344, !(r10 = l4[r10 + 552 >> 2])) break; + r22(l3[(r10 |= 0) >> 2], 1, 2141891242); + }, function(r10, e3) { + e3 = +e3, r$2(l3[(r10 |= 0) >> 2], 0, rx2(w3(e3))); + }, function(r10, e3) { + e3 = +e3, r$2(l3[(r10 |= 0) >> 2], 0, rD2(w3(e3))); + }, function(r10, e3) { + e3 = +e3, r$2(l3[(r10 |= 0) >> 2], 1, rx2(w3(e3))); + }, function(r10, e3) { + e3 = +e3, r$2(l3[(r10 |= 0) >> 2], 1, rD2(w3(e3))); + }, function(r10, e3) { + e3 = +e3, r02(l3[(r10 |= 0) >> 2], 0, rx2(w3(e3))); + }, function(r10, e3) { + e3 = +e3, r02(l3[(r10 |= 0) >> 2], 0, rD2(w3(e3))); + }, function(r10, e3) { + e3 = +e3, r02(l3[(r10 |= 0) >> 2], 1, rx2(w3(e3))); + }, function(r10, e3) { + e3 = +e3, r02(l3[(r10 |= 0) >> 2], 1, rD2(w3(e3))); + }, function(r10, e3) { + r10 |= 0, e3 = +e3; + var a4 = 0, i4 = w3(0), n3 = w3(0); + r: if (i4 = w3(e3), n3 = p2[(r10 = l3[r10 >> 2]) + 224 >> 2], !(i4 == n3 | i4 != i4 & n3 != n3)) for (p2[r10 + 224 >> 2] = i4; ; ) { + if (4 & (a4 = d3[r10 + 4 | 0])) break r; + if (s2[r10 + 4 | 0] = 4 | a4, (a4 = l3[r10 + 20 >> 2]) && eY[0 | a4](r10), l3[r10 + 308 >> 2] = 2143289344, !(r10 = l3[r10 + 552 >> 2])) break; } - }, function(r10, e4, a5) { - r10 |= 0, e4 |= 0, a5 = +a5; - var i5 = 0; - r: if (e4 = (r10 = l4[r10 >> 2]) + (e4 << 2) | 0, (0 | (l4[e4 + 152 >> 2])) != (0 | (i5 = rx2(w4(a5))))) for (l4[e4 + 152 >> 2] = i5; ; ) { - if (4 & (e4 = d4[r10 + 4 | 0])) break r; - if (s3[r10 + 4 | 0] = 4 | e4, (e4 = l4[r10 + 20 >> 2]) && eY[0 | e4](r10), l4[r10 + 308 >> 2] = 2143289344, !(r10 = l4[r10 + 552 >> 2])) break; + }, function(r10, e3, a4) { + r10 |= 0, e3 |= 0, a4 = +a4; + var i4 = 0; + r: if (e3 = (r10 = l3[r10 >> 2]) + (e3 << 2) | 0, (0 | (l3[e3 + 152 >> 2])) != (0 | (i4 = rx2(w3(a4))))) for (l3[e3 + 152 >> 2] = i4; ; ) { + if (4 & (e3 = d3[r10 + 4 | 0])) break r; + if (s2[r10 + 4 | 0] = 4 | e3, (e3 = l3[r10 + 20 >> 2]) && eY[0 | e3](r10), l3[r10 + 308 >> 2] = 2143289344, !(r10 = l3[r10 + 552 >> 2])) break; } - }, function(r10, e4, a5) { - e4 |= 0, a5 = +a5, r32(l4[(r10 |= 0) >> 2], e4, rx2(w4(a5))); - }, function(r10, e4, a5) { - e4 |= 0, a5 = +a5, r32(l4[(r10 |= 0) >> 2], e4, rD2(w4(a5))); - }, function(r10, e4, a5) { - r10 |= 0, e4 |= 0, a5 = +a5; - var i5 = 0; - r: if (e4 = (r10 = l4[r10 >> 2]) + (e4 << 2) | 0, (0 | (l4[e4 + 188 >> 2])) != (0 | (i5 = rx2(w4(a5))))) for (l4[e4 + 188 >> 2] = i5; ; ) { - if (4 & (e4 = d4[r10 + 4 | 0])) break r; - if (s3[r10 + 4 | 0] = 4 | e4, (e4 = l4[r10 + 20 >> 2]) && eY[0 | e4](r10), l4[r10 + 308 >> 2] = 2143289344, !(r10 = l4[r10 + 552 >> 2])) break; + }, function(r10, e3, a4) { + e3 |= 0, a4 = +a4, r32(l3[(r10 |= 0) >> 2], e3, rx2(w3(a4))); + }, function(r10, e3, a4) { + e3 |= 0, a4 = +a4, r32(l3[(r10 |= 0) >> 2], e3, rD2(w3(a4))); + }, function(r10, e3, a4) { + r10 |= 0, e3 |= 0, a4 = +a4; + var i4 = 0; + r: if (e3 = (r10 = l3[r10 >> 2]) + (e3 << 2) | 0, (0 | (l3[e3 + 188 >> 2])) != (0 | (i4 = rx2(w3(a4))))) for (l3[e3 + 188 >> 2] = i4; ; ) { + if (4 & (e3 = d3[r10 + 4 | 0])) break r; + if (s2[r10 + 4 | 0] = 4 | e3, (e3 = l3[r10 + 20 >> 2]) && eY[0 | e3](r10), l3[r10 + 308 >> 2] = 2143289344, !(r10 = l3[r10 + 552 >> 2])) break; } }, function(r10) { - return 3 & h4[l4[(r10 |= 0) >> 2] + 26 >> 1]; - }, ec2, function(r10, e4, a5) { - r10 |= 0, e4 |= 0, a5 |= 0; - var i5, n4 = 0, f6 = 0, b5 = w4(0); - n4 = 2, b5 = p3[(e4 = l4[e4 >> 2] + (a5 << 2) | 0) + 80 >> 2]; + return 3 & h4[l3[(r10 |= 0) >> 2] + 26 >> 1]; + }, ec2, function(r10, e3, a4) { + r10 |= 0, e3 |= 0, a4 |= 0; + var i4, n3 = 0, f4 = 0, b4 = w3(0); + n3 = 2, b4 = p2[(e3 = l3[e3 >> 2] + (a4 << 2) | 0) + 80 >> 2]; r: { e: { - if ((0 | (e4 = l4[e4 + 80 >> 2])) != 2139156720) { - if (f6 = NaN, (0 | e4) == 2141891242) { - n4 = 3; + if ((0 | (e3 = l3[e3 + 80 >> 2])) != 2139156720) { + if (f4 = NaN, (0 | e3) == 2141891242) { + n3 = 3; break r; } - if ((0 | e4) != 2140081935) break e; - f6 = 0, n4 = 1; + if ((0 | e3) != 2140081935) break e; + f4 = 0, n3 = 1; } break r; } - if (b5 != b5) { - n4 = 0; + if (b4 != b4) { + n3 = 0; break r; } - n4 = 1073741824 & e4 ? 2 : 1, f6 = +(i5 = (-1073741825 & e4) + 536870912 | 0, t3[2] = i5, u5()); + n3 = 1073741824 & e3 ? 2 : 1, f4 = +(i4 = (-1073741825 & e3) + 536870912 | 0, t2[2] = i4, u3()); } - m4[r10 + 8 >> 3] = f6, l4[r10 >> 2] = n4; - }, function(r10, e4, a5) { - r10 |= 0, e4 |= 0, a5 |= 0; - var i5 = 0, n4 = 0; - return re3 = i5 = re3 - 16 | 0, n4 = l4[r10 >> 2], e4 = ((r10 = l4[r10 + 4 >> 2]) >> 1) + e4 | 0, 1 & r10 && (n4 = l4[n4 + l4[e4 >> 2] >> 2]), eY[0 | n4](i5, e4, a5), r10 = eo(16), e4 = l4[i5 + 12 >> 2], l4[r10 + 8 >> 2] = l4[i5 + 8 >> 2], l4[r10 + 12 >> 2] = e4, e4 = l4[i5 + 4 >> 2], l4[r10 >> 2] = l4[i5 >> 2], l4[r10 + 4 >> 2] = e4, re3 = i5 + 16 | 0, 0 | r10; + m3[r10 + 8 >> 3] = f4, l3[r10 >> 2] = n3; + }, function(r10, e3, a4) { + r10 |= 0, e3 |= 0, a4 |= 0; + var i4 = 0, n3 = 0; + return re3 = i4 = re3 - 16 | 0, n3 = l3[r10 >> 2], e3 = ((r10 = l3[r10 + 4 >> 2]) >> 1) + e3 | 0, 1 & r10 && (n3 = l3[n3 + l3[e3 >> 2] >> 2]), eY[0 | n3](i4, e3, a4), r10 = eo(16), e3 = l3[i4 + 12 >> 2], l3[r10 + 8 >> 2] = l3[i4 + 8 >> 2], l3[r10 + 12 >> 2] = e3, e3 = l3[i4 + 4 >> 2], l3[r10 >> 2] = l3[i4 >> 2], l3[r10 + 4 >> 2] = e3, re3 = i4 + 16 | 0, 0 | r10; }, function(r10) { - return l4[l4[(r10 |= 0) >> 2] + 24 >> 2] >>> 7 & 7; + return l3[l3[(r10 |= 0) >> 2] + 24 >> 2] >>> 7 & 7; }, function(r10) { - return l4[l4[(r10 |= 0) >> 2] + 24 >> 2] >>> 10 & 7; + return l3[l3[(r10 |= 0) >> 2] + 24 >> 2] >>> 10 & 7; }, function(r10) { - return l4[l4[(r10 |= 0) >> 2] + 24 >> 2] >>> 13 & 7; + return l3[l3[(r10 |= 0) >> 2] + 24 >> 2] >>> 13 & 7; }, function(r10) { - return l4[l4[(r10 |= 0) >> 2] + 24 >> 2] >>> 2 & 3; + return l3[l3[(r10 |= 0) >> 2] + 24 >> 2] >>> 2 & 3; }, function(r10) { - return l4[l4[(r10 |= 0) >> 2] + 24 >> 2] >>> 18 & 3; + return l3[l3[(r10 |= 0) >> 2] + 24 >> 2] >>> 18 & 3; }, function(r10) { - return l4[l4[(r10 |= 0) >> 2] + 24 >> 2] >>> 4 & 7; - }, function(r10, e4, a5) { - r10 |= 0, e4 |= 0, a5 |= 0; - var i5, n4 = 0, f6 = 0, b5 = w4(0); - n4 = 2, b5 = p3[(e4 = l4[e4 >> 2] + (a5 << 2) | 0) + 44 >> 2]; + return l3[l3[(r10 |= 0) >> 2] + 24 >> 2] >>> 4 & 7; + }, function(r10, e3, a4) { + r10 |= 0, e3 |= 0, a4 |= 0; + var i4, n3 = 0, f4 = 0, b4 = w3(0); + n3 = 2, b4 = p2[(e3 = l3[e3 >> 2] + (a4 << 2) | 0) + 44 >> 2]; r: { e: { - if ((0 | (e4 = l4[e4 + 44 >> 2])) != 2139156720) { - if (f6 = NaN, (0 | e4) == 2141891242) { - n4 = 3; + if ((0 | (e3 = l3[e3 + 44 >> 2])) != 2139156720) { + if (f4 = NaN, (0 | e3) == 2141891242) { + n3 = 3; break r; } - if ((0 | e4) != 2140081935) break e; - f6 = 0, n4 = 1; + if ((0 | e3) != 2140081935) break e; + f4 = 0, n3 = 1; } break r; } - if (b5 != b5) { - n4 = 0; + if (b4 != b4) { + n3 = 0; break r; } - n4 = 1073741824 & e4 ? 2 : 1, f6 = +(i5 = (-1073741825 & e4) + 536870912 | 0, t3[2] = i5, u5()); + n3 = 1073741824 & e3 ? 2 : 1, f4 = +(i4 = (-1073741825 & e3) + 536870912 | 0, t2[2] = i4, u3()); } - m4[r10 + 8 >> 3] = f6, l4[r10 >> 2] = n4; - }, function(r10, e4) { - r10 |= 0, e4 |= 0; - var a5, i5 = 0, n4 = w4(0), f6 = w4(0); - n4 = w4(NaN), f6 = p3[(e4 = l4[e4 >> 2]) + 40 >> 2], e4 = l4[e4 + 40 >> 2], i5 = 3; - r: if ((0 | e4) != 2141891242) { - if ((0 | e4) == 2140081935) { - n4 = w4(0), i5 = 1; + m3[r10 + 8 >> 3] = f4, l3[r10 >> 2] = n3; + }, function(r10, e3) { + r10 |= 0, e3 |= 0; + var a4, i4 = 0, n3 = w3(0), f4 = w3(0); + n3 = w3(NaN), f4 = p2[(e3 = l3[e3 >> 2]) + 40 >> 2], e3 = l3[e3 + 40 >> 2], i4 = 3; + r: if ((0 | e3) != 2141891242) { + if ((0 | e3) == 2140081935) { + n3 = w3(0), i4 = 1; break r; } - if ((0 | e4) == 2139156720) { - n4 = w4(0), i5 = 2; + if ((0 | e3) == 2139156720) { + n3 = w3(0), i4 = 2; break r; } - if (i5 = 0, f6 != f6) break r; - a5 = (-1073741825 & e4) + 536870912 | 0, t3[2] = a5, n4 = u5(), i5 = 1073741824 & e4 ? 2 : 1; + if (i4 = 0, f4 != f4) break r; + a4 = (-1073741825 & e3) + 536870912 | 0, t2[2] = a4, n3 = u3(), i4 = 1073741824 & e3 ? 2 : 1; } - l4[r10 >> 2] = i5, m4[r10 + 8 >> 3] = n4; - }, function(r10, e4) { - r10 |= 0, e4 |= 0; - var a5 = 0, i5 = 0; - return re3 = a5 = re3 - 16 | 0, i5 = l4[r10 >> 2], e4 = ((r10 = l4[r10 + 4 >> 2]) >> 1) + e4 | 0, 1 & r10 && (i5 = l4[i5 + l4[e4 >> 2] >> 2]), eY[0 | i5](a5, e4), r10 = eo(16), e4 = l4[a5 + 12 >> 2], l4[r10 + 8 >> 2] = l4[a5 + 8 >> 2], l4[r10 + 12 >> 2] = e4, e4 = l4[a5 + 4 >> 2], l4[r10 >> 2] = l4[a5 >> 2], l4[r10 + 4 >> 2] = e4, re3 = a5 + 16 | 0, 0 | r10; + l3[r10 >> 2] = i4, m3[r10 + 8 >> 3] = n3; + }, function(r10, e3) { + r10 |= 0, e3 |= 0; + var a4 = 0, i4 = 0; + return re3 = a4 = re3 - 16 | 0, i4 = l3[r10 >> 2], e3 = ((r10 = l3[r10 + 4 >> 2]) >> 1) + e3 | 0, 1 & r10 && (i4 = l3[i4 + l3[e3 >> 2] >> 2]), eY[0 | i4](a4, e3), r10 = eo(16), e3 = l3[a4 + 12 >> 2], l3[r10 + 8 >> 2] = l3[a4 + 8 >> 2], l3[r10 + 12 >> 2] = e3, e3 = l3[a4 + 4 >> 2], l3[r10 >> 2] = l3[a4 >> 2], l3[r10 + 4 >> 2] = e3, re3 = a4 + 16 | 0, 0 | r10; }, function(r10) { r10 |= 0; - var e4 = w4(0); - return +((e4 = p3[l4[r10 >> 2] + 32 >> 2]) == e4 ? e4 : w4(0)); - }, function(r10, e4) { - r10 |= 0, e4 |= 0; - var a5 = 0; - return a5 = l4[r10 >> 2], e4 = ((r10 = l4[r10 + 4 >> 2]) >> 1) + e4 | 0, 1 & r10 && (a5 = l4[a5 + l4[e4 >> 2] >> 2]), +eY[0 | a5](e4); + var e3 = w3(0); + return +((e3 = p2[l3[r10 >> 2] + 32 >> 2]) == e3 ? e3 : w3(0)); + }, function(r10, e3) { + r10 |= 0, e3 |= 0; + var a4 = 0; + return a4 = l3[r10 >> 2], e3 = ((r10 = l3[r10 + 4 >> 2]) >> 1) + e3 | 0, 1 & r10 && (a4 = l3[a4 + l3[e3 >> 2] >> 2]), +eY[0 | a4](e3); }, function(r10) { r10 |= 0; - var e4 = w4(0); - return (e4 = p3[(r10 = l4[r10 >> 2]) + 36 >> 2]) != e4 && (e4 = d4[l4[r10 + 568 >> 2] + 10 | 0] ? w4(1) : w4(0)), +e4; - }, function(r10, e4) { - r10 |= 0, e4 |= 0; - var a5, i5 = 0, n4 = 0, f6 = w4(0); - f6 = p3[(e4 = l4[e4 >> 2]) + 200 >> 2]; + var e3 = w3(0); + return (e3 = p2[(r10 = l3[r10 >> 2]) + 36 >> 2]) != e3 && (e3 = d3[l3[r10 + 568 >> 2] + 10 | 0] ? w3(1) : w3(0)), +e3; + }, function(r10, e3) { + r10 |= 0, e3 |= 0; + var a4, i4 = 0, n3 = 0, f4 = w3(0); + f4 = p2[(e3 = l3[e3 >> 2]) + 200 >> 2]; r: { e: { - if ((0 | (e4 = l4[e4 + 200 >> 2])) != 2139156720) { - if (n4 = NaN, i5 = 3, (0 | e4) == 2141891242) break r; - if ((0 | e4) != 2140081935) break e; - n4 = 0, i5 = 1; + if ((0 | (e3 = l3[e3 + 200 >> 2])) != 2139156720) { + if (n3 = NaN, i4 = 3, (0 | e3) == 2141891242) break r; + if ((0 | e3) != 2140081935) break e; + n3 = 0, i4 = 1; break r; } - i5 = 2; + i4 = 2; break r; } - if (i5 = 0, f6 != f6) break r; - n4 = +(a5 = (-1073741825 & e4) + 536870912 | 0, t3[2] = a5, u5()), i5 = 1073741824 & e4 ? 2 : 1; + if (i4 = 0, f4 != f4) break r; + n3 = +(a4 = (-1073741825 & e3) + 536870912 | 0, t2[2] = a4, u3()), i4 = 1073741824 & e3 ? 2 : 1; } - e4 = i5, m4[r10 + 8 >> 3] = n4, l4[r10 >> 2] = e4; - }, function(r10, e4) { - r10 |= 0, e4 |= 0; - var a5, i5 = 0, n4 = 0, f6 = w4(0); - f6 = p3[(e4 = l4[e4 >> 2]) + 204 >> 2]; + e3 = i4, m3[r10 + 8 >> 3] = n3, l3[r10 >> 2] = e3; + }, function(r10, e3) { + r10 |= 0, e3 |= 0; + var a4, i4 = 0, n3 = 0, f4 = w3(0); + f4 = p2[(e3 = l3[e3 >> 2]) + 204 >> 2]; r: { e: { - if ((0 | (e4 = l4[e4 + 204 >> 2])) != 2139156720) { - if (n4 = NaN, i5 = 3, (0 | e4) == 2141891242) break r; - if ((0 | e4) != 2140081935) break e; - n4 = 0, i5 = 1; + if ((0 | (e3 = l3[e3 + 204 >> 2])) != 2139156720) { + if (n3 = NaN, i4 = 3, (0 | e3) == 2141891242) break r; + if ((0 | e3) != 2140081935) break e; + n3 = 0, i4 = 1; break r; } - i5 = 2; + i4 = 2; break r; } - if (i5 = 0, f6 != f6) break r; - n4 = +(a5 = (-1073741825 & e4) + 536870912 | 0, t3[2] = a5, u5()), i5 = 1073741824 & e4 ? 2 : 1; + if (i4 = 0, f4 != f4) break r; + n3 = +(a4 = (-1073741825 & e3) + 536870912 | 0, t2[2] = a4, u3()), i4 = 1073741824 & e3 ? 2 : 1; } - e4 = i5, m4[r10 + 8 >> 3] = n4, l4[r10 >> 2] = e4; - }, function(r10, e4) { - r10 |= 0, e4 |= 0; - var a5, i5 = 0, n4 = 0, f6 = w4(0); - f6 = p3[(e4 = l4[e4 >> 2]) + 208 >> 2]; + e3 = i4, m3[r10 + 8 >> 3] = n3, l3[r10 >> 2] = e3; + }, function(r10, e3) { + r10 |= 0, e3 |= 0; + var a4, i4 = 0, n3 = 0, f4 = w3(0); + f4 = p2[(e3 = l3[e3 >> 2]) + 208 >> 2]; r: { e: { - if ((0 | (e4 = l4[e4 + 208 >> 2])) != 2139156720) { - if (n4 = NaN, i5 = 3, (0 | e4) == 2141891242) break r; - if ((0 | e4) != 2140081935) break e; - n4 = 0, i5 = 1; + if ((0 | (e3 = l3[e3 + 208 >> 2])) != 2139156720) { + if (n3 = NaN, i4 = 3, (0 | e3) == 2141891242) break r; + if ((0 | e3) != 2140081935) break e; + n3 = 0, i4 = 1; break r; } - i5 = 2; + i4 = 2; break r; } - if (i5 = 0, f6 != f6) break r; - n4 = +(a5 = (-1073741825 & e4) + 536870912 | 0, t3[2] = a5, u5()), i5 = 1073741824 & e4 ? 2 : 1; + if (i4 = 0, f4 != f4) break r; + n3 = +(a4 = (-1073741825 & e3) + 536870912 | 0, t2[2] = a4, u3()), i4 = 1073741824 & e3 ? 2 : 1; } - e4 = i5, m4[r10 + 8 >> 3] = n4, l4[r10 >> 2] = e4; - }, function(r10, e4) { - r10 |= 0, e4 |= 0; - var a5, i5 = 0, n4 = 0, f6 = w4(0); - f6 = p3[(e4 = l4[e4 >> 2]) + 212 >> 2]; + e3 = i4, m3[r10 + 8 >> 3] = n3, l3[r10 >> 2] = e3; + }, function(r10, e3) { + r10 |= 0, e3 |= 0; + var a4, i4 = 0, n3 = 0, f4 = w3(0); + f4 = p2[(e3 = l3[e3 >> 2]) + 212 >> 2]; r: { e: { - if ((0 | (e4 = l4[e4 + 212 >> 2])) != 2139156720) { - if (n4 = NaN, i5 = 3, (0 | e4) == 2141891242) break r; - if ((0 | e4) != 2140081935) break e; - n4 = 0, i5 = 1; + if ((0 | (e3 = l3[e3 + 212 >> 2])) != 2139156720) { + if (n3 = NaN, i4 = 3, (0 | e3) == 2141891242) break r; + if ((0 | e3) != 2140081935) break e; + n3 = 0, i4 = 1; break r; } - i5 = 2; + i4 = 2; break r; } - if (i5 = 0, f6 != f6) break r; - n4 = +(a5 = (-1073741825 & e4) + 536870912 | 0, t3[2] = a5, u5()), i5 = 1073741824 & e4 ? 2 : 1; + if (i4 = 0, f4 != f4) break r; + n3 = +(a4 = (-1073741825 & e3) + 536870912 | 0, t2[2] = a4, u3()), i4 = 1073741824 & e3 ? 2 : 1; } - e4 = i5, m4[r10 + 8 >> 3] = n4, l4[r10 >> 2] = e4; - }, function(r10, e4) { - r10 |= 0, e4 |= 0; - var a5, i5 = 0, n4 = 0, f6 = w4(0); - f6 = p3[(e4 = l4[e4 >> 2]) + 216 >> 2]; + e3 = i4, m3[r10 + 8 >> 3] = n3, l3[r10 >> 2] = e3; + }, function(r10, e3) { + r10 |= 0, e3 |= 0; + var a4, i4 = 0, n3 = 0, f4 = w3(0); + f4 = p2[(e3 = l3[e3 >> 2]) + 216 >> 2]; r: { e: { - if ((0 | (e4 = l4[e4 + 216 >> 2])) != 2139156720) { - if (n4 = NaN, i5 = 3, (0 | e4) == 2141891242) break r; - if ((0 | e4) != 2140081935) break e; - n4 = 0, i5 = 1; + if ((0 | (e3 = l3[e3 + 216 >> 2])) != 2139156720) { + if (n3 = NaN, i4 = 3, (0 | e3) == 2141891242) break r; + if ((0 | e3) != 2140081935) break e; + n3 = 0, i4 = 1; break r; } - i5 = 2; + i4 = 2; break r; } - if (i5 = 0, f6 != f6) break r; - n4 = +(a5 = (-1073741825 & e4) + 536870912 | 0, t3[2] = a5, u5()), i5 = 1073741824 & e4 ? 2 : 1; + if (i4 = 0, f4 != f4) break r; + n3 = +(a4 = (-1073741825 & e3) + 536870912 | 0, t2[2] = a4, u3()), i4 = 1073741824 & e3 ? 2 : 1; } - e4 = i5, m4[r10 + 8 >> 3] = n4, l4[r10 >> 2] = e4; - }, function(r10, e4) { - r10 |= 0, e4 |= 0; - var a5, i5 = 0, n4 = 0, f6 = w4(0); - f6 = p3[(e4 = l4[e4 >> 2]) + 220 >> 2]; + e3 = i4, m3[r10 + 8 >> 3] = n3, l3[r10 >> 2] = e3; + }, function(r10, e3) { + r10 |= 0, e3 |= 0; + var a4, i4 = 0, n3 = 0, f4 = w3(0); + f4 = p2[(e3 = l3[e3 >> 2]) + 220 >> 2]; r: { e: { - if ((0 | (e4 = l4[e4 + 220 >> 2])) != 2139156720) { - if (n4 = NaN, i5 = 3, (0 | e4) == 2141891242) break r; - if ((0 | e4) != 2140081935) break e; - n4 = 0, i5 = 1; + if ((0 | (e3 = l3[e3 + 220 >> 2])) != 2139156720) { + if (n3 = NaN, i4 = 3, (0 | e3) == 2141891242) break r; + if ((0 | e3) != 2140081935) break e; + n3 = 0, i4 = 1; break r; } - i5 = 2; + i4 = 2; break r; } - if (i5 = 0, f6 != f6) break r; - n4 = +(a5 = (-1073741825 & e4) + 536870912 | 0, t3[2] = a5, u5()), i5 = 1073741824 & e4 ? 2 : 1; + if (i4 = 0, f4 != f4) break r; + n3 = +(a4 = (-1073741825 & e3) + 536870912 | 0, t2[2] = a4, u3()), i4 = 1073741824 & e3 ? 2 : 1; } - e4 = i5, m4[r10 + 8 >> 3] = n4, l4[r10 >> 2] = e4; + e3 = i4, m3[r10 + 8 >> 3] = n3, l3[r10 >> 2] = e3; }, function(r10) { r10 |= 0; - var e4 = w4(0); - return +((e4 = p3[l4[r10 >> 2] + 224 >> 2]) != e4 ? w4(NaN) : e4); - }, function(r10, e4) { - r10 |= 0, e4 |= 0; - var a5, i5 = 0, n4 = w4(0); - n4 = p3[(r10 = l4[r10 >> 2] + (e4 << 2) | 0) + 152 >> 2]; + var e3 = w3(0); + return +((e3 = p2[l3[r10 >> 2] + 224 >> 2]) != e3 ? w3(NaN) : e3); + }, function(r10, e3) { + r10 |= 0, e3 |= 0; + var a4, i4 = 0, n3 = w3(0); + n3 = p2[(r10 = l3[r10 >> 2] + (e3 << 2) | 0) + 152 >> 2]; r: { - e: if (!((0 | (r10 = l4[r10 + 152 >> 2])) == 2139156720 | (0 | r10) == 2140081935)) { - if (i5 = NaN, (0 | r10) == 2141891242 | n4 != n4) break r; + e: if (!((0 | (r10 = l3[r10 + 152 >> 2])) == 2139156720 | (0 | r10) == 2140081935)) { + if (i4 = NaN, (0 | r10) == 2141891242 | n3 != n3) break r; if ((0 | r10) == 2139156720) break e; - return +(a5 = (-1073741825 & r10) + 536870912 | 0, t3[2] = a5, u5()); + return +(a4 = (-1073741825 & r10) + 536870912 | 0, t2[2] = a4, u3()); } - i5 = 0; + i4 = 0; } - return +i5; - }, function(r10, e4, a5) { - r10 |= 0, e4 |= 0, a5 |= 0; - var i5 = 0; - return i5 = l4[r10 >> 2], e4 = ((r10 = l4[r10 + 4 >> 2]) >> 1) + e4 | 0, 1 & r10 && (i5 = l4[i5 + l4[e4 >> 2] >> 2]), +eY[0 | i5](e4, a5); + return +i4; + }, function(r10, e3, a4) { + r10 |= 0, e3 |= 0, a4 |= 0; + var i4 = 0; + return i4 = l3[r10 >> 2], e3 = ((r10 = l3[r10 + 4 >> 2]) >> 1) + e3 | 0, 1 & r10 && (i4 = l3[i4 + l3[e3 >> 2] >> 2]), +eY[0 | i4](e3, a4); }, function(r10) { - return l4[l4[(r10 |= 0) >> 2] + 24 >> 2] >>> 20 & 3; + return l3[l3[(r10 |= 0) >> 2] + 24 >> 2] >>> 20 & 3; }, function(r10) { - return l4[l4[(r10 |= 0) >> 2] + 24 >> 2] >>> 22 & 1; - }, function(r10, e4, a5) { - r10 |= 0, e4 |= 0, a5 |= 0; - var i5, n4 = 0, f6 = 0, b5 = w4(0); - n4 = 2, b5 = p3[(e4 = l4[e4 >> 2] + (a5 << 2) | 0) + 116 >> 2]; + return l3[l3[(r10 |= 0) >> 2] + 24 >> 2] >>> 22 & 1; + }, function(r10, e3, a4) { + r10 |= 0, e3 |= 0, a4 |= 0; + var i4, n3 = 0, f4 = 0, b4 = w3(0); + n3 = 2, b4 = p2[(e3 = l3[e3 >> 2] + (a4 << 2) | 0) + 116 >> 2]; r: { e: { - if ((0 | (e4 = l4[e4 + 116 >> 2])) != 2139156720) { - if (f6 = NaN, (0 | e4) == 2141891242) { - n4 = 3; + if ((0 | (e3 = l3[e3 + 116 >> 2])) != 2139156720) { + if (f4 = NaN, (0 | e3) == 2141891242) { + n3 = 3; break r; } - if ((0 | e4) != 2140081935) break e; - f6 = 0, n4 = 1; + if ((0 | e3) != 2140081935) break e; + f4 = 0, n3 = 1; } break r; } - if (b5 != b5) { - n4 = 0; + if (b4 != b4) { + n3 = 0; break r; } - n4 = 1073741824 & e4 ? 2 : 1, f6 = +(i5 = (-1073741825 & e4) + 536870912 | 0, t3[2] = i5, u5()); + n3 = 1073741824 & e3 ? 2 : 1, f4 = +(i4 = (-1073741825 & e3) + 536870912 | 0, t2[2] = i4, u3()); } - m4[r10 + 8 >> 3] = f6, l4[r10 >> 2] = n4; - }, function(r10, e4) { - r10 |= 0, e4 |= 0; - var a5, i5 = w4(0), n4 = w4(0); - n4 = p3[(r10 = l4[r10 >> 2] + (e4 << 2) | 0) + 188 >> 2]; + m3[r10 + 8 >> 3] = f4, l3[r10 >> 2] = n3; + }, function(r10, e3) { + r10 |= 0, e3 |= 0; + var a4, i4 = w3(0), n3 = w3(0); + n3 = p2[(r10 = l3[r10 >> 2] + (e3 << 2) | 0) + 188 >> 2]; r: { - e: if (!((0 | (r10 = l4[r10 + 188 >> 2])) == 2139156720 | (0 | r10) == 2140081935)) { - if (i5 = w4(NaN), (0 | r10) == 2141891242 | n4 != n4) break r; + e: if (!((0 | (r10 = l3[r10 + 188 >> 2])) == 2139156720 | (0 | r10) == 2140081935)) { + if (i4 = w3(NaN), (0 | r10) == 2141891242 | n3 != n3) break r; if ((0 | r10) == 2139156720) break e; - return w4((a5 = (-1073741825 & r10) + 536870912 | 0, t3[2] = a5, u5())); + return w3((a4 = (-1073741825 & r10) + 536870912 | 0, t2[2] = a4, u3())); } - i5 = w4(0); + i4 = w3(0); } - return w4(i5); - }, function(r10, e4, a5) { - r10 |= 0, e4 |= 0, a5 |= 0; - var i5 = 0; - return i5 = l4[r10 >> 2], e4 = ((r10 = l4[r10 + 4 >> 2]) >> 1) + e4 | 0, 1 & r10 && (i5 = l4[i5 + l4[e4 >> 2] >> 2]), w4(w4(eY[0 | i5](e4, a5))); - }, function(r10, e4, a5) { - r10 |= 0, e4 |= 0, a5 |= 0; - var i5 = 0, n4 = 0, f6 = 0, t4 = 0, b5 = 0, o4 = 0, c5 = 0, u6 = 0, A4 = 0, h5 = 0; - re3 = b5 = re3 - 80 | 0, r10 = l4[r10 >> 2]; + return w3(i4); + }, function(r10, e3, a4) { + r10 |= 0, e3 |= 0, a4 |= 0; + var i4 = 0; + return i4 = l3[r10 >> 2], e3 = ((r10 = l3[r10 + 4 >> 2]) >> 1) + e3 | 0, 1 & r10 && (i4 = l3[i4 + l3[e3 >> 2] >> 2]), w3(w3(eY[0 | i4](e3, a4))); + }, function(r10, e3, a4) { + r10 |= 0, e3 |= 0, a4 |= 0; + var i4 = 0, n3 = 0, f4 = 0, t3 = 0, b4 = 0, o3 = 0, c4 = 0, u4 = 0, A3 = 0, h5 = 0; + re3 = b4 = re3 - 80 | 0, r10 = l3[r10 >> 2]; r: { e: { - if (o4 = l4[e4 >> 2], !l4[o4 + 552 >> 2]) { - if (l4[r10 + 8 >> 2]) break e; - t4 = (e4 = l4[r10 + 556 >> 2]) + (a5 << 2) | 0, i5 = l4[r10 + 560 >> 2], f6 = l4[(n4 = r10 + 564 | 0) >> 2]; + if (o3 = l3[e3 >> 2], !l3[o3 + 552 >> 2]) { + if (l3[r10 + 8 >> 2]) break e; + t3 = (e3 = l3[r10 + 556 >> 2]) + (a4 << 2) | 0, i4 = l3[r10 + 560 >> 2], f4 = l3[(n3 = r10 + 564 | 0) >> 2]; a: { - if (i5 >>> 0 < f6 >>> 0) { - if ((0 | i5) == (0 | t4)) { - l4[t4 >> 2] = o4, l4[r10 + 560 >> 2] = t4 + 4; + if (i4 >>> 0 < f4 >>> 0) { + if ((0 | i4) == (0 | t3)) { + l3[t3 >> 2] = o3, l3[r10 + 560 >> 2] = t3 + 4; break a; } - if (a5 = i5, e4 = i5 - 4 | 0, i5 >>> 0 > e4 >>> 0) for (; l4[a5 >> 2] = l4[e4 >> 2], a5 = a5 + 4 | 0, i5 >>> 0 > (e4 = e4 + 4 | 0) >>> 0; ) ; - l4[r10 + 560 >> 2] = a5, (0 | (e4 = t4 + 4 | 0)) != (0 | i5) && (e4 = i5 - e4 | 0, rm2(i5 - (-4 & e4) | 0, t4, e4)), l4[t4 >> 2] = o4; + if (a4 = i4, e3 = i4 - 4 | 0, i4 >>> 0 > e3 >>> 0) for (; l3[a4 >> 2] = l3[e3 >> 2], a4 = a4 + 4 | 0, i4 >>> 0 > (e3 = e3 + 4 | 0) >>> 0; ) ; + l3[r10 + 560 >> 2] = a4, (0 | (e3 = t3 + 4 | 0)) != (0 | i4) && (e3 = i4 - e3 | 0, rm2(i4 - (-4 & e3) | 0, t3, e3)), l3[t3 >> 2] = o3; break a; } - if ((i5 = (i5 - e4 >> 2) + 1 | 0) >>> 0 >= 1073741824) break r; - f6 = (e4 = f6 - e4 | 0) >>> 1 | 0, a5 = l4[(n4 = en(b5 + 32 | 0, e4 >>> 0 >= 2147483644 ? 1073741823 : i5 >>> 0 < f6 >>> 0 ? f6 : i5, a5, n4)) + 8 >> 2]; - i: if ((0 | a5) == l4[n4 + 12 >> 2]) { - if (e4 = l4[n4 + 4 >> 2], i5 = l4[n4 >> 2], e4 >>> 0 > i5 >>> 0) { - a5 = rm2(c5 = (i5 = -(((e4 - i5 >> 2) + 1 | 0) / 2) << 2) + e4 | 0, f6 = e4, e4 = a5 - e4 | 0) + e4 | 0, l4[n4 + 8 >> 2] = a5, l4[n4 + 4 >> 2] = i5 + l4[n4 + 4 >> 2]; + if ((i4 = (i4 - e3 >> 2) + 1 | 0) >>> 0 >= 1073741824) break r; + f4 = (e3 = f4 - e3 | 0) >>> 1 | 0, a4 = l3[(n3 = en(b4 + 32 | 0, e3 >>> 0 >= 2147483644 ? 1073741823 : i4 >>> 0 < f4 >>> 0 ? f4 : i4, a4, n3)) + 8 >> 2]; + i: if ((0 | a4) == l3[n3 + 12 >> 2]) { + if (e3 = l3[n3 + 4 >> 2], i4 = l3[n3 >> 2], e3 >>> 0 > i4 >>> 0) { + a4 = rm2(c4 = (i4 = -(((e3 - i4 >> 2) + 1 | 0) / 2) << 2) + e3 | 0, f4 = e3, e3 = a4 - e3 | 0) + e3 | 0, l3[n3 + 8 >> 2] = a4, l3[n3 + 4 >> 2] = i4 + l3[n3 + 4 >> 2]; break i; } - f6 = en(b5 + 56 | 0, e4 = (0 | a5) == (0 | i5) ? 1 : a5 - i5 >> 1, e4 >>> 2 | 0, l4[n4 + 16 >> 2]), i5 = l4[f6 + 8 >> 2], e4 = l4[n4 + 4 >> 2], a5 = l4[n4 + 8 >> 2]; + f4 = en(b4 + 56 | 0, e3 = (0 | a4) == (0 | i4) ? 1 : a4 - i4 >> 1, e3 >>> 2 | 0, l3[n3 + 16 >> 2]), i4 = l3[f4 + 8 >> 2], e3 = l3[n3 + 4 >> 2], a4 = l3[n3 + 8 >> 2]; n: { - if ((0 | e4) == (0 | a5)) { - a5 = i5, i5 = e4; + if ((0 | e3) == (0 | a4)) { + a4 = i4, i4 = e3; break n; } - for (a5 = (a5 - e4 | 0) + i5 | 0; l4[i5 >> 2] = l4[e4 >> 2], e4 = e4 + 4 | 0, (0 | (i5 = i5 + 4 | 0)) != (0 | a5); ) ; - e4 = l4[n4 + 8 >> 2], i5 = l4[n4 + 4 >> 2]; + for (a4 = (a4 - e3 | 0) + i4 | 0; l3[i4 >> 2] = l3[e3 >> 2], e3 = e3 + 4 | 0, (0 | (i4 = i4 + 4 | 0)) != (0 | a4); ) ; + e3 = l3[n3 + 8 >> 2], i4 = l3[n3 + 4 >> 2]; } - if (c5 = l4[n4 >> 2], l4[n4 >> 2] = l4[f6 >> 2], l4[f6 >> 2] = c5, l4[n4 + 4 >> 2] = l4[f6 + 4 >> 2], l4[f6 + 4 >> 2] = i5, l4[n4 + 8 >> 2] = a5, l4[f6 + 8 >> 2] = e4, u6 = l4[n4 + 12 >> 2], l4[n4 + 12 >> 2] = l4[f6 + 12 >> 2], l4[f6 + 12 >> 2] = u6, (0 | e4) != (0 | i5) && (l4[f6 + 8 >> 2] = ((i5 - e4 | 0) + 3 & -4) + e4), !c5) break i; - rE2(c5), a5 = l4[n4 + 8 >> 2]; + if (c4 = l3[n3 >> 2], l3[n3 >> 2] = l3[f4 >> 2], l3[f4 >> 2] = c4, l3[n3 + 4 >> 2] = l3[f4 + 4 >> 2], l3[f4 + 4 >> 2] = i4, l3[n3 + 8 >> 2] = a4, l3[f4 + 8 >> 2] = e3, u4 = l3[n3 + 12 >> 2], l3[n3 + 12 >> 2] = l3[f4 + 12 >> 2], l3[f4 + 12 >> 2] = u4, (0 | e3) != (0 | i4) && (l3[f4 + 8 >> 2] = ((i4 - e3 | 0) + 3 & -4) + e3), !c4) break i; + rE2(c4), a4 = l3[n3 + 8 >> 2]; } - if (l4[a5 >> 2] = o4, l4[n4 + 8 >> 2] = l4[n4 + 8 >> 2] + 4, e4 = l4[r10 + 556 >> 2], a5 = t4 - e4 | 0, A4 = n4, h5 = rm2(l4[n4 + 4 >> 2] - a5 | 0, e4, a5), l4[A4 + 4 >> 2] = h5, i5 = l4[r10 + 560 >> 2] - t4 | 0, t4 = rm2(l4[n4 + 8 >> 2], t4, i5), e4 = l4[r10 + 556 >> 2], l4[r10 + 556 >> 2] = l4[n4 + 4 >> 2], l4[n4 + 4 >> 2] = e4, a5 = l4[r10 + 560 >> 2], l4[r10 + 560 >> 2] = i5 + t4, l4[n4 + 8 >> 2] = a5, i5 = l4[r10 + 564 >> 2], l4[r10 + 564 >> 2] = l4[n4 + 12 >> 2], l4[n4 >> 2] = e4, l4[n4 + 12 >> 2] = i5, (0 | e4) != (0 | a5) && (l4[n4 + 8 >> 2] = a5 + ((e4 - a5 | 0) + 3 & -4)), !e4) break a; - rE2(e4); + if (l3[a4 >> 2] = o3, l3[n3 + 8 >> 2] = l3[n3 + 8 >> 2] + 4, e3 = l3[r10 + 556 >> 2], a4 = t3 - e3 | 0, A3 = n3, h5 = rm2(l3[n3 + 4 >> 2] - a4 | 0, e3, a4), l3[A3 + 4 >> 2] = h5, i4 = l3[r10 + 560 >> 2] - t3 | 0, t3 = rm2(l3[n3 + 8 >> 2], t3, i4), e3 = l3[r10 + 556 >> 2], l3[r10 + 556 >> 2] = l3[n3 + 4 >> 2], l3[n3 + 4 >> 2] = e3, a4 = l3[r10 + 560 >> 2], l3[r10 + 560 >> 2] = i4 + t3, l3[n3 + 8 >> 2] = a4, i4 = l3[r10 + 564 >> 2], l3[r10 + 564 >> 2] = l3[n3 + 12 >> 2], l3[n3 >> 2] = e3, l3[n3 + 12 >> 2] = i4, (0 | e3) != (0 | a4) && (l3[n3 + 8 >> 2] = a4 + ((e3 - a4 | 0) + 3 & -4)), !e3) break a; + rE2(e3); } - for (l4[o4 + 552 >> 2] = r10; !(4 & (e4 = d4[r10 + 4 | 0])) && (s3[r10 + 4 | 0] = 4 | e4, (e4 = l4[r10 + 20 >> 2]) && eY[0 | e4](r10), l4[r10 + 308 >> 2] = 2143289344, r10 = l4[r10 + 552 >> 2]); ) ; - re3 = b5 + 80 | 0; + for (l3[o3 + 552 >> 2] = r10; !(4 & (e3 = d3[r10 + 4 | 0])) && (s2[r10 + 4 | 0] = 4 | e3, (e3 = l3[r10 + 20 >> 2]) && eY[0 | e3](r10), l3[r10 + 308 >> 2] = 2143289344, r10 = l3[r10 + 552 >> 2]); ) ; + re3 = b4 + 80 | 0; return; } - l4[b5 + 16 >> 2] = 4006, rB2(r10, b5 + 16 | 0), eX(), k4(); + l3[b4 + 16 >> 2] = 4006, rB2(r10, b4 + 16 | 0), eX(), k3(); } - l4[b5 >> 2] = 4139, rB2(r10, b5), eX(), k4(); + l3[b4 >> 2] = 4139, rB2(r10, b4), eX(), k3(); } - T3(), k4(); - }, et2, function(r10, e4) { - r10 |= 0, e4 |= 0; - var a5 = 0, i5 = 0, n4 = 0, f6 = 0; - re3 = n4 = re3 - 320 | 0, r10 = l4[r10 >> 2]; - r: if (l4[r10 + 560 >> 2] != l4[r10 + 556 >> 2]) { - if (i5 = l4[e4 >> 2], e4 = l4[i5 + 552 >> 2], !rq2(r10, i5)) break r; - if ((0 | r10) == (0 | e4)) { - for (l4[(e4 = a5 = ry2(n4, 0, 288)) + 16 >> 2] = 2143289344, l4[e4 + 20 >> 2] = 2143289344, ry2(e4 + 24 | 0, 0, 49), l4[e4 + 80 >> 2] = 2143289344, f6 = e4 + 288 | 0, e4 = e4 + 96 | 0; l4[e4 + 16 >> 2] = -1082130432, l4[e4 + 20 >> 2] = -1082130432, l4[e4 + 8 >> 2] = 0, l4[e4 + 12 >> 2] = 0, l4[e4 >> 2] = -1082130432, l4[e4 + 4 >> 2] = -1082130432, (0 | f6) != (0 | (e4 = e4 + 24 | 0)); ) ; - l4[a5 + 312 >> 2] = -1082130432, l4[a5 + 316 >> 2] = -1082130432, l4[a5 + 304 >> 2] = 0, l4[a5 + 308 >> 2] = 0, l4[a5 + 296 >> 2] = -1082130432, l4[a5 + 300 >> 2] = -1082130432, l4[a5 + 288 >> 2] = 2143289344, l4[a5 + 292 >> 2] = 2143289344, ru3(i5 + 228 | 0, a5, 320), l4[i5 + 552 >> 2] = 0; + T2(), k3(); + }, et2, function(r10, e3) { + r10 |= 0, e3 |= 0; + var a4 = 0, i4 = 0, n3 = 0, f4 = 0; + re3 = n3 = re3 - 320 | 0, r10 = l3[r10 >> 2]; + r: if (l3[r10 + 560 >> 2] != l3[r10 + 556 >> 2]) { + if (i4 = l3[e3 >> 2], e3 = l3[i4 + 552 >> 2], !rq2(r10, i4)) break r; + if ((0 | r10) == (0 | e3)) { + for (l3[(e3 = a4 = ry2(n3, 0, 288)) + 16 >> 2] = 2143289344, l3[e3 + 20 >> 2] = 2143289344, ry2(e3 + 24 | 0, 0, 49), l3[e3 + 80 >> 2] = 2143289344, f4 = e3 + 288 | 0, e3 = e3 + 96 | 0; l3[e3 + 16 >> 2] = -1082130432, l3[e3 + 20 >> 2] = -1082130432, l3[e3 + 8 >> 2] = 0, l3[e3 + 12 >> 2] = 0, l3[e3 >> 2] = -1082130432, l3[e3 + 4 >> 2] = -1082130432, (0 | f4) != (0 | (e3 = e3 + 24 | 0)); ) ; + l3[a4 + 312 >> 2] = -1082130432, l3[a4 + 316 >> 2] = -1082130432, l3[a4 + 304 >> 2] = 0, l3[a4 + 308 >> 2] = 0, l3[a4 + 296 >> 2] = -1082130432, l3[a4 + 300 >> 2] = -1082130432, l3[a4 + 288 >> 2] = 2143289344, l3[a4 + 292 >> 2] = 2143289344, ru3(i4 + 228 | 0, a4, 320), l3[i4 + 552 >> 2] = 0; } for (; ; ) { - if (4 & (e4 = d4[r10 + 4 | 0])) break r; - if (s3[r10 + 4 | 0] = 4 | e4, (e4 = l4[r10 + 20 >> 2]) && eY[0 | e4](r10), l4[r10 + 308 >> 2] = 2143289344, !(r10 = l4[r10 + 552 >> 2])) break; + if (4 & (e3 = d3[r10 + 4 | 0])) break r; + if (s2[r10 + 4 | 0] = 4 | e3, (e3 = l3[r10 + 20 >> 2]) && eY[0 | e3](r10), l3[r10 + 308 >> 2] = 2143289344, !(r10 = l3[r10 + 552 >> 2])) break; } } - re3 = n4 + 320 | 0; + re3 = n3 + 320 | 0; }, ek, function(r10) { - return r10 |= 0, r10 = l4[r10 >> 2], l4[r10 + 560 >> 2] - l4[r10 + 556 >> 2] >> 2; + return r10 |= 0, r10 = l3[r10 >> 2], l3[r10 + 560 >> 2] - l3[r10 + 556 >> 2] >> 2; }, ec2, function(r10) { - return (r10 |= 0, r10 = l4[l4[r10 >> 2] + 552 >> 2]) ? l4[r10 >> 2] : 0; - }, ec2, function(r10, e4) { - r10 |= 0, e4 |= 0; - var a5 = 0, i5 = 0; - a5 = l4[r10 >> 2], r10 = l4[a5 + 556 >> 2]; - !(l4[a5 + 560 >> 2] - r10 >> 2 >>> 0 <= e4 >>> 0) && (r10 = l4[r10 + (e4 << 2) >> 2]) && (i5 = l4[r10 >> 2]); - return 0 | i5; + return (r10 |= 0, r10 = l3[l3[r10 >> 2] + 552 >> 2]) ? l3[r10 >> 2] : 0; + }, ec2, function(r10, e3) { + r10 |= 0, e3 |= 0; + var a4 = 0, i4 = 0; + a4 = l3[r10 >> 2], r10 = l3[a4 + 556 >> 2]; + !(l3[a4 + 560 >> 2] - r10 >> 2 >>> 0 <= e3 >>> 0) && (r10 = l3[r10 + (e3 << 2) >> 2]) && (i4 = l3[r10 >> 2]); + return 0 | i4; }, eb, function(r10) { - return (2 & d4[l4[(r10 |= 0) >> 2] + 4 | 0]) >>> 1 | 0; - }, ec2, function(r10, e4) { - r10 |= 0, e4 |= 0; - var a5 = 0; - r: if (((2 & (a5 = d4[(r10 = l4[r10 >> 2]) + 4 | 0])) >>> 1 | 0) != (0 | e4)) for (s3[r10 + 4 | 0] = 253 & a5 | (e4 ? 2 : 0); ; ) { - if (4 & (e4 = d4[r10 + 4 | 0])) break r; - if (s3[r10 + 4 | 0] = 4 | e4, (e4 = l4[r10 + 20 >> 2]) && eY[0 | e4](r10), l4[r10 + 308 >> 2] = 2143289344, !(r10 = l4[r10 + 552 >> 2])) break; + return (2 & d3[l3[(r10 |= 0) >> 2] + 4 | 0]) >>> 1 | 0; + }, ec2, function(r10, e3) { + r10 |= 0, e3 |= 0; + var a4 = 0; + r: if (((2 & (a4 = d3[(r10 = l3[r10 >> 2]) + 4 | 0])) >>> 1 | 0) != (0 | e3)) for (s2[r10 + 4 | 0] = 253 & a4 | (e3 ? 2 : 0); ; ) { + if (4 & (e3 = d3[r10 + 4 | 0])) break r; + if (s2[r10 + 4 | 0] = 4 | e3, (e3 = l3[r10 + 20 >> 2]) && eY[0 | e3](r10), l3[r10 + 308 >> 2] = 2143289344, !(r10 = l3[r10 + 552 >> 2])) break; } - }, ek, function(r10, e4) { - r10 |= 0, e4 |= 0; - var a5 = 0; - a5 = l4[r10 + 4 >> 2], l4[r10 + 4 >> 2] = e4, a5 && eY[l4[l4[a5 >> 2] + 4 >> 2]](a5), r7(l4[r10 >> 2], 14); + }, ek, function(r10, e3) { + r10 |= 0, e3 |= 0; + var a4 = 0; + a4 = l3[r10 + 4 >> 2], l3[r10 + 4 >> 2] = e3, a4 && eY[l3[l3[a4 >> 2] + 4 >> 2]](a4), r7(l3[r10 >> 2], 14); }, ek, function(r10) { r10 |= 0; - var e4 = 0; - e4 = l4[r10 + 4 >> 2], l4[r10 + 4 >> 2] = 0, e4 && eY[l4[l4[e4 >> 2] + 4 >> 2]](e4), r7(l4[r10 >> 2], 0); - }, function(r10, e4) { - r10 |= 0, e4 |= 0; - var a5 = 0; - a5 = l4[r10 + 8 >> 2], l4[r10 + 8 >> 2] = e4, a5 && eY[l4[l4[a5 >> 2] + 4 >> 2]](a5), l4[l4[r10 >> 2] + 20 >> 2] = 15; + var e3 = 0; + e3 = l3[r10 + 4 >> 2], l3[r10 + 4 >> 2] = 0, e3 && eY[l3[l3[e3 >> 2] + 4 >> 2]](e3), r7(l3[r10 >> 2], 0); + }, function(r10, e3) { + r10 |= 0, e3 |= 0; + var a4 = 0; + a4 = l3[r10 + 8 >> 2], l3[r10 + 8 >> 2] = e3, a4 && eY[l3[l3[a4 >> 2] + 4 >> 2]](a4), l3[l3[r10 >> 2] + 20 >> 2] = 15; }, ek, function(r10) { r10 |= 0; - var e4 = 0; - e4 = l4[r10 + 8 >> 2], l4[r10 + 8 >> 2] = 0, e4 && eY[l4[l4[e4 >> 2] + 4 >> 2]](e4), l4[l4[r10 >> 2] + 20 >> 2] = 0; + var e3 = 0; + e3 = l3[r10 + 8 >> 2], l3[r10 + 8 >> 2] = 0, e3 && eY[l3[l3[e3 >> 2] + 4 >> 2]](e3), l3[l3[r10 >> 2] + 20 >> 2] = 0; }, function(r10) { r10 |= 0; - var e4 = 0, a5 = 0; - if (re3 = a5 = re3 - 16 | 0, r10 = l4[r10 >> 2], l4[r10 + 8 >> 2]) { - for (; !(4 & (e4 = d4[r10 + 4 | 0])) && (s3[r10 + 4 | 0] = 4 | e4, (e4 = l4[r10 + 20 >> 2]) && eY[0 | e4](r10), l4[r10 + 308 >> 2] = 2143289344, r10 = l4[r10 + 552 >> 2]); ) ; - re3 = a5 + 16 | 0; + var e3 = 0, a4 = 0; + if (re3 = a4 = re3 - 16 | 0, r10 = l3[r10 >> 2], l3[r10 + 8 >> 2]) { + for (; !(4 & (e3 = d3[r10 + 4 | 0])) && (s2[r10 + 4 | 0] = 4 | e3, (e3 = l3[r10 + 20 >> 2]) && eY[0 | e3](r10), l3[r10 + 308 >> 2] = 2143289344, r10 = l3[r10 + 552 >> 2]); ) ; + re3 = a4 + 16 | 0; return; } - l4[a5 >> 2] = 1024, rB2(r10, a5), eX(), k4(); + l3[a4 >> 2] = 1024, rB2(r10, a4), eX(), k3(); }, function(r10) { - return (4 & d4[l4[(r10 |= 0) >> 2] + 4 | 0]) >>> 2 | 0; - }, ec2, function(r10, e4, a5, i5) { - r10 |= 0, e4 = +e4, a5 = +a5, i5 |= 0; - var n4, f6, b5, o4, k5 = w4(0), c5 = w4(0), s4 = 0, A4 = w4(0), h5 = 0, v5 = w4(0), m5 = 0, N4 = w4(0), E5 = 0; - re3 = E5 = re3 + -64 | 0, s4 = l4[r10 >> 2], ry2(E5 + 8 | 0, 0, 56), l4[1735] = l4[1735] + 1, rc2(s4), A4 = w4(e4), c5 = p3[s4 + 572 >> 2]; + return (4 & d3[l3[(r10 |= 0) >> 2] + 4 | 0]) >>> 2 | 0; + }, ec2, function(r10, e3, a4, i4) { + r10 |= 0, e3 = +e3, a4 = +a4, i4 |= 0; + var n3, f4, b4, o3, k4 = w3(0), c4 = w3(0), s3 = 0, A3 = w3(0), h5 = 0, v4 = w3(0), m4 = 0, N3 = w3(0), E4 = 0; + re3 = E4 = re3 + -64 | 0, s3 = l3[r10 >> 2], ry2(E4 + 8 | 0, 0, 56), l3[1735] = l3[1735] + 1, rc2(s3), A3 = w3(e3), c4 = p2[s3 + 572 >> 2]; r: { e: { - a: switch (0 | (r10 = l4[s4 + 576 >> 2])) { + a: switch (0 | (r10 = l3[s3 + 576 >> 2])) { case 0: case 3: break e; default: break a; } - k5 = p3[s4 + 572 >> 2]; + k4 = p2[s3 + 572 >> 2]; i: { - if (!((0 | r10) != 1 | k5 != k5)) { - if (!((k5 = c5) < w4(0))) break i; + if (!((0 | r10) != 1 | k4 != k4)) { + if (!((k4 = c4) < w3(0))) break i; break e; } n: { - if (!((0 | r10) != 2 | k5 != k5)) { - if (A4 != A4 | c5 < w4(0)) break e; + if (!((0 | r10) != 2 | k4 != k4)) { + if (A3 != A3 | c4 < w3(0)) break e; break n; } - k5 = w4(NaN); + k4 = w3(NaN); f: switch (r10 - 1 | 0) { case 1: break n; @@ -7179,28 +7180,28 @@ var init_asm = __esm({ default: break i; } - k5 = c5; + k4 = c4; break i; } - k5 = w4(w4(c5 * A4) * w4(0.009999999776482582)); + k4 = w3(w3(c4 * A3) * w3(0.009999999776482582)); } - N4 = w4(k5 + w4(rP2(s4, 2, A4) + rS2(s4, 2, A4))), m5 = 1; + N3 = w3(k4 + w3(rP2(s3, 2, A3) + rS2(s3, 2, A3))), m4 = 1; break r; } - k5 = w4(0), c5 = p3[s4 + 216 >> 2]; + k4 = w3(0), c4 = p2[s3 + 216 >> 2]; t: { b: { - r10 = l4[s4 + 216 >> 2]; + r10 = l3[s3 + 216 >> 2]; o: { k: if ((0 | r10) != 2139156720) { if ((0 | r10) == 2140081935) break t; - m5 = 4276; + m4 = 4276; c: { if ((0 | r10) != 2141891242) { - if (c5 == c5) break c; - m5 = 4268; + if (c4 == c4) break c; + m4 = 4268; } - switch (k5 = p3[m5 >> 2], l4[m5 + 4 >> 2] - 1 | 0) { + switch (k4 = p2[m4 >> 2], l3[m4 + 4 >> 2] - 1 | 0) { case 0: break o; case 1: @@ -7209,21 +7210,21 @@ var init_asm = __esm({ break b; } } - if (n4 = (-1073741825 & r10) + 536870912 | 0, t3[2] = n4, k5 = u5(), !(1073741824 & r10)) break o; + if (n3 = (-1073741825 & r10) + 536870912 | 0, t2[2] = n3, k4 = u3(), !(1073741824 & r10)) break o; } - k5 = w4(w4(k5 * A4) * w4(0.009999999776482582)); + k4 = w3(w3(k4 * A3) * w3(0.009999999776482582)); } - if (k5 != k5) break b; - k5 = w4(0); + if (k4 != k4) break b; + k4 = w3(0); u: if ((0 | r10) != 2139156720) { if ((0 | r10) == 2140081935) break t; h5 = 4276; s: { if ((0 | r10) != 2141891242) { - if (c5 == c5) break s; + if (c4 == c4) break s; h5 = 4268; } - switch (k5 = p3[h5 >> 2], N4 = w4(NaN), m5 = 2, l4[h5 + 4 >> 2] - 1 | 0) { + switch (k4 = p2[h5 >> 2], N3 = w3(NaN), m4 = 2, l3[h5 + 4 >> 2] - 1 | 0) { case 1: break u; case 0: @@ -7232,38 +7233,38 @@ var init_asm = __esm({ break r; } } - if (f6 = (-1073741825 & r10) + 536870912 | 0, t3[2] = f6, k5 = u5(), !(1073741824 & r10)) break t; + if (f4 = (-1073741825 & r10) + 536870912 | 0, t2[2] = f4, k4 = u3(), !(1073741824 & r10)) break t; } - N4 = w4(w4(k5 * A4) * w4(0.009999999776482582)), m5 = 2; + N3 = w3(w3(k4 * A3) * w3(0.009999999776482582)), m4 = 2; break r; } - m5 = A4 == A4, N4 = A4; + m4 = A3 == A3, N3 = A3; break r; } - m5 = 2, N4 = k5; + m4 = 2, N3 = k4; } - v5 = w4(a5), c5 = p3[s4 + 580 >> 2]; + v4 = w3(a4), c4 = p2[s3 + 580 >> 2]; A: { l: { - d: switch (0 | (r10 = l4[s4 + 584 >> 2])) { + d: switch (0 | (r10 = l3[s3 + 584 >> 2])) { case 0: case 3: break l; default: break d; } - k5 = p3[s4 + 580 >> 2]; + k4 = p2[s3 + 580 >> 2]; h: { - if (!((0 | r10) != 1 | k5 != k5)) { - if (!((k5 = c5) < w4(0))) break h; + if (!((0 | r10) != 1 | k4 != k4)) { + if (!((k4 = c4) < w3(0))) break h; break l; } v: { - if (!((0 | r10) != 2 | k5 != k5)) { - if (v5 != v5 | c5 < w4(0)) break l; + if (!((0 | r10) != 2 | k4 != k4)) { + if (v4 != v4 | c4 < w3(0)) break l; break v; } - k5 = w4(NaN); + k4 = w3(NaN); p: switch (r10 - 1 | 0) { case 1: break v; @@ -7272,28 +7273,28 @@ var init_asm = __esm({ default: break h; } - k5 = c5; + k4 = c4; break h; } - k5 = w4(w4(c5 * v5) * w4(0.009999999776482582)); + k4 = w3(w3(c4 * v4) * w3(0.009999999776482582)); } - c5 = w4(k5 + w4(rP2(s4, 0, A4) + rS2(s4, 0, A4))), r10 = 1; + c4 = w3(k4 + w3(rP2(s3, 0, A3) + rS2(s3, 0, A3))), r10 = 1; break A; } - k5 = w4(0), c5 = p3[s4 + 220 >> 2]; + k4 = w3(0), c4 = p2[s3 + 220 >> 2]; m: { N: { - r10 = l4[s4 + 220 >> 2]; + r10 = l3[s3 + 220 >> 2]; w: { y: if ((0 | r10) != 2139156720) { if ((0 | r10) == 2140081935) break m; h5 = 4276; E: { if ((0 | r10) != 2141891242) { - if (c5 == c5) break E; + if (c4 == c4) break E; h5 = 4268; } - switch (k5 = p3[h5 >> 2], l4[h5 + 4 >> 2] - 1 | 0) { + switch (k4 = p2[h5 >> 2], l3[h5 + 4 >> 2] - 1 | 0) { case 0: break w; case 1: @@ -7302,21 +7303,21 @@ var init_asm = __esm({ break N; } } - if (b5 = (-1073741825 & r10) + 536870912 | 0, t3[2] = b5, k5 = u5(), !(1073741824 & r10)) break w; + if (b4 = (-1073741825 & r10) + 536870912 | 0, t2[2] = b4, k4 = u3(), !(1073741824 & r10)) break w; } - k5 = w4(w4(k5 * v5) * w4(0.009999999776482582)); + k4 = w3(w3(k4 * v4) * w3(0.009999999776482582)); } - if (k5 != k5) break N; - k5 = w4(0); + if (k4 != k4) break N; + k4 = w3(0); G: if ((0 | r10) != 2139156720) { if ((0 | r10) == 2140081935) break m; h5 = 4276; R: { if ((0 | r10) != 2141891242) { - if (c5 == c5) break R; + if (c4 == c4) break R; h5 = 4268; } - switch (k5 = p3[h5 >> 2], c5 = w4(NaN), r10 = 2, l4[h5 + 4 >> 2] - 1 | 0) { + switch (k4 = p2[h5 >> 2], c4 = w3(NaN), r10 = 2, l3[h5 + 4 >> 2] - 1 | 0) { case 0: break m; case 1: @@ -7325,281 +7326,281 @@ var init_asm = __esm({ break A; } } - if (o4 = (-1073741825 & r10) + 536870912 | 0, t3[2] = o4, k5 = u5(), !(1073741824 & r10)) break m; + if (o3 = (-1073741825 & r10) + 536870912 | 0, t2[2] = o3, k4 = u3(), !(1073741824 & r10)) break m; } - c5 = w4(w4(k5 * v5) * w4(0.009999999776482582)), r10 = 2; + c4 = w3(w3(k4 * v4) * w3(0.009999999776482582)), r10 = 2; break A; } - r10 = v5 == v5, c5 = v5; + r10 = v4 == v4, c4 = v4; break A; } - r10 = 2, c5 = k5; + r10 = 2, c4 = k4; } - rt3(s4, N4, c5, i5, m5, r10, A4, v5, 1, 0, l4[s4 + 568 >> 2], E5 + 8 | 0, 0, l4[1735]) && (rO2(s4, 3 & d4[s4 + 300 | 0], A4, v5, A4), (function r11(e5, a6, i6, n5) { - var f7 = 0, t4 = 0, b6 = 0, o5 = 0, k6 = 0, c6 = 0, u6 = 0, s5 = 0, A5 = 0, h6 = 0, v6 = 0, m6 = w4(0), N5 = w4(0), E6 = w4(0), G4 = 0, R4 = w4(0); - r: if (0 != a6) { - if (m6 = p3[e5 + 248 >> 2], N5 = p3[e5 + 244 >> 2], E6 = p3[e5 + 232 >> 2], s5 = +p3[e5 + 228 >> 2], f7 = (b6 = 8 & d4[e5 + 4 | 0]) >>> 3 | 0, G4 = e5, R4 = rH2(s5, a6, 0, f7), p3[G4 + 228 >> 2] = R4, A5 = +E6, G4 = e5, R4 = rH2(A5, a6, 0, f7), p3[G4 + 232 >> 2] = R4, f7 = (k6 = rl3((h6 = +N5) * a6)) != k6, t4 = (c6 = rl3((v6 = +m6) * a6)) != c6, i6 = s5 + i6, o5 = f7 | (o5 = 1e-4 > y3(k6)) ? !o5 | f7 : !(1e-4 > y3(k6 + -1)), f7 = (0 | b6) != 0, G4 = e5, R4 = w4(rH2(i6 + h6, a6, o5 & f7, !o5 & f7) - rH2(i6, a6, 0, f7)), p3[G4 + 244 >> 2] = R4, n5 = A5 + n5, t4 = t4 | (b6 = 1e-4 > y3(c6)) ? !b6 | t4 : !(1e-4 > y3(c6 + -1)), G4 = e5, R4 = w4(rH2(n5 + v6, a6, f7 & t4, !t4 & f7) - rH2(n5, a6, 0, f7)), p3[G4 + 248 >> 2] = R4, f7 = l4[e5 + 560 >> 2], t4 = l4[e5 + 556 >> 2], (0 | f7) == (0 | t4)) break r; - for (t4 = (f7 = f7 - t4 >> 2) >>> 0 <= 1 ? 1 : f7; f7 = l4[e5 + 556 >> 2], f7 = l4[e5 + 560 >> 2] - f7 >> 2 >>> 0 > u6 >>> 0 ? l4[f7 + (u6 << 2) >> 2] : 0, r11(f7, a6, i6, n5), (0 | t4) != (0 | (u6 = u6 + 1 | 0)); ) ; + rt3(s3, N3, c4, i4, m4, r10, A3, v4, 1, 0, l3[s3 + 568 >> 2], E4 + 8 | 0, 0, l3[1735]) && (rO2(s3, 3 & d3[s3 + 300 | 0], A3, v4, A3), (function r11(e4, a5, i5, n4) { + var f5 = 0, t3 = 0, b5 = 0, o4 = 0, k5 = 0, c5 = 0, u4 = 0, s4 = 0, A4 = 0, h6 = 0, v5 = 0, m5 = w3(0), N4 = w3(0), E5 = w3(0), G3 = 0, R4 = w3(0); + r: if (0 != a5) { + if (m5 = p2[e4 + 248 >> 2], N4 = p2[e4 + 244 >> 2], E5 = p2[e4 + 232 >> 2], s4 = +p2[e4 + 228 >> 2], f5 = (b5 = 8 & d3[e4 + 4 | 0]) >>> 3 | 0, G3 = e4, R4 = rH2(s4, a5, 0, f5), p2[G3 + 228 >> 2] = R4, A4 = +E5, G3 = e4, R4 = rH2(A4, a5, 0, f5), p2[G3 + 232 >> 2] = R4, f5 = (k5 = rl3((h6 = +N4) * a5)) != k5, t3 = (c5 = rl3((v5 = +m5) * a5)) != c5, i5 = s4 + i5, o4 = f5 | (o4 = 1e-4 > y2(k5)) ? !o4 | f5 : !(1e-4 > y2(k5 + -1)), f5 = (0 | b5) != 0, G3 = e4, R4 = w3(rH2(i5 + h6, a5, o4 & f5, !o4 & f5) - rH2(i5, a5, 0, f5)), p2[G3 + 244 >> 2] = R4, n4 = A4 + n4, t3 = t3 | (b5 = 1e-4 > y2(c5)) ? !b5 | t3 : !(1e-4 > y2(c5 + -1)), G3 = e4, R4 = w3(rH2(n4 + v5, a5, f5 & t3, !t3 & f5) - rH2(n4, a5, 0, f5)), p2[G3 + 248 >> 2] = R4, f5 = l3[e4 + 560 >> 2], t3 = l3[e4 + 556 >> 2], (0 | f5) == (0 | t3)) break r; + for (t3 = (f5 = f5 - t3 >> 2) >>> 0 <= 1 ? 1 : f5; f5 = l3[e4 + 556 >> 2], f5 = l3[e4 + 560 >> 2] - f5 >> 2 >>> 0 > u4 >>> 0 ? l3[f5 + (u4 << 2) >> 2] : 0, r11(f5, a5, i5, n4), (0 | t3) != (0 | (u4 = u4 + 1 | 0)); ) ; } - })(s4, +p3[l4[s4 + 568 >> 2] + 16 >> 2], 0, 0)), re3 = E5 - -64 | 0; - }, function(r10, e4, a5, i5, n4) { - r10 |= 0, e4 |= 0, a5 = +a5, i5 = +i5, n4 |= 0; - var f6 = 0; - f6 = l4[r10 >> 2], e4 = ((r10 = l4[r10 + 4 >> 2]) >> 1) + e4 | 0, 1 & r10 && (f6 = l4[f6 + l4[e4 >> 2] >> 2]), eY[0 | f6](e4, a5, i5, n4); + })(s3, +p2[l3[s3 + 568 >> 2] + 16 >> 2], 0, 0)), re3 = E4 - -64 | 0; + }, function(r10, e3, a4, i4, n3) { + r10 |= 0, e3 |= 0, a4 = +a4, i4 = +i4, n3 |= 0; + var f4 = 0; + f4 = l3[r10 >> 2], e3 = ((r10 = l3[r10 + 4 >> 2]) >> 1) + e3 | 0, 1 & r10 && (f4 = l3[f4 + l3[e3 >> 2] >> 2]), eY[0 | f4](e3, a4, i4, n3); }, function(r10) { - return +p3[l4[(r10 |= 0) >> 2] + 228 >> 2]; + return +p2[l3[(r10 |= 0) >> 2] + 228 >> 2]; }, function(r10) { - return +p3[l4[(r10 |= 0) >> 2] + 236 >> 2]; + return +p2[l3[(r10 |= 0) >> 2] + 236 >> 2]; }, function(r10) { - return +p3[l4[(r10 |= 0) >> 2] + 232 >> 2]; + return +p2[l3[(r10 |= 0) >> 2] + 232 >> 2]; }, function(r10) { - return +p3[l4[(r10 |= 0) >> 2] + 240 >> 2]; + return +p2[l3[(r10 |= 0) >> 2] + 240 >> 2]; }, function(r10) { - return +p3[l4[(r10 |= 0) >> 2] + 244 >> 2]; + return +p2[l3[(r10 |= 0) >> 2] + 244 >> 2]; }, function(r10) { - return +p3[l4[(r10 |= 0) >> 2] + 248 >> 2]; - }, function(r10, e4) { - r10 |= 0, e4 |= 0, e4 = l4[e4 >> 2], m4[r10 >> 3] = p3[e4 + 228 >> 2], m4[r10 + 8 >> 3] = p3[e4 + 236 >> 2], m4[r10 + 16 >> 3] = p3[e4 + 232 >> 2], m4[r10 + 24 >> 3] = p3[e4 + 240 >> 2], m4[r10 + 32 >> 3] = p3[e4 + 244 >> 2], m4[r10 + 40 >> 3] = p3[e4 + 248 >> 2]; - }, function(r10, e4) { - r10 |= 0, e4 |= 0; - var a5 = 0, i5 = 0; - return re3 = a5 = re3 - 48 | 0, i5 = l4[r10 >> 2], e4 = ((r10 = l4[r10 + 4 >> 2]) >> 1) + e4 | 0, 1 & r10 && (i5 = l4[i5 + l4[e4 >> 2] >> 2]), eY[0 | i5](a5, e4), r10 = ru3(eo(48), a5, 48), re3 = a5 + 48 | 0, 0 | r10; - }, function(r10, e4) { - r10 |= 0, e4 |= 0; - var a5 = 0; - if (re3 = a5 = re3 - 16 | 0, r10 = l4[r10 >> 2], (0 | e4) < 6) { - re3 = a5 + 16 | 0; + return +p2[l3[(r10 |= 0) >> 2] + 248 >> 2]; + }, function(r10, e3) { + r10 |= 0, e3 |= 0, e3 = l3[e3 >> 2], m3[r10 >> 3] = p2[e3 + 228 >> 2], m3[r10 + 8 >> 3] = p2[e3 + 236 >> 2], m3[r10 + 16 >> 3] = p2[e3 + 232 >> 2], m3[r10 + 24 >> 3] = p2[e3 + 240 >> 2], m3[r10 + 32 >> 3] = p2[e3 + 244 >> 2], m3[r10 + 40 >> 3] = p2[e3 + 248 >> 2]; + }, function(r10, e3) { + r10 |= 0, e3 |= 0; + var a4 = 0, i4 = 0; + return re3 = a4 = re3 - 48 | 0, i4 = l3[r10 >> 2], e3 = ((r10 = l3[r10 + 4 >> 2]) >> 1) + e3 | 0, 1 & r10 && (i4 = l3[i4 + l3[e3 >> 2] >> 2]), eY[0 | i4](a4, e3), r10 = ru3(eo(48), a4, 48), re3 = a4 + 48 | 0, 0 | r10; + }, function(r10, e3) { + r10 |= 0, e3 |= 0; + var a4 = 0; + if (re3 = a4 = re3 - 16 | 0, r10 = l3[r10 >> 2], (0 | e3) < 6) { + re3 = a4 + 16 | 0; r: { - e: switch (e4 - 4 | 0) { + e: switch (e3 - 4 | 0) { case 0: - if (e4 = r10 + 260 | 0, (3 & d4[r10 + 300 | 0]) == 2) break r; - e4 = r10 + 252 | 0; + if (e3 = r10 + 260 | 0, (3 & d3[r10 + 300 | 0]) == 2) break r; + e3 = r10 + 252 | 0; break r; case 1: - if (e4 = r10 + 252 | 0, (3 & d4[r10 + 300 | 0]) == 2) break r; - e4 = r10 + 260 | 0; + if (e3 = r10 + 252 | 0, (3 & d3[r10 + 300 | 0]) == 2) break r; + e3 = r10 + 260 | 0; break r; default: break e; } - e4 = (r10 + (e4 << 2) | 0) + 252 | 0; + e3 = (r10 + (e3 << 2) | 0) + 252 | 0; } - return +p3[e4 >> 2]; + return +p2[e3 >> 2]; } - l4[a5 >> 2] = 1871, rB2(r10, a5), eX(), k4(); - }, function(r10, e4) { - r10 |= 0, e4 |= 0; - var a5 = 0; - if (re3 = a5 = re3 - 16 | 0, r10 = l4[r10 >> 2], (0 | e4) < 6) { - re3 = a5 + 16 | 0; + l3[a4 >> 2] = 1871, rB2(r10, a4), eX(), k3(); + }, function(r10, e3) { + r10 |= 0, e3 |= 0; + var a4 = 0; + if (re3 = a4 = re3 - 16 | 0, r10 = l3[r10 >> 2], (0 | e3) < 6) { + re3 = a4 + 16 | 0; r: { - e: switch (e4 - 4 | 0) { + e: switch (e3 - 4 | 0) { case 0: - if (e4 = r10 + 276 | 0, (3 & d4[r10 + 300 | 0]) == 2) break r; - e4 = r10 + 268 | 0; + if (e3 = r10 + 276 | 0, (3 & d3[r10 + 300 | 0]) == 2) break r; + e3 = r10 + 268 | 0; break r; case 1: - if (e4 = r10 + 268 | 0, (3 & d4[r10 + 300 | 0]) == 2) break r; - e4 = r10 + 276 | 0; + if (e3 = r10 + 268 | 0, (3 & d3[r10 + 300 | 0]) == 2) break r; + e3 = r10 + 276 | 0; break r; default: break e; } - e4 = (r10 + (e4 << 2) | 0) + 268 | 0; + e3 = (r10 + (e3 << 2) | 0) + 268 | 0; } - return +p3[e4 >> 2]; + return +p2[e3 >> 2]; } - l4[a5 >> 2] = 1871, rB2(r10, a5), eX(), k4(); - }, function(r10, e4) { - r10 |= 0, e4 |= 0; - var a5 = 0; - if (re3 = a5 = re3 - 16 | 0, r10 = l4[r10 >> 2], (0 | e4) < 6) { - re3 = a5 + 16 | 0; + l3[a4 >> 2] = 1871, rB2(r10, a4), eX(), k3(); + }, function(r10, e3) { + r10 |= 0, e3 |= 0; + var a4 = 0; + if (re3 = a4 = re3 - 16 | 0, r10 = l3[r10 >> 2], (0 | e3) < 6) { + re3 = a4 + 16 | 0; r: { - e: switch (e4 - 4 | 0) { + e: switch (e3 - 4 | 0) { case 0: - if (e4 = r10 + 292 | 0, (3 & d4[r10 + 300 | 0]) == 2) break r; - e4 = r10 + 284 | 0; + if (e3 = r10 + 292 | 0, (3 & d3[r10 + 300 | 0]) == 2) break r; + e3 = r10 + 284 | 0; break r; case 1: - if (e4 = r10 + 284 | 0, (3 & d4[r10 + 300 | 0]) == 2) break r; - e4 = r10 + 292 | 0; + if (e3 = r10 + 284 | 0, (3 & d3[r10 + 300 | 0]) == 2) break r; + e3 = r10 + 292 | 0; break r; default: break e; } - e4 = (r10 + (e4 << 2) | 0) + 284 | 0; + e3 = (r10 + (e3 << 2) | 0) + 284 | 0; } - return +p3[e4 >> 2]; + return +p2[e3 >> 2]; } - l4[a5 >> 2] = 1871, rB2(r10, a5), eX(), k4(); + l3[a4 >> 2] = 1871, rB2(r10, a4), eX(), k3(); }, eR, eG, eR, eG, rw2, ew, function(r10) { rE2(ew(r10 |= 0)); - }, function(r10, e4, a5, i5, n4, f6) { - r10 |= 0, e4 |= 0, a5 = w4(a5), i5 |= 0, n4 = w4(n4), f6 |= 0; - var t4 = 0, b5 = 0, o4 = 0; - re3 = t4 = re3 - 48 | 0, o4 = l4[e4 + 8 >> 2]; + }, function(r10, e3, a4, i4, n3, f4) { + r10 |= 0, e3 |= 0, a4 = w3(a4), i4 |= 0, n3 = w3(n3), f4 |= 0; + var t3 = 0, b4 = 0, o3 = 0; + re3 = t3 = re3 - 48 | 0, o3 = l3[e3 + 8 >> 2]; r: { - if (1 & s3[6972]) { - e4 = l4[1742]; + if (1 & s2[6972]) { + e3 = l3[1742]; break r; } - e4 = 0 | F2(5, 4416), s3[6972] = 1, l4[1742] = e4; + e3 = 0 | F2(5, 4416), s2[6972] = 1, l3[1742] = e3; } - l4[t4 + 40 >> 2] = f6, p3[t4 + 32 >> 2] = n4, l4[t4 + 24 >> 2] = i5, p3[t4 + 16 >> 2] = a5, b5 = +H3(0 | e4, 0 | o4, 2873, t4 + 12 | 0, t4 + 16 | 0); + l3[t3 + 40 >> 2] = f4, p2[t3 + 32 >> 2] = n3, l3[t3 + 24 >> 2] = i4, p2[t3 + 16 >> 2] = a4, b4 = +H2(0 | e3, 0 | o3, 2873, t3 + 12 | 0, t3 + 16 | 0); e: { - if (b5 < 4294967296 & b5 >= 0) { - e4 = ~~b5 >>> 0; + if (b4 < 4294967296 & b4 >= 0) { + e3 = ~~b4 >>> 0; break e; } - e4 = 0; + e3 = 0; } - i5 = l4[t4 + 12 >> 2], f6 = l4[e4 + 4 >> 2], l4[r10 >> 2] = l4[e4 >> 2], l4[r10 + 4 >> 2] = f6, f6 = l4[e4 + 12 >> 2], l4[r10 + 8 >> 2] = l4[e4 + 8 >> 2], l4[r10 + 12 >> 2] = f6, M3(0 | i5), re3 = t4 + 48 | 0; + i4 = l3[t3 + 12 >> 2], f4 = l3[e3 + 4 >> 2], l3[r10 >> 2] = l3[e3 >> 2], l3[r10 + 4 >> 2] = f4, f4 = l3[e3 + 12 >> 2], l3[r10 + 8 >> 2] = l3[e3 + 8 >> 2], l3[r10 + 12 >> 2] = f4, M3(0 | i4), re3 = t3 + 48 | 0; }, eC, eS, eN, function(r10) { rE2(eN(r10 |= 0)); }, function(r10) { - ep(l4[(r10 |= 0) + 8 >> 2], 3244); + ep(l3[(r10 |= 0) + 8 >> 2], 3244); }, eC, function(r10) { - return 0 | K4(l4[(r10 |= 0) + 60 >> 2]); - }, function(r10, e4, a5) { - r10 |= 0, e4 |= 0, a5 |= 0; - var i5 = 0, n4 = 0, f6 = 0, t4 = 0, b5 = 0, o4 = 0, k5 = 0; - re3 = i5 = re3 - 32 | 0, n4 = l4[r10 + 28 >> 2], l4[i5 + 16 >> 2] = n4, f6 = l4[r10 + 20 >> 2], l4[i5 + 28 >> 2] = a5, l4[i5 + 24 >> 2] = e4, e4 = f6 - n4 | 0, l4[i5 + 20 >> 2] = e4, f6 = e4 + a5 | 0, o4 = 2, e4 = i5 + 16 | 0; + return 0 | K3(l3[(r10 |= 0) + 60 >> 2]); + }, function(r10, e3, a4) { + r10 |= 0, e3 |= 0, a4 |= 0; + var i4 = 0, n3 = 0, f4 = 0, t3 = 0, b4 = 0, o3 = 0, k4 = 0; + re3 = i4 = re3 - 32 | 0, n3 = l3[r10 + 28 >> 2], l3[i4 + 16 >> 2] = n3, f4 = l3[r10 + 20 >> 2], l3[i4 + 28 >> 2] = a4, l3[i4 + 24 >> 2] = e3, e3 = f4 - n3 | 0, l3[i4 + 20 >> 2] = e3, f4 = e3 + a4 | 0, o3 = 2, e3 = i4 + 16 | 0; r: { for (; ; ) { e: { a: { i: { - if (!eZ(0 | J3(l4[r10 + 60 >> 2], 0 | e4, 0 | o4, i5 + 12 | 0))) { - if ((0 | (t4 = l4[i5 + 12 >> 2])) == (0 | f6)) break i; - if ((0 | t4) >= 0) break a; + if (!eZ(0 | J2(l3[r10 + 60 >> 2], 0 | e3, 0 | o3, i4 + 12 | 0))) { + if ((0 | (t3 = l3[i4 + 12 >> 2])) == (0 | f4)) break i; + if ((0 | t3) >= 0) break a; break e; } - if ((0 | f6) != -1) break e; + if ((0 | f4) != -1) break e; } - e4 = l4[r10 + 44 >> 2], l4[r10 + 28 >> 2] = e4, l4[r10 + 20 >> 2] = e4, l4[r10 + 16 >> 2] = e4 + l4[r10 + 48 >> 2], r10 = a5; + e3 = l3[r10 + 44 >> 2], l3[r10 + 28 >> 2] = e3, l3[r10 + 20 >> 2] = e3, l3[r10 + 16 >> 2] = e3 + l3[r10 + 48 >> 2], r10 = a4; break r; } - n4 = ((k5 = (b5 = l4[e4 + 4 >> 2]) >>> 0 < t4 >>> 0) << 3) + e4 | 0, b5 = t4 - (k5 ? b5 : 0) | 0, l4[n4 >> 2] = b5 + l4[n4 >> 2], l4[(e4 = (k5 ? 12 : 4) + e4 | 0) >> 2] = l4[e4 >> 2] - b5, f6 = f6 - t4 | 0, o4 = o4 - k5 | 0, e4 = n4; + n3 = ((k4 = (b4 = l3[e3 + 4 >> 2]) >>> 0 < t3 >>> 0) << 3) + e3 | 0, b4 = t3 - (k4 ? b4 : 0) | 0, l3[n3 >> 2] = b4 + l3[n3 >> 2], l3[(e3 = (k4 ? 12 : 4) + e3 | 0) >> 2] = l3[e3 >> 2] - b4, f4 = f4 - t3 | 0, o3 = o3 - k4 | 0, e3 = n3; continue; } break; } - if (l4[r10 + 28 >> 2] = 0, l4[r10 + 16 >> 2] = 0, l4[r10 + 20 >> 2] = 0, l4[r10 >> 2] = 32 | l4[r10 >> 2], r10 = 0, (0 | o4) == 2) break r; - r10 = a5 - l4[e4 + 4 >> 2] | 0; + if (l3[r10 + 28 >> 2] = 0, l3[r10 + 16 >> 2] = 0, l3[r10 + 20 >> 2] = 0, l3[r10 >> 2] = 32 | l3[r10 >> 2], r10 = 0, (0 | o3) == 2) break r; + r10 = a4 - l3[e3 + 4 >> 2] | 0; } - return re3 = i5 + 32 | 0, 0 | r10; - }, function(r10, e4, a5, i5) { - r10 |= 0, e4 |= 0, a5 |= 0, i5 |= 0; - var n4 = 0; - return re3 = n4 = re3 - 16 | 0, r10 = eZ(0 | z3(l4[r10 + 60 >> 2], 0 | e4, 0 | a5, 255 & i5, n4 + 8 | 0)), re3 = n4 + 16 | 0, ra3 = r10 ? -1 : l4[n4 + 12 >> 2], (r10 ? -1 : l4[n4 + 8 >> 2]) | 0; + return re3 = i4 + 32 | 0, 0 | r10; + }, function(r10, e3, a4, i4) { + r10 |= 0, e3 |= 0, a4 |= 0, i4 |= 0; + var n3 = 0; + return re3 = n3 = re3 - 16 | 0, r10 = eZ(0 | z2(l3[r10 + 60 >> 2], 0 | e3, 0 | a4, 255 & i4, n3 + 8 | 0)), re3 = n3 + 16 | 0, ra3 = r10 ? -1 : l3[n3 + 12 >> 2], (r10 ? -1 : l3[n3 + 8 >> 2]) | 0; }, function(r10) { return 0; - }, function(r10, e4, a5, i5) { + }, function(r10, e3, a4, i4) { return ra3 = 0, 0; - }, function(r10, e4, a5) { - r10 |= 0, e4 |= 0, a5 |= 0; - var i5 = 0, n4 = 0, f6 = 0, t4 = 0, b5 = 0; - return n4 = l4[r10 + 84 >> 2], f6 = l4[n4 >> 2], i5 = l4[n4 + 4 >> 2], b5 = l4[r10 + 28 >> 2], t4 = l4[r10 + 20 >> 2] - b5 | 0, (t4 = i5 >>> 0 < t4 >>> 0 ? i5 : t4) && (ru3(f6, b5, t4), f6 = t4 + l4[n4 >> 2] | 0, l4[n4 >> 2] = f6, i5 = l4[n4 + 4 >> 2] - t4 | 0, l4[n4 + 4 >> 2] = i5), (i5 = a5 >>> 0 > i5 >>> 0 ? i5 : a5) && (ru3(f6, e4, i5), f6 = i5 + l4[n4 >> 2] | 0, l4[n4 >> 2] = f6, l4[n4 + 4 >> 2] = l4[n4 + 4 >> 2] - i5), s3[0 | f6] = 0, e4 = l4[r10 + 44 >> 2], l4[r10 + 28 >> 2] = e4, l4[r10 + 20 >> 2] = e4, 0 | a5; - }, eS]).set = function(r10, e4) { - this[r10] = e4; - }, a4.get = function(r10) { + }, function(r10, e3, a4) { + r10 |= 0, e3 |= 0, a4 |= 0; + var i4 = 0, n3 = 0, f4 = 0, t3 = 0, b4 = 0; + return n3 = l3[r10 + 84 >> 2], f4 = l3[n3 >> 2], i4 = l3[n3 + 4 >> 2], b4 = l3[r10 + 28 >> 2], t3 = l3[r10 + 20 >> 2] - b4 | 0, (t3 = i4 >>> 0 < t3 >>> 0 ? i4 : t3) && (ru3(f4, b4, t3), f4 = t3 + l3[n3 >> 2] | 0, l3[n3 >> 2] = f4, i4 = l3[n3 + 4 >> 2] - t3 | 0, l3[n3 + 4 >> 2] = i4), (i4 = a4 >>> 0 > i4 >>> 0 ? i4 : a4) && (ru3(f4, e3, i4), f4 = i4 + l3[n3 >> 2] | 0, l3[n3 >> 2] = f4, l3[n3 + 4 >> 2] = l3[n3 + 4 >> 2] - i4), s2[0 | f4] = 0, e3 = l3[r10 + 44 >> 2], l3[r10 + 28 >> 2] = e3, l3[r10 + 20 >> 2] = e3, 0 | a4; + }, eS]).set = function(r10, e3) { + this[r10] = e3; + }, a3.get = function(r10) { return this[r10]; - }, a4); + }, a3); function eU() { - return b4.byteLength / 65536 | 0; + return b3.byteLength / 65536 | 0; } return { E: function() { - for (var r10 = 0, e4 = 0, a5 = 0; a5 = (e4 = r10 << 4) + 5888 | 0, l4[e4 + 5892 >> 2] = a5, l4[e4 + 5896 >> 2] = a5, (0 | (r10 = r10 + 1 | 0)) != 64; ) ; - rd2(48), l4[1736] = 16, l4[1737] = 0, rn2(), l4[1737] = l4[1748], l4[1748] = 6944, l4[1749] = 194, l4[1750] = 0, rw2(), l4[1750] = l4[1748], l4[1748] = 6996; + for (var r10 = 0, e3 = 0, a4 = 0; a4 = (e3 = r10 << 4) + 5888 | 0, l3[e3 + 5892 >> 2] = a4, l3[e3 + 5896 >> 2] = a4, (0 | (r10 = r10 + 1 | 0)) != 64; ) ; + rd2(48), l3[1736] = 16, l3[1737] = 0, rn2(), l3[1737] = l3[1748], l3[1748] = 6944, l3[1749] = 194, l3[1750] = 0, rw2(), l3[1750] = l3[1748], l3[1748] = 6996; }, F: function(r10) { r10 |= 0; - var e4 = 0, a5 = 0, i5 = 0, n4 = 0, f6 = 0; - re3 = a5 = re3 - 96 | 0, l4[a5 >> 2] = r10, re3 = i5 = re3 - 16 | 0, l4[i5 + 12 >> 2] = a5, re3 = r10 = re3 - 144 | 0, r10 = ru3(r10, 5440, 144), e4 = f6 = a5 + 16 | 0, l4[r10 + 44 >> 2] = e4, l4[r10 + 20 >> 2] = e4, n4 = (n4 = -2 - e4 | 0) >>> 0 >= 2147483647 ? 2147483647 : n4, l4[r10 + 48 >> 2] = n4, e4 = e4 + n4 | 0, l4[r10 + 28 >> 2] = e4, l4[r10 + 16 >> 2] = e4, rG2(r10, 2201, a5, 0, 0), n4 && (s3[(e4 = l4[r10 + 20 >> 2]) - ((0 | e4) == l4[r10 + 16 >> 2]) | 0] = 0), re3 = r10 + 144 | 0, re3 = i5 + 16 | 0, r10 = f6; + var e3 = 0, a4 = 0, i4 = 0, n3 = 0, f4 = 0; + re3 = a4 = re3 - 96 | 0, l3[a4 >> 2] = r10, re3 = i4 = re3 - 16 | 0, l3[i4 + 12 >> 2] = a4, re3 = r10 = re3 - 144 | 0, r10 = ru3(r10, 5440, 144), e3 = f4 = a4 + 16 | 0, l3[r10 + 44 >> 2] = e3, l3[r10 + 20 >> 2] = e3, n3 = (n3 = -2 - e3 | 0) >>> 0 >= 2147483647 ? 2147483647 : n3, l3[r10 + 48 >> 2] = n3, e3 = e3 + n3 | 0, l3[r10 + 28 >> 2] = e3, l3[r10 + 16 >> 2] = e3, rG2(r10, 2201, a4, 0, 0), n3 && (s2[(e3 = l3[r10 + 20 >> 2]) - ((0 | e3) == l3[r10 + 16 >> 2]) | 0] = 0), re3 = r10 + 144 | 0, re3 = i4 + 16 | 0, r10 = f4; r: { if (3 & r10) for (; ; ) { - if (!d4[0 | r10]) break r; + if (!d3[0 | r10]) break r; if (!(3 & (r10 = r10 + 1 | 0))) break; } - for (; e4 = r10, r10 = r10 + 4 | 0, !((-1 ^ (i5 = l4[e4 >> 2])) & i5 - 16843009 & -2139062144); ) ; - for (; e4 = (r10 = e4) + 1 | 0, d4[0 | r10]; ) ; + for (; e3 = r10, r10 = r10 + 4 | 0, !((-1 ^ (i4 = l3[e3 >> 2])) & i4 - 16843009 & -2139062144); ) ; + for (; e3 = (r10 = e3) + 1 | 0, d3[0 | r10]; ) ; } - return r10 = (e4 = rb2(r10 = (r10 - f6 | 0) + 1 | 0)) ? ru3(e4, f6, r10) : 0, re3 = a5 + 96 | 0, 0 | r10; + return r10 = (e3 = rb2(r10 = (r10 - f4 | 0) + 1 | 0)) ? ru3(e3, f4, r10) : 0, re3 = a4 + 96 | 0, 0 | r10; }, G: function() { var r10 = 0; - if (r10 = l4[1748]) for (; eY[l4[r10 >> 2]](), r10 = l4[r10 + 4 >> 2]; ) ; - }, H: rb2, I: eY, J: rE2, K: function(r10, e4, a5, i5, n4) { - return e4 |= 0, a5 |= 0, i5 |= 0, n4 |= 0, 0 | eY[0 | (r10 |= 0)](e4, a5, i5, n4); + if (r10 = l3[1748]) for (; eY[l3[r10 >> 2]](), r10 = l3[r10 + 4 >> 2]; ) ; + }, H: rb2, I: eY, J: rE2, K: function(r10, e3, a4, i4, n3) { + return e3 |= 0, a4 |= 0, i4 |= 0, n3 |= 0, 0 | eY[0 | (r10 |= 0)](e3, a4, i4, n3); } }; })(r4); })(r3); } - Object.assign(u4, n2), n2 = null, u4.wasmBinary && (l3 = u4.wasmBinary), u4.noExitRuntime; - var c3 = Error; - l3 = []; - var u4, s2, A2, l3, d3, h3 = false; - function v3(r3, e3, a3) { - a3 = e3 + a3; - for (var i3 = ""; !(e3 >= a3); ) { - var n3 = r3[e3++]; - if (!n3) break; - if (128 & n3) { - var f4 = 63 & r3[e3++]; - if (192 == (224 & n3)) i3 += String.fromCharCode((31 & n3) << 6 | f4); + Object.assign(u2, n), n = null, u2.wasmBinary && (l2 = u2.wasmBinary), u2.noExitRuntime; + var c2 = Error; + l2 = []; + var u2, s, A, l2, d2, h3 = false; + function v2(r3, e2, a2) { + a2 = e2 + a2; + for (var i2 = ""; !(e2 >= a2); ) { + var n2 = r3[e2++]; + if (!n2) break; + if (128 & n2) { + var f2 = 63 & r3[e2++]; + if (192 == (224 & n2)) i2 += String.fromCharCode((31 & n2) << 6 | f2); else { - var t3 = 63 & r3[e3++]; - 65536 > (n3 = 224 == (240 & n3) ? (15 & n3) << 12 | f4 << 6 | t3 : (7 & n3) << 18 | f4 << 12 | t3 << 6 | 63 & r3[e3++]) ? i3 += String.fromCharCode(n3) : (n3 -= 65536, i3 += String.fromCharCode(55296 | n3 >> 10, 56320 | 1023 & n3)); + var t2 = 63 & r3[e2++]; + 65536 > (n2 = 224 == (240 & n2) ? (15 & n2) << 12 | f2 << 6 | t2 : (7 & n2) << 18 | f2 << 12 | t2 << 6 | 63 & r3[e2++]) ? i2 += String.fromCharCode(n2) : (n2 -= 65536, i2 += String.fromCharCode(55296 | n2 >> 10, 56320 | 1023 & n2)); } - } else i3 += String.fromCharCode(n3); + } else i2 += String.fromCharCode(n2); } - return i3; + return i2; } - function p2() { - var r3 = d3.buffer; - u4.HEAP8 = N2 = new Int8Array(r3), u4.HEAP16 = y2 = new Int16Array(r3), u4.HEAP32 = G2 = new Int32Array(r3), u4.HEAPU8 = w3 = new Uint8Array(r3), u4.HEAPU16 = E3 = new Uint16Array(r3), u4.HEAPU32 = R2 = new Uint32Array(r3), u4.HEAPF32 = g3 = new Float32Array(r3), u4.HEAPF64 = Z = new Float64Array(r3); + function p() { + var r3 = d2.buffer; + u2.HEAP8 = N = new Int8Array(r3), u2.HEAP16 = y = new Int16Array(r3), u2.HEAP32 = G = new Int32Array(r3), u2.HEAPU8 = w2 = new Uint8Array(r3), u2.HEAPU16 = E2 = new Uint16Array(r3), u2.HEAPU32 = R2 = new Uint32Array(r3), u2.HEAPF32 = g2 = new Float32Array(r3), u2.HEAPF64 = Z = new Float64Array(r3); } - var m3 = u4.INITIAL_MEMORY || 16777216; - 65536 <= m3 || O3("INITIAL_MEMORY should be larger than STACK_SIZE, was " + m3 + "! (STACK_SIZE=65536)"), d3 = u4.wasmMemory ? u4.wasmMemory : new function() { - this.buffer = new ArrayBuffer(m3 / 65536 * 65536); - }(), p2(), m3 = d3.buffer.byteLength; - var N2, w3, y2, E3, G2, R2, g3, Z, W, V2 = [], B2 = [], T2 = [], I2 = 0, X = null; - function O3(r3) { - throw u4.onAbort && u4.onAbort(r3), b2(r3 = "Aborted(" + r3 + ")"), h3 = true, A2(r3 = new c3(r3 + ". Build with -sASSERTIONS for more info.")), r3; + var m2 = u2.INITIAL_MEMORY || 16777216; + 65536 <= m2 || O2("INITIAL_MEMORY should be larger than STACK_SIZE, was " + m2 + "! (STACK_SIZE=65536)"), d2 = u2.wasmMemory ? u2.wasmMemory : new function() { + this.buffer = new ArrayBuffer(m2 / 65536 * 65536); + }(), p(), m2 = d2.buffer.byteLength; + var N, w2, y, E2, G, R2, g2, Z, W, V = [], B = [], T = [], I = 0, X = null; + function O2(r3) { + throw u2.onAbort && u2.onAbort(r3), b(r3 = "Aborted(" + r3 + ")"), h3 = true, A(r3 = new c2(r3 + ". Build with -sASSERTIONS for more info.")), r3; } - function L2(r3) { + function L(r3) { return r3.startsWith("data:application/octet-stream;base64,"); } - if (!L2(a2 = "yoga-asm.wasm")) { - var _2 = a2; - a2 = u4.locateFile ? u4.locateFile(_2, f3) : f3 + _2; + if (!L(a = "yoga-asm.wasm")) { + var _ = a; + a = u2.locateFile ? u2.locateFile(_, f) : f + _; } function F(r3) { - for (; 0 < r3.length; ) r3.shift()(u4); + for (; 0 < r3.length; ) r3.shift()(u2); } - function C2(r3) { + function C(r3) { if (void 0 === r3) return "_unknown"; - var e3 = (r3 = r3.replace(/[^a-zA-Z0-9_]/g, "$")).charCodeAt(0); - return 48 <= e3 && 57 >= e3 ? "_" + r3 : r3; + var e2 = (r3 = r3.replace(/[^a-zA-Z0-9_]/g, "$")).charCodeAt(0); + return 48 <= e2 && 57 >= e2 ? "_" + r3 : r3; } - function S3(r3, e3) { - return r3 = C2(r3), function() { - return e3.apply(this, arguments); + function S2(r3, e2) { + return r3 = C(r3), function() { + return e2.apply(this, arguments); }; } - var P3 = [{}, { value: void 0 }, { value: null }, { value: true }, { value: false }], Y = []; + var P2 = [{}, { value: void 0 }, { value: null }, { value: true }, { value: false }], Y = []; function U(r3) { - var e3 = Error, a3 = S3(r3, function(e4) { - this.name = r3, this.message = e4, void 0 !== (e4 = Error(e4).stack) && (this.stack = this.toString() + "\n" + e4.replace(/^Error(:[^\n]*)?\n/, "")); + var e2 = Error, a2 = S2(r3, function(e3) { + this.name = r3, this.message = e3, void 0 !== (e3 = Error(e3).stack) && (this.stack = this.toString() + "\n" + e3.replace(/^Error(:[^\n]*)?\n/, "")); }); - return a3.prototype = Object.create(e3.prototype), a3.prototype.constructor = a3, a3.prototype.toString = function() { + return a2.prototype = Object.create(e2.prototype), a2.prototype.constructor = a2, a2.prototype.toString = function() { return void 0 === this.message ? this.name : this.name + ": " + this.message; - }, a3; + }, a2; } var M2 = void 0; - function H2(r3) { + function H(r3) { throw new M2(r3); } - var Q2 = (r3) => (r3 || H2("Cannot use deleted val. handle = " + r3), P3[r3].value), z2 = (r3) => { + var Q = (r3) => (r3 || H("Cannot use deleted val. handle = " + r3), P2[r3].value), z = (r3) => { switch (r3) { case void 0: return 1; @@ -7610,34 +7611,34 @@ var init_asm = __esm({ case false: return 4; default: - var e3 = Y.length ? Y.pop() : P3.length; - return P3[e3] = { fa: 1, value: r3 }, e3; + var e2 = Y.length ? Y.pop() : P2.length; + return P2[e2] = { fa: 1, value: r3 }, e2; } - }, j2 = void 0, D3 = void 0; - function x3(r3) { - for (var e3 = ""; w3[r3]; ) e3 += D3[w3[r3++]]; - return e3; + }, j = void 0, D2 = void 0; + function x2(r3) { + for (var e2 = ""; w2[r3]; ) e2 += D2[w2[r3++]]; + return e2; } - var J2 = []; - function K3() { - for (; J2.length; ) { - var r3 = J2.pop(); + var J = []; + function K2() { + for (; J.length; ) { + var r3 = J.pop(); r3.L.Z = false, r3.delete(); } } - var q2 = void 0, $2 = {}; - function rr(r3, e3) { - for (void 0 === e3 && H2("ptr should not be undefined"); r3.P; ) e3 = r3.aa(e3), r3 = r3.P; - return e3; + var q = void 0, $ = {}; + function rr(r3, e2) { + for (void 0 === e2 && H("ptr should not be undefined"); r3.P; ) e2 = r3.aa(e2), r3 = r3.P; + return e2; } var re2 = {}; function ra2(r3) { - var e3 = x3(r3 = rq(r3)); - return r0(r3), e3; + var e2 = x2(r3 = rq(r3)); + return r0(r3), e2; } - function ri(r3, e3) { - var a3 = re2[r3]; - return void 0 === a3 && H2(e3 + " has unknown type " + ra2(r3)), a3; + function ri(r3, e2) { + var a2 = re2[r3]; + return void 0 === a2 && H(e2 + " has unknown type " + ra2(r3)), a2; } function rn() { } @@ -7649,15 +7650,15 @@ var init_asm = __esm({ function rk(r3) { throw new ro(r3); } - function rc(r3, e3) { - return e3.O && e3.N || rk("makeClassHandle requires ptr and ptrType"), !!e3.T != !!e3.S && rk("Both smartPtrType and smartPtr must be specified"), e3.count = { value: 1 }, ru2(Object.create(r3, { L: { value: e3 } })); + function rc(r3, e2) { + return e2.O && e2.N || rk("makeClassHandle requires ptr and ptrType"), !!e2.T != !!e2.S && rk("Both smartPtrType and smartPtr must be specified"), e2.count = { value: 1 }, ru2(Object.create(r3, { L: { value: e2 } })); } function ru2(r3) { return "undefined" == typeof FinalizationRegistry ? (ru2 = (r4) => r4, r3) : (rf2 = new FinalizationRegistry((r4) => { rt2(r4.L); }), ru2 = (r4) => { - var e3 = r4.L; - return e3.S && rf2.register(r4, { L: e3 }, r4), r4; + var e2 = r4.L; + return e2.S && rf2.register(r4, { L: e2 }, r4), r4; }, rn = (r4) => { rf2.unregister(r4); }, ru2(r3)); @@ -7665,28 +7666,28 @@ var init_asm = __esm({ var rs = {}; function rA(r3) { for (; r3.length; ) { - var e3 = r3.pop(); - r3.pop()(e3); + var e2 = r3.pop(); + r3.pop()(e2); } } function rl2(r3) { - return this.fromWireType(G2[r3 >> 2]); + return this.fromWireType(G[r3 >> 2]); } var rd = {}, rh = {}; - function rv(r3, e3, a3) { - function i3(e4) { - (e4 = a3(e4)).length !== r3.length && rk("Mismatched type converter count"); - for (var i4 = 0; i4 < r3.length; ++i4) rm(r3[i4], e4[i4]); + function rv(r3, e2, a2) { + function i2(e3) { + (e3 = a2(e3)).length !== r3.length && rk("Mismatched type converter count"); + for (var i3 = 0; i3 < r3.length; ++i3) rm(r3[i3], e3[i3]); } r3.forEach(function(r4) { - rh[r4] = e3; + rh[r4] = e2; }); - var n3 = Array(e3.length), f4 = [], t3 = 0; - e3.forEach((r4, e4) => { - re2.hasOwnProperty(r4) ? n3[e4] = re2[r4] : (f4.push(r4), rd.hasOwnProperty(r4) || (rd[r4] = []), rd[r4].push(() => { - n3[e4] = re2[r4], ++t3 === f4.length && i3(n3); + var n2 = Array(e2.length), f2 = [], t2 = 0; + e2.forEach((r4, e3) => { + re2.hasOwnProperty(r4) ? n2[e3] = re2[r4] : (f2.push(r4), rd.hasOwnProperty(r4) || (rd[r4] = []), rd[r4].push(() => { + n2[e3] = re2[r4], ++t2 === f2.length && i2(n2); })); - }), 0 === f4.length && i3(n3); + }), 0 === f2.length && i2(n2); } function rp(r3) { switch (r3) { @@ -7702,207 +7703,207 @@ var init_asm = __esm({ throw TypeError("Unknown type size: " + r3); } } - function rm(r3, e3, a3 = {}) { - if (!("argPackAdvance" in e3)) throw TypeError("registerType registeredInstance requires argPackAdvance"); - var i3 = e3.name; - if (r3 || H2('type "' + i3 + '" must have a positive integer typeid pointer'), re2.hasOwnProperty(r3)) { - if (a3.ta) return; - H2("Cannot register type '" + i3 + "' twice"); + function rm(r3, e2, a2 = {}) { + if (!("argPackAdvance" in e2)) throw TypeError("registerType registeredInstance requires argPackAdvance"); + var i2 = e2.name; + if (r3 || H('type "' + i2 + '" must have a positive integer typeid pointer'), re2.hasOwnProperty(r3)) { + if (a2.ta) return; + H("Cannot register type '" + i2 + "' twice"); } - re2[r3] = e3, delete rh[r3], rd.hasOwnProperty(r3) && (e3 = rd[r3], delete rd[r3], e3.forEach((r4) => r4())); + re2[r3] = e2, delete rh[r3], rd.hasOwnProperty(r3) && (e2 = rd[r3], delete rd[r3], e2.forEach((r4) => r4())); } function rN(r3) { - H2(r3.L.O.M.name + " instance already deleted"); + H(r3.L.O.M.name + " instance already deleted"); } function rw() { } - function ry(r3, e3, a3) { - if (void 0 === r3[e3].R) { - var i3 = r3[e3]; - r3[e3] = function() { - return r3[e3].R.hasOwnProperty(arguments.length) || H2("Function '" + a3 + "' called with an invalid number of arguments (" + arguments.length + ") - expects one of (" + r3[e3].R + ")!"), r3[e3].R[arguments.length].apply(this, arguments); - }, r3[e3].R = [], r3[e3].R[i3.Y] = i3; + function ry(r3, e2, a2) { + if (void 0 === r3[e2].R) { + var i2 = r3[e2]; + r3[e2] = function() { + return r3[e2].R.hasOwnProperty(arguments.length) || H("Function '" + a2 + "' called with an invalid number of arguments (" + arguments.length + ") - expects one of (" + r3[e2].R + ")!"), r3[e2].R[arguments.length].apply(this, arguments); + }, r3[e2].R = [], r3[e2].R[i2.Y] = i2; } } - function rE(r3, e3, a3, i3, n3, f4, t3, b3) { - this.name = r3, this.constructor = e3, this.W = a3, this.V = i3, this.P = n3, this.oa = f4, this.aa = t3, this.ma = b3, this.ia = []; + function rE(r3, e2, a2, i2, n2, f2, t2, b2) { + this.name = r3, this.constructor = e2, this.W = a2, this.V = i2, this.P = n2, this.oa = f2, this.aa = t2, this.ma = b2, this.ia = []; } - function rG(r3, e3, a3) { - for (; e3 !== a3; ) e3.aa || H2("Expected null or instance of " + a3.name + ", got an instance of " + e3.name), r3 = e3.aa(r3), e3 = e3.P; + function rG(r3, e2, a2) { + for (; e2 !== a2; ) e2.aa || H("Expected null or instance of " + a2.name + ", got an instance of " + e2.name), r3 = e2.aa(r3), e2 = e2.P; return r3; } - function rR(r3, e3) { - return null === e3 ? (this.da && H2("null is not a valid " + this.name), 0) : (e3.L || H2('Cannot pass "' + rL(e3) + '" as a ' + this.name), e3.L.N || H2("Cannot pass deleted object as a pointer of type " + this.name), rG(e3.L.N, e3.L.O.M, this.M)); + function rR(r3, e2) { + return null === e2 ? (this.da && H("null is not a valid " + this.name), 0) : (e2.L || H('Cannot pass "' + rL(e2) + '" as a ' + this.name), e2.L.N || H("Cannot pass deleted object as a pointer of type " + this.name), rG(e2.L.N, e2.L.O.M, this.M)); } - function rg(r3, e3) { - if (null === e3) { - if (this.da && H2("null is not a valid " + this.name), this.ca) { - var a3 = this.ea(); - return null !== r3 && r3.push(this.V, a3), a3; + function rg(r3, e2) { + if (null === e2) { + if (this.da && H("null is not a valid " + this.name), this.ca) { + var a2 = this.ea(); + return null !== r3 && r3.push(this.V, a2), a2; } return 0; } - if (e3.L || H2('Cannot pass "' + rL(e3) + '" as a ' + this.name), e3.L.N || H2("Cannot pass deleted object as a pointer of type " + this.name), !this.ba && e3.L.O.ba && H2("Cannot convert argument of type " + (e3.L.T ? e3.L.T.name : e3.L.O.name) + " to parameter type " + this.name), a3 = rG(e3.L.N, e3.L.O.M, this.M), this.ca) switch (void 0 === e3.L.S && H2("Passing raw pointer to smart pointer is illegal"), this.Aa) { + if (e2.L || H('Cannot pass "' + rL(e2) + '" as a ' + this.name), e2.L.N || H("Cannot pass deleted object as a pointer of type " + this.name), !this.ba && e2.L.O.ba && H("Cannot convert argument of type " + (e2.L.T ? e2.L.T.name : e2.L.O.name) + " to parameter type " + this.name), a2 = rG(e2.L.N, e2.L.O.M, this.M), this.ca) switch (void 0 === e2.L.S && H("Passing raw pointer to smart pointer is illegal"), this.Aa) { case 0: - e3.L.T === this ? a3 = e3.L.S : H2("Cannot convert argument of type " + (e3.L.T ? e3.L.T.name : e3.L.O.name) + " to parameter type " + this.name); + e2.L.T === this ? a2 = e2.L.S : H("Cannot convert argument of type " + (e2.L.T ? e2.L.T.name : e2.L.O.name) + " to parameter type " + this.name); break; case 1: - a3 = e3.L.S; + a2 = e2.L.S; break; case 2: - if (e3.L.T === this) a3 = e3.L.S; + if (e2.L.T === this) a2 = e2.L.S; else { - var i3 = e3.clone(); - a3 = this.wa(a3, z2(function() { - i3.delete(); - })), null !== r3 && r3.push(this.V, a3); + var i2 = e2.clone(); + a2 = this.wa(a2, z(function() { + i2.delete(); + })), null !== r3 && r3.push(this.V, a2); } break; default: - H2("Unsupporting sharing policy"); + H("Unsupporting sharing policy"); } - return a3; + return a2; } - function rZ(r3, e3) { - return null === e3 ? (this.da && H2("null is not a valid " + this.name), 0) : (e3.L || H2('Cannot pass "' + rL(e3) + '" as a ' + this.name), e3.L.N || H2("Cannot pass deleted object as a pointer of type " + this.name), e3.L.O.ba && H2("Cannot convert argument of type " + e3.L.O.name + " to parameter type " + this.name), rG(e3.L.N, e3.L.O.M, this.M)); + function rZ(r3, e2) { + return null === e2 ? (this.da && H("null is not a valid " + this.name), 0) : (e2.L || H('Cannot pass "' + rL(e2) + '" as a ' + this.name), e2.L.N || H("Cannot pass deleted object as a pointer of type " + this.name), e2.L.O.ba && H("Cannot convert argument of type " + e2.L.O.name + " to parameter type " + this.name), rG(e2.L.N, e2.L.O.M, this.M)); } - function rW(r3, e3, a3, i3) { - this.name = r3, this.M = e3, this.da = a3, this.ba = i3, this.ca = false, this.V = this.wa = this.ea = this.ja = this.Aa = this.va = void 0, void 0 !== e3.P ? this.toWireType = rg : (this.toWireType = i3 ? rR : rZ, this.U = null); + function rW(r3, e2, a2, i2) { + this.name = r3, this.M = e2, this.da = a2, this.ba = i2, this.ca = false, this.V = this.wa = this.ea = this.ja = this.Aa = this.va = void 0, void 0 !== e2.P ? this.toWireType = rg : (this.toWireType = i2 ? rR : rZ, this.U = null); } - function rV(r3, e3) { - var a3, i3, n3 = (r3 = x3(r3)).includes("j") ? (a3 = r3, i3 = [], function() { - if (i3.length = 0, Object.assign(i3, arguments), a3.includes("j")) { - var r4 = u4["dynCall_" + a3]; - r4 = i3 && i3.length ? r4.apply(null, [e3].concat(i3)) : r4.call(null, e3); - } else r4 = W.get(e3).apply(null, i3); + function rV(r3, e2) { + var a2, i2, n2 = (r3 = x2(r3)).includes("j") ? (a2 = r3, i2 = [], function() { + if (i2.length = 0, Object.assign(i2, arguments), a2.includes("j")) { + var r4 = u2["dynCall_" + a2]; + r4 = i2 && i2.length ? r4.apply(null, [e2].concat(i2)) : r4.call(null, e2); + } else r4 = W.get(e2).apply(null, i2); return r4; - }) : W.get(e3); - return "function" != typeof n3 && H2("unknown function pointer with signature " + r3 + ": " + e3), n3; + }) : W.get(e2); + return "function" != typeof n2 && H("unknown function pointer with signature " + r3 + ": " + e2), n2; } var rB = void 0; - function rT(r3, e3) { - var a3 = [], i3 = {}; - throw e3.forEach(function r4(e4) { - i3[e4] || re2[e4] || (rh[e4] ? rh[e4].forEach(r4) : (a3.push(e4), i3[e4] = true)); - }), new rB(r3 + ": " + a3.map(ra2).join([", "])); + function rT(r3, e2) { + var a2 = [], i2 = {}; + throw e2.forEach(function r4(e3) { + i2[e3] || re2[e3] || (rh[e3] ? rh[e3].forEach(r4) : (a2.push(e3), i2[e3] = true)); + }), new rB(r3 + ": " + a2.map(ra2).join([", "])); } - function rI(r3, e3, a3, i3, n3) { - var f4 = e3.length; - 2 > f4 && H2("argTypes array size mismatch! Must at least get return value and 'this' types!"); - var t3 = null !== e3[1] && null !== a3, b3 = false; - for (a3 = 1; a3 < e3.length; ++a3) if (null !== e3[a3] && void 0 === e3[a3].U) { - b3 = true; + function rI(r3, e2, a2, i2, n2) { + var f2 = e2.length; + 2 > f2 && H("argTypes array size mismatch! Must at least get return value and 'this' types!"); + var t2 = null !== e2[1] && null !== a2, b2 = false; + for (a2 = 1; a2 < e2.length; ++a2) if (null !== e2[a2] && void 0 === e2[a2].U) { + b2 = true; break; } - var o3 = "void" !== e3[0].name, k4 = f4 - 2, c4 = Array(k4), u5 = [], s3 = []; + var o2 = "void" !== e2[0].name, k3 = f2 - 2, c3 = Array(k3), u3 = [], s2 = []; return function() { - if (arguments.length !== k4 && H2("function " + r3 + " called with " + arguments.length + " arguments, expected " + k4 + " args!"), s3.length = 0, u5.length = t3 ? 2 : 1, u5[0] = n3, t3) { - var a4 = e3[1].toWireType(s3, this); - u5[1] = a4; + if (arguments.length !== k3 && H("function " + r3 + " called with " + arguments.length + " arguments, expected " + k3 + " args!"), s2.length = 0, u3.length = t2 ? 2 : 1, u3[0] = n2, t2) { + var a3 = e2[1].toWireType(s2, this); + u3[1] = a3; } - for (var f5 = 0; f5 < k4; ++f5) c4[f5] = e3[f5 + 2].toWireType(s3, arguments[f5]), u5.push(c4[f5]); - if (f5 = i3.apply(null, u5), b3) rA(s3); - else for (var A3 = t3 ? 1 : 2; A3 < e3.length; A3++) { - var l4 = 1 === A3 ? a4 : c4[A3 - 2]; - null !== e3[A3].U && e3[A3].U(l4); + for (var f3 = 0; f3 < k3; ++f3) c3[f3] = e2[f3 + 2].toWireType(s2, arguments[f3]), u3.push(c3[f3]); + if (f3 = i2.apply(null, u3), b2) rA(s2); + else for (var A2 = t2 ? 1 : 2; A2 < e2.length; A2++) { + var l3 = 1 === A2 ? a3 : c3[A2 - 2]; + null !== e2[A2].U && e2[A2].U(l3); } - return o3 ? e3[0].fromWireType(f5) : void 0; + return o2 ? e2[0].fromWireType(f3) : void 0; }; } - function rX(r3, e3) { - for (var a3 = [], i3 = 0; i3 < r3; i3++) a3.push(R2[e3 + 4 * i3 >> 2]); - return a3; + function rX(r3, e2) { + for (var a2 = [], i2 = 0; i2 < r3; i2++) a2.push(R2[e2 + 4 * i2 >> 2]); + return a2; } function rO(r3) { - 4 < r3 && 0 == --P3[r3].fa && (P3[r3] = void 0, Y.push(r3)); + 4 < r3 && 0 == --P2[r3].fa && (P2[r3] = void 0, Y.push(r3)); } function rL(r3) { if (null === r3) return "null"; - var e3 = typeof r3; - return "object" === e3 || "array" === e3 || "function" === e3 ? r3.toString() : "" + r3; + var e2 = typeof r3; + return "object" === e2 || "array" === e2 || "function" === e2 ? r3.toString() : "" + r3; } - function r_(r3, e3) { - for (var a3 = "", i3 = 0; !(i3 >= e3 / 2); ++i3) { - var n3 = y2[r3 + 2 * i3 >> 1]; - if (0 == n3) break; - a3 += String.fromCharCode(n3); + function r_(r3, e2) { + for (var a2 = "", i2 = 0; !(i2 >= e2 / 2); ++i2) { + var n2 = y[r3 + 2 * i2 >> 1]; + if (0 == n2) break; + a2 += String.fromCharCode(n2); } - return a3; + return a2; } - function rF(r3, e3, a3) { - if (void 0 === a3 && (a3 = 2147483647), 2 > a3) return 0; - a3 -= 2; - var i3 = e3; - a3 = a3 < 2 * r3.length ? a3 / 2 : r3.length; - for (var n3 = 0; n3 < a3; ++n3) y2[e3 >> 1] = r3.charCodeAt(n3), e3 += 2; - return y2[e3 >> 1] = 0, e3 - i3; + function rF(r3, e2, a2) { + if (void 0 === a2 && (a2 = 2147483647), 2 > a2) return 0; + a2 -= 2; + var i2 = e2; + a2 = a2 < 2 * r3.length ? a2 / 2 : r3.length; + for (var n2 = 0; n2 < a2; ++n2) y[e2 >> 1] = r3.charCodeAt(n2), e2 += 2; + return y[e2 >> 1] = 0, e2 - i2; } function rC(r3) { return 2 * r3.length; } - function rS(r3, e3) { - for (var a3 = 0, i3 = ""; !(a3 >= e3 / 4); ) { - var n3 = G2[r3 + 4 * a3 >> 2]; - if (0 == n3) break; - ++a3, 65536 <= n3 ? (n3 -= 65536, i3 += String.fromCharCode(55296 | n3 >> 10, 56320 | 1023 & n3)) : i3 += String.fromCharCode(n3); + function rS(r3, e2) { + for (var a2 = 0, i2 = ""; !(a2 >= e2 / 4); ) { + var n2 = G[r3 + 4 * a2 >> 2]; + if (0 == n2) break; + ++a2, 65536 <= n2 ? (n2 -= 65536, i2 += String.fromCharCode(55296 | n2 >> 10, 56320 | 1023 & n2)) : i2 += String.fromCharCode(n2); } - return i3; + return i2; } - function rP(r3, e3, a3) { - if (void 0 === a3 && (a3 = 2147483647), 4 > a3) return 0; - var i3 = e3; - a3 = i3 + a3 - 4; - for (var n3 = 0; n3 < r3.length; ++n3) { - var f4 = r3.charCodeAt(n3); - if (55296 <= f4 && 57343 >= f4 && (f4 = 65536 + ((1023 & f4) << 10) | 1023 & r3.charCodeAt(++n3)), G2[e3 >> 2] = f4, (e3 += 4) + 4 > a3) break; + function rP(r3, e2, a2) { + if (void 0 === a2 && (a2 = 2147483647), 4 > a2) return 0; + var i2 = e2; + a2 = i2 + a2 - 4; + for (var n2 = 0; n2 < r3.length; ++n2) { + var f2 = r3.charCodeAt(n2); + if (55296 <= f2 && 57343 >= f2 && (f2 = 65536 + ((1023 & f2) << 10) | 1023 & r3.charCodeAt(++n2)), G[e2 >> 2] = f2, (e2 += 4) + 4 > a2) break; } - return G2[e3 >> 2] = 0, e3 - i3; + return G[e2 >> 2] = 0, e2 - i2; } function rY(r3) { - for (var e3 = 0, a3 = 0; a3 < r3.length; ++a3) { - var i3 = r3.charCodeAt(a3); - 55296 <= i3 && 57343 >= i3 && ++a3, e3 += 4; + for (var e2 = 0, a2 = 0; a2 < r3.length; ++a2) { + var i2 = r3.charCodeAt(a2); + 55296 <= i2 && 57343 >= i2 && ++a2, e2 += 4; } - return e3; + return e2; } var rU = {}; function rM(r3) { - var e3 = rU[r3]; - return void 0 === e3 ? x3(r3) : e3; + var e2 = rU[r3]; + return void 0 === e2 ? x2(r3) : e2; } var rH = [], rQ = [], rz = [null, [], []]; - M2 = u4.BindingError = U("BindingError"), u4.count_emval_handles = function() { - for (var r3 = 0, e3 = 5; e3 < P3.length; ++e3) void 0 !== P3[e3] && ++r3; + M2 = u2.BindingError = U("BindingError"), u2.count_emval_handles = function() { + for (var r3 = 0, e2 = 5; e2 < P2.length; ++e2) void 0 !== P2[e2] && ++r3; return r3; - }, u4.get_first_emval = function() { - for (var r3 = 5; r3 < P3.length; ++r3) if (void 0 !== P3[r3]) return P3[r3]; + }, u2.get_first_emval = function() { + for (var r3 = 5; r3 < P2.length; ++r3) if (void 0 !== P2[r3]) return P2[r3]; return null; - }, j2 = u4.PureVirtualError = U("PureVirtualError"); + }, j = u2.PureVirtualError = U("PureVirtualError"); for (var rj = Array(256), rD = 0; 256 > rD; ++rD) rj[rD] = String.fromCharCode(rD); - D3 = rj, u4.getInheritedInstanceCount = function() { - return Object.keys($2).length; - }, u4.getLiveInheritedInstances = function() { - var r3, e3 = []; - for (r3 in $2) $2.hasOwnProperty(r3) && e3.push($2[r3]); - return e3; - }, u4.flushPendingDeletes = K3, u4.setDelayFunction = function(r3) { - q2 = r3, J2.length && q2 && q2(K3); - }, ro = u4.InternalError = U("InternalError"), rw.prototype.isAliasOf = function(r3) { + D2 = rj, u2.getInheritedInstanceCount = function() { + return Object.keys($).length; + }, u2.getLiveInheritedInstances = function() { + var r3, e2 = []; + for (r3 in $) $.hasOwnProperty(r3) && e2.push($[r3]); + return e2; + }, u2.flushPendingDeletes = K2, u2.setDelayFunction = function(r3) { + q = r3, J.length && q && q(K2); + }, ro = u2.InternalError = U("InternalError"), rw.prototype.isAliasOf = function(r3) { if (!(this instanceof rw && r3 instanceof rw)) return false; - var e3 = this.L.O.M, a3 = this.L.N, i3 = r3.L.O.M; - for (r3 = r3.L.N; e3.P; ) a3 = e3.aa(a3), e3 = e3.P; - for (; i3.P; ) r3 = i3.aa(r3), i3 = i3.P; - return e3 === i3 && a3 === r3; + var e2 = this.L.O.M, a2 = this.L.N, i2 = r3.L.O.M; + for (r3 = r3.L.N; e2.P; ) a2 = e2.aa(a2), e2 = e2.P; + for (; i2.P; ) r3 = i2.aa(r3), i2 = i2.P; + return e2 === i2 && a2 === r3; }, rw.prototype.clone = function() { if (this.L.N || rN(this), this.L.$) return this.L.count.value += 1, this; - var r3 = ru2, e3 = Object, a3 = e3.create, i3 = Object.getPrototypeOf(this), n3 = this.L; - return r3 = r3(a3.call(e3, i3, { L: { value: { count: n3.count, Z: n3.Z, $: n3.$, N: n3.N, O: n3.O, S: n3.S, T: n3.T } } })), r3.L.count.value += 1, r3.L.Z = false, r3; + var r3 = ru2, e2 = Object, a2 = e2.create, i2 = Object.getPrototypeOf(this), n2 = this.L; + return r3 = r3(a2.call(e2, i2, { L: { value: { count: n2.count, Z: n2.Z, $: n2.$, N: n2.N, O: n2.O, S: n2.S, T: n2.T } } })), r3.L.count.value += 1, r3.L.Z = false, r3; }, rw.prototype.delete = function() { - this.L.N || rN(this), this.L.Z && !this.L.$ && H2("Object already scheduled for deletion"), rn(this), rt2(this.L), this.L.$ || (this.L.S = void 0, this.L.N = void 0); + this.L.N || rN(this), this.L.Z && !this.L.$ && H("Object already scheduled for deletion"), rn(this), rt2(this.L), this.L.$ || (this.L.S = void 0, this.L.N = void 0); }, rw.prototype.isDeleted = function() { return !this.L.N; }, rw.prototype.deleteLater = function() { - return this.L.N || rN(this), this.L.Z && !this.L.$ && H2("Object already scheduled for deletion"), J2.push(this), 1 === J2.length && q2 && q2(K3), this.L.Z = true, this; + return this.L.N || rN(this), this.L.Z && !this.L.$ && H("Object already scheduled for deletion"), J.push(this), 1 === J.length && q && q(K2), this.L.Z = true, this; }, rW.prototype.pa = function(r3) { return this.ja && (r3 = this.ja(r3)), r3; }, rW.prototype.ga = function(r3) { @@ -7910,163 +7911,163 @@ var init_asm = __esm({ }, rW.prototype.argPackAdvance = 8, rW.prototype.readValueFromPointer = rl2, rW.prototype.deleteObject = function(r3) { null !== r3 && r3.delete(); }, rW.prototype.fromWireType = function(r3) { - function e3() { - return this.ca ? rc(this.M.W, { O: this.va, N: i3, T: this, S: r3 }) : rc(this.M.W, { O: this, N: r3 }); + function e2() { + return this.ca ? rc(this.M.W, { O: this.va, N: i2, T: this, S: r3 }) : rc(this.M.W, { O: this, N: r3 }); } - var i3 = this.pa(r3); - if (!i3) return this.ga(r3), null; - var n3 = $2[rr(this.M, i3)]; - if (void 0 !== n3) return 0 === n3.L.count.value ? (n3.L.N = i3, n3.L.S = r3, n3.clone()) : (n3 = n3.clone(), this.ga(r3), n3); - if (!(n3 = rb[n3 = this.M.oa(i3)])) return e3.call(this); - n3 = this.ba ? n3.ka : n3.pointerType; - var f4 = (function r4(e4, a4, i4) { - return a4 === i4 ? e4 : void 0 === i4.P ? null : null === (e4 = r4(e4, a4, i4.P)) ? null : i4.ma(e4); - })(i3, this.M, n3.M); - return null === f4 ? e3.call(this) : this.ca ? rc(n3.M.W, { O: n3, N: f4, T: this, S: r3 }) : rc(n3.M.W, { O: n3, N: f4 }); - }, rB = u4.UnboundTypeError = U("UnboundTypeError"); + var i2 = this.pa(r3); + if (!i2) return this.ga(r3), null; + var n2 = $[rr(this.M, i2)]; + if (void 0 !== n2) return 0 === n2.L.count.value ? (n2.L.N = i2, n2.L.S = r3, n2.clone()) : (n2 = n2.clone(), this.ga(r3), n2); + if (!(n2 = rb[n2 = this.M.oa(i2)])) return e2.call(this); + n2 = this.ba ? n2.ka : n2.pointerType; + var f2 = (function r4(e3, a3, i3) { + return a3 === i3 ? e3 : void 0 === i3.P ? null : null === (e3 = r4(e3, a3, i3.P)) ? null : i3.ma(e3); + })(i2, this.M, n2.M); + return null === f2 ? e2.call(this) : this.ca ? rc(n2.M.W, { O: n2, N: f2, T: this, S: r3 }) : rc(n2.M.W, { O: n2, N: f2 }); + }, rB = u2.UnboundTypeError = U("UnboundTypeError"); var rx = "function" == typeof atob ? atob : function(r3) { - var e3 = "", a3 = 0; + var e2 = "", a2 = 0; r3 = r3.replace(/[^A-Za-z0-9\+\/=]/g, ""); do { - var i3 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(r3.charAt(a3++)), n3 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(r3.charAt(a3++)), f4 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(r3.charAt(a3++)), t3 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(r3.charAt(a3++)); - i3 = i3 << 2 | n3 >> 4, n3 = (15 & n3) << 4 | f4 >> 2; - var b3 = (3 & f4) << 6 | t3; - e3 += String.fromCharCode(i3), 64 !== f4 && (e3 += String.fromCharCode(n3)), 64 !== t3 && (e3 += String.fromCharCode(b3)); - } while (a3 < r3.length); - return e3; - }, rJ = { q: function(r3, e3, a3) { - r3 = x3(r3), e3 = ri(e3, "wrapper"), a3 = Q2(a3); - var i3 = [].slice, n3 = e3.M, f4 = n3.W, t3 = n3.P.W, b3 = n3.P.constructor; - for (var o3 in r3 = S3(r3, function() { - n3.P.ia.forEach((function(r4) { - if (this[r4] === t3[r4]) throw new j2("Pure virtual function " + r4 + " must be implemented in JavaScript"); - }).bind(this)), Object.defineProperty(this, "__parent", { value: f4 }), this.__construct.apply(this, i3.call(arguments)); - }), f4.__construct = function() { - this === f4 && H2("Pass correct 'this' to __construct"); - var r4 = b3.implement.apply(void 0, [this].concat(i3.call(arguments))); + var i2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(r3.charAt(a2++)), n2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(r3.charAt(a2++)), f2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(r3.charAt(a2++)), t2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(r3.charAt(a2++)); + i2 = i2 << 2 | n2 >> 4, n2 = (15 & n2) << 4 | f2 >> 2; + var b2 = (3 & f2) << 6 | t2; + e2 += String.fromCharCode(i2), 64 !== f2 && (e2 += String.fromCharCode(n2)), 64 !== t2 && (e2 += String.fromCharCode(b2)); + } while (a2 < r3.length); + return e2; + }, rJ = { q: function(r3, e2, a2) { + r3 = x2(r3), e2 = ri(e2, "wrapper"), a2 = Q(a2); + var i2 = [].slice, n2 = e2.M, f2 = n2.W, t2 = n2.P.W, b2 = n2.P.constructor; + for (var o2 in r3 = S2(r3, function() { + n2.P.ia.forEach((function(r4) { + if (this[r4] === t2[r4]) throw new j("Pure virtual function " + r4 + " must be implemented in JavaScript"); + }).bind(this)), Object.defineProperty(this, "__parent", { value: f2 }), this.__construct.apply(this, i2.call(arguments)); + }), f2.__construct = function() { + this === f2 && H("Pass correct 'this' to __construct"); + var r4 = b2.implement.apply(void 0, [this].concat(i2.call(arguments))); rn(r4); - var e4 = r4.L; - r4.notifyOnDestruction(), e4.$ = true, Object.defineProperties(this, { L: { value: e4 } }), ru2(this), r4 = rr(n3, r4 = e4.N), $2.hasOwnProperty(r4) ? H2("Tried to register registered instance: " + r4) : $2[r4] = this; - }, f4.__destruct = function() { - this === f4 && H2("Pass correct 'this' to __destruct"), rn(this); + var e3 = r4.L; + r4.notifyOnDestruction(), e3.$ = true, Object.defineProperties(this, { L: { value: e3 } }), ru2(this), r4 = rr(n2, r4 = e3.N), $.hasOwnProperty(r4) ? H("Tried to register registered instance: " + r4) : $[r4] = this; + }, f2.__destruct = function() { + this === f2 && H("Pass correct 'this' to __destruct"), rn(this); var r4 = this.L.N; - r4 = rr(n3, r4), $2.hasOwnProperty(r4) ? delete $2[r4] : H2("Tried to unregister unregistered instance: " + r4); - }, r3.prototype = Object.create(f4), a3) r3.prototype[o3] = a3[o3]; - return z2(r3); + r4 = rr(n2, r4), $.hasOwnProperty(r4) ? delete $[r4] : H("Tried to unregister unregistered instance: " + r4); + }, r3.prototype = Object.create(f2), a2) r3.prototype[o2] = a2[o2]; + return z(r3); }, k: function(r3) { - var e3 = rs[r3]; + var e2 = rs[r3]; delete rs[r3]; - var a3 = e3.ea, i3 = e3.V, n3 = e3.ha; - rv([r3], n3.map((r4) => r4.sa).concat(n3.map((r4) => r4.ya)), (r4) => { - var f4 = {}; - return n3.forEach((e4, a4) => { - var i4 = r4[a4], t3 = e4.qa, b3 = e4.ra, o3 = r4[a4 + n3.length], k4 = e4.xa, c4 = e4.za; - f4[e4.na] = { read: (r5) => i4.fromWireType(t3(b3, r5)), write: (r5, e5) => { - var a5 = []; - k4(c4, r5, o3.toWireType(a5, e5)), rA(a5); + var a2 = e2.ea, i2 = e2.V, n2 = e2.ha; + rv([r3], n2.map((r4) => r4.sa).concat(n2.map((r4) => r4.ya)), (r4) => { + var f2 = {}; + return n2.forEach((e3, a3) => { + var i3 = r4[a3], t2 = e3.qa, b2 = e3.ra, o2 = r4[a3 + n2.length], k3 = e3.xa, c3 = e3.za; + f2[e3.na] = { read: (r5) => i3.fromWireType(t2(b2, r5)), write: (r5, e4) => { + var a4 = []; + k3(c3, r5, o2.toWireType(a4, e4)), rA(a4); } }; - }), [{ name: e3.name, fromWireType: function(r5) { - var e4, a4 = {}; - for (e4 in f4) a4[e4] = f4[e4].read(r5); - return i3(r5), a4; - }, toWireType: function(r5, e4) { - for (var n4 in f4) if (!(n4 in e4)) throw TypeError('Missing field: "' + n4 + '"'); - var t3 = a3(); - for (n4 in f4) f4[n4].write(t3, e4[n4]); - return null !== r5 && r5.push(i3, t3), t3; - }, argPackAdvance: 8, readValueFromPointer: rl2, U: i3 }]; + }), [{ name: e2.name, fromWireType: function(r5) { + var e3, a3 = {}; + for (e3 in f2) a3[e3] = f2[e3].read(r5); + return i2(r5), a3; + }, toWireType: function(r5, e3) { + for (var n3 in f2) if (!(n3 in e3)) throw TypeError('Missing field: "' + n3 + '"'); + var t2 = a2(); + for (n3 in f2) f2[n3].write(t2, e3[n3]); + return null !== r5 && r5.push(i2, t2), t2; + }, argPackAdvance: 8, readValueFromPointer: rl2, U: i2 }]; }); }, w: function() { - }, C: function(r3, e3, a3, i3, n3) { - var f4 = rp(a3); - rm(r3, { name: e3 = x3(e3), fromWireType: function(r4) { + }, C: function(r3, e2, a2, i2, n2) { + var f2 = rp(a2); + rm(r3, { name: e2 = x2(e2), fromWireType: function(r4) { return !!r4; - }, toWireType: function(r4, e4) { - return e4 ? i3 : n3; + }, toWireType: function(r4, e3) { + return e3 ? i2 : n2; }, argPackAdvance: 8, readValueFromPointer: function(r4) { - if (1 === a3) var i4 = N2; - else if (2 === a3) i4 = y2; - else if (4 === a3) i4 = G2; - else throw TypeError("Unknown boolean type size: " + e3); - return this.fromWireType(i4[r4 >> f4]); + if (1 === a2) var i3 = N; + else if (2 === a2) i3 = y; + else if (4 === a2) i3 = G; + else throw TypeError("Unknown boolean type size: " + e2); + return this.fromWireType(i3[r4 >> f2]); }, U: null }); - }, f: function(r3, e3, a3, i3, n3, f4, t3, b3, o3, k4, c4, s3, A3) { - c4 = x3(c4), f4 = rV(n3, f4), b3 && (b3 = rV(t3, b3)), k4 && (k4 = rV(o3, k4)), A3 = rV(s3, A3); - var l4, d4 = C2(c4); - l4 = function() { - rT("Cannot construct " + c4 + " due to unbound types", [i3]); - }, u4.hasOwnProperty(d4) ? (H2("Cannot register public name '" + d4 + "' twice"), ry(u4, d4, d4), u4.hasOwnProperty(void 0) && H2("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"), u4[d4].R[void 0] = l4) : u4[d4] = l4, rv([r3, e3, a3], i3 ? [i3] : [], function(e4) { - if (e4 = e4[0], i3) var a4, n4 = e4.M, t4 = n4.W; - else t4 = rw.prototype; - e4 = S3(d4, function() { - if (Object.getPrototypeOf(this) !== o4) throw new M2("Use 'new' to construct " + c4); - if (void 0 === s4.X) throw new M2(c4 + " has no accessible constructor"); - var r4 = s4.X[arguments.length]; - if (void 0 === r4) throw new M2("Tried to invoke ctor of " + c4 + " with invalid number of parameters (" + arguments.length + ") - expected (" + Object.keys(s4.X).toString() + ") parameters instead!"); + }, f: function(r3, e2, a2, i2, n2, f2, t2, b2, o2, k3, c3, s2, A2) { + c3 = x2(c3), f2 = rV(n2, f2), b2 && (b2 = rV(t2, b2)), k3 && (k3 = rV(o2, k3)), A2 = rV(s2, A2); + var l3, d3 = C(c3); + l3 = function() { + rT("Cannot construct " + c3 + " due to unbound types", [i2]); + }, u2.hasOwnProperty(d3) ? (H("Cannot register public name '" + d3 + "' twice"), ry(u2, d3, d3), u2.hasOwnProperty(void 0) && H("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"), u2[d3].R[void 0] = l3) : u2[d3] = l3, rv([r3, e2, a2], i2 ? [i2] : [], function(e3) { + if (e3 = e3[0], i2) var a3, n3 = e3.M, t3 = n3.W; + else t3 = rw.prototype; + e3 = S2(d3, function() { + if (Object.getPrototypeOf(this) !== o3) throw new M2("Use 'new' to construct " + c3); + if (void 0 === s3.X) throw new M2(c3 + " has no accessible constructor"); + var r4 = s3.X[arguments.length]; + if (void 0 === r4) throw new M2("Tried to invoke ctor of " + c3 + " with invalid number of parameters (" + arguments.length + ") - expected (" + Object.keys(s3.X).toString() + ") parameters instead!"); return r4.apply(this, arguments); }); - var o4 = Object.create(t4, { constructor: { value: e4 } }); - e4.prototype = o4; - var s4 = new rE(c4, e4, o4, A3, n4, f4, b3, k4); - n4 = new rW(c4, s4, true, false), t4 = new rW(c4 + "*", s4, false, false); - var l5 = new rW(c4 + " const*", s4, false, true); - return rb[r3] = { pointerType: t4, ka: l5 }, a4 = e4, u4.hasOwnProperty(d4) || rk("Replacing nonexistant public symbol"), u4[d4] = a4, u4[d4].Y = void 0, [n4, t4, l5]; + var o3 = Object.create(t3, { constructor: { value: e3 } }); + e3.prototype = o3; + var s3 = new rE(c3, e3, o3, A2, n3, f2, b2, k3); + n3 = new rW(c3, s3, true, false), t3 = new rW(c3 + "*", s3, false, false); + var l4 = new rW(c3 + " const*", s3, false, true); + return rb[r3] = { pointerType: t3, ka: l4 }, a3 = e3, u2.hasOwnProperty(d3) || rk("Replacing nonexistant public symbol"), u2[d3] = a3, u2[d3].Y = void 0, [n3, t3, l4]; }); - }, d: function(r3, e3, a3, i3, n3, f4, t3) { - var b3 = rX(a3, i3); - e3 = x3(e3), f4 = rV(n3, f4), rv([], [r3], function(r4) { - function i4() { - rT("Cannot call " + n4 + " due to unbound types", b3); + }, d: function(r3, e2, a2, i2, n2, f2, t2) { + var b2 = rX(a2, i2); + e2 = x2(e2), f2 = rV(n2, f2), rv([], [r3], function(r4) { + function i3() { + rT("Cannot call " + n3 + " due to unbound types", b2); } - var n4 = (r4 = r4[0]).name + "." + e3; - e3.startsWith("@@") && (e3 = Symbol[e3.substring(2)]); - var o3 = r4.M.constructor; - return void 0 === o3[e3] ? (i4.Y = a3 - 1, o3[e3] = i4) : (ry(o3, e3, n4), o3[e3].R[a3 - 1] = i4), rv([], b3, function(r5) { - return r5 = rI(n4, [r5[0], null].concat(r5.slice(1)), null, f4, t3), void 0 === o3[e3].R ? (r5.Y = a3 - 1, o3[e3] = r5) : o3[e3].R[a3 - 1] = r5, []; + var n3 = (r4 = r4[0]).name + "." + e2; + e2.startsWith("@@") && (e2 = Symbol[e2.substring(2)]); + var o2 = r4.M.constructor; + return void 0 === o2[e2] ? (i3.Y = a2 - 1, o2[e2] = i3) : (ry(o2, e2, n3), o2[e2].R[a2 - 1] = i3), rv([], b2, function(r5) { + return r5 = rI(n3, [r5[0], null].concat(r5.slice(1)), null, f2, t2), void 0 === o2[e2].R ? (r5.Y = a2 - 1, o2[e2] = r5) : o2[e2].R[a2 - 1] = r5, []; }), []; }); - }, p: function(r3, e3, a3, i3, n3, f4) { - 0 < e3 || O3(); - var t3 = rX(e3, a3); - n3 = rV(i3, n3), rv([], [r3], function(r4) { - var a4 = "constructor " + (r4 = r4[0]).name; - if (void 0 === r4.M.X && (r4.M.X = []), void 0 !== r4.M.X[e3 - 1]) throw new M2("Cannot register multiple constructors with identical number of parameters (" + (e3 - 1) + ") for class '" + r4.name + "'! Overload resolution is currently only performed using the parameter count, not actual type info!"); - return r4.M.X[e3 - 1] = () => { - rT("Cannot construct " + r4.name + " due to unbound types", t3); - }, rv([], t3, function(i4) { - return i4.splice(1, 0, null), r4.M.X[e3 - 1] = rI(a4, i4, null, n3, f4), []; + }, p: function(r3, e2, a2, i2, n2, f2) { + 0 < e2 || O2(); + var t2 = rX(e2, a2); + n2 = rV(i2, n2), rv([], [r3], function(r4) { + var a3 = "constructor " + (r4 = r4[0]).name; + if (void 0 === r4.M.X && (r4.M.X = []), void 0 !== r4.M.X[e2 - 1]) throw new M2("Cannot register multiple constructors with identical number of parameters (" + (e2 - 1) + ") for class '" + r4.name + "'! Overload resolution is currently only performed using the parameter count, not actual type info!"); + return r4.M.X[e2 - 1] = () => { + rT("Cannot construct " + r4.name + " due to unbound types", t2); + }, rv([], t2, function(i3) { + return i3.splice(1, 0, null), r4.M.X[e2 - 1] = rI(a3, i3, null, n2, f2), []; }), []; }); - }, b: function(r3, e3, a3, i3, n3, f4, t3, b3) { - var o3 = rX(a3, i3); - e3 = x3(e3), f4 = rV(n3, f4), rv([], [r3], function(r4) { - function i4() { - rT("Cannot call " + n4 + " due to unbound types", o3); + }, b: function(r3, e2, a2, i2, n2, f2, t2, b2) { + var o2 = rX(a2, i2); + e2 = x2(e2), f2 = rV(n2, f2), rv([], [r3], function(r4) { + function i3() { + rT("Cannot call " + n3 + " due to unbound types", o2); } - var n4 = (r4 = r4[0]).name + "." + e3; - e3.startsWith("@@") && (e3 = Symbol[e3.substring(2)]), b3 && r4.M.ia.push(e3); - var k4 = r4.M.W, c4 = k4[e3]; - return void 0 === c4 || void 0 === c4.R && c4.className !== r4.name && c4.Y === a3 - 2 ? (i4.Y = a3 - 2, i4.className = r4.name, k4[e3] = i4) : (ry(k4, e3, n4), k4[e3].R[a3 - 2] = i4), rv([], o3, function(i5) { - return i5 = rI(n4, i5, r4, f4, t3), void 0 === k4[e3].R ? (i5.Y = a3 - 2, k4[e3] = i5) : k4[e3].R[a3 - 2] = i5, []; + var n3 = (r4 = r4[0]).name + "." + e2; + e2.startsWith("@@") && (e2 = Symbol[e2.substring(2)]), b2 && r4.M.ia.push(e2); + var k3 = r4.M.W, c3 = k3[e2]; + return void 0 === c3 || void 0 === c3.R && c3.className !== r4.name && c3.Y === a2 - 2 ? (i3.Y = a2 - 2, i3.className = r4.name, k3[e2] = i3) : (ry(k3, e2, n3), k3[e2].R[a2 - 2] = i3), rv([], o2, function(i4) { + return i4 = rI(n3, i4, r4, f2, t2), void 0 === k3[e2].R ? (i4.Y = a2 - 2, k3[e2] = i4) : k3[e2].R[a2 - 2] = i4, []; }), []; }); - }, B: function(r3, e3) { - rm(r3, { name: e3 = x3(e3), fromWireType: function(r4) { - var e4 = Q2(r4); - return rO(r4), e4; - }, toWireType: function(r4, e4) { - return z2(e4); + }, B: function(r3, e2) { + rm(r3, { name: e2 = x2(e2), fromWireType: function(r4) { + var e3 = Q(r4); + return rO(r4), e3; + }, toWireType: function(r4, e3) { + return z(e3); }, argPackAdvance: 8, readValueFromPointer: rl2, U: null }); - }, n: function(r3, e3, a3) { - a3 = rp(a3), rm(r3, { name: e3 = x3(e3), fromWireType: function(r4) { + }, n: function(r3, e2, a2) { + a2 = rp(a2), rm(r3, { name: e2 = x2(e2), fromWireType: function(r4) { return r4; - }, toWireType: function(r4, e4) { - return e4; - }, argPackAdvance: 8, readValueFromPointer: (function(r4, e4) { - switch (e4) { + }, toWireType: function(r4, e3) { + return e3; + }, argPackAdvance: 8, readValueFromPointer: (function(r4, e3) { + switch (e3) { case 2: return function(r5) { - return this.fromWireType(g3[r5 >> 2]); + return this.fromWireType(g2[r5 >> 2]); }; case 3: return function(r5) { @@ -8075,6417 +8076,270 @@ var init_asm = __esm({ default: throw TypeError("Unknown float type: " + r4); } - })(e3, a3), U: null }); - }, e: function(r3, e3, a3, i3, n3) { - e3 = x3(e3), -1 === n3 && (n3 = 4294967295), n3 = rp(a3); - var f4 = (r4) => r4; - if (0 === i3) { - var t3 = 32 - 8 * a3; - f4 = (r4) => r4 << t3 >>> t3; + })(e2, a2), U: null }); + }, e: function(r3, e2, a2, i2, n2) { + e2 = x2(e2), -1 === n2 && (n2 = 4294967295), n2 = rp(a2); + var f2 = (r4) => r4; + if (0 === i2) { + var t2 = 32 - 8 * a2; + f2 = (r4) => r4 << t2 >>> t2; } - a3 = e3.includes("unsigned") ? function(r4, e4) { - return e4 >>> 0; - } : function(r4, e4) { - return e4; - }, rm(r3, { name: e3, fromWireType: f4, toWireType: a3, argPackAdvance: 8, readValueFromPointer: (function(r4, e4, a4) { - switch (e4) { + a2 = e2.includes("unsigned") ? function(r4, e3) { + return e3 >>> 0; + } : function(r4, e3) { + return e3; + }, rm(r3, { name: e2, fromWireType: f2, toWireType: a2, argPackAdvance: 8, readValueFromPointer: (function(r4, e3, a3) { + switch (e3) { case 0: - return a4 ? function(r5) { - return N2[r5]; + return a3 ? function(r5) { + return N[r5]; } : function(r5) { - return w3[r5]; + return w2[r5]; }; case 1: - return a4 ? function(r5) { - return y2[r5 >> 1]; + return a3 ? function(r5) { + return y[r5 >> 1]; } : function(r5) { - return E3[r5 >> 1]; + return E2[r5 >> 1]; }; case 2: - return a4 ? function(r5) { - return G2[r5 >> 2]; + return a3 ? function(r5) { + return G[r5 >> 2]; } : function(r5) { return R2[r5 >> 2]; }; default: throw TypeError("Unknown integer type: " + r4); } - })(e3, n3, 0 !== i3), U: null }); - }, c: function(r3, e3, a3) { - function i3(r4) { + })(e2, n2, 0 !== i2), U: null }); + }, c: function(r3, e2, a2) { + function i2(r4) { r4 >>= 2; - var e4 = R2; - return new n3(e4.buffer, e4[r4 + 1], e4[r4]); + var e3 = R2; + return new n2(e3.buffer, e3[r4 + 1], e3[r4]); } - var n3 = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array][e3]; - rm(r3, { name: a3 = x3(a3), fromWireType: i3, argPackAdvance: 8, readValueFromPointer: i3 }, { ta: true }); - }, o: function(r3, e3) { - var a3 = "std::string" === (e3 = x3(e3)); - rm(r3, { name: e3, fromWireType: function(r4) { - var e4 = R2[r4 >> 2], i3 = r4 + 4; - if (a3) for (var n3 = i3, f4 = 0; f4 <= e4; ++f4) { - var t3 = i3 + f4; - if (f4 == e4 || 0 == w3[t3]) { - if (n3 = n3 ? v3(w3, n3, t3 - n3) : "", void 0 === b3) var b3 = n3; - else b3 += "\0" + n3; - n3 = t3 + 1; + var n2 = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array][e2]; + rm(r3, { name: a2 = x2(a2), fromWireType: i2, argPackAdvance: 8, readValueFromPointer: i2 }, { ta: true }); + }, o: function(r3, e2) { + var a2 = "std::string" === (e2 = x2(e2)); + rm(r3, { name: e2, fromWireType: function(r4) { + var e3 = R2[r4 >> 2], i2 = r4 + 4; + if (a2) for (var n2 = i2, f2 = 0; f2 <= e3; ++f2) { + var t2 = i2 + f2; + if (f2 == e3 || 0 == w2[t2]) { + if (n2 = n2 ? v2(w2, n2, t2 - n2) : "", void 0 === b2) var b2 = n2; + else b2 += "\0" + n2; + n2 = t2 + 1; } } else { - for (f4 = 0, b3 = Array(e4); f4 < e4; ++f4) b3[f4] = String.fromCharCode(w3[i3 + f4]); - b3 = b3.join(""); + for (f2 = 0, b2 = Array(e3); f2 < e3; ++f2) b2[f2] = String.fromCharCode(w2[i2 + f2]); + b2 = b2.join(""); } - return r0(r4), b3; - }, toWireType: function(r4, e4) { - e4 instanceof ArrayBuffer && (e4 = new Uint8Array(e4)); - var i3, n3 = "string" == typeof e4; - if (n3 || e4 instanceof Uint8Array || e4 instanceof Uint8ClampedArray || e4 instanceof Int8Array || H2("Cannot pass non-string to std::string"), a3 && n3) { - var f4 = 0; - for (i3 = 0; i3 < e4.length; ++i3) { - var t3 = e4.charCodeAt(i3); - 127 >= t3 ? f4++ : 2047 >= t3 ? f4 += 2 : 55296 <= t3 && 57343 >= t3 ? (f4 += 4, ++i3) : f4 += 3; + return r0(r4), b2; + }, toWireType: function(r4, e3) { + e3 instanceof ArrayBuffer && (e3 = new Uint8Array(e3)); + var i2, n2 = "string" == typeof e3; + if (n2 || e3 instanceof Uint8Array || e3 instanceof Uint8ClampedArray || e3 instanceof Int8Array || H("Cannot pass non-string to std::string"), a2 && n2) { + var f2 = 0; + for (i2 = 0; i2 < e3.length; ++i2) { + var t2 = e3.charCodeAt(i2); + 127 >= t2 ? f2++ : 2047 >= t2 ? f2 += 2 : 55296 <= t2 && 57343 >= t2 ? (f2 += 4, ++i2) : f2 += 3; } - i3 = f4; - } else i3 = e4.length; - if (t3 = (f4 = r$(4 + i3 + 1)) + 4, R2[f4 >> 2] = i3, a3 && n3) { - if (n3 = t3, t3 = i3 + 1, i3 = w3, 0 < t3) { - t3 = n3 + t3 - 1; - for (var b3 = 0; b3 < e4.length; ++b3) { - var o3 = e4.charCodeAt(b3); - if (55296 <= o3 && 57343 >= o3 && (o3 = 65536 + ((1023 & o3) << 10) | 1023 & e4.charCodeAt(++b3)), 127 >= o3) { - if (n3 >= t3) break; - i3[n3++] = o3; + i2 = f2; + } else i2 = e3.length; + if (t2 = (f2 = r$(4 + i2 + 1)) + 4, R2[f2 >> 2] = i2, a2 && n2) { + if (n2 = t2, t2 = i2 + 1, i2 = w2, 0 < t2) { + t2 = n2 + t2 - 1; + for (var b2 = 0; b2 < e3.length; ++b2) { + var o2 = e3.charCodeAt(b2); + if (55296 <= o2 && 57343 >= o2 && (o2 = 65536 + ((1023 & o2) << 10) | 1023 & e3.charCodeAt(++b2)), 127 >= o2) { + if (n2 >= t2) break; + i2[n2++] = o2; } else { - if (2047 >= o3) { - if (n3 + 1 >= t3) break; - i3[n3++] = 192 | o3 >> 6; + if (2047 >= o2) { + if (n2 + 1 >= t2) break; + i2[n2++] = 192 | o2 >> 6; } else { - if (65535 >= o3) { - if (n3 + 2 >= t3) break; - i3[n3++] = 224 | o3 >> 12; + if (65535 >= o2) { + if (n2 + 2 >= t2) break; + i2[n2++] = 224 | o2 >> 12; } else { - if (n3 + 3 >= t3) break; - i3[n3++] = 240 | o3 >> 18, i3[n3++] = 128 | o3 >> 12 & 63; + if (n2 + 3 >= t2) break; + i2[n2++] = 240 | o2 >> 18, i2[n2++] = 128 | o2 >> 12 & 63; } - i3[n3++] = 128 | o3 >> 6 & 63; + i2[n2++] = 128 | o2 >> 6 & 63; } - i3[n3++] = 128 | 63 & o3; + i2[n2++] = 128 | 63 & o2; } } - i3[n3] = 0; + i2[n2] = 0; } - } else if (n3) for (n3 = 0; n3 < i3; ++n3) 255 < (b3 = e4.charCodeAt(n3)) && (r0(t3), H2("String has UTF-16 code units that do not fit in 8 bits")), w3[t3 + n3] = b3; - else for (n3 = 0; n3 < i3; ++n3) w3[t3 + n3] = e4[n3]; - return null !== r4 && r4.push(r0, f4), f4; + } else if (n2) for (n2 = 0; n2 < i2; ++n2) 255 < (b2 = e3.charCodeAt(n2)) && (r0(t2), H("String has UTF-16 code units that do not fit in 8 bits")), w2[t2 + n2] = b2; + else for (n2 = 0; n2 < i2; ++n2) w2[t2 + n2] = e3[n2]; + return null !== r4 && r4.push(r0, f2), f2; }, argPackAdvance: 8, readValueFromPointer: rl2, U: function(r4) { r0(r4); } }); - }, j: function(r3, e3, a3) { - if (a3 = x3(a3), 2 === e3) var i3 = r_, n3 = rF, f4 = rC, t3 = () => E3, b3 = 1; - else 4 === e3 && (i3 = rS, n3 = rP, f4 = rY, t3 = () => R2, b3 = 2); - rm(r3, { name: a3, fromWireType: function(r4) { - for (var a4, n4 = R2[r4 >> 2], f5 = t3(), o3 = r4 + 4, k4 = 0; k4 <= n4; ++k4) { - var c4 = r4 + 4 + k4 * e3; - (k4 == n4 || 0 == f5[c4 >> b3]) && (o3 = i3(o3, c4 - o3), void 0 === a4 ? a4 = o3 : a4 += "\0" + o3, o3 = c4 + e3); + }, j: function(r3, e2, a2) { + if (a2 = x2(a2), 2 === e2) var i2 = r_, n2 = rF, f2 = rC, t2 = () => E2, b2 = 1; + else 4 === e2 && (i2 = rS, n2 = rP, f2 = rY, t2 = () => R2, b2 = 2); + rm(r3, { name: a2, fromWireType: function(r4) { + for (var a3, n3 = R2[r4 >> 2], f3 = t2(), o2 = r4 + 4, k3 = 0; k3 <= n3; ++k3) { + var c3 = r4 + 4 + k3 * e2; + (k3 == n3 || 0 == f3[c3 >> b2]) && (o2 = i2(o2, c3 - o2), void 0 === a3 ? a3 = o2 : a3 += "\0" + o2, o2 = c3 + e2); } - return r0(r4), a4; - }, toWireType: function(r4, i4) { - "string" != typeof i4 && H2("Cannot pass non-string to C++ string type " + a3); - var t4 = f4(i4), o3 = r$(4 + t4 + e3); - return R2[o3 >> 2] = t4 >> b3, n3(i4, o3 + 4, t4 + e3), null !== r4 && r4.push(r0, o3), o3; + return r0(r4), a3; + }, toWireType: function(r4, i3) { + "string" != typeof i3 && H("Cannot pass non-string to C++ string type " + a2); + var t3 = f2(i3), o2 = r$(4 + t3 + e2); + return R2[o2 >> 2] = t3 >> b2, n2(i3, o2 + 4, t3 + e2), null !== r4 && r4.push(r0, o2), o2; }, argPackAdvance: 8, readValueFromPointer: rl2, U: function(r4) { r0(r4); } }); - }, l: function(r3, e3, a3, i3, n3, f4) { - rs[r3] = { name: x3(e3), ea: rV(a3, i3), V: rV(n3, f4), ha: [] }; - }, i: function(r3, e3, a3, i3, n3, f4, t3, b3, o3, k4) { - rs[r3].ha.push({ na: x3(e3), sa: a3, qa: rV(i3, n3), ra: f4, ya: t3, xa: rV(b3, o3), za: k4 }); - }, D: function(r3, e3) { - rm(r3, { ua: true, name: e3 = x3(e3), argPackAdvance: 0, fromWireType: function() { + }, l: function(r3, e2, a2, i2, n2, f2) { + rs[r3] = { name: x2(e2), ea: rV(a2, i2), V: rV(n2, f2), ha: [] }; + }, i: function(r3, e2, a2, i2, n2, f2, t2, b2, o2, k3) { + rs[r3].ha.push({ na: x2(e2), sa: a2, qa: rV(i2, n2), ra: f2, ya: t2, xa: rV(b2, o2), za: k3 }); + }, D: function(r3, e2) { + rm(r3, { ua: true, name: e2 = x2(e2), argPackAdvance: 0, fromWireType: function() { }, toWireType: function() { } }); - }, t: function(r3, e3, a3, i3, n3) { - r3 = rH[r3], e3 = Q2(e3), a3 = rM(a3); - var f4 = []; - return R2[i3 >> 2] = z2(f4), r3(e3, a3, f4, n3); - }, u: function(r3, e3, a3, i3) { - r3 = rH[r3], r3(e3 = Q2(e3), a3 = rM(a3), null, i3); - }, h: rO, m: function(r3, e3) { - var a3, i3, n3 = (function(r4, e4) { - for (var a4 = Array(r4), i4 = 0; i4 < r4; ++i4) a4[i4] = ri(R2[e4 + 4 * i4 >> 2], "parameter " + i4); - return a4; - })(r3, e3), f4 = n3[0], t3 = rQ[e3 = f4.name + "_$" + n3.slice(1).map(function(r4) { + }, t: function(r3, e2, a2, i2, n2) { + r3 = rH[r3], e2 = Q(e2), a2 = rM(a2); + var f2 = []; + return R2[i2 >> 2] = z(f2), r3(e2, a2, f2, n2); + }, u: function(r3, e2, a2, i2) { + r3 = rH[r3], r3(e2 = Q(e2), a2 = rM(a2), null, i2); + }, h: rO, m: function(r3, e2) { + var a2, i2, n2 = (function(r4, e3) { + for (var a3 = Array(r4), i3 = 0; i3 < r4; ++i3) a3[i3] = ri(R2[e3 + 4 * i3 >> 2], "parameter " + i3); + return a3; + })(r3, e2), f2 = n2[0], t2 = rQ[e2 = f2.name + "_$" + n2.slice(1).map(function(r4) { return r4.name; }).join("_") + "$"]; - if (void 0 !== t3) return t3; - var b3 = Array(r3 - 1); - return a3 = (e4, a4, i4, t4) => { - for (var o3 = 0, k4 = 0; k4 < r3 - 1; ++k4) b3[k4] = n3[k4 + 1].readValueFromPointer(t4 + o3), o3 += n3[k4 + 1].argPackAdvance; - for (k4 = 0, e4 = e4[a4].apply(e4, b3); k4 < r3 - 1; ++k4) n3[k4 + 1].la && n3[k4 + 1].la(b3[k4]); - if (!f4.ua) return f4.toWireType(i4, e4); - }, i3 = rH.length, rH.push(a3), t3 = i3, rQ[e3] = t3; + if (void 0 !== t2) return t2; + var b2 = Array(r3 - 1); + return a2 = (e3, a3, i3, t3) => { + for (var o2 = 0, k3 = 0; k3 < r3 - 1; ++k3) b2[k3] = n2[k3 + 1].readValueFromPointer(t3 + o2), o2 += n2[k3 + 1].argPackAdvance; + for (k3 = 0, e3 = e3[a3].apply(e3, b2); k3 < r3 - 1; ++k3) n2[k3 + 1].la && n2[k3 + 1].la(b2[k3]); + if (!f2.ua) return f2.toWireType(i3, e3); + }, i2 = rH.length, rH.push(a2), t2 = i2, rQ[e2] = t2; }, r: function(r3) { - 4 < r3 && (P3[r3].fa += 1); + 4 < r3 && (P2[r3].fa += 1); }, s: function(r3) { - rA(Q2(r3)), rO(r3); + rA(Q(r3)), rO(r3); }, g: function() { - O3(""); - }, y: function(r3, e3, a3) { - w3.copyWithin(r3, e3, e3 + a3); + O2(""); + }, y: function(r3, e2, a2) { + w2.copyWithin(r3, e2, e2 + a2); }, x: function(r3) { - var e3 = w3.length; + var e2 = w2.length; if (2147483648 < (r3 >>>= 0)) return false; - for (var a3 = 1; 4 >= a3; a3 *= 2) { - var i3 = e3 * (1 + 0.2 / a3); - i3 = Math.min(i3, r3 + 100663296); - var n3 = Math, f4 = n3.min; - i3 = Math.max(r3, i3), i3 += (65536 - i3 % 65536) % 65536; + for (var a2 = 1; 4 >= a2; a2 *= 2) { + var i2 = e2 * (1 + 0.2 / a2); + i2 = Math.min(i2, r3 + 100663296); + var n2 = Math, f2 = n2.min; + i2 = Math.max(r3, i2), i2 += (65536 - i2 % 65536) % 65536; r: { - var t3 = d3.buffer; + var t2 = d2.buffer; try { - d3.grow(f4.call(n3, 2147483648, i3) - t3.byteLength + 65535 >>> 16), p2(); - var b3 = 1; + d2.grow(f2.call(n2, 2147483648, i2) - t2.byteLength + 65535 >>> 16), p(); + var b2 = 1; break r; } catch (r4) { } - b3 = void 0; + b2 = void 0; } - if (b3) return true; + if (b2) return true; } return false; }, A: function() { return 52; }, v: function() { return 70; - }, z: function(r3, e3, a3, i3) { - for (var n3 = 0, f4 = 0; f4 < a3; f4++) { - var o3 = R2[e3 >> 2], k4 = R2[e3 + 4 >> 2]; - e3 += 8; - for (var c4 = 0; c4 < k4; c4++) { - var u5 = w3[o3 + c4], s3 = rz[r3]; - 0 === u5 || 10 === u5 ? ((1 === r3 ? t2 : b2)(v3(s3, 0)), s3.length = 0) : s3.push(u5); + }, z: function(r3, e2, a2, i2) { + for (var n2 = 0, f2 = 0; f2 < a2; f2++) { + var o2 = R2[e2 >> 2], k3 = R2[e2 + 4 >> 2]; + e2 += 8; + for (var c3 = 0; c3 < k3; c3++) { + var u3 = w2[o2 + c3], s2 = rz[r3]; + 0 === u3 || 10 === u3 ? ((1 === r3 ? t : b)(v2(s2, 0)), s2.length = 0) : s2.push(u3); } - n3 += k4; + n2 += k3; } - return R2[i3 >> 2] = n3, 0; - }, a: d3 }, rK = (function() { + return R2[i2 >> 2] = n2, 0; + }, a: d2 }, rK = (function() { function r3(r4) { - u4.asm = r4.exports, W = u4.asm.I, B2.unshift(u4.asm.E), I2--, u4.monitorRunDependencies && u4.monitorRunDependencies(I2), 0 == I2 && X && (r4 = X, X = null, r4()); + u2.asm = r4.exports, W = u2.asm.I, B.unshift(u2.asm.E), I--, u2.monitorRunDependencies && u2.monitorRunDependencies(I), 0 == I && X && (r4 = X, X = null, r4()); } - var e3 = { a: rJ }; - if (I2++, u4.monitorRunDependencies && u4.monitorRunDependencies(I2), u4.instantiateWasm) try { - return u4.instantiateWasm(e3, r3); + var e2 = { a: rJ }; + if (I++, u2.monitorRunDependencies && u2.monitorRunDependencies(I), u2.instantiateWasm) try { + return u2.instantiateWasm(e2, r3); } catch (r4) { - b2("Module.instantiateWasm callback failed with error: " + r4), A2(r4); + b("Module.instantiateWasm callback failed with error: " + r4), A(r4); } - return e3 = (function(r4) { - var e4 = a2; + return e2 = (function(r4) { + var e3 = a; try { try { - if (e4 == a2 && l3) new Uint8Array(l3); + if (e3 == a && l2) new Uint8Array(l2); else { - if (L2(e4)) { + if (L(e3)) { try { - var i3 = rx(e4.slice(37)), n3 = new Uint8Array(i3.length); - for (e4 = 0; e4 < i3.length; ++e4) n3[e4] = i3.charCodeAt(e4); - var f4 = n3; + var i2 = rx(e3.slice(37)), n2 = new Uint8Array(i2.length); + for (e3 = 0; e3 < i2.length; ++e3) n2[e3] = i2.charCodeAt(e3); + var f2 = n2; } catch (r5) { throw Error("Converting base64 string to bytes failed."); } - var t3 = f4; - } else t3 = void 0; - if (!t3) throw "sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"; + var t2 = f2; + } else t2 = void 0; + if (!t2) throw "sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"; } } catch (r5) { - O3(r5); + O2(r5); } - var c4 = new o2(), u5 = new k3(r4); - } catch (e5) { - throw b2("failed to compile wasm module: " + (r4 = e5.toString())), (r4.includes("imported Memory") || r4.includes("memory import")) && b2("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."), e5; + var c3 = new o(), u3 = new k2(r4); + } catch (e4) { + throw b("failed to compile wasm module: " + (r4 = e4.toString())), (r4.includes("imported Memory") || r4.includes("memory import")) && b("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."), e4; } - return [u5, c4]; - })(e3), r3(e3[0]), u4.asm; - })(), rq = u4.___getTypeName = rK.F; - u4.__embind_initialize_bindings = rK.G; + return [u3, c3]; + })(e2), r3(e2[0]), u2.asm; + })(), rq = u2.___getTypeName = rK.F; + u2.__embind_initialize_bindings = rK.G; var r$ = rK.H, r0 = rK.J; - function r22() { + function r2() { function r3() { - if (!i2 && (i2 = true, u4.calledRun = true, !h3)) { - if (F(B2), s2(u4), u4.onRuntimeInitialized && u4.onRuntimeInitialized(), u4.postRun) for ("function" == typeof u4.postRun && (u4.postRun = [u4.postRun]); u4.postRun.length; ) { - var r4 = u4.postRun.shift(); - T2.unshift(r4); + if (!i && (i = true, u2.calledRun = true, !h3)) { + if (F(B), s(u2), u2.onRuntimeInitialized && u2.onRuntimeInitialized(), u2.postRun) for ("function" == typeof u2.postRun && (u2.postRun = [u2.postRun]); u2.postRun.length; ) { + var r4 = u2.postRun.shift(); + T.unshift(r4); } - F(T2); + F(T); } } - if (!(0 < I2)) { - if (u4.preRun) for ("function" == typeof u4.preRun && (u4.preRun = [u4.preRun]); u4.preRun.length; ) !(function() { - var r4 = u4.preRun.shift(); - V2.unshift(r4); + if (!(0 < I)) { + if (u2.preRun) for ("function" == typeof u2.preRun && (u2.preRun = [u2.preRun]); u2.preRun.length; ) !(function() { + var r4 = u2.preRun.shift(); + V.unshift(r4); })(); - F(V2), 0 < I2 || (u4.setStatus ? (u4.setStatus("Running..."), setTimeout(function() { + F(V), 0 < I || (u2.setStatus ? (u2.setStatus("Running..."), setTimeout(function() { setTimeout(function() { - u4.setStatus(""); + u2.setStatus(""); }, 1), r3(); }, 1)) : r3()); } } - if (u4.dynCall_jiji = rK.K, X = function r3() { - i2 || r22(), i2 || (X = r3); - }, u4.preInit) for ("function" == typeof u4.preInit && (u4.preInit = [u4.preInit]); 0 < u4.preInit.length; ) u4.preInit.pop()(); - return r22(), e2; + if (u2.dynCall_jiji = rK.K, X = function r3() { + i || r2(), i || (X = r3); + }, u2.preInit) for ("function" == typeof u2.preInit && (u2.preInit = [u2.preInit]); 0 < u2.preInit.length; ) u2.preInit.pop()(); + return r2(), e; }; })(); } }); -// node_modules/sharp/lib/is.js -var require_is = __commonJS({ - "node_modules/sharp/lib/is.js"(exports2, module) { - var defined = function(val) { - return typeof val !== "undefined" && val !== null; - }; - var object = function(val) { - return typeof val === "object"; - }; - var plainObject = function(val) { - return Object.prototype.toString.call(val) === "[object Object]"; - }; - var fn = function(val) { - return typeof val === "function"; - }; - var bool = function(val) { - return typeof val === "boolean"; - }; - var buffer = function(val) { - return val instanceof Buffer; - }; - var typedArray = function(val) { - if (defined(val)) { - switch (val.constructor) { - case Uint8Array: - case Uint8ClampedArray: - case Int8Array: - case Uint16Array: - case Int16Array: - case Uint32Array: - case Int32Array: - case Float32Array: - case Float64Array: - return true; - } - } - return false; - }; - var arrayBuffer = function(val) { - return val instanceof ArrayBuffer; - }; - var string = function(val) { - return typeof val === "string" && val.length > 0; - }; - var number2 = function(val) { - return typeof val === "number" && !Number.isNaN(val); - }; - var integer = function(val) { - return Number.isInteger(val); - }; - var inRange = function(val, min, max2) { - return val >= min && val <= max2; - }; - var inArray = function(val, list) { - return list.includes(val); - }; - var invalidParameterError = function(name, expected, actual) { - return new Error( - `Expected ${expected} for ${name} but received ${actual} of type ${typeof actual}` - ); - }; - var nativeError = function(native, context) { - context.message = native.message; - return context; - }; - module.exports = { - defined, - object, - plainObject, - fn, - bool, - buffer, - typedArray, - arrayBuffer, - string, - number: number2, - integer, - inRange, - inArray, - invalidParameterError, - nativeError - }; - } -}); - -// node_modules/detect-libc/lib/process.js -var require_process = __commonJS({ - "node_modules/detect-libc/lib/process.js"(exports2, module) { - var isLinux = () => process.platform === "linux"; - var report = null; - var getReport = () => { - if (!report) { - if (isLinux() && process.report) { - const orig = process.report.excludeNetwork; - process.report.excludeNetwork = true; - report = process.report.getReport(); - process.report.excludeNetwork = orig; - } else { - report = {}; - } - } - return report; - }; - module.exports = { isLinux, getReport }; - } -}); - -// node_modules/detect-libc/lib/filesystem.js -var require_filesystem = __commonJS({ - "node_modules/detect-libc/lib/filesystem.js"(exports2, module) { - var fs2 = __require("fs"); - var LDD_PATH = "/usr/bin/ldd"; - var SELF_PATH = "/proc/self/exe"; - var MAX_LENGTH = 2048; - var readFileSync = (path2) => { - const fd2 = fs2.openSync(path2, "r"); - const buffer = Buffer.alloc(MAX_LENGTH); - const bytesRead = fs2.readSync(fd2, buffer, 0, MAX_LENGTH, 0); - fs2.close(fd2, () => { - }); - return buffer.subarray(0, bytesRead); - }; - var readFile = (path2) => new Promise((resolve, reject) => { - fs2.open(path2, "r", (err2, fd2) => { - if (err2) { - reject(err2); - } else { - const buffer = Buffer.alloc(MAX_LENGTH); - fs2.read(fd2, buffer, 0, MAX_LENGTH, 0, (_2, bytesRead) => { - resolve(buffer.subarray(0, bytesRead)); - fs2.close(fd2, () => { - }); - }); - } - }); - }); - module.exports = { - LDD_PATH, - SELF_PATH, - readFileSync, - readFile - }; - } -}); - -// node_modules/detect-libc/lib/elf.js -var require_elf = __commonJS({ - "node_modules/detect-libc/lib/elf.js"(exports2, module) { - var interpreterPath = (elf) => { - if (elf.length < 64) { - return null; - } - if (elf.readUInt32BE(0) !== 2135247942) { - return null; - } - if (elf.readUInt8(4) !== 2) { - return null; - } - if (elf.readUInt8(5) !== 1) { - return null; - } - const offset = elf.readUInt32LE(32); - const size = elf.readUInt16LE(54); - const count = elf.readUInt16LE(56); - for (let i2 = 0; i2 < count; i2++) { - const headerOffset = offset + i2 * size; - const type = elf.readUInt32LE(headerOffset); - if (type === 3) { - const fileOffset = elf.readUInt32LE(headerOffset + 8); - const fileSize = elf.readUInt32LE(headerOffset + 32); - return elf.subarray(fileOffset, fileOffset + fileSize).toString().replace(/\0.*$/g, ""); - } - } - return null; - }; - module.exports = { - interpreterPath - }; - } -}); - -// node_modules/detect-libc/lib/detect-libc.js -var require_detect_libc = __commonJS({ - "node_modules/detect-libc/lib/detect-libc.js"(exports2, module) { - var childProcess = __require("child_process"); - var { isLinux, getReport } = require_process(); - var { LDD_PATH, SELF_PATH, readFile, readFileSync } = require_filesystem(); - var { interpreterPath } = require_elf(); - var cachedFamilyInterpreter; - var cachedFamilyFilesystem; - var cachedVersionFilesystem; - var command = "getconf GNU_LIBC_VERSION 2>&1 || true; ldd --version 2>&1 || true"; - var commandOut = ""; - var safeCommand = () => { - if (!commandOut) { - return new Promise((resolve) => { - childProcess.exec(command, (err2, out) => { - commandOut = err2 ? " " : out; - resolve(commandOut); - }); - }); - } - return commandOut; - }; - var safeCommandSync = () => { - if (!commandOut) { - try { - commandOut = childProcess.execSync(command, { encoding: "utf8" }); - } catch (_err) { - commandOut = " "; - } - } - return commandOut; - }; - var GLIBC = "glibc"; - var RE_GLIBC_VERSION = /LIBC[a-z0-9 \-).]*?(\d+\.\d+)/i; - var MUSL = "musl"; - var isFileMusl = (f3) => f3.includes("libc.musl-") || f3.includes("ld-musl-"); - var familyFromReport = () => { - const report = getReport(); - if (report.header && report.header.glibcVersionRuntime) { - return GLIBC; - } - if (Array.isArray(report.sharedObjects)) { - if (report.sharedObjects.some(isFileMusl)) { - return MUSL; - } - } - return null; - }; - var familyFromCommand = (out) => { - const [getconf, ldd1] = out.split(/[\r\n]+/); - if (getconf && getconf.includes(GLIBC)) { - return GLIBC; - } - if (ldd1 && ldd1.includes(MUSL)) { - return MUSL; - } - return null; - }; - var familyFromInterpreterPath = (path2) => { - if (path2) { - if (path2.includes("/ld-musl-")) { - return MUSL; - } else if (path2.includes("/ld-linux-")) { - return GLIBC; - } - } - return null; - }; - var getFamilyFromLddContent = (content) => { - content = content.toString(); - if (content.includes("musl")) { - return MUSL; - } - if (content.includes("GNU C Library")) { - return GLIBC; - } - return null; - }; - var familyFromFilesystem = async () => { - if (cachedFamilyFilesystem !== void 0) { - return cachedFamilyFilesystem; - } - cachedFamilyFilesystem = null; - try { - const lddContent = await readFile(LDD_PATH); - cachedFamilyFilesystem = getFamilyFromLddContent(lddContent); - } catch (e2) { - } - return cachedFamilyFilesystem; - }; - var familyFromFilesystemSync = () => { - if (cachedFamilyFilesystem !== void 0) { - return cachedFamilyFilesystem; - } - cachedFamilyFilesystem = null; - try { - const lddContent = readFileSync(LDD_PATH); - cachedFamilyFilesystem = getFamilyFromLddContent(lddContent); - } catch (e2) { - } - return cachedFamilyFilesystem; - }; - var familyFromInterpreter = async () => { - if (cachedFamilyInterpreter !== void 0) { - return cachedFamilyInterpreter; - } - cachedFamilyInterpreter = null; - try { - const selfContent = await readFile(SELF_PATH); - const path2 = interpreterPath(selfContent); - cachedFamilyInterpreter = familyFromInterpreterPath(path2); - } catch (e2) { - } - return cachedFamilyInterpreter; - }; - var familyFromInterpreterSync = () => { - if (cachedFamilyInterpreter !== void 0) { - return cachedFamilyInterpreter; - } - cachedFamilyInterpreter = null; - try { - const selfContent = readFileSync(SELF_PATH); - const path2 = interpreterPath(selfContent); - cachedFamilyInterpreter = familyFromInterpreterPath(path2); - } catch (e2) { - } - return cachedFamilyInterpreter; - }; - var family = async () => { - let family2 = null; - if (isLinux()) { - family2 = await familyFromInterpreter(); - if (!family2) { - family2 = await familyFromFilesystem(); - if (!family2) { - family2 = familyFromReport(); - } - if (!family2) { - const out = await safeCommand(); - family2 = familyFromCommand(out); - } - } - } - return family2; - }; - var familySync = () => { - let family2 = null; - if (isLinux()) { - family2 = familyFromInterpreterSync(); - if (!family2) { - family2 = familyFromFilesystemSync(); - if (!family2) { - family2 = familyFromReport(); - } - if (!family2) { - const out = safeCommandSync(); - family2 = familyFromCommand(out); - } - } - } - return family2; - }; - var isNonGlibcLinux = async () => isLinux() && await family() !== GLIBC; - var isNonGlibcLinuxSync = () => isLinux() && familySync() !== GLIBC; - var versionFromFilesystem = async () => { - if (cachedVersionFilesystem !== void 0) { - return cachedVersionFilesystem; - } - cachedVersionFilesystem = null; - try { - const lddContent = await readFile(LDD_PATH); - const versionMatch = lddContent.match(RE_GLIBC_VERSION); - if (versionMatch) { - cachedVersionFilesystem = versionMatch[1]; - } - } catch (e2) { - } - return cachedVersionFilesystem; - }; - var versionFromFilesystemSync = () => { - if (cachedVersionFilesystem !== void 0) { - return cachedVersionFilesystem; - } - cachedVersionFilesystem = null; - try { - const lddContent = readFileSync(LDD_PATH); - const versionMatch = lddContent.match(RE_GLIBC_VERSION); - if (versionMatch) { - cachedVersionFilesystem = versionMatch[1]; - } - } catch (e2) { - } - return cachedVersionFilesystem; - }; - var versionFromReport = () => { - const report = getReport(); - if (report.header && report.header.glibcVersionRuntime) { - return report.header.glibcVersionRuntime; - } - return null; - }; - var versionSuffix = (s2) => s2.trim().split(/\s+/)[1]; - var versionFromCommand = (out) => { - const [getconf, ldd1, ldd2] = out.split(/[\r\n]+/); - if (getconf && getconf.includes(GLIBC)) { - return versionSuffix(getconf); - } - if (ldd1 && ldd2 && ldd1.includes(MUSL)) { - return versionSuffix(ldd2); - } - return null; - }; - var version = async () => { - let version2 = null; - if (isLinux()) { - version2 = await versionFromFilesystem(); - if (!version2) { - version2 = versionFromReport(); - } - if (!version2) { - const out = await safeCommand(); - version2 = versionFromCommand(out); - } - } - return version2; - }; - var versionSync = () => { - let version2 = null; - if (isLinux()) { - version2 = versionFromFilesystemSync(); - if (!version2) { - version2 = versionFromReport(); - } - if (!version2) { - const out = safeCommandSync(); - version2 = versionFromCommand(out); - } - } - return version2; - }; - module.exports = { - GLIBC, - MUSL, - family, - familySync, - isNonGlibcLinux, - isNonGlibcLinuxSync, - version, - versionSync - }; - } -}); - -// node_modules/semver/internal/debug.js -var require_debug = __commonJS({ - "node_modules/semver/internal/debug.js"(exports2, module) { - var debug = typeof process === "object" && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error("SEMVER", ...args) : () => { - }; - module.exports = debug; - } -}); - -// node_modules/semver/internal/constants.js -var require_constants = __commonJS({ - "node_modules/semver/internal/constants.js"(exports2, module) { - var SEMVER_SPEC_VERSION = "2.0.0"; - var MAX_LENGTH = 256; - var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */ - 9007199254740991; - var MAX_SAFE_COMPONENT_LENGTH = 16; - var MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6; - var RELEASE_TYPES = [ - "major", - "premajor", - "minor", - "preminor", - "patch", - "prepatch", - "prerelease" - ]; - module.exports = { - MAX_LENGTH, - MAX_SAFE_COMPONENT_LENGTH, - MAX_SAFE_BUILD_LENGTH, - MAX_SAFE_INTEGER, - RELEASE_TYPES, - SEMVER_SPEC_VERSION, - FLAG_INCLUDE_PRERELEASE: 1, - FLAG_LOOSE: 2 - }; - } -}); - -// node_modules/semver/internal/re.js -var require_re = __commonJS({ - "node_modules/semver/internal/re.js"(exports2, module) { - var { - MAX_SAFE_COMPONENT_LENGTH, - MAX_SAFE_BUILD_LENGTH, - MAX_LENGTH - } = require_constants(); - var debug = require_debug(); - exports2 = module.exports = {}; - var re2 = exports2.re = []; - var safeRe = exports2.safeRe = []; - var src = exports2.src = []; - var safeSrc = exports2.safeSrc = []; - var t2 = exports2.t = {}; - var R2 = 0; - var LETTERDASHNUMBER = "[a-zA-Z0-9-]"; - var safeRegexReplacements = [ - ["\\s", 1], - ["\\d", MAX_LENGTH], - [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH] - ]; - var makeSafeRegex = (value) => { - for (const [token, max2] of safeRegexReplacements) { - value = value.split(`${token}*`).join(`${token}{0,${max2}}`).split(`${token}+`).join(`${token}{1,${max2}}`); - } - return value; - }; - var createToken = (name, value, isGlobal) => { - const safe = makeSafeRegex(value); - const index = R2++; - debug(name, index, value); - t2[name] = index; - src[index] = value; - safeSrc[index] = safe; - re2[index] = new RegExp(value, isGlobal ? "g" : void 0); - safeRe[index] = new RegExp(safe, isGlobal ? "g" : void 0); - }; - createToken("NUMERICIDENTIFIER", "0|[1-9]\\d*"); - createToken("NUMERICIDENTIFIERLOOSE", "\\d+"); - createToken("NONNUMERICIDENTIFIER", `\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`); - createToken("MAINVERSION", `(${src[t2.NUMERICIDENTIFIER]})\\.(${src[t2.NUMERICIDENTIFIER]})\\.(${src[t2.NUMERICIDENTIFIER]})`); - createToken("MAINVERSIONLOOSE", `(${src[t2.NUMERICIDENTIFIERLOOSE]})\\.(${src[t2.NUMERICIDENTIFIERLOOSE]})\\.(${src[t2.NUMERICIDENTIFIERLOOSE]})`); - createToken("PRERELEASEIDENTIFIER", `(?:${src[t2.NONNUMERICIDENTIFIER]}|${src[t2.NUMERICIDENTIFIER]})`); - createToken("PRERELEASEIDENTIFIERLOOSE", `(?:${src[t2.NONNUMERICIDENTIFIER]}|${src[t2.NUMERICIDENTIFIERLOOSE]})`); - createToken("PRERELEASE", `(?:-(${src[t2.PRERELEASEIDENTIFIER]}(?:\\.${src[t2.PRERELEASEIDENTIFIER]})*))`); - createToken("PRERELEASELOOSE", `(?:-?(${src[t2.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${src[t2.PRERELEASEIDENTIFIERLOOSE]})*))`); - createToken("BUILDIDENTIFIER", `${LETTERDASHNUMBER}+`); - createToken("BUILD", `(?:\\+(${src[t2.BUILDIDENTIFIER]}(?:\\.${src[t2.BUILDIDENTIFIER]})*))`); - createToken("FULLPLAIN", `v?${src[t2.MAINVERSION]}${src[t2.PRERELEASE]}?${src[t2.BUILD]}?`); - createToken("FULL", `^${src[t2.FULLPLAIN]}$`); - createToken("LOOSEPLAIN", `[v=\\s]*${src[t2.MAINVERSIONLOOSE]}${src[t2.PRERELEASELOOSE]}?${src[t2.BUILD]}?`); - createToken("LOOSE", `^${src[t2.LOOSEPLAIN]}$`); - createToken("GTLT", "((?:<|>)?=?)"); - createToken("XRANGEIDENTIFIERLOOSE", `${src[t2.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`); - createToken("XRANGEIDENTIFIER", `${src[t2.NUMERICIDENTIFIER]}|x|X|\\*`); - createToken("XRANGEPLAIN", `[v=\\s]*(${src[t2.XRANGEIDENTIFIER]})(?:\\.(${src[t2.XRANGEIDENTIFIER]})(?:\\.(${src[t2.XRANGEIDENTIFIER]})(?:${src[t2.PRERELEASE]})?${src[t2.BUILD]}?)?)?`); - createToken("XRANGEPLAINLOOSE", `[v=\\s]*(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:\\.(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:\\.(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:${src[t2.PRERELEASELOOSE]})?${src[t2.BUILD]}?)?)?`); - createToken("XRANGE", `^${src[t2.GTLT]}\\s*${src[t2.XRANGEPLAIN]}$`); - createToken("XRANGELOOSE", `^${src[t2.GTLT]}\\s*${src[t2.XRANGEPLAINLOOSE]}$`); - createToken("COERCEPLAIN", `${"(^|[^\\d])(\\d{1,"}${MAX_SAFE_COMPONENT_LENGTH}})(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`); - createToken("COERCE", `${src[t2.COERCEPLAIN]}(?:$|[^\\d])`); - createToken("COERCEFULL", src[t2.COERCEPLAIN] + `(?:${src[t2.PRERELEASE]})?(?:${src[t2.BUILD]})?(?:$|[^\\d])`); - createToken("COERCERTL", src[t2.COERCE], true); - createToken("COERCERTLFULL", src[t2.COERCEFULL], true); - createToken("LONETILDE", "(?:~>?)"); - createToken("TILDETRIM", `(\\s*)${src[t2.LONETILDE]}\\s+`, true); - exports2.tildeTrimReplace = "$1~"; - createToken("TILDE", `^${src[t2.LONETILDE]}${src[t2.XRANGEPLAIN]}$`); - createToken("TILDELOOSE", `^${src[t2.LONETILDE]}${src[t2.XRANGEPLAINLOOSE]}$`); - createToken("LONECARET", "(?:\\^)"); - createToken("CARETTRIM", `(\\s*)${src[t2.LONECARET]}\\s+`, true); - exports2.caretTrimReplace = "$1^"; - createToken("CARET", `^${src[t2.LONECARET]}${src[t2.XRANGEPLAIN]}$`); - createToken("CARETLOOSE", `^${src[t2.LONECARET]}${src[t2.XRANGEPLAINLOOSE]}$`); - createToken("COMPARATORLOOSE", `^${src[t2.GTLT]}\\s*(${src[t2.LOOSEPLAIN]})$|^$`); - createToken("COMPARATOR", `^${src[t2.GTLT]}\\s*(${src[t2.FULLPLAIN]})$|^$`); - createToken("COMPARATORTRIM", `(\\s*)${src[t2.GTLT]}\\s*(${src[t2.LOOSEPLAIN]}|${src[t2.XRANGEPLAIN]})`, true); - exports2.comparatorTrimReplace = "$1$2$3"; - createToken("HYPHENRANGE", `^\\s*(${src[t2.XRANGEPLAIN]})\\s+-\\s+(${src[t2.XRANGEPLAIN]})\\s*$`); - createToken("HYPHENRANGELOOSE", `^\\s*(${src[t2.XRANGEPLAINLOOSE]})\\s+-\\s+(${src[t2.XRANGEPLAINLOOSE]})\\s*$`); - createToken("STAR", "(<|>)?=?\\s*\\*"); - createToken("GTE0", "^\\s*>=\\s*0\\.0\\.0\\s*$"); - createToken("GTE0PRE", "^\\s*>=\\s*0\\.0\\.0-0\\s*$"); - } -}); - -// node_modules/semver/internal/parse-options.js -var require_parse_options = __commonJS({ - "node_modules/semver/internal/parse-options.js"(exports2, module) { - var looseOption = Object.freeze({ loose: true }); - var emptyOpts = Object.freeze({}); - var parseOptions = (options) => { - if (!options) { - return emptyOpts; - } - if (typeof options !== "object") { - return looseOption; - } - return options; - }; - module.exports = parseOptions; - } -}); - -// node_modules/semver/internal/identifiers.js -var require_identifiers = __commonJS({ - "node_modules/semver/internal/identifiers.js"(exports2, module) { - var numeric = /^[0-9]+$/; - var compareIdentifiers = (a2, b2) => { - if (typeof a2 === "number" && typeof b2 === "number") { - return a2 === b2 ? 0 : a2 < b2 ? -1 : 1; - } - const anum = numeric.test(a2); - const bnum = numeric.test(b2); - if (anum && bnum) { - a2 = +a2; - b2 = +b2; - } - return a2 === b2 ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a2 < b2 ? -1 : 1; - }; - var rcompareIdentifiers = (a2, b2) => compareIdentifiers(b2, a2); - module.exports = { - compareIdentifiers, - rcompareIdentifiers - }; - } -}); - -// node_modules/semver/classes/semver.js -var require_semver = __commonJS({ - "node_modules/semver/classes/semver.js"(exports2, module) { - var debug = require_debug(); - var { MAX_LENGTH, MAX_SAFE_INTEGER } = require_constants(); - var { safeRe: re2, t: t2 } = require_re(); - var parseOptions = require_parse_options(); - var { compareIdentifiers } = require_identifiers(); - var SemVer = class _SemVer { - constructor(version, options) { - options = parseOptions(options); - if (version instanceof _SemVer) { - if (version.loose === !!options.loose && version.includePrerelease === !!options.includePrerelease) { - return version; - } else { - version = version.version; - } - } else if (typeof version !== "string") { - throw new TypeError(`Invalid version. Must be a string. Got type "${typeof version}".`); - } - if (version.length > MAX_LENGTH) { - throw new TypeError( - `version is longer than ${MAX_LENGTH} characters` - ); - } - debug("SemVer", version, options); - this.options = options; - this.loose = !!options.loose; - this.includePrerelease = !!options.includePrerelease; - const m3 = version.trim().match(options.loose ? re2[t2.LOOSE] : re2[t2.FULL]); - if (!m3) { - throw new TypeError(`Invalid Version: ${version}`); - } - this.raw = version; - this.major = +m3[1]; - this.minor = +m3[2]; - this.patch = +m3[3]; - if (this.major > MAX_SAFE_INTEGER || this.major < 0) { - throw new TypeError("Invalid major version"); - } - if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { - throw new TypeError("Invalid minor version"); - } - if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { - throw new TypeError("Invalid patch version"); - } - if (!m3[4]) { - this.prerelease = []; - } else { - this.prerelease = m3[4].split(".").map((id) => { - if (/^[0-9]+$/.test(id)) { - const num = +id; - if (num >= 0 && num < MAX_SAFE_INTEGER) { - return num; - } - } - return id; - }); - } - this.build = m3[5] ? m3[5].split(".") : []; - this.format(); - } - format() { - this.version = `${this.major}.${this.minor}.${this.patch}`; - if (this.prerelease.length) { - this.version += `-${this.prerelease.join(".")}`; - } - return this.version; - } - toString() { - return this.version; - } - compare(other) { - debug("SemVer.compare", this.version, this.options, other); - if (!(other instanceof _SemVer)) { - if (typeof other === "string" && other === this.version) { - return 0; - } - other = new _SemVer(other, this.options); - } - if (other.version === this.version) { - return 0; - } - return this.compareMain(other) || this.comparePre(other); - } - compareMain(other) { - if (!(other instanceof _SemVer)) { - other = new _SemVer(other, this.options); - } - if (this.major < other.major) { - return -1; - } - if (this.major > other.major) { - return 1; - } - if (this.minor < other.minor) { - return -1; - } - if (this.minor > other.minor) { - return 1; - } - if (this.patch < other.patch) { - return -1; - } - if (this.patch > other.patch) { - return 1; - } - return 0; - } - comparePre(other) { - if (!(other instanceof _SemVer)) { - other = new _SemVer(other, this.options); - } - if (this.prerelease.length && !other.prerelease.length) { - return -1; - } else if (!this.prerelease.length && other.prerelease.length) { - return 1; - } else if (!this.prerelease.length && !other.prerelease.length) { - return 0; - } - let i2 = 0; - do { - const a2 = this.prerelease[i2]; - const b2 = other.prerelease[i2]; - debug("prerelease compare", i2, a2, b2); - if (a2 === void 0 && b2 === void 0) { - return 0; - } else if (b2 === void 0) { - return 1; - } else if (a2 === void 0) { - return -1; - } else if (a2 === b2) { - continue; - } else { - return compareIdentifiers(a2, b2); - } - } while (++i2); - } - compareBuild(other) { - if (!(other instanceof _SemVer)) { - other = new _SemVer(other, this.options); - } - let i2 = 0; - do { - const a2 = this.build[i2]; - const b2 = other.build[i2]; - debug("build compare", i2, a2, b2); - if (a2 === void 0 && b2 === void 0) { - return 0; - } else if (b2 === void 0) { - return 1; - } else if (a2 === void 0) { - return -1; - } else if (a2 === b2) { - continue; - } else { - return compareIdentifiers(a2, b2); - } - } while (++i2); - } - // preminor will bump the version up to the next minor release, and immediately - // down to pre-release. premajor and prepatch work the same way. - inc(release, identifier, identifierBase) { - if (release.startsWith("pre")) { - if (!identifier && identifierBase === false) { - throw new Error("invalid increment argument: identifier is empty"); - } - if (identifier) { - const match = `-${identifier}`.match(this.options.loose ? re2[t2.PRERELEASELOOSE] : re2[t2.PRERELEASE]); - if (!match || match[1] !== identifier) { - throw new Error(`invalid identifier: ${identifier}`); - } - } - } - switch (release) { - case "premajor": - this.prerelease.length = 0; - this.patch = 0; - this.minor = 0; - this.major++; - this.inc("pre", identifier, identifierBase); - break; - case "preminor": - this.prerelease.length = 0; - this.patch = 0; - this.minor++; - this.inc("pre", identifier, identifierBase); - break; - case "prepatch": - this.prerelease.length = 0; - this.inc("patch", identifier, identifierBase); - this.inc("pre", identifier, identifierBase); - break; - // If the input is a non-prerelease version, this acts the same as - // prepatch. - case "prerelease": - if (this.prerelease.length === 0) { - this.inc("patch", identifier, identifierBase); - } - this.inc("pre", identifier, identifierBase); - break; - case "release": - if (this.prerelease.length === 0) { - throw new Error(`version ${this.raw} is not a prerelease`); - } - this.prerelease.length = 0; - break; - case "major": - if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) { - this.major++; - } - this.minor = 0; - this.patch = 0; - this.prerelease = []; - break; - case "minor": - if (this.patch !== 0 || this.prerelease.length === 0) { - this.minor++; - } - this.patch = 0; - this.prerelease = []; - break; - case "patch": - if (this.prerelease.length === 0) { - this.patch++; - } - this.prerelease = []; - break; - // This probably shouldn't be used publicly. - // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction. - case "pre": { - const base = Number(identifierBase) ? 1 : 0; - if (this.prerelease.length === 0) { - this.prerelease = [base]; - } else { - let i2 = this.prerelease.length; - while (--i2 >= 0) { - if (typeof this.prerelease[i2] === "number") { - this.prerelease[i2]++; - i2 = -2; - } - } - if (i2 === -1) { - if (identifier === this.prerelease.join(".") && identifierBase === false) { - throw new Error("invalid increment argument: identifier already exists"); - } - this.prerelease.push(base); - } - } - if (identifier) { - let prerelease = [identifier, base]; - if (identifierBase === false) { - prerelease = [identifier]; - } - if (compareIdentifiers(this.prerelease[0], identifier) === 0) { - if (isNaN(this.prerelease[1])) { - this.prerelease = prerelease; - } - } else { - this.prerelease = prerelease; - } - } - break; - } - default: - throw new Error(`invalid increment argument: ${release}`); - } - this.raw = this.format(); - if (this.build.length) { - this.raw += `+${this.build.join(".")}`; - } - return this; - } - }; - module.exports = SemVer; - } -}); - -// node_modules/semver/functions/parse.js -var require_parse2 = __commonJS({ - "node_modules/semver/functions/parse.js"(exports2, module) { - var SemVer = require_semver(); - var parse2 = (version, options, throwErrors = false) => { - if (version instanceof SemVer) { - return version; - } - try { - return new SemVer(version, options); - } catch (er) { - if (!throwErrors) { - return null; - } - throw er; - } - }; - module.exports = parse2; - } -}); - -// node_modules/semver/functions/coerce.js -var require_coerce = __commonJS({ - "node_modules/semver/functions/coerce.js"(exports2, module) { - var SemVer = require_semver(); - var parse2 = require_parse2(); - var { safeRe: re2, t: t2 } = require_re(); - var coerce = (version, options) => { - if (version instanceof SemVer) { - return version; - } - if (typeof version === "number") { - version = String(version); - } - if (typeof version !== "string") { - return null; - } - options = options || {}; - let match = null; - if (!options.rtl) { - match = version.match(options.includePrerelease ? re2[t2.COERCEFULL] : re2[t2.COERCE]); - } else { - const coerceRtlRegex = options.includePrerelease ? re2[t2.COERCERTLFULL] : re2[t2.COERCERTL]; - let next; - while ((next = coerceRtlRegex.exec(version)) && (!match || match.index + match[0].length !== version.length)) { - if (!match || next.index + next[0].length !== match.index + match[0].length) { - match = next; - } - coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length; - } - coerceRtlRegex.lastIndex = -1; - } - if (match === null) { - return null; - } - const major = match[2]; - const minor = match[3] || "0"; - const patch = match[4] || "0"; - const prerelease = options.includePrerelease && match[5] ? `-${match[5]}` : ""; - const build = options.includePrerelease && match[6] ? `+${match[6]}` : ""; - return parse2(`${major}.${minor}.${patch}${prerelease}${build}`, options); - }; - module.exports = coerce; - } -}); - -// node_modules/semver/functions/compare.js -var require_compare = __commonJS({ - "node_modules/semver/functions/compare.js"(exports2, module) { - var SemVer = require_semver(); - var compare = (a2, b2, loose) => new SemVer(a2, loose).compare(new SemVer(b2, loose)); - module.exports = compare; - } -}); - -// node_modules/semver/functions/gte.js -var require_gte = __commonJS({ - "node_modules/semver/functions/gte.js"(exports2, module) { - var compare = require_compare(); - var gte = (a2, b2, loose) => compare(a2, b2, loose) >= 0; - module.exports = gte; - } -}); - -// node_modules/semver/internal/lrucache.js -var require_lrucache = __commonJS({ - "node_modules/semver/internal/lrucache.js"(exports2, module) { - var LRUCache = class { - constructor() { - this.max = 1e3; - this.map = /* @__PURE__ */ new Map(); - } - get(key) { - const value = this.map.get(key); - if (value === void 0) { - return void 0; - } else { - this.map.delete(key); - this.map.set(key, value); - return value; - } - } - delete(key) { - return this.map.delete(key); - } - set(key, value) { - const deleted = this.delete(key); - if (!deleted && value !== void 0) { - if (this.map.size >= this.max) { - const firstKey = this.map.keys().next().value; - this.delete(firstKey); - } - this.map.set(key, value); - } - return this; - } - }; - module.exports = LRUCache; - } -}); - -// node_modules/semver/functions/eq.js -var require_eq = __commonJS({ - "node_modules/semver/functions/eq.js"(exports2, module) { - var compare = require_compare(); - var eq = (a2, b2, loose) => compare(a2, b2, loose) === 0; - module.exports = eq; - } -}); - -// node_modules/semver/functions/neq.js -var require_neq = __commonJS({ - "node_modules/semver/functions/neq.js"(exports2, module) { - var compare = require_compare(); - var neq = (a2, b2, loose) => compare(a2, b2, loose) !== 0; - module.exports = neq; - } -}); - -// node_modules/semver/functions/gt.js -var require_gt = __commonJS({ - "node_modules/semver/functions/gt.js"(exports2, module) { - var compare = require_compare(); - var gt2 = (a2, b2, loose) => compare(a2, b2, loose) > 0; - module.exports = gt2; - } -}); - -// node_modules/semver/functions/lt.js -var require_lt = __commonJS({ - "node_modules/semver/functions/lt.js"(exports2, module) { - var compare = require_compare(); - var lt = (a2, b2, loose) => compare(a2, b2, loose) < 0; - module.exports = lt; - } -}); - -// node_modules/semver/functions/lte.js -var require_lte = __commonJS({ - "node_modules/semver/functions/lte.js"(exports2, module) { - var compare = require_compare(); - var lte = (a2, b2, loose) => compare(a2, b2, loose) <= 0; - module.exports = lte; - } -}); - -// node_modules/semver/functions/cmp.js -var require_cmp = __commonJS({ - "node_modules/semver/functions/cmp.js"(exports2, module) { - var eq = require_eq(); - var neq = require_neq(); - var gt2 = require_gt(); - var gte = require_gte(); - var lt = require_lt(); - var lte = require_lte(); - var cmp = (a2, op, b2, loose) => { - switch (op) { - case "===": - if (typeof a2 === "object") { - a2 = a2.version; - } - if (typeof b2 === "object") { - b2 = b2.version; - } - return a2 === b2; - case "!==": - if (typeof a2 === "object") { - a2 = a2.version; - } - if (typeof b2 === "object") { - b2 = b2.version; - } - return a2 !== b2; - case "": - case "=": - case "==": - return eq(a2, b2, loose); - case "!=": - return neq(a2, b2, loose); - case ">": - return gt2(a2, b2, loose); - case ">=": - return gte(a2, b2, loose); - case "<": - return lt(a2, b2, loose); - case "<=": - return lte(a2, b2, loose); - default: - throw new TypeError(`Invalid operator: ${op}`); - } - }; - module.exports = cmp; - } -}); - -// node_modules/semver/classes/comparator.js -var require_comparator = __commonJS({ - "node_modules/semver/classes/comparator.js"(exports2, module) { - var ANY = /* @__PURE__ */ Symbol("SemVer ANY"); - var Comparator = class _Comparator { - static get ANY() { - return ANY; - } - constructor(comp, options) { - options = parseOptions(options); - if (comp instanceof _Comparator) { - if (comp.loose === !!options.loose) { - return comp; - } else { - comp = comp.value; - } - } - comp = comp.trim().split(/\s+/).join(" "); - debug("comparator", comp, options); - this.options = options; - this.loose = !!options.loose; - this.parse(comp); - if (this.semver === ANY) { - this.value = ""; - } else { - this.value = this.operator + this.semver.version; - } - debug("comp", this); - } - parse(comp) { - const r2 = this.options.loose ? re2[t2.COMPARATORLOOSE] : re2[t2.COMPARATOR]; - const m3 = comp.match(r2); - if (!m3) { - throw new TypeError(`Invalid comparator: ${comp}`); - } - this.operator = m3[1] !== void 0 ? m3[1] : ""; - if (this.operator === "=") { - this.operator = ""; - } - if (!m3[2]) { - this.semver = ANY; - } else { - this.semver = new SemVer(m3[2], this.options.loose); - } - } - toString() { - return this.value; - } - test(version) { - debug("Comparator.test", version, this.options.loose); - if (this.semver === ANY || version === ANY) { - return true; - } - if (typeof version === "string") { - try { - version = new SemVer(version, this.options); - } catch (er) { - return false; - } - } - return cmp(version, this.operator, this.semver, this.options); - } - intersects(comp, options) { - if (!(comp instanceof _Comparator)) { - throw new TypeError("a Comparator is required"); - } - if (this.operator === "") { - if (this.value === "") { - return true; - } - return new Range(comp.value, options).test(this.value); - } else if (comp.operator === "") { - if (comp.value === "") { - return true; - } - return new Range(this.value, options).test(comp.semver); - } - options = parseOptions(options); - if (options.includePrerelease && (this.value === "<0.0.0-0" || comp.value === "<0.0.0-0")) { - return false; - } - if (!options.includePrerelease && (this.value.startsWith("<0.0.0") || comp.value.startsWith("<0.0.0"))) { - return false; - } - if (this.operator.startsWith(">") && comp.operator.startsWith(">")) { - return true; - } - if (this.operator.startsWith("<") && comp.operator.startsWith("<")) { - return true; - } - if (this.semver.version === comp.semver.version && this.operator.includes("=") && comp.operator.includes("=")) { - return true; - } - if (cmp(this.semver, "<", comp.semver, options) && this.operator.startsWith(">") && comp.operator.startsWith("<")) { - return true; - } - if (cmp(this.semver, ">", comp.semver, options) && this.operator.startsWith("<") && comp.operator.startsWith(">")) { - return true; - } - return false; - } - }; - module.exports = Comparator; - var parseOptions = require_parse_options(); - var { safeRe: re2, t: t2 } = require_re(); - var cmp = require_cmp(); - var debug = require_debug(); - var SemVer = require_semver(); - var Range = require_range(); - } -}); - -// node_modules/semver/classes/range.js -var require_range = __commonJS({ - "node_modules/semver/classes/range.js"(exports2, module) { - var SPACE_CHARACTERS = /\s+/g; - var Range = class _Range { - constructor(range, options) { - options = parseOptions(options); - if (range instanceof _Range) { - if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) { - return range; - } else { - return new _Range(range.raw, options); - } - } - if (range instanceof Comparator) { - this.raw = range.value; - this.set = [[range]]; - this.formatted = void 0; - return this; - } - this.options = options; - this.loose = !!options.loose; - this.includePrerelease = !!options.includePrerelease; - this.raw = range.trim().replace(SPACE_CHARACTERS, " "); - this.set = this.raw.split("||").map((r2) => this.parseRange(r2.trim())).filter((c3) => c3.length); - if (!this.set.length) { - throw new TypeError(`Invalid SemVer Range: ${this.raw}`); - } - if (this.set.length > 1) { - const first = this.set[0]; - this.set = this.set.filter((c3) => !isNullSet(c3[0])); - if (this.set.length === 0) { - this.set = [first]; - } else if (this.set.length > 1) { - for (const c3 of this.set) { - if (c3.length === 1 && isAny(c3[0])) { - this.set = [c3]; - break; - } - } - } - } - this.formatted = void 0; - } - get range() { - if (this.formatted === void 0) { - this.formatted = ""; - for (let i2 = 0; i2 < this.set.length; i2++) { - if (i2 > 0) { - this.formatted += "||"; - } - const comps = this.set[i2]; - for (let k3 = 0; k3 < comps.length; k3++) { - if (k3 > 0) { - this.formatted += " "; - } - this.formatted += comps[k3].toString().trim(); - } - } - } - return this.formatted; - } - format() { - return this.range; - } - toString() { - return this.range; - } - parseRange(range) { - const memoOpts = (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) | (this.options.loose && FLAG_LOOSE); - const memoKey = memoOpts + ":" + range; - const cached = cache.get(memoKey); - if (cached) { - return cached; - } - const loose = this.options.loose; - const hr = loose ? re2[t2.HYPHENRANGELOOSE] : re2[t2.HYPHENRANGE]; - range = range.replace(hr, hyphenReplace(this.options.includePrerelease)); - debug("hyphen replace", range); - range = range.replace(re2[t2.COMPARATORTRIM], comparatorTrimReplace); - debug("comparator trim", range); - range = range.replace(re2[t2.TILDETRIM], tildeTrimReplace); - debug("tilde trim", range); - range = range.replace(re2[t2.CARETTRIM], caretTrimReplace); - debug("caret trim", range); - let rangeList = range.split(" ").map((comp) => parseComparator(comp, this.options)).join(" ").split(/\s+/).map((comp) => replaceGTE0(comp, this.options)); - if (loose) { - rangeList = rangeList.filter((comp) => { - debug("loose invalid filter", comp, this.options); - return !!comp.match(re2[t2.COMPARATORLOOSE]); - }); - } - debug("range list", rangeList); - const rangeMap = /* @__PURE__ */ new Map(); - const comparators = rangeList.map((comp) => new Comparator(comp, this.options)); - for (const comp of comparators) { - if (isNullSet(comp)) { - return [comp]; - } - rangeMap.set(comp.value, comp); - } - if (rangeMap.size > 1 && rangeMap.has("")) { - rangeMap.delete(""); - } - const result = [...rangeMap.values()]; - cache.set(memoKey, result); - return result; - } - intersects(range, options) { - if (!(range instanceof _Range)) { - throw new TypeError("a Range is required"); - } - return this.set.some((thisComparators) => { - return isSatisfiable(thisComparators, options) && range.set.some((rangeComparators) => { - return isSatisfiable(rangeComparators, options) && thisComparators.every((thisComparator) => { - return rangeComparators.every((rangeComparator) => { - return thisComparator.intersects(rangeComparator, options); - }); - }); - }); - }); - } - // if ANY of the sets match ALL of its comparators, then pass - test(version) { - if (!version) { - return false; - } - if (typeof version === "string") { - try { - version = new SemVer(version, this.options); - } catch (er) { - return false; - } - } - for (let i2 = 0; i2 < this.set.length; i2++) { - if (testSet(this.set[i2], version, this.options)) { - return true; - } - } - return false; - } - }; - module.exports = Range; - var LRU = require_lrucache(); - var cache = new LRU(); - var parseOptions = require_parse_options(); - var Comparator = require_comparator(); - var debug = require_debug(); - var SemVer = require_semver(); - var { - safeRe: re2, - t: t2, - comparatorTrimReplace, - tildeTrimReplace, - caretTrimReplace - } = require_re(); - var { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require_constants(); - var isNullSet = (c3) => c3.value === "<0.0.0-0"; - var isAny = (c3) => c3.value === ""; - var isSatisfiable = (comparators, options) => { - let result = true; - const remainingComparators = comparators.slice(); - let testComparator = remainingComparators.pop(); - while (result && remainingComparators.length) { - result = remainingComparators.every((otherComparator) => { - return testComparator.intersects(otherComparator, options); - }); - testComparator = remainingComparators.pop(); - } - return result; - }; - var parseComparator = (comp, options) => { - comp = comp.replace(re2[t2.BUILD], ""); - debug("comp", comp, options); - comp = replaceCarets(comp, options); - debug("caret", comp); - comp = replaceTildes(comp, options); - debug("tildes", comp); - comp = replaceXRanges(comp, options); - debug("xrange", comp); - comp = replaceStars(comp, options); - debug("stars", comp); - return comp; - }; - var isX = (id) => !id || id.toLowerCase() === "x" || id === "*"; - var replaceTildes = (comp, options) => { - return comp.trim().split(/\s+/).map((c3) => replaceTilde(c3, options)).join(" "); - }; - var replaceTilde = (comp, options) => { - const r2 = options.loose ? re2[t2.TILDELOOSE] : re2[t2.TILDE]; - return comp.replace(r2, (_2, M2, m3, p2, pr) => { - debug("tilde", comp, _2, M2, m3, p2, pr); - let ret; - if (isX(M2)) { - ret = ""; - } else if (isX(m3)) { - ret = `>=${M2}.0.0 <${+M2 + 1}.0.0-0`; - } else if (isX(p2)) { - ret = `>=${M2}.${m3}.0 <${M2}.${+m3 + 1}.0-0`; - } else if (pr) { - debug("replaceTilde pr", pr); - ret = `>=${M2}.${m3}.${p2}-${pr} <${M2}.${+m3 + 1}.0-0`; - } else { - ret = `>=${M2}.${m3}.${p2} <${M2}.${+m3 + 1}.0-0`; - } - debug("tilde return", ret); - return ret; - }); - }; - var replaceCarets = (comp, options) => { - return comp.trim().split(/\s+/).map((c3) => replaceCaret(c3, options)).join(" "); - }; - var replaceCaret = (comp, options) => { - debug("caret", comp, options); - const r2 = options.loose ? re2[t2.CARETLOOSE] : re2[t2.CARET]; - const z2 = options.includePrerelease ? "-0" : ""; - return comp.replace(r2, (_2, M2, m3, p2, pr) => { - debug("caret", comp, _2, M2, m3, p2, pr); - let ret; - if (isX(M2)) { - ret = ""; - } else if (isX(m3)) { - ret = `>=${M2}.0.0${z2} <${+M2 + 1}.0.0-0`; - } else if (isX(p2)) { - if (M2 === "0") { - ret = `>=${M2}.${m3}.0${z2} <${M2}.${+m3 + 1}.0-0`; - } else { - ret = `>=${M2}.${m3}.0${z2} <${+M2 + 1}.0.0-0`; - } - } else if (pr) { - debug("replaceCaret pr", pr); - if (M2 === "0") { - if (m3 === "0") { - ret = `>=${M2}.${m3}.${p2}-${pr} <${M2}.${m3}.${+p2 + 1}-0`; - } else { - ret = `>=${M2}.${m3}.${p2}-${pr} <${M2}.${+m3 + 1}.0-0`; - } - } else { - ret = `>=${M2}.${m3}.${p2}-${pr} <${+M2 + 1}.0.0-0`; - } - } else { - debug("no pr"); - if (M2 === "0") { - if (m3 === "0") { - ret = `>=${M2}.${m3}.${p2}${z2} <${M2}.${m3}.${+p2 + 1}-0`; - } else { - ret = `>=${M2}.${m3}.${p2}${z2} <${M2}.${+m3 + 1}.0-0`; - } - } else { - ret = `>=${M2}.${m3}.${p2} <${+M2 + 1}.0.0-0`; - } - } - debug("caret return", ret); - return ret; - }); - }; - var replaceXRanges = (comp, options) => { - debug("replaceXRanges", comp, options); - return comp.split(/\s+/).map((c3) => replaceXRange(c3, options)).join(" "); - }; - var replaceXRange = (comp, options) => { - comp = comp.trim(); - const r2 = options.loose ? re2[t2.XRANGELOOSE] : re2[t2.XRANGE]; - return comp.replace(r2, (ret, gtlt, M2, m3, p2, pr) => { - debug("xRange", comp, ret, gtlt, M2, m3, p2, pr); - const xM = isX(M2); - const xm = xM || isX(m3); - const xp = xm || isX(p2); - const anyX = xp; - if (gtlt === "=" && anyX) { - gtlt = ""; - } - pr = options.includePrerelease ? "-0" : ""; - if (xM) { - if (gtlt === ">" || gtlt === "<") { - ret = "<0.0.0-0"; - } else { - ret = "*"; - } - } else if (gtlt && anyX) { - if (xm) { - m3 = 0; - } - p2 = 0; - if (gtlt === ">") { - gtlt = ">="; - if (xm) { - M2 = +M2 + 1; - m3 = 0; - p2 = 0; - } else { - m3 = +m3 + 1; - p2 = 0; - } - } else if (gtlt === "<=") { - gtlt = "<"; - if (xm) { - M2 = +M2 + 1; - } else { - m3 = +m3 + 1; - } - } - if (gtlt === "<") { - pr = "-0"; - } - ret = `${gtlt + M2}.${m3}.${p2}${pr}`; - } else if (xm) { - ret = `>=${M2}.0.0${pr} <${+M2 + 1}.0.0-0`; - } else if (xp) { - ret = `>=${M2}.${m3}.0${pr} <${M2}.${+m3 + 1}.0-0`; - } - debug("xRange return", ret); - return ret; - }); - }; - var replaceStars = (comp, options) => { - debug("replaceStars", comp, options); - return comp.trim().replace(re2[t2.STAR], ""); - }; - var replaceGTE0 = (comp, options) => { - debug("replaceGTE0", comp, options); - return comp.trim().replace(re2[options.includePrerelease ? t2.GTE0PRE : t2.GTE0], ""); - }; - var hyphenReplace = (incPr) => ($0, from, fM, fm, fp, fpr, fb, to2, tM, tm, tp, tpr) => { - if (isX(fM)) { - from = ""; - } else if (isX(fm)) { - from = `>=${fM}.0.0${incPr ? "-0" : ""}`; - } else if (isX(fp)) { - from = `>=${fM}.${fm}.0${incPr ? "-0" : ""}`; - } else if (fpr) { - from = `>=${from}`; - } else { - from = `>=${from}${incPr ? "-0" : ""}`; - } - if (isX(tM)) { - to2 = ""; - } else if (isX(tm)) { - to2 = `<${+tM + 1}.0.0-0`; - } else if (isX(tp)) { - to2 = `<${tM}.${+tm + 1}.0-0`; - } else if (tpr) { - to2 = `<=${tM}.${tm}.${tp}-${tpr}`; - } else if (incPr) { - to2 = `<${tM}.${tm}.${+tp + 1}-0`; - } else { - to2 = `<=${to2}`; - } - return `${from} ${to2}`.trim(); - }; - var testSet = (set, version, options) => { - for (let i2 = 0; i2 < set.length; i2++) { - if (!set[i2].test(version)) { - return false; - } - } - if (version.prerelease.length && !options.includePrerelease) { - for (let i2 = 0; i2 < set.length; i2++) { - debug(set[i2].semver); - if (set[i2].semver === Comparator.ANY) { - continue; - } - if (set[i2].semver.prerelease.length > 0) { - const allowed = set[i2].semver; - if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) { - return true; - } - } - } - return false; - } - return true; - }; - } -}); - -// node_modules/semver/functions/satisfies.js -var require_satisfies = __commonJS({ - "node_modules/semver/functions/satisfies.js"(exports2, module) { - var Range = require_range(); - var satisfies = (version, range, options) => { - try { - range = new Range(range, options); - } catch (er) { - return false; - } - return range.test(version); - }; - module.exports = satisfies; - } -}); - -// node_modules/sharp/package.json -var require_package = __commonJS({ - "node_modules/sharp/package.json"(exports2, module) { - module.exports = { - name: "sharp", - description: "High performance Node.js image processing, the fastest module to resize JPEG, PNG, WebP, GIF, AVIF and TIFF images", - version: "0.33.5", - author: "Lovell Fuller ", - homepage: "https://sharp.pixelplumbing.com", - contributors: [ - "Pierre Inglebert ", - "Jonathan Ong ", - "Chanon Sajjamanochai ", - "Juliano Julio ", - "Daniel Gasienica ", - "Julian Walker ", - "Amit Pitaru ", - "Brandon Aaron ", - "Andreas Lind ", - "Maurus Cuelenaere ", - "Linus Unneb\xE4ck ", - "Victor Mateevitsi ", - "Alaric Holloway ", - "Bernhard K. Weisshuhn ", - "Chris Riley ", - "David Carley ", - "John Tobin ", - "Kenton Gray ", - "Felix B\xFCnemann ", - "Samy Al Zahrani ", - "Chintan Thakkar ", - "F. Orlando Galashan ", - "Kleis Auke Wolthuizen ", - "Matt Hirsch ", - "Matthias Thoemmes ", - "Patrick Paskaris ", - "J\xE9r\xE9my Lal ", - "Rahul Nanwani ", - "Alice Monday ", - "Kristo Jorgenson ", - "YvesBos ", - "Guy Maliar ", - "Nicolas Coden ", - "Matt Parrish ", - "Marcel Bretschneider ", - "Matthew McEachen ", - "Jarda Kot\u011B\u0161ovec ", - "Kenric D'Souza ", - "Oleh Aleinyk ", - "Marcel Bretschneider ", - "Andrea Bianco ", - "Rik Heywood ", - "Thomas Parisot ", - "Nathan Graves ", - "Tom Lokhorst ", - "Espen Hovlandsdal ", - "Sylvain Dumont ", - "Alun Davies ", - "Aidan Hoolachan ", - "Axel Eirola ", - "Freezy ", - "Daiz ", - "Julian Aubourg ", - "Keith Belovay ", - "Michael B. Klein ", - "Jordan Prudhomme ", - "Ilya Ovdin ", - "Andargor ", - "Paul Neave ", - "Brendan Kennedy ", - "Brychan Bennett-Odlum ", - "Edward Silverton ", - "Roman Malieiev ", - "Tomas Szabo ", - "Robert O'Rourke ", - "Guillermo Alfonso Varela Chouci\xF1o ", - "Christian Flintrup ", - "Manan Jadhav ", - "Leon Radley ", - "alza54 ", - "Jacob Smith ", - "Michael Nutt ", - "Brad Parham ", - "Taneli Vatanen ", - "Joris Dugu\xE9 ", - "Chris Banks ", - "Ompal Singh ", - "Brodan ", - "Ankur Parihar ", - "Brahim Ait elhaj ", - "Mart Jansink ", - "Lachlan Newman ", - "Dennis Beatty ", - "Ingvar Stepanyan ", - "Don Denton " - ], - scripts: { - install: "node install/check", - clean: "rm -rf src/build/ .nyc_output/ coverage/ test/fixtures/output.*", - test: "npm run test-lint && npm run test-unit && npm run test-licensing && npm run test-types", - "test-lint": "semistandard && cpplint", - "test-unit": "nyc --reporter=lcov --reporter=text --check-coverage --branches=100 mocha", - "test-licensing": 'license-checker --production --summary --onlyAllow="Apache-2.0;BSD;ISC;LGPL-3.0-or-later;MIT"', - "test-leak": "./test/leak/leak.sh", - "test-types": "tsd", - "package-from-local-build": "node npm/from-local-build", - "package-from-github-release": "node npm/from-github-release", - "docs-build": "node docs/build && node docs/search-index/build", - "docs-serve": "cd docs && npx serve", - "docs-publish": "cd docs && npx firebase-tools deploy --project pixelplumbing --only hosting:pixelplumbing-sharp" - }, - type: "commonjs", - main: "lib/index.js", - types: "lib/index.d.ts", - files: [ - "install", - "lib", - "src/*.{cc,h,gyp}" - ], - repository: { - type: "git", - url: "git://github.com/lovell/sharp.git" - }, - keywords: [ - "jpeg", - "png", - "webp", - "avif", - "tiff", - "gif", - "svg", - "jp2", - "dzi", - "image", - "resize", - "thumbnail", - "crop", - "embed", - "libvips", - "vips" - ], - dependencies: { - color: "^4.2.3", - "detect-libc": "^2.0.3", - semver: "^7.6.3" - }, - optionalDependencies: { - "@img/sharp-darwin-arm64": "0.33.5", - "@img/sharp-darwin-x64": "0.33.5", - "@img/sharp-libvips-darwin-arm64": "1.0.4", - "@img/sharp-libvips-darwin-x64": "1.0.4", - "@img/sharp-libvips-linux-arm": "1.0.5", - "@img/sharp-libvips-linux-arm64": "1.0.4", - "@img/sharp-libvips-linux-s390x": "1.0.4", - "@img/sharp-libvips-linux-x64": "1.0.4", - "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", - "@img/sharp-libvips-linuxmusl-x64": "1.0.4", - "@img/sharp-linux-arm": "0.33.5", - "@img/sharp-linux-arm64": "0.33.5", - "@img/sharp-linux-s390x": "0.33.5", - "@img/sharp-linux-x64": "0.33.5", - "@img/sharp-linuxmusl-arm64": "0.33.5", - "@img/sharp-linuxmusl-x64": "0.33.5", - "@img/sharp-wasm32": "0.33.5", - "@img/sharp-win32-ia32": "0.33.5", - "@img/sharp-win32-x64": "0.33.5" - }, - devDependencies: { - "@emnapi/runtime": "^1.2.0", - "@img/sharp-libvips-dev": "1.0.4", - "@img/sharp-libvips-dev-wasm32": "1.0.5", - "@img/sharp-libvips-win32-ia32": "1.0.4", - "@img/sharp-libvips-win32-x64": "1.0.4", - "@types/node": "*", - async: "^3.2.5", - cc: "^3.0.1", - emnapi: "^1.2.0", - "exif-reader": "^2.0.1", - "extract-zip": "^2.0.1", - icc: "^3.0.0", - "jsdoc-to-markdown": "^8.0.3", - "license-checker": "^25.0.1", - mocha: "^10.7.3", - "node-addon-api": "^8.1.0", - nyc: "^17.0.0", - prebuild: "^13.0.1", - semistandard: "^17.0.0", - "tar-fs": "^3.0.6", - tsd: "^0.31.1" - }, - license: "Apache-2.0", - engines: { - node: "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - config: { - libvips: ">=8.15.3" - }, - funding: { - url: "https://opencollective.com/libvips" - }, - binary: { - napi_versions: [ - 9 - ] - }, - semistandard: { - env: [ - "mocha" - ] - }, - cc: { - linelength: "120", - filter: [ - "build/include" - ] - }, - nyc: { - include: [ - "lib" - ] - }, - tsd: { - directory: "test/types/" - } - }; - } -}); - -// node_modules/sharp/lib/libvips.js -var require_libvips = __commonJS({ - "node_modules/sharp/lib/libvips.js"(exports2, module) { - var { spawnSync } = __require("child_process"); - var { createHash } = __require("crypto"); - var semverCoerce = require_coerce(); - var semverGreaterThanOrEqualTo = require_gte(); - var semverSatisfies = require_satisfies(); - var detectLibc = require_detect_libc(); - var { config, engines, optionalDependencies } = require_package(); - var minimumLibvipsVersionLabelled = process.env.npm_package_config_libvips || /* istanbul ignore next */ - config.libvips; - var minimumLibvipsVersion = semverCoerce(minimumLibvipsVersionLabelled).version; - var prebuiltPlatforms = [ - "darwin-arm64", - "darwin-x64", - "linux-arm", - "linux-arm64", - "linux-s390x", - "linux-x64", - "linuxmusl-arm64", - "linuxmusl-x64", - "win32-ia32", - "win32-x64" - ]; - var spawnSyncOptions = { - encoding: "utf8", - shell: true - }; - var log = (item) => { - if (item instanceof Error) { - console.error(`sharp: Installation error: ${item.message}`); - } else { - console.log(`sharp: ${item}`); - } - }; - var runtimeLibc = () => detectLibc.isNonGlibcLinuxSync() ? detectLibc.familySync() : ""; - var runtimePlatformArch = () => `${process.platform}${runtimeLibc()}-${process.arch}`; - var buildPlatformArch = () => { - if (isEmscripten()) { - return "wasm32"; - } - const { npm_config_arch, npm_config_platform, npm_config_libc } = process.env; - const libc = typeof npm_config_libc === "string" ? npm_config_libc : runtimeLibc(); - return `${npm_config_platform || process.platform}${libc}-${npm_config_arch || process.arch}`; - }; - var buildSharpLibvipsIncludeDir = () => { - try { - return __require(`@img/sharp-libvips-dev-${buildPlatformArch()}/include`); - } catch { - try { - return __require("@img/sharp-libvips-dev/include"); - } catch { - } - } - return ""; - }; - var buildSharpLibvipsCPlusPlusDir = () => { - try { - return __require("@img/sharp-libvips-dev/cplusplus"); - } catch { - } - return ""; - }; - var buildSharpLibvipsLibDir = () => { - try { - return __require(`@img/sharp-libvips-dev-${buildPlatformArch()}/lib`); - } catch { - try { - return __require(`@img/sharp-libvips-${buildPlatformArch()}/lib`); - } catch { - } - } - return ""; - }; - var isUnsupportedNodeRuntime = () => { - if (process.release?.name === "node" && process.versions) { - if (!semverSatisfies(process.versions.node, engines.node)) { - return { found: process.versions.node, expected: engines.node }; - } - } - }; - var isEmscripten = () => { - const { CC } = process.env; - return Boolean(CC && CC.endsWith("/emcc")); - }; - var isRosetta = () => { - if (process.platform === "darwin" && process.arch === "x64") { - const translated = spawnSync("sysctl sysctl.proc_translated", spawnSyncOptions).stdout; - return (translated || "").trim() === "sysctl.proc_translated: 1"; - } - return false; - }; - var sha512 = (s2) => createHash("sha512").update(s2).digest("hex"); - var yarnLocator = () => { - try { - const identHash = sha512(`imgsharp-libvips-${buildPlatformArch()}`); - const npmVersion = semverCoerce(optionalDependencies[`@img/sharp-libvips-${buildPlatformArch()}`]).version; - return sha512(`${identHash}npm:${npmVersion}`).slice(0, 10); - } catch { - } - return ""; - }; - var spawnRebuild = () => spawnSync(`node-gyp rebuild --directory=src ${isEmscripten() ? "--nodedir=emscripten" : ""}`, { - ...spawnSyncOptions, - stdio: "inherit" - }).status; - var globalLibvipsVersion = () => { - if (process.platform !== "win32") { - const globalLibvipsVersion2 = spawnSync("pkg-config --modversion vips-cpp", { - ...spawnSyncOptions, - env: { - ...process.env, - PKG_CONFIG_PATH: pkgConfigPath() - } - }).stdout; - return (globalLibvipsVersion2 || "").trim(); - } else { - return ""; - } - }; - var pkgConfigPath = () => { - if (process.platform !== "win32") { - const brewPkgConfigPath = spawnSync( - 'which brew >/dev/null 2>&1 && brew environment --plain | grep PKG_CONFIG_LIBDIR | cut -d" " -f2', - spawnSyncOptions - ).stdout || ""; - return [ - brewPkgConfigPath.trim(), - process.env.PKG_CONFIG_PATH, - "/usr/local/lib/pkgconfig", - "/usr/lib/pkgconfig", - "/usr/local/libdata/pkgconfig", - "/usr/libdata/pkgconfig" - ].filter(Boolean).join(":"); - } else { - return ""; - } - }; - var skipSearch = (status, reason, logger) => { - if (logger) { - logger(`Detected ${reason}, skipping search for globally-installed libvips`); - } - return status; - }; - var useGlobalLibvips = (logger) => { - if (Boolean(process.env.SHARP_IGNORE_GLOBAL_LIBVIPS) === true) { - return skipSearch(false, "SHARP_IGNORE_GLOBAL_LIBVIPS", logger); - } - if (Boolean(process.env.SHARP_FORCE_GLOBAL_LIBVIPS) === true) { - return skipSearch(true, "SHARP_FORCE_GLOBAL_LIBVIPS", logger); - } - if (isRosetta()) { - return skipSearch(false, "Rosetta", logger); - } - const globalVipsVersion = globalLibvipsVersion(); - return !!globalVipsVersion && /* istanbul ignore next */ - semverGreaterThanOrEqualTo(globalVipsVersion, minimumLibvipsVersion); - }; - module.exports = { - minimumLibvipsVersion, - prebuiltPlatforms, - buildPlatformArch, - buildSharpLibvipsIncludeDir, - buildSharpLibvipsCPlusPlusDir, - buildSharpLibvipsLibDir, - isUnsupportedNodeRuntime, - runtimePlatformArch, - log, - yarnLocator, - spawnRebuild, - globalLibvipsVersion, - pkgConfigPath, - useGlobalLibvips - }; - } -}); - -// node_modules/sharp/lib/sharp.js -var require_sharp = __commonJS({ - "node_modules/sharp/lib/sharp.js"(exports2, module) { - var { familySync, versionSync } = require_detect_libc(); - var { runtimePlatformArch, isUnsupportedNodeRuntime, prebuiltPlatforms, minimumLibvipsVersion } = require_libvips(); - var runtimePlatform = runtimePlatformArch(); - var paths = [ - `../src/build/Release/sharp-${runtimePlatform}.node`, - "../src/build/Release/sharp-wasm32.node", - `@img/sharp-${runtimePlatform}/sharp.node`, - "@img/sharp-wasm32/sharp.node" - ]; - var sharp2; - var errors = []; - for (const path2 of paths) { - try { - sharp2 = __require(path2); - break; - } catch (err2) { - errors.push(err2); - } - } - if (sharp2) { - module.exports = sharp2; - } else { - const [isLinux, isMacOs, isWindows] = ["linux", "darwin", "win32"].map((os3) => runtimePlatform.startsWith(os3)); - const help = [`Could not load the "sharp" module using the ${runtimePlatform} runtime`]; - errors.forEach((err2) => { - if (err2.code !== "MODULE_NOT_FOUND") { - help.push(`${err2.code}: ${err2.message}`); - } - }); - const messages = errors.map((err2) => err2.message).join(" "); - help.push("Possible solutions:"); - if (isUnsupportedNodeRuntime()) { - const { found, expected } = isUnsupportedNodeRuntime(); - help.push( - "- Please upgrade Node.js:", - ` Found ${found}`, - ` Requires ${expected}` - ); - } else if (prebuiltPlatforms.includes(runtimePlatform)) { - const [os3, cpu] = runtimePlatform.split("-"); - const libc = os3.endsWith("musl") ? " --libc=musl" : ""; - help.push( - "- Ensure optional dependencies can be installed:", - " npm install --include=optional sharp", - "- Ensure your package manager supports multi-platform installation:", - " See https://sharp.pixelplumbing.com/install#cross-platform", - "- Add platform-specific dependencies:", - ` npm install --os=${os3.replace("musl", "")}${libc} --cpu=${cpu} sharp` - ); - } else { - help.push( - `- Manually install libvips >= ${minimumLibvipsVersion}`, - "- Add experimental WebAssembly-based dependencies:", - " npm install --cpu=wasm32 sharp", - " npm install @img/sharp-wasm32" - ); - } - if (isLinux && /(symbol not found|CXXABI_)/i.test(messages)) { - try { - const { config } = __require(`@img/sharp-libvips-${runtimePlatform}/package`); - const libcFound = `${familySync()} ${versionSync()}`; - const libcRequires = `${config.musl ? "musl" : "glibc"} ${config.musl || config.glibc}`; - help.push( - "- Update your OS:", - ` Found ${libcFound}`, - ` Requires ${libcRequires}` - ); - } catch (errEngines) { - } - } - if (isLinux && /\/snap\/core[0-9]{2}/.test(messages)) { - help.push( - "- Remove the Node.js Snap, which does not support native modules", - " snap remove node" - ); - } - if (isMacOs && /Incompatible library version/.test(messages)) { - help.push( - "- Update Homebrew:", - " brew update && brew upgrade vips" - ); - } - if (errors.some((err2) => err2.code === "ERR_DLOPEN_DISABLED")) { - help.push("- Run Node.js without using the --no-addons flag"); - } - if (isWindows && /The specified procedure could not be found/.test(messages)) { - help.push( - "- Using the canvas package on Windows?", - " See https://sharp.pixelplumbing.com/install#canvas-and-windows", - "- Check for outdated versions of sharp in the dependency tree:", - " npm ls sharp" - ); - } - help.push( - "- Consult the installation documentation:", - " See https://sharp.pixelplumbing.com/install" - ); - throw new Error(help.join("\n")); - } - } -}); - -// node_modules/sharp/lib/constructor.js -var require_constructor = __commonJS({ - "node_modules/sharp/lib/constructor.js"(exports2, module) { - var util = __require("util"); - var stream = __require("stream"); - var is = require_is(); - require_sharp(); - var debuglog = util.debuglog("sharp"); - var Sharp = function(input, options) { - if (arguments.length === 1 && !is.defined(input)) { - throw new Error("Invalid input"); - } - if (!(this instanceof Sharp)) { - return new Sharp(input, options); - } - stream.Duplex.call(this); - this.options = { - // resize options - topOffsetPre: -1, - leftOffsetPre: -1, - widthPre: -1, - heightPre: -1, - topOffsetPost: -1, - leftOffsetPost: -1, - widthPost: -1, - heightPost: -1, - width: -1, - height: -1, - canvas: "crop", - position: 0, - resizeBackground: [0, 0, 0, 255], - useExifOrientation: false, - angle: 0, - rotationAngle: 0, - rotationBackground: [0, 0, 0, 255], - rotateBeforePreExtract: false, - flip: false, - flop: false, - extendTop: 0, - extendBottom: 0, - extendLeft: 0, - extendRight: 0, - extendBackground: [0, 0, 0, 255], - extendWith: "background", - withoutEnlargement: false, - withoutReduction: false, - affineMatrix: [], - affineBackground: [0, 0, 0, 255], - affineIdx: 0, - affineIdy: 0, - affineOdx: 0, - affineOdy: 0, - affineInterpolator: this.constructor.interpolators.bilinear, - kernel: "lanczos3", - fastShrinkOnLoad: true, - // operations - tint: [-1, 0, 0, 0], - flatten: false, - flattenBackground: [0, 0, 0], - unflatten: false, - negate: false, - negateAlpha: true, - medianSize: 0, - blurSigma: 0, - precision: "integer", - minAmpl: 0.2, - sharpenSigma: 0, - sharpenM1: 1, - sharpenM2: 2, - sharpenX1: 2, - sharpenY2: 10, - sharpenY3: 20, - threshold: 0, - thresholdGrayscale: true, - trimBackground: [], - trimThreshold: -1, - trimLineArt: false, - gamma: 0, - gammaOut: 0, - greyscale: false, - normalise: false, - normaliseLower: 1, - normaliseUpper: 99, - claheWidth: 0, - claheHeight: 0, - claheMaxSlope: 3, - brightness: 1, - saturation: 1, - hue: 0, - lightness: 0, - booleanBufferIn: null, - booleanFileIn: "", - joinChannelIn: [], - extractChannel: -1, - removeAlpha: false, - ensureAlpha: -1, - colourspace: "srgb", - colourspacePipeline: "last", - composite: [], - // output - fileOut: "", - formatOut: "input", - streamOut: false, - keepMetadata: 0, - withMetadataOrientation: -1, - withMetadataDensity: 0, - withIccProfile: "", - withExif: {}, - withExifMerge: true, - resolveWithObject: false, - // output format - jpegQuality: 80, - jpegProgressive: false, - jpegChromaSubsampling: "4:2:0", - jpegTrellisQuantisation: false, - jpegOvershootDeringing: false, - jpegOptimiseScans: false, - jpegOptimiseCoding: true, - jpegQuantisationTable: 0, - pngProgressive: false, - pngCompressionLevel: 6, - pngAdaptiveFiltering: false, - pngPalette: false, - pngQuality: 100, - pngEffort: 7, - pngBitdepth: 8, - pngDither: 1, - jp2Quality: 80, - jp2TileHeight: 512, - jp2TileWidth: 512, - jp2Lossless: false, - jp2ChromaSubsampling: "4:4:4", - webpQuality: 80, - webpAlphaQuality: 100, - webpLossless: false, - webpNearLossless: false, - webpSmartSubsample: false, - webpPreset: "default", - webpEffort: 4, - webpMinSize: false, - webpMixed: false, - gifBitdepth: 8, - gifEffort: 7, - gifDither: 1, - gifInterFrameMaxError: 0, - gifInterPaletteMaxError: 3, - gifReuse: true, - gifProgressive: false, - tiffQuality: 80, - tiffCompression: "jpeg", - tiffPredictor: "horizontal", - tiffPyramid: false, - tiffMiniswhite: false, - tiffBitdepth: 8, - tiffTile: false, - tiffTileHeight: 256, - tiffTileWidth: 256, - tiffXres: 1, - tiffYres: 1, - tiffResolutionUnit: "inch", - heifQuality: 50, - heifLossless: false, - heifCompression: "av1", - heifEffort: 4, - heifChromaSubsampling: "4:4:4", - heifBitdepth: 8, - jxlDistance: 1, - jxlDecodingTier: 0, - jxlEffort: 7, - jxlLossless: false, - rawDepth: "uchar", - tileSize: 256, - tileOverlap: 0, - tileContainer: "fs", - tileLayout: "dz", - tileFormat: "last", - tileDepth: "last", - tileAngle: 0, - tileSkipBlanks: -1, - tileBackground: [255, 255, 255, 255], - tileCentre: false, - tileId: "https://example.com/iiif", - tileBasename: "", - timeoutSeconds: 0, - linearA: [], - linearB: [], - // Function to notify of libvips warnings - debuglog: (warning) => { - this.emit("warning", warning); - debuglog(warning); - }, - // Function to notify of queue length changes - queueListener: function(queueLength) { - Sharp.queue.emit("change", queueLength); - } - }; - this.options.input = this._createInputDescriptor(input, options, { allowStream: true }); - return this; - }; - Object.setPrototypeOf(Sharp.prototype, stream.Duplex.prototype); - Object.setPrototypeOf(Sharp, stream.Duplex); - function clone() { - const clone2 = this.constructor.call(); - const { debuglog: debuglog2, queueListener, ...options } = this.options; - clone2.options = structuredClone(options); - clone2.options.debuglog = debuglog2; - clone2.options.queueListener = queueListener; - if (this._isStreamInput()) { - this.on("finish", () => { - this._flattenBufferIn(); - clone2.options.input.buffer = this.options.input.buffer; - clone2.emit("finish"); - }); - } - return clone2; - } - Object.assign(Sharp.prototype, { clone }); - module.exports = Sharp; - } -}); - -// node_modules/is-arrayish/index.js -var require_is_arrayish = __commonJS({ - "node_modules/is-arrayish/index.js"(exports2, module) { - module.exports = function isArrayish(obj) { - if (!obj || typeof obj === "string") { - return false; - } - return obj instanceof Array || Array.isArray(obj) || obj.length >= 0 && (obj.splice instanceof Function || Object.getOwnPropertyDescriptor(obj, obj.length - 1) && obj.constructor.name !== "String"); - }; - } -}); - -// node_modules/simple-swizzle/index.js -var require_simple_swizzle = __commonJS({ - "node_modules/simple-swizzle/index.js"(exports2, module) { - var isArrayish = require_is_arrayish(); - var concat = Array.prototype.concat; - var slice = Array.prototype.slice; - var swizzle = module.exports = function swizzle2(args) { - var results = []; - for (var i2 = 0, len = args.length; i2 < len; i2++) { - var arg = args[i2]; - if (isArrayish(arg)) { - results = concat.call(results, slice.call(arg)); - } else { - results.push(arg); - } - } - return results; - }; - swizzle.wrap = function(fn) { - return function() { - return fn(swizzle(arguments)); - }; - }; - } -}); - -// node_modules/color-string/index.js -var require_color_string = __commonJS({ - "node_modules/color-string/index.js"(exports2, module) { - var colorNames = require_color_name(); - var swizzle = require_simple_swizzle(); - var hasOwnProperty = Object.hasOwnProperty; - var reverseNames = /* @__PURE__ */ Object.create(null); - for (name in colorNames) { - if (hasOwnProperty.call(colorNames, name)) { - reverseNames[colorNames[name]] = name; - } - } - var name; - var cs = module.exports = { - to: {}, - get: {} - }; - cs.get = function(string) { - var prefix = string.substring(0, 3).toLowerCase(); - var val; - var model; - switch (prefix) { - case "hsl": - val = cs.get.hsl(string); - model = "hsl"; - break; - case "hwb": - val = cs.get.hwb(string); - model = "hwb"; - break; - default: - val = cs.get.rgb(string); - model = "rgb"; - break; - } - if (!val) { - return null; - } - return { model, value: val }; - }; - cs.get.rgb = function(string) { - if (!string) { - return null; - } - var abbr = /^#([a-f0-9]{3,4})$/i; - var hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i; - var rgba = /^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/; - var per = /^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/; - var keyword = /^(\w+)$/; - var rgb = [0, 0, 0, 1]; - var match; - var i2; - var hexAlpha; - if (match = string.match(hex)) { - hexAlpha = match[2]; - match = match[1]; - for (i2 = 0; i2 < 3; i2++) { - var i22 = i2 * 2; - rgb[i2] = parseInt(match.slice(i22, i22 + 2), 16); - } - if (hexAlpha) { - rgb[3] = parseInt(hexAlpha, 16) / 255; - } - } else if (match = string.match(abbr)) { - match = match[1]; - hexAlpha = match[3]; - for (i2 = 0; i2 < 3; i2++) { - rgb[i2] = parseInt(match[i2] + match[i2], 16); - } - if (hexAlpha) { - rgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255; - } - } else if (match = string.match(rgba)) { - for (i2 = 0; i2 < 3; i2++) { - rgb[i2] = parseInt(match[i2 + 1], 0); - } - if (match[4]) { - if (match[5]) { - rgb[3] = parseFloat(match[4]) * 0.01; - } else { - rgb[3] = parseFloat(match[4]); - } - } - } else if (match = string.match(per)) { - for (i2 = 0; i2 < 3; i2++) { - rgb[i2] = Math.round(parseFloat(match[i2 + 1]) * 2.55); - } - if (match[4]) { - if (match[5]) { - rgb[3] = parseFloat(match[4]) * 0.01; - } else { - rgb[3] = parseFloat(match[4]); - } - } - } else if (match = string.match(keyword)) { - if (match[1] === "transparent") { - return [0, 0, 0, 0]; - } - if (!hasOwnProperty.call(colorNames, match[1])) { - return null; - } - rgb = colorNames[match[1]]; - rgb[3] = 1; - return rgb; - } else { - return null; - } - for (i2 = 0; i2 < 3; i2++) { - rgb[i2] = clamp2(rgb[i2], 0, 255); - } - rgb[3] = clamp2(rgb[3], 0, 1); - return rgb; - }; - cs.get.hsl = function(string) { - if (!string) { - return null; - } - var hsl = /^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/; - var match = string.match(hsl); - if (match) { - var alpha = parseFloat(match[4]); - var h3 = (parseFloat(match[1]) % 360 + 360) % 360; - var s2 = clamp2(parseFloat(match[2]), 0, 100); - var l3 = clamp2(parseFloat(match[3]), 0, 100); - var a2 = clamp2(isNaN(alpha) ? 1 : alpha, 0, 1); - return [h3, s2, l3, a2]; - } - return null; - }; - cs.get.hwb = function(string) { - if (!string) { - return null; - } - var hwb = /^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/; - var match = string.match(hwb); - if (match) { - var alpha = parseFloat(match[4]); - var h3 = (parseFloat(match[1]) % 360 + 360) % 360; - var w3 = clamp2(parseFloat(match[2]), 0, 100); - var b2 = clamp2(parseFloat(match[3]), 0, 100); - var a2 = clamp2(isNaN(alpha) ? 1 : alpha, 0, 1); - return [h3, w3, b2, a2]; - } - return null; - }; - cs.to.hex = function() { - var rgba = swizzle(arguments); - return "#" + hexDouble(rgba[0]) + hexDouble(rgba[1]) + hexDouble(rgba[2]) + (rgba[3] < 1 ? hexDouble(Math.round(rgba[3] * 255)) : ""); - }; - cs.to.rgb = function() { - var rgba = swizzle(arguments); - return rgba.length < 4 || rgba[3] === 1 ? "rgb(" + Math.round(rgba[0]) + ", " + Math.round(rgba[1]) + ", " + Math.round(rgba[2]) + ")" : "rgba(" + Math.round(rgba[0]) + ", " + Math.round(rgba[1]) + ", " + Math.round(rgba[2]) + ", " + rgba[3] + ")"; - }; - cs.to.rgb.percent = function() { - var rgba = swizzle(arguments); - var r2 = Math.round(rgba[0] / 255 * 100); - var g3 = Math.round(rgba[1] / 255 * 100); - var b2 = Math.round(rgba[2] / 255 * 100); - return rgba.length < 4 || rgba[3] === 1 ? "rgb(" + r2 + "%, " + g3 + "%, " + b2 + "%)" : "rgba(" + r2 + "%, " + g3 + "%, " + b2 + "%, " + rgba[3] + ")"; - }; - cs.to.hsl = function() { - var hsla = swizzle(arguments); - return hsla.length < 4 || hsla[3] === 1 ? "hsl(" + hsla[0] + ", " + hsla[1] + "%, " + hsla[2] + "%)" : "hsla(" + hsla[0] + ", " + hsla[1] + "%, " + hsla[2] + "%, " + hsla[3] + ")"; - }; - cs.to.hwb = function() { - var hwba = swizzle(arguments); - var a2 = ""; - if (hwba.length >= 4 && hwba[3] !== 1) { - a2 = ", " + hwba[3]; - } - return "hwb(" + hwba[0] + ", " + hwba[1] + "%, " + hwba[2] + "%" + a2 + ")"; - }; - cs.to.keyword = function(rgb) { - return reverseNames[rgb.slice(0, 3)]; - }; - function clamp2(num, min, max2) { - return Math.min(Math.max(min, num), max2); - } - function hexDouble(num) { - var str = Math.round(num).toString(16).toUpperCase(); - return str.length < 2 ? "0" + str : str; - } - } -}); - -// node_modules/color-convert/conversions.js -var require_conversions = __commonJS({ - "node_modules/color-convert/conversions.js"(exports2, module) { - var cssKeywords = require_color_name(); - var reverseKeywords = {}; - for (const key of Object.keys(cssKeywords)) { - reverseKeywords[cssKeywords[key]] = key; - } - var convert = { - rgb: { channels: 3, labels: "rgb" }, - hsl: { channels: 3, labels: "hsl" }, - hsv: { channels: 3, labels: "hsv" }, - hwb: { channels: 3, labels: "hwb" }, - cmyk: { channels: 4, labels: "cmyk" }, - xyz: { channels: 3, labels: "xyz" }, - lab: { channels: 3, labels: "lab" }, - lch: { channels: 3, labels: "lch" }, - hex: { channels: 1, labels: ["hex"] }, - keyword: { channels: 1, labels: ["keyword"] }, - ansi16: { channels: 1, labels: ["ansi16"] }, - ansi256: { channels: 1, labels: ["ansi256"] }, - hcg: { channels: 3, labels: ["h", "c", "g"] }, - apple: { channels: 3, labels: ["r16", "g16", "b16"] }, - gray: { channels: 1, labels: ["gray"] } - }; - module.exports = convert; - for (const model of Object.keys(convert)) { - if (!("channels" in convert[model])) { - throw new Error("missing channels property: " + model); - } - if (!("labels" in convert[model])) { - throw new Error("missing channel labels property: " + model); - } - if (convert[model].labels.length !== convert[model].channels) { - throw new Error("channel and label counts mismatch: " + model); - } - const { channels, labels } = convert[model]; - delete convert[model].channels; - delete convert[model].labels; - Object.defineProperty(convert[model], "channels", { value: channels }); - Object.defineProperty(convert[model], "labels", { value: labels }); - } - convert.rgb.hsl = function(rgb) { - const r2 = rgb[0] / 255; - const g3 = rgb[1] / 255; - const b2 = rgb[2] / 255; - const min = Math.min(r2, g3, b2); - const max2 = Math.max(r2, g3, b2); - const delta = max2 - min; - let h3; - let s2; - if (max2 === min) { - h3 = 0; - } else if (r2 === max2) { - h3 = (g3 - b2) / delta; - } else if (g3 === max2) { - h3 = 2 + (b2 - r2) / delta; - } else if (b2 === max2) { - h3 = 4 + (r2 - g3) / delta; - } - h3 = Math.min(h3 * 60, 360); - if (h3 < 0) { - h3 += 360; - } - const l3 = (min + max2) / 2; - if (max2 === min) { - s2 = 0; - } else if (l3 <= 0.5) { - s2 = delta / (max2 + min); - } else { - s2 = delta / (2 - max2 - min); - } - return [h3, s2 * 100, l3 * 100]; - }; - convert.rgb.hsv = function(rgb) { - let rdif; - let gdif; - let bdif; - let h3; - let s2; - const r2 = rgb[0] / 255; - const g3 = rgb[1] / 255; - const b2 = rgb[2] / 255; - const v3 = Math.max(r2, g3, b2); - const diff = v3 - Math.min(r2, g3, b2); - const diffc = function(c3) { - return (v3 - c3) / 6 / diff + 1 / 2; - }; - if (diff === 0) { - h3 = 0; - s2 = 0; - } else { - s2 = diff / v3; - rdif = diffc(r2); - gdif = diffc(g3); - bdif = diffc(b2); - if (r2 === v3) { - h3 = bdif - gdif; - } else if (g3 === v3) { - h3 = 1 / 3 + rdif - bdif; - } else if (b2 === v3) { - h3 = 2 / 3 + gdif - rdif; - } - if (h3 < 0) { - h3 += 1; - } else if (h3 > 1) { - h3 -= 1; - } - } - return [ - h3 * 360, - s2 * 100, - v3 * 100 - ]; - }; - convert.rgb.hwb = function(rgb) { - const r2 = rgb[0]; - const g3 = rgb[1]; - let b2 = rgb[2]; - const h3 = convert.rgb.hsl(rgb)[0]; - const w3 = 1 / 255 * Math.min(r2, Math.min(g3, b2)); - b2 = 1 - 1 / 255 * Math.max(r2, Math.max(g3, b2)); - return [h3, w3 * 100, b2 * 100]; - }; - convert.rgb.cmyk = function(rgb) { - const r2 = rgb[0] / 255; - const g3 = rgb[1] / 255; - const b2 = rgb[2] / 255; - const k3 = Math.min(1 - r2, 1 - g3, 1 - b2); - const c3 = (1 - r2 - k3) / (1 - k3) || 0; - const m3 = (1 - g3 - k3) / (1 - k3) || 0; - const y2 = (1 - b2 - k3) / (1 - k3) || 0; - return [c3 * 100, m3 * 100, y2 * 100, k3 * 100]; - }; - function comparativeDistance(x3, y2) { - return (x3[0] - y2[0]) ** 2 + (x3[1] - y2[1]) ** 2 + (x3[2] - y2[2]) ** 2; - } - convert.rgb.keyword = function(rgb) { - const reversed = reverseKeywords[rgb]; - if (reversed) { - return reversed; - } - let currentClosestDistance = Infinity; - let currentClosestKeyword; - for (const keyword of Object.keys(cssKeywords)) { - const value = cssKeywords[keyword]; - const distance = comparativeDistance(rgb, value); - if (distance < currentClosestDistance) { - currentClosestDistance = distance; - currentClosestKeyword = keyword; - } - } - return currentClosestKeyword; - }; - convert.keyword.rgb = function(keyword) { - return cssKeywords[keyword]; - }; - convert.rgb.xyz = function(rgb) { - let r2 = rgb[0] / 255; - let g3 = rgb[1] / 255; - let b2 = rgb[2] / 255; - r2 = r2 > 0.04045 ? ((r2 + 0.055) / 1.055) ** 2.4 : r2 / 12.92; - g3 = g3 > 0.04045 ? ((g3 + 0.055) / 1.055) ** 2.4 : g3 / 12.92; - b2 = b2 > 0.04045 ? ((b2 + 0.055) / 1.055) ** 2.4 : b2 / 12.92; - const x3 = r2 * 0.4124 + g3 * 0.3576 + b2 * 0.1805; - const y2 = r2 * 0.2126 + g3 * 0.7152 + b2 * 0.0722; - const z2 = r2 * 0.0193 + g3 * 0.1192 + b2 * 0.9505; - return [x3 * 100, y2 * 100, z2 * 100]; - }; - convert.rgb.lab = function(rgb) { - const xyz = convert.rgb.xyz(rgb); - let x3 = xyz[0]; - let y2 = xyz[1]; - let z2 = xyz[2]; - x3 /= 95.047; - y2 /= 100; - z2 /= 108.883; - x3 = x3 > 8856e-6 ? x3 ** (1 / 3) : 7.787 * x3 + 16 / 116; - y2 = y2 > 8856e-6 ? y2 ** (1 / 3) : 7.787 * y2 + 16 / 116; - z2 = z2 > 8856e-6 ? z2 ** (1 / 3) : 7.787 * z2 + 16 / 116; - const l3 = 116 * y2 - 16; - const a2 = 500 * (x3 - y2); - const b2 = 200 * (y2 - z2); - return [l3, a2, b2]; - }; - convert.hsl.rgb = function(hsl) { - const h3 = hsl[0] / 360; - const s2 = hsl[1] / 100; - const l3 = hsl[2] / 100; - let t2; - let t3; - let val; - if (s2 === 0) { - val = l3 * 255; - return [val, val, val]; - } - if (l3 < 0.5) { - t2 = l3 * (1 + s2); - } else { - t2 = l3 + s2 - l3 * s2; - } - const t1 = 2 * l3 - t2; - const rgb = [0, 0, 0]; - for (let i2 = 0; i2 < 3; i2++) { - t3 = h3 + 1 / 3 * -(i2 - 1); - if (t3 < 0) { - t3++; - } - if (t3 > 1) { - t3--; - } - if (6 * t3 < 1) { - val = t1 + (t2 - t1) * 6 * t3; - } else if (2 * t3 < 1) { - val = t2; - } else if (3 * t3 < 2) { - val = t1 + (t2 - t1) * (2 / 3 - t3) * 6; - } else { - val = t1; - } - rgb[i2] = val * 255; - } - return rgb; - }; - convert.hsl.hsv = function(hsl) { - const h3 = hsl[0]; - let s2 = hsl[1] / 100; - let l3 = hsl[2] / 100; - let smin = s2; - const lmin = Math.max(l3, 0.01); - l3 *= 2; - s2 *= l3 <= 1 ? l3 : 2 - l3; - smin *= lmin <= 1 ? lmin : 2 - lmin; - const v3 = (l3 + s2) / 2; - const sv = l3 === 0 ? 2 * smin / (lmin + smin) : 2 * s2 / (l3 + s2); - return [h3, sv * 100, v3 * 100]; - }; - convert.hsv.rgb = function(hsv) { - const h3 = hsv[0] / 60; - const s2 = hsv[1] / 100; - let v3 = hsv[2] / 100; - const hi2 = Math.floor(h3) % 6; - const f3 = h3 - Math.floor(h3); - const p2 = 255 * v3 * (1 - s2); - const q2 = 255 * v3 * (1 - s2 * f3); - const t2 = 255 * v3 * (1 - s2 * (1 - f3)); - v3 *= 255; - switch (hi2) { - case 0: - return [v3, t2, p2]; - case 1: - return [q2, v3, p2]; - case 2: - return [p2, v3, t2]; - case 3: - return [p2, q2, v3]; - case 4: - return [t2, p2, v3]; - case 5: - return [v3, p2, q2]; - } - }; - convert.hsv.hsl = function(hsv) { - const h3 = hsv[0]; - const s2 = hsv[1] / 100; - const v3 = hsv[2] / 100; - const vmin = Math.max(v3, 0.01); - let sl2; - let l3; - l3 = (2 - s2) * v3; - const lmin = (2 - s2) * vmin; - sl2 = s2 * vmin; - sl2 /= lmin <= 1 ? lmin : 2 - lmin; - sl2 = sl2 || 0; - l3 /= 2; - return [h3, sl2 * 100, l3 * 100]; - }; - convert.hwb.rgb = function(hwb) { - const h3 = hwb[0] / 360; - let wh = hwb[1] / 100; - let bl2 = hwb[2] / 100; - const ratio = wh + bl2; - let f3; - if (ratio > 1) { - wh /= ratio; - bl2 /= ratio; - } - const i2 = Math.floor(6 * h3); - const v3 = 1 - bl2; - f3 = 6 * h3 - i2; - if ((i2 & 1) !== 0) { - f3 = 1 - f3; - } - const n2 = wh + f3 * (v3 - wh); - let r2; - let g3; - let b2; - switch (i2) { - default: - case 6: - case 0: - r2 = v3; - g3 = n2; - b2 = wh; - break; - case 1: - r2 = n2; - g3 = v3; - b2 = wh; - break; - case 2: - r2 = wh; - g3 = v3; - b2 = n2; - break; - case 3: - r2 = wh; - g3 = n2; - b2 = v3; - break; - case 4: - r2 = n2; - g3 = wh; - b2 = v3; - break; - case 5: - r2 = v3; - g3 = wh; - b2 = n2; - break; - } - return [r2 * 255, g3 * 255, b2 * 255]; - }; - convert.cmyk.rgb = function(cmyk) { - const c3 = cmyk[0] / 100; - const m3 = cmyk[1] / 100; - const y2 = cmyk[2] / 100; - const k3 = cmyk[3] / 100; - const r2 = 1 - Math.min(1, c3 * (1 - k3) + k3); - const g3 = 1 - Math.min(1, m3 * (1 - k3) + k3); - const b2 = 1 - Math.min(1, y2 * (1 - k3) + k3); - return [r2 * 255, g3 * 255, b2 * 255]; - }; - convert.xyz.rgb = function(xyz) { - const x3 = xyz[0] / 100; - const y2 = xyz[1] / 100; - const z2 = xyz[2] / 100; - let r2; - let g3; - let b2; - r2 = x3 * 3.2406 + y2 * -1.5372 + z2 * -0.4986; - g3 = x3 * -0.9689 + y2 * 1.8758 + z2 * 0.0415; - b2 = x3 * 0.0557 + y2 * -0.204 + z2 * 1.057; - r2 = r2 > 31308e-7 ? 1.055 * r2 ** (1 / 2.4) - 0.055 : r2 * 12.92; - g3 = g3 > 31308e-7 ? 1.055 * g3 ** (1 / 2.4) - 0.055 : g3 * 12.92; - b2 = b2 > 31308e-7 ? 1.055 * b2 ** (1 / 2.4) - 0.055 : b2 * 12.92; - r2 = Math.min(Math.max(0, r2), 1); - g3 = Math.min(Math.max(0, g3), 1); - b2 = Math.min(Math.max(0, b2), 1); - return [r2 * 255, g3 * 255, b2 * 255]; - }; - convert.xyz.lab = function(xyz) { - let x3 = xyz[0]; - let y2 = xyz[1]; - let z2 = xyz[2]; - x3 /= 95.047; - y2 /= 100; - z2 /= 108.883; - x3 = x3 > 8856e-6 ? x3 ** (1 / 3) : 7.787 * x3 + 16 / 116; - y2 = y2 > 8856e-6 ? y2 ** (1 / 3) : 7.787 * y2 + 16 / 116; - z2 = z2 > 8856e-6 ? z2 ** (1 / 3) : 7.787 * z2 + 16 / 116; - const l3 = 116 * y2 - 16; - const a2 = 500 * (x3 - y2); - const b2 = 200 * (y2 - z2); - return [l3, a2, b2]; - }; - convert.lab.xyz = function(lab) { - const l3 = lab[0]; - const a2 = lab[1]; - const b2 = lab[2]; - let x3; - let y2; - let z2; - y2 = (l3 + 16) / 116; - x3 = a2 / 500 + y2; - z2 = y2 - b2 / 200; - const y22 = y2 ** 3; - const x22 = x3 ** 3; - const z22 = z2 ** 3; - y2 = y22 > 8856e-6 ? y22 : (y2 - 16 / 116) / 7.787; - x3 = x22 > 8856e-6 ? x22 : (x3 - 16 / 116) / 7.787; - z2 = z22 > 8856e-6 ? z22 : (z2 - 16 / 116) / 7.787; - x3 *= 95.047; - y2 *= 100; - z2 *= 108.883; - return [x3, y2, z2]; - }; - convert.lab.lch = function(lab) { - const l3 = lab[0]; - const a2 = lab[1]; - const b2 = lab[2]; - let h3; - const hr = Math.atan2(b2, a2); - h3 = hr * 360 / 2 / Math.PI; - if (h3 < 0) { - h3 += 360; - } - const c3 = Math.sqrt(a2 * a2 + b2 * b2); - return [l3, c3, h3]; - }; - convert.lch.lab = function(lch) { - const l3 = lch[0]; - const c3 = lch[1]; - const h3 = lch[2]; - const hr = h3 / 360 * 2 * Math.PI; - const a2 = c3 * Math.cos(hr); - const b2 = c3 * Math.sin(hr); - return [l3, a2, b2]; - }; - convert.rgb.ansi16 = function(args, saturation = null) { - const [r2, g3, b2] = args; - let value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; - value = Math.round(value / 50); - if (value === 0) { - return 30; - } - let ansi = 30 + (Math.round(b2 / 255) << 2 | Math.round(g3 / 255) << 1 | Math.round(r2 / 255)); - if (value === 2) { - ansi += 60; - } - return ansi; - }; - convert.hsv.ansi16 = function(args) { - return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]); - }; - convert.rgb.ansi256 = function(args) { - const r2 = args[0]; - const g3 = args[1]; - const b2 = args[2]; - if (r2 === g3 && g3 === b2) { - if (r2 < 8) { - return 16; - } - if (r2 > 248) { - return 231; - } - return Math.round((r2 - 8) / 247 * 24) + 232; - } - const ansi = 16 + 36 * Math.round(r2 / 255 * 5) + 6 * Math.round(g3 / 255 * 5) + Math.round(b2 / 255 * 5); - return ansi; - }; - convert.ansi16.rgb = function(args) { - let color = args % 10; - if (color === 0 || color === 7) { - if (args > 50) { - color += 3.5; - } - color = color / 10.5 * 255; - return [color, color, color]; - } - const mult = (~~(args > 50) + 1) * 0.5; - const r2 = (color & 1) * mult * 255; - const g3 = (color >> 1 & 1) * mult * 255; - const b2 = (color >> 2 & 1) * mult * 255; - return [r2, g3, b2]; - }; - convert.ansi256.rgb = function(args) { - if (args >= 232) { - const c3 = (args - 232) * 10 + 8; - return [c3, c3, c3]; - } - args -= 16; - let rem; - const r2 = Math.floor(args / 36) / 5 * 255; - const g3 = Math.floor((rem = args % 36) / 6) / 5 * 255; - const b2 = rem % 6 / 5 * 255; - return [r2, g3, b2]; - }; - convert.rgb.hex = function(args) { - const integer = ((Math.round(args[0]) & 255) << 16) + ((Math.round(args[1]) & 255) << 8) + (Math.round(args[2]) & 255); - const string = integer.toString(16).toUpperCase(); - return "000000".substring(string.length) + string; - }; - convert.hex.rgb = function(args) { - const match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); - if (!match) { - return [0, 0, 0]; - } - let colorString = match[0]; - if (match[0].length === 3) { - colorString = colorString.split("").map((char) => { - return char + char; - }).join(""); - } - const integer = parseInt(colorString, 16); - const r2 = integer >> 16 & 255; - const g3 = integer >> 8 & 255; - const b2 = integer & 255; - return [r2, g3, b2]; - }; - convert.rgb.hcg = function(rgb) { - const r2 = rgb[0] / 255; - const g3 = rgb[1] / 255; - const b2 = rgb[2] / 255; - const max2 = Math.max(Math.max(r2, g3), b2); - const min = Math.min(Math.min(r2, g3), b2); - const chroma = max2 - min; - let grayscale; - let hue; - if (chroma < 1) { - grayscale = min / (1 - chroma); - } else { - grayscale = 0; - } - if (chroma <= 0) { - hue = 0; - } else if (max2 === r2) { - hue = (g3 - b2) / chroma % 6; - } else if (max2 === g3) { - hue = 2 + (b2 - r2) / chroma; - } else { - hue = 4 + (r2 - g3) / chroma; - } - hue /= 6; - hue %= 1; - return [hue * 360, chroma * 100, grayscale * 100]; - }; - convert.hsl.hcg = function(hsl) { - const s2 = hsl[1] / 100; - const l3 = hsl[2] / 100; - const c3 = l3 < 0.5 ? 2 * s2 * l3 : 2 * s2 * (1 - l3); - let f3 = 0; - if (c3 < 1) { - f3 = (l3 - 0.5 * c3) / (1 - c3); - } - return [hsl[0], c3 * 100, f3 * 100]; - }; - convert.hsv.hcg = function(hsv) { - const s2 = hsv[1] / 100; - const v3 = hsv[2] / 100; - const c3 = s2 * v3; - let f3 = 0; - if (c3 < 1) { - f3 = (v3 - c3) / (1 - c3); - } - return [hsv[0], c3 * 100, f3 * 100]; - }; - convert.hcg.rgb = function(hcg) { - const h3 = hcg[0] / 360; - const c3 = hcg[1] / 100; - const g3 = hcg[2] / 100; - if (c3 === 0) { - return [g3 * 255, g3 * 255, g3 * 255]; - } - const pure = [0, 0, 0]; - const hi2 = h3 % 1 * 6; - const v3 = hi2 % 1; - const w3 = 1 - v3; - let mg = 0; - switch (Math.floor(hi2)) { - case 0: - pure[0] = 1; - pure[1] = v3; - pure[2] = 0; - break; - case 1: - pure[0] = w3; - pure[1] = 1; - pure[2] = 0; - break; - case 2: - pure[0] = 0; - pure[1] = 1; - pure[2] = v3; - break; - case 3: - pure[0] = 0; - pure[1] = w3; - pure[2] = 1; - break; - case 4: - pure[0] = v3; - pure[1] = 0; - pure[2] = 1; - break; - default: - pure[0] = 1; - pure[1] = 0; - pure[2] = w3; - } - mg = (1 - c3) * g3; - return [ - (c3 * pure[0] + mg) * 255, - (c3 * pure[1] + mg) * 255, - (c3 * pure[2] + mg) * 255 - ]; - }; - convert.hcg.hsv = function(hcg) { - const c3 = hcg[1] / 100; - const g3 = hcg[2] / 100; - const v3 = c3 + g3 * (1 - c3); - let f3 = 0; - if (v3 > 0) { - f3 = c3 / v3; - } - return [hcg[0], f3 * 100, v3 * 100]; - }; - convert.hcg.hsl = function(hcg) { - const c3 = hcg[1] / 100; - const g3 = hcg[2] / 100; - const l3 = g3 * (1 - c3) + 0.5 * c3; - let s2 = 0; - if (l3 > 0 && l3 < 0.5) { - s2 = c3 / (2 * l3); - } else if (l3 >= 0.5 && l3 < 1) { - s2 = c3 / (2 * (1 - l3)); - } - return [hcg[0], s2 * 100, l3 * 100]; - }; - convert.hcg.hwb = function(hcg) { - const c3 = hcg[1] / 100; - const g3 = hcg[2] / 100; - const v3 = c3 + g3 * (1 - c3); - return [hcg[0], (v3 - c3) * 100, (1 - v3) * 100]; - }; - convert.hwb.hcg = function(hwb) { - const w3 = hwb[1] / 100; - const b2 = hwb[2] / 100; - const v3 = 1 - b2; - const c3 = v3 - w3; - let g3 = 0; - if (c3 < 1) { - g3 = (v3 - c3) / (1 - c3); - } - return [hwb[0], c3 * 100, g3 * 100]; - }; - convert.apple.rgb = function(apple) { - return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255]; - }; - convert.rgb.apple = function(rgb) { - return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535]; - }; - convert.gray.rgb = function(args) { - return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255]; - }; - convert.gray.hsl = function(args) { - return [0, 0, args[0]]; - }; - convert.gray.hsv = convert.gray.hsl; - convert.gray.hwb = function(gray) { - return [0, 100, gray[0]]; - }; - convert.gray.cmyk = function(gray) { - return [0, 0, 0, gray[0]]; - }; - convert.gray.lab = function(gray) { - return [gray[0], 0, 0]; - }; - convert.gray.hex = function(gray) { - const val = Math.round(gray[0] / 100 * 255) & 255; - const integer = (val << 16) + (val << 8) + val; - const string = integer.toString(16).toUpperCase(); - return "000000".substring(string.length) + string; - }; - convert.rgb.gray = function(rgb) { - const val = (rgb[0] + rgb[1] + rgb[2]) / 3; - return [val / 255 * 100]; - }; - } -}); - -// node_modules/color-convert/route.js -var require_route = __commonJS({ - "node_modules/color-convert/route.js"(exports2, module) { - var conversions = require_conversions(); - function buildGraph() { - const graph = {}; - const models = Object.keys(conversions); - for (let len = models.length, i2 = 0; i2 < len; i2++) { - graph[models[i2]] = { - // http://jsperf.com/1-vs-infinity - // micro-opt, but this is simple. - distance: -1, - parent: null - }; - } - return graph; - } - function deriveBFS(fromModel) { - const graph = buildGraph(); - const queue = [fromModel]; - graph[fromModel].distance = 0; - while (queue.length) { - const current = queue.pop(); - const adjacents = Object.keys(conversions[current]); - for (let len = adjacents.length, i2 = 0; i2 < len; i2++) { - const adjacent = adjacents[i2]; - const node = graph[adjacent]; - if (node.distance === -1) { - node.distance = graph[current].distance + 1; - node.parent = current; - queue.unshift(adjacent); - } - } - } - return graph; - } - function link(from, to2) { - return function(args) { - return to2(from(args)); - }; - } - function wrapConversion(toModel, graph) { - const path2 = [graph[toModel].parent, toModel]; - let fn = conversions[graph[toModel].parent][toModel]; - let cur = graph[toModel].parent; - while (graph[cur].parent) { - path2.unshift(graph[cur].parent); - fn = link(conversions[graph[cur].parent][cur], fn); - cur = graph[cur].parent; - } - fn.conversion = path2; - return fn; - } - module.exports = function(fromModel) { - const graph = deriveBFS(fromModel); - const conversion = {}; - const models = Object.keys(graph); - for (let len = models.length, i2 = 0; i2 < len; i2++) { - const toModel = models[i2]; - const node = graph[toModel]; - if (node.parent === null) { - continue; - } - conversion[toModel] = wrapConversion(toModel, graph); - } - return conversion; - }; - } -}); - -// node_modules/color-convert/index.js -var require_color_convert = __commonJS({ - "node_modules/color-convert/index.js"(exports2, module) { - var conversions = require_conversions(); - var route = require_route(); - var convert = {}; - var models = Object.keys(conversions); - function wrapRaw(fn) { - const wrappedFn = function(...args) { - const arg0 = args[0]; - if (arg0 === void 0 || arg0 === null) { - return arg0; - } - if (arg0.length > 1) { - args = arg0; - } - return fn(args); - }; - if ("conversion" in fn) { - wrappedFn.conversion = fn.conversion; - } - return wrappedFn; - } - function wrapRounded(fn) { - const wrappedFn = function(...args) { - const arg0 = args[0]; - if (arg0 === void 0 || arg0 === null) { - return arg0; - } - if (arg0.length > 1) { - args = arg0; - } - const result = fn(args); - if (typeof result === "object") { - for (let len = result.length, i2 = 0; i2 < len; i2++) { - result[i2] = Math.round(result[i2]); - } - } - return result; - }; - if ("conversion" in fn) { - wrappedFn.conversion = fn.conversion; - } - return wrappedFn; - } - models.forEach((fromModel) => { - convert[fromModel] = {}; - Object.defineProperty(convert[fromModel], "channels", { value: conversions[fromModel].channels }); - Object.defineProperty(convert[fromModel], "labels", { value: conversions[fromModel].labels }); - const routes = route(fromModel); - const routeModels = Object.keys(routes); - routeModels.forEach((toModel) => { - const fn = routes[toModel]; - convert[fromModel][toModel] = wrapRounded(fn); - convert[fromModel][toModel].raw = wrapRaw(fn); - }); - }); - module.exports = convert; - } -}); - -// node_modules/color/index.js -var require_color = __commonJS({ - "node_modules/color/index.js"(exports2, module) { - var colorString = require_color_string(); - var convert = require_color_convert(); - var skippedModels = [ - // To be honest, I don't really feel like keyword belongs in color convert, but eh. - "keyword", - // Gray conflicts with some method names, and has its own method defined. - "gray", - // Shouldn't really be in color-convert either... - "hex" - ]; - var hashedModelKeys = {}; - for (const model of Object.keys(convert)) { - hashedModelKeys[[...convert[model].labels].sort().join("")] = model; - } - var limiters = {}; - function Color(object, model) { - if (!(this instanceof Color)) { - return new Color(object, model); - } - if (model && model in skippedModels) { - model = null; - } - if (model && !(model in convert)) { - throw new Error("Unknown model: " + model); - } - let i2; - let channels; - if (object == null) { - this.model = "rgb"; - this.color = [0, 0, 0]; - this.valpha = 1; - } else if (object instanceof Color) { - this.model = object.model; - this.color = [...object.color]; - this.valpha = object.valpha; - } else if (typeof object === "string") { - const result = colorString.get(object); - if (result === null) { - throw new Error("Unable to parse color from string: " + object); - } - this.model = result.model; - channels = convert[this.model].channels; - this.color = result.value.slice(0, channels); - this.valpha = typeof result.value[channels] === "number" ? result.value[channels] : 1; - } else if (object.length > 0) { - this.model = model || "rgb"; - channels = convert[this.model].channels; - const newArray = Array.prototype.slice.call(object, 0, channels); - this.color = zeroArray(newArray, channels); - this.valpha = typeof object[channels] === "number" ? object[channels] : 1; - } else if (typeof object === "number") { - this.model = "rgb"; - this.color = [ - object >> 16 & 255, - object >> 8 & 255, - object & 255 - ]; - this.valpha = 1; - } else { - this.valpha = 1; - const keys = Object.keys(object); - if ("alpha" in object) { - keys.splice(keys.indexOf("alpha"), 1); - this.valpha = typeof object.alpha === "number" ? object.alpha : 0; - } - const hashedKeys = keys.sort().join(""); - if (!(hashedKeys in hashedModelKeys)) { - throw new Error("Unable to parse color from object: " + JSON.stringify(object)); - } - this.model = hashedModelKeys[hashedKeys]; - const { labels } = convert[this.model]; - const color = []; - for (i2 = 0; i2 < labels.length; i2++) { - color.push(object[labels[i2]]); - } - this.color = zeroArray(color); - } - if (limiters[this.model]) { - channels = convert[this.model].channels; - for (i2 = 0; i2 < channels; i2++) { - const limit = limiters[this.model][i2]; - if (limit) { - this.color[i2] = limit(this.color[i2]); - } - } - } - this.valpha = Math.max(0, Math.min(1, this.valpha)); - if (Object.freeze) { - Object.freeze(this); - } - } - Color.prototype = { - toString() { - return this.string(); - }, - toJSON() { - return this[this.model](); - }, - string(places) { - let self = this.model in colorString.to ? this : this.rgb(); - self = self.round(typeof places === "number" ? places : 1); - const args = self.valpha === 1 ? self.color : [...self.color, this.valpha]; - return colorString.to[self.model](args); - }, - percentString(places) { - const self = this.rgb().round(typeof places === "number" ? places : 1); - const args = self.valpha === 1 ? self.color : [...self.color, this.valpha]; - return colorString.to.rgb.percent(args); - }, - array() { - return this.valpha === 1 ? [...this.color] : [...this.color, this.valpha]; - }, - object() { - const result = {}; - const { channels } = convert[this.model]; - const { labels } = convert[this.model]; - for (let i2 = 0; i2 < channels; i2++) { - result[labels[i2]] = this.color[i2]; - } - if (this.valpha !== 1) { - result.alpha = this.valpha; - } - return result; - }, - unitArray() { - const rgb = this.rgb().color; - rgb[0] /= 255; - rgb[1] /= 255; - rgb[2] /= 255; - if (this.valpha !== 1) { - rgb.push(this.valpha); - } - return rgb; - }, - unitObject() { - const rgb = this.rgb().object(); - rgb.r /= 255; - rgb.g /= 255; - rgb.b /= 255; - if (this.valpha !== 1) { - rgb.alpha = this.valpha; - } - return rgb; - }, - round(places) { - places = Math.max(places || 0, 0); - return new Color([...this.color.map(roundToPlace(places)), this.valpha], this.model); - }, - alpha(value) { - if (value !== void 0) { - return new Color([...this.color, Math.max(0, Math.min(1, value))], this.model); - } - return this.valpha; - }, - // Rgb - red: getset("rgb", 0, maxfn(255)), - green: getset("rgb", 1, maxfn(255)), - blue: getset("rgb", 2, maxfn(255)), - hue: getset(["hsl", "hsv", "hsl", "hwb", "hcg"], 0, (value) => (value % 360 + 360) % 360), - saturationl: getset("hsl", 1, maxfn(100)), - lightness: getset("hsl", 2, maxfn(100)), - saturationv: getset("hsv", 1, maxfn(100)), - value: getset("hsv", 2, maxfn(100)), - chroma: getset("hcg", 1, maxfn(100)), - gray: getset("hcg", 2, maxfn(100)), - white: getset("hwb", 1, maxfn(100)), - wblack: getset("hwb", 2, maxfn(100)), - cyan: getset("cmyk", 0, maxfn(100)), - magenta: getset("cmyk", 1, maxfn(100)), - yellow: getset("cmyk", 2, maxfn(100)), - black: getset("cmyk", 3, maxfn(100)), - x: getset("xyz", 0, maxfn(95.047)), - y: getset("xyz", 1, maxfn(100)), - z: getset("xyz", 2, maxfn(108.833)), - l: getset("lab", 0, maxfn(100)), - a: getset("lab", 1), - b: getset("lab", 2), - keyword(value) { - if (value !== void 0) { - return new Color(value); - } - return convert[this.model].keyword(this.color); - }, - hex(value) { - if (value !== void 0) { - return new Color(value); - } - return colorString.to.hex(this.rgb().round().color); - }, - hexa(value) { - if (value !== void 0) { - return new Color(value); - } - const rgbArray = this.rgb().round().color; - let alphaHex = Math.round(this.valpha * 255).toString(16).toUpperCase(); - if (alphaHex.length === 1) { - alphaHex = "0" + alphaHex; - } - return colorString.to.hex(rgbArray) + alphaHex; - }, - rgbNumber() { - const rgb = this.rgb().color; - return (rgb[0] & 255) << 16 | (rgb[1] & 255) << 8 | rgb[2] & 255; - }, - luminosity() { - const rgb = this.rgb().color; - const lum = []; - for (const [i2, element] of rgb.entries()) { - const chan = element / 255; - lum[i2] = chan <= 0.04045 ? chan / 12.92 : ((chan + 0.055) / 1.055) ** 2.4; - } - return 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2]; - }, - contrast(color2) { - const lum1 = this.luminosity(); - const lum2 = color2.luminosity(); - if (lum1 > lum2) { - return (lum1 + 0.05) / (lum2 + 0.05); - } - return (lum2 + 0.05) / (lum1 + 0.05); - }, - level(color2) { - const contrastRatio = this.contrast(color2); - if (contrastRatio >= 7) { - return "AAA"; - } - return contrastRatio >= 4.5 ? "AA" : ""; - }, - isDark() { - const rgb = this.rgb().color; - const yiq = (rgb[0] * 2126 + rgb[1] * 7152 + rgb[2] * 722) / 1e4; - return yiq < 128; - }, - isLight() { - return !this.isDark(); - }, - negate() { - const rgb = this.rgb(); - for (let i2 = 0; i2 < 3; i2++) { - rgb.color[i2] = 255 - rgb.color[i2]; - } - return rgb; - }, - lighten(ratio) { - const hsl = this.hsl(); - hsl.color[2] += hsl.color[2] * ratio; - return hsl; - }, - darken(ratio) { - const hsl = this.hsl(); - hsl.color[2] -= hsl.color[2] * ratio; - return hsl; - }, - saturate(ratio) { - const hsl = this.hsl(); - hsl.color[1] += hsl.color[1] * ratio; - return hsl; - }, - desaturate(ratio) { - const hsl = this.hsl(); - hsl.color[1] -= hsl.color[1] * ratio; - return hsl; - }, - whiten(ratio) { - const hwb = this.hwb(); - hwb.color[1] += hwb.color[1] * ratio; - return hwb; - }, - blacken(ratio) { - const hwb = this.hwb(); - hwb.color[2] += hwb.color[2] * ratio; - return hwb; - }, - grayscale() { - const rgb = this.rgb().color; - const value = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11; - return Color.rgb(value, value, value); - }, - fade(ratio) { - return this.alpha(this.valpha - this.valpha * ratio); - }, - opaquer(ratio) { - return this.alpha(this.valpha + this.valpha * ratio); - }, - rotate(degrees) { - const hsl = this.hsl(); - let hue = hsl.color[0]; - hue = (hue + degrees) % 360; - hue = hue < 0 ? 360 + hue : hue; - hsl.color[0] = hue; - return hsl; - }, - mix(mixinColor, weight) { - if (!mixinColor || !mixinColor.rgb) { - throw new Error('Argument to "mix" was not a Color instance, but rather an instance of ' + typeof mixinColor); - } - const color1 = mixinColor.rgb(); - const color2 = this.rgb(); - const p2 = weight === void 0 ? 0.5 : weight; - const w3 = 2 * p2 - 1; - const a2 = color1.alpha() - color2.alpha(); - const w1 = ((w3 * a2 === -1 ? w3 : (w3 + a2) / (1 + w3 * a2)) + 1) / 2; - const w22 = 1 - w1; - return Color.rgb( - w1 * color1.red() + w22 * color2.red(), - w1 * color1.green() + w22 * color2.green(), - w1 * color1.blue() + w22 * color2.blue(), - color1.alpha() * p2 + color2.alpha() * (1 - p2) - ); - } - }; - for (const model of Object.keys(convert)) { - if (skippedModels.includes(model)) { - continue; - } - const { channels } = convert[model]; - Color.prototype[model] = function(...args) { - if (this.model === model) { - return new Color(this); - } - if (args.length > 0) { - return new Color(args, model); - } - return new Color([...assertArray(convert[this.model][model].raw(this.color)), this.valpha], model); - }; - Color[model] = function(...args) { - let color = args[0]; - if (typeof color === "number") { - color = zeroArray(args, channels); - } - return new Color(color, model); - }; - } - function roundTo(number2, places) { - return Number(number2.toFixed(places)); - } - function roundToPlace(places) { - return function(number2) { - return roundTo(number2, places); - }; - } - function getset(model, channel, modifier) { - model = Array.isArray(model) ? model : [model]; - for (const m3 of model) { - (limiters[m3] || (limiters[m3] = []))[channel] = modifier; - } - model = model[0]; - return function(value) { - let result; - if (value !== void 0) { - if (modifier) { - value = modifier(value); - } - result = this[model](); - result.color[channel] = value; - return result; - } - result = this[model]().color[channel]; - if (modifier) { - result = modifier(result); - } - return result; - }; - } - function maxfn(max2) { - return function(v3) { - return Math.max(0, Math.min(max2, v3)); - }; - } - function assertArray(value) { - return Array.isArray(value) ? value : [value]; - } - function zeroArray(array, length) { - for (let i2 = 0; i2 < length; i2++) { - if (typeof array[i2] !== "number") { - array[i2] = 0; - } - } - return array; - } - module.exports = Color; - } -}); - -// node_modules/sharp/lib/input.js -var require_input = __commonJS({ - "node_modules/sharp/lib/input.js"(exports2, module) { - var color = require_color(); - var is = require_is(); - var sharp2 = require_sharp(); - var align = { - left: "low", - center: "centre", - centre: "centre", - right: "high" - }; - function _inputOptionsFromObject(obj) { - const { raw, density, limitInputPixels, ignoreIcc, unlimited, sequentialRead, failOn, failOnError, animated, page, pages, subifd } = obj; - return [raw, density, limitInputPixels, ignoreIcc, unlimited, sequentialRead, failOn, failOnError, animated, page, pages, subifd].some(is.defined) ? { raw, density, limitInputPixels, ignoreIcc, unlimited, sequentialRead, failOn, failOnError, animated, page, pages, subifd } : void 0; - } - function _createInputDescriptor(input, inputOptions, containerOptions) { - const inputDescriptor = { - failOn: "warning", - limitInputPixels: Math.pow(16383, 2), - ignoreIcc: false, - unlimited: false, - sequentialRead: true - }; - if (is.string(input)) { - inputDescriptor.file = input; - } else if (is.buffer(input)) { - if (input.length === 0) { - throw Error("Input Buffer is empty"); - } - inputDescriptor.buffer = input; - } else if (is.arrayBuffer(input)) { - if (input.byteLength === 0) { - throw Error("Input bit Array is empty"); - } - inputDescriptor.buffer = Buffer.from(input, 0, input.byteLength); - } else if (is.typedArray(input)) { - if (input.length === 0) { - throw Error("Input Bit Array is empty"); - } - inputDescriptor.buffer = Buffer.from(input.buffer, input.byteOffset, input.byteLength); - } else if (is.plainObject(input) && !is.defined(inputOptions)) { - inputOptions = input; - if (_inputOptionsFromObject(inputOptions)) { - inputDescriptor.buffer = []; - } - } else if (!is.defined(input) && !is.defined(inputOptions) && is.object(containerOptions) && containerOptions.allowStream) { - inputDescriptor.buffer = []; - } else { - throw new Error(`Unsupported input '${input}' of type ${typeof input}${is.defined(inputOptions) ? ` when also providing options of type ${typeof inputOptions}` : ""}`); - } - if (is.object(inputOptions)) { - if (is.defined(inputOptions.failOnError)) { - if (is.bool(inputOptions.failOnError)) { - inputDescriptor.failOn = inputOptions.failOnError ? "warning" : "none"; - } else { - throw is.invalidParameterError("failOnError", "boolean", inputOptions.failOnError); - } - } - if (is.defined(inputOptions.failOn)) { - if (is.string(inputOptions.failOn) && is.inArray(inputOptions.failOn, ["none", "truncated", "error", "warning"])) { - inputDescriptor.failOn = inputOptions.failOn; - } else { - throw is.invalidParameterError("failOn", "one of: none, truncated, error, warning", inputOptions.failOn); - } - } - if (is.defined(inputOptions.density)) { - if (is.inRange(inputOptions.density, 1, 1e5)) { - inputDescriptor.density = inputOptions.density; - } else { - throw is.invalidParameterError("density", "number between 1 and 100000", inputOptions.density); - } - } - if (is.defined(inputOptions.ignoreIcc)) { - if (is.bool(inputOptions.ignoreIcc)) { - inputDescriptor.ignoreIcc = inputOptions.ignoreIcc; - } else { - throw is.invalidParameterError("ignoreIcc", "boolean", inputOptions.ignoreIcc); - } - } - if (is.defined(inputOptions.limitInputPixels)) { - if (is.bool(inputOptions.limitInputPixels)) { - inputDescriptor.limitInputPixels = inputOptions.limitInputPixels ? Math.pow(16383, 2) : 0; - } else if (is.integer(inputOptions.limitInputPixels) && is.inRange(inputOptions.limitInputPixels, 0, Number.MAX_SAFE_INTEGER)) { - inputDescriptor.limitInputPixels = inputOptions.limitInputPixels; - } else { - throw is.invalidParameterError("limitInputPixels", "positive integer", inputOptions.limitInputPixels); - } - } - if (is.defined(inputOptions.unlimited)) { - if (is.bool(inputOptions.unlimited)) { - inputDescriptor.unlimited = inputOptions.unlimited; - } else { - throw is.invalidParameterError("unlimited", "boolean", inputOptions.unlimited); - } - } - if (is.defined(inputOptions.sequentialRead)) { - if (is.bool(inputOptions.sequentialRead)) { - inputDescriptor.sequentialRead = inputOptions.sequentialRead; - } else { - throw is.invalidParameterError("sequentialRead", "boolean", inputOptions.sequentialRead); - } - } - if (is.defined(inputOptions.raw)) { - if (is.object(inputOptions.raw) && is.integer(inputOptions.raw.width) && inputOptions.raw.width > 0 && is.integer(inputOptions.raw.height) && inputOptions.raw.height > 0 && is.integer(inputOptions.raw.channels) && is.inRange(inputOptions.raw.channels, 1, 4)) { - inputDescriptor.rawWidth = inputOptions.raw.width; - inputDescriptor.rawHeight = inputOptions.raw.height; - inputDescriptor.rawChannels = inputOptions.raw.channels; - inputDescriptor.rawPremultiplied = !!inputOptions.raw.premultiplied; - switch (input.constructor) { - case Uint8Array: - case Uint8ClampedArray: - inputDescriptor.rawDepth = "uchar"; - break; - case Int8Array: - inputDescriptor.rawDepth = "char"; - break; - case Uint16Array: - inputDescriptor.rawDepth = "ushort"; - break; - case Int16Array: - inputDescriptor.rawDepth = "short"; - break; - case Uint32Array: - inputDescriptor.rawDepth = "uint"; - break; - case Int32Array: - inputDescriptor.rawDepth = "int"; - break; - case Float32Array: - inputDescriptor.rawDepth = "float"; - break; - case Float64Array: - inputDescriptor.rawDepth = "double"; - break; - default: - inputDescriptor.rawDepth = "uchar"; - break; - } - } else { - throw new Error("Expected width, height and channels for raw pixel input"); - } - } - if (is.defined(inputOptions.animated)) { - if (is.bool(inputOptions.animated)) { - inputDescriptor.pages = inputOptions.animated ? -1 : 1; - } else { - throw is.invalidParameterError("animated", "boolean", inputOptions.animated); - } - } - if (is.defined(inputOptions.pages)) { - if (is.integer(inputOptions.pages) && is.inRange(inputOptions.pages, -1, 1e5)) { - inputDescriptor.pages = inputOptions.pages; - } else { - throw is.invalidParameterError("pages", "integer between -1 and 100000", inputOptions.pages); - } - } - if (is.defined(inputOptions.page)) { - if (is.integer(inputOptions.page) && is.inRange(inputOptions.page, 0, 1e5)) { - inputDescriptor.page = inputOptions.page; - } else { - throw is.invalidParameterError("page", "integer between 0 and 100000", inputOptions.page); - } - } - if (is.defined(inputOptions.level)) { - if (is.integer(inputOptions.level) && is.inRange(inputOptions.level, 0, 256)) { - inputDescriptor.level = inputOptions.level; - } else { - throw is.invalidParameterError("level", "integer between 0 and 256", inputOptions.level); - } - } - if (is.defined(inputOptions.subifd)) { - if (is.integer(inputOptions.subifd) && is.inRange(inputOptions.subifd, -1, 1e5)) { - inputDescriptor.subifd = inputOptions.subifd; - } else { - throw is.invalidParameterError("subifd", "integer between -1 and 100000", inputOptions.subifd); - } - } - if (is.defined(inputOptions.create)) { - if (is.object(inputOptions.create) && is.integer(inputOptions.create.width) && inputOptions.create.width > 0 && is.integer(inputOptions.create.height) && inputOptions.create.height > 0 && is.integer(inputOptions.create.channels)) { - inputDescriptor.createWidth = inputOptions.create.width; - inputDescriptor.createHeight = inputOptions.create.height; - inputDescriptor.createChannels = inputOptions.create.channels; - if (is.defined(inputOptions.create.noise)) { - if (!is.object(inputOptions.create.noise)) { - throw new Error("Expected noise to be an object"); - } - if (!is.inArray(inputOptions.create.noise.type, ["gaussian"])) { - throw new Error("Only gaussian noise is supported at the moment"); - } - if (!is.inRange(inputOptions.create.channels, 1, 4)) { - throw is.invalidParameterError("create.channels", "number between 1 and 4", inputOptions.create.channels); - } - inputDescriptor.createNoiseType = inputOptions.create.noise.type; - if (is.number(inputOptions.create.noise.mean) && is.inRange(inputOptions.create.noise.mean, 0, 1e4)) { - inputDescriptor.createNoiseMean = inputOptions.create.noise.mean; - } else { - throw is.invalidParameterError("create.noise.mean", "number between 0 and 10000", inputOptions.create.noise.mean); - } - if (is.number(inputOptions.create.noise.sigma) && is.inRange(inputOptions.create.noise.sigma, 0, 1e4)) { - inputDescriptor.createNoiseSigma = inputOptions.create.noise.sigma; - } else { - throw is.invalidParameterError("create.noise.sigma", "number between 0 and 10000", inputOptions.create.noise.sigma); - } - } else if (is.defined(inputOptions.create.background)) { - if (!is.inRange(inputOptions.create.channels, 3, 4)) { - throw is.invalidParameterError("create.channels", "number between 3 and 4", inputOptions.create.channels); - } - const background = color(inputOptions.create.background); - inputDescriptor.createBackground = [ - background.red(), - background.green(), - background.blue(), - Math.round(background.alpha() * 255) - ]; - } else { - throw new Error("Expected valid noise or background to create a new input image"); - } - delete inputDescriptor.buffer; - } else { - throw new Error("Expected valid width, height and channels to create a new input image"); - } - } - if (is.defined(inputOptions.text)) { - if (is.object(inputOptions.text) && is.string(inputOptions.text.text)) { - inputDescriptor.textValue = inputOptions.text.text; - if (is.defined(inputOptions.text.height) && is.defined(inputOptions.text.dpi)) { - throw new Error("Expected only one of dpi or height"); - } - if (is.defined(inputOptions.text.font)) { - if (is.string(inputOptions.text.font)) { - inputDescriptor.textFont = inputOptions.text.font; - } else { - throw is.invalidParameterError("text.font", "string", inputOptions.text.font); - } - } - if (is.defined(inputOptions.text.fontfile)) { - if (is.string(inputOptions.text.fontfile)) { - inputDescriptor.textFontfile = inputOptions.text.fontfile; - } else { - throw is.invalidParameterError("text.fontfile", "string", inputOptions.text.fontfile); - } - } - if (is.defined(inputOptions.text.width)) { - if (is.integer(inputOptions.text.width) && inputOptions.text.width > 0) { - inputDescriptor.textWidth = inputOptions.text.width; - } else { - throw is.invalidParameterError("text.width", "positive integer", inputOptions.text.width); - } - } - if (is.defined(inputOptions.text.height)) { - if (is.integer(inputOptions.text.height) && inputOptions.text.height > 0) { - inputDescriptor.textHeight = inputOptions.text.height; - } else { - throw is.invalidParameterError("text.height", "positive integer", inputOptions.text.height); - } - } - if (is.defined(inputOptions.text.align)) { - if (is.string(inputOptions.text.align) && is.string(this.constructor.align[inputOptions.text.align])) { - inputDescriptor.textAlign = this.constructor.align[inputOptions.text.align]; - } else { - throw is.invalidParameterError("text.align", "valid alignment", inputOptions.text.align); - } - } - if (is.defined(inputOptions.text.justify)) { - if (is.bool(inputOptions.text.justify)) { - inputDescriptor.textJustify = inputOptions.text.justify; - } else { - throw is.invalidParameterError("text.justify", "boolean", inputOptions.text.justify); - } - } - if (is.defined(inputOptions.text.dpi)) { - if (is.integer(inputOptions.text.dpi) && is.inRange(inputOptions.text.dpi, 1, 1e6)) { - inputDescriptor.textDpi = inputOptions.text.dpi; - } else { - throw is.invalidParameterError("text.dpi", "integer between 1 and 1000000", inputOptions.text.dpi); - } - } - if (is.defined(inputOptions.text.rgba)) { - if (is.bool(inputOptions.text.rgba)) { - inputDescriptor.textRgba = inputOptions.text.rgba; - } else { - throw is.invalidParameterError("text.rgba", "bool", inputOptions.text.rgba); - } - } - if (is.defined(inputOptions.text.spacing)) { - if (is.integer(inputOptions.text.spacing) && is.inRange(inputOptions.text.spacing, -1e6, 1e6)) { - inputDescriptor.textSpacing = inputOptions.text.spacing; - } else { - throw is.invalidParameterError("text.spacing", "integer between -1000000 and 1000000", inputOptions.text.spacing); - } - } - if (is.defined(inputOptions.text.wrap)) { - if (is.string(inputOptions.text.wrap) && is.inArray(inputOptions.text.wrap, ["word", "char", "word-char", "none"])) { - inputDescriptor.textWrap = inputOptions.text.wrap; - } else { - throw is.invalidParameterError("text.wrap", "one of: word, char, word-char, none", inputOptions.text.wrap); - } - } - delete inputDescriptor.buffer; - } else { - throw new Error("Expected a valid string to create an image with text."); - } - } - } else if (is.defined(inputOptions)) { - throw new Error("Invalid input options " + inputOptions); - } - return inputDescriptor; - } - function _write(chunk, encoding, callback) { - if (Array.isArray(this.options.input.buffer)) { - if (is.buffer(chunk)) { - if (this.options.input.buffer.length === 0) { - this.on("finish", () => { - this.streamInFinished = true; - }); - } - this.options.input.buffer.push(chunk); - callback(); - } else { - callback(new Error("Non-Buffer data on Writable Stream")); - } - } else { - callback(new Error("Unexpected data on Writable Stream")); - } - } - function _flattenBufferIn() { - if (this._isStreamInput()) { - this.options.input.buffer = Buffer.concat(this.options.input.buffer); - } - } - function _isStreamInput() { - return Array.isArray(this.options.input.buffer); - } - function metadata(callback) { - const stack = Error(); - if (is.fn(callback)) { - if (this._isStreamInput()) { - this.on("finish", () => { - this._flattenBufferIn(); - sharp2.metadata(this.options, (err2, metadata2) => { - if (err2) { - callback(is.nativeError(err2, stack)); - } else { - callback(null, metadata2); - } - }); - }); - } else { - sharp2.metadata(this.options, (err2, metadata2) => { - if (err2) { - callback(is.nativeError(err2, stack)); - } else { - callback(null, metadata2); - } - }); - } - return this; - } else { - if (this._isStreamInput()) { - return new Promise((resolve, reject) => { - const finished = () => { - this._flattenBufferIn(); - sharp2.metadata(this.options, (err2, metadata2) => { - if (err2) { - reject(is.nativeError(err2, stack)); - } else { - resolve(metadata2); - } - }); - }; - if (this.writableFinished) { - finished(); - } else { - this.once("finish", finished); - } - }); - } else { - return new Promise((resolve, reject) => { - sharp2.metadata(this.options, (err2, metadata2) => { - if (err2) { - reject(is.nativeError(err2, stack)); - } else { - resolve(metadata2); - } - }); - }); - } - } - } - function stats(callback) { - const stack = Error(); - if (is.fn(callback)) { - if (this._isStreamInput()) { - this.on("finish", () => { - this._flattenBufferIn(); - sharp2.stats(this.options, (err2, stats2) => { - if (err2) { - callback(is.nativeError(err2, stack)); - } else { - callback(null, stats2); - } - }); - }); - } else { - sharp2.stats(this.options, (err2, stats2) => { - if (err2) { - callback(is.nativeError(err2, stack)); - } else { - callback(null, stats2); - } - }); - } - return this; - } else { - if (this._isStreamInput()) { - return new Promise((resolve, reject) => { - this.on("finish", function() { - this._flattenBufferIn(); - sharp2.stats(this.options, (err2, stats2) => { - if (err2) { - reject(is.nativeError(err2, stack)); - } else { - resolve(stats2); - } - }); - }); - }); - } else { - return new Promise((resolve, reject) => { - sharp2.stats(this.options, (err2, stats2) => { - if (err2) { - reject(is.nativeError(err2, stack)); - } else { - resolve(stats2); - } - }); - }); - } - } - } - module.exports = function(Sharp) { - Object.assign(Sharp.prototype, { - // Private - _inputOptionsFromObject, - _createInputDescriptor, - _write, - _flattenBufferIn, - _isStreamInput, - // Public - metadata, - stats - }); - Sharp.align = align; - }; - } -}); - -// node_modules/sharp/lib/resize.js -var require_resize = __commonJS({ - "node_modules/sharp/lib/resize.js"(exports2, module) { - var is = require_is(); - var gravity = { - center: 0, - centre: 0, - north: 1, - east: 2, - south: 3, - west: 4, - northeast: 5, - southeast: 6, - southwest: 7, - northwest: 8 - }; - var position = { - top: 1, - right: 2, - bottom: 3, - left: 4, - "right top": 5, - "right bottom": 6, - "left bottom": 7, - "left top": 8 - }; - var extendWith = { - background: "background", - copy: "copy", - repeat: "repeat", - mirror: "mirror" - }; - var strategy = { - entropy: 16, - attention: 17 - }; - var kernel = { - nearest: "nearest", - linear: "linear", - cubic: "cubic", - mitchell: "mitchell", - lanczos2: "lanczos2", - lanczos3: "lanczos3" - }; - var fit = { - contain: "contain", - cover: "cover", - fill: "fill", - inside: "inside", - outside: "outside" - }; - var mapFitToCanvas = { - contain: "embed", - cover: "crop", - fill: "ignore_aspect", - inside: "max", - outside: "min" - }; - function isRotationExpected(options) { - return options.angle % 360 !== 0 || options.useExifOrientation === true || options.rotationAngle !== 0; - } - function isResizeExpected(options) { - return options.width !== -1 || options.height !== -1; - } - function resize(widthOrOptions, height, options) { - if (isResizeExpected(this.options)) { - this.options.debuglog("ignoring previous resize options"); - } - if (this.options.widthPost !== -1) { - this.options.debuglog("operation order will be: extract, resize, extract"); - } - if (is.defined(widthOrOptions)) { - if (is.object(widthOrOptions) && !is.defined(options)) { - options = widthOrOptions; - } else if (is.integer(widthOrOptions) && widthOrOptions > 0) { - this.options.width = widthOrOptions; - } else { - throw is.invalidParameterError("width", "positive integer", widthOrOptions); - } - } else { - this.options.width = -1; - } - if (is.defined(height)) { - if (is.integer(height) && height > 0) { - this.options.height = height; - } else { - throw is.invalidParameterError("height", "positive integer", height); - } - } else { - this.options.height = -1; - } - if (is.object(options)) { - if (is.defined(options.width)) { - if (is.integer(options.width) && options.width > 0) { - this.options.width = options.width; - } else { - throw is.invalidParameterError("width", "positive integer", options.width); - } - } - if (is.defined(options.height)) { - if (is.integer(options.height) && options.height > 0) { - this.options.height = options.height; - } else { - throw is.invalidParameterError("height", "positive integer", options.height); - } - } - if (is.defined(options.fit)) { - const canvas = mapFitToCanvas[options.fit]; - if (is.string(canvas)) { - this.options.canvas = canvas; - } else { - throw is.invalidParameterError("fit", "valid fit", options.fit); - } - } - if (is.defined(options.position)) { - const pos = is.integer(options.position) ? options.position : strategy[options.position] || position[options.position] || gravity[options.position]; - if (is.integer(pos) && (is.inRange(pos, 0, 8) || is.inRange(pos, 16, 17))) { - this.options.position = pos; - } else { - throw is.invalidParameterError("position", "valid position/gravity/strategy", options.position); - } - } - this._setBackgroundColourOption("resizeBackground", options.background); - if (is.defined(options.kernel)) { - if (is.string(kernel[options.kernel])) { - this.options.kernel = kernel[options.kernel]; - } else { - throw is.invalidParameterError("kernel", "valid kernel name", options.kernel); - } - } - if (is.defined(options.withoutEnlargement)) { - this._setBooleanOption("withoutEnlargement", options.withoutEnlargement); - } - if (is.defined(options.withoutReduction)) { - this._setBooleanOption("withoutReduction", options.withoutReduction); - } - if (is.defined(options.fastShrinkOnLoad)) { - this._setBooleanOption("fastShrinkOnLoad", options.fastShrinkOnLoad); - } - } - if (isRotationExpected(this.options) && isResizeExpected(this.options)) { - this.options.rotateBeforePreExtract = true; - } - return this; - } - function extend(extend2) { - if (is.integer(extend2) && extend2 > 0) { - this.options.extendTop = extend2; - this.options.extendBottom = extend2; - this.options.extendLeft = extend2; - this.options.extendRight = extend2; - } else if (is.object(extend2)) { - if (is.defined(extend2.top)) { - if (is.integer(extend2.top) && extend2.top >= 0) { - this.options.extendTop = extend2.top; - } else { - throw is.invalidParameterError("top", "positive integer", extend2.top); - } - } - if (is.defined(extend2.bottom)) { - if (is.integer(extend2.bottom) && extend2.bottom >= 0) { - this.options.extendBottom = extend2.bottom; - } else { - throw is.invalidParameterError("bottom", "positive integer", extend2.bottom); - } - } - if (is.defined(extend2.left)) { - if (is.integer(extend2.left) && extend2.left >= 0) { - this.options.extendLeft = extend2.left; - } else { - throw is.invalidParameterError("left", "positive integer", extend2.left); - } - } - if (is.defined(extend2.right)) { - if (is.integer(extend2.right) && extend2.right >= 0) { - this.options.extendRight = extend2.right; - } else { - throw is.invalidParameterError("right", "positive integer", extend2.right); - } - } - this._setBackgroundColourOption("extendBackground", extend2.background); - if (is.defined(extend2.extendWith)) { - if (is.string(extendWith[extend2.extendWith])) { - this.options.extendWith = extendWith[extend2.extendWith]; - } else { - throw is.invalidParameterError("extendWith", "one of: background, copy, repeat, mirror", extend2.extendWith); - } - } - } else { - throw is.invalidParameterError("extend", "integer or object", extend2); - } - return this; - } - function extract(options) { - const suffix = isResizeExpected(this.options) || this.options.widthPre !== -1 ? "Post" : "Pre"; - if (this.options[`width${suffix}`] !== -1) { - this.options.debuglog("ignoring previous extract options"); - } - ["left", "top", "width", "height"].forEach(function(name) { - const value = options[name]; - if (is.integer(value) && value >= 0) { - this.options[name + (name === "left" || name === "top" ? "Offset" : "") + suffix] = value; - } else { - throw is.invalidParameterError(name, "integer", value); - } - }, this); - if (isRotationExpected(this.options) && !isResizeExpected(this.options)) { - if (this.options.widthPre === -1 || this.options.widthPost === -1) { - this.options.rotateBeforePreExtract = true; - } - } - return this; - } - function trim(options) { - this.options.trimThreshold = 10; - if (is.defined(options)) { - if (is.object(options)) { - if (is.defined(options.background)) { - this._setBackgroundColourOption("trimBackground", options.background); - } - if (is.defined(options.threshold)) { - if (is.number(options.threshold) && options.threshold >= 0) { - this.options.trimThreshold = options.threshold; - } else { - throw is.invalidParameterError("threshold", "positive number", options.threshold); - } - } - if (is.defined(options.lineArt)) { - this._setBooleanOption("trimLineArt", options.lineArt); - } - } else { - throw is.invalidParameterError("trim", "object", options); - } - } - if (isRotationExpected(this.options)) { - this.options.rotateBeforePreExtract = true; - } - return this; - } - module.exports = function(Sharp) { - Object.assign(Sharp.prototype, { - resize, - extend, - extract, - trim - }); - Sharp.gravity = gravity; - Sharp.strategy = strategy; - Sharp.kernel = kernel; - Sharp.fit = fit; - Sharp.position = position; - }; - } -}); - -// node_modules/sharp/lib/composite.js -var require_composite = __commonJS({ - "node_modules/sharp/lib/composite.js"(exports2, module) { - var is = require_is(); - var blend = { - clear: "clear", - source: "source", - over: "over", - in: "in", - out: "out", - atop: "atop", - dest: "dest", - "dest-over": "dest-over", - "dest-in": "dest-in", - "dest-out": "dest-out", - "dest-atop": "dest-atop", - xor: "xor", - add: "add", - saturate: "saturate", - multiply: "multiply", - screen: "screen", - overlay: "overlay", - darken: "darken", - lighten: "lighten", - "colour-dodge": "colour-dodge", - "color-dodge": "colour-dodge", - "colour-burn": "colour-burn", - "color-burn": "colour-burn", - "hard-light": "hard-light", - "soft-light": "soft-light", - difference: "difference", - exclusion: "exclusion" - }; - function composite(images) { - if (!Array.isArray(images)) { - throw is.invalidParameterError("images to composite", "array", images); - } - this.options.composite = images.map((image) => { - if (!is.object(image)) { - throw is.invalidParameterError("image to composite", "object", image); - } - const inputOptions = this._inputOptionsFromObject(image); - const composite2 = { - input: this._createInputDescriptor(image.input, inputOptions, { allowStream: false }), - blend: "over", - tile: false, - left: 0, - top: 0, - hasOffset: false, - gravity: 0, - premultiplied: false - }; - if (is.defined(image.blend)) { - if (is.string(blend[image.blend])) { - composite2.blend = blend[image.blend]; - } else { - throw is.invalidParameterError("blend", "valid blend name", image.blend); - } - } - if (is.defined(image.tile)) { - if (is.bool(image.tile)) { - composite2.tile = image.tile; - } else { - throw is.invalidParameterError("tile", "boolean", image.tile); - } - } - if (is.defined(image.left)) { - if (is.integer(image.left)) { - composite2.left = image.left; - } else { - throw is.invalidParameterError("left", "integer", image.left); - } - } - if (is.defined(image.top)) { - if (is.integer(image.top)) { - composite2.top = image.top; - } else { - throw is.invalidParameterError("top", "integer", image.top); - } - } - if (is.defined(image.top) !== is.defined(image.left)) { - throw new Error("Expected both left and top to be set"); - } else { - composite2.hasOffset = is.integer(image.top) && is.integer(image.left); - } - if (is.defined(image.gravity)) { - if (is.integer(image.gravity) && is.inRange(image.gravity, 0, 8)) { - composite2.gravity = image.gravity; - } else if (is.string(image.gravity) && is.integer(this.constructor.gravity[image.gravity])) { - composite2.gravity = this.constructor.gravity[image.gravity]; - } else { - throw is.invalidParameterError("gravity", "valid gravity", image.gravity); - } - } - if (is.defined(image.premultiplied)) { - if (is.bool(image.premultiplied)) { - composite2.premultiplied = image.premultiplied; - } else { - throw is.invalidParameterError("premultiplied", "boolean", image.premultiplied); - } - } - return composite2; - }); - return this; - } - module.exports = function(Sharp) { - Sharp.prototype.composite = composite; - Sharp.blend = blend; - }; - } -}); - -// node_modules/sharp/lib/operation.js -var require_operation = __commonJS({ - "node_modules/sharp/lib/operation.js"(exports2, module) { - var color = require_color(); - var is = require_is(); - var vipsPrecision = { - integer: "integer", - float: "float", - approximate: "approximate" - }; - function rotate(angle, options) { - if (this.options.useExifOrientation || this.options.angle || this.options.rotationAngle) { - this.options.debuglog("ignoring previous rotate options"); - } - if (!is.defined(angle)) { - this.options.useExifOrientation = true; - } else if (is.integer(angle) && !(angle % 90)) { - this.options.angle = angle; - } else if (is.number(angle)) { - this.options.rotationAngle = angle; - if (is.object(options) && options.background) { - const backgroundColour = color(options.background); - this.options.rotationBackground = [ - backgroundColour.red(), - backgroundColour.green(), - backgroundColour.blue(), - Math.round(backgroundColour.alpha() * 255) - ]; - } - } else { - throw is.invalidParameterError("angle", "numeric", angle); - } - return this; - } - function flip(flip2) { - this.options.flip = is.bool(flip2) ? flip2 : true; - return this; - } - function flop(flop2) { - this.options.flop = is.bool(flop2) ? flop2 : true; - return this; - } - function affine(matrix, options) { - const flatMatrix = [].concat(...matrix); - if (flatMatrix.length === 4 && flatMatrix.every(is.number)) { - this.options.affineMatrix = flatMatrix; - } else { - throw is.invalidParameterError("matrix", "1x4 or 2x2 array", matrix); - } - if (is.defined(options)) { - if (is.object(options)) { - this._setBackgroundColourOption("affineBackground", options.background); - if (is.defined(options.idx)) { - if (is.number(options.idx)) { - this.options.affineIdx = options.idx; - } else { - throw is.invalidParameterError("options.idx", "number", options.idx); - } - } - if (is.defined(options.idy)) { - if (is.number(options.idy)) { - this.options.affineIdy = options.idy; - } else { - throw is.invalidParameterError("options.idy", "number", options.idy); - } - } - if (is.defined(options.odx)) { - if (is.number(options.odx)) { - this.options.affineOdx = options.odx; - } else { - throw is.invalidParameterError("options.odx", "number", options.odx); - } - } - if (is.defined(options.ody)) { - if (is.number(options.ody)) { - this.options.affineOdy = options.ody; - } else { - throw is.invalidParameterError("options.ody", "number", options.ody); - } - } - if (is.defined(options.interpolator)) { - if (is.inArray(options.interpolator, Object.values(this.constructor.interpolators))) { - this.options.affineInterpolator = options.interpolator; - } else { - throw is.invalidParameterError("options.interpolator", "valid interpolator name", options.interpolator); - } - } - } else { - throw is.invalidParameterError("options", "object", options); - } - } - return this; - } - function sharpen(options, flat, jagged) { - if (!is.defined(options)) { - this.options.sharpenSigma = -1; - } else if (is.bool(options)) { - this.options.sharpenSigma = options ? -1 : 0; - } else if (is.number(options) && is.inRange(options, 0.01, 1e4)) { - this.options.sharpenSigma = options; - if (is.defined(flat)) { - if (is.number(flat) && is.inRange(flat, 0, 1e4)) { - this.options.sharpenM1 = flat; - } else { - throw is.invalidParameterError("flat", "number between 0 and 10000", flat); - } - } - if (is.defined(jagged)) { - if (is.number(jagged) && is.inRange(jagged, 0, 1e4)) { - this.options.sharpenM2 = jagged; - } else { - throw is.invalidParameterError("jagged", "number between 0 and 10000", jagged); - } - } - } else if (is.plainObject(options)) { - if (is.number(options.sigma) && is.inRange(options.sigma, 1e-6, 10)) { - this.options.sharpenSigma = options.sigma; - } else { - throw is.invalidParameterError("options.sigma", "number between 0.000001 and 10", options.sigma); - } - if (is.defined(options.m1)) { - if (is.number(options.m1) && is.inRange(options.m1, 0, 1e6)) { - this.options.sharpenM1 = options.m1; - } else { - throw is.invalidParameterError("options.m1", "number between 0 and 1000000", options.m1); - } - } - if (is.defined(options.m2)) { - if (is.number(options.m2) && is.inRange(options.m2, 0, 1e6)) { - this.options.sharpenM2 = options.m2; - } else { - throw is.invalidParameterError("options.m2", "number between 0 and 1000000", options.m2); - } - } - if (is.defined(options.x1)) { - if (is.number(options.x1) && is.inRange(options.x1, 0, 1e6)) { - this.options.sharpenX1 = options.x1; - } else { - throw is.invalidParameterError("options.x1", "number between 0 and 1000000", options.x1); - } - } - if (is.defined(options.y2)) { - if (is.number(options.y2) && is.inRange(options.y2, 0, 1e6)) { - this.options.sharpenY2 = options.y2; - } else { - throw is.invalidParameterError("options.y2", "number between 0 and 1000000", options.y2); - } - } - if (is.defined(options.y3)) { - if (is.number(options.y3) && is.inRange(options.y3, 0, 1e6)) { - this.options.sharpenY3 = options.y3; - } else { - throw is.invalidParameterError("options.y3", "number between 0 and 1000000", options.y3); - } - } - } else { - throw is.invalidParameterError("sigma", "number between 0.01 and 10000", options); - } - return this; - } - function median(size) { - if (!is.defined(size)) { - this.options.medianSize = 3; - } else if (is.integer(size) && is.inRange(size, 1, 1e3)) { - this.options.medianSize = size; - } else { - throw is.invalidParameterError("size", "integer between 1 and 1000", size); - } - return this; - } - function blur(options) { - let sigma; - if (is.number(options)) { - sigma = options; - } else if (is.plainObject(options)) { - if (!is.number(options.sigma)) { - throw is.invalidParameterError("options.sigma", "number between 0.3 and 1000", sigma); - } - sigma = options.sigma; - if ("precision" in options) { - if (is.string(vipsPrecision[options.precision])) { - this.options.precision = vipsPrecision[options.precision]; - } else { - throw is.invalidParameterError("precision", "one of: integer, float, approximate", options.precision); - } - } - if ("minAmplitude" in options) { - if (is.number(options.minAmplitude) && is.inRange(options.minAmplitude, 1e-3, 1)) { - this.options.minAmpl = options.minAmplitude; - } else { - throw is.invalidParameterError("minAmplitude", "number between 0.001 and 1", options.minAmplitude); - } - } - } - if (!is.defined(options)) { - this.options.blurSigma = -1; - } else if (is.bool(options)) { - this.options.blurSigma = options ? -1 : 0; - } else if (is.number(sigma) && is.inRange(sigma, 0.3, 1e3)) { - this.options.blurSigma = sigma; - } else { - throw is.invalidParameterError("sigma", "number between 0.3 and 1000", sigma); - } - return this; - } - function flatten(options) { - this.options.flatten = is.bool(options) ? options : true; - if (is.object(options)) { - this._setBackgroundColourOption("flattenBackground", options.background); - } - return this; - } - function unflatten() { - this.options.unflatten = true; - return this; - } - function gamma(gamma2, gammaOut) { - if (!is.defined(gamma2)) { - this.options.gamma = 2.2; - } else if (is.number(gamma2) && is.inRange(gamma2, 1, 3)) { - this.options.gamma = gamma2; - } else { - throw is.invalidParameterError("gamma", "number between 1.0 and 3.0", gamma2); - } - if (!is.defined(gammaOut)) { - this.options.gammaOut = this.options.gamma; - } else if (is.number(gammaOut) && is.inRange(gammaOut, 1, 3)) { - this.options.gammaOut = gammaOut; - } else { - throw is.invalidParameterError("gammaOut", "number between 1.0 and 3.0", gammaOut); - } - return this; - } - function negate(options) { - this.options.negate = is.bool(options) ? options : true; - if (is.plainObject(options) && "alpha" in options) { - if (!is.bool(options.alpha)) { - throw is.invalidParameterError("alpha", "should be boolean value", options.alpha); - } else { - this.options.negateAlpha = options.alpha; - } - } - return this; - } - function normalise(options) { - if (is.plainObject(options)) { - if (is.defined(options.lower)) { - if (is.number(options.lower) && is.inRange(options.lower, 0, 99)) { - this.options.normaliseLower = options.lower; - } else { - throw is.invalidParameterError("lower", "number between 0 and 99", options.lower); - } - } - if (is.defined(options.upper)) { - if (is.number(options.upper) && is.inRange(options.upper, 1, 100)) { - this.options.normaliseUpper = options.upper; - } else { - throw is.invalidParameterError("upper", "number between 1 and 100", options.upper); - } - } - } - if (this.options.normaliseLower >= this.options.normaliseUpper) { - throw is.invalidParameterError( - "range", - "lower to be less than upper", - `${this.options.normaliseLower} >= ${this.options.normaliseUpper}` - ); - } - this.options.normalise = true; - return this; - } - function normalize(options) { - return this.normalise(options); - } - function clahe(options) { - if (is.plainObject(options)) { - if (is.integer(options.width) && options.width > 0) { - this.options.claheWidth = options.width; - } else { - throw is.invalidParameterError("width", "integer greater than zero", options.width); - } - if (is.integer(options.height) && options.height > 0) { - this.options.claheHeight = options.height; - } else { - throw is.invalidParameterError("height", "integer greater than zero", options.height); - } - if (is.defined(options.maxSlope)) { - if (is.integer(options.maxSlope) && is.inRange(options.maxSlope, 0, 100)) { - this.options.claheMaxSlope = options.maxSlope; - } else { - throw is.invalidParameterError("maxSlope", "integer between 0 and 100", options.maxSlope); - } - } - } else { - throw is.invalidParameterError("options", "plain object", options); - } - return this; - } - function convolve(kernel) { - if (!is.object(kernel) || !Array.isArray(kernel.kernel) || !is.integer(kernel.width) || !is.integer(kernel.height) || !is.inRange(kernel.width, 3, 1001) || !is.inRange(kernel.height, 3, 1001) || kernel.height * kernel.width !== kernel.kernel.length) { - throw new Error("Invalid convolution kernel"); - } - if (!is.integer(kernel.scale)) { - kernel.scale = kernel.kernel.reduce(function(a2, b2) { - return a2 + b2; - }, 0); - } - if (kernel.scale < 1) { - kernel.scale = 1; - } - if (!is.integer(kernel.offset)) { - kernel.offset = 0; - } - this.options.convKernel = kernel; - return this; - } - function threshold(threshold2, options) { - if (!is.defined(threshold2)) { - this.options.threshold = 128; - } else if (is.bool(threshold2)) { - this.options.threshold = threshold2 ? 128 : 0; - } else if (is.integer(threshold2) && is.inRange(threshold2, 0, 255)) { - this.options.threshold = threshold2; - } else { - throw is.invalidParameterError("threshold", "integer between 0 and 255", threshold2); - } - if (!is.object(options) || options.greyscale === true || options.grayscale === true) { - this.options.thresholdGrayscale = true; - } else { - this.options.thresholdGrayscale = false; - } - return this; - } - function boolean(operand, operator, options) { - this.options.boolean = this._createInputDescriptor(operand, options); - if (is.string(operator) && is.inArray(operator, ["and", "or", "eor"])) { - this.options.booleanOp = operator; - } else { - throw is.invalidParameterError("operator", "one of: and, or, eor", operator); - } - return this; - } - function linear(a2, b2) { - if (!is.defined(a2) && is.number(b2)) { - a2 = 1; - } else if (is.number(a2) && !is.defined(b2)) { - b2 = 0; - } - if (!is.defined(a2)) { - this.options.linearA = []; - } else if (is.number(a2)) { - this.options.linearA = [a2]; - } else if (Array.isArray(a2) && a2.length && a2.every(is.number)) { - this.options.linearA = a2; - } else { - throw is.invalidParameterError("a", "number or array of numbers", a2); - } - if (!is.defined(b2)) { - this.options.linearB = []; - } else if (is.number(b2)) { - this.options.linearB = [b2]; - } else if (Array.isArray(b2) && b2.length && b2.every(is.number)) { - this.options.linearB = b2; - } else { - throw is.invalidParameterError("b", "number or array of numbers", b2); - } - if (this.options.linearA.length !== this.options.linearB.length) { - throw new Error("Expected a and b to be arrays of the same length"); - } - return this; - } - function recomb(inputMatrix) { - if (!Array.isArray(inputMatrix)) { - throw is.invalidParameterError("inputMatrix", "array", inputMatrix); - } - if (inputMatrix.length !== 3 && inputMatrix.length !== 4) { - throw is.invalidParameterError("inputMatrix", "3x3 or 4x4 array", inputMatrix.length); - } - const recombMatrix = inputMatrix.flat().map(Number); - if (recombMatrix.length !== 9 && recombMatrix.length !== 16) { - throw is.invalidParameterError("inputMatrix", "cardinality of 9 or 16", recombMatrix.length); - } - this.options.recombMatrix = recombMatrix; - return this; - } - function modulate(options) { - if (!is.plainObject(options)) { - throw is.invalidParameterError("options", "plain object", options); - } - if ("brightness" in options) { - if (is.number(options.brightness) && options.brightness >= 0) { - this.options.brightness = options.brightness; - } else { - throw is.invalidParameterError("brightness", "number above zero", options.brightness); - } - } - if ("saturation" in options) { - if (is.number(options.saturation) && options.saturation >= 0) { - this.options.saturation = options.saturation; - } else { - throw is.invalidParameterError("saturation", "number above zero", options.saturation); - } - } - if ("hue" in options) { - if (is.integer(options.hue)) { - this.options.hue = options.hue % 360; - } else { - throw is.invalidParameterError("hue", "number", options.hue); - } - } - if ("lightness" in options) { - if (is.number(options.lightness)) { - this.options.lightness = options.lightness; - } else { - throw is.invalidParameterError("lightness", "number", options.lightness); - } - } - return this; - } - module.exports = function(Sharp) { - Object.assign(Sharp.prototype, { - rotate, - flip, - flop, - affine, - sharpen, - median, - blur, - flatten, - unflatten, - gamma, - negate, - normalise, - normalize, - clahe, - convolve, - threshold, - boolean, - linear, - recomb, - modulate - }); - }; - } -}); - -// node_modules/sharp/lib/colour.js -var require_colour = __commonJS({ - "node_modules/sharp/lib/colour.js"(exports2, module) { - var color = require_color(); - var is = require_is(); - var colourspace = { - multiband: "multiband", - "b-w": "b-w", - bw: "b-w", - cmyk: "cmyk", - srgb: "srgb" - }; - function tint(tint2) { - this._setBackgroundColourOption("tint", tint2); - return this; - } - function greyscale(greyscale2) { - this.options.greyscale = is.bool(greyscale2) ? greyscale2 : true; - return this; - } - function grayscale(grayscale2) { - return this.greyscale(grayscale2); - } - function pipelineColourspace(colourspace2) { - if (!is.string(colourspace2)) { - throw is.invalidParameterError("colourspace", "string", colourspace2); - } - this.options.colourspacePipeline = colourspace2; - return this; - } - function pipelineColorspace(colorspace) { - return this.pipelineColourspace(colorspace); - } - function toColourspace(colourspace2) { - if (!is.string(colourspace2)) { - throw is.invalidParameterError("colourspace", "string", colourspace2); - } - this.options.colourspace = colourspace2; - return this; - } - function toColorspace(colorspace) { - return this.toColourspace(colorspace); - } - function _setBackgroundColourOption(key, value) { - if (is.defined(value)) { - if (is.object(value) || is.string(value)) { - const colour = color(value); - this.options[key] = [ - colour.red(), - colour.green(), - colour.blue(), - Math.round(colour.alpha() * 255) - ]; - } else { - throw is.invalidParameterError("background", "object or string", value); - } - } - } - module.exports = function(Sharp) { - Object.assign(Sharp.prototype, { - // Public - tint, - greyscale, - grayscale, - pipelineColourspace, - pipelineColorspace, - toColourspace, - toColorspace, - // Private - _setBackgroundColourOption - }); - Sharp.colourspace = colourspace; - Sharp.colorspace = colourspace; - }; - } -}); - -// node_modules/sharp/lib/channel.js -var require_channel = __commonJS({ - "node_modules/sharp/lib/channel.js"(exports2, module) { - var is = require_is(); - var bool = { - and: "and", - or: "or", - eor: "eor" - }; - function removeAlpha() { - this.options.removeAlpha = true; - return this; - } - function ensureAlpha(alpha) { - if (is.defined(alpha)) { - if (is.number(alpha) && is.inRange(alpha, 0, 1)) { - this.options.ensureAlpha = alpha; - } else { - throw is.invalidParameterError("alpha", "number between 0 and 1", alpha); - } - } else { - this.options.ensureAlpha = 1; - } - return this; - } - function extractChannel(channel) { - const channelMap = { red: 0, green: 1, blue: 2, alpha: 3 }; - if (Object.keys(channelMap).includes(channel)) { - channel = channelMap[channel]; - } - if (is.integer(channel) && is.inRange(channel, 0, 4)) { - this.options.extractChannel = channel; - } else { - throw is.invalidParameterError("channel", "integer or one of: red, green, blue, alpha", channel); - } - return this; - } - function joinChannel(images, options) { - if (Array.isArray(images)) { - images.forEach(function(image) { - this.options.joinChannelIn.push(this._createInputDescriptor(image, options)); - }, this); - } else { - this.options.joinChannelIn.push(this._createInputDescriptor(images, options)); - } - return this; - } - function bandbool(boolOp) { - if (is.string(boolOp) && is.inArray(boolOp, ["and", "or", "eor"])) { - this.options.bandBoolOp = boolOp; - } else { - throw is.invalidParameterError("boolOp", "one of: and, or, eor", boolOp); - } - return this; - } - module.exports = function(Sharp) { - Object.assign(Sharp.prototype, { - // Public instance functions - removeAlpha, - ensureAlpha, - extractChannel, - joinChannel, - bandbool - }); - Sharp.bool = bool; - }; - } -}); - -// node_modules/sharp/lib/output.js -var require_output = __commonJS({ - "node_modules/sharp/lib/output.js"(exports2, module) { - var path2 = __require("path"); - var is = require_is(); - var sharp2 = require_sharp(); - var formats = /* @__PURE__ */ new Map([ - ["heic", "heif"], - ["heif", "heif"], - ["avif", "avif"], - ["jpeg", "jpeg"], - ["jpg", "jpeg"], - ["jpe", "jpeg"], - ["tile", "tile"], - ["dz", "tile"], - ["png", "png"], - ["raw", "raw"], - ["tiff", "tiff"], - ["tif", "tiff"], - ["webp", "webp"], - ["gif", "gif"], - ["jp2", "jp2"], - ["jpx", "jp2"], - ["j2k", "jp2"], - ["j2c", "jp2"], - ["jxl", "jxl"] - ]); - var jp2Regex = /\.(jp[2x]|j2[kc])$/i; - var errJp2Save = () => new Error("JP2 output requires libvips with support for OpenJPEG"); - var bitdepthFromColourCount = (colours) => 1 << 31 - Math.clz32(Math.ceil(Math.log2(colours))); - function toFile(fileOut, callback) { - let err2; - if (!is.string(fileOut)) { - err2 = new Error("Missing output file path"); - } else if (is.string(this.options.input.file) && path2.resolve(this.options.input.file) === path2.resolve(fileOut)) { - err2 = new Error("Cannot use same file for input and output"); - } else if (jp2Regex.test(path2.extname(fileOut)) && !this.constructor.format.jp2k.output.file) { - err2 = errJp2Save(); - } - if (err2) { - if (is.fn(callback)) { - callback(err2); - } else { - return Promise.reject(err2); - } - } else { - this.options.fileOut = fileOut; - const stack = Error(); - return this._pipeline(callback, stack); - } - return this; - } - function toBuffer(options, callback) { - if (is.object(options)) { - this._setBooleanOption("resolveWithObject", options.resolveWithObject); - } else if (this.options.resolveWithObject) { - this.options.resolveWithObject = false; - } - this.options.fileOut = ""; - const stack = Error(); - return this._pipeline(is.fn(options) ? options : callback, stack); - } - function keepExif() { - this.options.keepMetadata |= 1; - return this; - } - function withExif(exif) { - if (is.object(exif)) { - for (const [ifd, entries] of Object.entries(exif)) { - if (is.object(entries)) { - for (const [k3, v3] of Object.entries(entries)) { - if (is.string(v3)) { - this.options.withExif[`exif-${ifd.toLowerCase()}-${k3}`] = v3; - } else { - throw is.invalidParameterError(`${ifd}.${k3}`, "string", v3); - } - } - } else { - throw is.invalidParameterError(ifd, "object", entries); - } - } - } else { - throw is.invalidParameterError("exif", "object", exif); - } - this.options.withExifMerge = false; - return this.keepExif(); - } - function withExifMerge(exif) { - this.withExif(exif); - this.options.withExifMerge = true; - return this; - } - function keepIccProfile() { - this.options.keepMetadata |= 8; - return this; - } - function withIccProfile(icc, options) { - if (is.string(icc)) { - this.options.withIccProfile = icc; - } else { - throw is.invalidParameterError("icc", "string", icc); - } - this.keepIccProfile(); - if (is.object(options)) { - if (is.defined(options.attach)) { - if (is.bool(options.attach)) { - if (!options.attach) { - this.options.keepMetadata &= -9; - } - } else { - throw is.invalidParameterError("attach", "boolean", options.attach); - } - } - } - return this; - } - function keepMetadata() { - this.options.keepMetadata = 31; - return this; - } - function withMetadata(options) { - this.keepMetadata(); - this.withIccProfile("srgb"); - if (is.object(options)) { - if (is.defined(options.orientation)) { - if (is.integer(options.orientation) && is.inRange(options.orientation, 1, 8)) { - this.options.withMetadataOrientation = options.orientation; - } else { - throw is.invalidParameterError("orientation", "integer between 1 and 8", options.orientation); - } - } - if (is.defined(options.density)) { - if (is.number(options.density) && options.density > 0) { - this.options.withMetadataDensity = options.density; - } else { - throw is.invalidParameterError("density", "positive number", options.density); - } - } - if (is.defined(options.icc)) { - this.withIccProfile(options.icc); - } - if (is.defined(options.exif)) { - this.withExifMerge(options.exif); - } - } - return this; - } - function toFormat(format, options) { - const actualFormat = formats.get((is.object(format) && is.string(format.id) ? format.id : format).toLowerCase()); - if (!actualFormat) { - throw is.invalidParameterError("format", `one of: ${[...formats.keys()].join(", ")}`, format); - } - return this[actualFormat](options); - } - function jpeg(options) { - if (is.object(options)) { - if (is.defined(options.quality)) { - if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) { - this.options.jpegQuality = options.quality; - } else { - throw is.invalidParameterError("quality", "integer between 1 and 100", options.quality); - } - } - if (is.defined(options.progressive)) { - this._setBooleanOption("jpegProgressive", options.progressive); - } - if (is.defined(options.chromaSubsampling)) { - if (is.string(options.chromaSubsampling) && is.inArray(options.chromaSubsampling, ["4:2:0", "4:4:4"])) { - this.options.jpegChromaSubsampling = options.chromaSubsampling; - } else { - throw is.invalidParameterError("chromaSubsampling", "one of: 4:2:0, 4:4:4", options.chromaSubsampling); - } - } - const optimiseCoding = is.bool(options.optimizeCoding) ? options.optimizeCoding : options.optimiseCoding; - if (is.defined(optimiseCoding)) { - this._setBooleanOption("jpegOptimiseCoding", optimiseCoding); - } - if (is.defined(options.mozjpeg)) { - if (is.bool(options.mozjpeg)) { - if (options.mozjpeg) { - this.options.jpegTrellisQuantisation = true; - this.options.jpegOvershootDeringing = true; - this.options.jpegOptimiseScans = true; - this.options.jpegProgressive = true; - this.options.jpegQuantisationTable = 3; - } - } else { - throw is.invalidParameterError("mozjpeg", "boolean", options.mozjpeg); - } - } - const trellisQuantisation = is.bool(options.trellisQuantization) ? options.trellisQuantization : options.trellisQuantisation; - if (is.defined(trellisQuantisation)) { - this._setBooleanOption("jpegTrellisQuantisation", trellisQuantisation); - } - if (is.defined(options.overshootDeringing)) { - this._setBooleanOption("jpegOvershootDeringing", options.overshootDeringing); - } - const optimiseScans = is.bool(options.optimizeScans) ? options.optimizeScans : options.optimiseScans; - if (is.defined(optimiseScans)) { - this._setBooleanOption("jpegOptimiseScans", optimiseScans); - if (optimiseScans) { - this.options.jpegProgressive = true; - } - } - const quantisationTable = is.number(options.quantizationTable) ? options.quantizationTable : options.quantisationTable; - if (is.defined(quantisationTable)) { - if (is.integer(quantisationTable) && is.inRange(quantisationTable, 0, 8)) { - this.options.jpegQuantisationTable = quantisationTable; - } else { - throw is.invalidParameterError("quantisationTable", "integer between 0 and 8", quantisationTable); - } - } - } - return this._updateFormatOut("jpeg", options); - } - function png(options) { - if (is.object(options)) { - if (is.defined(options.progressive)) { - this._setBooleanOption("pngProgressive", options.progressive); - } - if (is.defined(options.compressionLevel)) { - if (is.integer(options.compressionLevel) && is.inRange(options.compressionLevel, 0, 9)) { - this.options.pngCompressionLevel = options.compressionLevel; - } else { - throw is.invalidParameterError("compressionLevel", "integer between 0 and 9", options.compressionLevel); - } - } - if (is.defined(options.adaptiveFiltering)) { - this._setBooleanOption("pngAdaptiveFiltering", options.adaptiveFiltering); - } - const colours = options.colours || options.colors; - if (is.defined(colours)) { - if (is.integer(colours) && is.inRange(colours, 2, 256)) { - this.options.pngBitdepth = bitdepthFromColourCount(colours); - } else { - throw is.invalidParameterError("colours", "integer between 2 and 256", colours); - } - } - if (is.defined(options.palette)) { - this._setBooleanOption("pngPalette", options.palette); - } else if ([options.quality, options.effort, options.colours, options.colors, options.dither].some(is.defined)) { - this._setBooleanOption("pngPalette", true); - } - if (this.options.pngPalette) { - if (is.defined(options.quality)) { - if (is.integer(options.quality) && is.inRange(options.quality, 0, 100)) { - this.options.pngQuality = options.quality; - } else { - throw is.invalidParameterError("quality", "integer between 0 and 100", options.quality); - } - } - if (is.defined(options.effort)) { - if (is.integer(options.effort) && is.inRange(options.effort, 1, 10)) { - this.options.pngEffort = options.effort; - } else { - throw is.invalidParameterError("effort", "integer between 1 and 10", options.effort); - } - } - if (is.defined(options.dither)) { - if (is.number(options.dither) && is.inRange(options.dither, 0, 1)) { - this.options.pngDither = options.dither; - } else { - throw is.invalidParameterError("dither", "number between 0.0 and 1.0", options.dither); - } - } - } - } - return this._updateFormatOut("png", options); - } - function webp(options) { - if (is.object(options)) { - if (is.defined(options.quality)) { - if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) { - this.options.webpQuality = options.quality; - } else { - throw is.invalidParameterError("quality", "integer between 1 and 100", options.quality); - } - } - if (is.defined(options.alphaQuality)) { - if (is.integer(options.alphaQuality) && is.inRange(options.alphaQuality, 0, 100)) { - this.options.webpAlphaQuality = options.alphaQuality; - } else { - throw is.invalidParameterError("alphaQuality", "integer between 0 and 100", options.alphaQuality); - } - } - if (is.defined(options.lossless)) { - this._setBooleanOption("webpLossless", options.lossless); - } - if (is.defined(options.nearLossless)) { - this._setBooleanOption("webpNearLossless", options.nearLossless); - } - if (is.defined(options.smartSubsample)) { - this._setBooleanOption("webpSmartSubsample", options.smartSubsample); - } - if (is.defined(options.preset)) { - if (is.string(options.preset) && is.inArray(options.preset, ["default", "photo", "picture", "drawing", "icon", "text"])) { - this.options.webpPreset = options.preset; - } else { - throw is.invalidParameterError("preset", "one of: default, photo, picture, drawing, icon, text", options.preset); - } - } - if (is.defined(options.effort)) { - if (is.integer(options.effort) && is.inRange(options.effort, 0, 6)) { - this.options.webpEffort = options.effort; - } else { - throw is.invalidParameterError("effort", "integer between 0 and 6", options.effort); - } - } - if (is.defined(options.minSize)) { - this._setBooleanOption("webpMinSize", options.minSize); - } - if (is.defined(options.mixed)) { - this._setBooleanOption("webpMixed", options.mixed); - } - } - trySetAnimationOptions(options, this.options); - return this._updateFormatOut("webp", options); - } - function gif(options) { - if (is.object(options)) { - if (is.defined(options.reuse)) { - this._setBooleanOption("gifReuse", options.reuse); - } - if (is.defined(options.progressive)) { - this._setBooleanOption("gifProgressive", options.progressive); - } - const colours = options.colours || options.colors; - if (is.defined(colours)) { - if (is.integer(colours) && is.inRange(colours, 2, 256)) { - this.options.gifBitdepth = bitdepthFromColourCount(colours); - } else { - throw is.invalidParameterError("colours", "integer between 2 and 256", colours); - } - } - if (is.defined(options.effort)) { - if (is.number(options.effort) && is.inRange(options.effort, 1, 10)) { - this.options.gifEffort = options.effort; - } else { - throw is.invalidParameterError("effort", "integer between 1 and 10", options.effort); - } - } - if (is.defined(options.dither)) { - if (is.number(options.dither) && is.inRange(options.dither, 0, 1)) { - this.options.gifDither = options.dither; - } else { - throw is.invalidParameterError("dither", "number between 0.0 and 1.0", options.dither); - } - } - if (is.defined(options.interFrameMaxError)) { - if (is.number(options.interFrameMaxError) && is.inRange(options.interFrameMaxError, 0, 32)) { - this.options.gifInterFrameMaxError = options.interFrameMaxError; - } else { - throw is.invalidParameterError("interFrameMaxError", "number between 0.0 and 32.0", options.interFrameMaxError); - } - } - if (is.defined(options.interPaletteMaxError)) { - if (is.number(options.interPaletteMaxError) && is.inRange(options.interPaletteMaxError, 0, 256)) { - this.options.gifInterPaletteMaxError = options.interPaletteMaxError; - } else { - throw is.invalidParameterError("interPaletteMaxError", "number between 0.0 and 256.0", options.interPaletteMaxError); - } - } - } - trySetAnimationOptions(options, this.options); - return this._updateFormatOut("gif", options); - } - function jp2(options) { - if (!this.constructor.format.jp2k.output.buffer) { - throw errJp2Save(); - } - if (is.object(options)) { - if (is.defined(options.quality)) { - if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) { - this.options.jp2Quality = options.quality; - } else { - throw is.invalidParameterError("quality", "integer between 1 and 100", options.quality); - } - } - if (is.defined(options.lossless)) { - if (is.bool(options.lossless)) { - this.options.jp2Lossless = options.lossless; - } else { - throw is.invalidParameterError("lossless", "boolean", options.lossless); - } - } - if (is.defined(options.tileWidth)) { - if (is.integer(options.tileWidth) && is.inRange(options.tileWidth, 1, 32768)) { - this.options.jp2TileWidth = options.tileWidth; - } else { - throw is.invalidParameterError("tileWidth", "integer between 1 and 32768", options.tileWidth); - } - } - if (is.defined(options.tileHeight)) { - if (is.integer(options.tileHeight) && is.inRange(options.tileHeight, 1, 32768)) { - this.options.jp2TileHeight = options.tileHeight; - } else { - throw is.invalidParameterError("tileHeight", "integer between 1 and 32768", options.tileHeight); - } - } - if (is.defined(options.chromaSubsampling)) { - if (is.string(options.chromaSubsampling) && is.inArray(options.chromaSubsampling, ["4:2:0", "4:4:4"])) { - this.options.jp2ChromaSubsampling = options.chromaSubsampling; - } else { - throw is.invalidParameterError("chromaSubsampling", "one of: 4:2:0, 4:4:4", options.chromaSubsampling); - } - } - } - return this._updateFormatOut("jp2", options); - } - function trySetAnimationOptions(source, target) { - if (is.object(source) && is.defined(source.loop)) { - if (is.integer(source.loop) && is.inRange(source.loop, 0, 65535)) { - target.loop = source.loop; - } else { - throw is.invalidParameterError("loop", "integer between 0 and 65535", source.loop); - } - } - if (is.object(source) && is.defined(source.delay)) { - if (is.integer(source.delay) && is.inRange(source.delay, 0, 65535)) { - target.delay = [source.delay]; - } else if (Array.isArray(source.delay) && source.delay.every(is.integer) && source.delay.every((v3) => is.inRange(v3, 0, 65535))) { - target.delay = source.delay; - } else { - throw is.invalidParameterError("delay", "integer or an array of integers between 0 and 65535", source.delay); - } - } - } - function tiff(options) { - if (is.object(options)) { - if (is.defined(options.quality)) { - if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) { - this.options.tiffQuality = options.quality; - } else { - throw is.invalidParameterError("quality", "integer between 1 and 100", options.quality); - } - } - if (is.defined(options.bitdepth)) { - if (is.integer(options.bitdepth) && is.inArray(options.bitdepth, [1, 2, 4, 8])) { - this.options.tiffBitdepth = options.bitdepth; - } else { - throw is.invalidParameterError("bitdepth", "1, 2, 4 or 8", options.bitdepth); - } - } - if (is.defined(options.tile)) { - this._setBooleanOption("tiffTile", options.tile); - } - if (is.defined(options.tileWidth)) { - if (is.integer(options.tileWidth) && options.tileWidth > 0) { - this.options.tiffTileWidth = options.tileWidth; - } else { - throw is.invalidParameterError("tileWidth", "integer greater than zero", options.tileWidth); - } - } - if (is.defined(options.tileHeight)) { - if (is.integer(options.tileHeight) && options.tileHeight > 0) { - this.options.tiffTileHeight = options.tileHeight; - } else { - throw is.invalidParameterError("tileHeight", "integer greater than zero", options.tileHeight); - } - } - if (is.defined(options.miniswhite)) { - this._setBooleanOption("tiffMiniswhite", options.miniswhite); - } - if (is.defined(options.pyramid)) { - this._setBooleanOption("tiffPyramid", options.pyramid); - } - if (is.defined(options.xres)) { - if (is.number(options.xres) && options.xres > 0) { - this.options.tiffXres = options.xres; - } else { - throw is.invalidParameterError("xres", "number greater than zero", options.xres); - } - } - if (is.defined(options.yres)) { - if (is.number(options.yres) && options.yres > 0) { - this.options.tiffYres = options.yres; - } else { - throw is.invalidParameterError("yres", "number greater than zero", options.yres); - } - } - if (is.defined(options.compression)) { - if (is.string(options.compression) && is.inArray(options.compression, ["none", "jpeg", "deflate", "packbits", "ccittfax4", "lzw", "webp", "zstd", "jp2k"])) { - this.options.tiffCompression = options.compression; - } else { - throw is.invalidParameterError("compression", "one of: none, jpeg, deflate, packbits, ccittfax4, lzw, webp, zstd, jp2k", options.compression); - } - } - if (is.defined(options.predictor)) { - if (is.string(options.predictor) && is.inArray(options.predictor, ["none", "horizontal", "float"])) { - this.options.tiffPredictor = options.predictor; - } else { - throw is.invalidParameterError("predictor", "one of: none, horizontal, float", options.predictor); - } - } - if (is.defined(options.resolutionUnit)) { - if (is.string(options.resolutionUnit) && is.inArray(options.resolutionUnit, ["inch", "cm"])) { - this.options.tiffResolutionUnit = options.resolutionUnit; - } else { - throw is.invalidParameterError("resolutionUnit", "one of: inch, cm", options.resolutionUnit); - } - } - } - return this._updateFormatOut("tiff", options); - } - function avif(options) { - return this.heif({ ...options, compression: "av1" }); - } - function heif(options) { - if (is.object(options)) { - if (is.string(options.compression) && is.inArray(options.compression, ["av1", "hevc"])) { - this.options.heifCompression = options.compression; - } else { - throw is.invalidParameterError("compression", "one of: av1, hevc", options.compression); - } - if (is.defined(options.quality)) { - if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) { - this.options.heifQuality = options.quality; - } else { - throw is.invalidParameterError("quality", "integer between 1 and 100", options.quality); - } - } - if (is.defined(options.lossless)) { - if (is.bool(options.lossless)) { - this.options.heifLossless = options.lossless; - } else { - throw is.invalidParameterError("lossless", "boolean", options.lossless); - } - } - if (is.defined(options.effort)) { - if (is.integer(options.effort) && is.inRange(options.effort, 0, 9)) { - this.options.heifEffort = options.effort; - } else { - throw is.invalidParameterError("effort", "integer between 0 and 9", options.effort); - } - } - if (is.defined(options.chromaSubsampling)) { - if (is.string(options.chromaSubsampling) && is.inArray(options.chromaSubsampling, ["4:2:0", "4:4:4"])) { - this.options.heifChromaSubsampling = options.chromaSubsampling; - } else { - throw is.invalidParameterError("chromaSubsampling", "one of: 4:2:0, 4:4:4", options.chromaSubsampling); - } - } - if (is.defined(options.bitdepth)) { - if (is.integer(options.bitdepth) && is.inArray(options.bitdepth, [8, 10, 12])) { - if (options.bitdepth !== 8 && this.constructor.versions.heif) { - throw is.invalidParameterError("bitdepth when using prebuilt binaries", 8, options.bitdepth); - } - this.options.heifBitdepth = options.bitdepth; - } else { - throw is.invalidParameterError("bitdepth", "8, 10 or 12", options.bitdepth); - } - } - } else { - throw is.invalidParameterError("options", "Object", options); - } - return this._updateFormatOut("heif", options); - } - function jxl(options) { - if (is.object(options)) { - if (is.defined(options.quality)) { - if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) { - this.options.jxlDistance = options.quality >= 30 ? 0.1 + (100 - options.quality) * 0.09 : 53 / 3e3 * options.quality * options.quality - 23 / 20 * options.quality + 25; - } else { - throw is.invalidParameterError("quality", "integer between 1 and 100", options.quality); - } - } else if (is.defined(options.distance)) { - if (is.number(options.distance) && is.inRange(options.distance, 0, 15)) { - this.options.jxlDistance = options.distance; - } else { - throw is.invalidParameterError("distance", "number between 0.0 and 15.0", options.distance); - } - } - if (is.defined(options.decodingTier)) { - if (is.integer(options.decodingTier) && is.inRange(options.decodingTier, 0, 4)) { - this.options.jxlDecodingTier = options.decodingTier; - } else { - throw is.invalidParameterError("decodingTier", "integer between 0 and 4", options.decodingTier); - } - } - if (is.defined(options.lossless)) { - if (is.bool(options.lossless)) { - this.options.jxlLossless = options.lossless; - } else { - throw is.invalidParameterError("lossless", "boolean", options.lossless); - } - } - if (is.defined(options.effort)) { - if (is.integer(options.effort) && is.inRange(options.effort, 3, 9)) { - this.options.jxlEffort = options.effort; - } else { - throw is.invalidParameterError("effort", "integer between 3 and 9", options.effort); - } - } - } - return this._updateFormatOut("jxl", options); - } - function raw(options) { - if (is.object(options)) { - if (is.defined(options.depth)) { - if (is.string(options.depth) && is.inArray( - options.depth, - ["char", "uchar", "short", "ushort", "int", "uint", "float", "complex", "double", "dpcomplex"] - )) { - this.options.rawDepth = options.depth; - } else { - throw is.invalidParameterError("depth", "one of: char, uchar, short, ushort, int, uint, float, complex, double, dpcomplex", options.depth); - } - } - } - return this._updateFormatOut("raw"); - } - function tile(options) { - if (is.object(options)) { - if (is.defined(options.size)) { - if (is.integer(options.size) && is.inRange(options.size, 1, 8192)) { - this.options.tileSize = options.size; - } else { - throw is.invalidParameterError("size", "integer between 1 and 8192", options.size); - } - } - if (is.defined(options.overlap)) { - if (is.integer(options.overlap) && is.inRange(options.overlap, 0, 8192)) { - if (options.overlap > this.options.tileSize) { - throw is.invalidParameterError("overlap", `<= size (${this.options.tileSize})`, options.overlap); - } - this.options.tileOverlap = options.overlap; - } else { - throw is.invalidParameterError("overlap", "integer between 0 and 8192", options.overlap); - } - } - if (is.defined(options.container)) { - if (is.string(options.container) && is.inArray(options.container, ["fs", "zip"])) { - this.options.tileContainer = options.container; - } else { - throw is.invalidParameterError("container", "one of: fs, zip", options.container); - } - } - if (is.defined(options.layout)) { - if (is.string(options.layout) && is.inArray(options.layout, ["dz", "google", "iiif", "iiif3", "zoomify"])) { - this.options.tileLayout = options.layout; - } else { - throw is.invalidParameterError("layout", "one of: dz, google, iiif, iiif3, zoomify", options.layout); - } - } - if (is.defined(options.angle)) { - if (is.integer(options.angle) && !(options.angle % 90)) { - this.options.tileAngle = options.angle; - } else { - throw is.invalidParameterError("angle", "positive/negative multiple of 90", options.angle); - } - } - this._setBackgroundColourOption("tileBackground", options.background); - if (is.defined(options.depth)) { - if (is.string(options.depth) && is.inArray(options.depth, ["onepixel", "onetile", "one"])) { - this.options.tileDepth = options.depth; - } else { - throw is.invalidParameterError("depth", "one of: onepixel, onetile, one", options.depth); - } - } - if (is.defined(options.skipBlanks)) { - if (is.integer(options.skipBlanks) && is.inRange(options.skipBlanks, -1, 65535)) { - this.options.tileSkipBlanks = options.skipBlanks; - } else { - throw is.invalidParameterError("skipBlanks", "integer between -1 and 255/65535", options.skipBlanks); - } - } else if (is.defined(options.layout) && options.layout === "google") { - this.options.tileSkipBlanks = 5; - } - const centre = is.bool(options.center) ? options.center : options.centre; - if (is.defined(centre)) { - this._setBooleanOption("tileCentre", centre); - } - if (is.defined(options.id)) { - if (is.string(options.id)) { - this.options.tileId = options.id; - } else { - throw is.invalidParameterError("id", "string", options.id); - } - } - if (is.defined(options.basename)) { - if (is.string(options.basename)) { - this.options.tileBasename = options.basename; - } else { - throw is.invalidParameterError("basename", "string", options.basename); - } - } - } - if (is.inArray(this.options.formatOut, ["jpeg", "png", "webp"])) { - this.options.tileFormat = this.options.formatOut; - } else if (this.options.formatOut !== "input") { - throw is.invalidParameterError("format", "one of: jpeg, png, webp", this.options.formatOut); - } - return this._updateFormatOut("dz"); - } - function timeout(options) { - if (!is.plainObject(options)) { - throw is.invalidParameterError("options", "object", options); - } - if (is.integer(options.seconds) && is.inRange(options.seconds, 0, 3600)) { - this.options.timeoutSeconds = options.seconds; - } else { - throw is.invalidParameterError("seconds", "integer between 0 and 3600", options.seconds); - } - return this; - } - function _updateFormatOut(formatOut, options) { - if (!(is.object(options) && options.force === false)) { - this.options.formatOut = formatOut; - } - return this; - } - function _setBooleanOption(key, val) { - if (is.bool(val)) { - this.options[key] = val; - } else { - throw is.invalidParameterError(key, "boolean", val); - } - } - function _read() { - if (!this.options.streamOut) { - this.options.streamOut = true; - const stack = Error(); - this._pipeline(void 0, stack); - } - } - function _pipeline(callback, stack) { - if (typeof callback === "function") { - if (this._isStreamInput()) { - this.on("finish", () => { - this._flattenBufferIn(); - sharp2.pipeline(this.options, (err2, data, info) => { - if (err2) { - callback(is.nativeError(err2, stack)); - } else { - callback(null, data, info); - } - }); - }); - } else { - sharp2.pipeline(this.options, (err2, data, info) => { - if (err2) { - callback(is.nativeError(err2, stack)); - } else { - callback(null, data, info); - } - }); - } - return this; - } else if (this.options.streamOut) { - if (this._isStreamInput()) { - this.once("finish", () => { - this._flattenBufferIn(); - sharp2.pipeline(this.options, (err2, data, info) => { - if (err2) { - this.emit("error", is.nativeError(err2, stack)); - } else { - this.emit("info", info); - this.push(data); - } - this.push(null); - this.on("end", () => this.emit("close")); - }); - }); - if (this.streamInFinished) { - this.emit("finish"); - } - } else { - sharp2.pipeline(this.options, (err2, data, info) => { - if (err2) { - this.emit("error", is.nativeError(err2, stack)); - } else { - this.emit("info", info); - this.push(data); - } - this.push(null); - this.on("end", () => this.emit("close")); - }); - } - return this; - } else { - if (this._isStreamInput()) { - return new Promise((resolve, reject) => { - this.once("finish", () => { - this._flattenBufferIn(); - sharp2.pipeline(this.options, (err2, data, info) => { - if (err2) { - reject(is.nativeError(err2, stack)); - } else { - if (this.options.resolveWithObject) { - resolve({ data, info }); - } else { - resolve(data); - } - } - }); - }); - }); - } else { - return new Promise((resolve, reject) => { - sharp2.pipeline(this.options, (err2, data, info) => { - if (err2) { - reject(is.nativeError(err2, stack)); - } else { - if (this.options.resolveWithObject) { - resolve({ data, info }); - } else { - resolve(data); - } - } - }); - }); - } - } - } - module.exports = function(Sharp) { - Object.assign(Sharp.prototype, { - // Public - toFile, - toBuffer, - keepExif, - withExif, - withExifMerge, - keepIccProfile, - withIccProfile, - keepMetadata, - withMetadata, - toFormat, - jpeg, - jp2, - png, - webp, - tiff, - avif, - heif, - jxl, - gif, - raw, - tile, - timeout, - // Private - _updateFormatOut, - _setBooleanOption, - _read, - _pipeline - }); - }; - } -}); - -// node_modules/sharp/lib/utility.js -var require_utility = __commonJS({ - "node_modules/sharp/lib/utility.js"(exports2, module) { - var events = __require("events"); - var detectLibc = require_detect_libc(); - var is = require_is(); - var { runtimePlatformArch } = require_libvips(); - var sharp2 = require_sharp(); - var runtimePlatform = runtimePlatformArch(); - var libvipsVersion = sharp2.libvipsVersion(); - var format = sharp2.format(); - format.heif.output.alias = ["avif", "heic"]; - format.jpeg.output.alias = ["jpe", "jpg"]; - format.tiff.output.alias = ["tif"]; - format.jp2k.output.alias = ["j2c", "j2k", "jp2", "jpx"]; - var interpolators = { - /** [Nearest neighbour interpolation](http://en.wikipedia.org/wiki/Nearest-neighbor_interpolation). Suitable for image enlargement only. */ - nearest: "nearest", - /** [Bilinear interpolation](http://en.wikipedia.org/wiki/Bilinear_interpolation). Faster than bicubic but with less smooth results. */ - bilinear: "bilinear", - /** [Bicubic interpolation](http://en.wikipedia.org/wiki/Bicubic_interpolation) (the default). */ - bicubic: "bicubic", - /** [LBB interpolation](https://github.com/libvips/libvips/blob/master/libvips/resample/lbb.cpp#L100). Prevents some "[acutance](http://en.wikipedia.org/wiki/Acutance)" but typically reduces performance by a factor of 2. */ - locallyBoundedBicubic: "lbb", - /** [Nohalo interpolation](http://eprints.soton.ac.uk/268086/). Prevents acutance but typically reduces performance by a factor of 3. */ - nohalo: "nohalo", - /** [VSQBS interpolation](https://github.com/libvips/libvips/blob/master/libvips/resample/vsqbs.cpp#L48). Prevents "staircasing" when enlarging. */ - vertexSplitQuadraticBasisSpline: "vsqbs" - }; - var versions = { - vips: libvipsVersion.semver - }; - if (!libvipsVersion.isGlobal) { - if (!libvipsVersion.isWasm) { - try { - versions = __require(`@img/sharp-${runtimePlatform}/versions`); - } catch (_2) { - try { - versions = __require(`@img/sharp-libvips-${runtimePlatform}/versions`); - } catch (_3) { - } - } - } else { - try { - versions = __require("@img/sharp-wasm32/versions"); - } catch (_2) { - } - } - } - versions.sharp = require_package().version; - if (versions.heif && format.heif) { - format.heif.input.fileSuffix = [".avif"]; - format.heif.output.alias = ["avif"]; - } - function cache(options) { - if (is.bool(options)) { - if (options) { - return sharp2.cache(50, 20, 100); - } else { - return sharp2.cache(0, 0, 0); - } - } else if (is.object(options)) { - return sharp2.cache(options.memory, options.files, options.items); - } else { - return sharp2.cache(); - } - } - cache(true); - function concurrency(concurrency2) { - return sharp2.concurrency(is.integer(concurrency2) ? concurrency2 : null); - } - if (detectLibc.familySync() === detectLibc.GLIBC && !sharp2._isUsingJemalloc()) { - sharp2.concurrency(1); - } else if (detectLibc.familySync() === detectLibc.MUSL && sharp2.concurrency() === 1024) { - sharp2.concurrency(__require("os").availableParallelism()); - } - var queue = new events.EventEmitter(); - function counters() { - return sharp2.counters(); - } - function simd(simd2) { - return sharp2.simd(is.bool(simd2) ? simd2 : null); - } - function block(options) { - if (is.object(options)) { - if (Array.isArray(options.operation) && options.operation.every(is.string)) { - sharp2.block(options.operation, true); - } else { - throw is.invalidParameterError("operation", "Array", options.operation); - } - } else { - throw is.invalidParameterError("options", "object", options); - } - } - function unblock(options) { - if (is.object(options)) { - if (Array.isArray(options.operation) && options.operation.every(is.string)) { - sharp2.block(options.operation, false); - } else { - throw is.invalidParameterError("operation", "Array", options.operation); - } - } else { - throw is.invalidParameterError("options", "object", options); - } - } - module.exports = function(Sharp) { - Sharp.cache = cache; - Sharp.concurrency = concurrency; - Sharp.counters = counters; - Sharp.simd = simd; - Sharp.format = format; - Sharp.interpolators = interpolators; - Sharp.versions = versions; - Sharp.queue = queue; - Sharp.block = block; - Sharp.unblock = unblock; - }; - } -}); - -// node_modules/sharp/lib/index.js -var require_lib2 = __commonJS({ - "node_modules/sharp/lib/index.js"(exports2, module) { - var Sharp = require_constructor(); - require_input()(Sharp); - require_resize()(Sharp); - require_composite()(Sharp); - require_operation()(Sharp); - require_colour()(Sharp); - require_channel()(Sharp); - require_output()(Sharp); - require_utility()(Sharp); - module.exports = Sharp; - } -}); - // node_modules/reading-time/lib/reading-time.js var require_reading_time = __commonJS({ "node_modules/reading-time/lib/reading-time.js"(exports2, module) { @@ -14494,11 +8348,11 @@ var require_reading_time = __commonJS({ ([lowerBound, upperBound]) => lowerBound <= number2 && number2 <= upperBound ); } - function isCJK(c3) { - if ("string" !== typeof c3) { + function isCJK(c2) { + if ("string" !== typeof c2) { return false; } - const charCode = c3.charCodeAt(0); + const charCode = c2.charCodeAt(0); return codeIsInRanges( charCode, [ @@ -14515,14 +8369,14 @@ var require_reading_time = __commonJS({ ] ); } - function isAnsiWordBound(c3) { - return " \n\r ".includes(c3); + function isAnsiWordBound(c2) { + return " \n\r ".includes(c2); } - function isPunctuation(c3) { - if ("string" !== typeof c3) { + function isPunctuation(c2) { + if ("string" !== typeof c2) { return false; } - const charCode = c3.charCodeAt(0); + const charCode = c2.charCodeAt(0); return codeIsInRanges( charCode, [ @@ -14545,13 +8399,13 @@ var require_reading_time = __commonJS({ while (isWordBound(text[end])) end--; const normalizedText = `${text} `; - for (let i2 = start; i2 <= end; i2++) { - if (isCJK(normalizedText[i2]) || !isWordBound(normalizedText[i2]) && (isWordBound(normalizedText[i2 + 1]) || isCJK(normalizedText[i2 + 1]))) { + for (let i = start; i <= end; i++) { + if (isCJK(normalizedText[i]) || !isWordBound(normalizedText[i]) && (isWordBound(normalizedText[i + 1]) || isCJK(normalizedText[i + 1]))) { words++; } - if (isCJK(normalizedText[i2])) { - while (i2 <= end && (isPunctuation(normalizedText[i2 + 1]) || isWordBound(normalizedText[i2 + 1]))) { - i2++; + if (isCJK(normalizedText[i])) { + while (i <= end && (isPunctuation(normalizedText[i + 1]) || isWordBound(normalizedText[i + 1]))) { + i++; } } } @@ -15800,8 +9654,8 @@ var $32627af916ac1b00$export$5bdb8ccbf5c57afc = [ ]; var $557adaaeb0c7885f$var$data = import_base64_js.default.toByteArray("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"); var $557adaaeb0c7885f$var$classTrie = new import_unicode_trie.default($557adaaeb0c7885f$var$data); -var $557adaaeb0c7885f$var$mapClass = function(c3) { - switch (c3) { +var $557adaaeb0c7885f$var$mapClass = function(c2) { + switch (c2) { case $1627905f8be2ef3f$export$d710c5f50fc7496a: return $1627905f8be2ef3f$export$1bb1140fe1358b00; case $1627905f8be2ef3f$export$da51c6332ad11d7b: @@ -15811,18 +9665,18 @@ var $557adaaeb0c7885f$var$mapClass = function(c3) { case $1627905f8be2ef3f$export$eb6c6d0b7c8826f2: return $1627905f8be2ef3f$export$fb4028874a74450; default: - return c3; + return c2; } }; -var $557adaaeb0c7885f$var$mapFirst = function(c3) { - switch (c3) { +var $557adaaeb0c7885f$var$mapFirst = function(c2) { + switch (c2) { case $1627905f8be2ef3f$export$606cfc2a8896c91f: case $1627905f8be2ef3f$export$e51d3c675bb0140d: return $1627905f8be2ef3f$export$66498d28055820a9; case $1627905f8be2ef3f$export$c4c7eecbfed13dc9: return $1627905f8be2ef3f$export$9e5d732f3676a9ba; default: - return c3; + return c2; } }; var $557adaaeb0c7885f$var$Break = class { @@ -16012,21 +9866,21 @@ var pattern$7 = /^transparent$/; var transparentRe = new RegExp(pattern$7, "i"); var clamp = (num, min, max2) => Math.min(Math.max(min, num), max2); var parseRGB = (num) => { - let n2 = num; - if (typeof n2 !== "number") n2 = n2.endsWith("%") ? parseFloat(n2) * 255 / 100 : parseFloat(n2); - return clamp(Math.round(n2), 0, 255); + let n = num; + if (typeof n !== "number") n = n.endsWith("%") ? parseFloat(n) * 255 / 100 : parseFloat(n); + return clamp(Math.round(n), 0, 255); }; var parsePercentage = (percentage2) => clamp(parseFloat(percentage2), 0, 100); function parseAlpha(alpha) { - let a2 = alpha; - if (typeof a2 !== "number") a2 = a2.endsWith("%") ? parseFloat(a2) / 100 : parseFloat(a2); - return clamp(a2, 0, 1); + let a = alpha; + if (typeof a !== "number") a = a.endsWith("%") ? parseFloat(a) / 100 : parseFloat(a); + return clamp(a, 0, 1); } function getHEX(hex) { - const [r2, g3, b2, a2] = (0, import_hex_rgb.default)(hex, { format: "array" }); - return getRGB([null, ...[r2, g3, b2, a2]]); + const [r, g2, b, a] = (0, import_hex_rgb.default)(hex, { format: "array" }); + return getRGB([null, ...[r, g2, b, a]]); } -function getHSL([, h3, s2, l3, a2 = 1]) { +function getHSL([, h3, s, l2, a = 1]) { let hh = h3; if (hh.endsWith("turn")) { hh = parseFloat(hh) * 360 / 1; @@ -16037,15 +9891,15 @@ function getHSL([, h3, s2, l3, a2 = 1]) { } return { type: "hsl", - values: [hh, parsePercentage(s2), parsePercentage(l3)], - alpha: parseAlpha(a2 === null ? 1 : a2) + values: [hh, parsePercentage(s), parsePercentage(l2)], + alpha: parseAlpha(a === null ? 1 : a) }; } -function getRGB([, r2, g3, b2, a2 = 1]) { +function getRGB([, r, g2, b, a = 1]) { return { type: "rgb", - values: [r2, g3, b2].map(parseRGB), - alpha: parseAlpha(a2 === null ? 1 : a2) + values: [r, g2, b].map(parseRGB), + alpha: parseAlpha(a === null ? 1 : a) }; } var parseCSSColor = (str) => { @@ -16069,59 +9923,59 @@ var import_css_to_react_native2 = __toESM(require_css_to_react_native(), 1); var import_escape_html = __toESM(require_escape_html(), 1); // node_modules/css-gradient-parser/dist/index.js -function c(e2, o2 = ",") { - let t2 = [], n2 = 0, i2 = 0; - o2 = new RegExp(o2); - for (let r2 = 0; r2 < e2.length; r2++) e2[r2] === "(" ? i2++ : e2[r2] === ")" && i2--, i2 === 0 && o2.test(e2[r2]) && (t2.push(e2.slice(n2, r2).trim()), n2 = r2 + 1); - return t2.push(e2.slice(n2).trim()), t2; +function c(e, o = ",") { + let t = [], n = 0, i = 0; + o = new RegExp(o); + for (let r = 0; r < e.length; r++) e[r] === "(" ? i++ : e[r] === ")" && i--, i === 0 && o.test(e[r]) && (t.push(e.slice(n, r).trim()), n = r + 1); + return t.push(e.slice(n).trim()), t; } -function g(e2) { - let o2 = []; - for (let t2 = 0, n2 = e2.length; t2 < n2; ) { - let [i2, r2] = c(e2[t2], /\s+/); - m(e2[t2 + 1]) ? (o2.push({ color: i2, offset: l(r2), hint: l(e2[t2 + 1]) }), t2 += 2) : (o2.push({ color: i2, offset: l(r2) }), t2++); +function g(e) { + let o = []; + for (let t = 0, n = e.length; t < n; ) { + let [i, r] = c(e[t], /\s+/); + m(e[t + 1]) ? (o.push({ color: i, offset: l(r), hint: l(e[t + 1]) }), t += 2) : (o.push({ color: i, offset: l(r) }), t++); } - return o2; + return o; } var u = /^(-?\d+\.?\d*)(%|vw|vh|px|em|rem|deg|rad|grad|turn)$/; -function m(e2) { - return u.test(e2); +function m(e) { + return u.test(e); } -function l(e2) { - if (!e2) return; - let [, o2, t2] = e2.trim().match(u) || []; - return { value: o2, unit: t2 }; +function l(e) { + if (!e) return; + let [, o, t] = e.trim().match(u) || []; + return { value: o, unit: t }; } -function P(e2) { - if (!/^(repeating-)?linear-gradient/.test(e2)) throw new SyntaxError(`could not find syntax for this item: ${e2}`); - let [, o2, t2] = e2.match(/(repeating-)?linear-gradient\((.+)\)/), n2 = { orientation: { type: "directional", value: "bottom" }, repeating: !!o2, stops: [] }, i2 = c(t2), r2 = x(i2[0]); - return r2 && (n2.orientation = r2, i2.shift()), { ...n2, stops: g(i2) }; +function P(e) { + if (!/^(repeating-)?linear-gradient/.test(e)) throw new SyntaxError(`could not find syntax for this item: ${e}`); + let [, o, t] = e.match(/(repeating-)?linear-gradient\((.+)\)/), n = { orientation: { type: "directional", value: "bottom" }, repeating: !!o, stops: [] }, i = c(t), r = x(i[0]); + return r && (n.orientation = r, i.shift()), { ...n, stops: g(i) }; } -function x(e2) { - return e2.startsWith("to ") ? { type: "directional", value: e2.replace("to ", "") } : ["turn", "deg", "grad", "rad"].some((o2) => e2.endsWith(o2)) ? { type: "angular", value: l(e2) } : null; +function x(e) { + return e.startsWith("to ") ? { type: "directional", value: e.replace("to ", "") } : ["turn", "deg", "grad", "rad"].some((o) => e.endsWith(o)) ? { type: "angular", value: l(e) } : null; } var w = /* @__PURE__ */ new Set(["closest-corner", "closest-side", "farthest-corner", "farthest-side"]); var v = /* @__PURE__ */ new Set(["center", "left", "top", "right", "bottom"]); -function d(e2) { - return w.has(e2); +function d(e) { + return w.has(e); } -function h(e2) { - return v.has(e2); +function h(e) { + return v.has(e); } -function R(e2) { - let o2 = Array(2).fill(""); - for (let t2 = 0; t2 < 2; t2++) e2[t2] ? o2[t2] = e2[t2] : o2[t2] = "center"; - return o2; +function R(e) { + let o = Array(2).fill(""); + for (let t = 0; t < 2; t++) e[t] ? o[t] = e[t] : o[t] = "center"; + return o; } -function K(e2) { - if (!/(repeating-)?radial-gradient/.test(e2)) throw new SyntaxError(`could not find syntax for this item: ${e2}`); - let [, o2, t2] = e2.match(/(repeating-)?radial-gradient\((.+)\)/), n2 = { shape: "ellipse", repeating: !!o2, size: [{ type: "keyword", value: "farthest-corner" }], position: { x: { type: "keyword", value: "center" }, y: { type: "keyword", value: "center" } }, stops: [] }, i2 = c(t2); - if (S(i2[0])) return { ...n2, stops: g(i2) }; - let r2 = i2[0].split("at").map((f3) => f3.trim()), p2 = ((r2[0] || "").match(/(circle|ellipse)/) || [])[1], a2 = (r2[0] || "").match(/(-?\d+\.?\d*(vw|vh|px|em|rem|%|rad|grad|turn|deg)?|closest-corner|closest-side|farthest-corner|farthest-side)/g) || [], s2 = R((r2[1] || "").split(" ")); - return p2 ? n2.shape = p2 : a2.length === 1 && !d(a2[0]) ? n2.shape = "circle" : n2.shape = "ellipse", a2.length === 0 && a2.push("farthest-corner"), n2.size = a2.map((f3) => d(f3) ? { type: "keyword", value: f3 } : { type: "length", value: l(f3) }), n2.position.x = h(s2[0]) ? { type: "keyword", value: s2[0] } : { type: "length", value: l(s2[0]) }, n2.position.y = h(s2[1]) ? { type: "keyword", value: s2[1] } : { type: "length", value: l(s2[1]) }, (p2 || a2.length > 0 || r2[1]) && i2.shift(), { ...n2, stops: g(i2) }; +function K(e) { + if (!/(repeating-)?radial-gradient/.test(e)) throw new SyntaxError(`could not find syntax for this item: ${e}`); + let [, o, t] = e.match(/(repeating-)?radial-gradient\((.+)\)/), n = { shape: "ellipse", repeating: !!o, size: [{ type: "keyword", value: "farthest-corner" }], position: { x: { type: "keyword", value: "center" }, y: { type: "keyword", value: "center" } }, stops: [] }, i = c(t); + if (S(i[0])) return { ...n, stops: g(i) }; + let r = i[0].split("at").map((f) => f.trim()), p = ((r[0] || "").match(/(circle|ellipse)/) || [])[1], a = (r[0] || "").match(/(-?\d+\.?\d*(vw|vh|px|em|rem|%|rad|grad|turn|deg)?|closest-corner|closest-side|farthest-corner|farthest-side)/g) || [], s = R((r[1] || "").split(" ")); + return p ? n.shape = p : a.length === 1 && !d(a[0]) ? n.shape = "circle" : n.shape = "ellipse", a.length === 0 && a.push("farthest-corner"), n.size = a.map((f) => d(f) ? { type: "keyword", value: f } : { type: "length", value: l(f) }), n.position.x = h(s[0]) ? { type: "keyword", value: s[0] } : { type: "length", value: l(s[0]) }, n.position.y = h(s[1]) ? { type: "keyword", value: s[1] } : { type: "length", value: l(s[1]) }, (p || a.length > 0 || r[1]) && i.shift(), { ...n, stops: g(i) }; } -function S(e2) { - return /(circle|ellipse|at)/.test(e2) ? false : /^(rgba?|hwb|hsl|lab|lch|oklab|color|#|[a-zA-Z]+)/.test(e2); +function S(e) { + return /(circle|ellipse|at)/.test(e) ? false : /^(rgba?|hwb|hsl|lab|lch|oklab|color|#|[a-zA-Z]+)/.test(e); } // node_modules/satori/dist/index.js @@ -16204,17 +10058,17 @@ var fdeb = new u8([ ]); var clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]); var freb = function(eb, start) { - var b2 = new u16(31); - for (var i2 = 0; i2 < 31; ++i2) { - b2[i2] = start += 1 << eb[i2 - 1]; + var b = new u16(31); + for (var i = 0; i < 31; ++i) { + b[i] = start += 1 << eb[i - 1]; } - var r2 = new u32(b2[30]); - for (var i2 = 1; i2 < 30; ++i2) { - for (var j2 = b2[i2]; j2 < b2[i2 + 1]; ++j2) { - r2[j2] = j2 - b2[i2] << 5 | i2; + var r = new u32(b[30]); + for (var i = 1; i < 30; ++i) { + for (var j = b[i]; j < b[i + 1]; ++j) { + r[j] = j - b[i] << 5 | i; } } - return [b2, r2]; + return [b, r]; }; var _a = freb(fleb, 2); var fl = _a[0]; @@ -16223,38 +10077,38 @@ fl[28] = 258, revfl[258] = 28; var _b = freb(fdeb, 0); var fd = _b[0]; var rev = new u16(32768); -for (i2 = 0; i2 < 32768; ++i2) { - x3 = (i2 & 43690) >>> 1 | (i2 & 21845) << 1; - x3 = (x3 & 52428) >>> 2 | (x3 & 13107) << 2; - x3 = (x3 & 61680) >>> 4 | (x3 & 3855) << 4; - rev[i2] = ((x3 & 65280) >>> 8 | (x3 & 255) << 8) >>> 1; +for (i = 0; i < 32768; ++i) { + x2 = (i & 43690) >>> 1 | (i & 21845) << 1; + x2 = (x2 & 52428) >>> 2 | (x2 & 13107) << 2; + x2 = (x2 & 61680) >>> 4 | (x2 & 3855) << 4; + rev[i] = ((x2 & 65280) >>> 8 | (x2 & 255) << 8) >>> 1; } -var x3; -var i2; -var hMap = (function(cd, mb, r2) { - var s2 = cd.length; - var i2 = 0; - var l3 = new u16(mb); - for (; i2 < s2; ++i2) { - if (cd[i2]) { - ++l3[cd[i2] - 1]; +var x2; +var i; +var hMap = (function(cd, mb, r) { + var s = cd.length; + var i = 0; + var l2 = new u16(mb); + for (; i < s; ++i) { + if (cd[i]) { + ++l2[cd[i] - 1]; } } var le2 = new u16(mb); - for (i2 = 0; i2 < mb; ++i2) { - le2[i2] = le2[i2 - 1] + l3[i2 - 1] << 1; + for (i = 0; i < mb; ++i) { + le2[i] = le2[i - 1] + l2[i - 1] << 1; } var co; { co = new u16(1 << mb); var rvb = 15 - mb; - for (i2 = 0; i2 < s2; ++i2) { - if (cd[i2]) { - var sv = i2 << 4 | cd[i2]; - var r_1 = mb - cd[i2]; - var v3 = le2[cd[i2] - 1]++ << r_1; - for (var m3 = v3 | (1 << r_1) - 1; v3 <= m3; ++v3) { - co[rev[v3] >>> rvb] = sv; + for (i = 0; i < s; ++i) { + if (cd[i]) { + var sv = i << 4 | cd[i]; + var r_1 = mb - cd[i]; + var v2 = le2[cd[i] - 1]++ << r_1; + for (var m2 = v2 | (1 << r_1) - 1; v2 <= m2; ++v2) { + co[rev[v2] >>> rvb] = sv; } } } @@ -16262,56 +10116,56 @@ var hMap = (function(cd, mb, r2) { return co; }); var flt = new u8(288); -for (i2 = 0; i2 < 144; ++i2) { - flt[i2] = 8; +for (i = 0; i < 144; ++i) { + flt[i] = 8; } -var i2; -for (i2 = 144; i2 < 256; ++i2) { - flt[i2] = 9; +var i; +for (i = 144; i < 256; ++i) { + flt[i] = 9; } -var i2; -for (i2 = 256; i2 < 280; ++i2) { - flt[i2] = 7; +var i; +for (i = 256; i < 280; ++i) { + flt[i] = 7; } -var i2; -for (i2 = 280; i2 < 288; ++i2) { - flt[i2] = 8; +var i; +for (i = 280; i < 288; ++i) { + flt[i] = 8; } -var i2; +var i; var fdt = new u8(32); -for (i2 = 0; i2 < 32; ++i2) { - fdt[i2] = 5; +for (i = 0; i < 32; ++i) { + fdt[i] = 5; } -var i2; +var i; var flrm = /* @__PURE__ */ hMap(flt, 9); var fdrm = /* @__PURE__ */ hMap(fdt, 5); -var max = function(a2) { - var m3 = a2[0]; - for (var i2 = 1; i2 < a2.length; ++i2) { - if (a2[i2] > m3) { - m3 = a2[i2]; +var max = function(a) { + var m2 = a[0]; + for (var i = 1; i < a.length; ++i) { + if (a[i] > m2) { + m2 = a[i]; } } - return m3; + return m2; }; -var bits = function(d3, p2, m3) { - var o2 = p2 / 8 | 0; - return (d3[o2] | d3[o2 + 1] << 8) >> (p2 & 7) & m3; +var bits = function(d2, p, m2) { + var o = p / 8 | 0; + return (d2[o] | d2[o + 1] << 8) >> (p & 7) & m2; }; -var bits16 = function(d3, p2) { - var o2 = p2 / 8 | 0; - return (d3[o2] | d3[o2 + 1] << 8 | d3[o2 + 2] << 16) >> (p2 & 7); +var bits16 = function(d2, p) { + var o = p / 8 | 0; + return (d2[o] | d2[o + 1] << 8 | d2[o + 2] << 16) >> (p & 7); }; -var shft = function(p2) { - return (p2 + 7) / 8 | 0; +var shft = function(p) { + return (p + 7) / 8 | 0; }; -var slc = function(v3, s2, e2) { - if (e2 == null || e2 > v3.length) { - e2 = v3.length; +var slc = function(v2, s, e) { + if (e == null || e > v2.length) { + e = v2.length; } - var n2 = new (v3.BYTES_PER_ELEMENT == 2 ? u16 : v3.BYTES_PER_ELEMENT == 4 ? u32 : u8)(e2 - s2); - n2.set(v3.subarray(s2, e2)); - return n2; + var n = new (v2.BYTES_PER_ELEMENT == 2 ? u16 : v2.BYTES_PER_ELEMENT == 4 ? u32 : u8)(e - s); + n.set(v2.subarray(s, e)); + return n; }; var ec = [ "unexpected EOF", @@ -16331,15 +10185,15 @@ var ec = [ // determined by unknown compression method ]; var err = function(ind, msg, nt) { - var e2 = new Error(msg || ec[ind]); - e2.code = ind; + var e = new Error(msg || ec[ind]); + e.code = ind; if (Error.captureStackTrace) { - Error.captureStackTrace(e2, err); + Error.captureStackTrace(e, err); } if (!nt) { - throw e2; + throw e; } - return e2; + return e; }; var inflt = function(dat, buf, st2) { var sl2 = dat.length; @@ -16354,10 +10208,10 @@ var inflt = function(dat, buf, st2) { if (!buf) { buf = new u8(sl2 * 3); } - var cbuf = function(l4) { + var cbuf = function(l3) { var bl2 = buf.length; - if (l4 > bl2) { - var nbuf = new u8(Math.max(bl2 * 2, l4)); + if (l3 > bl2) { + var nbuf = new u8(Math.max(bl2 * 2, l3)); nbuf.set(buf); buf = nbuf; } @@ -16370,18 +10224,18 @@ var inflt = function(dat, buf, st2) { var type = bits(dat, pos + 1, 3); pos += 3; if (!type) { - var s2 = shft(pos) + 4, l3 = dat[s2 - 4] | dat[s2 - 3] << 8, t2 = s2 + l3; - if (t2 > sl2) { + var s = shft(pos) + 4, l2 = dat[s - 4] | dat[s - 3] << 8, t = s + l2; + if (t > sl2) { if (noSt) { err(0); } break; } if (noBuf) { - cbuf(bt2 + l3); + cbuf(bt2 + l2); } - buf.set(dat.subarray(s2, t2), bt2); - st2.b = bt2 += l3, st2.p = pos = t2 * 8, st2.f = final; + buf.set(dat.subarray(s, t), bt2); + st2.b = bt2 += l2, st2.p = pos = t * 8, st2.f = final; continue; } else if (type == 1) { lm = flrm, dm = fdrm, lbt = 9, dbt = 5; @@ -16391,29 +10245,29 @@ var inflt = function(dat, buf, st2) { pos += 14; var ldt = new u8(tl2); var clt = new u8(19); - for (var i2 = 0; i2 < hcLen; ++i2) { - clt[clim[i2]] = bits(dat, pos + i2 * 3, 7); + for (var i = 0; i < hcLen; ++i) { + clt[clim[i]] = bits(dat, pos + i * 3, 7); } pos += hcLen * 3; var clb = max(clt), clbmsk = (1 << clb) - 1; var clm = hMap(clt, clb); - for (var i2 = 0; i2 < tl2; ) { - var r2 = clm[bits(dat, pos, clbmsk)]; - pos += r2 & 15; - var s2 = r2 >>> 4; - if (s2 < 16) { - ldt[i2++] = s2; + for (var i = 0; i < tl2; ) { + var r = clm[bits(dat, pos, clbmsk)]; + pos += r & 15; + var s = r >>> 4; + if (s < 16) { + ldt[i++] = s; } else { - var c3 = 0, n2 = 0; - if (s2 == 16) { - n2 = 3 + bits(dat, pos, 3), pos += 2, c3 = ldt[i2 - 1]; - } else if (s2 == 17) { - n2 = 3 + bits(dat, pos, 7), pos += 3; - } else if (s2 == 18) { - n2 = 11 + bits(dat, pos, 127), pos += 7; + var c2 = 0, n = 0; + if (s == 16) { + n = 3 + bits(dat, pos, 3), pos += 2, c2 = ldt[i - 1]; + } else if (s == 17) { + n = 3 + bits(dat, pos, 7), pos += 3; + } else if (s == 18) { + n = 11 + bits(dat, pos, 127), pos += 7; } - while (n2--) { - ldt[i2++] = c3; + while (n--) { + ldt[i++] = c2; } } } @@ -16438,15 +10292,15 @@ var inflt = function(dat, buf, st2) { var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1; var lpos = pos; for (; ; lpos = pos) { - var c3 = lm[bits16(dat, pos) & lms], sym = c3 >>> 4; - pos += c3 & 15; + var c2 = lm[bits16(dat, pos) & lms], sym = c2 >>> 4; + pos += c2 & 15; if (pos > tbts) { if (noSt) { err(0); } break; } - if (!c3) { + if (!c2) { err(2); } if (sym < 256) { @@ -16457,19 +10311,19 @@ var inflt = function(dat, buf, st2) { } else { var add = sym - 254; if (sym > 264) { - var i2 = sym - 257, b2 = fleb[i2]; - add = bits(dat, pos, (1 << b2) - 1) + fl[i2]; - pos += b2; + var i = sym - 257, b = fleb[i]; + add = bits(dat, pos, (1 << b) - 1) + fl[i]; + pos += b; } - var d3 = dm[bits16(dat, pos) & dms], dsym = d3 >>> 4; - if (!d3) { + var d2 = dm[bits16(dat, pos) & dms], dsym = d2 >>> 4; + if (!d2) { err(3); } - pos += d3 & 15; + pos += d2 & 15; var dt = fd[dsym]; if (dsym > 3) { - var b2 = fdeb[dsym]; - dt += bits16(dat, pos) & (1 << b2) - 1, pos += b2; + var b = fdeb[dsym]; + dt += bits16(dat, pos) & (1 << b) - 1, pos += b; } if (pos > tbts) { if (noSt) { @@ -16506,7 +10360,7 @@ var tds = 0; try { td.decode(et, { stream: true }); tds = 1; -} catch (e2) { +} catch (e) { } function Path() { this.commands = []; @@ -16514,38 +10368,38 @@ function Path() { this.stroke = null; this.strokeWidth = 1; } -Path.prototype.moveTo = function(x3, y2) { +Path.prototype.moveTo = function(x2, y) { this.commands.push({ type: "M", - x: x3, - y: y2 + x: x2, + y }); }; -Path.prototype.lineTo = function(x3, y2) { +Path.prototype.lineTo = function(x2, y) { this.commands.push({ type: "L", - x: x3, - y: y2 + x: x2, + y }); }; -Path.prototype.curveTo = Path.prototype.bezierCurveTo = function(x1, y1, x22, y2, x3, y3) { +Path.prototype.curveTo = Path.prototype.bezierCurveTo = function(x1, y1, x2, y2, x3, y) { this.commands.push({ type: "C", x1, y1, - x2: x22, + x2, y2, x: x3, - y: y3 + y }); }; -Path.prototype.quadTo = Path.prototype.quadraticCurveTo = function(x1, y1, x3, y2) { +Path.prototype.quadTo = Path.prototype.quadraticCurveTo = function(x1, y1, x2, y) { this.commands.push({ type: "Q", x1, y1, - x: x3, - y: y2 + x: x2, + y }); }; Path.prototype.close = Path.prototype.closePath = function() { @@ -16561,41 +10415,41 @@ Path.prototype.extend = function(pathOrCommands) { }; Path.prototype.toPathData = function(decimalPlaces) { decimalPlaces = decimalPlaces !== void 0 ? decimalPlaces : 2; - function floatToString(v3) { - if (Math.round(v3) === v3) { - return "" + Math.round(v3); + function floatToString(v2) { + if (Math.round(v2) === v2) { + return "" + Math.round(v2); } else { - return v3.toFixed(decimalPlaces); + return v2.toFixed(decimalPlaces); } } function packValues() { var arguments$1 = arguments; - var s2 = ""; - for (var i3 = 0; i3 < arguments.length; i3 += 1) { - var v3 = arguments$1[i3]; - if (v3 >= 0 && i3 > 0) { - s2 += " "; + var s = ""; + for (var i2 = 0; i2 < arguments.length; i2 += 1) { + var v2 = arguments$1[i2]; + if (v2 >= 0 && i2 > 0) { + s += " "; } - s2 += floatToString(v3); + s += floatToString(v2); } - return s2; + return s; } - var d3 = ""; - for (var i2 = 0; i2 < this.commands.length; i2 += 1) { - var cmd = this.commands[i2]; + var d2 = ""; + for (var i = 0; i < this.commands.length; i += 1) { + var cmd = this.commands[i]; if (cmd.type === "M") { - d3 += "M" + packValues(cmd.x, cmd.y); + d2 += "M" + packValues(cmd.x, cmd.y); } else if (cmd.type === "L") { - d3 += "L" + packValues(cmd.x, cmd.y); + d2 += "L" + packValues(cmd.x, cmd.y); } else if (cmd.type === "C") { - d3 += "C" + packValues(cmd.x1, cmd.y1, cmd.x2, cmd.y2, cmd.x, cmd.y); + d2 += "C" + packValues(cmd.x1, cmd.y1, cmd.x2, cmd.y2, cmd.x, cmd.y); } else if (cmd.type === "Q") { - d3 += "Q" + packValues(cmd.x1, cmd.y1, cmd.x, cmd.y); + d2 += "Q" + packValues(cmd.x1, cmd.y1, cmd.x, cmd.y); } else if (cmd.type === "Z") { - d3 += "Z"; + d2 += "Z"; } } - return d3; + return d2; }; var cffStandardStrings = [ ".notdef", @@ -17504,15 +11358,15 @@ var cffExpertEncoding = [ function DefaultEncoding(font) { this.font = font; } -DefaultEncoding.prototype.charToGlyphIndex = function(c3) { - var code = c3.codePointAt(0); +DefaultEncoding.prototype.charToGlyphIndex = function(c2) { + var code = c2.codePointAt(0); var glyphs = this.font.glyphs; if (glyphs) { - for (var i2 = 0; i2 < glyphs.length; i2 += 1) { - var glyph = glyphs.get(i2); - for (var j2 = 0; j2 < glyph.unicodes.length; j2 += 1) { - if (glyph.unicodes[j2] === code) { - return i2; + for (var i = 0; i < glyphs.length; i += 1) { + var glyph = glyphs.get(i); + for (var j = 0; j < glyph.unicodes.length; j += 1) { + if (glyph.unicodes[j] === code) { + return i; } } } @@ -17522,15 +11376,15 @@ DefaultEncoding.prototype.charToGlyphIndex = function(c3) { function CmapEncoding(cmap2) { this.cmap = cmap2; } -CmapEncoding.prototype.charToGlyphIndex = function(c3) { - return this.cmap.glyphIndexMap[c3.codePointAt(0)] || 0; +CmapEncoding.prototype.charToGlyphIndex = function(c2) { + return this.cmap.glyphIndexMap[c2.codePointAt(0)] || 0; }; function CffEncoding(encoding, charset) { this.encoding = encoding; this.charset = charset; } -CffEncoding.prototype.charToGlyphIndex = function(s2) { - var code = s2.codePointAt(0); +CffEncoding.prototype.charToGlyphIndex = function(s) { + var code = s.codePointAt(0); var charName = this.encoding[code]; return this.charset.indexOf(charName); }; @@ -17538,26 +11392,26 @@ function addGlyphNamesAll(font) { var glyph; var glyphIndexMap = font.tables.cmap.glyphIndexMap; var charCodes = Object.keys(glyphIndexMap); - for (var i2 = 0; i2 < charCodes.length; i2 += 1) { - var c3 = charCodes[i2]; - var glyphIndex = glyphIndexMap[c3]; + for (var i = 0; i < charCodes.length; i += 1) { + var c2 = charCodes[i]; + var glyphIndex = glyphIndexMap[c2]; glyph = font.glyphs.get(glyphIndex); - glyph.addUnicode(parseInt(c3)); + glyph.addUnicode(parseInt(c2)); } } function addGlyphNamesToUnicodeMap(font) { font._IndexToUnicodeMap = {}; var glyphIndexMap = font.tables.cmap.glyphIndexMap; var charCodes = Object.keys(glyphIndexMap); - for (var i2 = 0; i2 < charCodes.length; i2 += 1) { - var c3 = charCodes[i2]; - var glyphIndex = glyphIndexMap[c3]; + for (var i = 0; i < charCodes.length; i += 1) { + var c2 = charCodes[i]; + var glyphIndex = glyphIndexMap[c2]; if (font._IndexToUnicodeMap[glyphIndex] === void 0) { font._IndexToUnicodeMap[glyphIndex] = { - unicodes: [parseInt(c3)] + unicodes: [parseInt(c2)] }; } else { - font._IndexToUnicodeMap[glyphIndex].unicodes.push(parseInt(c3)); + font._IndexToUnicodeMap[glyphIndex].unicodes.push(parseInt(c2)); } } } @@ -17587,8 +11441,8 @@ function getPathDefinition(glyph, path2) { } return _path; }, - set: function(p2) { - _path = p2; + set: function(p) { + _path = p; } }; } @@ -17623,9 +11477,9 @@ Glyph.prototype.addUnicode = function(unicode) { } this.unicodes.push(unicode); }; -Glyph.prototype.getPath = function(x3, y2, fontSize, options, font) { - x3 = x3 !== void 0 ? x3 : 0; - y2 = y2 !== void 0 ? y2 : 0; +Glyph.prototype.getPath = function(x2, y, fontSize, options, font) { + x2 = x2 !== void 0 ? x2 : 0; + y = y !== void 0 ? y : 0; fontSize = fontSize !== void 0 ? fontSize : 72; var commands; var hPoints; @@ -17639,8 +11493,8 @@ Glyph.prototype.getPath = function(x3, y2, fontSize, options, font) { } if (hPoints) { commands = font.hinting.getCommands(hPoints); - x3 = Math.round(x3); - y2 = Math.round(y2); + x2 = Math.round(x2); + y = Math.round(y); xScale = yScale = 1; } else { commands = this.path.commands; @@ -17652,34 +11506,34 @@ Glyph.prototype.getPath = function(x3, y2, fontSize, options, font) { yScale = scale; } } - var p2 = new Path(); - for (var i2 = 0; i2 < commands.length; i2 += 1) { - var cmd = commands[i2]; + var p = new Path(); + for (var i = 0; i < commands.length; i += 1) { + var cmd = commands[i]; if (cmd.type === "M") { - p2.moveTo(x3 + cmd.x * xScale, y2 + -cmd.y * yScale); + p.moveTo(x2 + cmd.x * xScale, y + -cmd.y * yScale); } else if (cmd.type === "L") { - p2.lineTo(x3 + cmd.x * xScale, y2 + -cmd.y * yScale); + p.lineTo(x2 + cmd.x * xScale, y + -cmd.y * yScale); } else if (cmd.type === "Q") { - p2.quadraticCurveTo( - x3 + cmd.x1 * xScale, - y2 + -cmd.y1 * yScale, - x3 + cmd.x * xScale, - y2 + -cmd.y * yScale + p.quadraticCurveTo( + x2 + cmd.x1 * xScale, + y + -cmd.y1 * yScale, + x2 + cmd.x * xScale, + y + -cmd.y * yScale ); } else if (cmd.type === "C") { - p2.curveTo( - x3 + cmd.x1 * xScale, - y2 + -cmd.y1 * yScale, - x3 + cmd.x2 * xScale, - y2 + -cmd.y2 * yScale, - x3 + cmd.x * xScale, - y2 + -cmd.y * yScale + p.curveTo( + x2 + cmd.x1 * xScale, + y + -cmd.y1 * yScale, + x2 + cmd.x2 * xScale, + y + -cmd.y2 * yScale, + x2 + cmd.x * xScale, + y + -cmd.y * yScale ); } else if (cmd.type === "Z") { - p2.closePath(); + p.closePath(); } } - return p2; + return p; }; Glyph.prototype.getContours = function() { if (this.points === void 0) { @@ -17687,8 +11541,8 @@ Glyph.prototype.getContours = function() { } var contours = []; var currentContour = []; - for (var i2 = 0; i2 < this.points.length; i2 += 1) { - var pt = this.points[i2]; + for (var i = 0; i < this.points.length; i += 1) { + var pt = this.points[i]; currentContour.push(pt); if (pt.lastPointOfContour) { contours.push(currentContour); @@ -17705,8 +11559,8 @@ Glyph.prototype.getMetrics = function() { var commands = this.path.commands; var xCoords = []; var yCoords = []; - for (var i2 = 0; i2 < commands.length; i2 += 1) { - var cmd = commands[i2]; + for (var i = 0; i < commands.length; i += 1) { + var cmd = commands[i]; if (cmd.type !== "Z") { xCoords.push(cmd.x); yCoords.push(cmd.y); @@ -17759,10 +11613,10 @@ function GlyphSet(font, glyphs) { this.font = font; this.glyphs = {}; if (Array.isArray(glyphs)) { - for (var i2 = 0; i2 < glyphs.length; i2++) { - var glyph = glyphs[i2]; + for (var i = 0; i < glyphs.length; i++) { + var glyph = glyphs[i]; glyph.path.unitsPerEm = font.unitsPerEm; - this.glyphs[i2] = glyph; + this.glyphs[i] = glyph; } } this.length = glyphs && glyphs.length || 0; @@ -17776,8 +11630,8 @@ GlyphSet.prototype.get = function(index) { var glyph = this.glyphs[index]; var unicodeObj = this.font._IndexToUnicodeMap[index]; if (unicodeObj) { - for (var j2 = 0; j2 < unicodeObj.unicodes.length; j2++) { - glyph.addUnicode(unicodeObj.unicodes[j2]); + for (var j = 0; j < unicodeObj.unicodes.length; j++) { + glyph.addUnicode(unicodeObj.unicodes[j]); } } this.glyphs[index].advanceWidth = this.font._hmtxTableData[index].advanceWidth; @@ -17929,8 +11783,8 @@ Layout.prototype = { return; } var hasLatn = false; - for (var i2 = 0; i2 < layout.scripts.length; i2++) { - var name = layout.scripts[i2].tag; + for (var i = 0; i < layout.scripts.length; i++) { + var name = layout.scripts[i].tag; if (name === "DFLT") { return name; } @@ -18020,8 +11874,8 @@ Layout.prototype = { var featureRecord; var featIndexes = langSysTable2.featureIndexes; var allFeatures = this.font.tables[this.tableName].features; - for (var i2 = 0; i2 < featIndexes.length; i2++) { - featureRecord = allFeatures[featIndexes[i2]]; + for (var i = 0; i < featIndexes.length; i++) { + featureRecord = allFeatures[featIndexes[i]]; if (featureRecord.tag === feature) { return featureRecord.feature; } @@ -18064,8 +11918,8 @@ Layout.prototype = { var lookupTable; var lookupListIndexes = featureTable.lookupListIndexes; var allLookups = this.font.tables[this.tableName].lookups; - for (var i2 = 0; i2 < lookupListIndexes.length; i2++) { - lookupTable = allLookups[lookupListIndexes[i2]]; + for (var i = 0; i < lookupListIndexes.length; i++) { + lookupTable = allLookups[lookupListIndexes[i]]; if (lookupTable.lookupType === lookupType) { tables.push(lookupTable); } @@ -18135,12 +11989,12 @@ Layout.prototype = { } else { var glyphs = []; var ranges = coverageTable.ranges; - for (var i2 = 0; i2 < ranges.length; i2++) { - var range = ranges[i2]; + for (var i = 0; i < ranges.length; i++) { + var range = ranges[i]; var start = range.start; var end = range.end; - for (var j2 = start; j2 <= end; j2++) { - glyphs.push(j2); + for (var j = start; j <= end; j++) { + glyphs.push(j); } } return glyphs; @@ -18156,10 +12010,10 @@ Position.prototype.init = function() { this.defaultKerningTables = this.getKerningTables(script); }; Position.prototype.getKerningValue = function(kerningLookups, leftIndex, rightIndex) { - for (var i2 = 0; i2 < kerningLookups.length; i2++) { - var subtables = kerningLookups[i2].subtables; - for (var j2 = 0; j2 < subtables.length; j2++) { - var subtable = subtables[j2]; + for (var i = 0; i < kerningLookups.length; i++) { + var subtables = kerningLookups[i].subtables; + for (var j = 0; j < subtables.length; j++) { + var subtable = subtables[j]; var covIndex = this.getCoverageIndex(subtable.coverage, leftIndex); if (covIndex < 0) { continue; @@ -18167,8 +12021,8 @@ Position.prototype.getKerningValue = function(kerningLookups, leftIndex, rightIn switch (subtable.posFormat) { case 1: var pairSet = subtable.pairSets[covIndex]; - for (var k3 = 0; k3 < pairSet.length; k3++) { - var pair = pairSet[k3]; + for (var k2 = 0; k2 < pairSet.length; k2++) { + var pair = pairSet[k2]; if (pair.secondGlyph === rightIndex) { return pair.value1 && pair.value1.xAdvance || 0; } @@ -18194,12 +12048,12 @@ function Substitution(font) { Layout.call(this, font, "gsub"); } function arraysEqual(ar1, ar2) { - var n2 = ar1.length; - if (n2 !== ar2.length) { + var n = ar1.length; + if (n !== ar2.length) { return false; } - for (var i2 = 0; i2 < n2; i2++) { - if (ar1[i2] !== ar2[i2]) { + for (var i = 0; i < n; i++) { + if (ar1[i] !== ar2[i]) { return false; } } @@ -18207,8 +12061,8 @@ function arraysEqual(ar1, ar2) { } function getSubstFormat(lookupTable, format, defaultSubtable) { var subtables = lookupTable.subtables; - for (var i2 = 0; i2 < subtables.length; i2++) { - var subtable = subtables[i2]; + for (var i = 0; i < subtables.length; i++) { + var subtable = subtables[i]; if (subtable.substFormat === format) { return subtable; } @@ -18245,20 +12099,20 @@ Substitution.prototype.getSingle = function(feature, script, language) { var lookupTables = this.getLookupTables(script, language, feature, 1); for (var idx = 0; idx < lookupTables.length; idx++) { var subtables = lookupTables[idx].subtables; - for (var i2 = 0; i2 < subtables.length; i2++) { - var subtable = subtables[i2]; + for (var i = 0; i < subtables.length; i++) { + var subtable = subtables[i]; var glyphs = this.expandCoverage(subtable.coverage); - var j2 = void 0; + var j = void 0; if (subtable.substFormat === 1) { var delta = subtable.deltaGlyphId; - for (j2 = 0; j2 < glyphs.length; j2++) { - var glyph = glyphs[j2]; + for (j = 0; j < glyphs.length; j++) { + var glyph = glyphs[j]; substitutions.push({ sub: glyph, by: glyph + delta }); } } else { var substitute = subtable.substitute; - for (j2 = 0; j2 < glyphs.length; j2++) { - substitutions.push({ sub: glyphs[j2], by: substitute[j2] }); + for (j = 0; j < glyphs.length; j++) { + substitutions.push({ sub: glyphs[j], by: substitute[j] }); } } } @@ -18270,13 +12124,13 @@ Substitution.prototype.getMultiple = function(feature, script, language) { var lookupTables = this.getLookupTables(script, language, feature, 2); for (var idx = 0; idx < lookupTables.length; idx++) { var subtables = lookupTables[idx].subtables; - for (var i2 = 0; i2 < subtables.length; i2++) { - var subtable = subtables[i2]; + for (var i = 0; i < subtables.length; i++) { + var subtable = subtables[i]; var glyphs = this.expandCoverage(subtable.coverage); - var j2 = void 0; - for (j2 = 0; j2 < glyphs.length; j2++) { - var glyph = glyphs[j2]; - var replacements = subtable.sequences[j2]; + var j = void 0; + for (j = 0; j < glyphs.length; j++) { + var glyph = glyphs[j]; + var replacements = subtable.sequences[j]; substitutions.push({ sub: glyph, by: replacements }); } } @@ -18288,12 +12142,12 @@ Substitution.prototype.getAlternates = function(feature, script, language) { var lookupTables = this.getLookupTables(script, language, feature, 3); for (var idx = 0; idx < lookupTables.length; idx++) { var subtables = lookupTables[idx].subtables; - for (var i2 = 0; i2 < subtables.length; i2++) { - var subtable = subtables[i2]; + for (var i = 0; i < subtables.length; i++) { + var subtable = subtables[i]; var glyphs = this.expandCoverage(subtable.coverage); var alternateSets = subtable.alternateSets; - for (var j2 = 0; j2 < glyphs.length; j2++) { - alternates.push({ sub: glyphs[j2], by: alternateSets[j2] }); + for (var j = 0; j < glyphs.length; j++) { + alternates.push({ sub: glyphs[j], by: alternateSets[j] }); } } } @@ -18304,15 +12158,15 @@ Substitution.prototype.getLigatures = function(feature, script, language) { var lookupTables = this.getLookupTables(script, language, feature, 4); for (var idx = 0; idx < lookupTables.length; idx++) { var subtables = lookupTables[idx].subtables; - for (var i2 = 0; i2 < subtables.length; i2++) { - var subtable = subtables[i2]; + for (var i = 0; i < subtables.length; i++) { + var subtable = subtables[i]; var glyphs = this.expandCoverage(subtable.coverage); var ligatureSets = subtable.ligatureSets; - for (var j2 = 0; j2 < glyphs.length; j2++) { - var startGlyph = glyphs[j2]; - var ligSet = ligatureSets[j2]; - for (var k3 = 0; k3 < ligSet.length; k3++) { - var lig = ligSet[k3]; + for (var j = 0; j < glyphs.length; j++) { + var startGlyph = glyphs[j]; + var ligSet = ligatureSets[j]; + for (var k2 = 0; k2 < ligSet.length; k2++) { + var lig = ligSet[k2]; ligatures.push({ sub: [startGlyph].concat(lig.components), by: lig.ligGlyph @@ -18439,8 +12293,8 @@ Substitution.prototype.addLigature = function(feature, ligature, script, languag var pos = this.binSearch(subtable.coverage.glyphs, coverageGlyph); if (pos >= 0) { var ligatureSet = subtable.ligatureSets[pos]; - for (var i2 = 0; i2 < ligatureSet.length; i2++) { - if (arraysEqual(ligatureSet[i2].components, ligComponents)) { + for (var i = 0; i < ligatureSet.length; i++) { + if (arraysEqual(ligatureSet[i].components, ligComponents)) { return; } } @@ -18521,32 +12375,32 @@ function getFixed(dataView, offset) { } function getTag(dataView, offset) { var tag = ""; - for (var i2 = offset; i2 < offset + 4; i2 += 1) { - tag += String.fromCharCode(dataView.getInt8(i2)); + for (var i = offset; i < offset + 4; i += 1) { + tag += String.fromCharCode(dataView.getInt8(i)); } return tag; } function getOffset(dataView, offset, offSize) { - var v3 = 0; - for (var i2 = 0; i2 < offSize; i2 += 1) { - v3 <<= 8; - v3 += dataView.getUint8(offset + i2); + var v2 = 0; + for (var i = 0; i < offSize; i += 1) { + v2 <<= 8; + v2 += dataView.getUint8(offset + i); } - return v3; + return v2; } function getBytes(dataView, startOffset, endOffset) { var bytes = []; - for (var i2 = startOffset; i2 < endOffset; i2 += 1) { - bytes.push(dataView.getUint8(i2)); + for (var i = startOffset; i < endOffset; i += 1) { + bytes.push(dataView.getUint8(i)); } return bytes; } function bytesToString(bytes) { - var s2 = ""; - for (var i2 = 0; i2 < bytes.length; i2 += 1) { - s2 += String.fromCharCode(bytes[i2]); + var s = ""; + for (var i = 0; i < bytes.length; i += 1) { + s += String.fromCharCode(bytes[i]); } - return s2; + return s; } var typeOffsets = { byte: 1, @@ -18563,52 +12417,52 @@ function Parser(data, offset) { this.relativeOffset = 0; } Parser.prototype.parseByte = function() { - var v3 = this.data.getUint8(this.offset + this.relativeOffset); + var v2 = this.data.getUint8(this.offset + this.relativeOffset); this.relativeOffset += 1; - return v3; + return v2; }; Parser.prototype.parseChar = function() { - var v3 = this.data.getInt8(this.offset + this.relativeOffset); + var v2 = this.data.getInt8(this.offset + this.relativeOffset); this.relativeOffset += 1; - return v3; + return v2; }; Parser.prototype.parseCard8 = Parser.prototype.parseByte; Parser.prototype.parseUShort = function() { - var v3 = this.data.getUint16(this.offset + this.relativeOffset); + var v2 = this.data.getUint16(this.offset + this.relativeOffset); this.relativeOffset += 2; - return v3; + return v2; }; Parser.prototype.parseCard16 = Parser.prototype.parseUShort; Parser.prototype.parseSID = Parser.prototype.parseUShort; Parser.prototype.parseOffset16 = Parser.prototype.parseUShort; Parser.prototype.parseShort = function() { - var v3 = this.data.getInt16(this.offset + this.relativeOffset); + var v2 = this.data.getInt16(this.offset + this.relativeOffset); this.relativeOffset += 2; - return v3; + return v2; }; Parser.prototype.parseF2Dot14 = function() { - var v3 = this.data.getInt16(this.offset + this.relativeOffset) / 16384; + var v2 = this.data.getInt16(this.offset + this.relativeOffset) / 16384; this.relativeOffset += 2; - return v3; + return v2; }; Parser.prototype.parseULong = function() { - var v3 = getULong(this.data, this.offset + this.relativeOffset); + var v2 = getULong(this.data, this.offset + this.relativeOffset); this.relativeOffset += 4; - return v3; + return v2; }; Parser.prototype.parseOffset32 = Parser.prototype.parseULong; Parser.prototype.parseFixed = function() { - var v3 = getFixed(this.data, this.offset + this.relativeOffset); + var v2 = getFixed(this.data, this.offset + this.relativeOffset); this.relativeOffset += 4; - return v3; + return v2; }; Parser.prototype.parseString = function(length) { var dataView = this.data; var offset = this.offset + this.relativeOffset; var string = ""; this.relativeOffset += length; - for (var i2 = 0; i2 < length; i2++) { - string += String.fromCharCode(dataView.getUint8(offset + i2)); + for (var i = 0; i < length; i++) { + string += String.fromCharCode(dataView.getUint8(offset + i)); } return string; }; @@ -18616,10 +12470,10 @@ Parser.prototype.parseTag = function() { return this.parseString(4); }; Parser.prototype.parseLongDateTime = function() { - var v3 = getULong(this.data, this.offset + this.relativeOffset + 4); - v3 -= 2082844800; + var v2 = getULong(this.data, this.offset + this.relativeOffset + 4); + v2 -= 2082844800; this.relativeOffset += 8; - return v3; + return v2; }; Parser.prototype.parseVersion = function(minorBase) { var major = getUShort(this.data, this.offset + this.relativeOffset); @@ -18643,8 +12497,8 @@ Parser.prototype.parseULongList = function(count) { var offsets = new Array(count); var dataView = this.data; var offset = this.offset + this.relativeOffset; - for (var i2 = 0; i2 < count; i2++) { - offsets[i2] = dataView.getUint32(offset); + for (var i = 0; i < count; i++) { + offsets[i] = dataView.getUint32(offset); offset += 4; } this.relativeOffset += count * 4; @@ -18657,8 +12511,8 @@ Parser.prototype.parseOffset16List = Parser.prototype.parseUShortList = function var offsets = new Array(count); var dataView = this.data; var offset = this.offset + this.relativeOffset; - for (var i2 = 0; i2 < count; i2++) { - offsets[i2] = dataView.getUint16(offset); + for (var i = 0; i < count; i++) { + offsets[i] = dataView.getUint16(offset); offset += 2; } this.relativeOffset += count * 2; @@ -18668,8 +12522,8 @@ Parser.prototype.parseShortList = function(count) { var list = new Array(count); var dataView = this.data; var offset = this.offset + this.relativeOffset; - for (var i2 = 0; i2 < count; i2++) { - list[i2] = dataView.getInt16(offset); + for (var i = 0; i < count; i++) { + list[i] = dataView.getInt16(offset); offset += 2; } this.relativeOffset += count * 2; @@ -18679,8 +12533,8 @@ Parser.prototype.parseByteList = function(count) { var list = new Array(count); var dataView = this.data; var offset = this.offset + this.relativeOffset; - for (var i2 = 0; i2 < count; i2++) { - list[i2] = dataView.getUint8(offset++); + for (var i = 0; i < count; i++) { + list[i] = dataView.getUint8(offset++); } this.relativeOffset += count; return list; @@ -18691,8 +12545,8 @@ Parser.prototype.parseList = function(count, itemCallback) { count = this.parseUShort(); } var list = new Array(count); - for (var i2 = 0; i2 < count; i2++) { - list[i2] = itemCallback.call(this); + for (var i = 0; i < count; i++) { + list[i] = itemCallback.call(this); } return list; }; @@ -18702,8 +12556,8 @@ Parser.prototype.parseList32 = function(count, itemCallback) { count = this.parseULong(); } var list = new Array(count); - for (var i2 = 0; i2 < count; i2++) { - list[i2] = itemCallback.call(this); + for (var i = 0; i < count; i++) { + list[i] = itemCallback.call(this); } return list; }; @@ -18714,14 +12568,14 @@ Parser.prototype.parseRecordList = function(count, recordDescription) { } var records = new Array(count); var fields = Object.keys(recordDescription); - for (var i2 = 0; i2 < count; i2++) { + for (var i = 0; i < count; i++) { var rec = {}; - for (var j2 = 0; j2 < fields.length; j2++) { - var fieldName = fields[j2]; + for (var j = 0; j < fields.length; j++) { + var fieldName = fields[j]; var fieldType = recordDescription[fieldName]; rec[fieldName] = fieldType.call(this); } - records[i2] = rec; + records[i] = rec; } return records; }; @@ -18732,14 +12586,14 @@ Parser.prototype.parseRecordList32 = function(count, recordDescription) { } var records = new Array(count); var fields = Object.keys(recordDescription); - for (var i2 = 0; i2 < count; i2++) { + for (var i = 0; i < count; i++) { var rec = {}; - for (var j2 = 0; j2 < fields.length; j2++) { - var fieldName = fields[j2]; + for (var j = 0; j < fields.length; j++) { + var fieldName = fields[j]; var fieldType = recordDescription[fieldName]; rec[fieldName] = fieldType.call(this); } - records[i2] = rec; + records[i] = rec; } return records; }; @@ -18749,8 +12603,8 @@ Parser.prototype.parseStruct = function(description) { } else { var fields = Object.keys(description); var struct = {}; - for (var j2 = 0; j2 < fields.length; j2++) { - var fieldName = fields[j2]; + for (var j = 0; j < fields.length; j++) { + var fieldName = fields[j]; var fieldType = description[fieldName]; struct[fieldName] = fieldType.call(this); } @@ -18799,8 +12653,8 @@ Parser.prototype.parseValueRecordList = function() { var valueFormat = this.parseUShort(); var valueCount = this.parseUShort(); var values = new Array(valueCount); - for (var i2 = 0; i2 < valueCount; i2++) { - values[i2] = this.parseValueRecord(valueFormat); + for (var i = 0; i < valueCount; i++) { + values[i] = this.parseValueRecord(valueFormat); } return values; }; @@ -18823,23 +12677,23 @@ Parser.prototype.parseListOfLists = function(itemCallback) { var count = offsets.length; var relativeOffset = this.relativeOffset; var list = new Array(count); - for (var i2 = 0; i2 < count; i2++) { - var start = offsets[i2]; + for (var i = 0; i < count; i++) { + var start = offsets[i]; if (start === 0) { - list[i2] = void 0; + list[i] = void 0; continue; } this.relativeOffset = start; if (itemCallback) { var subOffsets = this.parseOffset16List(); var subList = new Array(subOffsets.length); - for (var j2 = 0; j2 < subOffsets.length; j2++) { - this.relativeOffset = start + subOffsets[j2]; - subList[j2] = itemCallback.call(this); + for (var j = 0; j < subOffsets.length; j++) { + this.relativeOffset = start + subOffsets[j]; + subList[j] = itemCallback.call(this); } - list[i2] = subList; + list[i] = subList; } else { - list[i2] = this.parseUShortList(); + list[i] = this.parseUShortList(); } } this.relativeOffset = relativeOffset; @@ -18856,8 +12710,8 @@ Parser.prototype.parseCoverage = function() { }; } else if (format === 2) { var ranges = new Array(count); - for (var i2 = 0; i2 < count; i2++) { - ranges[i2] = { + for (var i = 0; i < count; i++) { + ranges[i] = { start: this.parseUShort(), end: this.parseUShort(), index: this.parseUShort() @@ -18996,50 +12850,50 @@ var parse = { bytesToString, Parser }; -function parseGlyphCoordinate(p2, flag, previousValue, shortVectorBitMask, sameBitMask) { - var v3; +function parseGlyphCoordinate(p, flag, previousValue, shortVectorBitMask, sameBitMask) { + var v2; if ((flag & shortVectorBitMask) > 0) { - v3 = p2.parseByte(); + v2 = p.parseByte(); if ((flag & sameBitMask) === 0) { - v3 = -v3; + v2 = -v2; } - v3 = previousValue + v3; + v2 = previousValue + v2; } else { if ((flag & sameBitMask) > 0) { - v3 = previousValue; + v2 = previousValue; } else { - v3 = previousValue + p2.parseShort(); + v2 = previousValue + p.parseShort(); } } - return v3; + return v2; } function parseGlyph(glyph, data, start) { - var p2 = new parse.Parser(data, start); - glyph.numberOfContours = p2.parseShort(); - glyph._xMin = p2.parseShort(); - glyph._yMin = p2.parseShort(); - glyph._xMax = p2.parseShort(); - glyph._yMax = p2.parseShort(); + var p = new parse.Parser(data, start); + glyph.numberOfContours = p.parseShort(); + glyph._xMin = p.parseShort(); + glyph._yMin = p.parseShort(); + glyph._xMax = p.parseShort(); + glyph._yMax = p.parseShort(); var flags; var flag; if (glyph.numberOfContours > 0) { var endPointIndices = glyph.endPointIndices = []; - for (var i2 = 0; i2 < glyph.numberOfContours; i2 += 1) { - endPointIndices.push(p2.parseUShort()); + for (var i = 0; i < glyph.numberOfContours; i += 1) { + endPointIndices.push(p.parseUShort()); } - glyph.instructionLength = p2.parseUShort(); + glyph.instructionLength = p.parseUShort(); glyph.instructions = []; for (var i$1 = 0; i$1 < glyph.instructionLength; i$1 += 1) { - glyph.instructions.push(p2.parseByte()); + glyph.instructions.push(p.parseByte()); } var numberOfCoordinates = endPointIndices[endPointIndices.length - 1] + 1; flags = []; for (var i$2 = 0; i$2 < numberOfCoordinates; i$2 += 1) { - flag = p2.parseByte(); + flag = p.parseByte(); flags.push(flag); if ((flag & 8) > 0) { - var repeatCount = p2.parseByte(); - for (var j2 = 0; j2 < repeatCount; j2 += 1) { + var repeatCount = p.parseByte(); + for (var j = 0; j < repeatCount; j += 1) { flags.push(flag); i$2 += 1; } @@ -19061,14 +12915,14 @@ function parseGlyph(glyph, data, start) { for (var i$4 = 0; i$4 < numberOfCoordinates; i$4 += 1) { flag = flags[i$4]; point = points[i$4]; - point.x = parseGlyphCoordinate(p2, flag, px, 2, 16); + point.x = parseGlyphCoordinate(p, flag, px, 2, 16); px = point.x; } var py = 0; for (var i$5 = 0; i$5 < numberOfCoordinates; i$5 += 1) { flag = flags[i$5]; point = points[i$5]; - point.y = parseGlyphCoordinate(p2, flag, py, 4, 32); + point.y = parseGlyphCoordinate(p, flag, py, 4, 32); py = point.y; } } @@ -19084,9 +12938,9 @@ function parseGlyph(glyph, data, start) { glyph.components = []; var moreComponents = true; while (moreComponents) { - flags = p2.parseUShort(); + flags = p.parseUShort(); var component = { - glyphIndex: p2.parseUShort(), + glyphIndex: p.parseUShort(), xScale: 1, scale01: 0, scale10: 0, @@ -19096,46 +12950,46 @@ function parseGlyph(glyph, data, start) { }; if ((flags & 1) > 0) { if ((flags & 2) > 0) { - component.dx = p2.parseShort(); - component.dy = p2.parseShort(); + component.dx = p.parseShort(); + component.dy = p.parseShort(); } else { - component.matchedPoints = [p2.parseUShort(), p2.parseUShort()]; + component.matchedPoints = [p.parseUShort(), p.parseUShort()]; } } else { if ((flags & 2) > 0) { - component.dx = p2.parseChar(); - component.dy = p2.parseChar(); + component.dx = p.parseChar(); + component.dy = p.parseChar(); } else { - component.matchedPoints = [p2.parseByte(), p2.parseByte()]; + component.matchedPoints = [p.parseByte(), p.parseByte()]; } } if ((flags & 8) > 0) { - component.xScale = component.yScale = p2.parseF2Dot14(); + component.xScale = component.yScale = p.parseF2Dot14(); } else if ((flags & 64) > 0) { - component.xScale = p2.parseF2Dot14(); - component.yScale = p2.parseF2Dot14(); + component.xScale = p.parseF2Dot14(); + component.yScale = p.parseF2Dot14(); } else if ((flags & 128) > 0) { - component.xScale = p2.parseF2Dot14(); - component.scale01 = p2.parseF2Dot14(); - component.scale10 = p2.parseF2Dot14(); - component.yScale = p2.parseF2Dot14(); + component.xScale = p.parseF2Dot14(); + component.scale01 = p.parseF2Dot14(); + component.scale10 = p.parseF2Dot14(); + component.yScale = p.parseF2Dot14(); } glyph.components.push(component); moreComponents = !!(flags & 32); } if (flags & 256) { - glyph.instructionLength = p2.parseUShort(); + glyph.instructionLength = p.parseUShort(); glyph.instructions = []; for (var i$6 = 0; i$6 < glyph.instructionLength; i$6 += 1) { - glyph.instructions.push(p2.parseByte()); + glyph.instructions.push(p.parseByte()); } } } } function transformPoints(points, transform) { var newPoints = []; - for (var i2 = 0; i2 < points.length; i2 += 1) { - var pt = points[i2]; + for (var i = 0; i < points.length; i += 1) { + var pt = points[i]; var newPt = { x: transform.xScale * pt.x + transform.scale01 * pt.y + transform.dx, y: transform.scale10 * pt.x + transform.yScale * pt.y + transform.dy, @@ -19149,8 +13003,8 @@ function transformPoints(points, transform) { function getContours(points) { var contours = []; var currentContour = []; - for (var i2 = 0; i2 < points.length; i2 += 1) { - var pt = points[i2]; + for (var i = 0; i < points.length; i += 1) { + var pt = points[i]; currentContour.push(pt); if (pt.lastPointOfContour) { contours.push(currentContour); @@ -19161,9 +13015,9 @@ function getContours(points) { return contours; } function getPath(points) { - var p2 = new Path(); + var p = new Path(); if (!points) { - return p2; + return p; } var contours = getContours(points); for (var contourIndex = 0; contourIndex < contours.length; ++contourIndex) { @@ -19172,21 +13026,21 @@ function getPath(points) { var curr = contour[contour.length - 1]; var next = contour[0]; if (curr.onCurve) { - p2.moveTo(curr.x, curr.y); + p.moveTo(curr.x, curr.y); } else { if (next.onCurve) { - p2.moveTo(next.x, next.y); + p.moveTo(next.x, next.y); } else { var start = { x: (curr.x + next.x) * 0.5, y: (curr.y + next.y) * 0.5 }; - p2.moveTo(start.x, start.y); + p.moveTo(start.x, start.y); } } - for (var i2 = 0; i2 < contour.length; ++i2) { + for (var i = 0; i < contour.length; ++i) { prev = curr; curr = next; - next = contour[(i2 + 1) % contour.length]; + next = contour[(i + 1) % contour.length]; if (curr.onCurve) { - p2.lineTo(curr.x, curr.y); + p.lineTo(curr.x, curr.y); } else { var next2 = next; if (!prev.onCurve) { @@ -19195,17 +13049,17 @@ function getPath(points) { if (!next.onCurve) { next2 = { x: (curr.x + next.x) * 0.5, y: (curr.y + next.y) * 0.5 }; } - p2.quadraticCurveTo(curr.x, curr.y, next2.x, next2.y); + p.quadraticCurveTo(curr.x, curr.y, next2.x, next2.y); } } - p2.closePath(); + p.closePath(); } - return p2; + return p; } function buildPath(glyphs, glyph) { if (glyph.isComposite) { - for (var j2 = 0; j2 < glyph.components.length; j2 += 1) { - var component = glyph.components[j2]; + for (var j = 0; j < glyph.components.length; j += 1) { + var component = glyph.components[j]; var componentGlyph = glyphs.get(component.glyphIndex); componentGlyph.getPath(); if (componentGlyph.points) { @@ -19239,26 +13093,26 @@ function buildPath(glyphs, glyph) { } function parseGlyfTableAll(data, start, loca2, font) { var glyphs = new glyphset.GlyphSet(font); - for (var i2 = 0; i2 < loca2.length - 1; i2 += 1) { - var offset = loca2[i2]; - var nextOffset = loca2[i2 + 1]; + for (var i = 0; i < loca2.length - 1; i += 1) { + var offset = loca2[i]; + var nextOffset = loca2[i + 1]; if (offset !== nextOffset) { - glyphs.push(i2, glyphset.ttfGlyphLoader(font, i2, parseGlyph, data, start + offset, buildPath)); + glyphs.push(i, glyphset.ttfGlyphLoader(font, i, parseGlyph, data, start + offset, buildPath)); } else { - glyphs.push(i2, glyphset.glyphLoader(font, i2)); + glyphs.push(i, glyphset.glyphLoader(font, i)); } } return glyphs; } function parseGlyfTableOnLowMemory(data, start, loca2, font) { var glyphs = new glyphset.GlyphSet(font); - font._push = function(i2) { - var offset = loca2[i2]; - var nextOffset = loca2[i2 + 1]; + font._push = function(i) { + var offset = loca2[i]; + var nextOffset = loca2[i + 1]; if (offset !== nextOffset) { - glyphs.push(i2, glyphset.ttfGlyphLoader(font, i2, parseGlyph, data, start + offset, buildPath)); + glyphs.push(i, glyphset.ttfGlyphLoader(font, i, parseGlyph, data, start + offset, buildPath)); } else { - glyphs.push(i2, glyphset.glyphLoader(font, i2)); + glyphs.push(i, glyphset.glyphLoader(font, i)); } }; return glyphs; @@ -19283,40 +13137,40 @@ function Hinting(font) { this._fpgmState = this._prepState = void 0; this._errorState = 0; } -function roundOff(v3) { - return v3; +function roundOff(v2) { + return v2; } -function roundToGrid(v3) { - return Math.sign(v3) * Math.round(Math.abs(v3)); +function roundToGrid(v2) { + return Math.sign(v2) * Math.round(Math.abs(v2)); } -function roundToDoubleGrid(v3) { - return Math.sign(v3) * Math.round(Math.abs(v3 * 2)) / 2; +function roundToDoubleGrid(v2) { + return Math.sign(v2) * Math.round(Math.abs(v2 * 2)) / 2; } -function roundToHalfGrid(v3) { - return Math.sign(v3) * (Math.round(Math.abs(v3) + 0.5) - 0.5); +function roundToHalfGrid(v2) { + return Math.sign(v2) * (Math.round(Math.abs(v2) + 0.5) - 0.5); } -function roundUpToGrid(v3) { - return Math.sign(v3) * Math.ceil(Math.abs(v3)); +function roundUpToGrid(v2) { + return Math.sign(v2) * Math.ceil(Math.abs(v2)); } -function roundDownToGrid(v3) { - return Math.sign(v3) * Math.floor(Math.abs(v3)); +function roundDownToGrid(v2) { + return Math.sign(v2) * Math.floor(Math.abs(v2)); } -var roundSuper = function(v3) { +var roundSuper = function(v2) { var period = this.srPeriod; var phase = this.srPhase; var threshold = this.srThreshold; var sign = 1; - if (v3 < 0) { - v3 = -v3; + if (v2 < 0) { + v2 = -v2; sign = -1; } - v3 += threshold - phase; - v3 = Math.trunc(v3 / period) * period; - v3 += phase; - if (v3 < 0) { + v2 += threshold - phase; + v2 = Math.trunc(v2 / period) * period; + v2 += phase; + if (v2 < 0) { return phase * sign; } - return v3 * sign; + return v2 * sign; }; var xUnitVector = { x: 1, @@ -19332,7 +13186,7 @@ var xUnitVector = { // original positions had. // // See APPENDIX on INTERPOLATE at the bottom of this file. - interpolate: function(p2, rp1, rp2, pv) { + interpolate: function(p, rp1, rp2, pv) { var do1; var do2; var doa1; @@ -19341,32 +13195,32 @@ var xUnitVector = { var dm2; var dt; if (!pv || pv === this) { - do1 = p2.xo - rp1.xo; - do2 = p2.xo - rp2.xo; + do1 = p.xo - rp1.xo; + do2 = p.xo - rp2.xo; dm1 = rp1.x - rp1.xo; dm2 = rp2.x - rp2.xo; doa1 = Math.abs(do1); doa2 = Math.abs(do2); dt = doa1 + doa2; if (dt === 0) { - p2.x = p2.xo + (dm1 + dm2) / 2; + p.x = p.xo + (dm1 + dm2) / 2; return; } - p2.x = p2.xo + (dm1 * doa2 + dm2 * doa1) / dt; + p.x = p.xo + (dm1 * doa2 + dm2 * doa1) / dt; return; } - do1 = pv.distance(p2, rp1, true, true); - do2 = pv.distance(p2, rp2, true, true); + do1 = pv.distance(p, rp1, true, true); + do2 = pv.distance(p, rp2, true, true); dm1 = pv.distance(rp1, rp1, false, true); dm2 = pv.distance(rp2, rp2, false, true); doa1 = Math.abs(do1); doa2 = Math.abs(do2); dt = doa1 + doa2; if (dt === 0) { - xUnitVector.setRelative(p2, p2, (dm1 + dm2) / 2, pv, true); + xUnitVector.setRelative(p, p, (dm1 + dm2) / 2, pv, true); return; } - xUnitVector.setRelative(p2, p2, (dm1 * doa2 + dm2 * doa1) / dt, pv, true); + xUnitVector.setRelative(p, p, (dm1 * doa2 + dm2 * doa1) / dt, pv, true); }, // Slope of line normal to this normalSlope: Number.NEGATIVE_INFINITY, @@ -19380,30 +13234,30 @@ var xUnitVector = { // d ... distance on projection vector // pv ... projection vector (undefined = this) // org ... if true, uses the original position of rp as reference. - setRelative: function(p2, rp, d3, pv, org) { + setRelative: function(p, rp, d2, pv, org) { if (!pv || pv === this) { - p2.x = (org ? rp.xo : rp.x) + d3; + p.x = (org ? rp.xo : rp.x) + d2; return; } var rpx = org ? rp.xo : rp.x; var rpy = org ? rp.yo : rp.y; - var rpdx = rpx + d3 * pv.x; - var rpdy = rpy + d3 * pv.y; - p2.x = rpdx + (p2.y - rpdy) / pv.normalSlope; + var rpdx = rpx + d2 * pv.x; + var rpdy = rpy + d2 * pv.y; + p.x = rpdx + (p.y - rpdy) / pv.normalSlope; }, // Slope of vector line. slope: 0, // Touches the point p. - touch: function(p2) { - p2.xTouched = true; + touch: function(p) { + p.xTouched = true; }, // Tests if a point p is touched. - touched: function(p2) { - return p2.xTouched; + touched: function(p) { + return p.xTouched; }, // Untouches the point p. - untouch: function(p2) { - p2.xTouched = false; + untouch: function(p) { + p.xTouched = false; } }; var yUnitVector = { @@ -19420,7 +13274,7 @@ var yUnitVector = { // original positions had. // // See APPENDIX on INTERPOLATE at the bottom of this file. - interpolate: function(p2, rp1, rp2, pv) { + interpolate: function(p, rp1, rp2, pv) { var do1; var do2; var doa1; @@ -19429,32 +13283,32 @@ var yUnitVector = { var dm2; var dt; if (!pv || pv === this) { - do1 = p2.yo - rp1.yo; - do2 = p2.yo - rp2.yo; + do1 = p.yo - rp1.yo; + do2 = p.yo - rp2.yo; dm1 = rp1.y - rp1.yo; dm2 = rp2.y - rp2.yo; doa1 = Math.abs(do1); doa2 = Math.abs(do2); dt = doa1 + doa2; if (dt === 0) { - p2.y = p2.yo + (dm1 + dm2) / 2; + p.y = p.yo + (dm1 + dm2) / 2; return; } - p2.y = p2.yo + (dm1 * doa2 + dm2 * doa1) / dt; + p.y = p.yo + (dm1 * doa2 + dm2 * doa1) / dt; return; } - do1 = pv.distance(p2, rp1, true, true); - do2 = pv.distance(p2, rp2, true, true); + do1 = pv.distance(p, rp1, true, true); + do2 = pv.distance(p, rp2, true, true); dm1 = pv.distance(rp1, rp1, false, true); dm2 = pv.distance(rp2, rp2, false, true); doa1 = Math.abs(do1); doa2 = Math.abs(do2); dt = doa1 + doa2; if (dt === 0) { - yUnitVector.setRelative(p2, p2, (dm1 + dm2) / 2, pv, true); + yUnitVector.setRelative(p, p, (dm1 + dm2) / 2, pv, true); return; } - yUnitVector.setRelative(p2, p2, (dm1 * doa2 + dm2 * doa1) / dt, pv, true); + yUnitVector.setRelative(p, p, (dm1 * doa2 + dm2 * doa1) / dt, pv, true); }, // Slope of line normal to this. normalSlope: 0, @@ -19468,46 +13322,46 @@ var yUnitVector = { // d ... distance on projection vector // pv ... projection vector (undefined = this) // org ... if true, uses the original position of rp as reference. - setRelative: function(p2, rp, d3, pv, org) { + setRelative: function(p, rp, d2, pv, org) { if (!pv || pv === this) { - p2.y = (org ? rp.yo : rp.y) + d3; + p.y = (org ? rp.yo : rp.y) + d2; return; } var rpx = org ? rp.xo : rp.x; var rpy = org ? rp.yo : rp.y; - var rpdx = rpx + d3 * pv.x; - var rpdy = rpy + d3 * pv.y; - p2.y = rpdy + pv.normalSlope * (p2.x - rpdx); + var rpdx = rpx + d2 * pv.x; + var rpdy = rpy + d2 * pv.y; + p.y = rpdy + pv.normalSlope * (p.x - rpdx); }, // Slope of vector line. slope: Number.POSITIVE_INFINITY, // Touches the point p. - touch: function(p2) { - p2.yTouched = true; + touch: function(p) { + p.yTouched = true; }, // Tests if a point p is touched. - touched: function(p2) { - return p2.yTouched; + touched: function(p) { + return p.yTouched; }, // Untouches the point p. - untouch: function(p2) { - p2.yTouched = false; + untouch: function(p) { + p.yTouched = false; } }; Object.freeze(xUnitVector); Object.freeze(yUnitVector); -function UnitVector(x3, y2) { - this.x = x3; - this.y = y2; +function UnitVector(x2, y) { + this.x = x2; + this.y = y; this.axis = void 0; - this.slope = y2 / x3; - this.normalSlope = -x3 / y2; + this.slope = y / x2; + this.normalSlope = -x2 / y; Object.freeze(this); } UnitVector.prototype.distance = function(p1, p2, o1, o2) { return this.x * xUnitVector.distance(p1, p2, o1, o2) + this.y * yUnitVector.distance(p1, p2, o1, o2); }; -UnitVector.prototype.interpolate = function(p2, rp1, rp2, pv) { +UnitVector.prototype.interpolate = function(p, rp1, rp2, pv) { var dm1; var dm2; var do1; @@ -19515,51 +13369,51 @@ UnitVector.prototype.interpolate = function(p2, rp1, rp2, pv) { var doa1; var doa2; var dt; - do1 = pv.distance(p2, rp1, true, true); - do2 = pv.distance(p2, rp2, true, true); + do1 = pv.distance(p, rp1, true, true); + do2 = pv.distance(p, rp2, true, true); dm1 = pv.distance(rp1, rp1, false, true); dm2 = pv.distance(rp2, rp2, false, true); doa1 = Math.abs(do1); doa2 = Math.abs(do2); dt = doa1 + doa2; if (dt === 0) { - this.setRelative(p2, p2, (dm1 + dm2) / 2, pv, true); + this.setRelative(p, p, (dm1 + dm2) / 2, pv, true); return; } - this.setRelative(p2, p2, (dm1 * doa2 + dm2 * doa1) / dt, pv, true); + this.setRelative(p, p, (dm1 * doa2 + dm2 * doa1) / dt, pv, true); }; -UnitVector.prototype.setRelative = function(p2, rp, d3, pv, org) { +UnitVector.prototype.setRelative = function(p, rp, d2, pv, org) { pv = pv || this; var rpx = org ? rp.xo : rp.x; var rpy = org ? rp.yo : rp.y; - var rpdx = rpx + d3 * pv.x; - var rpdy = rpy + d3 * pv.y; + var rpdx = rpx + d2 * pv.x; + var rpdy = rpy + d2 * pv.y; var pvns = pv.normalSlope; var fvs = this.slope; - var px = p2.x; - var py = p2.y; - p2.x = (fvs * px - pvns * rpdx + rpdy - py) / (fvs - pvns); - p2.y = fvs * (p2.x - px) + py; + var px = p.x; + var py = p.y; + p.x = (fvs * px - pvns * rpdx + rpdy - py) / (fvs - pvns); + p.y = fvs * (p.x - px) + py; }; -UnitVector.prototype.touch = function(p2) { - p2.xTouched = true; - p2.yTouched = true; +UnitVector.prototype.touch = function(p) { + p.xTouched = true; + p.yTouched = true; }; -function getUnitVector(x3, y2) { - var d3 = Math.sqrt(x3 * x3 + y2 * y2); - x3 /= d3; - y2 /= d3; - if (x3 === 1 && y2 === 0) { +function getUnitVector(x2, y) { + var d2 = Math.sqrt(x2 * x2 + y * y); + x2 /= d2; + y /= d2; + if (x2 === 1 && y === 0) { return xUnitVector; - } else if (x3 === 0 && y2 === 1) { + } else if (x2 === 0 && y === 1) { return yUnitVector; } else { - return new UnitVector(x3, y2); + return new UnitVector(x2, y); } } -function HPoint(x3, y2, lastPointOfContour, onCurve) { - this.x = this.xo = Math.round(x3 * 64) / 64; - this.y = this.yo = Math.round(y2 * 64) / 64; +function HPoint(x2, y, lastPointOfContour, onCurve) { + this.x = this.xo = Math.round(x2 * 64) / 64; + this.y = this.yo = Math.round(y * 64) / 64; this.lastPointOfContour = lastPointOfContour; this.onCurve = onCurve; this.prevPointOnContour = void 0; @@ -19568,19 +13422,19 @@ function HPoint(x3, y2, lastPointOfContour, onCurve) { this.yTouched = false; Object.preventExtensions(this); } -HPoint.prototype.nextTouched = function(v3) { - var p2 = this.nextPointOnContour; - while (!v3.touched(p2) && p2 !== this) { - p2 = p2.nextPointOnContour; +HPoint.prototype.nextTouched = function(v2) { + var p = this.nextPointOnContour; + while (!v2.touched(p) && p !== this) { + p = p.nextPointOnContour; } - return p2; + return p; }; -HPoint.prototype.prevTouched = function(v3) { - var p2 = this.prevPointOnContour; - while (!v3.touched(p2) && p2 !== this) { - p2 = p2.prevPointOnContour; +HPoint.prototype.prevTouched = function(v2) { + var p = this.prevPointOnContour; + while (!v2.touched(p) && p !== this) { + p = p.prevPointOnContour; } - return p2; + return p; }; var HPZero = Object.freeze(new HPoint(0, 0)); var defaultState = { @@ -19630,8 +13484,8 @@ Hinting.prototype.exec = function(glyph, ppem) { } try { exec(fpgmState); - } catch (e2) { - console.log("Hinting error in FPGM:" + e2); + } catch (e) { + console.log("Hinting error in FPGM:" + e); this._errorState = 3; return; } @@ -19643,8 +13497,8 @@ Hinting.prototype.exec = function(glyph, ppem) { if (oCvt) { var cvt = prepState.cvt = new Array(oCvt.length); var scale = ppem / font.unitsPerEm; - for (var c3 = 0; c3 < oCvt.length; c3++) { - cvt[c3] = oCvt[c3] * scale; + for (var c2 = 0; c2 < oCvt.length; c2++) { + cvt[c2] = oCvt[c2] * scale; } } else { prepState.cvt = []; @@ -19655,9 +13509,9 @@ Hinting.prototype.exec = function(glyph, ppem) { } try { exec(prepState); - } catch (e2) { + } catch (e) { if (this._errorState < 2) { - console.log("Hinting error in PREP:" + e2); + console.log("Hinting error in PREP:" + e); } this._errorState = 2; } @@ -19667,9 +13521,9 @@ Hinting.prototype.exec = function(glyph, ppem) { } try { return execGlyph(glyph, prepState); - } catch (e2) { + } catch (e) { if (this._errorState < 1) { - console.log("Hinting error:" + e2); + console.log("Hinting error:" + e); console.log("Note: further hinting errors are silenced"); } this._errorState = 1; @@ -19696,29 +13550,29 @@ execGlyph = function(glyph, prepState) { var font = prepState.font; gZone = []; contours = []; - for (var i2 = 0; i2 < components.length; i2++) { - var c3 = components[i2]; - var cg = font.glyphs.get(c3.glyphIndex); + for (var i = 0; i < components.length; i++) { + var c2 = components[i]; + var cg = font.glyphs.get(c2.glyphIndex); state = new State("glyf", cg.instructions); if (exports.DEBUG) { - console.log("---EXEC COMP " + i2 + "---"); + console.log("---EXEC COMP " + i + "---"); state.step = -1; } execComponent(cg, state, xScale, yScale); - var dx = Math.round(c3.dx * xScale); - var dy = Math.round(c3.dy * yScale); + var dx = Math.round(c2.dx * xScale); + var dy = Math.round(c2.dy * yScale); var gz = state.gZone; var cc = state.contours; for (var pi = 0; pi < gz.length; pi++) { - var p2 = gz[pi]; - p2.xTouched = p2.yTouched = false; - p2.xo = p2.x = p2.x + dx; - p2.yo = p2.y = p2.y + dy; + var p = gz[pi]; + p.xTouched = p.yTouched = false; + p.xo = p.x = p.x + dx; + p.yo = p.y = p.y + dy; } var gLen = gZone.length; gZone.push.apply(gZone, gz); - for (var j2 = 0; j2 < cc.length; j2++) { - contours.push(cc[j2] + gLen); + for (var j = 0; j < cc.length; j++) { + contours.push(cc[j] + gLen); } } if (glyph.instructions && !state.inhibitGridFit) { @@ -19745,9 +13599,9 @@ execComponent = function(glyph, state, xScale, yScale) { var gZone = state.gZone = state.z0 = state.z1 = state.z2 = []; var contours = state.contours = []; var cp; - for (var i2 = 0; i2 < pLen; i2++) { - cp = points[i2]; - gZone[i2] = new HPoint( + for (var i = 0; i < pLen; i++) { + cp = points[i]; + gZone[i] = new HPoint( cp.x * xScale, cp.y * yScale, cp.lastPointOfContour, @@ -19816,8 +13670,8 @@ exec = function(state) { }; function initTZone(state) { var tZone = state.tZone = new Array(state.gZone.length); - for (var i2 = 0; i2 < tZone.length; i2++) { - tZone[i2] = new HPoint(0, 0); + for (var i = 0; i < tZone.length; i++) { + tZone[i] = new HPoint(0, 0); } } function skip(state, handleElse) { @@ -19845,36 +13699,36 @@ function skip(state, handleElse) { } while (nesting > 0); state.ip = ip; } -function SVTCA(v3, state) { +function SVTCA(v2, state) { if (exports.DEBUG) { - console.log(state.step, "SVTCA[" + v3.axis + "]"); + console.log(state.step, "SVTCA[" + v2.axis + "]"); } - state.fv = state.pv = state.dpv = v3; + state.fv = state.pv = state.dpv = v2; } -function SPVTCA(v3, state) { +function SPVTCA(v2, state) { if (exports.DEBUG) { - console.log(state.step, "SPVTCA[" + v3.axis + "]"); + console.log(state.step, "SPVTCA[" + v2.axis + "]"); } - state.pv = state.dpv = v3; + state.pv = state.dpv = v2; } -function SFVTCA(v3, state) { +function SFVTCA(v2, state) { if (exports.DEBUG) { - console.log(state.step, "SFVTCA[" + v3.axis + "]"); + console.log(state.step, "SFVTCA[" + v2.axis + "]"); } - state.fv = v3; + state.fv = v2; } -function SPVTL(a2, state) { +function SPVTL(a, state) { var stack = state.stack; var p2i = stack.pop(); var p1i = stack.pop(); var p2 = state.z2[p2i]; var p1 = state.z1[p1i]; if (exports.DEBUG) { - console.log("SPVTL[" + a2 + "]", p2i, p1i); + console.log("SPVTL[" + a + "]", p2i, p1i); } var dx; var dy; - if (!a2) { + if (!a) { dx = p1.x - p2.x; dy = p1.y - p2.y; } else { @@ -19883,18 +13737,18 @@ function SPVTL(a2, state) { } state.pv = state.dpv = getUnitVector(dx, dy); } -function SFVTL(a2, state) { +function SFVTL(a, state) { var stack = state.stack; var p2i = stack.pop(); var p1i = stack.pop(); var p2 = state.z2[p2i]; var p1 = state.z1[p1i]; if (exports.DEBUG) { - console.log("SFVTL[" + a2 + "]", p2i, p1i); + console.log("SFVTL[" + a + "]", p2i, p1i); } var dx; var dy; - if (!a2) { + if (!a) { dx = p1.x - p2.x; dy = p1.y - p2.y; } else { @@ -19905,21 +13759,21 @@ function SFVTL(a2, state) { } function SPVFS(state) { var stack = state.stack; - var y2 = stack.pop(); - var x3 = stack.pop(); + var y = stack.pop(); + var x2 = stack.pop(); if (exports.DEBUG) { - console.log(state.step, "SPVFS[]", y2, x3); + console.log(state.step, "SPVFS[]", y, x2); } - state.pv = state.dpv = getUnitVector(x3, y2); + state.pv = state.dpv = getUnitVector(x2, y); } function SFVFS(state) { var stack = state.stack; - var y2 = stack.pop(); - var x3 = stack.pop(); + var y = stack.pop(); + var x2 = stack.pop(); if (exports.DEBUG) { - console.log(state.step, "SPVFS[]", y2, x3); + console.log(state.step, "SPVFS[]", y, x2); } - state.fv = getUnitVector(x3, y2); + state.fv = getUnitVector(x2, y); } function GPV(state) { var stack = state.stack; @@ -19958,23 +13812,23 @@ function ISECT(state) { var pa1 = z0[pa1i]; var pb0 = z1[pb0i]; var pb1 = z1[pb1i]; - var p2 = state.z2[pi]; + var p = state.z2[pi]; if (exports.DEBUG) { console.log("ISECT[], ", pa0i, pa1i, pb0i, pb1i, pi); } var x1 = pa0.x; var y1 = pa0.y; - var x22 = pa1.x; + var x2 = pa1.x; var y2 = pa1.y; var x3 = pb0.x; var y3 = pb0.y; var x4 = pb1.x; var y4 = pb1.y; - var div = (x1 - x22) * (y3 - y4) - (y1 - y2) * (x3 - x4); - var f1 = x1 * y2 - y1 * x22; - var f22 = x3 * y4 - y3 * x4; - p2.x = (f1 * (x3 - x4) - f22 * (x1 - x22)) / div; - p2.y = (f1 * (y3 - y4) - f22 * (y1 - y2)) / div; + var div = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4); + var f1 = x1 * y2 - y1 * x2; + var f2 = x3 * y4 - y3 * x4; + p.x = (f1 * (x3 - x4) - f2 * (x1 - x2)) / div; + p.y = (f1 * (y3 - y4) - f2 * (y1 - y2)) / div; } function SRP0(state) { state.rp0 = state.stack.pop(); @@ -19995,12 +13849,12 @@ function SRP2(state) { } } function SZP0(state) { - var n2 = state.stack.pop(); + var n = state.stack.pop(); if (exports.DEBUG) { - console.log(state.step, "SZP0[]", n2); + console.log(state.step, "SZP0[]", n); } - state.zp0 = n2; - switch (n2) { + state.zp0 = n; + switch (n) { case 0: if (!state.tZone) { initTZone(state); @@ -20015,12 +13869,12 @@ function SZP0(state) { } } function SZP1(state) { - var n2 = state.stack.pop(); + var n = state.stack.pop(); if (exports.DEBUG) { - console.log(state.step, "SZP1[]", n2); + console.log(state.step, "SZP1[]", n); } - state.zp1 = n2; - switch (n2) { + state.zp1 = n; + switch (n) { case 0: if (!state.tZone) { initTZone(state); @@ -20035,12 +13889,12 @@ function SZP1(state) { } } function SZP2(state) { - var n2 = state.stack.pop(); + var n = state.stack.pop(); if (exports.DEBUG) { - console.log(state.step, "SZP2[]", n2); + console.log(state.step, "SZP2[]", n); } - state.zp2 = n2; - switch (n2) { + state.zp2 = n; + switch (n) { case 0: if (!state.tZone) { initTZone(state); @@ -20055,12 +13909,12 @@ function SZP2(state) { } } function SZPS(state) { - var n2 = state.stack.pop(); + var n = state.stack.pop(); if (exports.DEBUG) { - console.log(state.step, "SZPS[]", n2); + console.log(state.step, "SZPS[]", n); } - state.zp0 = state.zp1 = state.zp2 = n2; - switch (n2) { + state.zp0 = state.zp1 = state.zp2 = n; + switch (n) { case 0: if (!state.tZone) { initTZone(state); @@ -20093,11 +13947,11 @@ function RTHG(state) { state.round = roundToHalfGrid; } function SMD(state) { - var d3 = state.stack.pop(); + var d2 = state.stack.pop(); if (exports.DEBUG) { - console.log(state.step, "SMD[]", d3); + console.log(state.step, "SMD[]", d2); } - state.minDis = d3 / 64; + state.minDis = d2 / 64; } function ELSE(state) { if (exports.DEBUG) { @@ -20106,18 +13960,18 @@ function ELSE(state) { skip(state, false); } function JMPR(state) { - var o2 = state.stack.pop(); + var o = state.stack.pop(); if (exports.DEBUG) { - console.log(state.step, "JMPR[]", o2); + console.log(state.step, "JMPR[]", o); } - state.ip += o2 - 1; + state.ip += o - 1; } function SCVTCI(state) { - var n2 = state.stack.pop(); + var n = state.stack.pop(); if (exports.DEBUG) { - console.log(state.step, "SCVTCI[]", n2); + console.log(state.step, "SCVTCI[]", n); } - state.cvCutIn = n2 / 64; + state.cvCutIn = n / 64; } function DUP(state) { var stack = state.stack; @@ -20140,13 +13994,13 @@ function CLEAR(state) { } function SWAP(state) { var stack = state.stack; - var a2 = stack.pop(); - var b2 = stack.pop(); + var a = stack.pop(); + var b = stack.pop(); if (exports.DEBUG) { console.log(state.step, "SWAP[]"); } - stack.push(a2); - stack.push(b2); + stack.push(a); + stack.push(b); } function DEPTH(state) { var stack = state.stack; @@ -20158,20 +14012,20 @@ function DEPTH(state) { function LOOPCALL(state) { var stack = state.stack; var fn = stack.pop(); - var c3 = stack.pop(); + var c2 = stack.pop(); if (exports.DEBUG) { - console.log(state.step, "LOOPCALL[]", fn, c3); + console.log(state.step, "LOOPCALL[]", fn, c2); } var cip = state.ip; var cprog = state.prog; state.prog = state.funcs[fn]; - for (var i2 = 0; i2 < c3; i2++) { + for (var i = 0; i < c2; i++) { exec(state); if (exports.DEBUG) { console.log( ++state.step, - i2 + 1 < c3 ? "next loopcall" : "done loopcall", - i2 + i + 1 < c2 ? "next loopcall" : "done loopcall", + i ); } } @@ -20195,19 +14049,19 @@ function CALL(state) { } function CINDEX(state) { var stack = state.stack; - var k3 = stack.pop(); + var k2 = stack.pop(); if (exports.DEBUG) { - console.log(state.step, "CINDEX[]", k3); + console.log(state.step, "CINDEX[]", k2); } - stack.push(stack[stack.length - k3]); + stack.push(stack[stack.length - k2]); } function MINDEX(state) { var stack = state.stack; - var k3 = stack.pop(); + var k2 = stack.pop(); if (exports.DEBUG) { - console.log(state.step, "MINDEX[]", k3); + console.log(state.step, "MINDEX[]", k2); } - stack.push(stack.splice(stack.length - k3, 1)[0]); + stack.push(stack.splice(stack.length - k2, 1)[0]); } function FDEF(state) { if (state.env !== "fpgm") { @@ -20228,137 +14082,137 @@ function FDEF(state) { } function MDAP(round, state) { var pi = state.stack.pop(); - var p2 = state.z0[pi]; + var p = state.z0[pi]; var fv = state.fv; var pv = state.pv; if (exports.DEBUG) { console.log(state.step, "MDAP[" + round + "]", pi); } - var d3 = pv.distance(p2, HPZero); + var d2 = pv.distance(p, HPZero); if (round) { - d3 = state.round(d3); + d2 = state.round(d2); } - fv.setRelative(p2, HPZero, d3, pv); - fv.touch(p2); + fv.setRelative(p, HPZero, d2, pv); + fv.touch(p); state.rp0 = state.rp1 = pi; } -function IUP(v3, state) { +function IUP(v2, state) { var z2 = state.z2; var pLen = z2.length - 2; var cp; var pp; var np; if (exports.DEBUG) { - console.log(state.step, "IUP[" + v3.axis + "]"); + console.log(state.step, "IUP[" + v2.axis + "]"); } - for (var i2 = 0; i2 < pLen; i2++) { - cp = z2[i2]; - if (v3.touched(cp)) { + for (var i = 0; i < pLen; i++) { + cp = z2[i]; + if (v2.touched(cp)) { continue; } - pp = cp.prevTouched(v3); + pp = cp.prevTouched(v2); if (pp === cp) { continue; } - np = cp.nextTouched(v3); + np = cp.nextTouched(v2); if (pp === np) { - v3.setRelative(cp, cp, v3.distance(pp, pp, false, true), v3, true); + v2.setRelative(cp, cp, v2.distance(pp, pp, false, true), v2, true); } - v3.interpolate(cp, pp, np, v3); + v2.interpolate(cp, pp, np, v2); } } -function SHP(a2, state) { +function SHP(a, state) { var stack = state.stack; - var rpi = a2 ? state.rp1 : state.rp2; - var rp = (a2 ? state.z0 : state.z1)[rpi]; + var rpi = a ? state.rp1 : state.rp2; + var rp = (a ? state.z0 : state.z1)[rpi]; var fv = state.fv; var pv = state.pv; var loop = state.loop; var z2 = state.z2; while (loop--) { var pi = stack.pop(); - var p2 = z2[pi]; - var d3 = pv.distance(rp, rp, false, true); - fv.setRelative(p2, p2, d3, pv); - fv.touch(p2); + var p = z2[pi]; + var d2 = pv.distance(rp, rp, false, true); + fv.setRelative(p, p, d2, pv); + fv.touch(p); if (exports.DEBUG) { console.log( state.step, - (state.loop > 1 ? "loop " + (state.loop - loop) + ": " : "") + "SHP[" + (a2 ? "rp1" : "rp2") + "]", + (state.loop > 1 ? "loop " + (state.loop - loop) + ": " : "") + "SHP[" + (a ? "rp1" : "rp2") + "]", pi ); } } state.loop = 1; } -function SHC(a2, state) { +function SHC(a, state) { var stack = state.stack; - var rpi = a2 ? state.rp1 : state.rp2; - var rp = (a2 ? state.z0 : state.z1)[rpi]; + var rpi = a ? state.rp1 : state.rp2; + var rp = (a ? state.z0 : state.z1)[rpi]; var fv = state.fv; var pv = state.pv; var ci2 = stack.pop(); var sp = state.z2[state.contours[ci2]]; - var p2 = sp; + var p = sp; if (exports.DEBUG) { - console.log(state.step, "SHC[" + a2 + "]", ci2); + console.log(state.step, "SHC[" + a + "]", ci2); } - var d3 = pv.distance(rp, rp, false, true); + var d2 = pv.distance(rp, rp, false, true); do { - if (p2 !== rp) { - fv.setRelative(p2, p2, d3, pv); + if (p !== rp) { + fv.setRelative(p, p, d2, pv); } - p2 = p2.nextPointOnContour; - } while (p2 !== sp); + p = p.nextPointOnContour; + } while (p !== sp); } -function SHZ(a2, state) { +function SHZ(a, state) { var stack = state.stack; - var rpi = a2 ? state.rp1 : state.rp2; - var rp = (a2 ? state.z0 : state.z1)[rpi]; + var rpi = a ? state.rp1 : state.rp2; + var rp = (a ? state.z0 : state.z1)[rpi]; var fv = state.fv; var pv = state.pv; - var e2 = stack.pop(); + var e = stack.pop(); if (exports.DEBUG) { - console.log(state.step, "SHZ[" + a2 + "]", e2); + console.log(state.step, "SHZ[" + a + "]", e); } - var z2; - switch (e2) { + var z; + switch (e) { case 0: - z2 = state.tZone; + z = state.tZone; break; case 1: - z2 = state.gZone; + z = state.gZone; break; default: throw new Error("Invalid zone"); } - var p2; - var d3 = pv.distance(rp, rp, false, true); - var pLen = z2.length - 2; - for (var i2 = 0; i2 < pLen; i2++) { - p2 = z2[i2]; - fv.setRelative(p2, p2, d3, pv); + var p; + var d2 = pv.distance(rp, rp, false, true); + var pLen = z.length - 2; + for (var i = 0; i < pLen; i++) { + p = z[i]; + fv.setRelative(p, p, d2, pv); } } function SHPIX(state) { var stack = state.stack; var loop = state.loop; var fv = state.fv; - var d3 = stack.pop() / 64; + var d2 = stack.pop() / 64; var z2 = state.z2; while (loop--) { var pi = stack.pop(); - var p2 = z2[pi]; + var p = z2[pi]; if (exports.DEBUG) { console.log( state.step, (state.loop > 1 ? "loop " + (state.loop - loop) + ": " : "") + "SHPIX[]", pi, - d3 + d2 ); } - fv.setRelative(p2, p2, d3); - fv.touch(p2); + fv.setRelative(p, p, d2); + fv.touch(p); } state.loop = 1; } @@ -20374,7 +14228,7 @@ function IP(state) { var z2 = state.z2; while (loop--) { var pi = stack.pop(); - var p2 = z2[pi]; + var p = z2[pi]; if (exports.DEBUG) { console.log( state.step, @@ -20385,27 +14239,27 @@ function IP(state) { rp2i ); } - fv.interpolate(p2, rp1, rp2, pv); - fv.touch(p2); + fv.interpolate(p, rp1, rp2, pv); + fv.touch(p); } state.loop = 1; } -function MSIRP(a2, state) { +function MSIRP(a, state) { var stack = state.stack; - var d3 = stack.pop() / 64; + var d2 = stack.pop() / 64; var pi = stack.pop(); - var p2 = state.z1[pi]; + var p = state.z1[pi]; var rp0 = state.z0[state.rp0]; var fv = state.fv; var pv = state.pv; - fv.setRelative(p2, rp0, d3, pv); - fv.touch(p2); + fv.setRelative(p, rp0, d2, pv); + fv.touch(p); if (exports.DEBUG) { - console.log(state.step, "MSIRP[" + a2 + "]", d3, pi); + console.log(state.step, "MSIRP[" + a + "]", d2, pi); } state.rp1 = state.rp0; state.rp2 = pi; - if (a2) { + if (a) { state.rp0 = pi; } } @@ -20419,7 +14273,7 @@ function ALIGNRP(state) { var z1 = state.z1; while (loop--) { var pi = stack.pop(); - var p2 = z1[pi]; + var p = z1[pi]; if (exports.DEBUG) { console.log( state.step, @@ -20427,8 +14281,8 @@ function ALIGNRP(state) { pi ); } - fv.setRelative(p2, rp0, 0, pv); - fv.touch(p2); + fv.setRelative(p, rp0, 0, pv); + fv.touch(p); } state.loop = 1; } @@ -20440,47 +14294,47 @@ function RTDG(state) { } function MIAP(round, state) { var stack = state.stack; - var n2 = stack.pop(); + var n = stack.pop(); var pi = stack.pop(); - var p2 = state.z0[pi]; + var p = state.z0[pi]; var fv = state.fv; var pv = state.pv; - var cv = state.cvt[n2]; + var cv = state.cvt[n]; if (exports.DEBUG) { console.log( state.step, "MIAP[" + round + "]", - n2, + n, "(", cv, ")", pi ); } - var d3 = pv.distance(p2, HPZero); + var d2 = pv.distance(p, HPZero); if (round) { - if (Math.abs(d3 - cv) < state.cvCutIn) { - d3 = cv; + if (Math.abs(d2 - cv) < state.cvCutIn) { + d2 = cv; } - d3 = state.round(d3); + d2 = state.round(d2); } - fv.setRelative(p2, HPZero, d3, pv); + fv.setRelative(p, HPZero, d2, pv); if (state.zp0 === 0) { - p2.xo = p2.x; - p2.yo = p2.y; + p.xo = p.x; + p.yo = p.y; } - fv.touch(p2); + fv.touch(p); state.rp0 = state.rp1 = pi; } function NPUSHB(state) { var prog = state.prog; var ip = state.ip; var stack = state.stack; - var n2 = prog[++ip]; + var n = prog[++ip]; if (exports.DEBUG) { - console.log(state.step, "NPUSHB[]", n2); + console.log(state.step, "NPUSHB[]", n); } - for (var i2 = 0; i2 < n2; i2++) { + for (var i = 0; i < n; i++) { stack.push(prog[++ip]); } state.ip = ip; @@ -20489,16 +14343,16 @@ function NPUSHW(state) { var ip = state.ip; var prog = state.prog; var stack = state.stack; - var n2 = prog[++ip]; + var n = prog[++ip]; if (exports.DEBUG) { - console.log(state.step, "NPUSHW[]", n2); + console.log(state.step, "NPUSHW[]", n); } - for (var i2 = 0; i2 < n2; i2++) { - var w3 = prog[++ip] << 8 | prog[++ip]; - if (w3 & 32768) { - w3 = -((w3 ^ 65535) + 1); + for (var i = 0; i < n; i++) { + var w2 = prog[++ip] << 8 | prog[++ip]; + if (w2 & 32768) { + w2 = -((w2 ^ 65535) + 1); } - stack.push(w3); + stack.push(w2); } state.ip = ip; } @@ -20508,31 +14362,31 @@ function WS(state) { if (!store) { store = state.store = []; } - var v3 = stack.pop(); - var l3 = stack.pop(); + var v2 = stack.pop(); + var l2 = stack.pop(); if (exports.DEBUG) { - console.log(state.step, "WS", v3, l3); + console.log(state.step, "WS", v2, l2); } - store[l3] = v3; + store[l2] = v2; } function RS(state) { var stack = state.stack; var store = state.store; - var l3 = stack.pop(); + var l2 = stack.pop(); if (exports.DEBUG) { - console.log(state.step, "RS", l3); + console.log(state.step, "RS", l2); } - var v3 = store && store[l3] || 0; - stack.push(v3); + var v2 = store && store[l2] || 0; + stack.push(v2); } function WCVTP(state) { var stack = state.stack; - var v3 = stack.pop(); - var l3 = stack.pop(); + var v2 = stack.pop(); + var l2 = stack.pop(); if (exports.DEBUG) { - console.log(state.step, "WCVTP", v3, l3); + console.log(state.step, "WCVTP", v2, l2); } - state.cvt[l3] = v3 / 64; + state.cvt[l2] = v2 / 64; } function RCVT(state) { var stack = state.stack; @@ -20542,26 +14396,26 @@ function RCVT(state) { } stack.push(state.cvt[cvte] * 64); } -function GC(a2, state) { +function GC(a, state) { var stack = state.stack; var pi = stack.pop(); - var p2 = state.z2[pi]; + var p = state.z2[pi]; if (exports.DEBUG) { - console.log(state.step, "GC[" + a2 + "]", pi); + console.log(state.step, "GC[" + a + "]", pi); } - stack.push(state.dpv.distance(p2, HPZero, a2, false) * 64); + stack.push(state.dpv.distance(p, HPZero, a, false) * 64); } -function MD(a2, state) { +function MD(a, state) { var stack = state.stack; var pi2 = stack.pop(); var pi1 = stack.pop(); var p2 = state.z1[pi2]; var p1 = state.z0[pi1]; - var d3 = state.dpv.distance(p1, p2, a2, a2); + var d2 = state.dpv.distance(p1, p2, a, a); if (exports.DEBUG) { - console.log(state.step, "MD[" + a2 + "]", pi2, pi1, "->", d3); + console.log(state.step, "MD[" + a + "]", pi2, pi1, "->", d2); } - state.stack.push(Math.round(d3 * 64)); + state.stack.push(Math.round(d2 * 64)); } function MPPEM(state) { if (exports.DEBUG) { @@ -20631,19 +14485,19 @@ function NEQ(state) { } function ODD(state) { var stack = state.stack; - var n2 = stack.pop(); + var n = stack.pop(); if (exports.DEBUG) { - console.log(state.step, "ODD[]", n2); + console.log(state.step, "ODD[]", n); } - stack.push(Math.trunc(n2) % 2 ? 1 : 0); + stack.push(Math.trunc(n) % 2 ? 1 : 0); } function EVEN(state) { var stack = state.stack; - var n2 = stack.pop(); + var n = stack.pop(); if (exports.DEBUG) { - console.log(state.step, "EVEN[]", n2); + console.log(state.step, "EVEN[]", n); } - stack.push(Math.trunc(n2) % 2 ? 0 : 1); + stack.push(Math.trunc(n) % 2 ? 0 : 1); } function IF(state) { var test = state.stack.pop(); @@ -20682,25 +14536,25 @@ function OR(state) { } function NOT(state) { var stack = state.stack; - var e2 = stack.pop(); + var e = stack.pop(); if (exports.DEBUG) { - console.log(state.step, "NOT[]", e2); + console.log(state.step, "NOT[]", e); } - stack.push(e2 ? 0 : 1); + stack.push(e ? 0 : 1); } -function DELTAP123(b2, state) { +function DELTAP123(b, state) { var stack = state.stack; - var n2 = stack.pop(); + var n = stack.pop(); var fv = state.fv; var pv = state.pv; var ppem = state.ppem; - var base = state.deltaBase + (b2 - 1) * 16; + var base = state.deltaBase + (b - 1) * 16; var ds = state.deltaShift; var z0 = state.z0; if (exports.DEBUG) { - console.log(state.step, "DELTAP[" + b2 + "]", n2, stack); + console.log(state.step, "DELTAP[" + b + "]", n, stack); } - for (var i2 = 0; i2 < n2; i2++) { + for (var i = 0; i < n; i++) { var pi = stack.pop(); var arg = stack.pop(); var appem = base + ((arg & 240) >> 4); @@ -20714,25 +14568,25 @@ function DELTAP123(b2, state) { if (exports.DEBUG) { console.log(state.step, "DELTAPFIX", pi, "by", mag * ds); } - var p2 = z0[pi]; - fv.setRelative(p2, p2, mag * ds, pv); + var p = z0[pi]; + fv.setRelative(p, p, mag * ds, pv); } } function SDB(state) { var stack = state.stack; - var n2 = stack.pop(); + var n = stack.pop(); if (exports.DEBUG) { - console.log(state.step, "SDB[]", n2); + console.log(state.step, "SDB[]", n); } - state.deltaBase = n2; + state.deltaBase = n; } function SDS(state) { var stack = state.stack; - var n2 = stack.pop(); + var n = stack.pop(); if (exports.DEBUG) { - console.log(state.step, "SDS[]", n2); + console.log(state.step, "SDS[]", n); } - state.deltaShift = Math.pow(0.5, n2); + state.deltaShift = Math.pow(0.5, n); } function ADD(state) { var stack = state.stack; @@ -20772,64 +14626,64 @@ function MUL(state) { } function ABS(state) { var stack = state.stack; - var n2 = stack.pop(); + var n = stack.pop(); if (exports.DEBUG) { - console.log(state.step, "ABS[]", n2); + console.log(state.step, "ABS[]", n); } - stack.push(Math.abs(n2)); + stack.push(Math.abs(n)); } function NEG(state) { var stack = state.stack; - var n2 = stack.pop(); + var n = stack.pop(); if (exports.DEBUG) { - console.log(state.step, "NEG[]", n2); + console.log(state.step, "NEG[]", n); } - stack.push(-n2); + stack.push(-n); } function FLOOR(state) { var stack = state.stack; - var n2 = stack.pop(); + var n = stack.pop(); if (exports.DEBUG) { - console.log(state.step, "FLOOR[]", n2); + console.log(state.step, "FLOOR[]", n); } - stack.push(Math.floor(n2 / 64) * 64); + stack.push(Math.floor(n / 64) * 64); } function CEILING(state) { var stack = state.stack; - var n2 = stack.pop(); + var n = stack.pop(); if (exports.DEBUG) { - console.log(state.step, "CEILING[]", n2); + console.log(state.step, "CEILING[]", n); } - stack.push(Math.ceil(n2 / 64) * 64); + stack.push(Math.ceil(n / 64) * 64); } function ROUND(dt, state) { var stack = state.stack; - var n2 = stack.pop(); + var n = stack.pop(); if (exports.DEBUG) { console.log(state.step, "ROUND[]"); } - stack.push(state.round(n2 / 64) * 64); + stack.push(state.round(n / 64) * 64); } function WCVTF(state) { var stack = state.stack; - var v3 = stack.pop(); - var l3 = stack.pop(); + var v2 = stack.pop(); + var l2 = stack.pop(); if (exports.DEBUG) { - console.log(state.step, "WCVTF[]", v3, l3); + console.log(state.step, "WCVTF[]", v2, l2); } - state.cvt[l3] = v3 * state.ppem / state.font.unitsPerEm; + state.cvt[l2] = v2 * state.ppem / state.font.unitsPerEm; } -function DELTAC123(b2, state) { +function DELTAC123(b, state) { var stack = state.stack; - var n2 = stack.pop(); + var n = stack.pop(); var ppem = state.ppem; - var base = state.deltaBase + (b2 - 1) * 16; + var base = state.deltaBase + (b - 1) * 16; var ds = state.deltaShift; if (exports.DEBUG) { - console.log(state.step, "DELTAC[" + b2 + "]", n2, stack); + console.log(state.step, "DELTAC[" + b + "]", n, stack); } - for (var i2 = 0; i2 < n2; i2++) { - var c3 = stack.pop(); + for (var i = 0; i < n; i++) { + var c2 = stack.pop(); var arg = stack.pop(); var appem = base + ((arg & 240) >> 4); if (appem !== ppem) { @@ -20841,19 +14695,19 @@ function DELTAC123(b2, state) { } var delta = mag * ds; if (exports.DEBUG) { - console.log(state.step, "DELTACFIX", c3, "by", delta); + console.log(state.step, "DELTACFIX", c2, "by", delta); } - state.cvt[c3] += delta; + state.cvt[c2] += delta; } } function SROUND(state) { - var n2 = state.stack.pop(); + var n = state.stack.pop(); if (exports.DEBUG) { - console.log(state.step, "SROUND[]", n2); + console.log(state.step, "SROUND[]", n); } state.round = roundSuper; var period; - switch (n2 & 192) { + switch (n & 192) { case 0: period = 0.5; break; @@ -20867,7 +14721,7 @@ function SROUND(state) { throw new Error("invalid SROUND value"); } state.srPeriod = period; - switch (n2 & 48) { + switch (n & 48) { case 0: state.srPhase = 0; break; @@ -20883,21 +14737,21 @@ function SROUND(state) { default: throw new Error("invalid SROUND value"); } - n2 &= 15; - if (n2 === 0) { + n &= 15; + if (n === 0) { state.srThreshold = 0; } else { - state.srThreshold = (n2 / 8 - 0.5) * period; + state.srThreshold = (n / 8 - 0.5) * period; } } function S45ROUND(state) { - var n2 = state.stack.pop(); + var n = state.stack.pop(); if (exports.DEBUG) { - console.log(state.step, "S45ROUND[]", n2); + console.log(state.step, "S45ROUND[]", n); } state.round = roundSuper; var period; - switch (n2 & 192) { + switch (n & 192) { case 0: period = Math.sqrt(2) / 2; break; @@ -20911,7 +14765,7 @@ function S45ROUND(state) { throw new Error("invalid S45ROUND value"); } state.srPeriod = period; - switch (n2 & 48) { + switch (n & 48) { case 0: state.srPhase = 0; break; @@ -20927,11 +14781,11 @@ function S45ROUND(state) { default: throw new Error("invalid S45ROUND value"); } - n2 &= 15; - if (n2 === 0) { + n &= 15; + if (n === 0) { state.srThreshold = 0; } else { - state.srThreshold = (n2 / 8 - 0.5) * period; + state.srThreshold = (n / 8 - 0.5) * period; } } function ROFF(state) { @@ -20953,23 +14807,23 @@ function RDTG(state) { state.round = roundDownToGrid; } function SCANCTRL(state) { - var n2 = state.stack.pop(); + var n = state.stack.pop(); if (exports.DEBUG) { - console.log(state.step, "SCANCTRL[]", n2); + console.log(state.step, "SCANCTRL[]", n); } } -function SDPVTL(a2, state) { +function SDPVTL(a, state) { var stack = state.stack; var p2i = stack.pop(); var p1i = stack.pop(); var p2 = state.z2[p2i]; var p1 = state.z1[p1i]; if (exports.DEBUG) { - console.log(state.step, "SDPVTL[" + a2 + "]", p2i, p1i); + console.log(state.step, "SDPVTL[" + a + "]", p2i, p1i); } var dx; var dy; - if (!a2) { + if (!a) { dx = p1.x - p2.x; dy = p1.y - p2.y; } else { @@ -20981,29 +14835,29 @@ function SDPVTL(a2, state) { function GETINFO(state) { var stack = state.stack; var sel = stack.pop(); - var r2 = 0; + var r = 0; if (exports.DEBUG) { console.log(state.step, "GETINFO[]", sel); } if (sel & 1) { - r2 = 35; + r = 35; } if (sel & 32) { - r2 |= 4096; + r |= 4096; } - stack.push(r2); + stack.push(r); } function ROLL(state) { var stack = state.stack; - var a2 = stack.pop(); - var b2 = stack.pop(); - var c3 = stack.pop(); + var a = stack.pop(); + var b = stack.pop(); + var c2 = stack.pop(); if (exports.DEBUG) { console.log(state.step, "ROLL[]"); } - stack.push(b2); - stack.push(a2); - stack.push(c3); + stack.push(b); + stack.push(a); + stack.push(c2); } function MAX(state) { var stack = state.stack; @@ -21024,53 +14878,53 @@ function MIN(state) { stack.push(Math.min(e1, e2)); } function SCANTYPE(state) { - var n2 = state.stack.pop(); + var n = state.stack.pop(); if (exports.DEBUG) { - console.log(state.step, "SCANTYPE[]", n2); + console.log(state.step, "SCANTYPE[]", n); } } function INSTCTRL(state) { - var s2 = state.stack.pop(); - var v3 = state.stack.pop(); + var s = state.stack.pop(); + var v2 = state.stack.pop(); if (exports.DEBUG) { - console.log(state.step, "INSTCTRL[]", s2, v3); + console.log(state.step, "INSTCTRL[]", s, v2); } - switch (s2) { + switch (s) { case 1: - state.inhibitGridFit = !!v3; + state.inhibitGridFit = !!v2; return; case 2: - state.ignoreCvt = !!v3; + state.ignoreCvt = !!v2; return; default: throw new Error("invalid INSTCTRL[] selector"); } } -function PUSHB(n2, state) { +function PUSHB(n, state) { var stack = state.stack; var prog = state.prog; var ip = state.ip; if (exports.DEBUG) { - console.log(state.step, "PUSHB[" + n2 + "]"); + console.log(state.step, "PUSHB[" + n + "]"); } - for (var i2 = 0; i2 < n2; i2++) { + for (var i = 0; i < n; i++) { stack.push(prog[++ip]); } state.ip = ip; } -function PUSHW(n2, state) { +function PUSHW(n, state) { var ip = state.ip; var prog = state.prog; var stack = state.stack; if (exports.DEBUG) { - console.log(state.ip, "PUSHW[" + n2 + "]"); + console.log(state.ip, "PUSHW[" + n + "]"); } - for (var i2 = 0; i2 < n2; i2++) { - var w3 = prog[++ip] << 8 | prog[++ip]; - if (w3 & 32768) { - w3 = -((w3 ^ 65535) + 1); + for (var i = 0; i < n; i++) { + var w2 = prog[++ip] << 8 | prog[++ip]; + if (w2 & 32768) { + w2 = -((w2 ^ 65535) + 1); } - stack.push(w3); + stack.push(w2); } state.ip = ip; } @@ -21080,31 +14934,31 @@ function MDRP_MIRP(indirect, setRp0, keepD, ro, dt, state) { var pi = stack.pop(); var rp0i = state.rp0; var rp = state.z0[rp0i]; - var p2 = state.z1[pi]; + var p = state.z1[pi]; var md = state.minDis; var fv = state.fv; var pv = state.dpv; var od; - var d3; + var d2; var sign; var cv; - d3 = od = pv.distance(p2, rp, true, true); - sign = d3 >= 0 ? 1 : -1; - d3 = Math.abs(d3); + d2 = od = pv.distance(p, rp, true, true); + sign = d2 >= 0 ? 1 : -1; + d2 = Math.abs(d2); if (indirect) { cv = state.cvt[cvte]; - if (ro && Math.abs(d3 - cv) < state.cvCutIn) { - d3 = cv; + if (ro && Math.abs(d2 - cv) < state.cvCutIn) { + d2 = cv; } } - if (keepD && d3 < md) { - d3 = md; + if (keepD && d2 < md) { + d2 = md; } if (ro) { - d3 = state.round(d3); + d2 = state.round(d2); } - fv.setRelative(p2, rp, sign * d3, pv); - fv.touch(p2); + fv.setRelative(p, rp, sign * d2, pv); + fv.touch(p); if (exports.DEBUG) { console.log( state.step, @@ -21114,7 +14968,7 @@ function MDRP_MIRP(indirect, setRp0, keepD, ro, dt, state) { "(d =", od, "->", - sign * d3, + sign * d2, ")" ); } @@ -21963,8 +15817,8 @@ Tokenizer.prototype.updateContextsRanges = function() { var chars = this.tokens.map(function(token) { return token.char; }); - for (var i2 = 0; i2 < chars.length; i2++) { - var contextParams = new ContextParams(chars, i2); + for (var i = 0; i < chars.length; i++) { + var contextParams = new ContextParams(chars, i); this.runContextCheck(contextParams); } this.dispatch("updateContextsRanges", [this.registeredContexts]); @@ -22001,9 +15855,9 @@ Tokenizer.prototype.tokenize = function(text) { this.resetContextsRanges(); var chars = Array.from(text); this.dispatch("start"); - for (var i2 = 0; i2 < chars.length; i2++) { - var char = chars[i2]; - var contextParams = new ContextParams(chars, i2); + for (var i = 0; i < chars.length; i++) { + var char = chars[i]; + var contextParams = new ContextParams(chars, i); this.dispatch("next", [contextParams]); this.runContextCheck(contextParams); var token = new Token(char); @@ -22013,8 +15867,8 @@ Tokenizer.prototype.tokenize = function(text) { this.dispatch("end", [this.tokens]); return this.tokens; }; -function isArabicChar(c3) { - return /[\u0600-\u065F\u066A-\u06D2\u06FA-\u06FF]/.test(c3); +function isArabicChar(c2) { + return /[\u0600-\u065F\u066A-\u06D2\u06FA-\u06FF]/.test(c2); } function isIsolatedArabicChar(char) { return /[\u0630\u0690\u0621\u0631\u0661\u0671\u0622\u0632\u0672\u0692\u06C2\u0623\u0673\u0693\u06C3\u0624\u0694\u06C4\u0625\u0675\u0695\u06C5\u06E5\u0676\u0696\u06C6\u0627\u0677\u0697\u06C7\u0648\u0688\u0698\u06C8\u0689\u0699\u06C9\u068A\u06CA\u066B\u068B\u06CB\u068C\u068D\u06CD\u06FD\u068E\u06EE\u06FE\u062F\u068F\u06CF\u06EF]/.test(char); @@ -22022,11 +15876,11 @@ function isIsolatedArabicChar(char) { function isTashkeelArabicChar(char) { return /[\u0600-\u0605\u060C-\u060E\u0610-\u061B\u061E\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED]/.test(char); } -function isLatinChar(c3) { - return /[A-z]/.test(c3); +function isLatinChar(c2) { + return /[A-z]/.test(c2); } -function isWhiteSpace(c3) { - return /\s/.test(c3); +function isWhiteSpace(c2) { + return /\s/.test(c2); } function FeatureQuery(font) { this.font = font; @@ -22046,8 +15900,8 @@ function lookupCoverage(glyphIndex, coverage) { return coverage.glyphs.indexOf(glyphIndex); case 2: var ranges = coverage.ranges; - for (var i2 = 0; i2 < ranges.length; i2++) { - var range = ranges[i2]; + for (var i = 0; i < ranges.length; i++) { + var range = ranges[i]; if (glyphIndex >= range.start && glyphIndex <= range.end) { var offset = glyphIndex - range.start; return range.index + offset; @@ -22075,8 +15929,8 @@ function singleSubstitutionFormat2(glyphIndex, subtable) { } function lookupCoverageList(coverageList, contextParams) { var lookupList = []; - for (var i2 = 0; i2 < coverageList.length; i2++) { - var coverage = coverageList[i2]; + for (var i = 0; i < coverageList.length; i++) { + var coverage = coverageList[i]; var glyphIndex = contextParams.current; glyphIndex = Array.isArray(glyphIndex) ? glyphIndex[0] : glyphIndex; var lookupIndex = lookupCoverage(glyphIndex, coverage); @@ -22130,17 +15984,17 @@ function chainingSubstitutionFormat3(contextParams, subtable) { var contextRulesMatch = inputLookups.length === subtable.inputCoverage.length && lookaheadLookups.length === subtable.lookaheadCoverage.length && backtrackLookups.length === subtable.backtrackCoverage.length; var substitutions = []; if (contextRulesMatch) { - for (var i2 = 0; i2 < subtable.lookupRecords.length; i2++) { - var lookupRecord = subtable.lookupRecords[i2]; + for (var i = 0; i < subtable.lookupRecords.length; i++) { + var lookupRecord = subtable.lookupRecords[i]; var lookupListIndex = lookupRecord.lookupListIndex; var lookupTable = this.getLookupByIndex(lookupListIndex); - for (var s2 = 0; s2 < lookupTable.subtables.length; s2++) { - var subtable$1 = lookupTable.subtables[s2]; + for (var s = 0; s < lookupTable.subtables.length; s++) { + var subtable$1 = lookupTable.subtables[s]; var lookup = this.getLookupMethod(lookupTable, subtable$1); var substitutionType = this.getSubstitutionType(lookupTable, subtable$1); if (substitutionType === "12") { - for (var n2 = 0; n2 < inputLookups.length; n2++) { - var glyphIndex = contextParams.get(n2); + for (var n = 0; n < inputLookups.length; n++) { + var glyphIndex = contextParams.get(n); var substitution = lookup(glyphIndex); if (substitution) { substitutions.push(substitution); @@ -22160,15 +16014,15 @@ function ligatureSubstitutionFormat1(contextParams, subtable) { } var ligature; var ligatureSet = subtable.ligatureSets[ligSetIndex]; - for (var s2 = 0; s2 < ligatureSet.length; s2++) { - ligature = ligatureSet[s2]; - for (var l3 = 0; l3 < ligature.components.length; l3++) { - var lookaheadItem = contextParams.lookahead[l3]; - var component = ligature.components[l3]; + for (var s = 0; s < ligatureSet.length; s++) { + ligature = ligatureSet[s]; + for (var l2 = 0; l2 < ligature.components.length; l2++) { + var lookaheadItem = contextParams.lookahead[l2]; + var component = ligature.components[l2]; if (lookaheadItem !== component) { break; } - if (l3 === ligature.components.length - 1) { + if (l2 === ligature.components.length - 1) { return ligature; } } @@ -22184,8 +16038,8 @@ function decompositionSubstitutionFormat1(glyphIndex, subtable) { } FeatureQuery.prototype.getDefaultScriptFeaturesIndexes = function() { var scripts = this.font.tables.gsub.scripts; - for (var s2 = 0; s2 < scripts.length; s2++) { - var script = scripts[s2]; + for (var s = 0; s < scripts.length; s++) { + var script = scripts[s]; if (script.tag === "DFLT") { return script.script.defaultLangSys.featureIndexes; } @@ -22201,15 +16055,15 @@ FeatureQuery.prototype.getScriptFeaturesIndexes = function(scriptTag) { return this.getDefaultScriptFeaturesIndexes(); } var scripts = this.font.tables.gsub.scripts; - for (var i2 = 0; i2 < scripts.length; i2++) { - var script = scripts[i2]; + for (var i = 0; i < scripts.length; i++) { + var script = scripts[i]; if (script.tag === scriptTag && script.script.defaultLangSys) { return script.script.defaultLangSys.featureIndexes; } else { var langSysRecords = script.langSysRecords; if (!!langSysRecords) { - for (var j2 = 0; j2 < langSysRecords.length; j2++) { - var langSysRecord = langSysRecords[j2]; + for (var j = 0; j < langSysRecords.length; j++) { + var langSysRecord = langSysRecords[j]; if (langSysRecord.tag === scriptTag) { var langSys = langSysRecord.langSys; return langSys.featureIndexes; @@ -22222,9 +16076,9 @@ FeatureQuery.prototype.getScriptFeaturesIndexes = function(scriptTag) { }; FeatureQuery.prototype.mapTagsToFeatures = function(features, scriptTag) { var tags = {}; - for (var i2 = 0; i2 < features.length; i2++) { - var tag = features[i2].tag; - var feature = features[i2].feature; + for (var i = 0; i < features.length; i++) { + var tag = features[i].tag; + var feature = features[i].feature; tags[tag] = feature; } this.features[scriptTag].tags = tags; @@ -22310,11 +16164,11 @@ FeatureQuery.prototype.lookupFeature = function(query) { } var lookups = this.getFeatureLookups(feature); var substitutions = [].concat(contextParams.context); - for (var l3 = 0; l3 < lookups.length; l3++) { - var lookupTable = lookups[l3]; + for (var l2 = 0; l2 < lookups.length; l2++) { + var lookupTable = lookups[l2]; var subtables = this.getLookupSubtables(lookupTable); - for (var s2 = 0; s2 < subtables.length; s2++) { - var subtable = subtables[s2]; + for (var s = 0; s < subtables.length; s++) { + var subtable = subtables[s]; var substType = this.getSubstitutionType(lookupTable, subtable); var lookup = this.getLookupMethod(lookupTable, subtable); var substitution = void 0; @@ -22461,8 +16315,8 @@ function arabicSentenceEndCheck(contextParams) { if (nextIsWhitespace) { var arabicCharAhead = false; arabicCharAhead = contextParams.lookahead.some( - function(c3) { - return isArabicChar(c3) || isTashkeelArabicChar(c3); + function(c2) { + return isArabicChar(c2) || isTashkeelArabicChar(c2); } ); if (!arabicCharAhead) { @@ -22494,8 +16348,8 @@ function ligatureSubstitutionFormat1$1(action, tokens, index) { var token = tokens[index]; token.setState(action.tag, action.substitution.ligGlyph); var compsCount = action.substitution.components.length; - for (var i2 = 0; i2 < compsCount; i2++) { - token = tokens[index + i2 + 1]; + for (var i = 0; i < compsCount; i++) { + token = tokens[index + i + 1]; token.setState("deleted", true); } } @@ -22512,8 +16366,8 @@ function applySubstitution(action, tokens, index) { } function willConnectPrev(charContextParams) { var backtrack = [].concat(charContextParams.backtrack); - for (var i2 = backtrack.length - 1; i2 >= 0; i2--) { - var prevChar = backtrack[i2]; + for (var i = backtrack.length - 1; i >= 0; i--) { + var prevChar = backtrack[i]; var isolated = isIsolatedArabicChar(prevChar); var tashkeel = isTashkeelArabicChar(prevChar); if (!isolated && !tashkeel) { @@ -22529,8 +16383,8 @@ function willConnectNext(charContextParams) { if (isIsolatedArabicChar(charContextParams.current)) { return false; } - for (var i2 = 0; i2 < charContextParams.lookahead.length; i2++) { - var nextChar = charContextParams.lookahead[i2]; + for (var i = 0; i < charContextParams.lookahead.length; i++) { + var nextChar = charContextParams.lookahead[i]; var tashkeel = isTashkeelArabicChar(nextChar); if (!tashkeel) { return true; @@ -22744,8 +16598,8 @@ Bidi.prototype.applyFeatures = function(font, features) { if (!this.query) { this.query = new FeatureQuery(font); } - for (var f3 = 0; f3 < features.length; f3++) { - var feature = features[f3]; + for (var f = 0; f < features.length; f++) { + var feature = features[f]; if (!this.query.supports({ script: feature.script })) { continue; } @@ -22835,8 +16689,8 @@ Bidi.prototype.getBidiText = function(text) { Bidi.prototype.getTextGlyphs = function(text) { this.processText(text); var indexes = []; - for (var i2 = 0; i2 < this.tokenizer.tokens.length; i2++) { - var token = this.tokenizer.tokens[i2]; + for (var i = 0; i < this.tokenizer.tokens.length; i++) { + var token = this.tokenizer.tokens[i]; if (token.state.deleted) { continue; } @@ -22903,14 +16757,14 @@ function Font(options) { } }); } -Font.prototype.hasChar = function(c3) { - return this.encoding.charToGlyphIndex(c3) !== null; +Font.prototype.hasChar = function(c2) { + return this.encoding.charToGlyphIndex(c2) !== null; }; -Font.prototype.charToGlyphIndex = function(s2) { - return this.encoding.charToGlyphIndex(s2); +Font.prototype.charToGlyphIndex = function(s) { + return this.encoding.charToGlyphIndex(s); }; -Font.prototype.charToGlyph = function(c3) { - var glyphIndex = this.charToGlyphIndex(c3); +Font.prototype.charToGlyph = function(c2) { + var glyphIndex = this.charToGlyphIndex(c2); var glyph = this.glyphs.get(glyphIndex); if (!glyph) { glyph = this.glyphs.get(0); @@ -22931,7 +16785,7 @@ Font.prototype.updateFeatures = function(options) { } }); }; -Font.prototype.stringToGlyphs = function(s2, options) { +Font.prototype.stringToGlyphs = function(s, options) { var this$1$1 = this; var bidi = new Bidi(); var charToGlyphIndexMod = function(token) { @@ -22940,12 +16794,12 @@ Font.prototype.stringToGlyphs = function(s2, options) { bidi.registerModifier("glyphIndex", null, charToGlyphIndexMod); var features = options ? this.updateFeatures(options.features) : this.defaultRenderOptions.features; bidi.applyFeatures(this, features); - var indexes = bidi.getTextGlyphs(s2); + var indexes = bidi.getTextGlyphs(s); var length = indexes.length; var glyphs = new Array(length); var notdef = this.glyphs.get(0); - for (var i2 = 0; i2 < length; i2 += 1) { - glyphs[i2] = this.glyphs.get(indexes[i2]) || notdef; + for (var i = 0; i < length; i += 1) { + glyphs[i] = this.glyphs.get(indexes[i]) || notdef; } return glyphs; }; @@ -22973,9 +16827,9 @@ Font.prototype.defaultRenderOptions = { { script: "latn", tags: ["liga", "rlig"] } ] }; -Font.prototype.forEachGlyph = function(text, x3, y2, fontSize, options, callback) { - x3 = x3 !== void 0 ? x3 : 0; - y2 = y2 !== void 0 ? y2 : 0; +Font.prototype.forEachGlyph = function(text, x2, y, fontSize, options, callback) { + x2 = x2 !== void 0 ? x2 : 0; + y = y !== void 0 ? y : 0; fontSize = fontSize !== void 0 ? fontSize : 72; options = Object.assign({}, this.defaultRenderOptions, options); var fontScale = 1 / this.unitsPerEm * fontSize; @@ -22988,34 +16842,34 @@ Font.prototype.forEachGlyph = function(text, x3, y2, fontSize, options, callback options.language ); } - for (var i2 = 0; i2 < glyphs.length; i2 += 1) { - var glyph = glyphs[i2]; - callback.call(this, glyph, x3, y2, fontSize, options); + for (var i = 0; i < glyphs.length; i += 1) { + var glyph = glyphs[i]; + callback.call(this, glyph, x2, y, fontSize, options); if (glyph.advanceWidth) { - x3 += glyph.advanceWidth * fontScale; + x2 += glyph.advanceWidth * fontScale; } - if (options.kerning && i2 < glyphs.length - 1) { + if (options.kerning && i < glyphs.length - 1) { var kerningValue = kerningLookups ? this.position.getKerningValue( kerningLookups, glyph.index, - glyphs[i2 + 1].index - ) : this.getKerningValue(glyph, glyphs[i2 + 1]); - x3 += kerningValue * fontScale; + glyphs[i + 1].index + ) : this.getKerningValue(glyph, glyphs[i + 1]); + x2 += kerningValue * fontScale; } if (options.letterSpacing) { - x3 += options.letterSpacing * fontSize; + x2 += options.letterSpacing * fontSize; } else if (options.tracking) { - x3 += options.tracking / 1e3 * fontSize; + x2 += options.tracking / 1e3 * fontSize; } } - return x3; + return x2; }; -Font.prototype.getPath = function(text, x3, y2, fontSize, options) { +Font.prototype.getPath = function(text, x2, y, fontSize, options) { var fullPath = new Path(); this.forEachGlyph( text, - x3, - y2, + x2, + y, fontSize, options, function(glyph, gX, gY, gFontSize) { @@ -23025,12 +16879,12 @@ Font.prototype.getPath = function(text, x3, y2, fontSize, options) { ); return fullPath; }; -Font.prototype.getPaths = function(text, x3, y2, fontSize, options) { +Font.prototype.getPaths = function(text, x2, y, fontSize, options) { var glyphPaths = []; this.forEachGlyph( text, - x3, - y2, + x2, + y, fontSize, options, function(glyph, gX, gY, gFontSize) { @@ -23088,29 +16942,29 @@ Font.prototype.usWeightClasses = { EXTRA_BOLD: 800, BLACK: 900 }; -function parseCmapTableFormat12(cmap2, p2) { - p2.parseUShort(); - cmap2.length = p2.parseULong(); - cmap2.language = p2.parseULong(); +function parseCmapTableFormat12(cmap2, p) { + p.parseUShort(); + cmap2.length = p.parseULong(); + cmap2.language = p.parseULong(); var groupCount; - cmap2.groupCount = groupCount = p2.parseULong(); + cmap2.groupCount = groupCount = p.parseULong(); cmap2.glyphIndexMap = {}; - for (var i2 = 0; i2 < groupCount; i2 += 1) { - var startCharCode = p2.parseULong(); - var endCharCode = p2.parseULong(); - var startGlyphId = p2.parseULong(); - for (var c3 = startCharCode; c3 <= endCharCode; c3 += 1) { - cmap2.glyphIndexMap[c3] = startGlyphId; + for (var i = 0; i < groupCount; i += 1) { + var startCharCode = p.parseULong(); + var endCharCode = p.parseULong(); + var startGlyphId = p.parseULong(); + for (var c2 = startCharCode; c2 <= endCharCode; c2 += 1) { + cmap2.glyphIndexMap[c2] = startGlyphId; startGlyphId++; } } } -function parseCmapTableFormat4(cmap2, p2, data, start, offset) { - cmap2.length = p2.parseUShort(); - cmap2.language = p2.parseUShort(); +function parseCmapTableFormat4(cmap2, p, data, start, offset) { + cmap2.length = p.parseUShort(); + cmap2.language = p.parseUShort(); var segCount; - cmap2.segCount = segCount = p2.parseUShort() >> 1; - p2.skip("uShort", 3); + cmap2.segCount = segCount = p.parseUShort() >> 1; + p.skip("uShort", 3); cmap2.glyphIndexMap = {}; var endCountParser = new parse.Parser(data, start + offset + 14); var startCountParser = new parse.Parser( @@ -23126,25 +16980,25 @@ function parseCmapTableFormat4(cmap2, p2, data, start, offset) { start + offset + 16 + segCount * 6 ); var glyphIndexOffset = start + offset + 16 + segCount * 8; - for (var i2 = 0; i2 < segCount - 1; i2 += 1) { + for (var i = 0; i < segCount - 1; i += 1) { var glyphIndex = void 0; var endCount = endCountParser.parseUShort(); var startCount = startCountParser.parseUShort(); var idDelta = idDeltaParser.parseShort(); var idRangeOffset = idRangeOffsetParser.parseUShort(); - for (var c3 = startCount; c3 <= endCount; c3 += 1) { + for (var c2 = startCount; c2 <= endCount; c2 += 1) { if (idRangeOffset !== 0) { glyphIndexOffset = idRangeOffsetParser.offset + idRangeOffsetParser.relativeOffset - 2; glyphIndexOffset += idRangeOffset; - glyphIndexOffset += (c3 - startCount) * 2; + glyphIndexOffset += (c2 - startCount) * 2; glyphIndex = parse.getUShort(data, glyphIndexOffset); if (glyphIndex !== 0) { glyphIndex = glyphIndex + idDelta & 65535; } } else { - glyphIndex = c3 + idDelta & 65535; + glyphIndex = c2 + idDelta & 65535; } - cmap2.glyphIndexMap[c3] = glyphIndex; + cmap2.glyphIndexMap[c2] = glyphIndex; } } } @@ -23154,23 +17008,23 @@ function parseCmapTable(data, start) { check.argument(cmap2.version === 0, "cmap table version should be 0."); cmap2.numTables = parse.getUShort(data, start + 2); var offset = -1; - for (var i2 = cmap2.numTables - 1; i2 >= 0; i2 -= 1) { - var platformId = parse.getUShort(data, start + 4 + i2 * 8); - var encodingId = parse.getUShort(data, start + 4 + i2 * 8 + 2); + for (var i = cmap2.numTables - 1; i >= 0; i -= 1) { + var platformId = parse.getUShort(data, start + 4 + i * 8); + var encodingId = parse.getUShort(data, start + 4 + i * 8 + 2); if (platformId === 3 && (encodingId === 0 || encodingId === 1 || encodingId === 10) || platformId === 0 && (encodingId === 0 || encodingId === 1 || encodingId === 2 || encodingId === 3 || encodingId === 4)) { - offset = parse.getULong(data, start + 4 + i2 * 8 + 4); + offset = parse.getULong(data, start + 4 + i * 8 + 4); break; } } if (offset === -1) { throw new Error("No valid cmap sub-tables found."); } - var p2 = new parse.Parser(data, start + offset); - cmap2.format = p2.parseUShort(); + var p = new parse.Parser(data, start + offset); + cmap2.format = p.parseUShort(); if (cmap2.format === 12) { - parseCmapTableFormat12(cmap2, p2); + parseCmapTableFormat12(cmap2, p); } else if (cmap2.format === 4) { - parseCmapTableFormat4(cmap2, p2, data, start, offset); + parseCmapTableFormat4(cmap2, p, data, start, offset); } else { throw new Error( "Only format 4 and 12 cmap tables are supported (found format " + cmap2.format + ")." @@ -23200,7 +17054,7 @@ function parseCFFIndex(data, start, conversionFn) { var offsetSize = parse.getByte(data, start + 2); objectOffset = start + (count + 1) * offsetSize + 2; var pos = start + 3; - for (var i2 = 0; i2 < count + 1; i2 += 1) { + for (var i = 0; i < count + 1; i += 1) { offsets.push(parse.getOffset(data, pos, offsetSize)); pos += offsetSize; } @@ -23230,7 +17084,7 @@ function parseCFFIndexLowMemory(data, start) { var offsetSize = parse.getByte(data, start + 2); objectOffset = start + (count + 1) * offsetSize + 2; var pos = start + 3; - for (var i2 = 0; i2 < count + 1; i2 += 1) { + for (var i = 0; i < count + 1; i += 1) { offsets.push(parse.getOffset(data, pos, offsetSize)); pos += offsetSize; } @@ -23240,7 +17094,7 @@ function parseCFFIndexLowMemory(data, start) { } return { offsets, startOffset: start, endOffset }; } -function getCffIndexObject(i2, offsets, data, start, conversionFn) { +function getCffIndexObject(i, offsets, data, start, conversionFn) { var count = parse.getCard16(data, start); var objectOffset = 0; if (count !== 0) { @@ -23249,13 +17103,13 @@ function getCffIndexObject(i2, offsets, data, start, conversionFn) { } var value = parse.getBytes( data, - objectOffset + offsets[i2], - objectOffset + offsets[i2 + 1] + objectOffset + offsets[i], + objectOffset + offsets[i + 1] ); return value; } function parseFloatOperand(parser) { - var s2 = ""; + var s = ""; var eof = 15; var lookup = [ "0", @@ -23275,19 +17129,19 @@ function parseFloatOperand(parser) { "-" ]; while (true) { - var b2 = parser.parseByte(); - var n1 = b2 >> 4; - var n2 = b2 & 15; + var b = parser.parseByte(); + var n1 = b >> 4; + var n2 = b & 15; if (n1 === eof) { break; } - s2 += lookup[n1]; + s += lookup[n1]; if (n2 === eof) { break; } - s2 += lookup[n2]; + s += lookup[n2]; } - return parseFloat(s2); + return parseFloat(s); } function parseOperand(parser, b0) { var b1; @@ -23323,22 +17177,22 @@ function parseOperand(parser, b0) { throw new Error("Invalid b0 " + b0); } function entriesToObject(entries) { - var o2 = {}; - for (var i2 = 0; i2 < entries.length; i2 += 1) { - var key = entries[i2][0]; - var values = entries[i2][1]; + var o = {}; + for (var i = 0; i < entries.length; i += 1) { + var key = entries[i][0]; + var values = entries[i][1]; var value = void 0; if (values.length === 1) { value = values[0]; } else { value = values; } - if (o2.hasOwnProperty(key) && !isNaN(o2[key])) { - throw new Error("Object " + o2 + " already has key " + key); + if (o.hasOwnProperty(key) && !isNaN(o[key])) { + throw new Error("Object " + o + " already has key " + key); } - o2[key] = value; + o[key] = value; } - return o2; + return o; } function parseCFFDict(data, start, size) { start = start !== void 0 ? start : 0; @@ -23371,31 +17225,31 @@ function getCFFString(strings, index) { function interpretDict(dict, meta2, strings) { var newDict = {}; var value; - for (var i2 = 0; i2 < meta2.length; i2 += 1) { - var m3 = meta2[i2]; - if (Array.isArray(m3.type)) { + for (var i = 0; i < meta2.length; i += 1) { + var m2 = meta2[i]; + if (Array.isArray(m2.type)) { var values = []; - values.length = m3.type.length; - for (var j2 = 0; j2 < m3.type.length; j2++) { - value = dict[m3.op] !== void 0 ? dict[m3.op][j2] : void 0; + values.length = m2.type.length; + for (var j = 0; j < m2.type.length; j++) { + value = dict[m2.op] !== void 0 ? dict[m2.op][j] : void 0; if (value === void 0) { - value = m3.value !== void 0 && m3.value[j2] !== void 0 ? m3.value[j2] : null; + value = m2.value !== void 0 && m2.value[j] !== void 0 ? m2.value[j] : null; } - if (m3.type[j2] === "SID") { + if (m2.type[j] === "SID") { value = getCFFString(strings, value); } - values[j2] = value; + values[j] = value; } - newDict[m3.name] = values; + newDict[m2.name] = values; } else { - value = dict[m3.op]; + value = dict[m2.op]; if (value === void 0) { - value = m3.value !== void 0 ? m3.value : null; + value = m2.value !== void 0 ? m2.value : null; } - if (m3.type === "SID") { + if (m2.type === "SID") { value = getCFFString(strings, value); } - newDict[m3.name] = value; + newDict[m2.name] = value; } } return newDict; @@ -23507,7 +17361,7 @@ function parseCFFCharset(data, start, nGlyphs, strings) { var charset = [".notdef"]; var format = parser.parseCard8(); if (format === 0) { - for (var i2 = 0; i2 < nGlyphs; i2 += 1) { + for (var i = 0; i < nGlyphs; i += 1) { sid = parser.parseSID(); charset.push(getCFFString(strings, sid)); } @@ -23541,9 +17395,9 @@ function parseCFFEncoding(data, start, charset) { var format = parser.parseCard8(); if (format === 0) { var nCodes = parser.parseCard8(); - for (var i2 = 0; i2 < nCodes; i2 += 1) { + for (var i = 0; i < nCodes; i += 1) { code = parser.parseCard8(); - enc[code] = i2; + enc[code] = i; } } else if (format === 1) { var nRanges = parser.parseCard8(); @@ -23551,8 +17405,8 @@ function parseCFFEncoding(data, start, charset) { for (var i$1 = 0; i$1 < nRanges; i$1 += 1) { var first = parser.parseCard8(); var nLeft = parser.parseCard8(); - for (var j2 = first; j2 <= first + nLeft; j2 += 1) { - enc[j2] = code; + for (var j = first; j <= first + nLeft; j += 1) { + enc[j] = code; code += 1; } } @@ -23566,13 +17420,13 @@ function parseCFFCharstring(font, glyph, code) { var c1y; var c2x; var c2y; - var p2 = new Path(); + var p = new Path(); var stack = []; var nStems = 0; var haveWidth = false; var open = false; - var x3 = 0; - var y2 = 0; + var x2 = 0; + var y = 0; var subrs; var subrsBias; var defaultWidthX; @@ -23591,11 +17445,11 @@ function parseCFFCharstring(font, glyph, code) { nominalWidthX = font.tables.cff.topDict._nominalWidthX; } var width = defaultWidthX; - function newContour(x4, y3) { + function newContour(x3, y2) { if (open) { - p2.closePath(); + p.closePath(); } - p2.moveTo(x4, y3); + p.moveTo(x3, y2); open = true; } function parseStems() { @@ -23621,11 +17475,11 @@ function parseCFFCharstring(font, glyph, code) { var c3y; var c4x; var c4y; - var i2 = 0; - while (i2 < code2.length) { - var v3 = code2[i2]; - i2 += 1; - switch (v3) { + var i = 0; + while (i < code2.length) { + var v2 = code2[i]; + i += 1; + switch (v2) { case 1: parseStems(); break; @@ -23637,47 +17491,47 @@ function parseCFFCharstring(font, glyph, code) { width = stack.shift() + nominalWidthX; haveWidth = true; } - y2 += stack.pop(); - newContour(x3, y2); + y += stack.pop(); + newContour(x2, y); break; case 5: while (stack.length > 0) { - x3 += stack.shift(); - y2 += stack.shift(); - p2.lineTo(x3, y2); + x2 += stack.shift(); + y += stack.shift(); + p.lineTo(x2, y); } break; case 6: while (stack.length > 0) { - x3 += stack.shift(); - p2.lineTo(x3, y2); + x2 += stack.shift(); + p.lineTo(x2, y); if (stack.length === 0) { break; } - y2 += stack.shift(); - p2.lineTo(x3, y2); + y += stack.shift(); + p.lineTo(x2, y); } break; case 7: while (stack.length > 0) { - y2 += stack.shift(); - p2.lineTo(x3, y2); + y += stack.shift(); + p.lineTo(x2, y); if (stack.length === 0) { break; } - x3 += stack.shift(); - p2.lineTo(x3, y2); + x2 += stack.shift(); + p.lineTo(x2, y); } break; case 8: while (stack.length > 0) { - c1x = x3 + stack.shift(); - c1y = y2 + stack.shift(); + c1x = x2 + stack.shift(); + c1y = y + stack.shift(); c2x = c1x + stack.shift(); c2y = c1y + stack.shift(); - x3 = c2x + stack.shift(); - y2 = c2y + stack.shift(); - p2.curveTo(c1x, c1y, c2x, c2y, x3, y2); + x2 = c2x + stack.shift(); + y = c2y + stack.shift(); + p.curveTo(c1x, c1y, c2x, c2y, x2, y); } break; case 10: @@ -23690,12 +17544,12 @@ function parseCFFCharstring(font, glyph, code) { case 11: return; case 12: - v3 = code2[i2]; - i2 += 1; - switch (v3) { + v2 = code2[i]; + i += 1; + switch (v2) { case 35: - c1x = x3 + stack.shift(); - c1y = y2 + stack.shift(); + c1x = x2 + stack.shift(); + c1y = y + stack.shift(); c2x = c1x + stack.shift(); c2y = c1y + stack.shift(); jpx = c2x + stack.shift(); @@ -23704,15 +17558,15 @@ function parseCFFCharstring(font, glyph, code) { c3y = jpy + stack.shift(); c4x = c3x + stack.shift(); c4y = c3y + stack.shift(); - x3 = c4x + stack.shift(); - y2 = c4y + stack.shift(); + x2 = c4x + stack.shift(); + y = c4y + stack.shift(); stack.shift(); - p2.curveTo(c1x, c1y, c2x, c2y, jpx, jpy); - p2.curveTo(c3x, c3y, c4x, c4y, x3, y2); + p.curveTo(c1x, c1y, c2x, c2y, jpx, jpy); + p.curveTo(c3x, c3y, c4x, c4y, x2, y); break; case 34: - c1x = x3 + stack.shift(); - c1y = y2; + c1x = x2 + stack.shift(); + c1y = y; c2x = c1x + stack.shift(); c2y = c1y + stack.shift(); jpx = c2x + stack.shift(); @@ -23720,14 +17574,14 @@ function parseCFFCharstring(font, glyph, code) { c3x = jpx + stack.shift(); c3y = c2y; c4x = c3x + stack.shift(); - c4y = y2; - x3 = c4x + stack.shift(); - p2.curveTo(c1x, c1y, c2x, c2y, jpx, jpy); - p2.curveTo(c3x, c3y, c4x, c4y, x3, y2); + c4y = y; + x2 = c4x + stack.shift(); + p.curveTo(c1x, c1y, c2x, c2y, jpx, jpy); + p.curveTo(c3x, c3y, c4x, c4y, x2, y); break; case 36: - c1x = x3 + stack.shift(); - c1y = y2 + stack.shift(); + c1x = x2 + stack.shift(); + c1y = y + stack.shift(); c2x = c1x + stack.shift(); c2y = c1y + stack.shift(); jpx = c2x + stack.shift(); @@ -23736,13 +17590,13 @@ function parseCFFCharstring(font, glyph, code) { c3y = c2y; c4x = c3x + stack.shift(); c4y = c3y + stack.shift(); - x3 = c4x + stack.shift(); - p2.curveTo(c1x, c1y, c2x, c2y, jpx, jpy); - p2.curveTo(c3x, c3y, c4x, c4y, x3, y2); + x2 = c4x + stack.shift(); + p.curveTo(c1x, c1y, c2x, c2y, jpx, jpy); + p.curveTo(c3x, c3y, c4x, c4y, x2, y); break; case 37: - c1x = x3 + stack.shift(); - c1y = y2 + stack.shift(); + c1x = x2 + stack.shift(); + c1y = y + stack.shift(); c2x = c1x + stack.shift(); c2y = c1y + stack.shift(); jpx = c2x + stack.shift(); @@ -23751,17 +17605,17 @@ function parseCFFCharstring(font, glyph, code) { c3y = jpy + stack.shift(); c4x = c3x + stack.shift(); c4y = c3y + stack.shift(); - if (Math.abs(c4x - x3) > Math.abs(c4y - y2)) { - x3 = c4x + stack.shift(); + if (Math.abs(c4x - x2) > Math.abs(c4y - y)) { + x2 = c4x + stack.shift(); } else { - y2 = c4y + stack.shift(); + y = c4y + stack.shift(); } - p2.curveTo(c1x, c1y, c2x, c2y, jpx, jpy); - p2.curveTo(c3x, c3y, c4x, c4y, x3, y2); + p.curveTo(c1x, c1y, c2x, c2y, jpx, jpy); + p.curveTo(c3x, c3y, c4x, c4y, x2, y); break; default: console.log( - "Glyph " + glyph.index + ": unknown operator 1200" + v3 + "Glyph " + glyph.index + ": unknown operator 1200" + v2 ); stack.length = 0; } @@ -23772,7 +17626,7 @@ function parseCFFCharstring(font, glyph, code) { haveWidth = true; } if (open) { - p2.closePath(); + p.closePath(); open = false; } break; @@ -23783,89 +17637,89 @@ function parseCFFCharstring(font, glyph, code) { // hintmask case 20: parseStems(); - i2 += nStems + 7 >> 3; + i += nStems + 7 >> 3; break; case 21: if (stack.length > 2 && !haveWidth) { width = stack.shift() + nominalWidthX; haveWidth = true; } - y2 += stack.pop(); - x3 += stack.pop(); - newContour(x3, y2); + y += stack.pop(); + x2 += stack.pop(); + newContour(x2, y); break; case 22: if (stack.length > 1 && !haveWidth) { width = stack.shift() + nominalWidthX; haveWidth = true; } - x3 += stack.pop(); - newContour(x3, y2); + x2 += stack.pop(); + newContour(x2, y); break; case 23: parseStems(); break; case 24: while (stack.length > 2) { - c1x = x3 + stack.shift(); - c1y = y2 + stack.shift(); + c1x = x2 + stack.shift(); + c1y = y + stack.shift(); c2x = c1x + stack.shift(); c2y = c1y + stack.shift(); - x3 = c2x + stack.shift(); - y2 = c2y + stack.shift(); - p2.curveTo(c1x, c1y, c2x, c2y, x3, y2); + x2 = c2x + stack.shift(); + y = c2y + stack.shift(); + p.curveTo(c1x, c1y, c2x, c2y, x2, y); } - x3 += stack.shift(); - y2 += stack.shift(); - p2.lineTo(x3, y2); + x2 += stack.shift(); + y += stack.shift(); + p.lineTo(x2, y); break; case 25: while (stack.length > 6) { - x3 += stack.shift(); - y2 += stack.shift(); - p2.lineTo(x3, y2); + x2 += stack.shift(); + y += stack.shift(); + p.lineTo(x2, y); } - c1x = x3 + stack.shift(); - c1y = y2 + stack.shift(); + c1x = x2 + stack.shift(); + c1y = y + stack.shift(); c2x = c1x + stack.shift(); c2y = c1y + stack.shift(); - x3 = c2x + stack.shift(); - y2 = c2y + stack.shift(); - p2.curveTo(c1x, c1y, c2x, c2y, x3, y2); + x2 = c2x + stack.shift(); + y = c2y + stack.shift(); + p.curveTo(c1x, c1y, c2x, c2y, x2, y); break; case 26: if (stack.length % 2) { - x3 += stack.shift(); + x2 += stack.shift(); } while (stack.length > 0) { - c1x = x3; - c1y = y2 + stack.shift(); + c1x = x2; + c1y = y + stack.shift(); c2x = c1x + stack.shift(); c2y = c1y + stack.shift(); - x3 = c2x; - y2 = c2y + stack.shift(); - p2.curveTo(c1x, c1y, c2x, c2y, x3, y2); + x2 = c2x; + y = c2y + stack.shift(); + p.curveTo(c1x, c1y, c2x, c2y, x2, y); } break; case 27: if (stack.length % 2) { - y2 += stack.shift(); + y += stack.shift(); } while (stack.length > 0) { - c1x = x3 + stack.shift(); - c1y = y2; + c1x = x2 + stack.shift(); + c1y = y; c2x = c1x + stack.shift(); c2y = c1y + stack.shift(); - x3 = c2x + stack.shift(); - y2 = c2y; - p2.curveTo(c1x, c1y, c2x, c2y, x3, y2); + x2 = c2x + stack.shift(); + y = c2y; + p.curveTo(c1x, c1y, c2x, c2y, x2, y); } break; case 28: - b1 = code2[i2]; - b2 = code2[i2 + 1]; + b1 = code2[i]; + b2 = code2[i + 1]; stack.push((b1 << 24 | b2 << 16) >> 16); - i2 += 2; + i += 2; break; case 29: codeIndex = stack.pop() + font.gsubrsBias; @@ -23876,67 +17730,67 @@ function parseCFFCharstring(font, glyph, code) { break; case 30: while (stack.length > 0) { - c1x = x3; - c1y = y2 + stack.shift(); + c1x = x2; + c1y = y + stack.shift(); c2x = c1x + stack.shift(); c2y = c1y + stack.shift(); - x3 = c2x + stack.shift(); - y2 = c2y + (stack.length === 1 ? stack.shift() : 0); - p2.curveTo(c1x, c1y, c2x, c2y, x3, y2); + x2 = c2x + stack.shift(); + y = c2y + (stack.length === 1 ? stack.shift() : 0); + p.curveTo(c1x, c1y, c2x, c2y, x2, y); if (stack.length === 0) { break; } - c1x = x3 + stack.shift(); - c1y = y2; + c1x = x2 + stack.shift(); + c1y = y; c2x = c1x + stack.shift(); c2y = c1y + stack.shift(); - y2 = c2y + stack.shift(); - x3 = c2x + (stack.length === 1 ? stack.shift() : 0); - p2.curveTo(c1x, c1y, c2x, c2y, x3, y2); + y = c2y + stack.shift(); + x2 = c2x + (stack.length === 1 ? stack.shift() : 0); + p.curveTo(c1x, c1y, c2x, c2y, x2, y); } break; case 31: while (stack.length > 0) { - c1x = x3 + stack.shift(); - c1y = y2; + c1x = x2 + stack.shift(); + c1y = y; c2x = c1x + stack.shift(); c2y = c1y + stack.shift(); - y2 = c2y + stack.shift(); - x3 = c2x + (stack.length === 1 ? stack.shift() : 0); - p2.curveTo(c1x, c1y, c2x, c2y, x3, y2); + y = c2y + stack.shift(); + x2 = c2x + (stack.length === 1 ? stack.shift() : 0); + p.curveTo(c1x, c1y, c2x, c2y, x2, y); if (stack.length === 0) { break; } - c1x = x3; - c1y = y2 + stack.shift(); + c1x = x2; + c1y = y + stack.shift(); c2x = c1x + stack.shift(); c2y = c1y + stack.shift(); - x3 = c2x + stack.shift(); - y2 = c2y + (stack.length === 1 ? stack.shift() : 0); - p2.curveTo(c1x, c1y, c2x, c2y, x3, y2); + x2 = c2x + stack.shift(); + y = c2y + (stack.length === 1 ? stack.shift() : 0); + p.curveTo(c1x, c1y, c2x, c2y, x2, y); } break; default: - if (v3 < 32) { + if (v2 < 32) { console.log( - "Glyph " + glyph.index + ": unknown operator " + v3 + "Glyph " + glyph.index + ": unknown operator " + v2 ); - } else if (v3 < 247) { - stack.push(v3 - 139); - } else if (v3 < 251) { - b1 = code2[i2]; - i2 += 1; - stack.push((v3 - 247) * 256 + b1 + 108); - } else if (v3 < 255) { - b1 = code2[i2]; - i2 += 1; - stack.push(-(v3 - 251) * 256 - b1 - 108); + } else if (v2 < 247) { + stack.push(v2 - 139); + } else if (v2 < 251) { + b1 = code2[i]; + i += 1; + stack.push((v2 - 247) * 256 + b1 + 108); + } else if (v2 < 255) { + b1 = code2[i]; + i += 1; + stack.push(-(v2 - 251) * 256 - b1 - 108); } else { - b1 = code2[i2]; - b2 = code2[i2 + 1]; - b3 = code2[i2 + 2]; - b4 = code2[i2 + 3]; - i2 += 4; + b1 = code2[i]; + b2 = code2[i + 1]; + b3 = code2[i + 2]; + b4 = code2[i + 3]; + i += 4; stack.push( (b1 << 24 | b2 << 16 | b3 << 8 | b4) / 65536 ); @@ -23946,7 +17800,7 @@ function parseCFFCharstring(font, glyph, code) { } parse2(code); glyph.advanceWidth = width; - return p2; + return p; } function parseCFFFDSelect(data, start, nGlyphs, fdArrayCount) { var fdSelect = []; @@ -24113,24 +17967,24 @@ function parseCFFTable(data, start, font, opt) { font.encoding = font.encoding || font.cffEncoding; font.glyphs = new glyphset.GlyphSet(font); if (opt.lowMemory) { - font._push = function(i3) { + font._push = function(i2) { var charString2 = getCffIndexObject( - i3, + i2, charStringsIndex.offsets, data, start + topDict.charStrings ); font.glyphs.push( - i3, - glyphset.cffGlyphLoader(font, i3, parseCFFCharstring, charString2) + i2, + glyphset.cffGlyphLoader(font, i2, parseCFFCharstring, charString2) ); }; } else { - for (var i2 = 0; i2 < font.nGlyphs; i2 += 1) { - var charString = charStringsIndex.objects[i2]; + for (var i = 0; i < font.nGlyphs; i += 1) { + var charString = charStringsIndex.objects[i]; font.glyphs.push( - i2, - glyphset.cffGlyphLoader(font, i2, parseCFFCharstring, charString) + i, + glyphset.cffGlyphLoader(font, i, parseCFFCharstring, charString) ); } } @@ -24138,52 +17992,52 @@ function parseCFFTable(data, start, font, opt) { var cff = { parse: parseCFFTable }; function parseFvarAxis(data, start, names) { var axis = {}; - var p2 = new parse.Parser(data, start); - axis.tag = p2.parseTag(); - axis.minValue = p2.parseFixed(); - axis.defaultValue = p2.parseFixed(); - axis.maxValue = p2.parseFixed(); - p2.skip("uShort", 1); - axis.name = names[p2.parseUShort()] || {}; + var p = new parse.Parser(data, start); + axis.tag = p.parseTag(); + axis.minValue = p.parseFixed(); + axis.defaultValue = p.parseFixed(); + axis.maxValue = p.parseFixed(); + p.skip("uShort", 1); + axis.name = names[p.parseUShort()] || {}; return axis; } function parseFvarInstance(data, start, axes, names) { var inst = {}; - var p2 = new parse.Parser(data, start); - inst.name = names[p2.parseUShort()] || {}; - p2.skip("uShort", 1); + var p = new parse.Parser(data, start); + inst.name = names[p.parseUShort()] || {}; + p.skip("uShort", 1); inst.coordinates = {}; - for (var i2 = 0; i2 < axes.length; ++i2) { - inst.coordinates[axes[i2].tag] = p2.parseFixed(); + for (var i = 0; i < axes.length; ++i) { + inst.coordinates[axes[i].tag] = p.parseFixed(); } return inst; } function parseFvarTable(data, start, names) { - var p2 = new parse.Parser(data, start); - var tableVersion = p2.parseULong(); + var p = new parse.Parser(data, start); + var tableVersion = p.parseULong(); check.argument( tableVersion === 65536, "Unsupported fvar table version." ); - var offsetToData = p2.parseOffset16(); - p2.skip("uShort", 1); - var axisCount = p2.parseUShort(); - var axisSize = p2.parseUShort(); - var instanceCount = p2.parseUShort(); - var instanceSize = p2.parseUShort(); + var offsetToData = p.parseOffset16(); + p.skip("uShort", 1); + var axisCount = p.parseUShort(); + var axisSize = p.parseUShort(); + var instanceCount = p.parseUShort(); + var instanceSize = p.parseUShort(); var axes = []; - for (var i2 = 0; i2 < axisCount; i2++) { + for (var i = 0; i < axisCount; i++) { axes.push( - parseFvarAxis(data, start + offsetToData + i2 * axisSize, names) + parseFvarAxis(data, start + offsetToData + i * axisSize, names) ); } var instances = []; var instanceStart = start + offsetToData + axisCount * axisSize; - for (var j2 = 0; j2 < instanceCount; j2++) { + for (var j = 0; j < instanceCount; j++) { instances.push( parseFvarInstance( data, - instanceStart + j2 * instanceSize, + instanceStart + j * instanceSize, axes, names ) @@ -24227,21 +18081,21 @@ var markGlyphSets = function() { }; function parseGDEFTable(data, start) { start = start || 0; - var p2 = new Parser(data, start); - var tableVersion = p2.parseVersion(1); + var p = new Parser(data, start); + var tableVersion = p.parseVersion(1); check.argument( tableVersion === 1 || tableVersion === 1.2 || tableVersion === 1.3, "Unsupported GDEF table version." ); var gdef2 = { version: tableVersion, - classDef: p2.parsePointer(Parser.classDef), - attachList: p2.parsePointer(attachList), - ligCaretList: p2.parsePointer(ligCaretList), - markAttachClassDef: p2.parsePointer(Parser.classDef) + classDef: p.parsePointer(Parser.classDef), + attachList: p.parsePointer(attachList), + ligCaretList: p.parsePointer(ligCaretList), + markAttachClassDef: p.parsePointer(Parser.classDef) }; if (tableVersion >= 1.2) { - gdef2.markGlyphSets = p2.parsePointer(markGlyphSets); + gdef2.markGlyphSets = p.parsePointer(markGlyphSets); } return gdef2; } @@ -24347,8 +18201,8 @@ subtableParsers[9] = function parseLookup9() { }; function parseGposTable(data, start) { start = start || 0; - var p2 = new Parser(data, start); - var tableVersion = p2.parseVersion(1); + var p = new Parser(data, start); + var tableVersion = p.parseVersion(1); check.argument( tableVersion === 1 || tableVersion === 1.1, "Unsupported GPOS table version " + tableVersion @@ -24356,17 +18210,17 @@ function parseGposTable(data, start) { if (tableVersion === 1) { return { version: tableVersion, - scripts: p2.parseScriptList(), - features: p2.parseFeatureList(), - lookups: p2.parseLookupList(subtableParsers) + scripts: p.parseScriptList(), + features: p.parseFeatureList(), + lookups: p.parseLookupList(subtableParsers) }; } else { return { version: tableVersion, - scripts: p2.parseScriptList(), - features: p2.parseFeatureList(), - lookups: p2.parseLookupList(subtableParsers), - variations: p2.parseFeatureVariationsList() + scripts: p.parseScriptList(), + features: p.parseFeatureList(), + lookups: p.parseLookupList(subtableParsers), + variations: p.parseFeatureVariationsList() }; } } @@ -24570,8 +18424,8 @@ subtableParsers$1[8] = function parseLookup82() { }; function parseGsubTable(data, start) { start = start || 0; - var p2 = new Parser(data, start); - var tableVersion = p2.parseVersion(1); + var p = new Parser(data, start); + var tableVersion = p.parseVersion(1); check.argument( tableVersion === 1 || tableVersion === 1.1, "Unsupported GSUB table version." @@ -24579,78 +18433,78 @@ function parseGsubTable(data, start) { if (tableVersion === 1) { return { version: tableVersion, - scripts: p2.parseScriptList(), - features: p2.parseFeatureList(), - lookups: p2.parseLookupList(subtableParsers$1) + scripts: p.parseScriptList(), + features: p.parseFeatureList(), + lookups: p.parseLookupList(subtableParsers$1) }; } else { return { version: tableVersion, - scripts: p2.parseScriptList(), - features: p2.parseFeatureList(), - lookups: p2.parseLookupList(subtableParsers$1), - variations: p2.parseFeatureVariationsList() + scripts: p.parseScriptList(), + features: p.parseFeatureList(), + lookups: p.parseLookupList(subtableParsers$1), + variations: p.parseFeatureVariationsList() }; } } var gsub = { parse: parseGsubTable }; function parseHeadTable(data, start) { var head2 = {}; - var p2 = new parse.Parser(data, start); - head2.version = p2.parseVersion(); - head2.fontRevision = Math.round(p2.parseFixed() * 1e3) / 1e3; - head2.checkSumAdjustment = p2.parseULong(); - head2.magicNumber = p2.parseULong(); + var p = new parse.Parser(data, start); + head2.version = p.parseVersion(); + head2.fontRevision = Math.round(p.parseFixed() * 1e3) / 1e3; + head2.checkSumAdjustment = p.parseULong(); + head2.magicNumber = p.parseULong(); check.argument( head2.magicNumber === 1594834165, "Font header has wrong magic number." ); - head2.flags = p2.parseUShort(); - head2.unitsPerEm = p2.parseUShort(); - head2.created = p2.parseLongDateTime(); - head2.modified = p2.parseLongDateTime(); - head2.xMin = p2.parseShort(); - head2.yMin = p2.parseShort(); - head2.xMax = p2.parseShort(); - head2.yMax = p2.parseShort(); - head2.macStyle = p2.parseUShort(); - head2.lowestRecPPEM = p2.parseUShort(); - head2.fontDirectionHint = p2.parseShort(); - head2.indexToLocFormat = p2.parseShort(); - head2.glyphDataFormat = p2.parseShort(); + head2.flags = p.parseUShort(); + head2.unitsPerEm = p.parseUShort(); + head2.created = p.parseLongDateTime(); + head2.modified = p.parseLongDateTime(); + head2.xMin = p.parseShort(); + head2.yMin = p.parseShort(); + head2.xMax = p.parseShort(); + head2.yMax = p.parseShort(); + head2.macStyle = p.parseUShort(); + head2.lowestRecPPEM = p.parseUShort(); + head2.fontDirectionHint = p.parseShort(); + head2.indexToLocFormat = p.parseShort(); + head2.glyphDataFormat = p.parseShort(); return head2; } var head = { parse: parseHeadTable }; function parseHheaTable(data, start) { var hhea2 = {}; - var p2 = new parse.Parser(data, start); - hhea2.version = p2.parseVersion(); - hhea2.ascender = p2.parseShort(); - hhea2.descender = p2.parseShort(); - hhea2.lineGap = p2.parseShort(); - hhea2.advanceWidthMax = p2.parseUShort(); - hhea2.minLeftSideBearing = p2.parseShort(); - hhea2.minRightSideBearing = p2.parseShort(); - hhea2.xMaxExtent = p2.parseShort(); - hhea2.caretSlopeRise = p2.parseShort(); - hhea2.caretSlopeRun = p2.parseShort(); - hhea2.caretOffset = p2.parseShort(); - p2.relativeOffset += 8; - hhea2.metricDataFormat = p2.parseShort(); - hhea2.numberOfHMetrics = p2.parseUShort(); + var p = new parse.Parser(data, start); + hhea2.version = p.parseVersion(); + hhea2.ascender = p.parseShort(); + hhea2.descender = p.parseShort(); + hhea2.lineGap = p.parseShort(); + hhea2.advanceWidthMax = p.parseUShort(); + hhea2.minLeftSideBearing = p.parseShort(); + hhea2.minRightSideBearing = p.parseShort(); + hhea2.xMaxExtent = p.parseShort(); + hhea2.caretSlopeRise = p.parseShort(); + hhea2.caretSlopeRun = p.parseShort(); + hhea2.caretOffset = p.parseShort(); + p.relativeOffset += 8; + hhea2.metricDataFormat = p.parseShort(); + hhea2.numberOfHMetrics = p.parseUShort(); return hhea2; } var hhea = { parse: parseHheaTable }; function parseHmtxTableAll(data, start, numMetrics, numGlyphs, glyphs) { var advanceWidth; var leftSideBearing; - var p2 = new parse.Parser(data, start); - for (var i2 = 0; i2 < numGlyphs; i2 += 1) { - if (i2 < numMetrics) { - advanceWidth = p2.parseUShort(); - leftSideBearing = p2.parseShort(); + var p = new parse.Parser(data, start); + for (var i = 0; i < numGlyphs; i += 1) { + if (i < numMetrics) { + advanceWidth = p.parseUShort(); + leftSideBearing = p.parseShort(); } - var glyph = glyphs.get(i2); + var glyph = glyphs.get(i); glyph.advanceWidth = advanceWidth; glyph.leftSideBearing = leftSideBearing; } @@ -24659,13 +18513,13 @@ function parseHmtxTableOnLowMemory(font, data, start, numMetrics, numGlyphs) { font._hmtxTableData = {}; var advanceWidth; var leftSideBearing; - var p2 = new parse.Parser(data, start); - for (var i2 = 0; i2 < numGlyphs; i2 += 1) { - if (i2 < numMetrics) { - advanceWidth = p2.parseUShort(); - leftSideBearing = p2.parseShort(); + var p = new parse.Parser(data, start); + for (var i = 0; i < numGlyphs; i += 1) { + if (i < numMetrics) { + advanceWidth = p.parseUShort(); + leftSideBearing = p.parseShort(); } - font._hmtxTableData[i2] = { + font._hmtxTableData[i] = { advanceWidth, leftSideBearing }; @@ -24679,70 +18533,70 @@ function parseHmtxTable(font, data, start, numMetrics, numGlyphs, glyphs, opt) { } } var hmtx = { parse: parseHmtxTable }; -function parseWindowsKernTable(p2) { +function parseWindowsKernTable(p) { var pairs = {}; - p2.skip("uShort"); - var subtableVersion = p2.parseUShort(); + p.skip("uShort"); + var subtableVersion = p.parseUShort(); check.argument(subtableVersion === 0, "Unsupported kern sub-table version."); - p2.skip("uShort", 2); - var nPairs = p2.parseUShort(); - p2.skip("uShort", 3); - for (var i2 = 0; i2 < nPairs; i2 += 1) { - var leftIndex = p2.parseUShort(); - var rightIndex = p2.parseUShort(); - var value = p2.parseShort(); + p.skip("uShort", 2); + var nPairs = p.parseUShort(); + p.skip("uShort", 3); + for (var i = 0; i < nPairs; i += 1) { + var leftIndex = p.parseUShort(); + var rightIndex = p.parseUShort(); + var value = p.parseShort(); pairs[leftIndex + "," + rightIndex] = value; } return pairs; } -function parseMacKernTable(p2) { +function parseMacKernTable(p) { var pairs = {}; - p2.skip("uShort"); - var nTables = p2.parseULong(); + p.skip("uShort"); + var nTables = p.parseULong(); if (nTables > 1) { console.warn("Only the first kern subtable is supported."); } - p2.skip("uLong"); - var coverage = p2.parseUShort(); + p.skip("uLong"); + var coverage = p.parseUShort(); var subtableVersion = coverage & 255; - p2.skip("uShort"); + p.skip("uShort"); if (subtableVersion === 0) { - var nPairs = p2.parseUShort(); - p2.skip("uShort", 3); - for (var i2 = 0; i2 < nPairs; i2 += 1) { - var leftIndex = p2.parseUShort(); - var rightIndex = p2.parseUShort(); - var value = p2.parseShort(); + var nPairs = p.parseUShort(); + p.skip("uShort", 3); + for (var i = 0; i < nPairs; i += 1) { + var leftIndex = p.parseUShort(); + var rightIndex = p.parseUShort(); + var value = p.parseShort(); pairs[leftIndex + "," + rightIndex] = value; } } return pairs; } function parseKernTable(data, start) { - var p2 = new parse.Parser(data, start); - var tableVersion = p2.parseUShort(); + var p = new parse.Parser(data, start); + var tableVersion = p.parseUShort(); if (tableVersion === 0) { - return parseWindowsKernTable(p2); + return parseWindowsKernTable(p); } else if (tableVersion === 1) { - return parseMacKernTable(p2); + return parseMacKernTable(p); } else { throw new Error("Unsupported kern table version (" + tableVersion + ")."); } } var kern = { parse: parseKernTable }; function parseLtagTable(data, start) { - var p2 = new parse.Parser(data, start); - var tableVersion = p2.parseULong(); + var p = new parse.Parser(data, start); + var tableVersion = p.parseULong(); check.argument(tableVersion === 1, "Unsupported ltag table version."); - p2.skip("uLong", 1); - var numTags = p2.parseULong(); + p.skip("uLong", 1); + var numTags = p.parseULong(); var tags = []; - for (var i2 = 0; i2 < numTags; i2++) { + for (var i = 0; i < numTags; i++) { var tag = ""; - var offset = start + p2.parseUShort(); - var length = p2.parseUShort(); - for (var j2 = offset; j2 < offset + length; ++j2) { - tag += String.fromCharCode(data.getInt8(j2)); + var offset = start + p.parseUShort(); + var length = p.parseUShort(); + for (var j = offset; j < offset + length; ++j) { + tag += String.fromCharCode(data.getInt8(j)); } tags.push(tag); } @@ -24750,11 +18604,11 @@ function parseLtagTable(data, start) { } var ltag = { parse: parseLtagTable }; function parseLocaTable(data, start, numGlyphs, shortVersion) { - var p2 = new parse.Parser(data, start); - var parseFn = shortVersion ? p2.parseUShort : p2.parseULong; + var p = new parse.Parser(data, start); + var parseFn = shortVersion ? p.parseUShort : p.parseULong; var glyphOffsets = []; - for (var i2 = 0; i2 < numGlyphs + 1; i2 += 1) { - var glyphOffset = parseFn.call(p2); + for (var i = 0; i < numGlyphs + 1; i += 1) { + var glyphOffset = parseFn.call(p); if (shortVersion) { glyphOffset *= 2; } @@ -24765,110 +18619,110 @@ function parseLocaTable(data, start, numGlyphs, shortVersion) { var loca = { parse: parseLocaTable }; function parseMaxpTable(data, start) { var maxp2 = {}; - var p2 = new parse.Parser(data, start); - maxp2.version = p2.parseVersion(); - maxp2.numGlyphs = p2.parseUShort(); + var p = new parse.Parser(data, start); + maxp2.version = p.parseVersion(); + maxp2.numGlyphs = p.parseUShort(); if (maxp2.version === 1) { - maxp2.maxPoints = p2.parseUShort(); - maxp2.maxContours = p2.parseUShort(); - maxp2.maxCompositePoints = p2.parseUShort(); - maxp2.maxCompositeContours = p2.parseUShort(); - maxp2.maxZones = p2.parseUShort(); - maxp2.maxTwilightPoints = p2.parseUShort(); - maxp2.maxStorage = p2.parseUShort(); - maxp2.maxFunctionDefs = p2.parseUShort(); - maxp2.maxInstructionDefs = p2.parseUShort(); - maxp2.maxStackElements = p2.parseUShort(); - maxp2.maxSizeOfInstructions = p2.parseUShort(); - maxp2.maxComponentElements = p2.parseUShort(); - maxp2.maxComponentDepth = p2.parseUShort(); + maxp2.maxPoints = p.parseUShort(); + maxp2.maxContours = p.parseUShort(); + maxp2.maxCompositePoints = p.parseUShort(); + maxp2.maxCompositeContours = p.parseUShort(); + maxp2.maxZones = p.parseUShort(); + maxp2.maxTwilightPoints = p.parseUShort(); + maxp2.maxStorage = p.parseUShort(); + maxp2.maxFunctionDefs = p.parseUShort(); + maxp2.maxInstructionDefs = p.parseUShort(); + maxp2.maxStackElements = p.parseUShort(); + maxp2.maxSizeOfInstructions = p.parseUShort(); + maxp2.maxComponentElements = p.parseUShort(); + maxp2.maxComponentDepth = p.parseUShort(); } return maxp2; } var maxp = { parse: parseMaxpTable }; function parseOS2Table(data, start) { var os22 = {}; - var p2 = new parse.Parser(data, start); - os22.version = p2.parseUShort(); - os22.xAvgCharWidth = p2.parseShort(); - os22.usWeightClass = p2.parseUShort(); - os22.usWidthClass = p2.parseUShort(); - os22.fsType = p2.parseUShort(); - os22.ySubscriptXSize = p2.parseShort(); - os22.ySubscriptYSize = p2.parseShort(); - os22.ySubscriptXOffset = p2.parseShort(); - os22.ySubscriptYOffset = p2.parseShort(); - os22.ySuperscriptXSize = p2.parseShort(); - os22.ySuperscriptYSize = p2.parseShort(); - os22.ySuperscriptXOffset = p2.parseShort(); - os22.ySuperscriptYOffset = p2.parseShort(); - os22.yStrikeoutSize = p2.parseShort(); - os22.yStrikeoutPosition = p2.parseShort(); - os22.sFamilyClass = p2.parseShort(); + var p = new parse.Parser(data, start); + os22.version = p.parseUShort(); + os22.xAvgCharWidth = p.parseShort(); + os22.usWeightClass = p.parseUShort(); + os22.usWidthClass = p.parseUShort(); + os22.fsType = p.parseUShort(); + os22.ySubscriptXSize = p.parseShort(); + os22.ySubscriptYSize = p.parseShort(); + os22.ySubscriptXOffset = p.parseShort(); + os22.ySubscriptYOffset = p.parseShort(); + os22.ySuperscriptXSize = p.parseShort(); + os22.ySuperscriptYSize = p.parseShort(); + os22.ySuperscriptXOffset = p.parseShort(); + os22.ySuperscriptYOffset = p.parseShort(); + os22.yStrikeoutSize = p.parseShort(); + os22.yStrikeoutPosition = p.parseShort(); + os22.sFamilyClass = p.parseShort(); os22.panose = []; - for (var i2 = 0; i2 < 10; i2++) { - os22.panose[i2] = p2.parseByte(); + for (var i = 0; i < 10; i++) { + os22.panose[i] = p.parseByte(); } - os22.ulUnicodeRange1 = p2.parseULong(); - os22.ulUnicodeRange2 = p2.parseULong(); - os22.ulUnicodeRange3 = p2.parseULong(); - os22.ulUnicodeRange4 = p2.parseULong(); + os22.ulUnicodeRange1 = p.parseULong(); + os22.ulUnicodeRange2 = p.parseULong(); + os22.ulUnicodeRange3 = p.parseULong(); + os22.ulUnicodeRange4 = p.parseULong(); os22.achVendID = String.fromCharCode( - p2.parseByte(), - p2.parseByte(), - p2.parseByte(), - p2.parseByte() + p.parseByte(), + p.parseByte(), + p.parseByte(), + p.parseByte() ); - os22.fsSelection = p2.parseUShort(); - os22.usFirstCharIndex = p2.parseUShort(); - os22.usLastCharIndex = p2.parseUShort(); - os22.sTypoAscender = p2.parseShort(); - os22.sTypoDescender = p2.parseShort(); - os22.sTypoLineGap = p2.parseShort(); - os22.usWinAscent = p2.parseUShort(); - os22.usWinDescent = p2.parseUShort(); + os22.fsSelection = p.parseUShort(); + os22.usFirstCharIndex = p.parseUShort(); + os22.usLastCharIndex = p.parseUShort(); + os22.sTypoAscender = p.parseShort(); + os22.sTypoDescender = p.parseShort(); + os22.sTypoLineGap = p.parseShort(); + os22.usWinAscent = p.parseUShort(); + os22.usWinDescent = p.parseUShort(); if (os22.version >= 1) { - os22.ulCodePageRange1 = p2.parseULong(); - os22.ulCodePageRange2 = p2.parseULong(); + os22.ulCodePageRange1 = p.parseULong(); + os22.ulCodePageRange2 = p.parseULong(); } if (os22.version >= 2) { - os22.sxHeight = p2.parseShort(); - os22.sCapHeight = p2.parseShort(); - os22.usDefaultChar = p2.parseUShort(); - os22.usBreakChar = p2.parseUShort(); - os22.usMaxContent = p2.parseUShort(); + os22.sxHeight = p.parseShort(); + os22.sCapHeight = p.parseShort(); + os22.usDefaultChar = p.parseUShort(); + os22.usBreakChar = p.parseUShort(); + os22.usMaxContent = p.parseUShort(); } return os22; } var os2 = { parse: parseOS2Table }; function parsePostTable(data, start) { var post2 = {}; - var p2 = new parse.Parser(data, start); - post2.version = p2.parseVersion(); - post2.italicAngle = p2.parseFixed(); - post2.underlinePosition = p2.parseShort(); - post2.underlineThickness = p2.parseShort(); - post2.isFixedPitch = p2.parseULong(); - post2.minMemType42 = p2.parseULong(); - post2.maxMemType42 = p2.parseULong(); - post2.minMemType1 = p2.parseULong(); - post2.maxMemType1 = p2.parseULong(); + var p = new parse.Parser(data, start); + post2.version = p.parseVersion(); + post2.italicAngle = p.parseFixed(); + post2.underlinePosition = p.parseShort(); + post2.underlineThickness = p.parseShort(); + post2.isFixedPitch = p.parseULong(); + post2.minMemType42 = p.parseULong(); + post2.maxMemType42 = p.parseULong(); + post2.minMemType1 = p.parseULong(); + post2.maxMemType1 = p.parseULong(); post2.names = []; switch (post2.version) { case 1: break; case 2: - post2.numberOfGlyphs = p2.parseUShort(); + post2.numberOfGlyphs = p.parseUShort(); post2.glyphNameIndex = new Array(post2.numberOfGlyphs); - for (var i2 = 0; i2 < post2.numberOfGlyphs; i2++) { - post2.glyphNameIndex[i2] = p2.parseUShort(); + for (var i = 0; i < post2.numberOfGlyphs; i++) { + post2.glyphNameIndex[i] = p.parseUShort(); } break; case 2.5: - post2.numberOfGlyphs = p2.parseUShort(); + post2.numberOfGlyphs = p.parseUShort(); post2.offset = new Array(post2.numberOfGlyphs); for (var i$1 = 0; i$1 < post2.numberOfGlyphs; i$1++) { - post2.offset[i$1] = p2.parseChar(); + post2.offset[i$1] = p.parseChar(); } break; } @@ -24879,16 +18733,16 @@ var decode = {}; decode.UTF8 = function(data, offset, numBytes) { var codePoints = []; var numChars = numBytes; - for (var j2 = 0; j2 < numChars; j2++, offset += 1) { - codePoints[j2] = data.getUint8(offset); + for (var j = 0; j < numChars; j++, offset += 1) { + codePoints[j] = data.getUint8(offset); } return String.fromCharCode.apply(null, codePoints); }; decode.UTF16 = function(data, offset, numBytes) { var codePoints = []; var numChars = numBytes / 2; - for (var j2 = 0; j2 < numChars; j2++, offset += 2) { - codePoints[j2] = data.getUint16(offset); + for (var j = 0; j < numChars; j++, offset += 2) { + codePoints[j] = data.getUint16(offset); } return String.fromCharCode.apply(null, codePoints); }; @@ -24940,28 +18794,28 @@ decode.MACSTRING = function(dataView, offset, dataLength, encoding) { return void 0; } var result = ""; - for (var i2 = 0; i2 < dataLength; i2++) { - var c3 = dataView.getUint8(offset + i2); - if (c3 <= 127) { - result += String.fromCharCode(c3); + for (var i = 0; i < dataLength; i++) { + var c2 = dataView.getUint8(offset + i); + if (c2 <= 127) { + result += String.fromCharCode(c2); } else { - result += table[c3 & 127]; + result += table[c2 & 127]; } } return result; }; function parseMetaTable(data, start) { - var p2 = new parse.Parser(data, start); - var tableVersion = p2.parseULong(); + var p = new parse.Parser(data, start); + var tableVersion = p.parseULong(); check.argument(tableVersion === 1, "Unsupported META table version."); - p2.parseULong(); - p2.parseULong(); - var numDataMaps = p2.parseULong(); + p.parseULong(); + p.parseULong(); + var numDataMaps = p.parseULong(); var tags = {}; - for (var i2 = 0; i2 < numDataMaps; i2++) { - var tag = p2.parseTag(); - var dataOffset = p2.parseULong(); - var dataLength = p2.parseULong(); + for (var i = 0; i < numDataMaps; i++) { + var tag = p.parseTag(); + var dataOffset = p.parseULong(); + var dataLength = p.parseULong(); var text = decode.UTF8(data, start + dataOffset, dataLength); tags[tag] = text; } @@ -24970,12 +18824,12 @@ function parseMetaTable(data, start) { var meta = { parse: parseMetaTable }; function parseOpenTypeTableEntries(data, numTables) { var tableEntries = []; - var p2 = 12; - for (var i2 = 0; i2 < numTables; i2 += 1) { - var tag = parse.getTag(data, p2); - var checksum = parse.getULong(data, p2 + 4); - var offset = parse.getULong(data, p2 + 8); - var length = parse.getULong(data, p2 + 12); + var p = 12; + for (var i = 0; i < numTables; i += 1) { + var tag = parse.getTag(data, p); + var checksum = parse.getULong(data, p + 4); + var offset = parse.getULong(data, p + 8); + var length = parse.getULong(data, p + 12); tableEntries.push({ tag, checksum, @@ -24983,18 +18837,18 @@ function parseOpenTypeTableEntries(data, numTables) { length, compression: false }); - p2 += 16; + p += 16; } return tableEntries; } function parseWOFFTableEntries(data, numTables) { var tableEntries = []; - var p2 = 44; - for (var i2 = 0; i2 < numTables; i2 += 1) { - var tag = parse.getTag(data, p2); - var offset = parse.getULong(data, p2 + 4); - var compLength = parse.getULong(data, p2 + 8); - var origLength = parse.getULong(data, p2 + 12); + var p = 44; + for (var i = 0; i < numTables; i += 1) { + var tag = parse.getTag(data, p); + var offset = parse.getULong(data, p + 4); + var compLength = parse.getULong(data, p + 8); + var origLength = parse.getULong(data, p + 12); var compression = void 0; if (compLength < origLength) { compression = "WOFF"; @@ -25008,7 +18862,7 @@ function parseWOFFTableEntries(data, numTables) { compressedLength: compLength, length: origLength }); - p2 += 20; + p += 20; } return tableEntries; } @@ -25072,9 +18926,9 @@ function parseBuffer(buffer, opt) { var kernTableEntry; var locaTableEntry; var metaTableEntry; - var p2; - for (var i2 = 0; i2 < numTables; i2 += 1) { - var tableEntry = tableEntries[i2]; + var p; + for (var i = 0; i < numTables; i += 1) { + var tableEntry = tableEntries[i]; var table = void 0; switch (tableEntry.tag) { case "cmap": @@ -25084,16 +18938,16 @@ function parseBuffer(buffer, opt) { break; case "cvt ": table = uncompressTable(data, tableEntry); - p2 = new parse.Parser(table.data, table.offset); - font.tables.cvt = p2.parseShortList(tableEntry.length / 2); + p = new parse.Parser(table.data, table.offset); + font.tables.cvt = p.parseShortList(tableEntry.length / 2); break; case "fvar": fvarTableEntry = tableEntry; break; case "fpgm": table = uncompressTable(data, tableEntry); - p2 = new parse.Parser(table.data, table.offset); - font.tables.fpgm = p2.parseByteList(tableEntry.length); + p = new parse.Parser(table.data, table.offset); + font.tables.fpgm = p.parseByteList(tableEntry.length); break; case "head": table = uncompressTable(data, tableEntry); @@ -25130,8 +18984,8 @@ function parseBuffer(buffer, opt) { break; case "prep": table = uncompressTable(data, tableEntry); - p2 = new parse.Parser(table.data, table.offset); - font.tables.prep = p2.parseByteList(tableEntry.length); + p = new parse.Parser(table.data, table.offset); + font.tables.prep = p.parseByteList(tableEntry.length); break; case "glyf": glyfTableEntry = tableEntry; @@ -25250,32 +19104,32 @@ var Al = Object.getOwnPropertyDescriptor; var Ol = Object.getOwnPropertyNames; var Pl = Object.getPrototypeOf; var Bl = Object.prototype.hasOwnProperty; -var xn = (e2, t2) => () => (e2 && (t2 = e2(e2 = 0)), t2); -var k = (e2, t2) => () => (t2 || e2((t2 = { exports: {} }).exports, t2), t2.exports); -var Fn = (e2, t2) => { - for (var n2 in t2) Br(e2, n2, { get: t2[n2], enumerable: true }); +var xn = (e, t) => () => (e && (t = e(e = 0)), t); +var k = (e, t) => () => (t || e((t = { exports: {} }).exports, t), t.exports); +var Fn = (e, t) => { + for (var n in t) Br(e, n, { get: t[n], enumerable: true }); }; -var Go = (e2, t2, n2, r2) => { - if (t2 && typeof t2 == "object" || typeof t2 == "function") for (let i2 of Ol(t2)) !Bl.call(e2, i2) && i2 !== n2 && Br(e2, i2, { get: () => t2[i2], enumerable: !(r2 = Al(t2, i2)) || r2.enumerable }); - return e2; +var Go = (e, t, n, r) => { + if (t && typeof t == "object" || typeof t == "function") for (let i of Ol(t)) !Bl.call(e, i) && i !== n && Br(e, i, { get: () => t[i], enumerable: !(r = Al(t, i)) || r.enumerable }); + return e; }; -var Il = (e2, t2, n2) => (n2 = e2 != null ? Tl(Pl(e2)) : {}, Go(!e2 || !e2.__esModule ? Br(n2, "default", { value: e2, enumerable: true }) : n2, e2)); -var Ir = (e2) => Go(Br({}, "__esModule", { value: true }), e2); +var Il = (e, t, n) => (n = e != null ? Tl(Pl(e)) : {}, Go(!e || !e.__esModule ? Br(n, "default", { value: e, enumerable: true }) : n, e)); +var Ir = (e) => Go(Br({}, "__esModule", { value: true }), e); var jo = {}; Fn(jo, { getYogaModule: () => Rl }); async function Rl() { - let { default: e2 } = await Promise.resolve().then(() => (init_asm(), asm_exports)); - return e2(); + let { default: e } = await Promise.resolve().then(() => (init_asm(), asm_exports)); + return e(); } var Ho = xn(() => { }); var Xn = k((Yn) => { Object.defineProperty(Yn, "__esModule", { value: true }); Object.defineProperty(Yn, "default", { enumerable: true, get: () => Yf }); - function Yf(e2) { - if (e2 = `${e2}`, e2 === "0") return "0"; - if (/^[+-]?(\d+|\d*\.\d+)(e[+-]?\d+)?(%|\w+)?$/.test(e2)) return e2.replace(/^[+-]?/, (t2) => t2 === "-" ? "" : "-"); - if (e2.includes("var(") || e2.includes("calc(")) return `calc(${e2} * -1)`; + function Yf(e) { + if (e = `${e}`, e === "0") return "0"; + if (/^[+-]?(\d+|\d*\.\d+)(e[+-]?\d+)?(%|\w+)?$/.test(e)) return e.replace(/^[+-]?/, (t) => t === "-" ? "" : "-"); + if (e.includes("var(") || e.includes("calc(")) return `calc(${e} * -1)`; } }); var Uu = k((Qn) => { @@ -25286,34 +19140,34 @@ var Uu = k((Qn) => { var Gu = k((Kn) => { Object.defineProperty(Kn, "__esModule", { value: true }); Object.defineProperty(Kn, "default", { enumerable: true, get: () => Qf }); - function Qf(e2, t2) { - return e2 === void 0 ? t2 : Array.isArray(e2) ? e2 : [...new Set(t2.filter((r2) => e2 !== false && e2[r2] !== false).concat(Object.keys(e2).filter((r2) => e2[r2] !== false)))]; + function Qf(e, t) { + return e === void 0 ? t : Array.isArray(e) ? e : [...new Set(t.filter((r) => e !== false && e[r] !== false).concat(Object.keys(e).filter((r) => e[r] !== false)))]; } }); var Jn = k((Cb, ju) => { - ju.exports = { content: [], presets: [], darkMode: "media", theme: { screens: { sm: "640px", md: "768px", lg: "1024px", xl: "1280px", "2xl": "1536px" }, colors: ({ colors: e2 }) => ({ inherit: e2.inherit, current: e2.current, transparent: e2.transparent, black: e2.black, white: e2.white, slate: e2.slate, gray: e2.gray, zinc: e2.zinc, neutral: e2.neutral, stone: e2.stone, red: e2.red, orange: e2.orange, amber: e2.amber, yellow: e2.yellow, lime: e2.lime, green: e2.green, emerald: e2.emerald, teal: e2.teal, cyan: e2.cyan, sky: e2.sky, blue: e2.blue, indigo: e2.indigo, violet: e2.violet, purple: e2.purple, fuchsia: e2.fuchsia, pink: e2.pink, rose: e2.rose }), columns: { auto: "auto", 1: "1", 2: "2", 3: "3", 4: "4", 5: "5", 6: "6", 7: "7", 8: "8", 9: "9", 10: "10", 11: "11", 12: "12", "3xs": "16rem", "2xs": "18rem", xs: "20rem", sm: "24rem", md: "28rem", lg: "32rem", xl: "36rem", "2xl": "42rem", "3xl": "48rem", "4xl": "56rem", "5xl": "64rem", "6xl": "72rem", "7xl": "80rem" }, spacing: { px: "1px", 0: "0px", 0.5: "0.125rem", 1: "0.25rem", 1.5: "0.375rem", 2: "0.5rem", 2.5: "0.625rem", 3: "0.75rem", 3.5: "0.875rem", 4: "1rem", 5: "1.25rem", 6: "1.5rem", 7: "1.75rem", 8: "2rem", 9: "2.25rem", 10: "2.5rem", 11: "2.75rem", 12: "3rem", 14: "3.5rem", 16: "4rem", 20: "5rem", 24: "6rem", 28: "7rem", 32: "8rem", 36: "9rem", 40: "10rem", 44: "11rem", 48: "12rem", 52: "13rem", 56: "14rem", 60: "15rem", 64: "16rem", 72: "18rem", 80: "20rem", 96: "24rem" }, animation: { none: "none", spin: "spin 1s linear infinite", ping: "ping 1s cubic-bezier(0, 0, 0.2, 1) infinite", pulse: "pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite", bounce: "bounce 1s infinite" }, aspectRatio: { auto: "auto", square: "1 / 1", video: "16 / 9" }, backdropBlur: ({ theme: e2 }) => e2("blur"), backdropBrightness: ({ theme: e2 }) => e2("brightness"), backdropContrast: ({ theme: e2 }) => e2("contrast"), backdropGrayscale: ({ theme: e2 }) => e2("grayscale"), backdropHueRotate: ({ theme: e2 }) => e2("hueRotate"), backdropInvert: ({ theme: e2 }) => e2("invert"), backdropOpacity: ({ theme: e2 }) => e2("opacity"), backdropSaturate: ({ theme: e2 }) => e2("saturate"), backdropSepia: ({ theme: e2 }) => e2("sepia"), backgroundColor: ({ theme: e2 }) => e2("colors"), backgroundImage: { none: "none", "gradient-to-t": "linear-gradient(to top, var(--tw-gradient-stops))", "gradient-to-tr": "linear-gradient(to top right, var(--tw-gradient-stops))", "gradient-to-r": "linear-gradient(to right, var(--tw-gradient-stops))", "gradient-to-br": "linear-gradient(to bottom right, var(--tw-gradient-stops))", "gradient-to-b": "linear-gradient(to bottom, var(--tw-gradient-stops))", "gradient-to-bl": "linear-gradient(to bottom left, var(--tw-gradient-stops))", "gradient-to-l": "linear-gradient(to left, var(--tw-gradient-stops))", "gradient-to-tl": "linear-gradient(to top left, var(--tw-gradient-stops))" }, backgroundOpacity: ({ theme: e2 }) => e2("opacity"), backgroundPosition: { bottom: "bottom", center: "center", left: "left", "left-bottom": "left bottom", "left-top": "left top", right: "right", "right-bottom": "right bottom", "right-top": "right top", top: "top" }, backgroundSize: { auto: "auto", cover: "cover", contain: "contain" }, blur: { 0: "0", none: "0", sm: "4px", DEFAULT: "8px", md: "12px", lg: "16px", xl: "24px", "2xl": "40px", "3xl": "64px" }, brightness: { 0: "0", 50: ".5", 75: ".75", 90: ".9", 95: ".95", 100: "1", 105: "1.05", 110: "1.1", 125: "1.25", 150: "1.5", 200: "2" }, borderColor: ({ theme: e2 }) => ({ ...e2("colors"), DEFAULT: e2("colors.gray.200", "currentColor") }), borderOpacity: ({ theme: e2 }) => e2("opacity"), borderRadius: { none: "0px", sm: "0.125rem", DEFAULT: "0.25rem", md: "0.375rem", lg: "0.5rem", xl: "0.75rem", "2xl": "1rem", "3xl": "1.5rem", full: "9999px" }, borderSpacing: ({ theme: e2 }) => ({ ...e2("spacing") }), borderWidth: { DEFAULT: "1px", 0: "0px", 2: "2px", 4: "4px", 8: "8px" }, boxShadow: { sm: "0 1px 2px 0 rgb(0 0 0 / 0.05)", DEFAULT: "0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)", md: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)", lg: "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)", xl: "0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)", "2xl": "0 25px 50px -12px rgb(0 0 0 / 0.25)", inner: "inset 0 2px 4px 0 rgb(0 0 0 / 0.05)", none: "none" }, boxShadowColor: ({ theme: e2 }) => e2("colors"), caretColor: ({ theme: e2 }) => e2("colors"), accentColor: ({ theme: e2 }) => ({ ...e2("colors"), auto: "auto" }), contrast: { 0: "0", 50: ".5", 75: ".75", 100: "1", 125: "1.25", 150: "1.5", 200: "2" }, container: {}, content: { none: "none" }, cursor: { auto: "auto", default: "default", pointer: "pointer", wait: "wait", text: "text", move: "move", help: "help", "not-allowed": "not-allowed", none: "none", "context-menu": "context-menu", progress: "progress", cell: "cell", crosshair: "crosshair", "vertical-text": "vertical-text", alias: "alias", copy: "copy", "no-drop": "no-drop", grab: "grab", grabbing: "grabbing", "all-scroll": "all-scroll", "col-resize": "col-resize", "row-resize": "row-resize", "n-resize": "n-resize", "e-resize": "e-resize", "s-resize": "s-resize", "w-resize": "w-resize", "ne-resize": "ne-resize", "nw-resize": "nw-resize", "se-resize": "se-resize", "sw-resize": "sw-resize", "ew-resize": "ew-resize", "ns-resize": "ns-resize", "nesw-resize": "nesw-resize", "nwse-resize": "nwse-resize", "zoom-in": "zoom-in", "zoom-out": "zoom-out" }, divideColor: ({ theme: e2 }) => e2("borderColor"), divideOpacity: ({ theme: e2 }) => e2("borderOpacity"), divideWidth: ({ theme: e2 }) => e2("borderWidth"), dropShadow: { sm: "0 1px 1px rgb(0 0 0 / 0.05)", DEFAULT: ["0 1px 2px rgb(0 0 0 / 0.1)", "0 1px 1px rgb(0 0 0 / 0.06)"], md: ["0 4px 3px rgb(0 0 0 / 0.07)", "0 2px 2px rgb(0 0 0 / 0.06)"], lg: ["0 10px 8px rgb(0 0 0 / 0.04)", "0 4px 3px rgb(0 0 0 / 0.1)"], xl: ["0 20px 13px rgb(0 0 0 / 0.03)", "0 8px 5px rgb(0 0 0 / 0.08)"], "2xl": "0 25px 25px rgb(0 0 0 / 0.15)", none: "0 0 #0000" }, fill: ({ theme: e2 }) => e2("colors"), grayscale: { 0: "0", DEFAULT: "100%" }, hueRotate: { 0: "0deg", 15: "15deg", 30: "30deg", 60: "60deg", 90: "90deg", 180: "180deg" }, invert: { 0: "0", DEFAULT: "100%" }, flex: { 1: "1 1 0%", auto: "1 1 auto", initial: "0 1 auto", none: "none" }, flexBasis: ({ theme: e2 }) => ({ auto: "auto", ...e2("spacing"), "1/2": "50%", "1/3": "33.333333%", "2/3": "66.666667%", "1/4": "25%", "2/4": "50%", "3/4": "75%", "1/5": "20%", "2/5": "40%", "3/5": "60%", "4/5": "80%", "1/6": "16.666667%", "2/6": "33.333333%", "3/6": "50%", "4/6": "66.666667%", "5/6": "83.333333%", "1/12": "8.333333%", "2/12": "16.666667%", "3/12": "25%", "4/12": "33.333333%", "5/12": "41.666667%", "6/12": "50%", "7/12": "58.333333%", "8/12": "66.666667%", "9/12": "75%", "10/12": "83.333333%", "11/12": "91.666667%", full: "100%" }), flexGrow: { 0: "0", DEFAULT: "1" }, flexShrink: { 0: "0", DEFAULT: "1" }, fontFamily: { sans: ["ui-sans-serif", "system-ui", "-apple-system", "BlinkMacSystemFont", '"Segoe UI"', "Roboto", '"Helvetica Neue"', "Arial", '"Noto Sans"', "sans-serif", '"Apple Color Emoji"', '"Segoe UI Emoji"', '"Segoe UI Symbol"', '"Noto Color Emoji"'], serif: ["ui-serif", "Georgia", "Cambria", '"Times New Roman"', "Times", "serif"], mono: ["ui-monospace", "SFMono-Regular", "Menlo", "Monaco", "Consolas", '"Liberation Mono"', '"Courier New"', "monospace"] }, fontSize: { xs: ["0.75rem", { lineHeight: "1rem" }], sm: ["0.875rem", { lineHeight: "1.25rem" }], base: ["1rem", { lineHeight: "1.5rem" }], lg: ["1.125rem", { lineHeight: "1.75rem" }], xl: ["1.25rem", { lineHeight: "1.75rem" }], "2xl": ["1.5rem", { lineHeight: "2rem" }], "3xl": ["1.875rem", { lineHeight: "2.25rem" }], "4xl": ["2.25rem", { lineHeight: "2.5rem" }], "5xl": ["3rem", { lineHeight: "1" }], "6xl": ["3.75rem", { lineHeight: "1" }], "7xl": ["4.5rem", { lineHeight: "1" }], "8xl": ["6rem", { lineHeight: "1" }], "9xl": ["8rem", { lineHeight: "1" }] }, fontWeight: { thin: "100", extralight: "200", light: "300", normal: "400", medium: "500", semibold: "600", bold: "700", extrabold: "800", black: "900" }, gap: ({ theme: e2 }) => e2("spacing"), gradientColorStops: ({ theme: e2 }) => e2("colors"), gridAutoColumns: { auto: "auto", min: "min-content", max: "max-content", fr: "minmax(0, 1fr)" }, gridAutoRows: { auto: "auto", min: "min-content", max: "max-content", fr: "minmax(0, 1fr)" }, gridColumn: { auto: "auto", "span-1": "span 1 / span 1", "span-2": "span 2 / span 2", "span-3": "span 3 / span 3", "span-4": "span 4 / span 4", "span-5": "span 5 / span 5", "span-6": "span 6 / span 6", "span-7": "span 7 / span 7", "span-8": "span 8 / span 8", "span-9": "span 9 / span 9", "span-10": "span 10 / span 10", "span-11": "span 11 / span 11", "span-12": "span 12 / span 12", "span-full": "1 / -1" }, gridColumnEnd: { auto: "auto", 1: "1", 2: "2", 3: "3", 4: "4", 5: "5", 6: "6", 7: "7", 8: "8", 9: "9", 10: "10", 11: "11", 12: "12", 13: "13" }, gridColumnStart: { auto: "auto", 1: "1", 2: "2", 3: "3", 4: "4", 5: "5", 6: "6", 7: "7", 8: "8", 9: "9", 10: "10", 11: "11", 12: "12", 13: "13" }, gridRow: { auto: "auto", "span-1": "span 1 / span 1", "span-2": "span 2 / span 2", "span-3": "span 3 / span 3", "span-4": "span 4 / span 4", "span-5": "span 5 / span 5", "span-6": "span 6 / span 6", "span-full": "1 / -1" }, gridRowStart: { auto: "auto", 1: "1", 2: "2", 3: "3", 4: "4", 5: "5", 6: "6", 7: "7" }, gridRowEnd: { auto: "auto", 1: "1", 2: "2", 3: "3", 4: "4", 5: "5", 6: "6", 7: "7" }, gridTemplateColumns: { none: "none", 1: "repeat(1, minmax(0, 1fr))", 2: "repeat(2, minmax(0, 1fr))", 3: "repeat(3, minmax(0, 1fr))", 4: "repeat(4, minmax(0, 1fr))", 5: "repeat(5, minmax(0, 1fr))", 6: "repeat(6, minmax(0, 1fr))", 7: "repeat(7, minmax(0, 1fr))", 8: "repeat(8, minmax(0, 1fr))", 9: "repeat(9, minmax(0, 1fr))", 10: "repeat(10, minmax(0, 1fr))", 11: "repeat(11, minmax(0, 1fr))", 12: "repeat(12, minmax(0, 1fr))" }, gridTemplateRows: { none: "none", 1: "repeat(1, minmax(0, 1fr))", 2: "repeat(2, minmax(0, 1fr))", 3: "repeat(3, minmax(0, 1fr))", 4: "repeat(4, minmax(0, 1fr))", 5: "repeat(5, minmax(0, 1fr))", 6: "repeat(6, minmax(0, 1fr))" }, height: ({ theme: e2 }) => ({ auto: "auto", ...e2("spacing"), "1/2": "50%", "1/3": "33.333333%", "2/3": "66.666667%", "1/4": "25%", "2/4": "50%", "3/4": "75%", "1/5": "20%", "2/5": "40%", "3/5": "60%", "4/5": "80%", "1/6": "16.666667%", "2/6": "33.333333%", "3/6": "50%", "4/6": "66.666667%", "5/6": "83.333333%", full: "100%", screen: "100vh", min: "min-content", max: "max-content", fit: "fit-content" }), inset: ({ theme: e2 }) => ({ auto: "auto", ...e2("spacing"), "1/2": "50%", "1/3": "33.333333%", "2/3": "66.666667%", "1/4": "25%", "2/4": "50%", "3/4": "75%", full: "100%" }), keyframes: { spin: { to: { transform: "rotate(360deg)" } }, ping: { "75%, 100%": { transform: "scale(2)", opacity: "0" } }, pulse: { "50%": { opacity: ".5" } }, bounce: { "0%, 100%": { transform: "translateY(-25%)", animationTimingFunction: "cubic-bezier(0.8,0,1,1)" }, "50%": { transform: "none", animationTimingFunction: "cubic-bezier(0,0,0.2,1)" } } }, letterSpacing: { tighter: "-0.05em", tight: "-0.025em", normal: "0em", wide: "0.025em", wider: "0.05em", widest: "0.1em" }, lineHeight: { none: "1", tight: "1.25", snug: "1.375", normal: "1.5", relaxed: "1.625", loose: "2", 3: ".75rem", 4: "1rem", 5: "1.25rem", 6: "1.5rem", 7: "1.75rem", 8: "2rem", 9: "2.25rem", 10: "2.5rem" }, listStyleType: { none: "none", disc: "disc", decimal: "decimal" }, margin: ({ theme: e2 }) => ({ auto: "auto", ...e2("spacing") }), maxHeight: ({ theme: e2 }) => ({ ...e2("spacing"), full: "100%", screen: "100vh", min: "min-content", max: "max-content", fit: "fit-content" }), maxWidth: ({ theme: e2, breakpoints: t2 }) => ({ none: "none", 0: "0rem", xs: "20rem", sm: "24rem", md: "28rem", lg: "32rem", xl: "36rem", "2xl": "42rem", "3xl": "48rem", "4xl": "56rem", "5xl": "64rem", "6xl": "72rem", "7xl": "80rem", full: "100%", min: "min-content", max: "max-content", fit: "fit-content", prose: "65ch", ...t2(e2("screens")) }), minHeight: { 0: "0px", full: "100%", screen: "100vh", min: "min-content", max: "max-content", fit: "fit-content" }, minWidth: { 0: "0px", full: "100%", min: "min-content", max: "max-content", fit: "fit-content" }, objectPosition: { bottom: "bottom", center: "center", left: "left", "left-bottom": "left bottom", "left-top": "left top", right: "right", "right-bottom": "right bottom", "right-top": "right top", top: "top" }, opacity: { 0: "0", 5: "0.05", 10: "0.1", 20: "0.2", 25: "0.25", 30: "0.3", 40: "0.4", 50: "0.5", 60: "0.6", 70: "0.7", 75: "0.75", 80: "0.8", 90: "0.9", 95: "0.95", 100: "1" }, order: { first: "-9999", last: "9999", none: "0", 1: "1", 2: "2", 3: "3", 4: "4", 5: "5", 6: "6", 7: "7", 8: "8", 9: "9", 10: "10", 11: "11", 12: "12" }, padding: ({ theme: e2 }) => e2("spacing"), placeholderColor: ({ theme: e2 }) => e2("colors"), placeholderOpacity: ({ theme: e2 }) => e2("opacity"), outlineColor: ({ theme: e2 }) => e2("colors"), outlineOffset: { 0: "0px", 1: "1px", 2: "2px", 4: "4px", 8: "8px" }, outlineWidth: { 0: "0px", 1: "1px", 2: "2px", 4: "4px", 8: "8px" }, ringColor: ({ theme: e2 }) => ({ DEFAULT: e2("colors.blue.500", "#3b82f6"), ...e2("colors") }), ringOffsetColor: ({ theme: e2 }) => e2("colors"), ringOffsetWidth: { 0: "0px", 1: "1px", 2: "2px", 4: "4px", 8: "8px" }, ringOpacity: ({ theme: e2 }) => ({ DEFAULT: "0.5", ...e2("opacity") }), ringWidth: { DEFAULT: "3px", 0: "0px", 1: "1px", 2: "2px", 4: "4px", 8: "8px" }, rotate: { 0: "0deg", 1: "1deg", 2: "2deg", 3: "3deg", 6: "6deg", 12: "12deg", 45: "45deg", 90: "90deg", 180: "180deg" }, saturate: { 0: "0", 50: ".5", 100: "1", 150: "1.5", 200: "2" }, scale: { 0: "0", 50: ".5", 75: ".75", 90: ".9", 95: ".95", 100: "1", 105: "1.05", 110: "1.1", 125: "1.25", 150: "1.5" }, scrollMargin: ({ theme: e2 }) => ({ ...e2("spacing") }), scrollPadding: ({ theme: e2 }) => e2("spacing"), sepia: { 0: "0", DEFAULT: "100%" }, skew: { 0: "0deg", 1: "1deg", 2: "2deg", 3: "3deg", 6: "6deg", 12: "12deg" }, space: ({ theme: e2 }) => ({ ...e2("spacing") }), stroke: ({ theme: e2 }) => e2("colors"), strokeWidth: { 0: "0", 1: "1", 2: "2" }, textColor: ({ theme: e2 }) => e2("colors"), textDecorationColor: ({ theme: e2 }) => e2("colors"), textDecorationThickness: { auto: "auto", "from-font": "from-font", 0: "0px", 1: "1px", 2: "2px", 4: "4px", 8: "8px" }, textUnderlineOffset: { auto: "auto", 0: "0px", 1: "1px", 2: "2px", 4: "4px", 8: "8px" }, textIndent: ({ theme: e2 }) => ({ ...e2("spacing") }), textOpacity: ({ theme: e2 }) => e2("opacity"), transformOrigin: { center: "center", top: "top", "top-right": "top right", right: "right", "bottom-right": "bottom right", bottom: "bottom", "bottom-left": "bottom left", left: "left", "top-left": "top left" }, transitionDelay: { 75: "75ms", 100: "100ms", 150: "150ms", 200: "200ms", 300: "300ms", 500: "500ms", 700: "700ms", 1e3: "1000ms" }, transitionDuration: { DEFAULT: "150ms", 75: "75ms", 100: "100ms", 150: "150ms", 200: "200ms", 300: "300ms", 500: "500ms", 700: "700ms", 1e3: "1000ms" }, transitionProperty: { none: "none", all: "all", DEFAULT: "color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter", colors: "color, background-color, border-color, text-decoration-color, fill, stroke", opacity: "opacity", shadow: "box-shadow", transform: "transform" }, transitionTimingFunction: { DEFAULT: "cubic-bezier(0.4, 0, 0.2, 1)", linear: "linear", in: "cubic-bezier(0.4, 0, 1, 1)", out: "cubic-bezier(0, 0, 0.2, 1)", "in-out": "cubic-bezier(0.4, 0, 0.2, 1)" }, translate: ({ theme: e2 }) => ({ ...e2("spacing"), "1/2": "50%", "1/3": "33.333333%", "2/3": "66.666667%", "1/4": "25%", "2/4": "50%", "3/4": "75%", full: "100%" }), width: ({ theme: e2 }) => ({ auto: "auto", ...e2("spacing"), "1/2": "50%", "1/3": "33.333333%", "2/3": "66.666667%", "1/4": "25%", "2/4": "50%", "3/4": "75%", "1/5": "20%", "2/5": "40%", "3/5": "60%", "4/5": "80%", "1/6": "16.666667%", "2/6": "33.333333%", "3/6": "50%", "4/6": "66.666667%", "5/6": "83.333333%", "1/12": "8.333333%", "2/12": "16.666667%", "3/12": "25%", "4/12": "33.333333%", "5/12": "41.666667%", "6/12": "50%", "7/12": "58.333333%", "8/12": "66.666667%", "9/12": "75%", "10/12": "83.333333%", "11/12": "91.666667%", full: "100%", screen: "100vw", min: "min-content", max: "max-content", fit: "fit-content" }), willChange: { auto: "auto", scroll: "scroll-position", contents: "contents", transform: "transform" }, zIndex: { auto: "auto", 0: "0", 10: "10", 20: "20", 30: "30", 40: "40", 50: "50" } }, variantOrder: ["first", "last", "odd", "even", "visited", "checked", "empty", "read-only", "group-hover", "group-focus", "focus-within", "hover", "focus", "focus-visible", "active", "disabled"], plugins: [] }; + ju.exports = { content: [], presets: [], darkMode: "media", theme: { screens: { sm: "640px", md: "768px", lg: "1024px", xl: "1280px", "2xl": "1536px" }, colors: ({ colors: e }) => ({ inherit: e.inherit, current: e.current, transparent: e.transparent, black: e.black, white: e.white, slate: e.slate, gray: e.gray, zinc: e.zinc, neutral: e.neutral, stone: e.stone, red: e.red, orange: e.orange, amber: e.amber, yellow: e.yellow, lime: e.lime, green: e.green, emerald: e.emerald, teal: e.teal, cyan: e.cyan, sky: e.sky, blue: e.blue, indigo: e.indigo, violet: e.violet, purple: e.purple, fuchsia: e.fuchsia, pink: e.pink, rose: e.rose }), columns: { auto: "auto", 1: "1", 2: "2", 3: "3", 4: "4", 5: "5", 6: "6", 7: "7", 8: "8", 9: "9", 10: "10", 11: "11", 12: "12", "3xs": "16rem", "2xs": "18rem", xs: "20rem", sm: "24rem", md: "28rem", lg: "32rem", xl: "36rem", "2xl": "42rem", "3xl": "48rem", "4xl": "56rem", "5xl": "64rem", "6xl": "72rem", "7xl": "80rem" }, spacing: { px: "1px", 0: "0px", 0.5: "0.125rem", 1: "0.25rem", 1.5: "0.375rem", 2: "0.5rem", 2.5: "0.625rem", 3: "0.75rem", 3.5: "0.875rem", 4: "1rem", 5: "1.25rem", 6: "1.5rem", 7: "1.75rem", 8: "2rem", 9: "2.25rem", 10: "2.5rem", 11: "2.75rem", 12: "3rem", 14: "3.5rem", 16: "4rem", 20: "5rem", 24: "6rem", 28: "7rem", 32: "8rem", 36: "9rem", 40: "10rem", 44: "11rem", 48: "12rem", 52: "13rem", 56: "14rem", 60: "15rem", 64: "16rem", 72: "18rem", 80: "20rem", 96: "24rem" }, animation: { none: "none", spin: "spin 1s linear infinite", ping: "ping 1s cubic-bezier(0, 0, 0.2, 1) infinite", pulse: "pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite", bounce: "bounce 1s infinite" }, aspectRatio: { auto: "auto", square: "1 / 1", video: "16 / 9" }, backdropBlur: ({ theme: e }) => e("blur"), backdropBrightness: ({ theme: e }) => e("brightness"), backdropContrast: ({ theme: e }) => e("contrast"), backdropGrayscale: ({ theme: e }) => e("grayscale"), backdropHueRotate: ({ theme: e }) => e("hueRotate"), backdropInvert: ({ theme: e }) => e("invert"), backdropOpacity: ({ theme: e }) => e("opacity"), backdropSaturate: ({ theme: e }) => e("saturate"), backdropSepia: ({ theme: e }) => e("sepia"), backgroundColor: ({ theme: e }) => e("colors"), backgroundImage: { none: "none", "gradient-to-t": "linear-gradient(to top, var(--tw-gradient-stops))", "gradient-to-tr": "linear-gradient(to top right, var(--tw-gradient-stops))", "gradient-to-r": "linear-gradient(to right, var(--tw-gradient-stops))", "gradient-to-br": "linear-gradient(to bottom right, var(--tw-gradient-stops))", "gradient-to-b": "linear-gradient(to bottom, var(--tw-gradient-stops))", "gradient-to-bl": "linear-gradient(to bottom left, var(--tw-gradient-stops))", "gradient-to-l": "linear-gradient(to left, var(--tw-gradient-stops))", "gradient-to-tl": "linear-gradient(to top left, var(--tw-gradient-stops))" }, backgroundOpacity: ({ theme: e }) => e("opacity"), backgroundPosition: { bottom: "bottom", center: "center", left: "left", "left-bottom": "left bottom", "left-top": "left top", right: "right", "right-bottom": "right bottom", "right-top": "right top", top: "top" }, backgroundSize: { auto: "auto", cover: "cover", contain: "contain" }, blur: { 0: "0", none: "0", sm: "4px", DEFAULT: "8px", md: "12px", lg: "16px", xl: "24px", "2xl": "40px", "3xl": "64px" }, brightness: { 0: "0", 50: ".5", 75: ".75", 90: ".9", 95: ".95", 100: "1", 105: "1.05", 110: "1.1", 125: "1.25", 150: "1.5", 200: "2" }, borderColor: ({ theme: e }) => ({ ...e("colors"), DEFAULT: e("colors.gray.200", "currentColor") }), borderOpacity: ({ theme: e }) => e("opacity"), borderRadius: { none: "0px", sm: "0.125rem", DEFAULT: "0.25rem", md: "0.375rem", lg: "0.5rem", xl: "0.75rem", "2xl": "1rem", "3xl": "1.5rem", full: "9999px" }, borderSpacing: ({ theme: e }) => ({ ...e("spacing") }), borderWidth: { DEFAULT: "1px", 0: "0px", 2: "2px", 4: "4px", 8: "8px" }, boxShadow: { sm: "0 1px 2px 0 rgb(0 0 0 / 0.05)", DEFAULT: "0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)", md: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)", lg: "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)", xl: "0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)", "2xl": "0 25px 50px -12px rgb(0 0 0 / 0.25)", inner: "inset 0 2px 4px 0 rgb(0 0 0 / 0.05)", none: "none" }, boxShadowColor: ({ theme: e }) => e("colors"), caretColor: ({ theme: e }) => e("colors"), accentColor: ({ theme: e }) => ({ ...e("colors"), auto: "auto" }), contrast: { 0: "0", 50: ".5", 75: ".75", 100: "1", 125: "1.25", 150: "1.5", 200: "2" }, container: {}, content: { none: "none" }, cursor: { auto: "auto", default: "default", pointer: "pointer", wait: "wait", text: "text", move: "move", help: "help", "not-allowed": "not-allowed", none: "none", "context-menu": "context-menu", progress: "progress", cell: "cell", crosshair: "crosshair", "vertical-text": "vertical-text", alias: "alias", copy: "copy", "no-drop": "no-drop", grab: "grab", grabbing: "grabbing", "all-scroll": "all-scroll", "col-resize": "col-resize", "row-resize": "row-resize", "n-resize": "n-resize", "e-resize": "e-resize", "s-resize": "s-resize", "w-resize": "w-resize", "ne-resize": "ne-resize", "nw-resize": "nw-resize", "se-resize": "se-resize", "sw-resize": "sw-resize", "ew-resize": "ew-resize", "ns-resize": "ns-resize", "nesw-resize": "nesw-resize", "nwse-resize": "nwse-resize", "zoom-in": "zoom-in", "zoom-out": "zoom-out" }, divideColor: ({ theme: e }) => e("borderColor"), divideOpacity: ({ theme: e }) => e("borderOpacity"), divideWidth: ({ theme: e }) => e("borderWidth"), dropShadow: { sm: "0 1px 1px rgb(0 0 0 / 0.05)", DEFAULT: ["0 1px 2px rgb(0 0 0 / 0.1)", "0 1px 1px rgb(0 0 0 / 0.06)"], md: ["0 4px 3px rgb(0 0 0 / 0.07)", "0 2px 2px rgb(0 0 0 / 0.06)"], lg: ["0 10px 8px rgb(0 0 0 / 0.04)", "0 4px 3px rgb(0 0 0 / 0.1)"], xl: ["0 20px 13px rgb(0 0 0 / 0.03)", "0 8px 5px rgb(0 0 0 / 0.08)"], "2xl": "0 25px 25px rgb(0 0 0 / 0.15)", none: "0 0 #0000" }, fill: ({ theme: e }) => e("colors"), grayscale: { 0: "0", DEFAULT: "100%" }, hueRotate: { 0: "0deg", 15: "15deg", 30: "30deg", 60: "60deg", 90: "90deg", 180: "180deg" }, invert: { 0: "0", DEFAULT: "100%" }, flex: { 1: "1 1 0%", auto: "1 1 auto", initial: "0 1 auto", none: "none" }, flexBasis: ({ theme: e }) => ({ auto: "auto", ...e("spacing"), "1/2": "50%", "1/3": "33.333333%", "2/3": "66.666667%", "1/4": "25%", "2/4": "50%", "3/4": "75%", "1/5": "20%", "2/5": "40%", "3/5": "60%", "4/5": "80%", "1/6": "16.666667%", "2/6": "33.333333%", "3/6": "50%", "4/6": "66.666667%", "5/6": "83.333333%", "1/12": "8.333333%", "2/12": "16.666667%", "3/12": "25%", "4/12": "33.333333%", "5/12": "41.666667%", "6/12": "50%", "7/12": "58.333333%", "8/12": "66.666667%", "9/12": "75%", "10/12": "83.333333%", "11/12": "91.666667%", full: "100%" }), flexGrow: { 0: "0", DEFAULT: "1" }, flexShrink: { 0: "0", DEFAULT: "1" }, fontFamily: { sans: ["ui-sans-serif", "system-ui", "-apple-system", "BlinkMacSystemFont", '"Segoe UI"', "Roboto", '"Helvetica Neue"', "Arial", '"Noto Sans"', "sans-serif", '"Apple Color Emoji"', '"Segoe UI Emoji"', '"Segoe UI Symbol"', '"Noto Color Emoji"'], serif: ["ui-serif", "Georgia", "Cambria", '"Times New Roman"', "Times", "serif"], mono: ["ui-monospace", "SFMono-Regular", "Menlo", "Monaco", "Consolas", '"Liberation Mono"', '"Courier New"', "monospace"] }, fontSize: { xs: ["0.75rem", { lineHeight: "1rem" }], sm: ["0.875rem", { lineHeight: "1.25rem" }], base: ["1rem", { lineHeight: "1.5rem" }], lg: ["1.125rem", { lineHeight: "1.75rem" }], xl: ["1.25rem", { lineHeight: "1.75rem" }], "2xl": ["1.5rem", { lineHeight: "2rem" }], "3xl": ["1.875rem", { lineHeight: "2.25rem" }], "4xl": ["2.25rem", { lineHeight: "2.5rem" }], "5xl": ["3rem", { lineHeight: "1" }], "6xl": ["3.75rem", { lineHeight: "1" }], "7xl": ["4.5rem", { lineHeight: "1" }], "8xl": ["6rem", { lineHeight: "1" }], "9xl": ["8rem", { lineHeight: "1" }] }, fontWeight: { thin: "100", extralight: "200", light: "300", normal: "400", medium: "500", semibold: "600", bold: "700", extrabold: "800", black: "900" }, gap: ({ theme: e }) => e("spacing"), gradientColorStops: ({ theme: e }) => e("colors"), gridAutoColumns: { auto: "auto", min: "min-content", max: "max-content", fr: "minmax(0, 1fr)" }, gridAutoRows: { auto: "auto", min: "min-content", max: "max-content", fr: "minmax(0, 1fr)" }, gridColumn: { auto: "auto", "span-1": "span 1 / span 1", "span-2": "span 2 / span 2", "span-3": "span 3 / span 3", "span-4": "span 4 / span 4", "span-5": "span 5 / span 5", "span-6": "span 6 / span 6", "span-7": "span 7 / span 7", "span-8": "span 8 / span 8", "span-9": "span 9 / span 9", "span-10": "span 10 / span 10", "span-11": "span 11 / span 11", "span-12": "span 12 / span 12", "span-full": "1 / -1" }, gridColumnEnd: { auto: "auto", 1: "1", 2: "2", 3: "3", 4: "4", 5: "5", 6: "6", 7: "7", 8: "8", 9: "9", 10: "10", 11: "11", 12: "12", 13: "13" }, gridColumnStart: { auto: "auto", 1: "1", 2: "2", 3: "3", 4: "4", 5: "5", 6: "6", 7: "7", 8: "8", 9: "9", 10: "10", 11: "11", 12: "12", 13: "13" }, gridRow: { auto: "auto", "span-1": "span 1 / span 1", "span-2": "span 2 / span 2", "span-3": "span 3 / span 3", "span-4": "span 4 / span 4", "span-5": "span 5 / span 5", "span-6": "span 6 / span 6", "span-full": "1 / -1" }, gridRowStart: { auto: "auto", 1: "1", 2: "2", 3: "3", 4: "4", 5: "5", 6: "6", 7: "7" }, gridRowEnd: { auto: "auto", 1: "1", 2: "2", 3: "3", 4: "4", 5: "5", 6: "6", 7: "7" }, gridTemplateColumns: { none: "none", 1: "repeat(1, minmax(0, 1fr))", 2: "repeat(2, minmax(0, 1fr))", 3: "repeat(3, minmax(0, 1fr))", 4: "repeat(4, minmax(0, 1fr))", 5: "repeat(5, minmax(0, 1fr))", 6: "repeat(6, minmax(0, 1fr))", 7: "repeat(7, minmax(0, 1fr))", 8: "repeat(8, minmax(0, 1fr))", 9: "repeat(9, minmax(0, 1fr))", 10: "repeat(10, minmax(0, 1fr))", 11: "repeat(11, minmax(0, 1fr))", 12: "repeat(12, minmax(0, 1fr))" }, gridTemplateRows: { none: "none", 1: "repeat(1, minmax(0, 1fr))", 2: "repeat(2, minmax(0, 1fr))", 3: "repeat(3, minmax(0, 1fr))", 4: "repeat(4, minmax(0, 1fr))", 5: "repeat(5, minmax(0, 1fr))", 6: "repeat(6, minmax(0, 1fr))" }, height: ({ theme: e }) => ({ auto: "auto", ...e("spacing"), "1/2": "50%", "1/3": "33.333333%", "2/3": "66.666667%", "1/4": "25%", "2/4": "50%", "3/4": "75%", "1/5": "20%", "2/5": "40%", "3/5": "60%", "4/5": "80%", "1/6": "16.666667%", "2/6": "33.333333%", "3/6": "50%", "4/6": "66.666667%", "5/6": "83.333333%", full: "100%", screen: "100vh", min: "min-content", max: "max-content", fit: "fit-content" }), inset: ({ theme: e }) => ({ auto: "auto", ...e("spacing"), "1/2": "50%", "1/3": "33.333333%", "2/3": "66.666667%", "1/4": "25%", "2/4": "50%", "3/4": "75%", full: "100%" }), keyframes: { spin: { to: { transform: "rotate(360deg)" } }, ping: { "75%, 100%": { transform: "scale(2)", opacity: "0" } }, pulse: { "50%": { opacity: ".5" } }, bounce: { "0%, 100%": { transform: "translateY(-25%)", animationTimingFunction: "cubic-bezier(0.8,0,1,1)" }, "50%": { transform: "none", animationTimingFunction: "cubic-bezier(0,0,0.2,1)" } } }, letterSpacing: { tighter: "-0.05em", tight: "-0.025em", normal: "0em", wide: "0.025em", wider: "0.05em", widest: "0.1em" }, lineHeight: { none: "1", tight: "1.25", snug: "1.375", normal: "1.5", relaxed: "1.625", loose: "2", 3: ".75rem", 4: "1rem", 5: "1.25rem", 6: "1.5rem", 7: "1.75rem", 8: "2rem", 9: "2.25rem", 10: "2.5rem" }, listStyleType: { none: "none", disc: "disc", decimal: "decimal" }, margin: ({ theme: e }) => ({ auto: "auto", ...e("spacing") }), maxHeight: ({ theme: e }) => ({ ...e("spacing"), full: "100%", screen: "100vh", min: "min-content", max: "max-content", fit: "fit-content" }), maxWidth: ({ theme: e, breakpoints: t }) => ({ none: "none", 0: "0rem", xs: "20rem", sm: "24rem", md: "28rem", lg: "32rem", xl: "36rem", "2xl": "42rem", "3xl": "48rem", "4xl": "56rem", "5xl": "64rem", "6xl": "72rem", "7xl": "80rem", full: "100%", min: "min-content", max: "max-content", fit: "fit-content", prose: "65ch", ...t(e("screens")) }), minHeight: { 0: "0px", full: "100%", screen: "100vh", min: "min-content", max: "max-content", fit: "fit-content" }, minWidth: { 0: "0px", full: "100%", min: "min-content", max: "max-content", fit: "fit-content" }, objectPosition: { bottom: "bottom", center: "center", left: "left", "left-bottom": "left bottom", "left-top": "left top", right: "right", "right-bottom": "right bottom", "right-top": "right top", top: "top" }, opacity: { 0: "0", 5: "0.05", 10: "0.1", 20: "0.2", 25: "0.25", 30: "0.3", 40: "0.4", 50: "0.5", 60: "0.6", 70: "0.7", 75: "0.75", 80: "0.8", 90: "0.9", 95: "0.95", 100: "1" }, order: { first: "-9999", last: "9999", none: "0", 1: "1", 2: "2", 3: "3", 4: "4", 5: "5", 6: "6", 7: "7", 8: "8", 9: "9", 10: "10", 11: "11", 12: "12" }, padding: ({ theme: e }) => e("spacing"), placeholderColor: ({ theme: e }) => e("colors"), placeholderOpacity: ({ theme: e }) => e("opacity"), outlineColor: ({ theme: e }) => e("colors"), outlineOffset: { 0: "0px", 1: "1px", 2: "2px", 4: "4px", 8: "8px" }, outlineWidth: { 0: "0px", 1: "1px", 2: "2px", 4: "4px", 8: "8px" }, ringColor: ({ theme: e }) => ({ DEFAULT: e("colors.blue.500", "#3b82f6"), ...e("colors") }), ringOffsetColor: ({ theme: e }) => e("colors"), ringOffsetWidth: { 0: "0px", 1: "1px", 2: "2px", 4: "4px", 8: "8px" }, ringOpacity: ({ theme: e }) => ({ DEFAULT: "0.5", ...e("opacity") }), ringWidth: { DEFAULT: "3px", 0: "0px", 1: "1px", 2: "2px", 4: "4px", 8: "8px" }, rotate: { 0: "0deg", 1: "1deg", 2: "2deg", 3: "3deg", 6: "6deg", 12: "12deg", 45: "45deg", 90: "90deg", 180: "180deg" }, saturate: { 0: "0", 50: ".5", 100: "1", 150: "1.5", 200: "2" }, scale: { 0: "0", 50: ".5", 75: ".75", 90: ".9", 95: ".95", 100: "1", 105: "1.05", 110: "1.1", 125: "1.25", 150: "1.5" }, scrollMargin: ({ theme: e }) => ({ ...e("spacing") }), scrollPadding: ({ theme: e }) => e("spacing"), sepia: { 0: "0", DEFAULT: "100%" }, skew: { 0: "0deg", 1: "1deg", 2: "2deg", 3: "3deg", 6: "6deg", 12: "12deg" }, space: ({ theme: e }) => ({ ...e("spacing") }), stroke: ({ theme: e }) => e("colors"), strokeWidth: { 0: "0", 1: "1", 2: "2" }, textColor: ({ theme: e }) => e("colors"), textDecorationColor: ({ theme: e }) => e("colors"), textDecorationThickness: { auto: "auto", "from-font": "from-font", 0: "0px", 1: "1px", 2: "2px", 4: "4px", 8: "8px" }, textUnderlineOffset: { auto: "auto", 0: "0px", 1: "1px", 2: "2px", 4: "4px", 8: "8px" }, textIndent: ({ theme: e }) => ({ ...e("spacing") }), textOpacity: ({ theme: e }) => e("opacity"), transformOrigin: { center: "center", top: "top", "top-right": "top right", right: "right", "bottom-right": "bottom right", bottom: "bottom", "bottom-left": "bottom left", left: "left", "top-left": "top left" }, transitionDelay: { 75: "75ms", 100: "100ms", 150: "150ms", 200: "200ms", 300: "300ms", 500: "500ms", 700: "700ms", 1e3: "1000ms" }, transitionDuration: { DEFAULT: "150ms", 75: "75ms", 100: "100ms", 150: "150ms", 200: "200ms", 300: "300ms", 500: "500ms", 700: "700ms", 1e3: "1000ms" }, transitionProperty: { none: "none", all: "all", DEFAULT: "color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter", colors: "color, background-color, border-color, text-decoration-color, fill, stroke", opacity: "opacity", shadow: "box-shadow", transform: "transform" }, transitionTimingFunction: { DEFAULT: "cubic-bezier(0.4, 0, 0.2, 1)", linear: "linear", in: "cubic-bezier(0.4, 0, 1, 1)", out: "cubic-bezier(0, 0, 0.2, 1)", "in-out": "cubic-bezier(0.4, 0, 0.2, 1)" }, translate: ({ theme: e }) => ({ ...e("spacing"), "1/2": "50%", "1/3": "33.333333%", "2/3": "66.666667%", "1/4": "25%", "2/4": "50%", "3/4": "75%", full: "100%" }), width: ({ theme: e }) => ({ auto: "auto", ...e("spacing"), "1/2": "50%", "1/3": "33.333333%", "2/3": "66.666667%", "1/4": "25%", "2/4": "50%", "3/4": "75%", "1/5": "20%", "2/5": "40%", "3/5": "60%", "4/5": "80%", "1/6": "16.666667%", "2/6": "33.333333%", "3/6": "50%", "4/6": "66.666667%", "5/6": "83.333333%", "1/12": "8.333333%", "2/12": "16.666667%", "3/12": "25%", "4/12": "33.333333%", "5/12": "41.666667%", "6/12": "50%", "7/12": "58.333333%", "8/12": "66.666667%", "9/12": "75%", "10/12": "83.333333%", "11/12": "91.666667%", full: "100%", screen: "100vw", min: "min-content", max: "max-content", fit: "fit-content" }), willChange: { auto: "auto", scroll: "scroll-position", contents: "contents", transform: "transform" }, zIndex: { auto: "auto", 0: "0", 10: "10", 20: "20", 30: "30", 40: "40", 50: "50" } }, variantOrder: ["first", "last", "odd", "even", "visited", "checked", "empty", "read-only", "group-hover", "group-focus", "focus-within", "hover", "focus", "focus-visible", "active", "disabled"], plugins: [] }; }); var Kr = {}; Fn(Kr, { default: () => Kf }); var Kf; var Jr = xn(() => { - Kf = { info(e2, t2) { - console.info(...Array.isArray(e2) ? [e2] : [t2, e2]); - }, warn(e2, t2) { - console.warn(...Array.isArray(e2) ? [e2] : [t2, e2]); - }, risk(e2, t2) { - console.error(...Array.isArray(e2) ? [e2] : [t2, e2]); + Kf = { info(e, t) { + console.info(...Array.isArray(e) ? [e] : [t, e]); + }, warn(e, t) { + console.warn(...Array.isArray(e) ? [e] : [t, e]); + }, risk(e, t) { + console.error(...Array.isArray(e) ? [e] : [t, e]); } }; }); var Hu = k((Zn) => { Object.defineProperty(Zn, "__esModule", { value: true }); Object.defineProperty(Zn, "default", { enumerable: true, get: () => ec2 }); var Jf = Zf((Jr(), Ir(Kr))); - function Zf(e2) { - return e2 && e2.__esModule ? e2 : { default: e2 }; + function Zf(e) { + return e && e.__esModule ? e : { default: e }; } - function zt({ version: e2, from: t2, to: n2 }) { - Jf.default.warn(`${t2}-color-renamed`, [`As of Tailwind CSS ${e2}, \`${t2}\` has been renamed to \`${n2}\`.`, "Update your configuration file to silence this warning."]); + function zt({ version: e, from: t, to: n }) { + Jf.default.warn(`${t}-color-renamed`, [`As of Tailwind CSS ${e}, \`${t}\` has been renamed to \`${n}\`.`, "Update your configuration file to silence this warning."]); } var ec2 = { inherit: "inherit", current: "currentColor", transparent: "transparent", black: "#000", white: "#fff", slate: { 50: "#f8fafc", 100: "#f1f5f9", 200: "#e2e8f0", 300: "#cbd5e1", 400: "#94a3b8", 500: "#64748b", 600: "#475569", 700: "#334155", 800: "#1e293b", 900: "#0f172a" }, gray: { 50: "#f9fafb", 100: "#f3f4f6", 200: "#e5e7eb", 300: "#d1d5db", 400: "#9ca3af", 500: "#6b7280", 600: "#4b5563", 700: "#374151", 800: "#1f2937", 900: "#111827" }, zinc: { 50: "#fafafa", 100: "#f4f4f5", 200: "#e4e4e7", 300: "#d4d4d8", 400: "#a1a1aa", 500: "#71717a", 600: "#52525b", 700: "#3f3f46", 800: "#27272a", 900: "#18181b" }, neutral: { 50: "#fafafa", 100: "#f5f5f5", 200: "#e5e5e5", 300: "#d4d4d4", 400: "#a3a3a3", 500: "#737373", 600: "#525252", 700: "#404040", 800: "#262626", 900: "#171717" }, stone: { 50: "#fafaf9", 100: "#f5f5f4", 200: "#e7e5e4", 300: "#d6d3d1", 400: "#a8a29e", 500: "#78716c", 600: "#57534e", 700: "#44403c", 800: "#292524", 900: "#1c1917" }, red: { 50: "#fef2f2", 100: "#fee2e2", 200: "#fecaca", 300: "#fca5a5", 400: "#f87171", 500: "#ef4444", 600: "#dc2626", 700: "#b91c1c", 800: "#991b1b", 900: "#7f1d1d" }, orange: { 50: "#fff7ed", 100: "#ffedd5", 200: "#fed7aa", 300: "#fdba74", 400: "#fb923c", 500: "#f97316", 600: "#ea580c", 700: "#c2410c", 800: "#9a3412", 900: "#7c2d12" }, amber: { 50: "#fffbeb", 100: "#fef3c7", 200: "#fde68a", 300: "#fcd34d", 400: "#fbbf24", 500: "#f59e0b", 600: "#d97706", 700: "#b45309", 800: "#92400e", 900: "#78350f" }, yellow: { 50: "#fefce8", 100: "#fef9c3", 200: "#fef08a", 300: "#fde047", 400: "#facc15", 500: "#eab308", 600: "#ca8a04", 700: "#a16207", 800: "#854d0e", 900: "#713f12" }, lime: { 50: "#f7fee7", 100: "#ecfccb", 200: "#d9f99d", 300: "#bef264", 400: "#a3e635", 500: "#84cc16", 600: "#65a30d", 700: "#4d7c0f", 800: "#3f6212", 900: "#365314" }, green: { 50: "#f0fdf4", 100: "#dcfce7", 200: "#bbf7d0", 300: "#86efac", 400: "#4ade80", 500: "#22c55e", 600: "#16a34a", 700: "#15803d", 800: "#166534", 900: "#14532d" }, emerald: { 50: "#ecfdf5", 100: "#d1fae5", 200: "#a7f3d0", 300: "#6ee7b7", 400: "#34d399", 500: "#10b981", 600: "#059669", 700: "#047857", 800: "#065f46", 900: "#064e3b" }, teal: { 50: "#f0fdfa", 100: "#ccfbf1", 200: "#99f6e4", 300: "#5eead4", 400: "#2dd4bf", 500: "#14b8a6", 600: "#0d9488", 700: "#0f766e", 800: "#115e59", 900: "#134e4a" }, cyan: { 50: "#ecfeff", 100: "#cffafe", 200: "#a5f3fc", 300: "#67e8f9", 400: "#22d3ee", 500: "#06b6d4", 600: "#0891b2", 700: "#0e7490", 800: "#155e75", 900: "#164e63" }, sky: { 50: "#f0f9ff", 100: "#e0f2fe", 200: "#bae6fd", 300: "#7dd3fc", 400: "#38bdf8", 500: "#0ea5e9", 600: "#0284c7", 700: "#0369a1", 800: "#075985", 900: "#0c4a6e" }, blue: { 50: "#eff6ff", 100: "#dbeafe", 200: "#bfdbfe", 300: "#93c5fd", 400: "#60a5fa", 500: "#3b82f6", 600: "#2563eb", 700: "#1d4ed8", 800: "#1e40af", 900: "#1e3a8a" }, indigo: { 50: "#eef2ff", 100: "#e0e7ff", 200: "#c7d2fe", 300: "#a5b4fc", 400: "#818cf8", 500: "#6366f1", 600: "#4f46e5", 700: "#4338ca", 800: "#3730a3", 900: "#312e81" }, violet: { 50: "#f5f3ff", 100: "#ede9fe", 200: "#ddd6fe", 300: "#c4b5fd", 400: "#a78bfa", 500: "#8b5cf6", 600: "#7c3aed", 700: "#6d28d9", 800: "#5b21b6", 900: "#4c1d95" }, purple: { 50: "#faf5ff", 100: "#f3e8ff", 200: "#e9d5ff", 300: "#d8b4fe", 400: "#c084fc", 500: "#a855f7", 600: "#9333ea", 700: "#7e22ce", 800: "#6b21a8", 900: "#581c87" }, fuchsia: { 50: "#fdf4ff", 100: "#fae8ff", 200: "#f5d0fe", 300: "#f0abfc", 400: "#e879f9", 500: "#d946ef", 600: "#c026d3", 700: "#a21caf", 800: "#86198f", 900: "#701a75" }, pink: { 50: "#fdf2f8", 100: "#fce7f3", 200: "#fbcfe8", 300: "#f9a8d4", 400: "#f472b6", 500: "#ec4899", 600: "#db2777", 700: "#be185d", 800: "#9d174d", 900: "#831843" }, rose: { 50: "#fff1f2", 100: "#ffe4e6", 200: "#fecdd3", 300: "#fda4af", 400: "#fb7185", 500: "#f43f5e", 600: "#e11d48", 700: "#be123c", 800: "#9f1239", 900: "#881337" }, get lightBlue() { return zt({ version: "v2.2", from: "lightBlue", to: "sky" }), this.sky; @@ -25330,186 +19184,186 @@ var Hu = k((Zn) => { var Vu = k((ei) => { Object.defineProperty(ei, "__esModule", { value: true }); Object.defineProperty(ei, "defaults", { enumerable: true, get: () => tc }); - function tc(e2, ...t2) { - for (let i2 of t2) { - for (let o2 in i2) { - var n2; - !(e2 == null || (n2 = e2.hasOwnProperty) === null || n2 === void 0) && n2.call(e2, o2) || (e2[o2] = i2[o2]); + function tc(e, ...t) { + for (let i of t) { + for (let o in i) { + var n; + !(e == null || (n = e.hasOwnProperty) === null || n === void 0) && n.call(e, o) || (e[o] = i[o]); } - for (let o2 of Object.getOwnPropertySymbols(i2)) { - var r2; - !(e2 == null || (r2 = e2.hasOwnProperty) === null || r2 === void 0) && r2.call(e2, o2) || (e2[o2] = i2[o2]); + for (let o of Object.getOwnPropertySymbols(i)) { + var r; + !(e == null || (r = e.hasOwnProperty) === null || r === void 0) && r.call(e, o) || (e[o] = i[o]); } } - return e2; + return e; } }); var Yu = k((ti) => { Object.defineProperty(ti, "__esModule", { value: true }); Object.defineProperty(ti, "toPath", { enumerable: true, get: () => rc }); - function rc(e2) { - if (Array.isArray(e2)) return e2; - let t2 = e2.split("[").length - 1, n2 = e2.split("]").length - 1; - if (t2 !== n2) throw new Error(`Path is invalid. Has unbalanced brackets: ${e2}`); - return e2.split(/\.(?![^\[]*\])|[\[\]]/g).filter(Boolean); + function rc(e) { + if (Array.isArray(e)) return e; + let t = e.split("[").length - 1, n = e.split("]").length - 1; + if (t !== n) throw new Error(`Path is invalid. Has unbalanced brackets: ${e}`); + return e.split(/\.(?![^\[]*\])|[\[\]]/g).filter(Boolean); } }); var Qu = k((ri) => { Object.defineProperty(ri, "__esModule", { value: true }); Object.defineProperty(ri, "normalizeConfig", { enumerable: true, get: () => ic }); var Ut = nc((Jr(), Ir(Kr))); - function Xu(e2) { + function Xu(e) { if (typeof WeakMap != "function") return null; - var t2 = /* @__PURE__ */ new WeakMap(), n2 = /* @__PURE__ */ new WeakMap(); - return (Xu = function(r2) { - return r2 ? n2 : t2; - })(e2); + var t = /* @__PURE__ */ new WeakMap(), n = /* @__PURE__ */ new WeakMap(); + return (Xu = function(r) { + return r ? n : t; + })(e); } - function nc(e2, t2) { - if (e2 && e2.__esModule) return e2; - if (e2 === null || typeof e2 != "object" && typeof e2 != "function") return { default: e2 }; - var n2 = Xu(t2); - if (n2 && n2.has(e2)) return n2.get(e2); - var r2 = {}, i2 = Object.defineProperty && Object.getOwnPropertyDescriptor; - for (var o2 in e2) if (o2 !== "default" && Object.prototype.hasOwnProperty.call(e2, o2)) { - var u4 = i2 ? Object.getOwnPropertyDescriptor(e2, o2) : null; - u4 && (u4.get || u4.set) ? Object.defineProperty(r2, o2, u4) : r2[o2] = e2[o2]; + function nc(e, t) { + if (e && e.__esModule) return e; + if (e === null || typeof e != "object" && typeof e != "function") return { default: e }; + var n = Xu(t); + if (n && n.has(e)) return n.get(e); + var r = {}, i = Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var o in e) if (o !== "default" && Object.prototype.hasOwnProperty.call(e, o)) { + var u2 = i ? Object.getOwnPropertyDescriptor(e, o) : null; + u2 && (u2.get || u2.set) ? Object.defineProperty(r, o, u2) : r[o] = e[o]; } - return r2.default = e2, n2 && n2.set(e2, r2), r2; + return r.default = e, n && n.set(e, r), r; } - function ic(e2) { + function ic(e) { if ((() => { - if (e2.purge || !e2.content || !Array.isArray(e2.content) && !(typeof e2.content == "object" && e2.content !== null)) return false; - if (Array.isArray(e2.content)) return e2.content.every((r2) => typeof r2 == "string" ? true : !(typeof (r2 == null ? void 0 : r2.raw) != "string" || r2 != null && r2.extension && typeof (r2 == null ? void 0 : r2.extension) != "string")); - if (typeof e2.content == "object" && e2.content !== null) { - if (Object.keys(e2.content).some((r2) => !["files", "extract", "transform"].includes(r2))) return false; - if (Array.isArray(e2.content.files)) { - if (!e2.content.files.every((r2) => typeof r2 == "string" ? true : !(typeof (r2 == null ? void 0 : r2.raw) != "string" || r2 != null && r2.extension && typeof (r2 == null ? void 0 : r2.extension) != "string"))) return false; - if (typeof e2.content.extract == "object") { - for (let r2 of Object.values(e2.content.extract)) if (typeof r2 != "function") return false; - } else if (!(e2.content.extract === void 0 || typeof e2.content.extract == "function")) return false; - if (typeof e2.content.transform == "object") { - for (let r2 of Object.values(e2.content.transform)) if (typeof r2 != "function") return false; - } else if (!(e2.content.transform === void 0 || typeof e2.content.transform == "function")) return false; + if (e.purge || !e.content || !Array.isArray(e.content) && !(typeof e.content == "object" && e.content !== null)) return false; + if (Array.isArray(e.content)) return e.content.every((r) => typeof r == "string" ? true : !(typeof (r == null ? void 0 : r.raw) != "string" || r != null && r.extension && typeof (r == null ? void 0 : r.extension) != "string")); + if (typeof e.content == "object" && e.content !== null) { + if (Object.keys(e.content).some((r) => !["files", "extract", "transform"].includes(r))) return false; + if (Array.isArray(e.content.files)) { + if (!e.content.files.every((r) => typeof r == "string" ? true : !(typeof (r == null ? void 0 : r.raw) != "string" || r != null && r.extension && typeof (r == null ? void 0 : r.extension) != "string"))) return false; + if (typeof e.content.extract == "object") { + for (let r of Object.values(e.content.extract)) if (typeof r != "function") return false; + } else if (!(e.content.extract === void 0 || typeof e.content.extract == "function")) return false; + if (typeof e.content.transform == "object") { + for (let r of Object.values(e.content.transform)) if (typeof r != "function") return false; + } else if (!(e.content.transform === void 0 || typeof e.content.transform == "function")) return false; } return true; } return false; - })() || Ut.default.warn("purge-deprecation", ["The `purge`/`content` options have changed in Tailwind CSS v3.0.", "Update your configuration file to eliminate this warning.", "https://tailwindcss.com/docs/upgrade-guide#configure-content-sources"]), e2.safelist = (() => { - var r2; - let { content: i2, purge: o2, safelist: u4 } = e2; - return Array.isArray(u4) ? u4 : Array.isArray(i2 == null ? void 0 : i2.safelist) ? i2.safelist : Array.isArray(o2 == null ? void 0 : o2.safelist) ? o2.safelist : Array.isArray(o2 == null || (r2 = o2.options) === null || r2 === void 0 ? void 0 : r2.safelist) ? o2.options.safelist : []; - })(), typeof e2.prefix == "function") Ut.default.warn("prefix-function", ["As of Tailwind CSS v3.0, `prefix` cannot be a function.", "Update `prefix` in your configuration to be a string to eliminate this warning.", "https://tailwindcss.com/docs/upgrade-guide#prefix-cannot-be-a-function"]), e2.prefix = ""; + })() || Ut.default.warn("purge-deprecation", ["The `purge`/`content` options have changed in Tailwind CSS v3.0.", "Update your configuration file to eliminate this warning.", "https://tailwindcss.com/docs/upgrade-guide#configure-content-sources"]), e.safelist = (() => { + var r; + let { content: i, purge: o, safelist: u2 } = e; + return Array.isArray(u2) ? u2 : Array.isArray(i == null ? void 0 : i.safelist) ? i.safelist : Array.isArray(o == null ? void 0 : o.safelist) ? o.safelist : Array.isArray(o == null || (r = o.options) === null || r === void 0 ? void 0 : r.safelist) ? o.options.safelist : []; + })(), typeof e.prefix == "function") Ut.default.warn("prefix-function", ["As of Tailwind CSS v3.0, `prefix` cannot be a function.", "Update `prefix` in your configuration to be a string to eliminate this warning.", "https://tailwindcss.com/docs/upgrade-guide#prefix-cannot-be-a-function"]), e.prefix = ""; else { - var n2; - e2.prefix = (n2 = e2.prefix) !== null && n2 !== void 0 ? n2 : ""; + var n; + e.prefix = (n = e.prefix) !== null && n !== void 0 ? n : ""; } - e2.content = { files: (() => { - let { content: r2, purge: i2 } = e2; - return Array.isArray(i2) ? i2 : Array.isArray(i2 == null ? void 0 : i2.content) ? i2.content : Array.isArray(r2) ? r2 : Array.isArray(r2 == null ? void 0 : r2.content) ? r2.content : Array.isArray(r2 == null ? void 0 : r2.files) ? r2.files : []; + e.content = { files: (() => { + let { content: r, purge: i } = e; + return Array.isArray(i) ? i : Array.isArray(i == null ? void 0 : i.content) ? i.content : Array.isArray(r) ? r : Array.isArray(r == null ? void 0 : r.content) ? r.content : Array.isArray(r == null ? void 0 : r.files) ? r.files : []; })(), extract: (() => { - let r2 = (() => { - var u4, s2, a2, l3, f3, c3, p2, d3, h3, m3; - return !((u4 = e2.purge) === null || u4 === void 0) && u4.extract ? e2.purge.extract : !((s2 = e2.content) === null || s2 === void 0) && s2.extract ? e2.content.extract : !((a2 = e2.purge) === null || a2 === void 0 || (l3 = a2.extract) === null || l3 === void 0) && l3.DEFAULT ? e2.purge.extract.DEFAULT : !((f3 = e2.content) === null || f3 === void 0 || (c3 = f3.extract) === null || c3 === void 0) && c3.DEFAULT ? e2.content.extract.DEFAULT : !((p2 = e2.purge) === null || p2 === void 0 || (d3 = p2.options) === null || d3 === void 0) && d3.extractors ? e2.purge.options.extractors : !((h3 = e2.content) === null || h3 === void 0 || (m3 = h3.options) === null || m3 === void 0) && m3.extractors ? e2.content.options.extractors : {}; - })(), i2 = {}, o2 = (() => { - var u4, s2, a2, l3; - if (!((u4 = e2.purge) === null || u4 === void 0 || (s2 = u4.options) === null || s2 === void 0) && s2.defaultExtractor) return e2.purge.options.defaultExtractor; - if (!((a2 = e2.content) === null || a2 === void 0 || (l3 = a2.options) === null || l3 === void 0) && l3.defaultExtractor) return e2.content.options.defaultExtractor; + let r = (() => { + var u2, s, a, l2, f, c2, p, d2, h3, m2; + return !((u2 = e.purge) === null || u2 === void 0) && u2.extract ? e.purge.extract : !((s = e.content) === null || s === void 0) && s.extract ? e.content.extract : !((a = e.purge) === null || a === void 0 || (l2 = a.extract) === null || l2 === void 0) && l2.DEFAULT ? e.purge.extract.DEFAULT : !((f = e.content) === null || f === void 0 || (c2 = f.extract) === null || c2 === void 0) && c2.DEFAULT ? e.content.extract.DEFAULT : !((p = e.purge) === null || p === void 0 || (d2 = p.options) === null || d2 === void 0) && d2.extractors ? e.purge.options.extractors : !((h3 = e.content) === null || h3 === void 0 || (m2 = h3.options) === null || m2 === void 0) && m2.extractors ? e.content.options.extractors : {}; + })(), i = {}, o = (() => { + var u2, s, a, l2; + if (!((u2 = e.purge) === null || u2 === void 0 || (s = u2.options) === null || s === void 0) && s.defaultExtractor) return e.purge.options.defaultExtractor; + if (!((a = e.content) === null || a === void 0 || (l2 = a.options) === null || l2 === void 0) && l2.defaultExtractor) return e.content.options.defaultExtractor; })(); - if (o2 !== void 0 && (i2.DEFAULT = o2), typeof r2 == "function") i2.DEFAULT = r2; - else if (Array.isArray(r2)) for (let { extensions: u4, extractor: s2 } of r2 ?? []) for (let a2 of u4) i2[a2] = s2; - else typeof r2 == "object" && r2 !== null && Object.assign(i2, r2); - return i2; + if (o !== void 0 && (i.DEFAULT = o), typeof r == "function") i.DEFAULT = r; + else if (Array.isArray(r)) for (let { extensions: u2, extractor: s } of r ?? []) for (let a of u2) i[a] = s; + else typeof r == "object" && r !== null && Object.assign(i, r); + return i; })(), transform: (() => { - let r2 = (() => { - var o2, u4, s2, a2, l3, f3; - return !((o2 = e2.purge) === null || o2 === void 0) && o2.transform ? e2.purge.transform : !((u4 = e2.content) === null || u4 === void 0) && u4.transform ? e2.content.transform : !((s2 = e2.purge) === null || s2 === void 0 || (a2 = s2.transform) === null || a2 === void 0) && a2.DEFAULT ? e2.purge.transform.DEFAULT : !((l3 = e2.content) === null || l3 === void 0 || (f3 = l3.transform) === null || f3 === void 0) && f3.DEFAULT ? e2.content.transform.DEFAULT : {}; - })(), i2 = {}; - return typeof r2 == "function" && (i2.DEFAULT = r2), typeof r2 == "object" && r2 !== null && Object.assign(i2, r2), i2; + let r = (() => { + var o, u2, s, a, l2, f; + return !((o = e.purge) === null || o === void 0) && o.transform ? e.purge.transform : !((u2 = e.content) === null || u2 === void 0) && u2.transform ? e.content.transform : !((s = e.purge) === null || s === void 0 || (a = s.transform) === null || a === void 0) && a.DEFAULT ? e.purge.transform.DEFAULT : !((l2 = e.content) === null || l2 === void 0 || (f = l2.transform) === null || f === void 0) && f.DEFAULT ? e.content.transform.DEFAULT : {}; + })(), i = {}; + return typeof r == "function" && (i.DEFAULT = r), typeof r == "object" && r !== null && Object.assign(i, r), i; })() }; - for (let r2 of e2.content.files) if (typeof r2 == "string" && /{([^,]*?)}/g.test(r2)) { - Ut.default.warn("invalid-glob-braces", [`The glob pattern ${(0, Ut.dim)(r2)} in your Tailwind CSS configuration is invalid.`, `Update it to ${(0, Ut.dim)(r2.replace(/{([^,]*?)}/g, "$1"))} to silence this warning.`]); + for (let r of e.content.files) if (typeof r == "string" && /{([^,]*?)}/g.test(r)) { + Ut.default.warn("invalid-glob-braces", [`The glob pattern ${(0, Ut.dim)(r)} in your Tailwind CSS configuration is invalid.`, `Update it to ${(0, Ut.dim)(r.replace(/{([^,]*?)}/g, "$1"))} to silence this warning.`]); break; } - return e2; + return e; } }); var Ku = k((ni) => { Object.defineProperty(ni, "__esModule", { value: true }); Object.defineProperty(ni, "default", { enumerable: true, get: () => oc }); - function oc(e2) { - if (Object.prototype.toString.call(e2) !== "[object Object]") return false; - let t2 = Object.getPrototypeOf(e2); - return t2 === null || t2 === Object.prototype; + function oc(e) { + if (Object.prototype.toString.call(e) !== "[object Object]") return false; + let t = Object.getPrototypeOf(e); + return t === null || t === Object.prototype; } }); var Ju = k((oi) => { Object.defineProperty(oi, "__esModule", { value: true }); Object.defineProperty(oi, "cloneDeep", { enumerable: true, get: () => ii }); - function ii(e2) { - return Array.isArray(e2) ? e2.map((t2) => ii(t2)) : typeof e2 == "object" && e2 !== null ? Object.fromEntries(Object.entries(e2).map(([t2, n2]) => [t2, ii(n2)])) : e2; + function ii(e) { + return Array.isArray(e) ? e.map((t) => ii(t)) : typeof e == "object" && e !== null ? Object.fromEntries(Object.entries(e).map(([t, n]) => [t, ii(n)])) : e; } }); var ui = k((Zr, Zu) => { Zr.__esModule = true; Zr.default = ac; - function uc(e2) { - for (var t2 = e2.toLowerCase(), n2 = "", r2 = false, i2 = 0; i2 < 6 && t2[i2] !== void 0; i2++) { - var o2 = t2.charCodeAt(i2), u4 = o2 >= 97 && o2 <= 102 || o2 >= 48 && o2 <= 57; - if (r2 = o2 === 32, !u4) break; - n2 += t2[i2]; + function uc(e) { + for (var t = e.toLowerCase(), n = "", r = false, i = 0; i < 6 && t[i] !== void 0; i++) { + var o = t.charCodeAt(i), u2 = o >= 97 && o <= 102 || o >= 48 && o <= 57; + if (r = o === 32, !u2) break; + n += t[i]; } - if (n2.length !== 0) { - var s2 = parseInt(n2, 16), a2 = s2 >= 55296 && s2 <= 57343; - return a2 || s2 === 0 || s2 > 1114111 ? ["\uFFFD", n2.length + (r2 ? 1 : 0)] : [String.fromCodePoint(s2), n2.length + (r2 ? 1 : 0)]; + if (n.length !== 0) { + var s = parseInt(n, 16), a = s >= 55296 && s <= 57343; + return a || s === 0 || s > 1114111 ? ["\uFFFD", n.length + (r ? 1 : 0)] : [String.fromCodePoint(s), n.length + (r ? 1 : 0)]; } } var sc = /\\/; - function ac(e2) { - var t2 = sc.test(e2); - if (!t2) return e2; - for (var n2 = "", r2 = 0; r2 < e2.length; r2++) { - if (e2[r2] === "\\") { - var i2 = uc(e2.slice(r2 + 1, r2 + 7)); - if (i2 !== void 0) { - n2 += i2[0], r2 += i2[1]; + function ac(e) { + var t = sc.test(e); + if (!t) return e; + for (var n = "", r = 0; r < e.length; r++) { + if (e[r] === "\\") { + var i = uc(e.slice(r + 1, r + 7)); + if (i !== void 0) { + n += i[0], r += i[1]; continue; } - if (e2[r2 + 1] === "\\") { - n2 += "\\", r2++; + if (e[r + 1] === "\\") { + n += "\\", r++; continue; } - e2.length === r2 + 1 && (n2 += e2[r2]); + e.length === r + 1 && (n += e[r]); continue; } - n2 += e2[r2]; + n += e[r]; } - return n2; + return n; } Zu.exports = Zr.default; }); var ts = k((en, es) => { en.__esModule = true; en.default = lc; - function lc(e2) { - for (var t2 = arguments.length, n2 = new Array(t2 > 1 ? t2 - 1 : 0), r2 = 1; r2 < t2; r2++) n2[r2 - 1] = arguments[r2]; - for (; n2.length > 0; ) { - var i2 = n2.shift(); - if (!e2[i2]) return; - e2 = e2[i2]; + function lc(e) { + for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) n[r - 1] = arguments[r]; + for (; n.length > 0; ) { + var i = n.shift(); + if (!e[i]) return; + e = e[i]; } - return e2; + return e; } es.exports = en.default; }); var ns = k((tn, rs) => { tn.__esModule = true; tn.default = fc; - function fc(e2) { - for (var t2 = arguments.length, n2 = new Array(t2 > 1 ? t2 - 1 : 0), r2 = 1; r2 < t2; r2++) n2[r2 - 1] = arguments[r2]; - for (; n2.length > 0; ) { - var i2 = n2.shift(); - e2[i2] || (e2[i2] = {}), e2 = e2[i2]; + function fc(e) { + for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) n[r - 1] = arguments[r]; + for (; n.length > 0; ) { + var i = n.shift(); + e[i] || (e[i] = {}), e = e[i]; } } rs.exports = tn.default; @@ -25517,14 +19371,14 @@ var ns = k((tn, rs) => { var os = k((rn, is) => { rn.__esModule = true; rn.default = cc; - function cc(e2) { - for (var t2 = "", n2 = e2.indexOf("/*"), r2 = 0; n2 >= 0; ) { - t2 = t2 + e2.slice(r2, n2); - var i2 = e2.indexOf("*/", n2 + 2); - if (i2 < 0) return t2; - r2 = i2 + 2, n2 = e2.indexOf("/*", r2); + function cc(e) { + for (var t = "", n = e.indexOf("/*"), r = 0; n >= 0; ) { + t = t + e.slice(r, n); + var i = e.indexOf("*/", n + 2); + if (i < 0) return t; + r = i + 2, n = e.indexOf("/*", r); } - return t2 = t2 + e2.slice(r2), t2; + return t = t + e.slice(r), t; } is.exports = rn.default; }); @@ -25539,82 +19393,82 @@ var Gt = k((Oe) => { Oe.ensureObject = hc.default; var mc = nn(os()); Oe.stripComments = mc.default; - function nn(e2) { - return e2 && e2.__esModule ? e2 : { default: e2 }; + function nn(e) { + return e && e.__esModule ? e : { default: e }; } }); var Me = k((jt, as) => { jt.__esModule = true; jt.default = void 0; var us = Gt(); - function ss(e2, t2) { - for (var n2 = 0; n2 < t2.length; n2++) { - var r2 = t2[n2]; - r2.enumerable = r2.enumerable || false, r2.configurable = true, "value" in r2 && (r2.writable = true), Object.defineProperty(e2, r2.key, r2); + function ss(e, t) { + for (var n = 0; n < t.length; n++) { + var r = t[n]; + r.enumerable = r.enumerable || false, r.configurable = true, "value" in r && (r.writable = true), Object.defineProperty(e, r.key, r); } } - function Dc(e2, t2, n2) { - return t2 && ss(e2.prototype, t2), e2; + function Dc(e, t, n) { + return t && ss(e.prototype, t), e; } - var gc = function e2(t2, n2) { - if (typeof t2 != "object" || t2 === null) return t2; - var r2 = new t2.constructor(); - for (var i2 in t2) if (t2.hasOwnProperty(i2)) { - var o2 = t2[i2], u4 = typeof o2; - i2 === "parent" && u4 === "object" ? n2 && (r2[i2] = n2) : o2 instanceof Array ? r2[i2] = o2.map(function(s2) { - return e2(s2, r2); - }) : r2[i2] = e2(o2, r2); + var gc = function e(t, n) { + if (typeof t != "object" || t === null) return t; + var r = new t.constructor(); + for (var i in t) if (t.hasOwnProperty(i)) { + var o = t[i], u2 = typeof o; + i === "parent" && u2 === "object" ? n && (r[i] = n) : o instanceof Array ? r[i] = o.map(function(s) { + return e(s, r); + }) : r[i] = e(o, r); } - return r2; + return r; }, bc = (function() { - function e2(n2) { - n2 === void 0 && (n2 = {}), Object.assign(this, n2), this.spaces = this.spaces || {}, this.spaces.before = this.spaces.before || "", this.spaces.after = this.spaces.after || ""; + function e(n) { + n === void 0 && (n = {}), Object.assign(this, n), this.spaces = this.spaces || {}, this.spaces.before = this.spaces.before || "", this.spaces.after = this.spaces.after || ""; } - var t2 = e2.prototype; - return t2.remove = function() { + var t = e.prototype; + return t.remove = function() { return this.parent && this.parent.removeChild(this), this.parent = void 0, this; - }, t2.replaceWith = function() { + }, t.replaceWith = function() { if (this.parent) { - for (var r2 in arguments) this.parent.insertBefore(this, arguments[r2]); + for (var r in arguments) this.parent.insertBefore(this, arguments[r]); this.remove(); } return this; - }, t2.next = function() { + }, t.next = function() { return this.parent.at(this.parent.index(this) + 1); - }, t2.prev = function() { + }, t.prev = function() { return this.parent.at(this.parent.index(this) - 1); - }, t2.clone = function(r2) { - r2 === void 0 && (r2 = {}); - var i2 = gc(this); - for (var o2 in r2) i2[o2] = r2[o2]; - return i2; - }, t2.appendToPropertyAndEscape = function(r2, i2, o2) { + }, t.clone = function(r) { + r === void 0 && (r = {}); + var i = gc(this); + for (var o in r) i[o] = r[o]; + return i; + }, t.appendToPropertyAndEscape = function(r, i, o) { this.raws || (this.raws = {}); - var u4 = this[r2], s2 = this.raws[r2]; - this[r2] = u4 + i2, s2 || o2 !== i2 ? this.raws[r2] = (s2 || u4) + o2 : delete this.raws[r2]; - }, t2.setPropertyAndEscape = function(r2, i2, o2) { - this.raws || (this.raws = {}), this[r2] = i2, this.raws[r2] = o2; - }, t2.setPropertyWithoutEscape = function(r2, i2) { - this[r2] = i2, this.raws && delete this.raws[r2]; - }, t2.isAtPosition = function(r2, i2) { - if (this.source && this.source.start && this.source.end) return !(this.source.start.line > r2 || this.source.end.line < r2 || this.source.start.line === r2 && this.source.start.column > i2 || this.source.end.line === r2 && this.source.end.column < i2); - }, t2.stringifyProperty = function(r2) { - return this.raws && this.raws[r2] || this[r2]; - }, t2.valueToString = function() { + var u2 = this[r], s = this.raws[r]; + this[r] = u2 + i, s || o !== i ? this.raws[r] = (s || u2) + o : delete this.raws[r]; + }, t.setPropertyAndEscape = function(r, i, o) { + this.raws || (this.raws = {}), this[r] = i, this.raws[r] = o; + }, t.setPropertyWithoutEscape = function(r, i) { + this[r] = i, this.raws && delete this.raws[r]; + }, t.isAtPosition = function(r, i) { + if (this.source && this.source.start && this.source.end) return !(this.source.start.line > r || this.source.end.line < r || this.source.start.line === r && this.source.start.column > i || this.source.end.line === r && this.source.end.column < i); + }, t.stringifyProperty = function(r) { + return this.raws && this.raws[r] || this[r]; + }, t.valueToString = function() { return String(this.stringifyProperty("value")); - }, t2.toString = function() { + }, t.toString = function() { return [this.rawSpaceBefore, this.valueToString(), this.rawSpaceAfter].join(""); - }, Dc(e2, [{ key: "rawSpaceBefore", get: function() { - var r2 = this.raws && this.raws.spaces && this.raws.spaces.before; - return r2 === void 0 && (r2 = this.spaces && this.spaces.before), r2 || ""; - }, set: function(r2) { - (0, us.ensureObject)(this, "raws", "spaces"), this.raws.spaces.before = r2; + }, Dc(e, [{ key: "rawSpaceBefore", get: function() { + var r = this.raws && this.raws.spaces && this.raws.spaces.before; + return r === void 0 && (r = this.spaces && this.spaces.before), r || ""; + }, set: function(r) { + (0, us.ensureObject)(this, "raws", "spaces"), this.raws.spaces.before = r; } }, { key: "rawSpaceAfter", get: function() { - var r2 = this.raws && this.raws.spaces && this.raws.spaces.after; - return r2 === void 0 && (r2 = this.spaces.after), r2 || ""; - }, set: function(r2) { - (0, us.ensureObject)(this, "raws", "spaces"), this.raws.spaces.after = r2; - } }]), e2; + var r = this.raws && this.raws.spaces && this.raws.spaces.after; + return r === void 0 && (r = this.spaces.after), r || ""; + }, set: function(r) { + (0, us.ensureObject)(this, "raws", "spaces"), this.raws.spaces.after = r; + } }]), e; })(); jt.default = bc; as.exports = jt.default; @@ -25653,209 +19507,209 @@ var on = k((Ht, ds) => { var Oc = Bc(Me()), Ne = Pc(ne()); function cs() { if (typeof WeakMap != "function") return null; - var e2 = /* @__PURE__ */ new WeakMap(); + var e = /* @__PURE__ */ new WeakMap(); return cs = function() { - return e2; - }, e2; + return e; + }, e; } - function Pc(e2) { - if (e2 && e2.__esModule) return e2; - if (e2 === null || typeof e2 != "object" && typeof e2 != "function") return { default: e2 }; - var t2 = cs(); - if (t2 && t2.has(e2)) return t2.get(e2); - var n2 = {}, r2 = Object.defineProperty && Object.getOwnPropertyDescriptor; - for (var i2 in e2) if (Object.prototype.hasOwnProperty.call(e2, i2)) { - var o2 = r2 ? Object.getOwnPropertyDescriptor(e2, i2) : null; - o2 && (o2.get || o2.set) ? Object.defineProperty(n2, i2, o2) : n2[i2] = e2[i2]; + function Pc(e) { + if (e && e.__esModule) return e; + if (e === null || typeof e != "object" && typeof e != "function") return { default: e }; + var t = cs(); + if (t && t.has(e)) return t.get(e); + var n = {}, r = Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var i in e) if (Object.prototype.hasOwnProperty.call(e, i)) { + var o = r ? Object.getOwnPropertyDescriptor(e, i) : null; + o && (o.get || o.set) ? Object.defineProperty(n, i, o) : n[i] = e[i]; } - return n2.default = e2, t2 && t2.set(e2, n2), n2; + return n.default = e, t && t.set(e, n), n; } - function Bc(e2) { - return e2 && e2.__esModule ? e2 : { default: e2 }; + function Bc(e) { + return e && e.__esModule ? e : { default: e }; } - function Ic(e2, t2) { - var n2; - if (typeof Symbol > "u" || e2[Symbol.iterator] == null) { - if (Array.isArray(e2) || (n2 = Rc(e2)) || t2) { - n2 && (e2 = n2); - var r2 = 0; + function Ic(e, t) { + var n; + if (typeof Symbol > "u" || e[Symbol.iterator] == null) { + if (Array.isArray(e) || (n = Rc(e)) || t) { + n && (e = n); + var r = 0; return function() { - return r2 >= e2.length ? { done: true } : { done: false, value: e2[r2++] }; + return r >= e.length ? { done: true } : { done: false, value: e[r++] }; }; } throw new TypeError(`Invalid attempt to iterate non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`); } - return n2 = e2[Symbol.iterator](), n2.next.bind(n2); + return n = e[Symbol.iterator](), n.next.bind(n); } - function Rc(e2, t2) { - if (e2) { - if (typeof e2 == "string") return ls(e2, t2); - var n2 = Object.prototype.toString.call(e2).slice(8, -1); - if (n2 === "Object" && e2.constructor && (n2 = e2.constructor.name), n2 === "Map" || n2 === "Set") return Array.from(e2); - if (n2 === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n2)) return ls(e2, t2); + function Rc(e, t) { + if (e) { + if (typeof e == "string") return ls(e, t); + var n = Object.prototype.toString.call(e).slice(8, -1); + if (n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set") return Array.from(e); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return ls(e, t); } } - function ls(e2, t2) { - (t2 == null || t2 > e2.length) && (t2 = e2.length); - for (var n2 = 0, r2 = new Array(t2); n2 < t2; n2++) r2[n2] = e2[n2]; - return r2; + function ls(e, t) { + (t == null || t > e.length) && (t = e.length); + for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n]; + return r; } - function fs2(e2, t2) { - for (var n2 = 0; n2 < t2.length; n2++) { - var r2 = t2[n2]; - r2.enumerable = r2.enumerable || false, r2.configurable = true, "value" in r2 && (r2.writable = true), Object.defineProperty(e2, r2.key, r2); + function fs2(e, t) { + for (var n = 0; n < t.length; n++) { + var r = t[n]; + r.enumerable = r.enumerable || false, r.configurable = true, "value" in r && (r.writable = true), Object.defineProperty(e, r.key, r); } } - function Lc(e2, t2, n2) { - return t2 && fs2(e2.prototype, t2), e2; + function Lc(e, t, n) { + return t && fs2(e.prototype, t), e; } - function Mc(e2, t2) { - e2.prototype = Object.create(t2.prototype), e2.prototype.constructor = e2, si(e2, t2); + function Mc(e, t) { + e.prototype = Object.create(t.prototype), e.prototype.constructor = e, si(e, t); } - function si(e2, t2) { - return si = Object.setPrototypeOf || function(r2, i2) { - return r2.__proto__ = i2, r2; - }, si(e2, t2); + function si(e, t) { + return si = Object.setPrototypeOf || function(r, i) { + return r.__proto__ = i, r; + }, si(e, t); } - var Nc = (function(e2) { - Mc(t2, e2); - function t2(r2) { - var i2; - return i2 = e2.call(this, r2) || this, i2.nodes || (i2.nodes = []), i2; + var Nc = (function(e) { + Mc(t, e); + function t(r) { + var i; + return i = e.call(this, r) || this, i.nodes || (i.nodes = []), i; } - var n2 = t2.prototype; - return n2.append = function(i2) { - return i2.parent = this, this.nodes.push(i2), this; - }, n2.prepend = function(i2) { - return i2.parent = this, this.nodes.unshift(i2), this; - }, n2.at = function(i2) { - return this.nodes[i2]; - }, n2.index = function(i2) { - return typeof i2 == "number" ? i2 : this.nodes.indexOf(i2); - }, n2.removeChild = function(i2) { - i2 = this.index(i2), this.at(i2).parent = void 0, this.nodes.splice(i2, 1); - var o2; - for (var u4 in this.indexes) o2 = this.indexes[u4], o2 >= i2 && (this.indexes[u4] = o2 - 1); + var n = t.prototype; + return n.append = function(i) { + return i.parent = this, this.nodes.push(i), this; + }, n.prepend = function(i) { + return i.parent = this, this.nodes.unshift(i), this; + }, n.at = function(i) { + return this.nodes[i]; + }, n.index = function(i) { + return typeof i == "number" ? i : this.nodes.indexOf(i); + }, n.removeChild = function(i) { + i = this.index(i), this.at(i).parent = void 0, this.nodes.splice(i, 1); + var o; + for (var u2 in this.indexes) o = this.indexes[u2], o >= i && (this.indexes[u2] = o - 1); return this; - }, n2.removeAll = function() { - for (var i2 = Ic(this.nodes), o2; !(o2 = i2()).done; ) { - var u4 = o2.value; - u4.parent = void 0; + }, n.removeAll = function() { + for (var i = Ic(this.nodes), o; !(o = i()).done; ) { + var u2 = o.value; + u2.parent = void 0; } return this.nodes = [], this; - }, n2.empty = function() { + }, n.empty = function() { return this.removeAll(); - }, n2.insertAfter = function(i2, o2) { - o2.parent = this; - var u4 = this.index(i2); - this.nodes.splice(u4 + 1, 0, o2), o2.parent = this; - var s2; - for (var a2 in this.indexes) s2 = this.indexes[a2], u4 <= s2 && (this.indexes[a2] = s2 + 1); + }, n.insertAfter = function(i, o) { + o.parent = this; + var u2 = this.index(i); + this.nodes.splice(u2 + 1, 0, o), o.parent = this; + var s; + for (var a in this.indexes) s = this.indexes[a], u2 <= s && (this.indexes[a] = s + 1); return this; - }, n2.insertBefore = function(i2, o2) { - o2.parent = this; - var u4 = this.index(i2); - this.nodes.splice(u4, 0, o2), o2.parent = this; - var s2; - for (var a2 in this.indexes) s2 = this.indexes[a2], s2 <= u4 && (this.indexes[a2] = s2 + 1); + }, n.insertBefore = function(i, o) { + o.parent = this; + var u2 = this.index(i); + this.nodes.splice(u2, 0, o), o.parent = this; + var s; + for (var a in this.indexes) s = this.indexes[a], s <= u2 && (this.indexes[a] = s + 1); return this; - }, n2._findChildAtPosition = function(i2, o2) { - var u4 = void 0; - return this.each(function(s2) { - if (s2.atPosition) { - var a2 = s2.atPosition(i2, o2); - if (a2) return u4 = a2, false; - } else if (s2.isAtPosition(i2, o2)) return u4 = s2, false; - }), u4; - }, n2.atPosition = function(i2, o2) { - if (this.isAtPosition(i2, o2)) return this._findChildAtPosition(i2, o2) || this; - }, n2._inferEndPosition = function() { + }, n._findChildAtPosition = function(i, o) { + var u2 = void 0; + return this.each(function(s) { + if (s.atPosition) { + var a = s.atPosition(i, o); + if (a) return u2 = a, false; + } else if (s.isAtPosition(i, o)) return u2 = s, false; + }), u2; + }, n.atPosition = function(i, o) { + if (this.isAtPosition(i, o)) return this._findChildAtPosition(i, o) || this; + }, n._inferEndPosition = function() { this.last && this.last.source && this.last.source.end && (this.source = this.source || {}, this.source.end = this.source.end || {}, Object.assign(this.source.end, this.last.source.end)); - }, n2.each = function(i2) { + }, n.each = function(i) { this.lastEach || (this.lastEach = 0), this.indexes || (this.indexes = {}), this.lastEach++; - var o2 = this.lastEach; - if (this.indexes[o2] = 0, !!this.length) { - for (var u4, s2; this.indexes[o2] < this.length && (u4 = this.indexes[o2], s2 = i2(this.at(u4), u4), s2 !== false); ) this.indexes[o2] += 1; - if (delete this.indexes[o2], s2 === false) return false; + var o = this.lastEach; + if (this.indexes[o] = 0, !!this.length) { + for (var u2, s; this.indexes[o] < this.length && (u2 = this.indexes[o], s = i(this.at(u2), u2), s !== false); ) this.indexes[o] += 1; + if (delete this.indexes[o], s === false) return false; } - }, n2.walk = function(i2) { - return this.each(function(o2, u4) { - var s2 = i2(o2, u4); - if (s2 !== false && o2.length && (s2 = o2.walk(i2)), s2 === false) return false; + }, n.walk = function(i) { + return this.each(function(o, u2) { + var s = i(o, u2); + if (s !== false && o.length && (s = o.walk(i)), s === false) return false; }); - }, n2.walkAttributes = function(i2) { - var o2 = this; - return this.walk(function(u4) { - if (u4.type === Ne.ATTRIBUTE) return i2.call(o2, u4); + }, n.walkAttributes = function(i) { + var o = this; + return this.walk(function(u2) { + if (u2.type === Ne.ATTRIBUTE) return i.call(o, u2); }); - }, n2.walkClasses = function(i2) { - var o2 = this; - return this.walk(function(u4) { - if (u4.type === Ne.CLASS) return i2.call(o2, u4); + }, n.walkClasses = function(i) { + var o = this; + return this.walk(function(u2) { + if (u2.type === Ne.CLASS) return i.call(o, u2); }); - }, n2.walkCombinators = function(i2) { - var o2 = this; - return this.walk(function(u4) { - if (u4.type === Ne.COMBINATOR) return i2.call(o2, u4); + }, n.walkCombinators = function(i) { + var o = this; + return this.walk(function(u2) { + if (u2.type === Ne.COMBINATOR) return i.call(o, u2); }); - }, n2.walkComments = function(i2) { - var o2 = this; - return this.walk(function(u4) { - if (u4.type === Ne.COMMENT) return i2.call(o2, u4); + }, n.walkComments = function(i) { + var o = this; + return this.walk(function(u2) { + if (u2.type === Ne.COMMENT) return i.call(o, u2); }); - }, n2.walkIds = function(i2) { - var o2 = this; - return this.walk(function(u4) { - if (u4.type === Ne.ID) return i2.call(o2, u4); + }, n.walkIds = function(i) { + var o = this; + return this.walk(function(u2) { + if (u2.type === Ne.ID) return i.call(o, u2); }); - }, n2.walkNesting = function(i2) { - var o2 = this; - return this.walk(function(u4) { - if (u4.type === Ne.NESTING) return i2.call(o2, u4); + }, n.walkNesting = function(i) { + var o = this; + return this.walk(function(u2) { + if (u2.type === Ne.NESTING) return i.call(o, u2); }); - }, n2.walkPseudos = function(i2) { - var o2 = this; - return this.walk(function(u4) { - if (u4.type === Ne.PSEUDO) return i2.call(o2, u4); + }, n.walkPseudos = function(i) { + var o = this; + return this.walk(function(u2) { + if (u2.type === Ne.PSEUDO) return i.call(o, u2); }); - }, n2.walkTags = function(i2) { - var o2 = this; - return this.walk(function(u4) { - if (u4.type === Ne.TAG) return i2.call(o2, u4); + }, n.walkTags = function(i) { + var o = this; + return this.walk(function(u2) { + if (u2.type === Ne.TAG) return i.call(o, u2); }); - }, n2.walkUniversals = function(i2) { - var o2 = this; - return this.walk(function(u4) { - if (u4.type === Ne.UNIVERSAL) return i2.call(o2, u4); + }, n.walkUniversals = function(i) { + var o = this; + return this.walk(function(u2) { + if (u2.type === Ne.UNIVERSAL) return i.call(o, u2); }); - }, n2.split = function(i2) { - var o2 = this, u4 = []; - return this.reduce(function(s2, a2, l3) { - var f3 = i2.call(o2, a2); - return u4.push(a2), f3 ? (s2.push(u4), u4 = []) : l3 === o2.length - 1 && s2.push(u4), s2; + }, n.split = function(i) { + var o = this, u2 = []; + return this.reduce(function(s, a, l2) { + var f = i.call(o, a); + return u2.push(a), f ? (s.push(u2), u2 = []) : l2 === o.length - 1 && s.push(u2), s; }, []); - }, n2.map = function(i2) { - return this.nodes.map(i2); - }, n2.reduce = function(i2, o2) { - return this.nodes.reduce(i2, o2); - }, n2.every = function(i2) { - return this.nodes.every(i2); - }, n2.some = function(i2) { - return this.nodes.some(i2); - }, n2.filter = function(i2) { - return this.nodes.filter(i2); - }, n2.sort = function(i2) { - return this.nodes.sort(i2); - }, n2.toString = function() { + }, n.map = function(i) { + return this.nodes.map(i); + }, n.reduce = function(i, o) { + return this.nodes.reduce(i, o); + }, n.every = function(i) { + return this.nodes.every(i); + }, n.some = function(i) { + return this.nodes.some(i); + }, n.filter = function(i) { + return this.nodes.filter(i); + }, n.sort = function(i) { + return this.nodes.sort(i); + }, n.toString = function() { return this.map(String).join(""); - }, Lc(t2, [{ key: "first", get: function() { + }, Lc(t, [{ key: "first", get: function() { return this.at(0); } }, { key: "last", get: function() { return this.at(this.length - 1); } }, { key: "length", get: function() { return this.nodes.length; - } }]), t2; + } }]), t; })(Oc.default); Ht.default = Nc; ds.exports = Ht.default; @@ -25864,43 +19718,43 @@ var li = k((Vt, hs) => { Vt.__esModule = true; Vt.default = void 0; var Wc = qc(on()), $c = ne(); - function qc(e2) { - return e2 && e2.__esModule ? e2 : { default: e2 }; + function qc(e) { + return e && e.__esModule ? e : { default: e }; } - function ps(e2, t2) { - for (var n2 = 0; n2 < t2.length; n2++) { - var r2 = t2[n2]; - r2.enumerable = r2.enumerable || false, r2.configurable = true, "value" in r2 && (r2.writable = true), Object.defineProperty(e2, r2.key, r2); + function ps(e, t) { + for (var n = 0; n < t.length; n++) { + var r = t[n]; + r.enumerable = r.enumerable || false, r.configurable = true, "value" in r && (r.writable = true), Object.defineProperty(e, r.key, r); } } - function zc(e2, t2, n2) { - return t2 && ps(e2.prototype, t2), e2; + function zc(e, t, n) { + return t && ps(e.prototype, t), e; } - function Uc(e2, t2) { - e2.prototype = Object.create(t2.prototype), e2.prototype.constructor = e2, ai(e2, t2); + function Uc(e, t) { + e.prototype = Object.create(t.prototype), e.prototype.constructor = e, ai(e, t); } - function ai(e2, t2) { - return ai = Object.setPrototypeOf || function(r2, i2) { - return r2.__proto__ = i2, r2; - }, ai(e2, t2); + function ai(e, t) { + return ai = Object.setPrototypeOf || function(r, i) { + return r.__proto__ = i, r; + }, ai(e, t); } - var Gc = (function(e2) { - Uc(t2, e2); - function t2(r2) { - var i2; - return i2 = e2.call(this, r2) || this, i2.type = $c.ROOT, i2; + var Gc = (function(e) { + Uc(t, e); + function t(r) { + var i; + return i = e.call(this, r) || this, i.type = $c.ROOT, i; } - var n2 = t2.prototype; - return n2.toString = function() { - var i2 = this.reduce(function(o2, u4) { - return o2.push(String(u4)), o2; + var n = t.prototype; + return n.toString = function() { + var i = this.reduce(function(o, u2) { + return o.push(String(u2)), o; }, []).join(","); - return this.trailingComma ? i2 + "," : i2; - }, n2.error = function(i2, o2) { - return this._error ? this._error(i2, o2) : new Error(i2); - }, zc(t2, [{ key: "errorGenerator", set: function(i2) { - this._error = i2; - } }]), t2; + return this.trailingComma ? i + "," : i; + }, n.error = function(i, o) { + return this._error ? this._error(i, o) : new Error(i); + }, zc(t, [{ key: "errorGenerator", set: function(i) { + this._error = i; + } }]), t; })(Wc.default); Vt.default = Gc; hs.exports = Vt.default; @@ -25909,50 +19763,50 @@ var ci = k((Yt, ms) => { Yt.__esModule = true; Yt.default = void 0; var jc = Vc(on()), Hc = ne(); - function Vc(e2) { - return e2 && e2.__esModule ? e2 : { default: e2 }; + function Vc(e) { + return e && e.__esModule ? e : { default: e }; } - function Yc(e2, t2) { - e2.prototype = Object.create(t2.prototype), e2.prototype.constructor = e2, fi(e2, t2); + function Yc(e, t) { + e.prototype = Object.create(t.prototype), e.prototype.constructor = e, fi(e, t); } - function fi(e2, t2) { - return fi = Object.setPrototypeOf || function(r2, i2) { - return r2.__proto__ = i2, r2; - }, fi(e2, t2); + function fi(e, t) { + return fi = Object.setPrototypeOf || function(r, i) { + return r.__proto__ = i, r; + }, fi(e, t); } - var Xc = (function(e2) { - Yc(t2, e2); - function t2(n2) { - var r2; - return r2 = e2.call(this, n2) || this, r2.type = Hc.SELECTOR, r2; + var Xc = (function(e) { + Yc(t, e); + function t(n) { + var r; + return r = e.call(this, n) || this, r.type = Hc.SELECTOR, r; } - return t2; + return t; })(jc.default); Yt.default = Xc; ms.exports = Yt.default; }); var un = k((Rb, Ds) => { - var Qc = {}, Kc = Qc.hasOwnProperty, Jc = function(t2, n2) { - if (!t2) return n2; - var r2 = {}; - for (var i2 in n2) r2[i2] = Kc.call(t2, i2) ? t2[i2] : n2[i2]; - return r2; - }, Zc = /[ -,\.\/:-@\[-\^`\{-~]/, ed = /[ -,\.\/:-@\[\]\^`\{-~]/, td2 = /(^|\\+)?(\\[A-F0-9]{1,6})\x20(?![a-fA-F0-9\x20])/g, di = function e2(t2, n2) { - n2 = Jc(n2, e2.options), n2.quotes != "single" && n2.quotes != "double" && (n2.quotes = "single"); - for (var r2 = n2.quotes == "double" ? '"' : "'", i2 = n2.isIdentifier, o2 = t2.charAt(0), u4 = "", s2 = 0, a2 = t2.length; s2 < a2; ) { - var l3 = t2.charAt(s2++), f3 = l3.charCodeAt(), c3 = void 0; - if (f3 < 32 || f3 > 126) { - if (f3 >= 55296 && f3 <= 56319 && s2 < a2) { - var p2 = t2.charCodeAt(s2++); - (p2 & 64512) == 56320 ? f3 = ((f3 & 1023) << 10) + (p2 & 1023) + 65536 : s2--; + var Qc = {}, Kc = Qc.hasOwnProperty, Jc = function(t, n) { + if (!t) return n; + var r = {}; + for (var i in n) r[i] = Kc.call(t, i) ? t[i] : n[i]; + return r; + }, Zc = /[ -,\.\/:-@\[-\^`\{-~]/, ed = /[ -,\.\/:-@\[\]\^`\{-~]/, td2 = /(^|\\+)?(\\[A-F0-9]{1,6})\x20(?![a-fA-F0-9\x20])/g, di = function e(t, n) { + n = Jc(n, e.options), n.quotes != "single" && n.quotes != "double" && (n.quotes = "single"); + for (var r = n.quotes == "double" ? '"' : "'", i = n.isIdentifier, o = t.charAt(0), u2 = "", s = 0, a = t.length; s < a; ) { + var l2 = t.charAt(s++), f = l2.charCodeAt(), c2 = void 0; + if (f < 32 || f > 126) { + if (f >= 55296 && f <= 56319 && s < a) { + var p = t.charCodeAt(s++); + (p & 64512) == 56320 ? f = ((f & 1023) << 10) + (p & 1023) + 65536 : s--; } - c3 = "\\" + f3.toString(16).toUpperCase() + " "; - } else n2.escapeEverything ? Zc.test(l3) ? c3 = "\\" + l3 : c3 = "\\" + f3.toString(16).toUpperCase() + " " : /[\t\n\f\r\x0B]/.test(l3) ? c3 = "\\" + f3.toString(16).toUpperCase() + " " : l3 == "\\" || !i2 && (l3 == '"' && r2 == l3 || l3 == "'" && r2 == l3) || i2 && ed.test(l3) ? c3 = "\\" + l3 : c3 = l3; - u4 += c3; + c2 = "\\" + f.toString(16).toUpperCase() + " "; + } else n.escapeEverything ? Zc.test(l2) ? c2 = "\\" + l2 : c2 = "\\" + f.toString(16).toUpperCase() + " " : /[\t\n\f\r\x0B]/.test(l2) ? c2 = "\\" + f.toString(16).toUpperCase() + " " : l2 == "\\" || !i && (l2 == '"' && r == l2 || l2 == "'" && r == l2) || i && ed.test(l2) ? c2 = "\\" + l2 : c2 = l2; + u2 += c2; } - return i2 && (/^-[-\d]/.test(u4) ? u4 = "\\-" + u4.slice(1) : /\d/.test(o2) && (u4 = "\\3" + o2 + " " + u4.slice(1))), u4 = u4.replace(td2, function(d3, h3, m3) { - return h3 && h3.length % 2 ? d3 : (h3 || "") + m3; - }), !i2 && n2.wrap ? r2 + u4 + r2 : u4; + return i && (/^-[-\d]/.test(u2) ? u2 = "\\-" + u2.slice(1) : /\d/.test(o) && (u2 = "\\3" + o + " " + u2.slice(1))), u2 = u2.replace(td2, function(d2, h3, m2) { + return h3 && h3.length % 2 ? d2 : (h3 || "") + m2; + }), !i && n.wrap ? r + u2 + r : u2; }; di.options = { escapeEverything: false, isIdentifier: false, quotes: "single", wrap: false }; di.version = "3.0.0"; @@ -25962,44 +19816,44 @@ var hi = k((Xt, vs) => { Xt.__esModule = true; Xt.default = void 0; var rd = bs(un()), nd = Gt(), id = bs(Me()), od = ne(); - function bs(e2) { - return e2 && e2.__esModule ? e2 : { default: e2 }; + function bs(e) { + return e && e.__esModule ? e : { default: e }; } - function gs(e2, t2) { - for (var n2 = 0; n2 < t2.length; n2++) { - var r2 = t2[n2]; - r2.enumerable = r2.enumerable || false, r2.configurable = true, "value" in r2 && (r2.writable = true), Object.defineProperty(e2, r2.key, r2); + function gs(e, t) { + for (var n = 0; n < t.length; n++) { + var r = t[n]; + r.enumerable = r.enumerable || false, r.configurable = true, "value" in r && (r.writable = true), Object.defineProperty(e, r.key, r); } } - function ud(e2, t2, n2) { - return t2 && gs(e2.prototype, t2), e2; + function ud(e, t, n) { + return t && gs(e.prototype, t), e; } - function sd(e2, t2) { - e2.prototype = Object.create(t2.prototype), e2.prototype.constructor = e2, pi(e2, t2); + function sd(e, t) { + e.prototype = Object.create(t.prototype), e.prototype.constructor = e, pi(e, t); } - function pi(e2, t2) { - return pi = Object.setPrototypeOf || function(r2, i2) { - return r2.__proto__ = i2, r2; - }, pi(e2, t2); + function pi(e, t) { + return pi = Object.setPrototypeOf || function(r, i) { + return r.__proto__ = i, r; + }, pi(e, t); } - var ad = (function(e2) { - sd(t2, e2); - function t2(r2) { - var i2; - return i2 = e2.call(this, r2) || this, i2.type = od.CLASS, i2._constructed = true, i2; + var ad = (function(e) { + sd(t, e); + function t(r) { + var i; + return i = e.call(this, r) || this, i.type = od.CLASS, i._constructed = true, i; } - var n2 = t2.prototype; - return n2.valueToString = function() { - return "." + e2.prototype.valueToString.call(this); - }, ud(t2, [{ key: "value", get: function() { + var n = t.prototype; + return n.valueToString = function() { + return "." + e.prototype.valueToString.call(this); + }, ud(t, [{ key: "value", get: function() { return this._value; - }, set: function(i2) { + }, set: function(i) { if (this._constructed) { - var o2 = (0, rd.default)(i2, { isIdentifier: true }); - o2 !== i2 ? ((0, nd.ensureObject)(this, "raws"), this.raws.value = o2) : this.raws && delete this.raws.value; + var o = (0, rd.default)(i, { isIdentifier: true }); + o !== i ? ((0, nd.ensureObject)(this, "raws"), this.raws.value = o) : this.raws && delete this.raws.value; } - this._value = i2; - } }]), t2; + this._value = i; + } }]), t; })(id.default); Xt.default = ad; vs.exports = Xt.default; @@ -26008,24 +19862,24 @@ var Di = k((Qt, ys) => { Qt.__esModule = true; Qt.default = void 0; var ld = cd(Me()), fd2 = ne(); - function cd(e2) { - return e2 && e2.__esModule ? e2 : { default: e2 }; + function cd(e) { + return e && e.__esModule ? e : { default: e }; } - function dd(e2, t2) { - e2.prototype = Object.create(t2.prototype), e2.prototype.constructor = e2, mi(e2, t2); + function dd(e, t) { + e.prototype = Object.create(t.prototype), e.prototype.constructor = e, mi(e, t); } - function mi(e2, t2) { - return mi = Object.setPrototypeOf || function(r2, i2) { - return r2.__proto__ = i2, r2; - }, mi(e2, t2); + function mi(e, t) { + return mi = Object.setPrototypeOf || function(r, i) { + return r.__proto__ = i, r; + }, mi(e, t); } - var pd = (function(e2) { - dd(t2, e2); - function t2(n2) { - var r2; - return r2 = e2.call(this, n2) || this, r2.type = fd2.COMMENT, r2; + var pd = (function(e) { + dd(t, e); + function t(n) { + var r; + return r = e.call(this, n) || this, r.type = fd2.COMMENT, r; } - return t2; + return t; })(ld.default); Qt.default = pd; ys.exports = Qt.default; @@ -26034,27 +19888,27 @@ var bi = k((Kt, xs) => { Kt.__esModule = true; Kt.default = void 0; var hd = Dd(Me()), md = ne(); - function Dd(e2) { - return e2 && e2.__esModule ? e2 : { default: e2 }; + function Dd(e) { + return e && e.__esModule ? e : { default: e }; } - function gd(e2, t2) { - e2.prototype = Object.create(t2.prototype), e2.prototype.constructor = e2, gi(e2, t2); + function gd(e, t) { + e.prototype = Object.create(t.prototype), e.prototype.constructor = e, gi(e, t); } - function gi(e2, t2) { - return gi = Object.setPrototypeOf || function(r2, i2) { - return r2.__proto__ = i2, r2; - }, gi(e2, t2); + function gi(e, t) { + return gi = Object.setPrototypeOf || function(r, i) { + return r.__proto__ = i, r; + }, gi(e, t); } - var bd = (function(e2) { - gd(t2, e2); - function t2(r2) { - var i2; - return i2 = e2.call(this, r2) || this, i2.type = md.ID, i2; + var bd = (function(e) { + gd(t, e); + function t(r) { + var i; + return i = e.call(this, r) || this, i.type = md.ID, i; } - var n2 = t2.prototype; - return n2.valueToString = function() { - return "#" + e2.prototype.valueToString.call(this); - }, t2; + var n = t.prototype; + return n.valueToString = function() { + return "#" + e.prototype.valueToString.call(this); + }, t; })(hd.default); Kt.default = bd; xs.exports = Kt.default; @@ -26063,55 +19917,55 @@ var sn = k((Jt, Es) => { Jt.__esModule = true; Jt.default = void 0; var vd = ws(un()), yd = Gt(), xd = ws(Me()); - function ws(e2) { - return e2 && e2.__esModule ? e2 : { default: e2 }; + function ws(e) { + return e && e.__esModule ? e : { default: e }; } - function Fs(e2, t2) { - for (var n2 = 0; n2 < t2.length; n2++) { - var r2 = t2[n2]; - r2.enumerable = r2.enumerable || false, r2.configurable = true, "value" in r2 && (r2.writable = true), Object.defineProperty(e2, r2.key, r2); + function Fs(e, t) { + for (var n = 0; n < t.length; n++) { + var r = t[n]; + r.enumerable = r.enumerable || false, r.configurable = true, "value" in r && (r.writable = true), Object.defineProperty(e, r.key, r); } } - function Fd(e2, t2, n2) { - return t2 && Fs(e2.prototype, t2), e2; + function Fd(e, t, n) { + return t && Fs(e.prototype, t), e; } - function wd(e2, t2) { - e2.prototype = Object.create(t2.prototype), e2.prototype.constructor = e2, vi(e2, t2); + function wd(e, t) { + e.prototype = Object.create(t.prototype), e.prototype.constructor = e, vi(e, t); } - function vi(e2, t2) { - return vi = Object.setPrototypeOf || function(r2, i2) { - return r2.__proto__ = i2, r2; - }, vi(e2, t2); + function vi(e, t) { + return vi = Object.setPrototypeOf || function(r, i) { + return r.__proto__ = i, r; + }, vi(e, t); } - var Ed = (function(e2) { - wd(t2, e2); - function t2() { - return e2.apply(this, arguments) || this; + var Ed = (function(e) { + wd(t, e); + function t() { + return e.apply(this, arguments) || this; } - var n2 = t2.prototype; - return n2.qualifiedName = function(i2) { - return this.namespace ? this.namespaceString + "|" + i2 : i2; - }, n2.valueToString = function() { - return this.qualifiedName(e2.prototype.valueToString.call(this)); - }, Fd(t2, [{ key: "namespace", get: function() { + var n = t.prototype; + return n.qualifiedName = function(i) { + return this.namespace ? this.namespaceString + "|" + i : i; + }, n.valueToString = function() { + return this.qualifiedName(e.prototype.valueToString.call(this)); + }, Fd(t, [{ key: "namespace", get: function() { return this._namespace; - }, set: function(i2) { - if (i2 === true || i2 === "*" || i2 === "&") { - this._namespace = i2, this.raws && delete this.raws.namespace; + }, set: function(i) { + if (i === true || i === "*" || i === "&") { + this._namespace = i, this.raws && delete this.raws.namespace; return; } - var o2 = (0, vd.default)(i2, { isIdentifier: true }); - this._namespace = i2, o2 !== i2 ? ((0, yd.ensureObject)(this, "raws"), this.raws.namespace = o2) : this.raws && delete this.raws.namespace; + var o = (0, vd.default)(i, { isIdentifier: true }); + this._namespace = i, o !== i ? ((0, yd.ensureObject)(this, "raws"), this.raws.namespace = o) : this.raws && delete this.raws.namespace; } }, { key: "ns", get: function() { return this._namespace; - }, set: function(i2) { - this.namespace = i2; + }, set: function(i) { + this.namespace = i; } }, { key: "namespaceString", get: function() { if (this.namespace) { - var i2 = this.stringifyProperty("namespace"); - return i2 === true ? "" : i2; + var i = this.stringifyProperty("namespace"); + return i === true ? "" : i; } else return ""; - } }]), t2; + } }]), t; })(xd.default); Jt.default = Ed; Es.exports = Jt.default; @@ -26120,24 +19974,24 @@ var xi = k((Zt, Ss) => { Zt.__esModule = true; Zt.default = void 0; var Sd = _d(sn()), Cd = ne(); - function _d(e2) { - return e2 && e2.__esModule ? e2 : { default: e2 }; + function _d(e) { + return e && e.__esModule ? e : { default: e }; } - function kd(e2, t2) { - e2.prototype = Object.create(t2.prototype), e2.prototype.constructor = e2, yi(e2, t2); + function kd(e, t) { + e.prototype = Object.create(t.prototype), e.prototype.constructor = e, yi(e, t); } - function yi(e2, t2) { - return yi = Object.setPrototypeOf || function(r2, i2) { - return r2.__proto__ = i2, r2; - }, yi(e2, t2); + function yi(e, t) { + return yi = Object.setPrototypeOf || function(r, i) { + return r.__proto__ = i, r; + }, yi(e, t); } - var Td = (function(e2) { - kd(t2, e2); - function t2(n2) { - var r2; - return r2 = e2.call(this, n2) || this, r2.type = Cd.TAG, r2; + var Td = (function(e) { + kd(t, e); + function t(n) { + var r; + return r = e.call(this, n) || this, r.type = Cd.TAG, r; } - return t2; + return t; })(Sd.default); Zt.default = Td; Ss.exports = Zt.default; @@ -26146,24 +20000,24 @@ var wi = k((er, Cs) => { er.__esModule = true; er.default = void 0; var Ad = Pd(Me()), Od = ne(); - function Pd(e2) { - return e2 && e2.__esModule ? e2 : { default: e2 }; + function Pd(e) { + return e && e.__esModule ? e : { default: e }; } - function Bd(e2, t2) { - e2.prototype = Object.create(t2.prototype), e2.prototype.constructor = e2, Fi(e2, t2); + function Bd(e, t) { + e.prototype = Object.create(t.prototype), e.prototype.constructor = e, Fi(e, t); } - function Fi(e2, t2) { - return Fi = Object.setPrototypeOf || function(r2, i2) { - return r2.__proto__ = i2, r2; - }, Fi(e2, t2); + function Fi(e, t) { + return Fi = Object.setPrototypeOf || function(r, i) { + return r.__proto__ = i, r; + }, Fi(e, t); } - var Id = (function(e2) { - Bd(t2, e2); - function t2(n2) { - var r2; - return r2 = e2.call(this, n2) || this, r2.type = Od.STRING, r2; + var Id = (function(e) { + Bd(t, e); + function t(n) { + var r; + return r = e.call(this, n) || this, r.type = Od.STRING, r; } - return t2; + return t; })(Ad.default); er.default = Id; Cs.exports = er.default; @@ -26172,36 +20026,36 @@ var Si = k((tr, _s) => { tr.__esModule = true; tr.default = void 0; var Rd = Md(on()), Ld = ne(); - function Md(e2) { - return e2 && e2.__esModule ? e2 : { default: e2 }; + function Md(e) { + return e && e.__esModule ? e : { default: e }; } - function Nd(e2, t2) { - e2.prototype = Object.create(t2.prototype), e2.prototype.constructor = e2, Ei(e2, t2); + function Nd(e, t) { + e.prototype = Object.create(t.prototype), e.prototype.constructor = e, Ei(e, t); } - function Ei(e2, t2) { - return Ei = Object.setPrototypeOf || function(r2, i2) { - return r2.__proto__ = i2, r2; - }, Ei(e2, t2); + function Ei(e, t) { + return Ei = Object.setPrototypeOf || function(r, i) { + return r.__proto__ = i, r; + }, Ei(e, t); } - var Wd = (function(e2) { - Nd(t2, e2); - function t2(r2) { - var i2; - return i2 = e2.call(this, r2) || this, i2.type = Ld.PSEUDO, i2; + var Wd = (function(e) { + Nd(t, e); + function t(r) { + var i; + return i = e.call(this, r) || this, i.type = Ld.PSEUDO, i; } - var n2 = t2.prototype; - return n2.toString = function() { - var i2 = this.length ? "(" + this.map(String).join(",") + ")" : ""; - return [this.rawSpaceBefore, this.stringifyProperty("value"), i2, this.rawSpaceAfter].join(""); - }, t2; + var n = t.prototype; + return n.toString = function() { + var i = this.length ? "(" + this.map(String).join(",") + ")" : ""; + return [this.rawSpaceBefore, this.stringifyProperty("value"), i, this.rawSpaceAfter].join(""); + }, t; })(Rd.default); tr.default = Wd; _s.exports = tr.default; }); var Ts = k((Lb, ks) => { - ks.exports = function(t2, n2) { - return function(...r2) { - return console.warn(n2), t2(...r2); + ks.exports = function(t, n) { + return function(...r) { + return console.warn(n), t(...r); }; }; }); @@ -26210,173 +20064,173 @@ var Oi = k((ir) => { ir.unescapeValue = Ai; ir.default = void 0; var rr = Ti(un()), $d = Ti(ui()), qd = Ti(sn()), zd = ne(), Ci; - function Ti(e2) { - return e2 && e2.__esModule ? e2 : { default: e2 }; + function Ti(e) { + return e && e.__esModule ? e : { default: e }; } - function As(e2, t2) { - for (var n2 = 0; n2 < t2.length; n2++) { - var r2 = t2[n2]; - r2.enumerable = r2.enumerable || false, r2.configurable = true, "value" in r2 && (r2.writable = true), Object.defineProperty(e2, r2.key, r2); + function As(e, t) { + for (var n = 0; n < t.length; n++) { + var r = t[n]; + r.enumerable = r.enumerable || false, r.configurable = true, "value" in r && (r.writable = true), Object.defineProperty(e, r.key, r); } } - function Ud(e2, t2, n2) { - return t2 && As(e2.prototype, t2), e2; + function Ud(e, t, n) { + return t && As(e.prototype, t), e; } - function Gd(e2, t2) { - e2.prototype = Object.create(t2.prototype), e2.prototype.constructor = e2, ki(e2, t2); + function Gd(e, t) { + e.prototype = Object.create(t.prototype), e.prototype.constructor = e, ki(e, t); } - function ki(e2, t2) { - return ki = Object.setPrototypeOf || function(r2, i2) { - return r2.__proto__ = i2, r2; - }, ki(e2, t2); + function ki(e, t) { + return ki = Object.setPrototypeOf || function(r, i) { + return r.__proto__ = i, r; + }, ki(e, t); } var nr = Ts(), jd = /^('|")([^]*)\1$/, Hd = nr(function() { }, "Assigning an attribute a value containing characters that might need to be escaped is deprecated. Call attribute.setValue() instead."), Vd = nr(function() { }, "Assigning attr.quoted is deprecated and has no effect. Assign to attr.quoteMark instead."), Yd = nr(function() { }, "Constructing an Attribute selector with a value without specifying quoteMark is deprecated. Note: The value should be unescaped now."); - function Ai(e2) { - var t2 = false, n2 = null, r2 = e2, i2 = r2.match(jd); - return i2 && (n2 = i2[1], r2 = i2[2]), r2 = (0, $d.default)(r2), r2 !== e2 && (t2 = true), { deprecatedUsage: t2, unescaped: r2, quoteMark: n2 }; + function Ai(e) { + var t = false, n = null, r = e, i = r.match(jd); + return i && (n = i[1], r = i[2]), r = (0, $d.default)(r), r !== e && (t = true), { deprecatedUsage: t, unescaped: r, quoteMark: n }; } - function Xd(e2) { - if (e2.quoteMark !== void 0 || e2.value === void 0) return e2; + function Xd(e) { + if (e.quoteMark !== void 0 || e.value === void 0) return e; Yd(); - var t2 = Ai(e2.value), n2 = t2.quoteMark, r2 = t2.unescaped; - return e2.raws || (e2.raws = {}), e2.raws.value === void 0 && (e2.raws.value = e2.value), e2.value = r2, e2.quoteMark = n2, e2; + var t = Ai(e.value), n = t.quoteMark, r = t.unescaped; + return e.raws || (e.raws = {}), e.raws.value === void 0 && (e.raws.value = e.value), e.value = r, e.quoteMark = n, e; } - var an = (function(e2) { - Gd(t2, e2); - function t2(r2) { - var i2; - return r2 === void 0 && (r2 = {}), i2 = e2.call(this, Xd(r2)) || this, i2.type = zd.ATTRIBUTE, i2.raws = i2.raws || {}, Object.defineProperty(i2.raws, "unquoted", { get: nr(function() { - return i2.value; + var an = (function(e) { + Gd(t, e); + function t(r) { + var i; + return r === void 0 && (r = {}), i = e.call(this, Xd(r)) || this, i.type = zd.ATTRIBUTE, i.raws = i.raws || {}, Object.defineProperty(i.raws, "unquoted", { get: nr(function() { + return i.value; }, "attr.raws.unquoted is deprecated. Call attr.value instead."), set: nr(function() { - return i2.value; - }, "Setting attr.raws.unquoted is deprecated and has no effect. attr.value is unescaped by default now.") }), i2._constructed = true, i2; + return i.value; + }, "Setting attr.raws.unquoted is deprecated and has no effect. attr.value is unescaped by default now.") }), i._constructed = true, i; } - var n2 = t2.prototype; - return n2.getQuotedValue = function(i2) { - i2 === void 0 && (i2 = {}); - var o2 = this._determineQuoteMark(i2), u4 = _i[o2], s2 = (0, rr.default)(this._value, u4); - return s2; - }, n2._determineQuoteMark = function(i2) { - return i2.smart ? this.smartQuoteMark(i2) : this.preferredQuoteMark(i2); - }, n2.setValue = function(i2, o2) { - o2 === void 0 && (o2 = {}), this._value = i2, this._quoteMark = this._determineQuoteMark(o2), this._syncRawValue(); - }, n2.smartQuoteMark = function(i2) { - var o2 = this.value, u4 = o2.replace(/[^']/g, "").length, s2 = o2.replace(/[^"]/g, "").length; - if (u4 + s2 === 0) { - var a2 = (0, rr.default)(o2, { isIdentifier: true }); - if (a2 === o2) return t2.NO_QUOTE; - var l3 = this.preferredQuoteMark(i2); - if (l3 === t2.NO_QUOTE) { - var f3 = this.quoteMark || i2.quoteMark || t2.DOUBLE_QUOTE, c3 = _i[f3], p2 = (0, rr.default)(o2, c3); - if (p2.length < a2.length) return f3; + var n = t.prototype; + return n.getQuotedValue = function(i) { + i === void 0 && (i = {}); + var o = this._determineQuoteMark(i), u2 = _i[o], s = (0, rr.default)(this._value, u2); + return s; + }, n._determineQuoteMark = function(i) { + return i.smart ? this.smartQuoteMark(i) : this.preferredQuoteMark(i); + }, n.setValue = function(i, o) { + o === void 0 && (o = {}), this._value = i, this._quoteMark = this._determineQuoteMark(o), this._syncRawValue(); + }, n.smartQuoteMark = function(i) { + var o = this.value, u2 = o.replace(/[^']/g, "").length, s = o.replace(/[^"]/g, "").length; + if (u2 + s === 0) { + var a = (0, rr.default)(o, { isIdentifier: true }); + if (a === o) return t.NO_QUOTE; + var l2 = this.preferredQuoteMark(i); + if (l2 === t.NO_QUOTE) { + var f = this.quoteMark || i.quoteMark || t.DOUBLE_QUOTE, c2 = _i[f], p = (0, rr.default)(o, c2); + if (p.length < a.length) return f; } - return l3; - } else return s2 === u4 ? this.preferredQuoteMark(i2) : s2 < u4 ? t2.DOUBLE_QUOTE : t2.SINGLE_QUOTE; - }, n2.preferredQuoteMark = function(i2) { - var o2 = i2.preferCurrentQuoteMark ? this.quoteMark : i2.quoteMark; - return o2 === void 0 && (o2 = i2.preferCurrentQuoteMark ? i2.quoteMark : this.quoteMark), o2 === void 0 && (o2 = t2.DOUBLE_QUOTE), o2; - }, n2._syncRawValue = function() { - var i2 = (0, rr.default)(this._value, _i[this.quoteMark]); - i2 === this._value ? this.raws && delete this.raws.value : this.raws.value = i2; - }, n2._handleEscapes = function(i2, o2) { + return l2; + } else return s === u2 ? this.preferredQuoteMark(i) : s < u2 ? t.DOUBLE_QUOTE : t.SINGLE_QUOTE; + }, n.preferredQuoteMark = function(i) { + var o = i.preferCurrentQuoteMark ? this.quoteMark : i.quoteMark; + return o === void 0 && (o = i.preferCurrentQuoteMark ? i.quoteMark : this.quoteMark), o === void 0 && (o = t.DOUBLE_QUOTE), o; + }, n._syncRawValue = function() { + var i = (0, rr.default)(this._value, _i[this.quoteMark]); + i === this._value ? this.raws && delete this.raws.value : this.raws.value = i; + }, n._handleEscapes = function(i, o) { if (this._constructed) { - var u4 = (0, rr.default)(o2, { isIdentifier: true }); - u4 !== o2 ? this.raws[i2] = u4 : delete this.raws[i2]; + var u2 = (0, rr.default)(o, { isIdentifier: true }); + u2 !== o ? this.raws[i] = u2 : delete this.raws[i]; } - }, n2._spacesFor = function(i2) { - var o2 = { before: "", after: "" }, u4 = this.spaces[i2] || {}, s2 = this.raws.spaces && this.raws.spaces[i2] || {}; - return Object.assign(o2, u4, s2); - }, n2._stringFor = function(i2, o2, u4) { - o2 === void 0 && (o2 = i2), u4 === void 0 && (u4 = Os); - var s2 = this._spacesFor(o2); - return u4(this.stringifyProperty(i2), s2); - }, n2.offsetOf = function(i2) { - var o2 = 1, u4 = this._spacesFor("attribute"); - if (o2 += u4.before.length, i2 === "namespace" || i2 === "ns") return this.namespace ? o2 : -1; - if (i2 === "attributeNS" || (o2 += this.namespaceString.length, this.namespace && (o2 += 1), i2 === "attribute")) return o2; - o2 += this.stringifyProperty("attribute").length, o2 += u4.after.length; - var s2 = this._spacesFor("operator"); - o2 += s2.before.length; - var a2 = this.stringifyProperty("operator"); - if (i2 === "operator") return a2 ? o2 : -1; - o2 += a2.length, o2 += s2.after.length; - var l3 = this._spacesFor("value"); - o2 += l3.before.length; - var f3 = this.stringifyProperty("value"); - if (i2 === "value") return f3 ? o2 : -1; - o2 += f3.length, o2 += l3.after.length; - var c3 = this._spacesFor("insensitive"); - return o2 += c3.before.length, i2 === "insensitive" && this.insensitive ? o2 : -1; - }, n2.toString = function() { - var i2 = this, o2 = [this.rawSpaceBefore, "["]; - return o2.push(this._stringFor("qualifiedAttribute", "attribute")), this.operator && (this.value || this.value === "") && (o2.push(this._stringFor("operator")), o2.push(this._stringFor("value")), o2.push(this._stringFor("insensitiveFlag", "insensitive", function(u4, s2) { - return u4.length > 0 && !i2.quoted && s2.before.length === 0 && !(i2.spaces.value && i2.spaces.value.after) && (s2.before = " "), Os(u4, s2); - }))), o2.push("]"), o2.push(this.rawSpaceAfter), o2.join(""); - }, Ud(t2, [{ key: "quoted", get: function() { - var i2 = this.quoteMark; - return i2 === "'" || i2 === '"'; - }, set: function(i2) { + }, n._spacesFor = function(i) { + var o = { before: "", after: "" }, u2 = this.spaces[i] || {}, s = this.raws.spaces && this.raws.spaces[i] || {}; + return Object.assign(o, u2, s); + }, n._stringFor = function(i, o, u2) { + o === void 0 && (o = i), u2 === void 0 && (u2 = Os); + var s = this._spacesFor(o); + return u2(this.stringifyProperty(i), s); + }, n.offsetOf = function(i) { + var o = 1, u2 = this._spacesFor("attribute"); + if (o += u2.before.length, i === "namespace" || i === "ns") return this.namespace ? o : -1; + if (i === "attributeNS" || (o += this.namespaceString.length, this.namespace && (o += 1), i === "attribute")) return o; + o += this.stringifyProperty("attribute").length, o += u2.after.length; + var s = this._spacesFor("operator"); + o += s.before.length; + var a = this.stringifyProperty("operator"); + if (i === "operator") return a ? o : -1; + o += a.length, o += s.after.length; + var l2 = this._spacesFor("value"); + o += l2.before.length; + var f = this.stringifyProperty("value"); + if (i === "value") return f ? o : -1; + o += f.length, o += l2.after.length; + var c2 = this._spacesFor("insensitive"); + return o += c2.before.length, i === "insensitive" && this.insensitive ? o : -1; + }, n.toString = function() { + var i = this, o = [this.rawSpaceBefore, "["]; + return o.push(this._stringFor("qualifiedAttribute", "attribute")), this.operator && (this.value || this.value === "") && (o.push(this._stringFor("operator")), o.push(this._stringFor("value")), o.push(this._stringFor("insensitiveFlag", "insensitive", function(u2, s) { + return u2.length > 0 && !i.quoted && s.before.length === 0 && !(i.spaces.value && i.spaces.value.after) && (s.before = " "), Os(u2, s); + }))), o.push("]"), o.push(this.rawSpaceAfter), o.join(""); + }, Ud(t, [{ key: "quoted", get: function() { + var i = this.quoteMark; + return i === "'" || i === '"'; + }, set: function(i) { Vd(); } }, { key: "quoteMark", get: function() { return this._quoteMark; - }, set: function(i2) { + }, set: function(i) { if (!this._constructed) { - this._quoteMark = i2; + this._quoteMark = i; return; } - this._quoteMark !== i2 && (this._quoteMark = i2, this._syncRawValue()); + this._quoteMark !== i && (this._quoteMark = i, this._syncRawValue()); } }, { key: "qualifiedAttribute", get: function() { return this.qualifiedName(this.raws.attribute || this.attribute); } }, { key: "insensitiveFlag", get: function() { return this.insensitive ? "i" : ""; } }, { key: "value", get: function() { return this._value; - }, set: function(i2) { + }, set: function(i) { if (this._constructed) { - var o2 = Ai(i2), u4 = o2.deprecatedUsage, s2 = o2.unescaped, a2 = o2.quoteMark; - if (u4 && Hd(), s2 === this._value && a2 === this._quoteMark) return; - this._value = s2, this._quoteMark = a2, this._syncRawValue(); - } else this._value = i2; + var o = Ai(i), u2 = o.deprecatedUsage, s = o.unescaped, a = o.quoteMark; + if (u2 && Hd(), s === this._value && a === this._quoteMark) return; + this._value = s, this._quoteMark = a, this._syncRawValue(); + } else this._value = i; } }, { key: "attribute", get: function() { return this._attribute; - }, set: function(i2) { - this._handleEscapes("attribute", i2), this._attribute = i2; - } }]), t2; + }, set: function(i) { + this._handleEscapes("attribute", i), this._attribute = i; + } }]), t; })(qd.default); ir.default = an; an.NO_QUOTE = null; an.SINGLE_QUOTE = "'"; an.DOUBLE_QUOTE = '"'; var _i = (Ci = { "'": { quotes: "single", wrap: true }, '"': { quotes: "double", wrap: true } }, Ci[null] = { isIdentifier: true }, Ci); - function Os(e2, t2) { - return "" + t2.before + e2 + t2.after; + function Os(e, t) { + return "" + t.before + e + t.after; } }); var Bi = k((or, Ps) => { or.__esModule = true; or.default = void 0; var Qd = Jd(sn()), Kd = ne(); - function Jd(e2) { - return e2 && e2.__esModule ? e2 : { default: e2 }; + function Jd(e) { + return e && e.__esModule ? e : { default: e }; } - function Zd(e2, t2) { - e2.prototype = Object.create(t2.prototype), e2.prototype.constructor = e2, Pi(e2, t2); + function Zd(e, t) { + e.prototype = Object.create(t.prototype), e.prototype.constructor = e, Pi(e, t); } - function Pi(e2, t2) { - return Pi = Object.setPrototypeOf || function(r2, i2) { - return r2.__proto__ = i2, r2; - }, Pi(e2, t2); + function Pi(e, t) { + return Pi = Object.setPrototypeOf || function(r, i) { + return r.__proto__ = i, r; + }, Pi(e, t); } - var ep = (function(e2) { - Zd(t2, e2); - function t2(n2) { - var r2; - return r2 = e2.call(this, n2) || this, r2.type = Kd.UNIVERSAL, r2.value = "*", r2; + var ep = (function(e) { + Zd(t, e); + function t(n) { + var r; + return r = e.call(this, n) || this, r.type = Kd.UNIVERSAL, r.value = "*", r; } - return t2; + return t; })(Qd.default); or.default = ep; Ps.exports = or.default; @@ -26385,24 +20239,24 @@ var Ri = k((ur, Bs) => { ur.__esModule = true; ur.default = void 0; var tp = np(Me()), rp = ne(); - function np(e2) { - return e2 && e2.__esModule ? e2 : { default: e2 }; + function np(e) { + return e && e.__esModule ? e : { default: e }; } - function ip(e2, t2) { - e2.prototype = Object.create(t2.prototype), e2.prototype.constructor = e2, Ii(e2, t2); + function ip(e, t) { + e.prototype = Object.create(t.prototype), e.prototype.constructor = e, Ii(e, t); } - function Ii(e2, t2) { - return Ii = Object.setPrototypeOf || function(r2, i2) { - return r2.__proto__ = i2, r2; - }, Ii(e2, t2); + function Ii(e, t) { + return Ii = Object.setPrototypeOf || function(r, i) { + return r.__proto__ = i, r; + }, Ii(e, t); } - var op = (function(e2) { - ip(t2, e2); - function t2(n2) { - var r2; - return r2 = e2.call(this, n2) || this, r2.type = rp.COMBINATOR, r2; + var op = (function(e) { + ip(t, e); + function t(n) { + var r; + return r = e.call(this, n) || this, r.type = rp.COMBINATOR, r; } - return t2; + return t; })(tp.default); ur.default = op; Bs.exports = ur.default; @@ -26411,24 +20265,24 @@ var Mi = k((sr, Is) => { sr.__esModule = true; sr.default = void 0; var up = ap(Me()), sp = ne(); - function ap(e2) { - return e2 && e2.__esModule ? e2 : { default: e2 }; + function ap(e) { + return e && e.__esModule ? e : { default: e }; } - function lp(e2, t2) { - e2.prototype = Object.create(t2.prototype), e2.prototype.constructor = e2, Li(e2, t2); + function lp(e, t) { + e.prototype = Object.create(t.prototype), e.prototype.constructor = e, Li(e, t); } - function Li(e2, t2) { - return Li = Object.setPrototypeOf || function(r2, i2) { - return r2.__proto__ = i2, r2; - }, Li(e2, t2); + function Li(e, t) { + return Li = Object.setPrototypeOf || function(r, i) { + return r.__proto__ = i, r; + }, Li(e, t); } - var fp = (function(e2) { - lp(t2, e2); - function t2(n2) { - var r2; - return r2 = e2.call(this, n2) || this, r2.type = sp.NESTING, r2.value = "&", r2; + var fp = (function(e) { + lp(t, e); + function t(n) { + var r; + return r = e.call(this, n) || this, r.type = sp.NESTING, r.value = "&", r; } - return t2; + return t; })(up.default); sr.default = fp; Is.exports = sr.default; @@ -26436,613 +20290,613 @@ var Mi = k((sr, Is) => { var Ls = k((ln, Rs) => { ln.__esModule = true; ln.default = cp; - function cp(e2) { - return e2.sort(function(t2, n2) { - return t2 - n2; + function cp(e) { + return e.sort(function(t, n) { + return t - n; }); } Rs.exports = ln.default; }); -var Ni = k((_2) => { - _2.__esModule = true; - _2.combinator = _2.word = _2.comment = _2.str = _2.tab = _2.newline = _2.feed = _2.cr = _2.backslash = _2.bang = _2.slash = _2.doubleQuote = _2.singleQuote = _2.space = _2.greaterThan = _2.pipe = _2.equals = _2.plus = _2.caret = _2.tilde = _2.dollar = _2.closeSquare = _2.openSquare = _2.closeParenthesis = _2.openParenthesis = _2.semicolon = _2.colon = _2.comma = _2.at = _2.asterisk = _2.ampersand = void 0; +var Ni = k((_) => { + _.__esModule = true; + _.combinator = _.word = _.comment = _.str = _.tab = _.newline = _.feed = _.cr = _.backslash = _.bang = _.slash = _.doubleQuote = _.singleQuote = _.space = _.greaterThan = _.pipe = _.equals = _.plus = _.caret = _.tilde = _.dollar = _.closeSquare = _.openSquare = _.closeParenthesis = _.openParenthesis = _.semicolon = _.colon = _.comma = _.at = _.asterisk = _.ampersand = void 0; var dp = 38; - _2.ampersand = dp; + _.ampersand = dp; var pp = 42; - _2.asterisk = pp; + _.asterisk = pp; var hp = 64; - _2.at = hp; + _.at = hp; var mp = 44; - _2.comma = mp; + _.comma = mp; var Dp = 58; - _2.colon = Dp; + _.colon = Dp; var gp = 59; - _2.semicolon = gp; + _.semicolon = gp; var bp = 40; - _2.openParenthesis = bp; + _.openParenthesis = bp; var vp = 41; - _2.closeParenthesis = vp; + _.closeParenthesis = vp; var yp = 91; - _2.openSquare = yp; + _.openSquare = yp; var xp = 93; - _2.closeSquare = xp; + _.closeSquare = xp; var Fp = 36; - _2.dollar = Fp; + _.dollar = Fp; var wp = 126; - _2.tilde = wp; + _.tilde = wp; var Ep = 94; - _2.caret = Ep; + _.caret = Ep; var Sp = 43; - _2.plus = Sp; + _.plus = Sp; var Cp = 61; - _2.equals = Cp; + _.equals = Cp; var _p = 124; - _2.pipe = _p; + _.pipe = _p; var kp = 62; - _2.greaterThan = kp; + _.greaterThan = kp; var Tp = 32; - _2.space = Tp; + _.space = Tp; var Ms = 39; - _2.singleQuote = Ms; + _.singleQuote = Ms; var Ap = 34; - _2.doubleQuote = Ap; + _.doubleQuote = Ap; var Op = 47; - _2.slash = Op; + _.slash = Op; var Pp = 33; - _2.bang = Pp; + _.bang = Pp; var Bp = 92; - _2.backslash = Bp; + _.backslash = Bp; var Ip = 13; - _2.cr = Ip; + _.cr = Ip; var Rp = 12; - _2.feed = Rp; + _.feed = Rp; var Lp = 10; - _2.newline = Lp; + _.newline = Lp; var Mp = 9; - _2.tab = Mp; + _.tab = Mp; var Np = Ms; - _2.str = Np; + _.str = Np; var Wp = -1; - _2.comment = Wp; + _.comment = Wp; var $p = -2; - _2.word = $p; + _.word = $p; var qp = -3; - _2.combinator = qp; + _.combinator = qp; }); var $s = k((ar) => { ar.__esModule = true; ar.default = Yp; ar.FIELDS = void 0; - var w3 = zp(Ni()), yt, q2; + var w2 = zp(Ni()), yt, q; function Ws() { if (typeof WeakMap != "function") return null; - var e2 = /* @__PURE__ */ new WeakMap(); + var e = /* @__PURE__ */ new WeakMap(); return Ws = function() { - return e2; - }, e2; + return e; + }, e; } - function zp(e2) { - if (e2 && e2.__esModule) return e2; - if (e2 === null || typeof e2 != "object" && typeof e2 != "function") return { default: e2 }; - var t2 = Ws(); - if (t2 && t2.has(e2)) return t2.get(e2); - var n2 = {}, r2 = Object.defineProperty && Object.getOwnPropertyDescriptor; - for (var i2 in e2) if (Object.prototype.hasOwnProperty.call(e2, i2)) { - var o2 = r2 ? Object.getOwnPropertyDescriptor(e2, i2) : null; - o2 && (o2.get || o2.set) ? Object.defineProperty(n2, i2, o2) : n2[i2] = e2[i2]; + function zp(e) { + if (e && e.__esModule) return e; + if (e === null || typeof e != "object" && typeof e != "function") return { default: e }; + var t = Ws(); + if (t && t.has(e)) return t.get(e); + var n = {}, r = Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var i in e) if (Object.prototype.hasOwnProperty.call(e, i)) { + var o = r ? Object.getOwnPropertyDescriptor(e, i) : null; + o && (o.get || o.set) ? Object.defineProperty(n, i, o) : n[i] = e[i]; } - return n2.default = e2, t2 && t2.set(e2, n2), n2; + return n.default = e, t && t.set(e, n), n; } - var Up = (yt = {}, yt[w3.tab] = true, yt[w3.newline] = true, yt[w3.cr] = true, yt[w3.feed] = true, yt), Gp = (q2 = {}, q2[w3.space] = true, q2[w3.tab] = true, q2[w3.newline] = true, q2[w3.cr] = true, q2[w3.feed] = true, q2[w3.ampersand] = true, q2[w3.asterisk] = true, q2[w3.bang] = true, q2[w3.comma] = true, q2[w3.colon] = true, q2[w3.semicolon] = true, q2[w3.openParenthesis] = true, q2[w3.closeParenthesis] = true, q2[w3.openSquare] = true, q2[w3.closeSquare] = true, q2[w3.singleQuote] = true, q2[w3.doubleQuote] = true, q2[w3.plus] = true, q2[w3.pipe] = true, q2[w3.tilde] = true, q2[w3.greaterThan] = true, q2[w3.equals] = true, q2[w3.dollar] = true, q2[w3.caret] = true, q2[w3.slash] = true, q2), Wi = {}, Ns = "0123456789abcdefABCDEF"; + var Up = (yt = {}, yt[w2.tab] = true, yt[w2.newline] = true, yt[w2.cr] = true, yt[w2.feed] = true, yt), Gp = (q = {}, q[w2.space] = true, q[w2.tab] = true, q[w2.newline] = true, q[w2.cr] = true, q[w2.feed] = true, q[w2.ampersand] = true, q[w2.asterisk] = true, q[w2.bang] = true, q[w2.comma] = true, q[w2.colon] = true, q[w2.semicolon] = true, q[w2.openParenthesis] = true, q[w2.closeParenthesis] = true, q[w2.openSquare] = true, q[w2.closeSquare] = true, q[w2.singleQuote] = true, q[w2.doubleQuote] = true, q[w2.plus] = true, q[w2.pipe] = true, q[w2.tilde] = true, q[w2.greaterThan] = true, q[w2.equals] = true, q[w2.dollar] = true, q[w2.caret] = true, q[w2.slash] = true, q), Wi = {}, Ns = "0123456789abcdefABCDEF"; for (fn = 0; fn < Ns.length; fn++) Wi[Ns.charCodeAt(fn)] = true; var fn; - function jp(e2, t2) { - var n2 = t2, r2; + function jp(e, t) { + var n = t, r; do { - if (r2 = e2.charCodeAt(n2), Gp[r2]) return n2 - 1; - r2 === w3.backslash ? n2 = Hp(e2, n2) + 1 : n2++; - } while (n2 < e2.length); - return n2 - 1; + if (r = e.charCodeAt(n), Gp[r]) return n - 1; + r === w2.backslash ? n = Hp(e, n) + 1 : n++; + } while (n < e.length); + return n - 1; } - function Hp(e2, t2) { - var n2 = t2, r2 = e2.charCodeAt(n2 + 1); - if (!Up[r2]) if (Wi[r2]) { - var i2 = 0; + function Hp(e, t) { + var n = t, r = e.charCodeAt(n + 1); + if (!Up[r]) if (Wi[r]) { + var i = 0; do - n2++, i2++, r2 = e2.charCodeAt(n2 + 1); - while (Wi[r2] && i2 < 6); - i2 < 6 && r2 === w3.space && n2++; - } else n2++; - return n2; + n++, i++, r = e.charCodeAt(n + 1); + while (Wi[r] && i < 6); + i < 6 && r === w2.space && n++; + } else n++; + return n; } var Vp = { TYPE: 0, START_LINE: 1, START_COL: 2, END_LINE: 3, END_COL: 4, START_POS: 5, END_POS: 6 }; ar.FIELDS = Vp; - function Yp(e2) { - var t2 = [], n2 = e2.css.valueOf(), r2 = n2, i2 = r2.length, o2 = -1, u4 = 1, s2 = 0, a2 = 0, l3, f3, c3, p2, d3, h3, m3, x3, g3, S3, v3, b2, y2; - function T2(A2, P3) { - if (e2.safe) n2 += P3, g3 = n2.length - 1; - else throw e2.error("Unclosed " + A2, u4, s2 - o2, s2); + function Yp(e) { + var t = [], n = e.css.valueOf(), r = n, i = r.length, o = -1, u2 = 1, s = 0, a = 0, l2, f, c2, p, d2, h3, m2, x2, g2, S2, v2, b, y; + function T(A, P2) { + if (e.safe) n += P2, g2 = n.length - 1; + else throw e.error("Unclosed " + A, u2, s - o, s); } - for (; s2 < i2; ) { - switch (l3 = n2.charCodeAt(s2), l3 === w3.newline && (o2 = s2, u4 += 1), l3) { - case w3.space: - case w3.tab: - case w3.newline: - case w3.cr: - case w3.feed: - g3 = s2; + for (; s < i; ) { + switch (l2 = n.charCodeAt(s), l2 === w2.newline && (o = s, u2 += 1), l2) { + case w2.space: + case w2.tab: + case w2.newline: + case w2.cr: + case w2.feed: + g2 = s; do - g3 += 1, l3 = n2.charCodeAt(g3), l3 === w3.newline && (o2 = g3, u4 += 1); - while (l3 === w3.space || l3 === w3.newline || l3 === w3.tab || l3 === w3.cr || l3 === w3.feed); - y2 = w3.space, p2 = u4, c3 = g3 - o2 - 1, a2 = g3; + g2 += 1, l2 = n.charCodeAt(g2), l2 === w2.newline && (o = g2, u2 += 1); + while (l2 === w2.space || l2 === w2.newline || l2 === w2.tab || l2 === w2.cr || l2 === w2.feed); + y = w2.space, p = u2, c2 = g2 - o - 1, a = g2; break; - case w3.plus: - case w3.greaterThan: - case w3.tilde: - case w3.pipe: - g3 = s2; + case w2.plus: + case w2.greaterThan: + case w2.tilde: + case w2.pipe: + g2 = s; do - g3 += 1, l3 = n2.charCodeAt(g3); - while (l3 === w3.plus || l3 === w3.greaterThan || l3 === w3.tilde || l3 === w3.pipe); - y2 = w3.combinator, p2 = u4, c3 = s2 - o2, a2 = g3; + g2 += 1, l2 = n.charCodeAt(g2); + while (l2 === w2.plus || l2 === w2.greaterThan || l2 === w2.tilde || l2 === w2.pipe); + y = w2.combinator, p = u2, c2 = s - o, a = g2; break; - case w3.asterisk: - case w3.ampersand: - case w3.bang: - case w3.comma: - case w3.equals: - case w3.dollar: - case w3.caret: - case w3.openSquare: - case w3.closeSquare: - case w3.colon: - case w3.semicolon: - case w3.openParenthesis: - case w3.closeParenthesis: - g3 = s2, y2 = l3, p2 = u4, c3 = s2 - o2, a2 = g3 + 1; + case w2.asterisk: + case w2.ampersand: + case w2.bang: + case w2.comma: + case w2.equals: + case w2.dollar: + case w2.caret: + case w2.openSquare: + case w2.closeSquare: + case w2.colon: + case w2.semicolon: + case w2.openParenthesis: + case w2.closeParenthesis: + g2 = s, y = l2, p = u2, c2 = s - o, a = g2 + 1; break; - case w3.singleQuote: - case w3.doubleQuote: - b2 = l3 === w3.singleQuote ? "'" : '"', g3 = s2; + case w2.singleQuote: + case w2.doubleQuote: + b = l2 === w2.singleQuote ? "'" : '"', g2 = s; do - for (d3 = false, g3 = n2.indexOf(b2, g3 + 1), g3 === -1 && T2("quote", b2), h3 = g3; n2.charCodeAt(h3 - 1) === w3.backslash; ) h3 -= 1, d3 = !d3; - while (d3); - y2 = w3.str, p2 = u4, c3 = s2 - o2, a2 = g3 + 1; + for (d2 = false, g2 = n.indexOf(b, g2 + 1), g2 === -1 && T("quote", b), h3 = g2; n.charCodeAt(h3 - 1) === w2.backslash; ) h3 -= 1, d2 = !d2; + while (d2); + y = w2.str, p = u2, c2 = s - o, a = g2 + 1; break; default: - l3 === w3.slash && n2.charCodeAt(s2 + 1) === w3.asterisk ? (g3 = n2.indexOf("*/", s2 + 2) + 1, g3 === 0 && T2("comment", "*/"), f3 = n2.slice(s2, g3 + 1), x3 = f3.split(` -`), m3 = x3.length - 1, m3 > 0 ? (S3 = u4 + m3, v3 = g3 - x3[m3].length) : (S3 = u4, v3 = o2), y2 = w3.comment, u4 = S3, p2 = S3, c3 = g3 - v3) : l3 === w3.slash ? (g3 = s2, y2 = l3, p2 = u4, c3 = s2 - o2, a2 = g3 + 1) : (g3 = jp(n2, s2), y2 = w3.word, p2 = u4, c3 = g3 - o2), a2 = g3 + 1; + l2 === w2.slash && n.charCodeAt(s + 1) === w2.asterisk ? (g2 = n.indexOf("*/", s + 2) + 1, g2 === 0 && T("comment", "*/"), f = n.slice(s, g2 + 1), x2 = f.split(` +`), m2 = x2.length - 1, m2 > 0 ? (S2 = u2 + m2, v2 = g2 - x2[m2].length) : (S2 = u2, v2 = o), y = w2.comment, u2 = S2, p = S2, c2 = g2 - v2) : l2 === w2.slash ? (g2 = s, y = l2, p = u2, c2 = s - o, a = g2 + 1) : (g2 = jp(n, s), y = w2.word, p = u2, c2 = g2 - o), a = g2 + 1; break; } - t2.push([y2, u4, s2 - o2, p2, c3, s2, a2]), v3 && (o2 = v3, v3 = null), s2 = a2; + t.push([y, u2, s - o, p, c2, s, a]), v2 && (o = v2, v2 = null), s = a; } - return t2; + return t; } }); var Ys = k((lr, Vs) => { lr.__esModule = true; lr.default = void 0; - var Xp = ve(li()), $i = ve(ci()), Qp = ve(hi()), qs = ve(Di()), Kp = ve(bi()), Jp = ve(xi()), qi = ve(wi()), Zp = ve(Si()), zs = cn(Oi()), e0 = ve(Bi()), zi = ve(Ri()), t0 = ve(Mi()), r0 = ve(Ls()), F = cn($s()), C2 = cn(Ni()), n0 = cn(ne()), Y = Gt(), nt, Ui; + var Xp = ve(li()), $i = ve(ci()), Qp = ve(hi()), qs = ve(Di()), Kp = ve(bi()), Jp = ve(xi()), qi = ve(wi()), Zp = ve(Si()), zs = cn(Oi()), e0 = ve(Bi()), zi = ve(Ri()), t0 = ve(Mi()), r0 = ve(Ls()), F = cn($s()), C = cn(Ni()), n0 = cn(ne()), Y = Gt(), nt, Ui; function Hs() { if (typeof WeakMap != "function") return null; - var e2 = /* @__PURE__ */ new WeakMap(); + var e = /* @__PURE__ */ new WeakMap(); return Hs = function() { - return e2; - }, e2; + return e; + }, e; } - function cn(e2) { - if (e2 && e2.__esModule) return e2; - if (e2 === null || typeof e2 != "object" && typeof e2 != "function") return { default: e2 }; - var t2 = Hs(); - if (t2 && t2.has(e2)) return t2.get(e2); - var n2 = {}, r2 = Object.defineProperty && Object.getOwnPropertyDescriptor; - for (var i2 in e2) if (Object.prototype.hasOwnProperty.call(e2, i2)) { - var o2 = r2 ? Object.getOwnPropertyDescriptor(e2, i2) : null; - o2 && (o2.get || o2.set) ? Object.defineProperty(n2, i2, o2) : n2[i2] = e2[i2]; + function cn(e) { + if (e && e.__esModule) return e; + if (e === null || typeof e != "object" && typeof e != "function") return { default: e }; + var t = Hs(); + if (t && t.has(e)) return t.get(e); + var n = {}, r = Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var i in e) if (Object.prototype.hasOwnProperty.call(e, i)) { + var o = r ? Object.getOwnPropertyDescriptor(e, i) : null; + o && (o.get || o.set) ? Object.defineProperty(n, i, o) : n[i] = e[i]; } - return n2.default = e2, t2 && t2.set(e2, n2), n2; + return n.default = e, t && t.set(e, n), n; } - function ve(e2) { - return e2 && e2.__esModule ? e2 : { default: e2 }; + function ve(e) { + return e && e.__esModule ? e : { default: e }; } - function Us(e2, t2) { - for (var n2 = 0; n2 < t2.length; n2++) { - var r2 = t2[n2]; - r2.enumerable = r2.enumerable || false, r2.configurable = true, "value" in r2 && (r2.writable = true), Object.defineProperty(e2, r2.key, r2); + function Us(e, t) { + for (var n = 0; n < t.length; n++) { + var r = t[n]; + r.enumerable = r.enumerable || false, r.configurable = true, "value" in r && (r.writable = true), Object.defineProperty(e, r.key, r); } } - function i0(e2, t2, n2) { - return t2 && Us(e2.prototype, t2), e2; + function i0(e, t, n) { + return t && Us(e.prototype, t), e; } - var Hi = (nt = {}, nt[C2.space] = true, nt[C2.cr] = true, nt[C2.feed] = true, nt[C2.newline] = true, nt[C2.tab] = true, nt), o0 = Object.assign({}, Hi, (Ui = {}, Ui[C2.comment] = true, Ui)); - function Gs(e2) { - return { line: e2[F.FIELDS.START_LINE], column: e2[F.FIELDS.START_COL] }; + var Hi = (nt = {}, nt[C.space] = true, nt[C.cr] = true, nt[C.feed] = true, nt[C.newline] = true, nt[C.tab] = true, nt), o0 = Object.assign({}, Hi, (Ui = {}, Ui[C.comment] = true, Ui)); + function Gs(e) { + return { line: e[F.FIELDS.START_LINE], column: e[F.FIELDS.START_COL] }; } - function js(e2) { - return { line: e2[F.FIELDS.END_LINE], column: e2[F.FIELDS.END_COL] }; + function js(e) { + return { line: e[F.FIELDS.END_LINE], column: e[F.FIELDS.END_COL] }; } - function it(e2, t2, n2, r2) { - return { start: { line: e2, column: t2 }, end: { line: n2, column: r2 } }; + function it(e, t, n, r) { + return { start: { line: e, column: t }, end: { line: n, column: r } }; } - function xt(e2) { - return it(e2[F.FIELDS.START_LINE], e2[F.FIELDS.START_COL], e2[F.FIELDS.END_LINE], e2[F.FIELDS.END_COL]); + function xt(e) { + return it(e[F.FIELDS.START_LINE], e[F.FIELDS.START_COL], e[F.FIELDS.END_LINE], e[F.FIELDS.END_COL]); } - function Gi(e2, t2) { - if (e2) return it(e2[F.FIELDS.START_LINE], e2[F.FIELDS.START_COL], t2[F.FIELDS.END_LINE], t2[F.FIELDS.END_COL]); + function Gi(e, t) { + if (e) return it(e[F.FIELDS.START_LINE], e[F.FIELDS.START_COL], t[F.FIELDS.END_LINE], t[F.FIELDS.END_COL]); } - function Ft(e2, t2) { - var n2 = e2[t2]; - if (typeof n2 == "string") return n2.indexOf("\\") !== -1 && ((0, Y.ensureObject)(e2, "raws"), e2[t2] = (0, Y.unesc)(n2), e2.raws[t2] === void 0 && (e2.raws[t2] = n2)), e2; + function Ft(e, t) { + var n = e[t]; + if (typeof n == "string") return n.indexOf("\\") !== -1 && ((0, Y.ensureObject)(e, "raws"), e[t] = (0, Y.unesc)(n), e.raws[t] === void 0 && (e.raws[t] = n)), e; } - function ji(e2, t2) { - for (var n2 = -1, r2 = []; (n2 = e2.indexOf(t2, n2 + 1)) !== -1; ) r2.push(n2); - return r2; + function ji(e, t) { + for (var n = -1, r = []; (n = e.indexOf(t, n + 1)) !== -1; ) r.push(n); + return r; } function u0() { - var e2 = Array.prototype.concat.apply([], arguments); - return e2.filter(function(t2, n2) { - return n2 === e2.indexOf(t2); + var e = Array.prototype.concat.apply([], arguments); + return e.filter(function(t, n) { + return n === e.indexOf(t); }); } var s0 = (function() { - function e2(n2, r2) { - r2 === void 0 && (r2 = {}), this.rule = n2, this.options = Object.assign({ lossy: false, safe: false }, r2), this.position = 0, this.css = typeof this.rule == "string" ? this.rule : this.rule.selector, this.tokens = (0, F.default)({ css: this.css, error: this._errorGenerator(), safe: this.options.safe }); - var i2 = Gi(this.tokens[0], this.tokens[this.tokens.length - 1]); - this.root = new Xp.default({ source: i2 }), this.root.errorGenerator = this._errorGenerator(); - var o2 = new $i.default({ source: { start: { line: 1, column: 1 } } }); - this.root.append(o2), this.current = o2, this.loop(); + function e(n, r) { + r === void 0 && (r = {}), this.rule = n, this.options = Object.assign({ lossy: false, safe: false }, r), this.position = 0, this.css = typeof this.rule == "string" ? this.rule : this.rule.selector, this.tokens = (0, F.default)({ css: this.css, error: this._errorGenerator(), safe: this.options.safe }); + var i = Gi(this.tokens[0], this.tokens[this.tokens.length - 1]); + this.root = new Xp.default({ source: i }), this.root.errorGenerator = this._errorGenerator(); + var o = new $i.default({ source: { start: { line: 1, column: 1 } } }); + this.root.append(o), this.current = o, this.loop(); } - var t2 = e2.prototype; - return t2._errorGenerator = function() { - var r2 = this; - return function(i2, o2) { - return typeof r2.rule == "string" ? new Error(i2) : r2.rule.error(i2, o2); + var t = e.prototype; + return t._errorGenerator = function() { + var r = this; + return function(i, o) { + return typeof r.rule == "string" ? new Error(i) : r.rule.error(i, o); }; - }, t2.attribute = function() { - var r2 = [], i2 = this.currToken; - for (this.position++; this.position < this.tokens.length && this.currToken[F.FIELDS.TYPE] !== C2.closeSquare; ) r2.push(this.currToken), this.position++; - if (this.currToken[F.FIELDS.TYPE] !== C2.closeSquare) return this.expected("closing square bracket", this.currToken[F.FIELDS.START_POS]); - var o2 = r2.length, u4 = { source: it(i2[1], i2[2], this.currToken[3], this.currToken[4]), sourceIndex: i2[F.FIELDS.START_POS] }; - if (o2 === 1 && !~[C2.word].indexOf(r2[0][F.FIELDS.TYPE])) return this.expected("attribute", r2[0][F.FIELDS.START_POS]); - for (var s2 = 0, a2 = "", l3 = "", f3 = null, c3 = false; s2 < o2; ) { - var p2 = r2[s2], d3 = this.content(p2), h3 = r2[s2 + 1]; - switch (p2[F.FIELDS.TYPE]) { - case C2.space: - if (c3 = true, this.options.lossy) break; - if (f3) { - (0, Y.ensureObject)(u4, "spaces", f3); - var m3 = u4.spaces[f3].after || ""; - u4.spaces[f3].after = m3 + d3; - var x3 = (0, Y.getProp)(u4, "raws", "spaces", f3, "after") || null; - x3 && (u4.raws.spaces[f3].after = x3 + d3); - } else a2 = a2 + d3, l3 = l3 + d3; + }, t.attribute = function() { + var r = [], i = this.currToken; + for (this.position++; this.position < this.tokens.length && this.currToken[F.FIELDS.TYPE] !== C.closeSquare; ) r.push(this.currToken), this.position++; + if (this.currToken[F.FIELDS.TYPE] !== C.closeSquare) return this.expected("closing square bracket", this.currToken[F.FIELDS.START_POS]); + var o = r.length, u2 = { source: it(i[1], i[2], this.currToken[3], this.currToken[4]), sourceIndex: i[F.FIELDS.START_POS] }; + if (o === 1 && !~[C.word].indexOf(r[0][F.FIELDS.TYPE])) return this.expected("attribute", r[0][F.FIELDS.START_POS]); + for (var s = 0, a = "", l2 = "", f = null, c2 = false; s < o; ) { + var p = r[s], d2 = this.content(p), h3 = r[s + 1]; + switch (p[F.FIELDS.TYPE]) { + case C.space: + if (c2 = true, this.options.lossy) break; + if (f) { + (0, Y.ensureObject)(u2, "spaces", f); + var m2 = u2.spaces[f].after || ""; + u2.spaces[f].after = m2 + d2; + var x2 = (0, Y.getProp)(u2, "raws", "spaces", f, "after") || null; + x2 && (u2.raws.spaces[f].after = x2 + d2); + } else a = a + d2, l2 = l2 + d2; break; - case C2.asterisk: - if (h3[F.FIELDS.TYPE] === C2.equals) u4.operator = d3, f3 = "operator"; - else if ((!u4.namespace || f3 === "namespace" && !c3) && h3) { - a2 && ((0, Y.ensureObject)(u4, "spaces", "attribute"), u4.spaces.attribute.before = a2, a2 = ""), l3 && ((0, Y.ensureObject)(u4, "raws", "spaces", "attribute"), u4.raws.spaces.attribute.before = a2, l3 = ""), u4.namespace = (u4.namespace || "") + d3; - var g3 = (0, Y.getProp)(u4, "raws", "namespace") || null; - g3 && (u4.raws.namespace += d3), f3 = "namespace"; + case C.asterisk: + if (h3[F.FIELDS.TYPE] === C.equals) u2.operator = d2, f = "operator"; + else if ((!u2.namespace || f === "namespace" && !c2) && h3) { + a && ((0, Y.ensureObject)(u2, "spaces", "attribute"), u2.spaces.attribute.before = a, a = ""), l2 && ((0, Y.ensureObject)(u2, "raws", "spaces", "attribute"), u2.raws.spaces.attribute.before = a, l2 = ""), u2.namespace = (u2.namespace || "") + d2; + var g2 = (0, Y.getProp)(u2, "raws", "namespace") || null; + g2 && (u2.raws.namespace += d2), f = "namespace"; } - c3 = false; + c2 = false; break; - case C2.dollar: - if (f3 === "value") { - var S3 = (0, Y.getProp)(u4, "raws", "value"); - u4.value += "$", S3 && (u4.raws.value = S3 + "$"); + case C.dollar: + if (f === "value") { + var S2 = (0, Y.getProp)(u2, "raws", "value"); + u2.value += "$", S2 && (u2.raws.value = S2 + "$"); break; } - case C2.caret: - h3[F.FIELDS.TYPE] === C2.equals && (u4.operator = d3, f3 = "operator"), c3 = false; + case C.caret: + h3[F.FIELDS.TYPE] === C.equals && (u2.operator = d2, f = "operator"), c2 = false; break; - case C2.combinator: - if (d3 === "~" && h3[F.FIELDS.TYPE] === C2.equals && (u4.operator = d3, f3 = "operator"), d3 !== "|") { - c3 = false; + case C.combinator: + if (d2 === "~" && h3[F.FIELDS.TYPE] === C.equals && (u2.operator = d2, f = "operator"), d2 !== "|") { + c2 = false; break; } - h3[F.FIELDS.TYPE] === C2.equals ? (u4.operator = d3, f3 = "operator") : !u4.namespace && !u4.attribute && (u4.namespace = true), c3 = false; + h3[F.FIELDS.TYPE] === C.equals ? (u2.operator = d2, f = "operator") : !u2.namespace && !u2.attribute && (u2.namespace = true), c2 = false; break; - case C2.word: - if (h3 && this.content(h3) === "|" && r2[s2 + 2] && r2[s2 + 2][F.FIELDS.TYPE] !== C2.equals && !u4.operator && !u4.namespace) u4.namespace = d3, f3 = "namespace"; - else if (!u4.attribute || f3 === "attribute" && !c3) { - a2 && ((0, Y.ensureObject)(u4, "spaces", "attribute"), u4.spaces.attribute.before = a2, a2 = ""), l3 && ((0, Y.ensureObject)(u4, "raws", "spaces", "attribute"), u4.raws.spaces.attribute.before = l3, l3 = ""), u4.attribute = (u4.attribute || "") + d3; - var v3 = (0, Y.getProp)(u4, "raws", "attribute") || null; - v3 && (u4.raws.attribute += d3), f3 = "attribute"; - } else if (!u4.value && u4.value !== "" || f3 === "value" && !c3) { - var b2 = (0, Y.unesc)(d3), y2 = (0, Y.getProp)(u4, "raws", "value") || "", T2 = u4.value || ""; - u4.value = T2 + b2, u4.quoteMark = null, (b2 !== d3 || y2) && ((0, Y.ensureObject)(u4, "raws"), u4.raws.value = (y2 || T2) + d3), f3 = "value"; + case C.word: + if (h3 && this.content(h3) === "|" && r[s + 2] && r[s + 2][F.FIELDS.TYPE] !== C.equals && !u2.operator && !u2.namespace) u2.namespace = d2, f = "namespace"; + else if (!u2.attribute || f === "attribute" && !c2) { + a && ((0, Y.ensureObject)(u2, "spaces", "attribute"), u2.spaces.attribute.before = a, a = ""), l2 && ((0, Y.ensureObject)(u2, "raws", "spaces", "attribute"), u2.raws.spaces.attribute.before = l2, l2 = ""), u2.attribute = (u2.attribute || "") + d2; + var v2 = (0, Y.getProp)(u2, "raws", "attribute") || null; + v2 && (u2.raws.attribute += d2), f = "attribute"; + } else if (!u2.value && u2.value !== "" || f === "value" && !c2) { + var b = (0, Y.unesc)(d2), y = (0, Y.getProp)(u2, "raws", "value") || "", T = u2.value || ""; + u2.value = T + b, u2.quoteMark = null, (b !== d2 || y) && ((0, Y.ensureObject)(u2, "raws"), u2.raws.value = (y || T) + d2), f = "value"; } else { - var A2 = d3 === "i" || d3 === "I"; - (u4.value || u4.value === "") && (u4.quoteMark || c3) ? (u4.insensitive = A2, (!A2 || d3 === "I") && ((0, Y.ensureObject)(u4, "raws"), u4.raws.insensitiveFlag = d3), f3 = "insensitive", a2 && ((0, Y.ensureObject)(u4, "spaces", "insensitive"), u4.spaces.insensitive.before = a2, a2 = ""), l3 && ((0, Y.ensureObject)(u4, "raws", "spaces", "insensitive"), u4.raws.spaces.insensitive.before = l3, l3 = "")) : (u4.value || u4.value === "") && (f3 = "value", u4.value += d3, u4.raws.value && (u4.raws.value += d3)); + var A = d2 === "i" || d2 === "I"; + (u2.value || u2.value === "") && (u2.quoteMark || c2) ? (u2.insensitive = A, (!A || d2 === "I") && ((0, Y.ensureObject)(u2, "raws"), u2.raws.insensitiveFlag = d2), f = "insensitive", a && ((0, Y.ensureObject)(u2, "spaces", "insensitive"), u2.spaces.insensitive.before = a, a = ""), l2 && ((0, Y.ensureObject)(u2, "raws", "spaces", "insensitive"), u2.raws.spaces.insensitive.before = l2, l2 = "")) : (u2.value || u2.value === "") && (f = "value", u2.value += d2, u2.raws.value && (u2.raws.value += d2)); } - c3 = false; + c2 = false; break; - case C2.str: - if (!u4.attribute || !u4.operator) return this.error("Expected an attribute followed by an operator preceding the string.", { index: p2[F.FIELDS.START_POS] }); - var P3 = (0, zs.unescapeValue)(d3), j2 = P3.unescaped, ie = P3.quoteMark; - u4.value = j2, u4.quoteMark = ie, f3 = "value", (0, Y.ensureObject)(u4, "raws"), u4.raws.value = d3, c3 = false; + case C.str: + if (!u2.attribute || !u2.operator) return this.error("Expected an attribute followed by an operator preceding the string.", { index: p[F.FIELDS.START_POS] }); + var P2 = (0, zs.unescapeValue)(d2), j = P2.unescaped, ie = P2.quoteMark; + u2.value = j, u2.quoteMark = ie, f = "value", (0, Y.ensureObject)(u2, "raws"), u2.raws.value = d2, c2 = false; break; - case C2.equals: - if (!u4.attribute) return this.expected("attribute", p2[F.FIELDS.START_POS], d3); - if (u4.value) return this.error('Unexpected "=" found; an operator was already defined.', { index: p2[F.FIELDS.START_POS] }); - u4.operator = u4.operator ? u4.operator + d3 : d3, f3 = "operator", c3 = false; + case C.equals: + if (!u2.attribute) return this.expected("attribute", p[F.FIELDS.START_POS], d2); + if (u2.value) return this.error('Unexpected "=" found; an operator was already defined.', { index: p[F.FIELDS.START_POS] }); + u2.operator = u2.operator ? u2.operator + d2 : d2, f = "operator", c2 = false; break; - case C2.comment: - if (f3) if (c3 || h3 && h3[F.FIELDS.TYPE] === C2.space || f3 === "insensitive") { - var ue = (0, Y.getProp)(u4, "spaces", f3, "after") || "", fe = (0, Y.getProp)(u4, "raws", "spaces", f3, "after") || ue; - (0, Y.ensureObject)(u4, "raws", "spaces", f3), u4.raws.spaces[f3].after = fe + d3; + case C.comment: + if (f) if (c2 || h3 && h3[F.FIELDS.TYPE] === C.space || f === "insensitive") { + var ue = (0, Y.getProp)(u2, "spaces", f, "after") || "", fe = (0, Y.getProp)(u2, "raws", "spaces", f, "after") || ue; + (0, Y.ensureObject)(u2, "raws", "spaces", f), u2.raws.spaces[f].after = fe + d2; } else { - var Q2 = u4[f3] || "", oe = (0, Y.getProp)(u4, "raws", f3) || Q2; - (0, Y.ensureObject)(u4, "raws"), u4.raws[f3] = oe + d3; + var Q = u2[f] || "", oe = (0, Y.getProp)(u2, "raws", f) || Q; + (0, Y.ensureObject)(u2, "raws"), u2.raws[f] = oe + d2; } - else l3 = l3 + d3; + else l2 = l2 + d2; break; default: - return this.error('Unexpected "' + d3 + '" found.', { index: p2[F.FIELDS.START_POS] }); + return this.error('Unexpected "' + d2 + '" found.', { index: p[F.FIELDS.START_POS] }); } - s2++; + s++; } - Ft(u4, "attribute"), Ft(u4, "namespace"), this.newNode(new zs.default(u4)), this.position++; - }, t2.parseWhitespaceEquivalentTokens = function(r2) { - r2 < 0 && (r2 = this.tokens.length); - var i2 = this.position, o2 = [], u4 = "", s2 = void 0; + Ft(u2, "attribute"), Ft(u2, "namespace"), this.newNode(new zs.default(u2)), this.position++; + }, t.parseWhitespaceEquivalentTokens = function(r) { + r < 0 && (r = this.tokens.length); + var i = this.position, o = [], u2 = "", s = void 0; do - if (Hi[this.currToken[F.FIELDS.TYPE]]) this.options.lossy || (u4 += this.content()); - else if (this.currToken[F.FIELDS.TYPE] === C2.comment) { - var a2 = {}; - u4 && (a2.before = u4, u4 = ""), s2 = new qs.default({ value: this.content(), source: xt(this.currToken), sourceIndex: this.currToken[F.FIELDS.START_POS], spaces: a2 }), o2.push(s2); + if (Hi[this.currToken[F.FIELDS.TYPE]]) this.options.lossy || (u2 += this.content()); + else if (this.currToken[F.FIELDS.TYPE] === C.comment) { + var a = {}; + u2 && (a.before = u2, u2 = ""), s = new qs.default({ value: this.content(), source: xt(this.currToken), sourceIndex: this.currToken[F.FIELDS.START_POS], spaces: a }), o.push(s); } - while (++this.position < r2); - if (u4) { - if (s2) s2.spaces.after = u4; + while (++this.position < r); + if (u2) { + if (s) s.spaces.after = u2; else if (!this.options.lossy) { - var l3 = this.tokens[i2], f3 = this.tokens[this.position - 1]; - o2.push(new qi.default({ value: "", source: it(l3[F.FIELDS.START_LINE], l3[F.FIELDS.START_COL], f3[F.FIELDS.END_LINE], f3[F.FIELDS.END_COL]), sourceIndex: l3[F.FIELDS.START_POS], spaces: { before: u4, after: "" } })); + var l2 = this.tokens[i], f = this.tokens[this.position - 1]; + o.push(new qi.default({ value: "", source: it(l2[F.FIELDS.START_LINE], l2[F.FIELDS.START_COL], f[F.FIELDS.END_LINE], f[F.FIELDS.END_COL]), sourceIndex: l2[F.FIELDS.START_POS], spaces: { before: u2, after: "" } })); } } - return o2; - }, t2.convertWhitespaceNodesToSpace = function(r2, i2) { - var o2 = this; - i2 === void 0 && (i2 = false); - var u4 = "", s2 = ""; - r2.forEach(function(l3) { - var f3 = o2.lossySpace(l3.spaces.before, i2), c3 = o2.lossySpace(l3.rawSpaceBefore, i2); - u4 += f3 + o2.lossySpace(l3.spaces.after, i2 && f3.length === 0), s2 += f3 + l3.value + o2.lossySpace(l3.rawSpaceAfter, i2 && c3.length === 0); - }), s2 === u4 && (s2 = void 0); - var a2 = { space: u4, rawSpace: s2 }; - return a2; - }, t2.isNamedCombinator = function(r2) { - return r2 === void 0 && (r2 = this.position), this.tokens[r2 + 0] && this.tokens[r2 + 0][F.FIELDS.TYPE] === C2.slash && this.tokens[r2 + 1] && this.tokens[r2 + 1][F.FIELDS.TYPE] === C2.word && this.tokens[r2 + 2] && this.tokens[r2 + 2][F.FIELDS.TYPE] === C2.slash; - }, t2.namedCombinator = function() { + return o; + }, t.convertWhitespaceNodesToSpace = function(r, i) { + var o = this; + i === void 0 && (i = false); + var u2 = "", s = ""; + r.forEach(function(l2) { + var f = o.lossySpace(l2.spaces.before, i), c2 = o.lossySpace(l2.rawSpaceBefore, i); + u2 += f + o.lossySpace(l2.spaces.after, i && f.length === 0), s += f + l2.value + o.lossySpace(l2.rawSpaceAfter, i && c2.length === 0); + }), s === u2 && (s = void 0); + var a = { space: u2, rawSpace: s }; + return a; + }, t.isNamedCombinator = function(r) { + return r === void 0 && (r = this.position), this.tokens[r + 0] && this.tokens[r + 0][F.FIELDS.TYPE] === C.slash && this.tokens[r + 1] && this.tokens[r + 1][F.FIELDS.TYPE] === C.word && this.tokens[r + 2] && this.tokens[r + 2][F.FIELDS.TYPE] === C.slash; + }, t.namedCombinator = function() { if (this.isNamedCombinator()) { - var r2 = this.content(this.tokens[this.position + 1]), i2 = (0, Y.unesc)(r2).toLowerCase(), o2 = {}; - i2 !== r2 && (o2.value = "/" + r2 + "/"); - var u4 = new zi.default({ value: "/" + i2 + "/", source: it(this.currToken[F.FIELDS.START_LINE], this.currToken[F.FIELDS.START_COL], this.tokens[this.position + 2][F.FIELDS.END_LINE], this.tokens[this.position + 2][F.FIELDS.END_COL]), sourceIndex: this.currToken[F.FIELDS.START_POS], raws: o2 }); - return this.position = this.position + 3, u4; + var r = this.content(this.tokens[this.position + 1]), i = (0, Y.unesc)(r).toLowerCase(), o = {}; + i !== r && (o.value = "/" + r + "/"); + var u2 = new zi.default({ value: "/" + i + "/", source: it(this.currToken[F.FIELDS.START_LINE], this.currToken[F.FIELDS.START_COL], this.tokens[this.position + 2][F.FIELDS.END_LINE], this.tokens[this.position + 2][F.FIELDS.END_COL]), sourceIndex: this.currToken[F.FIELDS.START_POS], raws: o }); + return this.position = this.position + 3, u2; } else this.unexpected(); - }, t2.combinator = function() { - var r2 = this; + }, t.combinator = function() { + var r = this; if (this.content() === "|") return this.namespace(); - var i2 = this.locateNextMeaningfulToken(this.position); - if (i2 < 0 || this.tokens[i2][F.FIELDS.TYPE] === C2.comma) { - var o2 = this.parseWhitespaceEquivalentTokens(i2); - if (o2.length > 0) { - var u4 = this.current.last; - if (u4) { - var s2 = this.convertWhitespaceNodesToSpace(o2), a2 = s2.space, l3 = s2.rawSpace; - l3 !== void 0 && (u4.rawSpaceAfter += l3), u4.spaces.after += a2; - } else o2.forEach(function(y2) { - return r2.newNode(y2); + var i = this.locateNextMeaningfulToken(this.position); + if (i < 0 || this.tokens[i][F.FIELDS.TYPE] === C.comma) { + var o = this.parseWhitespaceEquivalentTokens(i); + if (o.length > 0) { + var u2 = this.current.last; + if (u2) { + var s = this.convertWhitespaceNodesToSpace(o), a = s.space, l2 = s.rawSpace; + l2 !== void 0 && (u2.rawSpaceAfter += l2), u2.spaces.after += a; + } else o.forEach(function(y) { + return r.newNode(y); }); } return; } - var f3 = this.currToken, c3 = void 0; - i2 > this.position && (c3 = this.parseWhitespaceEquivalentTokens(i2)); - var p2; - if (this.isNamedCombinator() ? p2 = this.namedCombinator() : this.currToken[F.FIELDS.TYPE] === C2.combinator ? (p2 = new zi.default({ value: this.content(), source: xt(this.currToken), sourceIndex: this.currToken[F.FIELDS.START_POS] }), this.position++) : Hi[this.currToken[F.FIELDS.TYPE]] || c3 || this.unexpected(), p2) { - if (c3) { - var d3 = this.convertWhitespaceNodesToSpace(c3), h3 = d3.space, m3 = d3.rawSpace; - p2.spaces.before = h3, p2.rawSpaceBefore = m3; + var f = this.currToken, c2 = void 0; + i > this.position && (c2 = this.parseWhitespaceEquivalentTokens(i)); + var p; + if (this.isNamedCombinator() ? p = this.namedCombinator() : this.currToken[F.FIELDS.TYPE] === C.combinator ? (p = new zi.default({ value: this.content(), source: xt(this.currToken), sourceIndex: this.currToken[F.FIELDS.START_POS] }), this.position++) : Hi[this.currToken[F.FIELDS.TYPE]] || c2 || this.unexpected(), p) { + if (c2) { + var d2 = this.convertWhitespaceNodesToSpace(c2), h3 = d2.space, m2 = d2.rawSpace; + p.spaces.before = h3, p.rawSpaceBefore = m2; } } else { - var x3 = this.convertWhitespaceNodesToSpace(c3, true), g3 = x3.space, S3 = x3.rawSpace; - S3 || (S3 = g3); - var v3 = {}, b2 = { spaces: {} }; - g3.endsWith(" ") && S3.endsWith(" ") ? (v3.before = g3.slice(0, g3.length - 1), b2.spaces.before = S3.slice(0, S3.length - 1)) : g3.startsWith(" ") && S3.startsWith(" ") ? (v3.after = g3.slice(1), b2.spaces.after = S3.slice(1)) : b2.value = S3, p2 = new zi.default({ value: " ", source: Gi(f3, this.tokens[this.position - 1]), sourceIndex: f3[F.FIELDS.START_POS], spaces: v3, raws: b2 }); + var x2 = this.convertWhitespaceNodesToSpace(c2, true), g2 = x2.space, S2 = x2.rawSpace; + S2 || (S2 = g2); + var v2 = {}, b = { spaces: {} }; + g2.endsWith(" ") && S2.endsWith(" ") ? (v2.before = g2.slice(0, g2.length - 1), b.spaces.before = S2.slice(0, S2.length - 1)) : g2.startsWith(" ") && S2.startsWith(" ") ? (v2.after = g2.slice(1), b.spaces.after = S2.slice(1)) : b.value = S2, p = new zi.default({ value: " ", source: Gi(f, this.tokens[this.position - 1]), sourceIndex: f[F.FIELDS.START_POS], spaces: v2, raws: b }); } - return this.currToken && this.currToken[F.FIELDS.TYPE] === C2.space && (p2.spaces.after = this.optionalSpace(this.content()), this.position++), this.newNode(p2); - }, t2.comma = function() { + return this.currToken && this.currToken[F.FIELDS.TYPE] === C.space && (p.spaces.after = this.optionalSpace(this.content()), this.position++), this.newNode(p); + }, t.comma = function() { if (this.position === this.tokens.length - 1) { this.root.trailingComma = true, this.position++; return; } this.current._inferEndPosition(); - var r2 = new $i.default({ source: { start: Gs(this.tokens[this.position + 1]) } }); - this.current.parent.append(r2), this.current = r2, this.position++; - }, t2.comment = function() { - var r2 = this.currToken; - this.newNode(new qs.default({ value: this.content(), source: xt(r2), sourceIndex: r2[F.FIELDS.START_POS] })), this.position++; - }, t2.error = function(r2, i2) { - throw this.root.error(r2, i2); - }, t2.missingBackslash = function() { + var r = new $i.default({ source: { start: Gs(this.tokens[this.position + 1]) } }); + this.current.parent.append(r), this.current = r, this.position++; + }, t.comment = function() { + var r = this.currToken; + this.newNode(new qs.default({ value: this.content(), source: xt(r), sourceIndex: r[F.FIELDS.START_POS] })), this.position++; + }, t.error = function(r, i) { + throw this.root.error(r, i); + }, t.missingBackslash = function() { return this.error("Expected a backslash preceding the semicolon.", { index: this.currToken[F.FIELDS.START_POS] }); - }, t2.missingParenthesis = function() { + }, t.missingParenthesis = function() { return this.expected("opening parenthesis", this.currToken[F.FIELDS.START_POS]); - }, t2.missingSquareBracket = function() { + }, t.missingSquareBracket = function() { return this.expected("opening square bracket", this.currToken[F.FIELDS.START_POS]); - }, t2.unexpected = function() { + }, t.unexpected = function() { return this.error("Unexpected '" + this.content() + "'. Escaping special characters with \\ may help.", this.currToken[F.FIELDS.START_POS]); - }, t2.namespace = function() { - var r2 = this.prevToken && this.content(this.prevToken) || true; - if (this.nextToken[F.FIELDS.TYPE] === C2.word) return this.position++, this.word(r2); - if (this.nextToken[F.FIELDS.TYPE] === C2.asterisk) return this.position++, this.universal(r2); - }, t2.nesting = function() { + }, t.namespace = function() { + var r = this.prevToken && this.content(this.prevToken) || true; + if (this.nextToken[F.FIELDS.TYPE] === C.word) return this.position++, this.word(r); + if (this.nextToken[F.FIELDS.TYPE] === C.asterisk) return this.position++, this.universal(r); + }, t.nesting = function() { if (this.nextToken) { - var r2 = this.content(this.nextToken); - if (r2 === "|") { + var r = this.content(this.nextToken); + if (r === "|") { this.position++; return; } } - var i2 = this.currToken; - this.newNode(new t0.default({ value: this.content(), source: xt(i2), sourceIndex: i2[F.FIELDS.START_POS] })), this.position++; - }, t2.parentheses = function() { - var r2 = this.current.last, i2 = 1; - if (this.position++, r2 && r2.type === n0.PSEUDO) { - var o2 = new $i.default({ source: { start: Gs(this.tokens[this.position - 1]) } }), u4 = this.current; - for (r2.append(o2), this.current = o2; this.position < this.tokens.length && i2; ) this.currToken[F.FIELDS.TYPE] === C2.openParenthesis && i2++, this.currToken[F.FIELDS.TYPE] === C2.closeParenthesis && i2--, i2 ? this.parse() : (this.current.source.end = js(this.currToken), this.current.parent.source.end = js(this.currToken), this.position++); - this.current = u4; + var i = this.currToken; + this.newNode(new t0.default({ value: this.content(), source: xt(i), sourceIndex: i[F.FIELDS.START_POS] })), this.position++; + }, t.parentheses = function() { + var r = this.current.last, i = 1; + if (this.position++, r && r.type === n0.PSEUDO) { + var o = new $i.default({ source: { start: Gs(this.tokens[this.position - 1]) } }), u2 = this.current; + for (r.append(o), this.current = o; this.position < this.tokens.length && i; ) this.currToken[F.FIELDS.TYPE] === C.openParenthesis && i++, this.currToken[F.FIELDS.TYPE] === C.closeParenthesis && i--, i ? this.parse() : (this.current.source.end = js(this.currToken), this.current.parent.source.end = js(this.currToken), this.position++); + this.current = u2; } else { - for (var s2 = this.currToken, a2 = "(", l3; this.position < this.tokens.length && i2; ) this.currToken[F.FIELDS.TYPE] === C2.openParenthesis && i2++, this.currToken[F.FIELDS.TYPE] === C2.closeParenthesis && i2--, l3 = this.currToken, a2 += this.parseParenthesisToken(this.currToken), this.position++; - r2 ? r2.appendToPropertyAndEscape("value", a2, a2) : this.newNode(new qi.default({ value: a2, source: it(s2[F.FIELDS.START_LINE], s2[F.FIELDS.START_COL], l3[F.FIELDS.END_LINE], l3[F.FIELDS.END_COL]), sourceIndex: s2[F.FIELDS.START_POS] })); + for (var s = this.currToken, a = "(", l2; this.position < this.tokens.length && i; ) this.currToken[F.FIELDS.TYPE] === C.openParenthesis && i++, this.currToken[F.FIELDS.TYPE] === C.closeParenthesis && i--, l2 = this.currToken, a += this.parseParenthesisToken(this.currToken), this.position++; + r ? r.appendToPropertyAndEscape("value", a, a) : this.newNode(new qi.default({ value: a, source: it(s[F.FIELDS.START_LINE], s[F.FIELDS.START_COL], l2[F.FIELDS.END_LINE], l2[F.FIELDS.END_COL]), sourceIndex: s[F.FIELDS.START_POS] })); } - if (i2) return this.expected("closing parenthesis", this.currToken[F.FIELDS.START_POS]); - }, t2.pseudo = function() { - for (var r2 = this, i2 = "", o2 = this.currToken; this.currToken && this.currToken[F.FIELDS.TYPE] === C2.colon; ) i2 += this.content(), this.position++; + if (i) return this.expected("closing parenthesis", this.currToken[F.FIELDS.START_POS]); + }, t.pseudo = function() { + for (var r = this, i = "", o = this.currToken; this.currToken && this.currToken[F.FIELDS.TYPE] === C.colon; ) i += this.content(), this.position++; if (!this.currToken) return this.expected(["pseudo-class", "pseudo-element"], this.position - 1); - if (this.currToken[F.FIELDS.TYPE] === C2.word) this.splitWord(false, function(u4, s2) { - i2 += u4, r2.newNode(new Zp.default({ value: i2, source: Gi(o2, r2.currToken), sourceIndex: o2[F.FIELDS.START_POS] })), s2 > 1 && r2.nextToken && r2.nextToken[F.FIELDS.TYPE] === C2.openParenthesis && r2.error("Misplaced parenthesis.", { index: r2.nextToken[F.FIELDS.START_POS] }); + if (this.currToken[F.FIELDS.TYPE] === C.word) this.splitWord(false, function(u2, s) { + i += u2, r.newNode(new Zp.default({ value: i, source: Gi(o, r.currToken), sourceIndex: o[F.FIELDS.START_POS] })), s > 1 && r.nextToken && r.nextToken[F.FIELDS.TYPE] === C.openParenthesis && r.error("Misplaced parenthesis.", { index: r.nextToken[F.FIELDS.START_POS] }); }); else return this.expected(["pseudo-class", "pseudo-element"], this.currToken[F.FIELDS.START_POS]); - }, t2.space = function() { - var r2 = this.content(); - this.position === 0 || this.prevToken[F.FIELDS.TYPE] === C2.comma || this.prevToken[F.FIELDS.TYPE] === C2.openParenthesis || this.current.nodes.every(function(i2) { - return i2.type === "comment"; - }) ? (this.spaces = this.optionalSpace(r2), this.position++) : this.position === this.tokens.length - 1 || this.nextToken[F.FIELDS.TYPE] === C2.comma || this.nextToken[F.FIELDS.TYPE] === C2.closeParenthesis ? (this.current.last.spaces.after = this.optionalSpace(r2), this.position++) : this.combinator(); - }, t2.string = function() { - var r2 = this.currToken; - this.newNode(new qi.default({ value: this.content(), source: xt(r2), sourceIndex: r2[F.FIELDS.START_POS] })), this.position++; - }, t2.universal = function(r2) { - var i2 = this.nextToken; - if (i2 && this.content(i2) === "|") return this.position++, this.namespace(); - var o2 = this.currToken; - this.newNode(new e0.default({ value: this.content(), source: xt(o2), sourceIndex: o2[F.FIELDS.START_POS] }), r2), this.position++; - }, t2.splitWord = function(r2, i2) { - for (var o2 = this, u4 = this.nextToken, s2 = this.content(); u4 && ~[C2.dollar, C2.caret, C2.equals, C2.word].indexOf(u4[F.FIELDS.TYPE]); ) { + }, t.space = function() { + var r = this.content(); + this.position === 0 || this.prevToken[F.FIELDS.TYPE] === C.comma || this.prevToken[F.FIELDS.TYPE] === C.openParenthesis || this.current.nodes.every(function(i) { + return i.type === "comment"; + }) ? (this.spaces = this.optionalSpace(r), this.position++) : this.position === this.tokens.length - 1 || this.nextToken[F.FIELDS.TYPE] === C.comma || this.nextToken[F.FIELDS.TYPE] === C.closeParenthesis ? (this.current.last.spaces.after = this.optionalSpace(r), this.position++) : this.combinator(); + }, t.string = function() { + var r = this.currToken; + this.newNode(new qi.default({ value: this.content(), source: xt(r), sourceIndex: r[F.FIELDS.START_POS] })), this.position++; + }, t.universal = function(r) { + var i = this.nextToken; + if (i && this.content(i) === "|") return this.position++, this.namespace(); + var o = this.currToken; + this.newNode(new e0.default({ value: this.content(), source: xt(o), sourceIndex: o[F.FIELDS.START_POS] }), r), this.position++; + }, t.splitWord = function(r, i) { + for (var o = this, u2 = this.nextToken, s = this.content(); u2 && ~[C.dollar, C.caret, C.equals, C.word].indexOf(u2[F.FIELDS.TYPE]); ) { this.position++; - var a2 = this.content(); - if (s2 += a2, a2.lastIndexOf("\\") === a2.length - 1) { - var l3 = this.nextToken; - l3 && l3[F.FIELDS.TYPE] === C2.space && (s2 += this.requiredSpace(this.content(l3)), this.position++); + var a = this.content(); + if (s += a, a.lastIndexOf("\\") === a.length - 1) { + var l2 = this.nextToken; + l2 && l2[F.FIELDS.TYPE] === C.space && (s += this.requiredSpace(this.content(l2)), this.position++); } - u4 = this.nextToken; + u2 = this.nextToken; } - var f3 = ji(s2, ".").filter(function(h3) { - var m3 = s2[h3 - 1] === "\\", x3 = /^\d+\.\d+%$/.test(s2); - return !m3 && !x3; - }), c3 = ji(s2, "#").filter(function(h3) { - return s2[h3 - 1] !== "\\"; - }), p2 = ji(s2, "#{"); - p2.length && (c3 = c3.filter(function(h3) { - return !~p2.indexOf(h3); + var f = ji(s, ".").filter(function(h3) { + var m2 = s[h3 - 1] === "\\", x2 = /^\d+\.\d+%$/.test(s); + return !m2 && !x2; + }), c2 = ji(s, "#").filter(function(h3) { + return s[h3 - 1] !== "\\"; + }), p = ji(s, "#{"); + p.length && (c2 = c2.filter(function(h3) { + return !~p.indexOf(h3); })); - var d3 = (0, r0.default)(u0([0].concat(f3, c3))); - d3.forEach(function(h3, m3) { - var x3 = d3[m3 + 1] || s2.length, g3 = s2.slice(h3, x3); - if (m3 === 0 && i2) return i2.call(o2, g3, d3.length); - var S3, v3 = o2.currToken, b2 = v3[F.FIELDS.START_POS] + d3[m3], y2 = it(v3[1], v3[2] + h3, v3[3], v3[2] + (x3 - 1)); - if (~f3.indexOf(h3)) { - var T2 = { value: g3.slice(1), source: y2, sourceIndex: b2 }; - S3 = new Qp.default(Ft(T2, "value")); - } else if (~c3.indexOf(h3)) { - var A2 = { value: g3.slice(1), source: y2, sourceIndex: b2 }; - S3 = new Kp.default(Ft(A2, "value")); + var d2 = (0, r0.default)(u0([0].concat(f, c2))); + d2.forEach(function(h3, m2) { + var x2 = d2[m2 + 1] || s.length, g2 = s.slice(h3, x2); + if (m2 === 0 && i) return i.call(o, g2, d2.length); + var S2, v2 = o.currToken, b = v2[F.FIELDS.START_POS] + d2[m2], y = it(v2[1], v2[2] + h3, v2[3], v2[2] + (x2 - 1)); + if (~f.indexOf(h3)) { + var T = { value: g2.slice(1), source: y, sourceIndex: b }; + S2 = new Qp.default(Ft(T, "value")); + } else if (~c2.indexOf(h3)) { + var A = { value: g2.slice(1), source: y, sourceIndex: b }; + S2 = new Kp.default(Ft(A, "value")); } else { - var P3 = { value: g3, source: y2, sourceIndex: b2 }; - Ft(P3, "value"), S3 = new Jp.default(P3); + var P2 = { value: g2, source: y, sourceIndex: b }; + Ft(P2, "value"), S2 = new Jp.default(P2); } - o2.newNode(S3, r2), r2 = null; + o.newNode(S2, r), r = null; }), this.position++; - }, t2.word = function(r2) { - var i2 = this.nextToken; - return i2 && this.content(i2) === "|" ? (this.position++, this.namespace()) : this.splitWord(r2); - }, t2.loop = function() { + }, t.word = function(r) { + var i = this.nextToken; + return i && this.content(i) === "|" ? (this.position++, this.namespace()) : this.splitWord(r); + }, t.loop = function() { for (; this.position < this.tokens.length; ) this.parse(true); return this.current._inferEndPosition(), this.root; - }, t2.parse = function(r2) { + }, t.parse = function(r) { switch (this.currToken[F.FIELDS.TYPE]) { - case C2.space: + case C.space: this.space(); break; - case C2.comment: + case C.comment: this.comment(); break; - case C2.openParenthesis: + case C.openParenthesis: this.parentheses(); break; - case C2.closeParenthesis: - r2 && this.missingParenthesis(); + case C.closeParenthesis: + r && this.missingParenthesis(); break; - case C2.openSquare: + case C.openSquare: this.attribute(); break; - case C2.dollar: - case C2.caret: - case C2.equals: - case C2.word: + case C.dollar: + case C.caret: + case C.equals: + case C.word: this.word(); break; - case C2.colon: + case C.colon: this.pseudo(); break; - case C2.comma: + case C.comma: this.comma(); break; - case C2.asterisk: + case C.asterisk: this.universal(); break; - case C2.ampersand: + case C.ampersand: this.nesting(); break; - case C2.slash: - case C2.combinator: + case C.slash: + case C.combinator: this.combinator(); break; - case C2.str: + case C.str: this.string(); break; - case C2.closeSquare: + case C.closeSquare: this.missingSquareBracket(); - case C2.semicolon: + case C.semicolon: this.missingBackslash(); default: this.unexpected(); } - }, t2.expected = function(r2, i2, o2) { - if (Array.isArray(r2)) { - var u4 = r2.pop(); - r2 = r2.join(", ") + " or " + u4; + }, t.expected = function(r, i, o) { + if (Array.isArray(r)) { + var u2 = r.pop(); + r = r.join(", ") + " or " + u2; } - var s2 = /^[aeiou]/.test(r2[0]) ? "an" : "a"; - return o2 ? this.error("Expected " + s2 + " " + r2 + ', found "' + o2 + '" instead.', { index: i2 }) : this.error("Expected " + s2 + " " + r2 + ".", { index: i2 }); - }, t2.requiredSpace = function(r2) { - return this.options.lossy ? " " : r2; - }, t2.optionalSpace = function(r2) { - return this.options.lossy ? "" : r2; - }, t2.lossySpace = function(r2, i2) { - return this.options.lossy ? i2 ? " " : "" : r2; - }, t2.parseParenthesisToken = function(r2) { - var i2 = this.content(r2); - return r2[F.FIELDS.TYPE] === C2.space ? this.requiredSpace(i2) : i2; - }, t2.newNode = function(r2, i2) { - return i2 && (/^ +$/.test(i2) && (this.options.lossy || (this.spaces = (this.spaces || "") + i2), i2 = true), r2.namespace = i2, Ft(r2, "namespace")), this.spaces && (r2.spaces.before = this.spaces, this.spaces = ""), this.current.append(r2); - }, t2.content = function(r2) { - return r2 === void 0 && (r2 = this.currToken), this.css.slice(r2[F.FIELDS.START_POS], r2[F.FIELDS.END_POS]); - }, t2.locateNextMeaningfulToken = function(r2) { - r2 === void 0 && (r2 = this.position + 1); - for (var i2 = r2; i2 < this.tokens.length; ) if (o0[this.tokens[i2][F.FIELDS.TYPE]]) { - i2++; + var s = /^[aeiou]/.test(r[0]) ? "an" : "a"; + return o ? this.error("Expected " + s + " " + r + ', found "' + o + '" instead.', { index: i }) : this.error("Expected " + s + " " + r + ".", { index: i }); + }, t.requiredSpace = function(r) { + return this.options.lossy ? " " : r; + }, t.optionalSpace = function(r) { + return this.options.lossy ? "" : r; + }, t.lossySpace = function(r, i) { + return this.options.lossy ? i ? " " : "" : r; + }, t.parseParenthesisToken = function(r) { + var i = this.content(r); + return r[F.FIELDS.TYPE] === C.space ? this.requiredSpace(i) : i; + }, t.newNode = function(r, i) { + return i && (/^ +$/.test(i) && (this.options.lossy || (this.spaces = (this.spaces || "") + i), i = true), r.namespace = i, Ft(r, "namespace")), this.spaces && (r.spaces.before = this.spaces, this.spaces = ""), this.current.append(r); + }, t.content = function(r) { + return r === void 0 && (r = this.currToken), this.css.slice(r[F.FIELDS.START_POS], r[F.FIELDS.END_POS]); + }, t.locateNextMeaningfulToken = function(r) { + r === void 0 && (r = this.position + 1); + for (var i = r; i < this.tokens.length; ) if (o0[this.tokens[i][F.FIELDS.TYPE]]) { + i++; continue; - } else return i2; + } else return i; return -1; - }, i0(e2, [{ key: "currToken", get: function() { + }, i0(e, [{ key: "currToken", get: function() { return this.tokens[this.position]; } }, { key: "nextToken", get: function() { return this.tokens[this.position + 1]; } }, { key: "prevToken", get: function() { return this.tokens[this.position - 1]; - } }]), e2; + } }]), e; })(); lr.default = s0; Vs.exports = lr.default; @@ -27051,194 +20905,194 @@ var Qs = k((fr, Xs) => { fr.__esModule = true; fr.default = void 0; var a0 = l0(Ys()); - function l0(e2) { - return e2 && e2.__esModule ? e2 : { default: e2 }; + function l0(e) { + return e && e.__esModule ? e : { default: e }; } var f0 = (function() { - function e2(n2, r2) { - this.func = n2 || function() { - }, this.funcRes = null, this.options = r2; + function e(n, r) { + this.func = n || function() { + }, this.funcRes = null, this.options = r; } - var t2 = e2.prototype; - return t2._shouldUpdateSelector = function(r2, i2) { - i2 === void 0 && (i2 = {}); - var o2 = Object.assign({}, this.options, i2); - return o2.updateSelector === false ? false : typeof r2 != "string"; - }, t2._isLossy = function(r2) { - r2 === void 0 && (r2 = {}); - var i2 = Object.assign({}, this.options, r2); - return i2.lossless === false; - }, t2._root = function(r2, i2) { - i2 === void 0 && (i2 = {}); - var o2 = new a0.default(r2, this._parseOptions(i2)); - return o2.root; - }, t2._parseOptions = function(r2) { - return { lossy: this._isLossy(r2) }; - }, t2._run = function(r2, i2) { - var o2 = this; - return i2 === void 0 && (i2 = {}), new Promise(function(u4, s2) { + var t = e.prototype; + return t._shouldUpdateSelector = function(r, i) { + i === void 0 && (i = {}); + var o = Object.assign({}, this.options, i); + return o.updateSelector === false ? false : typeof r != "string"; + }, t._isLossy = function(r) { + r === void 0 && (r = {}); + var i = Object.assign({}, this.options, r); + return i.lossless === false; + }, t._root = function(r, i) { + i === void 0 && (i = {}); + var o = new a0.default(r, this._parseOptions(i)); + return o.root; + }, t._parseOptions = function(r) { + return { lossy: this._isLossy(r) }; + }, t._run = function(r, i) { + var o = this; + return i === void 0 && (i = {}), new Promise(function(u2, s) { try { - var a2 = o2._root(r2, i2); - Promise.resolve(o2.func(a2)).then(function(l3) { - var f3 = void 0; - return o2._shouldUpdateSelector(r2, i2) && (f3 = a2.toString(), r2.selector = f3), { transform: l3, root: a2, string: f3 }; - }).then(u4, s2); - } catch (l3) { - s2(l3); + var a = o._root(r, i); + Promise.resolve(o.func(a)).then(function(l2) { + var f = void 0; + return o._shouldUpdateSelector(r, i) && (f = a.toString(), r.selector = f), { transform: l2, root: a, string: f }; + }).then(u2, s); + } catch (l2) { + s(l2); return; } }); - }, t2._runSync = function(r2, i2) { - i2 === void 0 && (i2 = {}); - var o2 = this._root(r2, i2), u4 = this.func(o2); - if (u4 && typeof u4.then == "function") throw new Error("Selector processor returned a promise to a synchronous call."); - var s2 = void 0; - return i2.updateSelector && typeof r2 != "string" && (s2 = o2.toString(), r2.selector = s2), { transform: u4, root: o2, string: s2 }; - }, t2.ast = function(r2, i2) { - return this._run(r2, i2).then(function(o2) { - return o2.root; + }, t._runSync = function(r, i) { + i === void 0 && (i = {}); + var o = this._root(r, i), u2 = this.func(o); + if (u2 && typeof u2.then == "function") throw new Error("Selector processor returned a promise to a synchronous call."); + var s = void 0; + return i.updateSelector && typeof r != "string" && (s = o.toString(), r.selector = s), { transform: u2, root: o, string: s }; + }, t.ast = function(r, i) { + return this._run(r, i).then(function(o) { + return o.root; }); - }, t2.astSync = function(r2, i2) { - return this._runSync(r2, i2).root; - }, t2.transform = function(r2, i2) { - return this._run(r2, i2).then(function(o2) { - return o2.transform; + }, t.astSync = function(r, i) { + return this._runSync(r, i).root; + }, t.transform = function(r, i) { + return this._run(r, i).then(function(o) { + return o.transform; }); - }, t2.transformSync = function(r2, i2) { - return this._runSync(r2, i2).transform; - }, t2.process = function(r2, i2) { - return this._run(r2, i2).then(function(o2) { - return o2.string || o2.root.toString(); + }, t.transformSync = function(r, i) { + return this._runSync(r, i).transform; + }, t.process = function(r, i) { + return this._run(r, i).then(function(o) { + return o.string || o.root.toString(); }); - }, t2.processSync = function(r2, i2) { - var o2 = this._runSync(r2, i2); - return o2.string || o2.root.toString(); - }, e2; + }, t.processSync = function(r, i) { + var o = this._runSync(r, i); + return o.string || o.root.toString(); + }, e; })(); fr.default = f0; Xs.exports = fr.default; }); -var Ks = k((G2) => { - G2.__esModule = true; - G2.universal = G2.tag = G2.string = G2.selector = G2.root = G2.pseudo = G2.nesting = G2.id = G2.comment = G2.combinator = G2.className = G2.attribute = void 0; +var Ks = k((G) => { + G.__esModule = true; + G.universal = G.tag = G.string = G.selector = G.root = G.pseudo = G.nesting = G.id = G.comment = G.combinator = G.className = G.attribute = void 0; var c0 = ye(Oi()), d0 = ye(hi()), p0 = ye(Ri()), h0 = ye(Di()), m0 = ye(bi()), D0 = ye(Mi()), g0 = ye(Si()), b0 = ye(li()), v0 = ye(ci()), y0 = ye(wi()), x0 = ye(xi()), F0 = ye(Bi()); - function ye(e2) { - return e2 && e2.__esModule ? e2 : { default: e2 }; + function ye(e) { + return e && e.__esModule ? e : { default: e }; } - var w0 = function(t2) { - return new c0.default(t2); + var w0 = function(t) { + return new c0.default(t); }; - G2.attribute = w0; - var E0 = function(t2) { - return new d0.default(t2); + G.attribute = w0; + var E0 = function(t) { + return new d0.default(t); }; - G2.className = E0; - var S0 = function(t2) { - return new p0.default(t2); + G.className = E0; + var S0 = function(t) { + return new p0.default(t); }; - G2.combinator = S0; - var C0 = function(t2) { - return new h0.default(t2); + G.combinator = S0; + var C0 = function(t) { + return new h0.default(t); }; - G2.comment = C0; - var _0 = function(t2) { - return new m0.default(t2); + G.comment = C0; + var _0 = function(t) { + return new m0.default(t); }; - G2.id = _0; - var k0 = function(t2) { - return new D0.default(t2); + G.id = _0; + var k0 = function(t) { + return new D0.default(t); }; - G2.nesting = k0; - var T0 = function(t2) { - return new g0.default(t2); + G.nesting = k0; + var T0 = function(t) { + return new g0.default(t); }; - G2.pseudo = T0; - var A0 = function(t2) { - return new b0.default(t2); + G.pseudo = T0; + var A0 = function(t) { + return new b0.default(t); }; - G2.root = A0; - var O0 = function(t2) { - return new v0.default(t2); + G.root = A0; + var O0 = function(t) { + return new v0.default(t); }; - G2.selector = O0; - var P0 = function(t2) { - return new y0.default(t2); + G.selector = O0; + var P0 = function(t) { + return new y0.default(t); }; - G2.string = P0; - var B0 = function(t2) { - return new x0.default(t2); + G.string = P0; + var B0 = function(t) { + return new x0.default(t); }; - G2.tag = B0; - var I0 = function(t2) { - return new F0.default(t2); + G.tag = B0; + var I0 = function(t) { + return new F0.default(t); }; - G2.universal = I0; + G.universal = I0; }); -var ta = k((L2) => { - L2.__esModule = true; - L2.isNode = Vi; - L2.isPseudoElement = ea; - L2.isPseudoClass = j0; - L2.isContainer = H0; - L2.isNamespace = V0; - L2.isUniversal = L2.isTag = L2.isString = L2.isSelector = L2.isRoot = L2.isPseudo = L2.isNesting = L2.isIdentifier = L2.isComment = L2.isCombinator = L2.isClassName = L2.isAttribute = void 0; +var ta = k((L) => { + L.__esModule = true; + L.isNode = Vi; + L.isPseudoElement = ea; + L.isPseudoClass = j0; + L.isContainer = H0; + L.isNamespace = V0; + L.isUniversal = L.isTag = L.isString = L.isSelector = L.isRoot = L.isPseudo = L.isNesting = L.isIdentifier = L.isComment = L.isCombinator = L.isClassName = L.isAttribute = void 0; var X = ne(), de, R0 = (de = {}, de[X.ATTRIBUTE] = true, de[X.CLASS] = true, de[X.COMBINATOR] = true, de[X.COMMENT] = true, de[X.ID] = true, de[X.NESTING] = true, de[X.PSEUDO] = true, de[X.ROOT] = true, de[X.SELECTOR] = true, de[X.STRING] = true, de[X.TAG] = true, de[X.UNIVERSAL] = true, de); - function Vi(e2) { - return typeof e2 == "object" && R0[e2.type]; + function Vi(e) { + return typeof e == "object" && R0[e.type]; } - function xe(e2, t2) { - return Vi(t2) && t2.type === e2; + function xe(e, t) { + return Vi(t) && t.type === e; } var Js = xe.bind(null, X.ATTRIBUTE); - L2.isAttribute = Js; + L.isAttribute = Js; var L0 = xe.bind(null, X.CLASS); - L2.isClassName = L0; + L.isClassName = L0; var M0 = xe.bind(null, X.COMBINATOR); - L2.isCombinator = M0; + L.isCombinator = M0; var N0 = xe.bind(null, X.COMMENT); - L2.isComment = N0; + L.isComment = N0; var W0 = xe.bind(null, X.ID); - L2.isIdentifier = W0; + L.isIdentifier = W0; var $0 = xe.bind(null, X.NESTING); - L2.isNesting = $0; + L.isNesting = $0; var Yi = xe.bind(null, X.PSEUDO); - L2.isPseudo = Yi; + L.isPseudo = Yi; var q0 = xe.bind(null, X.ROOT); - L2.isRoot = q0; + L.isRoot = q0; var z0 = xe.bind(null, X.SELECTOR); - L2.isSelector = z0; + L.isSelector = z0; var U0 = xe.bind(null, X.STRING); - L2.isString = U0; + L.isString = U0; var Zs = xe.bind(null, X.TAG); - L2.isTag = Zs; + L.isTag = Zs; var G0 = xe.bind(null, X.UNIVERSAL); - L2.isUniversal = G0; - function ea(e2) { - return Yi(e2) && e2.value && (e2.value.startsWith("::") || e2.value.toLowerCase() === ":before" || e2.value.toLowerCase() === ":after" || e2.value.toLowerCase() === ":first-letter" || e2.value.toLowerCase() === ":first-line"); + L.isUniversal = G0; + function ea(e) { + return Yi(e) && e.value && (e.value.startsWith("::") || e.value.toLowerCase() === ":before" || e.value.toLowerCase() === ":after" || e.value.toLowerCase() === ":first-letter" || e.value.toLowerCase() === ":first-line"); } - function j0(e2) { - return Yi(e2) && !ea(e2); + function j0(e) { + return Yi(e) && !ea(e); } - function H0(e2) { - return !!(Vi(e2) && e2.walk); + function H0(e) { + return !!(Vi(e) && e.walk); } - function V0(e2) { - return Js(e2) || Zs(e2); + function V0(e) { + return Js(e) || Zs(e); } }); var ra = k((Ce) => { Ce.__esModule = true; var Xi = ne(); - Object.keys(Xi).forEach(function(e2) { - e2 === "default" || e2 === "__esModule" || e2 in Ce && Ce[e2] === Xi[e2] || (Ce[e2] = Xi[e2]); + Object.keys(Xi).forEach(function(e) { + e === "default" || e === "__esModule" || e in Ce && Ce[e] === Xi[e] || (Ce[e] = Xi[e]); }); var Qi = Ks(); - Object.keys(Qi).forEach(function(e2) { - e2 === "default" || e2 === "__esModule" || e2 in Ce && Ce[e2] === Qi[e2] || (Ce[e2] = Qi[e2]); + Object.keys(Qi).forEach(function(e) { + e === "default" || e === "__esModule" || e in Ce && Ce[e] === Qi[e] || (Ce[e] = Qi[e]); }); var Ki = ta(); - Object.keys(Ki).forEach(function(e2) { - e2 === "default" || e2 === "__esModule" || e2 in Ce && Ce[e2] === Ki[e2] || (Ce[e2] = Ki[e2]); + Object.keys(Ki).forEach(function(e) { + e === "default" || e === "__esModule" || e in Ce && Ce[e] === Ki[e] || (Ce[e] = Ki[e]); }); }); var oa = k((cr, ia) => { @@ -27247,28 +21101,28 @@ var oa = k((cr, ia) => { var Y0 = K0(Qs()), X0 = Q0(ra()); function na() { if (typeof WeakMap != "function") return null; - var e2 = /* @__PURE__ */ new WeakMap(); + var e = /* @__PURE__ */ new WeakMap(); return na = function() { - return e2; - }, e2; + return e; + }, e; } - function Q0(e2) { - if (e2 && e2.__esModule) return e2; - if (e2 === null || typeof e2 != "object" && typeof e2 != "function") return { default: e2 }; - var t2 = na(); - if (t2 && t2.has(e2)) return t2.get(e2); - var n2 = {}, r2 = Object.defineProperty && Object.getOwnPropertyDescriptor; - for (var i2 in e2) if (Object.prototype.hasOwnProperty.call(e2, i2)) { - var o2 = r2 ? Object.getOwnPropertyDescriptor(e2, i2) : null; - o2 && (o2.get || o2.set) ? Object.defineProperty(n2, i2, o2) : n2[i2] = e2[i2]; + function Q0(e) { + if (e && e.__esModule) return e; + if (e === null || typeof e != "object" && typeof e != "function") return { default: e }; + var t = na(); + if (t && t.has(e)) return t.get(e); + var n = {}, r = Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var i in e) if (Object.prototype.hasOwnProperty.call(e, i)) { + var o = r ? Object.getOwnPropertyDescriptor(e, i) : null; + o && (o.get || o.set) ? Object.defineProperty(n, i, o) : n[i] = e[i]; } - return n2.default = e2, t2 && t2.set(e2, n2), n2; + return n.default = e, t && t.set(e, n), n; } - function K0(e2) { - return e2 && e2.__esModule ? e2 : { default: e2 }; + function K0(e) { + return e && e.__esModule ? e : { default: e }; } - var Ji = function(t2) { - return new Y0.default(t2); + var Ji = function(t) { + return new Y0.default(t); }; Object.assign(Ji, X0); delete Ji.__esModule; @@ -27279,8 +21133,8 @@ var oa = k((cr, ia) => { var ua = k((Zi) => { Object.defineProperty(Zi, "__esModule", { value: true }); Object.defineProperty(Zi, "default", { enumerable: true, get: () => Z0 }); - function Z0(e2) { - return e2.replace(/\\,/g, "\\2c "); + function Z0(e) { + return e.replace(/\\,/g, "\\2c "); } }); var aa = k((Gb, sa) => { @@ -27288,288 +21142,288 @@ var aa = k((Gb, sa) => { }); var to = k((eo) => { Object.defineProperty(eo, "__esModule", { value: true }); - function eh(e2, t2) { - for (var n2 in t2) Object.defineProperty(e2, n2, { enumerable: true, get: t2[n2] }); + function eh(e, t) { + for (var n in t) Object.defineProperty(e, n, { enumerable: true, get: t[n] }); } eh(eo, { parseColor: () => uh, formatColor: () => sh }); var la = th(aa()); - function th(e2) { - return e2 && e2.__esModule ? e2 : { default: e2 }; + function th(e) { + return e && e.__esModule ? e : { default: e }; } var rh = /^#([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i, nh = /^#([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i, Ve = /(?:\d+|\d*\.\d+)%?/, dn = /(?:\s*,\s*|\s+)/, fa = /\s*[,/]\s*/, Ye = /var\(--(?:[^ )]*?)\)/, ih = new RegExp(`^(rgb)a?\\(\\s*(${Ve.source}|${Ye.source})(?:${dn.source}(${Ve.source}|${Ye.source}))?(?:${dn.source}(${Ve.source}|${Ye.source}))?(?:${fa.source}(${Ve.source}|${Ye.source}))?\\s*\\)$`), oh = new RegExp(`^(hsl)a?\\(\\s*((?:${Ve.source})(?:deg|rad|grad|turn)?|${Ye.source})(?:${dn.source}(${Ve.source}|${Ye.source}))?(?:${dn.source}(${Ve.source}|${Ye.source}))?(?:${fa.source}(${Ve.source}|${Ye.source}))?\\s*\\)$`); - function uh(e2, { loose: t2 = false } = {}) { - var n2, r2; - if (typeof e2 != "string") return null; - if (e2 = e2.trim(), e2 === "transparent") return { mode: "rgb", color: ["0", "0", "0"], alpha: "0" }; - if (e2 in la.default) return { mode: "rgb", color: la.default[e2].map((a2) => a2.toString()) }; - let i2 = e2.replace(nh, (a2, l3, f3, c3, p2) => ["#", l3, l3, f3, f3, c3, c3, p2 ? p2 + p2 : ""].join("")).match(rh); - if (i2 !== null) return { mode: "rgb", color: [parseInt(i2[1], 16), parseInt(i2[2], 16), parseInt(i2[3], 16)].map((a2) => a2.toString()), alpha: i2[4] ? (parseInt(i2[4], 16) / 255).toString() : void 0 }; - var o2; - let u4 = (o2 = e2.match(ih)) !== null && o2 !== void 0 ? o2 : e2.match(oh); - if (u4 === null) return null; - let s2 = [u4[2], u4[3], u4[4]].filter(Boolean).map((a2) => a2.toString()); - return !t2 && s2.length !== 3 || s2.length < 3 && !s2.some((a2) => /^var\(.*?\)$/.test(a2)) ? null : { mode: u4[1], color: s2, alpha: (n2 = u4[5]) === null || n2 === void 0 || (r2 = n2.toString) === null || r2 === void 0 ? void 0 : r2.call(n2) }; + function uh(e, { loose: t = false } = {}) { + var n, r; + if (typeof e != "string") return null; + if (e = e.trim(), e === "transparent") return { mode: "rgb", color: ["0", "0", "0"], alpha: "0" }; + if (e in la.default) return { mode: "rgb", color: la.default[e].map((a) => a.toString()) }; + let i = e.replace(nh, (a, l2, f, c2, p) => ["#", l2, l2, f, f, c2, c2, p ? p + p : ""].join("")).match(rh); + if (i !== null) return { mode: "rgb", color: [parseInt(i[1], 16), parseInt(i[2], 16), parseInt(i[3], 16)].map((a) => a.toString()), alpha: i[4] ? (parseInt(i[4], 16) / 255).toString() : void 0 }; + var o; + let u2 = (o = e.match(ih)) !== null && o !== void 0 ? o : e.match(oh); + if (u2 === null) return null; + let s = [u2[2], u2[3], u2[4]].filter(Boolean).map((a) => a.toString()); + return !t && s.length !== 3 || s.length < 3 && !s.some((a) => /^var\(.*?\)$/.test(a)) ? null : { mode: u2[1], color: s, alpha: (n = u2[5]) === null || n === void 0 || (r = n.toString) === null || r === void 0 ? void 0 : r.call(n) }; } - function sh({ mode: e2, color: t2, alpha: n2 }) { - let r2 = n2 !== void 0; - return `${e2}(${t2.join(" ")}${r2 ? ` / ${n2}` : ""})`; + function sh({ mode: e, color: t, alpha: n }) { + let r = n !== void 0; + return `${e}(${t.join(" ")}${r ? ` / ${n}` : ""})`; } }); var no = k((ro) => { Object.defineProperty(ro, "__esModule", { value: true }); - function ah(e2, t2) { - for (var n2 in t2) Object.defineProperty(e2, n2, { enumerable: true, get: t2[n2] }); + function ah(e, t) { + for (var n in t) Object.defineProperty(e, n, { enumerable: true, get: t[n] }); } ah(ro, { withAlphaValue: () => lh, default: () => fh }); var pn = to(); - function lh(e2, t2, n2) { - if (typeof e2 == "function") return e2({ opacityValue: t2 }); - let r2 = (0, pn.parseColor)(e2, { loose: true }); - return r2 === null ? n2 : (0, pn.formatColor)({ ...r2, alpha: t2 }); + function lh(e, t, n) { + if (typeof e == "function") return e({ opacityValue: t }); + let r = (0, pn.parseColor)(e, { loose: true }); + return r === null ? n : (0, pn.formatColor)({ ...r, alpha: t }); } - function fh({ color: e2, property: t2, variable: n2 }) { - let r2 = [].concat(t2); - if (typeof e2 == "function") return { [n2]: "1", ...Object.fromEntries(r2.map((o2) => [o2, e2({ opacityVariable: n2, opacityValue: `var(${n2})` })])) }; - let i2 = (0, pn.parseColor)(e2); - return i2 === null ? Object.fromEntries(r2.map((o2) => [o2, e2])) : i2.alpha !== void 0 ? Object.fromEntries(r2.map((o2) => [o2, e2])) : { [n2]: "1", ...Object.fromEntries(r2.map((o2) => [o2, (0, pn.formatColor)({ ...i2, alpha: `var(${n2})` })])) }; + function fh({ color: e, property: t, variable: n }) { + let r = [].concat(t); + if (typeof e == "function") return { [n]: "1", ...Object.fromEntries(r.map((o) => [o, e({ opacityVariable: n, opacityValue: `var(${n})` })])) }; + let i = (0, pn.parseColor)(e); + return i === null ? Object.fromEntries(r.map((o) => [o, e])) : i.alpha !== void 0 ? Object.fromEntries(r.map((o) => [o, e])) : { [n]: "1", ...Object.fromEntries(r.map((o) => [o, (0, pn.formatColor)({ ...i, alpha: `var(${n})` })])) }; } }); var ma = k((io) => { Object.defineProperty(io, "__esModule", { value: true }); - function ch(e2, t2) { - for (var n2 in t2) Object.defineProperty(e2, n2, { enumerable: true, get: t2[n2] }); + function ch(e, t) { + for (var n in t) Object.defineProperty(e, n, { enumerable: true, get: t[n] }); } ch(io, { pattern: () => ph, withoutCapturing: () => da, any: () => pa, optional: () => hh, zeroOrMore: () => mh, nestedBrackets: () => ha, escape: () => ot }); var ca = /[\\^$.*+?()[\]{}|]/g, dh = RegExp(ca.source); - function dr(e2) { - return e2 = Array.isArray(e2) ? e2 : [e2], e2 = e2.map((t2) => t2 instanceof RegExp ? t2.source : t2), e2.join(""); + function dr(e) { + return e = Array.isArray(e) ? e : [e], e = e.map((t) => t instanceof RegExp ? t.source : t), e.join(""); } - function ph(e2) { - return new RegExp(dr(e2), "g"); + function ph(e) { + return new RegExp(dr(e), "g"); } - function da(e2) { - return new RegExp(`(?:${dr(e2)})`, "g"); + function da(e) { + return new RegExp(`(?:${dr(e)})`, "g"); } - function pa(e2) { - return `(?:${e2.map(dr).join("|")})`; + function pa(e) { + return `(?:${e.map(dr).join("|")})`; } - function hh(e2) { - return `(?:${dr(e2)})?`; + function hh(e) { + return `(?:${dr(e)})?`; } - function mh(e2) { - return `(?:${dr(e2)})*`; + function mh(e) { + return `(?:${dr(e)})*`; } - function ha(e2, t2, n2 = 1) { - return da([ot(e2), /[^\s]*/, n2 === 1 ? `[^${ot(e2)}${ot(t2)}s]*` : pa([`[^${ot(e2)}${ot(t2)}s]*`, ha(e2, t2, n2 - 1)]), /[^\s]*/, ot(t2)]); + function ha(e, t, n = 1) { + return da([ot(e), /[^\s]*/, n === 1 ? `[^${ot(e)}${ot(t)}s]*` : pa([`[^${ot(e)}${ot(t)}s]*`, ha(e, t, n - 1)]), /[^\s]*/, ot(t)]); } - function ot(e2) { - return e2 && dh.test(e2) ? e2.replace(ca, "\\$&") : e2 || ""; + function ot(e) { + return e && dh.test(e) ? e.replace(ca, "\\$&") : e || ""; } }); var ga = k((oo) => { Object.defineProperty(oo, "__esModule", { value: true }); Object.defineProperty(oo, "splitAtTopLevelOnly", { enumerable: true, get: () => bh }); var Dh = gh(ma()); - function Da(e2) { + function Da(e) { if (typeof WeakMap != "function") return null; - var t2 = /* @__PURE__ */ new WeakMap(), n2 = /* @__PURE__ */ new WeakMap(); - return (Da = function(r2) { - return r2 ? n2 : t2; - })(e2); + var t = /* @__PURE__ */ new WeakMap(), n = /* @__PURE__ */ new WeakMap(); + return (Da = function(r) { + return r ? n : t; + })(e); } - function gh(e2, t2) { - if (e2 && e2.__esModule) return e2; - if (e2 === null || typeof e2 != "object" && typeof e2 != "function") return { default: e2 }; - var n2 = Da(t2); - if (n2 && n2.has(e2)) return n2.get(e2); - var r2 = {}, i2 = Object.defineProperty && Object.getOwnPropertyDescriptor; - for (var o2 in e2) if (o2 !== "default" && Object.prototype.hasOwnProperty.call(e2, o2)) { - var u4 = i2 ? Object.getOwnPropertyDescriptor(e2, o2) : null; - u4 && (u4.get || u4.set) ? Object.defineProperty(r2, o2, u4) : r2[o2] = e2[o2]; + function gh(e, t) { + if (e && e.__esModule) return e; + if (e === null || typeof e != "object" && typeof e != "function") return { default: e }; + var n = Da(t); + if (n && n.has(e)) return n.get(e); + var r = {}, i = Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var o in e) if (o !== "default" && Object.prototype.hasOwnProperty.call(e, o)) { + var u2 = i ? Object.getOwnPropertyDescriptor(e, o) : null; + u2 && (u2.get || u2.set) ? Object.defineProperty(r, o, u2) : r[o] = e[o]; } - return r2.default = e2, n2 && n2.set(e2, r2), r2; + return r.default = e, n && n.set(e, r), r; } - function* bh(e2, t2) { - let n2 = new RegExp(`[(){}\\[\\]${Dh.escape(t2)}]`, "g"), r2 = 0, i2 = 0, o2 = false, u4 = 0, s2 = 0, a2 = t2.length; - for (let l3 of e2.matchAll(n2)) { - let f3 = l3[0] === t2[u4], c3 = u4 === a2 - 1, p2 = f3 && c3; - l3[0] === "(" && r2++, l3[0] === ")" && r2--, l3[0] === "[" && r2++, l3[0] === "]" && r2--, l3[0] === "{" && r2++, l3[0] === "}" && r2--, f3 && r2 === 0 && (s2 === 0 && (s2 = l3.index), u4++), p2 && r2 === 0 && (o2 = true, yield e2.substring(i2, s2), i2 = s2 + a2), u4 === a2 && (u4 = 0, s2 = 0); + function* bh(e, t) { + let n = new RegExp(`[(){}\\[\\]${Dh.escape(t)}]`, "g"), r = 0, i = 0, o = false, u2 = 0, s = 0, a = t.length; + for (let l2 of e.matchAll(n)) { + let f = l2[0] === t[u2], c2 = u2 === a - 1, p = f && c2; + l2[0] === "(" && r++, l2[0] === ")" && r--, l2[0] === "[" && r++, l2[0] === "]" && r--, l2[0] === "{" && r++, l2[0] === "}" && r--, f && r === 0 && (s === 0 && (s = l2.index), u2++), p && r === 0 && (o = true, yield e.substring(i, s), i = s + a), u2 === a && (u2 = 0, s = 0); } - o2 ? yield e2.substring(i2) : yield e2; + o ? yield e.substring(i) : yield e; } }); var va = k((uo) => { Object.defineProperty(uo, "__esModule", { value: true }); - function vh(e2, t2) { - for (var n2 in t2) Object.defineProperty(e2, n2, { enumerable: true, get: t2[n2] }); + function vh(e, t) { + for (var n in t) Object.defineProperty(e, n, { enumerable: true, get: t[n] }); } vh(uo, { parseBoxShadowValue: () => wh, formatBoxShadowValue: () => Eh }); var yh = ga(), xh = /* @__PURE__ */ new Set(["inset", "inherit", "initial", "revert", "unset"]), Fh = /\ +(?![^(]*\))/g, ba = /^-?(\d+|\.\d+)(.*?)$/g; - function wh(e2) { - return Array.from((0, yh.splitAtTopLevelOnly)(e2, ",")).map((n2) => { - let r2 = n2.trim(), i2 = { raw: r2 }, o2 = r2.split(Fh), u4 = /* @__PURE__ */ new Set(); - for (let s2 of o2) ba.lastIndex = 0, !u4.has("KEYWORD") && xh.has(s2) ? (i2.keyword = s2, u4.add("KEYWORD")) : ba.test(s2) ? u4.has("X") ? u4.has("Y") ? u4.has("BLUR") ? u4.has("SPREAD") || (i2.spread = s2, u4.add("SPREAD")) : (i2.blur = s2, u4.add("BLUR")) : (i2.y = s2, u4.add("Y")) : (i2.x = s2, u4.add("X")) : i2.color ? (i2.unknown || (i2.unknown = []), i2.unknown.push(s2)) : i2.color = s2; - return i2.valid = i2.x !== void 0 && i2.y !== void 0, i2; + function wh(e) { + return Array.from((0, yh.splitAtTopLevelOnly)(e, ",")).map((n) => { + let r = n.trim(), i = { raw: r }, o = r.split(Fh), u2 = /* @__PURE__ */ new Set(); + for (let s of o) ba.lastIndex = 0, !u2.has("KEYWORD") && xh.has(s) ? (i.keyword = s, u2.add("KEYWORD")) : ba.test(s) ? u2.has("X") ? u2.has("Y") ? u2.has("BLUR") ? u2.has("SPREAD") || (i.spread = s, u2.add("SPREAD")) : (i.blur = s, u2.add("BLUR")) : (i.y = s, u2.add("Y")) : (i.x = s, u2.add("X")) : i.color ? (i.unknown || (i.unknown = []), i.unknown.push(s)) : i.color = s; + return i.valid = i.x !== void 0 && i.y !== void 0, i; }); } - function Eh(e2) { - return e2.map((t2) => t2.valid ? [t2.keyword, t2.x, t2.y, t2.blur, t2.spread, t2.color].filter(Boolean).join(" ") : t2.raw).join(", "); + function Eh(e) { + return e.map((t) => t.valid ? [t.keyword, t.x, t.y, t.blur, t.spread, t.color].filter(Boolean).join(" ") : t.raw).join(", "); } }); var Ca = k((ao) => { Object.defineProperty(ao, "__esModule", { value: true }); - function Sh(e2, t2) { - for (var n2 in t2) Object.defineProperty(e2, n2, { enumerable: true, get: t2[n2] }); + function Sh(e, t) { + for (var n in t) Object.defineProperty(e, n, { enumerable: true, get: t[n] }); } Sh(ao, { normalize: () => Xe, url: () => Fa, number: () => kh, percentage: () => wa, length: () => Ea, lineWidth: () => Oh, shadow: () => Ph, color: () => Bh, image: () => Ih, gradient: () => Sa, position: () => Mh, familyName: () => Nh, genericName: () => $h, absoluteSize: () => zh, relativeSize: () => Gh }); var Ch = to(), _h = va(), so = ["min", "max", "clamp", "calc"], xa = /,(?![^(]*\))/g, hn = /_(?![^(]*\))/g; - function Xe(e2, t2 = true) { - return e2.includes("url(") ? e2.split(/(url\(.*?\))/g).filter(Boolean).map((n2) => /^url\(.*?\)$/.test(n2) ? n2 : Xe(n2, false)).join("") : (e2 = e2.replace(/([^\\])_+/g, (n2, r2) => r2 + " ".repeat(n2.length - 1)).replace(/^_/g, " ").replace(/\\_/g, "_"), t2 && (e2 = e2.trim()), e2 = e2.replace(/(calc|min|max|clamp)\(.+\)/g, (n2) => n2.replace(/(-?\d*\.?\d(?!\b-.+[,)](?![^+\-/*])\D)(?:%|[a-z]+)?|\))([+\-/*])/g, "$1 $2 ")), e2); + function Xe(e, t = true) { + return e.includes("url(") ? e.split(/(url\(.*?\))/g).filter(Boolean).map((n) => /^url\(.*?\)$/.test(n) ? n : Xe(n, false)).join("") : (e = e.replace(/([^\\])_+/g, (n, r) => r + " ".repeat(n.length - 1)).replace(/^_/g, " ").replace(/\\_/g, "_"), t && (e = e.trim()), e = e.replace(/(calc|min|max|clamp)\(.+\)/g, (n) => n.replace(/(-?\d*\.?\d(?!\b-.+[,)](?![^+\-/*])\D)(?:%|[a-z]+)?|\))([+\-/*])/g, "$1 $2 ")), e); } - function Fa(e2) { - return e2.startsWith("url("); + function Fa(e) { + return e.startsWith("url("); } - function kh(e2) { - return !isNaN(Number(e2)) || so.some((t2) => new RegExp(`^${t2}\\(.+?`).test(e2)); + function kh(e) { + return !isNaN(Number(e)) || so.some((t) => new RegExp(`^${t}\\(.+?`).test(e)); } - function wa(e2) { - return e2.split(hn).every((t2) => /%$/g.test(t2) || so.some((n2) => new RegExp(`^${n2}\\(.+?%`).test(t2))); + function wa(e) { + return e.split(hn).every((t) => /%$/g.test(t) || so.some((n) => new RegExp(`^${n}\\(.+?%`).test(t))); } var Th = ["cm", "mm", "Q", "in", "pc", "pt", "px", "em", "ex", "ch", "rem", "lh", "vw", "vh", "vmin", "vmax"], ya = `(?:${Th.join("|")})`; - function Ea(e2) { - return e2.split(hn).every((t2) => t2 === "0" || new RegExp(`${ya}$`).test(t2) || so.some((n2) => new RegExp(`^${n2}\\(.+?${ya}`).test(t2))); + function Ea(e) { + return e.split(hn).every((t) => t === "0" || new RegExp(`${ya}$`).test(t) || so.some((n) => new RegExp(`^${n}\\(.+?${ya}`).test(t))); } var Ah = /* @__PURE__ */ new Set(["thin", "medium", "thick"]); - function Oh(e2) { - return Ah.has(e2); + function Oh(e) { + return Ah.has(e); } - function Ph(e2) { - let t2 = (0, _h.parseBoxShadowValue)(Xe(e2)); - for (let n2 of t2) if (!n2.valid) return false; + function Ph(e) { + let t = (0, _h.parseBoxShadowValue)(Xe(e)); + for (let n of t) if (!n.valid) return false; return true; } - function Bh(e2) { - let t2 = 0; - return e2.split(hn).every((r2) => (r2 = Xe(r2), r2.startsWith("var(") ? true : (0, Ch.parseColor)(r2, { loose: true }) !== null ? (t2++, true) : false)) ? t2 > 0 : false; + function Bh(e) { + let t = 0; + return e.split(hn).every((r) => (r = Xe(r), r.startsWith("var(") ? true : (0, Ch.parseColor)(r, { loose: true }) !== null ? (t++, true) : false)) ? t > 0 : false; } - function Ih(e2) { - let t2 = 0; - return e2.split(xa).every((r2) => (r2 = Xe(r2), r2.startsWith("var(") ? true : Fa(r2) || Sa(r2) || ["element(", "image(", "cross-fade(", "image-set("].some((i2) => r2.startsWith(i2)) ? (t2++, true) : false)) ? t2 > 0 : false; + function Ih(e) { + let t = 0; + return e.split(xa).every((r) => (r = Xe(r), r.startsWith("var(") ? true : Fa(r) || Sa(r) || ["element(", "image(", "cross-fade(", "image-set("].some((i) => r.startsWith(i)) ? (t++, true) : false)) ? t > 0 : false; } var Rh = /* @__PURE__ */ new Set(["linear-gradient", "radial-gradient", "repeating-linear-gradient", "repeating-radial-gradient", "conic-gradient"]); - function Sa(e2) { - e2 = Xe(e2); - for (let t2 of Rh) if (e2.startsWith(`${t2}(`)) return true; + function Sa(e) { + e = Xe(e); + for (let t of Rh) if (e.startsWith(`${t}(`)) return true; return false; } var Lh = /* @__PURE__ */ new Set(["center", "top", "right", "bottom", "left"]); - function Mh(e2) { - let t2 = 0; - return e2.split(hn).every((r2) => (r2 = Xe(r2), r2.startsWith("var(") ? true : Lh.has(r2) || Ea(r2) || wa(r2) ? (t2++, true) : false)) ? t2 > 0 : false; + function Mh(e) { + let t = 0; + return e.split(hn).every((r) => (r = Xe(r), r.startsWith("var(") ? true : Lh.has(r) || Ea(r) || wa(r) ? (t++, true) : false)) ? t > 0 : false; } - function Nh(e2) { - let t2 = 0; - return e2.split(xa).every((r2) => (r2 = Xe(r2), r2.startsWith("var(") ? true : r2.includes(" ") && !/(['"])([^"']+)\1/g.test(r2) || /^\d/g.test(r2) ? false : (t2++, true))) ? t2 > 0 : false; + function Nh(e) { + let t = 0; + return e.split(xa).every((r) => (r = Xe(r), r.startsWith("var(") ? true : r.includes(" ") && !/(['"])([^"']+)\1/g.test(r) || /^\d/g.test(r) ? false : (t++, true))) ? t > 0 : false; } var Wh = /* @__PURE__ */ new Set(["serif", "sans-serif", "monospace", "cursive", "fantasy", "system-ui", "ui-serif", "ui-sans-serif", "ui-monospace", "ui-rounded", "math", "emoji", "fangsong"]); - function $h(e2) { - return Wh.has(e2); + function $h(e) { + return Wh.has(e); } var qh = /* @__PURE__ */ new Set(["xx-small", "x-small", "small", "medium", "large", "x-large", "x-large", "xxx-large"]); - function zh(e2) { - return qh.has(e2); + function zh(e) { + return qh.has(e); } var Uh = /* @__PURE__ */ new Set(["larger", "smaller"]); - function Gh(e2) { - return Uh.has(e2); + function Gh(e) { + return Uh.has(e); } }); var Ia = k((co) => { Object.defineProperty(co, "__esModule", { value: true }); - function jh(e2, t2) { - for (var n2 in t2) Object.defineProperty(e2, n2, { enumerable: true, get: t2[n2] }); + function jh(e, t) { + for (var n in t) Object.defineProperty(e, n, { enumerable: true, get: t[n] }); } jh(co, { updateAllClasses: () => Yh, asValue: () => hr, parseColorFormat: () => lo, asColor: () => Oa, asLookupValue: () => Pa, coerceValue: () => Jh }); var Hh = fo(oa()), Vh = fo(ua()), _a2 = no(), pe = Ca(), ka = fo(Xn()); - function fo(e2) { - return e2 && e2.__esModule ? e2 : { default: e2 }; + function fo(e) { + return e && e.__esModule ? e : { default: e }; } - function Yh(e2, t2) { - return (0, Hh.default)((i2) => { - i2.walkClasses((o2) => { - let u4 = t2(o2.value); - o2.value = u4, o2.raws && o2.raws.value && (o2.raws.value = (0, Vh.default)(o2.raws.value)); + function Yh(e, t) { + return (0, Hh.default)((i) => { + i.walkClasses((o) => { + let u2 = t(o.value); + o.value = u2, o.raws && o.raws.value && (o.raws.value = (0, Vh.default)(o.raws.value)); }); - }).processSync(e2); + }).processSync(e); } - function Aa(e2, t2) { - if (!pr(e2)) return; - let n2 = e2.slice(1, -1); - if (t2(n2)) return (0, pe.normalize)(n2); + function Aa(e, t) { + if (!pr(e)) return; + let n = e.slice(1, -1); + if (t(n)) return (0, pe.normalize)(n); } - function Xh(e2, t2 = {}, n2) { - let r2 = t2[e2]; - if (r2 !== void 0) return (0, ka.default)(r2); - if (pr(e2)) { - let i2 = Aa(e2, n2); - return i2 === void 0 ? void 0 : (0, ka.default)(i2); + function Xh(e, t = {}, n) { + let r = t[e]; + if (r !== void 0) return (0, ka.default)(r); + if (pr(e)) { + let i = Aa(e, n); + return i === void 0 ? void 0 : (0, ka.default)(i); } } - function hr(e2, t2 = {}, { validate: n2 = () => true } = {}) { - var r2; - let i2 = (r2 = t2.values) === null || r2 === void 0 ? void 0 : r2[e2]; - return i2 !== void 0 ? i2 : t2.supportsNegativeValues && e2.startsWith("-") ? Xh(e2.slice(1), t2.values, n2) : Aa(e2, n2); + function hr(e, t = {}, { validate: n = () => true } = {}) { + var r; + let i = (r = t.values) === null || r === void 0 ? void 0 : r[e]; + return i !== void 0 ? i : t.supportsNegativeValues && e.startsWith("-") ? Xh(e.slice(1), t.values, n) : Aa(e, n); } - function pr(e2) { - return e2.startsWith("[") && e2.endsWith("]"); + function pr(e) { + return e.startsWith("[") && e.endsWith("]"); } - function Qh(e2) { - let t2 = e2.lastIndexOf("/"); - return t2 === -1 || t2 === e2.length - 1 ? [e2] : [e2.slice(0, t2), e2.slice(t2 + 1)]; + function Qh(e) { + let t = e.lastIndexOf("/"); + return t === -1 || t === e.length - 1 ? [e] : [e.slice(0, t), e.slice(t + 1)]; } - function lo(e2) { - if (typeof e2 == "string" && e2.includes("")) { - let t2 = e2; - return ({ opacityValue: n2 = 1 }) => t2.replace("", n2); + function lo(e) { + if (typeof e == "string" && e.includes("")) { + let t = e; + return ({ opacityValue: n = 1 }) => t.replace("", n); } - return e2; + return e; } - function Oa(e2, t2 = {}, { tailwindConfig: n2 = {} } = {}) { - var r2; - if (((r2 = t2.values) === null || r2 === void 0 ? void 0 : r2[e2]) !== void 0) { - var i2; - return lo((i2 = t2.values) === null || i2 === void 0 ? void 0 : i2[e2]); + function Oa(e, t = {}, { tailwindConfig: n = {} } = {}) { + var r; + if (((r = t.values) === null || r === void 0 ? void 0 : r[e]) !== void 0) { + var i; + return lo((i = t.values) === null || i === void 0 ? void 0 : i[e]); } - let [o2, u4] = Qh(e2); - if (u4 !== void 0) { - var s2, a2, l3, f3; - let c3 = (f3 = (s2 = t2.values) === null || s2 === void 0 ? void 0 : s2[o2]) !== null && f3 !== void 0 ? f3 : pr(o2) ? o2.slice(1, -1) : void 0; - return c3 === void 0 ? void 0 : (c3 = lo(c3), pr(u4) ? (0, _a2.withAlphaValue)(c3, u4.slice(1, -1)) : ((a2 = n2.theme) === null || a2 === void 0 || (l3 = a2.opacity) === null || l3 === void 0 ? void 0 : l3[u4]) === void 0 ? void 0 : (0, _a2.withAlphaValue)(c3, n2.theme.opacity[u4])); + let [o, u2] = Qh(e); + if (u2 !== void 0) { + var s, a, l2, f; + let c2 = (f = (s = t.values) === null || s === void 0 ? void 0 : s[o]) !== null && f !== void 0 ? f : pr(o) ? o.slice(1, -1) : void 0; + return c2 === void 0 ? void 0 : (c2 = lo(c2), pr(u2) ? (0, _a2.withAlphaValue)(c2, u2.slice(1, -1)) : ((a = n.theme) === null || a === void 0 || (l2 = a.opacity) === null || l2 === void 0 ? void 0 : l2[u2]) === void 0 ? void 0 : (0, _a2.withAlphaValue)(c2, n.theme.opacity[u2])); } - return hr(e2, t2, { validate: pe.color }); + return hr(e, t, { validate: pe.color }); } - function Pa(e2, t2 = {}) { - var n2; - return (n2 = t2.values) === null || n2 === void 0 ? void 0 : n2[e2]; + function Pa(e, t = {}) { + var n; + return (n = t.values) === null || n === void 0 ? void 0 : n[e]; } - function Fe(e2) { - return (t2, n2) => hr(t2, n2, { validate: e2 }); + function Fe(e) { + return (t, n) => hr(t, n, { validate: e }); } var Ba = { any: hr, color: Oa, url: Fe(pe.url), image: Fe(pe.image), length: Fe(pe.length), percentage: Fe(pe.percentage), position: Fe(pe.position), lookup: Pa, "generic-name": Fe(pe.genericName), "family-name": Fe(pe.familyName), number: Fe(pe.number), "line-width": Fe(pe.lineWidth), "absolute-size": Fe(pe.absoluteSize), "relative-size": Fe(pe.relativeSize), shadow: Fe(pe.shadow) }, Ta = Object.keys(Ba); - function Kh(e2, t2) { - let n2 = e2.indexOf(t2); - return n2 === -1 ? [void 0, e2] : [e2.slice(0, n2), e2.slice(n2 + 1)]; + function Kh(e, t) { + let n = e.indexOf(t); + return n === -1 ? [void 0, e] : [e.slice(0, n), e.slice(n + 1)]; } - function Jh(e2, t2, n2, r2) { - if (pr(t2)) { - let i2 = t2.slice(1, -1), [o2, u4] = Kh(i2, ":"); - if (!/^[\w-_]+$/g.test(o2)) u4 = i2; - else if (o2 !== void 0 && !Ta.includes(o2)) return []; - if (u4.length > 0 && Ta.includes(o2)) return [hr(`[${u4}]`, n2), o2]; + function Jh(e, t, n, r) { + if (pr(t)) { + let i = t.slice(1, -1), [o, u2] = Kh(i, ":"); + if (!/^[\w-_]+$/g.test(o)) u2 = i; + else if (o !== void 0 && !Ta.includes(o)) return []; + if (u2.length > 0 && Ta.includes(o)) return [hr(`[${u2}]`, n), o]; } - for (let i2 of [].concat(e2)) { - let o2 = Ba[i2](t2, n2, { tailwindConfig: r2 }); - if (o2 !== void 0) return [o2, i2]; + for (let i of [].concat(e)) { + let o = Ba[i](t, n, { tailwindConfig: r }); + if (o !== void 0) return [o, i]; } return []; } @@ -27577,144 +21431,144 @@ var Ia = k((co) => { var Ra = k((po) => { Object.defineProperty(po, "__esModule", { value: true }); Object.defineProperty(po, "default", { enumerable: true, get: () => Zh }); - function Zh(e2) { - return typeof e2 == "function" ? e2({}) : e2; + function Zh(e) { + return typeof e == "function" ? e({}) : e; } }); var $a = k((mo) => { Object.defineProperty(mo, "__esModule", { value: true }); Object.defineProperty(mo, "default", { enumerable: true, get: () => vm }); var em = ut(Xn()), tm = ut(Uu()), rm = ut(Gu()), nm = ut(Jn()), im = ut(Hu()), Na = Vu(), La = Yu(), om = Qu(), um = ut(Ku()), sm = Ju(), am = Ia(), lm = no(), fm = ut(Ra()); - function ut(e2) { - return e2 && e2.__esModule ? e2 : { default: e2 }; + function ut(e) { + return e && e.__esModule ? e : { default: e }; } - function wt(e2) { - return typeof e2 == "function"; + function wt(e) { + return typeof e == "function"; } - function mr(e2) { - return typeof e2 == "object" && e2 !== null; + function mr(e) { + return typeof e == "object" && e !== null; } - function Dr(e2, ...t2) { - let n2 = t2.pop(); - for (let r2 of t2) for (let i2 in r2) { - let o2 = n2(e2[i2], r2[i2]); - o2 === void 0 ? mr(e2[i2]) && mr(r2[i2]) ? e2[i2] = Dr(e2[i2], r2[i2], n2) : e2[i2] = r2[i2] : e2[i2] = o2; + function Dr(e, ...t) { + let n = t.pop(); + for (let r of t) for (let i in r) { + let o = n(e[i], r[i]); + o === void 0 ? mr(e[i]) && mr(r[i]) ? e[i] = Dr(e[i], r[i], n) : e[i] = r[i] : e[i] = o; } - return e2; + return e; } - var ho = { colors: im.default, negative(e2) { - return Object.keys(e2).filter((t2) => e2[t2] !== "0").reduce((t2, n2) => { - let r2 = (0, em.default)(e2[n2]); - return r2 !== void 0 && (t2[`-${n2}`] = r2), t2; + var ho = { colors: im.default, negative(e) { + return Object.keys(e).filter((t) => e[t] !== "0").reduce((t, n) => { + let r = (0, em.default)(e[n]); + return r !== void 0 && (t[`-${n}`] = r), t; }, {}); - }, breakpoints(e2) { - return Object.keys(e2).filter((t2) => typeof e2[t2] == "string").reduce((t2, n2) => ({ ...t2, [`screen-${n2}`]: e2[n2] }), {}); + }, breakpoints(e) { + return Object.keys(e).filter((t) => typeof e[t] == "string").reduce((t, n) => ({ ...t, [`screen-${n}`]: e[n] }), {}); } }; - function cm(e2, ...t2) { - return wt(e2) ? e2(...t2) : e2; + function cm(e, ...t) { + return wt(e) ? e(...t) : e; } - function dm(e2) { - return e2.reduce((t2, { extend: n2 }) => Dr(t2, n2, (r2, i2) => r2 === void 0 ? [i2] : Array.isArray(r2) ? [i2, ...r2] : [i2, r2]), {}); + function dm(e) { + return e.reduce((t, { extend: n }) => Dr(t, n, (r, i) => r === void 0 ? [i] : Array.isArray(r) ? [i, ...r] : [i, r]), {}); } - function pm(e2) { - return { ...e2.reduce((t2, n2) => (0, Na.defaults)(t2, n2), {}), extend: dm(e2) }; + function pm(e) { + return { ...e.reduce((t, n) => (0, Na.defaults)(t, n), {}), extend: dm(e) }; } - function Ma(e2, t2) { - if (Array.isArray(e2) && mr(e2[0])) return e2.concat(t2); - if (Array.isArray(t2) && mr(t2[0]) && mr(e2)) return [e2, ...t2]; - if (Array.isArray(t2)) return t2; + function Ma(e, t) { + if (Array.isArray(e) && mr(e[0])) return e.concat(t); + if (Array.isArray(t) && mr(t[0]) && mr(e)) return [e, ...t]; + if (Array.isArray(t)) return t; } - function hm({ extend: e2, ...t2 }) { - return Dr(t2, e2, (n2, r2) => !wt(n2) && !r2.some(wt) ? Dr({}, n2, ...r2, Ma) : (i2, o2) => Dr({}, ...[n2, ...r2].map((u4) => cm(u4, i2, o2)), Ma)); + function hm({ extend: e, ...t }) { + return Dr(t, e, (n, r) => !wt(n) && !r.some(wt) ? Dr({}, n, ...r, Ma) : (i, o) => Dr({}, ...[n, ...r].map((u2) => cm(u2, i, o)), Ma)); } - function* mm(e2) { - let t2 = (0, La.toPath)(e2); - if (t2.length === 0 || (yield t2, Array.isArray(e2))) return; - let n2 = /^(.*?)\s*\/\s*([^/]+)$/, r2 = e2.match(n2); - if (r2 !== null) { - let [, i2, o2] = r2, u4 = (0, La.toPath)(i2); - u4.alpha = o2, yield u4; + function* mm(e) { + let t = (0, La.toPath)(e); + if (t.length === 0 || (yield t, Array.isArray(e))) return; + let n = /^(.*?)\s*\/\s*([^/]+)$/, r = e.match(n); + if (r !== null) { + let [, i, o] = r, u2 = (0, La.toPath)(i); + u2.alpha = o, yield u2; } } - function Dm(e2) { - let t2 = (n2, r2) => { - for (let i2 of mm(n2)) { - let o2 = 0, u4 = e2; - for (; u4 != null && o2 < i2.length; ) u4 = u4[i2[o2++]], u4 = wt(u4) && (i2.alpha === void 0 || o2 <= i2.length - 1) ? u4(t2, ho) : u4; - if (u4 !== void 0) { - if (i2.alpha !== void 0) { - let s2 = (0, am.parseColorFormat)(u4); - return (0, lm.withAlphaValue)(s2, i2.alpha, (0, fm.default)(s2)); + function Dm(e) { + let t = (n, r) => { + for (let i of mm(n)) { + let o = 0, u2 = e; + for (; u2 != null && o < i.length; ) u2 = u2[i[o++]], u2 = wt(u2) && (i.alpha === void 0 || o <= i.length - 1) ? u2(t, ho) : u2; + if (u2 !== void 0) { + if (i.alpha !== void 0) { + let s = (0, am.parseColorFormat)(u2); + return (0, lm.withAlphaValue)(s, i.alpha, (0, fm.default)(s)); } - return (0, um.default)(u4) ? (0, sm.cloneDeep)(u4) : u4; + return (0, um.default)(u2) ? (0, sm.cloneDeep)(u2) : u2; } } - return r2; + return r; }; - return Object.assign(t2, { theme: t2, ...ho }), Object.keys(e2).reduce((n2, r2) => (n2[r2] = wt(e2[r2]) ? e2[r2](t2, ho) : e2[r2], n2), {}); + return Object.assign(t, { theme: t, ...ho }), Object.keys(e).reduce((n, r) => (n[r] = wt(e[r]) ? e[r](t, ho) : e[r], n), {}); } - function Wa(e2) { - let t2 = []; - return e2.forEach((n2) => { - t2 = [...t2, n2]; - var r2; - let i2 = (r2 = n2 == null ? void 0 : n2.plugins) !== null && r2 !== void 0 ? r2 : []; - i2.length !== 0 && i2.forEach((o2) => { - o2.__isOptionsFunction && (o2 = o2()); - var u4; - t2 = [...t2, ...Wa([(u4 = o2 == null ? void 0 : o2.config) !== null && u4 !== void 0 ? u4 : {}])]; + function Wa(e) { + let t = []; + return e.forEach((n) => { + t = [...t, n]; + var r; + let i = (r = n == null ? void 0 : n.plugins) !== null && r !== void 0 ? r : []; + i.length !== 0 && i.forEach((o) => { + o.__isOptionsFunction && (o = o()); + var u2; + t = [...t, ...Wa([(u2 = o == null ? void 0 : o.config) !== null && u2 !== void 0 ? u2 : {}])]; }); - }), t2; + }), t; } - function gm(e2) { - return [...e2].reduceRight((n2, r2) => wt(r2) ? r2({ corePlugins: n2 }) : (0, rm.default)(r2, n2), tm.default); + function gm(e) { + return [...e].reduceRight((n, r) => wt(r) ? r({ corePlugins: n }) : (0, rm.default)(r, n), tm.default); } - function bm(e2) { - return [...e2].reduceRight((n2, r2) => [...n2, ...r2], []); + function bm(e) { + return [...e].reduceRight((n, r) => [...n, ...r], []); } - function vm(e2) { - let t2 = [...Wa(e2), { prefix: "", important: false, separator: ":", variantOrder: nm.default.variantOrder }]; - var n2, r2; - return (0, om.normalizeConfig)((0, Na.defaults)({ theme: Dm(hm(pm(t2.map((i2) => (n2 = i2 == null ? void 0 : i2.theme) !== null && n2 !== void 0 ? n2 : {})))), corePlugins: gm(t2.map((i2) => i2.corePlugins)), plugins: bm(e2.map((i2) => (r2 = i2 == null ? void 0 : i2.plugins) !== null && r2 !== void 0 ? r2 : [])) }, ...t2)); + function vm(e) { + let t = [...Wa(e), { prefix: "", important: false, separator: ":", variantOrder: nm.default.variantOrder }]; + var n, r; + return (0, om.normalizeConfig)((0, Na.defaults)({ theme: Dm(hm(pm(t.map((i) => (n = i == null ? void 0 : i.theme) !== null && n !== void 0 ? n : {})))), corePlugins: gm(t.map((i) => i.corePlugins)), plugins: bm(e.map((i) => (r = i == null ? void 0 : i.plugins) !== null && r !== void 0 ? r : [])) }, ...t)); } }); var qa = {}; Fn(qa, { default: () => ym }); var ym; var za = xn(() => { - ym = { yellow: (e2) => e2 }; + ym = { yellow: (e) => e }; }); var Ha = k((Do) => { Object.defineProperty(Do, "__esModule", { value: true }); - function xm(e2, t2) { - for (var n2 in t2) Object.defineProperty(e2, n2, { enumerable: true, get: t2[n2] }); + function xm(e, t) { + for (var n in t) Object.defineProperty(e, n, { enumerable: true, get: t[n] }); } xm(Do, { flagEnabled: () => Em, issueFlagNotices: () => Sm, default: () => Cm }); var Fm = ja((za(), Ir(qa))), wm = ja((Jr(), Ir(Kr))); - function ja(e2) { - return e2 && e2.__esModule ? e2 : { default: e2 }; + function ja(e) { + return e && e.__esModule ? e : { default: e }; } var Ua = { optimizeUniversalDefaults: false }, gr = { future: ["hoverOnlyWhenSupported", "respectDefaultRingColorOpacity"], experimental: ["optimizeUniversalDefaults", "matchVariant"] }; - function Em(e2, t2) { - if (gr.future.includes(t2)) { - var n2, r2, i2; - return e2.future === "all" || ((i2 = (r2 = e2 == null || (n2 = e2.future) === null || n2 === void 0 ? void 0 : n2[t2]) !== null && r2 !== void 0 ? r2 : Ua[t2]) !== null && i2 !== void 0 ? i2 : false); + function Em(e, t) { + if (gr.future.includes(t)) { + var n, r, i; + return e.future === "all" || ((i = (r = e == null || (n = e.future) === null || n === void 0 ? void 0 : n[t]) !== null && r !== void 0 ? r : Ua[t]) !== null && i !== void 0 ? i : false); } - if (gr.experimental.includes(t2)) { - var o2, u4, s2; - return e2.experimental === "all" || ((s2 = (u4 = e2 == null || (o2 = e2.experimental) === null || o2 === void 0 ? void 0 : o2[t2]) !== null && u4 !== void 0 ? u4 : Ua[t2]) !== null && s2 !== void 0 ? s2 : false); + if (gr.experimental.includes(t)) { + var o, u2, s; + return e.experimental === "all" || ((s = (u2 = e == null || (o = e.experimental) === null || o === void 0 ? void 0 : o[t]) !== null && u2 !== void 0 ? u2 : Ua[t]) !== null && s !== void 0 ? s : false); } return false; } - function Ga(e2) { - if (e2.experimental === "all") return gr.experimental; - var t2; - return Object.keys((t2 = e2 == null ? void 0 : e2.experimental) !== null && t2 !== void 0 ? t2 : {}).filter((n2) => gr.experimental.includes(n2) && e2.experimental[n2]); + function Ga(e) { + if (e.experimental === "all") return gr.experimental; + var t; + return Object.keys((t = e == null ? void 0 : e.experimental) !== null && t !== void 0 ? t : {}).filter((n) => gr.experimental.includes(n) && e.experimental[n]); } - function Sm(e2) { - if (process.env.JEST_WORKER_ID === void 0 && Ga(e2).length > 0) { - let t2 = Ga(e2).map((n2) => Fm.default.yellow(n2)).join(", "); - wm.default.warn("experimental-flags-enabled", [`You have enabled experimental features: ${t2}`, "Experimental features in Tailwind CSS are not covered by semver, may introduce breaking changes, and can change at any time."]); + function Sm(e) { + if (process.env.JEST_WORKER_ID === void 0 && Ga(e).length > 0) { + let t = Ga(e).map((n) => Fm.default.yellow(n)).join(", "); + wm.default.warn("experimental-flags-enabled", [`You have enabled experimental features: ${t}`, "Experimental features in Tailwind CSS are not covered by semver, may introduce breaking changes, and can change at any time."]); } } var Cm = gr; @@ -27723,25 +21577,25 @@ var Ya = k((go) => { Object.defineProperty(go, "__esModule", { value: true }); Object.defineProperty(go, "default", { enumerable: true, get: () => Va }); var _m = Tm(Jn()), km = Ha(); - function Tm(e2) { - return e2 && e2.__esModule ? e2 : { default: e2 }; + function Tm(e) { + return e && e.__esModule ? e : { default: e }; } - function Va(e2) { - var t2; - let n2 = ((t2 = e2 == null ? void 0 : e2.presets) !== null && t2 !== void 0 ? t2 : [_m.default]).slice().reverse().flatMap((o2) => Va(typeof o2 == "function" ? o2() : o2)), r2 = { respectDefaultRingColorOpacity: { theme: { ringColor: { DEFAULT: "#3b82f67f" } } } }, i2 = Object.keys(r2).filter((o2) => (0, km.flagEnabled)(e2, o2)).map((o2) => r2[o2]); - return [e2, ...i2, ...n2]; + function Va(e) { + var t; + let n = ((t = e == null ? void 0 : e.presets) !== null && t !== void 0 ? t : [_m.default]).slice().reverse().flatMap((o) => Va(typeof o == "function" ? o() : o)), r = { respectDefaultRingColorOpacity: { theme: { ringColor: { DEFAULT: "#3b82f67f" } } } }, i = Object.keys(r).filter((o) => (0, km.flagEnabled)(e, o)).map((o) => r[o]); + return [e, ...i, ...n]; } }); var Qa = k((bo) => { Object.defineProperty(bo, "__esModule", { value: true }); Object.defineProperty(bo, "default", { enumerable: true, get: () => Pm }); var Am = Xa($a()), Om = Xa(Ya()); - function Xa(e2) { - return e2 && e2.__esModule ? e2 : { default: e2 }; + function Xa(e) { + return e && e.__esModule ? e : { default: e }; } - function Pm(...e2) { - let [, ...t2] = (0, Om.default)(e2[0]); - return (0, Am.default)([...e2, ...t2]); + function Pm(...e) { + let [, ...t] = (0, Om.default)(e[0]); + return (0, Am.default)([...e, ...t]); } }); var Ja = k((nv, Ka) => { @@ -27751,43 +21605,43 @@ var Ja = k((nv, Ka) => { var mt; var At = null; async function Re() { - return mt || (At ? (await At, mt) : (At = Promise.resolve().then(() => (Ho(), jo)).then((e2) => e2.getYogaModule()).then((e2) => mt = e2), await At, At = null, mt)); + return mt || (At ? (await At, mt) : (At = Promise.resolve().then(() => (Ho(), jo)).then((e) => e.getYogaModule()).then((e) => mt = e), await At, At = null, mt)); } -var Ot = (e2, t2) => () => (t2 || e2((t2 = { exports: {} }).exports, t2), t2.exports); -var Ml = Ot((e2, t2) => { - t2.exports = ["em", "ex", "ch", "rem", "vh", "vw", "vmin", "vmax", "px", "mm", "cm", "in", "pt", "pc", "mozmm"]; +var Ot = (e, t) => () => (t || e((t = { exports: {} }).exports, t), t.exports); +var Ml = Ot((e, t) => { + t.exports = ["em", "ex", "ch", "rem", "vh", "vw", "vmin", "vmax", "px", "mm", "cm", "in", "pt", "pc", "mozmm"]; }); -var Nl = Ot((e2, t2) => { - t2.exports = ["deg", "grad", "rad", "turn"]; +var Nl = Ot((e, t) => { + t.exports = ["deg", "grad", "rad", "turn"]; }); -var Wl = Ot((e2, t2) => { - t2.exports = ["dpi", "dpcm", "dppx"]; +var Wl = Ot((e, t) => { + t.exports = ["dpi", "dpcm", "dppx"]; }); -var $l = Ot((e2, t2) => { - t2.exports = ["Hz", "kHz"]; +var $l = Ot((e, t) => { + t.exports = ["Hz", "kHz"]; }); -var ql = Ot((e2, t2) => { - t2.exports = ["s", "ms"]; +var ql = Ot((e, t) => { + t.exports = ["s", "ms"]; }); var zl = Ml(); var Vo = Nl(); var Yo = Wl(); var Xo = $l(); var Qo = ql(); -function En(e2) { - if (/\.\D?$/.test(e2)) throw new Error("The dot should be followed by a number"); - if (/^[+-]{2}/.test(e2)) throw new Error("Only one leading +/- is allowed"); - if (Ul(e2) > 1) throw new Error("Only one dot is allowed"); - if (/%$/.test(e2)) { - this.type = "percentage", this.value = wn(e2), this.unit = "%"; +function En(e) { + if (/\.\D?$/.test(e)) throw new Error("The dot should be followed by a number"); + if (/^[+-]{2}/.test(e)) throw new Error("Only one leading +/- is allowed"); + if (Ul(e) > 1) throw new Error("Only one dot is allowed"); + if (/%$/.test(e)) { + this.type = "percentage", this.value = wn(e), this.unit = "%"; return; } - var t2 = jl(e2); - if (!t2) { - this.type = "number", this.value = wn(e2); + var t = jl(e); + if (!t) { + this.type = "number", this.value = wn(e); return; } - this.type = Vl(t2), this.value = wn(e2.substr(0, e2.length - t2.length)), this.unit = t2; + this.type = Vl(t), this.value = wn(e.substr(0, e.length - t.length)), this.unit = t; } En.prototype.valueOf = function() { return this.value; @@ -27795,174 +21649,174 @@ En.prototype.valueOf = function() { En.prototype.toString = function() { return this.value + (this.unit || ""); }; -function Le(e2) { - return new En(e2); +function Le(e) { + return new En(e); } -function Ul(e2) { - var t2 = e2.match(/\./g); - return t2 ? t2.length : 0; +function Ul(e) { + var t = e.match(/\./g); + return t ? t.length : 0; } -function wn(e2) { - var t2 = parseFloat(e2); - if (isNaN(t2)) throw new Error("Invalid number: " + e2); - return t2; +function wn(e) { + var t = parseFloat(e); + if (isNaN(t)) throw new Error("Invalid number: " + e); + return t; } var Gl = [].concat(Vo, Xo, zl, Yo, Qo); -function jl(e2) { - var t2 = e2.match(/\D+$/), n2 = t2 && t2[0]; - if (n2 && Gl.indexOf(n2) === -1) throw new Error("Invalid unit: " + n2); - return n2; +function jl(e) { + var t = e.match(/\D+$/), n = t && t[0]; + if (n && Gl.indexOf(n) === -1) throw new Error("Invalid unit: " + n); + return n; } var Hl = Object.assign(Rr(Vo, "angle"), Rr(Xo, "frequency"), Rr(Yo, "resolution"), Rr(Qo, "time")); -function Rr(e2, t2) { - return Object.fromEntries(e2.map((n2) => [n2, t2])); +function Rr(e, t) { + return Object.fromEntries(e.map((n) => [n, t])); } -function Vl(e2) { - return Hl[e2] || "length"; +function Vl(e) { + return Hl[e] || "length"; } -function Dt(e2) { - let t2 = typeof e2; - return !(t2 === "number" || t2 === "bigint" || t2 === "string" || t2 === "boolean"); +function Dt(e) { + let t = typeof e; + return !(t === "number" || t === "bigint" || t === "string" || t === "boolean"); } -function Ko(e2) { - return /^class\s/.test(e2.toString()); +function Ko(e) { + return /^class\s/.test(e.toString()); } -function Jo(e2) { - return "dangerouslySetInnerHTML" in e2; +function Jo(e) { + return "dangerouslySetInnerHTML" in e; } -function Zo(e2) { - let t2 = typeof e2 > "u" ? [] : [].concat(e2).flat(1 / 0), n2 = []; - for (let r2 = 0; r2 < t2.length; r2++) { - let i2 = t2[r2]; - typeof i2 > "u" || typeof i2 == "boolean" || i2 === null || (typeof i2 == "number" && (i2 = String(i2)), typeof i2 == "string" && n2.length && typeof n2[n2.length - 1] == "string" ? n2[n2.length - 1] += i2 : n2.push(i2)); +function Zo(e) { + let t = typeof e > "u" ? [] : [].concat(e).flat(1 / 0), n = []; + for (let r = 0; r < t.length; r++) { + let i = t[r]; + typeof i > "u" || typeof i == "boolean" || i === null || (typeof i == "number" && (i = String(i)), typeof i == "string" && n.length && typeof n[n.length - 1] == "string" ? n[n.length - 1] += i : n.push(i)); } - return n2; + return n; } -function O(e2, t2, n2, r2, i2 = false) { - if (typeof e2 == "number") return e2; +function O(e, t, n, r, i = false) { + if (typeof e == "number") return e; try { - if (e2 = e2.trim(), /[ /\(,]/.test(e2)) return; - if (e2 === String(+e2)) return +e2; - let o2 = new Le(e2); - if (o2.type === "length") switch (o2.unit) { + if (e = e.trim(), /[ /\(,]/.test(e)) return; + if (e === String(+e)) return +e; + let o = new Le(e); + if (o.type === "length") switch (o.unit) { case "em": - return o2.value * t2; + return o.value * t; case "rem": - return o2.value * 16; + return o.value * 16; case "vw": - return ~~(o2.value * r2._viewportWidth / 100); + return ~~(o.value * r._viewportWidth / 100); case "vh": - return ~~(o2.value * r2._viewportHeight / 100); + return ~~(o.value * r._viewportHeight / 100); default: - return o2.value; + return o.value; } else { - if (o2.type === "angle") return _n(e2); - if (o2.type === "percentage" && i2) return o2.value / 100 * n2; + if (o.type === "angle") return _n(e); + if (o.type === "percentage" && i) return o.value / 100 * n; } } catch { } } -function _n(e2) { - let t2 = new Le(e2); - switch (t2.unit) { +function _n(e) { + let t = new Le(e); + switch (t.unit) { case "deg": - return t2.value; + return t.value; case "rad": - return t2.value * 180 / Math.PI; + return t.value * 180 / Math.PI; case "turn": - return t2.value * 360; + return t.value * 360; case "grad": - return 0.9 * t2.value; + return 0.9 * t.value; } } -function Pt(e2, t2) { - return [e2[0] * t2[0] + e2[2] * t2[1], e2[1] * t2[0] + e2[3] * t2[1], e2[0] * t2[2] + e2[2] * t2[3], e2[1] * t2[2] + e2[3] * t2[3], e2[0] * t2[4] + e2[2] * t2[5] + e2[4], e2[1] * t2[4] + e2[3] * t2[5] + e2[5]]; +function Pt(e, t) { + return [e[0] * t[0] + e[2] * t[1], e[1] * t[0] + e[3] * t[1], e[0] * t[2] + e[2] * t[3], e[1] * t[2] + e[3] * t[3], e[0] * t[4] + e[2] * t[5] + e[4], e[1] * t[4] + e[3] * t[5] + e[5]]; } -function ce(e2, t2, n2, r2) { - let i2 = t2[e2]; - if (typeof i2 > "u") { - if (r2 && typeof e2 < "u") throw new Error(`Invalid value for CSS property "${r2}". Allowed values: ${Object.keys(t2).map((o2) => `"${o2}"`).join(" | ")}. Received: "${e2}".`); - i2 = n2; +function ce(e, t, n, r) { + let i = t[e]; + if (typeof i > "u") { + if (r && typeof e < "u") throw new Error(`Invalid value for CSS property "${r}". Allowed values: ${Object.keys(t).map((o) => `"${o}"`).join(" | ")}. Received: "${e}".`); + i = n; } - return i2; + return i; } var Sn; var Cn; -var eu = [32, 160, 4961, 65792, 65793, 4153, 4241, 10].map((e2) => String.fromCodePoint(e2)); -function le(e2, t2, n2) { +var eu = [32, 160, 4961, 65792, 65793, 4153, 4241, 10].map((e) => String.fromCodePoint(e)); +function le(e, t, n) { if (!Sn || !Cn) { if (!(typeof Intl < "u" && "Segmenter" in Intl)) throw new Error("Intl.Segmenter does not exist, please use import a polyfill."); - Sn = new Intl.Segmenter(n2, { granularity: "word" }), Cn = new Intl.Segmenter(n2, { granularity: "grapheme" }); + Sn = new Intl.Segmenter(n, { granularity: "word" }), Cn = new Intl.Segmenter(n, { granularity: "grapheme" }); } - if (t2 === "grapheme") return [...Cn.segment(e2)].map((r2) => r2.segment); + if (t === "grapheme") return [...Cn.segment(e)].map((r) => r.segment); { - let r2 = [...Sn.segment(e2)].map((u4) => u4.segment), i2 = [], o2 = 0; - for (; o2 < r2.length; ) { - let u4 = r2[o2]; - if (u4 == "\xA0") { - let s2 = o2 === 0 ? "" : i2.pop(), a2 = o2 === r2.length - 1 ? "" : r2[o2 + 1]; - i2.push(s2 + "\xA0" + a2), o2 += 2; - } else i2.push(u4), o2++; + let r = [...Sn.segment(e)].map((u2) => u2.segment), i = [], o = 0; + for (; o < r.length; ) { + let u2 = r[o]; + if (u2 == "\xA0") { + let s = o === 0 ? "" : i.pop(), a = o === r.length - 1 ? "" : r[o + 1]; + i.push(s + "\xA0" + a), o += 2; + } else i.push(u2), o++; } - return i2; + return i; } } -function E(e2, t2, n2) { - let r2 = ""; - for (let [i2, o2] of Object.entries(t2)) typeof o2 < "u" && (r2 += ` ${i2}="${o2}"`); - return n2 ? `<${e2}${r2}>${n2}` : `<${e2}${r2}/>`; +function E(e, t, n) { + let r = ""; + for (let [i, o] of Object.entries(t)) typeof o < "u" && (r += ` ${i}="${o}"`); + return n ? `<${e}${r}>${n}` : `<${e}${r}/>`; } -function tu(e2 = 20) { - let t2 = /* @__PURE__ */ new Map(); - function n2(o2, u4) { - if (t2.size >= e2) { - let s2 = t2.keys().next().value; - t2.delete(s2); +function tu(e = 20) { + let t = /* @__PURE__ */ new Map(); + function n(o, u2) { + if (t.size >= e) { + let s = t.keys().next().value; + t.delete(s); } - t2.set(o2, u4); + t.set(o, u2); } - function r2(o2) { - if (!t2.has(o2)) return; - let s2 = t2.get(o2); - return t2.delete(o2), t2.set(o2, s2), s2; + function r(o) { + if (!t.has(o)) return; + let s = t.get(o); + return t.delete(o), t.set(o, s), s; } - function i2() { - t2.clear(); + function i() { + t.clear(); } - return { set: n2, get: r2, clear: i2 }; + return { set: n, get: r, clear: i }; } -function gt(e2) { - return e2 ? e2.split(/[, ]/).filter(Boolean).map(Number) : null; +function gt(e) { + return e ? e.split(/[, ]/).filter(Boolean).map(Number) : null; } -function Xl(e2) { - return Object.prototype.toString.call(e2); +function Xl(e) { + return Object.prototype.toString.call(e); } -function Lr(e2) { - return typeof e2 == "string"; +function Lr(e) { + return typeof e == "string"; } -function ru(e2) { - return typeof e2 == "number"; +function ru(e) { + return typeof e == "number"; } -function nu(e2) { - return Xl(e2) === "[object Undefined]"; +function nu(e) { + return Xl(e) === "[object Undefined]"; } -function iu(e2, t2) { - if (t2 === "break-all") return { words: le(e2, "grapheme"), requiredBreaks: [] }; - if (t2 === "keep-all") return { words: le(e2, "word"), requiredBreaks: [] }; - let n2 = new $557adaaeb0c7885f$exports(e2), r2 = 0, i2 = n2.nextBreak(), o2 = [], u4 = [false]; - for (; i2; ) { - let s2 = e2.slice(r2, i2.position); - o2.push(s2), i2.required ? u4.push(true) : u4.push(false), r2 = i2.position, i2 = n2.nextBreak(); +function iu(e, t) { + if (t === "break-all") return { words: le(e, "grapheme"), requiredBreaks: [] }; + if (t === "keep-all") return { words: le(e, "word"), requiredBreaks: [] }; + let n = new $557adaaeb0c7885f$exports(e), r = 0, i = n.nextBreak(), o = [], u2 = [false]; + for (; i; ) { + let s = e.slice(r, i.position); + o.push(s), i.required ? u2.push(true) : u2.push(false), r = i.position, i = n.nextBreak(); } - return { words: o2, requiredBreaks: u4 }; + return { words: o, requiredBreaks: u2 }; } -var ou = (e2) => e2.replaceAll(/([A-Z])/g, (t2, n2) => `-${n2.toLowerCase()}`); -function Mr(e2, t2 = ",") { - let n2 = [], r2 = 0, i2 = 0; - t2 = new RegExp(t2); - for (let o2 = 0; o2 < e2.length; o2++) e2[o2] === "(" ? i2++ : e2[o2] === ")" && i2--, i2 === 0 && t2.test(e2[o2]) && (n2.push(e2.slice(r2, o2).trim()), r2 = o2 + 1); - return n2.push(e2.slice(r2).trim()), n2; +var ou = (e) => e.replaceAll(/([A-Z])/g, (t, n) => `-${n.toLowerCase()}`); +function Mr(e, t = ",") { + let n = [], r = 0, i = 0; + t = new RegExp(t); + for (let o = 0; o < e.length; o++) e[o] === "(" ? i++ : e[o] === ")" && i--, i === 0 && t.test(e[o]) && (n.push(e.slice(r, o).trim()), r = o + 1); + return n.push(e.slice(r).trim()), n; } var Ql = "image/avif"; var Kl = "image/webp"; @@ -27971,176 +21825,176 @@ var Wr = "image/png"; var $r = "image/jpeg"; var qr = "image/gif"; var kn = "image/svg+xml"; -function au(e2) { - let t2 = new DataView(e2), n2 = 4, r2 = t2.byteLength; - for (; n2 < r2; ) { - let i2 = t2.getUint16(n2, false); - if (i2 > r2) throw new TypeError("Invalid JPEG"); - let o2 = t2.getUint8(i2 + 1 + n2); - if (o2 === 192 || o2 === 193 || o2 === 194) return [t2.getUint16(i2 + 7 + n2, false), t2.getUint16(i2 + 5 + n2, false)]; - n2 += i2 + 2; +function au(e) { + let t = new DataView(e), n = 4, r = t.byteLength; + for (; n < r; ) { + let i = t.getUint16(n, false); + if (i > r) throw new TypeError("Invalid JPEG"); + let o = t.getUint8(i + 1 + n); + if (o === 192 || o === 193 || o === 194) return [t.getUint16(i + 7 + n, false), t.getUint16(i + 5 + n, false)]; + n += i + 2; } throw new TypeError("Invalid JPEG"); } -function lu(e2) { - let t2 = new Uint8Array(e2.slice(6, 10)); - return [t2[0] | t2[1] << 8, t2[2] | t2[3] << 8]; +function lu(e) { + let t = new Uint8Array(e.slice(6, 10)); + return [t[0] | t[1] << 8, t[2] | t[3] << 8]; } -function fu(e2) { - let t2 = new DataView(e2); - return [t2.getUint16(18, false), t2.getUint16(22, false)]; +function fu(e) { + let t = new DataView(e); + return [t.getUint16(18, false), t.getUint16(22, false)]; } var Ae = tu(100); var Bt = /* @__PURE__ */ new Map(); var Jl = [Wr, Nr, $r, qr, kn]; -function Zl(e2) { - let t2 = "", n2 = new Uint8Array(e2); - for (let r2 = 0; r2 < n2.byteLength; r2++) t2 += String.fromCharCode(n2[r2]); - return btoa(t2); +function Zl(e) { + let t = "", n = new Uint8Array(e); + for (let r = 0; r < n.byteLength; r++) t += String.fromCharCode(n[r]); + return btoa(t); } -function ef(e2) { - let t2 = atob(e2), n2 = t2.length, r2 = new Uint8Array(n2); - for (let i2 = 0; i2 < n2; i2++) r2[i2] = t2.charCodeAt(i2); - return r2.buffer; +function ef(e) { + let t = atob(e), n = t.length, r = new Uint8Array(n); + for (let i = 0; i < n; i++) r[i] = t.charCodeAt(i); + return r.buffer; } -function uu(e2, t2) { - let n2 = t2.match(/]*>/)[0], r2 = n2.match(/viewBox=['"](.+)['"]/), i2 = r2 ? gt(r2[1]) : null, o2 = n2.match(/width=['"](\d*\.\d+|\d+)['"]/), u4 = n2.match(/height=['"](\d*\.\d+|\d+)['"]/); - if (!i2 && (!o2 || !u4)) throw new Error(`Failed to parse SVG from ${e2}: missing "viewBox"`); - let s2 = i2 ? [i2[2], i2[3]] : [+o2[1], +u4[1]], a2 = s2[0] / s2[1]; - return o2 && u4 ? [+o2[1], +u4[1]] : o2 ? [+o2[1], +o2[1] / a2] : u4 ? [+u4[1] * a2, +u4[1]] : [s2[0], s2[1]]; +function uu(e, t) { + let n = t.match(/]*>/)[0], r = n.match(/viewBox=['"](.+)['"]/), i = r ? gt(r[1]) : null, o = n.match(/width=['"](\d*\.\d+|\d+)['"]/), u2 = n.match(/height=['"](\d*\.\d+|\d+)['"]/); + if (!i && (!o || !u2)) throw new Error(`Failed to parse SVG from ${e}: missing "viewBox"`); + let s = i ? [i[2], i[3]] : [+o[1], +u2[1]], a = s[0] / s[1]; + return o && u2 ? [+o[1], +u2[1]] : o ? [+o[1], +o[1] / a] : u2 ? [+u2[1] * a, +u2[1]] : [s[0], s[1]]; } -function su(e2) { - let t2, n2 = tf(new Uint8Array(e2)); - switch (n2) { +function su(e) { + let t, n = tf(new Uint8Array(e)); + switch (n) { case Wr: case Nr: - t2 = fu(e2); + t = fu(e); break; case qr: - t2 = lu(e2); + t = lu(e); break; case $r: - t2 = au(e2); + t = au(e); break; } - if (!Jl.includes(n2)) throw new Error(`Unsupported image type: ${n2 || "unknown"}`); - return [`data:${n2};base64,${Zl(e2)}`, t2]; + if (!Jl.includes(n)) throw new Error(`Unsupported image type: ${n || "unknown"}`); + return [`data:${n};base64,${Zl(e)}`, t]; } -async function bt(e2) { - if (!e2) throw new Error("Image source is not provided."); - if (typeof e2 == "object") { - let [i2, o2] = su(e2); - return [i2, ...o2]; +async function bt(e) { + if (!e) throw new Error("Image source is not provided."); + if (typeof e == "object") { + let [i, o] = su(e); + return [i, ...o]; } - if ((e2.startsWith('"') && e2.endsWith('"') || e2.startsWith("'") && e2.endsWith("'")) && (e2 = e2.slice(1, -1)), typeof window > "u" && !e2.startsWith("http") && !e2.startsWith("data:")) throw new Error(`Image source must be an absolute URL: ${e2}`); - if (e2.startsWith("data:")) { - let i2; + if ((e.startsWith('"') && e.endsWith('"') || e.startsWith("'") && e.endsWith("'")) && (e = e.slice(1, -1)), typeof window > "u" && !e.startsWith("http") && !e.startsWith("data:")) throw new Error(`Image source must be an absolute URL: ${e}`); + if (e.startsWith("data:")) { + let i; try { - i2 = /data:(?[a-z/+]+)(;[^;=]+=[^;=]+)*?(;(?[^;,]+))?,(?.*)/g.exec(e2).groups; + i = /data:(?[a-z/+]+)(;[^;=]+=[^;=]+)*?(;(?[^;,]+))?,(?.*)/g.exec(e).groups; } catch { - return console.warn("Image data URI resolved without size:" + e2), [e2]; + return console.warn("Image data URI resolved without size:" + e), [e]; } - let { imageType: o2, encodingType: u4, dataString: s2 } = i2; - if (o2 === kn) { - let a2 = u4 === "base64" ? atob(s2) : decodeURIComponent(s2.replace(/ /g, "%20")), l3 = u4 === "base64" ? e2 : `data:image/svg+xml;base64,${btoa(a2)}`, f3 = uu(e2, a2); - return Ae.set(e2, [l3, ...f3]), [l3, ...f3]; - } else if (u4 === "base64") { - let a2, l3 = ef(s2); - switch (o2) { + let { imageType: o, encodingType: u2, dataString: s } = i; + if (o === kn) { + let a = u2 === "base64" ? atob(s) : decodeURIComponent(s.replace(/ /g, "%20")), l2 = u2 === "base64" ? e : `data:image/svg+xml;base64,${btoa(a)}`, f = uu(e, a); + return Ae.set(e, [l2, ...f]), [l2, ...f]; + } else if (u2 === "base64") { + let a, l2 = ef(s); + switch (o) { case Wr: case Nr: - a2 = fu(l3); + a = fu(l2); break; case qr: - a2 = lu(l3); + a = lu(l2); break; case $r: - a2 = au(l3); + a = au(l2); break; } - return Ae.set(e2, [e2, ...a2]), [e2, ...a2]; - } else return console.warn("Image data URI resolved without size:" + e2), Ae.set(e2, [e2]), [e2]; + return Ae.set(e, [e, ...a]), [e, ...a]; + } else return console.warn("Image data URI resolved without size:" + e), Ae.set(e, [e]), [e]; } if (!globalThis.fetch) throw new Error("`fetch` is required to be polyfilled to load images."); - if (Bt.has(e2)) return Bt.get(e2); - let t2 = Ae.get(e2); - if (t2) return t2; - let n2 = e2, r2 = fetch(n2).then((i2) => { - let o2 = i2.headers.get("content-type"); - return o2 === "image/svg+xml" || o2 === "application/svg+xml" ? i2.text() : i2.arrayBuffer(); - }).then((i2) => { - if (typeof i2 == "string") try { - let s2 = `data:image/svg+xml;base64,${btoa(i2)}`, a2 = uu(n2, i2); - return [s2, ...a2]; - } catch (s2) { - throw new Error(`Failed to parse SVG image: ${s2.message}`); + if (Bt.has(e)) return Bt.get(e); + let t = Ae.get(e); + if (t) return t; + let n = e, r = fetch(n).then((i) => { + let o = i.headers.get("content-type"); + return o === "image/svg+xml" || o === "application/svg+xml" ? i.text() : i.arrayBuffer(); + }).then((i) => { + if (typeof i == "string") try { + let s = `data:image/svg+xml;base64,${btoa(i)}`, a = uu(n, i); + return [s, ...a]; + } catch (s) { + throw new Error(`Failed to parse SVG image: ${s.message}`); } - let [o2, u4] = su(i2); - return [o2, ...u4]; - }).then((i2) => (Ae.set(n2, i2), i2)).catch((i2) => (console.error(`Can't load image ${n2}: ` + i2.message), Ae.set(n2, []), [])); - return Bt.set(n2, r2), r2; + let [o, u2] = su(i); + return [o, ...u2]; + }).then((i) => (Ae.set(n, i), i)).catch((i) => (console.error(`Can't load image ${n}: ` + i.message), Ae.set(n, []), [])); + return Bt.set(n, r), r; } -function tf(e2) { - return [255, 216, 255].every((t2, n2) => e2[n2] === t2) ? $r : [137, 80, 78, 71, 13, 10, 26, 10].every((t2, n2) => e2[n2] === t2) ? rf(e2) ? Nr : Wr : [71, 73, 70, 56].every((t2, n2) => e2[n2] === t2) ? qr : [82, 73, 70, 70, 0, 0, 0, 0, 87, 69, 66, 80].every((t2, n2) => !t2 || e2[n2] === t2) ? Kl : [60, 63, 120, 109, 108].every((t2, n2) => e2[n2] === t2) ? kn : [0, 0, 0, 0, 102, 116, 121, 112, 97, 118, 105, 102].every((t2, n2) => !t2 || e2[n2] === t2) ? Ql : null; +function tf(e) { + return [255, 216, 255].every((t, n) => e[n] === t) ? $r : [137, 80, 78, 71, 13, 10, 26, 10].every((t, n) => e[n] === t) ? rf(e) ? Nr : Wr : [71, 73, 70, 56].every((t, n) => e[n] === t) ? qr : [82, 73, 70, 70, 0, 0, 0, 0, 87, 69, 66, 80].every((t, n) => !t || e[n] === t) ? Kl : [60, 63, 120, 109, 108].every((t, n) => e[n] === t) ? kn : [0, 0, 0, 0, 102, 116, 121, 112, 97, 118, 105, 102].every((t, n) => !t || e[n] === t) ? Ql : null; } -function rf(e2) { - let t2 = new DataView(e2.buffer), n2, r2, i2 = 8, o2 = false; - for (; !o2 && n2 !== "IEND" && i2 < e2.length; ) { - r2 = t2.getUint32(i2); - let u4 = e2.subarray(i2 + 4, i2 + 8); - n2 = String.fromCharCode(...u4), o2 = n2 === "acTL", i2 += 12 + r2; +function rf(e) { + let t = new DataView(e.buffer), n, r, i = 8, o = false; + for (; !o && n !== "IEND" && i < e.length; ) { + r = t.getUint32(i); + let u2 = e.subarray(i + 4, i + 8); + n = String.fromCharCode(...u2), o = n === "acTL", i += 12 + r; } - return o2; + return o; } var Tn = { accentHeight: "accent-height", alignmentBaseline: "alignment-baseline", arabicForm: "arabic-form", baselineShift: "baseline-shift", capHeight: "cap-height", clipPath: "clip-path", clipRule: "clip-rule", colorInterpolation: "color-interpolation", colorInterpolationFilters: "color-interpolation-filters", colorProfile: "color-profile", colorRendering: "color-rendering", dominantBaseline: "dominant-baseline", enableBackground: "enable-background", fillOpacity: "fill-opacity", fillRule: "fill-rule", floodColor: "flood-color", floodOpacity: "flood-opacity", fontFamily: "font-family", fontSize: "font-size", fontSizeAdjust: "font-size-adjust", fontStretch: "font-stretch", fontStyle: "font-style", fontVariant: "font-variant", fontWeight: "font-weight", glyphName: "glyph-name", glyphOrientationHorizontal: "glyph-orientation-horizontal", glyphOrientationVertical: "glyph-orientation-vertical", horizAdvX: "horiz-adv-x", horizOriginX: "horiz-origin-x", href: "href", imageRendering: "image-rendering", letterSpacing: "letter-spacing", lightingColor: "lighting-color", markerEnd: "marker-end", markerMid: "marker-mid", markerStart: "marker-start", overlinePosition: "overline-position", overlineThickness: "overline-thickness", paintOrder: "paint-order", panose1: "panose-1", pointerEvents: "pointer-events", renderingIntent: "rendering-intent", shapeRendering: "shape-rendering", stopColor: "stop-color", stopOpacity: "stop-opacity", strikethroughPosition: "strikethrough-position", strikethroughThickness: "strikethrough-thickness", strokeDasharray: "stroke-dasharray", strokeDashoffset: "stroke-dashoffset", strokeLinecap: "stroke-linecap", strokeLinejoin: "stroke-linejoin", strokeMiterlimit: "stroke-miterlimit", strokeOpacity: "stroke-opacity", strokeWidth: "stroke-width", textAnchor: "text-anchor", textDecoration: "text-decoration", textRendering: "text-rendering", underlinePosition: "underline-position", underlineThickness: "underline-thickness", unicodeBidi: "unicode-bidi", unicodeRange: "unicode-range", unitsPerEm: "units-per-em", vAlphabetic: "v-alphabetic", vHanging: "v-hanging", vIdeographic: "v-ideographic", vMathematical: "v-mathematical", vectorEffect: "vector-effect", vertAdvY: "vert-adv-y", vertOriginX: "vert-origin-x", vertOriginY: "vert-origin-y", wordSpacing: "word-spacing", writingMode: "writing-mode", xHeight: "x-height", xlinkActuate: "xlink:actuate", xlinkArcrole: "xlink:arcrole", xlinkHref: "xlink:href", xlinkRole: "xlink:role", xlinkShow: "xlink:show", xlinkTitle: "xlink:title", xlinkType: "xlink:type", xmlBase: "xml:base", xmlLang: "xml:lang", xmlSpace: "xml:space", xmlnsXlink: "xmlns:xlink" }; var nf = /[\r\n%#()<>?[\\\]^`{|}"']/g; -function An(e2, t2) { - if (!e2) return ""; - if (Array.isArray(e2)) return e2.map((l3) => An(l3, t2)).join(""); - if (typeof e2 != "object") return String(e2); - let n2 = e2.type; - if (n2 === "text") throw new Error(" nodes are not currently supported, please convert them to "); - let { children: r2, style: i2, ...o2 } = e2.props || {}, u4 = (i2 == null ? void 0 : i2.color) || t2, s2 = `${Object.entries(o2).map(([l3, f3]) => (typeof f3 == "string" && f3.toLowerCase() === "currentcolor" && (f3 = u4), l3 === "href" && n2 === "image" ? ` ${Tn[l3] || l3}="${Ae.get(f3)[0]}"` : ` ${Tn[l3] || l3}="${f3}"`)).join("")}`, a2 = i2 ? ` style="${Object.entries(i2).map(([l3, f3]) => `${ou(l3)}:${f3}`).join(";")}"` : ""; - return `<${n2}${s2}${a2}>${An(r2, u4)}`; +function An(e, t) { + if (!e) return ""; + if (Array.isArray(e)) return e.map((l2) => An(l2, t)).join(""); + if (typeof e != "object") return String(e); + let n = e.type; + if (n === "text") throw new Error(" nodes are not currently supported, please convert them to "); + let { children: r, style: i, ...o } = e.props || {}, u2 = (i == null ? void 0 : i.color) || t, s = `${Object.entries(o).map(([l2, f]) => (typeof f == "string" && f.toLowerCase() === "currentcolor" && (f = u2), l2 === "href" && n === "image" ? ` ${Tn[l2] || l2}="${Ae.get(f)[0]}"` : ` ${Tn[l2] || l2}="${f}"`)).join("")}`, a = i ? ` style="${Object.entries(i).map(([l2, f]) => `${ou(l2)}:${f}`).join(";")}"` : ""; + return `<${n}${s}${a}>${An(r, u2)}`; } -async function cu(e2) { - let t2 = /* @__PURE__ */ new Set(), n2 = (r2) => { - if (r2 && Dt(r2)) { - if (Array.isArray(r2)) { - r2.forEach((i2) => n2(i2)); +async function cu(e) { + let t = /* @__PURE__ */ new Set(), n = (r) => { + if (r && Dt(r)) { + if (Array.isArray(r)) { + r.forEach((i) => n(i)); return; - } else typeof r2 == "object" && (r2.type === "image" ? t2.has(r2.props.href) || t2.add(r2.props.href) : r2.type === "img" && (t2.has(r2.props.src) || t2.add(r2.props.src))); - Array.isArray(r2.props.children) ? r2.props.children.map((i2) => n2(i2)) : n2(r2.props.children); + } else typeof r == "object" && (r.type === "image" ? t.has(r.props.href) || t.add(r.props.href) : r.type === "img" && (t.has(r.props.src) || t.add(r.props.src))); + Array.isArray(r.props.children) ? r.props.children.map((i) => n(i)) : n(r.props.children); } }; - return n2(e2), Promise.all(Array.from(t2).map((r2) => bt(r2))); + return n(e), Promise.all(Array.from(t).map((r) => bt(r))); } -async function du(e2, t2) { - let { viewBox: n2, viewbox: r2, width: i2, height: o2, className: u4, style: s2, children: a2, ...l3 } = e2.props || {}; - n2 ||= r2, l3.xmlns = "http://www.w3.org/2000/svg"; - let f3 = (s2 == null ? void 0 : s2.color) || t2, c3 = gt(n2), p2 = c3 ? c3[3] / c3[2] : null; - return i2 = i2 || p2 && o2 ? o2 / p2 : null, o2 = o2 || p2 && i2 ? i2 * p2 : null, l3.width = i2, l3.height = o2, n2 && (l3.viewBox = n2), `data:image/svg+xml;utf8,${` (typeof h3 == "string" && h3.toLowerCase() === "currentcolor" && (h3 = f3), ` ${Tn[d3] || d3}="${h3}"`)).join("")}>${An(a2, f3)}`.replace(nf, encodeURIComponent)}`; +async function du(e, t) { + let { viewBox: n, viewbox: r, width: i, height: o, className: u2, style: s, children: a, ...l2 } = e.props || {}; + n ||= r, l2.xmlns = "http://www.w3.org/2000/svg"; + let f = (s == null ? void 0 : s.color) || t, c2 = gt(n), p = c2 ? c2[3] / c2[2] : null; + return i = i || p && o ? o / p : null, o = o || p && i ? i * p : null, l2.width = i, l2.height = o, n && (l2.viewBox = n), `data:image/svg+xml;utf8,${` (typeof h3 == "string" && h3.toLowerCase() === "currentcolor" && (h3 = f), ` ${Tn[d2] || d2}="${h3}"`)).join("")}>${An(a, f)}`.replace(nf, encodeURIComponent)}`; } var be = "flex"; var pu = { p: { display: be, marginTop: "1em", marginBottom: "1em" }, div: { display: be }, blockquote: { display: be, marginTop: "1em", marginBottom: "1em", marginLeft: 40, marginRight: 40 }, center: { display: be, textAlign: "center" }, hr: { display: be, marginTop: "0.5em", marginBottom: "0.5em", marginLeft: "auto", marginRight: "auto", borderWidth: 1, borderStyle: "solid" }, h1: { display: be, fontSize: "2em", marginTop: "0.67em", marginBottom: "0.67em", marginLeft: 0, marginRight: 0, fontWeight: "bold" }, h2: { display: be, fontSize: "1.5em", marginTop: "0.83em", marginBottom: "0.83em", marginLeft: 0, marginRight: 0, fontWeight: "bold" }, h3: { display: be, fontSize: "1.17em", marginTop: "1em", marginBottom: "1em", marginLeft: 0, marginRight: 0, fontWeight: "bold" }, h4: { display: be, marginTop: "1.33em", marginBottom: "1.33em", marginLeft: 0, marginRight: 0, fontWeight: "bold" }, h5: { display: be, fontSize: "0.83em", marginTop: "1.67em", marginBottom: "1.67em", marginLeft: 0, marginRight: 0, fontWeight: "bold" }, h6: { display: be, fontSize: "0.67em", marginTop: "2.33em", marginBottom: "2.33em", marginLeft: 0, marginRight: 0, fontWeight: "bold" }, u: { textDecoration: "underline" }, strong: { fontWeight: "bold" }, b: { fontWeight: "bold" }, i: { fontStyle: "italic" }, em: { fontStyle: "italic" }, code: { fontFamily: "monospace" }, kbd: { fontFamily: "monospace" }, pre: { display: be, fontFamily: "monospace", whiteSpace: "pre", marginTop: "1em", marginBottom: "1em" }, mark: { backgroundColor: "yellow", color: "black" }, big: { fontSize: "larger" }, small: { fontSize: "smaller" }, s: { textDecoration: "line-through" } }; var of = /* @__PURE__ */ new Set(["color", "font", "fontFamily", "fontSize", "fontStyle", "fontWeight", "letterSpacing", "lineHeight", "textAlign", "textTransform", "textShadowOffset", "textShadowColor", "textShadowRadius", "WebkitTextStrokeWidth", "WebkitTextStrokeColor", "textDecorationLine", "textDecorationStyle", "textDecorationColor", "whiteSpace", "transform", "wordBreak", "tabSize", "opacity", "filter", "_viewportWidth", "_viewportHeight", "_inheritedClipPathId", "_inheritedMaskId", "_inheritedBackgroundClipTextPath"]); -function On(e2) { - let t2 = {}; - for (let n2 in e2) of.has(n2) && (t2[n2] = e2[n2]); - return t2; +function On(e) { + let t = {}; + for (let n in e) of.has(n) && (t[n] = e[n]); + return t; } -function sf(e2, t2) { +function sf(e, t) { try { - let n2 = new Le(e2); - switch (n2.unit) { + let n = new Le(e); + switch (n.unit) { case "px": - return { absolute: n2.value }; + return { absolute: n.value }; case "em": - return { absolute: n2.value * t2 }; + return { absolute: n.value * t }; case "rem": - return { absolute: n2.value * 16 }; + return { absolute: n.value * 16 }; case "%": - return { relative: n2.value }; + return { relative: n.value }; default: return {}; } @@ -28148,8 +22002,8 @@ function sf(e2, t2) { return {}; } } -function Pn(e2, t2, n2) { - switch (e2) { +function Pn(e, t, n) { + switch (e) { case "top": return { yRelative: 0 }; case "left": @@ -28161,1797 +22015,1771 @@ function Pn(e2, t2, n2) { case "center": return {}; default: { - let r2 = sf(e2, t2); - return r2.absolute ? { [n2 ? "xAbsolute" : "yAbsolute"]: r2.absolute } : r2.relative ? { [n2 ? "xRelative" : "yRelative"]: r2.relative } : {}; + let r = sf(e, t); + return r.absolute ? { [n ? "xAbsolute" : "yAbsolute"]: r.absolute } : r.relative ? { [n ? "xRelative" : "yRelative"]: r.relative } : {}; } } } -function Bn(e2, t2) { - if (typeof e2 == "number") return { xAbsolute: e2 }; - let n2; +function Bn(e, t) { + if (typeof e == "number") return { xAbsolute: e }; + let n; try { - n2 = (0, import_postcss_value_parser.default)(e2).nodes.filter((r2) => r2.type === "word").map((r2) => r2.value); + n = (0, import_postcss_value_parser.default)(e).nodes.filter((r) => r.type === "word").map((r) => r.value); } catch { return {}; } - return n2.length === 1 ? Pn(n2[0], t2, true) : n2.length === 2 ? ((n2[0] === "top" || n2[0] === "bottom" || n2[1] === "left" || n2[1] === "right") && n2.reverse(), { ...Pn(n2[0], t2, true), ...Pn(n2[1], t2, false) }) : {}; + return n.length === 1 ? Pn(n[0], t, true) : n.length === 2 ? ((n[0] === "top" || n[0] === "bottom" || n[1] === "left" || n[1] === "right") && n.reverse(), { ...Pn(n[0], t, true), ...Pn(n[1], t, false) }) : {}; } -function It(e2, t2) { - let n2 = (0, import_css_to_react_native2.getPropertyName)(`mask-${t2}`); - return e2[n2] || e2[`WebkitM${n2.substring(1)}`]; +function It(e, t) { + let n = (0, import_css_to_react_native2.getPropertyName)(`mask-${t}`); + return e[n] || e[`WebkitM${n.substring(1)}`]; } -function hu(e2) { - let t2 = e2.maskImage || e2.WebkitMaskImage, n2 = { position: It(e2, "position") || "0% 0%", size: It(e2, "size") || "100% 100%", repeat: It(e2, "repeat") || "repeat", origin: It(e2, "origin") || "border-box", clip: It(e2, "origin") || "border-box" }; - return Mr(t2).filter((i2) => i2 && i2 !== "none").reverse().map((i2) => ({ image: i2, ...n2 })); +function hu(e) { + let t = e.maskImage || e.WebkitMaskImage, n = { position: It(e, "position") || "0% 0%", size: It(e, "size") || "100% 100%", repeat: It(e, "repeat") || "repeat", origin: It(e, "origin") || "border-box", clip: It(e, "origin") || "border-box" }; + return Mr(t).filter((i) => i && i !== "none").reverse().map((i) => ({ image: i, ...n })); } var pf = /* @__PURE__ */ new Set(["flex", "flexGrow", "flexShrink", "flexBasis", "fontWeight", "lineHeight", "opacity", "scale", "scaleX", "scaleY"]); var hf = /* @__PURE__ */ new Set(["lineHeight"]); -function mf(e2, t2, n2, r2) { - return e2 === "textDecoration" && !n2.includes(t2.textDecorationColor) && (t2.textDecorationColor = r2), t2; +function mf(e, t, n, r) { + return e === "textDecoration" && !n.includes(t.textDecorationColor) && (t.textDecorationColor = r), t; } -function tt(e2, t2) { - let n2 = Number(t2); - return isNaN(n2) ? t2 : pf.has(e2) ? hf.has(e2) ? n2 : String(t2) : n2 + "px"; +function tt(e, t) { + let n = Number(t); + return isNaN(n) ? t : pf.has(e) ? hf.has(e) ? n : String(t) : n + "px"; } -function Df(e2, t2, n2) { - if (e2 === "lineHeight") return { lineHeight: tt(e2, t2) }; - if (e2 === "fontFamily") return { fontFamily: t2.split(",").map((r2) => r2.trim().replace(/(^['"])|(['"]$)/g, "").toLocaleLowerCase()) }; - if (e2 === "borderRadius") { - if (typeof t2 != "string" || !t2.includes("/")) return; - let [r2, i2] = t2.split("/"), o2 = (0, import_css_to_react_native.getStylesForProperty)(e2, r2, true), u4 = (0, import_css_to_react_native.getStylesForProperty)(e2, i2, true); - for (let s2 in o2) u4[s2] = tt(e2, o2[s2]) + " " + tt(e2, u4[s2]); - return u4; +function Df(e, t, n) { + if (e === "lineHeight") return { lineHeight: tt(e, t) }; + if (e === "fontFamily") return { fontFamily: t.split(",").map((r) => r.trim().replace(/(^['"])|(['"]$)/g, "").toLocaleLowerCase()) }; + if (e === "borderRadius") { + if (typeof t != "string" || !t.includes("/")) return; + let [r, i] = t.split("/"), o = (0, import_css_to_react_native.getStylesForProperty)(e, r, true), u2 = (0, import_css_to_react_native.getStylesForProperty)(e, i, true); + for (let s in o) u2[s] = tt(e, o[s]) + " " + tt(e, u2[s]); + return u2; } - if (/^border(Top|Right|Bottom|Left)?$/.test(e2)) { - let r2 = (0, import_css_to_react_native.getStylesForProperty)("border", t2, true); - r2.borderWidth === 1 && !String(t2).includes("1px") && (r2.borderWidth = 3), r2.borderColor === "black" && !String(t2).includes("black") && (r2.borderColor = n2); - let i2 = { Width: tt(e2 + "Width", r2.borderWidth), Style: ce(r2.borderStyle, { solid: "solid", dashed: "dashed" }, "solid", e2 + "Style"), Color: r2.borderColor }, o2 = {}; - for (let u4 of e2 === "border" ? ["Top", "Right", "Bottom", "Left"] : [e2.slice(6)]) for (let s2 in i2) o2["border" + u4 + s2] = i2[s2]; - return o2; + if (/^border(Top|Right|Bottom|Left)?$/.test(e)) { + let r = (0, import_css_to_react_native.getStylesForProperty)("border", t, true); + r.borderWidth === 1 && !String(t).includes("1px") && (r.borderWidth = 3), r.borderColor === "black" && !String(t).includes("black") && (r.borderColor = n); + let i = { Width: tt(e + "Width", r.borderWidth), Style: ce(r.borderStyle, { solid: "solid", dashed: "dashed" }, "solid", e + "Style"), Color: r.borderColor }, o = {}; + for (let u2 of e === "border" ? ["Top", "Right", "Bottom", "Left"] : [e.slice(6)]) for (let s in i) o["border" + u2 + s] = i[s]; + return o; } - if (e2 === "boxShadow") { - if (!t2) throw new Error('Invalid `boxShadow` value: "' + t2 + '".'); - return { [e2]: typeof t2 == "string" ? (0, import_css_box_shadow.parse)(t2) : t2 }; + if (e === "boxShadow") { + if (!t) throw new Error('Invalid `boxShadow` value: "' + t + '".'); + return { [e]: typeof t == "string" ? (0, import_css_box_shadow.parse)(t) : t }; } - if (e2 === "transform") { - if (typeof t2 != "string") throw new Error("Invalid `transform` value."); - let r2 = {}, i2 = t2.replace(/(-?[\d.]+%)/g, (u4, s2) => { - let a2 = ~~(Math.random() * 1e9); - return r2[a2] = s2, a2 + "px"; - }), o2 = (0, import_css_to_react_native.getStylesForProperty)("transform", i2, true); - for (let u4 of o2.transform) for (let s2 in u4) r2[u4[s2]] && (u4[s2] = r2[u4[s2]]); - return o2; + if (e === "transform") { + if (typeof t != "string") throw new Error("Invalid `transform` value."); + let r = {}, i = t.replace(/(-?[\d.]+%)/g, (u2, s) => { + let a = ~~(Math.random() * 1e9); + return r[a] = s, a + "px"; + }), o = (0, import_css_to_react_native.getStylesForProperty)("transform", i, true); + for (let u2 of o.transform) for (let s in u2) r[u2[s]] && (u2[s] = r[u2[s]]); + return o; } - if (e2 === "background") return t2 = t2.toString().trim(), /^(linear-gradient|radial-gradient|url|repeating-linear-gradient)\(/.test(t2) ? (0, import_css_to_react_native.getStylesForProperty)("backgroundImage", t2, true) : (0, import_css_to_react_native.getStylesForProperty)("background", t2, true); - if (e2 === "textShadow") { - t2 = t2.toString().trim(); - let r2 = {}, i2 = Mr(t2); - for (let o2 of i2) { - let u4 = (0, import_css_to_react_native.getStylesForProperty)("textShadow", o2, true); - for (let s2 in u4) r2[s2] ? r2[s2].push(u4[s2]) : r2[s2] = [u4[s2]]; + if (e === "background") return t = t.toString().trim(), /^(linear-gradient|radial-gradient|url|repeating-linear-gradient)\(/.test(t) ? (0, import_css_to_react_native.getStylesForProperty)("backgroundImage", t, true) : (0, import_css_to_react_native.getStylesForProperty)("background", t, true); + if (e === "textShadow") { + t = t.toString().trim(); + let r = {}, i = Mr(t); + for (let o of i) { + let u2 = (0, import_css_to_react_native.getStylesForProperty)("textShadow", o, true); + for (let s in u2) r[s] ? r[s].push(u2[s]) : r[s] = [u2[s]]; } - return r2; + return r; } - if (e2 === "WebkitTextStroke") { - t2 = t2.toString().trim(); - let r2 = t2.split(" "); - if (r2.length !== 2) throw new Error("Invalid `WebkitTextStroke` value."); - return { WebkitTextStrokeWidth: tt(e2, r2[0]), WebkitTextStrokeColor: tt(e2, r2[1]) }; + if (e === "WebkitTextStroke") { + t = t.toString().trim(); + let r = t.split(" "); + if (r.length !== 2) throw new Error("Invalid `WebkitTextStroke` value."); + return { WebkitTextStrokeWidth: tt(e, r[0]), WebkitTextStrokeColor: tt(e, r[1]) }; } } -function mu(e2) { - return e2 === "transform" ? " Only absolute lengths such as `10px` are supported." : ""; +function mu(e) { + return e === "transform" ? " Only absolute lengths such as `10px` are supported." : ""; } var Du = /rgb\((\d+)\s+(\d+)\s+(\d+)\s*\/\s*([\.\d]+)\)/; -function bu(e2) { - if (typeof e2 == "string" && Du.test(e2.trim())) return e2.trim().replace(Du, (t2, n2, r2, i2, o2) => `rgba(${n2}, ${r2}, ${i2}, ${o2})`); - if (typeof e2 == "object" && e2 !== null) { - for (let t2 in e2) e2[t2] = bu(e2[t2]); - return e2; +function bu(e) { + if (typeof e == "string" && Du.test(e.trim())) return e.trim().replace(Du, (t, n, r, i, o) => `rgba(${n}, ${r}, ${i}, ${o})`); + if (typeof e == "object" && e !== null) { + for (let t in e) e[t] = bu(e[t]); + return e; } - return e2; + return e; } -function zr(e2, t2) { - let n2 = {}; - if (e2) { - let i2 = bf(e2.color, t2.color); - n2.color = i2; - for (let o2 in e2) { - if (o2.startsWith("_")) { - n2[o2] = e2[o2]; +function zr(e, t) { + let n = {}; + if (e) { + let i = bf(e.color, t.color); + n.color = i; + for (let o in e) { + if (o.startsWith("_")) { + n[o] = e[o]; continue; } - if (o2 === "color") continue; - let u4 = (0, import_css_to_react_native.getPropertyName)(o2), s2 = yf(e2[o2], i2); + if (o === "color") continue; + let u2 = (0, import_css_to_react_native.getPropertyName)(o), s = yf(e[o], i); try { - let a2 = Df(u4, s2, i2) || mf(u4, (0, import_css_to_react_native.getStylesForProperty)(u4, tt(u4, s2), true), s2, i2); - Object.assign(n2, a2); - } catch (a2) { - throw new Error(a2.message + (a2.message.includes(s2) ? ` - ` + mu(u4) : ` - in CSS rule \`${u4}: ${s2}\`.${mu(u4)}`)); + let a = Df(u2, s, i) || mf(u2, (0, import_css_to_react_native.getStylesForProperty)(u2, tt(u2, s), true), s, i); + Object.assign(n, a); + } catch (a) { + throw new Error(a.message + (a.message.includes(s) ? ` + ` + mu(u2) : ` + in CSS rule \`${u2}: ${s}\`.${mu(u2)}`)); } } } - if (n2.backgroundImage) { - let { backgrounds: i2 } = (0, import_css_background_parser.parseElementStyle)(n2); - n2.backgroundImage = i2; + if (n.backgroundImage) { + let { backgrounds: i } = (0, import_css_background_parser.parseElementStyle)(n); + n.backgroundImage = i; } - (n2.maskImage || n2.WebkitMaskImage) && (n2.maskImage = hu(n2)); - let r2 = gf(n2.fontSize, t2.fontSize); - typeof n2.fontSize < "u" && (n2.fontSize = r2), n2.transformOrigin && (n2.transformOrigin = Bn(n2.transformOrigin, r2)); - for (let i2 in n2) { - let o2 = n2[i2]; - if (i2 === "lineHeight") typeof o2 == "string" && o2 !== "normal" && (o2 = n2[i2] = O(o2, r2, r2, t2, true) / r2); + (n.maskImage || n.WebkitMaskImage) && (n.maskImage = hu(n)); + let r = gf(n.fontSize, t.fontSize); + typeof n.fontSize < "u" && (n.fontSize = r), n.transformOrigin && (n.transformOrigin = Bn(n.transformOrigin, r)); + for (let i in n) { + let o = n[i]; + if (i === "lineHeight") typeof o == "string" && o !== "normal" && (o = n[i] = O(o, r, r, t, true) / r); else { - if (typeof o2 == "string") { - let u4 = O(o2, r2, r2, t2); - typeof u4 < "u" && (n2[i2] = u4), o2 = n2[i2]; + if (typeof o == "string") { + let u2 = O(o, r, r, t); + typeof u2 < "u" && (n[i] = u2), o = n[i]; } - if (typeof o2 == "string" || typeof o2 == "object") { - let u4 = bu(o2); - u4 && (n2[i2] = u4), o2 = n2[i2]; + if (typeof o == "string" || typeof o == "object") { + let u2 = bu(o); + u2 && (n[i] = u2), o = n[i]; } } - if (i2 === "opacity" && typeof o2 == "number" && (n2.opacity = o2 * t2.opacity), i2 === "transform") { - let u4 = o2; - for (let s2 of u4) { - let a2 = Object.keys(s2)[0], l3 = s2[a2], f3 = typeof l3 == "string" ? O(l3, r2, r2, t2) ?? l3 : l3; - s2[a2] = f3; + if (i === "opacity" && typeof o == "number" && (n.opacity = o * t.opacity), i === "transform") { + let u2 = o; + for (let s of u2) { + let a = Object.keys(s)[0], l2 = s[a], f = typeof l2 == "string" ? O(l2, r, r, t) ?? l2 : l2; + s[a] = f; } } - if (i2 === "textShadowRadius") { - let u4 = o2; - n2.textShadowRadius = u4.map((s2) => O(s2, r2, 0, t2, false)); + if (i === "textShadowRadius") { + let u2 = o; + n.textShadowRadius = u2.map((s) => O(s, r, 0, t, false)); } - if (i2 === "textShadowOffset") { - let u4 = o2; - n2.textShadowOffset = u4.map(({ height: s2, width: a2 }) => ({ height: O(s2, r2, 0, t2, false), width: O(a2, r2, 0, t2, false) })); + if (i === "textShadowOffset") { + let u2 = o; + n.textShadowOffset = u2.map(({ height: s, width: a }) => ({ height: O(s, r, 0, t, false), width: O(a, r, 0, t, false) })); } } - return n2; + return n; } -function gf(e2, t2) { - if (typeof e2 == "number") return e2; +function gf(e, t) { + if (typeof e == "number") return e; try { - let n2 = new Le(e2); - switch (n2.unit) { + let n = new Le(e); + switch (n.unit) { case "em": - return n2.value * t2; + return n.value * t; case "rem": - return n2.value * 16; + return n.value * 16; } } catch { - return t2; + return t; } } -function gu(e2) { - if (e2.startsWith("hsl")) { - let t2 = index_esm_default(e2), [n2, r2, i2] = t2.values; - return `hsl(${[n2, `${r2}%`, `${i2}%`].concat(t2.alpha === 1 ? [] : [t2.alpha]).join(",")})`; +function gu(e) { + if (e.startsWith("hsl")) { + let t = index_esm_default(e), [n, r, i] = t.values; + return `hsl(${[n, `${r}%`, `${i}%`].concat(t.alpha === 1 ? [] : [t.alpha]).join(",")})`; } - return e2; + return e; } -function bf(e2, t2) { - return e2 && e2.toLowerCase() !== "currentcolor" ? gu(e2) : gu(t2); +function bf(e, t) { + return e && e.toLowerCase() !== "currentcolor" ? gu(e) : gu(t); } -function vf(e2, t2) { - return e2.replace(/currentcolor/gi, t2); +function vf(e, t) { + return e.replace(/currentcolor/gi, t); } -function yf(e2, t2) { - return Lr(e2) && (e2 = vf(e2, t2)), e2; +function yf(e, t) { + return Lr(e) && (e = vf(e, t)), e; } -async function In(e2, t2, n2, r2, i2) { - let o2 = await Re(), u4 = { ...n2, ...zr(pu[t2], n2), ...zr(r2, n2) }; - if (t2 === "img") { - let [s2, a2, l3] = await bt(i2.src); - if (a2 === void 0 && l3 === void 0) { - if (i2.width === void 0 || i2.height === void 0) throw new Error("Image size cannot be determined. Please provide the width and height of the image."); - a2 = parseInt(i2.width), l3 = parseInt(i2.height); +async function In(e, t, n, r, i) { + let o = await Re(), u2 = { ...n, ...zr(pu[t], n), ...zr(r, n) }; + if (t === "img") { + let [s, a, l2] = await bt(i.src); + if (a === void 0 && l2 === void 0) { + if (i.width === void 0 || i.height === void 0) throw new Error("Image size cannot be determined. Please provide the width and height of the image."); + a = parseInt(i.width), l2 = parseInt(i.height); } - let f3 = l3 / a2, c3 = (u4.borderLeftWidth || 0) + (u4.borderRightWidth || 0) + (u4.paddingLeft || 0) + (u4.paddingRight || 0), p2 = (u4.borderTopWidth || 0) + (u4.borderBottomWidth || 0) + (u4.paddingTop || 0) + (u4.paddingBottom || 0), d3 = u4.width || i2.width, h3 = u4.height || i2.height, m3 = typeof d3 == "number" && typeof h3 == "number"; - m3 && (d3 -= c3, h3 -= p2), d3 === void 0 && h3 === void 0 ? (d3 = "100%", e2.setAspectRatio(1 / f3)) : d3 === void 0 ? typeof h3 == "number" ? d3 = h3 / f3 : e2.setAspectRatio(1 / f3) : h3 === void 0 && (typeof d3 == "number" ? h3 = d3 * f3 : e2.setAspectRatio(1 / f3)), u4.width = m3 ? d3 + c3 : d3, u4.height = m3 ? h3 + p2 : h3, u4.__src = s2; + let f = l2 / a, c2 = (u2.borderLeftWidth || 0) + (u2.borderRightWidth || 0) + (u2.paddingLeft || 0) + (u2.paddingRight || 0), p = (u2.borderTopWidth || 0) + (u2.borderBottomWidth || 0) + (u2.paddingTop || 0) + (u2.paddingBottom || 0), d2 = u2.width || i.width, h3 = u2.height || i.height, m2 = typeof d2 == "number" && typeof h3 == "number"; + m2 && (d2 -= c2, h3 -= p), d2 === void 0 && h3 === void 0 ? (d2 = "100%", e.setAspectRatio(1 / f)) : d2 === void 0 ? typeof h3 == "number" ? d2 = h3 / f : e.setAspectRatio(1 / f) : h3 === void 0 && (typeof d2 == "number" ? h3 = d2 * f : e.setAspectRatio(1 / f)), u2.width = m2 ? d2 + c2 : d2, u2.height = m2 ? h3 + p : h3, u2.__src = s; } - if (t2 === "svg") { - let s2 = i2.viewBox || i2.viewbox, a2 = gt(s2), l3 = a2 ? a2[3] / a2[2] : null, { width: f3, height: c3 } = i2; - typeof f3 > "u" && c3 ? l3 == null ? f3 = 0 : typeof c3 == "string" && c3.endsWith("%") ? f3 = parseInt(c3) / l3 + "%" : (c3 = O(c3, n2.fontSize, 1, n2), f3 = c3 / l3) : typeof c3 > "u" && f3 ? l3 == null ? f3 = 0 : typeof f3 == "string" && f3.endsWith("%") ? c3 = parseInt(f3) * l3 + "%" : (f3 = O(f3, n2.fontSize, 1, n2), c3 = f3 * l3) : (typeof f3 < "u" && (f3 = O(f3, n2.fontSize, 1, n2) || f3), typeof c3 < "u" && (c3 = O(c3, n2.fontSize, 1, n2) || c3), f3 ||= a2 == null ? void 0 : a2[2], c3 ||= a2 == null ? void 0 : a2[3]), !u4.width && f3 && (u4.width = f3), !u4.height && c3 && (u4.height = c3); + if (t === "svg") { + let s = i.viewBox || i.viewbox, a = gt(s), l2 = a ? a[3] / a[2] : null, { width: f, height: c2 } = i; + typeof f > "u" && c2 ? l2 == null ? f = 0 : typeof c2 == "string" && c2.endsWith("%") ? f = parseInt(c2) / l2 + "%" : (c2 = O(c2, n.fontSize, 1, n), f = c2 / l2) : typeof c2 > "u" && f ? l2 == null ? f = 0 : typeof f == "string" && f.endsWith("%") ? c2 = parseInt(f) * l2 + "%" : (f = O(f, n.fontSize, 1, n), c2 = f * l2) : (typeof f < "u" && (f = O(f, n.fontSize, 1, n) || f), typeof c2 < "u" && (c2 = O(c2, n.fontSize, 1, n) || c2), f ||= a == null ? void 0 : a[2], c2 ||= a == null ? void 0 : a[3]), !u2.width && f && (u2.width = f), !u2.height && c2 && (u2.height = c2); } - return e2.setDisplay(ce(u4.display, { flex: o2.DISPLAY_FLEX, block: o2.DISPLAY_FLEX, none: o2.DISPLAY_NONE, "-webkit-box": o2.DISPLAY_FLEX }, o2.DISPLAY_FLEX, "display")), e2.setAlignContent(ce(u4.alignContent, { stretch: o2.ALIGN_STRETCH, center: o2.ALIGN_CENTER, "flex-start": o2.ALIGN_FLEX_START, "flex-end": o2.ALIGN_FLEX_END, "space-between": o2.ALIGN_SPACE_BETWEEN, "space-around": o2.ALIGN_SPACE_AROUND, baseline: o2.ALIGN_BASELINE, normal: o2.ALIGN_AUTO }, o2.ALIGN_AUTO, "alignContent")), e2.setAlignItems(ce(u4.alignItems, { stretch: o2.ALIGN_STRETCH, center: o2.ALIGN_CENTER, "flex-start": o2.ALIGN_FLEX_START, "flex-end": o2.ALIGN_FLEX_END, baseline: o2.ALIGN_BASELINE, normal: o2.ALIGN_AUTO }, o2.ALIGN_STRETCH, "alignItems")), e2.setAlignSelf(ce(u4.alignSelf, { stretch: o2.ALIGN_STRETCH, center: o2.ALIGN_CENTER, "flex-start": o2.ALIGN_FLEX_START, "flex-end": o2.ALIGN_FLEX_END, baseline: o2.ALIGN_BASELINE, normal: o2.ALIGN_AUTO }, o2.ALIGN_AUTO, "alignSelf")), e2.setJustifyContent(ce(u4.justifyContent, { center: o2.JUSTIFY_CENTER, "flex-start": o2.JUSTIFY_FLEX_START, "flex-end": o2.JUSTIFY_FLEX_END, "space-between": o2.JUSTIFY_SPACE_BETWEEN, "space-around": o2.JUSTIFY_SPACE_AROUND }, o2.JUSTIFY_FLEX_START, "justifyContent")), e2.setFlexDirection(ce(u4.flexDirection, { row: o2.FLEX_DIRECTION_ROW, column: o2.FLEX_DIRECTION_COLUMN, "row-reverse": o2.FLEX_DIRECTION_ROW_REVERSE, "column-reverse": o2.FLEX_DIRECTION_COLUMN_REVERSE }, o2.FLEX_DIRECTION_ROW, "flexDirection")), e2.setFlexWrap(ce(u4.flexWrap, { wrap: o2.WRAP_WRAP, nowrap: o2.WRAP_NO_WRAP, "wrap-reverse": o2.WRAP_WRAP_REVERSE }, o2.WRAP_NO_WRAP, "flexWrap")), typeof u4.gap < "u" && e2.setGap(o2.GUTTER_ALL, u4.gap), typeof u4.rowGap < "u" && e2.setGap(o2.GUTTER_ROW, u4.rowGap), typeof u4.columnGap < "u" && e2.setGap(o2.GUTTER_COLUMN, u4.columnGap), typeof u4.flexBasis < "u" && e2.setFlexBasis(u4.flexBasis), e2.setFlexGrow(typeof u4.flexGrow > "u" ? 0 : u4.flexGrow), e2.setFlexShrink(typeof u4.flexShrink > "u" ? 0 : u4.flexShrink), typeof u4.maxHeight < "u" && e2.setMaxHeight(u4.maxHeight), typeof u4.maxWidth < "u" && e2.setMaxWidth(u4.maxWidth), typeof u4.minHeight < "u" && e2.setMinHeight(u4.minHeight), typeof u4.minWidth < "u" && e2.setMinWidth(u4.minWidth), e2.setOverflow(ce(u4.overflow, { visible: o2.OVERFLOW_VISIBLE, hidden: o2.OVERFLOW_HIDDEN }, o2.OVERFLOW_VISIBLE, "overflow")), e2.setMargin(o2.EDGE_TOP, u4.marginTop || 0), e2.setMargin(o2.EDGE_BOTTOM, u4.marginBottom || 0), e2.setMargin(o2.EDGE_LEFT, u4.marginLeft || 0), e2.setMargin(o2.EDGE_RIGHT, u4.marginRight || 0), e2.setBorder(o2.EDGE_TOP, u4.borderTopWidth || 0), e2.setBorder(o2.EDGE_BOTTOM, u4.borderBottomWidth || 0), e2.setBorder(o2.EDGE_LEFT, u4.borderLeftWidth || 0), e2.setBorder(o2.EDGE_RIGHT, u4.borderRightWidth || 0), e2.setPadding(o2.EDGE_TOP, u4.paddingTop || 0), e2.setPadding(o2.EDGE_BOTTOM, u4.paddingBottom || 0), e2.setPadding(o2.EDGE_LEFT, u4.paddingLeft || 0), e2.setPadding(o2.EDGE_RIGHT, u4.paddingRight || 0), e2.setPositionType(ce(u4.position, { absolute: o2.POSITION_TYPE_ABSOLUTE, relative: o2.POSITION_TYPE_RELATIVE }, o2.POSITION_TYPE_RELATIVE, "position")), typeof u4.top < "u" && e2.setPosition(o2.EDGE_TOP, u4.top), typeof u4.bottom < "u" && e2.setPosition(o2.EDGE_BOTTOM, u4.bottom), typeof u4.left < "u" && e2.setPosition(o2.EDGE_LEFT, u4.left), typeof u4.right < "u" && e2.setPosition(o2.EDGE_RIGHT, u4.right), typeof u4.height < "u" ? e2.setHeight(u4.height) : e2.setHeightAuto(), typeof u4.width < "u" ? e2.setWidth(u4.width) : e2.setWidthAuto(), [u4, On(u4)]; + return e.setDisplay(ce(u2.display, { flex: o.DISPLAY_FLEX, block: o.DISPLAY_FLEX, none: o.DISPLAY_NONE, "-webkit-box": o.DISPLAY_FLEX }, o.DISPLAY_FLEX, "display")), e.setAlignContent(ce(u2.alignContent, { stretch: o.ALIGN_STRETCH, center: o.ALIGN_CENTER, "flex-start": o.ALIGN_FLEX_START, "flex-end": o.ALIGN_FLEX_END, "space-between": o.ALIGN_SPACE_BETWEEN, "space-around": o.ALIGN_SPACE_AROUND, baseline: o.ALIGN_BASELINE, normal: o.ALIGN_AUTO }, o.ALIGN_AUTO, "alignContent")), e.setAlignItems(ce(u2.alignItems, { stretch: o.ALIGN_STRETCH, center: o.ALIGN_CENTER, "flex-start": o.ALIGN_FLEX_START, "flex-end": o.ALIGN_FLEX_END, baseline: o.ALIGN_BASELINE, normal: o.ALIGN_AUTO }, o.ALIGN_STRETCH, "alignItems")), e.setAlignSelf(ce(u2.alignSelf, { stretch: o.ALIGN_STRETCH, center: o.ALIGN_CENTER, "flex-start": o.ALIGN_FLEX_START, "flex-end": o.ALIGN_FLEX_END, baseline: o.ALIGN_BASELINE, normal: o.ALIGN_AUTO }, o.ALIGN_AUTO, "alignSelf")), e.setJustifyContent(ce(u2.justifyContent, { center: o.JUSTIFY_CENTER, "flex-start": o.JUSTIFY_FLEX_START, "flex-end": o.JUSTIFY_FLEX_END, "space-between": o.JUSTIFY_SPACE_BETWEEN, "space-around": o.JUSTIFY_SPACE_AROUND }, o.JUSTIFY_FLEX_START, "justifyContent")), e.setFlexDirection(ce(u2.flexDirection, { row: o.FLEX_DIRECTION_ROW, column: o.FLEX_DIRECTION_COLUMN, "row-reverse": o.FLEX_DIRECTION_ROW_REVERSE, "column-reverse": o.FLEX_DIRECTION_COLUMN_REVERSE }, o.FLEX_DIRECTION_ROW, "flexDirection")), e.setFlexWrap(ce(u2.flexWrap, { wrap: o.WRAP_WRAP, nowrap: o.WRAP_NO_WRAP, "wrap-reverse": o.WRAP_WRAP_REVERSE }, o.WRAP_NO_WRAP, "flexWrap")), typeof u2.gap < "u" && e.setGap(o.GUTTER_ALL, u2.gap), typeof u2.rowGap < "u" && e.setGap(o.GUTTER_ROW, u2.rowGap), typeof u2.columnGap < "u" && e.setGap(o.GUTTER_COLUMN, u2.columnGap), typeof u2.flexBasis < "u" && e.setFlexBasis(u2.flexBasis), e.setFlexGrow(typeof u2.flexGrow > "u" ? 0 : u2.flexGrow), e.setFlexShrink(typeof u2.flexShrink > "u" ? 0 : u2.flexShrink), typeof u2.maxHeight < "u" && e.setMaxHeight(u2.maxHeight), typeof u2.maxWidth < "u" && e.setMaxWidth(u2.maxWidth), typeof u2.minHeight < "u" && e.setMinHeight(u2.minHeight), typeof u2.minWidth < "u" && e.setMinWidth(u2.minWidth), e.setOverflow(ce(u2.overflow, { visible: o.OVERFLOW_VISIBLE, hidden: o.OVERFLOW_HIDDEN }, o.OVERFLOW_VISIBLE, "overflow")), e.setMargin(o.EDGE_TOP, u2.marginTop || 0), e.setMargin(o.EDGE_BOTTOM, u2.marginBottom || 0), e.setMargin(o.EDGE_LEFT, u2.marginLeft || 0), e.setMargin(o.EDGE_RIGHT, u2.marginRight || 0), e.setBorder(o.EDGE_TOP, u2.borderTopWidth || 0), e.setBorder(o.EDGE_BOTTOM, u2.borderBottomWidth || 0), e.setBorder(o.EDGE_LEFT, u2.borderLeftWidth || 0), e.setBorder(o.EDGE_RIGHT, u2.borderRightWidth || 0), e.setPadding(o.EDGE_TOP, u2.paddingTop || 0), e.setPadding(o.EDGE_BOTTOM, u2.paddingBottom || 0), e.setPadding(o.EDGE_LEFT, u2.paddingLeft || 0), e.setPadding(o.EDGE_RIGHT, u2.paddingRight || 0), e.setPositionType(ce(u2.position, { absolute: o.POSITION_TYPE_ABSOLUTE, relative: o.POSITION_TYPE_RELATIVE }, o.POSITION_TYPE_RELATIVE, "position")), typeof u2.top < "u" && e.setPosition(o.EDGE_TOP, u2.top), typeof u2.bottom < "u" && e.setPosition(o.EDGE_BOTTOM, u2.bottom), typeof u2.left < "u" && e.setPosition(o.EDGE_LEFT, u2.left), typeof u2.right < "u" && e.setPosition(o.EDGE_RIGHT, u2.right), typeof u2.height < "u" ? e.setHeight(u2.height) : e.setHeightAuto(), typeof u2.width < "u" ? e.setWidth(u2.width) : e.setWidthAuto(), [u2, On(u2)]; } var vu = [1, 0, 0, 1, 0, 0]; -function xf(e2, t2, n2) { - let r2 = [...vu]; - for (let i2 of e2) { - let o2 = Object.keys(i2)[0], u4 = i2[o2]; - if (typeof u4 == "string") if (o2 === "translateX") u4 = parseFloat(u4) / 100 * t2, i2[o2] = u4; - else if (o2 === "translateY") u4 = parseFloat(u4) / 100 * n2, i2[o2] = u4; - else throw new Error(`Invalid transform: "${o2}: ${u4}".`); - let s2 = u4, a2 = [...vu]; - switch (o2) { +function xf(e, t, n) { + let r = [...vu]; + for (let i of e) { + let o = Object.keys(i)[0], u2 = i[o]; + if (typeof u2 == "string") if (o === "translateX") u2 = parseFloat(u2) / 100 * t, i[o] = u2; + else if (o === "translateY") u2 = parseFloat(u2) / 100 * n, i[o] = u2; + else throw new Error(`Invalid transform: "${o}: ${u2}".`); + let s = u2, a = [...vu]; + switch (o) { case "translateX": - a2[4] = s2; + a[4] = s; break; case "translateY": - a2[5] = s2; + a[5] = s; break; case "scale": - a2[0] = s2, a2[3] = s2; + a[0] = s, a[3] = s; break; case "scaleX": - a2[0] = s2; + a[0] = s; break; case "scaleY": - a2[3] = s2; + a[3] = s; break; case "rotate": { - let l3 = s2 * Math.PI / 180, f3 = Math.cos(l3), c3 = Math.sin(l3); - a2[0] = f3, a2[1] = c3, a2[2] = -c3, a2[3] = f3; + let l2 = s * Math.PI / 180, f = Math.cos(l2), c2 = Math.sin(l2); + a[0] = f, a[1] = c2, a[2] = -c2, a[3] = f; break; } case "skewX": - a2[2] = Math.tan(s2 * Math.PI / 180); + a[2] = Math.tan(s * Math.PI / 180); break; case "skewY": - a2[1] = Math.tan(s2 * Math.PI / 180); + a[1] = Math.tan(s * Math.PI / 180); break; } - r2 = Pt(a2, r2); + r = Pt(a, r); } - e2.splice(0, e2.length), e2.push(...r2), e2.__resolved = true; + e.splice(0, e.length), e.push(...r), e.__resolved = true; } -function Rt({ left: e2, top: t2, width: n2, height: r2 }, i2, o2, u4) { - let s2; - i2.__resolved || xf(i2, n2, r2); - let a2 = i2; - if (o2) s2 = a2; +function Rt({ left: e, top: t, width: n, height: r }, i, o, u2) { + let s; + i.__resolved || xf(i, n, r); + let a = i; + if (o) s = a; else { - let l3 = (u4 == null ? void 0 : u4.xAbsolute) ?? ((u4 == null ? void 0 : u4.xRelative) ?? 50) * n2 / 100, f3 = (u4 == null ? void 0 : u4.yAbsolute) ?? ((u4 == null ? void 0 : u4.yRelative) ?? 50) * r2 / 100, c3 = e2 + l3, p2 = t2 + f3; - s2 = Pt([1, 0, 0, 1, c3, p2], Pt(a2, [1, 0, 0, 1, -c3, -p2])), a2.__parent && (s2 = Pt(a2.__parent, s2)), a2.splice(0, 6, ...s2); + let l2 = (u2 == null ? void 0 : u2.xAbsolute) ?? ((u2 == null ? void 0 : u2.xRelative) ?? 50) * n / 100, f = (u2 == null ? void 0 : u2.yAbsolute) ?? ((u2 == null ? void 0 : u2.yRelative) ?? 50) * r / 100, c2 = e + l2, p = t + f; + s = Pt([1, 0, 0, 1, c2, p], Pt(a, [1, 0, 0, 1, -c2, -p])), a.__parent && (s = Pt(a.__parent, s)), a.splice(0, 6, ...s); } - return `matrix(${s2.map((l3) => l3.toFixed(2)).join(",")})`; + return `matrix(${s.map((l2) => l2.toFixed(2)).join(",")})`; } -function xu({ left: e2, top: t2, width: n2, height: r2, isInheritingTransform: i2 }, o2) { - let u4 = "", s2 = 1; - return o2.transform && (u4 = Rt({ left: e2, top: t2, width: n2, height: r2 }, o2.transform, i2, o2.transformOrigin)), o2.opacity !== void 0 && (s2 = +o2.opacity), { matrix: u4, opacity: s2 }; +function xu({ left: e, top: t, width: n, height: r, isInheritingTransform: i }, o) { + let u2 = "", s = 1; + return o.transform && (u2 = Rt({ left: e, top: t, width: n, height: r }, o.transform, i, o.transformOrigin)), o.opacity !== void 0 && (s = +o.opacity), { matrix: u2, opacity: s }; } -function Rn({ id: e2, content: t2, filter: n2, left: r2, top: i2, width: o2, height: u4, matrix: s2, opacity: a2, image: l3, clipPathId: f3, debug: c3, shape: p2, decorationShape: d3 }, h3) { - let m3 = ""; - if (c3 && (m3 = E("rect", { x: r2, y: i2 - u4, width: o2, height: u4, fill: "transparent", stroke: "#575eff", "stroke-width": 1, transform: s2 || void 0, "clip-path": f3 ? `url(#${f3})` : void 0 })), l3) { - let g3 = { href: l3, x: r2, y: i2, width: o2, height: u4, transform: s2 || void 0, "clip-path": f3 ? `url(#${f3})` : void 0, style: h3.filter ? `filter:${h3.filter}` : void 0 }; - return [(n2 ? `${n2}` : "") + E("image", { ...g3, opacity: a2 !== 1 ? a2 : void 0 }) + (d3 || "") + (n2 ? "" : "") + m3, ""]; +function Rn({ id: e, content: t, filter: n, left: r, top: i, width: o, height: u2, matrix: s, opacity: a, image: l2, clipPathId: f, debug: c2, shape: p, decorationShape: d2 }, h3) { + let m2 = ""; + if (c2 && (m2 = E("rect", { x: r, y: i - u2, width: o, height: u2, fill: "transparent", stroke: "#575eff", "stroke-width": 1, transform: s || void 0, "clip-path": f ? `url(#${f})` : void 0 })), l2) { + let g2 = { href: l2, x: r, y: i, width: o, height: u2, transform: s || void 0, "clip-path": f ? `url(#${f})` : void 0, style: h3.filter ? `filter:${h3.filter}` : void 0 }; + return [(n ? `${n}` : "") + E("image", { ...g2, opacity: a !== 1 ? a : void 0 }) + (d2 || "") + (n ? "" : "") + m2, ""]; } - let x3 = { x: r2, y: i2, width: o2, height: u4, "font-weight": h3.fontWeight, "font-style": h3.fontStyle, "font-size": h3.fontSize, "font-family": h3.fontFamily, "letter-spacing": h3.letterSpacing || void 0, transform: s2 || void 0, "clip-path": f3 ? `url(#${f3})` : void 0, style: h3.filter ? `filter:${h3.filter}` : void 0, "stroke-width": h3.WebkitTextStrokeWidth ? `${h3.WebkitTextStrokeWidth}px` : void 0, stroke: h3.WebkitTextStrokeWidth ? h3.WebkitTextStrokeColor : void 0, "stroke-linejoin": h3.WebkitTextStrokeWidth ? "round" : void 0, "paint-order": h3.WebkitTextStrokeWidth ? "stroke" : void 0 }; - return [(n2 ? `${n2}` : "") + E("text", { ...x3, fill: h3.color, opacity: a2 !== 1 ? a2 : void 0 }, (0, import_escape_html.default)(t2)) + (d3 || "") + (n2 ? "" : "") + m3, p2 ? E("text", x3, (0, import_escape_html.default)(t2)) : ""]; + let x2 = { x: r, y: i, width: o, height: u2, "font-weight": h3.fontWeight, "font-style": h3.fontStyle, "font-size": h3.fontSize, "font-family": h3.fontFamily, "letter-spacing": h3.letterSpacing || void 0, transform: s || void 0, "clip-path": f ? `url(#${f})` : void 0, style: h3.filter ? `filter:${h3.filter}` : void 0, "stroke-width": h3.WebkitTextStrokeWidth ? `${h3.WebkitTextStrokeWidth}px` : void 0, stroke: h3.WebkitTextStrokeWidth ? h3.WebkitTextStrokeColor : void 0, "stroke-linejoin": h3.WebkitTextStrokeWidth ? "round" : void 0, "paint-order": h3.WebkitTextStrokeWidth ? "stroke" : void 0 }; + return [(n ? `${n}` : "") + E("text", { ...x2, fill: h3.color, opacity: a !== 1 ? a : void 0 }, (0, import_escape_html.default)(t)) + (d2 || "") + (n ? "" : "") + m2, p ? E("text", x2, (0, import_escape_html.default)(t)) : ""]; } -function Ff(e2, t2, n2) { - return e2.replace(/([MA])([0-9.-]+),([0-9.-]+)/g, function(r2, i2, o2, u4) { - return i2 + (parseFloat(o2) + t2) + "," + (parseFloat(u4) + n2); +function Ff(e, t, n) { + return e.replace(/([MA])([0-9.-]+),([0-9.-]+)/g, function(r, i, o, u2) { + return i + (parseFloat(o) + t) + "," + (parseFloat(u2) + n); }); } var Ur = 1.1; -function Fu({ id: e2, width: t2, height: n2 }, r2) { - if (!r2.shadowColor || !r2.shadowOffset || typeof r2.shadowRadius > "u") return ""; - let i2 = r2.shadowColor.length, o2 = "", u4 = "", s2 = 0, a2 = t2, l3 = 0, f3 = n2; - for (let c3 = 0; c3 < i2; c3++) { - let p2 = r2.shadowRadius[c3] * r2.shadowRadius[c3] / 4; - s2 = Math.min(r2.shadowOffset[c3].width - p2, s2), a2 = Math.max(r2.shadowOffset[c3].width + p2 + t2, a2), l3 = Math.min(r2.shadowOffset[c3].height - p2, l3), f3 = Math.max(r2.shadowOffset[c3].height + p2 + n2, f3), o2 += E("feDropShadow", { dx: r2.shadowOffset[c3].width, dy: r2.shadowOffset[c3].height, stdDeviation: r2.shadowRadius[c3] / 2, "flood-color": r2.shadowColor[c3], "flood-opacity": 1, ...i2 > 1 ? { in: "SourceGraphic", result: `satori_s-${e2}-result-${c3}` } : {} }), i2 > 1 && (u4 = E("feMergeNode", { in: `satori_s-${e2}-result-${c3}` }) + u4); +function Fu({ id: e, width: t, height: n }, r) { + if (!r.shadowColor || !r.shadowOffset || typeof r.shadowRadius > "u") return ""; + let i = r.shadowColor.length, o = "", u2 = "", s = 0, a = t, l2 = 0, f = n; + for (let c2 = 0; c2 < i; c2++) { + let p = r.shadowRadius[c2] * r.shadowRadius[c2] / 4; + s = Math.min(r.shadowOffset[c2].width - p, s), a = Math.max(r.shadowOffset[c2].width + p + t, a), l2 = Math.min(r.shadowOffset[c2].height - p, l2), f = Math.max(r.shadowOffset[c2].height + p + n, f), o += E("feDropShadow", { dx: r.shadowOffset[c2].width, dy: r.shadowOffset[c2].height, stdDeviation: r.shadowRadius[c2] / 2, "flood-color": r.shadowColor[c2], "flood-opacity": 1, ...i > 1 ? { in: "SourceGraphic", result: `satori_s-${e}-result-${c2}` } : {} }), i > 1 && (u2 = E("feMergeNode", { in: `satori_s-${e}-result-${c2}` }) + u2); } - return E("filter", { id: `satori_s-${e2}`, x: (s2 / t2 * 100 * Ur).toFixed(2) + "%", y: (l3 / n2 * 100 * Ur).toFixed(2) + "%", width: ((a2 - s2) / t2 * 100 * Ur).toFixed(2) + "%", height: ((f3 - l3) / n2 * 100 * Ur).toFixed(2) + "%" }, o2 + (u4 ? E("feMerge", {}, u4) : "")); + return E("filter", { id: `satori_s-${e}`, x: (s / t * 100 * Ur).toFixed(2) + "%", y: (l2 / n * 100 * Ur).toFixed(2) + "%", width: ((a - s) / t * 100 * Ur).toFixed(2) + "%", height: ((f - l2) / n * 100 * Ur).toFixed(2) + "%" }, o + (u2 ? E("feMerge", {}, u2) : "")); } -function wu({ width: e2, height: t2, shape: n2, opacity: r2, id: i2 }, o2) { - if (!o2.boxShadow) return null; - let u4 = "", s2 = ""; - for (let a2 = o2.boxShadow.length - 1; a2 >= 0; a2--) { - let l3 = "", f3 = o2.boxShadow[a2]; - f3.spreadRadius && f3.inset && (f3.spreadRadius = -f3.spreadRadius); - let c3 = f3.blurRadius * f3.blurRadius / 4 + (f3.spreadRadius || 0), p2 = Math.min(-c3 - (f3.inset ? f3.offsetX : 0), 0), d3 = Math.max(c3 + e2 - (f3.inset ? f3.offsetX : 0), e2), h3 = Math.min(-c3 - (f3.inset ? f3.offsetY : 0), 0), m3 = Math.max(c3 + t2 - (f3.inset ? f3.offsetY : 0), t2), x3 = `satori_s-${i2}-${a2}`, g3 = `satori_ms-${i2}-${a2}`, S3 = f3.spreadRadius ? n2.replace('stroke-width="0"', `stroke-width="${f3.spreadRadius * 2}"`) : n2; - l3 += E("mask", { id: g3, maskUnits: "userSpaceOnUse" }, E("rect", { x: 0, y: 0, width: o2._viewportWidth || "100%", height: o2._viewportHeight || "100%", fill: f3.inset ? "#000" : "#fff" }) + S3.replace('fill="#fff"', f3.inset ? 'fill="#fff"' : 'fill="#000"').replace('stroke="#fff"', "")); - let v3 = S3.replace(/d="([^"]+)"/, (b2, y2) => 'd="' + Ff(y2, f3.offsetX, f3.offsetY) + '"').replace(/x="([^"]+)"/, (b2, y2) => 'x="' + (parseFloat(y2) + f3.offsetX) + '"').replace(/y="([^"]+)"/, (b2, y2) => 'y="' + (parseFloat(y2) + f3.offsetY) + '"'); - f3.spreadRadius && f3.spreadRadius < 0 && (l3 += E("mask", { id: g3 + "-neg", maskUnits: "userSpaceOnUse" }, v3.replace('stroke="#fff"', 'stroke="#000"').replace(/stroke-width="[^"]+"/, `stroke-width="${-f3.spreadRadius * 2}"`))), f3.spreadRadius && f3.spreadRadius < 0 && (v3 = E("g", { mask: `url(#${g3}-neg)` }, v3)), l3 += E("defs", {}, E("filter", { id: x3, x: `${p2 / e2 * 100}%`, y: `${h3 / t2 * 100}%`, width: `${(d3 - p2) / e2 * 100}%`, height: `${(m3 - h3) / t2 * 100}%` }, E("feGaussianBlur", { stdDeviation: f3.blurRadius / 2, result: "b" }) + E("feFlood", { "flood-color": f3.color, in: "SourceGraphic", result: "f" }) + E("feComposite", { in: "f", in2: "b", operator: f3.inset ? "out" : "in" }))) + E("g", { mask: `url(#${g3})`, filter: `url(#${x3})`, opacity: r2 }, v3), f3.inset ? s2 += l3 : u4 += l3; +function wu({ width: e, height: t, shape: n, opacity: r, id: i }, o) { + if (!o.boxShadow) return null; + let u2 = "", s = ""; + for (let a = o.boxShadow.length - 1; a >= 0; a--) { + let l2 = "", f = o.boxShadow[a]; + f.spreadRadius && f.inset && (f.spreadRadius = -f.spreadRadius); + let c2 = f.blurRadius * f.blurRadius / 4 + (f.spreadRadius || 0), p = Math.min(-c2 - (f.inset ? f.offsetX : 0), 0), d2 = Math.max(c2 + e - (f.inset ? f.offsetX : 0), e), h3 = Math.min(-c2 - (f.inset ? f.offsetY : 0), 0), m2 = Math.max(c2 + t - (f.inset ? f.offsetY : 0), t), x2 = `satori_s-${i}-${a}`, g2 = `satori_ms-${i}-${a}`, S2 = f.spreadRadius ? n.replace('stroke-width="0"', `stroke-width="${f.spreadRadius * 2}"`) : n; + l2 += E("mask", { id: g2, maskUnits: "userSpaceOnUse" }, E("rect", { x: 0, y: 0, width: o._viewportWidth || "100%", height: o._viewportHeight || "100%", fill: f.inset ? "#000" : "#fff" }) + S2.replace('fill="#fff"', f.inset ? 'fill="#fff"' : 'fill="#000"').replace('stroke="#fff"', "")); + let v2 = S2.replace(/d="([^"]+)"/, (b, y) => 'd="' + Ff(y, f.offsetX, f.offsetY) + '"').replace(/x="([^"]+)"/, (b, y) => 'x="' + (parseFloat(y) + f.offsetX) + '"').replace(/y="([^"]+)"/, (b, y) => 'y="' + (parseFloat(y) + f.offsetY) + '"'); + f.spreadRadius && f.spreadRadius < 0 && (l2 += E("mask", { id: g2 + "-neg", maskUnits: "userSpaceOnUse" }, v2.replace('stroke="#fff"', 'stroke="#000"').replace(/stroke-width="[^"]+"/, `stroke-width="${-f.spreadRadius * 2}"`))), f.spreadRadius && f.spreadRadius < 0 && (v2 = E("g", { mask: `url(#${g2}-neg)` }, v2)), l2 += E("defs", {}, E("filter", { id: x2, x: `${p / e * 100}%`, y: `${h3 / t * 100}%`, width: `${(d2 - p) / e * 100}%`, height: `${(m2 - h3) / t * 100}%` }, E("feGaussianBlur", { stdDeviation: f.blurRadius / 2, result: "b" }) + E("feFlood", { "flood-color": f.color, in: "SourceGraphic", result: "f" }) + E("feComposite", { in: "f", in2: "b", operator: f.inset ? "out" : "in" }))) + E("g", { mask: `url(#${g2})`, filter: `url(#${x2})`, opacity: r }, v2), f.inset ? s += l2 : u2 += l2; } - return [u4, s2]; + return [u2, s]; } -function Ln({ width: e2, left: t2, top: n2, ascender: r2, clipPathId: i2, matrix: o2 }, u4) { - let { textDecorationColor: s2, textDecorationStyle: a2, textDecorationLine: l3, fontSize: f3, color: c3 } = u4; - if (!l3 || l3 === "none") return ""; - let p2 = Math.max(1, f3 * 0.1), d3 = l3 === "line-through" ? n2 + r2 * 0.7 : l3 === "underline" ? n2 + r2 * 1.1 : n2, h3 = a2 === "dashed" ? `${p2 * 1.2} ${p2 * 2}` : a2 === "dotted" ? `0 ${p2 * 2}` : void 0; - return (i2 ? `` : "") + E("line", { x1: t2, y1: d3, x2: t2 + e2, y2: d3, stroke: s2 || c3, "stroke-width": p2, "stroke-dasharray": h3, "stroke-linecap": a2 === "dotted" ? "round" : "square", transform: o2 }) + (i2 ? "" : ""); +function Ln({ width: e, left: t, top: n, ascender: r, clipPathId: i, matrix: o }, u2) { + let { textDecorationColor: s, textDecorationStyle: a, textDecorationLine: l2, fontSize: f, color: c2 } = u2; + if (!l2 || l2 === "none") return ""; + let p = Math.max(1, f * 0.1), d2 = l2 === "line-through" ? n + r * 0.7 : l2 === "underline" ? n + r * 1.1 : n, h3 = a === "dashed" ? `${p * 1.2} ${p * 2}` : a === "dotted" ? `0 ${p * 2}` : void 0; + return (i ? `` : "") + E("line", { x1: t, y1: d2, x2: t + e, y2: d2, stroke: s || c2, "stroke-width": p, "stroke-dasharray": h3, "stroke-linecap": a === "dotted" ? "round" : "square", transform: o }) + (i ? "" : ""); } -function Mn(e2) { - return e2 = e2.replace("U+", "0x"), String.fromCodePoint(Number(e2)); +function Mn(e) { + return e = e.replace("U+", "0x"), String.fromCodePoint(Number(e)); } var rt = Mn("U+0020"); var Nn = Mn("U+0009"); var vt = Mn("U+2026"); -function Eu(e2, t2, n2) { - let { fontSize: r2, letterSpacing: i2 } = n2, o2 = /* @__PURE__ */ new Map(); - function u4(l3) { - if (o2.has(l3)) return o2.get(l3); - let f3 = e2.measure(l3, { fontSize: r2, letterSpacing: i2 }); - return o2.set(l3, f3), f3; +function Eu(e, t, n) { + let { fontSize: r, letterSpacing: i } = n, o = /* @__PURE__ */ new Map(); + function u2(l2) { + if (o.has(l2)) return o.get(l2); + let f = e.measure(l2, { fontSize: r, letterSpacing: i }); + return o.set(l2, f), f; } - function s2(l3) { - let f3 = 0; - for (let c3 of l3) t2(c3) ? f3 += r2 : f3 += u4(c3); - return f3; + function s(l2) { + let f = 0; + for (let c2 of l2) t(c2) ? f += r : f += u2(c2); + return f; } - function a2(l3) { - return s2(le(l3, "grapheme")); + function a(l2) { + return s(le(l2, "grapheme")); } - return { measureGrapheme: u4, measureGraphemeArray: s2, measureText: a2 }; + return { measureGrapheme: u2, measureGraphemeArray: s, measureText: a }; } -function Su(e2, t2, n2) { - let { textTransform: r2, whiteSpace: i2, wordBreak: o2 } = t2; - e2 = wf(e2, r2, n2); - let { content: u4, shouldCollapseTabsAndSpaces: s2, allowSoftWrap: a2 } = Cf(e2, i2), { words: l3, requiredBreaks: f3, allowBreakWord: c3 } = Sf(u4, o2), [p2, d3] = Ef(t2, a2); - return { words: l3, requiredBreaks: f3, allowSoftWrap: a2, allowBreakWord: c3, processedContent: u4, shouldCollapseTabsAndSpaces: s2, lineLimit: p2, blockEllipsis: d3 }; +function Su(e, t, n) { + let { textTransform: r, whiteSpace: i, wordBreak: o } = t; + e = wf(e, r, n); + let { content: u2, shouldCollapseTabsAndSpaces: s, allowSoftWrap: a } = Cf(e, i), { words: l2, requiredBreaks: f, allowBreakWord: c2 } = Sf(u2, o), [p, d2] = Ef(t, a); + return { words: l2, requiredBreaks: f, allowSoftWrap: a, allowBreakWord: c2, processedContent: u2, shouldCollapseTabsAndSpaces: s, lineLimit: p, blockEllipsis: d2 }; } -function wf(e2, t2, n2) { - return t2 === "uppercase" ? e2 = e2.toLocaleUpperCase(n2) : t2 === "lowercase" ? e2 = e2.toLocaleLowerCase(n2) : t2 === "capitalize" && (e2 = le(e2, "word", n2).map((r2) => le(r2, "grapheme", n2).map((i2, o2) => o2 === 0 ? i2.toLocaleUpperCase(n2) : i2).join("")).join("")), e2; +function wf(e, t, n) { + return t === "uppercase" ? e = e.toLocaleUpperCase(n) : t === "lowercase" ? e = e.toLocaleLowerCase(n) : t === "capitalize" && (e = le(e, "word", n).map((r) => le(r, "grapheme", n).map((i, o) => o === 0 ? i.toLocaleUpperCase(n) : i).join("")).join("")), e; } -function Ef(e2, t2) { - let { textOverflow: n2, lineClamp: r2, WebkitLineClamp: i2, WebkitBoxOrient: o2, overflow: u4, display: s2 } = e2; - if (s2 === "block" && r2) { - let [a2, l3 = vt] = _f(r2); - if (a2) return [a2, l3]; +function Ef(e, t) { + let { textOverflow: n, lineClamp: r, WebkitLineClamp: i, WebkitBoxOrient: o, overflow: u2, display: s } = e; + if (s === "block" && r) { + let [a, l2 = vt] = _f(r); + if (a) return [a, l2]; } - return n2 === "ellipsis" && s2 === "-webkit-box" && o2 === "vertical" && ru(i2) && i2 > 0 ? [i2, vt] : n2 === "ellipsis" && u4 === "hidden" && !t2 ? [1, vt] : [1 / 0]; + return n === "ellipsis" && s === "-webkit-box" && o === "vertical" && ru(i) && i > 0 ? [i, vt] : n === "ellipsis" && u2 === "hidden" && !t ? [1, vt] : [1 / 0]; } -function Sf(e2, t2) { - let n2 = ["break-all", "break-word"].includes(t2), { words: r2, requiredBreaks: i2 } = iu(e2, t2); - return { words: r2, requiredBreaks: i2, allowBreakWord: n2 }; +function Sf(e, t) { + let n = ["break-all", "break-word"].includes(t), { words: r, requiredBreaks: i } = iu(e, t); + return { words: r, requiredBreaks: i, allowBreakWord: n }; } -function Cf(e2, t2) { - let n2 = ["pre", "pre-wrap", "pre-line"].includes(t2), r2 = ["normal", "nowrap", "pre-line"].includes(t2), i2 = !["pre", "nowrap"].includes(t2); - return n2 || (e2 = e2.replace(/\n/g, rt)), r2 && (e2 = e2.replace(/([ ]|\t)+/g, rt).replace(/^[ ]|[ ]$/g, "")), { content: e2, shouldCollapseTabsAndSpaces: r2, allowSoftWrap: i2 }; +function Cf(e, t) { + let n = ["pre", "pre-wrap", "pre-line"].includes(t), r = ["normal", "nowrap", "pre-line"].includes(t), i = !["pre", "nowrap"].includes(t); + return n || (e = e.replace(/\n/g, rt)), r && (e = e.replace(/([ ]|\t)+/g, rt).replace(/^[ ]|[ ]$/g, "")), { content: e, shouldCollapseTabsAndSpaces: r, allowSoftWrap: i }; } -function _f(e2) { - if (typeof e2 == "number") return [e2]; - let t2 = /^(\d+)\s*"(.*)"$/, n2 = /^(\d+)\s*'(.*)'$/, r2 = t2.exec(e2), i2 = n2.exec(e2); - if (r2) { - let o2 = +r2[1], u4 = r2[2]; - return [o2, u4]; - } else if (i2) { - let o2 = +i2[1], u4 = i2[2]; - return [o2, u4]; +function _f(e) { + if (typeof e == "number") return [e]; + let t = /^(\d+)\s*"(.*)"$/, n = /^(\d+)\s*'(.*)'$/, r = t.exec(e), i = n.exec(e); + if (r) { + let o = +r[1], u2 = r[2]; + return [o, u2]; + } else if (i) { + let o = +i[1], u2 = i[2]; + return [o, u2]; } return []; } var kf = /* @__PURE__ */ new Set([Nn]); -function Tf(e2) { - return kf.has(e2); +function Tf(e) { + return kf.has(e); } -async function* Wn(e2, t2) { - let n2 = await Re(), { parentStyle: r2, inheritedStyle: i2, parent: o2, font: u4, id: s2, isInheritingTransform: a2, debug: l3, embedFont: f3, graphemeImages: c3, locale: p2, canLoadAdditionalAssets: d3 } = t2, { textAlign: h3, lineHeight: m3, textWrap: x3, fontSize: g3, filter: S3, tabSize: v3 = 8, letterSpacing: b2, _inheritedBackgroundClipTextPath: y2, flexShrink: T2 } = r2, { words: A2, requiredBreaks: P3, allowSoftWrap: j2, allowBreakWord: ie, processedContent: ue, shouldCollapseTabsAndSpaces: fe, lineLimit: Q2, blockEllipsis: oe } = Su(e2, r2, p2), Z = Af(n2, h3); - o2.insertChild(Z, o2.getChildCount()), nu(T2) && o2.setFlexShrink(1); - let N2 = u4.getEngine(g3, m3, r2, p2), Ee = d3 ? le(ue, "grapheme").filter((B2) => !Tf(B2) && !N2.has(B2)) : []; - yield Ee.map((B2) => ({ word: B2, locale: p2 })), Ee.length && (N2 = u4.getEngine(g3, m3, r2, p2)); - function _e(B2) { - return !!(c3 && c3[B2]); +async function* Wn(e, t) { + let n = await Re(), { parentStyle: r, inheritedStyle: i, parent: o, font: u2, id: s, isInheritingTransform: a, debug: l2, embedFont: f, graphemeImages: c2, locale: p, canLoadAdditionalAssets: d2 } = t, { textAlign: h3, lineHeight: m2, textWrap: x2, fontSize: g2, filter: S2, tabSize: v2 = 8, letterSpacing: b, _inheritedBackgroundClipTextPath: y, flexShrink: T } = r, { words: A, requiredBreaks: P2, allowSoftWrap: j, allowBreakWord: ie, processedContent: ue, shouldCollapseTabsAndSpaces: fe, lineLimit: Q, blockEllipsis: oe } = Su(e, r, p), Z = Af(n, h3); + o.insertChild(Z, o.getChildCount()), nu(T) && o.setFlexShrink(1); + let N = u2.getEngine(g2, m2, r, p), Ee = d2 ? le(ue, "grapheme").filter((B) => !Tf(B) && !N.has(B)) : []; + yield Ee.map((B) => ({ word: B, locale: p })), Ee.length && (N = u2.getEngine(g2, m2, r, p)); + function _e(B) { + return !!(c2 && c2[B]); } - let { measureGrapheme: me, measureGraphemeArray: wr, measureText: Ke } = Eu(N2, _e, { fontSize: g3, letterSpacing: b2 }), Ct = Lr(v3) ? O(v3, g3, 1, r2) : me(rt) * v3, Er = (B2, H2) => { - if (B2.length === 0) return { originWidth: 0, endingSpacesWidth: 0, text: B2 }; - let { index: K3, tabCount: W } = Of(B2), ee = 0; + let { measureGrapheme: me, measureGraphemeArray: wr, measureText: Ke } = Eu(N, _e, { fontSize: g2, letterSpacing: b }), Ct = Lr(v2) ? O(v2, g2, 1, r) : me(rt) * v2, Er = (B, H) => { + if (B.length === 0) return { originWidth: 0, endingSpacesWidth: 0, text: B }; + let { index: K2, tabCount: W } = Of(B), ee = 0; if (W > 0) { - let te = B2.slice(0, K3), J2 = B2.slice(K3 + W), z2 = Ke(te), Te = z2 + H2; - ee = (Ct === 0 ? z2 : (Math.floor(Te / Ct) + W) * Ct) + Ke(J2); - } else ee = Ke(B2); - let $2 = B2.trimEnd() === B2 ? ee : Ke(B2.trimEnd()); - return { originWidth: ee, endingSpacesWidth: ee - $2, text: B2 }; - }, I2 = [], De = [], lt = [], ft = [], _t = []; - function bn(B2) { - let H2 = 0, K3 = 0, W = -1, ee = 0, $2 = 0, te = 0, J2 = 0; - I2 = [], lt = [0], ft = [], _t = []; - let z2 = 0, Te = 0; - for (; z2 < A2.length && H2 < Q2; ) { - let R2 = A2[z2], Je = P3[z2], ge = 0, { originWidth: ze, endingSpacesWidth: Or, text: Ue } = Er(R2, $2); + let te = B.slice(0, K2), J = B.slice(K2 + W), z = Ke(te), Te = z + H; + ee = (Ct === 0 ? z : (Math.floor(Te / Ct) + W) * Ct) + Ke(J); + } else ee = Ke(B); + let $ = B.trimEnd() === B ? ee : Ke(B.trimEnd()); + return { originWidth: ee, endingSpacesWidth: ee - $, text: B }; + }, I = [], De = [], lt = [], ft = [], _t = []; + function bn(B) { + let H = 0, K2 = 0, W = -1, ee = 0, $ = 0, te = 0, J = 0; + I = [], lt = [0], ft = [], _t = []; + let z = 0, Te = 0; + for (; z < A.length && H < Q; ) { + let R2 = A[z], Je = P2[z], ge = 0, { originWidth: ze, endingSpacesWidth: Or, text: Ue } = Er(R2, $); R2 = Ue, ge = ze; - let V2 = Or; - Je && te === 0 && (te = N2.height(R2)); - let se = ",.!?:-@)>]}%#".indexOf(R2[0]) < 0, Ge = !$2, Pr = z2 && se && $2 + ge > B2 + V2 && j2; - if (ie && ge > B2 && (!$2 || Pr || Je)) { + let V = Or; + Je && te === 0 && (te = N.height(R2)); + let se = ",.!?:-@)>]}%#".indexOf(R2[0]) < 0, Ge = !$, Pr = z && se && $ + ge > B + V && j; + if (ie && ge > B && (!$ || Pr || Je)) { let ae = le(R2, "grapheme"); - A2.splice(z2, 1, ...ae), $2 > 0 && (I2.push($2 - Te), De.push(J2), H2++, ee += te, $2 = 0, te = 0, J2 = 0, lt.push(1), W = -1), Te = V2; + A.splice(z, 1, ...ae), $ > 0 && (I.push($ - Te), De.push(J), H++, ee += te, $ = 0, te = 0, J = 0, lt.push(1), W = -1), Te = V; continue; } - if (Je || Pr) fe && R2 === rt && (ge = 0), I2.push($2 - Te), De.push(J2), H2++, ee += te, $2 = ge, te = ge ? N2.height(R2) : 0, J2 = ge ? N2.baseline(R2) : 0, lt.push(1), W = -1, Je || (K3 = Math.max(K3, B2)); + if (Je || Pr) fe && R2 === rt && (ge = 0), I.push($ - Te), De.push(J), H++, ee += te, $ = ge, te = ge ? N.height(R2) : 0, J = ge ? N.baseline(R2) : 0, lt.push(1), W = -1, Je || (K2 = Math.max(K2, B)); else { - $2 += ge; - let ae = N2.height(R2); - ae > te && (te = ae, J2 = N2.baseline(R2)), Ge && lt[lt.length - 1]++; + $ += ge; + let ae = N.height(R2); + ae > te && (te = ae, J = N.baseline(R2)), Ge && lt[lt.length - 1]++; } - Ge && W++, K3 = Math.max(K3, $2); - let Ze = $2 - ge; - if (ge === 0) _t.push({ y: ee, x: Ze, width: 0, line: H2, lineIndex: W, isImage: false }); + Ge && W++, K2 = Math.max(K2, $); + let Ze = $ - ge; + if (ge === 0) _t.push({ y: ee, x: Ze, width: 0, line: H, lineIndex: W, isImage: false }); else { let ae = le(R2, "word"); for (let Se = 0; Se < ae.length; Se++) { let et2 = ae[Se], Ie = 0, Tt = false; - _e(et2) ? (Ie = g3, Tt = true) : Ie = me(et2), ft.push(et2), _t.push({ y: ee, x: Ze, width: Ie, line: H2, lineIndex: W, isImage: Tt }), Ze += Ie; + _e(et2) ? (Ie = g2, Tt = true) : Ie = me(et2), ft.push(et2), _t.push({ y: ee, x: Ze, width: Ie, line: H, lineIndex: W, isImage: Tt }), Ze += Ie; } } - z2++, Te = V2; + z++, Te = V; } - return $2 && (H2 < Q2 && (ee += te), H2++, I2.push($2), De.push(J2)), { width: K3, height: ee }; + return $ && (H < Q && (ee += te), H++, I.push($), De.push(J)), { width: K2, height: ee }; } let Sr = { width: 0, height: 0 }; - Z.setMeasureFunc((B2) => { - let { width: H2, height: K3 } = bn(B2); - if (x3 === "balance") { - let ee = H2 / 2, $2 = H2, te = H2; - for (; ee + 1 < $2; ) { - te = (ee + $2) / 2; - let { height: z2 } = bn(te); - z2 > K3 ? ee = te : $2 = te; + Z.setMeasureFunc((B) => { + let { width: H, height: K2 } = bn(B); + if (x2 === "balance") { + let ee = H / 2, $ = H, te = H; + for (; ee + 1 < $; ) { + te = (ee + $) / 2; + let { height: z } = bn(te); + z > K2 ? ee = te : $ = te; } - bn($2); - let J2 = Math.ceil($2); - return Sr = { width: J2, height: K3 }, { width: J2, height: K3 }; + bn($); + let J = Math.ceil($); + return Sr = { width: J, height: K2 }, { width: J, height: K2 }; } - let W = Math.ceil(H2); - return Sr = { width: W, height: K3 }, { width: W, height: K3 }; + let W = Math.ceil(H); + return Sr = { width: W, height: K2 }, { width: W, height: K2 }; }); - let [Sl, Cl] = yield, vn = "", Cr = "", $e = i2._inheritedClipPathId, Mo = i2._inheritedMaskId, { left: No, top: Wo, width: yn, height: _l } = Z.getComputedLayout(), _r = o2.getComputedWidth() - o2.getComputedPadding(n2.EDGE_LEFT) - o2.getComputedPadding(n2.EDGE_RIGHT) - o2.getComputedBorder(n2.EDGE_LEFT) - o2.getComputedBorder(n2.EDGE_RIGHT), ct = Sl + No, dt = Cl + Wo, { matrix: ke, opacity: kr } = xu({ left: No, top: Wo, width: yn, height: _l, isInheritingTransform: a2 }, r2), pt = ""; - if (r2.textShadowOffset) { - let { textShadowColor: B2, textShadowOffset: H2, textShadowRadius: K3 } = r2; - pt = Fu({ width: Sr.width, height: Sr.height, id: s2 }, { shadowColor: B2, shadowOffset: H2, shadowRadius: K3 }), pt = E("defs", {}, pt); + let [Sl, Cl] = yield, vn = "", Cr = "", $e = i._inheritedClipPathId, Mo = i._inheritedMaskId, { left: No, top: Wo, width: yn, height: _l } = Z.getComputedLayout(), _r = o.getComputedWidth() - o.getComputedPadding(n.EDGE_LEFT) - o.getComputedPadding(n.EDGE_RIGHT) - o.getComputedBorder(n.EDGE_LEFT) - o.getComputedBorder(n.EDGE_RIGHT), ct = Sl + No, dt = Cl + Wo, { matrix: ke, opacity: kr } = xu({ left: No, top: Wo, width: yn, height: _l, isInheritingTransform: a }, r), pt = ""; + if (r.textShadowOffset) { + let { textShadowColor: B, textShadowOffset: H, textShadowRadius: K2 } = r; + pt = Fu({ width: Sr.width, height: Sr.height, id: s }, { shadowColor: B, shadowOffset: H, shadowRadius: K2 }), pt = E("defs", {}, pt); } let kt = "", Tr = "", $o = "", Ar = -1, ht = {}, qe = null, qo = 0; - for (let B2 = 0; B2 < ft.length; B2++) { - let H2 = _t[B2], K3 = _t[B2 + 1]; - if (!H2) continue; - let W = ft[B2], ee = null, $2 = false, te = c3 ? c3[W] : null, J2 = H2.y, z2 = H2.x, Te = H2.width, R2 = H2.line; + for (let B = 0; B < ft.length; B++) { + let H = _t[B], K2 = _t[B + 1]; + if (!H) continue; + let W = ft[B], ee = null, $ = false, te = c2 ? c2[W] : null, J = H.y, z = H.x, Te = H.width, R2 = H.line; if (R2 === Ar) continue; let Je = false; - if (I2.length > 1) { - let V2 = yn - I2[R2]; - if (h3 === "right" || h3 === "end") z2 += V2; - else if (h3 === "center") z2 += V2 / 2; - else if (h3 === "justify" && R2 < I2.length - 1) { - let se = lt[R2], Ge = se > 1 ? V2 / (se - 1) : 0; - z2 += Ge * H2.lineIndex, Je = true; + if (I.length > 1) { + let V = yn - I[R2]; + if (h3 === "right" || h3 === "end") z += V; + else if (h3 === "center") z += V / 2; + else if (h3 === "justify" && R2 < I.length - 1) { + let se = lt[R2], Ge = se > 1 ? V / (se - 1) : 0; + z += Ge * H.lineIndex, Je = true; } } - let ge = De[R2], ze = N2.baseline(W), Or = N2.height(W), Ue = ge - ze; - if (ht[R2] || (ht[R2] = [z2, dt + J2 + Ue, ze, Je ? yn : I2[R2]]), Q2 !== 1 / 0) { + let ge = De[R2], ze = N.baseline(W), Or = N.height(W), Ue = ge - ze; + if (ht[R2] || (ht[R2] = [z, dt + J + Ue, ze, Je ? yn : I[R2]]), Q !== 1 / 0) { let Ze = function(ae, Se) { - let et2 = le(Se, "grapheme", p2), Ie = "", Tt = 0; + let et2 = le(Se, "grapheme", p), Ie = "", Tt = 0; for (let zo of et2) { let Uo = ae + wr([Ie + zo]); if (Ie && Uo + se > _r) break; Ie += zo, Tt = Uo; } return { subset: Ie, resolvedWidth: Tt }; - }, V2 = oe, se = me(oe); - se > _r && (V2 = vt, se = me(V2)); - let Ge = me(rt), Pr = R2 < I2.length - 1; - if (R2 + 1 === Q2 && (Pr || I2[R2] > _r)) { - if (z2 + Te + se + Ge > _r) { - let { subset: ae, resolvedWidth: Se } = Ze(z2, W); - W = ae + V2, Ar = R2, ht[R2][2] = Se, $2 = true; - } else if (K3 && K3.line !== R2) if (h3 === "center") { - let { subset: ae, resolvedWidth: Se } = Ze(z2, W); - W = ae + V2, Ar = R2, ht[R2][2] = Se, $2 = true; + }, V = oe, se = me(oe); + se > _r && (V = vt, se = me(V)); + let Ge = me(rt), Pr = R2 < I.length - 1; + if (R2 + 1 === Q && (Pr || I[R2] > _r)) { + if (z + Te + se + Ge > _r) { + let { subset: ae, resolvedWidth: Se } = Ze(z, W); + W = ae + V, Ar = R2, ht[R2][2] = Se, $ = true; + } else if (K2 && K2.line !== R2) if (h3 === "center") { + let { subset: ae, resolvedWidth: Se } = Ze(z, W); + W = ae + V, Ar = R2, ht[R2][2] = Se, $ = true; } else { - let ae = ft[B2 + 1], { subset: Se, resolvedWidth: et2 } = Ze(Te + z2, ae); - W = W + Se + V2, Ar = R2, ht[R2][2] = et2, $2 = true; + let ae = ft[B + 1], { subset: Se, resolvedWidth: et2 } = Ze(Te + z, ae); + W = W + Se + V, Ar = R2, ht[R2][2] = et2, $ = true; } } } - if (te) J2 += 0; - else if (f3) { - if (!W.includes(Nn) && !eu.includes(W) && ft[B2 + 1] && K3 && !K3.isImage && J2 === K3.y && !$2) { - qe === null && (qo = z2), qe = qe === null ? W : qe + W; + if (te) J += 0; + else if (f) { + if (!W.includes(Nn) && !eu.includes(W) && ft[B + 1] && K2 && !K2.isImage && J === K2.y && !$) { + qe === null && (qo = z), qe = qe === null ? W : qe + W; continue; } - let V2 = qe === null ? W : qe + W, se = qe === null ? z2 : qo, Ge = H2.width + z2 - se; - ee = N2.getSVG(V2.replace(/(\t)+/g, ""), { fontSize: g3, left: ct + se, top: dt + J2 + ze + Ue, letterSpacing: b2 }), qe = null, l3 && ($o += E("rect", { x: ct + se, y: dt + J2 + Ue, width: Ge, height: Or, fill: "transparent", stroke: "#575eff", "stroke-width": 1, transform: ke || void 0, "clip-path": $e ? `url(#${$e})` : void 0 }) + E("line", { x1: ct + z2, x2: ct + z2 + H2.width, y1: dt + J2 + Ue + ze, y2: dt + J2 + Ue + ze, stroke: "#14c000", "stroke-width": 1, transform: ke || void 0, "clip-path": $e ? `url(#${$e})` : void 0 })); - } else J2 += ze + Ue; - if (r2.textDecorationLine) { - let V2 = ht[R2]; - V2 && !V2[4] && (kt += Ln({ left: ct + V2[0], top: V2[1], width: V2[3], ascender: V2[2], clipPathId: $e, matrix: ke }, r2), V2[4] = 1); + let V = qe === null ? W : qe + W, se = qe === null ? z : qo, Ge = H.width + z - se; + ee = N.getSVG(V.replace(/(\t)+/g, ""), { fontSize: g2, left: ct + se, top: dt + J + ze + Ue, letterSpacing: b }), qe = null, l2 && ($o += E("rect", { x: ct + se, y: dt + J + Ue, width: Ge, height: Or, fill: "transparent", stroke: "#575eff", "stroke-width": 1, transform: ke || void 0, "clip-path": $e ? `url(#${$e})` : void 0 }) + E("line", { x1: ct + z, x2: ct + z + H.width, y1: dt + J + Ue + ze, y2: dt + J + Ue + ze, stroke: "#14c000", "stroke-width": 1, transform: ke || void 0, "clip-path": $e ? `url(#${$e})` : void 0 })); + } else J += ze + Ue; + if (r.textDecorationLine) { + let V = ht[R2]; + V && !V[4] && (kt += Ln({ left: ct + V[0], top: V[1], width: V[3], ascender: V[2], clipPathId: $e, matrix: ke }, r), V[4] = 1); } if (ee !== null) Tr += ee + " "; else { - let [V2, se] = Rn({ content: W, filter: pt, id: s2, left: ct + z2, top: dt + J2, width: Te, height: Or, matrix: ke, opacity: kr, image: te, clipPathId: $e, debug: l3, shape: !!y2, decorationShape: kt }, r2); - vn += V2, Cr += se, kt = ""; + let [V, se] = Rn({ content: W, filter: pt, id: s, left: ct + z, top: dt + J, width: Te, height: Or, matrix: ke, opacity: kr, image: te, clipPathId: $e, debug: l2, shape: !!y, decorationShape: kt }, r); + vn += V, Cr += se, kt = ""; } - if ($2) break; + if ($) break; } if (Tr) { - let B2 = r2.color !== "transparent" && kr !== 0 ? E("path", { fill: r2.color, d: Tr, transform: ke || void 0, opacity: kr !== 1 ? kr : void 0, "clip-path": $e ? `url(#${$e})` : void 0, mask: Mo ? `url(#${Mo})` : void 0, style: S3 ? `filter:${S3}` : void 0, "stroke-width": i2.WebkitTextStrokeWidth ? `${i2.WebkitTextStrokeWidth}px` : void 0, stroke: i2.WebkitTextStrokeWidth ? i2.WebkitTextStrokeColor : void 0, "stroke-linejoin": i2.WebkitTextStrokeWidth ? "round" : void 0, "paint-order": i2.WebkitTextStrokeWidth ? "stroke" : void 0 }) : ""; - y2 && (Cr = E("path", { d: Tr, transform: ke || void 0 })), vn += (pt ? pt + E("g", { filter: `url(#satori_s-${s2})` }, B2 + kt) : B2 + kt) + $o; + let B = r.color !== "transparent" && kr !== 0 ? E("path", { fill: r.color, d: Tr, transform: ke || void 0, opacity: kr !== 1 ? kr : void 0, "clip-path": $e ? `url(#${$e})` : void 0, mask: Mo ? `url(#${Mo})` : void 0, style: S2 ? `filter:${S2}` : void 0, "stroke-width": i.WebkitTextStrokeWidth ? `${i.WebkitTextStrokeWidth}px` : void 0, stroke: i.WebkitTextStrokeWidth ? i.WebkitTextStrokeColor : void 0, "stroke-linejoin": i.WebkitTextStrokeWidth ? "round" : void 0, "paint-order": i.WebkitTextStrokeWidth ? "stroke" : void 0 }) : ""; + y && (Cr = E("path", { d: Tr, transform: ke || void 0 })), vn += (pt ? pt + E("g", { filter: `url(#satori_s-${s})` }, B + kt) : B + kt) + $o; } - return Cr && (r2._inheritedBackgroundClipTextPath.value += Cr), vn; + return Cr && (r._inheritedBackgroundClipTextPath.value += Cr), vn; } -function Af(e2, t2) { - let n2 = e2.Node.create(); - return n2.setAlignItems(e2.ALIGN_BASELINE), n2.setJustifyContent(ce(t2, { left: e2.JUSTIFY_FLEX_START, right: e2.JUSTIFY_FLEX_END, center: e2.JUSTIFY_CENTER, justify: e2.JUSTIFY_SPACE_BETWEEN, start: e2.JUSTIFY_FLEX_START, end: e2.JUSTIFY_FLEX_END }, e2.JUSTIFY_FLEX_START, "textAlign")), n2; +function Af(e, t) { + let n = e.Node.create(); + return n.setAlignItems(e.ALIGN_BASELINE), n.setJustifyContent(ce(t, { left: e.JUSTIFY_FLEX_START, right: e.JUSTIFY_FLEX_END, center: e.JUSTIFY_CENTER, justify: e.JUSTIFY_SPACE_BETWEEN, start: e.JUSTIFY_FLEX_START, end: e.JUSTIFY_FLEX_END }, e.JUSTIFY_FLEX_START, "textAlign")), n; } -function Of(e2) { - let t2 = /(\t)+/.exec(e2); - return t2 ? { index: t2.index, tabCount: t2[0].length } : { index: null, tabCount: 0 }; +function Of(e) { + let t = /(\t)+/.exec(e); + return t ? { index: t.index, tabCount: t[0].length } : { index: null, tabCount: 0 }; } -function Gr(e2, t2, n2, r2, i2) { - let o2 = []; - for (let l3 of t2) { - let { color: f3 } = l3; - if (!o2.length && (o2.push({ offset: 0, color: f3 }), !l3.offset || l3.offset.value === "0")) continue; - let c3 = typeof l3.offset > "u" ? void 0 : l3.offset.unit === "%" ? +l3.offset.value / 100 : Number(O(`${l3.offset.value}${l3.offset.unit}`, n2.fontSize, e2, n2, true)) / e2; - o2.push({ offset: c3, color: f3 }); +function Gr(e, t, n, r, i) { + let o = []; + for (let l2 of t) { + let { color: f } = l2; + if (!o.length && (o.push({ offset: 0, color: f }), !l2.offset || l2.offset.value === "0")) continue; + let c2 = typeof l2.offset > "u" ? void 0 : l2.offset.unit === "%" ? +l2.offset.value / 100 : Number(O(`${l2.offset.value}${l2.offset.unit}`, n.fontSize, e, n, true)) / e; + o.push({ offset: c2, color: f }); } - o2.length || o2.push({ offset: 0, color: "transparent" }); - let u4 = o2[o2.length - 1]; - u4.offset !== 1 && (typeof u4.offset > "u" ? u4.offset = 1 : r2 ? o2[o2.length - 1] = { offset: 1, color: u4.color } : o2.push({ offset: 1, color: u4.color })); - let s2 = 0, a2 = 1; - for (let l3 = 0; l3 < o2.length; l3++) if (typeof o2[l3].offset > "u") { - for (a2 < l3 && (a2 = l3); typeof o2[a2].offset > "u"; ) a2++; - o2[l3].offset = (o2[a2].offset - o2[s2].offset) / (a2 - s2) * (l3 - s2) + o2[s2].offset; - } else s2 = l3; - return i2 === "mask" ? o2.map((l3) => { - let f3 = index_esm_default(l3.color); - return f3 ? f3.alpha === 0 ? { ...l3, color: "rgba(0, 0, 0, 1)" } : { ...l3, color: `rgba(255, 255, 255, ${f3.alpha})` } : l3; - }) : o2; + o.length || o.push({ offset: 0, color: "transparent" }); + let u2 = o[o.length - 1]; + u2.offset !== 1 && (typeof u2.offset > "u" ? u2.offset = 1 : r ? o[o.length - 1] = { offset: 1, color: u2.color } : o.push({ offset: 1, color: u2.color })); + let s = 0, a = 1; + for (let l2 = 0; l2 < o.length; l2++) if (typeof o[l2].offset > "u") { + for (a < l2 && (a = l2); typeof o[a].offset > "u"; ) a++; + o[l2].offset = (o[a].offset - o[s].offset) / (a - s) * (l2 - s) + o[s].offset; + } else s = l2; + return i === "mask" ? o.map((l2) => { + let f = index_esm_default(l2.color); + return f ? f.alpha === 0 ? { ...l2, color: "rgba(0, 0, 0, 1)" } : { ...l2, color: `rgba(255, 255, 255, ${f.alpha})` } : l2; + }) : o; } -function Cu({ id: e2, width: t2, height: n2, repeatX: r2, repeatY: i2 }, o2, u4, s2, a2, l3) { - let f3 = P(o2), [c3, p2] = u4, d3 = o2.startsWith("repeating"), h3, m3, x3; - if (f3.orientation.type === "directional") h3 = Rf(f3.orientation.value), m3 = Math.sqrt(Math.pow((h3.x2 - h3.x1) * c3, 2) + Math.pow((h3.y2 - h3.y1) * p2, 2)); - else if (f3.orientation.type === "angular") { - let { length: y2, ...T2 } = Lf(_n(`${f3.orientation.value.value}${f3.orientation.value.unit}`) / 180 * Math.PI, c3, p2); - m3 = y2, h3 = T2; +function Cu({ id: e, width: t, height: n, repeatX: r, repeatY: i }, o, u2, s, a, l2) { + let f = P(o), [c2, p] = u2, d2 = o.startsWith("repeating"), h3, m2, x2; + if (f.orientation.type === "directional") h3 = Rf(f.orientation.value), m2 = Math.sqrt(Math.pow((h3.x2 - h3.x1) * c2, 2) + Math.pow((h3.y2 - h3.y1) * p, 2)); + else if (f.orientation.type === "angular") { + let { length: y, ...T } = Lf(_n(`${f.orientation.value.value}${f.orientation.value.unit}`) / 180 * Math.PI, c2, p); + m2 = y, h3 = T; } - x3 = d3 ? Mf(f3.stops, m3, h3, a2) : h3; - let g3 = Gr(d3 ? If(f3.stops, m3) : m3, f3.stops, a2, d3, l3), S3 = `satori_bi${e2}`, v3 = `satori_pattern_${e2}`, b2 = E("pattern", { id: v3, x: s2[0] / t2, y: s2[1] / n2, width: r2 ? c3 / t2 : "1", height: i2 ? p2 / n2 : "1", patternUnits: "objectBoundingBox" }, E("linearGradient", { id: S3, ...x3, spreadMethod: d3 ? "repeat" : "pad" }, g3.map((y2) => E("stop", { offset: (y2.offset ?? 0) * 100 + "%", "stop-color": y2.color })).join("")) + E("rect", { x: 0, y: 0, width: c3, height: p2, fill: `url(#${S3})` })); - return [v3, b2]; + x2 = d2 ? Mf(f.stops, m2, h3, a) : h3; + let g2 = Gr(d2 ? If(f.stops, m2) : m2, f.stops, a, d2, l2), S2 = `satori_bi${e}`, v2 = `satori_pattern_${e}`, b = E("pattern", { id: v2, x: s[0] / t, y: s[1] / n, width: r ? c2 / t : "1", height: i ? p / n : "1", patternUnits: "objectBoundingBox" }, E("linearGradient", { id: S2, ...x2, spreadMethod: d2 ? "repeat" : "pad" }, g2.map((y) => E("stop", { offset: (y.offset ?? 0) * 100 + "%", "stop-color": y.color })).join("")) + E("rect", { x: 0, y: 0, width: c2, height: p, fill: `url(#${S2})` })); + return [v2, b]; } -function If(e2, t2) { - let n2 = e2[e2.length - 1], { offset: r2 } = n2; - return r2 ? r2.unit === "%" ? Number(r2.value) / 100 * t2 : Number(r2.value) : t2; +function If(e, t) { + let n = e[e.length - 1], { offset: r } = n; + return r ? r.unit === "%" ? Number(r.value) / 100 * t : Number(r.value) : t; } -function Rf(e2) { - let t2 = 0, n2 = 0, r2 = 0, i2 = 0; - return e2.includes("top") ? n2 = 1 : e2.includes("bottom") && (i2 = 1), e2.includes("left") ? t2 = 1 : e2.includes("right") && (r2 = 1), !t2 && !r2 && !n2 && !i2 && (n2 = 1), { x1: t2, y1: n2, x2: r2, y2: i2 }; +function Rf(e) { + let t = 0, n = 0, r = 0, i = 0; + return e.includes("top") ? n = 1 : e.includes("bottom") && (i = 1), e.includes("left") ? t = 1 : e.includes("right") && (r = 1), !t && !r && !n && !i && (n = 1), { x1: t, y1: n, x2: r, y2: i }; } -function Lf(e2, t2, n2) { - let r2 = Math.pow(n2 / t2, 2); - e2 = (e2 % (Math.PI * 2) + Math.PI * 2) % (Math.PI * 2); - let i2, o2, u4, s2, a2, l3, f3, c3, p2 = (d3) => { - if (d3 === 0) { - i2 = 0, o2 = n2, u4 = 0, s2 = 0, a2 = n2; +function Lf(e, t, n) { + let r = Math.pow(n / t, 2); + e = (e % (Math.PI * 2) + Math.PI * 2) % (Math.PI * 2); + let i, o, u2, s, a, l2, f, c2, p = (d2) => { + if (d2 === 0) { + i = 0, o = n, u2 = 0, s = 0, a = n; return; - } else if (d3 === Math.PI / 2) { - i2 = 0, o2 = 0, u4 = t2, s2 = 0, a2 = t2; + } else if (d2 === Math.PI / 2) { + i = 0, o = 0, u2 = t, s = 0, a = t; return; } - if (d3 > 0 && d3 < Math.PI / 2) { - i2 = (r2 * t2 / 2 / Math.tan(d3) - n2 / 2) / (Math.tan(d3) + r2 / Math.tan(d3)), o2 = Math.tan(d3) * i2 + n2, u4 = Math.abs(t2 / 2 - i2) + t2 / 2, s2 = n2 / 2 - Math.abs(o2 - n2 / 2), a2 = Math.sqrt(Math.pow(u4 - i2, 2) + Math.pow(s2 - o2, 2)), f3 = (t2 / 2 / Math.tan(d3) - n2 / 2) / (Math.tan(d3) + 1 / Math.tan(d3)), c3 = Math.tan(d3) * f3 + n2, a2 = 2 * Math.sqrt(Math.pow(t2 / 2 - f3, 2) + Math.pow(n2 / 2 - c3, 2)); + if (d2 > 0 && d2 < Math.PI / 2) { + i = (r * t / 2 / Math.tan(d2) - n / 2) / (Math.tan(d2) + r / Math.tan(d2)), o = Math.tan(d2) * i + n, u2 = Math.abs(t / 2 - i) + t / 2, s = n / 2 - Math.abs(o - n / 2), a = Math.sqrt(Math.pow(u2 - i, 2) + Math.pow(s - o, 2)), f = (t / 2 / Math.tan(d2) - n / 2) / (Math.tan(d2) + 1 / Math.tan(d2)), c2 = Math.tan(d2) * f + n, a = 2 * Math.sqrt(Math.pow(t / 2 - f, 2) + Math.pow(n / 2 - c2, 2)); return; - } else if (d3 > Math.PI / 2 && d3 < Math.PI) { - i2 = (n2 / 2 + r2 * t2 / 2 / Math.tan(d3)) / (Math.tan(d3) + r2 / Math.tan(d3)), o2 = Math.tan(d3) * i2, u4 = Math.abs(t2 / 2 - i2) + t2 / 2, s2 = n2 / 2 + Math.abs(o2 - n2 / 2), f3 = (t2 / 2 / Math.tan(d3) + n2 / 2) / (Math.tan(d3) + 1 / Math.tan(d3)), c3 = Math.tan(d3) * f3, a2 = 2 * Math.sqrt(Math.pow(t2 / 2 - f3, 2) + Math.pow(n2 / 2 - c3, 2)); + } else if (d2 > Math.PI / 2 && d2 < Math.PI) { + i = (n / 2 + r * t / 2 / Math.tan(d2)) / (Math.tan(d2) + r / Math.tan(d2)), o = Math.tan(d2) * i, u2 = Math.abs(t / 2 - i) + t / 2, s = n / 2 + Math.abs(o - n / 2), f = (t / 2 / Math.tan(d2) + n / 2) / (Math.tan(d2) + 1 / Math.tan(d2)), c2 = Math.tan(d2) * f, a = 2 * Math.sqrt(Math.pow(t / 2 - f, 2) + Math.pow(n / 2 - c2, 2)); return; - } else d3 >= Math.PI && (p2(d3 - Math.PI), l3 = i2, i2 = u4, u4 = l3, l3 = o2, o2 = s2, s2 = l3); + } else d2 >= Math.PI && (p(d2 - Math.PI), l2 = i, i = u2, u2 = l2, l2 = o, o = s, s = l2); }; - return p2(e2), { x1: i2 / t2, y1: o2 / n2, x2: u4 / t2, y2: s2 / n2, length: a2 }; + return p(e), { x1: i / t, y1: o / n, x2: u2 / t, y2: s / n, length: a }; } -function Mf(e2, t2, n2, r2) { - let { x1: i2, x2: o2, y1: u4, y2: s2 } = n2, a2 = e2[0].offset ? e2[0].offset.unit === "%" ? Number(e2[0].offset.value) / 100 : O(`${e2[0].offset.value}${e2[0].offset.unit}`, r2.fontSize, t2, r2, true) / t2 : 0, l3 = e2.at(-1).offset ? e2.at(-1).offset.unit === "%" ? Number(e2.at(-1).offset.value) / 100 : O(`${e2.at(-1).offset.value}${e2.at(-1).offset.unit}`, r2.fontSize, t2, r2, true) / t2 : 1, f3 = (o2 - i2) * a2 + i2, c3 = (s2 - u4) * a2 + u4, p2 = (o2 - i2) * l3 + i2, d3 = (s2 - u4) * l3 + u4; - return { x1: f3, y1: c3, x2: p2, y2: d3 }; +function Mf(e, t, n, r) { + let { x1: i, x2: o, y1: u2, y2: s } = n, a = e[0].offset ? e[0].offset.unit === "%" ? Number(e[0].offset.value) / 100 : O(`${e[0].offset.value}${e[0].offset.unit}`, r.fontSize, t, r, true) / t : 0, l2 = e.at(-1).offset ? e.at(-1).offset.unit === "%" ? Number(e.at(-1).offset.value) / 100 : O(`${e.at(-1).offset.value}${e.at(-1).offset.unit}`, r.fontSize, t, r, true) / t : 1, f = (o - i) * a + i, c2 = (s - u2) * a + u2, p = (o - i) * l2 + i, d2 = (s - u2) * l2 + u2; + return { x1: f, y1: c2, x2: p, y2: d2 }; } -function ku({ id: e2, width: t2, height: n2, repeatX: r2, repeatY: i2 }, o2, u4, s2, a2, l3) { +function ku({ id: e, width: t, height: n, repeatX: r, repeatY: i }, o, u2, s, a, l2) { var ie; - let { shape: f3, stops: c3, position: p2, size: d3 } = K(o2), [h3, m3] = u4, x3 = h3 / 2, g3 = m3 / 2, S3 = Wf(p2.x, p2.y, h3, m3, a2.fontSize, a2); - x3 = S3.x, g3 = S3.y; - let v3 = Gr(t2, c3, a2, false, l3), b2 = `satori_radial_${e2}`, y2 = `satori_pattern_${e2}`, T2 = `satori_mask_${e2}`, A2 = $f(f3, d3, a2.fontSize, { x: x3, y: g3 }, [h3, m3], a2), P3 = E("pattern", { id: y2, x: s2[0] / t2, y: s2[1] / n2, width: r2 ? h3 / t2 : "1", height: i2 ? m3 / n2 : "1", patternUnits: "objectBoundingBox" }, E("radialGradient", { id: b2 }, v3.map((ue) => E("stop", { offset: ue.offset || 0, "stop-color": ue.color })).join("")) + E("mask", { id: T2 }, E("rect", { x: 0, y: 0, width: h3, height: m3, fill: "#fff" })) + E("rect", { x: 0, y: 0, width: h3, height: m3, fill: ((ie = v3.at(-1)) == null ? void 0 : ie.color) || "transparent" }) + E(f3, { cx: x3, cy: g3, width: h3, height: m3, ...A2, fill: `url(#${b2})`, mask: `url(#${T2})` })); - return [y2, P3]; + let { shape: f, stops: c2, position: p, size: d2 } = K(o), [h3, m2] = u2, x2 = h3 / 2, g2 = m2 / 2, S2 = Wf(p.x, p.y, h3, m2, a.fontSize, a); + x2 = S2.x, g2 = S2.y; + let v2 = Gr(t, c2, a, false, l2), b = `satori_radial_${e}`, y = `satori_pattern_${e}`, T = `satori_mask_${e}`, A = $f(f, d2, a.fontSize, { x: x2, y: g2 }, [h3, m2], a), P2 = E("pattern", { id: y, x: s[0] / t, y: s[1] / n, width: r ? h3 / t : "1", height: i ? m2 / n : "1", patternUnits: "objectBoundingBox" }, E("radialGradient", { id: b }, v2.map((ue) => E("stop", { offset: ue.offset || 0, "stop-color": ue.color })).join("")) + E("mask", { id: T }, E("rect", { x: 0, y: 0, width: h3, height: m2, fill: "#fff" })) + E("rect", { x: 0, y: 0, width: h3, height: m2, fill: ((ie = v2.at(-1)) == null ? void 0 : ie.color) || "transparent" }) + E(f, { cx: x2, cy: g2, width: h3, height: m2, ...A, fill: `url(#${b})`, mask: `url(#${T})` })); + return [y, P2]; } -function Wf(e2, t2, n2, r2, i2, o2) { - let u4 = { x: n2 / 2, y: r2 / 2 }; - return e2.type === "keyword" ? Object.assign(u4, _u(e2.value, n2, r2, "x")) : u4.x = O(`${e2.value.value}${e2.value.unit}`, i2, n2, o2, true) || n2 / 2, t2.type === "keyword" ? Object.assign(u4, _u(t2.value, n2, r2, "y")) : u4.y = O(`${t2.value.value}${t2.value.unit}`, i2, r2, o2, true) || r2 / 2, u4; +function Wf(e, t, n, r, i, o) { + let u2 = { x: n / 2, y: r / 2 }; + return e.type === "keyword" ? Object.assign(u2, _u(e.value, n, r, "x")) : u2.x = O(`${e.value.value}${e.value.unit}`, i, n, o, true) || n / 2, t.type === "keyword" ? Object.assign(u2, _u(t.value, n, r, "y")) : u2.y = O(`${t.value.value}${t.value.unit}`, i, r, o, true) || r / 2, u2; } -function _u(e2, t2, n2, r2) { - switch (e2) { +function _u(e, t, n, r) { + switch (e) { case "center": - return { [r2]: r2 === "x" ? t2 / 2 : n2 / 2 }; + return { [r]: r === "x" ? t / 2 : n / 2 }; case "left": return { x: 0 }; case "top": return { y: 0 }; case "right": - return { x: t2 }; + return { x: t }; case "bottom": - return { y: n2 }; + return { y: n }; } } -function $f(e2, t2, n2, r2, i2, o2) { - let [u4, s2] = i2, { x: a2, y: l3 } = r2, f3 = {}, c3 = 0, p2 = 0; - if (qf(t2)) { - if (t2.some((d3) => d3.value.value.startsWith("-"))) throw new Error("disallow setting negative values to the size of the shape. Check https://w3c.github.io/csswg-drafts/css-images/#valdef-rg-size-length-0"); - return e2 === "circle" ? { r: Number(O(`${t2[0].value.value}${t2[0].value.unit}`, n2, u4, o2, true)) } : { rx: Number(O(`${t2[0].value.value}${t2[0].value.unit}`, n2, u4, o2, true)), ry: Number(O(`${t2[1].value.value}${t2[1].value.unit}`, n2, s2, o2, true)) }; +function $f(e, t, n, r, i, o) { + let [u2, s] = i, { x: a, y: l2 } = r, f = {}, c2 = 0, p = 0; + if (qf(t)) { + if (t.some((d2) => d2.value.value.startsWith("-"))) throw new Error("disallow setting negative values to the size of the shape. Check https://w3c.github.io/csswg-drafts/css-images/#valdef-rg-size-length-0"); + return e === "circle" ? { r: Number(O(`${t[0].value.value}${t[0].value.unit}`, n, u2, o, true)) } : { rx: Number(O(`${t[0].value.value}${t[0].value.unit}`, n, u2, o, true)), ry: Number(O(`${t[1].value.value}${t[1].value.unit}`, n, s, o, true)) }; } - switch (t2[0].value) { + switch (t[0].value) { case "farthest-corner": - c3 = Math.max(Math.abs(u4 - a2), Math.abs(a2)), p2 = Math.max(Math.abs(s2 - l3), Math.abs(l3)); + c2 = Math.max(Math.abs(u2 - a), Math.abs(a)), p = Math.max(Math.abs(s - l2), Math.abs(l2)); break; case "closest-corner": - c3 = Math.min(Math.abs(u4 - a2), Math.abs(a2)), p2 = Math.min(Math.abs(s2 - l3), Math.abs(l3)); + c2 = Math.min(Math.abs(u2 - a), Math.abs(a)), p = Math.min(Math.abs(s - l2), Math.abs(l2)); break; case "farthest-side": - return e2 === "circle" ? f3.r = Math.max(Math.abs(u4 - a2), Math.abs(a2), Math.abs(s2 - l3), Math.abs(l3)) : (f3.rx = Math.max(Math.abs(u4 - a2), Math.abs(a2)), f3.ry = Math.max(Math.abs(s2 - l3), Math.abs(l3))), f3; + return e === "circle" ? f.r = Math.max(Math.abs(u2 - a), Math.abs(a), Math.abs(s - l2), Math.abs(l2)) : (f.rx = Math.max(Math.abs(u2 - a), Math.abs(a)), f.ry = Math.max(Math.abs(s - l2), Math.abs(l2))), f; case "closest-side": - return e2 === "circle" ? f3.r = Math.min(Math.abs(u4 - a2), Math.abs(a2), Math.abs(s2 - l3), Math.abs(l3)) : (f3.rx = Math.min(Math.abs(u4 - a2), Math.abs(a2)), f3.ry = Math.min(Math.abs(s2 - l3), Math.abs(l3))), f3; + return e === "circle" ? f.r = Math.min(Math.abs(u2 - a), Math.abs(a), Math.abs(s - l2), Math.abs(l2)) : (f.rx = Math.min(Math.abs(u2 - a), Math.abs(a)), f.ry = Math.min(Math.abs(s - l2), Math.abs(l2))), f; } - if (e2 === "circle") f3.r = Math.sqrt(c3 * c3 + p2 * p2); + if (e === "circle") f.r = Math.sqrt(c2 * c2 + p * p); else { - let d3 = p2 !== 0 ? c3 / p2 : 1; - c3 === 0 ? (f3.rx = 0, f3.ry = 0) : (f3.ry = Math.sqrt(c3 * c3 + p2 * p2 * d3 * d3) / d3, f3.rx = f3.ry * d3); + let d2 = p !== 0 ? c2 / p : 1; + c2 === 0 ? (f.rx = 0, f.ry = 0) : (f.ry = Math.sqrt(c2 * c2 + p * p * d2 * d2) / d2, f.rx = f.ry * d2); } - return f3; + return f; } -function qf(e2) { - return !e2.some((t2) => t2.type === "keyword"); +function qf(e) { + return !e.some((t) => t.type === "keyword"); } -function zf(e2, t2) { - return typeof e2 == "string" && e2.endsWith("%") ? t2 * parseFloat(e2) / 100 : +e2; +function zf(e, t) { + return typeof e == "string" && e.endsWith("%") ? t * parseFloat(e) / 100 : +e; } -function $n(e2, { x: t2, y: n2, defaultX: r2, defaultY: i2 }) { - return (e2 ? e2.split(" ").map((o2) => { +function $n(e, { x: t, y: n, defaultX: r, defaultY: i }) { + return (e ? e.split(" ").map((o) => { try { - let u4 = new Le(o2); - return u4.type === "length" || u4.type === "number" ? u4.value : u4.value + u4.unit; + let u2 = new Le(o); + return u2.type === "length" || u2.type === "number" ? u2.value : u2.value + u2.unit; } catch { return null; } - }).filter((o2) => o2 !== null) : [r2, i2]).map((o2, u4) => zf(o2, [t2, n2][u4])); + }).filter((o) => o !== null) : [r, i]).map((o, u2) => zf(o, [t, n][u2])); } -async function Lt({ id: e2, width: t2, height: n2, left: r2, top: i2 }, { image: o2, size: u4, position: s2, repeat: a2 }, l3, f3) { - a2 = a2 || "repeat", f3 = f3 || "background"; - let c3 = a2 === "repeat-x" || a2 === "repeat", p2 = a2 === "repeat-y" || a2 === "repeat", d3 = $n(u4, { x: t2, y: n2, defaultX: t2, defaultY: n2 }), h3 = $n(s2, { x: t2, y: n2, defaultX: 0, defaultY: 0 }); - if (o2.startsWith("linear-gradient(") || o2.startsWith("repeating-linear-gradient(")) return Cu({ id: e2, width: t2, height: n2, repeatX: c3, repeatY: p2 }, o2, d3, h3, l3, f3); - if (o2.startsWith("radial-gradient(")) return ku({ id: e2, width: t2, height: n2, repeatX: c3, repeatY: p2 }, o2, d3, h3, l3, f3); - if (o2.startsWith("url(")) { - let m3 = $n(u4, { x: t2, y: n2, defaultX: 0, defaultY: 0 }), [x3, g3, S3] = await bt(o2.slice(4, -1)), v3 = f3 === "mask" ? g3 || m3[0] : m3[0] || g3, b2 = f3 === "mask" ? S3 || m3[1] : m3[1] || S3; - return [`satori_bi${e2}`, E("pattern", { id: `satori_bi${e2}`, patternContentUnits: "userSpaceOnUse", patternUnits: "userSpaceOnUse", x: h3[0] + r2, y: h3[1] + i2, width: c3 ? v3 : "100%", height: p2 ? b2 : "100%" }, E("image", { x: 0, y: 0, width: v3, height: b2, preserveAspectRatio: "none", href: x3 }))]; +async function Lt({ id: e, width: t, height: n, left: r, top: i }, { image: o, size: u2, position: s, repeat: a }, l2, f) { + a = a || "repeat", f = f || "background"; + let c2 = a === "repeat-x" || a === "repeat", p = a === "repeat-y" || a === "repeat", d2 = $n(u2, { x: t, y: n, defaultX: t, defaultY: n }), h3 = $n(s, { x: t, y: n, defaultX: 0, defaultY: 0 }); + if (o.startsWith("linear-gradient(") || o.startsWith("repeating-linear-gradient(")) return Cu({ id: e, width: t, height: n, repeatX: c2, repeatY: p }, o, d2, h3, l2, f); + if (o.startsWith("radial-gradient(")) return ku({ id: e, width: t, height: n, repeatX: c2, repeatY: p }, o, d2, h3, l2, f); + if (o.startsWith("url(")) { + let m2 = $n(u2, { x: t, y: n, defaultX: 0, defaultY: 0 }), [x2, g2, S2] = await bt(o.slice(4, -1)), v2 = f === "mask" ? g2 || m2[0] : m2[0] || g2, b = f === "mask" ? S2 || m2[1] : m2[1] || S2; + return [`satori_bi${e}`, E("pattern", { id: `satori_bi${e}`, patternContentUnits: "userSpaceOnUse", patternUnits: "userSpaceOnUse", x: h3[0] + r, y: h3[1] + i, width: c2 ? v2 : "100%", height: p ? b : "100%" }, E("image", { x: 0, y: 0, width: v2, height: b, preserveAspectRatio: "none", href: x2 }))]; } - throw new Error(`Invalid background image: "${o2}"`); + throw new Error(`Invalid background image: "${o}"`); } -function Uf([e2, t2]) { - return Math.round(e2 * 1e3) === 0 && Math.round(t2 * 1e3) === 0 ? 0 : Math.round(e2 * t2 / Math.sqrt(e2 * e2 + t2 * t2) * 1e3) / 1e3; +function Uf([e, t]) { + return Math.round(e * 1e3) === 0 && Math.round(t * 1e3) === 0 ? 0 : Math.round(e * t / Math.sqrt(e * e + t * t) * 1e3) / 1e3; } -function jr(e2, t2, n2) { - return n2 < e2 + t2 && (n2 / 2 < e2 && n2 / 2 < t2 ? e2 = t2 = n2 / 2 : n2 / 2 < e2 ? e2 = n2 - t2 : n2 / 2 < t2 && (t2 = n2 - e2)), [e2, t2]; +function jr(e, t, n) { + return n < e + t && (n / 2 < e && n / 2 < t ? e = t = n / 2 : n / 2 < e ? e = n - t : n / 2 < t && (t = n - e)), [e, t]; } -function Hr(e2) { - e2[0] = e2[1] = Math.min(e2[0], e2[1]); +function Hr(e) { + e[0] = e[1] = Math.min(e[0], e[1]); } -function Vr(e2, t2, n2, r2, i2) { - if (typeof e2 == "string") { - let o2 = e2.split(" ").map((s2) => s2.trim()), u4 = !o2[1] && !o2[0].endsWith("%"); - return o2[1] = o2[1] || o2[0], [u4, [Math.min(O(o2[0], r2, t2, i2, true), t2), Math.min(O(o2[1], r2, n2, i2, true), n2)]]; +function Vr(e, t, n, r, i) { + if (typeof e == "string") { + let o = e.split(" ").map((s) => s.trim()), u2 = !o[1] && !o[0].endsWith("%"); + return o[1] = o[1] || o[0], [u2, [Math.min(O(o[0], r, t, i, true), t), Math.min(O(o[1], r, n, i, true), n)]]; } - return typeof e2 == "number" ? [true, [Math.min(e2, t2), Math.min(e2, n2)]] : [true, void 0]; + return typeof e == "number" ? [true, [Math.min(e, t), Math.min(e, n)]] : [true, void 0]; } -var Yr = (e2) => e2 && e2[0] !== 0 && e2[1] !== 0; -function Tu({ id: e2, borderRadiusPath: t2, borderType: n2, left: r2, top: i2, width: o2, height: u4 }, s2) { - let a2 = `satori_brc-${e2}`; - return [E("clipPath", { id: a2 }, E(n2, { x: r2, y: i2, width: o2, height: u4, d: t2 || void 0 })), a2]; +var Yr = (e) => e && e[0] !== 0 && e[1] !== 0; +function Tu({ id: e, borderRadiusPath: t, borderType: n, left: r, top: i, width: o, height: u2 }, s) { + let a = `satori_brc-${e}`; + return [E("clipPath", { id: a }, E(n, { x: r, y: i, width: o, height: u2, d: t || void 0 })), a]; } -function He({ left: e2, top: t2, width: n2, height: r2 }, i2, o2) { - let { borderTopLeftRadius: u4, borderTopRightRadius: s2, borderBottomLeftRadius: a2, borderBottomRightRadius: l3, fontSize: f3 } = i2, c3, p2, d3, h3; - if ([c3, u4] = Vr(u4, n2, r2, f3, i2), [p2, s2] = Vr(s2, n2, r2, f3, i2), [d3, a2] = Vr(a2, n2, r2, f3, i2), [h3, l3] = Vr(l3, n2, r2, f3, i2), !o2 && !Yr(u4) && !Yr(s2) && !Yr(a2) && !Yr(l3)) return ""; - u4 ||= [0, 0], s2 ||= [0, 0], a2 ||= [0, 0], l3 ||= [0, 0], [u4[0], s2[0]] = jr(u4[0], s2[0], n2), [a2[0], l3[0]] = jr(a2[0], l3[0], n2), [u4[1], a2[1]] = jr(u4[1], a2[1], r2), [s2[1], l3[1]] = jr(s2[1], l3[1], r2), c3 && Hr(u4), p2 && Hr(s2), d3 && Hr(a2), h3 && Hr(l3); - let m3 = []; - m3[0] = [s2, s2], m3[1] = [l3, [-l3[0], l3[1]]], m3[2] = [a2, [-a2[0], -a2[1]]], m3[3] = [u4, [u4[0], -u4[1]]]; - let x3 = `h${n2 - u4[0] - s2[0]} a${m3[0][0]} 0 0 1 ${m3[0][1]}`, g3 = `v${r2 - s2[1] - l3[1]} a${m3[1][0]} 0 0 1 ${m3[1][1]}`, S3 = `h${l3[0] + a2[0] - n2} a${m3[2][0]} 0 0 1 ${m3[2][1]}`, v3 = `v${a2[1] + u4[1] - r2} a${m3[3][0]} 0 0 1 ${m3[3][1]}`; - if (o2) { - let y2 = function(fe) { - let Q2 = Uf([u4, s2, l3, a2][fe]); - return fe === 0 ? [[e2 + u4[0] - Q2, t2 + u4[1] - Q2], [e2 + u4[0], t2]] : fe === 1 ? [[e2 + n2 - s2[0] + Q2, t2 + s2[1] - Q2], [e2 + n2, t2 + s2[1]]] : fe === 2 ? [[e2 + n2 - l3[0] + Q2, t2 + r2 - l3[1] + Q2], [e2 + n2 - l3[0], t2 + r2]] : [[e2 + a2[0] - Q2, t2 + r2 - a2[1] + Q2], [e2, t2 + r2 - a2[1]]]; - }, b2 = o2.indexOf(false); - if (!o2.includes(true)) throw new Error("Invalid `partialSides`."); - if (b2 === -1) b2 = 0; - else for (; !o2[b2]; ) b2 = (b2 + 1) % 4; - let T2 = "", A2 = y2(b2), P3 = `M${A2[0]} A${m3[(b2 + 3) % 4][0]} 0 0 1 ${A2[1]}`, j2 = 0; - for (; j2 < 4 && o2[(b2 + j2) % 4]; j2++) T2 += P3 + " ", P3 = [x3, g3, S3, v3][(b2 + j2) % 4]; - let ie = (b2 + j2) % 4; - T2 += P3.split(" ")[0]; - let ue = y2(ie); - return T2 += ` A${m3[(ie + 3) % 4][0]} 0 0 1 ${ue[0]}`, T2; +function He({ left: e, top: t, width: n, height: r }, i, o) { + let { borderTopLeftRadius: u2, borderTopRightRadius: s, borderBottomLeftRadius: a, borderBottomRightRadius: l2, fontSize: f } = i, c2, p, d2, h3; + if ([c2, u2] = Vr(u2, n, r, f, i), [p, s] = Vr(s, n, r, f, i), [d2, a] = Vr(a, n, r, f, i), [h3, l2] = Vr(l2, n, r, f, i), !o && !Yr(u2) && !Yr(s) && !Yr(a) && !Yr(l2)) return ""; + u2 ||= [0, 0], s ||= [0, 0], a ||= [0, 0], l2 ||= [0, 0], [u2[0], s[0]] = jr(u2[0], s[0], n), [a[0], l2[0]] = jr(a[0], l2[0], n), [u2[1], a[1]] = jr(u2[1], a[1], r), [s[1], l2[1]] = jr(s[1], l2[1], r), c2 && Hr(u2), p && Hr(s), d2 && Hr(a), h3 && Hr(l2); + let m2 = []; + m2[0] = [s, s], m2[1] = [l2, [-l2[0], l2[1]]], m2[2] = [a, [-a[0], -a[1]]], m2[3] = [u2, [u2[0], -u2[1]]]; + let x2 = `h${n - u2[0] - s[0]} a${m2[0][0]} 0 0 1 ${m2[0][1]}`, g2 = `v${r - s[1] - l2[1]} a${m2[1][0]} 0 0 1 ${m2[1][1]}`, S2 = `h${l2[0] + a[0] - n} a${m2[2][0]} 0 0 1 ${m2[2][1]}`, v2 = `v${a[1] + u2[1] - r} a${m2[3][0]} 0 0 1 ${m2[3][1]}`; + if (o) { + let y = function(fe) { + let Q = Uf([u2, s, l2, a][fe]); + return fe === 0 ? [[e + u2[0] - Q, t + u2[1] - Q], [e + u2[0], t]] : fe === 1 ? [[e + n - s[0] + Q, t + s[1] - Q], [e + n, t + s[1]]] : fe === 2 ? [[e + n - l2[0] + Q, t + r - l2[1] + Q], [e + n - l2[0], t + r]] : [[e + a[0] - Q, t + r - a[1] + Q], [e, t + r - a[1]]]; + }, b = o.indexOf(false); + if (!o.includes(true)) throw new Error("Invalid `partialSides`."); + if (b === -1) b = 0; + else for (; !o[b]; ) b = (b + 1) % 4; + let T = "", A = y(b), P2 = `M${A[0]} A${m2[(b + 3) % 4][0]} 0 0 1 ${A[1]}`, j = 0; + for (; j < 4 && o[(b + j) % 4]; j++) T += P2 + " ", P2 = [x2, g2, S2, v2][(b + j) % 4]; + let ie = (b + j) % 4; + T += P2.split(" ")[0]; + let ue = y(ie); + return T += ` A${m2[(ie + 3) % 4][0]} 0 0 1 ${ue[0]}`, T; } - return `M${e2 + u4[0]},${t2} ${x3} ${g3} ${S3} ${v3}`; + return `M${e + u2[0]},${t} ${x2} ${g2} ${S2} ${v2}`; } -function Au(e2, t2, n2) { - return n2[e2 + "Width"] === n2[t2 + "Width"] && n2[e2 + "Style"] === n2[t2 + "Style"] && n2[e2 + "Color"] === n2[t2 + "Color"]; +function Au(e, t, n) { + return n[e + "Width"] === n[t + "Width"] && n[e + "Style"] === n[t + "Style"] && n[e + "Color"] === n[t + "Color"]; } -function Ou({ id: e2, currentClipPathId: t2, borderPath: n2, borderType: r2, left: i2, top: o2, width: u4, height: s2 }, a2) { - if (!(a2.borderTopWidth || a2.borderRightWidth || a2.borderBottomWidth || a2.borderLeftWidth)) return null; - let f3 = `satori_bc-${e2}`; - return [E("clipPath", { id: f3, "clip-path": t2 ? `url(#${t2})` : void 0 }, E(r2, { x: i2, y: o2, width: u4, height: s2, d: n2 || void 0 })), f3]; +function Ou({ id: e, currentClipPathId: t, borderPath: n, borderType: r, left: i, top: o, width: u2, height: s }, a) { + if (!(a.borderTopWidth || a.borderRightWidth || a.borderBottomWidth || a.borderLeftWidth)) return null; + let f = `satori_bc-${e}`; + return [E("clipPath", { id: f, "clip-path": t ? `url(#${t})` : void 0 }, E(r, { x: i, y: o, width: u2, height: s, d: n || void 0 })), f]; } -function Mt({ left: e2, top: t2, width: n2, height: r2, props: i2, asContentMask: o2, maskBorderOnly: u4 }, s2) { - let a2 = ["borderTop", "borderRight", "borderBottom", "borderLeft"]; - if (!o2 && !a2.some((d3) => s2[d3 + "Width"])) return ""; - let l3 = "", f3 = 0; - for (; f3 > 0 && Au(a2[f3], a2[(f3 + 3) % 4], s2); ) f3 = (f3 + 3) % 4; - let c3 = [false, false, false, false], p2 = []; - for (let d3 = 0; d3 < 4; d3++) { - let h3 = (f3 + d3) % 4, m3 = (f3 + d3 + 1) % 4, x3 = a2[h3], g3 = a2[m3]; - if (c3[h3] = true, p2 = [s2[x3 + "Width"], s2[x3 + "Style"], s2[x3 + "Color"], x3], !Au(x3, g3, s2)) { - let S3 = (p2[0] || 0) + (o2 && !u4 && s2[x3.replace("border", "padding")] || 0); - S3 && (l3 += E("path", { width: n2, height: r2, ...i2, fill: "none", stroke: o2 ? "#000" : p2[2], "stroke-width": S3 * 2, "stroke-dasharray": !o2 && p2[1] === "dashed" ? S3 * 2 + " " + S3 : void 0, d: He({ left: e2, top: t2, width: n2, height: r2 }, s2, c3) })), c3 = [false, false, false, false]; +function Mt({ left: e, top: t, width: n, height: r, props: i, asContentMask: o, maskBorderOnly: u2 }, s) { + let a = ["borderTop", "borderRight", "borderBottom", "borderLeft"]; + if (!o && !a.some((d2) => s[d2 + "Width"])) return ""; + let l2 = "", f = 0; + for (; f > 0 && Au(a[f], a[(f + 3) % 4], s); ) f = (f + 3) % 4; + let c2 = [false, false, false, false], p = []; + for (let d2 = 0; d2 < 4; d2++) { + let h3 = (f + d2) % 4, m2 = (f + d2 + 1) % 4, x2 = a[h3], g2 = a[m2]; + if (c2[h3] = true, p = [s[x2 + "Width"], s[x2 + "Style"], s[x2 + "Color"], x2], !Au(x2, g2, s)) { + let S2 = (p[0] || 0) + (o && !u2 && s[x2.replace("border", "padding")] || 0); + S2 && (l2 += E("path", { width: n, height: r, ...i, fill: "none", stroke: o ? "#000" : p[2], "stroke-width": S2 * 2, "stroke-dasharray": !o && p[1] === "dashed" ? S2 * 2 + " " + S2 : void 0, d: He({ left: e, top: t, width: n, height: r }, s, c2) })), c2 = [false, false, false, false]; } } - if (c3.some(Boolean)) { - let d3 = (p2[0] || 0) + (o2 && !u4 && s2[p2[3].replace("border", "padding")] || 0); - d3 && (l3 += E("path", { width: n2, height: r2, ...i2, fill: "none", stroke: o2 ? "#000" : p2[2], "stroke-width": d3 * 2, "stroke-dasharray": !o2 && p2[1] === "dashed" ? d3 * 2 + " " + d3 : void 0, d: He({ left: e2, top: t2, width: n2, height: r2 }, s2, c3) })); + if (c2.some(Boolean)) { + let d2 = (p[0] || 0) + (o && !u2 && s[p[3].replace("border", "padding")] || 0); + d2 && (l2 += E("path", { width: n, height: r, ...i, fill: "none", stroke: o ? "#000" : p[2], "stroke-width": d2 * 2, "stroke-dasharray": !o && p[1] === "dashed" ? d2 * 2 + " " + d2 : void 0, d: He({ left: e, top: t, width: n, height: r }, s, c2) })); } - return l3; + return l2; } -function qn({ id: e2, left: t2, top: n2, width: r2, height: i2, matrix: o2, borderOnly: u4 }, s2) { - let a2 = (s2.borderLeftWidth || 0) + (u4 ? 0 : s2.paddingLeft || 0), l3 = (s2.borderTopWidth || 0) + (u4 ? 0 : s2.paddingTop || 0), f3 = (s2.borderRightWidth || 0) + (u4 ? 0 : s2.paddingRight || 0), c3 = (s2.borderBottomWidth || 0) + (u4 ? 0 : s2.paddingBottom || 0), p2 = { x: t2 + a2, y: n2 + l3, width: r2 - a2 - f3, height: i2 - l3 - c3 }; - return E("mask", { id: e2 }, E("rect", { ...p2, fill: "#fff", transform: s2.overflow === "hidden" && s2.transform && o2 ? o2 : void 0, mask: s2._inheritedMaskId ? `url(#${s2._inheritedMaskId})` : void 0 }) + Mt({ left: t2, top: n2, width: r2, height: i2, props: { transform: o2 || void 0 }, asContentMask: true, maskBorderOnly: u4 }, s2)); +function qn({ id: e, left: t, top: n, width: r, height: i, matrix: o, borderOnly: u2 }, s) { + let a = (s.borderLeftWidth || 0) + (u2 ? 0 : s.paddingLeft || 0), l2 = (s.borderTopWidth || 0) + (u2 ? 0 : s.paddingTop || 0), f = (s.borderRightWidth || 0) + (u2 ? 0 : s.paddingRight || 0), c2 = (s.borderBottomWidth || 0) + (u2 ? 0 : s.paddingBottom || 0), p = { x: t + a, y: n + l2, width: r - a - f, height: i - l2 - c2 }; + return E("mask", { id: e }, E("rect", { ...p, fill: "#fff", transform: s.overflow === "hidden" && s.transform && o ? o : void 0, mask: s._inheritedMaskId ? `url(#${s._inheritedMaskId})` : void 0 }) + Mt({ left: t, top: n, width: r, height: i, props: { transform: o || void 0 }, asContentMask: true, maskBorderOnly: u2 }, s)); } var Nt = { circle: /circle\((.+)\)/, ellipse: /ellipse\((.+)\)/, path: /path\((.+)\)/, polygon: /polygon\((.+)\)/, inset: /inset\((.+)\)/ }; -function Ru({ width: e2, height: t2 }, n2, r2) { - function i2(l3) { - let f3 = l3.match(Nt.circle); - if (!f3) return null; - let [, c3] = f3, [p2, d3 = ""] = c3.split("at").map((x3) => x3.trim()), { x: h3, y: m3 } = Iu(d3, e2, t2); - return { type: "circle", r: O(p2, r2.fontSize, Math.sqrt(Math.pow(e2, 2) + Math.pow(t2, 2)) / Math.sqrt(2), r2, true), cx: O(h3, r2.fontSize, e2, r2, true), cy: O(m3, r2.fontSize, t2, r2, true) }; +function Ru({ width: e, height: t }, n, r) { + function i(l2) { + let f = l2.match(Nt.circle); + if (!f) return null; + let [, c2] = f, [p, d2 = ""] = c2.split("at").map((x2) => x2.trim()), { x: h3, y: m2 } = Iu(d2, e, t); + return { type: "circle", r: O(p, r.fontSize, Math.sqrt(Math.pow(e, 2) + Math.pow(t, 2)) / Math.sqrt(2), r, true), cx: O(h3, r.fontSize, e, r, true), cy: O(m2, r.fontSize, t, r, true) }; } - function o2(l3) { - let f3 = l3.match(Nt.ellipse); - if (!f3) return null; - let [, c3] = f3, [p2, d3 = ""] = c3.split("at").map((S3) => S3.trim()), [h3, m3] = p2.split(" "), { x: x3, y: g3 } = Iu(d3, e2, t2); - return { type: "ellipse", rx: O(h3 || "50%", r2.fontSize, e2, r2, true), ry: O(m3 || "50%", r2.fontSize, t2, r2, true), cx: O(x3, r2.fontSize, e2, r2, true), cy: O(g3, r2.fontSize, t2, r2, true) }; + function o(l2) { + let f = l2.match(Nt.ellipse); + if (!f) return null; + let [, c2] = f, [p, d2 = ""] = c2.split("at").map((S2) => S2.trim()), [h3, m2] = p.split(" "), { x: x2, y: g2 } = Iu(d2, e, t); + return { type: "ellipse", rx: O(h3 || "50%", r.fontSize, e, r, true), ry: O(m2 || "50%", r.fontSize, t, r, true), cx: O(x2, r.fontSize, e, r, true), cy: O(g2, r.fontSize, t, r, true) }; } - function u4(l3) { - let f3 = l3.match(Nt.path); - if (!f3) return null; - let [c3, p2] = Bu(f3[1]); - return { type: "path", d: p2, "fill-rule": c3 }; + function u2(l2) { + let f = l2.match(Nt.path); + if (!f) return null; + let [c2, p] = Bu(f[1]); + return { type: "path", d: p, "fill-rule": c2 }; } - function s2(l3) { - let f3 = l3.match(Nt.polygon); - if (!f3) return null; - let [c3, p2] = Bu(f3[1]); - return { type: "polygon", "fill-rule": c3, points: p2.split(",").map((d3) => d3.split(" ").map((h3, m3) => O(h3, r2.fontSize, m3 === 0 ? e2 : t2, r2, true)).join(" ")).join(",") }; + function s(l2) { + let f = l2.match(Nt.polygon); + if (!f) return null; + let [c2, p] = Bu(f[1]); + return { type: "polygon", "fill-rule": c2, points: p.split(",").map((d2) => d2.split(" ").map((h3, m2) => O(h3, r.fontSize, m2 === 0 ? e : t, r, true)).join(" ")).join(",") }; } - function a2(l3) { - let f3 = l3.match(Nt.inset); - if (!f3) return null; - let [c3, p2] = (f3[1].includes("round") ? f3[1] : `${f3[1].trim()} round 0`).split("round"), d3 = (0, import_css_to_react_native3.getStylesForProperty)("borderRadius", p2, true), h3 = Object.values(d3).map((b2) => String(b2)).map((b2, y2) => O(b2, r2.fontSize, y2 === 0 || y2 === 2 ? t2 : e2, r2, true) || 0), m3 = Object.values((0, import_css_to_react_native3.getStylesForProperty)("margin", c3, true)).map((b2) => String(b2)).map((b2, y2) => O(b2, r2.fontSize, y2 === 0 || y2 === 2 ? t2 : e2, r2, true) || 0), x3 = m3[3], g3 = m3[0], S3 = e2 - (m3[1] + m3[3]), v3 = t2 - (m3[0] + m3[2]); - return h3.some((b2) => b2 > 0) ? { type: "path", d: He({ left: x3, top: g3, width: S3, height: v3 }, { ...n2, ...d3 }) } : { type: "rect", x: x3, y: g3, width: S3, height: v3 }; + function a(l2) { + let f = l2.match(Nt.inset); + if (!f) return null; + let [c2, p] = (f[1].includes("round") ? f[1] : `${f[1].trim()} round 0`).split("round"), d2 = (0, import_css_to_react_native3.getStylesForProperty)("borderRadius", p, true), h3 = Object.values(d2).map((b) => String(b)).map((b, y) => O(b, r.fontSize, y === 0 || y === 2 ? t : e, r, true) || 0), m2 = Object.values((0, import_css_to_react_native3.getStylesForProperty)("margin", c2, true)).map((b) => String(b)).map((b, y) => O(b, r.fontSize, y === 0 || y === 2 ? t : e, r, true) || 0), x2 = m2[3], g2 = m2[0], S2 = e - (m2[1] + m2[3]), v2 = t - (m2[0] + m2[2]); + return h3.some((b) => b > 0) ? { type: "path", d: He({ left: x2, top: g2, width: S2, height: v2 }, { ...n, ...d2 }) } : { type: "rect", x: x2, y: g2, width: S2, height: v2 }; } - return { parseCircle: i2, parseEllipse: o2, parsePath: u4, parsePolygon: s2, parseInset: a2 }; + return { parseCircle: i, parseEllipse: o, parsePath: u2, parsePolygon: s, parseInset: a }; } -function Bu(e2) { - let [, t2 = "nonzero", n2] = e2.replace(/('|")/g, "").match(/^(nonzero|evenodd)?,?(.+)/) || []; - return [t2, n2]; +function Bu(e) { + let [, t = "nonzero", n] = e.replace(/('|")/g, "").match(/^(nonzero|evenodd)?,?(.+)/) || []; + return [t, n]; } -function Iu(e2, t2, n2) { - let r2 = e2.split(" "), i2 = { x: r2[0] || "50%", y: r2[1] || "50%" }; - return r2.forEach((o2) => { - o2 === "top" ? i2.y = 0 : o2 === "bottom" ? i2.y = n2 : o2 === "left" ? i2.x = 0 : o2 === "right" ? i2.x = t2 : o2 === "center" && (i2.x = t2 / 2, i2.y = n2 / 2); - }), i2; +function Iu(e, t, n) { + let r = e.split(" "), i = { x: r[0] || "50%", y: r[1] || "50%" }; + return r.forEach((o) => { + o === "top" ? i.y = 0 : o === "bottom" ? i.y = n : o === "left" ? i.x = 0 : o === "right" ? i.x = t : o === "center" && (i.x = t / 2, i.y = n / 2); + }), i; } -function Xr(e2) { - return `satori_cp-${e2}`; +function Xr(e) { + return `satori_cp-${e}`; } -function Lu(e2) { - return `url(#${Xr(e2)})`; +function Lu(e) { + return `url(#${Xr(e)})`; } -function Mu(e2, t2, n2) { - if (t2.clipPath === "none") return ""; - let r2 = Ru(e2, t2, n2), i2 = t2.clipPath, o2 = { type: "" }; - for (let u4 of Object.keys(r2)) if (o2 = r2[u4](i2), o2) break; - if (o2) { - let { type: u4, ...s2 } = o2; - return E("clipPath", { id: Xr(e2.id), "clip-path": e2.currentClipPath, transform: `translate(${e2.left}, ${e2.top})` }, E(u4, s2)); +function Mu(e, t, n) { + if (t.clipPath === "none") return ""; + let r = Ru(e, t, n), i = t.clipPath, o = { type: "" }; + for (let u2 of Object.keys(r)) if (o = r[u2](i), o) break; + if (o) { + let { type: u2, ...s } = o; + return E("clipPath", { id: Xr(e.id), "clip-path": e.currentClipPath, transform: `translate(${e.left}, ${e.top})` }, E(u2, s)); } return ""; } -function zn({ left: e2, top: t2, width: n2, height: r2, path: i2, matrix: o2, id: u4, currentClipPath: s2, src: a2 }, l3, f3) { - let c3 = "", p2 = l3.clipPath && l3.clipPath !== "none" ? Mu({ left: e2, top: t2, width: n2, height: r2, id: u4, currentClipPath: s2}, l3, f3) : ""; - if (l3.overflow !== "hidden" && !a2) c3 = ""; +function zn({ left: e, top: t, width: n, height: r, path: i, matrix: o, id: u2, currentClipPath: s, src: a }, l2, f) { + let c2 = "", p = l2.clipPath && l2.clipPath !== "none" ? Mu({ left: e, top: t, width: n, height: r, id: u2, currentClipPath: s}, l2, f) : ""; + if (l2.overflow !== "hidden" && !a) c2 = ""; else { - let h3 = p2 ? `satori_ocp-${u4}` : Xr(u4); - c3 = E("clipPath", { id: h3, "clip-path": s2 }, E(i2 ? "path" : "rect", { x: e2, y: t2, width: n2, height: r2, d: i2 || void 0, transform: l3.overflow === "hidden" && l3.transform && o2 ? o2 : void 0 })); + let h3 = p ? `satori_ocp-${u2}` : Xr(u2); + c2 = E("clipPath", { id: h3, "clip-path": s }, E(i ? "path" : "rect", { x: e, y: t, width: n, height: r, d: i || void 0, transform: l2.overflow === "hidden" && l2.transform && o ? o : void 0 })); } - let d3 = qn({ id: `satori_om-${u4}`, left: e2, top: t2, width: n2, height: r2, matrix: o2, borderOnly: !a2 }, l3); - return p2 + c3 + d3; + let d2 = qn({ id: `satori_om-${u2}`, left: e, top: t, width: n, height: r, matrix: o, borderOnly: !a }, l2); + return p + c2 + d2; } -var Gf = (e2) => `satori_mi-${e2}`; -async function Un(e2, t2, n2) { - if (!t2.maskImage) return ["", ""]; - let { left: r2, top: i2, width: o2, height: u4, id: s2 } = e2, a2 = t2.maskImage, l3 = a2.length; - if (!l3) return ["", ""]; - let f3 = Gf(s2), c3 = ""; - for (let p2 = 0; p2 < l3; p2++) { - let d3 = a2[p2], [h3, m3] = await Lt({ id: `${f3}-${p2}`, left: r2, top: i2, width: o2, height: u4 }, d3, n2, "mask"); - c3 += m3 + E("rect", { x: r2, y: i2, width: o2, height: u4, fill: `url(#${h3})` }); +var Gf = (e) => `satori_mi-${e}`; +async function Un(e, t, n) { + if (!t.maskImage) return ["", ""]; + let { left: r, top: i, width: o, height: u2, id: s } = e, a = t.maskImage, l2 = a.length; + if (!l2) return ["", ""]; + let f = Gf(s), c2 = ""; + for (let p = 0; p < l2; p++) { + let d2 = a[p], [h3, m2] = await Lt({ id: `${f}-${p}`, left: r, top: i, width: o, height: u2 }, d2, n, "mask"); + c2 += m2 + E("rect", { x: r, y: i, width: o, height: u2, fill: `url(#${h3})` }); } - return c3 = E("mask", { id: f3 }, c3), [f3, c3]; + return c2 = E("mask", { id: f }, c2), [f, c2]; } -async function Wt({ id: e2, left: t2, top: n2, width: r2, height: i2, isInheritingTransform: o2, src: u4, debug: s2 }, a2, l3) { - if (a2.display === "none") return ""; - let f3 = !!u4, c3 = "rect", p2 = "", d3 = "", h3 = [], m3 = 1, x3 = ""; - a2.backgroundColor && h3.push(a2.backgroundColor), a2.opacity !== void 0 && (m3 = +a2.opacity), a2.transform && (p2 = Rt({ left: t2, top: n2, width: r2, height: i2 }, a2.transform, o2, a2.transformOrigin)); - let g3 = ""; - if (a2.backgroundImage) { +async function Wt({ id: e, left: t, top: n, width: r, height: i, isInheritingTransform: o, src: u2, debug: s }, a, l2) { + if (a.display === "none") return ""; + let f = !!u2, c2 = "rect", p = "", d2 = "", h3 = [], m2 = 1, x2 = ""; + a.backgroundColor && h3.push(a.backgroundColor), a.opacity !== void 0 && (m2 = +a.opacity), a.transform && (p = Rt({ left: t, top: n, width: r, height: i }, a.transform, o, a.transformOrigin)); + let g2 = ""; + if (a.backgroundImage) { let Z = []; - for (let N2 = 0; N2 < a2.backgroundImage.length; N2++) { - let Ee = a2.backgroundImage[N2], _e = await Lt({ id: e2 + "_" + N2, width: r2, height: i2, left: t2, top: n2 }, Ee, l3); + for (let N = 0; N < a.backgroundImage.length; N++) { + let Ee = a.backgroundImage[N], _e = await Lt({ id: e + "_" + N, width: r, height: i, left: t, top: n }, Ee, l2); _e && Z.unshift(_e); } - for (let N2 of Z) h3.push(`url(#${N2[0]})`), d3 += N2[1], N2[2] && (g3 += N2[2]); + for (let N of Z) h3.push(`url(#${N[0]})`), d2 += N[1], N[2] && (g2 += N[2]); } - let [S3, v3] = await Un({ id: e2, left: t2, top: n2, width: r2, height: i2 }, a2, l3); - d3 += v3; - let b2 = S3 ? `url(#${S3})` : a2._inheritedMaskId ? `url(#${a2._inheritedMaskId})` : void 0, y2 = He({ left: t2, top: n2, width: r2, height: i2 }, a2); - y2 && (c3 = "path"); - let T2 = a2._inheritedClipPathId; - s2 && (x3 = E("rect", { x: t2, y: n2, width: r2, height: i2, fill: "transparent", stroke: "#ff5757", "stroke-width": 1, transform: p2 || void 0, "clip-path": T2 ? `url(#${T2})` : void 0 })); - let { backgroundClip: A2, filter: P3 } = a2, j2 = A2 === "text" ? `url(#satori_bct-${e2})` : T2 ? `url(#${T2})` : a2.clipPath ? Lu(e2) : void 0, ie = zn({ left: t2, top: n2, width: r2, height: i2, path: y2, id: e2, matrix: p2, currentClipPath: j2, src: u4 }, a2, l3), ue = h3.map((Z) => E(c3, { x: t2, y: n2, width: r2, height: i2, fill: Z, d: y2 || void 0, transform: p2 || void 0, "clip-path": a2.transform ? void 0 : j2, style: P3 ? `filter:${P3}` : void 0, mask: a2.transform ? void 0 : b2 })).join(""), fe = Ou({ id: e2, left: t2, top: n2, width: r2, height: i2, currentClipPathId: T2, borderPath: y2, borderType: c3 }, a2), Q2; - if (f3) { - let Z = (a2.borderLeftWidth || 0) + (a2.paddingLeft || 0), N2 = (a2.borderTopWidth || 0) + (a2.paddingTop || 0), Ee = (a2.borderRightWidth || 0) + (a2.paddingRight || 0), _e = (a2.borderBottomWidth || 0) + (a2.paddingBottom || 0), me = a2.objectFit === "contain" ? "xMidYMid" : a2.objectFit === "cover" ? "xMidYMid slice" : "none"; - a2.transform && (Q2 = Tu({ id: e2, borderRadiusPath: y2, borderType: c3, left: t2, top: n2, width: r2, height: i2 })), ue += E("image", { x: t2 + Z, y: n2 + N2, width: r2 - Z - Ee, height: i2 - N2 - _e, href: u4, preserveAspectRatio: me, transform: p2 || void 0, style: P3 ? `filter:${P3}` : void 0, "clip-path": a2.transform ? Q2 ? `url(#${Q2[1]})` : void 0 : `url(#satori_cp-${e2})`, mask: a2.transform ? void 0 : S3 ? `url(#${S3})` : `url(#satori_om-${e2})` }); + let [S2, v2] = await Un({ id: e, left: t, top: n, width: r, height: i }, a, l2); + d2 += v2; + let b = S2 ? `url(#${S2})` : a._inheritedMaskId ? `url(#${a._inheritedMaskId})` : void 0, y = He({ left: t, top: n, width: r, height: i }, a); + y && (c2 = "path"); + let T = a._inheritedClipPathId; + s && (x2 = E("rect", { x: t, y: n, width: r, height: i, fill: "transparent", stroke: "#ff5757", "stroke-width": 1, transform: p || void 0, "clip-path": T ? `url(#${T})` : void 0 })); + let { backgroundClip: A, filter: P2 } = a, j = A === "text" ? `url(#satori_bct-${e})` : T ? `url(#${T})` : a.clipPath ? Lu(e) : void 0, ie = zn({ left: t, top: n, width: r, height: i, path: y, id: e, matrix: p, currentClipPath: j, src: u2 }, a, l2), ue = h3.map((Z) => E(c2, { x: t, y: n, width: r, height: i, fill: Z, d: y || void 0, transform: p || void 0, "clip-path": a.transform ? void 0 : j, style: P2 ? `filter:${P2}` : void 0, mask: a.transform ? void 0 : b })).join(""), fe = Ou({ id: e, left: t, top: n, width: r, height: i, currentClipPathId: T, borderPath: y, borderType: c2 }, a), Q; + if (f) { + let Z = (a.borderLeftWidth || 0) + (a.paddingLeft || 0), N = (a.borderTopWidth || 0) + (a.paddingTop || 0), Ee = (a.borderRightWidth || 0) + (a.paddingRight || 0), _e = (a.borderBottomWidth || 0) + (a.paddingBottom || 0), me = a.objectFit === "contain" ? "xMidYMid" : a.objectFit === "cover" ? "xMidYMid slice" : "none"; + a.transform && (Q = Tu({ id: e, borderRadiusPath: y, borderType: c2, left: t, top: n, width: r, height: i })), ue += E("image", { x: t + Z, y: n + N, width: r - Z - Ee, height: i - N - _e, href: u2, preserveAspectRatio: me, transform: p || void 0, style: P2 ? `filter:${P2}` : void 0, "clip-path": a.transform ? Q ? `url(#${Q[1]})` : void 0 : `url(#satori_cp-${e})`, mask: a.transform ? void 0 : S2 ? `url(#${S2})` : `url(#satori_om-${e})` }); } if (fe) { - d3 += fe[0]; + d2 += fe[0]; let Z = fe[1]; - ue += Mt({ left: t2, top: n2, width: r2, height: i2, props: { transform: p2 || void 0, "clip-path": `url(#${Z})` } }, a2); + ue += Mt({ left: t, top: n, width: r, height: i, props: { transform: p || void 0, "clip-path": `url(#${Z})` } }, a); } - let oe = wu({ width: r2, height: i2, id: e2, opacity: m3, shape: E(c3, { x: t2, y: n2, width: r2, height: i2, fill: "#fff", stroke: "#fff", "stroke-width": 0, d: y2 || void 0, transform: p2 || void 0, "clip-path": j2, mask: b2 }) }, a2); - return (d3 ? E("defs", {}, d3) : "") + (oe ? oe[0] : "") + (Q2 ? Q2[0] : "") + ie + (m3 !== 1 ? `` : "") + (a2.transform && (j2 || b2) ? `` : "") + (g3 || ue) + (a2.transform && (j2 || b2) ? "" : "") + (m3 !== 1 ? "" : "") + (oe ? oe[1] : "") + x3; + let oe = wu({ width: r, height: i, id: e, opacity: m2, shape: E(c2, { x: t, y: n, width: r, height: i, fill: "#fff", stroke: "#fff", "stroke-width": 0, d: y || void 0, transform: p || void 0, "clip-path": j, mask: b }) }, a); + return (d2 ? E("defs", {}, d2) : "") + (oe ? oe[0] : "") + (Q ? Q[0] : "") + ie + (m2 !== 1 ? `` : "") + (a.transform && (j || b) ? `` : "") + (g2 || ue) + (a.transform && (j || b) ? "" : "") + (m2 !== 1 ? "" : "") + (oe ? oe[1] : "") + x2; } var Nu = () => /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26F9(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC3\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC08\uDC26](?:\u200D\u2B1B)?|[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC2\uDECE-\uDEDB\uDEE0-\uDEE8]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g; var jf = new RegExp(Nu(), ""); var Gn = { emoji: jf, symbol: /\p{Symbol}/u, math: /\p{Math}/u }; var jn = { "ja-JP": /\p{scx=Hira}|\p{scx=Kana}|\p{scx=Han}|[\u3000]|[\uFF00-\uFFEF]/u, "ko-KR": /\p{scx=Hangul}/u, "zh-CN": /\p{scx=Han}/u, "zh-TW": /\p{scx=Han}/u, "zh-HK": /\p{scx=Han}/u, "th-TH": /\p{scx=Thai}/u, "bn-IN": /\p{scx=Bengali}/u, "ar-AR": /\p{scx=Arabic}/u, "ta-IN": /\p{scx=Tamil}/u, "ml-IN": /\p{scx=Malayalam}/u, "he-IL": /\p{scx=Hebrew}/u, "te-IN": /\p{scx=Telugu}/u, devanagari: /\p{scx=Devanagari}/u, kannada: /\p{scx=Kannada}/u }; var Qr = Object.keys({ ...jn, ...Gn }); -function Wu(e2) { - return Qr.includes(e2); +function Wu(e) { + return Qr.includes(e); } -function $u(e2, t2) { - for (let r2 of Object.keys(Gn)) if (Gn[r2].test(e2)) return [r2]; - let n2 = Object.keys(jn).filter((r2) => jn[r2].test(e2)); - if (n2.length === 0) return ["unknown"]; - if (t2) { - let r2 = n2.findIndex((i2) => i2 === t2); - r2 !== -1 && (n2.splice(r2, 1), n2.unshift(t2)); +function $u(e, t) { + for (let r of Object.keys(Gn)) if (Gn[r].test(e)) return [r]; + let n = Object.keys(jn).filter((r) => jn[r].test(e)); + if (n.length === 0) return ["unknown"]; + if (t) { + let r = n.findIndex((i) => i === t); + r !== -1 && (n.splice(r, 1), n.unshift(t)); } - return n2; + return n; } -function qu(e2) { - if (e2) return Qr.find((t2) => t2.toLowerCase().startsWith(e2.toLowerCase())); +function qu(e) { + if (e) return Qr.find((t) => t.toLowerCase().startsWith(e.toLowerCase())); } -async function* $t(e2, t2) { +async function* $t(e, t) { var Er; - let n2 = await Re(), { id: r2, inheritedStyle: i2, parent: o2, font: u4, debug: s2, locale: a2, embedFont: l3 = true, graphemeImages: f3, canLoadAdditionalAssets: c3, getTwStyles: p2 } = t2; - if (e2 === null || typeof e2 > "u") return yield, yield, ""; - if (!Dt(e2) || typeof e2.type == "function") { - let I2; - if (!Dt(e2)) I2 = Wn(String(e2), t2), yield (await I2.next()).value; + let n = await Re(), { id: r, inheritedStyle: i, parent: o, font: u2, debug: s, locale: a, embedFont: l2 = true, graphemeImages: f, canLoadAdditionalAssets: c2, getTwStyles: p } = t; + if (e === null || typeof e > "u") return yield, yield, ""; + if (!Dt(e) || typeof e.type == "function") { + let I; + if (!Dt(e)) I = Wn(String(e), t), yield (await I.next()).value; else { - if (Ko(e2.type)) throw new Error("Class component is not supported."); - I2 = $t(e2.type(e2.props), t2), yield (await I2.next()).value; + if (Ko(e.type)) throw new Error("Class component is not supported."); + I = $t(e.type(e.props), t), yield (await I.next()).value; } - await I2.next(); + await I.next(); let De = yield; - return (await I2.next(De)).value; + return (await I.next(De)).value; } - let { type: d3, props: h3 } = e2; + let { type: d2, props: h3 } = e; if (h3 && Jo(h3)) throw new Error("dangerouslySetInnerHTML property is not supported. See documentation for more information https://github.com/vercel/satori#jsx."); - let { style: m3, children: x3, tw: g3, lang: S3 = a2 } = h3 || {}, v3 = qu(S3); - if (g3) { - let I2 = p2(g3, m3); - m3 = Object.assign(I2, m3); + let { style: m2, children: x2, tw: g2, lang: S2 = a } = h3 || {}, v2 = qu(S2); + if (g2) { + let I = p(g2, m2); + m2 = Object.assign(I, m2); } - let b2 = n2.Node.create(); - o2.insertChild(b2, o2.getChildCount()); - let [y2, T2] = await In(b2, d3, i2, m3, h3), A2 = y2.transform === i2.transform; - if (A2 || (y2.transform.__parent = i2.transform), (y2.overflow === "hidden" || y2.clipPath && y2.clipPath !== "none") && (T2._inheritedClipPathId = `satori_cp-${r2}`, T2._inheritedMaskId = `satori_om-${r2}`), y2.maskImage && (T2._inheritedMaskId = `satori_mi-${r2}`), y2.backgroundClip === "text") { - let I2 = { value: "" }; - T2._inheritedBackgroundClipTextPath = I2, y2._inheritedBackgroundClipTextPath = I2; + let b = n.Node.create(); + o.insertChild(b, o.getChildCount()); + let [y, T] = await In(b, d2, i, m2, h3), A = y.transform === i.transform; + if (A || (y.transform.__parent = i.transform), (y.overflow === "hidden" || y.clipPath && y.clipPath !== "none") && (T._inheritedClipPathId = `satori_cp-${r}`, T._inheritedMaskId = `satori_om-${r}`), y.maskImage && (T._inheritedMaskId = `satori_mi-${r}`), y.backgroundClip === "text") { + let I = { value: "" }; + T._inheritedBackgroundClipTextPath = I, y._inheritedBackgroundClipTextPath = I; } - let P3 = Zo(x3), j2 = [], ie = 0, ue = []; - for (let I2 of P3) { - let De = $t(I2, { id: r2 + "-" + ie++, parentStyle: y2, inheritedStyle: T2, isInheritingTransform: true, parent: b2, font: u4, embedFont: l3, debug: s2, graphemeImages: f3, canLoadAdditionalAssets: c3, locale: v3, getTwStyles: p2, onNodeDetected: t2.onNodeDetected }); - c3 ? ue.push(...(await De.next()).value || []) : await De.next(), j2.push(De); + let P2 = Zo(x2), j = [], ie = 0, ue = []; + for (let I of P2) { + let De = $t(I, { id: r + "-" + ie++, parentStyle: y, inheritedStyle: T, isInheritingTransform: true, parent: b, font: u2, embedFont: l2, debug: s, graphemeImages: f, canLoadAdditionalAssets: c2, locale: v2, getTwStyles: p, onNodeDetected: t.onNodeDetected }); + c2 ? ue.push(...(await De.next()).value || []) : await De.next(), j.push(De); } yield ue; - for (let I2 of j2) await I2.next(); - let [fe, Q2] = yield, { left: oe, top: Z, width: N2, height: Ee } = b2.getComputedLayout(); - oe += fe, Z += Q2; + for (let I of j) await I.next(); + let [fe, Q] = yield, { left: oe, top: Z, width: N, height: Ee } = b.getComputedLayout(); + oe += fe, Z += Q; let _e = "", me = "", wr = "", { children: Ke, ...Ct } = h3; - if ((Er = t2.onNodeDetected) == null || Er.call(t2, { left: oe, top: Z, width: N2, height: Ee, type: d3, props: Ct, key: e2.key, textContent: Dt(Ke) ? void 0 : Ke }), d3 === "img") { - let I2 = y2.__src; - me = await Wt({ id: r2, left: oe, top: Z, width: N2, height: Ee, src: I2, isInheritingTransform: A2, debug: s2 }, y2, T2); - } else if (d3 === "svg") { - let I2 = y2.color, De = await du(e2, I2); - me = await Wt({ id: r2, left: oe, top: Z, width: N2, height: Ee, src: De, isInheritingTransform: A2, debug: s2 }, y2, T2); + if ((Er = t.onNodeDetected) == null || Er.call(t, { left: oe, top: Z, width: N, height: Ee, type: d2, props: Ct, key: e.key, textContent: Dt(Ke) ? void 0 : Ke }), d2 === "img") { + let I = y.__src; + me = await Wt({ id: r, left: oe, top: Z, width: N, height: Ee, src: I, isInheritingTransform: A, debug: s }, y, T); + } else if (d2 === "svg") { + let I = y.color, De = await du(e, I); + me = await Wt({ id: r, left: oe, top: Z, width: N, height: Ee, src: De, isInheritingTransform: A, debug: s }, y, T); } else { - let I2 = m3 == null ? void 0 : m3.display; - if (d3 === "div" && x3 && typeof x3 != "string" && I2 !== "flex" && I2 !== "none") throw new Error('Expected
to have explicit "display: flex" or "display: none" if it has more than one child node.'); - me = await Wt({ id: r2, left: oe, top: Z, width: N2, height: Ee, isInheritingTransform: A2, debug: s2 }, y2, T2); + let I = m2 == null ? void 0 : m2.display; + if (d2 === "div" && x2 && typeof x2 != "string" && I !== "flex" && I !== "none") throw new Error('Expected
to have explicit "display: flex" or "display: none" if it has more than one child node.'); + me = await Wt({ id: r, left: oe, top: Z, width: N, height: Ee, isInheritingTransform: A, debug: s }, y, T); } - for (let I2 of j2) _e += (await I2.next([oe, Z])).value; - return y2._inheritedBackgroundClipTextPath && (wr += E("clipPath", { id: `satori_bct-${r2}`, "clip-path": y2._inheritedClipPathId ? `url(#${y2._inheritedClipPathId})` : void 0 }, y2._inheritedBackgroundClipTextPath.value)), wr + me + _e; + for (let I of j) _e += (await I.next([oe, Z])).value; + return y._inheritedBackgroundClipTextPath && (wr += E("clipPath", { id: `satori_bct-${r}`, "clip-path": y._inheritedClipPathId ? `url(#${y._inheritedClipPathId})` : void 0 }, y._inheritedBackgroundClipTextPath.value)), wr + me + _e; } var zu = "unknown"; -function Hf(e2, t2, [n2, r2], [i2, o2]) { - if (n2 !== i2) return n2 ? !i2 || n2 === e2 ? -1 : i2 === e2 ? 1 : e2 === 400 && n2 === 500 || e2 === 500 && n2 === 400 ? -1 : e2 === 400 && i2 === 500 || e2 === 500 && i2 === 400 ? 1 : e2 < 400 ? n2 < e2 && i2 < e2 ? i2 - n2 : n2 < e2 ? -1 : i2 < e2 ? 1 : n2 - i2 : e2 < n2 && e2 < i2 ? n2 - i2 : e2 < n2 ? -1 : e2 < i2 ? 1 : i2 - n2 : 1; - if (r2 !== o2) { - if (r2 === t2) return -1; - if (o2 === t2) return 1; +function Hf(e, t, [n, r], [i, o]) { + if (n !== i) return n ? !i || n === e ? -1 : i === e ? 1 : e === 400 && n === 500 || e === 500 && n === 400 ? -1 : e === 400 && i === 500 || e === 500 && i === 400 ? 1 : e < 400 ? n < e && i < e ? i - n : n < e ? -1 : i < e ? 1 : n - i : e < n && e < i ? n - i : e < n ? -1 : e < i ? 1 : i - n : 1; + if (r !== o) { + if (r === t) return -1; + if (o === t) return 1; } return -1; } var qt = class { - constructor(t2) { + constructor(t) { this.fonts = /* @__PURE__ */ new Map(); - this.addFonts(t2); + this.addFonts(t); } - get({ name: t2, weight: n2, style: r2 }) { - if (!this.fonts.has(t2)) return null; - n2 === "normal" && (n2 = 400), n2 === "bold" && (n2 = 700), typeof n2 == "string" && (n2 = Number.parseInt(n2, 10)); - let i2 = [...this.fonts.get(t2)], o2 = i2[0]; - for (let u4 = 1; u4 < i2.length; u4++) { - let [, s2, a2] = o2, [, l3, f3] = i2[u4]; - Hf(n2, r2, [s2, a2], [l3, f3]) > 0 && (o2 = i2[u4]); + get({ name: t, weight: n, style: r }) { + if (!this.fonts.has(t)) return null; + n === "normal" && (n = 400), n === "bold" && (n = 700), typeof n == "string" && (n = Number.parseInt(n, 10)); + let i = [...this.fonts.get(t)], o = i[0]; + for (let u2 = 1; u2 < i.length; u2++) { + let [, s, a] = o, [, l2, f] = i[u2]; + Hf(n, r, [s, a], [l2, f]) > 0 && (o = i[u2]); } - return o2[0]; + return o[0]; } - addFonts(t2) { - for (let n2 of t2) { - let { name: r2, data: i2, lang: o2 } = n2; - if (o2 && !Wu(o2)) throw new Error(`Invalid value for props \`lang\`: "${o2}". The value must be one of the following: ${Qr.join(", ")}.`); - let u4 = o2 ?? zu, s2 = opentype_module_default.parse("buffer" in i2 ? i2.buffer.slice(i2.byteOffset, i2.byteOffset + i2.byteLength) : i2, { lowMemory: true }), a2 = s2.charToGlyphIndex; - s2.charToGlyphIndex = (f3) => { - let c3 = a2.call(s2, f3); - return c3 === 0 && s2._trackBrokenChars && s2._trackBrokenChars.push(f3), c3; - }, this.defaultFont || (this.defaultFont = s2); - let l3 = `${r2.toLowerCase()}_${u4}`; - this.fonts.has(l3) || this.fonts.set(l3, []), this.fonts.get(l3).push([s2, n2.weight, n2.style]); + addFonts(t) { + for (let n of t) { + let { name: r, data: i, lang: o } = n; + if (o && !Wu(o)) throw new Error(`Invalid value for props \`lang\`: "${o}". The value must be one of the following: ${Qr.join(", ")}.`); + let u2 = o ?? zu, s = opentype_module_default.parse("buffer" in i ? i.buffer.slice(i.byteOffset, i.byteOffset + i.byteLength) : i, { lowMemory: true }), a = s.charToGlyphIndex; + s.charToGlyphIndex = (f) => { + let c2 = a.call(s, f); + return c2 === 0 && s._trackBrokenChars && s._trackBrokenChars.push(f), c2; + }, this.defaultFont || (this.defaultFont = s); + let l2 = `${r.toLowerCase()}_${u2}`; + this.fonts.has(l2) || this.fonts.set(l2, []), this.fonts.get(l2).push([s, n.weight, n.style]); } } - getEngine(t2 = 16, n2 = "normal", { fontFamily: r2 = "sans-serif", fontWeight: i2 = 400, fontStyle: o2 = "normal" }, u4) { + getEngine(t = 16, n = "normal", { fontFamily: r = "sans-serif", fontWeight: i = 400, fontStyle: o = "normal" }, u2) { if (!this.fonts.size) throw new Error("No fonts are loaded. At least one font is required to calculate the layout."); - r2 = (Array.isArray(r2) ? r2 : [r2]).map((v3) => v3.toLowerCase()); - let s2 = []; - r2.forEach((v3) => { - let b2 = this.get({ name: v3, weight: i2, style: o2 }); - if (b2) { - s2.push(b2); + r = (Array.isArray(r) ? r : [r]).map((v2) => v2.toLowerCase()); + let s = []; + r.forEach((v2) => { + let b = this.get({ name: v2, weight: i, style: o }); + if (b) { + s.push(b); return; } - let y2 = this.get({ name: v3 + "_unknown", weight: i2, style: o2 }); - if (y2) { - s2.push(y2); + let y = this.get({ name: v2 + "_unknown", weight: i, style: o }); + if (y) { + s.push(y); return; } }); - let a2 = Array.from(this.fonts.keys()), l3 = [], f3 = [], c3 = []; - for (let v3 of a2) if (!r2.includes(v3)) if (u4) { - let b2 = Vf(v3); - b2 ? b2 === u4 ? l3.push(this.get({ name: v3, weight: i2, style: o2 })) : f3.push(this.get({ name: v3, weight: i2, style: o2 })) : c3.push(this.get({ name: v3, weight: i2, style: o2 })); - } else c3.push(this.get({ name: v3, weight: i2, style: o2 })); - let p2 = /* @__PURE__ */ new Map(), d3 = (v3, b2 = true) => { - let y2 = [...s2, ...c3, ...l3, ...b2 ? f3 : []]; - if (typeof v3 > "u") return b2 ? y2[y2.length - 1] : void 0; - let T2 = v3.charCodeAt(0); - if (p2.has(T2)) return p2.get(T2); - let A2 = y2.find((P3, j2) => !!P3.charToGlyphIndex(v3) || b2 && j2 === y2.length - 1); - return A2 && p2.set(T2, A2), A2; - }, h3 = (v3, b2 = false) => { - var T2, A2; - return ((b2 ? (A2 = (T2 = v3.tables) == null ? void 0 : T2.os2) == null ? void 0 : A2.sTypoAscender : 0) || v3.ascender) / v3.unitsPerEm * t2; - }, m3 = (v3, b2 = false) => { - var T2, A2; - return ((b2 ? (A2 = (T2 = v3.tables) == null ? void 0 : T2.os2) == null ? void 0 : A2.sTypoDescender : 0) || v3.descender) / v3.unitsPerEm * t2; - }, x3 = (v3, b2 = false) => { - var y2, T2; - if (typeof n2 == "string" && n2 === "normal") { - let A2 = (b2 ? (T2 = (y2 = v3.tables) == null ? void 0 : y2.os2) == null ? void 0 : T2.sTypoLineGap : 0) || 0; - return h3(v3, b2) - m3(v3, b2) + A2 / v3.unitsPerEm * t2; - } else if (typeof n2 == "number") return t2 * n2; - }, g3 = (v3) => d3(v3, false); - return { has: (v3) => { - if (v3 === ` + let a = Array.from(this.fonts.keys()), l2 = [], f = [], c2 = []; + for (let v2 of a) if (!r.includes(v2)) if (u2) { + let b = Vf(v2); + b ? b === u2 ? l2.push(this.get({ name: v2, weight: i, style: o })) : f.push(this.get({ name: v2, weight: i, style: o })) : c2.push(this.get({ name: v2, weight: i, style: o })); + } else c2.push(this.get({ name: v2, weight: i, style: o })); + let p = /* @__PURE__ */ new Map(), d2 = (v2, b = true) => { + let y = [...s, ...c2, ...l2, ...b ? f : []]; + if (typeof v2 > "u") return b ? y[y.length - 1] : void 0; + let T = v2.charCodeAt(0); + if (p.has(T)) return p.get(T); + let A = y.find((P2, j) => !!P2.charToGlyphIndex(v2) || b && j === y.length - 1); + return A && p.set(T, A), A; + }, h3 = (v2, b = false) => { + var T, A; + return ((b ? (A = (T = v2.tables) == null ? void 0 : T.os2) == null ? void 0 : A.sTypoAscender : 0) || v2.ascender) / v2.unitsPerEm * t; + }, m2 = (v2, b = false) => { + var T, A; + return ((b ? (A = (T = v2.tables) == null ? void 0 : T.os2) == null ? void 0 : A.sTypoDescender : 0) || v2.descender) / v2.unitsPerEm * t; + }, x2 = (v2, b = false) => { + var y, T; + if (typeof n == "string" && n === "normal") { + let A = (b ? (T = (y = v2.tables) == null ? void 0 : y.os2) == null ? void 0 : T.sTypoLineGap : 0) || 0; + return h3(v2, b) - m2(v2, b) + A / v2.unitsPerEm * t; + } else if (typeof n == "number") return t * n; + }, g2 = (v2) => d2(v2, false); + return { has: (v2) => { + if (v2 === ` `) return true; - let b2 = g3(v3); - return b2 ? (b2._trackBrokenChars = [], b2.stringToGlyphs(v3), b2._trackBrokenChars.length ? (b2._trackBrokenChars = void 0, false) : true) : false; - }, baseline: (v3, b2 = typeof v3 > "u" ? s2[0] : d3(v3)) => { - let y2 = h3(b2), T2 = m3(b2), A2 = y2 - T2; - return y2 + (x3(b2) - A2) / 2; - }, height: (v3, b2 = typeof v3 > "u" ? s2[0] : d3(v3)) => x3(b2), measure: (v3, b2) => this.measure(d3, v3, b2), getSVG: (v3, b2) => this.getSVG(d3, v3, b2) }; + let b = g2(v2); + return b ? (b._trackBrokenChars = [], b.stringToGlyphs(v2), b._trackBrokenChars.length ? (b._trackBrokenChars = void 0, false) : true) : false; + }, baseline: (v2, b = typeof v2 > "u" ? s[0] : d2(v2)) => { + let y = h3(b), T = m2(b), A = y - T; + return y + (x2(b) - A) / 2; + }, height: (v2, b = typeof v2 > "u" ? s[0] : d2(v2)) => x2(b), measure: (v2, b) => this.measure(d2, v2, b), getSVG: (v2, b) => this.getSVG(d2, v2, b) }; } - patchFontFallbackResolver(t2, n2) { - let r2 = []; - t2._trackBrokenChars = r2; - let i2 = t2.stringToGlyphs; - return t2.stringToGlyphs = (o2, ...u4) => { - let s2 = i2.call(t2, o2, ...u4); - for (let a2 = 0; a2 < s2.length; a2++) if (s2[a2].unicode === void 0) { - let l3 = r2.shift(), f3 = n2(l3); - if (f3 !== t2) { - let c3 = f3.charToGlyph(l3), p2 = t2.unitsPerEm / f3.unitsPerEm, d3 = new opentype_module_default.Path(); - d3.unitsPerEm = t2.unitsPerEm, d3.commands = c3.path.commands.map((m3) => { - let x3 = { ...m3 }; - for (let g3 in x3) typeof x3[g3] == "number" && (x3[g3] *= p2); - return x3; + patchFontFallbackResolver(t, n) { + let r = []; + t._trackBrokenChars = r; + let i = t.stringToGlyphs; + return t.stringToGlyphs = (o, ...u2) => { + let s = i.call(t, o, ...u2); + for (let a = 0; a < s.length; a++) if (s[a].unicode === void 0) { + let l2 = r.shift(), f = n(l2); + if (f !== t) { + let c2 = f.charToGlyph(l2), p = t.unitsPerEm / f.unitsPerEm, d2 = new opentype_module_default.Path(); + d2.unitsPerEm = t.unitsPerEm, d2.commands = c2.path.commands.map((m2) => { + let x2 = { ...m2 }; + for (let g2 in x2) typeof x2[g2] == "number" && (x2[g2] *= p); + return x2; }); - let h3 = new opentype_module_default.Glyph({ ...c3, advanceWidth: c3.advanceWidth * p2, xMin: c3.xMin * p2, xMax: c3.xMax * p2, yMin: c3.yMin * p2, yMax: c3.yMax * p2, path: d3 }); - s2[a2] = h3; + let h3 = new opentype_module_default.Glyph({ ...c2, advanceWidth: c2.advanceWidth * p, xMin: c2.xMin * p, xMax: c2.xMax * p, yMin: c2.yMin * p, yMax: c2.yMax * p, path: d2 }); + s[a] = h3; } } - return s2; + return s; }, () => { - t2.stringToGlyphs = i2, t2._trackBrokenChars = void 0; + t.stringToGlyphs = i, t._trackBrokenChars = void 0; }; } - measure(t2, n2, { fontSize: r2, letterSpacing: i2 = 0 }) { - let o2 = t2(n2), u4 = this.patchFontFallbackResolver(o2, t2); + measure(t, n, { fontSize: r, letterSpacing: i = 0 }) { + let o = t(n), u2 = this.patchFontFallbackResolver(o, t); try { - return o2.getAdvanceWidth(n2, r2, { letterSpacing: i2 / r2 }); + return o.getAdvanceWidth(n, r, { letterSpacing: i / r }); } finally { - u4(); + u2(); } } - getSVG(t2, n2, { fontSize: r2, top: i2, left: o2, letterSpacing: u4 = 0 }) { - let s2 = t2(n2), a2 = this.patchFontFallbackResolver(s2, t2); + getSVG(t, n, { fontSize: r, top: i, left: o, letterSpacing: u2 = 0 }) { + let s = t(n), a = this.patchFontFallbackResolver(s, t); try { - return r2 === 0 ? "" : s2.getPath(n2.replace(/\n/g, ""), o2, i2, r2, { letterSpacing: u4 / r2 }).toPathData(1); + return r === 0 ? "" : s.getPath(n.replace(/\n/g, ""), o, i, r, { letterSpacing: u2 / r }).toPathData(1); } finally { - a2(); + a(); } } }; -function Vf(e2) { - let t2 = e2.split("_"), n2 = t2[t2.length - 1]; - return n2 === zu ? void 0 : n2; +function Vf(e) { + let t = e.split("_"), n = t[t.length - 1]; + return n === zu ? void 0 : n; } -function Vn({ width: e2, height: t2, content: n2 }) { - return E("svg", { width: e2, height: t2, viewBox: `0 0 ${e2} ${t2}`, xmlns: "http://www.w3.org/2000/svg" }, n2); +function Vn({ width: e, height: t, content: n }) { + return E("svg", { width: e, height: t, viewBox: `0 0 ${e} ${t}`, xmlns: "http://www.w3.org/2000/svg" }, n); } var xl = Il(Ja()); var Bm = ["ios", "android", "windows", "macos", "web"]; -function el(e2) { - return Bm.includes(e2); +function el(e) { + return Bm.includes(e); } var Im = ["portrait", "landscape"]; -function tl(e2) { - return Im.includes(e2); +function tl(e) { + return Im.includes(e); } var Za; -(function(e2) { - e2.fontSize = "fontSize", e2.lineHeight = "lineHeight"; +(function(e) { + e.fontSize = "fontSize", e.lineHeight = "lineHeight"; })(Za || (Za = {})); var M; -(function(e2) { - e2.rem = "rem", e2.em = "em", e2.px = "px", e2.percent = "%", e2.vw = "vw", e2.vh = "vh", e2.none = ""; +(function(e) { + e.rem = "rem", e.em = "em", e.px = "px", e.percent = "%", e.vw = "vw", e.vh = "vh", e.none = ""; })(M || (M = {})); -function yo(e2) { - return typeof e2 == "string"; +function yo(e) { + return typeof e == "string"; } -function xo(e2) { - return typeof e2 == "object"; +function xo(e) { + return typeof e == "object"; } var Fo; -function D(e2) { - return { kind: "complete", style: e2 }; +function D(e) { + return { kind: "complete", style: e }; } -function re(e2, t2 = {}) { - let { fractions: n2 } = t2; - if (n2 && e2.includes("/")) { - let [o2 = "", u4 = ""] = e2.split("/", 2), s2 = re(o2), a2 = re(u4); - return !s2 || !a2 ? null : [s2[0] / a2[0], a2[1]]; +function re(e, t = {}) { + let { fractions: n } = t; + if (n && e.includes("/")) { + let [o = "", u2 = ""] = e.split("/", 2), s = re(o), a = re(u2); + return !s || !a ? null : [s[0] / a[0], a[1]]; } - let r2 = parseFloat(e2); - if (Number.isNaN(r2)) return null; - let i2 = e2.match(/(([a-z]{2,}|%))$/); - if (!i2) return [r2, M.none]; - switch (i2 == null ? void 0 : i2[1]) { + let r = parseFloat(e); + if (Number.isNaN(r)) return null; + let i = e.match(/(([a-z]{2,}|%))$/); + if (!i) return [r, M.none]; + switch (i == null ? void 0 : i[1]) { case "rem": - return [r2, M.rem]; + return [r, M.rem]; case "px": - return [r2, M.px]; + return [r, M.px]; case "em": - return [r2, M.em]; + return [r, M.em]; case "%": - return [r2, M.percent]; + return [r, M.percent]; case "vw": - return [r2, M.vw]; + return [r, M.vw]; case "vh": - return [r2, M.vh]; + return [r, M.vh]; default: return null; } } -function We(e2, t2, n2 = {}) { - let r2 = Pe(t2, n2); - return r2 === null ? null : D({ [e2]: r2 }); +function We(e, t, n = {}) { + let r = Pe(t, n); + return r === null ? null : D({ [e]: r }); } -function mn(e2, t2, n2) { - let r2 = Pe(t2); - return r2 !== null && (n2[e2] = r2), n2; +function mn(e, t, n) { + let r = Pe(t); + return r !== null && (n[e] = r), n; } -function nl(e2, t2) { - let n2 = Pe(t2); - return n2 === null ? null : { [e2]: n2 }; +function nl(e, t) { + let n = Pe(t); + return n === null ? null : { [e]: n }; } -function Pe(e2, t2 = {}) { - if (e2 === void 0) return null; - let n2 = re(String(e2), t2); - return n2 ? Qe(...n2, t2) : null; +function Pe(e, t = {}) { + if (e === void 0) return null; + let n = re(String(e), t); + return n ? Qe(...n, t) : null; } -function Qe(e2, t2, n2 = {}) { - let { isNegative: r2, device: i2 } = n2; - switch (t2) { +function Qe(e, t, n = {}) { + let { isNegative: r, device: i } = n; + switch (t) { case M.rem: - return e2 * 16 * (r2 ? -1 : 1); + return e * 16 * (r ? -1 : 1); case M.px: - return e2 * (r2 ? -1 : 1); + return e * (r ? -1 : 1); case M.percent: - return `${r2 ? "-" : ""}${e2}%`; + return `${r ? "-" : ""}${e}%`; case M.none: - return e2 * (r2 ? -1 : 1); + return e * (r ? -1 : 1); case M.vw: - return i2 != null && i2.windowDimensions ? i2.windowDimensions.width * (e2 / 100) : (he("`vw` CSS unit requires configuration with `useDeviceContext()`"), null); + return i != null && i.windowDimensions ? i.windowDimensions.width * (e / 100) : (he("`vw` CSS unit requires configuration with `useDeviceContext()`"), null); case M.vh: - return i2 != null && i2.windowDimensions ? i2.windowDimensions.height * (e2 / 100) : (he("`vh` CSS unit requires configuration with `useDeviceContext()`"), null); + return i != null && i.windowDimensions ? i.windowDimensions.height * (e / 100) : (he("`vh` CSS unit requires configuration with `useDeviceContext()`"), null); default: return null; } } -function wo(e2) { - let t2 = re(e2); - if (!t2) return null; - let [n2, r2] = t2; - switch (r2) { +function wo(e) { + let t = re(e); + if (!t) return null; + let [n, r] = t; + switch (r) { case M.rem: - return n2 * 16; + return n * 16; case M.px: - return n2; + return n; default: return null; } } var Rm = { t: "Top", tr: "TopRight", tl: "TopLeft", b: "Bottom", br: "BottomRight", bl: "BottomLeft", l: "Left", r: "Right", x: "Horizontal", y: "Vertical" }; -function Eo(e2) { - return Rm[e2 ?? ""] || "All"; +function Eo(e) { + return Rm[e ?? ""] || "All"; } -function So(e2) { - let t2 = "All"; - return [e2.replace(/^-(t|b|r|l|tr|tl|br|bl)(-|$)/, (r2, i2) => (t2 = Eo(i2), "")), t2]; +function So(e) { + let t = "All"; + return [e.replace(/^-(t|b|r|l|tr|tl|br|bl)(-|$)/, (r, i) => (t = Eo(i), "")), t]; } -function st(e2, t2 = {}) { - if (e2.includes("/")) { - let n2 = rl(e2, { ...t2, fractions: true }); - if (n2) return n2; +function st(e, t = {}) { + if (e.includes("/")) { + let n = rl(e, { ...t, fractions: true }); + if (n) return n; } - return e2[0] === "[" && (e2 = e2.slice(1, -1)), rl(e2, t2); + return e[0] === "[" && (e = e.slice(1, -1)), rl(e, t); } -function we(e2, t2, n2 = {}) { - let r2 = st(t2, n2); - return r2 === null ? null : D({ [e2]: r2 }); +function we(e, t, n = {}) { + let r = st(t, n); + return r === null ? null : D({ [e]: r }); } -function rl(e2, t2 = {}) { - if (e2 === "px") return 1; - let n2 = re(e2, t2); - if (!n2) return null; - let [r2, i2] = n2; - return t2.fractions && (i2 = M.percent, r2 *= 100), i2 === M.none && (r2 = r2 / 4, i2 = M.rem), Qe(r2, i2, t2); +function rl(e, t = {}) { + if (e === "px") return 1; + let n = re(e, t); + if (!n) return null; + let [r, i] = n; + return t.fractions && (i = M.percent, r *= 100), i === M.none && (r = r / 4, i = M.rem), Qe(r, i, t); } -function Lm(...e2) { - console.warn(...e2); +function Lm(...e) { + console.warn(...e); } -function Mm(...e2) { +function Mm(...e) { } var he = typeof process > "u" || ((Fo = process == null ? void 0 : process.env) === null || Fo === void 0 ? void 0 : Fo.JEST_WORKER_ID) === void 0 ? Lm : Mm; var Nm = [["aspect-square", D({ aspectRatio: 1 })], ["aspect-video", D({ aspectRatio: 16 / 9 })], ["items-center", D({ alignItems: "center" })], ["items-start", D({ alignItems: "flex-start" })], ["items-end", D({ alignItems: "flex-end" })], ["items-baseline", D({ alignItems: "baseline" })], ["items-stretch", D({ alignItems: "stretch" })], ["justify-start", D({ justifyContent: "flex-start" })], ["justify-end", D({ justifyContent: "flex-end" })], ["justify-center", D({ justifyContent: "center" })], ["justify-between", D({ justifyContent: "space-between" })], ["justify-around", D({ justifyContent: "space-around" })], ["justify-evenly", D({ justifyContent: "space-evenly" })], ["content-start", D({ alignContent: "flex-start" })], ["content-end", D({ alignContent: "flex-end" })], ["content-between", D({ alignContent: "space-between" })], ["content-around", D({ alignContent: "space-around" })], ["content-stretch", D({ alignContent: "stretch" })], ["content-center", D({ alignContent: "center" })], ["self-auto", D({ alignSelf: "auto" })], ["self-start", D({ alignSelf: "flex-start" })], ["self-end", D({ alignSelf: "flex-end" })], ["self-center", D({ alignSelf: "center" })], ["self-stretch", D({ alignSelf: "stretch" })], ["self-baseline", D({ alignSelf: "baseline" })], ["direction-inherit", D({ direction: "inherit" })], ["direction-ltr", D({ direction: "ltr" })], ["direction-rtl", D({ direction: "rtl" })], ["hidden", D({ display: "none" })], ["flex", D({ display: "flex" })], ["flex-row", D({ flexDirection: "row" })], ["flex-row-reverse", D({ flexDirection: "row-reverse" })], ["flex-col", D({ flexDirection: "column" })], ["flex-col-reverse", D({ flexDirection: "column-reverse" })], ["flex-wrap", D({ flexWrap: "wrap" })], ["flex-wrap-reverse", D({ flexWrap: "wrap-reverse" })], ["flex-nowrap", D({ flexWrap: "nowrap" })], ["flex-auto", D({ flexGrow: 1, flexShrink: 1, flexBasis: "auto" })], ["flex-initial", D({ flexGrow: 0, flexShrink: 1, flexBasis: "auto" })], ["flex-none", D({ flexGrow: 0, flexShrink: 0, flexBasis: "auto" })], ["overflow-hidden", D({ overflow: "hidden" })], ["overflow-visible", D({ overflow: "visible" })], ["overflow-scroll", D({ overflow: "scroll" })], ["absolute", D({ position: "absolute" })], ["relative", D({ position: "relative" })], ["italic", D({ fontStyle: "italic" })], ["not-italic", D({ fontStyle: "normal" })], ["oldstyle-nums", br("oldstyle-nums")], ["small-caps", br("small-caps")], ["lining-nums", br("lining-nums")], ["tabular-nums", br("tabular-nums")], ["proportional-nums", br("proportional-nums")], ["font-thin", D({ fontWeight: "100" })], ["font-100", D({ fontWeight: "100" })], ["font-extralight", D({ fontWeight: "200" })], ["font-200", D({ fontWeight: "200" })], ["font-light", D({ fontWeight: "300" })], ["font-300", D({ fontWeight: "300" })], ["font-normal", D({ fontWeight: "normal" })], ["font-400", D({ fontWeight: "400" })], ["font-medium", D({ fontWeight: "500" })], ["font-500", D({ fontWeight: "500" })], ["font-semibold", D({ fontWeight: "600" })], ["font-600", D({ fontWeight: "600" })], ["font-bold", D({ fontWeight: "bold" })], ["font-700", D({ fontWeight: "700" })], ["font-extrabold", D({ fontWeight: "800" })], ["font-800", D({ fontWeight: "800" })], ["font-black", D({ fontWeight: "900" })], ["font-900", D({ fontWeight: "900" })], ["include-font-padding", D({ includeFontPadding: true })], ["remove-font-padding", D({ includeFontPadding: false })], ["max-w-none", D({ maxWidth: "99999%" })], ["text-left", D({ textAlign: "left" })], ["text-center", D({ textAlign: "center" })], ["text-right", D({ textAlign: "right" })], ["text-justify", D({ textAlign: "justify" })], ["text-auto", D({ textAlign: "auto" })], ["underline", D({ textDecorationLine: "underline" })], ["line-through", D({ textDecorationLine: "line-through" })], ["no-underline", D({ textDecorationLine: "none" })], ["uppercase", D({ textTransform: "uppercase" })], ["lowercase", D({ textTransform: "lowercase" })], ["capitalize", D({ textTransform: "capitalize" })], ["normal-case", D({ textTransform: "none" })], ["w-auto", D({ width: "auto" })], ["h-auto", D({ height: "auto" })], ["shadow-sm", D({ shadowOffset: { width: 1, height: 1 }, shadowColor: "#000", shadowRadius: 1, shadowOpacity: 0.025, elevation: 1 })], ["shadow", D({ shadowOffset: { width: 1, height: 1 }, shadowColor: "#000", shadowRadius: 1, shadowOpacity: 0.075, elevation: 2 })], ["shadow-md", D({ shadowOffset: { width: 1, height: 1 }, shadowColor: "#000", shadowRadius: 3, shadowOpacity: 0.125, elevation: 3 })], ["shadow-lg", D({ shadowOffset: { width: 1, height: 1 }, shadowColor: "#000", shadowOpacity: 0.15, shadowRadius: 8, elevation: 8 })], ["shadow-xl", D({ shadowOffset: { width: 1, height: 1 }, shadowColor: "#000", shadowOpacity: 0.19, shadowRadius: 20, elevation: 12 })], ["shadow-2xl", D({ shadowOffset: { width: 1, height: 1 }, shadowColor: "#000", shadowOpacity: 0.25, shadowRadius: 30, elevation: 16 })], ["shadow-none", D({ shadowOffset: { width: 0, height: 0 }, shadowColor: "#000", shadowRadius: 0, shadowOpacity: 0, elevation: 0 })]]; var Co = Nm; -function br(e2) { - return { kind: "dependent", complete(t2) { - (!t2.fontVariant || !Array.isArray(t2.fontVariant)) && (t2.fontVariant = []), t2.fontVariant.push(e2); +function br(e) { + return { kind: "dependent", complete(t) { + (!t.fontVariant || !Array.isArray(t.fontVariant)) && (t.fontVariant = []), t.fontVariant.push(e); } }; } var vr = class { - constructor(t2) { - this.ir = new Map(Co), this.styles = /* @__PURE__ */ new Map(), this.prefixes = /* @__PURE__ */ new Map(), this.ir = new Map([...Co, ...t2 ?? []]); + constructor(t) { + this.ir = new Map(Co), this.styles = /* @__PURE__ */ new Map(), this.prefixes = /* @__PURE__ */ new Map(), this.ir = new Map([...Co, ...t ?? []]); } - getStyle(t2) { - return this.styles.get(t2); + getStyle(t) { + return this.styles.get(t); } - setStyle(t2, n2) { - this.styles.set(t2, n2); + setStyle(t, n) { + this.styles.set(t, n); } - getIr(t2) { - return this.ir.get(t2); + getIr(t) { + return this.ir.get(t); } - setIr(t2, n2) { - this.ir.set(t2, n2); + setIr(t, n) { + this.ir.set(t, n); } - getPrefixMatch(t2) { - return this.prefixes.get(t2); + getPrefixMatch(t) { + return this.prefixes.get(t); } - setPrefixMatch(t2, n2) { - this.prefixes.set(t2, n2); + setPrefixMatch(t, n) { + this.prefixes.set(t, n); } }; -function _o(e2, t2, n2 = {}) { - let r2 = t2 == null ? void 0 : t2[e2]; - if (!r2) return we("fontSize", e2, n2); - if (typeof r2 == "string") return We("fontSize", r2); - let i2 = {}, [o2, u4] = r2, s2 = nl("fontSize", o2); - if (s2 && (i2 = s2), typeof u4 == "string") return D(mn("lineHeight", il(u4, i2), i2)); - let { lineHeight: a2, letterSpacing: l3 } = u4; - return a2 && mn("lineHeight", il(a2, i2), i2), l3 && mn("letterSpacing", l3, i2), D(i2); +function _o(e, t, n = {}) { + let r = t == null ? void 0 : t[e]; + if (!r) return we("fontSize", e, n); + if (typeof r == "string") return We("fontSize", r); + let i = {}, [o, u2] = r, s = nl("fontSize", o); + if (s && (i = s), typeof u2 == "string") return D(mn("lineHeight", il(u2, i), i)); + let { lineHeight: a, letterSpacing: l2 } = u2; + return a && mn("lineHeight", il(a, i), i), l2 && mn("letterSpacing", l2, i), D(i); } -function il(e2, t2) { - let n2 = re(e2); - if (n2) { - let [r2, i2] = n2; - if ((i2 === M.none || i2 === M.em) && typeof t2.fontSize == "number") return t2.fontSize * r2; +function il(e, t) { + let n = re(e); + if (n) { + let [r, i] = n; + if ((i === M.none || i === M.em) && typeof t.fontSize == "number") return t.fontSize * r; } - return e2; + return e; } -function ko(e2, t2) { - var n2; - let r2 = (n2 = t2 == null ? void 0 : t2[e2]) !== null && n2 !== void 0 ? n2 : e2.startsWith("[") ? e2.slice(1, -1) : e2, i2 = re(r2); - if (!i2) return null; - let [o2, u4] = i2; - if (u4 === M.none) return { kind: "dependent", complete(a2) { - if (typeof a2.fontSize != "number") return "relative line-height utilities require that font-size be set"; - a2.lineHeight = a2.fontSize * o2; +function ko(e, t) { + var n; + let r = (n = t == null ? void 0 : t[e]) !== null && n !== void 0 ? n : e.startsWith("[") ? e.slice(1, -1) : e, i = re(r); + if (!i) return null; + let [o, u2] = i; + if (u2 === M.none) return { kind: "dependent", complete(a) { + if (typeof a.fontSize != "number") return "relative line-height utilities require that font-size be set"; + a.lineHeight = a.fontSize * o; } }; - let s2 = Qe(o2, u4); - return s2 !== null ? D({ lineHeight: s2 }) : null; + let s = Qe(o, u2); + return s !== null ? D({ lineHeight: s }) : null; } -function To(e2, t2, n2, r2, i2) { - let o2 = ""; - if (r2[0] === "[") o2 = r2.slice(1, -1); +function To(e, t, n, r, i) { + let o = ""; + if (r[0] === "[") o = r.slice(1, -1); else { - let l3 = i2 == null ? void 0 : i2[r2]; - if (l3) o2 = l3; + let l2 = i == null ? void 0 : i[r]; + if (l2) o = l2; else { - let f3 = st(r2); - return f3 && typeof f3 == "number" ? ol(f3, M.px, t2, e2) : null; + let f = st(r); + return f && typeof f == "number" ? ol(f, M.px, t, e) : null; } } - if (o2 === "auto") return ul(t2, e2, "auto"); - let u4 = re(o2); - if (!u4) return null; - let [s2, a2] = u4; - return n2 && (s2 = -s2), ol(s2, a2, t2, e2); + if (o === "auto") return ul(t, e, "auto"); + let u2 = re(o); + if (!u2) return null; + let [s, a] = u2; + return n && (s = -s), ol(s, a, t, e); } -function ol(e2, t2, n2, r2) { - let i2 = Qe(e2, t2); - return i2 === null ? null : ul(n2, r2, i2); +function ol(e, t, n, r) { + let i = Qe(e, t); + return i === null ? null : ul(n, r, i); } -function ul(e2, t2, n2) { - switch (e2) { +function ul(e, t, n) { + switch (e) { case "All": - return { kind: "complete", style: { [`${t2}Top`]: n2, [`${t2}Right`]: n2, [`${t2}Bottom`]: n2, [`${t2}Left`]: n2 } }; + return { kind: "complete", style: { [`${t}Top`]: n, [`${t}Right`]: n, [`${t}Bottom`]: n, [`${t}Left`]: n } }; case "Bottom": case "Top": case "Left": case "Right": - return { kind: "complete", style: { [`${t2}${e2}`]: n2 } }; + return { kind: "complete", style: { [`${t}${e}`]: n } }; case "Vertical": - return { kind: "complete", style: { [`${t2}Top`]: n2, [`${t2}Bottom`]: n2 } }; + return { kind: "complete", style: { [`${t}Top`]: n, [`${t}Bottom`]: n } }; case "Horizontal": - return { kind: "complete", style: { [`${t2}Left`]: n2, [`${t2}Right`]: n2 } }; + return { kind: "complete", style: { [`${t}Left`]: n, [`${t}Right`]: n } }; default: return null; } } -function Ao(e2) { - if (!e2) return {}; - let t2 = Object.entries(e2).reduce((i2, [o2, u4]) => { - let s2 = [0, 1 / 0, 0], a2 = typeof u4 == "string" ? { min: u4 } : u4, l3 = a2.min ? wo(a2.min) : 0; - l3 === null ? he(`invalid screen config value: ${o2}->min: ${a2.min}`) : s2[0] = l3; - let f3 = a2.max ? wo(a2.max) : 1 / 0; - return f3 === null ? he(`invalid screen config value: ${o2}->max: ${a2.max}`) : s2[1] = f3, i2[o2] = s2, i2; - }, {}), n2 = Object.values(t2); - n2.sort((i2, o2) => { - let [u4, s2] = i2, [a2, l3] = o2; - return s2 === 1 / 0 || l3 === 1 / 0 ? u4 - a2 : s2 - l3; +function Ao(e) { + if (!e) return {}; + let t = Object.entries(e).reduce((i, [o, u2]) => { + let s = [0, 1 / 0, 0], a = typeof u2 == "string" ? { min: u2 } : u2, l2 = a.min ? wo(a.min) : 0; + l2 === null ? he(`invalid screen config value: ${o}->min: ${a.min}`) : s[0] = l2; + let f = a.max ? wo(a.max) : 1 / 0; + return f === null ? he(`invalid screen config value: ${o}->max: ${a.max}`) : s[1] = f, i[o] = s, i; + }, {}), n = Object.values(t); + n.sort((i, o) => { + let [u2, s] = i, [a, l2] = o; + return s === 1 / 0 || l2 === 1 / 0 ? u2 - a : s - l2; }); - let r2 = 0; - return n2.forEach((i2) => i2[2] = r2++), t2; + let r = 0; + return n.forEach((i) => i[2] = r++), t; } -function Oo(e2, t2) { - let n2 = t2 == null ? void 0 : t2[e2]; - if (!n2) return null; - if (typeof n2 == "string") return D({ fontFamily: n2 }); - let r2 = n2[0]; - return r2 ? D({ fontFamily: r2 }) : null; +function Oo(e, t) { + let n = t == null ? void 0 : t[e]; + if (!n) return null; + if (typeof n == "string") return D({ fontFamily: n }); + let r = n[0]; + return r ? D({ fontFamily: r }) : null; } -function at(e2, t2, n2) { - if (!n2) return null; - let r2; - t2.includes("/") && ([t2 = "", r2] = t2.split("/", 2)); - let i2 = ""; - if (t2.startsWith("[#") || t2.startsWith("[rgb") ? i2 = t2.slice(1, -1) : i2 = ll(t2, n2), !i2) return null; - if (r2) { - let o2 = Number(r2); - if (!Number.isNaN(o2)) return i2 = sl(i2, o2 / 100), D({ [Dn[e2].color]: i2 }); +function at(e, t, n) { + if (!n) return null; + let r; + t.includes("/") && ([t = "", r] = t.split("/", 2)); + let i = ""; + if (t.startsWith("[#") || t.startsWith("[rgb") ? i = t.slice(1, -1) : i = ll(t, n), !i) return null; + if (r) { + let o = Number(r); + if (!Number.isNaN(o)) return i = sl(i, o / 100), D({ [Dn[e].color]: i }); } - return { kind: "dependent", complete(o2) { - let u4 = Dn[e2].opacity, s2 = o2[u4]; - typeof s2 == "number" && (i2 = sl(i2, s2)), o2[Dn[e2].color] = i2; + return { kind: "dependent", complete(o) { + let u2 = Dn[e].opacity, s = o[u2]; + typeof s == "number" && (i = sl(i, s)), o[Dn[e].color] = i; } }; } -function yr(e2, t2) { - let n2 = parseInt(t2, 10); - if (Number.isNaN(n2)) return null; - let r2 = n2 / 100; - return { kind: "complete", style: { [Dn[e2].opacity]: r2 } }; +function yr(e, t) { + let n = parseInt(t, 10); + if (Number.isNaN(n)) return null; + let r = n / 100; + return { kind: "complete", style: { [Dn[e].opacity]: r } }; } -function sl(e2, t2) { - return e2.startsWith("#") ? e2 = Wm(e2) : e2.startsWith("rgb(") && (e2 = e2.replace(/^rgb\(/, "rgba(").replace(/\)$/, ", 1)")), e2.replace(/, ?\d*\.?(\d+)\)$/, `, ${t2})`); +function sl(e, t) { + return e.startsWith("#") ? e = Wm(e) : e.startsWith("rgb(") && (e = e.replace(/^rgb\(/, "rgba(").replace(/\)$/, ", 1)")), e.replace(/, ?\d*\.?(\d+)\)$/, `, ${t})`); } -function al(e2) { - for (let t2 in e2) t2.startsWith("__opacity_") && delete e2[t2]; +function al(e) { + for (let t in e) t.startsWith("__opacity_") && delete e[t]; } var Dn = { bg: { opacity: "__opacity_bg", color: "backgroundColor" }, text: { opacity: "__opacity_text", color: "color" }, border: { opacity: "__opacity_border", color: "borderColor" }, borderTop: { opacity: "__opacity_border", color: "borderTopColor" }, borderBottom: { opacity: "__opacity_border", color: "borderBottomColor" }, borderLeft: { opacity: "__opacity_border", color: "borderLeftColor" }, borderRight: { opacity: "__opacity_border", color: "borderRightColor" }, shadow: { opacity: "__opacity_shadow", color: "shadowColor" }, tint: { opacity: "__opacity_tint", color: "tintColor" } }; -function Wm(e2) { - let t2 = e2; - e2 = e2.replace($m, (u4, s2, a2, l3) => s2 + s2 + a2 + a2 + l3 + l3); - let n2 = qm.exec(e2); - if (!n2) return he(`invalid config hex color value: ${t2}`), "rgba(0, 0, 0, 1)"; - let r2 = parseInt(n2[1], 16), i2 = parseInt(n2[2], 16), o2 = parseInt(n2[3], 16); - return `rgba(${r2}, ${i2}, ${o2}, 1)`; +function Wm(e) { + let t = e; + e = e.replace($m, (u2, s, a, l2) => s + s + a + a + l2 + l2); + let n = qm.exec(e); + if (!n) return he(`invalid config hex color value: ${t}`), "rgba(0, 0, 0, 1)"; + let r = parseInt(n[1], 16), i = parseInt(n[2], 16), o = parseInt(n[3], 16); + return `rgba(${r}, ${i}, ${o}, 1)`; } -function ll(e2, t2) { - let n2 = t2[e2]; - if (yo(n2)) return n2; - if (xo(n2) && yo(n2.DEFAULT)) return n2.DEFAULT; - let [r2 = "", ...i2] = e2.split("-"); - for (; r2 !== e2; ) { - let o2 = t2[r2]; - if (xo(o2)) return ll(i2.join("-"), o2); - if (i2.length === 0) return ""; - r2 = `${r2}-${i2.shift()}`; +function ll(e, t) { + let n = t[e]; + if (yo(n)) return n; + if (xo(n) && yo(n.DEFAULT)) return n.DEFAULT; + let [r = "", ...i] = e.split("-"); + for (; r !== e; ) { + let o = t[r]; + if (xo(o)) return ll(i.join("-"), o); + if (i.length === 0) return ""; + r = `${r}-${i.shift()}`; } return ""; } var $m = /^#?([a-f\d])([a-f\d])([a-f\d])$/i; var qm = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i; -function cl(e2, t2) { - let [n2, r2] = So(e2); - if (n2.match(/^(-?(\d)+)?$/)) return zm(n2, r2, t2 == null ? void 0 : t2.borderWidth); - if (n2 = n2.replace(/^-/, ""), ["dashed", "solid", "dotted"].includes(n2)) return D({ borderStyle: n2 }); - let o2 = "border"; - switch (r2) { +function cl(e, t) { + let [n, r] = So(e); + if (n.match(/^(-?(\d)+)?$/)) return zm(n, r, t == null ? void 0 : t.borderWidth); + if (n = n.replace(/^-/, ""), ["dashed", "solid", "dotted"].includes(n)) return D({ borderStyle: n }); + let o = "border"; + switch (r) { case "Bottom": - o2 = "borderBottom"; + o = "borderBottom"; break; case "Top": - o2 = "borderTop"; + o = "borderTop"; break; case "Left": - o2 = "borderLeft"; + o = "borderLeft"; break; case "Right": - o2 = "borderRight"; + o = "borderRight"; break; } - let u4 = at(o2, n2, t2 == null ? void 0 : t2.borderColor); - if (u4) return u4; - let s2 = `border${r2 === "All" ? "" : r2}Width`; - n2 = n2.replace(/^-/, ""); - let a2 = n2.slice(1, -1), l3 = we(s2, a2); - return typeof (l3 == null ? void 0 : l3.style[s2]) != "number" ? null : l3; + let u2 = at(o, n, t == null ? void 0 : t.borderColor); + if (u2) return u2; + let s = `border${r === "All" ? "" : r}Width`; + n = n.replace(/^-/, ""); + let a = n.slice(1, -1), l2 = we(s, a); + return typeof (l2 == null ? void 0 : l2.style[s]) != "number" ? null : l2; } -function zm(e2, t2, n2) { - if (!n2) return null; - e2 = e2.replace(/^-/, ""); - let i2 = n2[e2 === "" ? "DEFAULT" : e2]; - if (i2 === void 0) return null; - let o2 = `border${t2 === "All" ? "" : t2}Width`; - return We(o2, i2); +function zm(e, t, n) { + if (!n) return null; + e = e.replace(/^-/, ""); + let i = n[e === "" ? "DEFAULT" : e]; + if (i === void 0) return null; + let o = `border${t === "All" ? "" : t}Width`; + return We(o, i); } -function dl(e2, t2) { - if (!t2) return null; - let [n2, r2] = So(e2); - n2 = n2.replace(/^-/, ""), n2 === "" && (n2 = "DEFAULT"); - let i2 = `border${r2 === "All" ? "" : r2}Radius`, o2 = t2[n2]; - if (o2) return fl2(We(i2, o2)); - let u4 = we(i2, n2); - return typeof (u4 == null ? void 0 : u4.style[i2]) != "number" ? null : fl2(u4); +function dl(e, t) { + if (!t) return null; + let [n, r] = So(e); + n = n.replace(/^-/, ""), n === "" && (n = "DEFAULT"); + let i = `border${r === "All" ? "" : r}Radius`, o = t[n]; + if (o) return fl2(We(i, o)); + let u2 = we(i, n); + return typeof (u2 == null ? void 0 : u2.style[i]) != "number" ? null : fl2(u2); } -function fl2(e2) { - if ((e2 == null ? void 0 : e2.kind) !== "complete") return e2; - let t2 = e2.style.borderTopRadius; - t2 !== void 0 && (e2.style.borderTopLeftRadius = t2, e2.style.borderTopRightRadius = t2, delete e2.style.borderTopRadius); - let n2 = e2.style.borderBottomRadius; - n2 !== void 0 && (e2.style.borderBottomLeftRadius = n2, e2.style.borderBottomRightRadius = n2, delete e2.style.borderBottomRadius); - let r2 = e2.style.borderLeftRadius; - r2 !== void 0 && (e2.style.borderBottomLeftRadius = r2, e2.style.borderTopLeftRadius = r2, delete e2.style.borderLeftRadius); - let i2 = e2.style.borderRightRadius; - return i2 !== void 0 && (e2.style.borderBottomRightRadius = i2, e2.style.borderTopRightRadius = i2, delete e2.style.borderRightRadius), e2; +function fl2(e) { + if ((e == null ? void 0 : e.kind) !== "complete") return e; + let t = e.style.borderTopRadius; + t !== void 0 && (e.style.borderTopLeftRadius = t, e.style.borderTopRightRadius = t, delete e.style.borderTopRadius); + let n = e.style.borderBottomRadius; + n !== void 0 && (e.style.borderBottomLeftRadius = n, e.style.borderBottomRightRadius = n, delete e.style.borderBottomRadius); + let r = e.style.borderLeftRadius; + r !== void 0 && (e.style.borderBottomLeftRadius = r, e.style.borderTopLeftRadius = r, delete e.style.borderLeftRadius); + let i = e.style.borderRightRadius; + return i !== void 0 && (e.style.borderBottomRightRadius = i, e.style.borderTopRightRadius = i, delete e.style.borderRightRadius), e; } -function Et(e2, t2, n2, r2) { - let i2 = null; - e2 === "inset" && (t2 = t2.replace(/^(x|y)-/, (s2, a2) => (i2 = a2 === "x" ? "x" : "y", ""))); - let o2 = r2 == null ? void 0 : r2[t2]; - if (o2) { - let s2 = Pe(o2, { isNegative: n2 }); - if (s2 !== null) return pl(e2, i2, s2); +function Et(e, t, n, r) { + let i = null; + e === "inset" && (t = t.replace(/^(x|y)-/, (s, a) => (i = a === "x" ? "x" : "y", ""))); + let o = r == null ? void 0 : r[t]; + if (o) { + let s = Pe(o, { isNegative: n }); + if (s !== null) return pl(e, i, s); } - let u4 = st(t2, { isNegative: n2 }); - return u4 !== null ? pl(e2, i2, u4) : null; + let u2 = st(t, { isNegative: n }); + return u2 !== null ? pl(e, i, u2) : null; } -function pl(e2, t2, n2) { - if (e2 !== "inset") return D({ [e2]: n2 }); - switch (t2) { +function pl(e, t, n) { + if (e !== "inset") return D({ [e]: n }); + switch (t) { case null: - return D({ top: n2, left: n2, right: n2, bottom: n2 }); + return D({ top: n, left: n, right: n, bottom: n }); case "y": - return D({ top: n2, bottom: n2 }); + return D({ top: n, bottom: n }); case "x": - return D({ left: n2, right: n2 }); + return D({ left: n, right: n }); } } -function xr(e2, t2, n2) { - var r2; - t2 = t2.replace(/^-/, ""); - let i2 = t2 === "" ? "DEFAULT" : t2, o2 = Number((r2 = n2 == null ? void 0 : n2[i2]) !== null && r2 !== void 0 ? r2 : t2); - return Number.isNaN(o2) ? null : D({ [`flex${e2}`]: o2 }); +function xr(e, t, n) { + var r; + t = t.replace(/^-/, ""); + let i = t === "" ? "DEFAULT" : t, o = Number((r = n == null ? void 0 : n[i]) !== null && r !== void 0 ? r : t); + return Number.isNaN(o) ? null : D({ [`flex${e}`]: o }); } -function hl(e2, t2) { - var n2, r2; - if (e2 = (t2 == null ? void 0 : t2[e2]) || e2, ["min-content", "revert", "unset"].includes(e2)) return null; - if (e2.match(/^\d+(\.\d+)?$/)) return D({ flexGrow: Number(e2), flexBasis: "0%" }); - let i2 = e2.match(/^(\d+)\s+(\d+)$/); - if (i2) return D({ flexGrow: Number(i2[1]), flexShrink: Number(i2[2]) }); - if (i2 = e2.match(/^(\d+)\s+([^ ]+)$/), i2) { - let o2 = Pe((n2 = i2[2]) !== null && n2 !== void 0 ? n2 : ""); - return o2 ? D({ flexGrow: Number(i2[1]), flexBasis: o2 }) : null; +function hl(e, t) { + var n, r; + if (e = (t == null ? void 0 : t[e]) || e, ["min-content", "revert", "unset"].includes(e)) return null; + if (e.match(/^\d+(\.\d+)?$/)) return D({ flexGrow: Number(e), flexBasis: "0%" }); + let i = e.match(/^(\d+)\s+(\d+)$/); + if (i) return D({ flexGrow: Number(i[1]), flexShrink: Number(i[2]) }); + if (i = e.match(/^(\d+)\s+([^ ]+)$/), i) { + let o = Pe((n = i[2]) !== null && n !== void 0 ? n : ""); + return o ? D({ flexGrow: Number(i[1]), flexBasis: o }) : null; } - if (i2 = e2.match(/^(\d+)\s+(\d+)\s+(.+)$/), i2) { - let o2 = Pe((r2 = i2[3]) !== null && r2 !== void 0 ? r2 : ""); - return o2 ? D({ flexGrow: Number(i2[1]), flexShrink: Number(i2[2]), flexBasis: o2 }) : null; + if (i = e.match(/^(\d+)\s+(\d+)\s+(.+)$/), i) { + let o = Pe((r = i[3]) !== null && r !== void 0 ? r : ""); + return o ? D({ flexGrow: Number(i[1]), flexShrink: Number(i[2]), flexBasis: o }) : null; } return null; } -function Po(e2, t2, n2 = {}, r2) { - let i2 = r2 == null ? void 0 : r2[t2]; - return i2 !== void 0 ? We(e2, i2, n2) : we(e2, t2, n2); +function Po(e, t, n = {}, r) { + let i = r == null ? void 0 : r[t]; + return i !== void 0 ? We(e, i, n) : we(e, t, n); } -function Fr(e2, t2, n2 = {}, r2) { - let i2 = Pe(r2 == null ? void 0 : r2[t2], n2); - return i2 ? D({ [e2]: i2 }) : (t2 === "screen" && (t2 = e2.includes("Width") ? "100vw" : "100vh"), we(e2, t2, n2)); +function Fr(e, t, n = {}, r) { + let i = Pe(r == null ? void 0 : r[t], n); + return i ? D({ [e]: i }) : (t === "screen" && (t = e.includes("Width") ? "100vw" : "100vh"), we(e, t, n)); } -function ml(e2, t2, n2) { - let r2 = n2 == null ? void 0 : n2[e2]; - if (r2) { - let i2 = re(r2, { }); - if (!i2) return null; - let [o2, u4] = i2; - if (u4 === M.em) return Um(o2); - if (u4 === M.percent) return he("percentage-based letter-spacing configuration currently unsupported, switch to `em`s, or open an issue if you'd like to see support added."), null; - let s2 = Qe(o2, u4, { isNegative: t2 }); - return s2 !== null ? D({ letterSpacing: s2 }) : null; +function ml(e, t, n) { + let r = n == null ? void 0 : n[e]; + if (r) { + let i = re(r, { }); + if (!i) return null; + let [o, u2] = i; + if (u2 === M.em) return Um(o); + if (u2 === M.percent) return he("percentage-based letter-spacing configuration currently unsupported, switch to `em`s, or open an issue if you'd like to see support added."), null; + let s = Qe(o, u2, { isNegative: t }); + return s !== null ? D({ letterSpacing: s }) : null; } - return we("letterSpacing", e2, { isNegative: t2 }); + return we("letterSpacing", e, { isNegative: t }); } -function Um(e2) { - return { kind: "dependent", complete(t2) { - let n2 = t2.fontSize; - if (typeof n2 != "number" || Number.isNaN(n2)) return "tracking-X relative letter spacing classes require font-size to be set"; - t2.letterSpacing = Math.round((e2 * n2 + Number.EPSILON) * 100) / 100; +function Um(e) { + return { kind: "dependent", complete(t) { + let n = t.fontSize; + if (typeof n != "number" || Number.isNaN(n)) return "tracking-X relative letter spacing classes require font-size to be set"; + t.letterSpacing = Math.round((e * n + Number.EPSILON) * 100) / 100; } }; } -function Dl(e2, t2) { - let n2 = t2 == null ? void 0 : t2[e2]; - if (n2) { - let i2 = re(String(n2)); - if (i2) return D({ opacity: i2[0] }); +function Dl(e, t) { + let n = t == null ? void 0 : t[e]; + if (n) { + let i = re(String(n)); + if (i) return D({ opacity: i[0] }); } - let r2 = re(e2); - return r2 ? D({ opacity: r2[0] / 100 }) : null; + let r = re(e); + return r ? D({ opacity: r[0] / 100 }) : null; } -function gl(e2) { - let t2 = parseInt(e2, 10); - return Number.isNaN(t2) ? null : { kind: "complete", style: { shadowOpacity: t2 / 100 } }; +function gl(e) { + let t = parseInt(e, 10); + return Number.isNaN(t) ? null : { kind: "complete", style: { shadowOpacity: t / 100 } }; } -function bl(e2) { - if (e2.includes("/")) { - let [n2 = "", r2 = ""] = e2.split("/", 2), i2 = Bo(n2), o2 = Bo(r2); - return i2 === null || o2 === null ? null : { kind: "complete", style: { shadowOffset: { width: i2, height: o2 } } }; +function bl(e) { + if (e.includes("/")) { + let [n = "", r = ""] = e.split("/", 2), i = Bo(n), o = Bo(r); + return i === null || o === null ? null : { kind: "complete", style: { shadowOffset: { width: i, height: o } } }; } - let t2 = Bo(e2); - return t2 === null ? null : { kind: "complete", style: { shadowOffset: { width: t2, height: t2 } } }; + let t = Bo(e); + return t === null ? null : { kind: "complete", style: { shadowOffset: { width: t, height: t } } }; } -function Bo(e2) { - let t2 = st(e2); - return typeof t2 == "number" ? t2 : null; +function Bo(e) { + let t = st(e); + return typeof t == "number" ? t : null; } var St = class { - constructor(t2, n2 = {}, r2, i2, o2) { - var u4, s2, a2, l3, f3, c3; - this.config = n2, this.cache = r2, this.position = 0, this.isNull = false, this.isNegative = false, this.context = {}, this.context.device = i2; - let p2 = t2.trim().split(":"), d3 = []; - p2.length === 1 ? this.string = t2 : (this.string = (u4 = p2.pop()) !== null && u4 !== void 0 ? u4 : "", d3 = p2), this.char = this.string[0]; - let h3 = Ao((s2 = this.config.theme) === null || s2 === void 0 ? void 0 : s2.screens); - for (let m3 of d3) if (h3[m3]) { - let x3 = (a2 = h3[m3]) === null || a2 === void 0 ? void 0 : a2[2]; - x3 !== void 0 && (this.order = ((l3 = this.order) !== null && l3 !== void 0 ? l3 : 0) + x3); - let g3 = (f3 = i2.windowDimensions) === null || f3 === void 0 ? void 0 : f3.width; - if (g3) { - let [S3, v3] = (c3 = h3[m3]) !== null && c3 !== void 0 ? c3 : [0, 0]; - (g3 <= S3 || g3 > v3) && (this.isNull = true); + constructor(t, n = {}, r, i, o) { + var u2, s, a, l2, f, c2; + this.config = n, this.cache = r, this.position = 0, this.isNull = false, this.isNegative = false, this.context = {}, this.context.device = i; + let p = t.trim().split(":"), d2 = []; + p.length === 1 ? this.string = t : (this.string = (u2 = p.pop()) !== null && u2 !== void 0 ? u2 : "", d2 = p), this.char = this.string[0]; + let h3 = Ao((s = this.config.theme) === null || s === void 0 ? void 0 : s.screens); + for (let m2 of d2) if (h3[m2]) { + let x2 = (a = h3[m2]) === null || a === void 0 ? void 0 : a[2]; + x2 !== void 0 && (this.order = ((l2 = this.order) !== null && l2 !== void 0 ? l2 : 0) + x2); + let g2 = (f = i.windowDimensions) === null || f === void 0 ? void 0 : f.width; + if (g2) { + let [S2, v2] = (c2 = h3[m2]) !== null && c2 !== void 0 ? c2 : [0, 0]; + (g2 <= S2 || g2 > v2) && (this.isNull = true); } else this.isNull = true; - } else el(m3) ? this.isNull = m3 !== o2 : tl(m3) ? i2.windowDimensions ? (i2.windowDimensions.width > i2.windowDimensions.height ? "landscape" : "portrait") !== m3 ? this.isNull = true : this.incrementOrder() : this.isNull = true : m3 === "retina" ? i2.pixelDensity === 2 ? this.incrementOrder() : this.isNull = true : m3 === "dark" ? i2.colorScheme !== "dark" ? this.isNull = true : this.incrementOrder() : this.handlePossibleArbitraryBreakpointPrefix(m3) || (this.isNull = true); + } else el(m2) ? this.isNull = m2 !== o : tl(m2) ? i.windowDimensions ? (i.windowDimensions.width > i.windowDimensions.height ? "landscape" : "portrait") !== m2 ? this.isNull = true : this.incrementOrder() : this.isNull = true : m2 === "retina" ? i.pixelDensity === 2 ? this.incrementOrder() : this.isNull = true : m2 === "dark" ? i.colorScheme !== "dark" ? this.isNull = true : this.incrementOrder() : this.handlePossibleArbitraryBreakpointPrefix(m2) || (this.isNull = true); } parse() { if (this.isNull) return { kind: "null" }; - let t2 = this.cache.getIr(this.rest); - if (t2) return t2; + let t = this.cache.getIr(this.rest); + if (t) return t; this.parseIsNegative(); - let n2 = this.parseUtility(); - return n2 ? this.order !== void 0 ? { kind: "ordered", order: this.order, styleIr: n2 } : n2 : { kind: "null" }; + let n = this.parseUtility(); + return n ? this.order !== void 0 ? { kind: "ordered", order: this.order, styleIr: n } : n : { kind: "null" }; } parseUtility() { - var t2, n2, r2, i2, o2; - let u4 = this.config.theme, s2 = null; + var t, n, r, i, o; + let u2 = this.config.theme, s = null; switch (this.char) { case "m": case "p": { - let a2 = this.peekSlice(1, 3).match(/^(t|b|r|l|x|y)?-/); - if (a2) { - let l3 = this.char === "m" ? "margin" : "padding"; - this.advance(((n2 = (t2 = a2[0]) === null || t2 === void 0 ? void 0 : t2.length) !== null && n2 !== void 0 ? n2 : 0) + 1); - let f3 = Eo(a2[1]), c3 = To(l3, f3, this.isNegative, this.rest, (r2 = this.config.theme) === null || r2 === void 0 ? void 0 : r2[l3]); - if (c3) return c3; + let a = this.peekSlice(1, 3).match(/^(t|b|r|l|x|y)?-/); + if (a) { + let l2 = this.char === "m" ? "margin" : "padding"; + this.advance(((n = (t = a[0]) === null || t === void 0 ? void 0 : t.length) !== null && n !== void 0 ? n : 0) + 1); + let f = Eo(a[1]), c2 = To(l2, f, this.isNegative, this.rest, (r = this.config.theme) === null || r === void 0 ? void 0 : r[l2]); + if (c2) return c2; } } } - if (this.consumePeeked("h-") && (s2 = Po("height", this.rest, this.context, u4 == null ? void 0 : u4.height), s2) || this.consumePeeked("w-") && (s2 = Po("width", this.rest, this.context, u4 == null ? void 0 : u4.width), s2) || this.consumePeeked("min-w-") && (s2 = Fr("minWidth", this.rest, this.context, u4 == null ? void 0 : u4.minWidth), s2) || this.consumePeeked("min-h-") && (s2 = Fr("minHeight", this.rest, this.context, u4 == null ? void 0 : u4.minHeight), s2) || this.consumePeeked("max-w-") && (s2 = Fr("maxWidth", this.rest, this.context, u4 == null ? void 0 : u4.maxWidth), s2) || this.consumePeeked("max-h-") && (s2 = Fr("maxHeight", this.rest, this.context, u4 == null ? void 0 : u4.maxHeight), s2) || this.consumePeeked("leading-") && (s2 = ko(this.rest, u4 == null ? void 0 : u4.lineHeight), s2) || this.consumePeeked("text-") && (s2 = _o(this.rest, u4 == null ? void 0 : u4.fontSize, this.context), s2 || (s2 = at("text", this.rest, u4 == null ? void 0 : u4.textColor), s2) || this.consumePeeked("opacity-") && (s2 = yr("text", this.rest), s2)) || this.consumePeeked("font-") && (s2 = Oo(this.rest, u4 == null ? void 0 : u4.fontFamily), s2) || this.consumePeeked("aspect-") && (this.consumePeeked("ratio-") && he("`aspect-ratio-{ratio}` is deprecated, use `aspect-{ratio}` instead"), s2 = We("aspectRatio", this.rest, { fractions: true }), s2) || this.consumePeeked("tint-") && (s2 = at("tint", this.rest, u4 == null ? void 0 : u4.colors), s2) || this.consumePeeked("bg-") && (s2 = at("bg", this.rest, u4 == null ? void 0 : u4.backgroundColor), s2 || this.consumePeeked("opacity-") && (s2 = yr("bg", this.rest), s2)) || this.consumePeeked("border") && (s2 = cl(this.rest, u4), s2 || this.consumePeeked("-opacity-") && (s2 = yr("border", this.rest), s2)) || this.consumePeeked("rounded") && (s2 = dl(this.rest, u4 == null ? void 0 : u4.borderRadius), s2) || this.consumePeeked("bottom-") && (s2 = Et("bottom", this.rest, this.isNegative, u4 == null ? void 0 : u4.inset), s2) || this.consumePeeked("top-") && (s2 = Et("top", this.rest, this.isNegative, u4 == null ? void 0 : u4.inset), s2) || this.consumePeeked("left-") && (s2 = Et("left", this.rest, this.isNegative, u4 == null ? void 0 : u4.inset), s2) || this.consumePeeked("right-") && (s2 = Et("right", this.rest, this.isNegative, u4 == null ? void 0 : u4.inset), s2) || this.consumePeeked("inset-") && (s2 = Et("inset", this.rest, this.isNegative, u4 == null ? void 0 : u4.inset), s2) || this.consumePeeked("flex-") && (this.consumePeeked("grow") ? s2 = xr("Grow", this.rest, u4 == null ? void 0 : u4.flexGrow) : this.consumePeeked("shrink") ? s2 = xr("Shrink", this.rest, u4 == null ? void 0 : u4.flexShrink) : s2 = hl(this.rest, u4 == null ? void 0 : u4.flex), s2) || this.consumePeeked("grow") && (s2 = xr("Grow", this.rest, u4 == null ? void 0 : u4.flexGrow), s2) || this.consumePeeked("shrink") && (s2 = xr("Shrink", this.rest, u4 == null ? void 0 : u4.flexShrink), s2) || this.consumePeeked("shadow-color-opacity-") && (s2 = yr("shadow", this.rest), s2) || this.consumePeeked("shadow-opacity-") && (s2 = gl(this.rest), s2) || this.consumePeeked("shadow-offset-") && (s2 = bl(this.rest), s2) || this.consumePeeked("shadow-radius-") && (s2 = we("shadowRadius", this.rest), s2) || this.consumePeeked("shadow-") && (s2 = at("shadow", this.rest, u4 == null ? void 0 : u4.colors), s2)) return s2; + if (this.consumePeeked("h-") && (s = Po("height", this.rest, this.context, u2 == null ? void 0 : u2.height), s) || this.consumePeeked("w-") && (s = Po("width", this.rest, this.context, u2 == null ? void 0 : u2.width), s) || this.consumePeeked("min-w-") && (s = Fr("minWidth", this.rest, this.context, u2 == null ? void 0 : u2.minWidth), s) || this.consumePeeked("min-h-") && (s = Fr("minHeight", this.rest, this.context, u2 == null ? void 0 : u2.minHeight), s) || this.consumePeeked("max-w-") && (s = Fr("maxWidth", this.rest, this.context, u2 == null ? void 0 : u2.maxWidth), s) || this.consumePeeked("max-h-") && (s = Fr("maxHeight", this.rest, this.context, u2 == null ? void 0 : u2.maxHeight), s) || this.consumePeeked("leading-") && (s = ko(this.rest, u2 == null ? void 0 : u2.lineHeight), s) || this.consumePeeked("text-") && (s = _o(this.rest, u2 == null ? void 0 : u2.fontSize, this.context), s || (s = at("text", this.rest, u2 == null ? void 0 : u2.textColor), s) || this.consumePeeked("opacity-") && (s = yr("text", this.rest), s)) || this.consumePeeked("font-") && (s = Oo(this.rest, u2 == null ? void 0 : u2.fontFamily), s) || this.consumePeeked("aspect-") && (this.consumePeeked("ratio-") && he("`aspect-ratio-{ratio}` is deprecated, use `aspect-{ratio}` instead"), s = We("aspectRatio", this.rest, { fractions: true }), s) || this.consumePeeked("tint-") && (s = at("tint", this.rest, u2 == null ? void 0 : u2.colors), s) || this.consumePeeked("bg-") && (s = at("bg", this.rest, u2 == null ? void 0 : u2.backgroundColor), s || this.consumePeeked("opacity-") && (s = yr("bg", this.rest), s)) || this.consumePeeked("border") && (s = cl(this.rest, u2), s || this.consumePeeked("-opacity-") && (s = yr("border", this.rest), s)) || this.consumePeeked("rounded") && (s = dl(this.rest, u2 == null ? void 0 : u2.borderRadius), s) || this.consumePeeked("bottom-") && (s = Et("bottom", this.rest, this.isNegative, u2 == null ? void 0 : u2.inset), s) || this.consumePeeked("top-") && (s = Et("top", this.rest, this.isNegative, u2 == null ? void 0 : u2.inset), s) || this.consumePeeked("left-") && (s = Et("left", this.rest, this.isNegative, u2 == null ? void 0 : u2.inset), s) || this.consumePeeked("right-") && (s = Et("right", this.rest, this.isNegative, u2 == null ? void 0 : u2.inset), s) || this.consumePeeked("inset-") && (s = Et("inset", this.rest, this.isNegative, u2 == null ? void 0 : u2.inset), s) || this.consumePeeked("flex-") && (this.consumePeeked("grow") ? s = xr("Grow", this.rest, u2 == null ? void 0 : u2.flexGrow) : this.consumePeeked("shrink") ? s = xr("Shrink", this.rest, u2 == null ? void 0 : u2.flexShrink) : s = hl(this.rest, u2 == null ? void 0 : u2.flex), s) || this.consumePeeked("grow") && (s = xr("Grow", this.rest, u2 == null ? void 0 : u2.flexGrow), s) || this.consumePeeked("shrink") && (s = xr("Shrink", this.rest, u2 == null ? void 0 : u2.flexShrink), s) || this.consumePeeked("shadow-color-opacity-") && (s = yr("shadow", this.rest), s) || this.consumePeeked("shadow-opacity-") && (s = gl(this.rest), s) || this.consumePeeked("shadow-offset-") && (s = bl(this.rest), s) || this.consumePeeked("shadow-radius-") && (s = we("shadowRadius", this.rest), s) || this.consumePeeked("shadow-") && (s = at("shadow", this.rest, u2 == null ? void 0 : u2.colors), s)) return s; if (this.consumePeeked("elevation-")) { - let a2 = parseInt(this.rest, 10); - if (!Number.isNaN(a2)) return D({ elevation: a2 }); + let a = parseInt(this.rest, 10); + if (!Number.isNaN(a)) return D({ elevation: a }); } - if (this.consumePeeked("opacity-") && (s2 = Dl(this.rest, u4 == null ? void 0 : u4.opacity), s2) || this.consumePeeked("tracking-") && (s2 = ml(this.rest, this.isNegative, u4 == null ? void 0 : u4.letterSpacing), s2)) return s2; + if (this.consumePeeked("opacity-") && (s = Dl(this.rest, u2 == null ? void 0 : u2.opacity), s) || this.consumePeeked("tracking-") && (s = ml(this.rest, this.isNegative, u2 == null ? void 0 : u2.letterSpacing), s)) return s; if (this.consumePeeked("z-")) { - let a2 = Number((o2 = (i2 = u4 == null ? void 0 : u4.zIndex) === null || i2 === void 0 ? void 0 : i2[this.rest]) !== null && o2 !== void 0 ? o2 : this.rest); - if (!Number.isNaN(a2)) return D({ zIndex: a2 }); + let a = Number((o = (i = u2 == null ? void 0 : u2.zIndex) === null || i === void 0 ? void 0 : i[this.rest]) !== null && o !== void 0 ? o : this.rest); + if (!Number.isNaN(a)) return D({ zIndex: a }); } return he(`\`${this.rest}\` unknown or invalid utility`), null; } - handlePossibleArbitraryBreakpointPrefix(t2) { - var n2; - if (t2[0] !== "m") return false; - let r2 = t2.match(/^(min|max)-(w|h)-\[([^\]]+)\]$/); - if (!r2) return false; - if (!(!((n2 = this.context.device) === null || n2 === void 0) && n2.windowDimensions)) return this.isNull = true, true; - let i2 = this.context.device.windowDimensions, [, o2 = "", u4 = "", s2 = ""] = r2, a2 = u4 === "w" ? i2.width : i2.height, l3 = re(s2, this.context); - if (l3 === null) return this.isNull = true, true; - let [f3, c3] = l3; - return c3 !== "px" && (this.isNull = true), (o2 === "min" ? a2 >= f3 : a2 <= f3) ? this.incrementOrder() : this.isNull = true, true; + handlePossibleArbitraryBreakpointPrefix(t) { + var n; + if (t[0] !== "m") return false; + let r = t.match(/^(min|max)-(w|h)-\[([^\]]+)\]$/); + if (!r) return false; + if (!(!((n = this.context.device) === null || n === void 0) && n.windowDimensions)) return this.isNull = true, true; + let i = this.context.device.windowDimensions, [, o = "", u2 = "", s = ""] = r, a = u2 === "w" ? i.width : i.height, l2 = re(s, this.context); + if (l2 === null) return this.isNull = true, true; + let [f, c2] = l2; + return c2 !== "px" && (this.isNull = true), (o === "min" ? a >= f : a <= f) ? this.incrementOrder() : this.isNull = true, true; } - advance(t2 = 1) { - this.position += t2, this.char = this.string[this.position]; + advance(t = 1) { + this.position += t, this.char = this.string[this.position]; } get rest() { return this.peekSlice(0, this.string.length); } - peekSlice(t2, n2) { - return this.string.slice(this.position + t2, this.position + n2); + peekSlice(t, n) { + return this.string.slice(this.position + t, this.position + n); } - consumePeeked(t2) { - return this.peekSlice(0, t2.length) === t2 ? (this.advance(t2.length), true) : false; + consumePeeked(t) { + return this.peekSlice(0, t.length) === t ? (this.advance(t.length), true) : false; } parseIsNegative() { this.char === "-" && (this.advance(), this.isNegative = true, this.context.isNegative = true); } incrementOrder() { - var t2; - this.order = ((t2 = this.order) !== null && t2 !== void 0 ? t2 : 0) + 1; + var t; + this.order = ((t = this.order) !== null && t !== void 0 ? t : 0) + 1; } }; -function vl(e2) { - let t2 = [], n2 = null; - return e2.forEach((r2) => { - if (typeof r2 == "string") t2 = [...t2, ...Io(r2)]; - else if (Array.isArray(r2)) t2 = [...t2, ...r2.flatMap(Io)]; - else if (typeof r2 == "object" && r2 !== null) for (let [i2, o2] of Object.entries(r2)) typeof o2 == "boolean" ? t2 = [...t2, ...o2 ? Io(i2) : []] : n2 ? n2[i2] = o2 : n2 = { [i2]: o2 }; - }), [t2.filter(Boolean).filter(Gm), n2]; +function vl(e) { + let t = [], n = null; + return e.forEach((r) => { + if (typeof r == "string") t = [...t, ...Io(r)]; + else if (Array.isArray(r)) t = [...t, ...r.flatMap(Io)]; + else if (typeof r == "object" && r !== null) for (let [i, o] of Object.entries(r)) typeof o == "boolean" ? t = [...t, ...o ? Io(i) : []] : n ? n[i] = o : n = { [i]: o }; + }), [t.filter(Boolean).filter(Gm), n]; } -function Io(e2) { - return e2.trim().split(/\s+/); +function Io(e) { + return e.trim().split(/\s+/); } -function Gm(e2, t2, n2) { - return n2.indexOf(e2) === t2; +function Gm(e, t, n) { + return n.indexOf(e) === t; } -function yl(e2) { - var t2; - return (t2 = e2 == null ? void 0 : e2.reduce((n2, r2) => ({ ...n2, ...jm(r2.handler) }), {})) !== null && t2 !== void 0 ? t2 : {}; +function yl(e) { + var t; + return (t = e == null ? void 0 : e.reduce((n, r) => ({ ...n, ...jm(r.handler) }), {})) !== null && t !== void 0 ? t : {}; } -function jm(e2) { - let t2 = {}; - return e2({ addUtilities: (n2) => { - t2 = n2; - }, ...Hm }), t2; +function jm(e) { + let t = {}; + return e({ addUtilities: (n) => { + t = n; + }, ...Hm }), t; } -function Be(e2) { - throw new Error(`tailwindcss plugin function argument object prop "${e2}" not implemented`); +function Be(e) { + throw new Error(`tailwindcss plugin function argument object prop "${e}" not implemented`); } var Hm = { addComponents: Be, addBase: Be, addVariant: Be, e: Be, prefix: Be, theme: Be, variants: Be, config: Be, corePlugins: Be, matchUtilities: Be, postcss: null }; -function Fl(e2, t2) { - let n2 = (0, xl.default)(Vm(e2)), r2 = {}, i2 = yl(n2.plugins), o2 = {}, u4 = Object.entries(i2).map(([h3, m3]) => typeof m3 == "string" ? (o2[h3] = m3, [h3, { kind: "null" }]) : [h3, D(m3)]).filter(([, h3]) => h3.kind !== "null"); - function s2() { - return [r2.windowDimensions ? `w${r2.windowDimensions.width}` : false, r2.windowDimensions ? `h${r2.windowDimensions.height}` : false, r2.fontScale ? `fs${r2.fontScale}` : false, r2.colorScheme === "dark" ? "dark" : false, r2.pixelDensity === 2 ? "retina" : false].filter(Boolean).join("--") || "default"; +function Fl(e, t) { + let n = (0, xl.default)(Vm(e)), r = {}, i = yl(n.plugins), o = {}, u2 = Object.entries(i).map(([h3, m2]) => typeof m2 == "string" ? (o[h3] = m2, [h3, { kind: "null" }]) : [h3, D(m2)]).filter(([, h3]) => h3.kind !== "null"); + function s() { + return [r.windowDimensions ? `w${r.windowDimensions.width}` : false, r.windowDimensions ? `h${r.windowDimensions.height}` : false, r.fontScale ? `fs${r.fontScale}` : false, r.colorScheme === "dark" ? "dark" : false, r.pixelDensity === 2 ? "retina" : false].filter(Boolean).join("--") || "default"; } - let a2 = s2(), l3 = {}; - function f3() { - let h3 = l3[a2]; + let a = s(), l2 = {}; + function f() { + let h3 = l2[a]; if (h3) return h3; - let m3 = new vr(u4); - return l3[a2] = m3, m3; + let m2 = new vr(u2); + return l2[a] = m2, m2; } - function c3(...h3) { - let m3 = f3(), x3 = {}, g3 = [], S3 = [], [v3, b2] = vl(h3), y2 = v3.join(" "), T2 = m3.getStyle(y2); - if (T2) return { ...T2, ...b2 || {} }; - for (let A2 of v3) { - let P3 = m3.getIr(A2); - if (!P3 && A2 in o2) { - let ie = c3(o2[A2]); - m3.setIr(A2, D(ie)), x3 = { ...x3, ...ie }; + function c2(...h3) { + let m2 = f(), x2 = {}, g2 = [], S2 = [], [v2, b] = vl(h3), y = v2.join(" "), T = m2.getStyle(y); + if (T) return { ...T, ...b || {} }; + for (let A of v2) { + let P2 = m2.getIr(A); + if (!P2 && A in o) { + let ie = c2(o[A]); + m2.setIr(A, D(ie)), x2 = { ...x2, ...ie }; continue; } - switch (P3 = new St(A2, n2, m3, r2, t2).parse(), P3.kind) { + switch (P2 = new St(A, n, m2, r, t).parse(), P2.kind) { case "complete": - x3 = { ...x3, ...P3.style }, m3.setIr(A2, P3); + x2 = { ...x2, ...P2.style }, m2.setIr(A, P2); break; case "dependent": - g3.push(P3); + g2.push(P2); break; case "ordered": - S3.push(P3); + S2.push(P2); break; case "null": - m3.setIr(A2, P3); + m2.setIr(A, P2); break; } } - if (S3.length > 0) { - S3.sort((A2, P3) => A2.order - P3.order); - for (let A2 of S3) switch (A2.styleIr.kind) { + if (S2.length > 0) { + S2.sort((A, P2) => A.order - P2.order); + for (let A of S2) switch (A.styleIr.kind) { case "complete": - x3 = { ...x3, ...A2.styleIr.style }; + x2 = { ...x2, ...A.styleIr.style }; break; case "dependent": - g3.push(A2.styleIr); + g2.push(A.styleIr); break; } } - if (g3.length > 0) { - for (let A2 of g3) { - let P3 = A2.complete(x3); - P3 && he(P3); + if (g2.length > 0) { + for (let A of g2) { + let P2 = A.complete(x2); + P2 && he(P2); } - al(x3); + al(x2); } - return y2 !== "" && m3.setStyle(y2, x3), b2 && (x3 = { ...x3, ...b2 }), x3; + return y !== "" && m2.setStyle(y, x2), b && (x2 = { ...x2, ...b }), x2; } - function p2(h3) { - let m3 = c3(h3.split(/\s+/g).map((x3) => x3.replace(/^(bg|text|border)-/, "")).map((x3) => `bg-${x3}`).join(" ")); - return typeof m3.backgroundColor == "string" ? m3.backgroundColor : void 0; + function p(h3) { + let m2 = c2(h3.split(/\s+/g).map((x2) => x2.replace(/^(bg|text|border)-/, "")).map((x2) => `bg-${x2}`).join(" ")); + return typeof m2.backgroundColor == "string" ? m2.backgroundColor : void 0; } - let d3 = (h3, ...m3) => { - let x3 = ""; - return h3.forEach((g3, S3) => { - var v3; - x3 += g3 + ((v3 = m3[S3]) !== null && v3 !== void 0 ? v3 : ""); - }), c3(x3); + let d2 = (h3, ...m2) => { + let x2 = ""; + return h3.forEach((g2, S2) => { + var v2; + x2 += g2 + ((v2 = m2[S2]) !== null && v2 !== void 0 ? v2 : ""); + }), c2(x2); }; - return d3.style = c3, d3.color = p2, d3.prefixMatch = (...h3) => { - let m3 = h3.sort().join(":"), x3 = f3(), g3 = x3.getPrefixMatch(m3); - if (g3 !== void 0) return g3; - let b2 = new St(`${m3}:flex`, n2, x3, r2, t2).parse().kind !== "null"; - return x3.setPrefixMatch(m3, b2), b2; - }, d3.setWindowDimensions = (h3) => { - r2.windowDimensions = h3, a2 = s2(); - }, d3.setFontScale = (h3) => { - r2.fontScale = h3, a2 = s2(); - }, d3.setPixelDensity = (h3) => { - r2.pixelDensity = h3, a2 = s2(); - }, d3.setColorScheme = (h3) => { - r2.colorScheme = h3, a2 = s2(); - }, d3; + return d2.style = c2, d2.color = p, d2.prefixMatch = (...h3) => { + let m2 = h3.sort().join(":"), x2 = f(), g2 = x2.getPrefixMatch(m2); + if (g2 !== void 0) return g2; + let b = new St(`${m2}:flex`, n, x2, r, t).parse().kind !== "null"; + return x2.setPrefixMatch(m2, b), b; + }, d2.setWindowDimensions = (h3) => { + r.windowDimensions = h3, a = s(); + }, d2.setFontScale = (h3) => { + r.fontScale = h3, a = s(); + }, d2.setPixelDensity = (h3) => { + r.pixelDensity = h3, a = s(); + }, d2.setColorScheme = (h3) => { + r.colorScheme = h3, a = s(); + }, d2; } -function Vm(e2) { - return { ...e2, content: ["_no_warnings_please"] }; +function Vm(e) { + return { ...e, content: ["_no_warnings_please"] }; } -var Xm = { handler: ({ addUtilities: e2 }) => { - e2({ "shadow-sm": { boxShadow: "0 1px 2px 0 rgb(0 0 0 / 0.05)" }, shadow: { boxShadow: "0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)" }, "shadow-md": { boxShadow: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)" }, "shadow-lg": { boxShadow: "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)" }, "shadow-xl": { boxShadow: "0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)" }, "shadow-2xl": { boxShadow: "0 25px 50px -12px rgb(0 0 0 / 0.25)" }, "shadow-inner": { boxShadow: "inset 0 2px 4px 0 rgb(0 0 0 / 0.05)" }, "shadow-none": { boxShadow: "0 0 #0000" } }); +var Xm = { handler: ({ addUtilities: e }) => { + e({ "shadow-sm": { boxShadow: "0 1px 2px 0 rgb(0 0 0 / 0.05)" }, shadow: { boxShadow: "0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)" }, "shadow-md": { boxShadow: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)" }, "shadow-lg": { boxShadow: "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)" }, "shadow-xl": { boxShadow: "0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)" }, "shadow-2xl": { boxShadow: "0 25px 50px -12px rgb(0 0 0 / 0.25)" }, "shadow-inner": { boxShadow: "inset 0 2px 4px 0 rgb(0 0 0 / 0.05)" }, "shadow-none": { boxShadow: "0 0 #0000" } }); } }; -function Qm(e2) { - return Fl({ ...e2, plugins: [...(e2 == null ? void 0 : e2.plugins) ?? [], Xm] }, "web"); +function Qm(e) { + return Fl({ ...e, plugins: [...(e == null ? void 0 : e.plugins) ?? [], Xm] }, "web"); } var gn; -function Ro({ width: e2, height: t2, config: n2 }) { - return gn || (gn = Qm(n2)), gn.setWindowDimensions({ width: +e2, height: +t2 }), gn; +function Ro({ width: e, height: t, config: n }) { + return gn || (gn = Qm(n)), gn.setWindowDimensions({ width: +e, height: +t }), gn; } var Lo = /* @__PURE__ */ new WeakMap(); -async function El(e2, t2) { - let n2 = await Re(); - if (!n2 || !n2.Node) throw new Error("Satori is not initialized: expect `yoga` to be loaded, got " + n2); - t2.fonts = t2.fonts || []; - let r2; - Lo.has(t2.fonts) ? r2 = Lo.get(t2.fonts) : Lo.set(t2.fonts, r2 = new qt(t2.fonts)); - let i2 = "width" in t2 ? t2.width : void 0, o2 = "height" in t2 ? t2.height : void 0, u4 = n2.Node.create(); - i2 && u4.setWidth(i2), o2 && u4.setHeight(o2), u4.setFlexDirection(n2.FLEX_DIRECTION_ROW), u4.setFlexWrap(n2.WRAP_WRAP), u4.setAlignContent(n2.ALIGN_AUTO), u4.setAlignItems(n2.ALIGN_FLEX_START), u4.setJustifyContent(n2.JUSTIFY_FLEX_START), u4.setOverflow(n2.OVERFLOW_HIDDEN); - let s2 = { ...t2.graphemeImages }, a2 = /* @__PURE__ */ new Set(); - Ae.clear(), Bt.clear(), await cu(e2); - let l3 = $t(e2, { id: "id", parentStyle: {}, inheritedStyle: { fontSize: 16, fontWeight: "normal", fontFamily: "serif", fontStyle: "normal", lineHeight: "normal", color: "black", opacity: 1, whiteSpace: "normal", _viewportWidth: i2, _viewportHeight: o2 }, parent: u4, font: r2, embedFont: t2.embedFont, debug: t2.debug, graphemeImages: s2, canLoadAdditionalAssets: !!t2.loadAdditionalAsset, onNodeDetected: t2.onNodeDetected, getTwStyles: (h3, m3) => { - let g3 = { ...Ro({ width: i2, height: o2, config: t2.tailwindConfig })([h3]) }; - return typeof g3.lineHeight == "number" && (g3.lineHeight = g3.lineHeight / (+g3.fontSize || m3.fontSize || 16)), g3.shadowColor && g3.boxShadow && (g3.boxShadow = g3.boxShadow.replace(/rgba?\([^)]+\)/, g3.shadowColor)), g3; - } }), f3 = (await l3.next()).value; - if (t2.loadAdditionalAsset && f3.length) { - let h3 = Km(f3), m3 = [], x3 = {}; - await Promise.all(Object.entries(h3).flatMap(([g3, S3]) => S3.map((v3) => { - let b2 = `${g3}_${v3}`; - return a2.has(b2) ? null : (a2.add(b2), t2.loadAdditionalAsset(g3, v3).then((y2) => { - typeof y2 == "string" ? x3[v3] = y2 : y2 && (Array.isArray(y2) ? m3.push(...y2) : m3.push(y2)); +async function El(e, t) { + let n = await Re(); + if (!n || !n.Node) throw new Error("Satori is not initialized: expect `yoga` to be loaded, got " + n); + t.fonts = t.fonts || []; + let r; + Lo.has(t.fonts) ? r = Lo.get(t.fonts) : Lo.set(t.fonts, r = new qt(t.fonts)); + let i = "width" in t ? t.width : void 0, o = "height" in t ? t.height : void 0, u2 = n.Node.create(); + i && u2.setWidth(i), o && u2.setHeight(o), u2.setFlexDirection(n.FLEX_DIRECTION_ROW), u2.setFlexWrap(n.WRAP_WRAP), u2.setAlignContent(n.ALIGN_AUTO), u2.setAlignItems(n.ALIGN_FLEX_START), u2.setJustifyContent(n.JUSTIFY_FLEX_START), u2.setOverflow(n.OVERFLOW_HIDDEN); + let s = { ...t.graphemeImages }, a = /* @__PURE__ */ new Set(); + Ae.clear(), Bt.clear(), await cu(e); + let l2 = $t(e, { id: "id", parentStyle: {}, inheritedStyle: { fontSize: 16, fontWeight: "normal", fontFamily: "serif", fontStyle: "normal", lineHeight: "normal", color: "black", opacity: 1, whiteSpace: "normal", _viewportWidth: i, _viewportHeight: o }, parent: u2, font: r, embedFont: t.embedFont, debug: t.debug, graphemeImages: s, canLoadAdditionalAssets: !!t.loadAdditionalAsset, onNodeDetected: t.onNodeDetected, getTwStyles: (h3, m2) => { + let g2 = { ...Ro({ width: i, height: o, config: t.tailwindConfig })([h3]) }; + return typeof g2.lineHeight == "number" && (g2.lineHeight = g2.lineHeight / (+g2.fontSize || m2.fontSize || 16)), g2.shadowColor && g2.boxShadow && (g2.boxShadow = g2.boxShadow.replace(/rgba?\([^)]+\)/, g2.shadowColor)), g2; + } }), f = (await l2.next()).value; + if (t.loadAdditionalAsset && f.length) { + let h3 = Km(f), m2 = [], x2 = {}; + await Promise.all(Object.entries(h3).flatMap(([g2, S2]) => S2.map((v2) => { + let b = `${g2}_${v2}`; + return a.has(b) ? null : (a.add(b), t.loadAdditionalAsset(g2, v2).then((y) => { + typeof y == "string" ? x2[v2] = y : y && (Array.isArray(y) ? m2.push(...y) : m2.push(y)); })); - }))), r2.addFonts(m3), Object.assign(s2, x3); + }))), r.addFonts(m2), Object.assign(s, x2); } - await l3.next(), u4.calculateLayout(i2, o2, n2.DIRECTION_LTR); - let c3 = (await l3.next([0, 0])).value, p2 = u4.getComputedWidth(), d3 = u4.getComputedHeight(); - return u4.freeRecursive(), Vn({ width: p2, height: d3, content: c3 }); + await l2.next(), u2.calculateLayout(i, o, n.DIRECTION_LTR); + let c2 = (await l2.next([0, 0])).value, p = u2.getComputedWidth(), d2 = u2.getComputedHeight(); + return u2.freeRecursive(), Vn({ width: p, height: d2, content: c2 }); } -function Km(e2) { - let t2 = {}, n2 = {}; - for (let { word: r2, locale: i2 } of e2) { - let o2 = $u(r2, i2).join("|"); - n2[o2] = n2[o2] || "", n2[o2] += r2; +function Km(e) { + let t = {}, n = {}; + for (let { word: r, locale: i } of e) { + let o = $u(r, i).join("|"); + n[o] = n[o] || "", n[o] += r; } - return Object.keys(n2).forEach((r2) => { - t2[r2] = t2[r2] || [], r2 === "emoji" ? t2[r2].push(...wl(le(n2[r2], "grapheme"))) : (t2[r2][0] = t2[r2][0] || "", t2[r2][0] += wl(le(n2[r2], "grapheme", r2 === "unknown" ? void 0 : r2)).join("")); - }), t2; + return Object.keys(n).forEach((r) => { + t[r] = t[r] || [], r === "emoji" ? t[r].push(...wl(le(n[r], "grapheme"))) : (t[r][0] = t[r][0] || "", t[r][0] += wl(le(n[r], "grapheme", r === "unknown" ? void 0 : r)).join("")); + }), t; } -function wl(e2) { - return Array.from(new Set(e2)); +function wl(e) { + return Array.from(new Set(e)); } // src/emitter.tsx -var import_sharp = __toESM(require_lib2(), 1); var import_reading_time = __toESM(require_reading_time2(), 1); // node_modules/@quartz-community/types/dist/index.js function joinSegments(...segments) { return segments.filter((segment) => segment.length > 0).join("/").replace(/\/+/g, "/"); } -var l2; -function S2(n2) { - return n2.children; -} -l2 = { __e: function(n2, l3, u4, t2) { - for (var i2, r2, o2; l3 = l3.__; ) if ((i2 = l3.__c) && !i2.__) try { - if ((r2 = i2.constructor) && null != r2.getDerivedStateFromError && (i2.setState(r2.getDerivedStateFromError(n2)), o2 = i2.__d), null != i2.componentDidCatch && (i2.componentDidCatch(n2, t2 || {}), o2 = i2.__d), o2) return i2.__E = i2; - } catch (l4) { - n2 = l4; - } - throw n2; -} }, "function" == typeof Promise ? Promise.prototype.then.bind(Promise.resolve()) : setTimeout, Math.random().toString(8); - -// node_modules/preact/jsx-runtime/dist/jsxRuntime.mjs -var f2 = 0; -function u3(e2, t2, n2, o2, i2, u4) { - t2 || (t2 = {}); - var a2, c3, p2 = t2; - if ("ref" in p2) for (c3 in p2 = {}, t2) "ref" == c3 ? a2 = t2[c3] : p2[c3] = t2[c3]; - var l3 = { type: e2, props: p2, key: n2, ref: a2, __k: null, __: null, __b: 0, __e: null, __c: null, constructor: void 0, __v: --f2, __i: -1, __u: 0, __source: i2, __self: u4 }; - if ("function" == typeof e2 && (a2 = e2.defaultProps)) for (c3 in a2) void 0 === p2[c3] && (p2[c3] = a2[c3]); - return l2.vnode && l2.vnode(l3), l3; -} - -// node_modules/@quartz-community/utils/dist/index.js function unescapeHTML(html) { return html.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll(""", '"').replaceAll("'", "'"); } @@ -29973,20 +23801,20 @@ function getIconCode(char) { return toCodePoint(char.indexOf(U200D2) < 0 ? char.replace(UFE0Fg, "") : char); } function toCodePoint(unicodeSurrogates) { - const r2 = []; - let c3 = 0, p2 = 0, i2 = 0; - while (i2 < unicodeSurrogates.length) { - c3 = unicodeSurrogates.charCodeAt(i2++); - if (p2) { - r2.push((65536 + (p2 - 55296 << 10) + (c3 - 56320)).toString(16)); - p2 = 0; - } else if (55296 <= c3 && c3 <= 56319) { - p2 = c3; + const r = []; + let c2 = 0, p = 0, i = 0; + while (i < unicodeSurrogates.length) { + c2 = unicodeSurrogates.charCodeAt(i++); + if (p) { + r.push((65536 + (p - 55296 << 10) + (c2 - 56320)).toString(16)); + p = 0; + } else if (55296 <= c2 && c2 <= 56319) { + p = c2; } else { - r2.push(c3.toString(16)); + r.push(c2.toString(16)); } } - return r2.join("-"); + return r.join("-"); } // src/theme.ts @@ -30013,8 +23841,6 @@ async function loadEmoji(code) { if (!b64) throw new Error(`name ${name} not found in map`); return b64; } - -// src/emitter.tsx var QUARTZ = "quartz"; var defaultHeaderWeight = [700]; var defaultBodyWeight = [400]; @@ -30031,8 +23857,8 @@ function getFileExtension(path2) { function isAbsoluteURL(url) { return /^https?:\/\//.test(url); } -function formatDate(d3, locale = "en-US") { - return d3.toLocaleDateString(locale, { +function formatDate(d2, locale = "en-US") { + return d2.toLocaleDateString(locale, { year: "numeric", month: "short", day: "2-digit" @@ -30130,7 +23956,7 @@ var defaultImage = ({ const tags = fileData.frontmatter?.tags ?? []; const bodyFont = getFontSpecificationName(theme.typography.body); const headerFont = getFontSpecificationName(theme.typography.header); - return /* @__PURE__ */ u3( + return /* @__PURE__ */ jsxs( "div", { style: { @@ -30143,7 +23969,7 @@ var defaultImage = ({ fontFamily: bodyFont }, children: [ - /* @__PURE__ */ u3( + /* @__PURE__ */ jsxs( "div", { style: { @@ -30153,7 +23979,7 @@ var defaultImage = ({ marginBottom: "0.5rem" }, children: [ - iconBase64 && /* @__PURE__ */ u3( + iconBase64 && /* @__PURE__ */ jsx( "img", { src: iconBase64, @@ -30165,7 +23991,7 @@ var defaultImage = ({ } } ), - /* @__PURE__ */ u3( + /* @__PURE__ */ jsx( "div", { style: { @@ -30180,7 +24006,7 @@ var defaultImage = ({ ] } ), - /* @__PURE__ */ u3( + /* @__PURE__ */ jsx( "div", { style: { @@ -30188,7 +24014,7 @@ var defaultImage = ({ marginTop: "1rem", marginBottom: "1.5rem" }, - children: /* @__PURE__ */ u3( + children: /* @__PURE__ */ jsx( "h1", { style: { @@ -30209,7 +24035,7 @@ var defaultImage = ({ ) } ), - /* @__PURE__ */ u3( + /* @__PURE__ */ jsx( "div", { style: { @@ -30219,7 +24045,7 @@ var defaultImage = ({ color: theme.colors[colorScheme].darkgray, lineHeight: 1.4 }, - children: /* @__PURE__ */ u3( + children: /* @__PURE__ */ jsx( "p", { style: { @@ -30235,7 +24061,7 @@ var defaultImage = ({ ) } ), - /* @__PURE__ */ u3( + /* @__PURE__ */ jsxs( "div", { style: { @@ -30247,7 +24073,7 @@ var defaultImage = ({ borderTop: `1px solid ${theme.colors[colorScheme].lightgray}` }, children: [ - /* @__PURE__ */ u3( + /* @__PURE__ */ jsxs( "div", { style: { @@ -30258,8 +24084,8 @@ var defaultImage = ({ fontSize: 28 }, children: [ - date && /* @__PURE__ */ u3("div", { style: { display: "flex", alignItems: "center" }, children: [ - /* @__PURE__ */ u3( + date && /* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center" }, children: [ + /* @__PURE__ */ jsxs( "svg", { style: { marginRight: "0.5rem" }, @@ -30271,17 +24097,17 @@ var defaultImage = ({ role: "img", "aria-label": "Date", children: [ - /* @__PURE__ */ u3("rect", { x: "3", y: "4", width: "18", height: "18", rx: "2", ry: "2" }), - /* @__PURE__ */ u3("line", { x1: "16", y1: "2", x2: "16", y2: "6" }), - /* @__PURE__ */ u3("line", { x1: "8", y1: "2", x2: "8", y2: "6" }), - /* @__PURE__ */ u3("line", { x1: "3", y1: "10", x2: "21", y2: "10" }) + /* @__PURE__ */ jsx("rect", { x: "3", y: "4", width: "18", height: "18", rx: "2", ry: "2" }), + /* @__PURE__ */ jsx("line", { x1: "16", y1: "2", x2: "16", y2: "6" }), + /* @__PURE__ */ jsx("line", { x1: "8", y1: "2", x2: "8", y2: "6" }), + /* @__PURE__ */ jsx("line", { x1: "3", y1: "10", x2: "21", y2: "10" }) ] } ), date ] }), - /* @__PURE__ */ u3("div", { style: { display: "flex", alignItems: "center" }, children: [ - /* @__PURE__ */ u3( + /* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center" }, children: [ + /* @__PURE__ */ jsxs( "svg", { style: { marginRight: "0.5rem" }, @@ -30293,8 +24119,8 @@ var defaultImage = ({ role: "img", "aria-label": "Reading time", children: [ - /* @__PURE__ */ u3("circle", { cx: "12", cy: "12", r: "10" }), - /* @__PURE__ */ u3("polyline", { points: "12 6 12 12 16 14" }) + /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "10" }), + /* @__PURE__ */ jsx("polyline", { points: "12 6 12 12 16 14" }) ] } ), @@ -30303,7 +24129,7 @@ var defaultImage = ({ ] } ), - /* @__PURE__ */ u3( + /* @__PURE__ */ jsx( "div", { style: { @@ -30313,7 +24139,7 @@ var defaultImage = ({ justifyContent: "flex-end", maxWidth: "60%" }, - children: tags.slice(0, 3).map((tag) => /* @__PURE__ */ u3( + children: tags.slice(0, 3).map((tag) => /* @__PURE__ */ jsxs( "div", { style: { @@ -30379,7 +24205,7 @@ async function generateSocialImage({ cfg, description, fonts, title, fileData }, return languageCode; } }); - return (0, import_sharp.default)(Buffer.from(svg)).webp({ quality: 40 }); + return sharp(Buffer.from(svg)).webp({ quality: 40 }); } async function processOgImage(ctx, fileData, fonts, fullOptions) { const cfg = ctx.cfg.configuration; @@ -30457,15 +24283,15 @@ var CustomOgImages = (userOpts) => { const defaultOgImagePath = `https://${baseUrl}/static/og-image.png`; const ogImagePath = userDefinedOgImagePath ?? generatedOgImagePath ?? defaultOgImagePath; const ogImageMimeType = `image/${getFileExtension(ogImagePath) ?? "png"}`; - return /* @__PURE__ */ u3(S2, { children: [ - !userDefinedOgImagePath && /* @__PURE__ */ u3(S2, { children: [ - /* @__PURE__ */ u3("meta", { property: "og:image:width", content: fullOptions.width.toString() }), - /* @__PURE__ */ u3("meta", { property: "og:image:height", content: fullOptions.height.toString() }) + return /* @__PURE__ */ jsxs(Fragment, { children: [ + !userDefinedOgImagePath && /* @__PURE__ */ jsxs(Fragment, { children: [ + /* @__PURE__ */ jsx("meta", { property: "og:image:width", content: fullOptions.width.toString() }), + /* @__PURE__ */ jsx("meta", { property: "og:image:height", content: fullOptions.height.toString() }) ] }), - /* @__PURE__ */ u3("meta", { property: "og:image", content: ogImagePath }), - /* @__PURE__ */ u3("meta", { property: "og:image:url", content: ogImagePath }), - /* @__PURE__ */ u3("meta", { name: "twitter:image", content: ogImagePath }), - /* @__PURE__ */ u3("meta", { property: "og:image:type", content: ogImageMimeType }) + /* @__PURE__ */ jsx("meta", { property: "og:image", content: ogImagePath }), + /* @__PURE__ */ jsx("meta", { property: "og:image:url", content: ogImagePath }), + /* @__PURE__ */ jsx("meta", { name: "twitter:image", content: ogImagePath }), + /* @__PURE__ */ jsx("meta", { property: "og:image:type", content: ogImageMimeType }) ] }); } ] diff --git a/dist/index.js.map b/dist/index.js.map index 6b7e857..3dd19f3 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["../node_modules/tiny-inflate/index.js","../node_modules/unicode-trie/swap.js","../node_modules/unicode-trie/index.js","../node_modules/base64-js/lib/b64.js","../node_modules/postcss-value-parser/lib/parse.js","../node_modules/postcss-value-parser/lib/walk.js","../node_modules/postcss-value-parser/lib/stringify.js","../node_modules/postcss-value-parser/lib/unit.js","../node_modules/postcss-value-parser/lib/index.js","../node_modules/camelize/index.js","../node_modules/css-color-keywords/colors.json","../node_modules/css-color-keywords/index.js","../node_modules/css-to-react-native/index.js","../node_modules/css-background-parser/index.js","../node_modules/css-box-shadow/index.js","../node_modules/color-name/index.js","../node_modules/hex-rgb/index.js","../node_modules/escape-html/index.js","../node_modules/yoga-wasm-web/dist/wrapAsm-f766f97f.js","../node_modules/yoga-wasm-web/dist/asm.js","../node_modules/sharp/lib/is.js","../node_modules/detect-libc/lib/process.js","../node_modules/detect-libc/lib/filesystem.js","../node_modules/detect-libc/lib/elf.js","../node_modules/detect-libc/lib/detect-libc.js","../node_modules/semver/internal/debug.js","../node_modules/semver/internal/constants.js","../node_modules/semver/internal/re.js","../node_modules/semver/internal/parse-options.js","../node_modules/semver/internal/identifiers.js","../node_modules/semver/classes/semver.js","../node_modules/semver/functions/parse.js","../node_modules/semver/functions/coerce.js","../node_modules/semver/functions/compare.js","../node_modules/semver/functions/gte.js","../node_modules/semver/internal/lrucache.js","../node_modules/semver/functions/eq.js","../node_modules/semver/functions/neq.js","../node_modules/semver/functions/gt.js","../node_modules/semver/functions/lt.js","../node_modules/semver/functions/lte.js","../node_modules/semver/functions/cmp.js","../node_modules/semver/classes/comparator.js","../node_modules/semver/classes/range.js","../node_modules/semver/functions/satisfies.js","../node_modules/sharp/package.json","../node_modules/sharp/lib/libvips.js","../node_modules/sharp/lib/sharp.js","../node_modules/sharp/lib/constructor.js","../node_modules/is-arrayish/index.js","../node_modules/simple-swizzle/index.js","../node_modules/color-string/index.js","../node_modules/color-convert/conversions.js","../node_modules/color-convert/route.js","../node_modules/color-convert/index.js","../node_modules/color/index.js","../node_modules/sharp/lib/input.js","../node_modules/sharp/lib/resize.js","../node_modules/sharp/lib/composite.js","../node_modules/sharp/lib/operation.js","../node_modules/sharp/lib/colour.js","../node_modules/sharp/lib/channel.js","../node_modules/sharp/lib/output.js","../node_modules/sharp/lib/utility.js","../node_modules/sharp/lib/index.js","../node_modules/reading-time/lib/reading-time.js","../node_modules/reading-time/lib/stream.js","../node_modules/reading-time/index.js","../node_modules/linebreak/dist/src/classes.js","../node_modules/linebreak/dist/src/pairs.js","../node_modules/linebreak/dist/src/linebreaker.js","../node_modules/satori/src/handler/expand.ts","../node_modules/parse-css-color/dist/index.esm.js","../node_modules/satori/src/transform-origin.ts","../node_modules/satori/src/parser/mask.ts","../node_modules/satori/src/builder/text.ts","../node_modules/css-gradient-parser/src/utils.ts","../node_modules/css-gradient-parser/src/linear.ts","../node_modules/css-gradient-parser/src/radial.ts","../node_modules/satori/src/parser/shape.ts","../node_modules/@shuding/opentype.js/node_modules/.pnpm/fflate@0.7.3/node_modules/fflate/esm/browser.js","../node_modules/@shuding/opentype.js/src/path.js","../node_modules/@shuding/opentype.js/src/encoding.js","../node_modules/@shuding/opentype.js/src/check.js","../node_modules/@shuding/opentype.js/src/glyph.js","../node_modules/@shuding/opentype.js/src/glyphset.js","../node_modules/@shuding/opentype.js/src/layout.js","../node_modules/@shuding/opentype.js/src/position.js","../node_modules/@shuding/opentype.js/src/substitution.js","../node_modules/@shuding/opentype.js/src/util.js","../node_modules/@shuding/opentype.js/src/parse.js","../node_modules/@shuding/opentype.js/src/tables/glyf.js","../node_modules/@shuding/opentype.js/src/hintingtt.js","../node_modules/@shuding/opentype.js/src/tokenizer.js","../node_modules/@shuding/opentype.js/src/char.js","../node_modules/@shuding/opentype.js/src/features/featureQuery.js","../node_modules/@shuding/opentype.js/src/features/arab/contextCheck/arabicWord.js","../node_modules/@shuding/opentype.js/src/features/arab/contextCheck/arabicSentence.js","../node_modules/@shuding/opentype.js/src/features/applySubstitution.js","../node_modules/@shuding/opentype.js/src/features/arab/arabicPresentationForms.js","../node_modules/@shuding/opentype.js/src/features/arab/arabicRequiredLigatures.js","../node_modules/@shuding/opentype.js/src/features/latn/contextCheck/latinWord.js","../node_modules/@shuding/opentype.js/src/features/latn/latinLigatures.js","../node_modules/@shuding/opentype.js/src/bidi.js","../node_modules/@shuding/opentype.js/src/font.js","../node_modules/@shuding/opentype.js/src/tables/cmap.js","../node_modules/@shuding/opentype.js/src/tables/cff.js","../node_modules/@shuding/opentype.js/src/tables/fvar.js","../node_modules/@shuding/opentype.js/src/tables/gdef.js","../node_modules/@shuding/opentype.js/src/tables/gpos.js","../node_modules/@shuding/opentype.js/src/tables/gsub.js","../node_modules/@shuding/opentype.js/src/tables/head.js","../node_modules/@shuding/opentype.js/src/tables/hhea.js","../node_modules/@shuding/opentype.js/src/tables/hmtx.js","../node_modules/@shuding/opentype.js/src/tables/kern.js","../node_modules/@shuding/opentype.js/src/tables/ltag.js","../node_modules/@shuding/opentype.js/src/tables/loca.js","../node_modules/@shuding/opentype.js/src/tables/maxp.js","../node_modules/@shuding/opentype.js/src/tables/os2.js","../node_modules/@shuding/opentype.js/src/tables/post.js","../node_modules/@shuding/opentype.js/src/types.js","../node_modules/@shuding/opentype.js/src/tables/meta.js","../node_modules/@shuding/opentype.js/src/opentype.js","../node_modules/satori/src/yoga/yoga-prebuilt.ts","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/util/negateValue.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/corePluginList.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/util/configurePlugins.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/stubs/defaultConfig.stub.js","../node_modules/satori/src/vendor/twrnc/log.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/public/colors.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/util/defaults.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/util/toPath.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/util/normalizeConfig.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/util/isPlainObject.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/util/cloneDeep.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/util/unesc.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/util/getProp.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/util/ensureObject.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/util/stripComments.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/util/index.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/node.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/types.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/container.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/root.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/selector.js","../node_modules/satori/node_modules/.pnpm/cssesc@3.0.0/node_modules/cssesc/cssesc.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/className.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/comment.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/id.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/namespace.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/tag.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/string.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/pseudo.js","../node_modules/satori/src/vendor/twrnc/deprecate.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/attribute.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/universal.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/combinator.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/nesting.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/sortAscending.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/tokenTypes.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/tokenize.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/parser.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/processor.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/constructors.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/guards.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/index.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/index.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/util/escapeCommas.js","../node_modules/satori/node_modules/.pnpm/color-name@1.1.4/node_modules/color-name/index.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/util/color.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/util/withAlphaVariable.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/lib/regex.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/util/splitAtTopLevelOnly.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/util/parseBoxShadowValue.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/util/dataTypes.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/util/pluginUtils.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/util/toColorValue.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/util/resolveConfig.js","../node_modules/satori/src/vendor/twrnc/picocolors.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/featureFlags.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/util/getAllConfigs.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/public/resolve-config.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/resolveConfig.js","../node_modules/satori/src/yoga/index.ts","../node_modules/satori/src/vendor/parse-css-dimension/index.js","../node_modules/satori/src/utils.ts","../node_modules/satori/src/handler/image.ts","../node_modules/satori/src/handler/preprocess.ts","../node_modules/satori/src/handler/presets.ts","../node_modules/satori/src/handler/inheritable.ts","../node_modules/satori/src/handler/compute.ts","../node_modules/satori/src/builder/transform.ts","../node_modules/satori/src/builder/shadow.ts","../node_modules/satori/src/builder/text-decoration.ts","../node_modules/satori/src/text/characters.ts","../node_modules/satori/src/text/measurer.ts","../node_modules/satori/src/text/processor.ts","../node_modules/satori/src/text/index.ts","../node_modules/satori/src/builder/gradient/utils.ts","../node_modules/satori/src/builder/gradient/linear.ts","../node_modules/satori/src/builder/gradient/radial.ts","../node_modules/satori/src/builder/background-image.ts","../node_modules/satori/src/builder/border-radius.ts","../node_modules/satori/src/builder/border.ts","../node_modules/satori/src/builder/content-mask.ts","../node_modules/satori/src/builder/clip-path.ts","../node_modules/satori/src/builder/overflow.ts","../node_modules/satori/src/builder/mask-image.ts","../node_modules/satori/src/builder/rect.ts","../node_modules/satori/node_modules/.pnpm/emoji-regex@10.2.1/node_modules/emoji-regex/index.mjs","../node_modules/satori/src/language.ts","../node_modules/satori/src/layout.ts","../node_modules/satori/src/font.ts","../node_modules/satori/src/builder/svg.ts","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/create.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/types.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/helpers.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/styles.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/cache.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/resolve/font-size.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/resolve/line-height.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/resolve/spacing.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/screens.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/resolve/font-family.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/resolve/color.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/resolve/borders.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/resolve/inset.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/resolve/flex.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/resolve/width-height.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/resolve/letter-spacing.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/resolve/opacity.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/resolve/shadow.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/ClassParser.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/parse-inputs.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/plugin.js","../node_modules/satori/src/handler/tailwind.ts","../node_modules/satori/src/satori.ts","../src/emitter.tsx","../node_modules/@quartz-community/types/src/index.ts","../node_modules/preact/src/constants.js","../node_modules/preact/src/options.js","../node_modules/preact/src/create-element.js","../node_modules/preact/src/diff/catch-error.js","../node_modules/preact/src/component.js","../node_modules/preact/src/diff/props.js","../node_modules/preact/src/create-context.js","../node_modules/preact/jsx-runtime/src/index.js","../node_modules/@quartz-community/utils/src/emoji.ts","../node_modules/@quartz-community/utils/src/sort.ts","../src/theme.ts","../src/emoji.ts"],"names":["exports","bits","i","t","lengths","d","offs","b","n","m","decode","j","l","L","v","max","parse","_","x","f","matchString","matchColor","noopToken","valueForTypeToken","regExpToken","transform","aspectRatio","border","borderWidth","borderColor","directionFactory","keyFor","parseShadowOffset","parseShadow","boxShadow","flex","flexFlow","fontFamily","font","fontWeight","fontVariant","placeContent","textDecoration","textDecorationLine","textShadow","oneOfType","xyTransformFactory","y","transforms","background","shadowOffset","textShadowOffset","TokenStream","transformRawValue","baseTransformShorthandValue","e","getStylesForProperty","getPropertyName","index","s","number","E","T","N","I","O","r","u","A","a","o","k","c","h","p","w","G","R","g","Z","W","V","B","X","F","C","S","P","Y","U","M","H","Q","z","D","J","K","q","$","rr","re","ra","ri","rn","rf","rb","rk","rA","rl","rd","rh","rp","rN","rw","rG","rX","rL","r_","rF","rC","rY","rH","rz","rD","rx","rJ","rK","rq","r$","r0","r2","r1","r4","r3","r8","r9","r7","er","ei","ef","et","eb","eo","ek","rP","rS","rM","rU","rZ","rW","eu","ro","rV","rs","rQ","rc","ry","ru","rO","rg","rt","rB","rv","rm","rE","rj","r5","rI","rR","rT","el","ec","fs","path","fd","err","family","version","require_parse","gt","to","globalLibvipsVersion","sharp","os","clone","debuglog","swizzle","i2","clamp","hi","sl","bl","y2","x2","z2","w2","metadata","stats","extend","composite","flip","flop","gamma","threshold","tint","greyscale","grayscale","colourspace","concurrency","simd","require_lib","readingTime","require_reading_time","$hJqJp$base64js","$hJqJp$unicodetrie","percentage","hex2Rgb","colorName","import_css_to_react_native","split","input","separator","result","parenCount","resolveStops","stops","color","offset","isHint","resolveLength","REGEX","value","unit","parseLinearGradient","repeating","props","properties","orientation","resolveLinearOrientation","angle","rgExtentKeyword","positionKeyword","isRgExtentKeyword","isPositionKeyWord","extendPosition","res","parseRadialGradient","isColor","prefix","shape","size","position","le","st","bt","tl","let","const","arguments","cmap","parseGlyph","buildPath","parseCFFCharstring","langSysTable","pair","loca","f2","ci","this","subtable","gsub","singleSubstitutionFormat1","singleSubstitutionFormat2","chainingSubstitutionFormat3","ligatureSubstitutionFormat1","getContextParams","check","HintingTrueType","meta","code","charString","gdef","subtableParsers","parseLookup1","parseLookup2","parseLookup3","parseLookup4","parseLookup5","glyphCount","substCount","parseLookup6","parseLookup7","parseLookup8","head","hhea","maxp","os2","post","yoga_prebuilt_exports","__export","getYogaModule","initYoga","init_yoga_prebuilt","__esmMin","require_negateValue","__commonJSMin","_default","sign","require_corePluginList","require_configurePlugins","pluginConfig","plugins","pluginName","require_defaultConfig_stub","module","colors","theme","breakpoints","log_exports","log_default","init_log","key","messages","require_colors","_log","_interopRequireDefault","obj","warn","from","require_defaults","defaults","target","sources","source","ref","k1","ref1","require_toPath","toPath","openBrackets","closedBrackets","require_normalizeConfig","normalizeConfig","_interopRequireWildcard","_getRequireWildcardCache","nodeInterop","cacheBabelInterop","cacheNodeInterop","cache","newObj","hasPropertyDescriptor","desc","config","value1","content","purge","safelist","_prefix","extract","ref2","ref3","ref4","ref5","ref6","ref7","ref8","ref9","extractors","defaultExtractor","extensions","extractor","extension","transformers","file","require_isPlainObject","isPlainObject","prototype","require_cloneDeep","cloneDeep","child","require_unesc","unesc","gobbleHex","str","lower","hex","spaceTerminated","valid","codePoint","isSurrogate","CONTAINS_ESCAPE","needToProcess","ret","gobbled","require_getProp","getProp","_len","_key","prop","require_ensureObject","ensureObject","require_stripComments","stripComments","commentStart","lastEnd","commentEnd","require_util","_unesc","_getProp","_ensureObject","_stripComments","require_node","_util","_defineProperties","descriptor","_createClass","Constructor","protoProps","staticProps","cloneNode","parent","cloned","type","Node","opts","_proto","overrides","name","valueEscaped","originalValue","originalEscaped","line","column","rawSpace","raw","require_types","TAG","STRING","SELECTOR","ROOT","PSEUDO","NESTING","ID","COMMENT","COMBINATOR","CLASS","ATTRIBUTE","UNIVERSAL","require_container","_node","types","_createForOfIteratorHelperLoose","allowArrayLike","it","_unsupportedIterableToArray","minLen","_arrayLikeToArray","arr","len","arr2","_inheritsLoose","subClass","superClass","_setPrototypeOf","Container","_Node","_this","selector","id","_iterator","_step","node","oldNode","newNode","oldIndex","col","found","foundChild","callback","_this2","_this3","_this4","_this5","_this6","_this7","_this8","_this9","_this10","_this11","current","memo","require_root","_container","_types","Root","_Container","message","options","handler","require_selector","Selector","require_cssesc","object","hasOwnProperty","merge","regexAnySingleEscape","regexSingleEscape","regexExcessiveSpaces","cssesc","string","quote","isIdentifier","firstChar","output","counter","length","character","extra","$0","$1","$2","require_className","_cssesc","ClassName","escaped","require_comment","Comment","require_id","require_namespace","Namespace","namespace","ns","require_tag","_namespace","Tag","_Namespace","require_string","String","require_pseudo","Pseudo","params","require_deprecate","fn","args","require_attribute","unescapeValue","_CSSESC_QUOTE_OPTIONS","deprecate","WRAPPED_IN_QUOTES","warnOfDeprecatedValueAssignment","warnOfDeprecatedQuotedAssignment","warnOfDeprecatedConstructor","deprecatedUsage","quoteMark","unescaped","handleDeprecatedContructorOpts","_unescapeValue","Attribute","cssescopts","CSSESC_QUOTE_OPTIONS","numSingleQuotes","numDoubleQuotes","pref","quoteValue","rawValue","attrSpaces","spaces","rawSpaces","spaceName","concat","defaultAttrConcat","count","attributeSpaces","operatorSpaces","operator","valueSpaces","insensitiveSpaces","attrValue","qm","_unescapeValue2","require_universal","Universal","require_combinator","Combinator","require_nesting","Nesting","require_sortAscending","sortAscending","list","require_tokenTypes","ampersand","asterisk","at","comma","colon","semicolon","openParenthesis","closeParenthesis","openSquare","closeSquare","dollar","tilde","caret","plus","equals","pipe","greaterThan","space","singleQuote","doubleQuote","slash","bang","backslash","cr","feed","newline","tab","comment","word","combinator","require_tokenize","tokenize","_unescapable","_wordDelimiters","unescapable","wordDelimiters","hexChars","consumeWord","css","start","next","consumeEscape","hexDigits","FIELDS","tokens","_css","end","endColumn","endLine","escapePos","last","lines","nextLine","nextOffset","tokenType","unclosed","what","fix","require_parser","_root","_selector","_className","_comment","_id","_tag","_string","_pseudo","_attribute","_universal","_combinator","_nesting","_sortAscending","_tokenize","_WHITESPACE_TOKENS","_Object$assign","WHITESPACE_TOKENS","WHITESPACE_EQUIV_TOKENS","tokenStart","token","tokenEnd","getSource","startLine","startColumn","getTokenSource","getTokenSourceSpan","startToken","endToken","unescapeProp","indexesOf","array","item","indexes","uniqs","Parser","rule","rootSource","errorOptions","attr","startingToken","pos","spaceBefore","commentBefore","lastAdded","spaceAfterMeaningfulToken","prevContent","existingComment","oldRawValue","_rawValue","_unescaped","_oldRawValue","oldValue","insensitive","lastComment","rawLastComment","lastValue","rawLastValue","stopPosition","startPosition","nodes","firstToken","lastToken","requiredSpace","rawSpaceBefore","nameRaw","raws","nextSigTokenPos","_this$convertWhitespa","spaceOrDescendantSelectorNodes","_this$convertWhitespa2","_space","_rawSpace","_this$convertWhitespa3","_space2","_rawSpace2","before","nextContent","unbalanced","parenStart","parenValue","parenEnd","pseudoStr","first","nextToken","firstCallback","hasClass","escapedDot","isKeyframesPercent","hasId","interpolations","hashIndex","indices","ind","sourceIndex","classNameOpts","idOpts","tagOpts","throwOnParenthesis","description","an","required","searchPosition","require_processor","_parser","Processor","func","merged","parser","resolve","reject","root","require_constructors","attribute","className","nesting","pseudo","tag","universal","require_guards","isNode","isPseudoElement","isPseudoClass","isContainer","isNamespace","_IS_TYPE","IS_TYPE","isNodeType","isAttribute","isClassName","isCombinator","isComment","isNesting","isPseudo","isRoot","isSelector","isString","isTag","isUniversal","require_selectors","_constructors","_guards","require_dist","_processor","selectors","processor","require_escapeCommas","escapeCommas","require_color_name","require_color","_export","all","parseColor","formatColor","_colorName","HEX","SHORT_HEX","VALUE","SEP","ALPHA_SEP","CUSTOM_PROPERTY","RGB","HSL","loose","match","part","mode","alpha","hasAlpha","require_withAlphaVariable","withAlphaValue","withAlphaVariable","_color","alphaValue","defaultValue","parsed","property","variable","require_regex","pattern","withoutCapturing","any","optional","zeroOrMore","nestedBrackets","escape","REGEX_SPECIAL","REGEX_HAS_SPECIAL","toSource","open","close","depth","require_splitAtTopLevelOnly","splitAtTopLevelOnly","_regex","SPECIALS","lastIndex","separatorIndex","separatorStart","separatorLength","matchesSeparator","atEndOfSeparator","matchesFullSeparator","require_parseBoxShadowValue","parseBoxShadowValue","formatBoxShadowValue","_splitAtTopLevelOnly","KEYWORDS","SPACE","LENGTH","shadow","parts","seen","shadows","require_dataTypes","normalize","url","lineWidth","image","gradient","familyName","genericName","absoluteSize","relativeSize","_parseBoxShadowValue","cssFunctions","COMMA","UNDERSCORE","fullMatch","characterBefore","lengthUnits","lengthUnitsPattern","lineWidths","parsedShadows","parsedShadow","images","gradientTypes","validPositions","positions","fonts","genericNames","absoluteSizes","relativeSizes","require_pluginUtils","updateAllClasses","asValue","parseColorFormat","asColor","asLookupValue","coerceValue","_postcssSelectorParser","_escapeCommas","_withAlphaVariable","_dataTypes","_negateValue","updateClass","sel","updatedClass","resolveArbitraryValue","modifier","validate","isArbitraryValue","asNegativeValue","lookup","positiveValue","resolved","splitAlpha","slashIdx","opacityValue","tailwindConfig","normalizedColor","guess","typeMap","supportedTypes","splitAtFirst","delim","idx","arbitraryValue","explicitType","require_toColorValue","toColorValue","maybeFunction","require_resolveConfig","resolveConfig","_corePluginList","_configurePlugins","_defaultConfigStub","_colors","_defaults","_toPath","_normalizeConfig","_isPlainObject","_cloneDeep","_pluginUtils","_toColorValue","isFunction","isObject","mergeWith","customizer","configUtils","scale","negativeScale","negativeValue","screens","valueToResolve","collectExtends","items","mergedValue","extendValue","mergeThemes","themes","mergeExtensionCustomizer","mergeExtensions","themeValue","resolveThemePath","utils","toPaths","matches","newPath","resolveFunctionKeys","resolvePath","val","normalized","extractPluginConfigs","configs","allConfigs","plugin","resolveCorePlugins","corePluginConfigs","corePluginConfig","resolvePluginLists","pluginLists","pluginList","picocolors_exports","picocolors_default","init_picocolors","require_featureFlags","flagEnabled","issueFlagNotices","_picocolors","featureFlags","flag","experimentalFlagsEnabled","changes","require_getAllConfigs","getAllConfigs","_defaultConfigStubJs","_featureFlags","preset","features","experimentals","feature","require_resolve_config","_resolveConfig","_getAllConfigs","defaultConfigs","yogaInstance","initializationPromise","getYoga","mod","yoga","isReactElement","isClass","hasDangerouslySetInnerHTMLProp","normalizeChildren","children","flattend","lengthToNumber","baseFontSize","baseLength","inheritedStyle","calcDegree","deg","multiply","m1","m2","field","map","fallback","errorIfNotAllowedForProperty","_v","wordSegmenter","graphemeSegmenter","wordSeparators","point","segment","granularity","locale","seg","segmented","previousWord","nextWord","buildXMLString","attrs","attrString","createLRU","store","set","keyToDelete","get","entry","clear","parseViewBox","viewBox","toString","isNumber","isUndefined","splitByBreakOpportunities","wordBreak","breaker","LineBreaker","bk","words","requiredBreaks","midline","letter","splitEffects","AVIF","WEBP","APNG","PNG","JPEG","GIF","SVG","parseJPEG","buf","view","parseGIF","parsePNG","inflightRequests","ALLOWED_IMAGE_TYPES","arrayBufferToBase64","buffer","binary","bytes","base64ToArrayBuffer","base64","binaryString","parseSvgImageSize","src","data","svgTag","viewBoxStr","width","height","ratio","arrayBufferToDataUri","imageSize","imageType","detectContentType","resolveImageData","newSrc","decodedURI","encodingType","dataString","utf8Src","base64Src","cached","promise","detectAPNG","dv","off","isAPNG","chars","ATTRIBUTE_MAPPING","SVGSymbols","translateSVGNodeToSVGString","inheritedColor","style","restProps","currentColor","styles","preProcessNode","walk","SVGNodeToImage","viewbox","viewBoxSize","DEFAULT_DISPLAY","presets_default","inheritable","parseUnit","handleWord","unitIsHorizontal","parsedUnit","parseTransformOrigin","valueParser","getMaskProperty","parseMask","maskImage","common","optOutPx","keepNumber","handleFallbackColor","rawInput","purify","num","handleSpecialCase","horizontal","vertical","vh","vv","purified","full","parseBoxShadow","symbols","replaced","symbol","values","getErrorHint","RGB_SLASH","normalizeColor","expand","serializedStyle","getCurrentColor","preprocess","resolvedStyle","backgrounds","parseElementStyle","calcBaseFontSize","textShadowRadius","inheritedSize","refineHSL","cssColorParse","convertCurrentColorToActualValue","compute","definedStyle","Yoga","resolvedSrc","imageWidth","imageHeight","extraHorizontal","extraVertical","contentBoxWidth","contentBoxHeight","isAbsoluteContentSize","baseMatrix","resolveTransforms","matrix","transformMatrix","rad","left","top","isInheritingTransform","transformOrigin","xOrigin","yOrigin","container","opacity","buildText","filter","clipPathId","debug","decorationShape","shapeProps","escapeHTML","shiftPath","dx","dy","command","SCALE","buildDropShadow","shadowCount","effects","right","bottom","grow","innerShadow","shadowStyle","sid","maskId","shapeWithSpread","finalShape","buildDecoration","ascender","textDecorationColor","textDecorationStyle","fontSize","dasharray","stringFromCode","Space","Tab","HorizontalEllipsis","genMeasurer","engine","isImage","letterSpacing","measureGrapheme","grapheme","measureGraphemeArray","graphemes","measureText","text","textTransform","whiteSpace","processTextTransform","processedContent","shouldCollapseTabsAndSpaces","allowSoftWrap","processWhiteSpace","allowBreakWord","processWordBreak","lineLimit","blockEllipsis","processTextOverflow","textOverflow","lineClamp","WebkitLineClamp","WebkitBoxOrient","overflow","display","parseLineClamp","shouldKeepLinebreak","regex1","regex2","match1","match2","skippedWordWhenFindingMissingFont","shouldSkipWhenFindingMissingFont","buildTextNodes","context","parentStyle","embedFont","graphemeImages","canLoadAdditionalAssets","textAlign","lineHeight","textWrap","cssFilter","tabSize","_inheritedBackgroundClipTextPath","flexShrink","textContainer","createTextContainerNode","wordsMissingFont","tabWidth","calc","currentWidth","tabCount","detectTabs","originWidth","textBeforeTab","textAfterTab","textWidthBeforeTab","offsetBeforeTab","afterTrimEndWidth","baselines","lineSegmentNumber","texts","wordPositionInLayout","flow","maxWidth","lineIndex","currentLineHeight","currentBaselineOffset","prevLineEndingSpacesWidth","forceBreak","endingSpacesWidth","_word","lineEndingSpacesWidth","allowedToPutAtBeginning","allowedToJustify","willWrap","glyphHeight","_texts","_text","_width","_isImage","measuredTextSize","containerWidth","mHeight","backgroundClipDef","overflowMaskId","containerLeft","containerTop","containerHeight","parentContainerInnerWidth","textShadowColor","mergedPath","skippedLine","decorationLines","wordBuffer","bufferedOffset","layout","nextLayout","isLastDisplayedBeforeEllipsis","topOffset","leftOffset","extendedWidth","remainingWidth","segments","gutter","baselineOfLine","baselineOfWord","heightOfWord","baselineDelta","calcEllipsis","baseWidth","subset","resolvedWidth","char","ellipsisWidth","_blockEllipsis","spaceWidth","isNotLastLine","nextLineText","finalizedSegment","finalizedLeftOffset","finalizedWidth","deco","normalizeStops","totalLength","colorStops","stop","lastStop","previousStop","nextStop","buildLinearGradient","repeatX","repeatY","dimensions","offsets","inheritableStyle","points","xys","resolveXYFromDirection","calcNormalPoint","calcPercentage","resolveRepeatingCycle","gradientId","patternId","defs","dir","x1","y1","tmp","dfs","p1","p2","sx","sy","ex","ey","buildRadialGradient","_a","xDelta","yDelta","cx","cy","calcRadialGradient","spread","calcRadius","calcPos","endingShape","centerAxis","fx","fy","isSizeAllLength","toAbsoluteValue","base","parseLengthPairs","defaultX","defaultY","backgroundImage","repeat","dimensionsWithoutFallback","resolvedHeight","svgArcCenterOffset","resolveSize","limit","makeSmaller","resolveRadius","sides","singleValue","radiusZeroOrNull","_radius","getBorderRadiusClipPath","borderRadiusPath","borderType","rectClipId","radius","partialSides","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","singleAbsValueTopLeftCorner","singleAbsValueTopRightCorner","singleAbsValueBottomLeftCorner","singleAbsValueBottomRightCorner","getArc","c0","arc0","arc1","compareBorderDirections","getBorderClipPath","currentClipPathId","borderPath","asContentMask","maskBorderOnly","directions","direction","fullBorder","currentStyle","_i","ni","nd","contentMask","borderOnly","offsetLeft","offsetTop","offsetRight","offsetBottom","contentArea","regexMap","createShapeParser","parseCircle","resolvePosition","parseEllipse","parsePath","fillRule","resolveFillRule","parsePolygon","parseInset","inset","radiusMap","genClipPathId","genClipPath","buildClipPath","clipPath","rest","currentClipPath","overflowClipPath","genMaskImageId","buildMaskImage","miId","mask","def","rect","fills","backgroundShapes","mi","backgroundClip","clip","fill","borderClip","imageBorderRadius","preserveAspectRatio","emoji_regex_default","emojiRegex","specialCode","locales","isValidLocale","detectLanguageCode","languages","lang","normalizeLocale","element","getTwStyles","iter","tw","_newLocale","newLocale","twStyles","computedStyle","newInheritableStyle","mutateRefValue","normalizedChildren","iterators","segmentsMissingFont","childrenRenderResult","baseRenderResult","depsRenderResult","childrenNode","SUFFIX_WHEN_LANG_NOT_SET","compareFont","weight","matchedWeight","matchedStyle","nextWeight","nextStyle","FontLoader","fontOptions","matchedFont","weight1","style1","weight2","style2","fontOption","_lang","opentype","originalCharToGlyphIndex","_name","fontStyle","face","getNormal","getUnknown","keys","specifiedLangFonts","nonSpecifiedLangFonts","additionalFonts","getLangFromFontName","cachedFontResolver","resolveFont","_fonts","_font","resolvedFont","useOS2Table","_b","descender","_lineGap","asc","contentHeight","brokenChars","originalStringToGlyphs","glyphs","anotherFont","glyph","scaledCommand","unpatch","svg","import_resolveConfig","PLATFORMS","isPlatform","ORIENTATIONS","isOrientation","ConfigType","Unit","complete","parseNumericValue","fractions","numerator","denominator","parsedNumerator","parsedDenominator","getCompleteStyle","styleVal","parseStyleVal","mergeStyle","getStyle","toStyleVal","isNegative","device","toPx","DIR_MAP","getDirection","parseAndConsumeDirection","utilityFragment","parseUnconfigged","unconfiggedStyleVal","unconfiggedStyle","consoleWarn","noopWarn","defaultStyles","styles_default","Cache","customStyles","ir","configValue","fontSizeStyle","calculateLineHeight","parseValue","spacing","numericValue","unconfigged","spacingStyle","pixels","screenData","acc","screen","minPx","maxPx","minA","maxA","minB","maxB","order","firstFamily","shorthandOpacity","findColorInConfigRecursive","addOpacity","STYLE_PROPS","opacityProp","colorOpacity","hexToRgba","removeOpacityHelpers","orig","MATCH_SHORT_HEX","MATCH_FULL_HEX","configColor","colorNameStart","colorNameRest","subConfig","colorType","colorStyle","arbitraryWidth","borderRadius","arbitrary","insetDir","insetStyle","flexGrowShrink","configKey","flexBasis","widthHeight","minMaxWidthHeight","relativeLetterSpacing","ems","parsedConfig","parsedArbitrary","shadowOpacity","widthStr","heightStr","offsetValue","ClassParser","platform","_c","_d","_e","_f","prefixes","widthBreakpoints","breakpointOrder","windowWidth","min","spacingDirection","elevation","zIndex","windowDims","amount","checkDimension","parsedAmount","bound","begin","parseInputs","inputs","classNames","unique","classes","getAddedUtilities","callPluginFunction","pluginFn","added","utilities","core","notImplemented","create","customConfig","withContent","pluginUtils","customStringUtils","customStyleUtils","util","deriveCacheGroup","cacheGroup","contextCaches","getCache","existing","dependents","ordered","userStyle","joined","utility","styleIr","customStyle","orderedStyle","dependent","error","styleObj","tailwindFn","strings","prefixMatches","newDimensions","newFontScale","newPixelDensity","newColorScheme","defaultShadows","addUtilities","createTw","getTw","fontCache","satori","definedWidth","definedHeight","processedWordsMissingFonts","languageCodes","convertToLanguageCodes","_segment","asset","computedWidth","computedHeight","wordsByCode","Fragment","__e","vnode","oldVNode","errorInfo","component","ctor","handled","__","__c","constructor","getDerivedStateFromError","setState","__d","componentDidCatch","__E","Promise","then","bind","setTimeout","Math","random","vnodeId","createVNode","isStaticChildren","__source","__self","normalizedProps","__k","__b","__v","__i","__u","defaultProps","U200D","slug"],"mappings":"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yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;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;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,aAAA;AACA,EAAA,WAAA;AACA,EAAA,cAAA;AACA,EAAA,aAAA;AACA,EAAA,YAAA;AACA,EAAA,WAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,GAAA;AACA,EAAA,WAAA;AACA,EAAA,KAAA;AACA,EAAA,YAAA;AACA,EAAA,YAAA;AACA,EAAA,EAAA;AACA,EAAA,EAAA;AACA,EAAA,EAAA;AACA,EAAA,EAAA;AACA,EAAA,EAAA;AACA,EAAA,EAAA;AACA,EAAA,EAAA;AACA,EAAA,EAAA;AACA,EAAA,EAAA;AACA,EAAA,EAAA;AACA,EAAA,EAAA;AACA,EAAA,EAAA;AACA,EAAA,EAAA;AACA,EAAA,EAAA;AACA,EAAA,EAAA;AACA,EAAA,EAAA;AACA,EAAA,EAAA;AACA,EAAA,EAAA;AACA,EAAA,EAAA;AACA,EAAA,EAAA;AACA,EAAA,EAAA;AACA,EAAA,EAAA;AACA,EAAA,EAAA;AACA,EAAA,EAAA;AACA,EAAA,EAAA;AACA,EAAA,EAAA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AA,EACA,WAAA,EACA,WACA,aAAA,EACA,QAAA,EACA,aACA,WAAA,EACA,OAAA,EACA,YACA,UAAA,EACA,MAAA,EACA,YAAA,EACA,UAAA,EACA,aACA,aAAA,EACA,gBAAA,EACA,iBACA,iBAAA,EACA,WAAA,EACA,UACA,MAAA,EACA,OAAA,EACA,WAAA,EACA,WAAA,EACA,UACA,aAAA,EACA,YAAA,EACA,UACA,gBAAA,EACA,iBAAA,EACA,kBACA,cAAA,EACA,eAAA,EACA,mBAAA,EACA,eAAA,EACA,cACA,SAAA,EACA,aAAA,EACA,eACA,YAAA,EACA,iBAAA,EACA,gBACA,cAAA,EACA,qBAAA,EACA,kBAAA,EACA,eAAA,EACA,YACA,cAAA,EACA,YAAA,EACA,gBACA,YAAA,EACA,gBAAA,EACA,gBACA,KAAA,EACA,OAAA,EACA,aAAA,EACA,aAAA,EACA,eACA,eAAA,EACA,WAAA,EACA,aACA,aAAA,EACA,UAAA,EACA,sBACA,gBAAA,EACA,cAAA,EACA,YAAA,EACA,WAAA,EACA,gBACA,aAAA,EACA,aAAA,EACA,eACA,eAAA,EACA,iBAAA,EACA,qBACA,iBAAA,EACA,oBAAA,EACA,oBAAA,EACA,gBAAA,EACA,wBACA,gBAAA,EACA,oBAAA,EACA,oBACA,kBAAA,EACA,MAAA,EACA,UACA,aAAA,EACA,WAAA,EACA,gBAAA,EACA,SAAA,EACA,aACA,YAAA,EACA,eAAA,EACA,cACA,UAAA,EACA,YAAA,EACA,iBACA,WAAA,EACA,oBAAA,EACA,YAAA,EACA,eAAA,EACA,aACA,aAAA,EACA,gBAAA,EACA,uBACA,qBAAA,EACA,yBAAA,EACA,uBACA,eAAA,EACA,kBAAA,EACA,oBAAA,EACA,YAAA,EACA,eACA,SAAA,EACA,qBAAA,EACA,gBACA,WAAA,EACA,gBAAA,EACA,gBACA,cAAA,EACA,eAAA,EACA,cAAA,EACA,WAAA,EACA,aACA,aAAA,EACA,iBAAA,EACA,mBACA,MAAA,EACA,YAAA,EACA,YACA,YAAA,EACA,WAAA,EACA,WAAA,EACA,QAAA,EAC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","file":"index.js","sourcesContent":["var TINF_OK = 0;\nvar TINF_DATA_ERROR = -3;\n\nfunction Tree() {\n this.table = new Uint16Array(16); /* table of code length counts */\n this.trans = new Uint16Array(288); /* code -> symbol translation table */\n}\n\nfunction Data(source, dest) {\n this.source = source;\n this.sourceIndex = 0;\n this.tag = 0;\n this.bitcount = 0;\n \n this.dest = dest;\n this.destLen = 0;\n \n this.ltree = new Tree(); /* dynamic length/symbol tree */\n this.dtree = new Tree(); /* dynamic distance tree */\n}\n\n/* --------------------------------------------------- *\n * -- uninitialized global data (static structures) -- *\n * --------------------------------------------------- */\n\nvar sltree = new Tree();\nvar sdtree = new Tree();\n\n/* extra bits and base tables for length codes */\nvar length_bits = new Uint8Array(30);\nvar length_base = new Uint16Array(30);\n\n/* extra bits and base tables for distance codes */\nvar dist_bits = new Uint8Array(30);\nvar dist_base = new Uint16Array(30);\n\n/* special ordering of code length codes */\nvar clcidx = new Uint8Array([\n 16, 17, 18, 0, 8, 7, 9, 6,\n 10, 5, 11, 4, 12, 3, 13, 2,\n 14, 1, 15\n]);\n\n/* used by tinf_decode_trees, avoids allocations every call */\nvar code_tree = new Tree();\nvar lengths = new Uint8Array(288 + 32);\n\n/* ----------------------- *\n * -- utility functions -- *\n * ----------------------- */\n\n/* build extra bits and base tables */\nfunction tinf_build_bits_base(bits, base, delta, first) {\n var i, sum;\n\n /* build bits table */\n for (i = 0; i < delta; ++i) bits[i] = 0;\n for (i = 0; i < 30 - delta; ++i) bits[i + delta] = i / delta | 0;\n\n /* build base table */\n for (sum = first, i = 0; i < 30; ++i) {\n base[i] = sum;\n sum += 1 << bits[i];\n }\n}\n\n/* build the fixed huffman trees */\nfunction tinf_build_fixed_trees(lt, dt) {\n var i;\n\n /* build fixed length tree */\n for (i = 0; i < 7; ++i) lt.table[i] = 0;\n\n lt.table[7] = 24;\n lt.table[8] = 152;\n lt.table[9] = 112;\n\n for (i = 0; i < 24; ++i) lt.trans[i] = 256 + i;\n for (i = 0; i < 144; ++i) lt.trans[24 + i] = i;\n for (i = 0; i < 8; ++i) lt.trans[24 + 144 + i] = 280 + i;\n for (i = 0; i < 112; ++i) lt.trans[24 + 144 + 8 + i] = 144 + i;\n\n /* build fixed distance tree */\n for (i = 0; i < 5; ++i) dt.table[i] = 0;\n\n dt.table[5] = 32;\n\n for (i = 0; i < 32; ++i) dt.trans[i] = i;\n}\n\n/* given an array of code lengths, build a tree */\nvar offs = new Uint16Array(16);\n\nfunction tinf_build_tree(t, lengths, off, num) {\n var i, sum;\n\n /* clear code length count table */\n for (i = 0; i < 16; ++i) t.table[i] = 0;\n\n /* scan symbol lengths, and sum code length counts */\n for (i = 0; i < num; ++i) t.table[lengths[off + i]]++;\n\n t.table[0] = 0;\n\n /* compute offset table for distribution sort */\n for (sum = 0, i = 0; i < 16; ++i) {\n offs[i] = sum;\n sum += t.table[i];\n }\n\n /* create code->symbol translation table (symbols sorted by code) */\n for (i = 0; i < num; ++i) {\n if (lengths[off + i]) t.trans[offs[lengths[off + i]]++] = i;\n }\n}\n\n/* ---------------------- *\n * -- decode functions -- *\n * ---------------------- */\n\n/* get one bit from source stream */\nfunction tinf_getbit(d) {\n /* check if tag is empty */\n if (!d.bitcount--) {\n /* load next tag */\n d.tag = d.source[d.sourceIndex++];\n d.bitcount = 7;\n }\n\n /* shift bit out of tag */\n var bit = d.tag & 1;\n d.tag >>>= 1;\n\n return bit;\n}\n\n/* read a num bit value from a stream and add base */\nfunction tinf_read_bits(d, num, base) {\n if (!num)\n return base;\n\n while (d.bitcount < 24) {\n d.tag |= d.source[d.sourceIndex++] << d.bitcount;\n d.bitcount += 8;\n }\n\n var val = d.tag & (0xffff >>> (16 - num));\n d.tag >>>= num;\n d.bitcount -= num;\n return val + base;\n}\n\n/* given a data stream and a tree, decode a symbol */\nfunction tinf_decode_symbol(d, t) {\n while (d.bitcount < 24) {\n d.tag |= d.source[d.sourceIndex++] << d.bitcount;\n d.bitcount += 8;\n }\n \n var sum = 0, cur = 0, len = 0;\n var tag = d.tag;\n\n /* get more bits while code value is above sum */\n do {\n cur = 2 * cur + (tag & 1);\n tag >>>= 1;\n ++len;\n\n sum += t.table[len];\n cur -= t.table[len];\n } while (cur >= 0);\n \n d.tag = tag;\n d.bitcount -= len;\n\n return t.trans[sum + cur];\n}\n\n/* given a data stream, decode dynamic trees from it */\nfunction tinf_decode_trees(d, lt, dt) {\n var hlit, hdist, hclen;\n var i, num, length;\n\n /* get 5 bits HLIT (257-286) */\n hlit = tinf_read_bits(d, 5, 257);\n\n /* get 5 bits HDIST (1-32) */\n hdist = tinf_read_bits(d, 5, 1);\n\n /* get 4 bits HCLEN (4-19) */\n hclen = tinf_read_bits(d, 4, 4);\n\n for (i = 0; i < 19; ++i) lengths[i] = 0;\n\n /* read code lengths for code length alphabet */\n for (i = 0; i < hclen; ++i) {\n /* get 3 bits code length (0-7) */\n var clen = tinf_read_bits(d, 3, 0);\n lengths[clcidx[i]] = clen;\n }\n\n /* build code length tree */\n tinf_build_tree(code_tree, lengths, 0, 19);\n\n /* decode code lengths for the dynamic trees */\n for (num = 0; num < hlit + hdist;) {\n var sym = tinf_decode_symbol(d, code_tree);\n\n switch (sym) {\n case 16:\n /* copy previous code length 3-6 times (read 2 bits) */\n var prev = lengths[num - 1];\n for (length = tinf_read_bits(d, 2, 3); length; --length) {\n lengths[num++] = prev;\n }\n break;\n case 17:\n /* repeat code length 0 for 3-10 times (read 3 bits) */\n for (length = tinf_read_bits(d, 3, 3); length; --length) {\n lengths[num++] = 0;\n }\n break;\n case 18:\n /* repeat code length 0 for 11-138 times (read 7 bits) */\n for (length = tinf_read_bits(d, 7, 11); length; --length) {\n lengths[num++] = 0;\n }\n break;\n default:\n /* values 0-15 represent the actual code lengths */\n lengths[num++] = sym;\n break;\n }\n }\n\n /* build dynamic trees */\n tinf_build_tree(lt, lengths, 0, hlit);\n tinf_build_tree(dt, lengths, hlit, hdist);\n}\n\n/* ----------------------------- *\n * -- block inflate functions -- *\n * ----------------------------- */\n\n/* given a stream and two trees, inflate a block of data */\nfunction tinf_inflate_block_data(d, lt, dt) {\n while (1) {\n var sym = tinf_decode_symbol(d, lt);\n\n /* check for end of block */\n if (sym === 256) {\n return TINF_OK;\n }\n\n if (sym < 256) {\n d.dest[d.destLen++] = sym;\n } else {\n var length, dist, offs;\n var i;\n\n sym -= 257;\n\n /* possibly get more bits from length code */\n length = tinf_read_bits(d, length_bits[sym], length_base[sym]);\n\n dist = tinf_decode_symbol(d, dt);\n\n /* possibly get more bits from distance code */\n offs = d.destLen - tinf_read_bits(d, dist_bits[dist], dist_base[dist]);\n\n /* copy match */\n for (i = offs; i < offs + length; ++i) {\n d.dest[d.destLen++] = d.dest[i];\n }\n }\n }\n}\n\n/* inflate an uncompressed block of data */\nfunction tinf_inflate_uncompressed_block(d) {\n var length, invlength;\n var i;\n \n /* unread from bitbuffer */\n while (d.bitcount > 8) {\n d.sourceIndex--;\n d.bitcount -= 8;\n }\n\n /* get length */\n length = d.source[d.sourceIndex + 1];\n length = 256 * length + d.source[d.sourceIndex];\n\n /* get one's complement of length */\n invlength = d.source[d.sourceIndex + 3];\n invlength = 256 * invlength + d.source[d.sourceIndex + 2];\n\n /* check length */\n if (length !== (~invlength & 0x0000ffff))\n return TINF_DATA_ERROR;\n\n d.sourceIndex += 4;\n\n /* copy block */\n for (i = length; i; --i)\n d.dest[d.destLen++] = d.source[d.sourceIndex++];\n\n /* make sure we start next block on a byte boundary */\n d.bitcount = 0;\n\n return TINF_OK;\n}\n\n/* inflate stream from source to dest */\nfunction tinf_uncompress(source, dest) {\n var d = new Data(source, dest);\n var bfinal, btype, res;\n\n do {\n /* read final block flag */\n bfinal = tinf_getbit(d);\n\n /* read block type (2 bits) */\n btype = tinf_read_bits(d, 2, 0);\n\n /* decompress block */\n switch (btype) {\n case 0:\n /* decompress uncompressed block */\n res = tinf_inflate_uncompressed_block(d);\n break;\n case 1:\n /* decompress block with fixed huffman trees */\n res = tinf_inflate_block_data(d, sltree, sdtree);\n break;\n case 2:\n /* decompress block with dynamic huffman trees */\n tinf_decode_trees(d, d.ltree, d.dtree);\n res = tinf_inflate_block_data(d, d.ltree, d.dtree);\n break;\n default:\n res = TINF_DATA_ERROR;\n }\n\n if (res !== TINF_OK)\n throw new Error('Data error');\n\n } while (!bfinal);\n\n if (d.destLen < d.dest.length) {\n if (typeof d.dest.slice === 'function')\n return d.dest.slice(0, d.destLen);\n else\n return d.dest.subarray(0, d.destLen);\n }\n \n return d.dest;\n}\n\n/* -------------------- *\n * -- initialization -- *\n * -------------------- */\n\n/* build fixed huffman trees */\ntinf_build_fixed_trees(sltree, sdtree);\n\n/* build extra bits and base tables */\ntinf_build_bits_base(length_bits, length_base, 4, 3);\ntinf_build_bits_base(dist_bits, dist_base, 2, 1);\n\n/* fix a special case */\nlength_bits[28] = 0;\nlength_base[28] = 258;\n\nmodule.exports = tinf_uncompress;\n","const isBigEndian = (new Uint8Array(new Uint32Array([0x12345678]).buffer)[0] === 0x12);\n\nconst swap = (b, n, m) => {\n let i = b[n];\n b[n] = b[m];\n b[m] = i;\n};\n\nconst swap32 = array => {\n const len = array.length;\n for (let i = 0; i < len; i += 4) {\n swap(array, i, i + 3);\n swap(array, i + 1, i + 2);\n }\n};\n\nconst swap32LE = array => {\n if (isBigEndian) {\n swap32(array);\n }\n};\n\nmodule.exports = {\n swap32LE: swap32LE\n};\n","const inflate = require('tiny-inflate');\nconst { swap32LE } = require('./swap');\n\n// Shift size for getting the index-1 table offset.\nconst SHIFT_1 = 6 + 5;\n\n// Shift size for getting the index-2 table offset.\nconst SHIFT_2 = 5;\n\n// Difference between the two shift sizes,\n// for getting an index-1 offset from an index-2 offset. 6=11-5\nconst SHIFT_1_2 = SHIFT_1 - SHIFT_2;\n\n// Number of index-1 entries for the BMP. 32=0x20\n// This part of the index-1 table is omitted from the serialized form.\nconst OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> SHIFT_1;\n\n// Number of entries in an index-2 block. 64=0x40\nconst INDEX_2_BLOCK_LENGTH = 1 << SHIFT_1_2;\n\n// Mask for getting the lower bits for the in-index-2-block offset. */\nconst INDEX_2_MASK = INDEX_2_BLOCK_LENGTH - 1;\n\n// Shift size for shifting left the index array values.\n// Increases possible data size with 16-bit index values at the cost\n// of compactability.\n// This requires data blocks to be aligned by DATA_GRANULARITY.\nconst INDEX_SHIFT = 2;\n\n// Number of entries in a data block. 32=0x20\nconst DATA_BLOCK_LENGTH = 1 << SHIFT_2;\n\n// Mask for getting the lower bits for the in-data-block offset.\nconst DATA_MASK = DATA_BLOCK_LENGTH - 1;\n\n// The part of the index-2 table for U+D800..U+DBFF stores values for\n// lead surrogate code _units_ not code _points_.\n// Values for lead surrogate code _points_ are indexed with this portion of the table.\n// Length=32=0x20=0x400>>SHIFT_2. (There are 1024=0x400 lead surrogates.)\nconst LSCP_INDEX_2_OFFSET = 0x10000 >> SHIFT_2;\nconst LSCP_INDEX_2_LENGTH = 0x400 >> SHIFT_2;\n\n// Count the lengths of both BMP pieces. 2080=0x820\nconst INDEX_2_BMP_LENGTH = LSCP_INDEX_2_OFFSET + LSCP_INDEX_2_LENGTH;\n\n// The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\n// Length 32=0x20 for lead bytes C0..DF, regardless of SHIFT_2.\nconst UTF8_2B_INDEX_2_OFFSET = INDEX_2_BMP_LENGTH;\nconst UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; // U+0800 is the first code point after 2-byte UTF-8\n\n// The index-1 table, only used for supplementary code points, at offset 2112=0x840.\n// Variable length, for code points up to highStart, where the last single-value range starts.\n// Maximum length 512=0x200=0x100000>>SHIFT_1.\n// (For 0x100000 supplementary code points U+10000..U+10ffff.)\n//\n// The part of the index-2 table for supplementary code points starts\n// after this index-1 table.\n//\n// Both the index-1 table and the following part of the index-2 table\n// are omitted completely if there is only BMP data.\nconst INDEX_1_OFFSET = UTF8_2B_INDEX_2_OFFSET + UTF8_2B_INDEX_2_LENGTH;\n\n// The alignment size of a data block. Also the granularity for compaction.\nconst DATA_GRANULARITY = 1 << INDEX_SHIFT;\n\nclass UnicodeTrie {\n constructor(data) {\n const isBuffer = (typeof data.readUInt32BE === 'function') && (typeof data.slice === 'function');\n\n if (isBuffer || data instanceof Uint8Array) {\n // read binary format\n let uncompressedLength;\n if (isBuffer) {\n this.highStart = data.readUInt32LE(0);\n this.errorValue = data.readUInt32LE(4);\n uncompressedLength = data.readUInt32LE(8);\n data = data.slice(12);\n } else {\n const view = new DataView(data.buffer);\n this.highStart = view.getUint32(0, true);\n this.errorValue = view.getUint32(4, true);\n uncompressedLength = view.getUint32(8, true);\n data = data.subarray(12);\n }\n\n // double inflate the actual trie data\n data = inflate(data, new Uint8Array(uncompressedLength));\n data = inflate(data, new Uint8Array(uncompressedLength));\n\n // swap bytes from little-endian\n swap32LE(data);\n\n this.data = new Uint32Array(data.buffer);\n\n } else {\n // pre-parsed data\n ({ data: this.data, highStart: this.highStart, errorValue: this.errorValue } = data);\n }\n }\n\n get(codePoint) {\n let index;\n if ((codePoint < 0) || (codePoint > 0x10ffff)) {\n return this.errorValue;\n }\n\n if ((codePoint < 0xd800) || ((codePoint > 0xdbff) && (codePoint <= 0xffff))) {\n // Ordinary BMP code point, excluding leading surrogates.\n // BMP uses a single level lookup. BMP index starts at offset 0 in the index.\n // data is stored in the index array itself.\n index = (this.data[codePoint >> SHIFT_2] << INDEX_SHIFT) + (codePoint & DATA_MASK);\n return this.data[index];\n }\n\n if (codePoint <= 0xffff) {\n // Lead Surrogate Code Point. A Separate index section is stored for\n // lead surrogate code units and code points.\n // The main index has the code unit data.\n // For this function, we need the code point data.\n index = (this.data[LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> SHIFT_2)] << INDEX_SHIFT) + (codePoint & DATA_MASK);\n return this.data[index];\n }\n\n if (codePoint < this.highStart) {\n // Supplemental code point, use two-level lookup.\n index = this.data[(INDEX_1_OFFSET - OMITTED_BMP_INDEX_1_LENGTH) + (codePoint >> SHIFT_1)];\n index = this.data[index + ((codePoint >> SHIFT_2) & INDEX_2_MASK)];\n index = (index << INDEX_SHIFT) + (codePoint & DATA_MASK);\n return this.data[index];\n }\n\n return this.data[this.data.length - DATA_GRANULARITY];\n }\n}\n\nmodule.exports = UnicodeTrie;","var lookup = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n;(function (exports) {\n\t'use strict';\n\n var Arr = (typeof Uint8Array !== 'undefined')\n ? Uint8Array\n : Array\n\n\tvar PLUS = '+'.charCodeAt(0)\n\tvar SLASH = '/'.charCodeAt(0)\n\tvar NUMBER = '0'.charCodeAt(0)\n\tvar LOWER = 'a'.charCodeAt(0)\n\tvar UPPER = 'A'.charCodeAt(0)\n\tvar PLUS_URL_SAFE = '-'.charCodeAt(0)\n\tvar SLASH_URL_SAFE = '_'.charCodeAt(0)\n\n\tfunction decode (elt) {\n\t\tvar code = elt.charCodeAt(0)\n\t\tif (code === PLUS ||\n\t\t code === PLUS_URL_SAFE)\n\t\t\treturn 62 // '+'\n\t\tif (code === SLASH ||\n\t\t code === SLASH_URL_SAFE)\n\t\t\treturn 63 // '/'\n\t\tif (code < NUMBER)\n\t\t\treturn -1 //no match\n\t\tif (code < NUMBER + 10)\n\t\t\treturn code - NUMBER + 26 + 26\n\t\tif (code < UPPER + 26)\n\t\t\treturn code - UPPER\n\t\tif (code < LOWER + 26)\n\t\t\treturn code - LOWER + 26\n\t}\n\n\tfunction b64ToByteArray (b64) {\n\t\tvar i, j, l, tmp, placeHolders, arr\n\n\t\tif (b64.length % 4 > 0) {\n\t\t\tthrow new Error('Invalid string. Length must be a multiple of 4')\n\t\t}\n\n\t\t// the number of equal signs (place holders)\n\t\t// if there are two placeholders, than the two characters before it\n\t\t// represent one byte\n\t\t// if there is only one, then the three characters before it represent 2 bytes\n\t\t// this is just a cheap hack to not do indexOf twice\n\t\tvar len = b64.length\n\t\tplaceHolders = '=' === b64.charAt(len - 2) ? 2 : '=' === b64.charAt(len - 1) ? 1 : 0\n\n\t\t// base64 is 4/3 + up to two characters of the original data\n\t\tarr = new Arr(b64.length * 3 / 4 - placeHolders)\n\n\t\t// if there are placeholders, only get up to the last complete 4 chars\n\t\tl = placeHolders > 0 ? b64.length - 4 : b64.length\n\n\t\tvar L = 0\n\n\t\tfunction push (v) {\n\t\t\tarr[L++] = v\n\t\t}\n\n\t\tfor (i = 0, j = 0; i < l; i += 4, j += 3) {\n\t\t\ttmp = (decode(b64.charAt(i)) << 18) | (decode(b64.charAt(i + 1)) << 12) | (decode(b64.charAt(i + 2)) << 6) | decode(b64.charAt(i + 3))\n\t\t\tpush((tmp & 0xFF0000) >> 16)\n\t\t\tpush((tmp & 0xFF00) >> 8)\n\t\t\tpush(tmp & 0xFF)\n\t\t}\n\n\t\tif (placeHolders === 2) {\n\t\t\ttmp = (decode(b64.charAt(i)) << 2) | (decode(b64.charAt(i + 1)) >> 4)\n\t\t\tpush(tmp & 0xFF)\n\t\t} else if (placeHolders === 1) {\n\t\t\ttmp = (decode(b64.charAt(i)) << 10) | (decode(b64.charAt(i + 1)) << 4) | (decode(b64.charAt(i + 2)) >> 2)\n\t\t\tpush((tmp >> 8) & 0xFF)\n\t\t\tpush(tmp & 0xFF)\n\t\t}\n\n\t\treturn arr\n\t}\n\n\tfunction uint8ToBase64 (uint8) {\n\t\tvar i,\n\t\t\textraBytes = uint8.length % 3, // if we have 1 byte left, pad 2 bytes\n\t\t\toutput = \"\",\n\t\t\ttemp, length\n\n\t\tfunction encode (num) {\n\t\t\treturn lookup.charAt(num)\n\t\t}\n\n\t\tfunction tripletToBase64 (num) {\n\t\t\treturn encode(num >> 18 & 0x3F) + encode(num >> 12 & 0x3F) + encode(num >> 6 & 0x3F) + encode(num & 0x3F)\n\t\t}\n\n\t\t// go through the array every three bytes, we'll deal with trailing stuff later\n\t\tfor (i = 0, length = uint8.length - extraBytes; i < length; i += 3) {\n\t\t\ttemp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])\n\t\t\toutput += tripletToBase64(temp)\n\t\t}\n\n\t\t// pad the end with zeros, but make sure to not forget the extra bytes\n\t\tswitch (extraBytes) {\n\t\t\tcase 1:\n\t\t\t\ttemp = uint8[uint8.length - 1]\n\t\t\t\toutput += encode(temp >> 2)\n\t\t\t\toutput += encode((temp << 4) & 0x3F)\n\t\t\t\toutput += '=='\n\t\t\t\tbreak\n\t\t\tcase 2:\n\t\t\t\ttemp = (uint8[uint8.length - 2] << 8) + (uint8[uint8.length - 1])\n\t\t\t\toutput += encode(temp >> 10)\n\t\t\t\toutput += encode((temp >> 4) & 0x3F)\n\t\t\t\toutput += encode((temp << 2) & 0x3F)\n\t\t\t\toutput += '='\n\t\t\t\tbreak\n\t\t}\n\n\t\treturn output\n\t}\n\n\texports.toByteArray = b64ToByteArray\n\texports.fromByteArray = uint8ToBase64\n}(typeof exports === 'undefined' ? (this.base64js = {}) : exports))\n","var openParentheses = \"(\".charCodeAt(0);\nvar closeParentheses = \")\".charCodeAt(0);\nvar singleQuote = \"'\".charCodeAt(0);\nvar doubleQuote = '\"'.charCodeAt(0);\nvar backslash = \"\\\\\".charCodeAt(0);\nvar slash = \"/\".charCodeAt(0);\nvar comma = \",\".charCodeAt(0);\nvar colon = \":\".charCodeAt(0);\nvar star = \"*\".charCodeAt(0);\nvar uLower = \"u\".charCodeAt(0);\nvar uUpper = \"U\".charCodeAt(0);\nvar plus = \"+\".charCodeAt(0);\nvar isUnicodeRange = /^[a-f0-9?-]+$/i;\n\nmodule.exports = function(input) {\n var tokens = [];\n var value = input;\n\n var next,\n quote,\n prev,\n token,\n escape,\n escapePos,\n whitespacePos,\n parenthesesOpenPos;\n var pos = 0;\n var code = value.charCodeAt(pos);\n var max = value.length;\n var stack = [{ nodes: tokens }];\n var balanced = 0;\n var parent;\n\n var name = \"\";\n var before = \"\";\n var after = \"\";\n\n while (pos < max) {\n // Whitespaces\n if (code <= 32) {\n next = pos;\n do {\n next += 1;\n code = value.charCodeAt(next);\n } while (code <= 32);\n token = value.slice(pos, next);\n\n prev = tokens[tokens.length - 1];\n if (code === closeParentheses && balanced) {\n after = token;\n } else if (prev && prev.type === \"div\") {\n prev.after = token;\n prev.sourceEndIndex += token.length;\n } else if (\n code === comma ||\n code === colon ||\n (code === slash &&\n value.charCodeAt(next + 1) !== star &&\n (!parent ||\n (parent && parent.type === \"function\" && parent.value !== \"calc\")))\n ) {\n before = token;\n } else {\n tokens.push({\n type: \"space\",\n sourceIndex: pos,\n sourceEndIndex: next,\n value: token\n });\n }\n\n pos = next;\n\n // Quotes\n } else if (code === singleQuote || code === doubleQuote) {\n next = pos;\n quote = code === singleQuote ? \"'\" : '\"';\n token = {\n type: \"string\",\n sourceIndex: pos,\n quote: quote\n };\n do {\n escape = false;\n next = value.indexOf(quote, next + 1);\n if (~next) {\n escapePos = next;\n while (value.charCodeAt(escapePos - 1) === backslash) {\n escapePos -= 1;\n escape = !escape;\n }\n } else {\n value += quote;\n next = value.length - 1;\n token.unclosed = true;\n }\n } while (escape);\n token.value = value.slice(pos + 1, next);\n token.sourceEndIndex = token.unclosed ? next : next + 1;\n tokens.push(token);\n pos = next + 1;\n code = value.charCodeAt(pos);\n\n // Comments\n } else if (code === slash && value.charCodeAt(pos + 1) === star) {\n next = value.indexOf(\"*/\", pos);\n\n token = {\n type: \"comment\",\n sourceIndex: pos,\n sourceEndIndex: next + 2\n };\n\n if (next === -1) {\n token.unclosed = true;\n next = value.length;\n token.sourceEndIndex = next;\n }\n\n token.value = value.slice(pos + 2, next);\n tokens.push(token);\n\n pos = next + 2;\n code = value.charCodeAt(pos);\n\n // Operation within calc\n } else if (\n (code === slash || code === star) &&\n parent &&\n parent.type === \"function\" &&\n parent.value === \"calc\"\n ) {\n token = value[pos];\n tokens.push({\n type: \"word\",\n sourceIndex: pos - before.length,\n sourceEndIndex: pos + token.length,\n value: token\n });\n pos += 1;\n code = value.charCodeAt(pos);\n\n // Dividers\n } else if (code === slash || code === comma || code === colon) {\n token = value[pos];\n\n tokens.push({\n type: \"div\",\n sourceIndex: pos - before.length,\n sourceEndIndex: pos + token.length,\n value: token,\n before: before,\n after: \"\"\n });\n before = \"\";\n\n pos += 1;\n code = value.charCodeAt(pos);\n\n // Open parentheses\n } else if (openParentheses === code) {\n // Whitespaces after open parentheses\n next = pos;\n do {\n next += 1;\n code = value.charCodeAt(next);\n } while (code <= 32);\n parenthesesOpenPos = pos;\n token = {\n type: \"function\",\n sourceIndex: pos - name.length,\n value: name,\n before: value.slice(parenthesesOpenPos + 1, next)\n };\n pos = next;\n\n if (name === \"url\" && code !== singleQuote && code !== doubleQuote) {\n next -= 1;\n do {\n escape = false;\n next = value.indexOf(\")\", next + 1);\n if (~next) {\n escapePos = next;\n while (value.charCodeAt(escapePos - 1) === backslash) {\n escapePos -= 1;\n escape = !escape;\n }\n } else {\n value += \")\";\n next = value.length - 1;\n token.unclosed = true;\n }\n } while (escape);\n // Whitespaces before closed\n whitespacePos = next;\n do {\n whitespacePos -= 1;\n code = value.charCodeAt(whitespacePos);\n } while (code <= 32);\n if (parenthesesOpenPos < whitespacePos) {\n if (pos !== whitespacePos + 1) {\n token.nodes = [\n {\n type: \"word\",\n sourceIndex: pos,\n sourceEndIndex: whitespacePos + 1,\n value: value.slice(pos, whitespacePos + 1)\n }\n ];\n } else {\n token.nodes = [];\n }\n if (token.unclosed && whitespacePos + 1 !== next) {\n token.after = \"\";\n token.nodes.push({\n type: \"space\",\n sourceIndex: whitespacePos + 1,\n sourceEndIndex: next,\n value: value.slice(whitespacePos + 1, next)\n });\n } else {\n token.after = value.slice(whitespacePos + 1, next);\n token.sourceEndIndex = next;\n }\n } else {\n token.after = \"\";\n token.nodes = [];\n }\n pos = next + 1;\n token.sourceEndIndex = token.unclosed ? next : pos;\n code = value.charCodeAt(pos);\n tokens.push(token);\n } else {\n balanced += 1;\n token.after = \"\";\n token.sourceEndIndex = pos + 1;\n tokens.push(token);\n stack.push(token);\n tokens = token.nodes = [];\n parent = token;\n }\n name = \"\";\n\n // Close parentheses\n } else if (closeParentheses === code && balanced) {\n pos += 1;\n code = value.charCodeAt(pos);\n\n parent.after = after;\n parent.sourceEndIndex += after.length;\n after = \"\";\n balanced -= 1;\n stack[stack.length - 1].sourceEndIndex = pos;\n stack.pop();\n parent = stack[balanced];\n tokens = parent.nodes;\n\n // Words\n } else {\n next = pos;\n do {\n if (code === backslash) {\n next += 1;\n }\n next += 1;\n code = value.charCodeAt(next);\n } while (\n next < max &&\n !(\n code <= 32 ||\n code === singleQuote ||\n code === doubleQuote ||\n code === comma ||\n code === colon ||\n code === slash ||\n code === openParentheses ||\n (code === star &&\n parent &&\n parent.type === \"function\" &&\n parent.value === \"calc\") ||\n (code === slash &&\n parent.type === \"function\" &&\n parent.value === \"calc\") ||\n (code === closeParentheses && balanced)\n )\n );\n token = value.slice(pos, next);\n\n if (openParentheses === code) {\n name = token;\n } else if (\n (uLower === token.charCodeAt(0) || uUpper === token.charCodeAt(0)) &&\n plus === token.charCodeAt(1) &&\n isUnicodeRange.test(token.slice(2))\n ) {\n tokens.push({\n type: \"unicode-range\",\n sourceIndex: pos,\n sourceEndIndex: next,\n value: token\n });\n } else {\n tokens.push({\n type: \"word\",\n sourceIndex: pos,\n sourceEndIndex: next,\n value: token\n });\n }\n\n pos = next;\n }\n }\n\n for (pos = stack.length - 1; pos; pos -= 1) {\n stack[pos].unclosed = true;\n stack[pos].sourceEndIndex = value.length;\n }\n\n return stack[0].nodes;\n};\n","module.exports = function walk(nodes, cb, bubble) {\n var i, max, node, result;\n\n for (i = 0, max = nodes.length; i < max; i += 1) {\n node = nodes[i];\n if (!bubble) {\n result = cb(node, i, nodes);\n }\n\n if (\n result !== false &&\n node.type === \"function\" &&\n Array.isArray(node.nodes)\n ) {\n walk(node.nodes, cb, bubble);\n }\n\n if (bubble) {\n cb(node, i, nodes);\n }\n }\n};\n","function stringifyNode(node, custom) {\n var type = node.type;\n var value = node.value;\n var buf;\n var customResult;\n\n if (custom && (customResult = custom(node)) !== undefined) {\n return customResult;\n } else if (type === \"word\" || type === \"space\") {\n return value;\n } else if (type === \"string\") {\n buf = node.quote || \"\";\n return buf + value + (node.unclosed ? \"\" : buf);\n } else if (type === \"comment\") {\n return \"/*\" + value + (node.unclosed ? \"\" : \"*/\");\n } else if (type === \"div\") {\n return (node.before || \"\") + value + (node.after || \"\");\n } else if (Array.isArray(node.nodes)) {\n buf = stringify(node.nodes, custom);\n if (type !== \"function\") {\n return buf;\n }\n return (\n value +\n \"(\" +\n (node.before || \"\") +\n buf +\n (node.after || \"\") +\n (node.unclosed ? \"\" : \")\")\n );\n }\n return value;\n}\n\nfunction stringify(nodes, custom) {\n var result, i;\n\n if (Array.isArray(nodes)) {\n result = \"\";\n for (i = nodes.length - 1; ~i; i -= 1) {\n result = stringifyNode(nodes[i], custom) + result;\n }\n return result;\n }\n return stringifyNode(nodes, custom);\n}\n\nmodule.exports = stringify;\n","var minus = \"-\".charCodeAt(0);\nvar plus = \"+\".charCodeAt(0);\nvar dot = \".\".charCodeAt(0);\nvar exp = \"e\".charCodeAt(0);\nvar EXP = \"E\".charCodeAt(0);\n\n// Check if three code points would start a number\n// https://www.w3.org/TR/css-syntax-3/#starts-with-a-number\nfunction likeNumber(value) {\n var code = value.charCodeAt(0);\n var nextCode;\n\n if (code === plus || code === minus) {\n nextCode = value.charCodeAt(1);\n\n if (nextCode >= 48 && nextCode <= 57) {\n return true;\n }\n\n var nextNextCode = value.charCodeAt(2);\n\n if (nextCode === dot && nextNextCode >= 48 && nextNextCode <= 57) {\n return true;\n }\n\n return false;\n }\n\n if (code === dot) {\n nextCode = value.charCodeAt(1);\n\n if (nextCode >= 48 && nextCode <= 57) {\n return true;\n }\n\n return false;\n }\n\n if (code >= 48 && code <= 57) {\n return true;\n }\n\n return false;\n}\n\n// Consume a number\n// https://www.w3.org/TR/css-syntax-3/#consume-number\nmodule.exports = function(value) {\n var pos = 0;\n var length = value.length;\n var code;\n var nextCode;\n var nextNextCode;\n\n if (length === 0 || !likeNumber(value)) {\n return false;\n }\n\n code = value.charCodeAt(pos);\n\n if (code === plus || code === minus) {\n pos++;\n }\n\n while (pos < length) {\n code = value.charCodeAt(pos);\n\n if (code < 48 || code > 57) {\n break;\n }\n\n pos += 1;\n }\n\n code = value.charCodeAt(pos);\n nextCode = value.charCodeAt(pos + 1);\n\n if (code === dot && nextCode >= 48 && nextCode <= 57) {\n pos += 2;\n\n while (pos < length) {\n code = value.charCodeAt(pos);\n\n if (code < 48 || code > 57) {\n break;\n }\n\n pos += 1;\n }\n }\n\n code = value.charCodeAt(pos);\n nextCode = value.charCodeAt(pos + 1);\n nextNextCode = value.charCodeAt(pos + 2);\n\n if (\n (code === exp || code === EXP) &&\n ((nextCode >= 48 && nextCode <= 57) ||\n ((nextCode === plus || nextCode === minus) &&\n nextNextCode >= 48 &&\n nextNextCode <= 57))\n ) {\n pos += nextCode === plus || nextCode === minus ? 3 : 2;\n\n while (pos < length) {\n code = value.charCodeAt(pos);\n\n if (code < 48 || code > 57) {\n break;\n }\n\n pos += 1;\n }\n }\n\n return {\n number: value.slice(0, pos),\n unit: value.slice(pos)\n };\n};\n","var parse = require(\"./parse\");\nvar walk = require(\"./walk\");\nvar stringify = require(\"./stringify\");\n\nfunction ValueParser(value) {\n if (this instanceof ValueParser) {\n this.nodes = parse(value);\n return this;\n }\n return new ValueParser(value);\n}\n\nValueParser.prototype.toString = function() {\n return Array.isArray(this.nodes) ? stringify(this.nodes) : \"\";\n};\n\nValueParser.prototype.walk = function(cb, bubble) {\n walk(this.nodes, cb, bubble);\n return this;\n};\n\nValueParser.unit = require(\"./unit\");\n\nValueParser.walk = walk;\n\nValueParser.stringify = stringify;\n\nmodule.exports = ValueParser;\n","'use strict';\n\nmodule.exports = function (obj) {\n\tif (typeof obj === 'string') { return camelCase(obj); }\n\treturn walk(obj);\n};\n\nfunction walk(obj) {\n\tif (!obj || typeof obj !== 'object') { return obj; }\n\tif (isDate(obj) || isRegex(obj)) { return obj; }\n\tif (isArray(obj)) { return map(obj, walk); }\n\treturn reduce(objectKeys(obj), function (acc, key) {\n\t\tvar camel = camelCase(key);\n\t\tacc[camel] = walk(obj[key]);\n\t\treturn acc;\n\t}, {});\n}\n\nfunction camelCase(str) {\n\treturn str.replace(/[_.-](\\w|$)/g, function (_, x) {\n\t\treturn x.toUpperCase();\n\t});\n}\n\nvar isArray = Array.isArray || function (obj) {\n\treturn Object.prototype.toString.call(obj) === '[object Array]';\n};\n\nvar isDate = function (obj) {\n\treturn Object.prototype.toString.call(obj) === '[object Date]';\n};\n\nvar isRegex = function (obj) {\n\treturn Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar has = Object.prototype.hasOwnProperty;\nvar objectKeys = Object.keys || function (obj) {\n\tvar keys = [];\n\tfor (var key in obj) {\n\t\tif (has.call(obj, key)) { keys.push(key); }\n\t}\n\treturn keys;\n};\n\nfunction map(xs, f) {\n\tif (xs.map) { return xs.map(f); }\n\tvar res = [];\n\tfor (var i = 0; i < xs.length; i++) {\n\t\tres.push(f(xs[i], i));\n\t}\n\treturn res;\n}\n\nfunction reduce(xs, f, acc) {\n\tif (xs.reduce) { return xs.reduce(f, acc); }\n\tfor (var i = 0; i < xs.length; i++) {\n\t\tacc = f(acc, xs[i], i);\n\t}\n\treturn acc;\n}\n","{\n \"black\": \"#000000\",\n \"silver\": \"#c0c0c0\",\n \"gray\": \"#808080\",\n \"white\": \"#ffffff\",\n \"maroon\": \"#800000\",\n \"red\": \"#ff0000\",\n \"purple\": \"#800080\",\n \"fuchsia\": \"#ff00ff\",\n \"green\": \"#008000\",\n \"lime\": \"#00ff00\",\n \"olive\": \"#808000\",\n \"yellow\": \"#ffff00\",\n \"navy\": \"#000080\",\n \"blue\": \"#0000ff\",\n \"teal\": \"#008080\",\n \"aqua\": \"#00ffff\",\n \"orange\": \"#ffa500\",\n \"aliceblue\": \"#f0f8ff\",\n \"antiquewhite\": \"#faebd7\",\n \"aquamarine\": \"#7fffd4\",\n \"azure\": \"#f0ffff\",\n \"beige\": \"#f5f5dc\",\n \"bisque\": \"#ffe4c4\",\n \"blanchedalmond\": \"#ffebcd\",\n \"blueviolet\": \"#8a2be2\",\n \"brown\": \"#a52a2a\",\n \"burlywood\": \"#deb887\",\n \"cadetblue\": \"#5f9ea0\",\n \"chartreuse\": \"#7fff00\",\n \"chocolate\": \"#d2691e\",\n \"coral\": \"#ff7f50\",\n \"cornflowerblue\": \"#6495ed\",\n \"cornsilk\": \"#fff8dc\",\n \"crimson\": \"#dc143c\",\n \"darkblue\": \"#00008b\",\n \"darkcyan\": \"#008b8b\",\n \"darkgoldenrod\": \"#b8860b\",\n \"darkgray\": \"#a9a9a9\",\n \"darkgreen\": \"#006400\",\n \"darkgrey\": \"#a9a9a9\",\n \"darkkhaki\": \"#bdb76b\",\n \"darkmagenta\": \"#8b008b\",\n \"darkolivegreen\": \"#556b2f\",\n \"darkorange\": \"#ff8c00\",\n \"darkorchid\": \"#9932cc\",\n \"darkred\": \"#8b0000\",\n \"darksalmon\": \"#e9967a\",\n \"darkseagreen\": \"#8fbc8f\",\n \"darkslateblue\": \"#483d8b\",\n \"darkslategray\": \"#2f4f4f\",\n \"darkslategrey\": \"#2f4f4f\",\n \"darkturquoise\": \"#00ced1\",\n \"darkviolet\": \"#9400d3\",\n \"deeppink\": \"#ff1493\",\n \"deepskyblue\": \"#00bfff\",\n \"dimgray\": \"#696969\",\n \"dimgrey\": \"#696969\",\n \"dodgerblue\": \"#1e90ff\",\n \"firebrick\": \"#b22222\",\n \"floralwhite\": \"#fffaf0\",\n \"forestgreen\": \"#228b22\",\n \"gainsboro\": \"#dcdcdc\",\n \"ghostwhite\": \"#f8f8ff\",\n \"gold\": \"#ffd700\",\n \"goldenrod\": \"#daa520\",\n \"greenyellow\": \"#adff2f\",\n \"grey\": \"#808080\",\n \"honeydew\": \"#f0fff0\",\n \"hotpink\": \"#ff69b4\",\n \"indianred\": \"#cd5c5c\",\n \"indigo\": \"#4b0082\",\n \"ivory\": \"#fffff0\",\n \"khaki\": \"#f0e68c\",\n \"lavender\": \"#e6e6fa\",\n \"lavenderblush\": \"#fff0f5\",\n \"lawngreen\": \"#7cfc00\",\n \"lemonchiffon\": \"#fffacd\",\n \"lightblue\": \"#add8e6\",\n \"lightcoral\": \"#f08080\",\n \"lightcyan\": \"#e0ffff\",\n \"lightgoldenrodyellow\": \"#fafad2\",\n \"lightgray\": \"#d3d3d3\",\n \"lightgreen\": \"#90ee90\",\n \"lightgrey\": \"#d3d3d3\",\n \"lightpink\": \"#ffb6c1\",\n \"lightsalmon\": \"#ffa07a\",\n \"lightseagreen\": \"#20b2aa\",\n \"lightskyblue\": \"#87cefa\",\n \"lightslategray\": \"#778899\",\n \"lightslategrey\": \"#778899\",\n \"lightsteelblue\": \"#b0c4de\",\n \"lightyellow\": \"#ffffe0\",\n \"limegreen\": \"#32cd32\",\n \"linen\": \"#faf0e6\",\n \"mediumaquamarine\": \"#66cdaa\",\n \"mediumblue\": \"#0000cd\",\n \"mediumorchid\": \"#ba55d3\",\n \"mediumpurple\": \"#9370db\",\n \"mediumseagreen\": \"#3cb371\",\n \"mediumslateblue\": \"#7b68ee\",\n \"mediumspringgreen\": \"#00fa9a\",\n \"mediumturquoise\": \"#48d1cc\",\n \"mediumvioletred\": \"#c71585\",\n \"midnightblue\": \"#191970\",\n \"mintcream\": \"#f5fffa\",\n \"mistyrose\": \"#ffe4e1\",\n \"moccasin\": \"#ffe4b5\",\n \"navajowhite\": \"#ffdead\",\n \"oldlace\": \"#fdf5e6\",\n \"olivedrab\": \"#6b8e23\",\n \"orangered\": \"#ff4500\",\n \"orchid\": \"#da70d6\",\n \"palegoldenrod\": \"#eee8aa\",\n \"palegreen\": \"#98fb98\",\n \"paleturquoise\": \"#afeeee\",\n \"palevioletred\": \"#db7093\",\n \"papayawhip\": \"#ffefd5\",\n \"peachpuff\": \"#ffdab9\",\n \"peru\": \"#cd853f\",\n \"pink\": \"#ffc0cb\",\n \"plum\": \"#dda0dd\",\n \"powderblue\": \"#b0e0e6\",\n \"rosybrown\": \"#bc8f8f\",\n \"royalblue\": \"#4169e1\",\n \"saddlebrown\": \"#8b4513\",\n \"salmon\": \"#fa8072\",\n \"sandybrown\": \"#f4a460\",\n \"seagreen\": \"#2e8b57\",\n \"seashell\": \"#fff5ee\",\n \"sienna\": \"#a0522d\",\n \"skyblue\": \"#87ceeb\",\n \"slateblue\": \"#6a5acd\",\n \"slategray\": \"#708090\",\n \"slategrey\": \"#708090\",\n \"snow\": \"#fffafa\",\n \"springgreen\": \"#00ff7f\",\n \"steelblue\": \"#4682b4\",\n \"tan\": \"#d2b48c\",\n \"thistle\": \"#d8bfd8\",\n \"tomato\": \"#ff6347\",\n \"turquoise\": \"#40e0d0\",\n \"violet\": \"#ee82ee\",\n \"wheat\": \"#f5deb3\",\n \"whitesmoke\": \"#f5f5f5\",\n \"yellowgreen\": \"#9acd32\",\n \"rebeccapurple\": \"#663399\"\n}\n","'use strict'\n\nmodule.exports = require('./colors.json')\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopDefault(ex) {\n return ex && typeof ex === 'object' && 'default' in ex ? ex['default'] : ex;\n}\n\nvar parse = require('postcss-value-parser');\n\nvar parse__default = _interopDefault(parse);\n\nvar camelizeStyleName = _interopDefault(require('camelize'));\n\nvar cssColorKeywords = _interopDefault(require('css-color-keywords'));\n\nvar matchString = function matchString(node) {\n if (node.type !== 'string') return null;\n return node.value.replace(/\\\\([0-9a-f]{1,6})(?:\\s|$)/gi, function (match, charCode) {\n return String.fromCharCode(parseInt(charCode, 16));\n }).replace(/\\\\/g, '');\n};\n\nvar hexColorRe = /^(#(?:[0-9a-f]{3,4}){1,2})$/i;\nvar cssFunctionNameRe = /^(rgba?|hsla?|hwb|lab|lch|gray|color)$/;\n\nvar matchColor = function matchColor(node) {\n if (node.type === 'word' && (hexColorRe.test(node.value) || node.value in cssColorKeywords || node.value === 'transparent')) {\n return node.value;\n } else if (node.type === 'function' && cssFunctionNameRe.test(node.value)) {\n return parse.stringify(node);\n }\n\n return null;\n};\n\nvar noneRe = /^(none)$/i;\nvar autoRe = /^(auto)$/i;\nvar identRe = /(^-?[_a-z][_a-z0-9-]*$)/i; // Note if these are wrong, you'll need to change index.js too\n\nvar numberRe = /^([+-]?(?:\\d*\\.)?\\d+(?:e[+-]?\\d+)?)$/i; // Note lengthRe is sneaky: you can omit units for 0\n\nvar lengthRe = /^(0$|(?:[+-]?(?:\\d*\\.)?\\d+(?:e[+-]?\\d+)?)(?=px$))/i;\nvar unsupportedUnitRe = /^([+-]?(?:\\d*\\.)?\\d+(?:e[+-]?\\d+)?(ch|em|ex|rem|vh|vw|vmin|vmax|cm|mm|in|pc|pt))$/i;\nvar angleRe = /^([+-]?(?:\\d*\\.)?\\d+(?:e[+-]?\\d+)?(?:deg|rad))$/i;\nvar percentRe = /^([+-]?(?:\\d*\\.)?\\d+(?:e[+-]?\\d+)?%)$/i;\n\nvar noopToken = function noopToken(predicate) {\n return function (node) {\n return predicate(node) ? '' : null;\n };\n};\n\nvar valueForTypeToken = function valueForTypeToken(type) {\n return function (node) {\n return node.type === type ? node.value : null;\n };\n};\n\nvar regExpToken = function regExpToken(regExp, transform) {\n if (transform === void 0) {\n transform = String;\n }\n\n return function (node) {\n if (node.type !== 'word') return null;\n var match = node.value.match(regExp);\n if (match === null) return null;\n var value = transform(match[1]);\n return value;\n };\n};\n\nvar SPACE = noopToken(function (node) {\n return node.type === 'space';\n});\nvar SLASH = noopToken(function (node) {\n return node.type === 'div' && node.value === '/';\n});\nvar COMMA = noopToken(function (node) {\n return node.type === 'div' && node.value === ',';\n});\nvar WORD = valueForTypeToken('word');\nvar NONE = regExpToken(noneRe);\nvar AUTO = regExpToken(autoRe);\nvar NUMBER = regExpToken(numberRe, Number);\nvar LENGTH = regExpToken(lengthRe, Number);\nvar UNSUPPORTED_LENGTH_UNIT = regExpToken(unsupportedUnitRe);\nvar ANGLE = regExpToken(angleRe, function (angle) {\n return angle.toLowerCase();\n});\nvar PERCENT = regExpToken(percentRe);\nvar IDENT = regExpToken(identRe);\nvar STRING = matchString;\nvar COLOR = matchColor;\nvar LINE = regExpToken(/^(none|underline|line-through)$/i);\n\nvar aspectRatio = function aspectRatio(tokenStream) {\n var aspectRatio = tokenStream.expect(NUMBER);\n\n if (tokenStream.hasTokens()) {\n tokenStream.expect(SLASH);\n aspectRatio /= tokenStream.expect(NUMBER);\n }\n\n return {\n aspectRatio: aspectRatio\n };\n};\n\nvar BORDER_STYLE = regExpToken(/^(solid|dashed|dotted)$/);\nvar defaultBorderWidth = 1;\nvar defaultBorderColor = 'black';\nvar defaultBorderStyle = 'solid';\n\nvar border = function border(tokenStream) {\n var borderWidth;\n var borderColor;\n var borderStyle;\n\n if (tokenStream.matches(NONE)) {\n tokenStream.expectEmpty();\n return {\n borderWidth: 0,\n borderColor: 'black',\n borderStyle: 'solid'\n };\n }\n\n var partsParsed = 0;\n\n while (partsParsed < 3 && tokenStream.hasTokens()) {\n if (partsParsed !== 0) tokenStream.expect(SPACE);\n\n if (borderWidth === undefined && tokenStream.matches(LENGTH, UNSUPPORTED_LENGTH_UNIT)) {\n borderWidth = tokenStream.lastValue;\n } else if (borderColor === undefined && tokenStream.matches(COLOR)) {\n borderColor = tokenStream.lastValue;\n } else if (borderStyle === undefined && tokenStream.matches(BORDER_STYLE)) {\n borderStyle = tokenStream.lastValue;\n } else {\n tokenStream[\"throw\"]();\n }\n\n partsParsed += 1;\n }\n\n tokenStream.expectEmpty();\n if (borderWidth === undefined) borderWidth = defaultBorderWidth;\n if (borderColor === undefined) borderColor = defaultBorderColor;\n if (borderStyle === undefined) borderStyle = defaultBorderStyle;\n return {\n borderWidth: borderWidth,\n borderColor: borderColor,\n borderStyle: borderStyle\n };\n};\n\nvar directionFactory = function directionFactory(_ref) {\n var _ref$types = _ref.types,\n types = _ref$types === void 0 ? [LENGTH, UNSUPPORTED_LENGTH_UNIT, PERCENT] : _ref$types,\n _ref$directions = _ref.directions,\n directions = _ref$directions === void 0 ? ['Top', 'Right', 'Bottom', 'Left'] : _ref$directions,\n _ref$prefix = _ref.prefix,\n prefix = _ref$prefix === void 0 ? '' : _ref$prefix,\n _ref$suffix = _ref.suffix,\n suffix = _ref$suffix === void 0 ? '' : _ref$suffix;\n return function (tokenStream) {\n var _ref2;\n\n var values = []; // borderWidth doesn't currently allow a percent value, but may do in the future\n\n values.push(tokenStream.expect.apply(tokenStream, types));\n\n while (values.length < 4 && tokenStream.hasTokens()) {\n tokenStream.expect(SPACE);\n values.push(tokenStream.expect.apply(tokenStream, types));\n }\n\n tokenStream.expectEmpty();\n var top = values[0],\n _values$ = values[1],\n right = _values$ === void 0 ? top : _values$,\n _values$2 = values[2],\n bottom = _values$2 === void 0 ? top : _values$2,\n _values$3 = values[3],\n left = _values$3 === void 0 ? right : _values$3;\n\n var keyFor = function keyFor(n) {\n return \"\" + prefix + directions[n] + suffix;\n };\n\n return _ref2 = {}, _ref2[keyFor(0)] = top, _ref2[keyFor(1)] = right, _ref2[keyFor(2)] = bottom, _ref2[keyFor(3)] = left, _ref2;\n };\n};\n\nvar parseShadowOffset = function parseShadowOffset(tokenStream) {\n var width = tokenStream.expect(LENGTH);\n var height = tokenStream.matches(SPACE) ? tokenStream.expect(LENGTH) : width;\n tokenStream.expectEmpty();\n return {\n width: width,\n height: height\n };\n};\n\nvar parseShadow = function parseShadow(tokenStream) {\n var offsetX;\n var offsetY;\n var radius;\n var color;\n\n if (tokenStream.matches(NONE)) {\n tokenStream.expectEmpty();\n return {\n offset: {\n width: 0,\n height: 0\n },\n radius: 0,\n color: 'black'\n };\n }\n\n var didParseFirst = false;\n\n while (tokenStream.hasTokens()) {\n if (didParseFirst) tokenStream.expect(SPACE);\n\n if (offsetX === undefined && tokenStream.matches(LENGTH, UNSUPPORTED_LENGTH_UNIT)) {\n offsetX = tokenStream.lastValue;\n tokenStream.expect(SPACE);\n offsetY = tokenStream.expect(LENGTH, UNSUPPORTED_LENGTH_UNIT);\n tokenStream.saveRewindPoint();\n\n if (tokenStream.matches(SPACE) && tokenStream.matches(LENGTH, UNSUPPORTED_LENGTH_UNIT)) {\n radius = tokenStream.lastValue;\n } else {\n tokenStream.rewind();\n }\n } else if (color === undefined && tokenStream.matches(COLOR)) {\n color = tokenStream.lastValue;\n } else {\n tokenStream[\"throw\"]();\n }\n\n didParseFirst = true;\n }\n\n if (offsetX === undefined) tokenStream[\"throw\"]();\n return {\n offset: {\n width: offsetX,\n height: offsetY\n },\n radius: radius !== undefined ? radius : 0,\n color: color !== undefined ? color : 'black'\n };\n};\n\nvar boxShadow = function boxShadow(tokenStream) {\n var _parseShadow = parseShadow(tokenStream),\n offset = _parseShadow.offset,\n radius = _parseShadow.radius,\n color = _parseShadow.color;\n\n return {\n shadowOffset: offset,\n shadowRadius: radius,\n shadowColor: color,\n shadowOpacity: 1\n };\n};\n\nvar defaultFlexGrow = 1;\nvar defaultFlexShrink = 1;\nvar defaultFlexBasis = 0;\n\nvar flex = function flex(tokenStream) {\n var flexGrow;\n var flexShrink;\n var flexBasis;\n\n if (tokenStream.matches(NONE)) {\n tokenStream.expectEmpty();\n return {\n flexGrow: 0,\n flexShrink: 0,\n flexBasis: 'auto'\n };\n }\n\n tokenStream.saveRewindPoint();\n\n if (tokenStream.matches(AUTO) && !tokenStream.hasTokens()) {\n return {\n flexGrow: 1,\n flexShrink: 1,\n flexBasis: 'auto'\n };\n }\n\n tokenStream.rewind();\n var partsParsed = 0;\n\n while (partsParsed < 2 && tokenStream.hasTokens()) {\n if (partsParsed !== 0) tokenStream.expect(SPACE);\n\n if (flexGrow === undefined && tokenStream.matches(NUMBER)) {\n flexGrow = tokenStream.lastValue;\n tokenStream.saveRewindPoint();\n\n if (tokenStream.matches(SPACE) && tokenStream.matches(NUMBER)) {\n flexShrink = tokenStream.lastValue;\n } else {\n tokenStream.rewind();\n }\n } else if (flexBasis === undefined && tokenStream.matches(LENGTH, UNSUPPORTED_LENGTH_UNIT, PERCENT)) {\n flexBasis = tokenStream.lastValue;\n } else if (flexBasis === undefined && tokenStream.matches(AUTO)) {\n flexBasis = 'auto';\n } else {\n tokenStream[\"throw\"]();\n }\n\n partsParsed += 1;\n }\n\n tokenStream.expectEmpty();\n if (flexGrow === undefined) flexGrow = defaultFlexGrow;\n if (flexShrink === undefined) flexShrink = defaultFlexShrink;\n if (flexBasis === undefined) flexBasis = defaultFlexBasis;\n return {\n flexGrow: flexGrow,\n flexShrink: flexShrink,\n flexBasis: flexBasis\n };\n};\n\nvar FLEX_WRAP = regExpToken(/(nowrap|wrap|wrap-reverse)/);\nvar FLEX_DIRECTION = regExpToken(/(row|row-reverse|column|column-reverse)/);\nvar defaultFlexWrap = 'nowrap';\nvar defaultFlexDirection = 'row';\n\nvar flexFlow = function flexFlow(tokenStream) {\n var flexWrap;\n var flexDirection;\n var partsParsed = 0;\n\n while (partsParsed < 2 && tokenStream.hasTokens()) {\n if (partsParsed !== 0) tokenStream.expect(SPACE);\n\n if (flexWrap === undefined && tokenStream.matches(FLEX_WRAP)) {\n flexWrap = tokenStream.lastValue;\n } else if (flexDirection === undefined && tokenStream.matches(FLEX_DIRECTION)) {\n flexDirection = tokenStream.lastValue;\n } else {\n tokenStream[\"throw\"]();\n }\n\n partsParsed += 1;\n }\n\n tokenStream.expectEmpty();\n if (flexWrap === undefined) flexWrap = defaultFlexWrap;\n if (flexDirection === undefined) flexDirection = defaultFlexDirection;\n return {\n flexWrap: flexWrap,\n flexDirection: flexDirection\n };\n};\n\nvar fontFamily = function fontFamily(tokenStream) {\n var fontFamily;\n\n if (tokenStream.matches(STRING)) {\n fontFamily = tokenStream.lastValue;\n } else {\n fontFamily = tokenStream.expect(IDENT);\n\n while (tokenStream.hasTokens()) {\n tokenStream.expect(SPACE);\n var nextIdent = tokenStream.expect(IDENT);\n fontFamily += \" \" + nextIdent;\n }\n }\n\n tokenStream.expectEmpty();\n return {\n fontFamily: fontFamily\n };\n};\n\nvar NORMAL = regExpToken(/^(normal)$/);\nvar STYLE = regExpToken(/^(italic)$/);\nvar WEIGHT = regExpToken(/^([1-9]00|bold)$/);\nvar VARIANT = regExpToken(/^(small-caps)$/);\nvar defaultFontStyle = 'normal';\nvar defaultFontWeight = 'normal';\nvar defaultFontVariant = [];\n\nvar font = function font(tokenStream) {\n var fontStyle;\n var fontWeight;\n var fontVariant; // let fontSize;\n\n var lineHeight; // let fontFamily;\n\n var numStyleWeightVariantMatched = 0;\n\n while (numStyleWeightVariantMatched < 3 && tokenStream.hasTokens()) {\n if (tokenStream.matches(NORMAL)) ;else if (fontStyle === undefined && tokenStream.matches(STYLE)) {\n fontStyle = tokenStream.lastValue;\n } else if (fontWeight === undefined && tokenStream.matches(WEIGHT)) {\n fontWeight = tokenStream.lastValue;\n } else if (fontVariant === undefined && tokenStream.matches(VARIANT)) {\n fontVariant = [tokenStream.lastValue];\n } else {\n break;\n }\n tokenStream.expect(SPACE);\n numStyleWeightVariantMatched += 1;\n }\n\n var fontSize = tokenStream.expect(LENGTH, UNSUPPORTED_LENGTH_UNIT);\n\n if (tokenStream.matches(SLASH)) {\n lineHeight = tokenStream.expect(LENGTH, UNSUPPORTED_LENGTH_UNIT);\n }\n\n tokenStream.expect(SPACE);\n\n var _fontFamily = fontFamily(tokenStream),\n fontFamily$1 = _fontFamily.fontFamily;\n\n if (fontStyle === undefined) fontStyle = defaultFontStyle;\n if (fontWeight === undefined) fontWeight = defaultFontWeight;\n if (fontVariant === undefined) fontVariant = defaultFontVariant;\n var out = {\n fontStyle: fontStyle,\n fontWeight: fontWeight,\n fontVariant: fontVariant,\n fontSize: fontSize,\n fontFamily: fontFamily$1\n };\n if (lineHeight !== undefined) out.lineHeight = lineHeight;\n return out;\n};\n\nvar fontVariant = function fontVariant(tokenStream) {\n var values = [tokenStream.expect(IDENT)];\n\n while (tokenStream.hasTokens()) {\n tokenStream.expect(SPACE);\n values.push(tokenStream.expect(IDENT));\n }\n\n return {\n fontVariant: values\n };\n};\n\nvar ALIGN_CONTENT = regExpToken(/(flex-(?:start|end)|center|stretch|space-(?:between|around))/);\nvar JUSTIFY_CONTENT = regExpToken(/(flex-(?:start|end)|center|space-(?:between|around|evenly))/);\n\nvar placeContent = function placeContent(tokenStream) {\n var alignContent = tokenStream.expect(ALIGN_CONTENT);\n var justifyContent;\n\n if (tokenStream.hasTokens()) {\n tokenStream.expect(SPACE);\n justifyContent = tokenStream.expect(JUSTIFY_CONTENT);\n } else {\n justifyContent = 'stretch';\n }\n\n tokenStream.expectEmpty();\n return {\n alignContent: alignContent,\n justifyContent: justifyContent\n };\n};\n\nvar STYLE$1 = regExpToken(/^(solid|double|dotted|dashed)$/);\nvar defaultTextDecorationLine = 'none';\nvar defaultTextDecorationStyle = 'solid';\nvar defaultTextDecorationColor = 'black';\n\nvar textDecoration = function textDecoration(tokenStream) {\n var line;\n var style;\n var color;\n var didParseFirst = false;\n\n while (tokenStream.hasTokens()) {\n if (didParseFirst) tokenStream.expect(SPACE);\n\n if (line === undefined && tokenStream.matches(LINE)) {\n var lines = [tokenStream.lastValue.toLowerCase()];\n tokenStream.saveRewindPoint();\n\n if (lines[0] !== 'none' && tokenStream.matches(SPACE) && tokenStream.matches(LINE)) {\n lines.push(tokenStream.lastValue.toLowerCase()); // Underline comes before line-through\n\n lines.sort().reverse();\n } else {\n tokenStream.rewind();\n }\n\n line = lines.join(' ');\n } else if (style === undefined && tokenStream.matches(STYLE$1)) {\n style = tokenStream.lastValue;\n } else if (color === undefined && tokenStream.matches(COLOR)) {\n color = tokenStream.lastValue;\n } else {\n tokenStream[\"throw\"]();\n }\n\n didParseFirst = true;\n }\n\n return {\n textDecorationLine: line !== undefined ? line : defaultTextDecorationLine,\n textDecorationColor: color !== undefined ? color : defaultTextDecorationColor,\n textDecorationStyle: style !== undefined ? style : defaultTextDecorationStyle\n };\n};\n\nvar textDecorationLine = function textDecorationLine(tokenStream) {\n var lines = [];\n var didParseFirst = false;\n\n while (tokenStream.hasTokens()) {\n if (didParseFirst) tokenStream.expect(SPACE);\n lines.push(tokenStream.expect(LINE).toLowerCase());\n didParseFirst = true;\n }\n\n lines.sort().reverse();\n return {\n textDecorationLine: lines.join(' ')\n };\n};\n\nvar textShadow = function textShadow(tokenStream) {\n var _parseShadow2 = parseShadow(tokenStream),\n offset = _parseShadow2.offset,\n radius = _parseShadow2.radius,\n color = _parseShadow2.color;\n\n return {\n textShadowOffset: offset,\n textShadowRadius: radius,\n textShadowColor: color\n };\n};\n\nvar oneOfType = function oneOfType(tokenType) {\n return function (functionStream) {\n var value = functionStream.expect(tokenType);\n functionStream.expectEmpty();\n return value;\n };\n};\n\nvar singleNumber = oneOfType(NUMBER);\nvar singleLength = oneOfType(LENGTH);\nvar singleAngle = oneOfType(ANGLE);\n\nvar xyTransformFactory = function xyTransformFactory(tokenType) {\n return function (key, valueIfOmitted) {\n return function (functionStream) {\n var _ref3, _ref4;\n\n var x = functionStream.expect(tokenType);\n var y;\n\n if (functionStream.hasTokens()) {\n functionStream.expect(COMMA);\n y = functionStream.expect(tokenType);\n } else if (valueIfOmitted !== undefined) {\n y = valueIfOmitted;\n } else {\n // Assumption, if x === y, then we can omit XY\n // I.e. scale(5) => [{ scale: 5 }] rather than [{ scaleX: 5 }, { scaleY: 5 }]\n return x;\n }\n\n functionStream.expectEmpty();\n return [(_ref3 = {}, _ref3[key + \"Y\"] = y, _ref3), (_ref4 = {}, _ref4[key + \"X\"] = x, _ref4)];\n };\n };\n};\n\nvar xyNumber = xyTransformFactory(NUMBER);\nvar xyLength = xyTransformFactory(LENGTH);\nvar xyAngle = xyTransformFactory(ANGLE);\nvar partTransforms = {\n perspective: singleNumber,\n scale: xyNumber('scale'),\n scaleX: singleNumber,\n scaleY: singleNumber,\n translate: xyLength('translate', 0),\n translateX: singleLength,\n translateY: singleLength,\n rotate: singleAngle,\n rotateX: singleAngle,\n rotateY: singleAngle,\n rotateZ: singleAngle,\n skewX: singleAngle,\n skewY: singleAngle,\n skew: xyAngle('skew', '0deg')\n};\n\nvar transform = function transform(tokenStream) {\n var transforms = [];\n var didParseFirst = false;\n\n while (tokenStream.hasTokens()) {\n if (didParseFirst) tokenStream.expect(SPACE);\n var functionStream = tokenStream.expectFunction();\n var functionName = functionStream.functionName;\n var transformedValues = partTransforms[functionName](functionStream);\n\n if (!Array.isArray(transformedValues)) {\n var _ref5;\n\n transformedValues = [(_ref5 = {}, _ref5[functionName] = transformedValues, _ref5)];\n }\n\n transforms = transformedValues.concat(transforms);\n didParseFirst = true;\n }\n\n return {\n transform: transforms\n };\n};\n\nvar background = function background(tokenStream) {\n return {\n backgroundColor: tokenStream.expect(COLOR)\n };\n};\n\nvar borderColor = directionFactory({\n types: [COLOR],\n prefix: 'border',\n suffix: 'Color'\n});\nvar borderRadius = directionFactory({\n directions: ['TopLeft', 'TopRight', 'BottomRight', 'BottomLeft'],\n prefix: 'border',\n suffix: 'Radius'\n});\nvar borderWidth = directionFactory({\n prefix: 'border',\n suffix: 'Width'\n});\nvar margin = directionFactory({\n types: [LENGTH, UNSUPPORTED_LENGTH_UNIT, PERCENT, AUTO],\n prefix: 'margin'\n});\nvar padding = directionFactory({\n prefix: 'padding'\n});\n\nvar fontWeight = function fontWeight(tokenStream) {\n return {\n fontWeight: tokenStream.expect(WORD) // Also match numbers as strings\n\n };\n};\n\nvar shadowOffset = function shadowOffset(tokenStream) {\n return {\n shadowOffset: parseShadowOffset(tokenStream)\n };\n};\n\nvar textShadowOffset = function textShadowOffset(tokenStream) {\n return {\n textShadowOffset: parseShadowOffset(tokenStream)\n };\n};\n\nvar transforms = {\n aspectRatio: aspectRatio,\n background: background,\n border: border,\n borderColor: borderColor,\n borderRadius: borderRadius,\n borderWidth: borderWidth,\n boxShadow: boxShadow,\n flex: flex,\n flexFlow: flexFlow,\n font: font,\n fontFamily: fontFamily,\n fontVariant: fontVariant,\n fontWeight: fontWeight,\n margin: margin,\n padding: padding,\n placeContent: placeContent,\n shadowOffset: shadowOffset,\n textShadow: textShadow,\n textShadowOffset: textShadowOffset,\n textDecoration: textDecoration,\n textDecorationLine: textDecorationLine,\n transform: transform\n};\nvar propertiesWithoutUnits;\n\nif (process.env.NODE_ENV !== 'production') {\n propertiesWithoutUnits = ['aspectRatio', 'elevation', 'flexGrow', 'flexShrink', 'opacity', 'shadowOpacity', 'zIndex'];\n}\n\nvar devPropertiesWithUnitsRegExp = propertiesWithoutUnits != null ? new RegExp(propertiesWithoutUnits.join('|')) : null;\nvar SYMBOL_MATCH = 'SYMBOL_MATCH';\n\nvar TokenStream =\n/*#__PURE__*/\nfunction () {\n function TokenStream(nodes, parent) {\n this.index = 0;\n this.nodes = nodes;\n this.functionName = parent != null ? parent.value : null;\n this.lastValue = null;\n this.rewindIndex = -1;\n }\n\n var _proto = TokenStream.prototype;\n\n _proto.hasTokens = function hasTokens() {\n return this.index <= this.nodes.length - 1;\n };\n\n _proto[SYMBOL_MATCH] = function () {\n if (!this.hasTokens()) return null;\n var node = this.nodes[this.index];\n\n for (var i = 0; i < arguments.length; i += 1) {\n var tokenDescriptor = i < 0 || arguments.length <= i ? undefined : arguments[i];\n var value = tokenDescriptor(node);\n\n if (value !== null) {\n this.index += 1;\n this.lastValue = value;\n return value;\n }\n }\n\n return null;\n };\n\n _proto.matches = function matches() {\n return this[SYMBOL_MATCH].apply(this, arguments) !== null;\n };\n\n _proto.expect = function expect() {\n var value = this[SYMBOL_MATCH].apply(this, arguments);\n return value !== null ? value : this[\"throw\"]();\n };\n\n _proto.matchesFunction = function matchesFunction() {\n var node = this.nodes[this.index];\n if (node.type !== 'function') return null;\n var value = new TokenStream(node.nodes, node);\n this.index += 1;\n this.lastValue = null;\n return value;\n };\n\n _proto.expectFunction = function expectFunction() {\n var value = this.matchesFunction();\n return value !== null ? value : this[\"throw\"]();\n };\n\n _proto.expectEmpty = function expectEmpty() {\n if (this.hasTokens()) this[\"throw\"]();\n };\n\n _proto[\"throw\"] = function _throw() {\n throw new Error(\"Unexpected token type: \" + this.nodes[this.index].type);\n };\n\n _proto.saveRewindPoint = function saveRewindPoint() {\n this.rewindIndex = this.index;\n };\n\n _proto.rewind = function rewind() {\n if (this.rewindIndex === -1) throw new Error('Internal error');\n this.index = this.rewindIndex;\n this.lastValue = null;\n };\n\n return TokenStream;\n}();\n/* eslint-disable no-param-reassign */\n// Note if this is wrong, you'll need to change tokenTypes.js too\n\n\nvar numberOrLengthRe = /^([+-]?(?:\\d*\\.)?\\d+(?:e[+-]?\\d+)?)(?:px)?$/i;\nvar numberOnlyRe = /^[+-]?(?:\\d*\\.\\d*|[1-9]\\d*)(?:e[+-]?\\d+)?$/i;\nvar boolRe = /^true|false$/i;\nvar nullRe = /^null$/i;\nvar undefinedRe = /^undefined$/i; // Undocumented export\n\nvar transformRawValue = function transformRawValue(propName, value) {\n if (process.env.NODE_ENV !== 'production') {\n var needsUnit = !devPropertiesWithUnitsRegExp.test(propName);\n var isNumberWithoutUnit = numberOnlyRe.test(value);\n\n if (needsUnit && isNumberWithoutUnit) {\n // eslint-disable-next-line no-console\n console.warn(\"Expected style \\\"\" + propName + \": \" + value + \"\\\" to contain units\");\n }\n\n if (!needsUnit && value !== '0' && !isNumberWithoutUnit) {\n // eslint-disable-next-line no-console\n console.warn(\"Expected style \\\"\" + propName + \": \" + value + \"\\\" to be unitless\");\n }\n }\n\n var numberMatch = value.match(numberOrLengthRe);\n if (numberMatch !== null) return Number(numberMatch[1]);\n var boolMatch = value.match(boolRe);\n if (boolMatch !== null) return boolMatch[0].toLowerCase() === 'true';\n var nullMatch = value.match(nullRe);\n if (nullMatch !== null) return null;\n var undefinedMatch = value.match(undefinedRe);\n if (undefinedMatch !== null) return undefined;\n return value;\n};\n\nvar baseTransformShorthandValue = function baseTransformShorthandValue(propName, value) {\n var ast = parse__default(value);\n var tokenStream = new TokenStream(ast.nodes);\n return transforms[propName](tokenStream);\n};\n\nvar transformShorthandValue = process.env.NODE_ENV === 'production' ? baseTransformShorthandValue : function (propName, value) {\n try {\n return baseTransformShorthandValue(propName, value);\n } catch (e) {\n throw new Error(\"Failed to parse declaration \\\"\" + propName + \": \" + value + \"\\\"\");\n }\n};\n\nvar getStylesForProperty = function getStylesForProperty(propName, inputValue, allowShorthand) {\n var _ref6;\n\n var isRawValue = allowShorthand === false || !(propName in transforms);\n var value = inputValue.trim();\n var propValues = isRawValue ? (_ref6 = {}, _ref6[propName] = transformRawValue(propName, value), _ref6) : transformShorthandValue(propName, value);\n return propValues;\n};\n\nvar getPropertyName = function getPropertyName(propName) {\n var isCustomProp = /^--\\w+/.test(propName);\n\n if (isCustomProp) {\n return propName;\n }\n\n return camelizeStyleName(propName);\n};\n\nvar index = function index(rules, shorthandBlacklist) {\n if (shorthandBlacklist === void 0) {\n shorthandBlacklist = [];\n }\n\n return rules.reduce(function (accum, rule) {\n var propertyName = getPropertyName(rule[0]);\n var value = rule[1];\n var allowShorthand = shorthandBlacklist.indexOf(propertyName) === -1;\n return Object.assign(accum, getStylesForProperty(propertyName, value, allowShorthand));\n }, {});\n};\n\nexports[\"default\"] = index;\nexports.getPropertyName = getPropertyName;\nexports.getStylesForProperty = getStylesForProperty;\nexports.transformRawValue = transformRawValue;\n","/*!\n * https://github.com/gilmoreorless/css-background-parser\n * Copyright © 2015 Gilmore Davidson under the MIT license: http://gilmoreorless.mit-license.org/\n */\n(function (exports) {\n\n function BackgroundList(backgrounds) {\n if (!(this instanceof BackgroundList)) {\n return new BackgroundList();\n }\n this.backgrounds = backgrounds || [];\n }\n\n BackgroundList.prototype.toString = function () {\n return this.backgrounds.join(', ');\n };\n\n\n function Background(props) {\n if (!(this instanceof Background)) {\n return new Background(props);\n }\n props = props || {};\n var bg = this;\n\n function defprop(name, defaultValue) {\n bg[name] = (name in props) ? props[name] : defaultValue;\n }\n\n // http://www.w3.org/TR/css3-background/#backgrounds\n defprop('color', '');\n defprop('image', 'none');\n defprop('attachment', 'scroll');\n defprop('clip', 'border-box');\n defprop('origin', 'padding-box');\n defprop('position', '0% 0%');\n defprop('repeat', 'repeat');\n defprop('size', 'auto');\n }\n\n Background.prototype.toString = function () {\n var list = [\n this.image,\n this.repeat,\n this.attachment,\n this.position + ' / ' + this.size,\n this.origin,\n this.clip\n ];\n if (this.color) {\n list.unshift(this.color);\n }\n return list.join(' ');\n };\n\n exports.BackgroundList = BackgroundList;\n exports.Background = Background;\n\n\n function parseImages(cssText) {\n var images = [];\n var tokens = /[,\\(\\)]/;\n var parens = 0;\n var buffer = '';\n\n if (cssText == null) {\n return images;\n }\n\n while (cssText.length) {\n var match = tokens.exec(cssText);\n if (!match) {\n break;\n }\n var char = match[0];\n var ignoreChar = false;\n switch (char) {\n case ',':\n if (!parens) {\n images.push(buffer.trim());\n buffer = '';\n ignoreChar = true;\n }\n break;\n case '(':\n parens++;\n break;\n case ')':\n parens--;\n break;\n }\n\n var index = match.index + 1;\n buffer += cssText.slice(0, ignoreChar ? index - 1 : index);\n cssText = cssText.slice(index);\n }\n\n if (buffer.length || cssText.length) {\n images.push((buffer + cssText).trim());\n }\n\n return images;\n }\n\n // Helper for .map()\n function trim(str) {\n return str.trim();\n }\n\n function parseSimpleList(cssText) {\n return (cssText || '').split(',').map(trim);\n }\n\n exports.parseElementStyle = function (styleObject) {\n var list = new BackgroundList();\n if (styleObject == null) {\n return list;\n }\n\n var bgImage = parseImages(styleObject.backgroundImage);\n var bgColor = styleObject.backgroundColor;\n var bgAttachment = parseSimpleList(styleObject.backgroundAttachment);\n var bgClip = parseSimpleList(styleObject.backgroundClip);\n var bgOrigin = parseSimpleList(styleObject.backgroundOrigin);\n var bgPosition = parseSimpleList(styleObject.backgroundPosition);\n var bgRepeat = parseSimpleList(styleObject.backgroundRepeat);\n var bgSize = parseSimpleList(styleObject.backgroundSize);\n var background;\n\n for (var i = 0, ii = bgImage.length; i < ii; i++) {\n background = new Background({\n image: bgImage[i],\n attachment: bgAttachment[i % bgAttachment.length],\n clip: bgClip[i % bgClip.length],\n origin: bgOrigin[i % bgOrigin.length],\n position: bgPosition[i % bgPosition.length],\n repeat: bgRepeat[i % bgRepeat.length],\n size: bgSize[i % bgSize.length]\n });\n if (i === ii - 1) {\n background.color = bgColor;\n }\n list.backgrounds.push(background);\n }\n\n return list;\n };\n\n // exports.parseCssString = function (cssString) {\n // return new Background();\n // };\n\n // exports.parseBackgroundValue = function (cssString) {\n // return new Background();\n // };\n\n})((function (root) {\n // CommonJS\n if (typeof module !== 'undefined' && module.exports !== undefined) return module.exports;\n // Global `cssBgParser`\n return (root.cssBgParser = {});\n})(this));\n","const VALUES_REG = /,(?![^\\(]*\\))/\nconst PARTS_REG = /\\s(?![^(]*\\))/\nconst LENGTH_REG = /^[0-9]+[a-zA-Z%]+?$/\n\nconst parseValue = str => {\n const parts = str.split(PARTS_REG)\n const inset = parts.includes('inset')\n const last = parts.slice(-1)[0]\n const color = !isLength(last) ? last : undefined\n\n const nums = parts\n .filter(n => n !== 'inset')\n .filter(n => n !== color)\n .map(toNum)\n const [ offsetX, offsetY, blurRadius, spreadRadius ] = nums\n\n return {\n inset,\n offsetX,\n offsetY,\n blurRadius,\n spreadRadius,\n color\n }\n}\n\nconst stringifyValue = obj => {\n const {\n inset,\n offsetX = 0,\n offsetY = 0,\n blurRadius = 0,\n spreadRadius,\n color\n } = obj || {}\n\n return [\n (inset ? 'inset' : null),\n offsetX,\n offsetY,\n blurRadius ,\n spreadRadius,\n color\n ].filter(v => v !== null && v !== undefined)\n .map(toPx)\n .map(s => ('' + s).trim())\n .join(' ')\n}\n\nconst isLength = v => v === '0' || LENGTH_REG.test(v)\nconst toNum = v => {\n if (!/px$/.test(v) && v !== '0') return v\n const n = parseFloat(v)\n return !isNaN(n) ? n : v\n}\nconst toPx = n => typeof n === 'number' && n !== 0 ? (n + 'px') : n\n\nconst parse = str => str.split(VALUES_REG).map(s => s.trim()).map(parseValue)\nconst stringify = arr => arr.map(stringifyValue).join(', ')\n\nmodule.exports = {\n parse,\n stringify\n}\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","'use strict';\n\nconst hexCharacters = 'a-f\\\\d';\nconst match3or4Hex = `#?[${hexCharacters}]{3}[${hexCharacters}]?`;\nconst match6or8Hex = `#?[${hexCharacters}]{6}([${hexCharacters}]{2})?`;\nconst nonHexChars = new RegExp(`[^#${hexCharacters}]`, 'gi');\nconst validHexSize = new RegExp(`^${match3or4Hex}$|^${match6or8Hex}$`, 'i');\n\nmodule.exports = (hex, options = {}) => {\n\tif (typeof hex !== 'string' || nonHexChars.test(hex) || !validHexSize.test(hex)) {\n\t\tthrow new TypeError('Expected a valid hex string');\n\t}\n\n\thex = hex.replace(/^#/, '');\n\tlet alphaFromHex = 1;\n\n\tif (hex.length === 8) {\n\t\talphaFromHex = Number.parseInt(hex.slice(6, 8), 16) / 255;\n\t\thex = hex.slice(0, 6);\n\t}\n\n\tif (hex.length === 4) {\n\t\talphaFromHex = Number.parseInt(hex.slice(3, 4).repeat(2), 16) / 255;\n\t\thex = hex.slice(0, 3);\n\t}\n\n\tif (hex.length === 3) {\n\t\thex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\n\t}\n\n\tconst number = Number.parseInt(hex, 16);\n\tconst red = number >> 16;\n\tconst green = (number >> 8) & 255;\n\tconst blue = number & 255;\n\tconst alpha = typeof options.alpha === 'number' ? options.alpha : alphaFromHex;\n\n\tif (options.format === 'array') {\n\t\treturn [red, green, blue, alpha];\n\t}\n\n\tif (options.format === 'css') {\n\t\tconst alphaString = alpha === 1 ? '' : ` / ${Number((alpha * 100).toFixed(2))}%`;\n\t\treturn `rgb(${red} ${green} ${blue}${alphaString})`;\n\t}\n\n\treturn {red, green, blue, alpha};\n};\n","/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n","var YGEnums={},ALIGN_AUTO=YGEnums.ALIGN_AUTO=0,ALIGN_FLEX_START=YGEnums.ALIGN_FLEX_START=1,ALIGN_CENTER=YGEnums.ALIGN_CENTER=2,ALIGN_FLEX_END=YGEnums.ALIGN_FLEX_END=3,ALIGN_STRETCH=YGEnums.ALIGN_STRETCH=4,ALIGN_BASELINE=YGEnums.ALIGN_BASELINE=5,ALIGN_SPACE_BETWEEN=YGEnums.ALIGN_SPACE_BETWEEN=6,ALIGN_SPACE_AROUND=YGEnums.ALIGN_SPACE_AROUND=7,DIMENSION_WIDTH=YGEnums.DIMENSION_WIDTH=0,DIMENSION_HEIGHT=YGEnums.DIMENSION_HEIGHT=1,DIRECTION_INHERIT=YGEnums.DIRECTION_INHERIT=0,DIRECTION_LTR=YGEnums.DIRECTION_LTR=1,DIRECTION_RTL=YGEnums.DIRECTION_RTL=2,DISPLAY_FLEX=YGEnums.DISPLAY_FLEX=0,DISPLAY_NONE=YGEnums.DISPLAY_NONE=1,EDGE_LEFT=YGEnums.EDGE_LEFT=0,EDGE_TOP=YGEnums.EDGE_TOP=1,EDGE_RIGHT=YGEnums.EDGE_RIGHT=2,EDGE_BOTTOM=YGEnums.EDGE_BOTTOM=3,EDGE_START=YGEnums.EDGE_START=4,EDGE_END=YGEnums.EDGE_END=5,EDGE_HORIZONTAL=YGEnums.EDGE_HORIZONTAL=6,EDGE_VERTICAL=YGEnums.EDGE_VERTICAL=7,EDGE_ALL=YGEnums.EDGE_ALL=8,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS=YGEnums.EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS=0,EXPERIMENTAL_FEATURE_ABSOLUTE_PERCENTAGE_AGAINST_PADDING_EDGE=YGEnums.EXPERIMENTAL_FEATURE_ABSOLUTE_PERCENTAGE_AGAINST_PADDING_EDGE=1,EXPERIMENTAL_FEATURE_FIX_ABSOLUTE_TRAILING_COLUMN_MARGIN=YGEnums.EXPERIMENTAL_FEATURE_FIX_ABSOLUTE_TRAILING_COLUMN_MARGIN=2,FLEX_DIRECTION_COLUMN=YGEnums.FLEX_DIRECTION_COLUMN=0,FLEX_DIRECTION_COLUMN_REVERSE=YGEnums.FLEX_DIRECTION_COLUMN_REVERSE=1,FLEX_DIRECTION_ROW=YGEnums.FLEX_DIRECTION_ROW=2,FLEX_DIRECTION_ROW_REVERSE=YGEnums.FLEX_DIRECTION_ROW_REVERSE=3,GUTTER_COLUMN=YGEnums.GUTTER_COLUMN=0,GUTTER_ROW=YGEnums.GUTTER_ROW=1,GUTTER_ALL=YGEnums.GUTTER_ALL=2,JUSTIFY_FLEX_START=YGEnums.JUSTIFY_FLEX_START=0,JUSTIFY_CENTER=YGEnums.JUSTIFY_CENTER=1,JUSTIFY_FLEX_END=YGEnums.JUSTIFY_FLEX_END=2,JUSTIFY_SPACE_BETWEEN=YGEnums.JUSTIFY_SPACE_BETWEEN=3,JUSTIFY_SPACE_AROUND=YGEnums.JUSTIFY_SPACE_AROUND=4,JUSTIFY_SPACE_EVENLY=YGEnums.JUSTIFY_SPACE_EVENLY=5,LOG_LEVEL_ERROR=YGEnums.LOG_LEVEL_ERROR=0,LOG_LEVEL_WARN=YGEnums.LOG_LEVEL_WARN=1,LOG_LEVEL_INFO=YGEnums.LOG_LEVEL_INFO=2,LOG_LEVEL_DEBUG=YGEnums.LOG_LEVEL_DEBUG=3,LOG_LEVEL_VERBOSE=YGEnums.LOG_LEVEL_VERBOSE=4,LOG_LEVEL_FATAL=YGEnums.LOG_LEVEL_FATAL=5,MEASURE_MODE_UNDEFINED=YGEnums.MEASURE_MODE_UNDEFINED=0,MEASURE_MODE_EXACTLY=YGEnums.MEASURE_MODE_EXACTLY=1,MEASURE_MODE_AT_MOST=YGEnums.MEASURE_MODE_AT_MOST=2,NODE_TYPE_DEFAULT=YGEnums.NODE_TYPE_DEFAULT=0,NODE_TYPE_TEXT=YGEnums.NODE_TYPE_TEXT=1,OVERFLOW_VISIBLE=YGEnums.OVERFLOW_VISIBLE=0,OVERFLOW_HIDDEN=YGEnums.OVERFLOW_HIDDEN=1,OVERFLOW_SCROLL=YGEnums.OVERFLOW_SCROLL=2,POSITION_TYPE_STATIC=YGEnums.POSITION_TYPE_STATIC=0,POSITION_TYPE_RELATIVE=YGEnums.POSITION_TYPE_RELATIVE=1,POSITION_TYPE_ABSOLUTE=YGEnums.POSITION_TYPE_ABSOLUTE=2,PRINT_OPTIONS_LAYOUT=YGEnums.PRINT_OPTIONS_LAYOUT=1,PRINT_OPTIONS_STYLE=YGEnums.PRINT_OPTIONS_STYLE=2,PRINT_OPTIONS_CHILDREN=YGEnums.PRINT_OPTIONS_CHILDREN=4,UNIT_UNDEFINED=YGEnums.UNIT_UNDEFINED=0,UNIT_POINT=YGEnums.UNIT_POINT=1,UNIT_PERCENT=YGEnums.UNIT_PERCENT=2,UNIT_AUTO=YGEnums.UNIT_AUTO=3,WRAP_NO_WRAP=YGEnums.WRAP_NO_WRAP=0,WRAP_WRAP=YGEnums.WRAP_WRAP=1,WRAP_WRAP_REVERSE=YGEnums.WRAP_WRAP_REVERSE=2;let CONSTANTS=YGEnums;var wrapAsm=E=>{function _(E,_,T){let N=E[_];E[_]=function(...E){return T.call(this,N,...E)}}for(let T of[\"setPosition\",\"setMargin\",\"setFlexBasis\",\"setWidth\",\"setHeight\",\"setMinWidth\",\"setMinHeight\",\"setMaxWidth\",\"setMaxHeight\",\"setPadding\"]){let N={[YGEnums.UNIT_POINT]:E.Node.prototype[T],[YGEnums.UNIT_PERCENT]:E.Node.prototype[`${T}Percent`],[YGEnums.UNIT_AUTO]:E.Node.prototype[`${T}Auto`]};_(E.Node.prototype,T,function(E,..._){let I,L;let O=_.pop();if(\"auto\"===O)I=YGEnums.UNIT_AUTO,L=void 0;else if(\"object\"==typeof O)I=O.unit,L=O.valueOf();else if(I=\"string\"==typeof O&&O.endsWith(\"%\")?YGEnums.UNIT_PERCENT:YGEnums.UNIT_POINT,L=parseFloat(O),!Number.isNaN(O)&&Number.isNaN(L))throw Error(`Invalid value ${O} for ${T}`);if(!N[I])throw Error(`Failed to execute \"${T}\": Unsupported unit '${O}'`);return void 0!==L?N[I].call(this,..._,L):N[I].call(this,..._)})}function T(_){return E.MeasureCallback.implement({measure:(...E)=>{let{width:T,height:N}=_(...E);return{width:T??NaN,height:N??NaN}}})}function N(_){return E.DirtiedCallback.implement({dirtied:_})}return _(E.Node.prototype,\"setMeasureFunc\",function(E,_){return _?E.call(this,T(_)):this.unsetMeasureFunc()}),_(E.Node.prototype,\"setDirtiedFunc\",function(E,_){E.call(this,N(_))}),_(E.Config.prototype,\"free\",function(){E.Config.destroy(this)}),_(E.Node,\"create\",(_,T)=>T?E.Node.createWithConfig(T):E.Node.createDefault()),_(E.Node.prototype,\"free\",function(){E.Node.destroy(this)}),_(E.Node.prototype,\"freeRecursive\",function(){for(let E=0,_=this.getChildCount();E<_;++E)this.getChild(0).freeRecursive();this.free()}),_(E.Node.prototype,\"calculateLayout\",function(E,_=NaN,T=NaN,N=YGEnums.DIRECTION_LTR){return E.call(this,_,T,N)}),{Config:E.Config,Node:E.Node,...YGEnums}};export{OVERFLOW_HIDDEN as $,ALIGN_AUTO as A,FLEX_DIRECTION_ROW as B,FLEX_DIRECTION_ROW_REVERSE as C,DIMENSION_WIDTH as D,EDGE_LEFT as E,FLEX_DIRECTION_COLUMN as F,GUTTER_COLUMN as G,GUTTER_ROW as H,GUTTER_ALL as I,JUSTIFY_FLEX_START as J,JUSTIFY_CENTER as K,JUSTIFY_FLEX_END as L,JUSTIFY_SPACE_BETWEEN as M,JUSTIFY_SPACE_AROUND as N,JUSTIFY_SPACE_EVENLY as O,LOG_LEVEL_ERROR as P,LOG_LEVEL_WARN as Q,LOG_LEVEL_INFO as R,LOG_LEVEL_DEBUG as S,LOG_LEVEL_VERBOSE as T,LOG_LEVEL_FATAL as U,MEASURE_MODE_UNDEFINED as V,MEASURE_MODE_EXACTLY as W,MEASURE_MODE_AT_MOST as X,NODE_TYPE_DEFAULT as Y,NODE_TYPE_TEXT as Z,OVERFLOW_VISIBLE as _,ALIGN_FLEX_START as a,OVERFLOW_SCROLL as a0,POSITION_TYPE_STATIC as a1,POSITION_TYPE_RELATIVE as a2,POSITION_TYPE_ABSOLUTE as a3,PRINT_OPTIONS_LAYOUT as a4,PRINT_OPTIONS_STYLE as a5,PRINT_OPTIONS_CHILDREN as a6,UNIT_UNDEFINED as a7,UNIT_POINT as a8,UNIT_PERCENT as a9,UNIT_AUTO as aa,WRAP_NO_WRAP as ab,WRAP_WRAP as ac,WRAP_WRAP_REVERSE as ad,ALIGN_CENTER as b,ALIGN_FLEX_END as c,ALIGN_STRETCH as d,ALIGN_BASELINE as e,ALIGN_SPACE_BETWEEN as f,ALIGN_SPACE_AROUND as g,DIMENSION_HEIGHT as h,DIRECTION_INHERIT as i,DIRECTION_LTR as j,DIRECTION_RTL as k,DISPLAY_FLEX as l,DISPLAY_NONE as m,EDGE_TOP as n,EDGE_RIGHT as o,EDGE_BOTTOM as p,EDGE_START as q,EDGE_END as r,EDGE_HORIZONTAL as s,EDGE_VERTICAL as t,EDGE_ALL as u,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS as v,wrapAsm as w,EXPERIMENTAL_FEATURE_ABSOLUTE_PERCENTAGE_AGAINST_PADDING_EDGE as x,EXPERIMENTAL_FEATURE_FIX_ABSOLUTE_TRAILING_COLUMN_MARGIN as y,FLEX_DIRECTION_COLUMN_REVERSE as z};\n","import{w as r}from\"./wrapAsm-f766f97f.js\";export{A as ALIGN_AUTO,e as ALIGN_BASELINE,b as ALIGN_CENTER,c as ALIGN_FLEX_END,a as ALIGN_FLEX_START,g as ALIGN_SPACE_AROUND,f as ALIGN_SPACE_BETWEEN,d as ALIGN_STRETCH,h as DIMENSION_HEIGHT,D as DIMENSION_WIDTH,i as DIRECTION_INHERIT,j as DIRECTION_LTR,k as DIRECTION_RTL,l as DISPLAY_FLEX,m as DISPLAY_NONE,u as EDGE_ALL,p as EDGE_BOTTOM,r as EDGE_END,s as EDGE_HORIZONTAL,E as EDGE_LEFT,o as EDGE_RIGHT,q as EDGE_START,n as EDGE_TOP,t as EDGE_VERTICAL,x as EXPERIMENTAL_FEATURE_ABSOLUTE_PERCENTAGE_AGAINST_PADDING_EDGE,y as EXPERIMENTAL_FEATURE_FIX_ABSOLUTE_TRAILING_COLUMN_MARGIN,v as EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS,F as FLEX_DIRECTION_COLUMN,z as FLEX_DIRECTION_COLUMN_REVERSE,B as FLEX_DIRECTION_ROW,C as FLEX_DIRECTION_ROW_REVERSE,I as GUTTER_ALL,G as GUTTER_COLUMN,H as GUTTER_ROW,K as JUSTIFY_CENTER,L as JUSTIFY_FLEX_END,J as JUSTIFY_FLEX_START,N as JUSTIFY_SPACE_AROUND,M as JUSTIFY_SPACE_BETWEEN,O as JUSTIFY_SPACE_EVENLY,S as LOG_LEVEL_DEBUG,P as LOG_LEVEL_ERROR,U as LOG_LEVEL_FATAL,R as LOG_LEVEL_INFO,T as LOG_LEVEL_VERBOSE,Q as LOG_LEVEL_WARN,X as MEASURE_MODE_AT_MOST,W as MEASURE_MODE_EXACTLY,V as MEASURE_MODE_UNDEFINED,Y as NODE_TYPE_DEFAULT,Z as NODE_TYPE_TEXT,$ as OVERFLOW_HIDDEN,a0 as OVERFLOW_SCROLL,_ as OVERFLOW_VISIBLE,a3 as POSITION_TYPE_ABSOLUTE,a2 as POSITION_TYPE_RELATIVE,a1 as POSITION_TYPE_STATIC,a6 as PRINT_OPTIONS_CHILDREN,a4 as PRINT_OPTIONS_LAYOUT,a5 as PRINT_OPTIONS_STYLE,aa as UNIT_AUTO,a9 as UNIT_PERCENT,a8 as UNIT_POINT,a7 as UNIT_UNDEFINED,ab as WRAP_NO_WRAP,ac as WRAP_WRAP,ad as WRAP_WRAP_REVERSE}from\"./wrapAsm-f766f97f.js\";var yoga=(()=>{var r=\"undefined\"!=typeof document&&document.currentScript?document.currentScript.src:void 0;return function(e={}){u||(u=void 0!==e?e:{}),u.ready=new Promise(function(r,e){s=r,A=e});var a,i,n=Object.assign({},u),f=\"\";\"undefined\"!=typeof document&&document.currentScript&&(f=document.currentScript.src),r&&(f=r),f=0!==f.indexOf(\"blob:\")?f.substr(0,f.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1):\"\";var t=u.print||console.log.bind(console),b=u.printErr||console.warn.bind(console);function o(){}function k(r){this.exports=function(r){for(var e,a=new Uint8Array(123),i=25;i>=0;--i)a[48+i]=52+i,a[65+i]=i,a[97+i]=26+i;function n(r,e,i){for(var n,f,t=0,b=e,o=i.length,k=e+(3*o>>2)-(\"=\"==i[o-2])-(\"=\"==i[o-1]);t>4,b>2),b>2]=l[L>>2]+1,L=3&l[r+24>>2],r$=(0|i)<=1?1:i,rf=L||r$,s[r+300|0]=252&d[r+300|0]|3&rf,L=r+252|0,i=((0|rf)!=1)<<3,S=rP(r,rL=(0|rf)==2?3:2,b),p[L+i>>2]=S,_=L,L=((0|rf)==1)<<3,Q=rS(r,rL,b),p[_+L>>2]=Q,H=rP(r,0,b),p[r+256>>2]=H,C=rS(r,0,b),p[r+264>>2]=C,eb=(F=r+268|0)+i|0,eo=rM(r,rL),p[eb>>2]=eo,eb=L+F|0,eo=rU(r,rL),p[eb>>2]=eo,X=rM(r,0),p[r+272>>2]=X,P=rU(r,0),p[r+280>>2]=P,eb=(_=i)+(i=r+284|0)|0,eo=rZ(r,rL,b),p[eb>>2]=eo,eb=i+L|0,eo=rW(r,rL,b),p[eb>>2]=eo,O=rZ(r,0,b),p[r+288>>2]=O,D=rW(r,0,b),p[r+296>>2]=D,S=w(S+Q),Q=w(H+C),i=l[r+8>>2]){H=w(w(w(p[r+284>>2]+p[r+292>>2])+p[r+268>>2])+p[r+276>>2]),a=f?w(a-Q):w(NaN),X=w(w(O+D)+X),e=O=n?w(e-S):w(NaN);i:if(e==e){if((e=w(O-H))!=e){e=w(0);break i}e=eu(e,w(0))}S=w(X+P),X=a;n:if(a==a){if((X=w(a-S))!=X){X=w(0);break n}X=eu(X,w(0))}if(!((0|n)!=1|(0|f)!=1)){i=(e=ro(r,2,O,b))!=e,X=w(w(rZ(r,2,b)+rM(r,2))+w(rW(r,2,b)+rU(r,2)));f:{if(!(i|X!=X)){e=eu(e,X);break f}e=i?X:e}p[r+516>>2]=e,i=(e=ro(r,0,a,o))!=e,a=w(w(rZ(r,0,b)+rM(r,0))+w(rW(r,0,b)+rU(r,0)));t:{if(!(i|a!=a)){e=eu(e,a);break t}e=i?a:e}p[r+520>>2]=e;break r}b:{if(16&d[r+4|0]){eY[0|i](I+24|0,r,e,n,X,f,0);break b}eY[0|i](I+24|0,r,e,n,X,f)}l[h+20>>2]=l[h+20>>2]+1,l[(i=(N<<2)+h|0)+24>>2]=l[i+24>>2]+1,e=w(H+p[I+24>>2]),i=(e=ro(r,2,n?(0|n)==2?e:O:e,b))!=e,X=w(w(rZ(r,2,b)+rM(r,2))+w(rW(r,2,b)+rU(r,2)));o:{if(!(i|X!=X)){e=eu(e,X);break o}e=i?X:e}p[r+516>>2]=e,e=w(S+p[I+28>>2]),i=(e=ro(r,0,f?(0|f)==2?e:a:e,o))!=e,a=w(w(rZ(r,0,b)+rM(r,0))+w(rW(r,0,b)+rU(r,0)));k:{if(!(i|a!=a)){e=eu(e,a);break k}e=i?a:e}p[r+520>>2]=e;break r}if(i=l[r+556>>2],N=l[r+560>>2],(0|i)==(0|N)){Q=w(a-Q),i=(e=ro(r,2,-3&n?w(e-S):w(w(w(p[r+284>>2]+p[r+292>>2])+p[r+268>>2])+p[r+276>>2]),b))!=e,a=w(w(rZ(r,2,b)+rM(r,2))+w(rW(r,2,b)+rU(r,2)));c:{if(!(i|a!=a)){e=eu(e,a);break c}e=i?a:e}p[r+516>>2]=e,i=(e=ro(r,0,-3&f?Q:w(w(w(O+D)+X)+P),o))!=e,a=w(w(rZ(r,0,b)+rM(r,0))+w(rW(r,0,b)+rU(r,0)));u:{if(!(i|a!=a)){e=eu(e,a);break u}e=i?a:e}p[r+520>>2]=e;break r}s:if(!c){if(O=w(e-S),X=w(a-Q),!((0|n)==2&O<=w(0)|!(!(X<=w(0))|(0|f)!=2)&X==X)&((0|n)!=1|(0|f)!=1))break s;i=(e=ro(r,2,O==O?(0|n)==2&&O>2]=e,i=(e=ro(r,0,X!=X?w(0):(0|f)==2&&X>2]=e;break r}for(rd=(rr=N-i|0)>>2;L=l[i>>2],l[L+552>>2]!=(0|r)&&(F=l[r+568>>2],L=rV(l[F>>2],d[F+8|0],L,r,U,0),l[i>>2]=L,l[L+552>>2]=r),U=U+1|0,(0|N)!=(0|(i=i+4|0)););s[r+300|0]=251&d[r+300|0],U=3,i=(rH=l[r+24>>2])>>>2&3;d:{h:{v:{if((0|rf)==2){N=0;p:switch(i-2|0){case 0:break d;case 1:break p;default:break v}U=2;break d}if(U=2,N=0,i>>>0>1)break h}N=U}U=i}r0=w(e-S),rh=w(w(rZ(r,U,b)+rM(r,U))+w(rW(r,U,b)+rU(r,U))),D=w(rZ(r,N,b)+rM(r,N)),rb=w(D+w(rW(r,N,b)+rU(r,N))),C=rs(r,0,r0,(rk=U>>>0>1)?rh:rb,b),J=rs(r,1,r2=w(a-Q),rk?rb:rh,o),K=rk?J:C,Q=rk?C:J,rp=l[r+560>>2],L=l[r+556>>2],x=rk?n:f;m:if((0|x)==1){if((0|L)==(0|rp))break a;for(i=0,F=L;;){_=i,i=l[F>>2];N:{if(!rQ(i)){i=_;break N}if(Y=0,_||!(_=l[i+552>>2]))break m;w:{y:{a=p[i+32>>2];E:if((a==a||(X=w(0),(a=p[i+28>>2])>w(0)))&&(X=a,a!=a))break y;if(w(y(X))>2])!=a){if(s[i+4|0]<0){a=w(1);break w}if(a=w(0),!((e=p[i+28>>2])>2],rc(M),F=l[M+24>>2];G:{if(4194304&F){if(function r(e,a){var i=0,n=0,f=0,t=0,b=0,o=0;for(re=i=re-320|0,l[(i=n=ry(i,0,288))+16>>2]=2143289344,l[i+20>>2]=2143289344,ry(i+24|0,0,49),l[i+80>>2]=2143289344,t=i+288|0,f=i+96|0;l[(i=f)+16>>2]=-1082130432,l[i+20>>2]=-1082130432,l[i+8>>2]=0,l[i+12>>2]=0,l[i>>2]=-1082130432,l[i+4>>2]=-1082130432,(0|t)!=(0|(f=i+24|0)););if(l[n+312>>2]=-1082130432,l[n+316>>2]=-1082130432,l[n+304>>2]=0,l[n+308>>2]=0,l[n+296>>2]=-1082130432,l[n+300>>2]=-1082130432,l[n+288>>2]=2143289344,l[n+292>>2]=2143289344,ru(e+228|0,n,320),l[e+244>>2]=0,l[e+248>>2]=0,s[e+4|0]=1|d[e+4|0],f=l[e+556>>2],b=l[e+560>>2],(0|f)!=(0|b))for(;i=l[f>>2],l[i+552>>2]!=(0|e)&&(t=l[e+568>>2],i=rV(l[t>>2],d[t+8|0],i,e,o,a),l[f>>2]=i,l[i+552>>2]=e,i=l[f>>2]),r(i,a),o=o+1|0,(0|b)!=(0|(f=f+4|0)););re=n+320|0}(M,0),F=1|(i=d[M+4|0]),s[M+4|0]=F,!(4&i))break G;s[M+4|0]=251&F;break G}if(c&&(rO(M,(i=3&F)||ra,Q,K,C),F=l[M+24>>2]),(196608&F)==131072)break G;R:{if((0|Y)==(0|M)){l[Y+308>>2]=0,l[Y+304>>2]=m,a=w(0);break R}_=(rF=l[r+24>>2])>>>2&3;g:{Z:if((0|rf)==2){i=3;W:switch(_-2|0){case 0:break g;case 1:break W;default:break Z}i=2;break g}i=_}O=(rA=i>>>0>1)?C:J,a=w(0),e=p[M+40>>2];V:{B:{_=l[M+40>>2];T:if((0|_)!=2139156720){if((0|_)==2140081935)break B;j=4276;I:{if((0|_)!=2141891242){if(e==e)break I;j=4268}a=p[j>>2];X:{O:switch(0|(_=l[j+4>>2])){case 0:case 3:break O;default:break X}if(e=w(NaN),!(p[M+28>>2]>w(0)))break V;ri=(j=s[M+4|0]<0)?2143289344:0,_=j?3:1,E=ri,t[2]=E,a=u()}switch(e=w(NaN),_-1|0){case 0:break B;case 1:break T;default:break V}}if(G=(-1073741825&_)+536870912|0,t[2]=G,a=u(),!(1073741824&_))break B}e=w(w(O*a)*w(.009999999776482582));break V}e=a}a=p[M+572>>2],_=0;L:{_:switch(0|($=l[M+576>>2])){case 0:case 3:break L;default:break _}if(S=p[M+572>>2],!((0|$)!=1|S!=S)){if(a>2],j=0;F:{C:switch(0|(q=l[M+584>>2])){case 0:case 3:break F;default:break C}if(P=p[M+580>>2],!((0|q)!=1|P!=P)){if(S>2],(!d[l[M+568>>2]+20|0]|l[M+304>>2]==(0|m))&a==a)break S;if(!((a=w(w(rZ(M,i,C)+rM(M,i))+w(rW(M,i,C)+rU(M,i))))<=e)&ea){a=e;break P}a=a!=a?e:a;break P}if(l[I+360>>2]=2143289344,l[I+24>>2]=2143289344,ri=0,l[I+356>>2]=0,l[I+352>>2]=0,P=w(rP(M,2,C)+rS(M,2,C)),H=rP(M,0,C),z=rS(M,0,C),O=w(NaN),rl=0,e=w(NaN),_){M:{H:switch($-1|0){case 0:e=a;break M;case 1:break H;default:break M}e=w(w(C*a)*w(.009999999776482582))}l[I+356>>2]=1,e=w(P+e),p[I+24>>2]=e,rl=1}if(H=w(H+z),j){a=w(NaN);Q:{z:switch(q-1|0){case 0:a=S;break Q;case 1:break z;default:break Q}a=w(w(J*S)*w(.009999999776482582))}l[I+352>>2]=1,O=w(H+a),p[I+360>>2]=O,ri=1}$=i>>>0<2,q=3145728&rF;j:{D:{x:{if(!(!rA&(0|q)==2097152)){if(rw|(0|q)==2097152)break D;if(e!=e)break x;break D}if(rw|e==e)break j}rl=2,l[I+356>>2]=2,p[I+24>>2]=C,e=C}J:{if(!(!$&(0|q)==2097152)){if((0|q)==2097152|J!=J)break j;if(O!=O)break J;break j}if(O==O|J!=J)break j}ri=2,l[I+352>>2]=2,p[I+360>>2]=J,O=J}q=(a=p[M+224>>2])!=a;K:if(!q){q:{if(!(rA|(0|rl)!=1)){l[I+352>>2]=1,p[I+360>>2]=H+w(w(e-P)/a);break q}if($|(0|ri)!=1)break K;l[I+356>>2]=1,p[I+24>>2]=w(w(O-H)*a)+P}ri=1,rl=1}F=(F=F>>>13&7)||rF>>>10&7;$:if(!((0|F)==5|(0|rl)==1|(rA|(_|rN))|(0|F)!=4)){if(l[I+356>>2]=1,p[I+24>>2]=C,q)break $;ri=1,l[I+352>>2]=1,p[I+360>>2]=w(C-P)/a}rr:if(!($|(0|f)!=1|J!=J|j|(0|F)!=4|(0|ri)==1)){if(l[I+352>>2]=1,p[I+360>>2]=J,q)break rr;l[I+356>>2]=1,p[I+24>>2]=w(J-H)*a}if(rg(M,2,C,C,I+356|0,I+24|0),rg(M,0,J,C,I+352|0,I+360|0),rt(M,p[I+24>>2],p[I+360>>2],rf,l[I+356>>2],l[I+352>>2],C,J,0,5,A,h,v,m),F=(e=p[(M+(l[(i<<2)+4252>>2]<<2)|0)+516>>2])!=e,a=w(w(rZ(M,i,C)+rM(M,i))+w(rW(M,i,C)+rU(M,i))),!(F|a!=a)){a=eu(e,a);break P}a=F?a:e}p[M+308>>2]=a}l[M+304>>2]=m}X=w(X+w(a+w(rP(M,U,C)+rS(M,U,C))))}if((0|rp)==(0|(L=L+4|0)))break}break e}l[I>>2]=3023,rB(r,I),eX(),k()}l[I+16>>2]=3105,rB(r,I+16|0),eX(),k()}X=w(0)}e=w(X+w(0)),rz=rk?o:b,rC=rk?b:o,rr>>>0>=5&&(e=w(w(rv(r,U,K)*w(rd-1>>>0))+e)),i=e>Q,rp=786432&rH,rG=(0|x)==2&&rp&&i?1:x,r8=(rw=(0|(M=rk?f:n))==1)&(1^c),rk=U>>>0<2,r9=-3&M,rF=r+208|0,q=(f=N<<2)+4220|0,r7=!rp&rw,er=(0|M)!=1|c,rA=(L=U<<2)+4220|0,r_=L+4252|0,ei=(rl=K==K)<<1,$=f+4252|0,ef=!x|!i,rH=I+52|0,r1=rv(r,N,K),F=0,i=0,ri=0;re:{for(;;){j=i,ry(I+24|0,0,44),i=l[r+560>>2],f=l[r+556>>2];ra:if((0|i)!=(0|f)){if((0|(i=i-f|0))<0)break re;if(L=en(I+360|0,i>>2,0,rH),i=l[I+44>>2],f=l[I+48>>2]-i|0,f=rm(l[I+364>>2]-f|0,i,f),i=l[I+44>>2],l[I+364>>2]=i,l[I+44>>2]=f,_=l[I+368>>2],Y=l[I+372>>2],f=l[I+48>>2],l[I+368>>2]=f,x=l[I+52>>2],l[I+48>>2]=_,l[I+52>>2]=Y,l[I+372>>2]=x,l[L>>2]=i,(0|i)!=(0|f)&&(l[I+368>>2]=f+((i-f|0)+3&-4)),!i)break ra;rE(i)}f=(Y=l[r+24>>2])>>>2&3;ri:{rn:if((0|((i=3&Y)||r$))==2){i=3;rf:switch(f-2|0){case 0:break ri;case 1:break rf;default:break rn}i=2;break ri}i=f}X=rv(r,i,C),L=F,_=l[r+560>>2],f=l[r+556>>2];rt:if(!(L>>>0>=_-f>>2>>>0))for(x=786432&Y,a=w(0);;){if(_-f>>2>>>0<=L>>>0)break re;if(Y=l[(L<<2)+f>>2],!(4194304&(rr=l[Y+24>>2])|(196608&rr)==131072)){if(l[Y+548>>2]=j,e=rP(Y,i,C),O=rS(Y,i,C),f=l[I+24>>2],S=(0|L)==(0|F)?w(0):X,e=w(e+O),O=p[Y+308>>2],P=ro(Y,i,O,rC),!(f?!(w(S+w(e+w(a+P)))>Q)|!x:1))break rt;if(l[I+24>>2]=f+1,S=w(S+w(e+P)),p[I+28>>2]=S+p[I+28>>2],rQ(Y)){rb:{if(l[Y+552>>2]){if((e=p[Y+32>>2])!=e&&(e=(e=p[Y+28>>2])>w(0)?e:w(0)),p[I+32>>2]=e+p[I+32>>2],(e=p[Y+36>>2])==e)break rb;if(s[Y+4|0]<0){e=w(1);break rb}if(e=w(0),!((P=p[Y+28>>2])>2]=p[I+32>>2]+w(0)}p[I+36>>2]=p[I+36>>2]-w(e*O)}f=l[I+48>>2];ro:{if((0|f)!=l[I+52>>2]){l[f>>2]=Y,l[I+48>>2]=f+4;break ro}if((_=(rr=(f=f-l[I+44>>2]|0)>>2)+1|0)>>>0>=1073741824)break re;if(ra=f>>>1|0,rr=en(I+360|0,f>>>0>=2147483644?1073741823:_>>>0>>0?ra:_,rr,rH),l[l[I+368>>2]>>2]=Y,l[I+368>>2]=l[I+368>>2]+4,f=l[I+44>>2],_=l[I+48>>2]-f|0,_=rm(l[I+364>>2]-_|0,f,_),f=l[I+44>>2],l[I+364>>2]=f,l[I+44>>2]=_,Y=l[I+368>>2],ra=l[I+372>>2],_=l[I+48>>2],l[I+368>>2]=_,rN=l[I+52>>2],l[I+48>>2]=Y,l[I+52>>2]=ra,l[I+372>>2]=rN,l[rr>>2]=f,(0|f)!=(0|_)&&(l[I+368>>2]=_+((f-_|0)+3&-4)),!f)break ro;rE(f)}f=l[r+556>>2],_=l[r+560>>2],a=w(a+S)}if(!((L=L+1|0)>>>0<_-f>>2>>>0))break}!((z=p[I+32>>2])>w(0))|!(z>2]=1065353216,z=w(1)),!((rn=p[I+36>>2])>w(0))|!(rn>2]=1065353216,rn=w(1)),l[I+40>>2]=L,H=p[I+28>>2],x=l[I+24>>2],ri&&rE(ri),S=p[I+56>>2],rr=l[I+48>>2],ri=l[I+44>>2];rk:{rc:{ru:{rs:if((0|rG)!=1){a=w(0),e=p[rF>>2];rA:{rl:{i=l[rF>>2];rd:if((0|i)!=2139156720){if((0|i)==2140081935)break rl;f=4276;rh:{if((0|i)!=2141891242){if(e==e)break rh;f=4268}switch(a=p[f>>2],e=w(NaN),l[f+4>>2]-1|0){case 0:break rl;case 1:break rd;default:break rA}}if(R=(-1073741825&i)+536870912|0,t[2]=R,a=u(),!(1073741824&i))break rl}e=w(w(a*b)*w(.009999999776482582));break rA}e=a}a=w(0),X=p[r+216>>2];rv:{rp:{i=l[r+216>>2];rm:if((0|i)!=2139156720){if((0|i)==2140081935)break rp;f=4276;rN:{if((0|i)!=2141891242){if(X==X)break rN;f=4268}switch(a=p[f>>2],X=w(NaN),l[f+4>>2]-1|0){case 0:break rp;case 1:break rm;default:break rv}}if(g=(-1073741825&i)+536870912|0,t[2]=g,a=u(),!(1073741824&i))break rp}X=w(w(a*b)*w(.009999999776482582));break rv}X=a}a=w(0),O=p[r+212>>2];rw:{ry:{i=l[r+212>>2];rE:if((0|i)!=2139156720){if((0|i)==2140081935)break ry;f=4276;rG:{if((0|i)!=2141891242){if(O==O)break rG;f=4268}switch(a=p[f>>2],P=w(NaN),l[f+4>>2]-1|0){case 0:break ry;case 1:break rE;default:break rw}}if(Z=(-1073741825&i)+536870912|0,t[2]=Z,a=u(),!(1073741824&i))break ry}P=w(w(a*o)*w(.009999999776482582));break rw}P=a}a=w(0),O=p[r+220>>2];rR:{rg:{i=l[r+220>>2];rZ:if((0|i)!=2139156720){if((0|i)==2140081935)break rg;f=4276;rW:{if((0|i)!=2141891242){if(O==O)break rW;f=4268}switch(a=p[f>>2],O=w(NaN),l[f+4>>2]-1|0){case 0:break rg;case 1:break rZ;default:break rR}}if(W=(-1073741825&i)+536870912|0,t[2]=W,a=u(),!(1073741824&i))break rg}O=w(w(a*o)*w(.009999999776482582));break rR}O=a}if((a=w(((i=U>>>0>1)?e:P)-rh))==a&a>H||(a=w((i?X:O)-rh))==a&a>2]+11|0])break rs;if(a=H,!l[r+552>>2]|z==w(0))break rc;e=p[r+32>>2];rV:{rB:{if(e==e){a=e;break rB}if(!((a=p[r+28>>2])>w(0)))break rV}if(a!=a){a=Q;break rc}e=p[r+32>>2]}if(e!=e&&(a=H,!((e=p[r+28>>2])>w(0)))||(a=Q,e!=w(0)))break rc;a=H;break rc}a=Q}if(a!=a)break rc;S=w(a-H);break rk}if(!(H>2])+308>>2],a=ro(i,U,H,rC);rI:{if(S>2];rX:{if(!Y){X=w(0);break rX}if((X=p[i+36>>2])==X)break rX;if(s[i+4|0]<0){X=w(1);break rX}if(X=w(0),!((e=p[i+28>>2])w(0)|e>2])==a)break rL;if(s[i+4|0]<0){a=w(1);break rL}if(a=w(0),!((X=p[i+28>>2])w(0))|!l[i+552>>2]||(X=p[i+32>>2])!=X&&!((X=p[i+28>>2])>w(0))||!(Xw(0)))break rI;_=(e=ro(i,U,P=w(w(w(S/z)*X)+a),Q))!=e,H=w(w(rZ(i,U,C)+rM(i,U))+w(rW(i,U,C)+rU(i,U)));r_:{if(!(_|H!=H)){e=eu(e,H);break r_}e=_?H:e}if(P!=P|e!=e|e==P)break rI;z=w(z-X),O=w(O+w(e-a))}if((0|rr)==(0|(f=f+4|0)))break}for(H=w(S-O),rD=w(H/rn),rx=w(H/z),rK=!(ra=rw&(!(12&d[r+26|0])|ef)),rN=l[$>>2],P=w(0),_=ri;;){f=l[_>>2],a=ro(f,U,p[f+308>>2],rC);rF:{rC:{if(H>2]){e=w(0);break rS}if((e=p[f+36>>2])==e)break rS;if(s[f+4|0]<0){e=w(1);break rS}if(e=w(0),!((X=p[f+28>>2])w(0))|!l[f+552>>2]||(e=p[f+32>>2])!=e&&!((e=p[f+28>>2])>w(0))||!(ew(0)))break rF;e=w(w(rx*e)+a)}if(i=(e=ro(f,U,e,Q))!=e,X=w(w(rZ(f,U,C)+rM(f,U))+w(rW(f,U,C)+rU(f,U))),!(i|X!=X)){X=eu(e,X);break rF}X=i?X:e}e=rP(f,U,C),O=rS(f,U,C),z=rP(f,N,C),rq=rS(f,N,C),O=w(e+O),r4=w(X+O),p[I+352>>2]=r4,l[I+344>>2]=1,z=w(z+rq),e=p[f+224>>2];rP:{if(e==e){l[I+348>>2]=1,O=w(r4-O),p[I+356>>2]=z+(rk?w(O*e):w(O/e)),O=p[(Y=f+(rN<<3)|0)+572>>2],i=l[Y+576>>2],e=p[Y+572>>2];break rP}e=p[(Y=f+(rN<<3)|0)+572>>2];rY:{rU:{rM:{rH:{rQ:{rz:{rj:{rD:{rx:{if(!rl){O=p[Y+572>>2],i=l[Y+576>>2];break rx}O=p[Y+572>>2];rJ:{rK:{rq:{r$:switch(0|(i=l[Y+576>>2])){case 0:case 3:break rq;default:break r$}if(!((0|i)!=1|e!=e)){if(!(ra&O>2]>>>13&7)||(Y=l[r+24>>2]>>>10&7),(0|Y)!=4||(ea(I+24|0,f,N),3==l[I+28>>2]))break rJ;if(ee(I+360|0,f,N),3!=l[I+364>>2])break rD}e=O}switch(0|i){case 0:case 3:break rz;default:break rj}}l[I+348>>2]=1;break rU}if(!((0|i)!=1|e!=e)){if((e=O)>2]=ei;break rU}e=w(NaN);r0:switch(i-1|0){case 1:break rH;case 0:break r0;default:break rM}e=O;break rM}e=w(w(K*O)*w(.009999999776482582))}e=w(z+e),p[I+356>>2]=e,l[I+348>>2]=(rw|(0|i)!=2)&e==e;break rY}p[I+356>>2]=K}e=O}rg(f,U,Q,C,I+344|0,I+352|0),rg(f,N,K,C,I+348|0,I+356|0);r2:{r1:{r4:{r3:switch(0|i){case 0:case 3:break r4;default:break r3}if(!((0|i)!=1|e!=e)){if(O>2]>>>13&7)||(i=l[r+24>>2]>>>10&7),(0|i)!=4||(ea(I+24|0,f,N),3==l[I+28>>2]))break r2;ee(I+360|0,f,N),Y=3!=l[I+364>>2];break r2}Y=0}e=p[I+352>>2],O=p[I+356>>2],z=(i=U>>>0>1)?e:O,e=i?O:e,rJ=l[I+344>>2],r3=l[I+348>>2],et=i?rJ:r3,rJ=i?r3:rJ,i=(1^Y)&c,rt(f,z,e,3&d[r+300|0],et,rJ,C,J,i,i?4:7,A,h,v,m),P=w(P+w(X-a)),i=d[r+300|0];r8:{r6:{if(4&i){Y=251&i;break r6}if(Y=251&i,i=0,!(4&d[f+300|0]))break r8}i=4}if(s[r+300|0]=i|Y,(0|rr)==(0|(_=_+4|0)))break}}S=w(S-P)}i=d[r+300|0],s[r+300|0]=251&i|(Sw(0))|(0|rG)!=2)){P=w(0),a=w(0);r9:{r7:{e=p[(i=rF+(l[r_>>2]<<2)|0)>>2],f=(0|(i=l[i>>2]))==2139156720;er:{if(!f){if(_=(0|i)==2140081935)break r7;if((Y=(0|i)==2141891242)|e!=e)break r5;if(_)break r7;if(Y)break r5;if(V=(-1073741825&i)+536870912|0,t[2]=V,a=u(),!(1073741824&i))break er}a=w(w(rC*a)*w(.009999999776482582))}if(a!=a)break r5;a=w(0);ee:if(!f){if((0|i)==2140081935)break r7;f=4276;ea:{if((0|i)!=2141891242){if(e==e)break ea;f=4268}switch(a=p[f>>2],X=w(NaN),l[f+4>>2]-1|0){case 0:break r7;case 1:break ee;default:break r9}}if(B=(-1073741825&i)+536870912|0,t[2]=B,a=u(),!(1073741824&i))break r7}X=w(w(rC*a)*w(.009999999776482582));break r9}X=a}if((e=w(w(w(X-O)-rD)-w(Q-S)))!=e)break r5;P=eu(e,w(0));break r5}P=S}Y=L>>>0<=F>>>0;ei:{if(!Y){for(rr=l[r+556>>2],ra=(i=l[r+560>>2]-rr>>2)>>>0>>0?F:i,_=0,i=F;;){if((0|i)==(0|ra))break re;if(f=l[rr+(i<<2)>>2],(196608&l[f+24>>2])!=131072&&(ea(rN=I+24|0,f,U),rK=l[I+28>>2],ee(rN,f,U),_=(((0|rK)==3)+_|0)+(3==l[I+28>>2])|0),(0|L)==(0|(i=i+1|0)))break}if(z=w(0),a=H,_)break ei}z=w(0),_=0,a=H;en:switch((l[r+24>>2]>>>4&7)-1|0){case 0:z=w(P*w(.5));break ei;case 1:z=P;break ei;case 2:if(x>>>0<2)break ei;a=w(H+w((eo=w(0),ek=eu(P,w(0)),((eb=P!=P)?eo:ek)/w(x-1>>>0))));break ei;case 4:z=w(P/w(x+1>>>0)),a=w(H+z);break ei;case 3:break en;default:break ei}z=w(w(P*w(.5))/w(x>>>0)),a=w(w(z+z)+H)}if(e=w(O+z),S=w(0),x=rj(r),Y)a=w(0);else{for(rr=L-1|0,rx=w(P/w(0|_)),O=w(0),X=w(0),i=F;;){if(f=l[r+556>>2],l[r+560>>2]-f>>2>>>0<=i>>>0)break re;_=(f=l[f+(i<<2)>>2])+228|0,ru(I+24|0,_,320),a=w(a-((0|i)==(0|rr)?H:w(0))),ra=l[f+24>>2];ef:if(!(4194304&ra)){et:{if((196608&ra)==131072){if(!r5(f,U))break et;if(!c)break ef;P=rI(f,U,Q),rn=rM(r,U),rq=rP(f,U,C),p[_+(l[rA>>2]<<2)>>2]=rq+w(P+rn);break ef}if(ea(I+360|0,f,U),e=w(e+(3==l[I+364>>2]?rx:w(-0))),c&&(ra=_,_=l[rA>>2]<<2,p[ra+_>>2]=e+p[_+(I+24|0)>>2]),ee(I+360|0,f,U),e=w(e+(3==l[I+364>>2]?rx:w(-0))),!er){e=w(e+w(w(a+w(rP(f,U,C)+rS(f,U,C)))+p[I+104>>2])),S=K;break ef}if(e=w(e+w(a+w(p[(_=f+516|0)+(l[r_>>2]<<2)>>2]+w(rP(f,U,C)+rS(f,U,C))))),x){P=rR(f),rn=rP(f,0,C),P=w(P+rn),rn=w(w(p[f+520>>2]+w(rP(f,0,C)+rS(f,0,C)))-P),f=O!=O;eb:{if(!(f|P!=P)){O=eu(O,P);break eb}O=f?P:O}if(!((f=X!=X)|rn!=rn)){X=eu(X,rn);break ef}X=f?rn:X;break ef}if(!((P=w(p[_+(l[$>>2]<<2)>>2]+w(rP(f,N,C)+rS(f,N,C))))!=P|(f=S!=S))){S=eu(S,P);break ef}S=f?P:S;break ef}if(!c)break ef;P=p[(f=l[rA>>2]<<2)+(I+24|0)>>2],eb=f+_|0,eo=w(z+w(P+rM(r,U))),p[eb>>2]=eo}if((0|L)==(0|(i=i+1|0)))break}a=w(X+O)}if(O=x?a:S,P=K,!r9){i=(a=ro(r,N,w(rb+O),rz))!=a,X=w(w(rZ(r,N,b)+rM(r,N))+w(rW(r,N,b)+rU(r,N)));eo:{if(!(i|X!=X)){a=eu(a,X);break eo}a=i?X:a}P=w(a-rb)}i=(a=ro(r,N,w(rb+(r7?K:O)),rz))!=a,X=w(w(rZ(r,N,b)+rM(r,N))+w(rW(r,N,b)+rU(r,N)));ek:{if(!(i|X!=X)){a=eu(a,X);break ek}a=i?X:a}if(X=w(a-rb),!(!c|Y))for(;;){if(i=l[r+556>>2],l[r+560>>2]-i>>2>>>0<=F>>>0)break re;i=l[i+(F<<2)>>2],f=l[i+24>>2];ec:if(!(4194304&f)){if((196608&f)==131072){if(f=l[q>>2],r5(i,N)&&(a=w(w(rI(i,N,K)+rM(r,N))+rP(i,N,C)),p[(i+(f<<2)|0)+228>>2]=a,a==a))break ec;eb=i+(f<<2)|0,eo=w(rM(r,N)+rP(i,N,C)),p[eb+228>>2]=eo;break ec}(f=f>>>13&7)||(f=l[r+24>>2]>>>10&7);eu:{es:{eA:{if((0|f)==5){f=8&l[r+24>>2]?5:1;break eA}if((0|f)!=4||(ea(I+24|0,i,N),f=4,3==l[I+28>>2]))break eA;if(ee(I+360|0,i,N),_=l[$>>2],3==l[I+364>>2])break es;O=p[(_=i+(_<<3)|0)+572>>2];el:{ed:switch(0|(f=l[_+576>>2])){case 0:case 3:break el;default:break ed}if(S=p[_+572>>2],!((0|f)!=1|S!=S)){if(a=D,O>2]<<2)|0)+516>>2],a=(a=p[i+224>>2])==a?w(w(rP(i,N,C)+rS(i,N,C))+(rk?w(O*a):w(O/a))):X,p[I+360>>2]=a,eb=I,eo=w(O+w(rP(i,U,C)+rS(i,U,C))),p[eb+24>>2]=eo,l[I+356>>2]=1,l[I+352>>2]=1,rg(i,U,Q,C,I+356|0,I+24|0),rg(i,N,K,C,I+352|0,I+360|0),O=p[I+360>>2],S=p[I+24>>2],a=(f=U>>>0>1)?O:S,O=f?S:O,f=(0|rp)!=0&(896&l[r+24>>2])!=512,rt(i,O,a,rf,!(f&rk|O!=O),(!f|rk)&a==a,C,J,1,2,A,h,v,m),a=D;break eu}_=l[$>>2]}a=p[((_<<2)+i|0)+516>>2],O=rP(i,N,C),S=rS(i,N,C),ea(I+24|0,i,N),O=w(P-w(a+w(O+S)));eh:if(3==l[I+28>>2]){if(ee(I+360|0,i,N),3!=l[I+364>>2])break eh;a=w(O*w(.5)),a=w(D+(eo=w(0),ek=eu(a,w(0)),(eb=a!=a)?eo:ek));break eu}if(ee(I+24|0,i,N),a=D,3==l[I+28>>2])break eu;if(ea(I+24|0,i,N),3==l[I+28>>2]){a=w(D+(eo=w(0),ek=eu(O,w(0)),(eb=O!=O)?eo:ek));break eu}ev:switch(f-1|0){case 1:a=w(D+w(O*w(.5)));break eu;case 0:break eu;default:break ev}a=w(D+O)}p[(i=i+(l[q>>2]<<2)|0)+228>>2]=a+w(rX+p[i+228>>2])}if((0|(F=F+1|0))==(0|L))break}a=w((j?r1:w(0))+X),i=rY!=rY,e=w(rD+e);ep:{if(!(i|e!=e)){rY=eu(rY,e);break ep}rY=i?e:rY}if(rX=w(rX+a),i=j+1|0,F=L,!(L>>>0>>0))break}em:if(c&&(rp||rj(r))){O=w(0);eN:{ew:if(K==K){e=w(K-rX);ey:switch((l[r+24>>2]>>>7&7)-2|0){case 0:D=w(D+w(e*w(.5)));break ew;case 2:if(!(K>rX))break ew;O=w(e/w(i>>>0));break ew;case 5:if(K>rX){if(D=w(D+w(e/w(i<<1>>>0))),i>>>0<2)break ew;O=w(e/w(i>>>0));break eN}D=w(D+w(e*w(.5)));break ew;case 4:if(!(K>rX)|i>>>0<2)break ew;O=w(e/w(j>>>0));break eN;case 1:break ey;default:break ew}D=w(D+e)}if(!i)break em}for(_=0,i=0,f=0;;){if(S=w(0),a=w(0),e=w(0),X=w(0),L=i,i>>>0>>0){eE:{for(;;){if(f=l[r+556>>2],l[r+560>>2]-f>>2>>>0<=L>>>0)break re;F=l[f+(L<<2)>>2],Y=l[F+24>>2];eG:if(!(4194304&Y|(196608&Y)==131072)){if(f=L,l[F+548>>2]!=(0|_))break eE;e=p[(F+(l[$>>2]<<2)|0)+516>>2];eR:if(e>=w(0)){if(f=a!=a,e=w(e+w(rP(F,N,C)+rS(F,N,C))),!(f|e!=e)){a=eu(a,e);break eR}a=f?e:a}if((f=Y>>>13&7)||(f=l[r+24>>2]>>>10&7),!(8&d[r+24|0])|(0|f)!=5)break eG;e=rR(F),P=rP(F,0,C),e=w(e+P),P=w(w(p[F+520>>2]+w(rP(F,0,C)+rS(F,0,C)))-e),f=a!=a,F=X!=X;eg:{if(!(F|e!=e)){X=eu(X,e);break eg}X=F?e:X}F=S!=S;eZ:{if(!(F|P!=P)){S=eu(S,P);break eZ}S=F?P:S}if(!(f|(e=w(X+S))!=e)){a=eu(a,e);break eG}a=f?e:a}if((0|rd)==(0|(L=L+1|0)))break}f=rd}e=a}if(P=w(D+(_?r1:w(0))),a=w(O+e),D=w(P+a),i>>>0>>0)for(H=w(P+X);;){if(L=l[r+556>>2],l[r+560>>2]-L>>2>>>0<=i>>>0)break re;F=l[L+(i<<2)>>2],L=l[F+24>>2];eW:if(!(4194304&L|(196608&L)==131072)){(L=L>>>13&7)||(L=l[r+24>>2]>>>10&7);eV:{eB:switch(L-1|0){case 4:if(8&d[r+24|0])break eV;case 0:e=rP(F,N,C),p[(F+(l[q>>2]<<2)|0)+228>>2]=P+e;break eW;case 2:e=rS(F,N,C),p[(L=F+228|0)+(l[q>>2]<<2)>>2]=w(D-e)-p[(L+(l[$>>2]<<2)|0)+288>>2];break eW;case 1:p[(L=F+228|0)+(l[q>>2]<<2)>>2]=P+w(w(a-p[(L+(l[$>>2]<<2)|0)+288>>2])*w(.5));break eW;case 3:break eB;default:break eW}e=rP(F,N,C),p[(F+(l[q>>2]<<2)|0)+228>>2]=P+e,e=p[(L=Y=F+(l[$>>2]<<3)|0)+572>>2];eT:{eI:switch(0|(L=l[L+576>>2])){case 0:case 3:break eT;default:break eI}if(X=p[Y+572>>2],!((0|L)!=1|X!=X)){if(e>>0>=2){S=a,e=p[F+516>>2],X=w(e+w(rP(F,U,C)+rS(F,U,C)));break eX}S=w(p[F+520>>2]+w(rP(F,N,C)+rS(F,N,C))),e=p[F+516>>2],X=a}eO:{eL:{if(!(X!=X|e!=e)){if(w(y(w(X-e)))>2])!=e)|S!=S)){if(!(w(y(w(S-e)))>2]=eo}if((0|f)==(0|(i=i+1|0)))break}if(L=(0|_)!=(0|j),_=_+1|0,i=f,!L)break}}_=r+516|0,i=(e=ro(r,2,r0,b))!=e,a=w(w(rZ(r,2,b)+rM(r,2))+w(rW(r,2,b)+rU(r,2)));e_:{if(!(i|a!=a)){e=eu(e,a);break e_}e=i?a:e}p[_>>2]=e,i=(e=ro(r,0,r2,o))!=e,a=w(w(rZ(r,0,b)+rM(r,0))+w(rW(r,0,b)+rU(r,0)));eF:{if(!(i|a!=a)){e=eu(e,a);break eF}e=i?a:e}p[r+520>>2]=e;eC:{eS:{eP:if(!rG||!((0|(i=l[r+24>>2]>>>20&3))==2|(0|rG)!=2)){if(i=(e=ro(r,U,rY,rC))!=e,a=w(w(rZ(r,U,b)+rM(r,U))+w(rW(r,U,b)+rU(r,U))),!(i|a!=a)){e=eu(e,a);break eS}e=i?a:e;break eS}if((0|rG)!=2|(0|i)!=2)break eC;i=(a=w(rh+Q))!=a,e=ro(r,U,rY,rC);eY:{if(!(i|e!=e)){e=es(a,e);break eY}e=i?e:a}if(!((i=e!=e)|rh!=rh)){e=eu(e,rh);break eS}e=i?rh:e}p[_+(l[r_>>2]<<2)>>2]=e}eU:{eM:{eH:if(!M||(f=(0|M)!=2,i=l[r+24>>2]>>>20&3,!(f|(0|i)==2))){if(i=(e=ro(r,N,w(rb+rX),rz))!=e,a=w(w(rZ(r,N,b)+rM(r,N))+w(rW(r,N,b)+rU(r,N))),!(i|a!=a)){e=eu(e,a);break eM}e=i?a:e;break eM}if(f|(0|i)!=2)break eU;i=(a=w(rb+K))!=a,e=ro(r,N,w(rb+rX),rz);eQ:{if(!(i|e!=e)){e=es(a,e);break eQ}e=i?e:a}if(!((i=e!=e)|rb!=rb)){e=eu(e,rb);break eM}e=i?rb:e}p[_+(l[$>>2]<<2)>>2]=e}ez:if(c){if(i=l[r+560>>2],F=l[r+556>>2],(786432&l[r+24>>2])==524288){for(f=rd>>>0<=1?1:rd,c=i-F>>2,i=0;L=0,L=i>>>0>>0?l[(i<<2)+F>>2]:L,(196608&l[L+24>>2])!=131072&&(Y=(L=L+228|0)+(l[q>>2]<<2)|0,j=l[$>>2]<<2,p[Y>>2]=w(p[j+_>>2]-p[Y>>2])-p[(L+j|0)+288>>2]),(0|f)!=(0|(i=i+1|0)););F=l[r+556>>2],i=l[r+560>>2]}if((0|i)!=(0|F))for(j=((U>>>0>1?rG:n)|0)!=0;;){c=l[F>>2];ej:if((4390912&l[c+24>>2])==131072){a=C,Q=J,d[l[r+568>>2]+21|0]&&(Q=p[r+520>>2],a=p[r+516>>2]),n=l[r+24>>2]>>>2&3;eD:{ex:{if((0|rf)==2){f=0,L=3;eJ:switch(n-2|0){case 0:break eD;case 1:break eJ;default:break ex}L=2;break eD}if(f=0,n>>>0<=1)break ex;L=n;break eD}L=n,f=rL}o=w(rP(c,2,a)+rS(c,2,a)),O=rP(c,0,a),S=rS(c,0,a),e=p[c+572>>2];eK:{eq:{e$:switch(0|(n=l[c+576>>2])){case 0:case 3:break eq;default:break e$}b=p[c+572>>2];e0:{if(!((0|n)!=1|b!=b)){if(X=e,!(e>2]-w(rM(r,2)+rU(r,2)))-w(rI(c,2,a)+rT(c,2,a))),a))!=e,b=w(w(rZ(c,2,a)+rM(c,2))+w(rW(c,2,a)+rU(c,2))),!(n|b!=b)){X=eu(e,b);break eK}X=n?b:e}S=w(O+S);e4:{e3:{e8:{e6:{e5:{e9:{e7:{Y=X!=X,b=p[c+580>>2];ar:{ae:{aa:switch(0|(n=l[c+584>>2])){case 0:case 3:break ae;default:break aa}e=p[c+580>>2];ai:{if(!((0|n)!=1|e!=e)){if(!((e=b)>2]-w(rM(r,0)+rU(r,0)))-w(rI(c,0,Q)+rT(c,0,Q))),Q))!=e,b=w(w(rZ(c,0,a)+rM(c,0))+w(rW(c,0,a)+rU(c,0))),!(n|b!=b)){e=eu(e,b);break ar}e=n?b:e}if((0|Y)==(e!=e|0)||(O=p[c+224>>2])!=O)break e5;if(X!=X){X=w(w(w(e-S)*O)+o);break e5}if(e==e)break e5;break e9}if((O=p[c+224>>2])!=O)break e6}e=w(S+w(w(X-o)/O))}if(X!=X)break e8;if(e==e)break e4}n=0;break e3}n=1}Y=a>w(0),b=(x=n&j&L>>>0<2)&&Y?a:X,n^=1,rt(c,b,e,rf,x&&Y?2:n,e==e,b,e,0,6,A,h,v,m),X=w(p[c+516>>2]+eW(c,2,a)),e=w(p[c+520>>2]+eW(c,0,a))}rt(c,X,e,rf,1,1,X,e,1,1,A,h,v,m),o=(n=L>>>0<2)?a:Q,b=d[(Y=l[r+568>>2])+22|0]?o:a;ab:{ao:{ak:if(!(!r6(c,L)||r5(c,L))){x=l[(L<<2)+4252>>2]<<2,e=w(w(w(w(p[x+_>>2]-p[(c+x|0)+516>>2])-rU(r,L))-rS(c,L,b))-rT(c,L,n?Q:a));break ao}if(!(r5(c,L)|(112&l[r+24>>2])!=16)){n=l[(L<<2)+4252>>2]<<2,e=w(w(p[n+_>>2]-p[(n+c|0)+516>>2])*w(.5));break ao}if(!(r5(c,L)|(112&l[r+24>>2])!=32)){n=l[(L<<2)+4252>>2]<<2,e=w(p[n+_>>2]-p[(n+c|0)+516>>2]);break ao}if(!d[Y+21|0]||!r5(c,L))break ab;e=p[_+(l[(L<<2)+4252>>2]<<2)>>2],e=w(w(rI(c,L,e)+rM(r,L))+rP(c,L,e))}p[(c+(l[(L<<2)+4220>>2]<<2)|0)+228>>2]=e}ac:{au:if(!(!r6(c,f)||r5(c,f))){n=l[(f<<2)+4252>>2]<<2,e=w(w(w(w(p[n+_>>2]-p[(n+c|0)+516>>2])-rU(r,f))-rS(c,f,b))-rT(c,f,o));break ac}as:if(!r5(c,f)){if((n=l[c+24>>2]>>>13&7)||(n=l[r+24>>2]>>>10&7),(0|n)!=2)break as;n=l[(f<<2)+4252>>2]<<2,e=w(w(p[n+_>>2]-p[(n+c|0)+516>>2])*w(.5));break ac}aA:if(!r5(c,f)){L=l[c+24>>2]>>>13&7,n=l[r+24>>2],L=L||n>>>10&7;al:{if(!((0|L)!=5|8&n)){if((786432&n)==524288)break al;break aA}if(((786432&n)==524288|0)==((0|L)==3|0))break aA}n=l[(f<<2)+4252>>2]<<2,e=w(p[n+_>>2]-p[(n+c|0)+516>>2]);break ac}if(!d[Y+21|0]||!r5(c,f))break ej;e=p[_+(l[(f<<2)+4252>>2]<<2)>>2],e=w(w(rI(c,f,e)+rM(r,f))+rP(c,f,e))}p[(c+(l[(f<<2)+4220>>2]<<2)|0)+228>>2]=e}if((0|(F=F+4|0))==(0|i))break}if(!((N|U)&1))break ez;for(f=1&N,c=1&U,A=rd>>>0<=1?1:rd,h=(N<<2)+4236|0,v=(U<<2)+4236|0,m=l[r+556>>2],N=l[r+560>>2]-m>>2,i=0;;){if((0|i)==(0|N))break re;r=l[m+(i<<2)>>2];ad:if(!(64&d[r+26|0])){if(c&&(n=r+228|0,L=l[r_>>2]<<2,p[n+(l[v>>2]<<2)>>2]=w(p[L+_>>2]-p[(n+L|0)+288>>2])-p[n+(l[rA>>2]<<2)>>2]),!f)break ad;r=r+228|0,n=l[$>>2]<<2,p[r+(l[h>>2]<<2)>>2]=w(p[n+_>>2]-p[(r+n|0)+288>>2])-p[r+(l[q>>2]<<2)>>2]}if((0|A)==(0|(i=i+1|0)))break}}if(!ri)break r;rE(ri);break r}T(),k()}re=I+384|0}function rn(){var r=0,e=0;B(6952,6953,6954,0,4284,17,4287,0,4287,0,2528,4289,18),l[(r=eo(8))>>2]=8,l[r+4>>2]=1,g(6952,2873,6,4304,4328,19,0|r,1),B(6956,6957,6958,6952,4284,20,4284,21,4284,22,2e3,4289,23),l[(r=eo(4))>>2]=24,g(6956,2358,2,4336,4344,25,0|r,0),W(6952,1397,2,4348,4356,26,27),W(6952,2978,3,4436,4448,28,29),B(6976,6977,6978,0,4284,30,4287,0,4287,0,2544,4289,31),l[(r=eo(8))>>2]=8,l[r+4>>2]=1,g(6976,3244,2,4456,4344,32,0|r,1),B(6979,6980,6981,6976,4284,33,4284,34,4284,35,2023,4289,36),l[(r=eo(4))>>2]=37,g(6979,2358,2,4464,4344,38,0|r,0),W(6976,1397,2,4472,4356,39,40),W(6976,2978,3,4436,4448,28,41),B(6982,6983,6984,0,4284,42,4287,0,4287,0,2812,4289,43),P(6982,1,4520,4284,44,45),W(6982,2866,1,4520,4284,44,45),W(6982,1128,2,4524,4344,46,47),l[(r=eo(8))+4>>2]=0,l[r>>2]=48,g(6982,3185,4,4544,4560,49,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=50,g(6982,1980,3,4568,4580,51,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=52,g(6982,1951,3,4588,4600,53,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=54,g(6982,1799,3,4588,4600,53,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=55,g(6982,3215,3,4608,4448,56,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=57,g(6982,1925,2,4620,4356,58,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=59,g(6982,1784,2,4620,4356,58,0|r,0),_(6985,1270,4628,60,4289,61),eh(1731,0),eh(1611,8),eh(2144,16),eh(2454,24),eh(2560,32),eh(1617,40),L(6985),_(6955,2849,4628,62,4289,63),ed(2560,0),ed(1617,8),L(6955),_(6986,2860,4628,64,4289,65),l[(r=eo(4))>>2]=8,l[(e=eo(4))>>2]=8,X(6986,2854,7018,4630,66,0|r,7018,4634,67,0|e),l[(r=eo(4))>>2]=0,l[(e=eo(4))>>2]=0,X(6986,1606,7011,4356,68,0|r,7011,4600,69,0|e),L(6986),B(6987,6988,6989,0,4284,70,4287,0,4287,0,2973,4289,71),P(6987,1,4640,4284,72,73),W(6987,1592,1,4640,4284,72,73),W(6987,2802,2,4644,4356,74,75),W(6987,1128,2,4652,4344,76,77),l[(r=eo(8))+4>>2]=0,l[r>>2]=78,g(6987,1752,2,4652,4344,79,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=80,g(6987,2956,3,4660,4600,81,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=82,g(6987,2881,3,4672,4600,83,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=84,g(6987,2334,4,4688,4704,85,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=86,g(6987,1484,4,4688,4704,85,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=87,g(6987,1355,3,4672,4600,83,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=88,g(6987,1817,3,4672,4600,83,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=89,g(6987,2823,3,4672,4600,83,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=90,g(6987,2378,3,4672,4600,83,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=91,g(6987,2163,3,4672,4600,83,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=92,g(6987,1319,3,4672,4600,83,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=93,g(6987,2412,4,4688,4704,85,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=94,g(6987,1503,4,4688,4704,85,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=95,g(6987,2235,3,4672,4600,83,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=96,g(6987,1219,3,4672,4600,83,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=97,g(6987,1136,3,4672,4600,83,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=98,g(6987,1158,3,4712,4634,99,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=100,g(6987,1845,3,4712,4634,99,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=101,g(6987,1464,3,4712,4634,99,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=102,g(6987,2218,2,4652,4344,79,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=103,g(6987,1195,3,4712,4634,99,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=104,g(6987,2500,3,4712,4634,99,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=105,g(6987,2590,3,4712,4634,99,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=106,g(6987,1539,3,4712,4634,99,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=107,g(6987,2249,2,4652,4344,79,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=108,g(6987,1650,3,4712,4634,99,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=109,g(6987,1427,3,4712,4634,99,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=110,g(6987,2204,2,4652,4344,79,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=111,g(6987,2608,3,4712,4634,99,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=112,g(6987,1555,3,4712,4634,99,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=113,g(6987,1670,3,4712,4634,99,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=114,g(6987,1444,3,4712,4634,99,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=115,g(6987,2566,3,4712,4634,99,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=116,g(6987,1520,3,4712,4634,99,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=117,g(6987,1624,3,4712,4634,99,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=118,g(6987,1407,3,4712,4634,99,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=119,g(6987,2304,3,4712,4634,99,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=120,g(6987,2092,4,4688,4704,85,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=121,g(6987,2718,4,4688,4704,85,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=122,g(6987,1574,4,4688,4704,85,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=123,g(6987,2187,4,4688,4704,85,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=124,g(6987,2897,2,4724,4356,125,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=126,g(6987,2346,3,4732,4448,127,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=128,g(6987,1371,2,4724,4356,125,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=129,g(6987,1831,2,4724,4356,125,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=130,g(6987,2836,2,4724,4356,125,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=131,g(6987,2395,2,4724,4356,125,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=132,g(6987,2175,2,4724,4356,125,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=133,g(6987,1337,2,4724,4356,125,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=134,g(6987,2422,3,4732,4448,127,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=135,g(6987,1858,2,4744,4356,136,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=137,g(6987,1207,2,4752,4630,138,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=139,g(6987,2514,2,4752,4630,138,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=140,g(6987,2599,2,4744,4356,136,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=141,g(6987,1660,2,4744,4356,136,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=142,g(6987,2620,2,4744,4356,136,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=143,g(6987,1683,2,4744,4356,136,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=144,g(6987,2578,2,4744,4356,136,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=145,g(6987,1637,2,4744,4356,136,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=146,g(6987,2319,2,4752,4630,138,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=147,g(6987,2102,3,4760,4772,148,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=149,g(6987,1231,2,4724,4356,125,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=150,g(6987,1147,2,4724,4356,125,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=151,g(6987,2729,3,4732,4448,127,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=152,g(6987,2194,3,4780,4792,153,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=154,g(6987,2985,4,4800,4560,155,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=156,g(6987,3006,3,4816,4600,157,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=158,g(6987,1292,2,4828,4356,159,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=160,g(6987,1387,2,4836,4356,161,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=162,g(6987,2997,3,4844,4448,163,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=164,g(6987,2913,2,4856,4356,165,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=166,g(6987,2933,3,4864,4600,167,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=168,g(6987,3308,3,4876,4600,169,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=170,g(6987,3306,2,4652,4344,79,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=171,g(6987,3325,3,4888,4600,172,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=173,g(6987,3323,2,4652,4344,79,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=174,g(6987,1118,2,4652,4344,79,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=175,g(6987,1110,2,4900,4356,176,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=177,g(6987,1243,5,4912,4932,178,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=179,g(6987,1736,2,4752,4630,138,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=180,g(6987,1714,2,4752,4630,138,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=181,g(6987,2148,2,4752,4630,138,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=182,g(6987,2461,2,4752,4630,138,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=183,g(6987,2632,2,4752,4630,138,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=184,g(6987,1696,2,4752,4630,138,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=185,g(6987,1259,2,4940,4356,186,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=187,g(6987,2432,3,4760,4772,148,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=188,g(6987,2112,3,4760,4772,148,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=189,g(6987,2740,3,4760,4772,148,0|r,0)}function rf(r,e,a,i,n,f,t){var b=0,o=0,k=0,c=0,u=0,h=0,v=0,p=0,w=0,y=0,E=0,G=0,R=0,g=0,Z=0,W=0,V=0,B=0,T=0,I=0;re=k=re-80|0,l[k+76>>2]=e,B=k+55|0,R=k+56|0;r:{e:{a:{i:{n:for(;;){if(c=e,(2147483647^w)<(0|b))break i;w=b+w|0;f:{t:{b:{if(o=d[0|(b=c)])for(;;){o:{e=255&o;k:{if(!e){e=b;break k}if((0|e)!=37)break o;for(o=b;;){if(37!=d[o+1|0]){e=o;break k}if(b=b+1|0,u=d[o+2|0],o=e=o+2|0,(0|u)!=37)break}}if((0|(b=b-c|0))>(0|(V=2147483647^w)))break i;if(r&&rF(r,c,b),b)continue n;l[k+76>>2]=e,b=e+1|0,E=-1,!eO(o=s[e+1|0])|36!=d[e+2|0]||(E=o-48|0,g=1,b=e+3|0),l[k+76>>2]=b,p=0,e=(o=s[0|b])-32|0;c:{if(e>>>0>31){u=b;break c}if(u=b,!(75913&(e=1<>2]=u,p|=e,(e=(o=s[b+1|0])-32|0)>>>0>=32)break c;if(b=u,!(75913&(e=1<>2]=10,o=u+3|0,g=1,y=l[((s[u+1|0]<<3)+i|0)-384>>2];break s}if(g)break b;if(o=u+1|0,!r){l[k+76>>2]=o,g=0,y=0;break u}e=l[a>>2],l[a>>2]=e+4,g=0,y=l[e>>2]}if(l[k+76>>2]=o,(0|y)>=0)break u;y=0-y|0,p|=8192;break u}if((0|(y=ei(k+76|0)))<0)break i;o=l[k+76>>2]}b=0,v=-1;A:{if(46!=d[0|o]){e=o,G=0;break A}if(42==d[o+1|0]){e=s[o+2|0];l:{if(!(!eO(e)|36!=d[o+3|0])){l[((e<<2)+n|0)-192>>2]=10,e=o+4|0,v=l[((s[o+2|0]<<3)+i|0)-384>>2];break l}if(g)break b;if(e=o+2|0,v=0,!r)break l;o=l[a>>2],l[a>>2]=o+4,v=l[o>>2]}l[k+76>>2]=e,G=(-1^v)>>>31|0;break A}l[k+76>>2]=o+1,v=ei(k+76|0),e=l[k+76>>2],G=1}for(;;){if(h=b,u=28,Z=e,(b=s[0|e])-123>>>0<4294967238)break a;if(e=Z+1|0,!((b=d[(b+N(h,58)|0)+4895|0])-1>>>0<8))break}l[k+76>>2]=e;d:{h:{if((0|b)!=27){if(!b)break a;if((0|E)>=0){l[(E<<2)+n>>2]=b,o=l[(b=(E<<3)+i|0)+4>>2],l[k+64>>2]=l[b>>2],l[k+68>>2]=o;break h}if(!r)break f;rN(k- -64|0,b,a,t);break d}if((0|E)>=0)break a}if(b=0,!r)continue n}o=-65537&p,p=8192&p?o:p,E=0,W=1166,u=R;v:{p:{m:{N:{w:{y:{E:{G:{R:{g:{Z:{W:{V:{B:{T:{I:switch(b=s[0|Z],(b=h&&(15&b)==3?-33&b:b)-88|0){case 11:break v;case 9:case 13:case 14:case 15:break p;case 27:break E;case 12:case 17:break g;case 23:break Z;case 0:case 32:break W;case 24:break V;case 22:break B;case 29:break T;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 10:case 16:case 18:case 19:case 20:case 21:case 25:case 26:case 28:case 30:case 31:break t;default:break I}X:switch(b-65|0){case 0:case 4:case 5:case 6:break p;case 2:break w;case 1:case 3:break t;default:break X}if((0|b)==83)break y;break t}o=l[k+64>>2],h=l[k+68>>2],b=1166;break R}b=0;O:switch(255&h){case 0:case 1:case 6:l[l[k+64>>2]>>2]=w;continue n;case 2:c=l[k+64>>2],l[c>>2]=w,l[c+4>>2]=w>>31;continue n;case 3:A[l[k+64>>2]>>1]=w;continue n;case 4:s[l[k+64>>2]]=w;continue n;case 7:break O;default:continue n}c=l[k+64>>2],l[c>>2]=w,l[c+4>>2]=w>>31;continue n}v=v>>>0<=8?8:v,p|=8,b=120}if(c=R,o=l[k+64>>2],h=l[k+68>>2],o|h)for(T=32&b;s[0|(c=c-1|0)]=T|d[(15&o)+5424|0],I=!h&o>>>0>15|(0|h)!=0,Z=h,h=h>>>4|0,o=(15&Z)<<28|o>>>4,I;);if(!(8&p)|!(l[k+64>>2]|l[k+68>>2]))break G;W=(b>>>4|0)+1166|0,E=2;break G}if(b=R,h=c=l[k+68>>2],o=l[k+64>>2],c|o)for(;s[0|(b=b-1|0)]=7&o|48,Z=!h&o>>>0>7|(0|h)!=0,h=(c=h)>>>3|0,o=(7&c)<<29|o>>>3,Z;);if(c=b,!(8&p))break G;v=(0|(b=R-c|0))<(0|v)?v:b+1|0;break G}if(o=l[k+64>>2],h=b=l[k+68>>2],(0|b)<0){h=c=0-(h+((0|o)!=0)|0)|0,o=0-o|0,l[k+64>>2]=o,l[k+68>>2]=c,E=1,b=1166;break R}if(2048&p){E=1,b=1167;break R}b=(E=1&p)?1168:1166}W=b,c=rK(o,h,R)}if((0|v)<0?G:0)break i;if(p=G?-65537&p:p,b=l[k+64>>2],o=l[k+68>>2],!((b|o)!=0|v)){c=R,v=0;break t}v=(0|(b=!(b|o)+(R-c|0)|0))<(0|v)?v:b;break t}p=0,u=(0|(h=G=v>>>0>=2147483647?2147483647:v))!=0;L:{_:{b=c=(b=l[k+64>>2])||4208;F:{C:{S:if(!(!(3&b)|!h))for(;;){if(!(p=d[0|b]))break C;if(u=(0|(h=h-1|0))!=0,!(3&(b=b+1|0)))break S;if(!h)break}if(!u)break _;P:{if(!(!d[0|b]|h>>>0<4))for(;;){if((-1^(u=l[b>>2]))&u-16843009&-2139062144)break P;if(b=b+4|0,!((h=h-4|0)>>>0>3))break}if(!h)break _}u=0;break F}u=1}for(;;){if(!u){p=d[0|b],u=1;continue}if(!p)break L;if(b=b+1|0,!(h=h-1|0))break _;u=0}}b=0}if(u=(b=b?b-c|0:G)+c|0,(0|v)>=0){p=o,v=b;break t}if(p=o,v=b,d[0|u])break i;break t}if(v){o=l[k+64>>2];break N}b=0,er(r,32,y,0,p);break m}l[k+12>>2]=0,l[k+8>>2]=l[k+64>>2],o=k+8|0,l[k+64>>2]=o,v=-1}b=0;Y:{for(;;){if(!(c=l[o>>2]))break Y;if(!((u=(0|(c=el(k+4|0,c)))<0)|c>>>0>v-b>>>0)){if(o=o+4|0,v>>>0>(b=b+c|0)>>>0)continue;break Y}break}if(u)break e}if(u=61,(0|b)<0)break a;if(er(r,32,y,b,p),!b){b=0;break m}for(u=0,o=l[k+64>>2];;){if(!(c=l[o>>2])||(u=(c=el(k+4|0,c))+u|0)>>>0>b>>>0)break m;if(rF(r,k+4|0,c),o=o+4|0,!(b>>>0>u>>>0))break}}er(r,32,y,b,8192^p),b=(0|b)<(0|y)?y:b;continue n}if((0|v)<0?G:0)break i;if(u=61,(0|(b=0|eY[0|f](r,m[k+64>>3],y,v,p,b)))>=0)continue n;break a}s[k+55|0]=l[k+64>>2],v=1,c=B,p=o;break t}o=d[b+1|0],b=b+1|0}if(r)break r;if(!g)break f;for(b=1;;){if(r=l[(b<<2)+n>>2]){if(rN((b<<3)+i|0,r,a,t),w=1,(0|(b=b+1|0))!=10)continue;break r}break}if(w=1,b>>>0>=10)break r;for(;;){if(l[(b<<2)+n>>2])break b;if((0|(b=b+1|0))==10)break}break r}u=28;break a}if((0|(v=(0|v)>(0|(h=u-c|0))?v:h))>(2147483647^E))break i;if(u=61,(0|V)<(0|(b=(0|(o=v+E|0))<(0|y)?y:o)))break a;er(r,32,b,o,p),rF(r,W,E),er(r,48,b,o,65536^p),er(r,48,v,h,0),rF(r,c,h),er(r,32,b,o,8192^p);continue}break}w=0;break r}u=61}l[1761]=u}w=-1}return re=k+80|0,w}function rt(r,e,a,i,n,f,t,b,o,k,c,u,A,h){var m=w(0),E=0,G=0,R=0,g=w(0),Z=0,W=0,V=0,B=w(0);r:((l[r+312>>2]!=(0|h)?4&d[r+4|0]:0)||(Z=0,l[r+316>>2]!=(0|i)))&&(l[r+540>>2]=-1082130432,l[r+544>>2]=-1082130432,l[r+532>>2]=0,l[r+536>>2]=0,l[r+524>>2]=-1082130432,l[r+528>>2]=-1082130432,l[r+320>>2]=0,Z=1);W=A+1|0;e:{a:{i:{n:{if(l[r+8>>2]){if(g=rP(r,2,t),B=rS(r,2,t),m=w(rP(r,0,t)+rS(r,0,t)),A=r+524|0,g=w(g+B),rA(n,e,f,a,l[r+532>>2],p[A>>2],l[r+536>>2],p[r+528>>2],p[r+540>>2],p[r+544>>2],g,m,c))break i;if(!(G=l[r+320>>2]))break n;for(E=r+324|0;;){if(rA(n,e,f,a,l[(A=E+N(R,24)|0)+8>>2],p[A>>2],l[A+12>>2],p[A+4>>2],p[A+16>>2],p[A+20>>2],g,m,c))break i;if((0|G)==(0|(R=R+1|0)))break}break n}if(!o){if(!(V=l[r+320>>2]))break n;for(G=r+324|0;;){m=p[(A=(E=N(R,24))+G|0)>>2];f:{t:{if(!(m!=m|e!=e)){if(w(y(w(m-e)))>2];b:{if(!(m!=m|a!=a)){if(w(y(w(m-a)))>2]!=(0|n))break f;if(l[E+12>>2]==(0|f))break i}if((0|V)==(0|(R=R+1|0)))break}break n}m=p[(A=r+524|0)>>2];o:{if(!(m!=m|e!=e)){if(w(y(w(m-e)))>2]==(0|n)&&l[r+536>>2]==(0|f)?A:0,A=(m=p[r+528>>2])!=m,G=a!=a;k:{if(A|G){A&=G;break k}A=w(y(w(m-a)))>2]=i;break a}if(!(!A|Z)){p[r+516>>2]=p[A+16>>2],p[r+520>>2]=p[A+20>>2],l[(i=(o?12:16)+u|0)>>2]=l[i>>2]+1,i=0;break e}if(ri(r,e,a,i,n,f,t,b,o,c,u,W,h,k),l[r+316>>2]=i,i=1,A)break e}(i=(A=l[r+320>>2])+1|0)>>>0>v[u+8>>2]&&(l[u+8>>2]=i),(0|A)==8&&(l[r+320>>2]=0,A=0),o?i=r+524|0:(l[r+320>>2]=A+1,i=(N(A,24)+r|0)+324|0),l[i+12>>2]=f,l[i+8>>2]=n,p[i+4>>2]=a,p[i>>2]=e,p[i+16>>2]=p[r+516>>2],p[i+20>>2]=p[r+520>>2],i=1}c:if(o){if(n=l[r+520>>2],l[r+244>>2]=l[r+516>>2],l[r+248>>2]=n,f=1|(n=d[r+4|0]),s[r+4|0]=f,!(4&n))break c;s[r+4|0]=251&f}return l[r+312>>2]=h,i}function rb(r){r|=0;var e=0,a=0,i=0,n=0,f=0,t=0,b=0,o=0,k=0,c=0,u=0;b=8;r:if(!(r>>>0>4294967239)){e:{for(;;){b=b>>>0<=8?8:b,f=e=l[1731],n=l[1730],r=r>>>0<=8?8:r+3&-4;a:{if(r>>>0<=127){t=(r>>>3|0)-1|0;break a}if(i=E(r),t=((r>>>29-i^4)-(i<<2)|0)+110|0,r>>>0<=4095)break a;t=(i=((r>>>30-i^2)-(i<<1)|0)+71|0)>>>0>=63?63:i}if(a=31&t,(63&t)>>>0>=32?(i=0,e=e>>>a|0):(i=e>>>a|0,e=((1<>>a),e|i){for(;;){n=i;i:{if(e|i){o=(a=i-1|0)+1|0,f=a,f=(0|(a=e-1|0))!=-1?o:f,a=63-(i=(0|(i=E(i^f)))==32?E(e^a)+32|0:i)|0,ra=0-(i>>>0>63)|0;break i}ra=0,a=64}a=31&(f=a),(63&f)>>>0>=32?(i=0,e=n>>>a|0):(i=n>>>a|0,e=((1<>>a),o=e,e=l[(a=(t=f+t|0)<<4)+5896>>2],f=a+5888|0;n:{if((0|e)!=(0|f)){if(n=rp(e,b,r))break r;n=l[e+4>>2],l[n+8>>2]=l[e+8>>2],l[l[e+8>>2]+4>>2]=n,l[e+8>>2]=f,n=a+5892|0,l[e+4>>2]=l[n>>2],l[n>>2]=e,l[l[e+4>>2]+8>>2]=e,t=t+1|0,e=(1&i)<<31|o>>>1,i=i>>>1|0;break n}k=l[1731],n=31&(e=f=63&t),e>>>0>=32?(e=0,a=-1>>>n|0):a=(e=-1>>>n|0)|(1<>>0>=32?(e=a<>>32-n|e<>>0>=32?(e=-1<>>32-e,u=-2&a,a=31&f,f>>>0>=32?(f=0,e=e>>>a|0):(f=e>>>a|0,e=((1<>>a),e|=c,ra=n|f,l[1730]=l[1730]&e,l[1731]=ra&k,e=1^o}if(!(e|i))break}f=l[1731],n=l[1730]}f:{if(n|f){i=l[(e=(a=63-((0|(i=E(f)))==32?E(n)+32|0:i)|0)<<4)+5896>>2];t:if(!(!f&n>>>0<1073741824)){if(t=99,(0|(e=e+5888|0))==(0|i))break t;for(;;){if(!t)break t;if(n=rp(i,b,r))break r;if(t=t-1|0,i=l[i+8>>2],(0|e)==(0|i))break}i=e}if(rd(r+48|0))break f;if(!i||(0|(e=(a<<4)+5888|0))==(0|i))break e;for(;;){if(n=rp(i,b,r))break r;if(i=l[i+8>>2],(0|e)==(0|i))break}break e}if(!rd(r+48|0))break e}if(n=0,b-1&b)break r;if(!(r>>>0<=4294967239))break}break r}n=0}return 0|n}function ro(r,e,a,i){var n,f,b,o,k=w(0),c=w(0),s=0,A=w(0);r:{e:{a:{i:{n:{f:{if(e>>>0<=1){c=p[r+212>>2],e=l[r+212>>2];t:if((0|e)!=2139156720){if((0|e)==2140081935)break f;s=4276;b:{if((0|e)!=2141891242){if(c==c)break b;s=4268}switch(k=p[s>>2],c=w(NaN),l[s+4>>2]-1|0){case 0:break f;case 1:break t;default:break n}}if(n=(-1073741825&e)+536870912|0,t[2]=n,k=u(),!(1073741824&e))break f}c=w(w(k*i)*w(.009999999776482582));break n}c=p[r+208>>2];o:{k:{e=l[r+208>>2];c:if((0|e)!=2139156720){if((0|e)==2140081935)break k;s=4276;u:{if((0|e)!=2141891242){if(c==c)break u;s=4268}switch(k=p[s>>2],c=w(NaN),l[s+4>>2]-1|0){case 0:break k;case 1:break c;default:break o}}if(f=(-1073741825&e)+536870912|0,t[2]=f,k=u(),!(1073741824&e))break k}c=w(w(k*i)*w(.009999999776482582));break o}c=k}k=w(0),A=p[r+216>>2],r=l[r+216>>2];s:if((0|r)!=2139156720){if((0|r)==2140081935)break a;e=4276;A:{if((0|r)!=2141891242){if(A==A)break A;e=4268}switch(k=p[e>>2],l[e+4>>2]-1|0){case 1:break s;case 0:break i;default:break e}}if(b=(-1073741825&r)+536870912|0,t[2]=b,k=u(),!(1073741824&r))break i}k=w(w(k*i)*w(.009999999776482582));break i}c=k}k=w(0),A=p[r+220>>2],r=l[r+220>>2];l:if((0|r)!=2139156720){if((0|r)==2140081935)break a;e=4276;d:{if((0|r)!=2141891242){if(A==A)break d;e=4268}switch(k=p[e>>2],l[e+4>>2]-1|0){case 1:break l;case 0:break i;default:break e}}if(o=(-1073741825&r)+536870912|0,t[2]=o,k=u(),!(1073741824&r))break i}k=w(w(k*i)*w(.009999999776482582))}if(!(k>=w(0)))break e}if(a>k)break r}if(!(c>=w(0)))return a;k=a>2]=0,l[r+12>>2]=0,A[r+4>>1]=1,l[r>>2]=0,l[r+16>>2]=0,l[r+20>>2]=0,l[r+24>>2]=0,l[r+36>>2]=2143289344,l[r+40>>2]=2141891242,l[r+28>>2]=2143289344,l[r+32>>2]=2143289344,i=ry(r+44|0,0,36);l[i+(a<<2)>>2]=2143289344,(0|(a=a+1|0))!=9;);for(a=0,i=ry(r+80|0,0,36);l[i+(a<<2)>>2]=2143289344,(0|(a=a+1|0))!=9;);for(a=0,i=ry(r+116|0,0,36);l[i+(a<<2)>>2]=2143289344,(0|(a=a+1|0))!=9;);for(a=0,i=ry(r+152|0,0,36);l[i+(a<<2)>>2]=2143289344,(0|(a=a+1|0))!=9;);for(a=0,l[r+196>>2]=0,l[(i=r+188|0)>>2]=0,l[i+4>>2]=0;l[i+(a<<2)>>2]=2143289344,(0|(a=a+1|0))!=3;);for(l[r+24>>2]=4224,l[r+224>>2]=2143289344,l[r+216>>2]=2143289344,l[r+220>>2]=2143289344,l[r+208>>2]=2143289344,l[r+212>>2]=2143289344,l[r+200>>2]=2141891242,l[r+204>>2]=2141891242,ry(r+228|0,0,288),l[r+244>>2]=2143289344,l[r+248>>2]=2143289344,ry(r+252|0,0,49),l[r+308>>2]=2143289344,i=r+516|0,a=r+324|0;l[a+16>>2]=-1082130432,l[a+20>>2]=-1082130432,l[a+8>>2]=0,l[a+12>>2]=0,l[a>>2]=-1082130432,l[a+4>>2]=-1082130432,(0|i)!=(0|(a=a+24|0)););return l[r+548>>2]=0,l[r+552>>2]=0,l[r+516>>2]=2143289344,l[r+520>>2]=2143289344,l[r+572>>2]=2143289344,l[r+576>>2]=0,l[r+568>>2]=e,l[r+540>>2]=-1082130432,l[r+544>>2]=-1082130432,l[r+532>>2]=0,l[r+536>>2]=0,l[r+524>>2]=-1082130432,l[r+528>>2]=-1082130432,l[r+556>>2]=0,l[r+560>>2]=0,l[r+564>>2]=0,l[r+580>>2]=2143289344,l[r+584>>2]=0,d[e+10|0]&&(l[r+24>>2]=4616,s[r+4|0]=128|d[r+4|0]),r}function rc(r){var e,a,i=0,n=0,f=w(0),b=w(0),o=w(0),k=0,c=0,s=0,A=0,d=0,h=0,v=0,m=0,N=0;for(l[(k=re-16|0)+8>>2]=0,l[k+12>>2]=1,d=r+200|0,h=r+572|0,v=r+208|0,m=r+216|0,r=0;;){N=r,c=(A=l[(k+8|0)+(r<<2)>>2])<<2,f=p[(r=m+c|0)>>2];r:{e:{a:{i:{n:{f:if(!(!((s=(0|(i=l[r>>2]))==2139156720)|(0|i)==2140081935|(0|i)==2141891242)&f!=f)){b=p[(r=c+v|0)>>2],n=l[r>>2];t:{b:{if((0|n)!=2139156720){if(o=w(NaN),r=3,(0|n)==2141891242)break t;if((0|n)!=2140081935)break b;o=w(0),r=1;break t}o=w(0),r=2;break t}if(r=0,b!=b)break t;e=(-1073741825&n)+536870912|0,t[2]=e,o=u(),r=1073741824&n?2:1}n=r;o:{k:{if(!s){if(b=w(NaN),r=3,(0|i)==2141891242)break o;if((0|i)!=2140081935)break k;b=w(0),r=1;break o}b=w(0),r=2;break o}if(r=0,f!=f)break o;a=(-1073741825&i)+536870912|0,t[2]=a,b=u(),r=1073741824&i?2:1}if((0|n)!=(0|r)|!(!r|b!=b&o!=o|w(y(w(b-o)))>2],(0|(i=l[i>>2]))==2139156720)break n;if((0|i)==2140081935)break e;if((0|i)==2141891242)break a;if(f!=f)break i;r=(-1073741825&i)+536870912|0,i=1073741824&i?2:1;break r}i=2;break r}r=2143289344,i=0;break r}r=2143289344,i=3;break r}i=1}if(l[(n=(A<<3)+h|0)+4>>2]=i,l[n>>2]=r,r=1,1&N)break}}function ru(r,e,a){var i=0,n=0,f=0;if(a>>>0>=512)return x(0|r,0|e,0|a),r;n=r+a|0;r:{if(!((r^e)&3)){e:{if(!(3&r)||!a){a=r;break e}for(a=r;;){if(s[0|a]=d[0|e],e=e+1|0,!(3&(a=a+1|0)))break e;if(!(a>>>0>>0))break}}i=-4&n;a:if(!(i>>>0<64)&&!((f=i+-64|0)>>>0>>0))for(;l[a>>2]=l[e>>2],l[a+4>>2]=l[e+4>>2],l[a+8>>2]=l[e+8>>2],l[a+12>>2]=l[e+12>>2],l[a+16>>2]=l[e+16>>2],l[a+20>>2]=l[e+20>>2],l[a+24>>2]=l[e+24>>2],l[a+28>>2]=l[e+28>>2],l[a+32>>2]=l[e+32>>2],l[a+36>>2]=l[e+36>>2],l[a+40>>2]=l[e+40>>2],l[a+44>>2]=l[e+44>>2],l[a+48>>2]=l[e+48>>2],l[a+52>>2]=l[e+52>>2],l[a+56>>2]=l[e+56>>2],l[a+60>>2]=l[e+60>>2],e=e- -64|0,f>>>0>=(a=a- -64|0)>>>0;);if(a>>>0>=i>>>0)break r;for(;l[a>>2]=l[e>>2],e=e+4|0,i>>>0>(a=a+4|0)>>>0;);break r}if(n>>>0<4||(i=n-4|0)>>>0>>0){a=r;break r}for(a=r;s[0|a]=d[0|e],s[a+1|0]=d[e+1|0],s[a+2|0]=d[e+2|0],s[a+3|0]=d[e+3|0],e=e+4|0,i>>>0>=(a=a+4|0)>>>0;);}if(a>>>0>>0)for(;s[0|a]=d[0|e],e=e+1|0,(0|n)!=(0|(a=a+1|0)););return r}function rs(r,e,a,i,n){var f,b,o=w(0),k=0,c=w(0),s=w(0),A=0,d=0,h=w(0),v=w(0),m=0;if(!(d=(c=w(a-i))!=c)){a=w(0),o=p[(k=(e<<2)+r|0)+208>>2];r:{e:{k=l[k+208>>2];a:{i:if((0|k)!=2139156720){if((0|k)==2140081935)break e;A=4276;n:{if((0|k)!=2141891242){if(o==o)break n;A=4268}switch(a=p[A>>2],l[A+4>>2]-1|0){case 0:break a;case 1:break i;default:break r}}if(f=(-1073741825&k)+536870912|0,t[2]=f,a=u(),!(1073741824&k))break a}a=w(w(a*n)*w(.009999999776482582))}if(a==a)break e;break r}s=w(a-i)}a=w(0),o=p[(r=(e<<2)+r|0)+216>>2];f:{t:{e=l[r+216>>2];b:{o:if((0|e)!=2139156720){if((0|e)==2140081935)break t;r=4276;k:{if((0|e)!=2141891242){if(o==o)break k;r=4268}switch(a=p[r>>2],o=w(34028234663852886e22),l[r+4>>2]-1|0){case 0:break b;case 1:break o;default:break f}}if(b=(-1073741825&e)+536870912|0,t[2]=b,a=u(),!(1073741824&e))break b}a=w(w(a*n)*w(.009999999776482582))}if(a==a)break t;o=w(34028234663852886e22);break f}o=w(a-i)}if(h=c,v=es(c,o),!((r=(a=o!=o|d?h:v)!=a)|s!=s))return eu(a,s);c=r?s:a}return c}function rA(r,e,a,i,n,f,t,b,o,k,c,u,s){var A=w(0),l=w(0),d=0,h=0,v=w(0),m=w(0),N=w(0),E=0,G=0;if(o>2],l=b,A==w(0))break r;m=rH(+e,E=+A,0,0),N=rH(+i,E,0,0),v=rH(+f,E,0,0),l=rH(+b,E,0,0)}A=l,s=0;e:if((0|r)==(0|n)){if((G=v!=v)|(s=m!=m)){s&=G;break e}s=w(y(w(v-m)))=o))break n;break i}if(s=0,!(e=o))break i}if((n=e!=e)|(r=o!=o)){s=r&n;break i}s=w(y(w(e-o)))=k))break t;break f}if(h=0,!(e=k))break f}if((a=e!=e)|(r=k!=k)){h=r&a;break f}h=w(y(w(e-k)))>>20&2047))==2047)return(r*=1)/r;if(!(n=b<<1)&(0|(u=c<<1|b>>>31))==2145386496|u>>>0<2145386496)return!n&(0|u)==2145386496?0*r:r;r:{if(!k){if(k=0,f=b<<12,(0|(n=c<<12|b>>>20))>0|(0|n)>=0)for(;k=k-1|0,n=n<<1|f>>>31,f<<=1,(0|n)>0|(0|n)>=0;);f=31&(n=1-k|0),(63&n)>>>0>=32?(n=b<>>32-f|c<1023){for(;;){e:if(!((0|(b=n+-1048576|0))<0)&&!((n=b)|f))return 0*r;if(n=n<<1|f>>>31,f<<=1,!((0|(k=k-1|0))>1023))break}k=1023}a:if(!((0|(b=n+-1048576|0))<0)&&!((n=b)|f))return 0*r;if((0|n)==1048575|n>>>0<1048575)for(;k=k-1|0,b=n>>>0<524288,u=n<<1|f>>>31,f<<=1,n=u,b;);return A=-2147483648&c,u=n+-1048576|k<<20,s=f,c=n,s=f,f=31&(b=1-k|0),(63&b)>>>0>=32?(n=0,b=c>>>f|0):(n=c>>>f|0,b=((1<>>f),a=((f=(0|k)>0)?s:b)|0,t[0]=a,i=(f?u:n)|A,t[1]=i,+o[0]}function rd(r){var e=0,a=0,i=0,n=0,f=0;a=(i=l[1396])+(e=r+7&-8)|0;r:{e:if(!((a>>>0<=i>>>0?e:0)||a>>>0>eU()<<16>>>0&&!(0|D(0|a)))){l[1396]=a;break r}l[1761]=48,i=-1}if((0|i)!=-1){l[(a=(e=r+i|0)-16|0)+12>>2]=16,l[a>>2]=16,f=(r=l[1728])?l[r+8>>2]:0;a:{i:{if((0|f)==(0|i)){if(n=i-(-2&l[i-4>>2])|0,f=l[n-4>>2],l[r+8>>2]=e,e=-16,!(1&s[((r=n-(-2&f)|0)+l[r>>2]|0)-4|0]))break i;e=l[r+4>>2],l[e+8>>2]=l[r+8>>2],l[l[r+8>>2]+4>>2]=e,a=a-r|0,l[r>>2]=a;break a}l[i+12>>2]=16,l[i>>2]=16,l[i+8>>2]=e,l[i+4>>2]=r,l[1728]=i,e=16}a=a-(r=e+i|0)|0,l[r>>2]=a}l[((-4&a)+r|0)-4>>2]=1|a,e=l[r>>2]-8|0;n:{if(e>>>0<=127){a=(e>>>3|0)-1|0;break n}if(n=E(e),a=((e>>>29-n^4)-(n<<2)|0)+110|0,e>>>0<=4095)break n;a=(a=((e>>>30-n^2)-(n<<1)|0)+71|0)>>>0>=63?63:a}e=a<<4,l[r+4>>2]=e+5888,e=e+5896|0,l[r+8>>2]=l[e>>2],l[e>>2]=r,l[l[r+8>>2]+4>>2]=r,e=l[1730],n=l[1731],r=31&a,(63&a)>>>0>=32?(a=1<>>32-r,l[1730]=f|e,l[1731]=a|n}return(0|i)!=-1}function rh(r,e,a){var i=0,n=0,f=0,t=0,b=0,o=0,k=0,c=0,u=0;r:{e:{a:{i:{n:{f:{t:{b:{o:{k:{if(e){if(!a)break k;break o}ra=0,r=(r>>>0)/(a>>>0)|0;break r}if(!r)break b;break t}if(!(a-1&a))break f;t=0-(f=(E(a)+33|0)-E(e)|0)|0;break i}ra=0,r=(e>>>0)/0|0;break r}if((i=32-E(e)|0)>>>0<31)break n;break a}if((0|a)==1)break e;a=31&(f=a?31-E(a-1^a)|0:32),(63&f)>>>0>=32?r=e>>>a|0:(i=e>>>a|0,r=((1<>>a),ra=i;break r}f=i+1|0,t=63-i|0}if(n=31&(i=63&f),i>>>0>=32?(i=0,b=e>>>n|0):(i=e>>>n|0,b=((1<>>n),t&=63,n=31&t,t>>>0>=32?(e=r<>>32-n|e<>>31)+((i=b<<1|e>>>31)>>>0>t>>>0)|0)>>31),b=i-k|0,i=o-(i>>>0>>0)|0,e=e<<1|r>>>31,r=c|r<<1,c=1&n,f=f-1|0;);ra=e<<1|r>>>31,r=c|r<<1;break r}r=0,e=0}ra=e}return r}function rv(r,e,a){var i,n,f=w(0),b=w(0);r:{e:{a:{if((-2&e)==2){if(e=l[r+188>>2],f=p[r+188>>2],(0|e)==2139156720|(0|e)==2140081935|(0|e)==2141891242|f==f||(e=l[r+196>>2],f=p[r+196>>2],(0|e)==2139156720|(0|e)==2140081935|(0|e)==2141891242|f==f))break a;break e}if(e=l[r+192>>2],f=p[r+192>>2],(0|e)==2139156720|(0|e)==2140081935|(0|e)==2141891242|f==f||(f=p[r+196>>2],(0|(e=l[r+196>>2]))==2139156720|(0|e)==2140081935|(0|e)==2141891242))break a;if(f!=f)break e}f=w(0);i:{n:if((0|e)!=2139156720){if((0|e)==2140081935)break r;r=4276;f:{if((0|e)!=2141891242){if(i=e,t[2]=i,(f=u())==f)break f;r=4268}switch(f=p[r>>2],b=w(NaN),l[r+4>>2]-1|0){case 0:break r;case 1:break n;default:break i}}if(n=(-1073741825&e)+536870912|0,t[2]=n,f=u(),!(1073741824&e))break r}b=w(w(f*a)*w(.009999999776482582))}return b}f=w(0)}return f}function rp(r,e,a){var i=0,n=0,f=0,t=0;if(n=((i=r+4|0)+e|0)-1&0-e,e=l[r>>2],n+a>>>0<=(e+r|0)-4>>>0){f=l[r+4>>2],l[f+8>>2]=l[r+8>>2],l[l[r+8>>2]+4>>2]=f,(0|i)!=(0|n)&&(n=n-i|0,f=r-(-2&l[r-4>>2])|0,i=n+l[f>>2]|0,l[f>>2]=i,l[(f+(-4&i)|0)-4>>2]=i,r=r+n|0,e=e-n|0,l[r>>2]=e);r:{if(a+24>>>0<=e>>>0){i=(r+a|0)+8|0,e=(e-a|0)-8|0,l[i>>2]=e,l[(i+(-4&e)|0)-4>>2]=1|e,n=l[i>>2]-8|0;e:{if(n>>>0<=127){e=(n>>>3|0)-1|0;break e}if(f=E(n),e=((n>>>29-f^4)-(f<<2)|0)+110|0,n>>>0<=4095)break e;e=(e=((n>>>30-f^2)-(f<<1)|0)+71|0)>>>0>=63?63:e}n=e<<4,l[i+4>>2]=n+5888,n=n+5896|0,l[i+8>>2]=l[n>>2],l[n>>2]=i,l[l[i+8>>2]+4>>2]=i,n=l[1730],f=l[1731],i=31&e,(63&e)>>>0>=32?(e=1<>>32-i,i=t),l[1730]=i|n,l[1731]=e|f,e=a+8|0,l[r>>2]=e,l[((-4&e)+r|0)-4>>2]=e;break r}l[(r+e|0)-4>>2]=e}r=r+4|0}else r=0;return r}function rm(r,e,a){var i=0,n=0;r:if((0|r)!=(0|e)){if(e-(n=r+a|0)>>>0<=0-(a<<1)>>>0)return ru(r,e,a);i=(r^e)&3;e:{a:{if(r>>>0>>0){if(i){i=r;break e}if(!(3&r)){i=r;break a}for(i=r;;){if(!a)break r;if(s[0|i]=d[0|e],e=e+1|0,a=a-1|0,!(3&(i=i+1|0)))break}break a}i:if(!i){if(3&n)for(;;){if(!a)break r;if(s[0|(i=(a=a-1|0)+r|0)]=d[e+a|0],!(3&i))break}if(a>>>0<=3)break i;for(;l[(a=a-4|0)+r>>2]=l[e+a>>2],a>>>0>3;);}if(!a)break r;for(;s[(a=a-1|0)+r|0]=d[e+a|0],a;);break r}if(a>>>0<=3)break e;for(;l[i>>2]=l[e>>2],e=e+4|0,i=i+4|0,(a=a-4|0)>>>0>3;);}if(!a)break r;for(;s[0|i]=d[0|e],i=i+1|0,e=e+1|0,a=a-1|0;);}return r}function rN(r,e,a,i){r:switch(e-9|0){case 0:e=l[a>>2],l[a>>2]=e+4,l[r>>2]=l[e>>2];return;case 6:e=l[a>>2],l[a>>2]=e+4,e=A[e>>1],l[r>>2]=e,l[r+4>>2]=e>>31;return;case 7:e=l[a>>2],l[a>>2]=e+4,l[r>>2]=h[e>>1],l[r+4>>2]=0;return;case 8:e=l[a>>2],l[a>>2]=e+4,e=s[0|e],l[r>>2]=e,l[r+4>>2]=e>>31;return;case 9:e=l[a>>2],l[a>>2]=e+4,l[r>>2]=d[0|e],l[r+4>>2]=0;return;case 16:e=l[a>>2]+7&-8,l[a>>2]=e+8,m[r>>3]=m[e>>3];return;case 17:eY[0|i](r,a);default:return;case 1:case 4:case 14:e=l[a>>2],l[a>>2]=e+4,e=l[e>>2],l[r>>2]=e,l[r+4>>2]=e>>31;return;case 2:case 5:case 11:case 15:e=l[a>>2],l[a>>2]=e+4,l[r>>2]=l[e>>2],l[r+4>>2]=0;return;case 3:case 10:case 12:case 13:break r}e=l[a>>2]+7&-8,l[a>>2]=e+8,a=l[e+4>>2],l[r>>2]=l[e>>2],l[r+4>>2]=a}function rw(){rr(7004,3018),$(7005,2479,1,1,0),V(7006,2139,1,-128,127),V(7007,2132,1,-128,127),V(7008,2130,1,0,255),V(7009,1286,2,-32768,32767),V(7010,1277,2,0,65535),V(7011,1315,4,-2147483648,2147483647),V(7012,1306,4,0,-1),V(7013,2658,4,-2147483648,2147483647),V(7014,2649,4,0,-1),eV(7015,1776,-2147483648,2147483647),eV(7016,1775,0,-1),C(7017,1769,4),C(7018,2966,8),S(7019,2676),S(7020,3835),O(7021,4,2663),O(7022,2,2688),O(7023,4,2703),q(7024,2484),Z(7025,0,3766),Z(7026,0,3868),Z(7027,1,3796),Z(7028,2,3398),Z(7029,3,3429),Z(7030,4,3469),Z(7031,5,3498),Z(7032,4,3905),Z(7033,5,3935),Z(7026,0,3600),Z(7027,1,3567),Z(7028,2,3666),Z(7029,3,3632),Z(7030,4,3733),Z(7031,5,3699),Z(7034,6,3536),Z(7035,7,3974)}function ry(r,e,a){var i=0,n=0,f=0,t=0;r:if(a){if(s[0|r]=e,s[(i=r+a|0)-1|0]=e,a>>>0<3||(s[r+2|0]=e,s[r+1|0]=e,s[i-3|0]=e,s[i-2|0]=e,a>>>0<7)||(s[r+3|0]=e,s[i-4|0]=e,a>>>0<9)||(n=(i=0-r&3)+r|0,e=N(255&e,16843009),l[n>>2]=e,l[(a=(i=a-i&-4)+n|0)-4>>2]=e,i>>>0<9)||(l[n+8>>2]=e,l[n+4>>2]=e,l[a-8>>2]=e,l[a-12>>2]=e,i>>>0<25)||(l[n+24>>2]=e,l[n+20>>2]=e,l[n+16>>2]=e,l[n+12>>2]=e,l[a-16>>2]=e,l[a-20>>2]=e,l[a-24>>2]=e,l[a-28>>2]=e,(a=i-(t=4&n|24)|0)>>>0<32))break r;for(i=r9(e,0,1,1),f=ra,e=n+t|0;l[e+24>>2]=i,l[e+28>>2]=f,l[e+16>>2]=i,l[e+20>>2]=f,l[e+8>>2]=i,l[e+12>>2]=f,l[e>>2]=i,l[e+4>>2]=f,e=e+32|0,(a=a-32|0)>>>0>31;);}return r}function rE(r){var e=0,a=0,i=0,n=0,f=0;if(r|=0){a=n=l[(e=r-4|0)>>2],i=e,(0|(r=-2&(f=l[r-8>>2])))!=(0|f)&&(a=l[(i=e-r|0)+4>>2],l[a+8>>2]=l[i+8>>2],l[l[i+8>>2]+4>>2]=a,a=r+n|0),(0|(e=l[(r=e+n|0)>>2]))!=l[(r+e|0)-4>>2]&&(n=l[r+4>>2],l[n+8>>2]=l[r+8>>2],l[l[r+8>>2]+4>>2]=n,a=e+a|0),l[i>>2]=a,l[((-4&a)+i|0)-4>>2]=1|a,e=l[i>>2]-8|0;r:{if(e>>>0<=127){r=(e>>>3|0)-1|0;break r}if(a=E(e),r=((e>>>29-a^4)-(a<<2)|0)+110|0,e>>>0<=4095)break r;r=(r=((e>>>30-a^2)-(a<<1)|0)+71|0)>>>0>=63?63:r}e=r<<4,l[i+4>>2]=e+5888,e=e+5896|0,l[i+8>>2]=l[e>>2],l[e>>2]=i,l[l[i+8>>2]+4>>2]=i,e=l[1730],a=l[1731],i=31&r,(63&r)>>>0>=32?(r=1<>>32-i,l[1730]=n|e,l[1731]=r|a}}function rG(r,e,a,i,n){var f=0,t=0,b=0,o=0;re=f=re-208|0,l[f+204>>2]=a,ry(a=f+160|0,0,40),l[f+200>>2]=l[f+204>>2];r:{if((0|rf(0,e,f+200|0,f+80|0,a,i,n))<0){n=-1;break r}o=l[r+76>>2]>=0,t=l[r>>2],l[r+72>>2]<=0&&(l[r>>2]=-33&t);e:{a:{i:{if(!l[r+48>>2]){l[r+48>>2]=80,l[r+28>>2]=0,l[r+16>>2]=0,l[r+20>>2]=0,b=l[r+44>>2],l[r+44>>2]=f;break i}if(l[r+16>>2])break a}if(a=-1,ef(r))break e}a=rf(r,e,f+200|0,f+80|0,f+160|0,i,n)}if(b&&(eY[l[r+36>>2]](r,0,0),l[r+48>>2]=0,l[r+44>>2]=b,l[r+28>>2]=0,e=l[r+20>>2],l[r+16>>2]=0,l[r+20>>2]=0,a=e?a:-1),e=r,r=l[r>>2],l[e>>2]=r|32&t,n=32&r?-1:a,!o)break r}return re=f+208|0,n}function rR(r){var e=0,a=w(0),i=0,n=0,f=0,t=0,b=0,o=w(0),c=0;re=f=re-16|0,e=l[r+12>>2];r:{if(e){o=p[r+520>>2],a=p[r+516>>2];e:{if(32&d[r+4|0]){a=w(eY[0|e](r,a,o,0));break e}a=w(eY[0|e](r,a,o))}if(a==a)break r;l[f>>2]=3340,rB(r,f),eX(),k()}a:{i:{if(t=l[r+556>>2],e=l[r+560>>2],(0|t)!=(0|e)){for(c=(e=e-t>>2)>>>0<=1?1:e;;){if(n=l[(b<<2)+t>>2],!l[n+548>>2]){if((196608&(e=l[n+24>>2]))!=131072){if((e=e>>>13&7)||(e=l[r+24>>2]>>>10&7),2&d[n+4|0]|(8&d[r+24|0]?(0|e)==5:0))break i;i=i||n}if((0|c)!=(0|(b=b+1|0)))continue}break}if(i)break a}a=p[r+520>>2];break r}i=n}a=w(rR(i)+p[i+232>>2])}return re=f+16|0,a}function rg(r,e,a,i,n,f){var b,o=0,k=w(0),c=0,s=w(0);k=p[(o=(l[(e<<2)+4252>>2]<<2)+r|0)+216>>2];r:{e:{o=l[o+216>>2];a:if((0|o)!=2139156720){if((0|o)==2140081935)break e;c=4276;i:{if((0|o)!=2141891242){if(k==k)break i;c=4268}switch(s=p[c>>2],k=w(NaN),l[c+4>>2]-1|0){case 0:break e;case 1:break a;default:break r}}if(b=(-1073741825&o)+536870912|0,t[2]=b,s=u(),!(1073741824&o))break e}k=w(w(s*a)*w(.009999999776482582));break r}k=s}i=w(k+w(rP(r,e,i)+rS(r,e,i)));n:{f:{t:switch(l[n>>2]){case 1:case 2:a=p[f>>2],i=i!=i?a:a>2]=2}p[f>>2]=i}}function rZ(r,e,a){var i,n,f=w(0),b=w(0),o=0,k=w(0);r=r+116|0,o=l[(e<<2)+4220>>2];r:{if((-2&e)==2){e=rX(r,4,o,2140081935);break r}e=rY(r,o,2140081935)}e:{a:{i:{n:if((0|e)!=2139156720){if((0|e)==2140081935)break e;r=4276;f:{if((0|e)!=2141891242){if(i=e,t[2]=i,(f=u())==f)break f;r=4268}switch(f=p[r>>2],b=w(NaN),l[r+4>>2]-1|0){case 0:break i;case 1:break n;default:break a}}if(n=(-1073741825&e)+536870912|0,t[2]=n,f=u(),!(1073741824&e))break i}f=w(w(f*a)*w(.009999999776482582))}if(f>=w(0))return f;if(b=f,f>2];r:{if((-2&e)==2){e=rX(r,5,o,2140081935);break r}e=rY(r,o,2140081935)}e:{a:{i:{n:if((0|e)!=2139156720){if((0|e)==2140081935)break e;r=4276;f:{if((0|e)!=2141891242){if(i=e,t[2]=i,(f=u())==f)break f;r=4268}switch(f=p[r>>2],b=w(NaN),l[r+4>>2]-1|0){case 0:break i;case 1:break n;default:break a}}if(n=(-1073741825&e)+536870912|0,t[2]=n,f=u(),!(1073741824&e))break i}f=w(w(f*a)*w(.009999999776482582))}if(f>=w(0))return f;if(b=f,f>2]=0,l[e+556>>2]=0,l[e+560>>2]=0,n=l[a+556>>2],i=l[a+560>>2],(0|n)!=(0|i)){if((0|(t=i-n|0))<0)break r;for(r=eo(t),l[e+556>>2]=r,l[e+564>>2]=r+t;l[r>>2]=l[n>>2],r=r+4|0,(0|i)!=(0|(n=n+4|0)););l[e+560>>2]=r}r=l[a+572>>2],l[e+568>>2]=l[a+568>>2],l[e+572>>2]=r,l[e+584>>2]=l[a+584>>2],r=l[a+580>>2],l[e+576>>2]=l[a+576>>2],l[e+580>>2]=r,l[e+552>>2]=0}return f}T(),k()}function rB(r,e){var a=0,i=0,n=0;re=n=re-16|0,l[n+12>>2]=e;r:{e:{if(!r){e=l[n+12>>2];break e}if(e=l[n+12>>2],!(a=l[r+568>>2]))break e;if(i=l[a+4>>2],d[a+9|0]){eY[0|i](a,r,5,0,4215,e);break r}eY[0|i](a,r,5,4215,e);break r}a:{if(!d[6936]){A[(a=eo(28))+20>>1]=0,l[a+16>>2]=1065353216,A[a+10>>1]=0,A[a+12>>1]=0,l[a>>2]=0,l[a+24>>2]=0,s[a+9|0]=0,i=1,l[a+4>>2]=1,s[a+22|0]=0,l[1733]=a,s[6936]=1,l[1732]=l[1732]+1;break a}if(a=l[1733],i=l[a+4>>2],!d[a+9|0])break a;eY[0|i](a,r,5,0,4215,e);break r}eY[0|i](a,r,5,4215,e)}re=n+16|0}function rT(r,e,a){var i,n,f=w(0),b=0,o=w(0);r=r+80|0,b=l[(e<<2)+4236>>2];r:{e:{if((-2&e)==2){e=rX(r,5,b,2140081935);break e}e=rY(r,b,2140081935)}a:{i:if((0|e)!=2139156720){if((0|e)==2140081935)break r;r=4276;n:{if((0|e)!=2141891242){if(i=e,t[2]=i,(f=u())==f)break n;r=4268}switch(f=p[r>>2],o=w(NaN),l[r+4>>2]-1|0){case 0:break r;case 1:break i;default:break a}}if(n=(-1073741825&e)+536870912|0,t[2]=n,f=u(),!(1073741824&e))break r}o=w(w(f*a)*w(.009999999776482582))}return o}return f}function rI(r,e,a){var i,n,f=w(0),b=0,o=w(0);r=r+80|0,b=l[(e<<2)+4220>>2];r:{e:{if((-2&e)==2){e=rX(r,4,b,2140081935);break e}e=rY(r,b,2140081935)}a:{i:if((0|e)!=2139156720){if((0|e)==2140081935)break r;r=4276;n:{if((0|e)!=2141891242){if(i=e,t[2]=i,(f=u())==f)break n;r=4268}switch(f=p[r>>2],o=w(NaN),l[r+4>>2]-1|0){case 0:break r;case 1:break i;default:break a}}if(n=(-1073741825&e)+536870912|0,t[2]=n,f=u(),!(1073741824&e))break r}o=w(w(f*a)*w(.009999999776482582))}return o}return f}function rX(r,e,a,i){var n=w(0);n=p[(e=(e<<2)+r|0)>>2],e=l[e>>2];r:if(!((0|e)==2139156720|(0|e)==2140081935|(0|e)==2141891242|n==n)){if(n=p[(e=(a<<2)+r|0)>>2],(0|(e=l[e>>2]))==2139156720|(0|e)==2140081935|(0|e)==2141891242|n==n||(e=l[r+24>>2],n=p[r+24>>2],(0|e)==2139156720|(0|e)==2140081935|(0|e)==2141891242|n==n)||(n=p[r+32>>2],!((0|(r=l[r+32>>2]))==2139156720|(0|r)==2140081935|(0|r)==2141891242)&&(e=i,n!=n)))break r;e=r}return e}function rO(r,e,a,i,n){var f=0,t=0,b=w(0),o=0;f=2,t=l[r+24>>2]>>>2&3;r:{e:{a:{if(!(!l[r+552>>2]|(0|e)!=2)){e=0,f=3;i:switch(t-2|0){case 0:break r;case 1:break i;default:break a}f=2;break r}if(e=0,t>>>0>1)break e}e=f}f=t}a=ey(r,f,a),i=ey(r,e,i),b=rP(r,f,n),p[(t=r+228|0)+(l[(o=f<<2)+4220>>2]<<2)>>2]=a+b,b=rS(r,f,n),p[t+(l[o+4236>>2]<<2)>>2]=a+b,a=rP(r,e,n),p[t+(l[(f=e<<2)+4220>>2]<<2)>>2]=i+a,a=rS(r,e,n),p[t+(l[f+4236>>2]<<2)>>2]=i+a}function rL(r){var e=0,a=0,i=0,n=0;if(r|=0){if(e=l[r>>2],(a=l[e+552>>2])&&(rq(a,e),l[e+552>>2]=0),i=l[e+560>>2],a=l[e+556>>2],(0|i)!=(0|a))for(n=(i=i-a>>2)>>>0<=1?1:i,i=0;l[l[a+(i<<2)>>2]+552>>2]=0,(0|n)!=(0|(i=i+1|0)););l[e+560>>2]=a,r_(e+556|0),(a=l[e+556>>2])&&(l[e+560>>2]=a,rE(a)),rE(e),e=l[r+8>>2],l[r+8>>2]=0,e&&eY[l[l[e>>2]+4>>2]](e),e=l[r+4>>2],l[r+4>>2]=0,e&&eY[l[l[e>>2]+4>>2]](e),rE(r)}}function r_(r){var e=0,a=0,i=0,n=0,f=0;re=n=re-32|0,e=l[r>>2],a=l[r+4>>2]-e>>2;r:if(!(a>>>0>=l[r+8>>2]-e>>2>>>0)){if(a=en(n+8|0,a,a,r+8|0),e=l[r>>2],i=l[r+4>>2]-e|0,i=rm(l[a+4>>2]-i|0,e,i),e=l[r>>2],l[r>>2]=i,l[a+4>>2]=e,i=l[r+4>>2],l[r+4>>2]=l[a+8>>2],l[a+8>>2]=i,f=l[r+8>>2],l[r+8>>2]=l[a+12>>2],l[a>>2]=e,l[a+12>>2]=f,(0|e)!=(0|i)&&(l[a+8>>2]=i+((e-i|0)+3&-4)),!e)break r;rE(e)}re=n+32|0}function rF(r,e,a){var i=0,n=0,f=0;if(!(32&d[0|r]))r:{i=e,r=l[(e=r)+16>>2];e:{if(!r){if(ef(e))break e;r=l[e+16>>2]}if(f=l[e+20>>2],r-f>>>0>>0){eY[l[e+36>>2]](e,i,a);break r}a:if(!(l[e+80>>2]<0)){for(r=a;;){if(n=r,!r)break a;if(10==d[i+(r=n-1|0)|0])break}if(eY[l[e+36>>2]](e,i,n)>>>0>>0)break e;i=i+n|0,a=a-n|0,f=l[e+20>>2]}ru(f,i,a),l[e+20>>2]=l[e+20>>2]+a}}}function rC(r,e,a){var i=0,n=0,f=0;re=i=re-16|0,n=r+24|0,eY[0|e](i+8|0,n),f=l[i+12>>2];r:if((l[l[i+8>>2]>>2]&7<>f!=(0|a))for(eY[0|e](i+8|0,n),n=e=l[i+8>>2],f=l[e>>2],e=l[i+12>>2],l[n>>2]=f&(7<>2])&&eY[0|e](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}re=i+16|0}function rS(r,e,a){var i,n,f=w(0),b=0;r=r+44|0,b=l[(e<<2)+4236>>2];r:{if((-2&e)==2){r=rX(r,5,b,2140081935);break r}r=rY(r,b,2140081935)}e:{if((0|r)!=2139156720){if((0|r)==2140081935|(0|r)==2141891242)break e;if(i=r,t[2]=i,(f=u())!=f)return w(NaN);if(n=(-1073741825&r)+536870912|0,t[2]=n,f=u(),!(1073741824&r))break e}f=w(w(f*a)*w(.009999999776482582))}return f}function rP(r,e,a){var i,n,f=w(0),b=0;r=r+44|0,b=l[(e<<2)+4220>>2];r:{if((-2&e)==2){r=rX(r,4,b,2140081935);break r}r=rY(r,b,2140081935)}e:{if((0|r)!=2139156720){if((0|r)==2140081935|(0|r)==2141891242)break e;if(i=r,t[2]=i,(f=u())!=f)return w(NaN);if(n=(-1073741825&r)+536870912|0,t[2]=n,f=u(),!(1073741824&r))break e}f=w(w(f*a)*w(.009999999776482582))}return f}function rY(r,e,a){var i=w(0);i=p[(e=(e<<2)+r|0)>>2],e=l[e>>2];r:if(!((0|e)==2139156720|(0|e)==2140081935|(0|e)==2141891242|i==i)){if(e=l[r+28>>2],i=p[r+28>>2],(0|e)==2139156720|(0|e)==2140081935|(0|e)==2141891242|i==i||(i=p[r+32>>2],!((0|(r=l[r+32>>2]))==2139156720|(0|r)==2140081935|(0|r)==2141891242)&&(e=a,i!=i)))break r;e=r}return e}function rU(r,e){var a,i,n=w(0),f=0;r=r+152|0,f=l[(e<<2)+4236>>2];r:{if((-2&e)==2){r=rX(r,5,f,2140081935);break r}r=rY(r,f,2140081935)}n=w(0);e:if((0|r)!=2139156720){if(n=w(0),(0|r)==2140081935)break e;a:if((0|r)!=2141891242&&(a=r,t[2]=a,(n=u())==n)){i=(-1073741825&r)+536870912|0,t[2]=i,n=u();break e}n=w(NaN)}return eu(n,w(0))}function rM(r,e){var a,i,n=w(0),f=0;r=r+152|0,f=l[(e<<2)+4220>>2];r:{if((-2&e)==2){r=rX(r,4,f,2140081935);break r}r=rY(r,f,2140081935)}n=w(0);e:if((0|r)!=2139156720){if(n=w(0),(0|r)==2140081935)break e;a:if((0|r)!=2141891242&&(a=r,t[2]=a,(n=u())==n)){i=(-1073741825&r)+536870912|0,t[2]=i,n=u();break e}n=w(NaN)}return eu(n,w(0))}function rH(r,e,a,i){var n=0,f=0,t=0;r*=e,t=(n=(n=rl(r))<0?n+1:n)!=n;r:{if(!(!(1e-4>y(n))|t)){r-=n;break r}e:{if(n!=n){r-=n;break e}if(r-=n,!(1e-4>y(n+-1)))break e;r+=1;break r}if(a){r+=1;break r}if(i)break r;f=0;a:if(!t){if(f=1,n>.5)break a;f=1e-4>y(n+-.5)?1:0}r+=f}return r!=r|e!=e?w(NaN):w(r/e)}function rQ(r){var e=w(0),a=0,i=w(0);a=0;r:if((196608&l[r+24>>2])!=131072){e:if(l[r+552>>2]){e=p[r+32>>2];a:if((e==e||(e=p[r+28>>2])>w(0))&&(a=1,e!=w(0)))break r;if((e=p[r+36>>2])==e)break e;if(s[r+4|0]<0){e=w(1);break e}if(e=w(0),!((i=p[r+28>>2])>2]=2143289344,l[r+4>>2]=3;return}l[r>>2]=0,l[r+4>>2]=1;return}l[r>>2]=0,l[r+4>>2]=2;return}if(t[2]=e,(a=u())!=a){l[r>>2]=2143289344,l[r+4>>2]=0;return}l[r+4>>2]=1073741824&e?2:1,l[r>>2]=(-1073741825&e)+536870912}function rj(r){var e=0,a=0,i=0;a=l[r+24>>2];r:if(8&a){if(e=1,(7168&a)==5120||(e=0,i=l[r+560>>2],a=l[r+556>>2],(0|i)==(0|a)))break r;for(i=(r=i-a>>2)>>>0<=1?1:r,r=0;;){if(e=(196608&(e=l[l[a+(r<<2)>>2]+24>>2]))!=131072&(57344&e)==40960)break r;if((0|i)==(0|(r=r+1|0)))break}}return e}function rD(r){var e,a=0,i=w(0);a=2143289344;r:if(!(w(y(r))==w(1/0)|r!=r||(a=2139156720,rw(-.00000000000000000010842021724855044)|r==w(0)))){c(r),e=-2147483648&t[2]|1602224127,t[2]=e,i=u(),c(r>w(18446742974197924e3)?i:rw(-.00000000000000000010842021724855044)|r==w(0)))){c(r),e=-2147483648&t[2]|1610612735,t[2]=e,i=u(),c(r>w(36893485948395848e3)?i:r>2]);break r}e:{if(d[6936]){e=l[1733];break e}A[(e=eo(28))+20>>1]=0,l[e+16>>2]=1065353216,A[e+10>>1]=0,A[e+12>>1]=0,l[e>>2]=0,l[e+24>>2]=0,s[e+9|0]=0,l[e+4>>2]=1,s[e+22|0]=0,l[1733]=e,s[6936]=1,l[1732]=l[1732]+1}e=ev(e)}return l[r+4>>2]=0,l[r+8>>2]=0,l[r>>2]=e,l[e>>2]=r,r}function rK(r,e,a){var i=0,n=0,f=0;r:{if(!e){i=r;break r}for(;r=r9(i=rh(r,e,10),n=ra,246,0)+r|0,s[0|(a=a-1|0)]=48|r,f=e>>>0>9,r=i,e=n,f;);}if(i)for(;a=a-1|0,r=(i>>>0)/10|0,s[0|a]=N(r,246)+i|48,e=i>>>0>9,i=r,e;);return a}function rq(r,e){var a=0,i=0;r:{e:if(a=l[r+556>>2],i=l[r+560>>2],(0|a)!=(0|i)){for(;;){if(l[a>>2]==(0|e))break e;if((0|i)==(0|(a=a+4|0)))break}break r}if((0|a)==(0|i))break r;return e=a+4|0,rm(a,e,i-e|0),l[r+560>>2]=i-4,1}return 0}function r$(r,e,a){var i=0;r:if(l[((i=r+24|0)+(e<<2)|0)+184>>2]!=(0|a))for(l[((e<<2)+i|0)+184>>2]=a;;){if(4&(e=d[r+4|0]))break r;if(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}}function r0(r,e,a){var i=0;r:if(l[((i=r+24|0)+(e<<2)|0)+192>>2]!=(0|a))for(l[((e<<2)+i|0)+192>>2]=a;;){if(4&(e=d[r+4|0]))break r;if(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}}function r2(r,e,a){var i=0;r:if(l[((i=r+24|0)+(e<<2)|0)+176>>2]!=(0|a))for(l[((e<<2)+i|0)+176>>2]=a;;){if(4&(e=d[r+4|0]))break r;if(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}}function r1(r,e){var a=0,i=0,n=0;r:if(l[(a=r+24|0)+16>>2]!=(0|e))for(i=0|eY[9](a),n=e,l[i+16>>2]=n;;){if(4&(e=d[r+4|0]))break r;if(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}}function r4(r,e,a){var i=0;r:if(l[((i=r+24|0)+(e<<2)|0)+56>>2]!=(0|a))for(l[((e<<2)+i|0)+56>>2]=a;;){if(4&(e=d[r+4|0]))break r;if(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}}function r3(r,e,a){var i=0;r:if(l[((i=r+24|0)+(e<<2)|0)+92>>2]!=(0|a))for(l[((e<<2)+i|0)+92>>2]=a;;){if(4&(e=d[r+4|0]))break r;if(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}}function r8(r,e,a){var i=0;r:if(l[((i=r+24|0)+(e<<2)|0)+20>>2]!=(0|a))for(l[((e<<2)+i|0)+20>>2]=a;;){if(4&(e=d[r+4|0]))break r;if(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}}function r6(r,e){var a,i=0,n=w(0);r=r+80|0,i=l[(e<<2)+4236>>2];r:{if((-2&e)==2){r=rX(r,5,i,2143289344);break r}r=rY(r,i,2143289344)}return(0|r)==2139156720|(0|r)==2140081935|(0|r)==2141891242?r=1:(a=r,t[2]=a,r=(n=u())==n),r}function r5(r,e){var a,i=0,n=w(0);r=r+80|0,i=l[(e<<2)+4220>>2];r:{if((-2&e)==2){r=rX(r,4,i,2143289344);break r}r=rY(r,i,2143289344)}return(0|r)==2139156720|(0|r)==2140081935|(0|r)==2141891242?r=1:(a=r,t[2]=a,r=(n=u())==n),r}function r9(r,e,a,i){var n=0,f=0,t=0,b=0,o=0,k=0;return k=N(n=a>>>16|0,f=r>>>16|0),n=(65535&(f=((o=N(t=65535&a,b=65535&r))>>>16|0)+N(f,t)|0))+N(n,b)|0,ra=(N(e,a)+k|0)+N(r,i)+(f>>>16)+(n>>>16)|0,65535&o|n<<16}function r7(r,e){var a=0,i=0,n=0;re=i=re-16|0,n=-17&(a=d[r+4|0]),s[r+4|0]=n;r:{if(e){if(l[r+560>>2]!=l[r+556>>2])break r;a=8|n}else a&=231;l[r+8>>2]=e,s[r+4|0]=a,re=i+16|0;return}l[i>>2]=4059,rB(r,i),eX(),k()}function er(r,e,a,i,n){var f=0;if(re=f=re-256|0,!(73728&n|(0|a)<=(0|i))){if(ry(f,255&e,(a=(i=a-i|0)>>>0<256)?i:256),!a)for(;rF(r,f,256),(i=i-256|0)>>>0>255;);rF(r,f,i)}re=f+256|0}function ee(r,e,a){var i=0,n=w(0);r:((-2&a)!=2||(n=p[(i=e- -64|0)>>2],!((0|(i=l[i>>2]))==2139156720|(0|i)==2140081935|(0|i)==2141891242|n==n)))&&(i=l[((l[(a<<2)+4236>>2]<<2)+e|0)+44>>2]);rz(r,i)}function ea(r,e,a){var i=0,n=w(0);r:((-2&a)!=2||(i=l[e+60>>2],n=p[e+60>>2],!((0|i)==2139156720|(0|i)==2140081935|(0|i)==2141891242|n==n)))&&(i=l[((l[(a<<2)+4220>>2]<<2)+e|0)+44>>2]);rz(r,i)}function ei(r){var e=0,a=0,i=0;for(i=l[r>>2];;){if(eO(a=s[0|i])){i=i+1|0,l[r>>2]=i,e=e>>>0<=214748364?(0|(a=a-48|0))>(2147483647^(e=N(e,10)))?-1:a+e|0:-1;continue}break}return e}function en(r,e,a,i){var n=0;l[r+12>>2]=0,l[r+16>>2]=i;r:{if(e){if(e>>>0>=1073741824)break r;n=eo(e<<2)}return l[r>>2]=n,a=(a<<2)+n|0,l[r+8>>2]=a,l[r+12>>2]=(e<<2)+n,l[r+4>>2]=a,r}eP(),k()}function ef(r){var e=0;return(e=l[r+72>>2],l[r+72>>2]=e-1|e,8&(e=l[r>>2]))?(l[r>>2]=32|e,-1):(l[r+4>>2]=0,l[r+8>>2]=0,e=l[r+44>>2],l[r+28>>2]=e,l[r+20>>2]=e,l[r+16>>2]=e+l[r+48>>2],0)}function et(r,e,a,i){r|=0,e|=0,a|=0,i|=0;var n=0;n=l[r>>2],e=((r=l[r+4>>2])>>1)+e|0,1&r&&(n=l[n+l[e>>2]>>2]),eY[0|n](e,a,i)}function eb(r,e,a){r|=0,e|=0,a|=0;var i=0;return i=l[r>>2],e=((r=l[r+4>>2])>>1)+e|0,1&r&&(i=l[i+l[e>>2]>>2]),0|eY[0|i](e,a)}function eo(r){var e=0;r=r||1;r:{for(;;){if(e=rb(r))break r;if(e=l[2022]){eY[0|e]();continue}break}T(),k()}return e}function ek(r,e,a){r|=0,e|=0,a|=0;var i=0;i=l[r>>2],e=((r=l[r+4>>2])>>1)+e|0,1&r&&(i=l[i+l[e>>2]>>2]),eY[0|i](e,a)}function ec(r,e){r|=0,e|=0;var a=0;return a=l[r>>2],e=((r=l[r+4>>2])>>1)+e|0,1&r&&(a=l[a+l[e>>2]>>2]),0|eY[0|a](e)}function eu(r,e){return(c(r),(2147483647&t[2])>>>0<=2139095040)?(c(e),(2147483647&t[2])>>>0>2139095040)?r:w(R(r,e)):e}function es(r,e){return(c(r),(2147483647&t[2])>>>0<=2139095040)?(c(e),(2147483647&t[2])>>>0>2139095040)?r:w(G(r,e)):e}function eA(r,e){r|=0,e|=0;var a=0;return re=a=re-16|0,l[a+8>>2]=e,r=0|eY[0|r](a+8|0),I(l[a+8>>2]),re=a+16|0,0|r}function el(r,e){if(!r)return 0;r:{if(!((-128&e)==57216|e>>>0<=127)){l[1761]=25,r=-1;break r}s[0|r]=e,r=1}return r}function ed(r,e){var a=0,i=0;l[(a=eo(4))>>2]=e,l[(i=eo(4))>>2]=e,X(6955,0|r,7018,4630,192,0|a,7018,4634,193,0|i)}function eh(r,e){var a=0,i=0;l[(a=eo(4))>>2]=e,l[(i=eo(4))>>2]=e,X(6985,0|r,7018,4630,190,0|a,7018,4634,191,0|i)}function ev(r){var e=0,a=0;return re=e=re-16|0,a=rk(eo(588),r),r||(l[e>>2]=2759,rB(0,e),eX(),k()),re=e+16|0,a}function ep(r,e){var a=0;r:{if(1&s[6964]){a=l[1740];break r}a=0|F(1,4400),s[6964]=1,l[1740]=a}Q(0|a,0|r,0|e,0)}function em(r,e){r|=0,e|=0;var a=0;a=l[r>>2],e=((r=l[r+4>>2])>>1)+e|0,1&r&&(a=l[a+l[e>>2]>>2]),eY[0|a](e)}function eN(r){return l[(r|=0)>>2]=4508,d[r+4|0]&&ep(l[r+8>>2],1758),I(l[r+8>>2]),0|r}function ew(r){return l[(r|=0)>>2]=4388,d[r+4|0]&&ep(l[r+8>>2],1758),I(l[r+8>>2]),0|r}function ey(r,e,a){return r5(r,e)?rI(r,e,a):((a=rT(r,e,a))==a&&(a=w(-a)),a)}function eE(r){var e=0;(r|=0)&&((e=l[r>>2])&&rE(e),l[1732]=l[1732]-1,rE(r))}function eG(r,e,a){e|=0,a=+a,m[l[(r|=0)>>2]+e>>3]=a}function eR(r,e){return e|=0,+m[l[(r|=0)>>2]+e>>3]}function eg(r){(r|=0)&&eY[l[l[r>>2]+4>>2]](r)}function eZ(r){return r?(l[1761]=r,-1):0}function eW(r,e,a){return w(rP(r,e,a)+rS(r,e,a))}function eV(r,e,a,i){j(0|r,0|e,8,0,0|a,-1,0|i)}function eB(r,e){e|=0,eY[l[(r|=0)>>2]](e)}function eT(r){return 0|eY[0|(r|=0)]()}function eI(r,e){e|=0,eY[0|(r|=0)](e)}function eX(){eY[l[1470]](),eP(),k()}function eO(r){return r-48>>>0<10}function eL(r){(r|=0)&&rE(r)}function e_(r){return 0|(r|=0)}function eF(r){s[(r|=0)+4|0]=1}function eC(r){k()}function eS(){eP(),k()}function eP(){T(),k()}n(e=d,1024,\"T25seSBsZWFmIG5vZGVzIHdpdGggY3VzdG9tIG1lYXN1cmUgZnVuY3Rpb25zc2hvdWxkIG1hbnVhbGx5IG1hcmsgdGhlbXNlbHZlcyBhcyBkaXJ0eQBpc0RpcnR5AG1hcmtEaXJ0eQBkZXN0cm95AHNldERpc3BsYXkAZ2V0RGlzcGxheQBzZXRGbGV4AC0rICAgMFgweAAtMFgrMFggMFgtMHgrMHggMHgAc2V0RmxleEdyb3cAZ2V0RmxleEdyb3cAc2V0T3ZlcmZsb3cAZ2V0T3ZlcmZsb3cAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AHNldEFsaWduQ29udGVudABnZXRBbGlnbkNvbnRlbnQAZ2V0UGFyZW50AGltcGxlbWVudABzZXRNYXhIZWlnaHRQZXJjZW50AHNldEhlaWdodFBlcmNlbnQAc2V0TWluSGVpZ2h0UGVyY2VudABzZXRGbGV4QmFzaXNQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHVzZUxlZ2FjeVN0cmV0Y2hCZWhhdmlvdXIAc2V0VXNlTGVnYWN5U3RyZXRjaEJlaGF2aW91cgBzZXRQb2ludFNjYWxlRmFjdG9yAE1lYXN1cmVDYWxsYmFja1dyYXBwZXIARGlydGllZENhbGxiYWNrV3JhcHBlcgBDYW5ub3QgcmVzZXQgYSBub2RlIHN0aWxsIGF0dGFjaGVkIHRvIGEgb3duZXIAc2V0Qm9yZGVyAGdldEJvcmRlcgBnZXRDb21wdXRlZEJvcmRlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRNYXJnaW5BdXRvAHNldFdpZHRoQXV0bwBTY2FsZSBmYWN0b3Igc2hvdWxkIG5vdCBiZSBsZXNzIHRoYW4gemVybwBzZXRBc3BlY3RSYXRpbwBnZXRBc3BlY3RSYXRpbwBzZXRQb3NpdGlvbgBnZXRQb3NpdGlvbgBub3RpZnlPbkRlc3RydWN0aW9uAHNldEZsZXhEaXJlY3Rpb24AZ2V0RmxleERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAd2lkdGgAc2V0TWF4V2lkdGgAZ2V0TWF4V2lkdGgAc2V0V2lkdGgAZ2V0V2lkdGgAc2V0TWluV2lkdGgAZ2V0TWluV2lkdGgAZ2V0Q29tcHV0ZWRXaWR0aAB1bnNpZ25lZCBsb25nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBjcmVhdGVXaXRoQ29uZmlnAGluZgBzZXRBbGlnblNlbGYAZ2V0QWxpZ25TZWxmAFNpemUAdmFsdWUAVmFsdWUAY3JlYXRlAG1lYXN1cmUAc2V0UG9zaXRpb25UeXBlAGdldFBvc2l0aW9uVHlwZQBpc1JlZmVyZW5jZUJhc2VsaW5lAHNldElzUmVmZXJlbmNlQmFzZWxpbmUAY29weVN0eWxlAGRvdWJsZQBOb2RlAGV4dGVuZABpbnNlcnRDaGlsZABnZXRDaGlsZAByZW1vdmVDaGlsZAB2b2lkAGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodE1lYXN1cmVNb2RlIG11c3QgYmUgWUdNZWFzdXJlTW9kZVVuZGVmaW5lZABhdmFpbGFibGVXaWR0aCBpcyBpbmRlZmluaXRlIHNvIHdpZHRoTWVhc3VyZU1vZGUgbXVzdCBiZSBZR01lYXN1cmVNb2RlVW5kZWZpbmVkAHNldEV4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGlzRXhwZXJpbWVudGFsRmVhdHVyZUVuYWJsZWQAZGlydGllZABDYW5ub3QgcmVzZXQgYSBub2RlIHdoaWNoIHN0aWxsIGhhcyBjaGlsZHJlbiBhdHRhY2hlZAB1bnNldE1lYXN1cmVGdW5jAHVuc2V0RGlydGllZEZ1bmMARXhwZWN0IGN1c3RvbSBiYXNlbGluZSBmdW5jdGlvbiB0byBub3QgcmV0dXJuIE5hTgBOQU4ASU5GAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVkIGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGRvdWJsZT4AQ2hpbGQgYWxyZWFkeSBoYXMgYSBvd25lciwgaXQgbXVzdCBiZSByZW1vdmVkIGZpcnN0LgBDYW5ub3Qgc2V0IG1lYXN1cmUgZnVuY3Rpb246IE5vZGVzIHdpdGggbWVhc3VyZSBmdW5jdGlvbnMgY2Fubm90IGhhdmUgY2hpbGRyZW4uAENhbm5vdCBhZGQgY2hpbGQ6IE5vZGVzIHdpdGggbWVhc3VyZSBmdW5jdGlvbnMgY2Fubm90IGhhdmUgY2hpbGRyZW4uAChudWxsKQAlcwoAAAEAAAADAAAAAAAAAAIAAAADAAAAAQAAAAIAAAAAAAAAAQAAAAE=\"),n(e,4270,\"wH8AAAAAAADAfwMAAABpaQB2AHZp\"),n(e,4304,\"KxsAACkbAABpGwAAYxsAAGkbAABjGwAAaWlpZmlmaQBcGwAALBsAAHZpaQAtGwAAcBsAAGlpaQ==\"),n(e,4368,\"wwAAAMQAAADF\"),n(e,4388,\"wwAAAMYAAADHAAAAXBs=\"),n(e,4416,\"KxsAAGkbAABjGwAAaRsAAGMbAABwGwAAaxsAAHAbAABpaWlpAAAAAFwbAABBGwAAXBsAAEMbAABEGwAAcBs=\"),n(e,4488,\"yAAAAMkAAADK\"),n(e,4508,\"yAAAAMsAAADHAAAARxsAAFwbAABHGw==\"),n(e,4544,\"XBsAAEcbAABjGwAAXRsAAHZpaWlpAAAAXBsAAEcbAABpGwAAdmlpZgAAAABcGwAARxsAAF0bAAB2aWlpAAAAAF0bAABIGwAAYxsAAF0bAABHGwAAaQBkaWkAdmlpZAAATBsAAEwbAABHGwAAXBsAAEwbAABcGwAATBsAAEsbAABcGwAATBsAAGMbAAAAAAAAXBsAAEwbAABjGwAAahsAAHZpaWlkAAAAXBsAAEwbAABqGwAAYxsAAE0bAABKGwAATRsAAGMbAABKGwAATRsAAGobAABNGwAAahsAAE0bAABjGwAAZGlpaQAAAABpGwAATBsAAGMbAABmaWlpAAAAAFwbAABMGwAATBsAAGQbAABcGwAATBsAAEwbAABkGwAATRsAAEwbAABMGwAATBsAAEwbAABkGwAAXRsAAEwbAABcGwAATBsAAF0bAABcGwAATBsAACkbAABcGwAATBsAAEEbAABdGwAATRsAAAAAAABcGwAATBsAAGobAABqGwAAYxsAAHZpaWRkaQAASRsAAE0b\"),n(e,4960,\"GQAKABkZGQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAAZABEKGRkZAwoHAAEACQsYAAAJBgsAAAsABhkAAAAZGRk=\"),n(e,5041,\"DgAAAAAAAAAAGQAKDRkZGQANAAACAAkOAAAACQAOAAAO\"),n(e,5099,\"DA==\"),n(e,5111,\"EwAAAAATAAAAAAkMAAAAAAAMAAAM\"),n(e,5157,\"EA==\"),n(e,5169,\"DwAAAAQPAAAAAAkQAAAAAAAQAAAQ\"),n(e,5215,\"Eg==\"),n(e,5227,\"EQAAAAARAAAAAAkSAAAAAAASAAASAAAaAAAAGhoa\"),n(e,5282,\"GgAAABoaGgAAAAAAAAk=\"),n(e,5331,\"FA==\"),n(e,5343,\"FwAAAAAXAAAAAAkUAAAAAAAUAAAU\"),n(e,5389,\"Fg==\"),n(e,5401,\"FQAAAAAVAAAAAAkWAAAAAAAWAAAWAAAwMTIzNDU2Nzg5QUJDREVG\"),n(e,5476,\"0Q==\"),n(e,5516,\"//////////8=\"),n(e,5584,\"oB8BAAAAAAAF\"),n(e,5604,\"zA==\"),n(e,5628,\"zQAAAM4AAACEGw==\"),n(e,5652,\"Ag==\"),n(e,5668,\"//////////8=\"),n(e,5736,\"BQ==\"),n(e,5748,\"zw==\"),n(e,5772,\"zQAAANAAAACYGwAAAAQ=\"),n(e,5796,\"AQ==\"),n(e,5812,\"/////wo=\"),n(e,5880,\"0g==\");var eY=((a=[null,function(r,e,a,i,n){var f,t,b,o,k,c;return(i|=0,n|=0,(a|=0)?(0|a)!=5:0)?0|rG(f=5736,t=i,b=n,2,3):0|rG(o=5592,k=i,c=n,2,3)},function(r,e,a,i,n,f){r|=0,e=+e,a|=0,i|=0,n|=0,f|=0;var b,k,c=0,u=0,A=0,h=0,v=0,p=0,m=0,w=0,E=0,G=0,R=0,g=0,Z=0,W=0,V=0,B=0,T=0,I=0,X=0;re=m=re-560|0,l[m+44>>2]=0,b=+e,o[0]=b,c=0|t[1],t[0];r:{if((0|c)<0){Z=1,I=1176,k=+(e=-e),o[0]=k,c=0|t[1],t[0];break r}if(2048&n){Z=1,I=1179;break r}I=(Z=1&n)?1182:1177,X=!Z}e:{if((2146435072&c)==2146435072){er(r,32,a,c=Z+3|0,-65537&n),rF(r,I,Z),i=32&f,rF(r,e!=e?i?2450:3390:i?2819:3394,3),er(r,32,a,c,8192^n),w=(0|a)<(0|c)?c:a;break e}V=m+16|0;a:{i:{n:{if(e=function r(e,a){var i,n,f,b=0,k=0,c=0;if(i=+e,o[0]=i,k=0|t[1],c=0|t[0],(0|(b=k>>>20&2047))!=2047){if(!b)return 0==e?b=0:(e=r(18446744073709552e3*e,a),b=l[a>>2]+-64|0),l[a>>2]=b,e;l[a>>2]=b-1022,n=0|c,t[0]=n,f=-2146435073&k|1071644672,t[1]=f,e=+o[0]}return e}(e,m+44|0),0!=(e+=e)){if(c=l[m+44>>2],l[m+44>>2]=c-1,(0|(B=32|f))!=97)break n;break a}if((0|(B=32|f))==97)break a;v=l[m+44>>2],p=(0|i)<0?6:i;break i}v=c-29|0,l[m+44>>2]=v,e*=268435456,p=(0|i)<0?6:i}for(u=R=(m+48|0)+((0|v)>=0?288:0)|0;i=e<4294967296&e>=0?~~e>>>0:0,l[u>>2]=i,u=u+4|0,0!=(e=(e-+(i>>>0))*1e9););f:{if((0|v)<=0){i=v,c=u,A=R;break f}for(A=R,i=v;;){E=(0|i)>=29?29:i,c=u-4|0;t:if(!(A>>>0>c>>>0)){for(i=0;h=l[c>>2],T=i,i=31&E,(63&E)>>>0>=32?(w=h<>>32-i,i=h<>>0>T>>>0?h+1|0:h,1e9),ra,-1e9,0)+T|0,l[c>>2]=h,A>>>0<=(c=c-4|0)>>>0;);if(!i)break t;l[(A=A-4|0)>>2]=i}for(;c=u,A>>>0>>0&&!l[(u=c-4|0)>>2];);if(i=l[m+44>>2]-E|0,l[m+44>>2]=i,u=c,!((0|i)>0))break}}if((0|i)<0)for(W=((p+25>>>0)/9|0)+1|0,G=(0|B)==102;;){w=(0|(i=0-i|0))>=9?9:i;b:{if(c>>>0<=A>>>0){u=l[A>>2];break b}for(E=1e9>>>w|0,h=-1<>2],l[u>>2]=T+(i>>>w|0),i=N(E,i&h),(u=u+4|0)>>>0>>0;);if(u=l[A>>2],!i)break b;l[c>>2]=i,c=c+4|0}if(i=w+l[m+44>>2]|0,l[m+44>>2]=i,A=(!u<<2)+A|0,u=G?R:A,c=c-u>>2>(0|W)?u+(W<<2)|0:c,!((0|i)<0))break}i=0;o:if(!(c>>>0<=A>>>0)){if(i=N(R-A>>2,9),u=10,(h=l[A>>2])>>>0<10)break o;for(;i=i+1|0,u=N(u,10),h>>>0>=u>>>0;);}if((0|(u=(p-((0|B)!=102?i:0)|0)-((0|B)==103&(0|p)!=0)|0))<(N(c-R>>2,9)-9|0)){if(h=(0|(E=u+9216|0))/9|0,v=((((0|v)<0?4:292)+m|0)+(h<<2)|0)-4048|0,u=10,(0|(w=E+N(h,-9)|0))<=7)for(;u=N(u,10),(0|(w=w+1|0))!=8;);W=((E=l[v>>2])>>>0)/(u>>>0)|0,G=N(W,u),h=v+4|0;k:if(!((0|E)==(0|G)&(0|h)==(0|c))){E=E-G|0;c:(1&W||(e=9007199254740992,!(!(1&s[v-4|0])|((0|u)!=1e9|A>>>0>=v>>>0))))&&(e=9007199254740994);if(g=(0|c)==(0|h)?1:1.5,g=(h=u>>>1|0)>>>0>E>>>0?.5:(0|h)==(0|E)?g:1.5,45!=d[0|I]|X||(g=-g,e=-e),l[v>>2]=G,e+g==e)break k;if(i=u+G|0,l[v>>2]=i,i>>>0>=1e9)for(;l[v>>2]=0,(v=v-4|0)>>>0>>0&&(l[(A=A-4|0)>>2]=0),i=l[v>>2]+1|0,l[v>>2]=i,i>>>0>999999999;);if(i=N(R-A>>2,9),u=10,(h=l[A>>2])>>>0<10)break k;for(;i=i+1|0,u=N(u,10),h>>>0>=u>>>0;);}c=c>>>0>(u=v+4|0)>>>0?u:c}for(;h=c,!(E=c>>>0<=A>>>0)&&!l[(c=h-4|0)>>2];);u:{if((0|B)!=103){v=8&n;break u}if(p=((c=(0|(u=p||1))>(0|i)&(0|i)>-5)?-1^i:-1)+u|0,f=(c?-1:-2)+f|0,v=8&n)break u;c=-9;s:if(!E&&(v=l[h-4>>2])){if(w=10,c=0,(v>>>0)%10|0)break s;for(;u=c,c=c+1|0,w=N(w,10),!((v>>>0)%(w>>>0)|0););c=-1^u}if(u=N(h-R>>2,9),(-33&f)==70){v=0,p=(0|(c=(0|(c=(c+u|0)-9|0))>0?c:0))>(0|p)?p:c;break u}v=0,p=(0|(c=(0|(c=((i+u|0)+c|0)-9|0))>0?c:0))>(0|p)?p:c}if(w=-1,(((E=v|p)?2147483645:2147483646)|0)<(0|p))break e;G=(((0|E)!=0)+p|0)+1|0,u=-33&f;A:{if((0|u)==70){if((2147483647^G)<(0|i))break e;c=(0|i)>0?i:0;break A}if(c=rK(((c=i>>31)^i)-c|0,0,V),(V-c|0)<=1)for(;s[0|(c=c-1|0)]=48,(V-c|0)<2;);if(s[0|(W=c-2|0)]=f,s[c-1|0]=(0|i)<0?45:43,(0|(c=V-W|0))>(2147483647^G))break e}if((0|(i=c+G|0))>(2147483647^Z))break e;er(r,32,a,G=i+Z|0,n),rF(r,I,Z),er(r,48,a,G,65536^n);l:{d:{h:{if((0|u)==70){for(i=8|(f=m+16|0),v=9|f,A=u=A>>>0>R>>>0?R:A;;){c=rK(l[A>>2],0,v);v:{if((0|u)!=(0|A)){if(m+16>>>0>=c>>>0)break v;for(;s[0|(c=c-1|0)]=48,m+16>>>0>>0;);break v}if((0|c)!=(0|v))break v;s[m+24|0]=48,c=i}if(rF(r,c,v-c|0),!(R>>>0>=(A=A+4|0)>>>0))break}if(E&&rF(r,4206,1),(0|p)<=0|A>>>0>=h>>>0)break h;for(;;){if((c=rK(l[A>>2],0,v))>>>0>m+16>>>0)for(;s[0|(c=c-1|0)]=48,m+16>>>0>>0;);if(rF(r,c,(0|p)>=9?9:p),c=p-9|0,h>>>0<=(A=A+4|0)>>>0)break d;if(i=(0|p)>9,p=c,!i)break}break d}p:if(!((0|p)<0))for(R=A>>>0>>0?h:A+4|0,i=8|(f=m+16|0),h=9|f,u=A;;){c=rK(l[u>>2],0,h),(0|h)==(0|c)&&(s[m+24|0]=48,c=i);m:{if((0|u)!=(0|A)){if(m+16>>>0>=c>>>0)break m;for(;s[0|(c=c-1|0)]=48,m+16>>>0>>0;);break m}if(rF(r,c,1),c=c+1|0,!(v|p))break m;rF(r,4206,1)}if(f=h-c|0,rF(r,c,(0|f)>(0|p)?p:f),p=p-f|0,R>>>0<=(u=u+4|0)>>>0)break p;if(!((0|p)>=0))break}er(r,48,p+18|0,18,0),rF(r,W,V-W|0);break l}c=p}er(r,48,c+9|0,9,0)}er(r,32,a,G,8192^n),w=(0|a)<(0|G)?G:a;break e}v=(f<<26>>31&9)+I|0;N:if(!(i>>>0>11)){for(c=12-i|0,g=16;g*=16,c=c-1|0;);if(45==d[0|v]){e=-(g+(-e-g));break N}e=e+g-g}for(R=2|Z,A=32&f,c=(u=l[m+44>>2])>>31,c=rK((c^u)-c|0,0,V),(0|V)==(0|c)&&(s[m+15|0]=48,c=m+15|0),s[0|(p=c-2|0)]=f+15,s[c-1|0]=(0|u)<0?45:43,c=8&n,u=m+16|0;f=u,h=2147483648>y(e)?~~e:-2147483648,s[0|u]=A|d[h+5424|0],!(c|(0|i)>0)&0==(e=(e-+(0|h))*16)|((u=f+1|0)-(m+16|0)|0)!=1||(s[f+1|0]=46,u=f+2|0),0!=e;);if(w=-1,(2147483645-(f=(c=V-p|0)+R|0)|0)<(0|i))break e;w:{y:if(i&&!(((A=u-(m+16|0)|0)-2|0)>=(0|i))){i=i+2|0;break w}i=A=u-(m+16|0)|0}er(r,32,a,f=i+f|0,n),rF(r,v,R),er(r,48,a,f,65536^n),rF(r,m+16|0,A),er(r,48,i-A|0,0,0),rF(r,p,c),er(r,32,a,f,8192^n),w=(0|a)<(0|f)?f:a}return re=m+560|0,0|w},function(r,e){r|=0,e|=0;var a,i,n=0,f=0,b=0,k=0,c=0,u=0,s=0,A=0,d=0,h=0,v=0,p=0,N=0,w=0,y=0,E=0;n=e,e=l[e>>2]+7&-8,l[n>>2]=e+16,N=r,s=l[e>>2],f=l[e+4>>2],v=r=l[e+12>>2],re=c=re-32|0,r&=2147483647,u=r,b=r-1006698496|0,r=r-1140785152|0,e=n=l[e+8>>2];r:{if((0|b)==(0|r)&e>>>0>>0|r>>>0>b>>>0){if(n=v<<4|(r=n)>>>28,e=r<<4|f>>>28,r=n,(0|(f&=268435455))==134217728&(0|s)!=0|f>>>0>134217728){r=r+1073741824|0,r=(e=e+1|0)?r:r+1|0;break r}if(r=r+1073741824|0,s|(0|f)!=134217728)break r;r=(e=(f=1&e)+e|0)>>>0>>0?r+1|0:r;break r}if(!(!e&(0|u)==2147418112?!(f|s):u>>>0<2147418112)){n=v<<4|(r=n)>>>28,e=r<<4|f>>>28,r=524287&n|2146959360;break r}if(e=0,r=2146435072,u>>>0>1140785151||(r=0,(p=u>>>16|0)>>>0<15249))break r;e=s,r=f,u=b=65535&v|65536,h=n,k=n,A=p-15233|0;e:{if(64&A){n=e,e=31&(b=A+-64|0),(63&b)>>>0>=32?(r=n<>>32-e|r<>>0>=32?(n=d<>>32-k|b<>>0>=32?(n=0,e=r>>>k|0):(n=r>>>k|0,e=((1<>>k),k=w|e,b|=n,e=31&A,(63&A)>>>0>=32?(n=d<>>32-e|r<>2]=e,l[c+20>>2]=r,l[c+24>>2]=k,l[c+28>>2]=b,e=15361-p|0;a:{if(64&e){f=h,r=31&(e=e+-64|0),(63&e)>>>0>=32?(n=0,s=u>>>r|0):(n=u>>>r|0,s=((1<>>r),f=n,h=0,u=0;break a}if(!e)break a;b=h,n=31&(r=64-e|0),(63&r)>>>0>=32?(r=b<>>32-n|u<>>0>=32?(n=0,b=f>>>s|0):(n=f>>>s|0,b=((1<>>s),s=k|b,f=r|n,b=h,n=31&e,(63&e)>>>0>=32?(r=0,h=u>>>n|0):(r=u>>>n|0,h=((1<>>n),u=r}if(l[c>>2]=s,l[c+4>>2]=f,l[c+8>>2]=h,l[c+12>>2]=u,e=l[c+8>>2],r=l[c+12>>2]<<4|e>>>28,e<<=4,n=l[c>>2],e=(u=l[c+4>>2])>>>28|e,(0|(f=268435455&u))==134217728&(0|(n|=(l[c+16>>2]|l[c+24>>2]|(l[c+20>>2]|l[c+28>>2]))!=0))!=0|f>>>0>134217728){r=(e=e+1|0)?r:r+1|0;break r}if(n|(0|f)!=134217728)break r;r=(n=e)>>>0>(e=e+(1&e)|0)>>>0?r+1|0:r}re=c+32|0,a=0|e,t[0]=a,i=-2147483648&v|r,t[1]=i,y=N,E=+o[0],m[y>>3]=E},e_,function(r,e){e|=0,l[(r|=0)+4>>2]=7,l[r>>2]=e},function(r,e){e|=0,l[(r|=0)+4>>2]=10,l[r>>2]=e},function(r,e){e|=0,l[(r|=0)+4>>2]=13,l[r>>2]=e},e_,e_,e_,e_,e_,e_,function(r,e,a,i,n,f){r|=0,e|=0,a=w(a),i|=0,n=w(n),f|=0;var t=0;re=t=re-16|0,e=l[l[e>>2]+4>>2],eY[l[l[e>>2]+8>>2]](t,e,a,i,n,f),p[r>>2]=m[t>>3],p[r+4>>2]=m[t+8>>3],re=t+16|0},function(r){r|=0,r=l[l[r>>2]+8>>2],eY[l[l[r>>2]+8>>2]](r)},rn,function(r){return 6952},eg,function(r,e,a,i,n,f){r|=0,e|=0,a=w(a),i|=0,n=w(n),f|=0;var t=0,b=0;return re=t=re-16|0,b=l[r>>2],e=((r=l[r+4>>2])>>1)+e|0,1&r&&(b=l[b+l[e>>2]>>2]),eY[0|b](t,e,a,i,n,f),r=eo(16),e=l[t+12>>2],l[r+8>>2]=l[t+8>>2],l[r+12>>2]=e,e=l[t+4>>2],l[r>>2]=l[t>>2],l[r+4>>2]=e,re=t+16|0,0|r},function(r){return 6956},e_,e_,eg,eF,eB,eA,function(r){r|=0;var e=0;return s[(e=eo(12))+4|0]=0,l[e+8>>2]=l[r>>2],l[r>>2]=0,l[e>>2]=4368,0|e},function(r,e,a){r|=0,e|=0,a|=0;var i=0,n=0,f=0,t=0;if(re=i=re-32|0,(n=l[e>>2])>>>0<2147483632){r:{e:{if(n>>>0>=11){t=eo(f=(15|n)+1|0),l[i+16>>2]=-2147483648|f,l[i+8>>2]=t,l[i+12>>2]=n,f=n+t|0;break e}if(s[i+19|0]=n,f=(t=i+8|0)+n|0,!n)break r}ru(t,e+4|0,n)}return s[0|f]=0,l[i>>2]=a,eY[0|r](i+24|0,i+8|0,i),U(l[i+24>>2]),r=l[i+24>>2],I(0|r),I(l[i>>2]),s[i+19|0]<0&&rE(l[i+8>>2]),re=i+32|0,0|r}T(),k()},function(r,e,a){r|=0,e|=0,a|=0;var i=0,n=0;i=r,n=0|Y((s[e+11|0]<0?l[e>>2]:e)|0,6956,l[a>>2]),l[i>>2]=n},function(r){return 6976},eg,em,function(r){return 6979},e_,e_,eg,eF,eB,eA,function(r){r|=0;var e=0;return s[(e=eo(12))+4|0]=0,l[e+8>>2]=l[r>>2],l[r>>2]=0,l[e>>2]=4488,0|e},function(r,e,a){r|=0,e|=0,a|=0;var i=0,n=0;i=r,n=0|Y((s[e+11|0]<0?l[e>>2]:e)|0,6979,l[a>>2]),l[i>>2]=n},function(r){return 6982},eE,eT,function(){var r=0,e=0;return e=eo(4),A[(r=eo(28))+20>>1]=0,l[r+16>>2]=1065353216,A[r+10>>1]=0,A[r+12>>1]=0,l[r>>2]=0,l[r+24>>2]=0,s[r+9|0]=0,l[r+4>>2]=1,s[r+22|0]=0,l[1732]=l[1732]+1,l[e>>2]=r,0|e},eI,eE,function(r,e,a){e|=0,a|=0,s[(l[(r|=0)>>2]+e|0)+20|0]=a},et,function(r,e){r|=0,e=w(e);var a=0,i=0,n=0;if(re=a=re-16|0,r=l[r>>2],!(e>=w(0))){l[a>>2]=2262,re=i=re-16|0,l[i+12>>2]=a;r:if(!r){if(d[6936]){r=l[1733];break r}A[(r=eo(28))+20>>1]=0,l[r+16>>2]=1065353216,A[r+10>>1]=0,A[r+12>>1]=0,l[r>>2]=0,l[r+24>>2]=0,s[r+9|0]=0,l[r+4>>2]=1,s[r+22|0]=0,l[1733]=r,s[6936]=1,l[1732]=l[1732]+1}n=l[r+4>>2];e:{if(d[r+9|0]){eY[0|n](r,0,5,0,4215,a);break e}eY[0|n](r,0,5,4215,a)}re=i+16|0,eX(),k()}p[r+16>>2]=e==w(0)?w(0):e,re=a+16|0},function(r,e,a){r|=0,e|=0,a=w(a);var i=0;i=l[r>>2],e=((r=l[r+4>>2])>>1)+e|0,1&r&&(i=l[i+l[e>>2]>>2]),eY[0|i](e,a)},function(r,e){e|=0,s[l[(r|=0)>>2]+11|0]=e},ek,function(r,e){e|=0,s[l[(r|=0)>>2]+10|0]=e},function(r,e){return e|=0,d[(l[(r|=0)>>2]+e|0)+20|0]},eb,function(r){return d[l[(r|=0)>>2]+11|0]},ec,function(r){return d[l[(r|=0)>>2]+10|0]},function(){return 0|ry(eo(48),0,48)},eL,function(){var r=0;return l[(r=eo(16))>>2]=0,l[r+4>>2]=0,l[r+8>>2]=0,l[r+12>>2]=0,0|r},eL,function(){var r=0;return l[(r=eo(16))+8>>2]=0,l[r+12>>2]=0,l[r>>2]=0,0|r},eL,eR,eG,function(r,e){return e|=0,l[l[(r|=0)>>2]+e>>2]},function(r,e,a){e|=0,a|=0,l[l[(r|=0)>>2]+e>>2]=a},function(r){return 6987},rL,eT,function(){return 0|rJ(eo(12),0)},function(r,e){return e|=0,0|eY[0|(r|=0)](e)},function(r){return r|=0,0|rJ(eo(12),r)},eI,rL,function(r){r|=0;var e=0,a=0,i=0,n=0;re=i=re-624|0,e=l[r+4>>2],l[r+4>>2]=0,e&&eY[l[l[e>>2]+4>>2]](e),e=l[r+8>>2],l[r+8>>2]=0,e&&eY[l[l[e>>2]+4>>2]](e);r:{if(r=l[r>>2],l[r+560>>2]==l[r+556>>2]){if(l[r+552>>2])break r;r_(r+556|0),n=s[r+4|0],e=rk(i+32|0,l[r+568>>2]),a=l[e+4>>2],l[r>>2]=l[e>>2],l[r+4>>2]=a,a=l[e+20>>2],l[r+16>>2]=l[e+16>>2],l[r+20>>2]=a,a=l[e+12>>2],l[r+8>>2]=l[e+8>>2],l[r+12>>2]=a,ru(r+24|0,e+24|0,204),ru(r+228|0,e+228|0,328),(a=l[r+556>>2])&&(l[r+560>>2]=a,rE(a)),l[r+556>>2]=l[e+556>>2],l[r+560>>2]=l[e+560>>2],l[r+564>>2]=l[e+564>>2],l[r+584>>2]=l[e+584>>2],a=l[e+580>>2],l[r+576>>2]=l[e+576>>2],l[r+580>>2]=a,a=l[e+572>>2],l[r+568>>2]=l[e+568>>2],l[r+572>>2]=a,(0|n)<0&&(s[r+4|0]=128|d[r+4|0],l[r+24>>2]=-909&l[r+24>>2]|520),re=i+624|0;return}l[i+16>>2]=3252,rB(r,i+16|0),eX(),k()}l[i>>2]=2046,rB(r,i),eX(),k()},em,function(r,e){r|=0,e|=0;var a,i,n=0,f=w(0),b=0,o=0,k=w(0),c=0,A=0,h=0,v=w(0);r:{A=l[e>>2],e=l[r>>2];e:if(!((l[A+24>>2]^l[e+24>>2])&8388607)){v=p[A+40>>2],b=l[A+40>>2],f=p[e+40>>2];a:{i:{if((0|(n=l[e+40>>2]))!=2139156720){if(k=w(NaN),r=3,(0|n)==2141891242)break a;if((0|n)!=2140081935)break i;k=w(0),r=1;break a}r=2;break a}if(r=0,f!=f)break a;a=(-1073741825&n)+536870912|0,t[2]=a,k=u(),r=1073741824&n?2:1}n:{f:{if((0|b)!=2139156720){if(f=w(NaN),n=3,(0|b)==2141891242)break n;if((0|b)!=2140081935)break f;f=w(0),n=1;break n}f=w(0),n=2;break n}if(n=0,v!=v)break n;i=(-1073741825&b)+536870912|0,t[2]=i,f=u(),n=1073741824&b?2:1}if((0|n)!=(0|r)|!(!r|k!=k&f!=f|w(y(w(k-f)))>2]!=l[o>>2]))break e;r=0;t:{for(;;){if(b=r,(0|(r=r+1|0))==9)break t;if(l[(c=r<<2)+n>>2]!=l[o+c>>2])break}if(b>>>0<8)break e}if(n=e+80|0,o=A+80|0,l[n>>2]!=l[o>>2])break e;r=0;b:{for(;;){if(b=r,(0|(r=r+1|0))==9)break b;if(l[(c=r<<2)+n>>2]!=l[o+c>>2])break}if(b>>>0<8)break e}if(n=e+116|0,o=A+116|0,l[n>>2]!=l[o>>2])break e;r=0;o:{for(;;){if(b=r,(0|(r=r+1|0))==9)break o;if(l[(c=r<<2)+n>>2]!=l[o+c>>2])break}if(b>>>0<8)break e}if(n=e+152|0,o=A+152|0,l[n>>2]!=l[o>>2])break e;r=0;k:{for(;;){if(b=r,(0|(r=r+1|0))==9)break k;if(l[(c=r<<2)+n>>2]!=l[o+c>>2])break}if(b>>>0<8)break e}if(n=e+188|0,o=A+188|0,l[n>>2]!=l[o>>2])break e;r=0;c:{for(;;){if(b=r,(0|(r=r+1|0))==3)break c;if(l[(c=r<<2)+n>>2]!=l[o+c>>2])break}if(b>>>0<2)break e}for(c=A+200|0,h=e+200|0,r=0,b=1;;){u:if(r<<=2,n=l[r+c>>2],o=l[r+h>>2],b&&(b=0,r=1,(0|n)==(0|o)))continue;break}if((0|n)!=(0|o))break e;for(c=A+208|0,h=e+208|0,r=0,b=1;;){s:if(r<<=2,n=l[r+c>>2],o=l[r+h>>2],b&&(b=0,r=1,(0|n)==(0|o)))continue;break}if((0|n)!=(0|o))break e;for(c=A+216|0,h=e+216|0,r=0,b=1;;){A:if(r<<=2,n=l[r+c>>2],o=l[r+h>>2],b&&(b=0,r=1,(0|n)==(0|o)))continue;break}if((0|n)!=(0|o)||(r=(k=p[A+28>>2])!=k,f=p[e+28>>2],(0|r)==(f==f|0)|!(r|f!=f)&f!=k)||(f=p[e+32>>2],k=p[A+32>>2],(f==f|0)==(k!=k|0)|f==f&f!=k)||(r=(k=p[A+36>>2])!=k,f=p[e+36>>2],(0|r)==(f==f|0)|!r&f!=k))break e;if(r=0,(f=p[e+224>>2])!=f&&(r=1,(k=p[A+224>>2])!=k)||(k=f,f=p[A+224>>2],k==f|f!=f&r))break r}for(ru(e+24|0,A+24|0,204);;){if(4&(r=d[e+4|0]))break r;if(s[e+4|0]=4|r,(r=l[e+20>>2])&&eY[0|r](e),l[e+308>>2]=2143289344,!(e=l[e+552>>2]))break}}},ek,function(r,e){r|=0,e|=0;var a=0;r:if(r=l[r>>2],((a=l[r+24>>2])>>>16&3)!=(0|e))for(l[r+24>>2]=-196609&a|e<<16&196608;;){if(4&(e=d[r+4|0]))break r;if(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}},ek,function(r,e,a){e|=0,a=+a,r4(l[(r|=0)>>2],e,rx(w(a)))},function(r,e,a,i){r|=0,e|=0,a|=0,i=+i;var n=0;n=l[r>>2],e=((r=l[r+4>>2])>>1)+e|0,1&r&&(n=l[n+l[e>>2]>>2]),eY[0|n](e,a,i)},function(r,e,a){e|=0,a=+a,r4(l[(r|=0)>>2],e,rD(w(a)))},function(r,e){e|=0,rC(l[(r|=0)>>2],5,e)},function(r,e){e|=0,rC(l[(r|=0)>>2],6,e)},function(r,e){e|=0,rC(l[(r|=0)>>2],7,e)},function(r,e){r|=0,e|=0;var a=0;r:if(r=l[r>>2],((a=l[r+24>>2])>>>2&3)!=(0|e))for(l[r+24>>2]=-13&a|e<<2&12;;){if(4&(e=d[r+4|0]))break r;if(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}},function(r,e){r|=0,e|=0;var a=0;r:if(r=l[r>>2],((a=l[r+24>>2])>>>18&3)!=(0|e))for(l[r+24>>2]=-786433&a|e<<18&786432;;){if(4&(e=d[r+4|0]))break r;if(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}},function(r,e){r|=0,e|=0;var a=0;r:if(r=l[r>>2],((a=l[r+24>>2])>>>4&7)!=(0|e))for(l[r+24>>2]=-113&a|e<<4&112;;){if(4&(e=d[r+4|0]))break r;if(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}},function(r,e,a){e|=0,a=+a,r8(l[(r|=0)>>2],e,rx(w(a)))},function(r,e,a){e|=0,a=+a,r8(l[(r|=0)>>2],e,rD(w(a)))},function(r,e){e|=0,r8(l[(r|=0)>>2],e,2141891242)},function(r,e){r|=0,e|=0;var a=0;r:if(r=l[r>>2],((a=l[r+24>>2])>>>20&3)!=(0|e))for(l[r+24>>2]=-3145729&a|e<<20&3145728;;){if(4&(e=d[r+4|0]))break r;if(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}},function(r,e){r|=0,e|=0;var a=0;r:if(r=l[r>>2],((a=l[r+24>>2])>>>22&1)!=(0|e))for(l[r+24>>2]=-4194305&a|e<<22&4194304;;){if(4&(e=d[r+4|0]))break r;if(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}},function(r,e){r|=0,e=+e;var a=0,i=w(0),n=w(0);r:if(i=w(e),n=p[(r=l[r>>2])+28>>2],!(i==n|i!=i&n!=n))for(p[r+28>>2]=i;;){if(4&(a=d[r+4|0]))break r;if(s[r+4|0]=4|a,(a=l[r+20>>2])&&eY[0|a](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}},function(r,e,a){r|=0,e|=0,a=+a;var i=0;i=l[r>>2],e=((r=l[r+4>>2])>>1)+e|0,1&r&&(i=l[i+l[e>>2]>>2]),eY[0|i](e,a)},function(r,e){e=+e,r1(l[(r|=0)>>2],rx(w(e)))},function(r,e){e=+e,r1(l[(r|=0)>>2],rD(w(e)))},function(r){r1(l[(r|=0)>>2],2141891242)},function(r,e){r|=0,e=+e;var a=0,i=w(0),n=w(0);r:if(i=w(e),n=p[(r=l[r>>2])+32>>2],!(i==n|i!=i&n!=n))for(p[r+32>>2]=i;;){if(4&(a=d[r+4|0]))break r;if(s[r+4|0]=4|a,(a=l[r+20>>2])&&eY[0|a](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}},function(r,e){r|=0,e=+e;var a=0,i=w(0),n=w(0);r:if(i=w(e),n=p[(r=l[r>>2])+36>>2],!(i==n|i!=i&n!=n))for(p[r+36>>2]=i;;){if(4&(a=d[r+4|0]))break r;if(s[r+4|0]=4|a,(a=l[r+20>>2])&&eY[0|a](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}},function(r,e){e=+e,r2(l[(r|=0)>>2],0,rx(w(e)))},function(r,e){e=+e,r2(l[(r|=0)>>2],0,rD(w(e)))},function(r){r2(l[(r|=0)>>2],0,2141891242)},function(r,e){e=+e,r2(l[(r|=0)>>2],1,rx(w(e)))},function(r,e){e=+e,r2(l[(r|=0)>>2],1,rD(w(e)))},function(r){r2(l[(r|=0)>>2],1,2141891242)},function(r,e){e=+e,r$(l[(r|=0)>>2],0,rx(w(e)))},function(r,e){e=+e,r$(l[(r|=0)>>2],0,rD(w(e)))},function(r,e){e=+e,r$(l[(r|=0)>>2],1,rx(w(e)))},function(r,e){e=+e,r$(l[(r|=0)>>2],1,rD(w(e)))},function(r,e){e=+e,r0(l[(r|=0)>>2],0,rx(w(e)))},function(r,e){e=+e,r0(l[(r|=0)>>2],0,rD(w(e)))},function(r,e){e=+e,r0(l[(r|=0)>>2],1,rx(w(e)))},function(r,e){e=+e,r0(l[(r|=0)>>2],1,rD(w(e)))},function(r,e){r|=0,e=+e;var a=0,i=w(0),n=w(0);r:if(i=w(e),n=p[(r=l[r>>2])+224>>2],!(i==n|i!=i&n!=n))for(p[r+224>>2]=i;;){if(4&(a=d[r+4|0]))break r;if(s[r+4|0]=4|a,(a=l[r+20>>2])&&eY[0|a](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}},function(r,e,a){r|=0,e|=0,a=+a;var i=0,n=0;r:if(e=(r=l[r>>2])+(e<<2)|0,(0|(n=l[e+152>>2]))!=(0|(i=rx(w(a)))))for(l[e+152>>2]=i;;){if(4&(e=d[r+4|0]))break r;if(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}},function(r,e,a){e|=0,a=+a,r3(l[(r|=0)>>2],e,rx(w(a)))},function(r,e,a){e|=0,a=+a,r3(l[(r|=0)>>2],e,rD(w(a)))},function(r,e,a){r|=0,e|=0,a=+a;var i=0,n=0;r:if(e=(r=l[r>>2])+(e<<2)|0,(0|(n=l[e+188>>2]))!=(0|(i=rx(w(a)))))for(l[e+188>>2]=i;;){if(4&(e=d[r+4|0]))break r;if(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}},function(r){return 3&h[l[(r|=0)>>2]+26>>1]},ec,function(r,e,a){r|=0,e|=0,a|=0;var i,n=0,f=0,b=w(0);n=2,b=p[(e=l[e>>2]+(a<<2)|0)+80>>2];r:{e:{if((0|(e=l[e+80>>2]))!=2139156720){if(f=NaN,(0|e)==2141891242){n=3;break r}if((0|e)!=2140081935)break e;f=0,n=1}break r}if(b!=b){n=0;break r}n=1073741824&e?2:1,f=+(i=(-1073741825&e)+536870912|0,t[2]=i,u())}m[r+8>>3]=f,l[r>>2]=n},function(r,e,a){r|=0,e|=0,a|=0;var i=0,n=0;return re=i=re-16|0,n=l[r>>2],e=((r=l[r+4>>2])>>1)+e|0,1&r&&(n=l[n+l[e>>2]>>2]),eY[0|n](i,e,a),r=eo(16),e=l[i+12>>2],l[r+8>>2]=l[i+8>>2],l[r+12>>2]=e,e=l[i+4>>2],l[r>>2]=l[i>>2],l[r+4>>2]=e,re=i+16|0,0|r},function(r){return l[l[(r|=0)>>2]+24>>2]>>>7&7},function(r){return l[l[(r|=0)>>2]+24>>2]>>>10&7},function(r){return l[l[(r|=0)>>2]+24>>2]>>>13&7},function(r){return l[l[(r|=0)>>2]+24>>2]>>>2&3},function(r){return l[l[(r|=0)>>2]+24>>2]>>>18&3},function(r){return l[l[(r|=0)>>2]+24>>2]>>>4&7},function(r,e,a){r|=0,e|=0,a|=0;var i,n=0,f=0,b=w(0);n=2,b=p[(e=l[e>>2]+(a<<2)|0)+44>>2];r:{e:{if((0|(e=l[e+44>>2]))!=2139156720){if(f=NaN,(0|e)==2141891242){n=3;break r}if((0|e)!=2140081935)break e;f=0,n=1}break r}if(b!=b){n=0;break r}n=1073741824&e?2:1,f=+(i=(-1073741825&e)+536870912|0,t[2]=i,u())}m[r+8>>3]=f,l[r>>2]=n},function(r,e){r|=0,e|=0;var a,i=0,n=w(0),f=w(0);n=w(NaN),f=p[(e=l[e>>2])+40>>2],e=l[e+40>>2],i=3;r:if((0|e)!=2141891242){if((0|e)==2140081935){n=w(0),i=1;break r}if((0|e)==2139156720){n=w(0),i=2;break r}if(i=0,f!=f)break r;a=(-1073741825&e)+536870912|0,t[2]=a,n=u(),i=1073741824&e?2:1}l[r>>2]=i,m[r+8>>3]=n},function(r,e){r|=0,e|=0;var a=0,i=0;return re=a=re-16|0,i=l[r>>2],e=((r=l[r+4>>2])>>1)+e|0,1&r&&(i=l[i+l[e>>2]>>2]),eY[0|i](a,e),r=eo(16),e=l[a+12>>2],l[r+8>>2]=l[a+8>>2],l[r+12>>2]=e,e=l[a+4>>2],l[r>>2]=l[a>>2],l[r+4>>2]=e,re=a+16|0,0|r},function(r){r|=0;var e=w(0);return+((e=p[l[r>>2]+32>>2])==e?e:w(0))},function(r,e){r|=0,e|=0;var a=0;return a=l[r>>2],e=((r=l[r+4>>2])>>1)+e|0,1&r&&(a=l[a+l[e>>2]>>2]),+eY[0|a](e)},function(r){r|=0;var e=w(0);return(e=p[(r=l[r>>2])+36>>2])!=e&&(e=d[l[r+568>>2]+10|0]?w(1):w(0)),+e},function(r,e){r|=0,e|=0;var a,i=0,n=0,f=w(0);f=p[(e=l[e>>2])+200>>2];r:{e:{if((0|(e=l[e+200>>2]))!=2139156720){if(n=NaN,i=3,(0|e)==2141891242)break r;if((0|e)!=2140081935)break e;n=0,i=1;break r}i=2;break r}if(i=0,f!=f)break r;n=+(a=(-1073741825&e)+536870912|0,t[2]=a,u()),i=1073741824&e?2:1}e=i,m[r+8>>3]=n,l[r>>2]=e},function(r,e){r|=0,e|=0;var a,i=0,n=0,f=w(0);f=p[(e=l[e>>2])+204>>2];r:{e:{if((0|(e=l[e+204>>2]))!=2139156720){if(n=NaN,i=3,(0|e)==2141891242)break r;if((0|e)!=2140081935)break e;n=0,i=1;break r}i=2;break r}if(i=0,f!=f)break r;n=+(a=(-1073741825&e)+536870912|0,t[2]=a,u()),i=1073741824&e?2:1}e=i,m[r+8>>3]=n,l[r>>2]=e},function(r,e){r|=0,e|=0;var a,i=0,n=0,f=w(0);f=p[(e=l[e>>2])+208>>2];r:{e:{if((0|(e=l[e+208>>2]))!=2139156720){if(n=NaN,i=3,(0|e)==2141891242)break r;if((0|e)!=2140081935)break e;n=0,i=1;break r}i=2;break r}if(i=0,f!=f)break r;n=+(a=(-1073741825&e)+536870912|0,t[2]=a,u()),i=1073741824&e?2:1}e=i,m[r+8>>3]=n,l[r>>2]=e},function(r,e){r|=0,e|=0;var a,i=0,n=0,f=w(0);f=p[(e=l[e>>2])+212>>2];r:{e:{if((0|(e=l[e+212>>2]))!=2139156720){if(n=NaN,i=3,(0|e)==2141891242)break r;if((0|e)!=2140081935)break e;n=0,i=1;break r}i=2;break r}if(i=0,f!=f)break r;n=+(a=(-1073741825&e)+536870912|0,t[2]=a,u()),i=1073741824&e?2:1}e=i,m[r+8>>3]=n,l[r>>2]=e},function(r,e){r|=0,e|=0;var a,i=0,n=0,f=w(0);f=p[(e=l[e>>2])+216>>2];r:{e:{if((0|(e=l[e+216>>2]))!=2139156720){if(n=NaN,i=3,(0|e)==2141891242)break r;if((0|e)!=2140081935)break e;n=0,i=1;break r}i=2;break r}if(i=0,f!=f)break r;n=+(a=(-1073741825&e)+536870912|0,t[2]=a,u()),i=1073741824&e?2:1}e=i,m[r+8>>3]=n,l[r>>2]=e},function(r,e){r|=0,e|=0;var a,i=0,n=0,f=w(0);f=p[(e=l[e>>2])+220>>2];r:{e:{if((0|(e=l[e+220>>2]))!=2139156720){if(n=NaN,i=3,(0|e)==2141891242)break r;if((0|e)!=2140081935)break e;n=0,i=1;break r}i=2;break r}if(i=0,f!=f)break r;n=+(a=(-1073741825&e)+536870912|0,t[2]=a,u()),i=1073741824&e?2:1}e=i,m[r+8>>3]=n,l[r>>2]=e},function(r){r|=0;var e=w(0);return+((e=p[l[r>>2]+224>>2])!=e?w(NaN):e)},function(r,e){r|=0,e|=0;var a,i=0,n=w(0);n=p[(r=l[r>>2]+(e<<2)|0)+152>>2];r:{e:if(!((0|(r=l[r+152>>2]))==2139156720|(0|r)==2140081935)){if(i=NaN,(0|r)==2141891242|n!=n)break r;if((0|r)==2139156720)break e;return+(a=(-1073741825&r)+536870912|0,t[2]=a,u())}i=0}return+i},function(r,e,a){r|=0,e|=0,a|=0;var i=0;return i=l[r>>2],e=((r=l[r+4>>2])>>1)+e|0,1&r&&(i=l[i+l[e>>2]>>2]),+eY[0|i](e,a)},function(r){return l[l[(r|=0)>>2]+24>>2]>>>20&3},function(r){return l[l[(r|=0)>>2]+24>>2]>>>22&1},function(r,e,a){r|=0,e|=0,a|=0;var i,n=0,f=0,b=w(0);n=2,b=p[(e=l[e>>2]+(a<<2)|0)+116>>2];r:{e:{if((0|(e=l[e+116>>2]))!=2139156720){if(f=NaN,(0|e)==2141891242){n=3;break r}if((0|e)!=2140081935)break e;f=0,n=1}break r}if(b!=b){n=0;break r}n=1073741824&e?2:1,f=+(i=(-1073741825&e)+536870912|0,t[2]=i,u())}m[r+8>>3]=f,l[r>>2]=n},function(r,e){r|=0,e|=0;var a,i=w(0),n=w(0);n=p[(r=l[r>>2]+(e<<2)|0)+188>>2];r:{e:if(!((0|(r=l[r+188>>2]))==2139156720|(0|r)==2140081935)){if(i=w(NaN),(0|r)==2141891242|n!=n)break r;if((0|r)==2139156720)break e;return w((a=(-1073741825&r)+536870912|0,t[2]=a,u()))}i=w(0)}return w(i)},function(r,e,a){r|=0,e|=0,a|=0;var i=0;return i=l[r>>2],e=((r=l[r+4>>2])>>1)+e|0,1&r&&(i=l[i+l[e>>2]>>2]),w(w(eY[0|i](e,a)))},function(r,e,a){r|=0,e|=0,a|=0;var i=0,n=0,f=0,t=0,b=0,o=0,c=0,u=0,A=0,h=0;re=b=re-80|0,r=l[r>>2];r:{e:{if(o=l[e>>2],!l[o+552>>2]){if(l[r+8>>2])break e;t=(e=l[r+556>>2])+(a<<2)|0,i=l[r+560>>2],f=l[(n=r+564|0)>>2];a:{if(i>>>0>>0){if((0|i)==(0|t)){l[t>>2]=o,l[r+560>>2]=t+4;break a}if(a=i,e=i-4|0,i>>>0>e>>>0)for(;l[a>>2]=l[e>>2],a=a+4|0,i>>>0>(e=e+4|0)>>>0;);l[r+560>>2]=a,(0|(e=t+4|0))!=(0|i)&&(e=i-e|0,rm(i-(-4&e)|0,t,e)),l[t>>2]=o;break a}if((i=(i-e>>2)+1|0)>>>0>=1073741824)break r;f=(e=f-e|0)>>>1|0,a=l[(n=en(b+32|0,e>>>0>=2147483644?1073741823:i>>>0>>0?f:i,a,n))+8>>2];i:if((0|a)==l[n+12>>2]){if(e=l[n+4>>2],i=l[n>>2],e>>>0>i>>>0){a=rm(c=(i=-(((e-i>>2)+1|0)/2)<<2)+e|0,f=e,e=a-e|0)+e|0,l[n+8>>2]=a,l[n+4>>2]=i+l[n+4>>2];break i}f=en(b+56|0,e=(0|a)==(0|i)?1:a-i>>1,e>>>2|0,l[n+16>>2]),i=l[f+8>>2],e=l[n+4>>2],a=l[n+8>>2];n:{if((0|e)==(0|a)){a=i,i=e;break n}for(a=(a-e|0)+i|0;l[i>>2]=l[e>>2],e=e+4|0,(0|(i=i+4|0))!=(0|a););e=l[n+8>>2],i=l[n+4>>2]}if(c=l[n>>2],l[n>>2]=l[f>>2],l[f>>2]=c,l[n+4>>2]=l[f+4>>2],l[f+4>>2]=i,l[n+8>>2]=a,l[f+8>>2]=e,u=l[n+12>>2],l[n+12>>2]=l[f+12>>2],l[f+12>>2]=u,(0|e)!=(0|i)&&(l[f+8>>2]=((i-e|0)+3&-4)+e),!c)break i;rE(c),a=l[n+8>>2]}if(l[a>>2]=o,l[n+8>>2]=l[n+8>>2]+4,e=l[r+556>>2],a=t-e|0,A=n,h=rm(l[n+4>>2]-a|0,e,a),l[A+4>>2]=h,i=l[r+560>>2]-t|0,t=rm(l[n+8>>2],t,i),e=l[r+556>>2],l[r+556>>2]=l[n+4>>2],l[n+4>>2]=e,a=l[r+560>>2],l[r+560>>2]=i+t,l[n+8>>2]=a,i=l[r+564>>2],l[r+564>>2]=l[n+12>>2],l[n>>2]=e,l[n+12>>2]=i,(0|e)!=(0|a)&&(l[n+8>>2]=a+((e-a|0)+3&-4)),!e)break a;rE(e)}for(l[o+552>>2]=r;!(4&(e=d[r+4|0]))&&(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,r=l[r+552>>2]););re=b+80|0;return}l[b+16>>2]=4006,rB(r,b+16|0),eX(),k()}l[b>>2]=4139,rB(r,b),eX(),k()}T(),k()},et,function(r,e){r|=0,e|=0;var a=0,i=0,n=0,f=0;re=n=re-320|0,r=l[r>>2];r:if(l[r+560>>2]!=l[r+556>>2]){if(i=l[e>>2],e=l[i+552>>2],!rq(r,i))break r;if((0|r)==(0|e)){for(l[(e=a=ry(n,0,288))+16>>2]=2143289344,l[e+20>>2]=2143289344,ry(e+24|0,0,49),l[e+80>>2]=2143289344,f=e+288|0,e=e+96|0;l[e+16>>2]=-1082130432,l[e+20>>2]=-1082130432,l[e+8>>2]=0,l[e+12>>2]=0,l[e>>2]=-1082130432,l[e+4>>2]=-1082130432,(0|f)!=(0|(e=e+24|0)););l[a+312>>2]=-1082130432,l[a+316>>2]=-1082130432,l[a+304>>2]=0,l[a+308>>2]=0,l[a+296>>2]=-1082130432,l[a+300>>2]=-1082130432,l[a+288>>2]=2143289344,l[a+292>>2]=2143289344,ru(i+228|0,a,320),l[i+552>>2]=0}for(;;){if(4&(e=d[r+4|0]))break r;if(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}}re=n+320|0},ek,function(r){return r|=0,r=l[r>>2],l[r+560>>2]-l[r+556>>2]>>2},ec,function(r){return(r|=0,r=l[l[r>>2]+552>>2])?l[r>>2]:0},ec,function(r,e){r|=0,e|=0;var a=0,i=0;a=l[r>>2],r=l[a+556>>2];r:!(l[a+560>>2]-r>>2>>>0<=e>>>0)&&(r=l[r+(e<<2)>>2])&&(i=l[r>>2]);return 0|i},eb,function(r){return(2&d[l[(r|=0)>>2]+4|0])>>>1|0},ec,function(r,e){r|=0,e|=0;var a=0;r:if(((2&(a=d[(r=l[r>>2])+4|0]))>>>1|0)!=(0|e))for(s[r+4|0]=253&a|(e?2:0);;){if(4&(e=d[r+4|0]))break r;if(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}},ek,function(r,e){r|=0,e|=0;var a=0;a=l[r+4>>2],l[r+4>>2]=e,a&&eY[l[l[a>>2]+4>>2]](a),r7(l[r>>2],14)},ek,function(r){r|=0;var e=0;e=l[r+4>>2],l[r+4>>2]=0,e&&eY[l[l[e>>2]+4>>2]](e),r7(l[r>>2],0)},function(r,e){r|=0,e|=0;var a=0;a=l[r+8>>2],l[r+8>>2]=e,a&&eY[l[l[a>>2]+4>>2]](a),l[l[r>>2]+20>>2]=15},ek,function(r){r|=0;var e=0;e=l[r+8>>2],l[r+8>>2]=0,e&&eY[l[l[e>>2]+4>>2]](e),l[l[r>>2]+20>>2]=0},function(r){r|=0;var e=0,a=0;if(re=a=re-16|0,r=l[r>>2],l[r+8>>2]){for(;!(4&(e=d[r+4|0]))&&(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,r=l[r+552>>2]););re=a+16|0;return}l[a>>2]=1024,rB(r,a),eX(),k()},function(r){return(4&d[l[(r|=0)>>2]+4|0])>>>2|0},ec,function(r,e,a,i){r|=0,e=+e,a=+a,i|=0;var n,f,b,o,k=w(0),c=w(0),s=0,A=w(0),h=0,v=w(0),m=0,N=w(0),E=0;re=E=re+-64|0,s=l[r>>2],ry(E+8|0,0,56),l[1735]=l[1735]+1,rc(s),A=w(e),c=p[s+572>>2];r:{e:{a:switch(0|(r=l[s+576>>2])){case 0:case 3:break e;default:break a}k=p[s+572>>2];i:{if(!((0|r)!=1|k!=k)){if(!((k=c)>2];t:{b:{r=l[s+216>>2];o:{k:if((0|r)!=2139156720){if((0|r)==2140081935)break t;m=4276;c:{if((0|r)!=2141891242){if(c==c)break c;m=4268}switch(k=p[m>>2],l[m+4>>2]-1|0){case 0:break o;case 1:break k;default:break b}}if(n=(-1073741825&r)+536870912|0,t[2]=n,k=u(),!(1073741824&r))break o}k=w(w(k*A)*w(.009999999776482582))}if(k!=k)break b;k=w(0);u:if((0|r)!=2139156720){if((0|r)==2140081935)break t;h=4276;s:{if((0|r)!=2141891242){if(c==c)break s;h=4268}switch(k=p[h>>2],N=w(NaN),m=2,l[h+4>>2]-1|0){case 1:break u;case 0:break t;default:break r}}if(f=(-1073741825&r)+536870912|0,t[2]=f,k=u(),!(1073741824&r))break t}N=w(w(k*A)*w(.009999999776482582)),m=2;break r}m=A==A,N=A;break r}m=2,N=k}v=w(a),c=p[s+580>>2];A:{l:{d:switch(0|(r=l[s+584>>2])){case 0:case 3:break l;default:break d}k=p[s+580>>2];h:{if(!((0|r)!=1|k!=k)){if(!((k=c)>2];m:{N:{r=l[s+220>>2];w:{y:if((0|r)!=2139156720){if((0|r)==2140081935)break m;h=4276;E:{if((0|r)!=2141891242){if(c==c)break E;h=4268}switch(k=p[h>>2],l[h+4>>2]-1|0){case 0:break w;case 1:break y;default:break N}}if(b=(-1073741825&r)+536870912|0,t[2]=b,k=u(),!(1073741824&r))break w}k=w(w(k*v)*w(.009999999776482582))}if(k!=k)break N;k=w(0);G:if((0|r)!=2139156720){if((0|r)==2140081935)break m;h=4276;R:{if((0|r)!=2141891242){if(c==c)break R;h=4268}switch(k=p[h>>2],c=w(NaN),r=2,l[h+4>>2]-1|0){case 0:break m;case 1:break G;default:break A}}if(o=(-1073741825&r)+536870912|0,t[2]=o,k=u(),!(1073741824&r))break m}c=w(w(k*v)*w(.009999999776482582)),r=2;break A}r=v==v,c=v;break A}r=2,c=k}rt(s,N,c,i,m,r,A,v,1,0,l[s+568>>2],E+8|0,0,l[1735])&&(rO(s,3&d[s+300|0],A,v,A),function r(e,a,i,n){var f=0,t=0,b=0,o=0,k=0,c=0,u=0,s=0,A=0,h=0,v=0,m=w(0),N=w(0),E=w(0),G=0,R=w(0);r:if(0!=a){if(m=p[e+248>>2],N=p[e+244>>2],E=p[e+232>>2],s=+p[e+228>>2],f=(b=8&d[e+4|0])>>>3|0,G=e,R=rH(s,a,0,f),p[G+228>>2]=R,A=+E,G=e,R=rH(A,a,0,f),p[G+232>>2]=R,f=(k=rl((h=+N)*a))!=k,t=(c=rl((v=+m)*a))!=c,i=s+i,o=f|(o=1e-4>y(k))?!o|f:!(1e-4>y(k+-1)),f=(0|b)!=0,G=e,R=w(rH(i+h,a,o&f,!o&f)-rH(i,a,0,f)),p[G+244>>2]=R,n=A+n,t=t|(b=1e-4>y(c))?!b|t:!(1e-4>y(c+-1)),G=e,R=w(rH(n+v,a,f&t,!t&f)-rH(n,a,0,f)),p[G+248>>2]=R,f=l[e+560>>2],t=l[e+556>>2],(0|f)==(0|t))break r;for(t=(f=f-t>>2)>>>0<=1?1:f;f=l[e+556>>2],f=l[e+560>>2]-f>>2>>>0>u>>>0?l[f+(u<<2)>>2]:0,r(f,a,i,n),(0|t)!=(0|(u=u+1|0)););}}(s,+p[l[s+568>>2]+16>>2],0,0)),re=E- -64|0},function(r,e,a,i,n){r|=0,e|=0,a=+a,i=+i,n|=0;var f=0;f=l[r>>2],e=((r=l[r+4>>2])>>1)+e|0,1&r&&(f=l[f+l[e>>2]>>2]),eY[0|f](e,a,i,n)},function(r){return+p[l[(r|=0)>>2]+228>>2]},function(r){return+p[l[(r|=0)>>2]+236>>2]},function(r){return+p[l[(r|=0)>>2]+232>>2]},function(r){return+p[l[(r|=0)>>2]+240>>2]},function(r){return+p[l[(r|=0)>>2]+244>>2]},function(r){return+p[l[(r|=0)>>2]+248>>2]},function(r,e){r|=0,e|=0,e=l[e>>2],m[r>>3]=p[e+228>>2],m[r+8>>3]=p[e+236>>2],m[r+16>>3]=p[e+232>>2],m[r+24>>3]=p[e+240>>2],m[r+32>>3]=p[e+244>>2],m[r+40>>3]=p[e+248>>2]},function(r,e){r|=0,e|=0;var a=0,i=0;return re=a=re-48|0,i=l[r>>2],e=((r=l[r+4>>2])>>1)+e|0,1&r&&(i=l[i+l[e>>2]>>2]),eY[0|i](a,e),r=ru(eo(48),a,48),re=a+48|0,0|r},function(r,e){r|=0,e|=0;var a=0;if(re=a=re-16|0,r=l[r>>2],(0|e)<6){re=a+16|0;r:{e:switch(e-4|0){case 0:if(e=r+260|0,(3&d[r+300|0])==2)break r;e=r+252|0;break r;case 1:if(e=r+252|0,(3&d[r+300|0])==2)break r;e=r+260|0;break r;default:break e}e=(r+(e<<2)|0)+252|0}return+p[e>>2]}l[a>>2]=1871,rB(r,a),eX(),k()},function(r,e){r|=0,e|=0;var a=0;if(re=a=re-16|0,r=l[r>>2],(0|e)<6){re=a+16|0;r:{e:switch(e-4|0){case 0:if(e=r+276|0,(3&d[r+300|0])==2)break r;e=r+268|0;break r;case 1:if(e=r+268|0,(3&d[r+300|0])==2)break r;e=r+276|0;break r;default:break e}e=(r+(e<<2)|0)+268|0}return+p[e>>2]}l[a>>2]=1871,rB(r,a),eX(),k()},function(r,e){r|=0,e|=0;var a=0;if(re=a=re-16|0,r=l[r>>2],(0|e)<6){re=a+16|0;r:{e:switch(e-4|0){case 0:if(e=r+292|0,(3&d[r+300|0])==2)break r;e=r+284|0;break r;case 1:if(e=r+284|0,(3&d[r+300|0])==2)break r;e=r+292|0;break r;default:break e}e=(r+(e<<2)|0)+284|0}return+p[e>>2]}l[a>>2]=1871,rB(r,a),eX(),k()},eR,eG,eR,eG,rw,ew,function(r){rE(ew(r|=0))},function(r,e,a,i,n,f){r|=0,e|=0,a=w(a),i|=0,n=w(n),f|=0;var t=0,b=0,o=0;re=t=re-48|0,o=l[e+8>>2];r:{if(1&s[6972]){e=l[1742];break r}e=0|F(5,4416),s[6972]=1,l[1742]=e}l[t+40>>2]=f,p[t+32>>2]=n,l[t+24>>2]=i,p[t+16>>2]=a,b=+H(0|e,0|o,2873,t+12|0,t+16|0);e:{if(b<4294967296&b>=0){e=~~b>>>0;break e}e=0}i=l[t+12>>2],f=l[e+4>>2],l[r>>2]=l[e>>2],l[r+4>>2]=f,f=l[e+12>>2],l[r+8>>2]=l[e+8>>2],l[r+12>>2]=f,M(0|i),re=t+48|0},eC,eS,eN,function(r){rE(eN(r|=0))},function(r){ep(l[(r|=0)+8>>2],3244)},eC,function(r){return 0|K(l[(r|=0)+60>>2])},function(r,e,a){r|=0,e|=0,a|=0;var i=0,n=0,f=0,t=0,b=0,o=0,k=0;re=i=re-32|0,n=l[r+28>>2],l[i+16>>2]=n,f=l[r+20>>2],l[i+28>>2]=a,l[i+24>>2]=e,e=f-n|0,l[i+20>>2]=e,f=e+a|0,o=2,e=i+16|0;r:{for(;;){e:{a:{i:{if(!eZ(0|J(l[r+60>>2],0|e,0|o,i+12|0))){if((0|(t=l[i+12>>2]))==(0|f))break i;if((0|t)>=0)break a;break e}if((0|f)!=-1)break e}e=l[r+44>>2],l[r+28>>2]=e,l[r+20>>2]=e,l[r+16>>2]=e+l[r+48>>2],r=a;break r}n=((k=(b=l[e+4>>2])>>>0>>0)<<3)+e|0,b=t-(k?b:0)|0,l[n>>2]=b+l[n>>2],l[(e=(k?12:4)+e|0)>>2]=l[e>>2]-b,f=f-t|0,o=o-k|0,e=n;continue}break}if(l[r+28>>2]=0,l[r+16>>2]=0,l[r+20>>2]=0,l[r>>2]=32|l[r>>2],r=0,(0|o)==2)break r;r=a-l[e+4>>2]|0}return re=i+32|0,0|r},function(r,e,a,i){r|=0,e|=0,a|=0,i|=0;var n=0;return re=n=re-16|0,r=eZ(0|z(l[r+60>>2],0|e,0|a,255&i,n+8|0)),re=n+16|0,ra=r?-1:l[n+12>>2],(r?-1:l[n+8>>2])|0},function(r){return 0},function(r,e,a,i){return ra=0,0},function(r,e,a){r|=0,e|=0,a|=0;var i=0,n=0,f=0,t=0,b=0;return n=l[r+84>>2],f=l[n>>2],i=l[n+4>>2],b=l[r+28>>2],t=l[r+20>>2]-b|0,(t=i>>>0>>0?i:t)&&(ru(f,b,t),f=t+l[n>>2]|0,l[n>>2]=f,i=l[n+4>>2]-t|0,l[n+4>>2]=i),(i=a>>>0>i>>>0?i:a)&&(ru(f,e,i),f=i+l[n>>2]|0,l[n>>2]=f,l[n+4>>2]=l[n+4>>2]-i),s[0|f]=0,e=l[r+44>>2],l[r+28>>2]=e,l[r+20>>2]=e,0|a},eS]).set=function(r,e){this[r]=e},a.get=function(r){return this[r]},a);function eU(){return b.byteLength/65536|0}return{E:function(){for(var r=0,e=0,a=0;a=(e=r<<4)+5888|0,l[e+5892>>2]=a,l[e+5896>>2]=a,(0|(r=r+1|0))!=64;);rd(48),l[1736]=16,l[1737]=0,rn(),l[1737]=l[1748],l[1748]=6944,l[1749]=194,l[1750]=0,rw(),l[1750]=l[1748],l[1748]=6996},F:function(r){r|=0;var e=0,a=0,i=0,n=0,f=0;re=a=re-96|0,l[a>>2]=r,re=i=re-16|0,l[i+12>>2]=a,re=r=re-144|0,r=ru(r,5440,144),e=f=a+16|0,l[r+44>>2]=e,l[r+20>>2]=e,n=(n=-2-e|0)>>>0>=2147483647?2147483647:n,l[r+48>>2]=n,e=e+n|0,l[r+28>>2]=e,l[r+16>>2]=e,rG(r,2201,a,0,0),n&&(s[(e=l[r+20>>2])-((0|e)==l[r+16>>2])|0]=0),re=r+144|0,re=i+16|0,r=f;r:{if(3&r)for(;;){if(!d[0|r])break r;if(!(3&(r=r+1|0)))break}for(;e=r,r=r+4|0,!((-1^(i=l[e>>2]))&i-16843009&-2139062144););for(;e=(r=e)+1|0,d[0|r];);}return r=(e=rb(r=(r-f|0)+1|0))?ru(e,f,r):0,re=a+96|0,0|r},G:function(){var r=0;if(r=l[1748])for(;eY[l[r>>2]](),r=l[r+4>>2];);},H:rb,I:eY,J:rE,K:function(r,e,a,i,n){return e|=0,a|=0,i|=0,n|=0,0|eY[0|(r|=0)](e,a,i,n)}}}(r)}(r)}Object.assign(u,n),n=null,u.wasmBinary&&(l=u.wasmBinary),u.noExitRuntime;var c=Error;l=[];var u,s,A,l,d,h=!1;function v(r,e,a){a=e+a;for(var i=\"\";!(e>=a);){var n=r[e++];if(!n)break;if(128&n){var f=63&r[e++];if(192==(224&n))i+=String.fromCharCode((31&n)<<6|f);else{var t=63&r[e++];65536>(n=224==(240&n)?(15&n)<<12|f<<6|t:(7&n)<<18|f<<12|t<<6|63&r[e++])?i+=String.fromCharCode(n):(n-=65536,i+=String.fromCharCode(55296|n>>10,56320|1023&n))}}else i+=String.fromCharCode(n)}return i}function p(){var r=d.buffer;u.HEAP8=N=new Int8Array(r),u.HEAP16=y=new Int16Array(r),u.HEAP32=G=new Int32Array(r),u.HEAPU8=w=new Uint8Array(r),u.HEAPU16=E=new Uint16Array(r),u.HEAPU32=R=new Uint32Array(r),u.HEAPF32=g=new Float32Array(r),u.HEAPF64=Z=new Float64Array(r)}var m=u.INITIAL_MEMORY||16777216;65536<=m||O(\"INITIAL_MEMORY should be larger than STACK_SIZE, was \"+m+\"! (STACK_SIZE=65536)\"),d=u.wasmMemory?u.wasmMemory:new function(){this.buffer=new ArrayBuffer(m/65536*65536)},p(),m=d.buffer.byteLength;var N,w,y,E,G,R,g,Z,W,V=[],B=[],T=[],I=0,X=null;function O(r){throw u.onAbort&&u.onAbort(r),b(r=\"Aborted(\"+r+\")\"),h=!0,A(r=new c(r+\". Build with -sASSERTIONS for more info.\")),r}function L(r){return r.startsWith(\"data:application/octet-stream;base64,\")}if(!L(a=\"yoga-asm.wasm\")){var _=a;a=u.locateFile?u.locateFile(_,f):f+_}function F(r){for(;0=e?\"_\"+r:r}function S(r,e){return r=C(r),function(){return e.apply(this,arguments)}}var P=[{},{value:void 0},{value:null},{value:!0},{value:!1}],Y=[];function U(r){var e=Error,a=S(r,function(e){this.name=r,this.message=e,void 0!==(e=Error(e).stack)&&(this.stack=this.toString()+\"\\n\"+e.replace(/^Error(:[^\\n]*)?\\n/,\"\"))});return a.prototype=Object.create(e.prototype),a.prototype.constructor=a,a.prototype.toString=function(){return void 0===this.message?this.name:this.name+\": \"+this.message},a}var M=void 0;function H(r){throw new M(r)}var Q=r=>(r||H(\"Cannot use deleted val. handle = \"+r),P[r].value),z=r=>{switch(r){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var e=Y.length?Y.pop():P.length;return P[e]={fa:1,value:r},e}},j=void 0,D=void 0;function x(r){for(var e=\"\";w[r];)e+=D[w[r++]];return e}var J=[];function K(){for(;J.length;){var r=J.pop();r.L.Z=!1,r.delete()}}var q=void 0,$={};function rr(r,e){for(void 0===e&&H(\"ptr should not be undefined\");r.P;)e=r.aa(e),r=r.P;return e}var re={};function ra(r){var e=x(r=rq(r));return r0(r),e}function ri(r,e){var a=re[r];return void 0===a&&H(e+\" has unknown type \"+ra(r)),a}function rn(){}var rf=!1;function rt(r){--r.count.value,0===r.count.value&&(r.S?r.T.V(r.S):r.O.M.V(r.N))}var rb={},ro=void 0;function rk(r){throw new ro(r)}function rc(r,e){return e.O&&e.N||rk(\"makeClassHandle requires ptr and ptrType\"),!!e.T!=!!e.S&&rk(\"Both smartPtrType and smartPtr must be specified\"),e.count={value:1},ru(Object.create(r,{L:{value:e}}))}function ru(r){return\"undefined\"==typeof FinalizationRegistry?(ru=r=>r,r):(rf=new FinalizationRegistry(r=>{rt(r.L)}),ru=r=>{var e=r.L;return e.S&&rf.register(r,{L:e},r),r},rn=r=>{rf.unregister(r)},ru(r))}var rs={};function rA(r){for(;r.length;){var e=r.pop();r.pop()(e)}}function rl(r){return this.fromWireType(G[r>>2])}var rd={},rh={};function rv(r,e,a){function i(e){(e=a(e)).length!==r.length&&rk(\"Mismatched type converter count\");for(var i=0;i{re.hasOwnProperty(r)?n[e]=re[r]:(f.push(r),rd.hasOwnProperty(r)||(rd[r]=[]),rd[r].push(()=>{n[e]=re[r],++t===f.length&&i(n)}))}),0===f.length&&i(n)}function rp(r){switch(r){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw TypeError(\"Unknown type size: \"+r)}}function rm(r,e,a={}){if(!(\"argPackAdvance\"in e))throw TypeError(\"registerType registeredInstance requires argPackAdvance\");var i=e.name;if(r||H('type \"'+i+'\" must have a positive integer typeid pointer'),re.hasOwnProperty(r)){if(a.ta)return;H(\"Cannot register type '\"+i+\"' twice\")}re[r]=e,delete rh[r],rd.hasOwnProperty(r)&&(e=rd[r],delete rd[r],e.forEach(r=>r()))}function rN(r){H(r.L.O.M.name+\" instance already deleted\")}function rw(){}function ry(r,e,a){if(void 0===r[e].R){var i=r[e];r[e]=function(){return r[e].R.hasOwnProperty(arguments.length)||H(\"Function '\"+a+\"' called with an invalid number of arguments (\"+arguments.length+\") - expects one of (\"+r[e].R+\")!\"),r[e].R[arguments.length].apply(this,arguments)},r[e].R=[],r[e].R[i.Y]=i}}function rE(r,e,a,i,n,f,t,b){this.name=r,this.constructor=e,this.W=a,this.V=i,this.P=n,this.oa=f,this.aa=t,this.ma=b,this.ia=[]}function rG(r,e,a){for(;e!==a;)e.aa||H(\"Expected null or instance of \"+a.name+\", got an instance of \"+e.name),r=e.aa(r),e=e.P;return r}function rR(r,e){return null===e?(this.da&&H(\"null is not a valid \"+this.name),0):(e.L||H('Cannot pass \"'+rL(e)+'\" as a '+this.name),e.L.N||H(\"Cannot pass deleted object as a pointer of type \"+this.name),rG(e.L.N,e.L.O.M,this.M))}function rg(r,e){if(null===e){if(this.da&&H(\"null is not a valid \"+this.name),this.ca){var a=this.ea();return null!==r&&r.push(this.V,a),a}return 0}if(e.L||H('Cannot pass \"'+rL(e)+'\" as a '+this.name),e.L.N||H(\"Cannot pass deleted object as a pointer of type \"+this.name),!this.ba&&e.L.O.ba&&H(\"Cannot convert argument of type \"+(e.L.T?e.L.T.name:e.L.O.name)+\" to parameter type \"+this.name),a=rG(e.L.N,e.L.O.M,this.M),this.ca)switch(void 0===e.L.S&&H(\"Passing raw pointer to smart pointer is illegal\"),this.Aa){case 0:e.L.T===this?a=e.L.S:H(\"Cannot convert argument of type \"+(e.L.T?e.L.T.name:e.L.O.name)+\" to parameter type \"+this.name);break;case 1:a=e.L.S;break;case 2:if(e.L.T===this)a=e.L.S;else{var i=e.clone();a=this.wa(a,z(function(){i.delete()})),null!==r&&r.push(this.V,a)}break;default:H(\"Unsupporting sharing policy\")}return a}function rZ(r,e){return null===e?(this.da&&H(\"null is not a valid \"+this.name),0):(e.L||H('Cannot pass \"'+rL(e)+'\" as a '+this.name),e.L.N||H(\"Cannot pass deleted object as a pointer of type \"+this.name),e.L.O.ba&&H(\"Cannot convert argument of type \"+e.L.O.name+\" to parameter type \"+this.name),rG(e.L.N,e.L.O.M,this.M))}function rW(r,e,a,i){this.name=r,this.M=e,this.da=a,this.ba=i,this.ca=!1,this.V=this.wa=this.ea=this.ja=this.Aa=this.va=void 0,void 0!==e.P?this.toWireType=rg:(this.toWireType=i?rR:rZ,this.U=null)}function rV(r,e){var a,i,n=(r=x(r)).includes(\"j\")?(a=r,i=[],function(){if(i.length=0,Object.assign(i,arguments),a.includes(\"j\")){var r=u[\"dynCall_\"+a];r=i&&i.length?r.apply(null,[e].concat(i)):r.call(null,e)}else r=W.get(e).apply(null,i);return r}):W.get(e);return\"function\"!=typeof n&&H(\"unknown function pointer with signature \"+r+\": \"+e),n}var rB=void 0;function rT(r,e){var a=[],i={};throw e.forEach(function r(e){i[e]||re[e]||(rh[e]?rh[e].forEach(r):(a.push(e),i[e]=!0))}),new rB(r+\": \"+a.map(ra).join([\", \"]))}function rI(r,e,a,i,n){var f=e.length;2>f&&H(\"argTypes array size mismatch! Must at least get return value and 'this' types!\");var t=null!==e[1]&&null!==a,b=!1;for(a=1;a>2]);return a}function rO(r){4=e/2);++i){var n=y[r+2*i>>1];if(0==n)break;a+=String.fromCharCode(n)}return a}function rF(r,e,a){if(void 0===a&&(a=2147483647),2>a)return 0;a-=2;var i=e;a=a<2*r.length?a/2:r.length;for(var n=0;n>1]=r.charCodeAt(n),e+=2;return y[e>>1]=0,e-i}function rC(r){return 2*r.length}function rS(r,e){for(var a=0,i=\"\";!(a>=e/4);){var n=G[r+4*a>>2];if(0==n)break;++a,65536<=n?(n-=65536,i+=String.fromCharCode(55296|n>>10,56320|1023&n)):i+=String.fromCharCode(n)}return i}function rP(r,e,a){if(void 0===a&&(a=2147483647),4>a)return 0;var i=e;a=i+a-4;for(var n=0;n=f&&(f=65536+((1023&f)<<10)|1023&r.charCodeAt(++n)),G[e>>2]=f,(e+=4)+4>a)break}return G[e>>2]=0,e-i}function rY(r){for(var e=0,a=0;a=i&&++a,e+=4}return e}var rU={};function rM(r){var e=rU[r];return void 0===e?x(r):e}var rH=[],rQ=[],rz=[null,[],[]];M=u.BindingError=U(\"BindingError\"),u.count_emval_handles=function(){for(var r=0,e=5;erD;++rD)rj[rD]=String.fromCharCode(rD);D=rj,u.getInheritedInstanceCount=function(){return Object.keys($).length},u.getLiveInheritedInstances=function(){var r,e=[];for(r in $)$.hasOwnProperty(r)&&e.push($[r]);return e},u.flushPendingDeletes=K,u.setDelayFunction=function(r){q=r,J.length&&q&&q(K)},ro=u.InternalError=U(\"InternalError\"),rw.prototype.isAliasOf=function(r){if(!(this instanceof rw&&r instanceof rw))return!1;var e=this.L.O.M,a=this.L.N,i=r.L.O.M;for(r=r.L.N;e.P;)a=e.aa(a),e=e.P;for(;i.P;)r=i.aa(r),i=i.P;return e===i&&a===r},rw.prototype.clone=function(){if(this.L.N||rN(this),this.L.$)return this.L.count.value+=1,this;var r=ru,e=Object,a=e.create,i=Object.getPrototypeOf(this),n=this.L;return r=r(a.call(e,i,{L:{value:{count:n.count,Z:n.Z,$:n.$,N:n.N,O:n.O,S:n.S,T:n.T}}})),r.L.count.value+=1,r.L.Z=!1,r},rw.prototype.delete=function(){this.L.N||rN(this),this.L.Z&&!this.L.$&&H(\"Object already scheduled for deletion\"),rn(this),rt(this.L),this.L.$||(this.L.S=void 0,this.L.N=void 0)},rw.prototype.isDeleted=function(){return!this.L.N},rw.prototype.deleteLater=function(){return this.L.N||rN(this),this.L.Z&&!this.L.$&&H(\"Object already scheduled for deletion\"),J.push(this),1===J.length&&q&&q(K),this.L.Z=!0,this},rW.prototype.pa=function(r){return this.ja&&(r=this.ja(r)),r},rW.prototype.ga=function(r){this.V&&this.V(r)},rW.prototype.argPackAdvance=8,rW.prototype.readValueFromPointer=rl,rW.prototype.deleteObject=function(r){null!==r&&r.delete()},rW.prototype.fromWireType=function(r){function e(){return this.ca?rc(this.M.W,{O:this.va,N:i,T:this,S:r}):rc(this.M.W,{O:this,N:r})}var a,i=this.pa(r);if(!i)return this.ga(r),null;var n=$[rr(this.M,i)];if(void 0!==n)return 0===n.L.count.value?(n.L.N=i,n.L.S=r,n.clone()):(n=n.clone(),this.ga(r),n);if(!(n=rb[n=this.M.oa(i)]))return e.call(this);n=this.ba?n.ka:n.pointerType;var f=function r(e,a,i){return a===i?e:void 0===i.P?null:null===(e=r(e,a,i.P))?null:i.ma(e)}(i,this.M,n.M);return null===f?e.call(this):this.ca?rc(n.M.W,{O:n,N:f,T:this,S:r}):rc(n.M.W,{O:n,N:f})},rB=u.UnboundTypeError=U(\"UnboundTypeError\");var rx=\"function\"==typeof atob?atob:function(r){var e=\"\",a=0;r=r.replace(/[^A-Za-z0-9\\+\\/=]/g,\"\");do{var i=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(r.charAt(a++)),n=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(r.charAt(a++)),f=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(r.charAt(a++)),t=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(r.charAt(a++));i=i<<2|n>>4,n=(15&n)<<4|f>>2;var b=(3&f)<<6|t;e+=String.fromCharCode(i),64!==f&&(e+=String.fromCharCode(n)),64!==t&&(e+=String.fromCharCode(b))}while(ar.sa).concat(n.map(r=>r.ya)),r=>{var f={};return n.forEach((e,a)=>{var i=r[a],t=e.qa,b=e.ra,o=r[a+n.length],k=e.xa,c=e.za;f[e.na]={read:r=>i.fromWireType(t(b,r)),write:(r,e)=>{var a=[];k(c,r,o.toWireType(a,e)),rA(a)}}}),[{name:e.name,fromWireType:function(r){var e,a={};for(e in f)a[e]=f[e].read(r);return i(r),a},toWireType:function(r,e){for(var n in f)if(!(n in e))throw TypeError('Missing field: \"'+n+'\"');var t=a();for(n in f)f[n].write(t,e[n]);return null!==r&&r.push(i,t),t},argPackAdvance:8,readValueFromPointer:rl,U:i}]})},w:function(){},C:function(r,e,a,i,n){var f=rp(a);rm(r,{name:e=x(e),fromWireType:function(r){return!!r},toWireType:function(r,e){return e?i:n},argPackAdvance:8,readValueFromPointer:function(r){if(1===a)var i=N;else if(2===a)i=y;else if(4===a)i=G;else throw TypeError(\"Unknown boolean type size: \"+e);return this.fromWireType(i[r>>f])},U:null})},f:function(r,e,a,i,n,f,t,b,o,k,c,s,A){c=x(c),f=rV(n,f),b&&(b=rV(t,b)),k&&(k=rV(o,k)),A=rV(s,A);var l,d=C(c);l=function(){rT(\"Cannot construct \"+c+\" due to unbound types\",[i])},u.hasOwnProperty(d)?(H(\"Cannot register public name '\"+d+\"' twice\"),ry(u,d,d),u.hasOwnProperty(void 0)&&H(\"Cannot register multiple overloads of a function with the same number of arguments (undefined)!\"),u[d].R[void 0]=l):u[d]=l,rv([r,e,a],i?[i]:[],function(e){if(e=e[0],i)var a,n=e.M,t=n.W;else t=rw.prototype;e=S(d,function(){if(Object.getPrototypeOf(this)!==o)throw new M(\"Use 'new' to construct \"+c);if(void 0===s.X)throw new M(c+\" has no accessible constructor\");var r=s.X[arguments.length];if(void 0===r)throw new M(\"Tried to invoke ctor of \"+c+\" with invalid number of parameters (\"+arguments.length+\") - expected (\"+Object.keys(s.X).toString()+\") parameters instead!\");return r.apply(this,arguments)});var o=Object.create(t,{constructor:{value:e}});e.prototype=o;var s=new rE(c,e,o,A,n,f,b,k);n=new rW(c,s,!0,!1),t=new rW(c+\"*\",s,!1,!1);var l=new rW(c+\" const*\",s,!1,!0);return rb[r]={pointerType:t,ka:l},a=e,u.hasOwnProperty(d)||rk(\"Replacing nonexistant public symbol\"),u[d]=a,u[d].Y=void 0,[n,t,l]})},d:function(r,e,a,i,n,f,t){var b=rX(a,i);e=x(e),f=rV(n,f),rv([],[r],function(r){function i(){rT(\"Cannot call \"+n+\" due to unbound types\",b)}var n=(r=r[0]).name+\".\"+e;e.startsWith(\"@@\")&&(e=Symbol[e.substring(2)]);var o=r.M.constructor;return void 0===o[e]?(i.Y=a-1,o[e]=i):(ry(o,e,n),o[e].R[a-1]=i),rv([],b,function(r){return r=rI(n,[r[0],null].concat(r.slice(1)),null,f,t),void 0===o[e].R?(r.Y=a-1,o[e]=r):o[e].R[a-1]=r,[]}),[]})},p:function(r,e,a,i,n,f){0{rT(\"Cannot construct \"+r.name+\" due to unbound types\",t)},rv([],t,function(i){return i.splice(1,0,null),r.M.X[e-1]=rI(a,i,null,n,f),[]}),[]})},b:function(r,e,a,i,n,f,t,b){var o=rX(a,i);e=x(e),f=rV(n,f),rv([],[r],function(r){function i(){rT(\"Cannot call \"+n+\" due to unbound types\",o)}var n=(r=r[0]).name+\".\"+e;e.startsWith(\"@@\")&&(e=Symbol[e.substring(2)]),b&&r.M.ia.push(e);var k=r.M.W,c=k[e];return void 0===c||void 0===c.R&&c.className!==r.name&&c.Y===a-2?(i.Y=a-2,i.className=r.name,k[e]=i):(ry(k,e,n),k[e].R[a-2]=i),rv([],o,function(i){return i=rI(n,i,r,f,t),void 0===k[e].R?(i.Y=a-2,k[e]=i):k[e].R[a-2]=i,[]}),[]})},B:function(r,e){rm(r,{name:e=x(e),fromWireType:function(r){var e=Q(r);return rO(r),e},toWireType:function(r,e){return z(e)},argPackAdvance:8,readValueFromPointer:rl,U:null})},n:function(r,e,a){a=rp(a),rm(r,{name:e=x(e),fromWireType:function(r){return r},toWireType:function(r,e){return e},argPackAdvance:8,readValueFromPointer:function(r,e){switch(e){case 2:return function(r){return this.fromWireType(g[r>>2])};case 3:return function(r){return this.fromWireType(Z[r>>3])};default:throw TypeError(\"Unknown float type: \"+r)}}(e,a),U:null})},e:function(r,e,a,i,n){e=x(e),-1===n&&(n=4294967295),n=rp(a);var f=r=>r;if(0===i){var t=32-8*a;f=r=>r<>>t}a=e.includes(\"unsigned\")?function(r,e){return e>>>0}:function(r,e){return e},rm(r,{name:e,fromWireType:f,toWireType:a,argPackAdvance:8,readValueFromPointer:function(r,e,a){switch(e){case 0:return a?function(r){return N[r]}:function(r){return w[r]};case 1:return a?function(r){return y[r>>1]}:function(r){return E[r>>1]};case 2:return a?function(r){return G[r>>2]}:function(r){return R[r>>2]};default:throw TypeError(\"Unknown integer type: \"+r)}}(e,n,0!==i),U:null})},c:function(r,e,a){function i(r){r>>=2;var e=R;return new n(e.buffer,e[r+1],e[r])}var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][e];rm(r,{name:a=x(a),fromWireType:i,argPackAdvance:8,readValueFromPointer:i},{ta:!0})},o:function(r,e){var a=\"std::string\"===(e=x(e));rm(r,{name:e,fromWireType:function(r){var e=R[r>>2],i=r+4;if(a)for(var n=i,f=0;f<=e;++f){var t=i+f;if(f==e||0==w[t]){if(n=n?v(w,n,t-n):\"\",void 0===b)var b=n;else b+=\"\\x00\"+n;n=t+1}}else{for(f=0,b=Array(e);f=t?f++:2047>=t?f+=2:55296<=t&&57343>=t?(f+=4,++i):f+=3}i=f}else i=e.length;if(t=(f=r$(4+i+1))+4,R[f>>2]=i,a&&n){if(n=t,t=i+1,i=w,0=o&&(o=65536+((1023&o)<<10)|1023&e.charCodeAt(++b)),127>=o){if(n>=t)break;i[n++]=o}else{if(2047>=o){if(n+1>=t)break;i[n++]=192|o>>6}else{if(65535>=o){if(n+2>=t)break;i[n++]=224|o>>12}else{if(n+3>=t)break;i[n++]=240|o>>18,i[n++]=128|o>>12&63}i[n++]=128|o>>6&63}i[n++]=128|63&o}}i[n]=0}}else if(n)for(n=0;nE,b=1;else 4===e&&(i=rS,n=rP,f=rY,t=()=>R,b=2);rm(r,{name:a,fromWireType:function(r){for(var a,n=R[r>>2],f=t(),o=r+4,k=0;k<=n;++k){var c=r+4+k*e;(k==n||0==f[c>>b])&&(o=i(o,c-o),void 0===a?a=o:a+=\"\\x00\"+o,o=c+e)}return r0(r),a},toWireType:function(r,i){\"string\"!=typeof i&&H(\"Cannot pass non-string to C++ string type \"+a);var t=f(i),o=r$(4+t+e);return R[o>>2]=t>>b,n(i,o+4,t+e),null!==r&&r.push(r0,o),o},argPackAdvance:8,readValueFromPointer:rl,U:function(r){r0(r)}})},l:function(r,e,a,i,n,f){rs[r]={name:x(e),ea:rV(a,i),V:rV(n,f),ha:[]}},i:function(r,e,a,i,n,f,t,b,o,k){rs[r].ha.push({na:x(e),sa:a,qa:rV(i,n),ra:f,ya:t,xa:rV(b,o),za:k})},D:function(r,e){rm(r,{ua:!0,name:e=x(e),argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},t:function(r,e,a,i,n){r=rH[r],e=Q(e),a=rM(a);var f=[];return R[i>>2]=z(f),r(e,a,f,n)},u:function(r,e,a,i){r=rH[r],r(e=Q(e),a=rM(a),null,i)},h:rO,m:function(r,e){var a,i,n=function(r,e){for(var a=Array(r),i=0;i>2],\"parameter \"+i);return a}(r,e),f=n[0],t=rQ[e=f.name+\"_$\"+n.slice(1).map(function(r){return r.name}).join(\"_\")+\"$\"];if(void 0!==t)return t;var b=Array(r-1);return a=(e,a,i,t)=>{for(var o=0,k=0;k>>=0))return!1;for(var a=1;4>=a;a*=2){var i=e*(1+.2/a);i=Math.min(i,r+100663296);var n=Math,f=n.min;i=Math.max(r,i),i+=(65536-i%65536)%65536;r:{var t=d.buffer;try{d.grow(f.call(n,2147483648,i)-t.byteLength+65535>>>16),p();var b=1;break r}catch(r){}b=void 0}if(b)return!0}return!1},A:function(){return 52},v:function(){return 70},z:function(r,e,a,i){for(var n=0,f=0;f>2],k=R[e+4>>2];e+=8;for(var c=0;c>2]=n,0},a:d},rK=function(){function r(r){u.asm=r.exports,W=u.asm.I,B.unshift(u.asm.E),I--,u.monitorRunDependencies&&u.monitorRunDependencies(I),0==I&&X&&(r=X,X=null,r())}var e={a:rJ};if(I++,u.monitorRunDependencies&&u.monitorRunDependencies(I),u.instantiateWasm)try{return u.instantiateWasm(e,r)}catch(r){b(\"Module.instantiateWasm callback failed with error: \"+r),A(r)}return e=function(r){var e=a;try{try{if(e==a&&l)new Uint8Array(l);else{if(L(e)){try{var i=rx(e.slice(37)),n=new Uint8Array(i.length);for(e=0;e 0;\n};\n\n/**\n * Is this value a real number?\n * @private\n */\nconst number = function (val) {\n return typeof val === 'number' && !Number.isNaN(val);\n};\n\n/**\n * Is this value an integer?\n * @private\n */\nconst integer = function (val) {\n return Number.isInteger(val);\n};\n\n/**\n * Is this value within an inclusive given range?\n * @private\n */\nconst inRange = function (val, min, max) {\n return val >= min && val <= max;\n};\n\n/**\n * Is this value within the elements of an array?\n * @private\n */\nconst inArray = function (val, list) {\n return list.includes(val);\n};\n\n/**\n * Create an Error with a message relating to an invalid parameter.\n *\n * @param {string} name - parameter name.\n * @param {string} expected - description of the type/value/range expected.\n * @param {*} actual - the value received.\n * @returns {Error} Containing the formatted message.\n * @private\n */\nconst invalidParameterError = function (name, expected, actual) {\n return new Error(\n `Expected ${expected} for ${name} but received ${actual} of type ${typeof actual}`\n );\n};\n\n/**\n * Ensures an Error from C++ contains a JS stack.\n *\n * @param {Error} native - Error with message from C++.\n * @param {Error} context - Error with stack from JS.\n * @returns {Error} Error with message and stack.\n * @private\n */\nconst nativeError = function (native, context) {\n context.message = native.message;\n return context;\n};\n\nmodule.exports = {\n defined,\n object,\n plainObject,\n fn,\n bool,\n buffer,\n typedArray,\n arrayBuffer,\n string,\n number,\n integer,\n inRange,\n inArray,\n invalidParameterError,\n nativeError\n};\n","// Copyright 2017 Lovell Fuller and others.\n// SPDX-License-Identifier: Apache-2.0\n\n'use strict';\n\nconst isLinux = () => process.platform === 'linux';\n\nlet report = null;\nconst getReport = () => {\n if (!report) {\n /* istanbul ignore next */\n if (isLinux() && process.report) {\n const orig = process.report.excludeNetwork;\n process.report.excludeNetwork = true;\n report = process.report.getReport();\n process.report.excludeNetwork = orig;\n } else {\n report = {};\n }\n }\n return report;\n};\n\nmodule.exports = { isLinux, getReport };\n","// Copyright 2017 Lovell Fuller and others.\n// SPDX-License-Identifier: Apache-2.0\n\n'use strict';\n\nconst fs = require('fs');\n\nconst LDD_PATH = '/usr/bin/ldd';\nconst SELF_PATH = '/proc/self/exe';\nconst MAX_LENGTH = 2048;\n\n/**\n * Read the content of a file synchronous\n *\n * @param {string} path\n * @returns {Buffer}\n */\nconst readFileSync = (path) => {\n const fd = fs.openSync(path, 'r');\n const buffer = Buffer.alloc(MAX_LENGTH);\n const bytesRead = fs.readSync(fd, buffer, 0, MAX_LENGTH, 0);\n fs.close(fd, () => {});\n return buffer.subarray(0, bytesRead);\n};\n\n/**\n * Read the content of a file\n *\n * @param {string} path\n * @returns {Promise}\n */\nconst readFile = (path) => new Promise((resolve, reject) => {\n fs.open(path, 'r', (err, fd) => {\n if (err) {\n reject(err);\n } else {\n const buffer = Buffer.alloc(MAX_LENGTH);\n fs.read(fd, buffer, 0, MAX_LENGTH, 0, (_, bytesRead) => {\n resolve(buffer.subarray(0, bytesRead));\n fs.close(fd, () => {});\n });\n }\n });\n});\n\nmodule.exports = {\n LDD_PATH,\n SELF_PATH,\n readFileSync,\n readFile\n};\n","// Copyright 2017 Lovell Fuller and others.\n// SPDX-License-Identifier: Apache-2.0\n\n'use strict';\n\nconst interpreterPath = (elf) => {\n if (elf.length < 64) {\n return null;\n }\n if (elf.readUInt32BE(0) !== 0x7F454C46) {\n // Unexpected magic bytes\n return null;\n }\n if (elf.readUInt8(4) !== 2) {\n // Not a 64-bit ELF\n return null;\n }\n if (elf.readUInt8(5) !== 1) {\n // Not little-endian\n return null;\n }\n const offset = elf.readUInt32LE(32);\n const size = elf.readUInt16LE(54);\n const count = elf.readUInt16LE(56);\n for (let i = 0; i < count; i++) {\n const headerOffset = offset + (i * size);\n const type = elf.readUInt32LE(headerOffset);\n if (type === 3) {\n const fileOffset = elf.readUInt32LE(headerOffset + 8);\n const fileSize = elf.readUInt32LE(headerOffset + 32);\n return elf.subarray(fileOffset, fileOffset + fileSize).toString().replace(/\\0.*$/g, '');\n }\n }\n return null;\n};\n\nmodule.exports = {\n interpreterPath\n};\n","// Copyright 2017 Lovell Fuller and others.\n// SPDX-License-Identifier: Apache-2.0\n\n'use strict';\n\nconst childProcess = require('child_process');\nconst { isLinux, getReport } = require('./process');\nconst { LDD_PATH, SELF_PATH, readFile, readFileSync } = require('./filesystem');\nconst { interpreterPath } = require('./elf');\n\nlet cachedFamilyInterpreter;\nlet cachedFamilyFilesystem;\nlet cachedVersionFilesystem;\n\nconst command = 'getconf GNU_LIBC_VERSION 2>&1 || true; ldd --version 2>&1 || true';\nlet commandOut = '';\n\nconst safeCommand = () => {\n if (!commandOut) {\n return new Promise((resolve) => {\n childProcess.exec(command, (err, out) => {\n commandOut = err ? ' ' : out;\n resolve(commandOut);\n });\n });\n }\n return commandOut;\n};\n\nconst safeCommandSync = () => {\n if (!commandOut) {\n try {\n commandOut = childProcess.execSync(command, { encoding: 'utf8' });\n } catch (_err) {\n commandOut = ' ';\n }\n }\n return commandOut;\n};\n\n/**\n * A String constant containing the value `glibc`.\n * @type {string}\n * @public\n */\nconst GLIBC = 'glibc';\n\n/**\n * A Regexp constant to get the GLIBC Version.\n * @type {string}\n */\nconst RE_GLIBC_VERSION = /LIBC[a-z0-9 \\-).]*?(\\d+\\.\\d+)/i;\n\n/**\n * A String constant containing the value `musl`.\n * @type {string}\n * @public\n */\nconst MUSL = 'musl';\n\nconst isFileMusl = (f) => f.includes('libc.musl-') || f.includes('ld-musl-');\n\nconst familyFromReport = () => {\n const report = getReport();\n if (report.header && report.header.glibcVersionRuntime) {\n return GLIBC;\n }\n if (Array.isArray(report.sharedObjects)) {\n if (report.sharedObjects.some(isFileMusl)) {\n return MUSL;\n }\n }\n return null;\n};\n\nconst familyFromCommand = (out) => {\n const [getconf, ldd1] = out.split(/[\\r\\n]+/);\n if (getconf && getconf.includes(GLIBC)) {\n return GLIBC;\n }\n if (ldd1 && ldd1.includes(MUSL)) {\n return MUSL;\n }\n return null;\n};\n\nconst familyFromInterpreterPath = (path) => {\n if (path) {\n if (path.includes('/ld-musl-')) {\n return MUSL;\n } else if (path.includes('/ld-linux-')) {\n return GLIBC;\n }\n }\n return null;\n};\n\nconst getFamilyFromLddContent = (content) => {\n content = content.toString();\n if (content.includes('musl')) {\n return MUSL;\n }\n if (content.includes('GNU C Library')) {\n return GLIBC;\n }\n return null;\n};\n\nconst familyFromFilesystem = async () => {\n if (cachedFamilyFilesystem !== undefined) {\n return cachedFamilyFilesystem;\n }\n cachedFamilyFilesystem = null;\n try {\n const lddContent = await readFile(LDD_PATH);\n cachedFamilyFilesystem = getFamilyFromLddContent(lddContent);\n } catch (e) {}\n return cachedFamilyFilesystem;\n};\n\nconst familyFromFilesystemSync = () => {\n if (cachedFamilyFilesystem !== undefined) {\n return cachedFamilyFilesystem;\n }\n cachedFamilyFilesystem = null;\n try {\n const lddContent = readFileSync(LDD_PATH);\n cachedFamilyFilesystem = getFamilyFromLddContent(lddContent);\n } catch (e) {}\n return cachedFamilyFilesystem;\n};\n\nconst familyFromInterpreter = async () => {\n if (cachedFamilyInterpreter !== undefined) {\n return cachedFamilyInterpreter;\n }\n cachedFamilyInterpreter = null;\n try {\n const selfContent = await readFile(SELF_PATH);\n const path = interpreterPath(selfContent);\n cachedFamilyInterpreter = familyFromInterpreterPath(path);\n } catch (e) {}\n return cachedFamilyInterpreter;\n};\n\nconst familyFromInterpreterSync = () => {\n if (cachedFamilyInterpreter !== undefined) {\n return cachedFamilyInterpreter;\n }\n cachedFamilyInterpreter = null;\n try {\n const selfContent = readFileSync(SELF_PATH);\n const path = interpreterPath(selfContent);\n cachedFamilyInterpreter = familyFromInterpreterPath(path);\n } catch (e) {}\n return cachedFamilyInterpreter;\n};\n\n/**\n * Resolves with the libc family when it can be determined, `null` otherwise.\n * @returns {Promise}\n */\nconst family = async () => {\n let family = null;\n if (isLinux()) {\n family = await familyFromInterpreter();\n if (!family) {\n family = await familyFromFilesystem();\n if (!family) {\n family = familyFromReport();\n }\n if (!family) {\n const out = await safeCommand();\n family = familyFromCommand(out);\n }\n }\n }\n return family;\n};\n\n/**\n * Returns the libc family when it can be determined, `null` otherwise.\n * @returns {?string}\n */\nconst familySync = () => {\n let family = null;\n if (isLinux()) {\n family = familyFromInterpreterSync();\n if (!family) {\n family = familyFromFilesystemSync();\n if (!family) {\n family = familyFromReport();\n }\n if (!family) {\n const out = safeCommandSync();\n family = familyFromCommand(out);\n }\n }\n }\n return family;\n};\n\n/**\n * Resolves `true` only when the platform is Linux and the libc family is not `glibc`.\n * @returns {Promise}\n */\nconst isNonGlibcLinux = async () => isLinux() && await family() !== GLIBC;\n\n/**\n * Returns `true` only when the platform is Linux and the libc family is not `glibc`.\n * @returns {boolean}\n */\nconst isNonGlibcLinuxSync = () => isLinux() && familySync() !== GLIBC;\n\nconst versionFromFilesystem = async () => {\n if (cachedVersionFilesystem !== undefined) {\n return cachedVersionFilesystem;\n }\n cachedVersionFilesystem = null;\n try {\n const lddContent = await readFile(LDD_PATH);\n const versionMatch = lddContent.match(RE_GLIBC_VERSION);\n if (versionMatch) {\n cachedVersionFilesystem = versionMatch[1];\n }\n } catch (e) {}\n return cachedVersionFilesystem;\n};\n\nconst versionFromFilesystemSync = () => {\n if (cachedVersionFilesystem !== undefined) {\n return cachedVersionFilesystem;\n }\n cachedVersionFilesystem = null;\n try {\n const lddContent = readFileSync(LDD_PATH);\n const versionMatch = lddContent.match(RE_GLIBC_VERSION);\n if (versionMatch) {\n cachedVersionFilesystem = versionMatch[1];\n }\n } catch (e) {}\n return cachedVersionFilesystem;\n};\n\nconst versionFromReport = () => {\n const report = getReport();\n if (report.header && report.header.glibcVersionRuntime) {\n return report.header.glibcVersionRuntime;\n }\n return null;\n};\n\nconst versionSuffix = (s) => s.trim().split(/\\s+/)[1];\n\nconst versionFromCommand = (out) => {\n const [getconf, ldd1, ldd2] = out.split(/[\\r\\n]+/);\n if (getconf && getconf.includes(GLIBC)) {\n return versionSuffix(getconf);\n }\n if (ldd1 && ldd2 && ldd1.includes(MUSL)) {\n return versionSuffix(ldd2);\n }\n return null;\n};\n\n/**\n * Resolves with the libc version when it can be determined, `null` otherwise.\n * @returns {Promise}\n */\nconst version = async () => {\n let version = null;\n if (isLinux()) {\n version = await versionFromFilesystem();\n if (!version) {\n version = versionFromReport();\n }\n if (!version) {\n const out = await safeCommand();\n version = versionFromCommand(out);\n }\n }\n return version;\n};\n\n/**\n * Returns the libc version when it can be determined, `null` otherwise.\n * @returns {?string}\n */\nconst versionSync = () => {\n let version = null;\n if (isLinux()) {\n version = versionFromFilesystemSync();\n if (!version) {\n version = versionFromReport();\n }\n if (!version) {\n const out = safeCommandSync();\n version = versionFromCommand(out);\n }\n }\n return version;\n};\n\nmodule.exports = {\n GLIBC,\n MUSL,\n family,\n familySync,\n isNonGlibcLinux,\n isNonGlibcLinuxSync,\n version,\n versionSync\n};\n","'use strict'\n\nconst debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","'use strict'\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\nconst RELEASE_TYPES = [\n 'major',\n 'premajor',\n 'minor',\n 'preminor',\n 'patch',\n 'prepatch',\n 'prerelease',\n]\n\nmodule.exports = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 0b001,\n FLAG_LOOSE: 0b010,\n}\n","'use strict'\n\nconst {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH,\n} = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst safeRe = exports.safeRe = []\nconst src = exports.src = []\nconst safeSrc = exports.safeSrc = []\nconst t = exports.t = {}\nlet R = 0\n\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nconst safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nconst makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value\n .split(`${token}*`).join(`${token}{0,${max}}`)\n .split(`${token}+`).join(`${token}{1,${max}}`)\n }\n return value\n}\n\nconst createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value)\n const index = R++\n debug(name, index, value)\n t[name] = index\n src[index] = value\n safeSrc[index] = safe\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '\\\\d+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n// Non-numeric identifiers include numeric identifiers but can be longer.\n// Therefore non-numeric identifiers must go first.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCEPLAIN', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`)\ncreateToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\\\d])`)\ncreateToken('COERCEFULL', src[t.COERCEPLAIN] +\n `(?:${src[t.PRERELEASE]})?` +\n `(?:${src[t.BUILD]})?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\ncreateToken('COERCERTLFULL', src[t.COERCEFULL], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n","'use strict'\n\n// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true })\nconst emptyOpts = Object.freeze({ })\nconst parseOptions = options => {\n if (!options) {\n return emptyOpts\n }\n\n if (typeof options !== 'object') {\n return looseOption\n }\n\n return options\n}\nmodule.exports = parseOptions\n","'use strict'\n\nconst numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n if (typeof a === 'number' && typeof b === 'number') {\n return a === b ? 0 : a < b ? -1 : 1\n }\n\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers,\n}\n","'use strict'\n\nconst debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n if (this.major < other.major) {\n return -1\n }\n if (this.major > other.major) {\n return 1\n }\n if (this.minor < other.minor) {\n return -1\n }\n if (this.minor > other.minor) {\n return 1\n }\n if (this.patch < other.patch) {\n return -1\n }\n if (this.patch > other.patch) {\n return 1\n }\n return 0\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('build compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier, identifierBase) {\n if (release.startsWith('pre')) {\n if (!identifier && identifierBase === false) {\n throw new Error('invalid increment argument: identifier is empty')\n }\n // Avoid an invalid semver results\n if (identifier) {\n const match = `-${identifier}`.match(this.options.loose ? re[t.PRERELEASELOOSE] : re[t.PRERELEASE])\n if (!match || match[1] !== identifier) {\n throw new Error(`invalid identifier: ${identifier}`)\n }\n }\n }\n\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier, identifierBase)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier, identifierBase)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier, identifierBase)\n this.inc('pre', identifier, identifierBase)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier, identifierBase)\n }\n this.inc('pre', identifier, identifierBase)\n break\n case 'release':\n if (this.prerelease.length === 0) {\n throw new Error(`version ${this.raw} is not a prerelease`)\n }\n this.prerelease.length = 0\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre': {\n const base = Number(identifierBase) ? 1 : 0\n\n if (this.prerelease.length === 0) {\n this.prerelease = [base]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n if (identifier === this.prerelease.join('.') && identifierBase === false) {\n throw new Error('invalid increment argument: identifier already exists')\n }\n this.prerelease.push(base)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n let prerelease = [identifier, base]\n if (identifierBase === false) {\n prerelease = [identifier]\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease\n }\n } else {\n this.prerelease = prerelease\n }\n }\n break\n }\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.raw = this.format()\n if (this.build.length) {\n this.raw += `+${this.build.join('.')}`\n }\n return this\n }\n}\n\nmodule.exports = SemVer\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version\n }\n try {\n return new SemVer(version, options)\n } catch (er) {\n if (!throwErrors) {\n return null\n }\n throw er\n }\n}\n\nmodule.exports = parse\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst parse = require('./parse')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst coerce = (version, options) => {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n let match = null\n if (!options.rtl) {\n match = version.match(options.includePrerelease ? re[t.COERCEFULL] : re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n // With includePrerelease option set, '1.2.3.4-rc' wants to coerce '2.3.4-rc', not '2.3.4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n const coerceRtlRegex = options.includePrerelease ? re[t.COERCERTLFULL] : re[t.COERCERTL]\n let next\n while ((next = coerceRtlRegex.exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n coerceRtlRegex.lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n const major = match[2]\n const minor = match[3] || '0'\n const patch = match[4] || '0'\n const prerelease = options.includePrerelease && match[5] ? `-${match[5]}` : ''\n const build = options.includePrerelease && match[6] ? `+${match[6]}` : ''\n\n return parse(`${major}.${minor}.${patch}${prerelease}${build}`, options)\n}\nmodule.exports = coerce\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n","'use strict'\n\nconst compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n","'use strict'\n\nclass LRUCache {\n constructor () {\n this.max = 1000\n this.map = new Map()\n }\n\n get (key) {\n const value = this.map.get(key)\n if (value === undefined) {\n return undefined\n } else {\n // Remove the key from the map and add it to the end\n this.map.delete(key)\n this.map.set(key, value)\n return value\n }\n }\n\n delete (key) {\n return this.map.delete(key)\n }\n\n set (key, value) {\n const deleted = this.delete(key)\n\n if (!deleted && value !== undefined) {\n // If cache is full, delete the least recently used item\n if (this.map.size >= this.max) {\n const firstKey = this.map.keys().next().value\n this.delete(firstKey)\n }\n\n this.map.set(key, value)\n }\n\n return this\n }\n}\n\nmodule.exports = LRUCache\n","'use strict'\n\nconst compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n","'use strict'\n\nconst compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n","'use strict'\n\nconst compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n","'use strict'\n\nconst compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n","'use strict'\n\nconst compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n","'use strict'\n\nconst eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n switch (op) {\n case '===':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a === b\n\n case '!==':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError(`Invalid operator: ${op}`)\n }\n}\nmodule.exports = cmp\n","'use strict'\n\nconst ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n static get ANY () {\n return ANY\n }\n\n constructor (comp, options) {\n options = parseOptions(options)\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n comp = comp.trim().split(/\\s+/).join(' ')\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n }\n\n parse (comp) {\n const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const m = comp.match(r)\n\n if (!m) {\n throw new TypeError(`Invalid comparator: ${comp}`)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n }\n\n toString () {\n return this.value\n }\n\n test (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n }\n\n intersects (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n return new Range(comp.value, options).test(this.value)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n return new Range(this.value, options).test(comp.semver)\n }\n\n options = parseOptions(options)\n\n // Special cases where nothing can possibly be lower\n if (options.includePrerelease &&\n (this.value === '<0.0.0-0' || comp.value === '<0.0.0-0')) {\n return false\n }\n if (!options.includePrerelease &&\n (this.value.startsWith('<0.0.0') || comp.value.startsWith('<0.0.0'))) {\n return false\n }\n\n // Same direction increasing (> or >=)\n if (this.operator.startsWith('>') && comp.operator.startsWith('>')) {\n return true\n }\n // Same direction decreasing (< or <=)\n if (this.operator.startsWith('<') && comp.operator.startsWith('<')) {\n return true\n }\n // same SemVer and both sides are inclusive (<= or >=)\n if (\n (this.semver.version === comp.semver.version) &&\n this.operator.includes('=') && comp.operator.includes('=')) {\n return true\n }\n // opposite directions less than\n if (cmp(this.semver, '<', comp.semver, options) &&\n this.operator.startsWith('>') && comp.operator.startsWith('<')) {\n return true\n }\n // opposite directions greater than\n if (cmp(this.semver, '>', comp.semver, options) &&\n this.operator.startsWith('<') && comp.operator.startsWith('>')) {\n return true\n }\n return false\n }\n}\n\nmodule.exports = Comparator\n\nconst parseOptions = require('../internal/parse-options')\nconst { safeRe: re, t } = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n","'use strict'\n\nconst SPACE_CHARACTERS = /\\s+/g\n\n// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n options = parseOptions(options)\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.formatted = undefined\n return this\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range.trim().replace(SPACE_CHARACTERS, ' ')\n\n // First, split on ||\n this.set = this.raw\n .split('||')\n // map the range to a 2d array of comparators\n .map(r => this.parseRange(r.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${this.raw}`)\n }\n\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0]\n this.set = this.set.filter(c => !isNullSet(c[0]))\n if (this.set.length === 0) {\n this.set = [first]\n } else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set) {\n if (c.length === 1 && isAny(c[0])) {\n this.set = [c]\n break\n }\n }\n }\n }\n\n this.formatted = undefined\n }\n\n get range () {\n if (this.formatted === undefined) {\n this.formatted = ''\n for (let i = 0; i < this.set.length; i++) {\n if (i > 0) {\n this.formatted += '||'\n }\n const comps = this.set[i]\n for (let k = 0; k < comps.length; k++) {\n if (k > 0) {\n this.formatted += ' '\n }\n this.formatted += comps[k].toString().trim()\n }\n }\n }\n return this.formatted\n }\n\n format () {\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts =\n (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) |\n (this.options.loose && FLAG_LOOSE)\n const memoKey = memoOpts + ':' + range\n const cached = cache.get(memoKey)\n if (cached) {\n return cached\n }\n\n const loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n debug('hyphen replace', range)\n\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range)\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n debug('tilde trim', range)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n debug('caret trim', range)\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n let rangeList = range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n // >=0.0.0 is equivalent to *\n .map(comp => replaceGTE0(comp, this.options))\n\n if (loose) {\n // in loose mode, throw out any that are not valid comparators\n rangeList = rangeList.filter(comp => {\n debug('loose invalid filter', comp, this.options)\n return !!comp.match(re[t.COMPARATORLOOSE])\n })\n }\n debug('range list', rangeList)\n\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const rangeMap = new Map()\n const comparators = rangeList.map(comp => new Comparator(comp, this.options))\n for (const comp of comparators) {\n if (isNullSet(comp)) {\n return [comp]\n }\n rangeMap.set(comp.value, comp)\n }\n if (rangeMap.size > 1 && rangeMap.has('')) {\n rangeMap.delete('')\n }\n\n const result = [...rangeMap.values()]\n cache.set(memoKey, result)\n return result\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (let i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n }\n}\n\nmodule.exports = Range\n\nconst LRU = require('../internal/lrucache')\nconst cache = new LRU()\n\nconst parseOptions = require('../internal/parse-options')\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n safeRe: re,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace,\n} = require('../internal/re')\nconst { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require('../internal/constants')\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n comp = comp.replace(re[t.BUILD], '')\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst replaceTildes = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceTilde(c, options))\n .join(' ')\n}\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst replaceCarets = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceCaret(c, options))\n .join(' ')\n}\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp\n .split(/\\s+/)\n .map((c) => replaceXRange(c, options))\n .join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<') {\n pr = '-0'\n }\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp\n .trim()\n .replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp\n .trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\n// TODO build?\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return `${from} ${to}`.trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n","'use strict'\n\nconst Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n","{\n \"name\": \"sharp\",\n \"description\": \"High performance Node.js image processing, the fastest module to resize JPEG, PNG, WebP, GIF, AVIF and TIFF images\",\n \"version\": \"0.33.5\",\n \"author\": \"Lovell Fuller \",\n \"homepage\": \"https://sharp.pixelplumbing.com\",\n \"contributors\": [\n \"Pierre Inglebert \",\n \"Jonathan Ong \",\n \"Chanon Sajjamanochai \",\n \"Juliano Julio \",\n \"Daniel Gasienica \",\n \"Julian Walker \",\n \"Amit Pitaru \",\n \"Brandon Aaron \",\n \"Andreas Lind \",\n \"Maurus Cuelenaere \",\n \"Linus Unnebäck \",\n \"Victor Mateevitsi \",\n \"Alaric Holloway \",\n \"Bernhard K. Weisshuhn \",\n \"Chris Riley \",\n \"David Carley \",\n \"John Tobin \",\n \"Kenton Gray \",\n \"Felix Bünemann \",\n \"Samy Al Zahrani \",\n \"Chintan Thakkar \",\n \"F. Orlando Galashan \",\n \"Kleis Auke Wolthuizen \",\n \"Matt Hirsch \",\n \"Matthias Thoemmes \",\n \"Patrick Paskaris \",\n \"Jérémy Lal \",\n \"Rahul Nanwani \",\n \"Alice Monday \",\n \"Kristo Jorgenson \",\n \"YvesBos \",\n \"Guy Maliar \",\n \"Nicolas Coden \",\n \"Matt Parrish \",\n \"Marcel Bretschneider \",\n \"Matthew McEachen \",\n \"Jarda Kotěšovec \",\n \"Kenric D'Souza \",\n \"Oleh Aleinyk \",\n \"Marcel Bretschneider \",\n \"Andrea Bianco \",\n \"Rik Heywood \",\n \"Thomas Parisot \",\n \"Nathan Graves \",\n \"Tom Lokhorst \",\n \"Espen Hovlandsdal \",\n \"Sylvain Dumont \",\n \"Alun Davies \",\n \"Aidan Hoolachan \",\n \"Axel Eirola \",\n \"Freezy \",\n \"Daiz \",\n \"Julian Aubourg \",\n \"Keith Belovay \",\n \"Michael B. Klein \",\n \"Jordan Prudhomme \",\n \"Ilya Ovdin \",\n \"Andargor \",\n \"Paul Neave \",\n \"Brendan Kennedy \",\n \"Brychan Bennett-Odlum \",\n \"Edward Silverton \",\n \"Roman Malieiev \",\n \"Tomas Szabo \",\n \"Robert O'Rourke \",\n \"Guillermo Alfonso Varela Chouciño \",\n \"Christian Flintrup \",\n \"Manan Jadhav \",\n \"Leon Radley \",\n \"alza54 \",\n \"Jacob Smith \",\n \"Michael Nutt \",\n \"Brad Parham \",\n \"Taneli Vatanen \",\n \"Joris Dugué \",\n \"Chris Banks \",\n \"Ompal Singh \",\n \"Brodan \",\n \"Ankur Parihar \",\n \"Brahim Ait elhaj \",\n \"Mart Jansink \",\n \"Lachlan Newman \",\n \"Dennis Beatty \",\n \"Ingvar Stepanyan \",\n \"Don Denton \"\n ],\n \"scripts\": {\n \"install\": \"node install/check\",\n \"clean\": \"rm -rf src/build/ .nyc_output/ coverage/ test/fixtures/output.*\",\n \"test\": \"npm run test-lint && npm run test-unit && npm run test-licensing && npm run test-types\",\n \"test-lint\": \"semistandard && cpplint\",\n \"test-unit\": \"nyc --reporter=lcov --reporter=text --check-coverage --branches=100 mocha\",\n \"test-licensing\": \"license-checker --production --summary --onlyAllow=\\\"Apache-2.0;BSD;ISC;LGPL-3.0-or-later;MIT\\\"\",\n \"test-leak\": \"./test/leak/leak.sh\",\n \"test-types\": \"tsd\",\n \"package-from-local-build\": \"node npm/from-local-build\",\n \"package-from-github-release\": \"node npm/from-github-release\",\n \"docs-build\": \"node docs/build && node docs/search-index/build\",\n \"docs-serve\": \"cd docs && npx serve\",\n \"docs-publish\": \"cd docs && npx firebase-tools deploy --project pixelplumbing --only hosting:pixelplumbing-sharp\"\n },\n \"type\": \"commonjs\",\n \"main\": \"lib/index.js\",\n \"types\": \"lib/index.d.ts\",\n \"files\": [\n \"install\",\n \"lib\",\n \"src/*.{cc,h,gyp}\"\n ],\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git://github.com/lovell/sharp.git\"\n },\n \"keywords\": [\n \"jpeg\",\n \"png\",\n \"webp\",\n \"avif\",\n \"tiff\",\n \"gif\",\n \"svg\",\n \"jp2\",\n \"dzi\",\n \"image\",\n \"resize\",\n \"thumbnail\",\n \"crop\",\n \"embed\",\n \"libvips\",\n \"vips\"\n ],\n \"dependencies\": {\n \"color\": \"^4.2.3\",\n \"detect-libc\": \"^2.0.3\",\n \"semver\": \"^7.6.3\"\n },\n \"optionalDependencies\": {\n \"@img/sharp-darwin-arm64\": \"0.33.5\",\n \"@img/sharp-darwin-x64\": \"0.33.5\",\n \"@img/sharp-libvips-darwin-arm64\": \"1.0.4\",\n \"@img/sharp-libvips-darwin-x64\": \"1.0.4\",\n \"@img/sharp-libvips-linux-arm\": \"1.0.5\",\n \"@img/sharp-libvips-linux-arm64\": \"1.0.4\",\n \"@img/sharp-libvips-linux-s390x\": \"1.0.4\",\n \"@img/sharp-libvips-linux-x64\": \"1.0.4\",\n \"@img/sharp-libvips-linuxmusl-arm64\": \"1.0.4\",\n \"@img/sharp-libvips-linuxmusl-x64\": \"1.0.4\",\n \"@img/sharp-linux-arm\": \"0.33.5\",\n \"@img/sharp-linux-arm64\": \"0.33.5\",\n \"@img/sharp-linux-s390x\": \"0.33.5\",\n \"@img/sharp-linux-x64\": \"0.33.5\",\n \"@img/sharp-linuxmusl-arm64\": \"0.33.5\",\n \"@img/sharp-linuxmusl-x64\": \"0.33.5\",\n \"@img/sharp-wasm32\": \"0.33.5\",\n \"@img/sharp-win32-ia32\": \"0.33.5\",\n \"@img/sharp-win32-x64\": \"0.33.5\"\n },\n \"devDependencies\": {\n \"@emnapi/runtime\": \"^1.2.0\",\n \"@img/sharp-libvips-dev\": \"1.0.4\",\n \"@img/sharp-libvips-dev-wasm32\": \"1.0.5\",\n \"@img/sharp-libvips-win32-ia32\": \"1.0.4\",\n \"@img/sharp-libvips-win32-x64\": \"1.0.4\",\n \"@types/node\": \"*\",\n \"async\": \"^3.2.5\",\n \"cc\": \"^3.0.1\",\n \"emnapi\": \"^1.2.0\",\n \"exif-reader\": \"^2.0.1\",\n \"extract-zip\": \"^2.0.1\",\n \"icc\": \"^3.0.0\",\n \"jsdoc-to-markdown\": \"^8.0.3\",\n \"license-checker\": \"^25.0.1\",\n \"mocha\": \"^10.7.3\",\n \"node-addon-api\": \"^8.1.0\",\n \"nyc\": \"^17.0.0\",\n \"prebuild\": \"^13.0.1\",\n \"semistandard\": \"^17.0.0\",\n \"tar-fs\": \"^3.0.6\",\n \"tsd\": \"^0.31.1\"\n },\n \"license\": \"Apache-2.0\",\n \"engines\": {\n \"node\": \"^18.17.0 || ^20.3.0 || >=21.0.0\"\n },\n \"config\": {\n \"libvips\": \">=8.15.3\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/libvips\"\n },\n \"binary\": {\n \"napi_versions\": [\n 9\n ]\n },\n \"semistandard\": {\n \"env\": [\n \"mocha\"\n ]\n },\n \"cc\": {\n \"linelength\": \"120\",\n \"filter\": [\n \"build/include\"\n ]\n },\n \"nyc\": {\n \"include\": [\n \"lib\"\n ]\n },\n \"tsd\": {\n \"directory\": \"test/types/\"\n }\n}\n","// Copyright 2013 Lovell Fuller and others.\n// SPDX-License-Identifier: Apache-2.0\n\n'use strict';\n\nconst { spawnSync } = require('node:child_process');\nconst { createHash } = require('node:crypto');\nconst semverCoerce = require('semver/functions/coerce');\nconst semverGreaterThanOrEqualTo = require('semver/functions/gte');\nconst semverSatisfies = require('semver/functions/satisfies');\nconst detectLibc = require('detect-libc');\n\nconst { config, engines, optionalDependencies } = require('../package.json');\n\nconst minimumLibvipsVersionLabelled = process.env.npm_package_config_libvips || /* istanbul ignore next */\n config.libvips;\nconst minimumLibvipsVersion = semverCoerce(minimumLibvipsVersionLabelled).version;\n\nconst prebuiltPlatforms = [\n 'darwin-arm64', 'darwin-x64',\n 'linux-arm', 'linux-arm64', 'linux-s390x', 'linux-x64',\n 'linuxmusl-arm64', 'linuxmusl-x64',\n 'win32-ia32', 'win32-x64'\n];\n\nconst spawnSyncOptions = {\n encoding: 'utf8',\n shell: true\n};\n\nconst log = (item) => {\n if (item instanceof Error) {\n console.error(`sharp: Installation error: ${item.message}`);\n } else {\n console.log(`sharp: ${item}`);\n }\n};\n\n/* istanbul ignore next */\nconst runtimeLibc = () => detectLibc.isNonGlibcLinuxSync() ? detectLibc.familySync() : '';\n\nconst runtimePlatformArch = () => `${process.platform}${runtimeLibc()}-${process.arch}`;\n\n/* istanbul ignore next */\nconst buildPlatformArch = () => {\n if (isEmscripten()) {\n return 'wasm32';\n }\n /* eslint camelcase: [\"error\", { allow: [\"^npm_config_\"] }] */\n const { npm_config_arch, npm_config_platform, npm_config_libc } = process.env;\n const libc = typeof npm_config_libc === 'string' ? npm_config_libc : runtimeLibc();\n return `${npm_config_platform || process.platform}${libc}-${npm_config_arch || process.arch}`;\n};\n\nconst buildSharpLibvipsIncludeDir = () => {\n try {\n return require(`@img/sharp-libvips-dev-${buildPlatformArch()}/include`);\n } catch {\n try {\n return require('@img/sharp-libvips-dev/include');\n } catch {}\n }\n /* istanbul ignore next */\n return '';\n};\n\nconst buildSharpLibvipsCPlusPlusDir = () => {\n try {\n return require('@img/sharp-libvips-dev/cplusplus');\n } catch {}\n /* istanbul ignore next */\n return '';\n};\n\nconst buildSharpLibvipsLibDir = () => {\n try {\n return require(`@img/sharp-libvips-dev-${buildPlatformArch()}/lib`);\n } catch {\n try {\n return require(`@img/sharp-libvips-${buildPlatformArch()}/lib`);\n } catch {}\n }\n /* istanbul ignore next */\n return '';\n};\n\nconst isUnsupportedNodeRuntime = () => {\n /* istanbul ignore next */\n if (process.release?.name === 'node' && process.versions) {\n if (!semverSatisfies(process.versions.node, engines.node)) {\n return { found: process.versions.node, expected: engines.node };\n }\n }\n};\n\n/* istanbul ignore next */\nconst isEmscripten = () => {\n const { CC } = process.env;\n return Boolean(CC && CC.endsWith('/emcc'));\n};\n\nconst isRosetta = () => {\n /* istanbul ignore next */\n if (process.platform === 'darwin' && process.arch === 'x64') {\n const translated = spawnSync('sysctl sysctl.proc_translated', spawnSyncOptions).stdout;\n return (translated || '').trim() === 'sysctl.proc_translated: 1';\n }\n return false;\n};\n\nconst sha512 = (s) => createHash('sha512').update(s).digest('hex');\n\nconst yarnLocator = () => {\n try {\n const identHash = sha512(`imgsharp-libvips-${buildPlatformArch()}`);\n const npmVersion = semverCoerce(optionalDependencies[`@img/sharp-libvips-${buildPlatformArch()}`]).version;\n return sha512(`${identHash}npm:${npmVersion}`).slice(0, 10);\n } catch {}\n return '';\n};\n\n/* istanbul ignore next */\nconst spawnRebuild = () =>\n spawnSync(`node-gyp rebuild --directory=src ${isEmscripten() ? '--nodedir=emscripten' : ''}`, {\n ...spawnSyncOptions,\n stdio: 'inherit'\n }).status;\n\nconst globalLibvipsVersion = () => {\n if (process.platform !== 'win32') {\n const globalLibvipsVersion = spawnSync('pkg-config --modversion vips-cpp', {\n ...spawnSyncOptions,\n env: {\n ...process.env,\n PKG_CONFIG_PATH: pkgConfigPath()\n }\n }).stdout;\n /* istanbul ignore next */\n return (globalLibvipsVersion || '').trim();\n } else {\n return '';\n }\n};\n\n/* istanbul ignore next */\nconst pkgConfigPath = () => {\n if (process.platform !== 'win32') {\n const brewPkgConfigPath = spawnSync(\n 'which brew >/dev/null 2>&1 && brew environment --plain | grep PKG_CONFIG_LIBDIR | cut -d\" \" -f2',\n spawnSyncOptions\n ).stdout || '';\n return [\n brewPkgConfigPath.trim(),\n process.env.PKG_CONFIG_PATH,\n '/usr/local/lib/pkgconfig',\n '/usr/lib/pkgconfig',\n '/usr/local/libdata/pkgconfig',\n '/usr/libdata/pkgconfig'\n ].filter(Boolean).join(':');\n } else {\n return '';\n }\n};\n\nconst skipSearch = (status, reason, logger) => {\n if (logger) {\n logger(`Detected ${reason}, skipping search for globally-installed libvips`);\n }\n return status;\n};\n\nconst useGlobalLibvips = (logger) => {\n if (Boolean(process.env.SHARP_IGNORE_GLOBAL_LIBVIPS) === true) {\n return skipSearch(false, 'SHARP_IGNORE_GLOBAL_LIBVIPS', logger);\n }\n if (Boolean(process.env.SHARP_FORCE_GLOBAL_LIBVIPS) === true) {\n return skipSearch(true, 'SHARP_FORCE_GLOBAL_LIBVIPS', logger);\n }\n /* istanbul ignore next */\n if (isRosetta()) {\n return skipSearch(false, 'Rosetta', logger);\n }\n const globalVipsVersion = globalLibvipsVersion();\n return !!globalVipsVersion && /* istanbul ignore next */\n semverGreaterThanOrEqualTo(globalVipsVersion, minimumLibvipsVersion);\n};\n\nmodule.exports = {\n minimumLibvipsVersion,\n prebuiltPlatforms,\n buildPlatformArch,\n buildSharpLibvipsIncludeDir,\n buildSharpLibvipsCPlusPlusDir,\n buildSharpLibvipsLibDir,\n isUnsupportedNodeRuntime,\n runtimePlatformArch,\n log,\n yarnLocator,\n spawnRebuild,\n globalLibvipsVersion,\n pkgConfigPath,\n useGlobalLibvips\n};\n","// Copyright 2013 Lovell Fuller and others.\n// SPDX-License-Identifier: Apache-2.0\n\n'use strict';\n\n// Inspects the runtime environment and exports the relevant sharp.node binary\n\nconst { familySync, versionSync } = require('detect-libc');\n\nconst { runtimePlatformArch, isUnsupportedNodeRuntime, prebuiltPlatforms, minimumLibvipsVersion } = require('./libvips');\nconst runtimePlatform = runtimePlatformArch();\n\nconst paths = [\n `../src/build/Release/sharp-${runtimePlatform}.node`,\n '../src/build/Release/sharp-wasm32.node',\n `@img/sharp-${runtimePlatform}/sharp.node`,\n '@img/sharp-wasm32/sharp.node'\n];\n\nlet sharp;\nconst errors = [];\nfor (const path of paths) {\n try {\n sharp = require(path);\n break;\n } catch (err) {\n /* istanbul ignore next */\n errors.push(err);\n }\n}\n\n/* istanbul ignore next */\nif (sharp) {\n module.exports = sharp;\n} else {\n const [isLinux, isMacOs, isWindows] = ['linux', 'darwin', 'win32'].map(os => runtimePlatform.startsWith(os));\n\n const help = [`Could not load the \"sharp\" module using the ${runtimePlatform} runtime`];\n errors.forEach(err => {\n if (err.code !== 'MODULE_NOT_FOUND') {\n help.push(`${err.code}: ${err.message}`);\n }\n });\n const messages = errors.map(err => err.message).join(' ');\n help.push('Possible solutions:');\n // Common error messages\n if (isUnsupportedNodeRuntime()) {\n const { found, expected } = isUnsupportedNodeRuntime();\n help.push(\n '- Please upgrade Node.js:',\n ` Found ${found}`,\n ` Requires ${expected}`\n );\n } else if (prebuiltPlatforms.includes(runtimePlatform)) {\n const [os, cpu] = runtimePlatform.split('-');\n const libc = os.endsWith('musl') ? ' --libc=musl' : '';\n help.push(\n '- Ensure optional dependencies can be installed:',\n ' npm install --include=optional sharp',\n '- Ensure your package manager supports multi-platform installation:',\n ' See https://sharp.pixelplumbing.com/install#cross-platform',\n '- Add platform-specific dependencies:',\n ` npm install --os=${os.replace('musl', '')}${libc} --cpu=${cpu} sharp`\n );\n } else {\n help.push(\n `- Manually install libvips >= ${minimumLibvipsVersion}`,\n '- Add experimental WebAssembly-based dependencies:',\n ' npm install --cpu=wasm32 sharp',\n ' npm install @img/sharp-wasm32'\n );\n }\n if (isLinux && /(symbol not found|CXXABI_)/i.test(messages)) {\n try {\n const { config } = require(`@img/sharp-libvips-${runtimePlatform}/package`);\n const libcFound = `${familySync()} ${versionSync()}`;\n const libcRequires = `${config.musl ? 'musl' : 'glibc'} ${config.musl || config.glibc}`;\n help.push(\n '- Update your OS:',\n ` Found ${libcFound}`,\n ` Requires ${libcRequires}`\n );\n } catch (errEngines) {}\n }\n if (isLinux && /\\/snap\\/core[0-9]{2}/.test(messages)) {\n help.push(\n '- Remove the Node.js Snap, which does not support native modules',\n ' snap remove node'\n );\n }\n if (isMacOs && /Incompatible library version/.test(messages)) {\n help.push(\n '- Update Homebrew:',\n ' brew update && brew upgrade vips'\n );\n }\n if (errors.some(err => err.code === 'ERR_DLOPEN_DISABLED')) {\n help.push('- Run Node.js without using the --no-addons flag');\n }\n // Link to installation docs\n if (isWindows && /The specified procedure could not be found/.test(messages)) {\n help.push(\n '- Using the canvas package on Windows?',\n ' See https://sharp.pixelplumbing.com/install#canvas-and-windows',\n '- Check for outdated versions of sharp in the dependency tree:',\n ' npm ls sharp'\n );\n }\n help.push(\n '- Consult the installation documentation:',\n ' See https://sharp.pixelplumbing.com/install'\n );\n throw new Error(help.join('\\n'));\n}\n","// Copyright 2013 Lovell Fuller and others.\n// SPDX-License-Identifier: Apache-2.0\n\n'use strict';\n\nconst util = require('node:util');\nconst stream = require('node:stream');\nconst is = require('./is');\n\nrequire('./sharp');\n\n// Use NODE_DEBUG=sharp to enable libvips warnings\nconst debuglog = util.debuglog('sharp');\n\n/**\n * Constructor factory to create an instance of `sharp`, to which further methods are chained.\n *\n * JPEG, PNG, WebP, GIF, AVIF or TIFF format image data can be streamed out from this object.\n * When using Stream based output, derived attributes are available from the `info` event.\n *\n * Non-critical problems encountered during processing are emitted as `warning` events.\n *\n * Implements the [stream.Duplex](http://nodejs.org/api/stream.html#stream_class_stream_duplex) class.\n *\n * When loading more than one page/frame of an animated image,\n * these are combined as a vertically-stacked \"toilet roll\" image\n * where the overall height is the `pageHeight` multiplied by the number of `pages`.\n *\n * @constructs Sharp\n *\n * @emits Sharp#info\n * @emits Sharp#warning\n *\n * @example\n * sharp('input.jpg')\n * .resize(300, 200)\n * .toFile('output.jpg', function(err) {\n * // output.jpg is a 300 pixels wide and 200 pixels high image\n * // containing a scaled and cropped version of input.jpg\n * });\n *\n * @example\n * // Read image data from remote URL,\n * // resize to 300 pixels wide,\n * // emit an 'info' event with calculated dimensions\n * // and finally write image data to writableStream\n * const { body } = fetch('https://...');\n * const readableStream = Readable.fromWeb(body);\n * const transformer = sharp()\n * .resize(300)\n * .on('info', ({ height }) => {\n * console.log(`Image height is ${height}`);\n * });\n * readableStream.pipe(transformer).pipe(writableStream);\n *\n * @example\n * // Create a blank 300x200 PNG image of semi-translucent red pixels\n * sharp({\n * create: {\n * width: 300,\n * height: 200,\n * channels: 4,\n * background: { r: 255, g: 0, b: 0, alpha: 0.5 }\n * }\n * })\n * .png()\n * .toBuffer()\n * .then( ... );\n *\n * @example\n * // Convert an animated GIF to an animated WebP\n * await sharp('in.gif', { animated: true }).toFile('out.webp');\n *\n * @example\n * // Read a raw array of pixels and save it to a png\n * const input = Uint8Array.from([255, 255, 255, 0, 0, 0]); // or Uint8ClampedArray\n * const image = sharp(input, {\n * // because the input does not contain its dimensions or how many channels it has\n * // we need to specify it in the constructor options\n * raw: {\n * width: 2,\n * height: 1,\n * channels: 3\n * }\n * });\n * await image.toFile('my-two-pixels.png');\n *\n * @example\n * // Generate RGB Gaussian noise\n * await sharp({\n * create: {\n * width: 300,\n * height: 200,\n * channels: 3,\n * noise: {\n * type: 'gaussian',\n * mean: 128,\n * sigma: 30\n * }\n * }\n * }).toFile('noise.png');\n *\n * @example\n * // Generate an image from text\n * await sharp({\n * text: {\n * text: 'Hello, world!',\n * width: 400, // max width\n * height: 300 // max height\n * }\n * }).toFile('text_bw.png');\n *\n * @example\n * // Generate an rgba image from text using pango markup and font\n * await sharp({\n * text: {\n * text: 'Red!blue',\n * font: 'sans',\n * rgba: true,\n * dpi: 300\n * }\n * }).toFile('text_rgba.png');\n *\n * @param {(Buffer|ArrayBuffer|Uint8Array|Uint8ClampedArray|Int8Array|Uint16Array|Int16Array|Uint32Array|Int32Array|Float32Array|Float64Array|string)} [input] - if present, can be\n * a Buffer / ArrayBuffer / Uint8Array / Uint8ClampedArray containing JPEG, PNG, WebP, AVIF, GIF, SVG or TIFF image data, or\n * a TypedArray containing raw pixel image data, or\n * a String containing the filesystem path to an JPEG, PNG, WebP, AVIF, GIF, SVG or TIFF image file.\n * JPEG, PNG, WebP, AVIF, GIF, SVG, TIFF or raw pixel image data can be streamed into the object when not present.\n * @param {Object} [options] - if present, is an Object with optional attributes.\n * @param {string} [options.failOn='warning'] - When to abort processing of invalid pixel data, one of (in order of sensitivity, least to most): 'none', 'truncated', 'error', 'warning'. Higher levels imply lower levels. Invalid metadata will always abort.\n * @param {number|boolean} [options.limitInputPixels=268402689] - Do not process input images where the number of pixels\n * (width x height) exceeds this limit. Assumes image dimensions contained in the input metadata can be trusted.\n * An integral Number of pixels, zero or false to remove limit, true to use default limit of 268402689 (0x3FFF x 0x3FFF).\n * @param {boolean} [options.unlimited=false] - Set this to `true` to remove safety features that help prevent memory exhaustion (JPEG, PNG, SVG, HEIF).\n * @param {boolean} [options.sequentialRead=true] - Set this to `false` to use random access rather than sequential read. Some operations will do this automatically.\n * @param {number} [options.density=72] - number representing the DPI for vector images in the range 1 to 100000.\n * @param {number} [options.ignoreIcc=false] - should the embedded ICC profile, if any, be ignored.\n * @param {number} [options.pages=1] - Number of pages to extract for multi-page input (GIF, WebP, TIFF), use -1 for all pages.\n * @param {number} [options.page=0] - Page number to start extracting from for multi-page input (GIF, WebP, TIFF), zero based.\n * @param {number} [options.subifd=-1] - subIFD (Sub Image File Directory) to extract for OME-TIFF, defaults to main image.\n * @param {number} [options.level=0] - level to extract from a multi-level input (OpenSlide), zero based.\n * @param {boolean} [options.animated=false] - Set to `true` to read all frames/pages of an animated image (GIF, WebP, TIFF), equivalent of setting `pages` to `-1`.\n * @param {Object} [options.raw] - describes raw pixel input image data. See `raw()` for pixel ordering.\n * @param {number} [options.raw.width] - integral number of pixels wide.\n * @param {number} [options.raw.height] - integral number of pixels high.\n * @param {number} [options.raw.channels] - integral number of channels, between 1 and 4.\n * @param {boolean} [options.raw.premultiplied] - specifies that the raw input has already been premultiplied, set to `true`\n * to avoid sharp premultiplying the image. (optional, default `false`)\n * @param {Object} [options.create] - describes a new image to be created.\n * @param {number} [options.create.width] - integral number of pixels wide.\n * @param {number} [options.create.height] - integral number of pixels high.\n * @param {number} [options.create.channels] - integral number of channels, either 3 (RGB) or 4 (RGBA).\n * @param {string|Object} [options.create.background] - parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha.\n * @param {Object} [options.create.noise] - describes a noise to be created.\n * @param {string} [options.create.noise.type] - type of generated noise, currently only `gaussian` is supported.\n * @param {number} [options.create.noise.mean] - mean of pixels in generated noise.\n * @param {number} [options.create.noise.sigma] - standard deviation of pixels in generated noise.\n * @param {Object} [options.text] - describes a new text image to be created.\n * @param {string} [options.text.text] - text to render as a UTF-8 string. It can contain Pango markup, for example `LeMonde`.\n * @param {string} [options.text.font] - font name to render with.\n * @param {string} [options.text.fontfile] - absolute filesystem path to a font file that can be used by `font`.\n * @param {number} [options.text.width=0] - Integral number of pixels to word-wrap at. Lines of text wider than this will be broken at word boundaries.\n * @param {number} [options.text.height=0] - Maximum integral number of pixels high. When defined, `dpi` will be ignored and the text will automatically fit the pixel resolution defined by `width` and `height`. Will be ignored if `width` is not specified or set to 0.\n * @param {string} [options.text.align='left'] - Alignment style for multi-line text (`'left'`, `'centre'`, `'center'`, `'right'`).\n * @param {boolean} [options.text.justify=false] - set this to true to apply justification to the text.\n * @param {number} [options.text.dpi=72] - the resolution (size) at which to render the text. Does not take effect if `height` is specified.\n * @param {boolean} [options.text.rgba=false] - set this to true to enable RGBA output. This is useful for colour emoji rendering, or support for pango markup features like `Red!`.\n * @param {number} [options.text.spacing=0] - text line height in points. Will use the font line height if none is specified.\n * @param {string} [options.text.wrap='word'] - word wrapping style when width is provided, one of: 'word', 'char', 'word-char' (prefer word, fallback to char) or 'none'.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nconst Sharp = function (input, options) {\n if (arguments.length === 1 && !is.defined(input)) {\n throw new Error('Invalid input');\n }\n if (!(this instanceof Sharp)) {\n return new Sharp(input, options);\n }\n stream.Duplex.call(this);\n this.options = {\n // resize options\n topOffsetPre: -1,\n leftOffsetPre: -1,\n widthPre: -1,\n heightPre: -1,\n topOffsetPost: -1,\n leftOffsetPost: -1,\n widthPost: -1,\n heightPost: -1,\n width: -1,\n height: -1,\n canvas: 'crop',\n position: 0,\n resizeBackground: [0, 0, 0, 255],\n useExifOrientation: false,\n angle: 0,\n rotationAngle: 0,\n rotationBackground: [0, 0, 0, 255],\n rotateBeforePreExtract: false,\n flip: false,\n flop: false,\n extendTop: 0,\n extendBottom: 0,\n extendLeft: 0,\n extendRight: 0,\n extendBackground: [0, 0, 0, 255],\n extendWith: 'background',\n withoutEnlargement: false,\n withoutReduction: false,\n affineMatrix: [],\n affineBackground: [0, 0, 0, 255],\n affineIdx: 0,\n affineIdy: 0,\n affineOdx: 0,\n affineOdy: 0,\n affineInterpolator: this.constructor.interpolators.bilinear,\n kernel: 'lanczos3',\n fastShrinkOnLoad: true,\n // operations\n tint: [-1, 0, 0, 0],\n flatten: false,\n flattenBackground: [0, 0, 0],\n unflatten: false,\n negate: false,\n negateAlpha: true,\n medianSize: 0,\n blurSigma: 0,\n precision: 'integer',\n minAmpl: 0.2,\n sharpenSigma: 0,\n sharpenM1: 1,\n sharpenM2: 2,\n sharpenX1: 2,\n sharpenY2: 10,\n sharpenY3: 20,\n threshold: 0,\n thresholdGrayscale: true,\n trimBackground: [],\n trimThreshold: -1,\n trimLineArt: false,\n gamma: 0,\n gammaOut: 0,\n greyscale: false,\n normalise: false,\n normaliseLower: 1,\n normaliseUpper: 99,\n claheWidth: 0,\n claheHeight: 0,\n claheMaxSlope: 3,\n brightness: 1,\n saturation: 1,\n hue: 0,\n lightness: 0,\n booleanBufferIn: null,\n booleanFileIn: '',\n joinChannelIn: [],\n extractChannel: -1,\n removeAlpha: false,\n ensureAlpha: -1,\n colourspace: 'srgb',\n colourspacePipeline: 'last',\n composite: [],\n // output\n fileOut: '',\n formatOut: 'input',\n streamOut: false,\n keepMetadata: 0,\n withMetadataOrientation: -1,\n withMetadataDensity: 0,\n withIccProfile: '',\n withExif: {},\n withExifMerge: true,\n resolveWithObject: false,\n // output format\n jpegQuality: 80,\n jpegProgressive: false,\n jpegChromaSubsampling: '4:2:0',\n jpegTrellisQuantisation: false,\n jpegOvershootDeringing: false,\n jpegOptimiseScans: false,\n jpegOptimiseCoding: true,\n jpegQuantisationTable: 0,\n pngProgressive: false,\n pngCompressionLevel: 6,\n pngAdaptiveFiltering: false,\n pngPalette: false,\n pngQuality: 100,\n pngEffort: 7,\n pngBitdepth: 8,\n pngDither: 1,\n jp2Quality: 80,\n jp2TileHeight: 512,\n jp2TileWidth: 512,\n jp2Lossless: false,\n jp2ChromaSubsampling: '4:4:4',\n webpQuality: 80,\n webpAlphaQuality: 100,\n webpLossless: false,\n webpNearLossless: false,\n webpSmartSubsample: false,\n webpPreset: 'default',\n webpEffort: 4,\n webpMinSize: false,\n webpMixed: false,\n gifBitdepth: 8,\n gifEffort: 7,\n gifDither: 1,\n gifInterFrameMaxError: 0,\n gifInterPaletteMaxError: 3,\n gifReuse: true,\n gifProgressive: false,\n tiffQuality: 80,\n tiffCompression: 'jpeg',\n tiffPredictor: 'horizontal',\n tiffPyramid: false,\n tiffMiniswhite: false,\n tiffBitdepth: 8,\n tiffTile: false,\n tiffTileHeight: 256,\n tiffTileWidth: 256,\n tiffXres: 1.0,\n tiffYres: 1.0,\n tiffResolutionUnit: 'inch',\n heifQuality: 50,\n heifLossless: false,\n heifCompression: 'av1',\n heifEffort: 4,\n heifChromaSubsampling: '4:4:4',\n heifBitdepth: 8,\n jxlDistance: 1,\n jxlDecodingTier: 0,\n jxlEffort: 7,\n jxlLossless: false,\n rawDepth: 'uchar',\n tileSize: 256,\n tileOverlap: 0,\n tileContainer: 'fs',\n tileLayout: 'dz',\n tileFormat: 'last',\n tileDepth: 'last',\n tileAngle: 0,\n tileSkipBlanks: -1,\n tileBackground: [255, 255, 255, 255],\n tileCentre: false,\n tileId: 'https://example.com/iiif',\n tileBasename: '',\n timeoutSeconds: 0,\n linearA: [],\n linearB: [],\n // Function to notify of libvips warnings\n debuglog: warning => {\n this.emit('warning', warning);\n debuglog(warning);\n },\n // Function to notify of queue length changes\n queueListener: function (queueLength) {\n Sharp.queue.emit('change', queueLength);\n }\n };\n this.options.input = this._createInputDescriptor(input, options, { allowStream: true });\n return this;\n};\nObject.setPrototypeOf(Sharp.prototype, stream.Duplex.prototype);\nObject.setPrototypeOf(Sharp, stream.Duplex);\n\n/**\n * Take a \"snapshot\" of the Sharp instance, returning a new instance.\n * Cloned instances inherit the input of their parent instance.\n * This allows multiple output Streams and therefore multiple processing pipelines to share a single input Stream.\n *\n * @example\n * const pipeline = sharp().rotate();\n * pipeline.clone().resize(800, 600).pipe(firstWritableStream);\n * pipeline.clone().extract({ left: 20, top: 20, width: 100, height: 100 }).pipe(secondWritableStream);\n * readableStream.pipe(pipeline);\n * // firstWritableStream receives auto-rotated, resized readableStream\n * // secondWritableStream receives auto-rotated, extracted region of readableStream\n *\n * @example\n * // Create a pipeline that will download an image, resize it and format it to different files\n * // Using Promises to know when the pipeline is complete\n * const fs = require(\"fs\");\n * const got = require(\"got\");\n * const sharpStream = sharp({ failOn: 'none' });\n *\n * const promises = [];\n *\n * promises.push(\n * sharpStream\n * .clone()\n * .jpeg({ quality: 100 })\n * .toFile(\"originalFile.jpg\")\n * );\n *\n * promises.push(\n * sharpStream\n * .clone()\n * .resize({ width: 500 })\n * .jpeg({ quality: 80 })\n * .toFile(\"optimized-500.jpg\")\n * );\n *\n * promises.push(\n * sharpStream\n * .clone()\n * .resize({ width: 500 })\n * .webp({ quality: 80 })\n * .toFile(\"optimized-500.webp\")\n * );\n *\n * // https://github.com/sindresorhus/got/blob/main/documentation/3-streams.md\n * got.stream(\"https://www.example.com/some-file.jpg\").pipe(sharpStream);\n *\n * Promise.all(promises)\n * .then(res => { console.log(\"Done!\", res); })\n * .catch(err => {\n * console.error(\"Error processing files, let's clean it up\", err);\n * try {\n * fs.unlinkSync(\"originalFile.jpg\");\n * fs.unlinkSync(\"optimized-500.jpg\");\n * fs.unlinkSync(\"optimized-500.webp\");\n * } catch (e) {}\n * });\n *\n * @returns {Sharp}\n */\nfunction clone () {\n // Clone existing options\n const clone = this.constructor.call();\n const { debuglog, queueListener, ...options } = this.options;\n clone.options = structuredClone(options);\n clone.options.debuglog = debuglog;\n clone.options.queueListener = queueListener;\n // Pass 'finish' event to clone for Stream-based input\n if (this._isStreamInput()) {\n this.on('finish', () => {\n // Clone inherits input data\n this._flattenBufferIn();\n clone.options.input.buffer = this.options.input.buffer;\n clone.emit('finish');\n });\n }\n return clone;\n}\nObject.assign(Sharp.prototype, { clone });\n\n/**\n * Export constructor.\n * @private\n */\nmodule.exports = Sharp;\n","module.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n","'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n","/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\nvar hasOwnProperty = Object.hasOwnProperty;\n\nvar reverseNames = Object.create(null);\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (hasOwnProperty.call(colorNames, name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar keyword = /^(\\w+)$/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\tif (!hasOwnProperty.call(colorNames, match[1])) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*(?:[,|\\/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = Math.round(num).toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","/* MIT license */\n/* eslint-disable no-mixed-operators */\nconst cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\nmodule.exports = convert;\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Infinity;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tlet r = rgb[0] / 255;\n\tlet g = rgb[1] / 255;\n\tlet b = rgb[2] / 255;\n\n\t// Assume sRGB\n\tr = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92);\n\n\tconst x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tconst y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tconst z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t2;\n\tlet t3;\n\tlet val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// Assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * (r ** (1.0 / 2.4))) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * (g ** (1.0 / 2.4))) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * (b ** (1.0 / 2.4))) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (~~(args > 50) + 1) * 0.5;\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(char => {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tconst integer = parseInt(colorString, 16);\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet grayscale;\n\tlet hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l));\n\n\tlet f = 0;\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1.0 - c);\n\tlet f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1.0 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tconst val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (val << 16) + (val << 8) + val;\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","const conversions = require('./conversions');\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","const conversions = require('./conversions');\nconst route = require('./route');\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(fromModel => {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\trouteModels.forEach(toModel => {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","const colorString = require('color-string');\nconst convert = require('color-convert');\n\nconst skippedModels = [\n\t// To be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// Gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// Shouldn't really be in color-convert either...\n\t'hex',\n];\n\nconst hashedModelKeys = {};\nfor (const model of Object.keys(convert)) {\n\thashedModelKeys[[...convert[model].labels].sort().join('')] = model;\n}\n\nconst limiters = {};\n\nfunction Color(object, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(object, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tlet i;\n\tlet channels;\n\n\tif (object == null) { // eslint-disable-line no-eq-null,eqeqeq\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (object instanceof Color) {\n\t\tthis.model = object.model;\n\t\tthis.color = [...object.color];\n\t\tthis.valpha = object.valpha;\n\t} else if (typeof object === 'string') {\n\t\tconst result = colorString.get(object);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + object);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (object.length > 0) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tconst newArray = Array.prototype.slice.call(object, 0, channels);\n\t\tthis.color = zeroArray(newArray, channels);\n\t\tthis.valpha = typeof object[channels] === 'number' ? object[channels] : 1;\n\t} else if (typeof object === 'number') {\n\t\t// This is always RGB - can be converted later on.\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(object >> 16) & 0xFF,\n\t\t\t(object >> 8) & 0xFF,\n\t\t\tobject & 0xFF,\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tconst keys = Object.keys(object);\n\t\tif ('alpha' in object) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof object.alpha === 'number' ? object.alpha : 0;\n\t\t}\n\n\t\tconst hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(object));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tconst {labels} = convert[this.model];\n\t\tconst color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(object[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// Perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tconst limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString() {\n\t\treturn this.string();\n\t},\n\n\ttoJSON() {\n\t\treturn this[this.model]();\n\t},\n\n\tstring(places) {\n\t\tlet self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tconst args = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString(places) {\n\t\tconst self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tconst args = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray() {\n\t\treturn this.valpha === 1 ? [...this.color] : [...this.color, this.valpha];\n\t},\n\n\tobject() {\n\t\tconst result = {};\n\t\tconst {channels} = convert[this.model];\n\t\tconst {labels} = convert[this.model];\n\n\t\tfor (let i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray() {\n\t\tconst rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject() {\n\t\tconst rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround(places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color([...this.color.map(roundToPlace(places)), this.valpha], this.model);\n\t},\n\n\talpha(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color([...this.color, Math.max(0, Math.min(1, value))], this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// Rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, value => ((value % 360) + 360) % 360),\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(95.047)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(108.833)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\thexa(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\tconst rgbArray = this.rgb().round().color;\n\n\t\tlet alphaHex = Math.round(this.valpha * 255).toString(16).toUpperCase();\n\t\tif (alphaHex.length === 1) {\n\t\t\talphaHex = '0' + alphaHex;\n\t\t}\n\n\t\treturn colorString.to.hex(rgbArray) + alphaHex;\n\t},\n\n\trgbNumber() {\n\t\tconst rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity() {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tconst rgb = this.rgb().color;\n\n\t\tconst lum = [];\n\t\tfor (const [i, element] of rgb.entries()) {\n\t\t\tconst chan = element / 255;\n\t\t\tlum[i] = (chan <= 0.04045) ? chan / 12.92 : ((chan + 0.055) / 1.055) ** 2.4;\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast(color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tconst lum1 = this.luminosity();\n\t\tconst lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel(color2) {\n\t\t// https://www.w3.org/TR/WCAG/#contrast-enhanced\n\t\tconst contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark() {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tconst rgb = this.rgb().color;\n\t\tconst yiq = (rgb[0] * 2126 + rgb[1] * 7152 + rgb[2] * 722) / 10000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight() {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate() {\n\t\tconst rgb = this.rgb();\n\t\tfor (let i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tlighten(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale() {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tconst rgb = this.rgb().color;\n\t\tconst value = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(value, value, value);\n\t},\n\n\tfade(ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer(ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate(degrees) {\n\t\tconst hsl = this.hsl();\n\t\tlet hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix(mixinColor, weight) {\n\t\t// Ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\n\t\tconst color1 = mixinColor.rgb();\n\t\tconst color2 = this.rgb();\n\t\tconst p = weight === undefined ? 0.5 : weight;\n\n\t\tconst w = 2 * p - 1;\n\t\tconst a = color1.alpha() - color2.alpha();\n\n\t\tconst w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2;\n\t\tconst w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n};\n\n// Model conversion methods and static constructors\nfor (const model of Object.keys(convert)) {\n\tif (skippedModels.includes(model)) {\n\t\tcontinue;\n\t}\n\n\tconst {channels} = convert[model];\n\n\t// Conversion methods\n\tColor.prototype[model] = function (...args) {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (args.length > 0) {\n\t\t\treturn new Color(args, model);\n\t\t}\n\n\t\treturn new Color([...assertArray(convert[this.model][model].raw(this.color)), this.valpha], model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (...args) {\n\t\tlet color = args[0];\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(args, channels);\n\t\t}\n\n\t\treturn new Color(color, model);\n\t};\n}\n\nfunction roundTo(number, places) {\n\treturn Number(number.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (number) {\n\t\treturn roundTo(number, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tfor (const m of model) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t}\n\n\tmodel = model[0];\n\n\treturn function (value) {\n\t\tlet result;\n\n\t\tif (value !== undefined) {\n\t\t\tif (modifier) {\n\t\t\t\tvalue = modifier(value);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = value;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(value) {\n\treturn Array.isArray(value) ? value : [value];\n}\n\nfunction zeroArray(array, length) {\n\tfor (let i = 0; i < length; i++) {\n\t\tif (typeof array[i] !== 'number') {\n\t\t\tarray[i] = 0;\n\t\t}\n\t}\n\n\treturn array;\n}\n\nmodule.exports = Color;\n","// Copyright 2013 Lovell Fuller and others.\n// SPDX-License-Identifier: Apache-2.0\n\n'use strict';\n\nconst color = require('color');\nconst is = require('./is');\nconst sharp = require('./sharp');\n\n/**\n * Justication alignment\n * @member\n * @private\n */\nconst align = {\n left: 'low',\n center: 'centre',\n centre: 'centre',\n right: 'high'\n};\n\n/**\n * Extract input options, if any, from an object.\n * @private\n */\nfunction _inputOptionsFromObject (obj) {\n const { raw, density, limitInputPixels, ignoreIcc, unlimited, sequentialRead, failOn, failOnError, animated, page, pages, subifd } = obj;\n return [raw, density, limitInputPixels, ignoreIcc, unlimited, sequentialRead, failOn, failOnError, animated, page, pages, subifd].some(is.defined)\n ? { raw, density, limitInputPixels, ignoreIcc, unlimited, sequentialRead, failOn, failOnError, animated, page, pages, subifd }\n : undefined;\n}\n\n/**\n * Create Object containing input and input-related options.\n * @private\n */\nfunction _createInputDescriptor (input, inputOptions, containerOptions) {\n const inputDescriptor = {\n failOn: 'warning',\n limitInputPixels: Math.pow(0x3FFF, 2),\n ignoreIcc: false,\n unlimited: false,\n sequentialRead: true\n };\n if (is.string(input)) {\n // filesystem\n inputDescriptor.file = input;\n } else if (is.buffer(input)) {\n // Buffer\n if (input.length === 0) {\n throw Error('Input Buffer is empty');\n }\n inputDescriptor.buffer = input;\n } else if (is.arrayBuffer(input)) {\n if (input.byteLength === 0) {\n throw Error('Input bit Array is empty');\n }\n inputDescriptor.buffer = Buffer.from(input, 0, input.byteLength);\n } else if (is.typedArray(input)) {\n if (input.length === 0) {\n throw Error('Input Bit Array is empty');\n }\n inputDescriptor.buffer = Buffer.from(input.buffer, input.byteOffset, input.byteLength);\n } else if (is.plainObject(input) && !is.defined(inputOptions)) {\n // Plain Object descriptor, e.g. create\n inputOptions = input;\n if (_inputOptionsFromObject(inputOptions)) {\n // Stream with options\n inputDescriptor.buffer = [];\n }\n } else if (!is.defined(input) && !is.defined(inputOptions) && is.object(containerOptions) && containerOptions.allowStream) {\n // Stream without options\n inputDescriptor.buffer = [];\n } else {\n throw new Error(`Unsupported input '${input}' of type ${typeof input}${\n is.defined(inputOptions) ? ` when also providing options of type ${typeof inputOptions}` : ''\n }`);\n }\n if (is.object(inputOptions)) {\n // Deprecated: failOnError\n if (is.defined(inputOptions.failOnError)) {\n if (is.bool(inputOptions.failOnError)) {\n inputDescriptor.failOn = inputOptions.failOnError ? 'warning' : 'none';\n } else {\n throw is.invalidParameterError('failOnError', 'boolean', inputOptions.failOnError);\n }\n }\n // failOn\n if (is.defined(inputOptions.failOn)) {\n if (is.string(inputOptions.failOn) && is.inArray(inputOptions.failOn, ['none', 'truncated', 'error', 'warning'])) {\n inputDescriptor.failOn = inputOptions.failOn;\n } else {\n throw is.invalidParameterError('failOn', 'one of: none, truncated, error, warning', inputOptions.failOn);\n }\n }\n // Density\n if (is.defined(inputOptions.density)) {\n if (is.inRange(inputOptions.density, 1, 100000)) {\n inputDescriptor.density = inputOptions.density;\n } else {\n throw is.invalidParameterError('density', 'number between 1 and 100000', inputOptions.density);\n }\n }\n // Ignore embeddded ICC profile\n if (is.defined(inputOptions.ignoreIcc)) {\n if (is.bool(inputOptions.ignoreIcc)) {\n inputDescriptor.ignoreIcc = inputOptions.ignoreIcc;\n } else {\n throw is.invalidParameterError('ignoreIcc', 'boolean', inputOptions.ignoreIcc);\n }\n }\n // limitInputPixels\n if (is.defined(inputOptions.limitInputPixels)) {\n if (is.bool(inputOptions.limitInputPixels)) {\n inputDescriptor.limitInputPixels = inputOptions.limitInputPixels\n ? Math.pow(0x3FFF, 2)\n : 0;\n } else if (is.integer(inputOptions.limitInputPixels) && is.inRange(inputOptions.limitInputPixels, 0, Number.MAX_SAFE_INTEGER)) {\n inputDescriptor.limitInputPixels = inputOptions.limitInputPixels;\n } else {\n throw is.invalidParameterError('limitInputPixels', 'positive integer', inputOptions.limitInputPixels);\n }\n }\n // unlimited\n if (is.defined(inputOptions.unlimited)) {\n if (is.bool(inputOptions.unlimited)) {\n inputDescriptor.unlimited = inputOptions.unlimited;\n } else {\n throw is.invalidParameterError('unlimited', 'boolean', inputOptions.unlimited);\n }\n }\n // sequentialRead\n if (is.defined(inputOptions.sequentialRead)) {\n if (is.bool(inputOptions.sequentialRead)) {\n inputDescriptor.sequentialRead = inputOptions.sequentialRead;\n } else {\n throw is.invalidParameterError('sequentialRead', 'boolean', inputOptions.sequentialRead);\n }\n }\n // Raw pixel input\n if (is.defined(inputOptions.raw)) {\n if (\n is.object(inputOptions.raw) &&\n is.integer(inputOptions.raw.width) && inputOptions.raw.width > 0 &&\n is.integer(inputOptions.raw.height) && inputOptions.raw.height > 0 &&\n is.integer(inputOptions.raw.channels) && is.inRange(inputOptions.raw.channels, 1, 4)\n ) {\n inputDescriptor.rawWidth = inputOptions.raw.width;\n inputDescriptor.rawHeight = inputOptions.raw.height;\n inputDescriptor.rawChannels = inputOptions.raw.channels;\n inputDescriptor.rawPremultiplied = !!inputOptions.raw.premultiplied;\n\n switch (input.constructor) {\n case Uint8Array:\n case Uint8ClampedArray:\n inputDescriptor.rawDepth = 'uchar';\n break;\n case Int8Array:\n inputDescriptor.rawDepth = 'char';\n break;\n case Uint16Array:\n inputDescriptor.rawDepth = 'ushort';\n break;\n case Int16Array:\n inputDescriptor.rawDepth = 'short';\n break;\n case Uint32Array:\n inputDescriptor.rawDepth = 'uint';\n break;\n case Int32Array:\n inputDescriptor.rawDepth = 'int';\n break;\n case Float32Array:\n inputDescriptor.rawDepth = 'float';\n break;\n case Float64Array:\n inputDescriptor.rawDepth = 'double';\n break;\n default:\n inputDescriptor.rawDepth = 'uchar';\n break;\n }\n } else {\n throw new Error('Expected width, height and channels for raw pixel input');\n }\n }\n // Multi-page input (GIF, TIFF, PDF)\n if (is.defined(inputOptions.animated)) {\n if (is.bool(inputOptions.animated)) {\n inputDescriptor.pages = inputOptions.animated ? -1 : 1;\n } else {\n throw is.invalidParameterError('animated', 'boolean', inputOptions.animated);\n }\n }\n if (is.defined(inputOptions.pages)) {\n if (is.integer(inputOptions.pages) && is.inRange(inputOptions.pages, -1, 100000)) {\n inputDescriptor.pages = inputOptions.pages;\n } else {\n throw is.invalidParameterError('pages', 'integer between -1 and 100000', inputOptions.pages);\n }\n }\n if (is.defined(inputOptions.page)) {\n if (is.integer(inputOptions.page) && is.inRange(inputOptions.page, 0, 100000)) {\n inputDescriptor.page = inputOptions.page;\n } else {\n throw is.invalidParameterError('page', 'integer between 0 and 100000', inputOptions.page);\n }\n }\n // Multi-level input (OpenSlide)\n if (is.defined(inputOptions.level)) {\n if (is.integer(inputOptions.level) && is.inRange(inputOptions.level, 0, 256)) {\n inputDescriptor.level = inputOptions.level;\n } else {\n throw is.invalidParameterError('level', 'integer between 0 and 256', inputOptions.level);\n }\n }\n // Sub Image File Directory (TIFF)\n if (is.defined(inputOptions.subifd)) {\n if (is.integer(inputOptions.subifd) && is.inRange(inputOptions.subifd, -1, 100000)) {\n inputDescriptor.subifd = inputOptions.subifd;\n } else {\n throw is.invalidParameterError('subifd', 'integer between -1 and 100000', inputOptions.subifd);\n }\n }\n // Create new image\n if (is.defined(inputOptions.create)) {\n if (\n is.object(inputOptions.create) &&\n is.integer(inputOptions.create.width) && inputOptions.create.width > 0 &&\n is.integer(inputOptions.create.height) && inputOptions.create.height > 0 &&\n is.integer(inputOptions.create.channels)\n ) {\n inputDescriptor.createWidth = inputOptions.create.width;\n inputDescriptor.createHeight = inputOptions.create.height;\n inputDescriptor.createChannels = inputOptions.create.channels;\n // Noise\n if (is.defined(inputOptions.create.noise)) {\n if (!is.object(inputOptions.create.noise)) {\n throw new Error('Expected noise to be an object');\n }\n if (!is.inArray(inputOptions.create.noise.type, ['gaussian'])) {\n throw new Error('Only gaussian noise is supported at the moment');\n }\n if (!is.inRange(inputOptions.create.channels, 1, 4)) {\n throw is.invalidParameterError('create.channels', 'number between 1 and 4', inputOptions.create.channels);\n }\n inputDescriptor.createNoiseType = inputOptions.create.noise.type;\n if (is.number(inputOptions.create.noise.mean) && is.inRange(inputOptions.create.noise.mean, 0, 10000)) {\n inputDescriptor.createNoiseMean = inputOptions.create.noise.mean;\n } else {\n throw is.invalidParameterError('create.noise.mean', 'number between 0 and 10000', inputOptions.create.noise.mean);\n }\n if (is.number(inputOptions.create.noise.sigma) && is.inRange(inputOptions.create.noise.sigma, 0, 10000)) {\n inputDescriptor.createNoiseSigma = inputOptions.create.noise.sigma;\n } else {\n throw is.invalidParameterError('create.noise.sigma', 'number between 0 and 10000', inputOptions.create.noise.sigma);\n }\n } else if (is.defined(inputOptions.create.background)) {\n if (!is.inRange(inputOptions.create.channels, 3, 4)) {\n throw is.invalidParameterError('create.channels', 'number between 3 and 4', inputOptions.create.channels);\n }\n const background = color(inputOptions.create.background);\n inputDescriptor.createBackground = [\n background.red(),\n background.green(),\n background.blue(),\n Math.round(background.alpha() * 255)\n ];\n } else {\n throw new Error('Expected valid noise or background to create a new input image');\n }\n delete inputDescriptor.buffer;\n } else {\n throw new Error('Expected valid width, height and channels to create a new input image');\n }\n }\n // Create a new image with text\n if (is.defined(inputOptions.text)) {\n if (is.object(inputOptions.text) && is.string(inputOptions.text.text)) {\n inputDescriptor.textValue = inputOptions.text.text;\n if (is.defined(inputOptions.text.height) && is.defined(inputOptions.text.dpi)) {\n throw new Error('Expected only one of dpi or height');\n }\n if (is.defined(inputOptions.text.font)) {\n if (is.string(inputOptions.text.font)) {\n inputDescriptor.textFont = inputOptions.text.font;\n } else {\n throw is.invalidParameterError('text.font', 'string', inputOptions.text.font);\n }\n }\n if (is.defined(inputOptions.text.fontfile)) {\n if (is.string(inputOptions.text.fontfile)) {\n inputDescriptor.textFontfile = inputOptions.text.fontfile;\n } else {\n throw is.invalidParameterError('text.fontfile', 'string', inputOptions.text.fontfile);\n }\n }\n if (is.defined(inputOptions.text.width)) {\n if (is.integer(inputOptions.text.width) && inputOptions.text.width > 0) {\n inputDescriptor.textWidth = inputOptions.text.width;\n } else {\n throw is.invalidParameterError('text.width', 'positive integer', inputOptions.text.width);\n }\n }\n if (is.defined(inputOptions.text.height)) {\n if (is.integer(inputOptions.text.height) && inputOptions.text.height > 0) {\n inputDescriptor.textHeight = inputOptions.text.height;\n } else {\n throw is.invalidParameterError('text.height', 'positive integer', inputOptions.text.height);\n }\n }\n if (is.defined(inputOptions.text.align)) {\n if (is.string(inputOptions.text.align) && is.string(this.constructor.align[inputOptions.text.align])) {\n inputDescriptor.textAlign = this.constructor.align[inputOptions.text.align];\n } else {\n throw is.invalidParameterError('text.align', 'valid alignment', inputOptions.text.align);\n }\n }\n if (is.defined(inputOptions.text.justify)) {\n if (is.bool(inputOptions.text.justify)) {\n inputDescriptor.textJustify = inputOptions.text.justify;\n } else {\n throw is.invalidParameterError('text.justify', 'boolean', inputOptions.text.justify);\n }\n }\n if (is.defined(inputOptions.text.dpi)) {\n if (is.integer(inputOptions.text.dpi) && is.inRange(inputOptions.text.dpi, 1, 1000000)) {\n inputDescriptor.textDpi = inputOptions.text.dpi;\n } else {\n throw is.invalidParameterError('text.dpi', 'integer between 1 and 1000000', inputOptions.text.dpi);\n }\n }\n if (is.defined(inputOptions.text.rgba)) {\n if (is.bool(inputOptions.text.rgba)) {\n inputDescriptor.textRgba = inputOptions.text.rgba;\n } else {\n throw is.invalidParameterError('text.rgba', 'bool', inputOptions.text.rgba);\n }\n }\n if (is.defined(inputOptions.text.spacing)) {\n if (is.integer(inputOptions.text.spacing) && is.inRange(inputOptions.text.spacing, -1000000, 1000000)) {\n inputDescriptor.textSpacing = inputOptions.text.spacing;\n } else {\n throw is.invalidParameterError('text.spacing', 'integer between -1000000 and 1000000', inputOptions.text.spacing);\n }\n }\n if (is.defined(inputOptions.text.wrap)) {\n if (is.string(inputOptions.text.wrap) && is.inArray(inputOptions.text.wrap, ['word', 'char', 'word-char', 'none'])) {\n inputDescriptor.textWrap = inputOptions.text.wrap;\n } else {\n throw is.invalidParameterError('text.wrap', 'one of: word, char, word-char, none', inputOptions.text.wrap);\n }\n }\n delete inputDescriptor.buffer;\n } else {\n throw new Error('Expected a valid string to create an image with text.');\n }\n }\n } else if (is.defined(inputOptions)) {\n throw new Error('Invalid input options ' + inputOptions);\n }\n return inputDescriptor;\n}\n\n/**\n * Handle incoming Buffer chunk on Writable Stream.\n * @private\n * @param {Buffer} chunk\n * @param {string} encoding - unused\n * @param {Function} callback\n */\nfunction _write (chunk, encoding, callback) {\n /* istanbul ignore else */\n if (Array.isArray(this.options.input.buffer)) {\n /* istanbul ignore else */\n if (is.buffer(chunk)) {\n if (this.options.input.buffer.length === 0) {\n this.on('finish', () => {\n this.streamInFinished = true;\n });\n }\n this.options.input.buffer.push(chunk);\n callback();\n } else {\n callback(new Error('Non-Buffer data on Writable Stream'));\n }\n } else {\n callback(new Error('Unexpected data on Writable Stream'));\n }\n}\n\n/**\n * Flattens the array of chunks accumulated in input.buffer.\n * @private\n */\nfunction _flattenBufferIn () {\n if (this._isStreamInput()) {\n this.options.input.buffer = Buffer.concat(this.options.input.buffer);\n }\n}\n\n/**\n * Are we expecting Stream-based input?\n * @private\n * @returns {boolean}\n */\nfunction _isStreamInput () {\n return Array.isArray(this.options.input.buffer);\n}\n\n/**\n * Fast access to (uncached) image metadata without decoding any compressed pixel data.\n *\n * This is read from the header of the input image.\n * It does not take into consideration any operations to be applied to the output image,\n * such as resize or rotate.\n *\n * Dimensions in the response will respect the `page` and `pages` properties of the\n * {@link /api-constructor#parameters|constructor parameters}.\n *\n * A `Promise` is returned when `callback` is not provided.\n *\n * - `format`: Name of decoder used to decompress image data e.g. `jpeg`, `png`, `webp`, `gif`, `svg`\n * - `size`: Total size of image in bytes, for Stream and Buffer input only\n * - `width`: Number of pixels wide (EXIF orientation is not taken into consideration, see example below)\n * - `height`: Number of pixels high (EXIF orientation is not taken into consideration, see example below)\n * - `space`: Name of colour space interpretation e.g. `srgb`, `rgb`, `cmyk`, `lab`, `b-w` [...](https://www.libvips.org/API/current/VipsImage.html#VipsInterpretation)\n * - `channels`: Number of bands e.g. `3` for sRGB, `4` for CMYK\n * - `depth`: Name of pixel depth format e.g. `uchar`, `char`, `ushort`, `float` [...](https://www.libvips.org/API/current/VipsImage.html#VipsBandFormat)\n * - `density`: Number of pixels per inch (DPI), if present\n * - `chromaSubsampling`: String containing JPEG chroma subsampling, `4:2:0` or `4:4:4` for RGB, `4:2:0:4` or `4:4:4:4` for CMYK\n * - `isProgressive`: Boolean indicating whether the image is interlaced using a progressive scan\n * - `pages`: Number of pages/frames contained within the image, with support for TIFF, HEIF, PDF, animated GIF and animated WebP\n * - `pageHeight`: Number of pixels high each page in a multi-page image will be.\n * - `paletteBitDepth`: Bit depth of palette-based image (GIF, PNG).\n * - `loop`: Number of times to loop an animated image, zero refers to a continuous loop.\n * - `delay`: Delay in ms between each page in an animated image, provided as an array of integers.\n * - `pagePrimary`: Number of the primary page in a HEIF image\n * - `levels`: Details of each level in a multi-level image provided as an array of objects, requires libvips compiled with support for OpenSlide\n * - `subifds`: Number of Sub Image File Directories in an OME-TIFF image\n * - `background`: Default background colour, if present, for PNG (bKGD) and GIF images, either an RGB Object or a single greyscale value\n * - `compression`: The encoder used to compress an HEIF file, `av1` (AVIF) or `hevc` (HEIC)\n * - `resolutionUnit`: The unit of resolution (density), either `inch` or `cm`, if present\n * - `hasProfile`: Boolean indicating the presence of an embedded ICC profile\n * - `hasAlpha`: Boolean indicating the presence of an alpha transparency channel\n * - `orientation`: Number value of the EXIF Orientation header, if present\n * - `exif`: Buffer containing raw EXIF data, if present\n * - `icc`: Buffer containing raw [ICC](https://www.npmjs.com/package/icc) profile data, if present\n * - `iptc`: Buffer containing raw IPTC data, if present\n * - `xmp`: Buffer containing raw XMP data, if present\n * - `tifftagPhotoshop`: Buffer containing raw TIFFTAG_PHOTOSHOP data, if present\n * - `formatMagick`: String containing format for images loaded via *magick\n * - `comments`: Array of keyword/text pairs representing PNG text blocks, if present.\n *\n * @example\n * const metadata = await sharp(input).metadata();\n *\n * @example\n * const image = sharp(inputJpg);\n * image\n * .metadata()\n * .then(function(metadata) {\n * return image\n * .resize(Math.round(metadata.width / 2))\n * .webp()\n * .toBuffer();\n * })\n * .then(function(data) {\n * // data contains a WebP image half the width and height of the original JPEG\n * });\n *\n * @example\n * // Based on EXIF rotation metadata, get the right-side-up width and height:\n *\n * const size = getNormalSize(await sharp(input).metadata());\n *\n * function getNormalSize({ width, height, orientation }) {\n * return (orientation || 0) >= 5\n * ? { width: height, height: width }\n * : { width, height };\n * }\n *\n * @param {Function} [callback] - called with the arguments `(err, metadata)`\n * @returns {Promise|Sharp}\n */\nfunction metadata (callback) {\n const stack = Error();\n if (is.fn(callback)) {\n if (this._isStreamInput()) {\n this.on('finish', () => {\n this._flattenBufferIn();\n sharp.metadata(this.options, (err, metadata) => {\n if (err) {\n callback(is.nativeError(err, stack));\n } else {\n callback(null, metadata);\n }\n });\n });\n } else {\n sharp.metadata(this.options, (err, metadata) => {\n if (err) {\n callback(is.nativeError(err, stack));\n } else {\n callback(null, metadata);\n }\n });\n }\n return this;\n } else {\n if (this._isStreamInput()) {\n return new Promise((resolve, reject) => {\n const finished = () => {\n this._flattenBufferIn();\n sharp.metadata(this.options, (err, metadata) => {\n if (err) {\n reject(is.nativeError(err, stack));\n } else {\n resolve(metadata);\n }\n });\n };\n if (this.writableFinished) {\n finished();\n } else {\n this.once('finish', finished);\n }\n });\n } else {\n return new Promise((resolve, reject) => {\n sharp.metadata(this.options, (err, metadata) => {\n if (err) {\n reject(is.nativeError(err, stack));\n } else {\n resolve(metadata);\n }\n });\n });\n }\n }\n}\n\n/**\n * Access to pixel-derived image statistics for every channel in the image.\n * A `Promise` is returned when `callback` is not provided.\n *\n * - `channels`: Array of channel statistics for each channel in the image. Each channel statistic contains\n * - `min` (minimum value in the channel)\n * - `max` (maximum value in the channel)\n * - `sum` (sum of all values in a channel)\n * - `squaresSum` (sum of squared values in a channel)\n * - `mean` (mean of the values in a channel)\n * - `stdev` (standard deviation for the values in a channel)\n * - `minX` (x-coordinate of one of the pixel where the minimum lies)\n * - `minY` (y-coordinate of one of the pixel where the minimum lies)\n * - `maxX` (x-coordinate of one of the pixel where the maximum lies)\n * - `maxY` (y-coordinate of one of the pixel where the maximum lies)\n * - `isOpaque`: Is the image fully opaque? Will be `true` if the image has no alpha channel or if every pixel is fully opaque.\n * - `entropy`: Histogram-based estimation of greyscale entropy, discarding alpha channel if any.\n * - `sharpness`: Estimation of greyscale sharpness based on the standard deviation of a Laplacian convolution, discarding alpha channel if any.\n * - `dominant`: Object containing most dominant sRGB colour based on a 4096-bin 3D histogram.\n *\n * **Note**: Statistics are derived from the original input image. Any operations performed on the image must first be\n * written to a buffer in order to run `stats` on the result (see third example).\n *\n * @example\n * const image = sharp(inputJpg);\n * image\n * .stats()\n * .then(function(stats) {\n * // stats contains the channel-wise statistics array and the isOpaque value\n * });\n *\n * @example\n * const { entropy, sharpness, dominant } = await sharp(input).stats();\n * const { r, g, b } = dominant;\n *\n * @example\n * const image = sharp(input);\n * // store intermediate result\n * const part = await image.extract(region).toBuffer();\n * // create new instance to obtain statistics of extracted region\n * const stats = await sharp(part).stats();\n *\n * @param {Function} [callback] - called with the arguments `(err, stats)`\n * @returns {Promise}\n */\nfunction stats (callback) {\n const stack = Error();\n if (is.fn(callback)) {\n if (this._isStreamInput()) {\n this.on('finish', () => {\n this._flattenBufferIn();\n sharp.stats(this.options, (err, stats) => {\n if (err) {\n callback(is.nativeError(err, stack));\n } else {\n callback(null, stats);\n }\n });\n });\n } else {\n sharp.stats(this.options, (err, stats) => {\n if (err) {\n callback(is.nativeError(err, stack));\n } else {\n callback(null, stats);\n }\n });\n }\n return this;\n } else {\n if (this._isStreamInput()) {\n return new Promise((resolve, reject) => {\n this.on('finish', function () {\n this._flattenBufferIn();\n sharp.stats(this.options, (err, stats) => {\n if (err) {\n reject(is.nativeError(err, stack));\n } else {\n resolve(stats);\n }\n });\n });\n });\n } else {\n return new Promise((resolve, reject) => {\n sharp.stats(this.options, (err, stats) => {\n if (err) {\n reject(is.nativeError(err, stack));\n } else {\n resolve(stats);\n }\n });\n });\n }\n }\n}\n\n/**\n * Decorate the Sharp prototype with input-related functions.\n * @private\n */\nmodule.exports = function (Sharp) {\n Object.assign(Sharp.prototype, {\n // Private\n _inputOptionsFromObject,\n _createInputDescriptor,\n _write,\n _flattenBufferIn,\n _isStreamInput,\n // Public\n metadata,\n stats\n });\n // Class attributes\n Sharp.align = align;\n};\n","// Copyright 2013 Lovell Fuller and others.\n// SPDX-License-Identifier: Apache-2.0\n\n'use strict';\n\nconst is = require('./is');\n\n/**\n * Weighting to apply when using contain/cover fit.\n * @member\n * @private\n */\nconst gravity = {\n center: 0,\n centre: 0,\n north: 1,\n east: 2,\n south: 3,\n west: 4,\n northeast: 5,\n southeast: 6,\n southwest: 7,\n northwest: 8\n};\n\n/**\n * Position to apply when using contain/cover fit.\n * @member\n * @private\n */\nconst position = {\n top: 1,\n right: 2,\n bottom: 3,\n left: 4,\n 'right top': 5,\n 'right bottom': 6,\n 'left bottom': 7,\n 'left top': 8\n};\n\n/**\n * How to extend the image.\n * @member\n * @private\n */\nconst extendWith = {\n background: 'background',\n copy: 'copy',\n repeat: 'repeat',\n mirror: 'mirror'\n};\n\n/**\n * Strategies for automagic cover behaviour.\n * @member\n * @private\n */\nconst strategy = {\n entropy: 16,\n attention: 17\n};\n\n/**\n * Reduction kernels.\n * @member\n * @private\n */\nconst kernel = {\n nearest: 'nearest',\n linear: 'linear',\n cubic: 'cubic',\n mitchell: 'mitchell',\n lanczos2: 'lanczos2',\n lanczos3: 'lanczos3'\n};\n\n/**\n * Methods by which an image can be resized to fit the provided dimensions.\n * @member\n * @private\n */\nconst fit = {\n contain: 'contain',\n cover: 'cover',\n fill: 'fill',\n inside: 'inside',\n outside: 'outside'\n};\n\n/**\n * Map external fit property to internal canvas property.\n * @member\n * @private\n */\nconst mapFitToCanvas = {\n contain: 'embed',\n cover: 'crop',\n fill: 'ignore_aspect',\n inside: 'max',\n outside: 'min'\n};\n\n/**\n * @private\n */\nfunction isRotationExpected (options) {\n return (options.angle % 360) !== 0 || options.useExifOrientation === true || options.rotationAngle !== 0;\n}\n\n/**\n * @private\n */\nfunction isResizeExpected (options) {\n return options.width !== -1 || options.height !== -1;\n}\n\n/**\n * Resize image to `width`, `height` or `width x height`.\n *\n * When both a `width` and `height` are provided, the possible methods by which the image should **fit** these are:\n * - `cover`: (default) Preserving aspect ratio, attempt to ensure the image covers both provided dimensions by cropping/clipping to fit.\n * - `contain`: Preserving aspect ratio, contain within both provided dimensions using \"letterboxing\" where necessary.\n * - `fill`: Ignore the aspect ratio of the input and stretch to both provided dimensions.\n * - `inside`: Preserving aspect ratio, resize the image to be as large as possible while ensuring its dimensions are less than or equal to both those specified.\n * - `outside`: Preserving aspect ratio, resize the image to be as small as possible while ensuring its dimensions are greater than or equal to both those specified.\n *\n * Some of these values are based on the [object-fit](https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit) CSS property.\n *\n * \"Examples\n *\n * When using a **fit** of `cover` or `contain`, the default **position** is `centre`. Other options are:\n * - `sharp.position`: `top`, `right top`, `right`, `right bottom`, `bottom`, `left bottom`, `left`, `left top`.\n * - `sharp.gravity`: `north`, `northeast`, `east`, `southeast`, `south`, `southwest`, `west`, `northwest`, `center` or `centre`.\n * - `sharp.strategy`: `cover` only, dynamically crop using either the `entropy` or `attention` strategy.\n *\n * Some of these values are based on the [object-position](https://developer.mozilla.org/en-US/docs/Web/CSS/object-position) CSS property.\n *\n * The strategy-based approach initially resizes so one dimension is at its target length\n * then repeatedly ranks edge regions, discarding the edge with the lowest score based on the selected strategy.\n * - `entropy`: focus on the region with the highest [Shannon entropy](https://en.wikipedia.org/wiki/Entropy_%28information_theory%29).\n * - `attention`: focus on the region with the highest luminance frequency, colour saturation and presence of skin tones.\n *\n * Possible downsizing kernels are:\n * - `nearest`: Use [nearest neighbour interpolation](http://en.wikipedia.org/wiki/Nearest-neighbor_interpolation).\n * - `linear`: Use a [triangle filter](https://en.wikipedia.org/wiki/Triangular_function).\n * - `cubic`: Use a [Catmull-Rom spline](https://en.wikipedia.org/wiki/Centripetal_Catmull%E2%80%93Rom_spline).\n * - `mitchell`: Use a [Mitchell-Netravali spline](https://www.cs.utexas.edu/~fussell/courses/cs384g-fall2013/lectures/mitchell/Mitchell.pdf).\n * - `lanczos2`: Use a [Lanczos kernel](https://en.wikipedia.org/wiki/Lanczos_resampling#Lanczos_kernel) with `a=2`.\n * - `lanczos3`: Use a Lanczos kernel with `a=3` (the default).\n *\n * When upsampling, these kernels map to `nearest`, `linear` and `cubic` interpolators.\n * Downsampling kernels without a matching upsampling interpolator map to `cubic`.\n *\n * Only one resize can occur per pipeline.\n * Previous calls to `resize` in the same pipeline will be ignored.\n *\n * @example\n * sharp(input)\n * .resize({ width: 100 })\n * .toBuffer()\n * .then(data => {\n * // 100 pixels wide, auto-scaled height\n * });\n *\n * @example\n * sharp(input)\n * .resize({ height: 100 })\n * .toBuffer()\n * .then(data => {\n * // 100 pixels high, auto-scaled width\n * });\n *\n * @example\n * sharp(input)\n * .resize(200, 300, {\n * kernel: sharp.kernel.nearest,\n * fit: 'contain',\n * position: 'right top',\n * background: { r: 255, g: 255, b: 255, alpha: 0.5 }\n * })\n * .toFile('output.png')\n * .then(() => {\n * // output.png is a 200 pixels wide and 300 pixels high image\n * // containing a nearest-neighbour scaled version\n * // contained within the north-east corner of a semi-transparent white canvas\n * });\n *\n * @example\n * const transformer = sharp()\n * .resize({\n * width: 200,\n * height: 200,\n * fit: sharp.fit.cover,\n * position: sharp.strategy.entropy\n * });\n * // Read image data from readableStream\n * // Write 200px square auto-cropped image data to writableStream\n * readableStream\n * .pipe(transformer)\n * .pipe(writableStream);\n *\n * @example\n * sharp(input)\n * .resize(200, 200, {\n * fit: sharp.fit.inside,\n * withoutEnlargement: true\n * })\n * .toFormat('jpeg')\n * .toBuffer()\n * .then(function(outputBuffer) {\n * // outputBuffer contains JPEG image data\n * // no wider and no higher than 200 pixels\n * // and no larger than the input image\n * });\n *\n * @example\n * sharp(input)\n * .resize(200, 200, {\n * fit: sharp.fit.outside,\n * withoutReduction: true\n * })\n * .toFormat('jpeg')\n * .toBuffer()\n * .then(function(outputBuffer) {\n * // outputBuffer contains JPEG image data\n * // of at least 200 pixels wide and 200 pixels high while maintaining aspect ratio\n * // and no smaller than the input image\n * });\n *\n * @example\n * const scaleByHalf = await sharp(input)\n * .metadata()\n * .then(({ width }) => sharp(input)\n * .resize(Math.round(width * 0.5))\n * .toBuffer()\n * );\n *\n * @param {number} [width] - How many pixels wide the resultant image should be. Use `null` or `undefined` to auto-scale the width to match the height.\n * @param {number} [height] - How many pixels high the resultant image should be. Use `null` or `undefined` to auto-scale the height to match the width.\n * @param {Object} [options]\n * @param {number} [options.width] - An alternative means of specifying `width`. If both are present this takes priority.\n * @param {number} [options.height] - An alternative means of specifying `height`. If both are present this takes priority.\n * @param {String} [options.fit='cover'] - How the image should be resized/cropped to fit the target dimension(s), one of `cover`, `contain`, `fill`, `inside` or `outside`.\n * @param {String} [options.position='centre'] - A position, gravity or strategy to use when `fit` is `cover` or `contain`.\n * @param {String|Object} [options.background={r: 0, g: 0, b: 0, alpha: 1}] - background colour when `fit` is `contain`, parsed by the [color](https://www.npmjs.org/package/color) module, defaults to black without transparency.\n * @param {String} [options.kernel='lanczos3'] - The kernel to use for image reduction and the inferred interpolator to use for upsampling. Use the `fastShrinkOnLoad` option to control kernel vs shrink-on-load.\n * @param {Boolean} [options.withoutEnlargement=false] - Do not scale up if the width *or* height are already less than the target dimensions, equivalent to GraphicsMagick's `>` geometry option. This may result in output dimensions smaller than the target dimensions.\n * @param {Boolean} [options.withoutReduction=false] - Do not scale down if the width *or* height are already greater than the target dimensions, equivalent to GraphicsMagick's `<` geometry option. This may still result in a crop to reach the target dimensions.\n * @param {Boolean} [options.fastShrinkOnLoad=true] - Take greater advantage of the JPEG and WebP shrink-on-load feature, which can lead to a slight moiré pattern or round-down of an auto-scaled dimension.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction resize (widthOrOptions, height, options) {\n if (isResizeExpected(this.options)) {\n this.options.debuglog('ignoring previous resize options');\n }\n if (this.options.widthPost !== -1) {\n this.options.debuglog('operation order will be: extract, resize, extract');\n }\n if (is.defined(widthOrOptions)) {\n if (is.object(widthOrOptions) && !is.defined(options)) {\n options = widthOrOptions;\n } else if (is.integer(widthOrOptions) && widthOrOptions > 0) {\n this.options.width = widthOrOptions;\n } else {\n throw is.invalidParameterError('width', 'positive integer', widthOrOptions);\n }\n } else {\n this.options.width = -1;\n }\n if (is.defined(height)) {\n if (is.integer(height) && height > 0) {\n this.options.height = height;\n } else {\n throw is.invalidParameterError('height', 'positive integer', height);\n }\n } else {\n this.options.height = -1;\n }\n if (is.object(options)) {\n // Width\n if (is.defined(options.width)) {\n if (is.integer(options.width) && options.width > 0) {\n this.options.width = options.width;\n } else {\n throw is.invalidParameterError('width', 'positive integer', options.width);\n }\n }\n // Height\n if (is.defined(options.height)) {\n if (is.integer(options.height) && options.height > 0) {\n this.options.height = options.height;\n } else {\n throw is.invalidParameterError('height', 'positive integer', options.height);\n }\n }\n // Fit\n if (is.defined(options.fit)) {\n const canvas = mapFitToCanvas[options.fit];\n if (is.string(canvas)) {\n this.options.canvas = canvas;\n } else {\n throw is.invalidParameterError('fit', 'valid fit', options.fit);\n }\n }\n // Position\n if (is.defined(options.position)) {\n const pos = is.integer(options.position)\n ? options.position\n : strategy[options.position] || position[options.position] || gravity[options.position];\n if (is.integer(pos) && (is.inRange(pos, 0, 8) || is.inRange(pos, 16, 17))) {\n this.options.position = pos;\n } else {\n throw is.invalidParameterError('position', 'valid position/gravity/strategy', options.position);\n }\n }\n // Background\n this._setBackgroundColourOption('resizeBackground', options.background);\n // Kernel\n if (is.defined(options.kernel)) {\n if (is.string(kernel[options.kernel])) {\n this.options.kernel = kernel[options.kernel];\n } else {\n throw is.invalidParameterError('kernel', 'valid kernel name', options.kernel);\n }\n }\n // Without enlargement\n if (is.defined(options.withoutEnlargement)) {\n this._setBooleanOption('withoutEnlargement', options.withoutEnlargement);\n }\n // Without reduction\n if (is.defined(options.withoutReduction)) {\n this._setBooleanOption('withoutReduction', options.withoutReduction);\n }\n // Shrink on load\n if (is.defined(options.fastShrinkOnLoad)) {\n this._setBooleanOption('fastShrinkOnLoad', options.fastShrinkOnLoad);\n }\n }\n if (isRotationExpected(this.options) && isResizeExpected(this.options)) {\n this.options.rotateBeforePreExtract = true;\n }\n return this;\n}\n\n/**\n * Extend / pad / extrude one or more edges of the image with either\n * the provided background colour or pixels derived from the image.\n * This operation will always occur after resizing and extraction, if any.\n *\n * @example\n * // Resize to 140 pixels wide, then add 10 transparent pixels\n * // to the top, left and right edges and 20 to the bottom edge\n * sharp(input)\n * .resize(140)\n * .extend({\n * top: 10,\n * bottom: 20,\n * left: 10,\n * right: 10,\n * background: { r: 0, g: 0, b: 0, alpha: 0 }\n * })\n * ...\n *\n* @example\n * // Add a row of 10 red pixels to the bottom\n * sharp(input)\n * .extend({\n * bottom: 10,\n * background: 'red'\n * })\n * ...\n *\n * @example\n * // Extrude image by 8 pixels to the right, mirroring existing right hand edge\n * sharp(input)\n * .extend({\n * right: 8,\n * background: 'mirror'\n * })\n * ...\n *\n * @param {(number|Object)} extend - single pixel count to add to all edges or an Object with per-edge counts\n * @param {number} [extend.top=0]\n * @param {number} [extend.left=0]\n * @param {number} [extend.bottom=0]\n * @param {number} [extend.right=0]\n * @param {String} [extend.extendWith='background'] - populate new pixels using this method, one of: background, copy, repeat, mirror.\n * @param {String|Object} [extend.background={r: 0, g: 0, b: 0, alpha: 1}] - background colour, parsed by the [color](https://www.npmjs.org/package/color) module, defaults to black without transparency.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n*/\nfunction extend (extend) {\n if (is.integer(extend) && extend > 0) {\n this.options.extendTop = extend;\n this.options.extendBottom = extend;\n this.options.extendLeft = extend;\n this.options.extendRight = extend;\n } else if (is.object(extend)) {\n if (is.defined(extend.top)) {\n if (is.integer(extend.top) && extend.top >= 0) {\n this.options.extendTop = extend.top;\n } else {\n throw is.invalidParameterError('top', 'positive integer', extend.top);\n }\n }\n if (is.defined(extend.bottom)) {\n if (is.integer(extend.bottom) && extend.bottom >= 0) {\n this.options.extendBottom = extend.bottom;\n } else {\n throw is.invalidParameterError('bottom', 'positive integer', extend.bottom);\n }\n }\n if (is.defined(extend.left)) {\n if (is.integer(extend.left) && extend.left >= 0) {\n this.options.extendLeft = extend.left;\n } else {\n throw is.invalidParameterError('left', 'positive integer', extend.left);\n }\n }\n if (is.defined(extend.right)) {\n if (is.integer(extend.right) && extend.right >= 0) {\n this.options.extendRight = extend.right;\n } else {\n throw is.invalidParameterError('right', 'positive integer', extend.right);\n }\n }\n this._setBackgroundColourOption('extendBackground', extend.background);\n if (is.defined(extend.extendWith)) {\n if (is.string(extendWith[extend.extendWith])) {\n this.options.extendWith = extendWith[extend.extendWith];\n } else {\n throw is.invalidParameterError('extendWith', 'one of: background, copy, repeat, mirror', extend.extendWith);\n }\n }\n } else {\n throw is.invalidParameterError('extend', 'integer or object', extend);\n }\n return this;\n}\n\n/**\n * Extract/crop a region of the image.\n *\n * - Use `extract` before `resize` for pre-resize extraction.\n * - Use `extract` after `resize` for post-resize extraction.\n * - Use `extract` twice and `resize` once for extract-then-resize-then-extract in a fixed operation order.\n *\n * @example\n * sharp(input)\n * .extract({ left: left, top: top, width: width, height: height })\n * .toFile(output, function(err) {\n * // Extract a region of the input image, saving in the same format.\n * });\n * @example\n * sharp(input)\n * .extract({ left: leftOffsetPre, top: topOffsetPre, width: widthPre, height: heightPre })\n * .resize(width, height)\n * .extract({ left: leftOffsetPost, top: topOffsetPost, width: widthPost, height: heightPost })\n * .toFile(output, function(err) {\n * // Extract a region, resize, then extract from the resized image\n * });\n *\n * @param {Object} options - describes the region to extract using integral pixel values\n * @param {number} options.left - zero-indexed offset from left edge\n * @param {number} options.top - zero-indexed offset from top edge\n * @param {number} options.width - width of region to extract\n * @param {number} options.height - height of region to extract\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction extract (options) {\n const suffix = isResizeExpected(this.options) || this.options.widthPre !== -1 ? 'Post' : 'Pre';\n if (this.options[`width${suffix}`] !== -1) {\n this.options.debuglog('ignoring previous extract options');\n }\n ['left', 'top', 'width', 'height'].forEach(function (name) {\n const value = options[name];\n if (is.integer(value) && value >= 0) {\n this.options[name + (name === 'left' || name === 'top' ? 'Offset' : '') + suffix] = value;\n } else {\n throw is.invalidParameterError(name, 'integer', value);\n }\n }, this);\n // Ensure existing rotation occurs before pre-resize extraction\n if (isRotationExpected(this.options) && !isResizeExpected(this.options)) {\n if (this.options.widthPre === -1 || this.options.widthPost === -1) {\n this.options.rotateBeforePreExtract = true;\n }\n }\n return this;\n}\n\n/**\n * Trim pixels from all edges that contain values similar to the given background colour, which defaults to that of the top-left pixel.\n *\n * Images with an alpha channel will use the combined bounding box of alpha and non-alpha channels.\n *\n * If the result of this operation would trim an image to nothing then no change is made.\n *\n * The `info` response Object will contain `trimOffsetLeft` and `trimOffsetTop` properties.\n *\n * @example\n * // Trim pixels with a colour similar to that of the top-left pixel.\n * await sharp(input)\n * .trim()\n * .toFile(output);\n *\n * @example\n * // Trim pixels with the exact same colour as that of the top-left pixel.\n * await sharp(input)\n * .trim({\n * threshold: 0\n * })\n * .toFile(output);\n *\n * @example\n * // Assume input is line art and trim only pixels with a similar colour to red.\n * const output = await sharp(input)\n * .trim({\n * background: \"#FF0000\",\n * lineArt: true\n * })\n * .toBuffer();\n *\n * @example\n * // Trim all \"yellow-ish\" pixels, being more lenient with the higher threshold.\n * const output = await sharp(input)\n * .trim({\n * background: \"yellow\",\n * threshold: 42,\n * })\n * .toBuffer();\n *\n * @param {Object} [options]\n * @param {string|Object} [options.background='top-left pixel'] - Background colour, parsed by the [color](https://www.npmjs.org/package/color) module, defaults to that of the top-left pixel.\n * @param {number} [options.threshold=10] - Allowed difference from the above colour, a positive number.\n * @param {boolean} [options.lineArt=false] - Does the input more closely resemble line art (e.g. vector) rather than being photographic?\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction trim (options) {\n this.options.trimThreshold = 10;\n if (is.defined(options)) {\n if (is.object(options)) {\n if (is.defined(options.background)) {\n this._setBackgroundColourOption('trimBackground', options.background);\n }\n if (is.defined(options.threshold)) {\n if (is.number(options.threshold) && options.threshold >= 0) {\n this.options.trimThreshold = options.threshold;\n } else {\n throw is.invalidParameterError('threshold', 'positive number', options.threshold);\n }\n }\n if (is.defined(options.lineArt)) {\n this._setBooleanOption('trimLineArt', options.lineArt);\n }\n } else {\n throw is.invalidParameterError('trim', 'object', options);\n }\n }\n if (isRotationExpected(this.options)) {\n this.options.rotateBeforePreExtract = true;\n }\n return this;\n}\n\n/**\n * Decorate the Sharp prototype with resize-related functions.\n * @private\n */\nmodule.exports = function (Sharp) {\n Object.assign(Sharp.prototype, {\n resize,\n extend,\n extract,\n trim\n });\n // Class attributes\n Sharp.gravity = gravity;\n Sharp.strategy = strategy;\n Sharp.kernel = kernel;\n Sharp.fit = fit;\n Sharp.position = position;\n};\n","// Copyright 2013 Lovell Fuller and others.\n// SPDX-License-Identifier: Apache-2.0\n\n'use strict';\n\nconst is = require('./is');\n\n/**\n * Blend modes.\n * @member\n * @private\n */\nconst blend = {\n clear: 'clear',\n source: 'source',\n over: 'over',\n in: 'in',\n out: 'out',\n atop: 'atop',\n dest: 'dest',\n 'dest-over': 'dest-over',\n 'dest-in': 'dest-in',\n 'dest-out': 'dest-out',\n 'dest-atop': 'dest-atop',\n xor: 'xor',\n add: 'add',\n saturate: 'saturate',\n multiply: 'multiply',\n screen: 'screen',\n overlay: 'overlay',\n darken: 'darken',\n lighten: 'lighten',\n 'colour-dodge': 'colour-dodge',\n 'color-dodge': 'colour-dodge',\n 'colour-burn': 'colour-burn',\n 'color-burn': 'colour-burn',\n 'hard-light': 'hard-light',\n 'soft-light': 'soft-light',\n difference: 'difference',\n exclusion: 'exclusion'\n};\n\n/**\n * Composite image(s) over the processed (resized, extracted etc.) image.\n *\n * The images to composite must be the same size or smaller than the processed image.\n * If both `top` and `left` options are provided, they take precedence over `gravity`.\n *\n * Any resize, rotate or extract operations in the same processing pipeline\n * will always be applied to the input image before composition.\n *\n * The `blend` option can be one of `clear`, `source`, `over`, `in`, `out`, `atop`,\n * `dest`, `dest-over`, `dest-in`, `dest-out`, `dest-atop`,\n * `xor`, `add`, `saturate`, `multiply`, `screen`, `overlay`, `darken`, `lighten`,\n * `colour-dodge`, `color-dodge`, `colour-burn`,`color-burn`,\n * `hard-light`, `soft-light`, `difference`, `exclusion`.\n *\n * More information about blend modes can be found at\n * https://www.libvips.org/API/current/libvips-conversion.html#VipsBlendMode\n * and https://www.cairographics.org/operators/\n *\n * @since 0.22.0\n *\n * @example\n * await sharp(background)\n * .composite([\n * { input: layer1, gravity: 'northwest' },\n * { input: layer2, gravity: 'southeast' },\n * ])\n * .toFile('combined.png');\n *\n * @example\n * const output = await sharp('input.gif', { animated: true })\n * .composite([\n * { input: 'overlay.png', tile: true, blend: 'saturate' }\n * ])\n * .toBuffer();\n *\n * @example\n * sharp('input.png')\n * .rotate(180)\n * .resize(300)\n * .flatten( { background: '#ff6600' } )\n * .composite([{ input: 'overlay.png', gravity: 'southeast' }])\n * .sharpen()\n * .withMetadata()\n * .webp( { quality: 90 } )\n * .toBuffer()\n * .then(function(outputBuffer) {\n * // outputBuffer contains upside down, 300px wide, alpha channel flattened\n * // onto orange background, composited with overlay.png with SE gravity,\n * // sharpened, with metadata, 90% quality WebP image data. Phew!\n * });\n *\n * @param {Object[]} images - Ordered list of images to composite\n * @param {Buffer|String} [images[].input] - Buffer containing image data, String containing the path to an image file, or Create object (see below)\n * @param {Object} [images[].input.create] - describes a blank overlay to be created.\n * @param {Number} [images[].input.create.width]\n * @param {Number} [images[].input.create.height]\n * @param {Number} [images[].input.create.channels] - 3-4\n * @param {String|Object} [images[].input.create.background] - parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha.\n * @param {Object} [images[].input.text] - describes a new text image to be created.\n * @param {string} [images[].input.text.text] - text to render as a UTF-8 string. It can contain Pango markup, for example `LeMonde`.\n * @param {string} [images[].input.text.font] - font name to render with.\n * @param {string} [images[].input.text.fontfile] - absolute filesystem path to a font file that can be used by `font`.\n * @param {number} [images[].input.text.width=0] - integral number of pixels to word-wrap at. Lines of text wider than this will be broken at word boundaries.\n * @param {number} [images[].input.text.height=0] - integral number of pixels high. When defined, `dpi` will be ignored and the text will automatically fit the pixel resolution defined by `width` and `height`. Will be ignored if `width` is not specified or set to 0.\n * @param {string} [images[].input.text.align='left'] - text alignment (`'left'`, `'centre'`, `'center'`, `'right'`).\n * @param {boolean} [images[].input.text.justify=false] - set this to true to apply justification to the text.\n * @param {number} [images[].input.text.dpi=72] - the resolution (size) at which to render the text. Does not take effect if `height` is specified.\n * @param {boolean} [images[].input.text.rgba=false] - set this to true to enable RGBA output. This is useful for colour emoji rendering, or support for Pango markup features like `Red!`.\n * @param {number} [images[].input.text.spacing=0] - text line height in points. Will use the font line height if none is specified.\n * @param {String} [images[].blend='over'] - how to blend this image with the image below.\n * @param {String} [images[].gravity='centre'] - gravity at which to place the overlay.\n * @param {Number} [images[].top] - the pixel offset from the top edge.\n * @param {Number} [images[].left] - the pixel offset from the left edge.\n * @param {Boolean} [images[].tile=false] - set to true to repeat the overlay image across the entire image with the given `gravity`.\n * @param {Boolean} [images[].premultiplied=false] - set to true to avoid premultiplying the image below. Equivalent to the `--premultiplied` vips option.\n * @param {Number} [images[].density=72] - number representing the DPI for vector overlay image.\n * @param {Object} [images[].raw] - describes overlay when using raw pixel data.\n * @param {Number} [images[].raw.width]\n * @param {Number} [images[].raw.height]\n * @param {Number} [images[].raw.channels]\n * @param {boolean} [images[].animated=false] - Set to `true` to read all frames/pages of an animated image.\n * @param {string} [images[].failOn='warning'] - @see {@link /api-constructor#parameters|constructor parameters}\n * @param {number|boolean} [images[].limitInputPixels=268402689] - @see {@link /api-constructor#parameters|constructor parameters}\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction composite (images) {\n if (!Array.isArray(images)) {\n throw is.invalidParameterError('images to composite', 'array', images);\n }\n this.options.composite = images.map(image => {\n if (!is.object(image)) {\n throw is.invalidParameterError('image to composite', 'object', image);\n }\n const inputOptions = this._inputOptionsFromObject(image);\n const composite = {\n input: this._createInputDescriptor(image.input, inputOptions, { allowStream: false }),\n blend: 'over',\n tile: false,\n left: 0,\n top: 0,\n hasOffset: false,\n gravity: 0,\n premultiplied: false\n };\n if (is.defined(image.blend)) {\n if (is.string(blend[image.blend])) {\n composite.blend = blend[image.blend];\n } else {\n throw is.invalidParameterError('blend', 'valid blend name', image.blend);\n }\n }\n if (is.defined(image.tile)) {\n if (is.bool(image.tile)) {\n composite.tile = image.tile;\n } else {\n throw is.invalidParameterError('tile', 'boolean', image.tile);\n }\n }\n if (is.defined(image.left)) {\n if (is.integer(image.left)) {\n composite.left = image.left;\n } else {\n throw is.invalidParameterError('left', 'integer', image.left);\n }\n }\n if (is.defined(image.top)) {\n if (is.integer(image.top)) {\n composite.top = image.top;\n } else {\n throw is.invalidParameterError('top', 'integer', image.top);\n }\n }\n if (is.defined(image.top) !== is.defined(image.left)) {\n throw new Error('Expected both left and top to be set');\n } else {\n composite.hasOffset = is.integer(image.top) && is.integer(image.left);\n }\n if (is.defined(image.gravity)) {\n if (is.integer(image.gravity) && is.inRange(image.gravity, 0, 8)) {\n composite.gravity = image.gravity;\n } else if (is.string(image.gravity) && is.integer(this.constructor.gravity[image.gravity])) {\n composite.gravity = this.constructor.gravity[image.gravity];\n } else {\n throw is.invalidParameterError('gravity', 'valid gravity', image.gravity);\n }\n }\n if (is.defined(image.premultiplied)) {\n if (is.bool(image.premultiplied)) {\n composite.premultiplied = image.premultiplied;\n } else {\n throw is.invalidParameterError('premultiplied', 'boolean', image.premultiplied);\n }\n }\n return composite;\n });\n return this;\n}\n\n/**\n * Decorate the Sharp prototype with composite-related functions.\n * @private\n */\nmodule.exports = function (Sharp) {\n Sharp.prototype.composite = composite;\n Sharp.blend = blend;\n};\n","// Copyright 2013 Lovell Fuller and others.\n// SPDX-License-Identifier: Apache-2.0\n\n'use strict';\n\nconst color = require('color');\nconst is = require('./is');\n\n/**\n * How accurate an operation should be.\n * @member\n * @private\n */\nconst vipsPrecision = {\n integer: 'integer',\n float: 'float',\n approximate: 'approximate'\n};\n\n/**\n * Rotate the output image by either an explicit angle\n * or auto-orient based on the EXIF `Orientation` tag.\n *\n * If an angle is provided, it is converted to a valid positive degree rotation.\n * For example, `-450` will produce a 270 degree rotation.\n *\n * When rotating by an angle other than a multiple of 90,\n * the background colour can be provided with the `background` option.\n *\n * If no angle is provided, it is determined from the EXIF data.\n * Mirroring is supported and may infer the use of a flip operation.\n *\n * The use of `rotate` without an angle will remove the EXIF `Orientation` tag, if any.\n *\n * Only one rotation can occur per pipeline.\n * Previous calls to `rotate` in the same pipeline will be ignored.\n *\n * Multi-page images can only be rotated by 180 degrees.\n *\n * Method order is important when rotating, resizing and/or extracting regions,\n * for example `.rotate(x).extract(y)` will produce a different result to `.extract(y).rotate(x)`.\n *\n * @example\n * const pipeline = sharp()\n * .rotate()\n * .resize(null, 200)\n * .toBuffer(function (err, outputBuffer, info) {\n * // outputBuffer contains 200px high JPEG image data,\n * // auto-rotated using EXIF Orientation tag\n * // info.width and info.height contain the dimensions of the resized image\n * });\n * readableStream.pipe(pipeline);\n *\n * @example\n * const rotateThenResize = await sharp(input)\n * .rotate(90)\n * .resize({ width: 16, height: 8, fit: 'fill' })\n * .toBuffer();\n * const resizeThenRotate = await sharp(input)\n * .resize({ width: 16, height: 8, fit: 'fill' })\n * .rotate(90)\n * .toBuffer();\n *\n * @param {number} [angle=auto] angle of rotation.\n * @param {Object} [options] - if present, is an Object with optional attributes.\n * @param {string|Object} [options.background=\"#000000\"] parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction rotate (angle, options) {\n if (this.options.useExifOrientation || this.options.angle || this.options.rotationAngle) {\n this.options.debuglog('ignoring previous rotate options');\n }\n if (!is.defined(angle)) {\n this.options.useExifOrientation = true;\n } else if (is.integer(angle) && !(angle % 90)) {\n this.options.angle = angle;\n } else if (is.number(angle)) {\n this.options.rotationAngle = angle;\n if (is.object(options) && options.background) {\n const backgroundColour = color(options.background);\n this.options.rotationBackground = [\n backgroundColour.red(),\n backgroundColour.green(),\n backgroundColour.blue(),\n Math.round(backgroundColour.alpha() * 255)\n ];\n }\n } else {\n throw is.invalidParameterError('angle', 'numeric', angle);\n }\n return this;\n}\n\n/**\n * Mirror the image vertically (up-down) about the x-axis.\n * This always occurs before rotation, if any.\n *\n * This operation does not work correctly with multi-page images.\n *\n * @example\n * const output = await sharp(input).flip().toBuffer();\n *\n * @param {Boolean} [flip=true]\n * @returns {Sharp}\n */\nfunction flip (flip) {\n this.options.flip = is.bool(flip) ? flip : true;\n return this;\n}\n\n/**\n * Mirror the image horizontally (left-right) about the y-axis.\n * This always occurs before rotation, if any.\n *\n * @example\n * const output = await sharp(input).flop().toBuffer();\n *\n * @param {Boolean} [flop=true]\n * @returns {Sharp}\n */\nfunction flop (flop) {\n this.options.flop = is.bool(flop) ? flop : true;\n return this;\n}\n\n/**\n * Perform an affine transform on an image. This operation will always occur after resizing, extraction and rotation, if any.\n *\n * You must provide an array of length 4 or a 2x2 affine transformation matrix.\n * By default, new pixels are filled with a black background. You can provide a background color with the `background` option.\n * A particular interpolator may also be specified. Set the `interpolator` option to an attribute of the `sharp.interpolators` Object e.g. `sharp.interpolators.nohalo`.\n *\n * In the case of a 2x2 matrix, the transform is:\n * - X = `matrix[0, 0]` \\* (x + `idx`) + `matrix[0, 1]` \\* (y + `idy`) + `odx`\n * - Y = `matrix[1, 0]` \\* (x + `idx`) + `matrix[1, 1]` \\* (y + `idy`) + `ody`\n *\n * where:\n * - x and y are the coordinates in input image.\n * - X and Y are the coordinates in output image.\n * - (0,0) is the upper left corner.\n *\n * @since 0.27.0\n *\n * @example\n * const pipeline = sharp()\n * .affine([[1, 0.3], [0.1, 0.7]], {\n * background: 'white',\n * interpolator: sharp.interpolators.nohalo\n * })\n * .toBuffer((err, outputBuffer, info) => {\n * // outputBuffer contains the transformed image\n * // info.width and info.height contain the new dimensions\n * });\n *\n * inputStream\n * .pipe(pipeline);\n *\n * @param {Array>|Array} matrix - affine transformation matrix\n * @param {Object} [options] - if present, is an Object with optional attributes.\n * @param {String|Object} [options.background=\"#000000\"] - parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha.\n * @param {Number} [options.idx=0] - input horizontal offset\n * @param {Number} [options.idy=0] - input vertical offset\n * @param {Number} [options.odx=0] - output horizontal offset\n * @param {Number} [options.ody=0] - output vertical offset\n * @param {String} [options.interpolator=sharp.interpolators.bicubic] - interpolator\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction affine (matrix, options) {\n const flatMatrix = [].concat(...matrix);\n if (flatMatrix.length === 4 && flatMatrix.every(is.number)) {\n this.options.affineMatrix = flatMatrix;\n } else {\n throw is.invalidParameterError('matrix', '1x4 or 2x2 array', matrix);\n }\n\n if (is.defined(options)) {\n if (is.object(options)) {\n this._setBackgroundColourOption('affineBackground', options.background);\n if (is.defined(options.idx)) {\n if (is.number(options.idx)) {\n this.options.affineIdx = options.idx;\n } else {\n throw is.invalidParameterError('options.idx', 'number', options.idx);\n }\n }\n if (is.defined(options.idy)) {\n if (is.number(options.idy)) {\n this.options.affineIdy = options.idy;\n } else {\n throw is.invalidParameterError('options.idy', 'number', options.idy);\n }\n }\n if (is.defined(options.odx)) {\n if (is.number(options.odx)) {\n this.options.affineOdx = options.odx;\n } else {\n throw is.invalidParameterError('options.odx', 'number', options.odx);\n }\n }\n if (is.defined(options.ody)) {\n if (is.number(options.ody)) {\n this.options.affineOdy = options.ody;\n } else {\n throw is.invalidParameterError('options.ody', 'number', options.ody);\n }\n }\n if (is.defined(options.interpolator)) {\n if (is.inArray(options.interpolator, Object.values(this.constructor.interpolators))) {\n this.options.affineInterpolator = options.interpolator;\n } else {\n throw is.invalidParameterError('options.interpolator', 'valid interpolator name', options.interpolator);\n }\n }\n } else {\n throw is.invalidParameterError('options', 'object', options);\n }\n }\n\n return this;\n}\n\n/**\n * Sharpen the image.\n *\n * When used without parameters, performs a fast, mild sharpen of the output image.\n *\n * When a `sigma` is provided, performs a slower, more accurate sharpen of the L channel in the LAB colour space.\n * Fine-grained control over the level of sharpening in \"flat\" (m1) and \"jagged\" (m2) areas is available.\n *\n * See {@link https://www.libvips.org/API/current/libvips-convolution.html#vips-sharpen|libvips sharpen} operation.\n *\n * @example\n * const data = await sharp(input).sharpen().toBuffer();\n *\n * @example\n * const data = await sharp(input).sharpen({ sigma: 2 }).toBuffer();\n *\n * @example\n * const data = await sharp(input)\n * .sharpen({\n * sigma: 2,\n * m1: 0,\n * m2: 3,\n * x1: 3,\n * y2: 15,\n * y3: 15,\n * })\n * .toBuffer();\n *\n * @param {Object|number} [options] - if present, is an Object with attributes\n * @param {number} [options.sigma] - the sigma of the Gaussian mask, where `sigma = 1 + radius / 2`, between 0.000001 and 10\n * @param {number} [options.m1=1.0] - the level of sharpening to apply to \"flat\" areas, between 0 and 1000000\n * @param {number} [options.m2=2.0] - the level of sharpening to apply to \"jagged\" areas, between 0 and 1000000\n * @param {number} [options.x1=2.0] - threshold between \"flat\" and \"jagged\", between 0 and 1000000\n * @param {number} [options.y2=10.0] - maximum amount of brightening, between 0 and 1000000\n * @param {number} [options.y3=20.0] - maximum amount of darkening, between 0 and 1000000\n * @param {number} [flat] - (deprecated) see `options.m1`.\n * @param {number} [jagged] - (deprecated) see `options.m2`.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction sharpen (options, flat, jagged) {\n if (!is.defined(options)) {\n // No arguments: default to mild sharpen\n this.options.sharpenSigma = -1;\n } else if (is.bool(options)) {\n // Deprecated boolean argument: apply mild sharpen?\n this.options.sharpenSigma = options ? -1 : 0;\n } else if (is.number(options) && is.inRange(options, 0.01, 10000)) {\n // Deprecated numeric argument: specific sigma\n this.options.sharpenSigma = options;\n // Deprecated control over flat areas\n if (is.defined(flat)) {\n if (is.number(flat) && is.inRange(flat, 0, 10000)) {\n this.options.sharpenM1 = flat;\n } else {\n throw is.invalidParameterError('flat', 'number between 0 and 10000', flat);\n }\n }\n // Deprecated control over jagged areas\n if (is.defined(jagged)) {\n if (is.number(jagged) && is.inRange(jagged, 0, 10000)) {\n this.options.sharpenM2 = jagged;\n } else {\n throw is.invalidParameterError('jagged', 'number between 0 and 10000', jagged);\n }\n }\n } else if (is.plainObject(options)) {\n if (is.number(options.sigma) && is.inRange(options.sigma, 0.000001, 10)) {\n this.options.sharpenSigma = options.sigma;\n } else {\n throw is.invalidParameterError('options.sigma', 'number between 0.000001 and 10', options.sigma);\n }\n if (is.defined(options.m1)) {\n if (is.number(options.m1) && is.inRange(options.m1, 0, 1000000)) {\n this.options.sharpenM1 = options.m1;\n } else {\n throw is.invalidParameterError('options.m1', 'number between 0 and 1000000', options.m1);\n }\n }\n if (is.defined(options.m2)) {\n if (is.number(options.m2) && is.inRange(options.m2, 0, 1000000)) {\n this.options.sharpenM2 = options.m2;\n } else {\n throw is.invalidParameterError('options.m2', 'number between 0 and 1000000', options.m2);\n }\n }\n if (is.defined(options.x1)) {\n if (is.number(options.x1) && is.inRange(options.x1, 0, 1000000)) {\n this.options.sharpenX1 = options.x1;\n } else {\n throw is.invalidParameterError('options.x1', 'number between 0 and 1000000', options.x1);\n }\n }\n if (is.defined(options.y2)) {\n if (is.number(options.y2) && is.inRange(options.y2, 0, 1000000)) {\n this.options.sharpenY2 = options.y2;\n } else {\n throw is.invalidParameterError('options.y2', 'number between 0 and 1000000', options.y2);\n }\n }\n if (is.defined(options.y3)) {\n if (is.number(options.y3) && is.inRange(options.y3, 0, 1000000)) {\n this.options.sharpenY3 = options.y3;\n } else {\n throw is.invalidParameterError('options.y3', 'number between 0 and 1000000', options.y3);\n }\n }\n } else {\n throw is.invalidParameterError('sigma', 'number between 0.01 and 10000', options);\n }\n return this;\n}\n\n/**\n * Apply median filter.\n * When used without parameters the default window is 3x3.\n *\n * @example\n * const output = await sharp(input).median().toBuffer();\n *\n * @example\n * const output = await sharp(input).median(5).toBuffer();\n *\n * @param {number} [size=3] square mask size: size x size\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction median (size) {\n if (!is.defined(size)) {\n // No arguments: default to 3x3\n this.options.medianSize = 3;\n } else if (is.integer(size) && is.inRange(size, 1, 1000)) {\n // Numeric argument: specific sigma\n this.options.medianSize = size;\n } else {\n throw is.invalidParameterError('size', 'integer between 1 and 1000', size);\n }\n return this;\n}\n\n/**\n * Blur the image.\n *\n * When used without parameters, performs a fast 3x3 box blur (equivalent to a box linear filter).\n *\n * When a `sigma` is provided, performs a slower, more accurate Gaussian blur.\n *\n * @example\n * const boxBlurred = await sharp(input)\n * .blur()\n * .toBuffer();\n *\n * @example\n * const gaussianBlurred = await sharp(input)\n * .blur(5)\n * .toBuffer();\n *\n * @param {Object|number|Boolean} [options]\n * @param {number} [options.sigma] a value between 0.3 and 1000 representing the sigma of the Gaussian mask, where `sigma = 1 + radius / 2`.\n * @param {string} [options.precision='integer'] How accurate the operation should be, one of: integer, float, approximate.\n * @param {number} [options.minAmplitude=0.2] A value between 0.001 and 1. A smaller value will generate a larger, more accurate mask.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction blur (options) {\n let sigma;\n if (is.number(options)) {\n sigma = options;\n } else if (is.plainObject(options)) {\n if (!is.number(options.sigma)) {\n throw is.invalidParameterError('options.sigma', 'number between 0.3 and 1000', sigma);\n }\n sigma = options.sigma;\n if ('precision' in options) {\n if (is.string(vipsPrecision[options.precision])) {\n this.options.precision = vipsPrecision[options.precision];\n } else {\n throw is.invalidParameterError('precision', 'one of: integer, float, approximate', options.precision);\n }\n }\n if ('minAmplitude' in options) {\n if (is.number(options.minAmplitude) && is.inRange(options.minAmplitude, 0.001, 1)) {\n this.options.minAmpl = options.minAmplitude;\n } else {\n throw is.invalidParameterError('minAmplitude', 'number between 0.001 and 1', options.minAmplitude);\n }\n }\n }\n\n if (!is.defined(options)) {\n // No arguments: default to mild blur\n this.options.blurSigma = -1;\n } else if (is.bool(options)) {\n // Boolean argument: apply mild blur?\n this.options.blurSigma = options ? -1 : 0;\n } else if (is.number(sigma) && is.inRange(sigma, 0.3, 1000)) {\n // Numeric argument: specific sigma\n this.options.blurSigma = sigma;\n } else {\n throw is.invalidParameterError('sigma', 'number between 0.3 and 1000', sigma);\n }\n\n return this;\n}\n\n/**\n * Merge alpha transparency channel, if any, with a background, then remove the alpha channel.\n *\n * See also {@link /api-channel#removealpha|removeAlpha}.\n *\n * @example\n * await sharp(rgbaInput)\n * .flatten({ background: '#F0A703' })\n * .toBuffer();\n *\n * @param {Object} [options]\n * @param {string|Object} [options.background={r: 0, g: 0, b: 0}] - background colour, parsed by the [color](https://www.npmjs.org/package/color) module, defaults to black.\n * @returns {Sharp}\n */\nfunction flatten (options) {\n this.options.flatten = is.bool(options) ? options : true;\n if (is.object(options)) {\n this._setBackgroundColourOption('flattenBackground', options.background);\n }\n return this;\n}\n\n/**\n * Ensure the image has an alpha channel\n * with all white pixel values made fully transparent.\n *\n * Existing alpha channel values for non-white pixels remain unchanged.\n *\n * This feature is experimental and the API may change.\n *\n * @since 0.32.1\n *\n * @example\n * await sharp(rgbInput)\n * .unflatten()\n * .toBuffer();\n *\n * @example\n * await sharp(rgbInput)\n * .threshold(128, { grayscale: false }) // converter bright pixels to white\n * .unflatten()\n * .toBuffer();\n */\nfunction unflatten () {\n this.options.unflatten = true;\n return this;\n}\n\n/**\n * Apply a gamma correction by reducing the encoding (darken) pre-resize at a factor of `1/gamma`\n * then increasing the encoding (brighten) post-resize at a factor of `gamma`.\n * This can improve the perceived brightness of a resized image in non-linear colour spaces.\n * JPEG and WebP input images will not take advantage of the shrink-on-load performance optimisation\n * when applying a gamma correction.\n *\n * Supply a second argument to use a different output gamma value, otherwise the first value is used in both cases.\n *\n * @param {number} [gamma=2.2] value between 1.0 and 3.0.\n * @param {number} [gammaOut] value between 1.0 and 3.0. (optional, defaults to same as `gamma`)\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction gamma (gamma, gammaOut) {\n if (!is.defined(gamma)) {\n // Default gamma correction of 2.2 (sRGB)\n this.options.gamma = 2.2;\n } else if (is.number(gamma) && is.inRange(gamma, 1, 3)) {\n this.options.gamma = gamma;\n } else {\n throw is.invalidParameterError('gamma', 'number between 1.0 and 3.0', gamma);\n }\n if (!is.defined(gammaOut)) {\n // Default gamma correction for output is same as input\n this.options.gammaOut = this.options.gamma;\n } else if (is.number(gammaOut) && is.inRange(gammaOut, 1, 3)) {\n this.options.gammaOut = gammaOut;\n } else {\n throw is.invalidParameterError('gammaOut', 'number between 1.0 and 3.0', gammaOut);\n }\n return this;\n}\n\n/**\n * Produce the \"negative\" of the image.\n *\n * @example\n * const output = await sharp(input)\n * .negate()\n * .toBuffer();\n *\n * @example\n * const output = await sharp(input)\n * .negate({ alpha: false })\n * .toBuffer();\n *\n * @param {Object} [options]\n * @param {Boolean} [options.alpha=true] Whether or not to negate any alpha channel\n * @returns {Sharp}\n */\nfunction negate (options) {\n this.options.negate = is.bool(options) ? options : true;\n if (is.plainObject(options) && 'alpha' in options) {\n if (!is.bool(options.alpha)) {\n throw is.invalidParameterError('alpha', 'should be boolean value', options.alpha);\n } else {\n this.options.negateAlpha = options.alpha;\n }\n }\n return this;\n}\n\n/**\n * Enhance output image contrast by stretching its luminance to cover a full dynamic range.\n *\n * Uses a histogram-based approach, taking a default range of 1% to 99% to reduce sensitivity to noise at the extremes.\n *\n * Luminance values below the `lower` percentile will be underexposed by clipping to zero.\n * Luminance values above the `upper` percentile will be overexposed by clipping to the max pixel value.\n *\n * @example\n * const output = await sharp(input)\n * .normalise()\n * .toBuffer();\n *\n * @example\n * const output = await sharp(input)\n * .normalise({ lower: 0, upper: 100 })\n * .toBuffer();\n *\n * @param {Object} [options]\n * @param {number} [options.lower=1] - Percentile below which luminance values will be underexposed.\n * @param {number} [options.upper=99] - Percentile above which luminance values will be overexposed.\n * @returns {Sharp}\n */\nfunction normalise (options) {\n if (is.plainObject(options)) {\n if (is.defined(options.lower)) {\n if (is.number(options.lower) && is.inRange(options.lower, 0, 99)) {\n this.options.normaliseLower = options.lower;\n } else {\n throw is.invalidParameterError('lower', 'number between 0 and 99', options.lower);\n }\n }\n if (is.defined(options.upper)) {\n if (is.number(options.upper) && is.inRange(options.upper, 1, 100)) {\n this.options.normaliseUpper = options.upper;\n } else {\n throw is.invalidParameterError('upper', 'number between 1 and 100', options.upper);\n }\n }\n }\n if (this.options.normaliseLower >= this.options.normaliseUpper) {\n throw is.invalidParameterError('range', 'lower to be less than upper',\n `${this.options.normaliseLower} >= ${this.options.normaliseUpper}`);\n }\n this.options.normalise = true;\n return this;\n}\n\n/**\n * Alternative spelling of normalise.\n *\n * @example\n * const output = await sharp(input)\n * .normalize()\n * .toBuffer();\n *\n * @param {Object} [options]\n * @param {number} [options.lower=1] - Percentile below which luminance values will be underexposed.\n * @param {number} [options.upper=99] - Percentile above which luminance values will be overexposed.\n * @returns {Sharp}\n */\nfunction normalize (options) {\n return this.normalise(options);\n}\n\n/**\n * Perform contrast limiting adaptive histogram equalization\n * {@link https://en.wikipedia.org/wiki/Adaptive_histogram_equalization#Contrast_Limited_AHE|CLAHE}.\n *\n * This will, in general, enhance the clarity of the image by bringing out darker details.\n *\n * @since 0.28.3\n *\n * @example\n * const output = await sharp(input)\n * .clahe({\n * width: 3,\n * height: 3,\n * })\n * .toBuffer();\n *\n * @param {Object} options\n * @param {number} options.width - Integral width of the search window, in pixels.\n * @param {number} options.height - Integral height of the search window, in pixels.\n * @param {number} [options.maxSlope=3] - Integral level of brightening, between 0 and 100, where 0 disables contrast limiting.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction clahe (options) {\n if (is.plainObject(options)) {\n if (is.integer(options.width) && options.width > 0) {\n this.options.claheWidth = options.width;\n } else {\n throw is.invalidParameterError('width', 'integer greater than zero', options.width);\n }\n if (is.integer(options.height) && options.height > 0) {\n this.options.claheHeight = options.height;\n } else {\n throw is.invalidParameterError('height', 'integer greater than zero', options.height);\n }\n if (is.defined(options.maxSlope)) {\n if (is.integer(options.maxSlope) && is.inRange(options.maxSlope, 0, 100)) {\n this.options.claheMaxSlope = options.maxSlope;\n } else {\n throw is.invalidParameterError('maxSlope', 'integer between 0 and 100', options.maxSlope);\n }\n }\n } else {\n throw is.invalidParameterError('options', 'plain object', options);\n }\n return this;\n}\n\n/**\n * Convolve the image with the specified kernel.\n *\n * @example\n * sharp(input)\n * .convolve({\n * width: 3,\n * height: 3,\n * kernel: [-1, 0, 1, -2, 0, 2, -1, 0, 1]\n * })\n * .raw()\n * .toBuffer(function(err, data, info) {\n * // data contains the raw pixel data representing the convolution\n * // of the input image with the horizontal Sobel operator\n * });\n *\n * @param {Object} kernel\n * @param {number} kernel.width - width of the kernel in pixels.\n * @param {number} kernel.height - height of the kernel in pixels.\n * @param {Array} kernel.kernel - Array of length `width*height` containing the kernel values.\n * @param {number} [kernel.scale=sum] - the scale of the kernel in pixels.\n * @param {number} [kernel.offset=0] - the offset of the kernel in pixels.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction convolve (kernel) {\n if (!is.object(kernel) || !Array.isArray(kernel.kernel) ||\n !is.integer(kernel.width) || !is.integer(kernel.height) ||\n !is.inRange(kernel.width, 3, 1001) || !is.inRange(kernel.height, 3, 1001) ||\n kernel.height * kernel.width !== kernel.kernel.length\n ) {\n // must pass in a kernel\n throw new Error('Invalid convolution kernel');\n }\n // Default scale is sum of kernel values\n if (!is.integer(kernel.scale)) {\n kernel.scale = kernel.kernel.reduce(function (a, b) {\n return a + b;\n }, 0);\n }\n // Clip scale to a minimum value of 1\n if (kernel.scale < 1) {\n kernel.scale = 1;\n }\n if (!is.integer(kernel.offset)) {\n kernel.offset = 0;\n }\n this.options.convKernel = kernel;\n return this;\n}\n\n/**\n * Any pixel value greater than or equal to the threshold value will be set to 255, otherwise it will be set to 0.\n * @param {number} [threshold=128] - a value in the range 0-255 representing the level at which the threshold will be applied.\n * @param {Object} [options]\n * @param {Boolean} [options.greyscale=true] - convert to single channel greyscale.\n * @param {Boolean} [options.grayscale=true] - alternative spelling for greyscale.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction threshold (threshold, options) {\n if (!is.defined(threshold)) {\n this.options.threshold = 128;\n } else if (is.bool(threshold)) {\n this.options.threshold = threshold ? 128 : 0;\n } else if (is.integer(threshold) && is.inRange(threshold, 0, 255)) {\n this.options.threshold = threshold;\n } else {\n throw is.invalidParameterError('threshold', 'integer between 0 and 255', threshold);\n }\n if (!is.object(options) || options.greyscale === true || options.grayscale === true) {\n this.options.thresholdGrayscale = true;\n } else {\n this.options.thresholdGrayscale = false;\n }\n return this;\n}\n\n/**\n * Perform a bitwise boolean operation with operand image.\n *\n * This operation creates an output image where each pixel is the result of\n * the selected bitwise boolean `operation` between the corresponding pixels of the input images.\n *\n * @param {Buffer|string} operand - Buffer containing image data or string containing the path to an image file.\n * @param {string} operator - one of `and`, `or` or `eor` to perform that bitwise operation, like the C logic operators `&`, `|` and `^` respectively.\n * @param {Object} [options]\n * @param {Object} [options.raw] - describes operand when using raw pixel data.\n * @param {number} [options.raw.width]\n * @param {number} [options.raw.height]\n * @param {number} [options.raw.channels]\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction boolean (operand, operator, options) {\n this.options.boolean = this._createInputDescriptor(operand, options);\n if (is.string(operator) && is.inArray(operator, ['and', 'or', 'eor'])) {\n this.options.booleanOp = operator;\n } else {\n throw is.invalidParameterError('operator', 'one of: and, or, eor', operator);\n }\n return this;\n}\n\n/**\n * Apply the linear formula `a` * input + `b` to the image to adjust image levels.\n *\n * When a single number is provided, it will be used for all image channels.\n * When an array of numbers is provided, the array length must match the number of channels.\n *\n * @example\n * await sharp(input)\n * .linear(0.5, 2)\n * .toBuffer();\n *\n * @example\n * await sharp(rgbInput)\n * .linear(\n * [0.25, 0.5, 0.75],\n * [150, 100, 50]\n * )\n * .toBuffer();\n *\n * @param {(number|number[])} [a=[]] multiplier\n * @param {(number|number[])} [b=[]] offset\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction linear (a, b) {\n if (!is.defined(a) && is.number(b)) {\n a = 1.0;\n } else if (is.number(a) && !is.defined(b)) {\n b = 0.0;\n }\n if (!is.defined(a)) {\n this.options.linearA = [];\n } else if (is.number(a)) {\n this.options.linearA = [a];\n } else if (Array.isArray(a) && a.length && a.every(is.number)) {\n this.options.linearA = a;\n } else {\n throw is.invalidParameterError('a', 'number or array of numbers', a);\n }\n if (!is.defined(b)) {\n this.options.linearB = [];\n } else if (is.number(b)) {\n this.options.linearB = [b];\n } else if (Array.isArray(b) && b.length && b.every(is.number)) {\n this.options.linearB = b;\n } else {\n throw is.invalidParameterError('b', 'number or array of numbers', b);\n }\n if (this.options.linearA.length !== this.options.linearB.length) {\n throw new Error('Expected a and b to be arrays of the same length');\n }\n return this;\n}\n\n/**\n * Recombine the image with the specified matrix.\n *\n * @since 0.21.1\n *\n * @example\n * sharp(input)\n * .recomb([\n * [0.3588, 0.7044, 0.1368],\n * [0.2990, 0.5870, 0.1140],\n * [0.2392, 0.4696, 0.0912],\n * ])\n * .raw()\n * .toBuffer(function(err, data, info) {\n * // data contains the raw pixel data after applying the matrix\n * // With this example input, a sepia filter has been applied\n * });\n *\n * @param {Array>} inputMatrix - 3x3 or 4x4 Recombination matrix\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction recomb (inputMatrix) {\n if (!Array.isArray(inputMatrix)) {\n throw is.invalidParameterError('inputMatrix', 'array', inputMatrix);\n }\n if (inputMatrix.length !== 3 && inputMatrix.length !== 4) {\n throw is.invalidParameterError('inputMatrix', '3x3 or 4x4 array', inputMatrix.length);\n }\n const recombMatrix = inputMatrix.flat().map(Number);\n if (recombMatrix.length !== 9 && recombMatrix.length !== 16) {\n throw is.invalidParameterError('inputMatrix', 'cardinality of 9 or 16', recombMatrix.length);\n }\n this.options.recombMatrix = recombMatrix;\n return this;\n}\n\n/**\n * Transforms the image using brightness, saturation, hue rotation, and lightness.\n * Brightness and lightness both operate on luminance, with the difference being that\n * brightness is multiplicative whereas lightness is additive.\n *\n * @since 0.22.1\n *\n * @example\n * // increase brightness by a factor of 2\n * const output = await sharp(input)\n * .modulate({\n * brightness: 2\n * })\n * .toBuffer();\n *\n * @example\n * // hue-rotate by 180 degrees\n * const output = await sharp(input)\n * .modulate({\n * hue: 180\n * })\n * .toBuffer();\n *\n * @example\n * // increase lightness by +50\n * const output = await sharp(input)\n * .modulate({\n * lightness: 50\n * })\n * .toBuffer();\n *\n * @example\n * // decrease brightness and saturation while also hue-rotating by 90 degrees\n * const output = await sharp(input)\n * .modulate({\n * brightness: 0.5,\n * saturation: 0.5,\n * hue: 90,\n * })\n * .toBuffer();\n *\n * @param {Object} [options]\n * @param {number} [options.brightness] Brightness multiplier\n * @param {number} [options.saturation] Saturation multiplier\n * @param {number} [options.hue] Degrees for hue rotation\n * @param {number} [options.lightness] Lightness addend\n * @returns {Sharp}\n */\nfunction modulate (options) {\n if (!is.plainObject(options)) {\n throw is.invalidParameterError('options', 'plain object', options);\n }\n if ('brightness' in options) {\n if (is.number(options.brightness) && options.brightness >= 0) {\n this.options.brightness = options.brightness;\n } else {\n throw is.invalidParameterError('brightness', 'number above zero', options.brightness);\n }\n }\n if ('saturation' in options) {\n if (is.number(options.saturation) && options.saturation >= 0) {\n this.options.saturation = options.saturation;\n } else {\n throw is.invalidParameterError('saturation', 'number above zero', options.saturation);\n }\n }\n if ('hue' in options) {\n if (is.integer(options.hue)) {\n this.options.hue = options.hue % 360;\n } else {\n throw is.invalidParameterError('hue', 'number', options.hue);\n }\n }\n if ('lightness' in options) {\n if (is.number(options.lightness)) {\n this.options.lightness = options.lightness;\n } else {\n throw is.invalidParameterError('lightness', 'number', options.lightness);\n }\n }\n return this;\n}\n\n/**\n * Decorate the Sharp prototype with operation-related functions.\n * @private\n */\nmodule.exports = function (Sharp) {\n Object.assign(Sharp.prototype, {\n rotate,\n flip,\n flop,\n affine,\n sharpen,\n median,\n blur,\n flatten,\n unflatten,\n gamma,\n negate,\n normalise,\n normalize,\n clahe,\n convolve,\n threshold,\n boolean,\n linear,\n recomb,\n modulate\n });\n};\n","// Copyright 2013 Lovell Fuller and others.\n// SPDX-License-Identifier: Apache-2.0\n\n'use strict';\n\nconst color = require('color');\nconst is = require('./is');\n\n/**\n * Colourspaces.\n * @private\n */\nconst colourspace = {\n multiband: 'multiband',\n 'b-w': 'b-w',\n bw: 'b-w',\n cmyk: 'cmyk',\n srgb: 'srgb'\n};\n\n/**\n * Tint the image using the provided colour.\n * An alpha channel may be present and will be unchanged by the operation.\n *\n * @example\n * const output = await sharp(input)\n * .tint({ r: 255, g: 240, b: 16 })\n * .toBuffer();\n *\n * @param {string|Object} tint - Parsed by the [color](https://www.npmjs.org/package/color) module.\n * @returns {Sharp}\n * @throws {Error} Invalid parameter\n */\nfunction tint (tint) {\n this._setBackgroundColourOption('tint', tint);\n return this;\n}\n\n/**\n * Convert to 8-bit greyscale; 256 shades of grey.\n * This is a linear operation. If the input image is in a non-linear colour space such as sRGB, use `gamma()` with `greyscale()` for the best results.\n * By default the output image will be web-friendly sRGB and contain three (identical) color channels.\n * This may be overridden by other sharp operations such as `toColourspace('b-w')`,\n * which will produce an output image containing one color channel.\n * An alpha channel may be present, and will be unchanged by the operation.\n *\n * @example\n * const output = await sharp(input).greyscale().toBuffer();\n *\n * @param {Boolean} [greyscale=true]\n * @returns {Sharp}\n */\nfunction greyscale (greyscale) {\n this.options.greyscale = is.bool(greyscale) ? greyscale : true;\n return this;\n}\n\n/**\n * Alternative spelling of `greyscale`.\n * @param {Boolean} [grayscale=true]\n * @returns {Sharp}\n */\nfunction grayscale (grayscale) {\n return this.greyscale(grayscale);\n}\n\n/**\n * Set the pipeline colourspace.\n *\n * The input image will be converted to the provided colourspace at the start of the pipeline.\n * All operations will use this colourspace before converting to the output colourspace,\n * as defined by {@link #tocolourspace|toColourspace}.\n *\n * @since 0.29.0\n *\n * @example\n * // Run pipeline in 16 bits per channel RGB while converting final result to 8 bits per channel sRGB.\n * await sharp(input)\n * .pipelineColourspace('rgb16')\n * .toColourspace('srgb')\n * .toFile('16bpc-pipeline-to-8bpc-output.png')\n *\n * @param {string} [colourspace] - pipeline colourspace e.g. `rgb16`, `scrgb`, `lab`, `grey16` [...](https://github.com/libvips/libvips/blob/41cff4e9d0838498487a00623462204eb10ee5b8/libvips/iofuncs/enumtypes.c#L774)\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction pipelineColourspace (colourspace) {\n if (!is.string(colourspace)) {\n throw is.invalidParameterError('colourspace', 'string', colourspace);\n }\n this.options.colourspacePipeline = colourspace;\n return this;\n}\n\n/**\n * Alternative spelling of `pipelineColourspace`.\n * @param {string} [colorspace] - pipeline colorspace.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction pipelineColorspace (colorspace) {\n return this.pipelineColourspace(colorspace);\n}\n\n/**\n * Set the output colourspace.\n * By default output image will be web-friendly sRGB, with additional channels interpreted as alpha channels.\n *\n * @example\n * // Output 16 bits per pixel RGB\n * await sharp(input)\n * .toColourspace('rgb16')\n * .toFile('16-bpp.png')\n *\n * @param {string} [colourspace] - output colourspace e.g. `srgb`, `rgb`, `cmyk`, `lab`, `b-w` [...](https://github.com/libvips/libvips/blob/3c0bfdf74ce1dc37a6429bed47fa76f16e2cd70a/libvips/iofuncs/enumtypes.c#L777-L794)\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction toColourspace (colourspace) {\n if (!is.string(colourspace)) {\n throw is.invalidParameterError('colourspace', 'string', colourspace);\n }\n this.options.colourspace = colourspace;\n return this;\n}\n\n/**\n * Alternative spelling of `toColourspace`.\n * @param {string} [colorspace] - output colorspace.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction toColorspace (colorspace) {\n return this.toColourspace(colorspace);\n}\n\n/**\n * Update a colour attribute of the this.options Object.\n * @private\n * @param {string} key\n * @param {string|Object} value\n * @throws {Error} Invalid value\n */\nfunction _setBackgroundColourOption (key, value) {\n if (is.defined(value)) {\n if (is.object(value) || is.string(value)) {\n const colour = color(value);\n this.options[key] = [\n colour.red(),\n colour.green(),\n colour.blue(),\n Math.round(colour.alpha() * 255)\n ];\n } else {\n throw is.invalidParameterError('background', 'object or string', value);\n }\n }\n}\n\n/**\n * Decorate the Sharp prototype with colour-related functions.\n * @private\n */\nmodule.exports = function (Sharp) {\n Object.assign(Sharp.prototype, {\n // Public\n tint,\n greyscale,\n grayscale,\n pipelineColourspace,\n pipelineColorspace,\n toColourspace,\n toColorspace,\n // Private\n _setBackgroundColourOption\n });\n // Class attributes\n Sharp.colourspace = colourspace;\n Sharp.colorspace = colourspace;\n};\n","// Copyright 2013 Lovell Fuller and others.\n// SPDX-License-Identifier: Apache-2.0\n\n'use strict';\n\nconst is = require('./is');\n\n/**\n * Boolean operations for bandbool.\n * @private\n */\nconst bool = {\n and: 'and',\n or: 'or',\n eor: 'eor'\n};\n\n/**\n * Remove alpha channel, if any. This is a no-op if the image does not have an alpha channel.\n *\n * See also {@link /api-operation#flatten|flatten}.\n *\n * @example\n * sharp('rgba.png')\n * .removeAlpha()\n * .toFile('rgb.png', function(err, info) {\n * // rgb.png is a 3 channel image without an alpha channel\n * });\n *\n * @returns {Sharp}\n */\nfunction removeAlpha () {\n this.options.removeAlpha = true;\n return this;\n}\n\n/**\n * Ensure the output image has an alpha transparency channel.\n * If missing, the added alpha channel will have the specified\n * transparency level, defaulting to fully-opaque (1).\n * This is a no-op if the image already has an alpha channel.\n *\n * @since 0.21.2\n *\n * @example\n * // rgba.png will be a 4 channel image with a fully-opaque alpha channel\n * await sharp('rgb.jpg')\n * .ensureAlpha()\n * .toFile('rgba.png')\n *\n * @example\n * // rgba is a 4 channel image with a fully-transparent alpha channel\n * const rgba = await sharp(rgb)\n * .ensureAlpha(0)\n * .toBuffer();\n *\n * @param {number} [alpha=1] - alpha transparency level (0=fully-transparent, 1=fully-opaque)\n * @returns {Sharp}\n * @throws {Error} Invalid alpha transparency level\n */\nfunction ensureAlpha (alpha) {\n if (is.defined(alpha)) {\n if (is.number(alpha) && is.inRange(alpha, 0, 1)) {\n this.options.ensureAlpha = alpha;\n } else {\n throw is.invalidParameterError('alpha', 'number between 0 and 1', alpha);\n }\n } else {\n this.options.ensureAlpha = 1;\n }\n return this;\n}\n\n/**\n * Extract a single channel from a multi-channel image.\n *\n * @example\n * // green.jpg is a greyscale image containing the green channel of the input\n * await sharp(input)\n * .extractChannel('green')\n * .toFile('green.jpg');\n *\n * @example\n * // red1 is the red value of the first pixel, red2 the second pixel etc.\n * const [red1, red2, ...] = await sharp(input)\n * .extractChannel(0)\n * .raw()\n * .toBuffer();\n *\n * @param {number|string} channel - zero-indexed channel/band number to extract, or `red`, `green`, `blue` or `alpha`.\n * @returns {Sharp}\n * @throws {Error} Invalid channel\n */\nfunction extractChannel (channel) {\n const channelMap = { red: 0, green: 1, blue: 2, alpha: 3 };\n if (Object.keys(channelMap).includes(channel)) {\n channel = channelMap[channel];\n }\n if (is.integer(channel) && is.inRange(channel, 0, 4)) {\n this.options.extractChannel = channel;\n } else {\n throw is.invalidParameterError('channel', 'integer or one of: red, green, blue, alpha', channel);\n }\n return this;\n}\n\n/**\n * Join one or more channels to the image.\n * The meaning of the added channels depends on the output colourspace, set with `toColourspace()`.\n * By default the output image will be web-friendly sRGB, with additional channels interpreted as alpha channels.\n * Channel ordering follows vips convention:\n * - sRGB: 0: Red, 1: Green, 2: Blue, 3: Alpha.\n * - CMYK: 0: Magenta, 1: Cyan, 2: Yellow, 3: Black, 4: Alpha.\n *\n * Buffers may be any of the image formats supported by sharp.\n * For raw pixel input, the `options` object should contain a `raw` attribute, which follows the format of the attribute of the same name in the `sharp()` constructor.\n *\n * @param {Array|string|Buffer} images - one or more images (file paths, Buffers).\n * @param {Object} options - image options, see `sharp()` constructor.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction joinChannel (images, options) {\n if (Array.isArray(images)) {\n images.forEach(function (image) {\n this.options.joinChannelIn.push(this._createInputDescriptor(image, options));\n }, this);\n } else {\n this.options.joinChannelIn.push(this._createInputDescriptor(images, options));\n }\n return this;\n}\n\n/**\n * Perform a bitwise boolean operation on all input image channels (bands) to produce a single channel output image.\n *\n * @example\n * sharp('3-channel-rgb-input.png')\n * .bandbool(sharp.bool.and)\n * .toFile('1-channel-output.png', function (err, info) {\n * // The output will be a single channel image where each pixel `P = R & G & B`.\n * // If `I(1,1) = [247, 170, 14] = [0b11110111, 0b10101010, 0b00001111]`\n * // then `O(1,1) = 0b11110111 & 0b10101010 & 0b00001111 = 0b00000010 = 2`.\n * });\n *\n * @param {string} boolOp - one of `and`, `or` or `eor` to perform that bitwise operation, like the C logic operators `&`, `|` and `^` respectively.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction bandbool (boolOp) {\n if (is.string(boolOp) && is.inArray(boolOp, ['and', 'or', 'eor'])) {\n this.options.bandBoolOp = boolOp;\n } else {\n throw is.invalidParameterError('boolOp', 'one of: and, or, eor', boolOp);\n }\n return this;\n}\n\n/**\n * Decorate the Sharp prototype with channel-related functions.\n * @private\n */\nmodule.exports = function (Sharp) {\n Object.assign(Sharp.prototype, {\n // Public instance functions\n removeAlpha,\n ensureAlpha,\n extractChannel,\n joinChannel,\n bandbool\n });\n // Class attributes\n Sharp.bool = bool;\n};\n","// Copyright 2013 Lovell Fuller and others.\n// SPDX-License-Identifier: Apache-2.0\n\n'use strict';\n\nconst path = require('node:path');\nconst is = require('./is');\nconst sharp = require('./sharp');\n\nconst formats = new Map([\n ['heic', 'heif'],\n ['heif', 'heif'],\n ['avif', 'avif'],\n ['jpeg', 'jpeg'],\n ['jpg', 'jpeg'],\n ['jpe', 'jpeg'],\n ['tile', 'tile'],\n ['dz', 'tile'],\n ['png', 'png'],\n ['raw', 'raw'],\n ['tiff', 'tiff'],\n ['tif', 'tiff'],\n ['webp', 'webp'],\n ['gif', 'gif'],\n ['jp2', 'jp2'],\n ['jpx', 'jp2'],\n ['j2k', 'jp2'],\n ['j2c', 'jp2'],\n ['jxl', 'jxl']\n]);\n\nconst jp2Regex = /\\.(jp[2x]|j2[kc])$/i;\n\nconst errJp2Save = () => new Error('JP2 output requires libvips with support for OpenJPEG');\n\nconst bitdepthFromColourCount = (colours) => 1 << 31 - Math.clz32(Math.ceil(Math.log2(colours)));\n\n/**\n * Write output image data to a file.\n *\n * If an explicit output format is not selected, it will be inferred from the extension,\n * with JPEG, PNG, WebP, AVIF, TIFF, GIF, DZI, and libvips' V format supported.\n * Note that raw pixel data is only supported for buffer output.\n *\n * By default all metadata will be removed, which includes EXIF-based orientation.\n * See {@link #withmetadata|withMetadata} for control over this.\n *\n * The caller is responsible for ensuring directory structures and permissions exist.\n *\n * A `Promise` is returned when `callback` is not provided.\n *\n * @example\n * sharp(input)\n * .toFile('output.png', (err, info) => { ... });\n *\n * @example\n * sharp(input)\n * .toFile('output.png')\n * .then(info => { ... })\n * .catch(err => { ... });\n *\n * @param {string} fileOut - the path to write the image data to.\n * @param {Function} [callback] - called on completion with two arguments `(err, info)`.\n * `info` contains the output image `format`, `size` (bytes), `width`, `height`,\n * `channels` and `premultiplied` (indicating if premultiplication was used).\n * When using a crop strategy also contains `cropOffsetLeft` and `cropOffsetTop`.\n * When using the attention crop strategy also contains `attentionX` and `attentionY`, the focal point of the cropped region.\n * Animated output will also contain `pageHeight` and `pages`.\n * May also contain `textAutofitDpi` (dpi the font was rendered at) if image was created from text.\n * @returns {Promise} - when no callback is provided\n * @throws {Error} Invalid parameters\n */\nfunction toFile (fileOut, callback) {\n let err;\n if (!is.string(fileOut)) {\n err = new Error('Missing output file path');\n } else if (is.string(this.options.input.file) && path.resolve(this.options.input.file) === path.resolve(fileOut)) {\n err = new Error('Cannot use same file for input and output');\n } else if (jp2Regex.test(path.extname(fileOut)) && !this.constructor.format.jp2k.output.file) {\n err = errJp2Save();\n }\n if (err) {\n if (is.fn(callback)) {\n callback(err);\n } else {\n return Promise.reject(err);\n }\n } else {\n this.options.fileOut = fileOut;\n const stack = Error();\n return this._pipeline(callback, stack);\n }\n return this;\n}\n\n/**\n * Write output to a Buffer.\n * JPEG, PNG, WebP, AVIF, TIFF, GIF and raw pixel data output are supported.\n *\n * Use {@link #toformat|toFormat} or one of the format-specific functions such as {@link jpeg}, {@link png} etc. to set the output format.\n *\n * If no explicit format is set, the output format will match the input image, except SVG input which becomes PNG output.\n *\n * By default all metadata will be removed, which includes EXIF-based orientation.\n * See {@link #withmetadata|withMetadata} for control over this.\n *\n * `callback`, if present, gets three arguments `(err, data, info)` where:\n * - `err` is an error, if any.\n * - `data` is the output image data.\n * - `info` contains the output image `format`, `size` (bytes), `width`, `height`,\n * `channels` and `premultiplied` (indicating if premultiplication was used).\n * When using a crop strategy also contains `cropOffsetLeft` and `cropOffsetTop`.\n * Animated output will also contain `pageHeight` and `pages`.\n * May also contain `textAutofitDpi` (dpi the font was rendered at) if image was created from text.\n *\n * A `Promise` is returned when `callback` is not provided.\n *\n * @example\n * sharp(input)\n * .toBuffer((err, data, info) => { ... });\n *\n * @example\n * sharp(input)\n * .toBuffer()\n * .then(data => { ... })\n * .catch(err => { ... });\n *\n * @example\n * sharp(input)\n * .png()\n * .toBuffer({ resolveWithObject: true })\n * .then(({ data, info }) => { ... })\n * .catch(err => { ... });\n *\n * @example\n * const { data, info } = await sharp('my-image.jpg')\n * // output the raw pixels\n * .raw()\n * .toBuffer({ resolveWithObject: true });\n *\n * // create a more type safe way to work with the raw pixel data\n * // this will not copy the data, instead it will change `data`s underlying ArrayBuffer\n * // so `data` and `pixelArray` point to the same memory location\n * const pixelArray = new Uint8ClampedArray(data.buffer);\n *\n * // When you are done changing the pixelArray, sharp takes the `pixelArray` as an input\n * const { width, height, channels } = info;\n * await sharp(pixelArray, { raw: { width, height, channels } })\n * .toFile('my-changed-image.jpg');\n *\n * @param {Object} [options]\n * @param {boolean} [options.resolveWithObject] Resolve the Promise with an Object containing `data` and `info` properties instead of resolving only with `data`.\n * @param {Function} [callback]\n * @returns {Promise} - when no callback is provided\n */\nfunction toBuffer (options, callback) {\n if (is.object(options)) {\n this._setBooleanOption('resolveWithObject', options.resolveWithObject);\n } else if (this.options.resolveWithObject) {\n this.options.resolveWithObject = false;\n }\n this.options.fileOut = '';\n const stack = Error();\n return this._pipeline(is.fn(options) ? options : callback, stack);\n}\n\n/**\n * Keep all EXIF metadata from the input image in the output image.\n *\n * EXIF metadata is unsupported for TIFF output.\n *\n * @since 0.33.0\n *\n * @example\n * const outputWithExif = await sharp(inputWithExif)\n * .keepExif()\n * .toBuffer();\n *\n * @returns {Sharp}\n */\nfunction keepExif () {\n this.options.keepMetadata |= 0b00001;\n return this;\n}\n\n/**\n * Set EXIF metadata in the output image, ignoring any EXIF in the input image.\n *\n * @since 0.33.0\n *\n * @example\n * const dataWithExif = await sharp(input)\n * .withExif({\n * IFD0: {\n * Copyright: 'The National Gallery'\n * },\n * IFD3: {\n * GPSLatitudeRef: 'N',\n * GPSLatitude: '51/1 30/1 3230/100',\n * GPSLongitudeRef: 'W',\n * GPSLongitude: '0/1 7/1 4366/100'\n * }\n * })\n * .toBuffer();\n *\n * @param {Object>} exif Object keyed by IFD0, IFD1 etc. of key/value string pairs to write as EXIF data.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction withExif (exif) {\n if (is.object(exif)) {\n for (const [ifd, entries] of Object.entries(exif)) {\n if (is.object(entries)) {\n for (const [k, v] of Object.entries(entries)) {\n if (is.string(v)) {\n this.options.withExif[`exif-${ifd.toLowerCase()}-${k}`] = v;\n } else {\n throw is.invalidParameterError(`${ifd}.${k}`, 'string', v);\n }\n }\n } else {\n throw is.invalidParameterError(ifd, 'object', entries);\n }\n }\n } else {\n throw is.invalidParameterError('exif', 'object', exif);\n }\n this.options.withExifMerge = false;\n return this.keepExif();\n}\n\n/**\n * Update EXIF metadata from the input image in the output image.\n *\n * @since 0.33.0\n *\n * @example\n * const dataWithMergedExif = await sharp(inputWithExif)\n * .withExifMerge({\n * IFD0: {\n * Copyright: 'The National Gallery'\n * }\n * })\n * .toBuffer();\n *\n * @param {Object>} exif Object keyed by IFD0, IFD1 etc. of key/value string pairs to write as EXIF data.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction withExifMerge (exif) {\n this.withExif(exif);\n this.options.withExifMerge = true;\n return this;\n}\n\n/**\n * Keep ICC profile from the input image in the output image.\n *\n * Where necessary, will attempt to convert the output colour space to match the profile.\n *\n * @since 0.33.0\n *\n * @example\n * const outputWithIccProfile = await sharp(inputWithIccProfile)\n * .keepIccProfile()\n * .toBuffer();\n *\n * @returns {Sharp}\n */\nfunction keepIccProfile () {\n this.options.keepMetadata |= 0b01000;\n return this;\n}\n\n/**\n * Transform using an ICC profile and attach to the output image.\n *\n * This can either be an absolute filesystem path or\n * built-in profile name (`srgb`, `p3`, `cmyk`).\n *\n * @since 0.33.0\n *\n * @example\n * const outputWithP3 = await sharp(input)\n * .withIccProfile('p3')\n * .toBuffer();\n *\n * @param {string} icc - Absolute filesystem path to output ICC profile or built-in profile name (srgb, p3, cmyk).\n * @param {Object} [options]\n * @param {number} [options.attach=true] Should the ICC profile be included in the output image metadata?\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction withIccProfile (icc, options) {\n if (is.string(icc)) {\n this.options.withIccProfile = icc;\n } else {\n throw is.invalidParameterError('icc', 'string', icc);\n }\n this.keepIccProfile();\n if (is.object(options)) {\n if (is.defined(options.attach)) {\n if (is.bool(options.attach)) {\n if (!options.attach) {\n this.options.keepMetadata &= ~0b01000;\n }\n } else {\n throw is.invalidParameterError('attach', 'boolean', options.attach);\n }\n }\n }\n return this;\n}\n\n/**\n * Keep all metadata (EXIF, ICC, XMP, IPTC) from the input image in the output image.\n *\n * The default behaviour, when `keepMetadata` is not used, is to convert to the device-independent\n * sRGB colour space and strip all metadata, including the removal of any ICC profile.\n *\n * @since 0.33.0\n *\n * @example\n * const outputWithMetadata = await sharp(inputWithMetadata)\n * .keepMetadata()\n * .toBuffer();\n *\n * @returns {Sharp}\n */\nfunction keepMetadata () {\n this.options.keepMetadata = 0b11111;\n return this;\n}\n\n/**\n * Keep most metadata (EXIF, XMP, IPTC) from the input image in the output image.\n *\n * This will also convert to and add a web-friendly sRGB ICC profile if appropriate.\n *\n * Allows orientation and density to be set or updated.\n *\n * @example\n * const outputSrgbWithMetadata = await sharp(inputRgbWithMetadata)\n * .withMetadata()\n * .toBuffer();\n *\n * @example\n * // Set output metadata to 96 DPI\n * const data = await sharp(input)\n * .withMetadata({ density: 96 })\n * .toBuffer();\n *\n * @param {Object} [options]\n * @param {number} [options.orientation] Used to update the EXIF `Orientation` tag, integer between 1 and 8.\n * @param {number} [options.density] Number of pixels per inch (DPI).\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction withMetadata (options) {\n this.keepMetadata();\n this.withIccProfile('srgb');\n if (is.object(options)) {\n if (is.defined(options.orientation)) {\n if (is.integer(options.orientation) && is.inRange(options.orientation, 1, 8)) {\n this.options.withMetadataOrientation = options.orientation;\n } else {\n throw is.invalidParameterError('orientation', 'integer between 1 and 8', options.orientation);\n }\n }\n if (is.defined(options.density)) {\n if (is.number(options.density) && options.density > 0) {\n this.options.withMetadataDensity = options.density;\n } else {\n throw is.invalidParameterError('density', 'positive number', options.density);\n }\n }\n if (is.defined(options.icc)) {\n this.withIccProfile(options.icc);\n }\n if (is.defined(options.exif)) {\n this.withExifMerge(options.exif);\n }\n }\n return this;\n}\n\n/**\n * Force output to a given format.\n *\n * @example\n * // Convert any input to PNG output\n * const data = await sharp(input)\n * .toFormat('png')\n * .toBuffer();\n *\n * @param {(string|Object)} format - as a string or an Object with an 'id' attribute\n * @param {Object} options - output options\n * @returns {Sharp}\n * @throws {Error} unsupported format or options\n */\nfunction toFormat (format, options) {\n const actualFormat = formats.get((is.object(format) && is.string(format.id) ? format.id : format).toLowerCase());\n if (!actualFormat) {\n throw is.invalidParameterError('format', `one of: ${[...formats.keys()].join(', ')}`, format);\n }\n return this[actualFormat](options);\n}\n\n/**\n * Use these JPEG options for output image.\n *\n * @example\n * // Convert any input to very high quality JPEG output\n * const data = await sharp(input)\n * .jpeg({\n * quality: 100,\n * chromaSubsampling: '4:4:4'\n * })\n * .toBuffer();\n *\n * @example\n * // Use mozjpeg to reduce output JPEG file size (slower)\n * const data = await sharp(input)\n * .jpeg({ mozjpeg: true })\n * .toBuffer();\n *\n * @param {Object} [options] - output options\n * @param {number} [options.quality=80] - quality, integer 1-100\n * @param {boolean} [options.progressive=false] - use progressive (interlace) scan\n * @param {string} [options.chromaSubsampling='4:2:0'] - set to '4:4:4' to prevent chroma subsampling otherwise defaults to '4:2:0' chroma subsampling\n * @param {boolean} [options.optimiseCoding=true] - optimise Huffman coding tables\n * @param {boolean} [options.optimizeCoding=true] - alternative spelling of optimiseCoding\n * @param {boolean} [options.mozjpeg=false] - use mozjpeg defaults, equivalent to `{ trellisQuantisation: true, overshootDeringing: true, optimiseScans: true, quantisationTable: 3 }`\n * @param {boolean} [options.trellisQuantisation=false] - apply trellis quantisation\n * @param {boolean} [options.overshootDeringing=false] - apply overshoot deringing\n * @param {boolean} [options.optimiseScans=false] - optimise progressive scans, forces progressive\n * @param {boolean} [options.optimizeScans=false] - alternative spelling of optimiseScans\n * @param {number} [options.quantisationTable=0] - quantization table to use, integer 0-8\n * @param {number} [options.quantizationTable=0] - alternative spelling of quantisationTable\n * @param {boolean} [options.force=true] - force JPEG output, otherwise attempt to use input format\n * @returns {Sharp}\n * @throws {Error} Invalid options\n */\nfunction jpeg (options) {\n if (is.object(options)) {\n if (is.defined(options.quality)) {\n if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) {\n this.options.jpegQuality = options.quality;\n } else {\n throw is.invalidParameterError('quality', 'integer between 1 and 100', options.quality);\n }\n }\n if (is.defined(options.progressive)) {\n this._setBooleanOption('jpegProgressive', options.progressive);\n }\n if (is.defined(options.chromaSubsampling)) {\n if (is.string(options.chromaSubsampling) && is.inArray(options.chromaSubsampling, ['4:2:0', '4:4:4'])) {\n this.options.jpegChromaSubsampling = options.chromaSubsampling;\n } else {\n throw is.invalidParameterError('chromaSubsampling', 'one of: 4:2:0, 4:4:4', options.chromaSubsampling);\n }\n }\n const optimiseCoding = is.bool(options.optimizeCoding) ? options.optimizeCoding : options.optimiseCoding;\n if (is.defined(optimiseCoding)) {\n this._setBooleanOption('jpegOptimiseCoding', optimiseCoding);\n }\n if (is.defined(options.mozjpeg)) {\n if (is.bool(options.mozjpeg)) {\n if (options.mozjpeg) {\n this.options.jpegTrellisQuantisation = true;\n this.options.jpegOvershootDeringing = true;\n this.options.jpegOptimiseScans = true;\n this.options.jpegProgressive = true;\n this.options.jpegQuantisationTable = 3;\n }\n } else {\n throw is.invalidParameterError('mozjpeg', 'boolean', options.mozjpeg);\n }\n }\n const trellisQuantisation = is.bool(options.trellisQuantization) ? options.trellisQuantization : options.trellisQuantisation;\n if (is.defined(trellisQuantisation)) {\n this._setBooleanOption('jpegTrellisQuantisation', trellisQuantisation);\n }\n if (is.defined(options.overshootDeringing)) {\n this._setBooleanOption('jpegOvershootDeringing', options.overshootDeringing);\n }\n const optimiseScans = is.bool(options.optimizeScans) ? options.optimizeScans : options.optimiseScans;\n if (is.defined(optimiseScans)) {\n this._setBooleanOption('jpegOptimiseScans', optimiseScans);\n if (optimiseScans) {\n this.options.jpegProgressive = true;\n }\n }\n const quantisationTable = is.number(options.quantizationTable) ? options.quantizationTable : options.quantisationTable;\n if (is.defined(quantisationTable)) {\n if (is.integer(quantisationTable) && is.inRange(quantisationTable, 0, 8)) {\n this.options.jpegQuantisationTable = quantisationTable;\n } else {\n throw is.invalidParameterError('quantisationTable', 'integer between 0 and 8', quantisationTable);\n }\n }\n }\n return this._updateFormatOut('jpeg', options);\n}\n\n/**\n * Use these PNG options for output image.\n *\n * By default, PNG output is full colour at 8 bits per pixel.\n *\n * Indexed PNG input at 1, 2 or 4 bits per pixel is converted to 8 bits per pixel.\n * Set `palette` to `true` for slower, indexed PNG output.\n *\n * For 16 bits per pixel output, convert to `rgb16` via\n * {@link /api-colour#tocolourspace|toColourspace}.\n *\n * @example\n * // Convert any input to full colour PNG output\n * const data = await sharp(input)\n * .png()\n * .toBuffer();\n *\n * @example\n * // Convert any input to indexed PNG output (slower)\n * const data = await sharp(input)\n * .png({ palette: true })\n * .toBuffer();\n *\n * @example\n * // Output 16 bits per pixel RGB(A)\n * const data = await sharp(input)\n * .toColourspace('rgb16')\n * .png()\n * .toBuffer();\n *\n * @param {Object} [options]\n * @param {boolean} [options.progressive=false] - use progressive (interlace) scan\n * @param {number} [options.compressionLevel=6] - zlib compression level, 0 (fastest, largest) to 9 (slowest, smallest)\n * @param {boolean} [options.adaptiveFiltering=false] - use adaptive row filtering\n * @param {boolean} [options.palette=false] - quantise to a palette-based image with alpha transparency support\n * @param {number} [options.quality=100] - use the lowest number of colours needed to achieve given quality, sets `palette` to `true`\n * @param {number} [options.effort=7] - CPU effort, between 1 (fastest) and 10 (slowest), sets `palette` to `true`\n * @param {number} [options.colours=256] - maximum number of palette entries, sets `palette` to `true`\n * @param {number} [options.colors=256] - alternative spelling of `options.colours`, sets `palette` to `true`\n * @param {number} [options.dither=1.0] - level of Floyd-Steinberg error diffusion, sets `palette` to `true`\n * @param {boolean} [options.force=true] - force PNG output, otherwise attempt to use input format\n * @returns {Sharp}\n * @throws {Error} Invalid options\n */\nfunction png (options) {\n if (is.object(options)) {\n if (is.defined(options.progressive)) {\n this._setBooleanOption('pngProgressive', options.progressive);\n }\n if (is.defined(options.compressionLevel)) {\n if (is.integer(options.compressionLevel) && is.inRange(options.compressionLevel, 0, 9)) {\n this.options.pngCompressionLevel = options.compressionLevel;\n } else {\n throw is.invalidParameterError('compressionLevel', 'integer between 0 and 9', options.compressionLevel);\n }\n }\n if (is.defined(options.adaptiveFiltering)) {\n this._setBooleanOption('pngAdaptiveFiltering', options.adaptiveFiltering);\n }\n const colours = options.colours || options.colors;\n if (is.defined(colours)) {\n if (is.integer(colours) && is.inRange(colours, 2, 256)) {\n this.options.pngBitdepth = bitdepthFromColourCount(colours);\n } else {\n throw is.invalidParameterError('colours', 'integer between 2 and 256', colours);\n }\n }\n if (is.defined(options.palette)) {\n this._setBooleanOption('pngPalette', options.palette);\n } else if ([options.quality, options.effort, options.colours, options.colors, options.dither].some(is.defined)) {\n this._setBooleanOption('pngPalette', true);\n }\n if (this.options.pngPalette) {\n if (is.defined(options.quality)) {\n if (is.integer(options.quality) && is.inRange(options.quality, 0, 100)) {\n this.options.pngQuality = options.quality;\n } else {\n throw is.invalidParameterError('quality', 'integer between 0 and 100', options.quality);\n }\n }\n if (is.defined(options.effort)) {\n if (is.integer(options.effort) && is.inRange(options.effort, 1, 10)) {\n this.options.pngEffort = options.effort;\n } else {\n throw is.invalidParameterError('effort', 'integer between 1 and 10', options.effort);\n }\n }\n if (is.defined(options.dither)) {\n if (is.number(options.dither) && is.inRange(options.dither, 0, 1)) {\n this.options.pngDither = options.dither;\n } else {\n throw is.invalidParameterError('dither', 'number between 0.0 and 1.0', options.dither);\n }\n }\n }\n }\n return this._updateFormatOut('png', options);\n}\n\n/**\n * Use these WebP options for output image.\n *\n * @example\n * // Convert any input to lossless WebP output\n * const data = await sharp(input)\n * .webp({ lossless: true })\n * .toBuffer();\n *\n * @example\n * // Optimise the file size of an animated WebP\n * const outputWebp = await sharp(inputWebp, { animated: true })\n * .webp({ effort: 6 })\n * .toBuffer();\n *\n * @param {Object} [options] - output options\n * @param {number} [options.quality=80] - quality, integer 1-100\n * @param {number} [options.alphaQuality=100] - quality of alpha layer, integer 0-100\n * @param {boolean} [options.lossless=false] - use lossless compression mode\n * @param {boolean} [options.nearLossless=false] - use near_lossless compression mode\n * @param {boolean} [options.smartSubsample=false] - use high quality chroma subsampling\n * @param {string} [options.preset='default'] - named preset for preprocessing/filtering, one of: default, photo, picture, drawing, icon, text\n * @param {number} [options.effort=4] - CPU effort, between 0 (fastest) and 6 (slowest)\n * @param {number} [options.loop=0] - number of animation iterations, use 0 for infinite animation\n * @param {number|number[]} [options.delay] - delay(s) between animation frames (in milliseconds)\n * @param {boolean} [options.minSize=false] - prevent use of animation key frames to minimise file size (slow)\n * @param {boolean} [options.mixed=false] - allow mixture of lossy and lossless animation frames (slow)\n * @param {boolean} [options.force=true] - force WebP output, otherwise attempt to use input format\n * @returns {Sharp}\n * @throws {Error} Invalid options\n */\nfunction webp (options) {\n if (is.object(options)) {\n if (is.defined(options.quality)) {\n if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) {\n this.options.webpQuality = options.quality;\n } else {\n throw is.invalidParameterError('quality', 'integer between 1 and 100', options.quality);\n }\n }\n if (is.defined(options.alphaQuality)) {\n if (is.integer(options.alphaQuality) && is.inRange(options.alphaQuality, 0, 100)) {\n this.options.webpAlphaQuality = options.alphaQuality;\n } else {\n throw is.invalidParameterError('alphaQuality', 'integer between 0 and 100', options.alphaQuality);\n }\n }\n if (is.defined(options.lossless)) {\n this._setBooleanOption('webpLossless', options.lossless);\n }\n if (is.defined(options.nearLossless)) {\n this._setBooleanOption('webpNearLossless', options.nearLossless);\n }\n if (is.defined(options.smartSubsample)) {\n this._setBooleanOption('webpSmartSubsample', options.smartSubsample);\n }\n if (is.defined(options.preset)) {\n if (is.string(options.preset) && is.inArray(options.preset, ['default', 'photo', 'picture', 'drawing', 'icon', 'text'])) {\n this.options.webpPreset = options.preset;\n } else {\n throw is.invalidParameterError('preset', 'one of: default, photo, picture, drawing, icon, text', options.preset);\n }\n }\n if (is.defined(options.effort)) {\n if (is.integer(options.effort) && is.inRange(options.effort, 0, 6)) {\n this.options.webpEffort = options.effort;\n } else {\n throw is.invalidParameterError('effort', 'integer between 0 and 6', options.effort);\n }\n }\n if (is.defined(options.minSize)) {\n this._setBooleanOption('webpMinSize', options.minSize);\n }\n if (is.defined(options.mixed)) {\n this._setBooleanOption('webpMixed', options.mixed);\n }\n }\n trySetAnimationOptions(options, this.options);\n return this._updateFormatOut('webp', options);\n}\n\n/**\n * Use these GIF options for the output image.\n *\n * The first entry in the palette is reserved for transparency.\n *\n * The palette of the input image will be re-used if possible.\n *\n * @since 0.30.0\n *\n * @example\n * // Convert PNG to GIF\n * await sharp(pngBuffer)\n * .gif()\n * .toBuffer();\n *\n * @example\n * // Convert animated WebP to animated GIF\n * await sharp('animated.webp', { animated: true })\n * .toFile('animated.gif');\n *\n * @example\n * // Create a 128x128, cropped, non-dithered, animated thumbnail of an animated GIF\n * const out = await sharp('in.gif', { animated: true })\n * .resize({ width: 128, height: 128 })\n * .gif({ dither: 0 })\n * .toBuffer();\n *\n * @example\n * // Lossy file size reduction of animated GIF\n * await sharp('in.gif', { animated: true })\n * .gif({ interFrameMaxError: 8 })\n * .toFile('optim.gif');\n *\n * @param {Object} [options] - output options\n * @param {boolean} [options.reuse=true] - re-use existing palette, otherwise generate new (slow)\n * @param {boolean} [options.progressive=false] - use progressive (interlace) scan\n * @param {number} [options.colours=256] - maximum number of palette entries, including transparency, between 2 and 256\n * @param {number} [options.colors=256] - alternative spelling of `options.colours`\n * @param {number} [options.effort=7] - CPU effort, between 1 (fastest) and 10 (slowest)\n * @param {number} [options.dither=1.0] - level of Floyd-Steinberg error diffusion, between 0 (least) and 1 (most)\n * @param {number} [options.interFrameMaxError=0] - maximum inter-frame error for transparency, between 0 (lossless) and 32\n * @param {number} [options.interPaletteMaxError=3] - maximum inter-palette error for palette reuse, between 0 and 256\n * @param {number} [options.loop=0] - number of animation iterations, use 0 for infinite animation\n * @param {number|number[]} [options.delay] - delay(s) between animation frames (in milliseconds)\n * @param {boolean} [options.force=true] - force GIF output, otherwise attempt to use input format\n * @returns {Sharp}\n * @throws {Error} Invalid options\n */\nfunction gif (options) {\n if (is.object(options)) {\n if (is.defined(options.reuse)) {\n this._setBooleanOption('gifReuse', options.reuse);\n }\n if (is.defined(options.progressive)) {\n this._setBooleanOption('gifProgressive', options.progressive);\n }\n const colours = options.colours || options.colors;\n if (is.defined(colours)) {\n if (is.integer(colours) && is.inRange(colours, 2, 256)) {\n this.options.gifBitdepth = bitdepthFromColourCount(colours);\n } else {\n throw is.invalidParameterError('colours', 'integer between 2 and 256', colours);\n }\n }\n if (is.defined(options.effort)) {\n if (is.number(options.effort) && is.inRange(options.effort, 1, 10)) {\n this.options.gifEffort = options.effort;\n } else {\n throw is.invalidParameterError('effort', 'integer between 1 and 10', options.effort);\n }\n }\n if (is.defined(options.dither)) {\n if (is.number(options.dither) && is.inRange(options.dither, 0, 1)) {\n this.options.gifDither = options.dither;\n } else {\n throw is.invalidParameterError('dither', 'number between 0.0 and 1.0', options.dither);\n }\n }\n if (is.defined(options.interFrameMaxError)) {\n if (is.number(options.interFrameMaxError) && is.inRange(options.interFrameMaxError, 0, 32)) {\n this.options.gifInterFrameMaxError = options.interFrameMaxError;\n } else {\n throw is.invalidParameterError('interFrameMaxError', 'number between 0.0 and 32.0', options.interFrameMaxError);\n }\n }\n if (is.defined(options.interPaletteMaxError)) {\n if (is.number(options.interPaletteMaxError) && is.inRange(options.interPaletteMaxError, 0, 256)) {\n this.options.gifInterPaletteMaxError = options.interPaletteMaxError;\n } else {\n throw is.invalidParameterError('interPaletteMaxError', 'number between 0.0 and 256.0', options.interPaletteMaxError);\n }\n }\n }\n trySetAnimationOptions(options, this.options);\n return this._updateFormatOut('gif', options);\n}\n\n/* istanbul ignore next */\n/**\n * Use these JP2 options for output image.\n *\n * Requires libvips compiled with support for OpenJPEG.\n * The prebuilt binaries do not include this - see\n * {@link https://sharp.pixelplumbing.com/install#custom-libvips installing a custom libvips}.\n *\n * @example\n * // Convert any input to lossless JP2 output\n * const data = await sharp(input)\n * .jp2({ lossless: true })\n * .toBuffer();\n *\n * @example\n * // Convert any input to very high quality JP2 output\n * const data = await sharp(input)\n * .jp2({\n * quality: 100,\n * chromaSubsampling: '4:4:4'\n * })\n * .toBuffer();\n *\n * @since 0.29.1\n *\n * @param {Object} [options] - output options\n * @param {number} [options.quality=80] - quality, integer 1-100\n * @param {boolean} [options.lossless=false] - use lossless compression mode\n * @param {number} [options.tileWidth=512] - horizontal tile size\n * @param {number} [options.tileHeight=512] - vertical tile size\n * @param {string} [options.chromaSubsampling='4:4:4'] - set to '4:2:0' to use chroma subsampling\n * @returns {Sharp}\n * @throws {Error} Invalid options\n */\nfunction jp2 (options) {\n if (!this.constructor.format.jp2k.output.buffer) {\n throw errJp2Save();\n }\n if (is.object(options)) {\n if (is.defined(options.quality)) {\n if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) {\n this.options.jp2Quality = options.quality;\n } else {\n throw is.invalidParameterError('quality', 'integer between 1 and 100', options.quality);\n }\n }\n if (is.defined(options.lossless)) {\n if (is.bool(options.lossless)) {\n this.options.jp2Lossless = options.lossless;\n } else {\n throw is.invalidParameterError('lossless', 'boolean', options.lossless);\n }\n }\n if (is.defined(options.tileWidth)) {\n if (is.integer(options.tileWidth) && is.inRange(options.tileWidth, 1, 32768)) {\n this.options.jp2TileWidth = options.tileWidth;\n } else {\n throw is.invalidParameterError('tileWidth', 'integer between 1 and 32768', options.tileWidth);\n }\n }\n if (is.defined(options.tileHeight)) {\n if (is.integer(options.tileHeight) && is.inRange(options.tileHeight, 1, 32768)) {\n this.options.jp2TileHeight = options.tileHeight;\n } else {\n throw is.invalidParameterError('tileHeight', 'integer between 1 and 32768', options.tileHeight);\n }\n }\n if (is.defined(options.chromaSubsampling)) {\n if (is.string(options.chromaSubsampling) && is.inArray(options.chromaSubsampling, ['4:2:0', '4:4:4'])) {\n this.options.jp2ChromaSubsampling = options.chromaSubsampling;\n } else {\n throw is.invalidParameterError('chromaSubsampling', 'one of: 4:2:0, 4:4:4', options.chromaSubsampling);\n }\n }\n }\n return this._updateFormatOut('jp2', options);\n}\n\n/**\n * Set animation options if available.\n * @private\n *\n * @param {Object} [source] - output options\n * @param {number} [source.loop=0] - number of animation iterations, use 0 for infinite animation\n * @param {number[]} [source.delay] - list of delays between animation frames (in milliseconds)\n * @param {Object} [target] - target object for valid options\n * @throws {Error} Invalid options\n */\nfunction trySetAnimationOptions (source, target) {\n if (is.object(source) && is.defined(source.loop)) {\n if (is.integer(source.loop) && is.inRange(source.loop, 0, 65535)) {\n target.loop = source.loop;\n } else {\n throw is.invalidParameterError('loop', 'integer between 0 and 65535', source.loop);\n }\n }\n if (is.object(source) && is.defined(source.delay)) {\n // We allow singular values as well\n if (is.integer(source.delay) && is.inRange(source.delay, 0, 65535)) {\n target.delay = [source.delay];\n } else if (\n Array.isArray(source.delay) &&\n source.delay.every(is.integer) &&\n source.delay.every(v => is.inRange(v, 0, 65535))) {\n target.delay = source.delay;\n } else {\n throw is.invalidParameterError('delay', 'integer or an array of integers between 0 and 65535', source.delay);\n }\n }\n}\n\n/**\n * Use these TIFF options for output image.\n *\n * The `density` can be set in pixels/inch via {@link #withmetadata|withMetadata}\n * instead of providing `xres` and `yres` in pixels/mm.\n *\n * @example\n * // Convert SVG input to LZW-compressed, 1 bit per pixel TIFF output\n * sharp('input.svg')\n * .tiff({\n * compression: 'lzw',\n * bitdepth: 1\n * })\n * .toFile('1-bpp-output.tiff')\n * .then(info => { ... });\n *\n * @param {Object} [options] - output options\n * @param {number} [options.quality=80] - quality, integer 1-100\n * @param {boolean} [options.force=true] - force TIFF output, otherwise attempt to use input format\n * @param {string} [options.compression='jpeg'] - compression options: none, jpeg, deflate, packbits, ccittfax4, lzw, webp, zstd, jp2k\n * @param {string} [options.predictor='horizontal'] - compression predictor options: none, horizontal, float\n * @param {boolean} [options.pyramid=false] - write an image pyramid\n * @param {boolean} [options.tile=false] - write a tiled tiff\n * @param {number} [options.tileWidth=256] - horizontal tile size\n * @param {number} [options.tileHeight=256] - vertical tile size\n * @param {number} [options.xres=1.0] - horizontal resolution in pixels/mm\n * @param {number} [options.yres=1.0] - vertical resolution in pixels/mm\n * @param {string} [options.resolutionUnit='inch'] - resolution unit options: inch, cm\n * @param {number} [options.bitdepth=8] - reduce bitdepth to 1, 2 or 4 bit\n * @param {boolean} [options.miniswhite=false] - write 1-bit images as miniswhite\n * @returns {Sharp}\n * @throws {Error} Invalid options\n */\nfunction tiff (options) {\n if (is.object(options)) {\n if (is.defined(options.quality)) {\n if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) {\n this.options.tiffQuality = options.quality;\n } else {\n throw is.invalidParameterError('quality', 'integer between 1 and 100', options.quality);\n }\n }\n if (is.defined(options.bitdepth)) {\n if (is.integer(options.bitdepth) && is.inArray(options.bitdepth, [1, 2, 4, 8])) {\n this.options.tiffBitdepth = options.bitdepth;\n } else {\n throw is.invalidParameterError('bitdepth', '1, 2, 4 or 8', options.bitdepth);\n }\n }\n // tiling\n if (is.defined(options.tile)) {\n this._setBooleanOption('tiffTile', options.tile);\n }\n if (is.defined(options.tileWidth)) {\n if (is.integer(options.tileWidth) && options.tileWidth > 0) {\n this.options.tiffTileWidth = options.tileWidth;\n } else {\n throw is.invalidParameterError('tileWidth', 'integer greater than zero', options.tileWidth);\n }\n }\n if (is.defined(options.tileHeight)) {\n if (is.integer(options.tileHeight) && options.tileHeight > 0) {\n this.options.tiffTileHeight = options.tileHeight;\n } else {\n throw is.invalidParameterError('tileHeight', 'integer greater than zero', options.tileHeight);\n }\n }\n // miniswhite\n if (is.defined(options.miniswhite)) {\n this._setBooleanOption('tiffMiniswhite', options.miniswhite);\n }\n // pyramid\n if (is.defined(options.pyramid)) {\n this._setBooleanOption('tiffPyramid', options.pyramid);\n }\n // resolution\n if (is.defined(options.xres)) {\n if (is.number(options.xres) && options.xres > 0) {\n this.options.tiffXres = options.xres;\n } else {\n throw is.invalidParameterError('xres', 'number greater than zero', options.xres);\n }\n }\n if (is.defined(options.yres)) {\n if (is.number(options.yres) && options.yres > 0) {\n this.options.tiffYres = options.yres;\n } else {\n throw is.invalidParameterError('yres', 'number greater than zero', options.yres);\n }\n }\n // compression\n if (is.defined(options.compression)) {\n if (is.string(options.compression) && is.inArray(options.compression, ['none', 'jpeg', 'deflate', 'packbits', 'ccittfax4', 'lzw', 'webp', 'zstd', 'jp2k'])) {\n this.options.tiffCompression = options.compression;\n } else {\n throw is.invalidParameterError('compression', 'one of: none, jpeg, deflate, packbits, ccittfax4, lzw, webp, zstd, jp2k', options.compression);\n }\n }\n // predictor\n if (is.defined(options.predictor)) {\n if (is.string(options.predictor) && is.inArray(options.predictor, ['none', 'horizontal', 'float'])) {\n this.options.tiffPredictor = options.predictor;\n } else {\n throw is.invalidParameterError('predictor', 'one of: none, horizontal, float', options.predictor);\n }\n }\n // resolutionUnit\n if (is.defined(options.resolutionUnit)) {\n if (is.string(options.resolutionUnit) && is.inArray(options.resolutionUnit, ['inch', 'cm'])) {\n this.options.tiffResolutionUnit = options.resolutionUnit;\n } else {\n throw is.invalidParameterError('resolutionUnit', 'one of: inch, cm', options.resolutionUnit);\n }\n }\n }\n return this._updateFormatOut('tiff', options);\n}\n\n/**\n * Use these AVIF options for output image.\n *\n * AVIF image sequences are not supported.\n * Prebuilt binaries support a bitdepth of 8 only.\n *\n * @example\n * const data = await sharp(input)\n * .avif({ effort: 2 })\n * .toBuffer();\n *\n * @example\n * const data = await sharp(input)\n * .avif({ lossless: true })\n * .toBuffer();\n *\n * @since 0.27.0\n *\n * @param {Object} [options] - output options\n * @param {number} [options.quality=50] - quality, integer 1-100\n * @param {boolean} [options.lossless=false] - use lossless compression\n * @param {number} [options.effort=4] - CPU effort, between 0 (fastest) and 9 (slowest)\n * @param {string} [options.chromaSubsampling='4:4:4'] - set to '4:2:0' to use chroma subsampling\n * @param {number} [options.bitdepth=8] - set bitdepth to 8, 10 or 12 bit\n * @returns {Sharp}\n * @throws {Error} Invalid options\n */\nfunction avif (options) {\n return this.heif({ ...options, compression: 'av1' });\n}\n\n/**\n * Use these HEIF options for output image.\n *\n * Support for patent-encumbered HEIC images using `hevc` compression requires the use of a\n * globally-installed libvips compiled with support for libheif, libde265 and x265.\n *\n * @example\n * const data = await sharp(input)\n * .heif({ compression: 'hevc' })\n * .toBuffer();\n *\n * @since 0.23.0\n *\n * @param {Object} options - output options\n * @param {string} options.compression - compression format: av1, hevc\n * @param {number} [options.quality=50] - quality, integer 1-100\n * @param {boolean} [options.lossless=false] - use lossless compression\n * @param {number} [options.effort=4] - CPU effort, between 0 (fastest) and 9 (slowest)\n * @param {string} [options.chromaSubsampling='4:4:4'] - set to '4:2:0' to use chroma subsampling\n * @param {number} [options.bitdepth=8] - set bitdepth to 8, 10 or 12 bit\n * @returns {Sharp}\n * @throws {Error} Invalid options\n */\nfunction heif (options) {\n if (is.object(options)) {\n if (is.string(options.compression) && is.inArray(options.compression, ['av1', 'hevc'])) {\n this.options.heifCompression = options.compression;\n } else {\n throw is.invalidParameterError('compression', 'one of: av1, hevc', options.compression);\n }\n if (is.defined(options.quality)) {\n if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) {\n this.options.heifQuality = options.quality;\n } else {\n throw is.invalidParameterError('quality', 'integer between 1 and 100', options.quality);\n }\n }\n if (is.defined(options.lossless)) {\n if (is.bool(options.lossless)) {\n this.options.heifLossless = options.lossless;\n } else {\n throw is.invalidParameterError('lossless', 'boolean', options.lossless);\n }\n }\n if (is.defined(options.effort)) {\n if (is.integer(options.effort) && is.inRange(options.effort, 0, 9)) {\n this.options.heifEffort = options.effort;\n } else {\n throw is.invalidParameterError('effort', 'integer between 0 and 9', options.effort);\n }\n }\n if (is.defined(options.chromaSubsampling)) {\n if (is.string(options.chromaSubsampling) && is.inArray(options.chromaSubsampling, ['4:2:0', '4:4:4'])) {\n this.options.heifChromaSubsampling = options.chromaSubsampling;\n } else {\n throw is.invalidParameterError('chromaSubsampling', 'one of: 4:2:0, 4:4:4', options.chromaSubsampling);\n }\n }\n if (is.defined(options.bitdepth)) {\n if (is.integer(options.bitdepth) && is.inArray(options.bitdepth, [8, 10, 12])) {\n if (options.bitdepth !== 8 && this.constructor.versions.heif) {\n throw is.invalidParameterError('bitdepth when using prebuilt binaries', 8, options.bitdepth);\n }\n this.options.heifBitdepth = options.bitdepth;\n } else {\n throw is.invalidParameterError('bitdepth', '8, 10 or 12', options.bitdepth);\n }\n }\n } else {\n throw is.invalidParameterError('options', 'Object', options);\n }\n return this._updateFormatOut('heif', options);\n}\n\n/**\n * Use these JPEG-XL (JXL) options for output image.\n *\n * This feature is experimental, please do not use in production systems.\n *\n * Requires libvips compiled with support for libjxl.\n * The prebuilt binaries do not include this - see\n * {@link https://sharp.pixelplumbing.com/install#custom-libvips installing a custom libvips}.\n *\n * Image metadata (EXIF, XMP) is unsupported.\n *\n * @since 0.31.3\n *\n * @param {Object} [options] - output options\n * @param {number} [options.distance=1.0] - maximum encoding error, between 0 (highest quality) and 15 (lowest quality)\n * @param {number} [options.quality] - calculate `distance` based on JPEG-like quality, between 1 and 100, overrides distance if specified\n * @param {number} [options.decodingTier=0] - target decode speed tier, between 0 (highest quality) and 4 (lowest quality)\n * @param {boolean} [options.lossless=false] - use lossless compression\n * @param {number} [options.effort=7] - CPU effort, between 3 (fastest) and 9 (slowest)\n * @returns {Sharp}\n * @throws {Error} Invalid options\n */\nfunction jxl (options) {\n if (is.object(options)) {\n if (is.defined(options.quality)) {\n if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) {\n // https://github.com/libjxl/libjxl/blob/0aeea7f180bafd6893c1db8072dcb67d2aa5b03d/tools/cjxl_main.cc#L640-L644\n this.options.jxlDistance = options.quality >= 30\n ? 0.1 + (100 - options.quality) * 0.09\n : 53 / 3000 * options.quality * options.quality - 23 / 20 * options.quality + 25;\n } else {\n throw is.invalidParameterError('quality', 'integer between 1 and 100', options.quality);\n }\n } else if (is.defined(options.distance)) {\n if (is.number(options.distance) && is.inRange(options.distance, 0, 15)) {\n this.options.jxlDistance = options.distance;\n } else {\n throw is.invalidParameterError('distance', 'number between 0.0 and 15.0', options.distance);\n }\n }\n if (is.defined(options.decodingTier)) {\n if (is.integer(options.decodingTier) && is.inRange(options.decodingTier, 0, 4)) {\n this.options.jxlDecodingTier = options.decodingTier;\n } else {\n throw is.invalidParameterError('decodingTier', 'integer between 0 and 4', options.decodingTier);\n }\n }\n if (is.defined(options.lossless)) {\n if (is.bool(options.lossless)) {\n this.options.jxlLossless = options.lossless;\n } else {\n throw is.invalidParameterError('lossless', 'boolean', options.lossless);\n }\n }\n if (is.defined(options.effort)) {\n if (is.integer(options.effort) && is.inRange(options.effort, 3, 9)) {\n this.options.jxlEffort = options.effort;\n } else {\n throw is.invalidParameterError('effort', 'integer between 3 and 9', options.effort);\n }\n }\n }\n return this._updateFormatOut('jxl', options);\n}\n\n/**\n * Force output to be raw, uncompressed pixel data.\n * Pixel ordering is left-to-right, top-to-bottom, without padding.\n * Channel ordering will be RGB or RGBA for non-greyscale colourspaces.\n *\n * @example\n * // Extract raw, unsigned 8-bit RGB pixel data from JPEG input\n * const { data, info } = await sharp('input.jpg')\n * .raw()\n * .toBuffer({ resolveWithObject: true });\n *\n * @example\n * // Extract alpha channel as raw, unsigned 16-bit pixel data from PNG input\n * const data = await sharp('input.png')\n * .ensureAlpha()\n * .extractChannel(3)\n * .toColourspace('b-w')\n * .raw({ depth: 'ushort' })\n * .toBuffer();\n *\n * @param {Object} [options] - output options\n * @param {string} [options.depth='uchar'] - bit depth, one of: char, uchar (default), short, ushort, int, uint, float, complex, double, dpcomplex\n * @returns {Sharp}\n * @throws {Error} Invalid options\n */\nfunction raw (options) {\n if (is.object(options)) {\n if (is.defined(options.depth)) {\n if (is.string(options.depth) && is.inArray(options.depth,\n ['char', 'uchar', 'short', 'ushort', 'int', 'uint', 'float', 'complex', 'double', 'dpcomplex']\n )) {\n this.options.rawDepth = options.depth;\n } else {\n throw is.invalidParameterError('depth', 'one of: char, uchar, short, ushort, int, uint, float, complex, double, dpcomplex', options.depth);\n }\n }\n }\n return this._updateFormatOut('raw');\n}\n\n/**\n * Use tile-based deep zoom (image pyramid) output.\n *\n * Set the format and options for tile images via the `toFormat`, `jpeg`, `png` or `webp` functions.\n * Use a `.zip` or `.szi` file extension with `toFile` to write to a compressed archive file format.\n *\n * The container will be set to `zip` when the output is a Buffer or Stream, otherwise it will default to `fs`.\n *\n * Requires libvips compiled with support for libgsf.\n * The prebuilt binaries do not include this - see\n * {@link https://sharp.pixelplumbing.com/install#custom-libvips installing a custom libvips}.\n *\n * @example\n * sharp('input.tiff')\n * .png()\n * .tile({\n * size: 512\n * })\n * .toFile('output.dz', function(err, info) {\n * // output.dzi is the Deep Zoom XML definition\n * // output_files contains 512x512 tiles grouped by zoom level\n * });\n *\n * @example\n * const zipFileWithTiles = await sharp(input)\n * .tile({ basename: \"tiles\" })\n * .toBuffer();\n *\n * @example\n * const iiififier = sharp().tile({ layout: \"iiif\" });\n * readableStream\n * .pipe(iiififier)\n * .pipe(writeableStream);\n *\n * @param {Object} [options]\n * @param {number} [options.size=256] tile size in pixels, a value between 1 and 8192.\n * @param {number} [options.overlap=0] tile overlap in pixels, a value between 0 and 8192.\n * @param {number} [options.angle=0] tile angle of rotation, must be a multiple of 90.\n * @param {string|Object} [options.background={r: 255, g: 255, b: 255, alpha: 1}] - background colour, parsed by the [color](https://www.npmjs.org/package/color) module, defaults to white without transparency.\n * @param {string} [options.depth] how deep to make the pyramid, possible values are `onepixel`, `onetile` or `one`, default based on layout.\n * @param {number} [options.skipBlanks=-1] Threshold to skip tile generation. Range is 0-255 for 8-bit images, 0-65535 for 16-bit images. Default is 5 for `google` layout, -1 (no skip) otherwise.\n * @param {string} [options.container='fs'] tile container, with value `fs` (filesystem) or `zip` (compressed file).\n * @param {string} [options.layout='dz'] filesystem layout, possible values are `dz`, `iiif`, `iiif3`, `zoomify` or `google`.\n * @param {boolean} [options.centre=false] centre image in tile.\n * @param {boolean} [options.center=false] alternative spelling of centre.\n * @param {string} [options.id='https://example.com/iiif'] when `layout` is `iiif`/`iiif3`, sets the `@id`/`id` attribute of `info.json`\n * @param {string} [options.basename] the name of the directory within the zip file when container is `zip`.\n * @returns {Sharp}\n * @throws {Error} Invalid parameters\n */\nfunction tile (options) {\n if (is.object(options)) {\n // Size of square tiles, in pixels\n if (is.defined(options.size)) {\n if (is.integer(options.size) && is.inRange(options.size, 1, 8192)) {\n this.options.tileSize = options.size;\n } else {\n throw is.invalidParameterError('size', 'integer between 1 and 8192', options.size);\n }\n }\n // Overlap of tiles, in pixels\n if (is.defined(options.overlap)) {\n if (is.integer(options.overlap) && is.inRange(options.overlap, 0, 8192)) {\n if (options.overlap > this.options.tileSize) {\n throw is.invalidParameterError('overlap', `<= size (${this.options.tileSize})`, options.overlap);\n }\n this.options.tileOverlap = options.overlap;\n } else {\n throw is.invalidParameterError('overlap', 'integer between 0 and 8192', options.overlap);\n }\n }\n // Container\n if (is.defined(options.container)) {\n if (is.string(options.container) && is.inArray(options.container, ['fs', 'zip'])) {\n this.options.tileContainer = options.container;\n } else {\n throw is.invalidParameterError('container', 'one of: fs, zip', options.container);\n }\n }\n // Layout\n if (is.defined(options.layout)) {\n if (is.string(options.layout) && is.inArray(options.layout, ['dz', 'google', 'iiif', 'iiif3', 'zoomify'])) {\n this.options.tileLayout = options.layout;\n } else {\n throw is.invalidParameterError('layout', 'one of: dz, google, iiif, iiif3, zoomify', options.layout);\n }\n }\n // Angle of rotation,\n if (is.defined(options.angle)) {\n if (is.integer(options.angle) && !(options.angle % 90)) {\n this.options.tileAngle = options.angle;\n } else {\n throw is.invalidParameterError('angle', 'positive/negative multiple of 90', options.angle);\n }\n }\n // Background colour\n this._setBackgroundColourOption('tileBackground', options.background);\n // Depth of tiles\n if (is.defined(options.depth)) {\n if (is.string(options.depth) && is.inArray(options.depth, ['onepixel', 'onetile', 'one'])) {\n this.options.tileDepth = options.depth;\n } else {\n throw is.invalidParameterError('depth', 'one of: onepixel, onetile, one', options.depth);\n }\n }\n // Threshold to skip blank tiles\n if (is.defined(options.skipBlanks)) {\n if (is.integer(options.skipBlanks) && is.inRange(options.skipBlanks, -1, 65535)) {\n this.options.tileSkipBlanks = options.skipBlanks;\n } else {\n throw is.invalidParameterError('skipBlanks', 'integer between -1 and 255/65535', options.skipBlanks);\n }\n } else if (is.defined(options.layout) && options.layout === 'google') {\n this.options.tileSkipBlanks = 5;\n }\n // Center image in tile\n const centre = is.bool(options.center) ? options.center : options.centre;\n if (is.defined(centre)) {\n this._setBooleanOption('tileCentre', centre);\n }\n // @id attribute for IIIF layout\n if (is.defined(options.id)) {\n if (is.string(options.id)) {\n this.options.tileId = options.id;\n } else {\n throw is.invalidParameterError('id', 'string', options.id);\n }\n }\n // Basename for zip container\n if (is.defined(options.basename)) {\n if (is.string(options.basename)) {\n this.options.tileBasename = options.basename;\n } else {\n throw is.invalidParameterError('basename', 'string', options.basename);\n }\n }\n }\n // Format\n if (is.inArray(this.options.formatOut, ['jpeg', 'png', 'webp'])) {\n this.options.tileFormat = this.options.formatOut;\n } else if (this.options.formatOut !== 'input') {\n throw is.invalidParameterError('format', 'one of: jpeg, png, webp', this.options.formatOut);\n }\n return this._updateFormatOut('dz');\n}\n\n/**\n * Set a timeout for processing, in seconds.\n * Use a value of zero to continue processing indefinitely, the default behaviour.\n *\n * The clock starts when libvips opens an input image for processing.\n * Time spent waiting for a libuv thread to become available is not included.\n *\n * @example\n * // Ensure processing takes no longer than 3 seconds\n * try {\n * const data = await sharp(input)\n * .blur(1000)\n * .timeout({ seconds: 3 })\n * .toBuffer();\n * } catch (err) {\n * if (err.message.includes('timeout')) { ... }\n * }\n *\n * @since 0.29.2\n *\n * @param {Object} options\n * @param {number} options.seconds - Number of seconds after which processing will be stopped\n * @returns {Sharp}\n */\nfunction timeout (options) {\n if (!is.plainObject(options)) {\n throw is.invalidParameterError('options', 'object', options);\n }\n if (is.integer(options.seconds) && is.inRange(options.seconds, 0, 3600)) {\n this.options.timeoutSeconds = options.seconds;\n } else {\n throw is.invalidParameterError('seconds', 'integer between 0 and 3600', options.seconds);\n }\n return this;\n}\n\n/**\n * Update the output format unless options.force is false,\n * in which case revert to input format.\n * @private\n * @param {string} formatOut\n * @param {Object} [options]\n * @param {boolean} [options.force=true] - force output format, otherwise attempt to use input format\n * @returns {Sharp}\n */\nfunction _updateFormatOut (formatOut, options) {\n if (!(is.object(options) && options.force === false)) {\n this.options.formatOut = formatOut;\n }\n return this;\n}\n\n/**\n * Update a boolean attribute of the this.options Object.\n * @private\n * @param {string} key\n * @param {boolean} val\n * @throws {Error} Invalid key\n */\nfunction _setBooleanOption (key, val) {\n if (is.bool(val)) {\n this.options[key] = val;\n } else {\n throw is.invalidParameterError(key, 'boolean', val);\n }\n}\n\n/**\n * Called by a WriteableStream to notify us it is ready for data.\n * @private\n */\nfunction _read () {\n /* istanbul ignore else */\n if (!this.options.streamOut) {\n this.options.streamOut = true;\n const stack = Error();\n this._pipeline(undefined, stack);\n }\n}\n\n/**\n * Invoke the C++ image processing pipeline\n * Supports callback, stream and promise variants\n * @private\n */\nfunction _pipeline (callback, stack) {\n if (typeof callback === 'function') {\n // output=file/buffer\n if (this._isStreamInput()) {\n // output=file/buffer, input=stream\n this.on('finish', () => {\n this._flattenBufferIn();\n sharp.pipeline(this.options, (err, data, info) => {\n if (err) {\n callback(is.nativeError(err, stack));\n } else {\n callback(null, data, info);\n }\n });\n });\n } else {\n // output=file/buffer, input=file/buffer\n sharp.pipeline(this.options, (err, data, info) => {\n if (err) {\n callback(is.nativeError(err, stack));\n } else {\n callback(null, data, info);\n }\n });\n }\n return this;\n } else if (this.options.streamOut) {\n // output=stream\n if (this._isStreamInput()) {\n // output=stream, input=stream\n this.once('finish', () => {\n this._flattenBufferIn();\n sharp.pipeline(this.options, (err, data, info) => {\n if (err) {\n this.emit('error', is.nativeError(err, stack));\n } else {\n this.emit('info', info);\n this.push(data);\n }\n this.push(null);\n this.on('end', () => this.emit('close'));\n });\n });\n if (this.streamInFinished) {\n this.emit('finish');\n }\n } else {\n // output=stream, input=file/buffer\n sharp.pipeline(this.options, (err, data, info) => {\n if (err) {\n this.emit('error', is.nativeError(err, stack));\n } else {\n this.emit('info', info);\n this.push(data);\n }\n this.push(null);\n this.on('end', () => this.emit('close'));\n });\n }\n return this;\n } else {\n // output=promise\n if (this._isStreamInput()) {\n // output=promise, input=stream\n return new Promise((resolve, reject) => {\n this.once('finish', () => {\n this._flattenBufferIn();\n sharp.pipeline(this.options, (err, data, info) => {\n if (err) {\n reject(is.nativeError(err, stack));\n } else {\n if (this.options.resolveWithObject) {\n resolve({ data, info });\n } else {\n resolve(data);\n }\n }\n });\n });\n });\n } else {\n // output=promise, input=file/buffer\n return new Promise((resolve, reject) => {\n sharp.pipeline(this.options, (err, data, info) => {\n if (err) {\n reject(is.nativeError(err, stack));\n } else {\n if (this.options.resolveWithObject) {\n resolve({ data, info });\n } else {\n resolve(data);\n }\n }\n });\n });\n }\n }\n}\n\n/**\n * Decorate the Sharp prototype with output-related functions.\n * @private\n */\nmodule.exports = function (Sharp) {\n Object.assign(Sharp.prototype, {\n // Public\n toFile,\n toBuffer,\n keepExif,\n withExif,\n withExifMerge,\n keepIccProfile,\n withIccProfile,\n keepMetadata,\n withMetadata,\n toFormat,\n jpeg,\n jp2,\n png,\n webp,\n tiff,\n avif,\n heif,\n jxl,\n gif,\n raw,\n tile,\n timeout,\n // Private\n _updateFormatOut,\n _setBooleanOption,\n _read,\n _pipeline\n });\n};\n","// Copyright 2013 Lovell Fuller and others.\n// SPDX-License-Identifier: Apache-2.0\n\n'use strict';\n\nconst events = require('node:events');\nconst detectLibc = require('detect-libc');\n\nconst is = require('./is');\nconst { runtimePlatformArch } = require('./libvips');\nconst sharp = require('./sharp');\n\nconst runtimePlatform = runtimePlatformArch();\nconst libvipsVersion = sharp.libvipsVersion();\n\n/**\n * An Object containing nested boolean values representing the available input and output formats/methods.\n * @member\n * @example\n * console.log(sharp.format);\n * @returns {Object}\n */\nconst format = sharp.format();\nformat.heif.output.alias = ['avif', 'heic'];\nformat.jpeg.output.alias = ['jpe', 'jpg'];\nformat.tiff.output.alias = ['tif'];\nformat.jp2k.output.alias = ['j2c', 'j2k', 'jp2', 'jpx'];\n\n/**\n * An Object containing the available interpolators and their proper values\n * @readonly\n * @enum {string}\n */\nconst interpolators = {\n /** [Nearest neighbour interpolation](http://en.wikipedia.org/wiki/Nearest-neighbor_interpolation). Suitable for image enlargement only. */\n nearest: 'nearest',\n /** [Bilinear interpolation](http://en.wikipedia.org/wiki/Bilinear_interpolation). Faster than bicubic but with less smooth results. */\n bilinear: 'bilinear',\n /** [Bicubic interpolation](http://en.wikipedia.org/wiki/Bicubic_interpolation) (the default). */\n bicubic: 'bicubic',\n /** [LBB interpolation](https://github.com/libvips/libvips/blob/master/libvips/resample/lbb.cpp#L100). Prevents some \"[acutance](http://en.wikipedia.org/wiki/Acutance)\" but typically reduces performance by a factor of 2. */\n locallyBoundedBicubic: 'lbb',\n /** [Nohalo interpolation](http://eprints.soton.ac.uk/268086/). Prevents acutance but typically reduces performance by a factor of 3. */\n nohalo: 'nohalo',\n /** [VSQBS interpolation](https://github.com/libvips/libvips/blob/master/libvips/resample/vsqbs.cpp#L48). Prevents \"staircasing\" when enlarging. */\n vertexSplitQuadraticBasisSpline: 'vsqbs'\n};\n\n/**\n * An Object containing the version numbers of sharp, libvips\n * and (when using prebuilt binaries) its dependencies.\n *\n * @member\n * @example\n * console.log(sharp.versions);\n */\nlet versions = {\n vips: libvipsVersion.semver\n};\n/* istanbul ignore next */\nif (!libvipsVersion.isGlobal) {\n if (!libvipsVersion.isWasm) {\n try {\n versions = require(`@img/sharp-${runtimePlatform}/versions`);\n } catch (_) {\n try {\n versions = require(`@img/sharp-libvips-${runtimePlatform}/versions`);\n } catch (_) {}\n }\n } else {\n try {\n versions = require('@img/sharp-wasm32/versions');\n } catch (_) {}\n }\n}\nversions.sharp = require('../package.json').version;\n\n/* istanbul ignore next */\nif (versions.heif && format.heif) {\n // Prebuilt binaries provide AV1\n format.heif.input.fileSuffix = ['.avif'];\n format.heif.output.alias = ['avif'];\n}\n\n/**\n * Gets or, when options are provided, sets the limits of _libvips'_ operation cache.\n * Existing entries in the cache will be trimmed after any change in limits.\n * This method always returns cache statistics,\n * useful for determining how much working memory is required for a particular task.\n *\n * @example\n * const stats = sharp.cache();\n * @example\n * sharp.cache( { items: 200 } );\n * sharp.cache( { files: 0 } );\n * sharp.cache(false);\n *\n * @param {Object|boolean} [options=true] - Object with the following attributes, or boolean where true uses default cache settings and false removes all caching\n * @param {number} [options.memory=50] - is the maximum memory in MB to use for this cache\n * @param {number} [options.files=20] - is the maximum number of files to hold open\n * @param {number} [options.items=100] - is the maximum number of operations to cache\n * @returns {Object}\n */\nfunction cache (options) {\n if (is.bool(options)) {\n if (options) {\n // Default cache settings of 50MB, 20 files, 100 items\n return sharp.cache(50, 20, 100);\n } else {\n return sharp.cache(0, 0, 0);\n }\n } else if (is.object(options)) {\n return sharp.cache(options.memory, options.files, options.items);\n } else {\n return sharp.cache();\n }\n}\ncache(true);\n\n/**\n * Gets or, when a concurrency is provided, sets\n * the maximum number of threads _libvips_ should use to process _each image_.\n * These are from a thread pool managed by glib,\n * which helps avoid the overhead of creating new threads.\n *\n * This method always returns the current concurrency.\n *\n * The default value is the number of CPU cores,\n * except when using glibc-based Linux without jemalloc,\n * where the default is `1` to help reduce memory fragmentation.\n *\n * A value of `0` will reset this to the number of CPU cores.\n *\n * Some image format libraries spawn additional threads,\n * e.g. libaom manages its own 4 threads when encoding AVIF images,\n * and these are independent of the value set here.\n *\n * The maximum number of images that sharp can process in parallel\n * is controlled by libuv's `UV_THREADPOOL_SIZE` environment variable,\n * which defaults to 4.\n *\n * https://nodejs.org/api/cli.html#uv_threadpool_sizesize\n *\n * For example, by default, a machine with 8 CPU cores will process\n * 4 images in parallel and use up to 8 threads per image,\n * so there will be up to 32 concurrent threads.\n *\n * @example\n * const threads = sharp.concurrency(); // 4\n * sharp.concurrency(2); // 2\n * sharp.concurrency(0); // 4\n *\n * @param {number} [concurrency]\n * @returns {number} concurrency\n */\nfunction concurrency (concurrency) {\n return sharp.concurrency(is.integer(concurrency) ? concurrency : null);\n}\n/* istanbul ignore next */\nif (detectLibc.familySync() === detectLibc.GLIBC && !sharp._isUsingJemalloc()) {\n // Reduce default concurrency to 1 when using glibc memory allocator\n sharp.concurrency(1);\n} else if (detectLibc.familySync() === detectLibc.MUSL && sharp.concurrency() === 1024) {\n // Reduce default concurrency when musl thread over-subscription detected\n sharp.concurrency(require('node:os').availableParallelism());\n}\n\n/**\n * An EventEmitter that emits a `change` event when a task is either:\n * - queued, waiting for _libuv_ to provide a worker thread\n * - complete\n * @member\n * @example\n * sharp.queue.on('change', function(queueLength) {\n * console.log('Queue contains ' + queueLength + ' task(s)');\n * });\n */\nconst queue = new events.EventEmitter();\n\n/**\n * Provides access to internal task counters.\n * - queue is the number of tasks this module has queued waiting for _libuv_ to provide a worker thread from its pool.\n * - process is the number of resize tasks currently being processed.\n *\n * @example\n * const counters = sharp.counters(); // { queue: 2, process: 4 }\n *\n * @returns {Object}\n */\nfunction counters () {\n return sharp.counters();\n}\n\n/**\n * Get and set use of SIMD vector unit instructions.\n * Requires libvips to have been compiled with highway support.\n *\n * Improves the performance of `resize`, `blur` and `sharpen` operations\n * by taking advantage of the SIMD vector unit of the CPU, e.g. Intel SSE and ARM NEON.\n *\n * @example\n * const simd = sharp.simd();\n * // simd is `true` if the runtime use of highway is currently enabled\n * @example\n * const simd = sharp.simd(false);\n * // prevent libvips from using highway at runtime\n *\n * @param {boolean} [simd=true]\n * @returns {boolean}\n */\nfunction simd (simd) {\n return sharp.simd(is.bool(simd) ? simd : null);\n}\n\n/**\n * Block libvips operations at runtime.\n *\n * This is in addition to the `VIPS_BLOCK_UNTRUSTED` environment variable,\n * which when set will block all \"untrusted\" operations.\n *\n * @since 0.32.4\n *\n * @example Block all TIFF input.\n * sharp.block({\n * operation: ['VipsForeignLoadTiff']\n * });\n *\n * @param {Object} options\n * @param {Array} options.operation - List of libvips low-level operation names to block.\n */\nfunction block (options) {\n if (is.object(options)) {\n if (Array.isArray(options.operation) && options.operation.every(is.string)) {\n sharp.block(options.operation, true);\n } else {\n throw is.invalidParameterError('operation', 'Array', options.operation);\n }\n } else {\n throw is.invalidParameterError('options', 'object', options);\n }\n}\n\n/**\n * Unblock libvips operations at runtime.\n *\n * This is useful for defining a list of allowed operations.\n *\n * @since 0.32.4\n *\n * @example Block all input except WebP from the filesystem.\n * sharp.block({\n * operation: ['VipsForeignLoad']\n * });\n * sharp.unblock({\n * operation: ['VipsForeignLoadWebpFile']\n * });\n *\n * @example Block all input except JPEG and PNG from a Buffer or Stream.\n * sharp.block({\n * operation: ['VipsForeignLoad']\n * });\n * sharp.unblock({\n * operation: ['VipsForeignLoadJpegBuffer', 'VipsForeignLoadPngBuffer']\n * });\n *\n * @param {Object} options\n * @param {Array} options.operation - List of libvips low-level operation names to unblock.\n */\nfunction unblock (options) {\n if (is.object(options)) {\n if (Array.isArray(options.operation) && options.operation.every(is.string)) {\n sharp.block(options.operation, false);\n } else {\n throw is.invalidParameterError('operation', 'Array', options.operation);\n }\n } else {\n throw is.invalidParameterError('options', 'object', options);\n }\n}\n\n/**\n * Decorate the Sharp class with utility-related functions.\n * @private\n */\nmodule.exports = function (Sharp) {\n Sharp.cache = cache;\n Sharp.concurrency = concurrency;\n Sharp.counters = counters;\n Sharp.simd = simd;\n Sharp.format = format;\n Sharp.interpolators = interpolators;\n Sharp.versions = versions;\n Sharp.queue = queue;\n Sharp.block = block;\n Sharp.unblock = unblock;\n};\n","// Copyright 2013 Lovell Fuller and others.\n// SPDX-License-Identifier: Apache-2.0\n\n'use strict';\n\nconst Sharp = require('./constructor');\nrequire('./input')(Sharp);\nrequire('./resize')(Sharp);\nrequire('./composite')(Sharp);\nrequire('./operation')(Sharp);\nrequire('./colour')(Sharp);\nrequire('./channel')(Sharp);\nrequire('./output')(Sharp);\nrequire('./utility')(Sharp);\n\nmodule.exports = Sharp;\n","/*!\n * reading-time\n * Copyright (c) Nicolas Gryman \n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * @typedef {import('reading-time').Options['wordBound']} WordBoundFunction\n */\n\n/**\n * @param {number} number\n * @param {number[][]} arrayOfRanges\n */\nfunction codeIsInRanges(number, arrayOfRanges) {\n return arrayOfRanges.some(([lowerBound, upperBound]) =>\n (lowerBound <= number) && (number <= upperBound)\n )\n}\n\n/**\n * @type {WordBoundFunction}\n */\nfunction isCJK(c) {\n if ('string' !== typeof c) {\n return false\n }\n const charCode = c.charCodeAt(0)\n // Help wanted!\n // This should be good for most cases, but if you find it unsatisfactory\n // (e.g. some other language where each character should be standalone words),\n // contributions welcome!\n return codeIsInRanges(\n charCode,\n [\n // Hiragana (Katakana not included on purpose,\n // context: https://github.com/ngryman/reading-time/pull/35#issuecomment-853364526)\n // If you think Katakana should be included and have solid reasons, improvement is welcomed\n [0x3040, 0x309f],\n // CJK Unified ideographs\n [0x4e00, 0x9fff],\n // Hangul\n [0xac00, 0xd7a3],\n // CJK extensions\n [0x20000, 0x2ebe0]\n ]\n )\n}\n\n/**\n * @type {WordBoundFunction}\n */\nfunction isAnsiWordBound(c) {\n return ' \\n\\r\\t'.includes(c)\n}\n\n/**\n * @type {WordBoundFunction}\n */\nfunction isPunctuation(c) {\n if ('string' !== typeof c) {\n return false\n }\n const charCode = c.charCodeAt(0)\n return codeIsInRanges(\n charCode,\n [\n [0x21, 0x2f],\n [0x3a, 0x40],\n [0x5b, 0x60],\n [0x7b, 0x7e],\n // CJK Symbols and Punctuation\n [0x3000, 0x303f],\n // Full-width ASCII punctuation variants\n [0xff00, 0xffef]\n ]\n )\n}\n\n/**\n * @type {import('reading-time').default}\n */\nfunction readingTime(text, options = {}) {\n let words = 0, start = 0, end = text.length - 1\n\n // use provided value if available\n const wordsPerMinute = options.wordsPerMinute || 200\n\n // use provided function if available\n const isWordBound = options.wordBound || isAnsiWordBound\n\n // fetch bounds\n while (isWordBound(text[start])) start++\n while (isWordBound(text[end])) end--\n\n // Add a trailing word bound to make handling edges more convenient\n const normalizedText = `${text}\\n`\n\n // calculate the number of words\n for (let i = start; i <= end; i++) {\n // A CJK character is a always word;\n // A non-word bound followed by a word bound / CJK is the end of a word.\n if (\n isCJK(normalizedText[i]) ||\n (!isWordBound(normalizedText[i]) &&\n (isWordBound(normalizedText[i + 1]) || isCJK(normalizedText[i + 1]))\n )\n ) {\n words++\n }\n // In case of CJK followed by punctuations, those characters have to be eaten as well\n if (isCJK(normalizedText[i])) {\n while (\n i <= end &&\n (isPunctuation(normalizedText[i + 1]) || isWordBound(normalizedText[i + 1]))\n ) {\n i++\n }\n }\n }\n\n // reading time stats\n const minutes = words / wordsPerMinute\n // Math.round used to resolve floating point funkyness\n // http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html\n const time = Math.round(minutes * 60 * 1000)\n const displayed = Math.ceil(minutes.toFixed(2))\n\n return {\n text: displayed + ' min read',\n minutes: minutes,\n time: time,\n words: words\n }\n}\n\n/**\n * Export\n */\nmodule.exports = readingTime\n","/*!\n * reading-time\n * Copyright (c) Nicolas Gryman \n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n */\nconst readingTime = require('./reading-time')\nconst Transform = require('stream').Transform\nconst util = require('util')\n\n/**\n * @typedef {import('reading-time').Options} Options\n * @typedef {import('reading-time').Options['wordBound']} WordBoundFunction\n * @typedef {import('reading-time').readingTimeStream} ReadingTimeStream\n * @typedef {import('stream').TransformCallback} TransformCallback\n */\n\n/**\n * @param {Options} options\n * @returns {ReadingTimeStream}\n */\nfunction ReadingTimeStream(options) {\n // allow use without new\n if (!(this instanceof ReadingTimeStream)) {\n return new ReadingTimeStream(options)\n }\n\n Transform.call(this, { objectMode: true })\n\n this.options = options || {}\n this.stats = {\n minutes: 0,\n time: 0,\n words: 0\n }\n}\nutil.inherits(ReadingTimeStream, Transform)\n\n/**\n * @param {Buffer} chunk\n * @param {BufferEncoding} encoding\n * @param {TransformCallback} callback\n */\nReadingTimeStream.prototype._transform = function(chunk, encoding, callback) {\n const stats = readingTime(chunk.toString(encoding), this.options)\n\n this.stats.minutes += stats.minutes\n this.stats.time += stats.time\n this.stats.words += stats.words\n\n callback()\n}\n\n/**\n * @param {TransformCallback} callback\n */\nReadingTimeStream.prototype._flush = function(callback) {\n this.stats.text = Math.ceil(this.stats.minutes.toFixed(2)) + ' min read'\n\n this.push(this.stats)\n callback()\n}\n\n/**\n * Export\n */\nmodule.exports = ReadingTimeStream\n","module.exports.default = module.exports = require('./lib/reading-time')\nmodule.exports.readingTimeStream = require('./lib/stream')\n","// The following break classes are handled by the pair table\nexport const OP = 0; // Opening punctuation\nexport const CL = 1; // Closing punctuation\nexport const CP = 2; // Closing parenthesis\nexport const QU = 3; // Ambiguous quotation\nexport const GL = 4; // Glue\nexport const NS = 5; // Non-starters\nexport const EX = 6; // Exclamation/Interrogation\nexport const SY = 7; // Symbols allowing break after\nexport const IS = 8; // Infix separator\nexport const PR = 9; // Prefix\nexport const PO = 10; // Postfix\nexport const NU = 11; // Numeric\nexport const AL = 12; // Alphabetic\nexport const HL = 13; // Hebrew Letter\nexport const ID = 14; // Ideographic\nexport const IN = 15; // Inseparable characters\nexport const HY = 16; // Hyphen\nexport const BA = 17; // Break after\nexport const BB = 18; // Break before\nexport const B2 = 19; // Break on either side (but not pair)\nexport const ZW = 20; // Zero-width space\nexport const CM = 21; // Combining marks\nexport const WJ = 22; // Word joiner\nexport const H2 = 23; // Hangul LV\nexport const H3 = 24; // Hangul LVT\nexport const JL = 25; // Hangul L Jamo\nexport const JV = 26; // Hangul V Jamo\nexport const JT = 27; // Hangul T Jamo\nexport const RI = 28; // Regional Indicator\nexport const EB = 29; // Emoji Base\nexport const EM = 30; // Emoji Modifier\nexport const ZWJ = 31; // Zero Width Joiner\nexport const CB = 32; // Contingent break\n\n// The following break classes are not handled by the pair table\nexport const AI = 33; // Ambiguous (Alphabetic or Ideograph)\nexport const BK = 34; // Break (mandatory)\nexport const CJ = 35; // Conditional Japanese Starter\nexport const CR = 36; // Carriage return\nexport const LF = 37; // Line feed\nexport const NL = 38; // Next line\nexport const SA = 39; // South-East Asian\nexport const SG = 40; // Surrogates\nexport const SP = 41; // Space\nexport const XX = 42; // Unknown\n","export const DI_BRK = 0; // Direct break opportunity\nexport const IN_BRK = 1; // Indirect break opportunity\nexport const CI_BRK = 2; // Indirect break opportunity for combining marks\nexport const CP_BRK = 3; // Prohibited break for combining marks\nexport const PR_BRK = 4; // Prohibited break\n\n// Based on example pair table from https://www.unicode.org/reports/tr14/tr14-37.html#Table2\n// - ZWJ special processing for LB8a of Revision 41\n// - CB manually added as per Rule LB20\n// - CL, CP, NS, SY, IS, PR, PO, HY, BA, B2 and RI manually adjusted as per LB22 of Revision 45\nexport const pairTable = [\n //OP , CL , CP , QU , GL , NS , EX , SY , IS , PR , PO , NU , AL , HL , ID , IN , HY , BA , BB , B2 , ZW , CM , WJ , H2 , H3 , JL , JV , JT , RI , EB , EM , ZWJ , CB\n [PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, CP_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK], // OP\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // CL\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // CP\n [PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, CI_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK], // QU\n [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, CI_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK], // GL\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // NS\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // EX\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK, IN_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // SY\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // IS\n [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK], // PR\n [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // PO\n [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // NU\n [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // AL\n [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // HL\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // ID\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // IN\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, DI_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // HY\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, DI_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // BA\n [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, CI_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK], // BB\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, PR_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // B2\n [DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK], // ZW\n [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // CM\n [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, CI_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK], // WJ\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // H2\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // H3\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // JL\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // JV\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // JT\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // RI\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, DI_BRK], // EB\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // EM\n [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // ZWJ\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, DI_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK] // CB\n];","import UnicodeTrie from 'unicode-trie';\nimport fs from 'fs';\nimport base64 from 'base64-js';\nimport { BK, CR, LF, NL, SG, WJ, SP, ZWJ, BA, HY, NS, AI, AL, CJ, HL, RI, SA, XX } from './classes';\nimport { DI_BRK, IN_BRK, CI_BRK, CP_BRK, PR_BRK, pairTable } from './pairs';\n\nconst data = base64.toByteArray(fs.readFileSync(__dirname + '/classes.trie', 'base64'));\nconst classTrie = new UnicodeTrie(data);\n\nconst mapClass = function (c) {\n switch (c) {\n case AI:\n return AL;\n\n case SA:\n case SG:\n case XX:\n return AL;\n\n case CJ:\n return NS;\n\n default:\n return c;\n }\n};\n\nconst mapFirst = function (c) {\n switch (c) {\n case LF:\n case NL:\n return BK;\n\n case SP:\n return WJ;\n\n default:\n return c;\n }\n};\n\nclass Break {\n constructor(position, required = false) {\n this.position = position;\n this.required = required;\n }\n}\n\nclass LineBreaker {\n constructor(string) {\n this.string = string;\n this.pos = 0;\n this.lastPos = 0;\n this.curClass = null;\n this.nextClass = null;\n this.LB8a = false;\n this.LB21a = false;\n this.LB30a = 0;\n }\n\n nextCodePoint() {\n const code = this.string.charCodeAt(this.pos++);\n const next = this.string.charCodeAt(this.pos);\n\n // If a surrogate pair\n if ((0xd800 <= code && code <= 0xdbff) && (0xdc00 <= next && next <= 0xdfff)) {\n this.pos++;\n return ((code - 0xd800) * 0x400) + (next - 0xdc00) + 0x10000;\n }\n\n return code;\n }\n\n nextCharClass() {\n return mapClass(classTrie.get(this.nextCodePoint()));\n }\n\n getSimpleBreak() {\n // handle classes not handled by the pair table\n switch (this.nextClass) {\n case SP:\n return false;\n\n case BK:\n case LF:\n case NL:\n this.curClass = BK;\n return false;\n\n case CR:\n this.curClass = CR;\n return false;\n }\n\n return null;\n }\n\n getPairTableBreak(lastClass) {\n // if not handled already, use the pair table\n let shouldBreak = false;\n switch (pairTable[this.curClass][this.nextClass]) {\n case DI_BRK: // Direct break\n shouldBreak = true;\n break;\n\n case IN_BRK: // possible indirect break\n shouldBreak = lastClass === SP;\n break;\n\n case CI_BRK:\n shouldBreak = lastClass === SP;\n if (!shouldBreak) {\n shouldBreak = false;\n return shouldBreak;\n }\n break;\n\n case CP_BRK: // prohibited for combining marks\n if (lastClass !== SP) {\n return shouldBreak;\n }\n break;\n\n case PR_BRK:\n break;\n }\n\n if (this.LB8a) {\n shouldBreak = false;\n }\n\n // Rule LB21a\n if (this.LB21a && (this.curClass === HY || this.curClass === BA)) {\n shouldBreak = false;\n this.LB21a = false;\n } else {\n this.LB21a = (this.curClass === HL);\n }\n\n // Rule LB30a\n if (this.curClass === RI) {\n this.LB30a++;\n if (this.LB30a == 2 && (this.nextClass === RI)) {\n shouldBreak = true;\n this.LB30a = 0;\n }\n } else {\n this.LB30a = 0;\n }\n\n this.curClass = this.nextClass;\n\n return shouldBreak;\n }\n\n nextBreak() {\n // get the first char if we're at the beginning of the string\n if (this.curClass == null) {\n let firstClass = this.nextCharClass();\n this.curClass = mapFirst(firstClass);\n this.nextClass = firstClass;\n this.LB8a = (firstClass === ZWJ);\n this.LB30a = 0;\n }\n\n while (this.pos < this.string.length) {\n this.lastPos = this.pos;\n const lastClass = this.nextClass;\n this.nextClass = this.nextCharClass();\n\n // explicit newline\n if ((this.curClass === BK) || ((this.curClass === CR) && (this.nextClass !== LF))) {\n this.curClass = mapFirst(mapClass(this.nextClass));\n return new Break(this.lastPos, true);\n }\n\n let shouldBreak = this.getSimpleBreak();\n\n if (shouldBreak === null) {\n shouldBreak = this.getPairTableBreak(lastClass);\n }\n\n // Rule LB8a\n this.LB8a = (this.nextClass === ZWJ);\n\n if (shouldBreak) {\n return new Break(this.lastPos);\n }\n }\n\n if (this.lastPos < this.string.length) {\n this.lastPos = this.string.length;\n return new Break(this.string.length);\n }\n\n return null;\n }\n}\n\nmodule.exports = LineBreaker;\n","/**\n * This module expands the CSS properties to get rid of shorthands, as well as\n * cleaning up some properties.\n */\n\nimport { getPropertyName, getStylesForProperty } from 'css-to-react-native'\nimport { parseElementStyle } from 'css-background-parser'\nimport { parse as parseBoxShadow } from 'css-box-shadow'\nimport cssColorParse from 'parse-css-color'\n\nimport CssDimension from '../vendor/parse-css-dimension/index.js'\nimport parseTransformOrigin, {\n ParsedTransformOrigin,\n} from '../transform-origin.js'\nimport { isString, lengthToNumber, v, splitEffects } from '../utils.js'\nimport { MaskProperty, parseMask } from '../parser/mask.js'\nimport { FontWeight, FontStyle } from '../font.js'\n\n// https://react-cn.github.io/react/tips/style-props-value-px.html\nconst optOutPx = new Set([\n 'flex',\n 'flexGrow',\n 'flexShrink',\n 'flexBasis',\n 'fontWeight',\n 'lineHeight',\n 'opacity',\n 'scale',\n 'scaleX',\n 'scaleY',\n])\nconst keepNumber = new Set(['lineHeight'])\n\nfunction handleFallbackColor(\n prop: string,\n parsed: Record,\n rawInput: string,\n currentColor: string\n) {\n if (\n prop === 'textDecoration' &&\n !rawInput.includes(parsed.textDecorationColor)\n ) {\n parsed.textDecorationColor = currentColor\n }\n return parsed\n}\n\nfunction purify(name: string, value?: string | number) {\n const num = Number(value)\n if (isNaN(num)) return value\n if (!optOutPx.has(name)) return num + 'px'\n if (keepNumber.has(name)) return num\n return String(value)\n}\n\nfunction handleSpecialCase(\n name: string,\n value: string | number,\n currentColor: string\n) {\n if (name === 'lineHeight') {\n return { lineHeight: purify(name, value) }\n }\n\n if (name === 'fontFamily') {\n return {\n fontFamily: (value as string).split(',').map((_v) => {\n return _v\n .trim()\n .replace(/(^['\"])|(['\"]$)/g, '')\n .toLocaleLowerCase()\n }),\n }\n }\n\n if (name === 'borderRadius') {\n if (typeof value !== 'string' || !value.includes('/')) {\n // Regular border radius\n return\n }\n // Support the `border-radius: 10px / 20px` syntax.\n const [horizontal, vertical] = value.split('/')\n const vh = getStylesForProperty(name, horizontal, true)\n const vv = getStylesForProperty(name, vertical, true)\n for (const k in vh) {\n vv[k] = purify(name, vh[k]) + ' ' + purify(name, vv[k])\n }\n return vv\n }\n\n if (/^border(Top|Right|Bottom|Left)?$/.test(name)) {\n const resolved = getStylesForProperty('border', value, true)\n\n // Border width should be default to 3px (medium) instead of 1px:\n // https://w3c.github.io/csswg-drafts/css-backgrounds-3/#border-width\n // Although on Chrome it will be displayed as 1.5px but let's stick to the\n // spec.\n if (resolved.borderWidth === 1 && !String(value).includes('1px')) {\n resolved.borderWidth = 3\n }\n\n // A trick to fix `border: 1px solid` to not use `black` but the inherited\n // `color` value. This is necessary because css-to-react-native automatically\n // fallbacks to default color values.\n if (resolved.borderColor === 'black' && !String(value).includes('black')) {\n resolved.borderColor = currentColor\n }\n\n const purified = {\n Width: purify(name + 'Width', resolved.borderWidth),\n Style: v(\n resolved.borderStyle,\n {\n solid: 'solid',\n dashed: 'dashed',\n },\n 'solid',\n name + 'Style'\n ),\n Color: resolved.borderColor,\n }\n\n const full = {}\n for (const k of name === 'border'\n ? ['Top', 'Right', 'Bottom', 'Left']\n : [name.slice(6)]) {\n for (const p in purified) {\n full['border' + k + p] = purified[p]\n }\n }\n return full\n }\n\n if (name === 'boxShadow') {\n if (!value) {\n throw new Error('Invalid `boxShadow` value: \"' + value + '\".')\n }\n return {\n [name]: typeof value === 'string' ? parseBoxShadow(value) : value,\n }\n }\n\n if (name === 'transform') {\n if (typeof value !== 'string') throw new Error('Invalid `transform` value.')\n // To support percentages in transform (which is not supported in RN), we\n // replace them with random symbols and then replace them back after parsing.\n const symbols = {}\n const replaced = value.replace(/(-?[\\d.]+%)/g, (_, _v) => {\n const symbol = ~~(Math.random() * 1e9)\n symbols[symbol] = _v\n return symbol + 'px'\n })\n const parsed = getStylesForProperty('transform', replaced, true)\n for (const t of parsed.transform) {\n for (const k in t) {\n if (symbols[t[k]]) {\n t[k] = symbols[t[k]]\n }\n }\n }\n return parsed\n }\n\n if (name === 'background') {\n value = value.toString().trim()\n if (\n /^(linear-gradient|radial-gradient|url|repeating-linear-gradient)\\(/.test(\n value\n )\n ) {\n return getStylesForProperty('backgroundImage', value, true)\n }\n return getStylesForProperty('background', value, true)\n }\n\n if (name === 'textShadow') {\n // Handle multiple text shadows if provided.\n value = value.toString().trim()\n const result = {}\n\n const shadows = splitEffects(value)\n\n for (const shadow of shadows) {\n const styles = getStylesForProperty('textShadow', shadow, true)\n for (const k in styles) {\n if (!result[k]) {\n result[k] = [styles[k]]\n } else {\n result[k].push(styles[k])\n }\n }\n }\n\n return result\n }\n\n if (name === 'WebkitTextStroke') {\n value = value.toString().trim()\n const values = value.split(' ')\n if (values.length !== 2) {\n throw new Error('Invalid `WebkitTextStroke` value.')\n }\n\n return {\n WebkitTextStrokeWidth: purify(name, values[0]),\n WebkitTextStrokeColor: purify(name, values[1]),\n }\n }\n\n return\n}\n\nfunction getErrorHint(name: string) {\n if (name === 'transform') {\n return ' Only absolute lengths such as `10px` are supported.'\n }\n return ''\n}\n\nconst RGB_SLASH = /rgb\\((\\d+)\\s+(\\d+)\\s+(\\d+)\\s*\\/\\s*([\\.\\d]+)\\)/\nfunction normalizeColor(value: string | object) {\n if (typeof value === 'string') {\n if (RGB_SLASH.test(value.trim())) {\n // rgb(255 122 127 / .2) -> rgba(255, 122, 127, .2)\n return value.trim().replace(RGB_SLASH, (_, r, g, b, a) => {\n return `rgba(${r}, ${g}, ${b}, ${a})`\n })\n }\n }\n\n // Recursively normalize colors in arrays and objects.\n if (typeof value === 'object' && value !== null) {\n for (const k in value) {\n value[k] = normalizeColor(value[k])\n }\n return value\n }\n\n return value\n}\n\ntype MainStyle = {\n color: string\n fontSize: number\n transformOrigin: ParsedTransformOrigin\n maskImage: MaskProperty[]\n opacity: number\n textTransform: string\n whiteSpace: string\n wordBreak: string\n textAlign: string\n lineHeight: number | string\n letterSpacing: number\n\n fontFamily: string | string[]\n fontWeight: FontWeight\n fontStyle: FontStyle\n\n borderTopWidth: number\n borderLeftWidth: number\n borderRightWidth: number\n borderBottomWidth: number\n\n paddingTop: number\n paddingLeft: number\n paddingRight: number\n paddingBottom: number\n\n flexGrow: number\n flexShrink: number\n\n gap: number\n rowGap: number\n columnGap: number\n\n textShadowOffset: {\n width: number\n height: number\n }[]\n textShadowColor: string[]\n textShadowRadius: number[]\n WebkitTextStrokeWidth: number\n WebkitTextStrokeColor: string\n}\n\ntype OtherStyle = Exclude, keyof MainStyle>\n\nexport type SerializedStyle = Partial\n\nexport default function expand(\n style: Record | undefined,\n inheritedStyle: SerializedStyle\n): SerializedStyle {\n const serializedStyle: SerializedStyle = {}\n\n if (style) {\n const currentColor = getCurrentColor(\n style.color as string,\n inheritedStyle.color\n )\n\n serializedStyle.color = currentColor\n\n for (const prop in style) {\n // Internal properties.\n if (prop.startsWith('_')) {\n serializedStyle[prop] = style[prop]\n continue\n }\n\n if (prop === 'color') {\n continue\n }\n\n const name = getPropertyName(prop)\n const value = preprocess(style[prop], currentColor)\n\n try {\n const resolvedStyle =\n handleSpecialCase(name, value, currentColor) ||\n handleFallbackColor(\n name,\n getStylesForProperty(name, purify(name, value), true),\n value as string,\n currentColor\n )\n\n Object.assign(serializedStyle, resolvedStyle)\n } catch (err) {\n throw new Error(\n err.message +\n // Attach the extra information of the rule itself if it's not included in\n // the error message.\n (err.message.includes(value)\n ? '\\n ' + getErrorHint(name)\n : `\\n in CSS rule \\`${name}: ${value}\\`.${getErrorHint(name)}`)\n )\n }\n }\n }\n\n // Parse background images.\n if (serializedStyle.backgroundImage) {\n const { backgrounds } = parseElementStyle(serializedStyle)\n serializedStyle.backgroundImage = backgrounds\n }\n\n if (serializedStyle.maskImage || serializedStyle['WebkitMaskImage']) {\n serializedStyle.maskImage = parseMask(serializedStyle)\n }\n\n // Calculate the base font size.\n const baseFontSize = calcBaseFontSize(\n serializedStyle.fontSize,\n inheritedStyle.fontSize\n )\n if (typeof serializedStyle.fontSize !== 'undefined') {\n serializedStyle.fontSize = baseFontSize\n }\n\n if (serializedStyle.transformOrigin) {\n serializedStyle.transformOrigin = parseTransformOrigin(\n serializedStyle.transformOrigin as any,\n baseFontSize\n )\n }\n\n for (const prop in serializedStyle) {\n let value = serializedStyle[prop]\n\n // Line height needs to be relative.\n if (prop === 'lineHeight') {\n if (typeof value === 'string' && value !== 'normal') {\n value = serializedStyle[prop] =\n lengthToNumber(\n value,\n baseFontSize,\n baseFontSize,\n inheritedStyle,\n true\n ) / baseFontSize\n }\n } else {\n // Convert em and rem values to px (number).\n if (typeof value === 'string') {\n const len = lengthToNumber(\n value,\n baseFontSize,\n baseFontSize,\n inheritedStyle\n )\n if (typeof len !== 'undefined') serializedStyle[prop] = len\n value = serializedStyle[prop]\n }\n\n if (typeof value === 'string' || typeof value === 'object') {\n const color = normalizeColor(value)\n if (color) {\n serializedStyle[prop] = color as any\n }\n value = serializedStyle[prop]\n }\n }\n\n // Inherit the opacity.\n if (prop === 'opacity' && typeof value === 'number') {\n serializedStyle.opacity = value * inheritedStyle.opacity\n }\n\n if (prop === 'transform') {\n const transforms = value as any as { [type: string]: number | string }[]\n\n for (const transform of transforms) {\n const type = Object.keys(transform)[0]\n const _v = transform[type]\n\n // Convert em, rem, vw, vh values to px (number), but keep % values.\n const len =\n typeof _v === 'string'\n ? lengthToNumber(_v, baseFontSize, baseFontSize, inheritedStyle) ??\n _v\n : _v\n transform[type] = len\n }\n }\n\n if (prop === 'textShadowRadius') {\n const textShadowRadius = value as unknown as Array\n\n serializedStyle.textShadowRadius = textShadowRadius.map((_v) =>\n lengthToNumber(_v, baseFontSize, 0, inheritedStyle, false)\n )\n }\n\n if (prop === 'textShadowOffset') {\n const textShadowOffset = value as unknown as Array<{\n width: number | string\n height: number | string\n }>\n\n serializedStyle.textShadowOffset = textShadowOffset.map(\n ({ height, width }) => ({\n height: lengthToNumber(\n height,\n baseFontSize,\n 0,\n inheritedStyle,\n false\n ),\n width: lengthToNumber(width, baseFontSize, 0, inheritedStyle, false),\n })\n )\n }\n }\n\n return serializedStyle\n}\n\nfunction calcBaseFontSize(\n size: number | string,\n inheritedSize: number\n): number {\n if (typeof size === 'number') return size\n\n try {\n const parsed = new CssDimension(size)\n switch (parsed.unit) {\n case 'em':\n return parsed.value * inheritedSize\n case 'rem':\n return parsed.value * 16\n }\n } catch (err) {\n return inheritedSize\n }\n}\n\n/**\n * @see https://github.com/RazrFalcon/resvg/issues/579\n */\nfunction refineHSL(color: string) {\n if (color.startsWith('hsl')) {\n const t = cssColorParse(color)\n const [h, s, l] = t.values\n\n return `hsl(${[h, `${s}%`, `${l}%`]\n .concat(t.alpha === 1 ? [] : [t.alpha])\n .join(',')})`\n }\n\n return color\n}\n\nfunction getCurrentColor(\n color: string | undefined,\n inheritedColor: string\n): string {\n if (color && color.toLowerCase() !== 'currentcolor') {\n return refineHSL(color)\n }\n\n return refineHSL(inheritedColor)\n}\n\nfunction convertCurrentColorToActualValue(\n value: string,\n currentColor: string\n): string {\n return value.replace(/currentcolor/gi, currentColor)\n}\n\nfunction preprocess(\n value: string | number,\n currentColor: string\n): string | number {\n if (isString(value)) {\n value = convertCurrentColorToActualValue(value, currentColor)\n }\n\n return value\n}\n","import colorName from 'color-name';\nimport hex2Rgb from 'hex-rgb';\n\nconst pattern = /^#([a-f0-9]{3,4}|[a-f0-9]{4}(?:[a-f0-9]{2}){1,2})\\b$/;\nvar hexRe = new RegExp(pattern, 'i');\n\nconst float = '-?\\\\d*(?:\\\\.\\\\d+)';\n\nconst number = `(${float}?)`;\nconst percentage = `(${float}?%)`;\nconst numberOrPercentage = `(${float}?%?)`;\n\nconst pattern$1 = `^\n hsla?\\\\(\n \\\\s*(-?\\\\d*(?:\\\\.\\\\d+)?(?:deg|rad|turn)?)\\\\s*,\n \\\\s*${percentage}\\\\s*,\n \\\\s*${percentage}\\\\s*\n (?:,\\\\s*${numberOrPercentage}\\\\s*)?\n \\\\)\n $\n`.replace(/\\n|\\s/g, '');\n\nvar hsl3Re = new RegExp(pattern$1);\n\nconst pattern$2 = `^\n hsla?\\\\(\n \\\\s*(-?\\\\d*(?:\\\\.\\\\d+)?(?:deg|rad|turn)?)\\\\s*\n \\\\s+${percentage}\n \\\\s+${percentage}\n \\\\s*(?:\\\\s*\\\\/\\\\s*${numberOrPercentage}\\\\s*)?\n \\\\)\n $\n`.replace(/\\n|\\s/g, '');\n\nvar hsl4Re = new RegExp(pattern$2);\n\nconst pattern$3 = `^\n rgba?\\\\(\n \\\\s*${number}\\\\s*,\n \\\\s*${number}\\\\s*,\n \\\\s*${number}\\\\s*\n (?:,\\\\s*${numberOrPercentage}\\\\s*)?\n \\\\)\n $\n`.replace(/\\n|\\s/g, '');\n\nvar rgb3NumberRe = new RegExp(pattern$3);\n\nconst pattern$4 = `^\n rgba?\\\\(\n \\\\s*${percentage}\\\\s*,\n \\\\s*${percentage}\\\\s*,\n \\\\s*${percentage}\\\\s*\n (?:,\\\\s*${numberOrPercentage}\\\\s*)?\n \\\\)\n $\n`.replace(/\\n|\\s/g, '');\n\nvar rgb3PercentageRe = new RegExp(pattern$4);\n\nconst pattern$5 = `^\n rgba?\\\\(\n \\\\s*${number}\n \\\\s+${number}\n \\\\s+${number}\n \\\\s*(?:\\\\s*\\\\/\\\\s*${numberOrPercentage}\\\\s*)?\n \\\\)\n$\n`.replace(/\\n|\\s/g, '');\n\nvar rgb4NumberRe = new RegExp(pattern$5);\n\nconst pattern$6 = `^\n rgba?\\\\(\n \\\\s*${percentage}\n \\\\s+${percentage}\n \\\\s+${percentage}\n \\\\s*(?:\\\\s*\\\\/\\\\s*${numberOrPercentage}\\\\s*)?\n \\\\)\n$\n`.replace(/\\n|\\s/g, '');\n\nvar rgb4PercentageRe = new RegExp(pattern$6);\n\nconst pattern$7 = /^transparent$/;\nvar transparentRe = new RegExp(pattern$7, 'i');\n\nconst clamp = (num, min, max) => Math.min(Math.max(min, num), max);\n\n/* 500 => 255, -10 => 0, 128 => 128 */\nconst parseRGB = (num) => {\n let n = num;\n if (typeof n !== 'number') n = n.endsWith('%') ? (parseFloat(n) * 255) / 100 : parseFloat(n);\n return clamp(Math.round(n), 0, 255);\n};\n\n/* 200 => 100, -100 => 0, 50 => 50 */\nconst parsePercentage = (percentage) => clamp(parseFloat(percentage), 0, 100);\n\n/* '50%' => 5.0, 200 => 1, -10 => 0 */\nfunction parseAlpha(alpha) {\n let a = alpha;\n if (typeof a !== 'number') a = a.endsWith('%') ? parseFloat(a) / 100 : parseFloat(a);\n return clamp(a, 0, 1);\n}\n\nfunction getHEX(hex) {\n const [r, g, b, a] = hex2Rgb(hex, { format: 'array' });\n return getRGB([null, ...[r, g, b, a]]);\n}\n\nfunction getHSL([, h, s, l, a = 1]) {\n let hh = h;\n if (hh.endsWith('turn')) {\n hh = (parseFloat(hh) * 360) / 1;\n } else if (hh.endsWith('rad')) {\n hh = Math.round((parseFloat(hh) * 180) / Math.PI);\n } else {\n hh = parseFloat(hh);\n }\n return {\n type: 'hsl',\n values: [hh, parsePercentage(s), parsePercentage(l)],\n alpha: parseAlpha(a === null ? 1 : a)\n };\n}\n\nfunction getRGB([, r, g, b, a = 1]) {\n return {\n type: 'rgb',\n values: [r, g, b].map(parseRGB),\n alpha: parseAlpha(a === null ? 1 : a)\n };\n}\n\n/**\n * parse-css-color\n * @version v0.2.1\n * @link http://github.com/noeldelgado/parse-css-color/\n * @license MIT\n */\n\nconst parseCSSColor = (str) => {\n if (typeof str !== 'string') return null;\n\n const hex = hexRe.exec(str);\n if (hex) return getHEX(hex[0]);\n\n const hsl = hsl4Re.exec(str) || hsl3Re.exec(str);\n if (hsl) return getHSL(hsl);\n\n const rgb =\n rgb4NumberRe.exec(str) ||\n rgb4PercentageRe.exec(str) ||\n rgb3NumberRe.exec(str) ||\n rgb3PercentageRe.exec(str);\n if (rgb) return getRGB(rgb);\n\n if (transparentRe.exec(str)) return getRGB([null, 0, 0, 0, 0]);\n\n const cn = colorName[str.toLowerCase()];\n if (cn) return getRGB([null, cn[0], cn[1], cn[2], 1]);\n\n return null;\n};\n\nexport default parseCSSColor;\n","import valueParser from 'postcss-value-parser'\n\nimport CssDimension from './vendor/parse-css-dimension/index.js'\n\n/**\n * If key for each direction is missing, assume default (50%)\n */\nexport interface ParsedTransformOrigin {\n /** Relative horizontal transform origin in % */\n xRelative?: number\n /** Relative vertical transform origin in % */\n yRelative?: number\n /** Absolute horizontal transform origin in pixels */\n xAbsolute?: number\n /** Absolute horizontal transform origin in pixels */\n yAbsolute?: number\n}\n\ninterface ParsedUnit {\n /** Relative unit in % */\n relative?: number\n /** Absolute unit in pixels */\n absolute?: number\n}\n\nfunction parseUnit(word: string, baseFontSize: number): ParsedUnit {\n try {\n const parsed = new CssDimension(word)\n switch (parsed.unit) {\n case 'px':\n return { absolute: parsed.value }\n case 'em':\n return { absolute: parsed.value * baseFontSize }\n case 'rem':\n return { absolute: parsed.value * 16 }\n case '%':\n return { relative: parsed.value }\n default:\n return {}\n }\n } catch (e) {\n return {}\n }\n}\n\nfunction handleWord(\n word: string,\n baseFontSize: number,\n unitIsHorizontal: boolean\n) {\n switch (word) {\n case 'top':\n return { yRelative: 0 }\n case 'left':\n return { xRelative: 0 }\n case 'right':\n return { xRelative: 100 }\n case 'bottom':\n return { yRelative: 100 }\n case 'center':\n return {}\n default: {\n const parsedUnit = parseUnit(word, baseFontSize)\n return parsedUnit.absolute\n ? {\n [unitIsHorizontal ? 'xAbsolute' : 'yAbsolute']: parsedUnit.absolute,\n }\n : parsedUnit.relative\n ? {\n [unitIsHorizontal ? 'xRelative' : 'yRelative']: parsedUnit.relative,\n }\n : {}\n }\n }\n}\n\nexport default function parseTransformOrigin(\n value: string | number,\n baseFontSize: number\n): ParsedTransformOrigin {\n // If it's a single value and a number, then it's horizontal\n if (typeof value === 'number') {\n return { xAbsolute: value }\n }\n let words: string[]\n try {\n words = valueParser(value)\n .nodes.filter((node) => node.type === 'word')\n .map((node) => node.value)\n } catch (e) {\n return {}\n }\n\n if (words.length === 1) {\n // If it's a single value and a number, then it's horizontal, so\n // pass `true` to `unitIsHorizontal`\n return handleWord(words[0], baseFontSize, true)\n } else if (words.length === 2) {\n // Make words to be [horizontal, vertical]\n if (\n words[0] === 'top' ||\n words[0] === 'bottom' ||\n words[1] === 'left' ||\n words[1] === 'right'\n ) {\n words.reverse()\n }\n\n return {\n ...handleWord(words[0], baseFontSize, true),\n ...handleWord(words[1], baseFontSize, false),\n }\n } else {\n return {}\n }\n}\n","import { getPropertyName } from 'css-to-react-native'\nimport { splitEffects } from '../utils.js'\n\nfunction getMaskProperty(style: Record, name: string) {\n const key = getPropertyName(`mask-${name}`)\n return (style[key] || style[`WebkitM${key.substring(1)}`]) as string\n}\n\nexport interface MaskProperty {\n image: string\n position: string\n size: string\n repeat: string\n origin: string\n clip: string\n}\n\nexport function parseMask(\n style: Record\n): MaskProperty[] {\n const maskImage = (style.maskImage || style.WebkitMaskImage) as string\n\n const common = {\n position: getMaskProperty(style, 'position') || '0% 0%',\n size: getMaskProperty(style, 'size') || '100% 100%',\n repeat: getMaskProperty(style, 'repeat') || 'repeat',\n origin: getMaskProperty(style, 'origin') || 'border-box',\n clip: getMaskProperty(style, 'origin') || 'border-box',\n }\n\n let maskImages = splitEffects(maskImage).filter((v) => v && v !== 'none')\n\n return maskImages.reverse().map((m) => ({\n image: m,\n ...common,\n }))\n}\n","import escapeHTML from 'escape-html'\nimport type { ParsedTransformOrigin } from '../transform-origin.js'\nimport transform from './transform.js'\nimport { buildXMLString } from '../utils.js'\n\nexport function container(\n {\n left,\n top,\n width,\n height,\n isInheritingTransform,\n }: {\n left: number\n top: number\n width: number\n height: number\n isInheritingTransform: boolean\n },\n style: Record\n) {\n let matrix = ''\n let opacity = 1\n\n if (style.transform) {\n matrix = transform(\n {\n left,\n top,\n width,\n height,\n },\n style.transform as unknown as number[],\n isInheritingTransform,\n style.transformOrigin as ParsedTransformOrigin | undefined\n )\n }\n\n if (style.opacity !== undefined) {\n opacity = +style.opacity\n }\n\n return { matrix, opacity }\n}\n\nexport default function buildText(\n {\n id,\n content,\n filter,\n left,\n top,\n width,\n height,\n matrix,\n opacity,\n image,\n clipPathId,\n debug,\n shape,\n decorationShape,\n }: {\n content: string\n filter: string\n id: string\n left: number\n top: number\n width: number\n height: number\n matrix: string\n opacity: number\n image: string | null\n clipPathId?: string\n debug?: boolean\n shape?: boolean\n decorationShape?: string\n },\n style: Record\n) {\n let extra = ''\n if (debug) {\n extra = buildXMLString('rect', {\n x: left,\n y: top - height,\n width,\n height,\n fill: 'transparent',\n stroke: '#575eff',\n 'stroke-width': 1,\n transform: matrix || undefined,\n 'clip-path': clipPathId ? `url(#${clipPathId})` : undefined,\n })\n }\n\n // This grapheme should be rendered as an image.\n if (image) {\n const shapeProps = {\n href: image,\n x: left,\n y: top,\n width,\n height,\n transform: matrix || undefined,\n 'clip-path': clipPathId ? `url(#${clipPathId})` : undefined,\n style: style.filter ? `filter:${style.filter}` : undefined,\n }\n return [\n (filter ? `${filter}` : '') +\n buildXMLString('image', {\n ...shapeProps,\n opacity: opacity !== 1 ? opacity : undefined,\n }) +\n (decorationShape || '') +\n (filter ? '' : '') +\n extra,\n // SVG doesn't support `` as the shape.\n '',\n ]\n }\n\n // Do not embed the font, use with the raw content instead.\n const shapeProps = {\n x: left,\n y: top,\n width,\n height,\n 'font-weight': style.fontWeight,\n 'font-style': style.fontStyle,\n 'font-size': style.fontSize,\n 'font-family': style.fontFamily,\n 'letter-spacing': style.letterSpacing || undefined,\n transform: matrix || undefined,\n 'clip-path': clipPathId ? `url(#${clipPathId})` : undefined,\n style: style.filter ? `filter:${style.filter}` : undefined,\n 'stroke-width': style.WebkitTextStrokeWidth\n ? `${style.WebkitTextStrokeWidth}px`\n : undefined,\n stroke: style.WebkitTextStrokeWidth\n ? style.WebkitTextStrokeColor\n : undefined,\n 'stroke-linejoin': style.WebkitTextStrokeWidth ? 'round' : undefined,\n 'paint-order': style.WebkitTextStrokeWidth ? 'stroke' : undefined,\n }\n return [\n (filter ? `${filter}` : '') +\n buildXMLString(\n 'text',\n {\n ...shapeProps,\n fill: style.color,\n opacity: opacity !== 1 ? opacity : undefined,\n },\n escapeHTML(content)\n ) +\n (decorationShape || '') +\n (filter ? '' : '') +\n extra,\n shape ? buildXMLString('text', shapeProps, escapeHTML(content)) : '',\n ]\n}\n","import { ColorStop } from \"./type.js\"\n\nexport function split(\n input: string,\n separator: string | RegExp = ','\n): string[] {\n const result = []\n let l = 0\n let parenCount = 0\n separator = new RegExp(separator)\n\n for (let i = 0; i < input.length; i++) {\n if (input[i] === '(') {\n parenCount++\n } else if (input[i] === ')') {\n parenCount--\n }\n\n if (parenCount === 0 && separator.test(input[i])) {\n result.push(input.slice(l, i).trim())\n l = i + 1\n }\n }\n\n result.push(input.slice(l).trim())\n\n return result\n}\n\nexport function resolveStops(v: string[]): ColorStop[] {\n const stops: ColorStop[] = []\n\n for (let i = 0, n = v.length; i < n;) {\n const [color, offset] = split(v[i], /\\s+/)\n\n if (isHint(v[i + 1])) {\n stops.push({\n color,\n offset: resolveLength(offset),\n hint: resolveLength(v[i + 1])\n })\n i += 2\n } else {\n stops.push({\n color,\n offset: resolveLength(offset)\n })\n i++\n }\n }\n\n return stops\n}\n\nconst REGEX = /^(-?\\d+\\.?\\d*)(%|vw|vh|px|em|rem|deg|rad|grad|turn)$/\n\nfunction isHint(v: string) {\n return REGEX.test(v)\n}\n\nexport function resolveLength(v?: string) {\n if (!v) return undefined\n\n const [, value, unit] = v.trim().match(REGEX) || []\n\n return { value, unit }\n}","import { split, resolveStops,resolveLength } from \"./utils.js\"\nimport { ColorStop } from './type.js'\n\ntype LinearOrientation = {\n type: 'directional'\n value: string\n} | {\n type: 'angular'\n value: { unit: string; value: string }\n}\n\nexport interface LinearResult {\n orientation: LinearOrientation\n repeating: boolean\n stops: ColorStop[]\n}\n\nexport function parseLinearGradient(input: string): LinearResult {\n if (!/^(repeating-)?linear-gradient/.test(input)) throw new SyntaxError(`could not find syntax for this item: ${input}`)\n\n let [, repeating, props] = input.match(/(repeating-)?linear-gradient\\((.+)\\)/)\n const result: LinearResult = {\n orientation: { type: 'directional', value: 'bottom' },\n repeating: Boolean(repeating),\n stops: []\n }\n\n const properties: string[] = split(props)\n const orientation = resolveLinearOrientation(properties[0])\n if (orientation) {\n result.orientation = orientation\n properties.shift()\n }\n\n return { ...result, stops: resolveStops(properties) }\n}\n\nfunction resolveLinearOrientation(angle: string): LinearOrientation {\n if (angle.startsWith('to ')) {\n return {\n type: 'directional',\n value: angle.replace('to ', '')\n }\n }\n\n if (['turn', 'deg', 'grad', 'rad'].some(unit => angle.endsWith(unit))) {\n return {\n type: 'angular',\n value: resolveLength(angle)\n }\n }\n\n return null\n}","import { resolveStops, split, resolveLength } from './utils.js'\nimport { ColorStop } from './type.js'\n\nexport type RgExtentKeyword = 'closest-corner' | 'closest-side' | 'farthest-corner' | 'farthest-side'\n\nexport type RadialPropertyValue = {\n type: 'keyword'\n value: string\n} | {\n type: 'length'\n value: { unit: string; value: string }\n}\n\nexport interface RadialResult {\n shape: 'circle' | 'ellipse'\n repeating: boolean\n size: RadialPropertyValue[]\n position: {\n x: RadialPropertyValue\n y: RadialPropertyValue\n }\n stops: ColorStop[]\n}\n\nconst rgExtentKeyword = new Set([\n 'closest-corner',\n 'closest-side',\n 'farthest-corner',\n 'farthest-side'\n])\n\ntype PositionKeyWord = 'center' | 'left' | 'right' | 'top' | 'bottom'\n\nconst positionKeyword = new Set([\n 'center',\n 'left',\n 'top',\n 'right',\n 'bottom'\n])\n\n//eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction isRgExtentKeyword(v: any): v is RgExtentKeyword {\n return rgExtentKeyword.has(v)\n}\n\n//eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction isPositionKeyWord(v: any): v is PositionKeyWord {\n return positionKeyword.has(v)\n}\n\nfunction extendPosition(v: string[]) {\n const res = Array(2).fill('')\n for (let i = 0; i < 2; i++) {\n if (!v[i]) res[i] = 'center'\n else res[i] = v[i]\n }\n\n return res\n}\n\nexport function parseRadialGradient(input: string): RadialResult {\n if (!/(repeating-)?radial-gradient/.test(input)) throw new SyntaxError(`could not find syntax for this item: ${input}`)\n \n const [, repeating, props] = input.match(/(repeating-)?radial-gradient\\((.+)\\)/)\n const result: RadialResult = {\n shape: 'ellipse',\n repeating: Boolean(repeating),\n size: [{\n type: 'keyword',\n value: 'farthest-corner'\n }],\n position: {\n x: { type: 'keyword', value: 'center' },\n y: { type: 'keyword', value: 'center' }\n },\n stops: []\n }\n\n const properties = split(props)\n // handle like radial-gradient(rgba(0,0,0,0), #ee7621)\n if (isColor(properties[0])) {\n return { ...result, stops: resolveStops(properties) }\n }\n\n const prefix = properties[0].split('at').map(v => v.trim())\n\n const shape = ((prefix[0] || '').match(/(circle|ellipse)/) || [])[1]\n const size: string[] = (prefix[0] || '').match(/(-?\\d+\\.?\\d*(vw|vh|px|em|rem|%|rad|grad|turn|deg)?|closest-corner|closest-side|farthest-corner|farthest-side)/g) || []\n const position = extendPosition((prefix[1] || '').split(' '))\n\n if (!shape) {\n if (size.length === 1 && !isRgExtentKeyword(size[0])) {\n result.shape = 'circle'\n } else {\n result.shape = 'ellipse'\n }\n } else {\n result.shape = shape as RadialResult['shape']\n }\n\n if (size.length === 0) {\n size.push('farthest-corner')\n }\n\n result.size = size.map(v => {\n if (isRgExtentKeyword(v)) {\n return { type: 'keyword', value: v }\n } else {\n return { type: 'length', value: resolveLength(v) }\n }\n })\n\n result.position.x = isPositionKeyWord(position[0])\n ? { type: 'keyword', value: position[0] }\n : { type: 'length', value: resolveLength(position[0]) }\n\n result.position.y = isPositionKeyWord(position[1])\n ? { type: 'keyword', value: position[1] }\n : { type: 'length', value: resolveLength(position[1]) }\n\n if (shape || size.length > 0 || prefix[1]) properties.shift()\n\n return {\n ...result,\n stops: resolveStops(properties)\n }\n}\n\nfunction isColor(v: string) {\n if (/(circle|ellipse|at)/.test(v)) return false\n return /^(rgba?|hwb|hsl|lab|lch|oklab|color|#|[a-zA-Z]+)/.test(v)\n}","import { lengthToNumber } from '../utils.js'\nimport { default as buildBorderRadius } from '../builder/border-radius.js'\nimport { getStylesForProperty } from 'css-to-react-native'\n\nconst regexMap = {\n circle: /circle\\((.+)\\)/,\n ellipse: /ellipse\\((.+)\\)/,\n path: /path\\((.+)\\)/,\n polygon: /polygon\\((.+)\\)/,\n inset: /inset\\((.+)\\)/,\n}\n\nexport function createShapeParser(\n {\n width,\n height,\n }: {\n width: number\n height: number\n },\n style: Record,\n inheritedStyle: Record\n) {\n function parseCircle(str: string) {\n const res = str.match(regexMap['circle'])\n\n if (!res) return null\n\n const [, value] = res\n const [radius, pos = ''] = value.split('at').map((v) => v.trim())\n const { x, y } = resolvePosition(pos, width, height)\n\n return {\n type: 'circle',\n r: lengthToNumber(\n radius,\n inheritedStyle.fontSize as number,\n Math.sqrt(Math.pow(width, 2) + Math.pow(height, 2)) / Math.sqrt(2),\n inheritedStyle,\n true\n ),\n cx: lengthToNumber(\n x,\n inheritedStyle.fontSize as number,\n width,\n inheritedStyle,\n true\n ),\n cy: lengthToNumber(\n y,\n inheritedStyle.fontSize as number,\n height,\n inheritedStyle,\n true\n ),\n }\n }\n function parseEllipse(str: string) {\n const res = str.match(regexMap['ellipse'])\n\n if (!res) return null\n\n const [, value] = res\n const [radius, pos = ''] = value.split('at').map((v) => v.trim())\n const [rx, ry] = radius.split(' ')\n const { x, y } = resolvePosition(pos, width, height)\n\n return {\n type: 'ellipse',\n rx: lengthToNumber(\n rx || '50%',\n inheritedStyle.fontSize as number,\n width,\n inheritedStyle,\n true\n ),\n ry: lengthToNumber(\n ry || '50%',\n inheritedStyle.fontSize as number,\n height,\n inheritedStyle,\n true\n ),\n cx: lengthToNumber(\n x,\n inheritedStyle.fontSize as number,\n width,\n inheritedStyle,\n true\n ),\n cy: lengthToNumber(\n y,\n inheritedStyle.fontSize as number,\n height,\n inheritedStyle,\n true\n ),\n }\n }\n function parsePath(str: string) {\n const res = str.match(regexMap['path'])\n\n if (!res) return null\n\n const [fillRule, d] = resolveFillRule(res[1])\n\n return {\n type: 'path',\n d,\n 'fill-rule': fillRule,\n }\n }\n function parsePolygon(str: string) {\n const res = str.match(regexMap['polygon'])\n\n if (!res) return null\n\n const [fillRule, points] = resolveFillRule(res[1])\n\n return {\n type: 'polygon',\n 'fill-rule': fillRule,\n points: points\n .split(',')\n .map((v) =>\n v\n .split(' ')\n .map((k, i) =>\n lengthToNumber(\n k,\n inheritedStyle.fontSize as number,\n i === 0 ? width : height,\n inheritedStyle,\n true\n )\n )\n .join(' ')\n )\n .join(','),\n }\n }\n function parseInset(str: string) {\n const res = str.match(regexMap['inset'])\n\n if (!res) return null\n\n const [inset, radius] = (\n res[1].includes('round') ? res[1] : `${res[1].trim()} round 0`\n ).split('round')\n const radiusMap = getStylesForProperty('borderRadius', radius, true)\n const r = Object.values(radiusMap)\n .map((s) => String(s))\n .map(\n (s, i) =>\n lengthToNumber(\n s,\n inheritedStyle.fontSize as number,\n i === 0 || i === 2 ? height : width,\n inheritedStyle,\n true\n ) || 0\n )\n const offsets = Object.values(getStylesForProperty('margin', inset, true))\n .map((s) => String(s))\n .map(\n (s, i) =>\n lengthToNumber(\n s,\n inheritedStyle.fontSize as number,\n i === 0 || i === 2 ? height : width,\n inheritedStyle,\n true\n ) || 0\n )\n const x = offsets[3]\n const y = offsets[0]\n const w = width - (offsets[1] + offsets[3])\n const h = height - (offsets[0] + offsets[2])\n\n if (r.some((v) => v > 0)) {\n const d = buildBorderRadius(\n { left: x, top: y, width: w, height: h },\n { ...style, ...radiusMap }\n )\n\n return { type: 'path', d }\n }\n\n return {\n type: 'rect',\n x,\n y,\n width: w,\n height: h,\n }\n }\n\n return {\n parseCircle,\n parseEllipse,\n parsePath,\n parsePolygon,\n parseInset,\n }\n}\n\nfunction resolveFillRule(str: string) {\n const [, fillRule = 'nonzero', d] =\n str.replace(/('|\")/g, '').match(/^(nonzero|evenodd)?,?(.+)/) || []\n\n return [fillRule, d]\n}\n\nfunction resolvePosition(position: string, xDelta: number, yDelta: number) {\n const pos = position.split(' ')\n const res: { x: number | string; y: number | string } = {\n x: pos[0] || '50%',\n y: pos[1] || '50%',\n }\n\n pos.forEach((v) => {\n if (v === 'top') {\n res.y = 0\n } else if (v === 'bottom') {\n res.y = yDelta\n } else if (v === 'left') {\n res.x = 0\n } else if (v === 'right') {\n res.x = xDelta\n } else if (v === 'center') {\n res.x = xDelta / 2\n res.y = yDelta / 2\n } else {\n // do nothing\n }\n })\n\n return res\n}\n","// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Some of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// However, the vast majority of the codebase has diverged from UZIP.js to increase performance and reduce bundle size.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\nvar ch2 = {};\nvar wk = (function (c, id, msg, transfer, cb) {\n var w = new Worker(ch2[id] || (ch2[id] = URL.createObjectURL(new Blob([\n c + ';addEventListener(\"error\",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})'\n ], { type: 'text/javascript' }))));\n w.onmessage = function (e) {\n var d = e.data, ed = d.$e$;\n if (ed) {\n var err = new Error(ed[0]);\n err['code'] = ed[1];\n err.stack = ed[2];\n cb(err, null);\n }\n else\n cb(null, d);\n };\n w.postMessage(msg, transfer);\n return w;\n});\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, u32 = Uint32Array;\n// fixed length extra bits\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\n// see fleb note\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n var r = new u32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return [b, r];\n};\nvar _a = freb(fleb, 2), fl = _a[0], revfl = _a[1];\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b[0], revfd = _b[1];\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = ((i & 0xAAAA) >>> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >>> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >>> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >>> 8) | ((x & 0x00FF) << 8)) >>> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n var s = cd.length;\n // index\n var i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n var l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i) {\n if (cd[i])\n ++l[cd[i] - 1];\n }\n // u16 \"map\": index -> minimum code for bit length = index\n var le = new u16(mb);\n for (i = 0; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n var co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = (i << 4) | cd[i];\n // free bits\n var r_1 = mb - cd[i];\n // start value\n var v = le[cd[i] - 1]++ << r_1;\n // m is end value\n for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >>> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i) {\n if (cd[i]) {\n co[i] = rev[le[cd[i] - 1]++] >>> (15 - cd[i]);\n }\n }\n }\n return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8)) >> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p + 7) / 8) | 0; };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n var n = new (v.BYTES_PER_ELEMENT == 2 ? u16 : v.BYTES_PER_ELEMENT == 4 ? u32 : u8)(e - s);\n n.set(v.subarray(s, e));\n return n;\n};\n/**\n * Codes for errors generated within this library\n */\nexport var FlateErrorCode = {\n UnexpectedEOF: 0,\n InvalidBlockType: 1,\n InvalidLengthLiteral: 2,\n InvalidDistance: 3,\n StreamFinished: 4,\n NoStreamHandler: 5,\n InvalidHeader: 6,\n NoCallback: 7,\n InvalidUTF8: 8,\n ExtraFieldTooLong: 9,\n InvalidDate: 10,\n FilenameTooLong: 11,\n StreamFinishing: 12,\n InvalidZipData: 13,\n UnknownCompressionMethod: 14\n};\n// error codes\nvar ec = [\n 'unexpected EOF',\n 'invalid block type',\n 'invalid length/literal',\n 'invalid distance',\n 'stream finished',\n 'no stream handler',\n ,\n 'no callback',\n 'invalid UTF-8 data',\n 'extra field too long',\n 'date not in range 1980-2099',\n 'filename too long',\n 'stream finishing',\n 'invalid zip data'\n // determined by unknown compression method\n];\n;\nvar err = function (ind, msg, nt) {\n var e = new Error(msg || ec[ind]);\n e.code = ind;\n if (Error.captureStackTrace)\n Error.captureStackTrace(e, err);\n if (!nt)\n throw e;\n return e;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, buf, st) {\n // source length\n var sl = dat.length;\n if (!sl || (st && st.f && !st.l))\n return buf || new u8(0);\n // have to estimate size\n var noBuf = !buf || st;\n // no state\n var noSt = !st || st.i;\n if (!st)\n st = {};\n // Assumes roughly 33% compression ratio average\n if (!buf)\n buf = new u8(sl * 3);\n // ensure buffer can fit at least l elements\n var cbuf = function (l) {\n var bl = buf.length;\n // need to increase size to fit\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n // last chunk bitpos bytes\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n // total bits\n var tbts = sl * 8;\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n final = bits(dat, pos, 1);\n // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n if (t > sl) {\n if (noSt)\n err(0);\n break;\n }\n // ensure size\n if (noBuf)\n cbuf(bt + l);\n // Copy over uncompressed data\n buf.set(dat.subarray(s, t), bt);\n // Get new bitpos, update byte count\n st.b = bt += l, st.p = pos = t * 8, st.f = final;\n continue;\n }\n else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n // length+distance tree\n var ldt = new u8(tl);\n // code length tree\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n // code lengths bits\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n // code lengths map\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)];\n // bits read\n pos += r & 15;\n // symbol\n var s = r >>> 4;\n // code length to copy\n if (s < 16) {\n ldt[i++] = s;\n }\n else {\n // copy count\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n // length tree distance tree\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n // max length bits\n lbt = max(lt);\n // max dist bits\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n }\n else\n err(1);\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n }\n // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17;\n if (noBuf)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var lpos = pos;\n for (;; lpos = pos) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms], sym = c >>> 4;\n pos += c & 15;\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (!c)\n err(2);\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lpos = pos, lm = null;\n break;\n }\n else {\n var add = sym - 254;\n // no extra bits needed if less\n if (sym > 264) {\n // index\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n // dist\n var d = dm[bits16(dat, pos) & dms], dsym = d >>> 4;\n if (!d)\n err(3);\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & ((1 << b) - 1), pos += b;\n }\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (noBuf)\n cbuf(bt + 131072);\n var end = bt + add;\n for (; bt < end; bt += 4) {\n buf[bt] = buf[bt - dt];\n buf[bt + 1] = buf[bt + 1 - dt];\n buf[bt + 2] = buf[bt + 2 - dt];\n buf[bt + 3] = buf[bt + 3 - dt];\n }\n bt = end;\n }\n }\n st.l = lm, st.p = lpos, st.b = bt, st.f = final;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n return bt == buf.length ? buf : slc(buf, 0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n d[o + 2] |= v >>> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n // Need extra info to make a tree\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return [et, 0];\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return [v, 1];\n }\n t.sort(function (a, b) { return a.f - b.f; });\n // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n // code lengths\n var tr = new u16(maxSym + 1);\n // max bits in tree\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0, dt = 0;\n // left cost\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << (mbt - tr[i2_1]));\n tr[i2_1] = mb;\n }\n else\n break;\n }\n dt >>>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << (mb - tr[i2_2]++ - 1);\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return [new u8(tr), mbt];\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n return n.s == -1\n ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n var s = c.length;\n // Note that the semicolon was intentional\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n // ind num streak\n var cli = 0, cln = c[0], cls = 1;\n var w = function (v) { cl[cli++] = v; };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n cls = 0;\n }\n }\n else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(((cls - 3) << 5) | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return [cl.subarray(0, cli), s];\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >>> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15), dlt = _a[0], mlb = _a[1];\n var _b = hTree(df, 15), ddt = _b[0], mdb = _b[1];\n var _c = lc(dlt), lclt = _c[0], nlc = _c[1];\n var _d = lc(ddt), lcdt = _d[0], ndc = _d[1];\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n lcfreq[lclt[i] & 31]++;\n for (var i = 0; i < lcdt.length; ++i)\n lcfreq[lcdt[i] & 31]++;\n var _e = hTree(lcfreq, 7), lct = _e[0], mlcb = _e[1];\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = (bl + 5) << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + (2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18]);\n if (flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, (clct[i] >>> 5) & 127), p += clct[i] >>> 12;\n }\n }\n }\n else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n if (syms[i] > 255) {\n var len = (syms[i] >>> 18) & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, (syms[i] >>> 23) & 31), p += fleb[len];\n var dst = syms[i] & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, (syms[i] >>> 5) & 8191), p += fdeb[dst];\n }\n else {\n wbits16(out, p, lm[syms[i]]), p += ll[syms[i]];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new u32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, lst) {\n var s = dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7000)) + post);\n // writing to this writes to the output buffer\n var w = o.subarray(pre, o.length - post);\n var pos = 0;\n if (!lvl || s < 8) {\n for (var i = 0; i <= s; i += 65535) {\n // end\n var e = i + 65535;\n if (e >= s) {\n // write final block\n w[pos >> 3] = lst;\n }\n pos = wfblk(w, pos + 1, dat.subarray(i, e));\n }\n }\n else {\n var opt = deo[lvl - 1];\n var n = opt >>> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n // prev 2-byte val map curr 2-byte val map\n var prev = new u16(32768), head = new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n var syms = new u32(25000);\n // length/literal freq distance freq\n var lf = new u16(288), df = new u16(32);\n // l/lcnt exbits index l/lind waitdx bitpos\n var lc_1 = 0, eb = 0, i = 0, li = 0, wi = 0, bs = 0;\n for (; i < s; ++i) {\n // hash value\n // deopt when i > s - 3 - at end, deopt acceptable\n var hv = hsh(i);\n // index mod 32768 previous index mod\n var imod = i & 32767, pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && rem > 423) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n // len dist chain\n var l = 2, d = 0, ch_1 = c, dif = (imod - pimod) & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n // break out early when we reach \"nice\" (we are satisfied enough)\n if (nl > maxn)\n break;\n // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = (i - dif + j + 32768) & 32767;\n var pti = prev[ti];\n var cd = (ti - pti + 32768) & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n // check the previous match\n imod = pimod, pimod = prev[imod];\n dif += (imod - pimod + 32768) & 32767;\n }\n }\n // d will be nonzero only when a match was found\n if (d) {\n // store both dist and len data in one Uint32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n }\n else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n // this is the easiest way to avoid needing to maintain state\n if (!lst && pos & 7)\n pos = wfblk(w, pos + 1, et);\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\n// CRC32 table\nvar crct = /*#__PURE__*/ (function () {\n var t = new Int32Array(256);\n for (var i = 0; i < 256; ++i) {\n var c = i, k = 9;\n while (--k)\n c = ((c & 1) && -306674912) ^ (c >>> 1);\n t[i] = c;\n }\n return t;\n})();\n// CRC32\nvar crc = function () {\n var c = -1;\n return {\n p: function (d) {\n // closures have awful performance\n var cr = c;\n for (var i = 0; i < d.length; ++i)\n cr = crct[(cr & 255) ^ d[i]] ^ (cr >>> 8);\n c = cr;\n },\n d: function () { return ~c; }\n };\n};\n// Alder32\nvar adler = function () {\n var a = 1, b = 0;\n return {\n p: function (d) {\n // closures have awful performance\n var n = a, m = b;\n var l = d.length | 0;\n for (var i = 0; i != l;) {\n var e = Math.min(i + 2655, l);\n for (; i < e; ++i)\n m += n += d[i];\n n = (n & 65535) + 15 * (n >> 16), m = (m & 65535) + 15 * (m >> 16);\n }\n a = n, b = m;\n },\n d: function () {\n a %= 65521, b %= 65521;\n return (a & 255) << 24 | (a >>> 8) << 16 | (b & 255) << 8 | (b >>> 8);\n }\n };\n};\n;\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : (12 + opt.mem), pre, post, !st);\n};\n// Walmart object spread\nvar mrg = function (a, b) {\n var o = {};\n for (var k in a)\n o[k] = a[k];\n for (var k in b)\n o[k] = b[k];\n return o;\n};\n// worker clone\n// This is possibly the craziest part of the entire codebase, despite how simple it may seem.\n// The only parameter to this function is a closure that returns an array of variables outside of the function scope.\n// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization.\n// We will return an object mapping of true variable name to value (basically, the current scope as a JS object).\n// The reason we can't just use the original variable names is minifiers mangling the toplevel scope.\n// This took me three weeks to figure out how to do.\nvar wcln = function (fn, fnStr, td) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/\\s+/g, '').split(',');\n for (var i = 0; i < dt.length; ++i) {\n var v = dt[i], k = ks[i];\n if (typeof v == 'function') {\n fnStr += ';' + k + '=';\n var st_1 = v.toString();\n if (v.prototype) {\n // for global objects\n if (st_1.indexOf('[native code]') != -1) {\n var spInd = st_1.indexOf(' ', 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n }\n else {\n fnStr += st_1;\n for (var t in v.prototype)\n fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n }\n }\n else\n fnStr += st_1;\n }\n else\n td[k] = v;\n }\n return [fnStr, td];\n};\nvar ch = [];\n// clone bufs\nvar cbfs = function (v) {\n var tl = [];\n for (var k in v) {\n if (v[k].buffer) {\n tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n }\n return tl;\n};\n// use a worker to execute code\nvar wrkr = function (fns, init, id, cb) {\n var _a;\n if (!ch[id]) {\n var fnStr = '', td_1 = {}, m = fns.length - 1;\n for (var i = 0; i < m; ++i)\n _a = wcln(fns[i], fnStr, td_1), fnStr = _a[0], td_1 = _a[1];\n ch[id] = wcln(fns[m], fnStr, td_1);\n }\n var td = mrg({}, ch[id][1]);\n return wk(ch[id][0] + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n};\n// base async inflate fn\nvar bInflt = function () { return [u8, u16, u32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, ec, hMap, max, bits, bits16, shft, slc, err, inflt, inflateSync, pbf, gu8]; };\nvar bDflt = function () { return [u8, u16, u32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; };\n// gzip extra\nvar gze = function () { return [gzh, gzhl, wbytes, crc, crct]; };\n// gunzip extra\nvar guze = function () { return [gzs, gzl]; };\n// zlib extra\nvar zle = function () { return [zlh, wbytes, adler]; };\n// unzlib extra\nvar zule = function () { return [zlv]; };\n// post buf\nvar pbf = function (msg) { return postMessage(msg, [msg.buffer]); };\n// get u8\nvar gu8 = function (o) { return o && o.size && new u8(o.size); };\n// async helper\nvar cbify = function (dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function (err, dat) {\n w.terminate();\n cb(err, dat);\n });\n w.postMessage([dat, opts], opts.consume ? [dat.buffer] : []);\n return function () { w.terminate(); };\n};\n// auto stream\nvar astrm = function (strm) {\n strm.ondata = function (dat, final) { return postMessage([dat, final], [dat.buffer]); };\n return function (ev) { return strm.push(ev.data[0], ev.data[1]); };\n};\n// async stream attach\nvar astrmify = function (fns, strm, opts, init, id) {\n var t;\n var w = wrkr(fns, init, id, function (err, dat) {\n if (err)\n w.terminate(), strm.ondata.call(strm, err);\n else {\n if (dat[1])\n w.terminate();\n strm.ondata.call(strm, err, dat[0], dat[1]);\n }\n });\n w.postMessage(opts);\n strm.push = function (d, f) {\n if (!strm.ondata)\n err(5);\n if (t)\n strm.ondata(err(4, 0, 1), null, !!f);\n w.postMessage([d, t = f], [d.buffer]);\n };\n strm.terminate = function () { w.terminate(); };\n};\n// read 2 bytes\nvar b2 = function (d, b) { return d[b] | (d[b + 1] << 8); };\n// read 4 bytes\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16) | (d[b + 3] << 24)) >>> 0; };\nvar b8 = function (d, b) { return b4(d, b) + (b4(d, b + 4) * 4294967296); };\n// write bytes\nvar wbytes = function (d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\n// gzip header\nvar gzh = function (c, o) {\n var fn = o.filename;\n c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n if (o.mtime != 0)\n wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n if (fn) {\n c[3] = 8;\n for (var i = 0; i <= fn.length; ++i)\n c[i + 10] = fn.charCodeAt(i);\n }\n};\n// gzip footer: -8 to -4 = CRC, -4 to -0 is length\n// gzip start\nvar gzs = function (d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n err(6, 'invalid gzip data');\n var flg = d[3];\n var st = 10;\n if (flg & 4)\n st += d[10] | (d[11] << 8) + 2;\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n ;\n return st + (flg & 2);\n};\n// gzip length\nvar gzl = function (d) {\n var l = d.length;\n return ((d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16) | (d[l - 1] << 24)) >>> 0;\n};\n// gzip header length\nvar gzhl = function (o) { return 10 + ((o.filename && (o.filename.length + 1)) || 0); };\n// zlib header\nvar zlh = function (c, o) {\n var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = (fl << 6) | (fl ? (32 - 2 * fl) : 1);\n};\n// zlib valid\nvar zlv = function (d) {\n if ((d[0] & 15) != 8 || (d[0] >>> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n err(6, 'invalid zlib data');\n if (d[1] & 32)\n err(6, 'invalid zlib data: preset dictionaries not supported');\n};\nfunction AsyncCmpStrm(opts, cb) {\n if (!cb && typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n return opts;\n}\n// zlib footer: -4 to -0 is Adler32\n/**\n * Streaming DEFLATE compression\n */\nvar Deflate = /*#__PURE__*/ (function () {\n function Deflate(opts, cb) {\n if (!cb && typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n this.o = opts || {};\n }\n Deflate.prototype.p = function (c, f) {\n this.ondata(dopt(c, this.o, 0, 0, !f), f);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Deflate.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n this.d = final;\n this.p(chunk, final || false);\n };\n return Deflate;\n}());\nexport { Deflate };\n/**\n * Asynchronous streaming DEFLATE compression\n */\nvar AsyncDeflate = /*#__PURE__*/ (function () {\n function AsyncDeflate(opts, cb) {\n astrmify([\n bDflt,\n function () { return [astrm, Deflate]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Deflate(ev.data);\n onmessage = astrm(strm);\n }, 6);\n }\n return AsyncDeflate;\n}());\nexport { AsyncDeflate };\nexport function deflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n ], function (ev) { return pbf(deflateSync(ev.data[0], ev.data[1])); }, 0, cb);\n}\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\nexport function deflateSync(data, opts) {\n return dopt(data, opts || {}, 0, 0);\n}\n/**\n * Streaming DEFLATE decompression\n */\nvar Inflate = /*#__PURE__*/ (function () {\n /**\n * Creates an inflation stream\n * @param cb The callback to call whenever data is inflated\n */\n function Inflate(cb) {\n this.s = {};\n this.p = new u8(0);\n this.ondata = cb;\n }\n Inflate.prototype.e = function (c) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n var l = this.p.length;\n var n = new u8(l + c.length);\n n.set(this.p), n.set(c, l), this.p = n;\n };\n Inflate.prototype.c = function (final) {\n this.d = this.s.i = final || false;\n var bts = this.s.b;\n var dt = inflt(this.p, this.o, this.s);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, (this.s.p / 8) | 0), this.s.p &= 7;\n };\n /**\n * Pushes a chunk to be inflated\n * @param chunk The chunk to push\n * @param final Whether this is the final chunk\n */\n Inflate.prototype.push = function (chunk, final) {\n this.e(chunk), this.c(final);\n };\n return Inflate;\n}());\nexport { Inflate };\n/**\n * Asynchronous streaming DEFLATE decompression\n */\nvar AsyncInflate = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous inflation stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncInflate(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n function () { return [astrm, Inflate]; }\n ], this, 0, function () {\n var strm = new Inflate();\n onmessage = astrm(strm);\n }, 7);\n }\n return AsyncInflate;\n}());\nexport { AsyncInflate };\nexport function inflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt\n ], function (ev) { return pbf(inflateSync(ev.data[0], gu8(ev.data[1]))); }, 1, cb);\n}\n/**\n * Expands DEFLATE data with no wrapper\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function inflateSync(data, out) {\n return inflt(data, out);\n}\n// before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.\n/**\n * Streaming GZIP compression\n */\nvar Gzip = /*#__PURE__*/ (function () {\n function Gzip(opts, cb) {\n this.c = crc();\n this.l = 0;\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gzip.prototype.push = function (chunk, final) {\n Deflate.prototype.push.call(this, chunk, final);\n };\n Gzip.prototype.p = function (c, f) {\n this.c.p(c);\n this.l += c.length;\n var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, !f);\n if (this.v)\n gzh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n this.ondata(raw, f);\n };\n return Gzip;\n}());\nexport { Gzip };\n/**\n * Asynchronous streaming GZIP compression\n */\nvar AsyncGzip = /*#__PURE__*/ (function () {\n function AsyncGzip(opts, cb) {\n astrmify([\n bDflt,\n gze,\n function () { return [astrm, Deflate, Gzip]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Gzip(ev.data);\n onmessage = astrm(strm);\n }, 8);\n }\n return AsyncGzip;\n}());\nexport { AsyncGzip };\nexport function gzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n gze,\n function () { return [gzipSync]; }\n ], function (ev) { return pbf(gzipSync(ev.data[0], ev.data[1])); }, 2, cb);\n}\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\nexport function gzipSync(data, opts) {\n if (!opts)\n opts = {};\n var c = crc(), l = data.length;\n c.p(data);\n var d = dopt(data, opts, gzhl(opts), 8), s = d.length;\n return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Streaming GZIP decompression\n */\nvar Gunzip = /*#__PURE__*/ (function () {\n /**\n * Creates a GUNZIP stream\n * @param cb The callback to call whenever data is inflated\n */\n function Gunzip(cb) {\n this.v = 1;\n Inflate.call(this, cb);\n }\n /**\n * Pushes a chunk to be GUNZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gunzip.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n var s = this.p.length > 3 ? gzs(this.p) : 4;\n if (s >= this.p.length && !final)\n return;\n this.p = this.p.subarray(s), this.v = 0;\n }\n if (final) {\n if (this.p.length < 8)\n err(6, 'invalid gzip data');\n this.p = this.p.subarray(0, -8);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Gunzip;\n}());\nexport { Gunzip };\n/**\n * Asynchronous streaming GZIP decompression\n */\nvar AsyncGunzip = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous GUNZIP stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncGunzip(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n guze,\n function () { return [astrm, Inflate, Gunzip]; }\n ], this, 0, function () {\n var strm = new Gunzip();\n onmessage = astrm(strm);\n }, 9);\n }\n return AsyncGunzip;\n}());\nexport { AsyncGunzip };\nexport function gunzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n guze,\n function () { return [gunzipSync]; }\n ], function (ev) { return pbf(gunzipSync(ev.data[0])); }, 3, cb);\n}\n/**\n * Expands GZIP data\n * @param data The data to decompress\n * @param out Where to write the data. GZIP already encodes the output size, so providing this doesn't save memory.\n * @returns The decompressed version of the data\n */\nexport function gunzipSync(data, out) {\n return inflt(data.subarray(gzs(data), -8), out || new u8(gzl(data)));\n}\n/**\n * Streaming Zlib compression\n */\nvar Zlib = /*#__PURE__*/ (function () {\n function Zlib(opts, cb) {\n this.c = adler();\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be zlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Zlib.prototype.push = function (chunk, final) {\n Deflate.prototype.push.call(this, chunk, final);\n };\n Zlib.prototype.p = function (c, f) {\n this.c.p(c);\n var raw = dopt(c, this.o, this.v && 2, f && 4, !f);\n if (this.v)\n zlh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 4, this.c.d());\n this.ondata(raw, f);\n };\n return Zlib;\n}());\nexport { Zlib };\n/**\n * Asynchronous streaming Zlib compression\n */\nvar AsyncZlib = /*#__PURE__*/ (function () {\n function AsyncZlib(opts, cb) {\n astrmify([\n bDflt,\n zle,\n function () { return [astrm, Deflate, Zlib]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Zlib(ev.data);\n onmessage = astrm(strm);\n }, 10);\n }\n return AsyncZlib;\n}());\nexport { AsyncZlib };\nexport function zlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n zle,\n function () { return [zlibSync]; }\n ], function (ev) { return pbf(zlibSync(ev.data[0], ev.data[1])); }, 4, cb);\n}\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nexport function zlibSync(data, opts) {\n if (!opts)\n opts = {};\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Streaming Zlib decompression\n */\nvar Unzlib = /*#__PURE__*/ (function () {\n /**\n * Creates a Zlib decompression stream\n * @param cb The callback to call whenever data is inflated\n */\n function Unzlib(cb) {\n this.v = 1;\n Inflate.call(this, cb);\n }\n /**\n * Pushes a chunk to be unzlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzlib.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n if (this.p.length < 2 && !final)\n return;\n this.p = this.p.subarray(2), this.v = 0;\n }\n if (final) {\n if (this.p.length < 4)\n err(6, 'invalid zlib data');\n this.p = this.p.subarray(0, -4);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Unzlib;\n}());\nexport { Unzlib };\n/**\n * Asynchronous streaming Zlib decompression\n */\nvar AsyncUnzlib = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous Zlib decompression stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncUnzlib(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n zule,\n function () { return [astrm, Inflate, Unzlib]; }\n ], this, 0, function () {\n var strm = new Unzlib();\n onmessage = astrm(strm);\n }, 11);\n }\n return AsyncUnzlib;\n}());\nexport { AsyncUnzlib };\nexport function unzlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n zule,\n function () { return [unzlibSync]; }\n ], function (ev) { return pbf(unzlibSync(ev.data[0], gu8(ev.data[1]))); }, 5, cb);\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function unzlibSync(data, out) {\n return inflt((zlv(data), data.subarray(2, -4)), out);\n}\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzip as compress, AsyncGzip as AsyncCompress };\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzipSync as compressSync, Gzip as Compress };\n/**\n * Streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar Decompress = /*#__PURE__*/ (function () {\n /**\n * Creates a decompression stream\n * @param cb The callback to call whenever data is decompressed\n */\n function Decompress(cb) {\n this.G = Gunzip;\n this.I = Inflate;\n this.Z = Unzlib;\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Decompress.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (!this.s) {\n if (this.p && this.p.length) {\n var n = new u8(this.p.length + chunk.length);\n n.set(this.p), n.set(chunk, this.p.length);\n }\n else\n this.p = chunk;\n if (this.p.length > 2) {\n var _this_1 = this;\n var cb = function () { _this_1.ondata.apply(_this_1, arguments); };\n this.s = (this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8)\n ? new this.G(cb)\n : ((this.p[0] & 15) != 8 || (this.p[0] >> 4) > 7 || ((this.p[0] << 8 | this.p[1]) % 31))\n ? new this.I(cb)\n : new this.Z(cb);\n this.s.push(this.p, final);\n this.p = null;\n }\n }\n else\n this.s.push(chunk, final);\n };\n return Decompress;\n}());\nexport { Decompress };\n/**\n * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar AsyncDecompress = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous decompression stream\n * @param cb The callback to call whenever data is decompressed\n */\n function AsyncDecompress(cb) {\n this.G = AsyncGunzip;\n this.I = AsyncInflate;\n this.Z = AsyncUnzlib;\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncDecompress.prototype.push = function (chunk, final) {\n Decompress.prototype.push.call(this, chunk, final);\n };\n return AsyncDecompress;\n}());\nexport { AsyncDecompress };\nexport function decompress(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzip(data, opts, cb)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflate(data, opts, cb)\n : unzlib(data, opts, cb);\n}\n/**\n * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function decompressSync(data, out) {\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzipSync(data, out)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflateSync(data, out)\n : unzlibSync(data, out);\n}\n// flatten a directory structure\nvar fltn = function (d, p, t, o) {\n for (var k in d) {\n var val = d[k], n = p + k, op = o;\n if (Array.isArray(val))\n op = mrg(o, val[1]), val = val[0];\n if (val instanceof u8)\n t[n] = [val, op];\n else {\n t[n += '/'] = [new u8(0), op];\n fltn(val, n, t, o);\n }\n }\n};\n// text encoder\nvar te = typeof TextEncoder != 'undefined' && /*#__PURE__*/ new TextEncoder();\n// text decoder\nvar td = typeof TextDecoder != 'undefined' && /*#__PURE__*/ new TextDecoder();\n// text decoder stream\nvar tds = 0;\ntry {\n td.decode(et, { stream: true });\n tds = 1;\n}\ncatch (e) { }\n// decode UTF8\nvar dutf8 = function (d) {\n for (var r = '', i = 0;;) {\n var c = d[i++];\n var eb = (c > 127) + (c > 223) + (c > 239);\n if (i + eb > d.length)\n return [r, slc(d, i - 1)];\n if (!eb)\n r += String.fromCharCode(c);\n else if (eb == 3) {\n c = ((c & 15) << 18 | (d[i++] & 63) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63)) - 65536,\n r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n }\n else if (eb & 1)\n r += String.fromCharCode((c & 31) << 6 | (d[i++] & 63));\n else\n r += String.fromCharCode((c & 15) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63));\n }\n};\n/**\n * Streaming UTF-8 decoding\n */\nvar DecodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is decoded\n */\n function DecodeUTF8(cb) {\n this.ondata = cb;\n if (tds)\n this.t = new TextDecoder();\n else\n this.p = et;\n }\n /**\n * Pushes a chunk to be decoded from UTF-8 binary\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n DecodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n final = !!final;\n if (this.t) {\n this.ondata(this.t.decode(chunk, { stream: true }), final);\n if (final) {\n if (this.t.decode().length)\n err(8);\n this.t = null;\n }\n return;\n }\n if (!this.p)\n err(4);\n var dat = new u8(this.p.length + chunk.length);\n dat.set(this.p);\n dat.set(chunk, this.p.length);\n var _a = dutf8(dat), ch = _a[0], np = _a[1];\n if (final) {\n if (np.length)\n err(8);\n this.p = null;\n }\n else\n this.p = np;\n this.ondata(ch, final);\n };\n return DecodeUTF8;\n}());\nexport { DecodeUTF8 };\n/**\n * Streaming UTF-8 encoding\n */\nvar EncodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is encoded\n */\n function EncodeUTF8(cb) {\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be encoded to UTF-8\n * @param chunk The string data to push\n * @param final Whether this is the last chunk\n */\n EncodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n this.ondata(strToU8(chunk), this.d = final || false);\n };\n return EncodeUTF8;\n}());\nexport { EncodeUTF8 };\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nexport function strToU8(str, latin1) {\n if (latin1) {\n var ar_1 = new u8(str.length);\n for (var i = 0; i < str.length; ++i)\n ar_1[i] = str.charCodeAt(i);\n return ar_1;\n }\n if (te)\n return te.encode(str);\n var l = str.length;\n var ar = new u8(str.length + (str.length >> 1));\n var ai = 0;\n var w = function (v) { ar[ai++] = v; };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + ((l - i) << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | (c >> 6)), w(128 | (c & 63));\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n w(240 | (c >> 18)), w(128 | ((c >> 12) & 63)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n else\n w(224 | (c >> 12)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n }\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nexport function strFromU8(dat, latin1) {\n if (latin1) {\n var r = '';\n for (var i = 0; i < dat.length; i += 16384)\n r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384));\n return r;\n }\n else if (td)\n return td.decode(dat);\n else {\n var _a = dutf8(dat), out = _a[0], ext = _a[1];\n if (ext.length)\n err(8);\n return out;\n }\n}\n;\n// deflate bit flag\nvar dbf = function (l) { return l == 1 ? 3 : l < 6 ? 2 : l == 9 ? 1 : 0; };\n// skip local zip header\nvar slzh = function (d, b) { return b + 30 + b2(d, b + 26) + b2(d, b + 28); };\n// read zip header\nvar zh = function (d, b, z) {\n var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20);\n var _a = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a[0], su = _a[1], off = _a[2];\n return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n};\n// read zip64 extra field\nvar z64e = function (d, b) {\n for (; b2(d, b) != 1; b += 4 + b2(d, b + 2))\n ;\n return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)];\n};\n// extra field length\nvar exfl = function (ex) {\n var le = 0;\n if (ex) {\n for (var k in ex) {\n var l = ex[k].length;\n if (l > 65535)\n err(9);\n le += l + 4;\n }\n }\n return le;\n};\n// write zip header\nvar wzh = function (d, b, f, fn, u, c, ce, co) {\n var fl = fn.length, ex = f.extra, col = co && co.length;\n var exl = exfl(ex);\n wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n if (ce != null)\n d[b++] = 20, d[b++] = f.os;\n d[b] = 20, b += 2; // spec compliance? what's that?\n d[b++] = (f.flag << 1) | (c == null && 8), d[b++] = u && 8;\n d[b++] = f.compression & 255, d[b++] = f.compression >> 8;\n var dt = new Date(f.mtime == null ? Date.now() : f.mtime), y = dt.getFullYear() - 1980;\n if (y < 0 || y > 119)\n err(10);\n wbytes(d, b, (y << 25) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >>> 1)), b += 4;\n if (c != null) {\n wbytes(d, b, f.crc);\n wbytes(d, b + 4, c);\n wbytes(d, b + 8, f.size);\n }\n wbytes(d, b + 12, fl);\n wbytes(d, b + 14, exl), b += 16;\n if (ce != null) {\n wbytes(d, b, col);\n wbytes(d, b + 6, f.attrs);\n wbytes(d, b + 10, ce), b += 14;\n }\n d.set(fn, b);\n b += fl;\n if (exl) {\n for (var k in ex) {\n var exf = ex[k], l = exf.length;\n wbytes(d, b, +k);\n wbytes(d, b + 2, l);\n d.set(exf, b + 4), b += 4 + l;\n }\n }\n if (col)\n d.set(co, b), b += col;\n return b;\n};\n// write zip footer (end of central directory)\nvar wzf = function (o, b, c, d, e) {\n wbytes(o, b, 0x6054B50); // skip disk\n wbytes(o, b + 8, c);\n wbytes(o, b + 10, c);\n wbytes(o, b + 12, d);\n wbytes(o, b + 16, e);\n};\n/**\n * A pass-through stream to keep data uncompressed in a ZIP archive.\n */\nvar ZipPassThrough = /*#__PURE__*/ (function () {\n /**\n * Creates a pass-through stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n */\n function ZipPassThrough(filename) {\n this.filename = filename;\n this.c = crc();\n this.size = 0;\n this.compression = 0;\n }\n /**\n * Processes a chunk and pushes to the output stream. You can override this\n * method in a subclass for custom behavior, but by default this passes\n * the data through. You must call this.ondata(err, chunk, final) at some\n * point in this method.\n * @param chunk The chunk to process\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.process = function (chunk, final) {\n this.ondata(null, chunk, final);\n };\n /**\n * Pushes a chunk to be added. If you are subclassing this with a custom\n * compression algorithm, note that you must push data from the source\n * file only, pre-compression.\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n this.c.p(chunk);\n this.size += chunk.length;\n if (final)\n this.crc = this.c.d();\n this.process(chunk, final || false);\n };\n return ZipPassThrough;\n}());\nexport { ZipPassThrough };\n// I don't extend because TypeScript extension adds 1kB of runtime bloat\n/**\n * Streaming DEFLATE compression for ZIP archives. Prefer using AsyncZipDeflate\n * for better performance\n */\nvar ZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function ZipDeflate(filename, opts) {\n var _this_1 = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new Deflate(opts, function (dat, final) {\n _this_1.ondata(null, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n }\n ZipDeflate.prototype.process = function (chunk, final) {\n try {\n this.d.push(chunk, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return ZipDeflate;\n}());\nexport { ZipDeflate };\n/**\n * Asynchronous streaming DEFLATE compression for ZIP archives\n */\nvar AsyncZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function AsyncZipDeflate(filename, opts) {\n var _this_1 = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new AsyncDeflate(opts, function (err, dat, final) {\n _this_1.ondata(err, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n this.terminate = this.d.terminate;\n }\n AsyncZipDeflate.prototype.process = function (chunk, final) {\n this.d.push(chunk, final);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return AsyncZipDeflate;\n}());\nexport { AsyncZipDeflate };\n// TODO: Better tree shaking\n/**\n * A zippable archive to which files can incrementally be added\n */\nvar Zip = /*#__PURE__*/ (function () {\n /**\n * Creates an empty ZIP archive to which files can be added\n * @param cb The callback to call whenever data for the generated ZIP archive\n * is available\n */\n function Zip(cb) {\n this.ondata = cb;\n this.u = [];\n this.d = 1;\n }\n /**\n * Adds a file to the ZIP archive\n * @param file The file stream to add\n */\n Zip.prototype.add = function (file) {\n var _this_1 = this;\n if (!this.ondata)\n err(5);\n // finishing or finished\n if (this.d & 2)\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, false);\n else {\n var f = strToU8(file.filename), fl_1 = f.length;\n var com = file.comment, o = com && strToU8(com);\n var u = fl_1 != file.filename.length || (o && (com.length != o.length));\n var hl_1 = fl_1 + exfl(file.extra) + 30;\n if (fl_1 > 65535)\n this.ondata(err(11, 0, 1), null, false);\n var header = new u8(hl_1);\n wzh(header, 0, file, f, u);\n var chks_1 = [header];\n var pAll_1 = function () {\n for (var _i = 0, chks_2 = chks_1; _i < chks_2.length; _i++) {\n var chk = chks_2[_i];\n _this_1.ondata(null, chk, false);\n }\n chks_1 = [];\n };\n var tr_1 = this.d;\n this.d = 0;\n var ind_1 = this.u.length;\n var uf_1 = mrg(file, {\n f: f,\n u: u,\n o: o,\n t: function () {\n if (file.terminate)\n file.terminate();\n },\n r: function () {\n pAll_1();\n if (tr_1) {\n var nxt = _this_1.u[ind_1 + 1];\n if (nxt)\n nxt.r();\n else\n _this_1.d = 1;\n }\n tr_1 = 1;\n }\n });\n var cl_1 = 0;\n file.ondata = function (err, dat, final) {\n if (err) {\n _this_1.ondata(err, dat, final);\n _this_1.terminate();\n }\n else {\n cl_1 += dat.length;\n chks_1.push(dat);\n if (final) {\n var dd = new u8(16);\n wbytes(dd, 0, 0x8074B50);\n wbytes(dd, 4, file.crc);\n wbytes(dd, 8, cl_1);\n wbytes(dd, 12, file.size);\n chks_1.push(dd);\n uf_1.c = cl_1, uf_1.b = hl_1 + cl_1 + 16, uf_1.crc = file.crc, uf_1.size = file.size;\n if (tr_1)\n uf_1.r();\n tr_1 = 1;\n }\n else if (tr_1)\n pAll_1();\n }\n };\n this.u.push(uf_1);\n }\n };\n /**\n * Ends the process of adding files and prepares to emit the final chunks.\n * This *must* be called after adding all desired files for the resulting\n * ZIP file to work properly.\n */\n Zip.prototype.end = function () {\n var _this_1 = this;\n if (this.d & 2) {\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, true);\n return;\n }\n if (this.d)\n this.e();\n else\n this.u.push({\n r: function () {\n if (!(_this_1.d & 1))\n return;\n _this_1.u.splice(-1, 1);\n _this_1.e();\n },\n t: function () { }\n });\n this.d = 3;\n };\n Zip.prototype.e = function () {\n var bt = 0, l = 0, tl = 0;\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n tl += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0);\n }\n var out = new u8(tl + 22);\n for (var _b = 0, _c = this.u; _b < _c.length; _b++) {\n var f = _c[_b];\n wzh(out, bt, f, f.f, f.u, f.c, l, f.o);\n bt += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0), l += f.b;\n }\n wzf(out, bt, this.u.length, tl, l);\n this.ondata(null, out, true);\n this.d = 2;\n };\n /**\n * A method to terminate any internal workers used by the stream. Subsequent\n * calls to add() will fail.\n */\n Zip.prototype.terminate = function () {\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n f.t();\n }\n this.d = 2;\n };\n return Zip;\n}());\nexport { Zip };\nexport function zip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var r = {};\n fltn(data, '', r, opts);\n var k = Object.keys(r);\n var lft = k.length, o = 0, tot = 0;\n var slft = lft, files = new Array(lft);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var cbf = function () {\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n tot = 0;\n for (var i = 0; i < slft; ++i) {\n var f = files[i];\n try {\n var l = f.c.length;\n wzh(out, tot, f, f.f, f.u, l);\n var badd = 30 + f.f.length + exfl(f.extra);\n var loc = tot + badd;\n out.set(f.c, loc);\n wzh(out, o, f, f.f, f.u, l, tot, f.m), o += 16 + badd + (f.m ? f.m.length : 0), tot = loc + l;\n }\n catch (e) {\n return cbd(e, null);\n }\n }\n wzf(out, o, files.length, cdl, oe);\n cbd(null, out);\n };\n if (!lft)\n cbf();\n var _loop_1 = function (i) {\n var fn = k[i];\n var _a = r[fn], file = _a[0], p = _a[1];\n var c = crc(), size = file.length;\n c.p(file);\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n var compression = p.level == 0 ? 0 : 8;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n var l = d.length;\n files[i] = mrg(p, {\n size: size,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n compression: compression\n });\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n if (!--lft)\n cbf();\n }\n };\n if (s > 65535)\n cbl(err(11, 0, 1), null);\n if (!compression)\n cbl(null, file);\n else if (size < 160000) {\n try {\n cbl(null, deflateSync(file, p));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(deflate(file, p, cbl));\n };\n // Cannot use lft because it can decrease\n for (var i = 0; i < slft; ++i) {\n _loop_1(i);\n }\n return tAll;\n}\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\nexport function zipSync(data, opts) {\n if (!opts)\n opts = {};\n var r = {};\n var files = [];\n fltn(data, '', r, opts);\n var o = 0;\n var tot = 0;\n for (var fn in r) {\n var _a = r[fn], file = _a[0], p = _a[1];\n var compression = p.level == 0 ? 0 : 8;\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n if (s > 65535)\n err(11);\n var d = compression ? deflateSync(file, p) : file, l = d.length;\n var c = crc();\n c.p(file);\n files.push(mrg(p, {\n size: file.length,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n o: o,\n compression: compression\n }));\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n }\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n for (var i = 0; i < files.length; ++i) {\n var f = files[i];\n wzh(out, f.o, f, f.f, f.u, f.c.length);\n var badd = 30 + f.f.length + exfl(f.extra);\n out.set(f.c, f.o + badd);\n wzh(out, o, f, f.f, f.u, f.c.length, f.o, f.m), o += 16 + badd + (f.m ? f.m.length : 0);\n }\n wzf(out, o, files.length, cdl, oe);\n return out;\n}\n/**\n * Streaming pass-through decompression for ZIP archives\n */\nvar UnzipPassThrough = /*#__PURE__*/ (function () {\n function UnzipPassThrough() {\n }\n UnzipPassThrough.prototype.push = function (data, final) {\n this.ondata(null, data, final);\n };\n UnzipPassThrough.compression = 0;\n return UnzipPassThrough;\n}());\nexport { UnzipPassThrough };\n/**\n * Streaming DEFLATE decompression for ZIP archives. Prefer AsyncZipInflate for\n * better performance.\n */\nvar UnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function UnzipInflate() {\n var _this_1 = this;\n this.i = new Inflate(function (dat, final) {\n _this_1.ondata(null, dat, final);\n });\n }\n UnzipInflate.prototype.push = function (data, final) {\n try {\n this.i.push(data, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n UnzipInflate.compression = 8;\n return UnzipInflate;\n}());\nexport { UnzipInflate };\n/**\n * Asynchronous streaming DEFLATE decompression for ZIP archives\n */\nvar AsyncUnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function AsyncUnzipInflate(_, sz) {\n var _this_1 = this;\n if (sz < 320000) {\n this.i = new Inflate(function (dat, final) {\n _this_1.ondata(null, dat, final);\n });\n }\n else {\n this.i = new AsyncInflate(function (err, dat, final) {\n _this_1.ondata(err, dat, final);\n });\n this.terminate = this.i.terminate;\n }\n }\n AsyncUnzipInflate.prototype.push = function (data, final) {\n if (this.i.terminate)\n data = slc(data, 0);\n this.i.push(data, final);\n };\n AsyncUnzipInflate.compression = 8;\n return AsyncUnzipInflate;\n}());\nexport { AsyncUnzipInflate };\n/**\n * A ZIP archive decompression stream that emits files as they are discovered\n */\nvar Unzip = /*#__PURE__*/ (function () {\n /**\n * Creates a ZIP decompression stream\n * @param cb The callback to call whenever a file in the ZIP archive is found\n */\n function Unzip(cb) {\n this.onfile = cb;\n this.k = [];\n this.o = {\n 0: UnzipPassThrough\n };\n this.p = et;\n }\n /**\n * Pushes a chunk to be unzipped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzip.prototype.push = function (chunk, final) {\n var _this_1 = this;\n if (!this.onfile)\n err(5);\n if (!this.p)\n err(4);\n if (this.c > 0) {\n var len = Math.min(this.c, chunk.length);\n var toAdd = chunk.subarray(0, len);\n this.c -= len;\n if (this.d)\n this.d.push(toAdd, !this.c);\n else\n this.k[0].push(toAdd);\n chunk = chunk.subarray(len);\n if (chunk.length)\n return this.push(chunk, final);\n }\n else {\n var f = 0, i = 0, is = void 0, buf = void 0;\n if (!this.p.length)\n buf = chunk;\n else if (!chunk.length)\n buf = this.p;\n else {\n buf = new u8(this.p.length + chunk.length);\n buf.set(this.p), buf.set(chunk, this.p.length);\n }\n var l = buf.length, oc = this.c, add = oc && this.d;\n var _loop_2 = function () {\n var _a;\n var sig = b4(buf, i);\n if (sig == 0x4034B50) {\n f = 1, is = i;\n this_1.d = null;\n this_1.c = 0;\n var bf = b2(buf, i + 6), cmp_1 = b2(buf, i + 8), u = bf & 2048, dd = bf & 8, fnl = b2(buf, i + 26), es = b2(buf, i + 28);\n if (l > i + 30 + fnl + es) {\n var chks_3 = [];\n this_1.k.unshift(chks_3);\n f = 2;\n var sc_1 = b4(buf, i + 18), su_1 = b4(buf, i + 22);\n var fn_1 = strFromU8(buf.subarray(i + 30, i += 30 + fnl), !u);\n if (sc_1 == 4294967295) {\n _a = dd ? [-2] : z64e(buf, i), sc_1 = _a[0], su_1 = _a[1];\n }\n else if (dd)\n sc_1 = -1;\n i += es;\n this_1.c = sc_1;\n var d_1;\n var file_1 = {\n name: fn_1,\n compression: cmp_1,\n start: function () {\n if (!file_1.ondata)\n err(5);\n if (!sc_1)\n file_1.ondata(null, et, true);\n else {\n var ctr = _this_1.o[cmp_1];\n if (!ctr)\n file_1.ondata(err(14, 'unknown compression type ' + cmp_1, 1), null, false);\n d_1 = sc_1 < 0 ? new ctr(fn_1) : new ctr(fn_1, sc_1, su_1);\n d_1.ondata = function (err, dat, final) { file_1.ondata(err, dat, final); };\n for (var _i = 0, chks_4 = chks_3; _i < chks_4.length; _i++) {\n var dat = chks_4[_i];\n d_1.push(dat, false);\n }\n if (_this_1.k[0] == chks_3 && _this_1.c)\n _this_1.d = d_1;\n else\n d_1.push(et, true);\n }\n },\n terminate: function () {\n if (d_1 && d_1.terminate)\n d_1.terminate();\n }\n };\n if (sc_1 >= 0)\n file_1.size = sc_1, file_1.originalSize = su_1;\n this_1.onfile(file_1);\n }\n return \"break\";\n }\n else if (oc) {\n if (sig == 0x8074B50) {\n is = i += 12 + (oc == -2 && 8), f = 3, this_1.c = 0;\n return \"break\";\n }\n else if (sig == 0x2014B50) {\n is = i -= 4, f = 3, this_1.c = 0;\n return \"break\";\n }\n }\n };\n var this_1 = this;\n for (; i < l - 4; ++i) {\n var state_1 = _loop_2();\n if (state_1 === \"break\")\n break;\n }\n this.p = et;\n if (oc < 0) {\n var dat = f ? buf.subarray(0, is - 12 - (oc == -2 && 8) - (b4(buf, is - 16) == 0x8074B50 && 4)) : buf.subarray(0, i);\n if (add)\n add.push(dat, !!f);\n else\n this.k[+(f == 2)].push(dat);\n }\n if (f & 2)\n return this.push(buf.subarray(i), final);\n this.p = buf.subarray(i);\n }\n if (final) {\n if (this.c)\n err(13);\n this.p = null;\n }\n };\n /**\n * Registers a decoder with the stream, allowing for files compressed with\n * the compression type provided to be expanded correctly\n * @param decoder The decoder constructor\n */\n Unzip.prototype.register = function (decoder) {\n this.o[decoder.compression] = decoder;\n };\n return Unzip;\n}());\nexport { Unzip };\nvar mt = typeof queueMicrotask == 'function' ? queueMicrotask : typeof setTimeout == 'function' ? setTimeout : function (fn) { fn(); };\nexport function unzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var files = {};\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) {\n cbd(err(13, 0, 1), null);\n return tAll;\n }\n }\n ;\n var lft = b2(data, e + 8);\n if (lft) {\n var c = lft;\n var o = b4(data, e + 16);\n var z = o == 4294967295;\n if (z) {\n e = b4(data, e - 12);\n if (b4(data, e) != 0x6064B50) {\n cbd(err(13, 0, 1), null);\n return tAll;\n }\n c = lft = b4(data, e + 32);\n o = b4(data, e + 48);\n }\n var fltr = opts && opts.filter;\n var _loop_3 = function (i) {\n var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n if (d)\n files[fn] = d;\n if (!--lft)\n cbd(null, files);\n }\n };\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_1\n })) {\n if (!c_1)\n cbl(null, slc(data, b, b + sc));\n else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n if (sc < 320000) {\n try {\n cbl(null, inflateSync(infl, new u8(su)));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(inflate(infl, { size: su }, cbl));\n }\n else\n cbl(err(14, 'unknown compression type ' + c_1, 1), null);\n }\n else\n cbl(null, null);\n };\n for (var i = 0; i < c; ++i) {\n _loop_3(i);\n }\n }\n else\n cbd(null, {});\n return tAll;\n}\n/**\n * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better\n * performance with more than one file.\n * @param data The raw compressed ZIP file\n * @param opts The ZIP extraction options\n * @returns The decompressed files\n */\nexport function unzipSync(data, opts) {\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558)\n err(13);\n }\n ;\n var c = b2(data, e + 8);\n if (!c)\n return {};\n var o = b4(data, e + 16);\n var z = o == 4294967295;\n if (z) {\n e = b4(data, e - 12);\n if (b4(data, e) != 0x6064B50)\n err(13);\n c = b4(data, e + 32);\n o = b4(data, e + 48);\n }\n var fltr = opts && opts.filter;\n for (var i = 0; i < c; ++i) {\n var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_2\n })) {\n if (!c_2)\n files[fn] = slc(data, b, b + sc);\n else if (c_2 == 8)\n files[fn] = inflateSync(data.subarray(b, b + sc), new u8(su));\n else\n err(14, 'unknown compression type ' + c_2);\n }\n }\n return files;\n}\n","// Geometric objects\n\n// import BoundingBox from './bbox';\n\n/**\n * A bézier path containing a set of path commands similar to a SVG path.\n * Paths can be drawn on a context using `draw`.\n * @exports opentype.Path\n * @class\n * @constructor\n */\nfunction Path() {\n this.commands = [];\n this.fill = 'black';\n this.stroke = null;\n this.strokeWidth = 1;\n}\n\n/**\n * @param {number} x\n * @param {number} y\n */\nPath.prototype.moveTo = function (x, y) {\n this.commands.push({\n type: 'M',\n x: x,\n y: y,\n });\n};\n\n/**\n * @param {number} x\n * @param {number} y\n */\nPath.prototype.lineTo = function (x, y) {\n this.commands.push({\n type: 'L',\n x: x,\n y: y,\n });\n};\n\n/**\n * Draws cubic curve\n * @function\n * curveTo\n * @memberof opentype.Path.prototype\n * @param {number} x1 - x of control 1\n * @param {number} y1 - y of control 1\n * @param {number} x2 - x of control 2\n * @param {number} y2 - y of control 2\n * @param {number} x - x of path point\n * @param {number} y - y of path point\n */\n\n/**\n * Draws cubic curve\n * @function\n * bezierCurveTo\n * @memberof opentype.Path.prototype\n * @param {number} x1 - x of control 1\n * @param {number} y1 - y of control 1\n * @param {number} x2 - x of control 2\n * @param {number} y2 - y of control 2\n * @param {number} x - x of path point\n * @param {number} y - y of path point\n * @see curveTo\n */\nPath.prototype.curveTo = Path.prototype.bezierCurveTo = function (\n x1,\n y1,\n x2,\n y2,\n x,\n y\n) {\n this.commands.push({\n type: 'C',\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2,\n x: x,\n y: y,\n });\n};\n\n/**\n * Draws quadratic curve\n * @function\n * quadraticCurveTo\n * @memberof opentype.Path.prototype\n * @param {number} x1 - x of control\n * @param {number} y1 - y of control\n * @param {number} x - x of path point\n * @param {number} y - y of path point\n */\n\n/**\n * Draws quadratic curve\n * @function\n * quadTo\n * @memberof opentype.Path.prototype\n * @param {number} x1 - x of control\n * @param {number} y1 - y of control\n * @param {number} x - x of path point\n * @param {number} y - y of path point\n */\nPath.prototype.quadTo = Path.prototype.quadraticCurveTo = function (\n x1,\n y1,\n x,\n y\n) {\n this.commands.push({\n type: 'Q',\n x1: x1,\n y1: y1,\n x: x,\n y: y,\n });\n};\n\n/**\n * Closes the path\n * @function closePath\n * @memberof opentype.Path.prototype\n */\n\n/**\n * Close the path\n * @function close\n * @memberof opentype.Path.prototype\n */\nPath.prototype.close = Path.prototype.closePath = function () {\n this.commands.push({\n type: 'Z',\n });\n};\n\n/**\n * Add the given path or list of commands to the commands of this path.\n * @param {Array} pathOrCommands - another opentype.Path, an opentype.BoundingBox, or an array of commands.\n */\nPath.prototype.extend = function (pathOrCommands) {\n if (pathOrCommands.commands) {\n pathOrCommands = pathOrCommands.commands;\n }\n // else if (pathOrCommands instanceof BoundingBox) {\n // const box = pathOrCommands;\n // this.moveTo(box.x1, box.y1);\n // this.lineTo(box.x2, box.y1);\n // this.lineTo(box.x2, box.y2);\n // this.lineTo(box.x1, box.y2);\n // this.close();\n // return;\n // }\n\n Array.prototype.push.apply(this.commands, pathOrCommands);\n};\n\n/**\n * Convert the Path to a string of path data instructions\n * See http://www.w3.org/TR/SVG/paths.html#PathData\n * @param {number} [decimalPlaces=2] - The amount of decimal places for floating-point values\n * @return {string}\n */\nPath.prototype.toPathData = function (decimalPlaces) {\n decimalPlaces = decimalPlaces !== undefined ? decimalPlaces : 2;\n\n function floatToString(v) {\n if (Math.round(v) === v) {\n return '' + Math.round(v);\n } else {\n return v.toFixed(decimalPlaces);\n }\n }\n\n function packValues() {\n let s = '';\n for (let i = 0; i < arguments.length; i += 1) {\n const v = arguments[i];\n if (v >= 0 && i > 0) {\n s += ' ';\n }\n\n s += floatToString(v);\n }\n\n return s;\n }\n\n let d = '';\n for (let i = 0; i < this.commands.length; i += 1) {\n const cmd = this.commands[i];\n if (cmd.type === 'M') {\n d += 'M' + packValues(cmd.x, cmd.y);\n } else if (cmd.type === 'L') {\n d += 'L' + packValues(cmd.x, cmd.y);\n } else if (cmd.type === 'C') {\n d += 'C' + packValues(cmd.x1, cmd.y1, cmd.x2, cmd.y2, cmd.x, cmd.y);\n } else if (cmd.type === 'Q') {\n d += 'Q' + packValues(cmd.x1, cmd.y1, cmd.x, cmd.y);\n } else if (cmd.type === 'Z') {\n d += 'Z';\n }\n }\n\n return d;\n};\n\nexport default Path;\n","// Glyph encoding\n\nconst cffStandardStrings = [\n '.notdef',\n 'space',\n 'exclam',\n 'quotedbl',\n 'numbersign',\n 'dollar',\n 'percent',\n 'ampersand',\n 'quoteright',\n 'parenleft',\n 'parenright',\n 'asterisk',\n 'plus',\n 'comma',\n 'hyphen',\n 'period',\n 'slash',\n 'zero',\n 'one',\n 'two',\n 'three',\n 'four',\n 'five',\n 'six',\n 'seven',\n 'eight',\n 'nine',\n 'colon',\n 'semicolon',\n 'less',\n 'equal',\n 'greater',\n 'question',\n 'at',\n 'A',\n 'B',\n 'C',\n 'D',\n 'E',\n 'F',\n 'G',\n 'H',\n 'I',\n 'J',\n 'K',\n 'L',\n 'M',\n 'N',\n 'O',\n 'P',\n 'Q',\n 'R',\n 'S',\n 'T',\n 'U',\n 'V',\n 'W',\n 'X',\n 'Y',\n 'Z',\n 'bracketleft',\n 'backslash',\n 'bracketright',\n 'asciicircum',\n 'underscore',\n 'quoteleft',\n 'a',\n 'b',\n 'c',\n 'd',\n 'e',\n 'f',\n 'g',\n 'h',\n 'i',\n 'j',\n 'k',\n 'l',\n 'm',\n 'n',\n 'o',\n 'p',\n 'q',\n 'r',\n 's',\n 't',\n 'u',\n 'v',\n 'w',\n 'x',\n 'y',\n 'z',\n 'braceleft',\n 'bar',\n 'braceright',\n 'asciitilde',\n 'exclamdown',\n 'cent',\n 'sterling',\n 'fraction',\n 'yen',\n 'florin',\n 'section',\n 'currency',\n 'quotesingle',\n 'quotedblleft',\n 'guillemotleft',\n 'guilsinglleft',\n 'guilsinglright',\n 'fi',\n 'fl',\n 'endash',\n 'dagger',\n 'daggerdbl',\n 'periodcentered',\n 'paragraph',\n 'bullet',\n 'quotesinglbase',\n 'quotedblbase',\n 'quotedblright',\n 'guillemotright',\n 'ellipsis',\n 'perthousand',\n 'questiondown',\n 'grave',\n 'acute',\n 'circumflex',\n 'tilde',\n 'macron',\n 'breve',\n 'dotaccent',\n 'dieresis',\n 'ring',\n 'cedilla',\n 'hungarumlaut',\n 'ogonek',\n 'caron',\n 'emdash',\n 'AE',\n 'ordfeminine',\n 'Lslash',\n 'Oslash',\n 'OE',\n 'ordmasculine',\n 'ae',\n 'dotlessi',\n 'lslash',\n 'oslash',\n 'oe',\n 'germandbls',\n 'onesuperior',\n 'logicalnot',\n 'mu',\n 'trademark',\n 'Eth',\n 'onehalf',\n 'plusminus',\n 'Thorn',\n 'onequarter',\n 'divide',\n 'brokenbar',\n 'degree',\n 'thorn',\n 'threequarters',\n 'twosuperior',\n 'registered',\n 'minus',\n 'eth',\n 'multiply',\n 'threesuperior',\n 'copyright',\n 'Aacute',\n 'Acircumflex',\n 'Adieresis',\n 'Agrave',\n 'Aring',\n 'Atilde',\n 'Ccedilla',\n 'Eacute',\n 'Ecircumflex',\n 'Edieresis',\n 'Egrave',\n 'Iacute',\n 'Icircumflex',\n 'Idieresis',\n 'Igrave',\n 'Ntilde',\n 'Oacute',\n 'Ocircumflex',\n 'Odieresis',\n 'Ograve',\n 'Otilde',\n 'Scaron',\n 'Uacute',\n 'Ucircumflex',\n 'Udieresis',\n 'Ugrave',\n 'Yacute',\n 'Ydieresis',\n 'Zcaron',\n 'aacute',\n 'acircumflex',\n 'adieresis',\n 'agrave',\n 'aring',\n 'atilde',\n 'ccedilla',\n 'eacute',\n 'ecircumflex',\n 'edieresis',\n 'egrave',\n 'iacute',\n 'icircumflex',\n 'idieresis',\n 'igrave',\n 'ntilde',\n 'oacute',\n 'ocircumflex',\n 'odieresis',\n 'ograve',\n 'otilde',\n 'scaron',\n 'uacute',\n 'ucircumflex',\n 'udieresis',\n 'ugrave',\n 'yacute',\n 'ydieresis',\n 'zcaron',\n 'exclamsmall',\n 'Hungarumlautsmall',\n 'dollaroldstyle',\n 'dollarsuperior',\n 'ampersandsmall',\n 'Acutesmall',\n 'parenleftsuperior',\n 'parenrightsuperior',\n '266 ff',\n 'onedotenleader',\n 'zerooldstyle',\n 'oneoldstyle',\n 'twooldstyle',\n 'threeoldstyle',\n 'fouroldstyle',\n 'fiveoldstyle',\n 'sixoldstyle',\n 'sevenoldstyle',\n 'eightoldstyle',\n 'nineoldstyle',\n 'commasuperior',\n 'threequartersemdash',\n 'periodsuperior',\n 'questionsmall',\n 'asuperior',\n 'bsuperior',\n 'centsuperior',\n 'dsuperior',\n 'esuperior',\n 'isuperior',\n 'lsuperior',\n 'msuperior',\n 'nsuperior',\n 'osuperior',\n 'rsuperior',\n 'ssuperior',\n 'tsuperior',\n 'ff',\n 'ffi',\n 'ffl',\n 'parenleftinferior',\n 'parenrightinferior',\n 'Circumflexsmall',\n 'hyphensuperior',\n 'Gravesmall',\n 'Asmall',\n 'Bsmall',\n 'Csmall',\n 'Dsmall',\n 'Esmall',\n 'Fsmall',\n 'Gsmall',\n 'Hsmall',\n 'Ismall',\n 'Jsmall',\n 'Ksmall',\n 'Lsmall',\n 'Msmall',\n 'Nsmall',\n 'Osmall',\n 'Psmall',\n 'Qsmall',\n 'Rsmall',\n 'Ssmall',\n 'Tsmall',\n 'Usmall',\n 'Vsmall',\n 'Wsmall',\n 'Xsmall',\n 'Ysmall',\n 'Zsmall',\n 'colonmonetary',\n 'onefitted',\n 'rupiah',\n 'Tildesmall',\n 'exclamdownsmall',\n 'centoldstyle',\n 'Lslashsmall',\n 'Scaronsmall',\n 'Zcaronsmall',\n 'Dieresissmall',\n 'Brevesmall',\n 'Caronsmall',\n 'Dotaccentsmall',\n 'Macronsmall',\n 'figuredash',\n 'hypheninferior',\n 'Ogoneksmall',\n 'Ringsmall',\n 'Cedillasmall',\n 'questiondownsmall',\n 'oneeighth',\n 'threeeighths',\n 'fiveeighths',\n 'seveneighths',\n 'onethird',\n 'twothirds',\n 'zerosuperior',\n 'foursuperior',\n 'fivesuperior',\n 'sixsuperior',\n 'sevensuperior',\n 'eightsuperior',\n 'ninesuperior',\n 'zeroinferior',\n 'oneinferior',\n 'twoinferior',\n 'threeinferior',\n 'fourinferior',\n 'fiveinferior',\n 'sixinferior',\n 'seveninferior',\n 'eightinferior',\n 'nineinferior',\n 'centinferior',\n 'dollarinferior',\n 'periodinferior',\n 'commainferior',\n 'Agravesmall',\n 'Aacutesmall',\n 'Acircumflexsmall',\n 'Atildesmall',\n 'Adieresissmall',\n 'Aringsmall',\n 'AEsmall',\n 'Ccedillasmall',\n 'Egravesmall',\n 'Eacutesmall',\n 'Ecircumflexsmall',\n 'Edieresissmall',\n 'Igravesmall',\n 'Iacutesmall',\n 'Icircumflexsmall',\n 'Idieresissmall',\n 'Ethsmall',\n 'Ntildesmall',\n 'Ogravesmall',\n 'Oacutesmall',\n 'Ocircumflexsmall',\n 'Otildesmall',\n 'Odieresissmall',\n 'OEsmall',\n 'Oslashsmall',\n 'Ugravesmall',\n 'Uacutesmall',\n 'Ucircumflexsmall',\n 'Udieresissmall',\n 'Yacutesmall',\n 'Thornsmall',\n 'Ydieresissmall',\n '001.000',\n '001.001',\n '001.002',\n '001.003',\n 'Black',\n 'Bold',\n 'Book',\n 'Light',\n 'Medium',\n 'Regular',\n 'Roman',\n 'Semibold',\n];\n\nconst cffStandardEncoding = [\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n 'space',\n 'exclam',\n 'quotedbl',\n 'numbersign',\n 'dollar',\n 'percent',\n 'ampersand',\n 'quoteright',\n 'parenleft',\n 'parenright',\n 'asterisk',\n 'plus',\n 'comma',\n 'hyphen',\n 'period',\n 'slash',\n 'zero',\n 'one',\n 'two',\n 'three',\n 'four',\n 'five',\n 'six',\n 'seven',\n 'eight',\n 'nine',\n 'colon',\n 'semicolon',\n 'less',\n 'equal',\n 'greater',\n 'question',\n 'at',\n 'A',\n 'B',\n 'C',\n 'D',\n 'E',\n 'F',\n 'G',\n 'H',\n 'I',\n 'J',\n 'K',\n 'L',\n 'M',\n 'N',\n 'O',\n 'P',\n 'Q',\n 'R',\n 'S',\n 'T',\n 'U',\n 'V',\n 'W',\n 'X',\n 'Y',\n 'Z',\n 'bracketleft',\n 'backslash',\n 'bracketright',\n 'asciicircum',\n 'underscore',\n 'quoteleft',\n 'a',\n 'b',\n 'c',\n 'd',\n 'e',\n 'f',\n 'g',\n 'h',\n 'i',\n 'j',\n 'k',\n 'l',\n 'm',\n 'n',\n 'o',\n 'p',\n 'q',\n 'r',\n 's',\n 't',\n 'u',\n 'v',\n 'w',\n 'x',\n 'y',\n 'z',\n 'braceleft',\n 'bar',\n 'braceright',\n 'asciitilde',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n 'exclamdown',\n 'cent',\n 'sterling',\n 'fraction',\n 'yen',\n 'florin',\n 'section',\n 'currency',\n 'quotesingle',\n 'quotedblleft',\n 'guillemotleft',\n 'guilsinglleft',\n 'guilsinglright',\n 'fi',\n 'fl',\n '',\n 'endash',\n 'dagger',\n 'daggerdbl',\n 'periodcentered',\n '',\n 'paragraph',\n 'bullet',\n 'quotesinglbase',\n 'quotedblbase',\n 'quotedblright',\n 'guillemotright',\n 'ellipsis',\n 'perthousand',\n '',\n 'questiondown',\n '',\n 'grave',\n 'acute',\n 'circumflex',\n 'tilde',\n 'macron',\n 'breve',\n 'dotaccent',\n 'dieresis',\n '',\n 'ring',\n 'cedilla',\n '',\n 'hungarumlaut',\n 'ogonek',\n 'caron',\n 'emdash',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n 'AE',\n '',\n 'ordfeminine',\n '',\n '',\n '',\n '',\n 'Lslash',\n 'Oslash',\n 'OE',\n 'ordmasculine',\n '',\n '',\n '',\n '',\n '',\n 'ae',\n '',\n '',\n '',\n 'dotlessi',\n '',\n '',\n 'lslash',\n 'oslash',\n 'oe',\n 'germandbls',\n];\n\nconst cffExpertEncoding = [\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n 'space',\n 'exclamsmall',\n 'Hungarumlautsmall',\n '',\n 'dollaroldstyle',\n 'dollarsuperior',\n 'ampersandsmall',\n 'Acutesmall',\n 'parenleftsuperior',\n 'parenrightsuperior',\n 'twodotenleader',\n 'onedotenleader',\n 'comma',\n 'hyphen',\n 'period',\n 'fraction',\n 'zerooldstyle',\n 'oneoldstyle',\n 'twooldstyle',\n 'threeoldstyle',\n 'fouroldstyle',\n 'fiveoldstyle',\n 'sixoldstyle',\n 'sevenoldstyle',\n 'eightoldstyle',\n 'nineoldstyle',\n 'colon',\n 'semicolon',\n 'commasuperior',\n 'threequartersemdash',\n 'periodsuperior',\n 'questionsmall',\n '',\n 'asuperior',\n 'bsuperior',\n 'centsuperior',\n 'dsuperior',\n 'esuperior',\n '',\n '',\n 'isuperior',\n '',\n '',\n 'lsuperior',\n 'msuperior',\n 'nsuperior',\n 'osuperior',\n '',\n '',\n 'rsuperior',\n 'ssuperior',\n 'tsuperior',\n '',\n 'ff',\n 'fi',\n 'fl',\n 'ffi',\n 'ffl',\n 'parenleftinferior',\n '',\n 'parenrightinferior',\n 'Circumflexsmall',\n 'hyphensuperior',\n 'Gravesmall',\n 'Asmall',\n 'Bsmall',\n 'Csmall',\n 'Dsmall',\n 'Esmall',\n 'Fsmall',\n 'Gsmall',\n 'Hsmall',\n 'Ismall',\n 'Jsmall',\n 'Ksmall',\n 'Lsmall',\n 'Msmall',\n 'Nsmall',\n 'Osmall',\n 'Psmall',\n 'Qsmall',\n 'Rsmall',\n 'Ssmall',\n 'Tsmall',\n 'Usmall',\n 'Vsmall',\n 'Wsmall',\n 'Xsmall',\n 'Ysmall',\n 'Zsmall',\n 'colonmonetary',\n 'onefitted',\n 'rupiah',\n 'Tildesmall',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n 'exclamdownsmall',\n 'centoldstyle',\n 'Lslashsmall',\n '',\n '',\n 'Scaronsmall',\n 'Zcaronsmall',\n 'Dieresissmall',\n 'Brevesmall',\n 'Caronsmall',\n '',\n 'Dotaccentsmall',\n '',\n '',\n 'Macronsmall',\n '',\n '',\n 'figuredash',\n 'hypheninferior',\n '',\n '',\n 'Ogoneksmall',\n 'Ringsmall',\n 'Cedillasmall',\n '',\n '',\n '',\n 'onequarter',\n 'onehalf',\n 'threequarters',\n 'questiondownsmall',\n 'oneeighth',\n 'threeeighths',\n 'fiveeighths',\n 'seveneighths',\n 'onethird',\n 'twothirds',\n '',\n '',\n 'zerosuperior',\n 'onesuperior',\n 'twosuperior',\n 'threesuperior',\n 'foursuperior',\n 'fivesuperior',\n 'sixsuperior',\n 'sevensuperior',\n 'eightsuperior',\n 'ninesuperior',\n 'zeroinferior',\n 'oneinferior',\n 'twoinferior',\n 'threeinferior',\n 'fourinferior',\n 'fiveinferior',\n 'sixinferior',\n 'seveninferior',\n 'eightinferior',\n 'nineinferior',\n 'centinferior',\n 'dollarinferior',\n 'periodinferior',\n 'commainferior',\n 'Agravesmall',\n 'Aacutesmall',\n 'Acircumflexsmall',\n 'Atildesmall',\n 'Adieresissmall',\n 'Aringsmall',\n 'AEsmall',\n 'Ccedillasmall',\n 'Egravesmall',\n 'Eacutesmall',\n 'Ecircumflexsmall',\n 'Edieresissmall',\n 'Igravesmall',\n 'Iacutesmall',\n 'Icircumflexsmall',\n 'Idieresissmall',\n 'Ethsmall',\n 'Ntildesmall',\n 'Ogravesmall',\n 'Oacutesmall',\n 'Ocircumflexsmall',\n 'Otildesmall',\n 'Odieresissmall',\n 'OEsmall',\n 'Oslashsmall',\n 'Ugravesmall',\n 'Uacutesmall',\n 'Ucircumflexsmall',\n 'Udieresissmall',\n 'Yacutesmall',\n 'Thornsmall',\n 'Ydieresissmall',\n];\n\n/**\n * This is the encoding used for fonts created from scratch.\n * It loops through all glyphs and finds the appropriate unicode value.\n * Since it's linear time, other encodings will be faster.\n * @exports opentype.DefaultEncoding\n * @class\n * @constructor\n * @param {opentype.Font}\n */\nfunction DefaultEncoding(font) {\n this.font = font;\n}\n\nDefaultEncoding.prototype.charToGlyphIndex = function (c) {\n const code = c.codePointAt(0);\n const glyphs = this.font.glyphs;\n if (glyphs) {\n for (let i = 0; i < glyphs.length; i += 1) {\n const glyph = glyphs.get(i);\n for (let j = 0; j < glyph.unicodes.length; j += 1) {\n if (glyph.unicodes[j] === code) {\n return i;\n }\n }\n }\n }\n return null;\n};\n\n/**\n * @exports opentype.CmapEncoding\n * @class\n * @constructor\n * @param {Object} cmap - a object with the cmap encoded data\n */\nfunction CmapEncoding(cmap) {\n this.cmap = cmap;\n}\n\n/**\n * @param {string} c - the character\n * @return {number} The glyph index.\n */\nCmapEncoding.prototype.charToGlyphIndex = function (c) {\n return this.cmap.glyphIndexMap[c.codePointAt(0)] || 0;\n};\n\n/**\n * @exports opentype.CffEncoding\n * @class\n * @constructor\n * @param {string} encoding - The encoding\n * @param {Array} charset - The character set.\n */\nfunction CffEncoding(encoding, charset) {\n this.encoding = encoding;\n this.charset = charset;\n}\n\n/**\n * @param {string} s - The character\n * @return {number} The index.\n */\nCffEncoding.prototype.charToGlyphIndex = function (s) {\n const code = s.codePointAt(0);\n const charName = this.encoding[code];\n return this.charset.indexOf(charName);\n};\n\nfunction addGlyphNamesAll(font) {\n let glyph;\n const glyphIndexMap = font.tables.cmap.glyphIndexMap;\n const charCodes = Object.keys(glyphIndexMap);\n\n for (let i = 0; i < charCodes.length; i += 1) {\n const c = charCodes[i];\n const glyphIndex = glyphIndexMap[c];\n glyph = font.glyphs.get(glyphIndex);\n glyph.addUnicode(parseInt(c));\n }\n}\n\nfunction addGlyphNamesToUnicodeMap(font) {\n font._IndexToUnicodeMap = {};\n\n const glyphIndexMap = font.tables.cmap.glyphIndexMap;\n const charCodes = Object.keys(glyphIndexMap);\n\n for (let i = 0; i < charCodes.length; i += 1) {\n const c = charCodes[i];\n let glyphIndex = glyphIndexMap[c];\n if (font._IndexToUnicodeMap[glyphIndex] === undefined) {\n font._IndexToUnicodeMap[glyphIndex] = {\n unicodes: [parseInt(c)],\n };\n } else {\n font._IndexToUnicodeMap[glyphIndex].unicodes.push(parseInt(c));\n }\n }\n}\n\n/**\n * @alias opentype.addGlyphNames\n * @param {opentype.Font}\n * @param {Object}\n */\nfunction addGlyphNames(font, opt) {\n if (opt.lowMemory) {\n addGlyphNamesToUnicodeMap(font);\n } else {\n addGlyphNamesAll(font);\n }\n}\n\nexport {\n cffStandardStrings,\n cffStandardEncoding,\n cffExpertEncoding,\n DefaultEncoding,\n CmapEncoding,\n CffEncoding,\n addGlyphNames,\n};\n","// Run-time checking of preconditions.\n\nfunction fail(message) {\n throw new Error(message);\n}\n\n// Precondition function that checks if the given predicate is true.\n// If not, it will throw an error.\nfunction argument(predicate, message) {\n if (!predicate) {\n fail(message);\n }\n}\n\nexport { fail, argument, argument as assert };\nexport default { fail, argument, assert: argument };\n","// The Glyph object\n\nimport check from './check';\nimport Path from './path';\n// import glyf from './tables/glyf' Can't be imported here, because it's a circular dependency\n\nfunction getPathDefinition(glyph, path) {\n let _path = path || new Path();\n return {\n configurable: true,\n\n get: function () {\n if (typeof _path === 'function') {\n _path = _path();\n }\n\n return _path;\n },\n\n set: function (p) {\n _path = p;\n },\n };\n}\n/**\n * @typedef GlyphOptions\n * @type Object\n * @property {string} [name] - The glyph name\n * @property {number} [unicode]\n * @property {Array} [unicodes]\n * @property {number} [xMin]\n * @property {number} [yMin]\n * @property {number} [xMax]\n * @property {number} [yMax]\n * @property {number} [advanceWidth]\n */\n\n// A Glyph is an individual mark that often corresponds to a character.\n// Some glyphs, such as ligatures, are a combination of many characters.\n// Glyphs are the basic building blocks of a font.\n//\n// The `Glyph` class contains utility methods for drawing the path and its points.\n/**\n * @exports opentype.Glyph\n * @class\n * @param {GlyphOptions}\n * @constructor\n */\nfunction Glyph(options) {\n // By putting all the code on a prototype function (which is only declared once)\n // we reduce the memory requirements for larger fonts by some 2%\n this.bindConstructorValues(options);\n}\n\n/**\n * @param {GlyphOptions}\n */\nGlyph.prototype.bindConstructorValues = function (options) {\n this.index = options.index || 0;\n\n // These three values cannot be deferred for memory optimization:\n this.name = options.name || null;\n this.unicode = options.unicode || undefined;\n this.unicodes =\n options.unicodes || options.unicode !== undefined\n ? [options.unicode]\n : [];\n\n // But by binding these values only when necessary, we reduce can\n // the memory requirements by almost 3% for larger fonts.\n if ('xMin' in options) {\n this.xMin = options.xMin;\n }\n\n if ('yMin' in options) {\n this.yMin = options.yMin;\n }\n\n if ('xMax' in options) {\n this.xMax = options.xMax;\n }\n\n if ('yMax' in options) {\n this.yMax = options.yMax;\n }\n\n if ('advanceWidth' in options) {\n this.advanceWidth = options.advanceWidth;\n }\n\n // The path for a glyph is the most memory intensive, and is bound as a value\n // with a getter/setter to ensure we actually do path parsing only once the\n // path is actually needed by anything.\n Object.defineProperty(this, 'path', getPathDefinition(this, options.path));\n};\n\n/**\n * @param {number}\n */\nGlyph.prototype.addUnicode = function (unicode) {\n if (this.unicodes.length === 0) {\n this.unicode = unicode;\n }\n\n this.unicodes.push(unicode);\n};\n\n// /**\n// * Calculate the minimum bounding box for this glyph.\n// * @return {opentype.BoundingBox}\n// */\n// Glyph.prototype.getBoundingBox = function() {\n// return this.path.getBoundingBox();\n// };\n\n/**\n * Convert the glyph to a Path we can draw on a drawing context.\n * @param {number} [x=0] - Horizontal position of the beginning of the text.\n * @param {number} [y=0] - Vertical position of the *baseline* of the text.\n * @param {number} [fontSize=72] - Font size in pixels. We scale the glyph units by `1 / unitsPerEm * fontSize`.\n * @param {Object=} options - xScale, yScale to stretch the glyph.\n * @param {opentype.Font} if hinting is to be used, the font\n * @return {opentype.Path}\n */\nGlyph.prototype.getPath = function (x, y, fontSize, options, font) {\n x = x !== undefined ? x : 0;\n y = y !== undefined ? y : 0;\n fontSize = fontSize !== undefined ? fontSize : 72;\n let commands;\n let hPoints;\n if (!options) options = {};\n let xScale = options.xScale;\n let yScale = options.yScale;\n\n if (options.hinting && font && font.hinting) {\n // in case of hinting, the hinting engine takes care\n // of scaling the points (not the path) before hinting.\n hPoints = this.path && font.hinting.exec(this, fontSize);\n // in case the hinting engine failed hPoints is undefined\n // and thus reverts to plain rending\n }\n\n if (hPoints) {\n // Call font.hinting.getCommands instead of `glyf.getPath(hPoints).commands` to avoid a circular dependency\n commands = font.hinting.getCommands(hPoints);\n x = Math.round(x);\n y = Math.round(y);\n // TODO in case of hinting xyScaling is not yet supported\n xScale = yScale = 1;\n } else {\n commands = this.path.commands;\n const scale = (1 / (this.path.unitsPerEm || 1000)) * fontSize;\n if (xScale === undefined) xScale = scale;\n if (yScale === undefined) yScale = scale;\n }\n\n const p = new Path();\n for (let i = 0; i < commands.length; i += 1) {\n const cmd = commands[i];\n if (cmd.type === 'M') {\n p.moveTo(x + cmd.x * xScale, y + -cmd.y * yScale);\n } else if (cmd.type === 'L') {\n p.lineTo(x + cmd.x * xScale, y + -cmd.y * yScale);\n } else if (cmd.type === 'Q') {\n p.quadraticCurveTo(\n x + cmd.x1 * xScale,\n y + -cmd.y1 * yScale,\n x + cmd.x * xScale,\n y + -cmd.y * yScale\n );\n } else if (cmd.type === 'C') {\n p.curveTo(\n x + cmd.x1 * xScale,\n y + -cmd.y1 * yScale,\n x + cmd.x2 * xScale,\n y + -cmd.y2 * yScale,\n x + cmd.x * xScale,\n y + -cmd.y * yScale\n );\n } else if (cmd.type === 'Z') {\n p.closePath();\n }\n }\n\n return p;\n};\n\n/**\n * Split the glyph into contours.\n * This function is here for backwards compatibility, and to\n * provide raw access to the TrueType glyph outlines.\n * @return {Array}\n */\nGlyph.prototype.getContours = function () {\n if (this.points === undefined) {\n return [];\n }\n\n const contours = [];\n let currentContour = [];\n for (let i = 0; i < this.points.length; i += 1) {\n const pt = this.points[i];\n currentContour.push(pt);\n if (pt.lastPointOfContour) {\n contours.push(currentContour);\n currentContour = [];\n }\n }\n\n check.argument(\n currentContour.length === 0,\n 'There are still points left in the current contour.'\n );\n return contours;\n};\n\n/**\n * Calculate the xMin/yMin/xMax/yMax/lsb/rsb for a Glyph.\n * @return {Object}\n */\nGlyph.prototype.getMetrics = function () {\n const commands = this.path.commands;\n const xCoords = [];\n const yCoords = [];\n for (let i = 0; i < commands.length; i += 1) {\n const cmd = commands[i];\n if (cmd.type !== 'Z') {\n xCoords.push(cmd.x);\n yCoords.push(cmd.y);\n }\n\n if (cmd.type === 'Q' || cmd.type === 'C') {\n xCoords.push(cmd.x1);\n yCoords.push(cmd.y1);\n }\n\n if (cmd.type === 'C') {\n xCoords.push(cmd.x2);\n yCoords.push(cmd.y2);\n }\n }\n\n const metrics = {\n xMin: Math.min.apply(null, xCoords),\n yMin: Math.min.apply(null, yCoords),\n xMax: Math.max.apply(null, xCoords),\n yMax: Math.max.apply(null, yCoords),\n leftSideBearing: this.leftSideBearing,\n };\n\n if (!isFinite(metrics.xMin)) {\n metrics.xMin = 0;\n }\n\n if (!isFinite(metrics.xMax)) {\n metrics.xMax = this.advanceWidth;\n }\n\n if (!isFinite(metrics.yMin)) {\n metrics.yMin = 0;\n }\n\n if (!isFinite(metrics.yMax)) {\n metrics.yMax = 0;\n }\n\n metrics.rightSideBearing =\n this.advanceWidth -\n metrics.leftSideBearing -\n (metrics.xMax - metrics.xMin);\n return metrics;\n};\n\nexport default Glyph;\n","// The GlyphSet object\n\nimport Glyph from './glyph';\n\n// Define a property on the glyph that depends on the path being loaded.\nfunction defineDependentProperty(glyph, externalName, internalName) {\n Object.defineProperty(glyph, externalName, {\n get: function () {\n // Request the path property to make sure the path is loaded.\n glyph.path; // jshint ignore:line\n return glyph[internalName];\n },\n set: function (newValue) {\n glyph[internalName] = newValue;\n },\n enumerable: true,\n configurable: true,\n });\n}\n\n/**\n * A GlyphSet represents all glyphs available in the font, but modelled using\n * a deferred glyph loader, for retrieving glyphs only once they are absolutely\n * necessary, to keep the memory footprint down.\n * @exports opentype.GlyphSet\n * @class\n * @param {opentype.Font}\n * @param {Array}\n */\nfunction GlyphSet(font, glyphs) {\n this.font = font;\n this.glyphs = {};\n if (Array.isArray(glyphs)) {\n for (let i = 0; i < glyphs.length; i++) {\n const glyph = glyphs[i];\n glyph.path.unitsPerEm = font.unitsPerEm;\n this.glyphs[i] = glyph;\n }\n }\n\n this.length = (glyphs && glyphs.length) || 0;\n}\n\n/**\n * @param {number} index\n * @return {opentype.Glyph}\n */\nGlyphSet.prototype.get = function (index) {\n // this.glyphs[index] is 'undefined' when low memory mode is on. glyph is pushed on request only.\n if (this.glyphs[index] === undefined) {\n this.font._push(index);\n if (typeof this.glyphs[index] === 'function') {\n this.glyphs[index] = this.glyphs[index]();\n }\n\n let glyph = this.glyphs[index];\n let unicodeObj = this.font._IndexToUnicodeMap[index];\n\n if (unicodeObj) {\n for (let j = 0; j < unicodeObj.unicodes.length; j++)\n glyph.addUnicode(unicodeObj.unicodes[j]);\n }\n\n this.glyphs[index].advanceWidth =\n this.font._hmtxTableData[index].advanceWidth;\n this.glyphs[index].leftSideBearing =\n this.font._hmtxTableData[index].leftSideBearing;\n } else {\n if (typeof this.glyphs[index] === 'function') {\n this.glyphs[index] = this.glyphs[index]();\n }\n }\n\n return this.glyphs[index];\n};\n\n/**\n * @param {number} index\n * @param {Object}\n */\nGlyphSet.prototype.push = function (index, loader) {\n this.glyphs[index] = loader;\n this.length++;\n};\n\n/**\n * @alias opentype.glyphLoader\n * @param {opentype.Font} font\n * @param {number} index\n * @return {opentype.Glyph}\n */\nfunction glyphLoader(font, index) {\n return new Glyph({ index: index, font: font });\n}\n\n/**\n * Generate a stub glyph that can be filled with all metadata *except*\n * the \"points\" and \"path\" properties, which must be loaded only once\n * the glyph's path is actually requested for text shaping.\n * @alias opentype.ttfGlyphLoader\n * @param {opentype.Font} font\n * @param {number} index\n * @param {Function} parseGlyph\n * @param {Object} data\n * @param {number} position\n * @param {Function} buildPath\n * @return {opentype.Glyph}\n */\nfunction ttfGlyphLoader(font, index, parseGlyph, data, position, buildPath) {\n return function () {\n const glyph = new Glyph({ index: index, font: font });\n\n glyph.path = function () {\n parseGlyph(glyph, data, position);\n const path = buildPath(font.glyphs, glyph);\n path.unitsPerEm = font.unitsPerEm;\n return path;\n };\n\n defineDependentProperty(glyph, 'xMin', '_xMin');\n defineDependentProperty(glyph, 'xMax', '_xMax');\n defineDependentProperty(glyph, 'yMin', '_yMin');\n defineDependentProperty(glyph, 'yMax', '_yMax');\n\n return glyph;\n };\n}\n/**\n * @alias opentype.cffGlyphLoader\n * @param {opentype.Font} font\n * @param {number} index\n * @param {Function} parseCFFCharstring\n * @param {string} charstring\n * @return {opentype.Glyph}\n */\nfunction cffGlyphLoader(font, index, parseCFFCharstring, charstring) {\n return function () {\n const glyph = new Glyph({ index: index, font: font });\n\n glyph.path = function () {\n const path = parseCFFCharstring(font, glyph, charstring);\n path.unitsPerEm = font.unitsPerEm;\n return path;\n };\n\n return glyph;\n };\n}\n\nexport default { GlyphSet, glyphLoader, ttfGlyphLoader, cffGlyphLoader };\n","// The Layout object is the prototype of Substitution objects, and provides\n// utility methods to manipulate common layout tables (GPOS, GSUB, GDEF...)\n\nimport check from './check';\n\nfunction searchTag(arr, tag) {\n /* jshint bitwise: false */\n let imin = 0;\n let imax = arr.length - 1;\n while (imin <= imax) {\n const imid = (imin + imax) >>> 1;\n const val = arr[imid].tag;\n if (val === tag) {\n return imid;\n } else if (val < tag) {\n imin = imid + 1;\n } else {\n imax = imid - 1;\n }\n }\n // Not found: return -1-insertion point\n return -imin - 1;\n}\n\nfunction binSearch(arr, value) {\n /* jshint bitwise: false */\n let imin = 0;\n let imax = arr.length - 1;\n while (imin <= imax) {\n const imid = (imin + imax) >>> 1;\n const val = arr[imid];\n if (val === value) {\n return imid;\n } else if (val < value) {\n imin = imid + 1;\n } else {\n imax = imid - 1;\n }\n }\n // Not found: return -1-insertion point\n return -imin - 1;\n}\n\n// binary search in a list of ranges (coverage, class definition)\nfunction searchRange(ranges, value) {\n // jshint bitwise: false\n let range;\n let imin = 0;\n let imax = ranges.length - 1;\n while (imin <= imax) {\n const imid = (imin + imax) >>> 1;\n range = ranges[imid];\n const start = range.start;\n if (start === value) {\n return range;\n } else if (start < value) {\n imin = imid + 1;\n } else {\n imax = imid - 1;\n }\n }\n if (imin > 0) {\n range = ranges[imin - 1];\n if (value > range.end) return 0;\n return range;\n }\n}\n\n/**\n * @exports opentype.Layout\n * @class\n */\nfunction Layout(font, tableName) {\n this.font = font;\n this.tableName = tableName;\n}\n\nLayout.prototype = {\n /**\n * Binary search an object by \"tag\" property\n * @instance\n * @function searchTag\n * @memberof opentype.Layout\n * @param {Array} arr\n * @param {string} tag\n * @return {number}\n */\n searchTag: searchTag,\n\n /**\n * Binary search in a list of numbers\n * @instance\n * @function binSearch\n * @memberof opentype.Layout\n * @param {Array} arr\n * @param {number} value\n * @return {number}\n */\n binSearch: binSearch,\n\n /**\n * Get or create the Layout table (GSUB, GPOS etc).\n * @param {boolean} create - Whether to create a new one.\n * @return {Object} The GSUB or GPOS table.\n */\n getTable: function (create) {\n let layout = this.font.tables[this.tableName];\n if (!layout && create) {\n layout = this.font.tables[this.tableName] =\n this.createDefaultTable();\n }\n return layout;\n },\n\n /**\n * Returns the best bet for a script name.\n * Returns 'DFLT' if it exists.\n * If not, returns 'latn' if it exists.\n * If neither exist, returns undefined.\n */\n getDefaultScriptName: function () {\n let layout = this.getTable();\n if (!layout) {\n return;\n }\n let hasLatn = false;\n for (let i = 0; i < layout.scripts.length; i++) {\n const name = layout.scripts[i].tag;\n if (name === 'DFLT') return name;\n if (name === 'latn') hasLatn = true;\n }\n if (hasLatn) return 'latn';\n },\n\n /**\n * Returns all LangSysRecords in the given script.\n * @instance\n * @param {string} [script='DFLT']\n * @param {boolean} create - forces the creation of this script table if it doesn't exist.\n * @return {Object} An object with tag and script properties.\n */\n getScriptTable: function (script, create) {\n const layout = this.getTable(create);\n if (layout) {\n script = script || 'DFLT';\n const scripts = layout.scripts;\n const pos = searchTag(layout.scripts, script);\n if (pos >= 0) {\n return scripts[pos].script;\n } else if (create) {\n const scr = {\n tag: script,\n script: {\n defaultLangSys: {\n reserved: 0,\n reqFeatureIndex: 0xffff,\n featureIndexes: [],\n },\n langSysRecords: [],\n },\n };\n scripts.splice(-1 - pos, 0, scr);\n return scr.script;\n }\n }\n },\n\n /**\n * Returns a language system table\n * @instance\n * @param {string} [script='DFLT']\n * @param {string} [language='dlft']\n * @param {boolean} create - forces the creation of this langSysTable if it doesn't exist.\n * @return {Object}\n */\n getLangSysTable: function (script, language, create) {\n const scriptTable = this.getScriptTable(script, create);\n if (scriptTable) {\n if (!language || language === 'dflt' || language === 'DFLT') {\n return scriptTable.defaultLangSys;\n }\n const pos = searchTag(scriptTable.langSysRecords, language);\n if (pos >= 0) {\n return scriptTable.langSysRecords[pos].langSys;\n } else if (create) {\n const langSysRecord = {\n tag: language,\n langSys: {\n reserved: 0,\n reqFeatureIndex: 0xffff,\n featureIndexes: [],\n },\n };\n scriptTable.langSysRecords.splice(-1 - pos, 0, langSysRecord);\n return langSysRecord.langSys;\n }\n }\n },\n\n /**\n * Get a specific feature table.\n * @instance\n * @param {string} [script='DFLT']\n * @param {string} [language='dlft']\n * @param {string} feature - One of the codes listed at https://www.microsoft.com/typography/OTSPEC/featurelist.htm\n * @param {boolean} create - forces the creation of the feature table if it doesn't exist.\n * @return {Object}\n */\n getFeatureTable: function (script, language, feature, create) {\n const langSysTable = this.getLangSysTable(script, language, create);\n if (langSysTable) {\n let featureRecord;\n const featIndexes = langSysTable.featureIndexes;\n const allFeatures = this.font.tables[this.tableName].features;\n // The FeatureIndex array of indices is in arbitrary order,\n // even if allFeatures is sorted alphabetically by feature tag.\n for (let i = 0; i < featIndexes.length; i++) {\n featureRecord = allFeatures[featIndexes[i]];\n if (featureRecord.tag === feature) {\n return featureRecord.feature;\n }\n }\n if (create) {\n const index = allFeatures.length;\n // Automatic ordering of features would require to shift feature indexes in the script list.\n check.assert(\n index === 0 || feature >= allFeatures[index - 1].tag,\n 'Features must be added in alphabetical order.'\n );\n featureRecord = {\n tag: feature,\n feature: { params: 0, lookupListIndexes: [] },\n };\n allFeatures.push(featureRecord);\n featIndexes.push(index);\n return featureRecord.feature;\n }\n }\n },\n\n /**\n * Get the lookup tables of a given type for a script/language/feature.\n * @instance\n * @param {string} [script='DFLT']\n * @param {string} [language='dlft']\n * @param {string} feature - 4-letter feature code\n * @param {number} lookupType - 1 to 9\n * @param {boolean} create - forces the creation of the lookup table if it doesn't exist, with no subtables.\n * @return {Object[]}\n */\n getLookupTables: function (script, language, feature, lookupType, create) {\n const featureTable = this.getFeatureTable(\n script,\n language,\n feature,\n create\n );\n const tables = [];\n if (featureTable) {\n let lookupTable;\n const lookupListIndexes = featureTable.lookupListIndexes;\n const allLookups = this.font.tables[this.tableName].lookups;\n // lookupListIndexes are in no particular order, so use naive search.\n for (let i = 0; i < lookupListIndexes.length; i++) {\n lookupTable = allLookups[lookupListIndexes[i]];\n if (lookupTable.lookupType === lookupType) {\n tables.push(lookupTable);\n }\n }\n if (tables.length === 0 && create) {\n lookupTable = {\n lookupType: lookupType,\n lookupFlag: 0,\n subtables: [],\n markFilteringSet: undefined,\n };\n const index = allLookups.length;\n allLookups.push(lookupTable);\n lookupListIndexes.push(index);\n return [lookupTable];\n }\n }\n return tables;\n },\n\n /**\n * Find a glyph in a class definition table\n * https://docs.microsoft.com/en-us/typography/opentype/spec/chapter2#class-definition-table\n * @param {object} classDefTable - an OpenType Layout class definition table\n * @param {number} glyphIndex - the index of the glyph to find\n * @returns {number} -1 if not found\n */\n getGlyphClass: function (classDefTable, glyphIndex) {\n switch (classDefTable.format) {\n case 1:\n if (\n classDefTable.startGlyph <= glyphIndex &&\n glyphIndex <\n classDefTable.startGlyph + classDefTable.classes.length\n ) {\n return classDefTable.classes[\n glyphIndex - classDefTable.startGlyph\n ];\n }\n return 0;\n case 2:\n const range = searchRange(classDefTable.ranges, glyphIndex);\n return range ? range.classId : 0;\n }\n },\n\n /**\n * Find a glyph in a coverage table\n * https://docs.microsoft.com/en-us/typography/opentype/spec/chapter2#coverage-table\n * @param {object} coverageTable - an OpenType Layout coverage table\n * @param {number} glyphIndex - the index of the glyph to find\n * @returns {number} -1 if not found\n */\n getCoverageIndex: function (coverageTable, glyphIndex) {\n switch (coverageTable.format) {\n case 1:\n const index = binSearch(coverageTable.glyphs, glyphIndex);\n return index >= 0 ? index : -1;\n case 2:\n const range = searchRange(coverageTable.ranges, glyphIndex);\n return range ? range.index + glyphIndex - range.start : -1;\n }\n },\n\n /**\n * Returns the list of glyph indexes of a coverage table.\n * Format 1: the list is stored raw\n * Format 2: compact list as range records.\n * @instance\n * @param {Object} coverageTable\n * @return {Array}\n */\n expandCoverage: function (coverageTable) {\n if (coverageTable.format === 1) {\n return coverageTable.glyphs;\n } else {\n const glyphs = [];\n const ranges = coverageTable.ranges;\n for (let i = 0; i < ranges.length; i++) {\n const range = ranges[i];\n const start = range.start;\n const end = range.end;\n for (let j = start; j <= end; j++) {\n glyphs.push(j);\n }\n }\n return glyphs;\n }\n },\n};\n\nexport default Layout;\n","// The Position object provides utility methods to manipulate\n// the GPOS position table.\n\nimport Layout from './layout';\n\n/**\n * @exports opentype.Position\n * @class\n * @extends opentype.Layout\n * @param {opentype.Font}\n * @constructor\n */\nfunction Position(font) {\n Layout.call(this, font, 'gpos');\n}\n\nPosition.prototype = Layout.prototype;\n\n/**\n * Init some data for faster and easier access later.\n */\nPosition.prototype.init = function() {\n const script = this.getDefaultScriptName();\n this.defaultKerningTables = this.getKerningTables(script);\n};\n\n/**\n * Find a glyph pair in a list of lookup tables of type 2 and retrieve the xAdvance kerning value.\n *\n * @param {integer} leftIndex - left glyph index\n * @param {integer} rightIndex - right glyph index\n * @returns {integer}\n */\nPosition.prototype.getKerningValue = function(kerningLookups, leftIndex, rightIndex) {\n for (let i = 0; i < kerningLookups.length; i++) {\n const subtables = kerningLookups[i].subtables;\n for (let j = 0; j < subtables.length; j++) {\n const subtable = subtables[j];\n const covIndex = this.getCoverageIndex(subtable.coverage, leftIndex);\n if (covIndex < 0) continue;\n switch (subtable.posFormat) {\n case 1:\n // Search Pair Adjustment Positioning Format 1\n let pairSet = subtable.pairSets[covIndex];\n for (let k = 0; k < pairSet.length; k++) {\n let pair = pairSet[k];\n if (pair.secondGlyph === rightIndex) {\n return pair.value1 && pair.value1.xAdvance || 0;\n }\n }\n break; // left glyph found, not right glyph - try next subtable\n case 2:\n // Search Pair Adjustment Positioning Format 2\n const class1 = this.getGlyphClass(subtable.classDef1, leftIndex);\n const class2 = this.getGlyphClass(subtable.classDef2, rightIndex);\n const pair = subtable.classRecords[class1][class2];\n return pair.value1 && pair.value1.xAdvance || 0;\n }\n }\n }\n return 0;\n};\n\n/**\n * List all kerning lookup tables.\n *\n * @param {string} [script='DFLT'] - use font.position.getDefaultScriptName() for a better default value\n * @param {string} [language='dflt']\n * @return {object[]} The list of kerning lookup tables (may be empty), or undefined if there is no GPOS table (and we should use the kern table)\n */\nPosition.prototype.getKerningTables = function(script, language) {\n if (this.font.tables.gpos) {\n return this.getLookupTables(script, language, 'kern', 2);\n }\n};\n\nexport default Position;\n","// The Substitution object provides utility methods to manipulate\n// the GSUB substitution table.\n\nimport check from './check';\nimport Layout from './layout';\n\n/**\n * @exports opentype.Substitution\n * @class\n * @extends opentype.Layout\n * @param {opentype.Font}\n * @constructor\n */\nfunction Substitution(font) {\n Layout.call(this, font, 'gsub');\n}\n\n// Check if 2 arrays of primitives are equal.\nfunction arraysEqual(ar1, ar2) {\n const n = ar1.length;\n if (n !== ar2.length) {\n return false;\n }\n for (let i = 0; i < n; i++) {\n if (ar1[i] !== ar2[i]) {\n return false;\n }\n }\n return true;\n}\n\n// Find the first subtable of a lookup table in a particular format.\nfunction getSubstFormat(lookupTable, format, defaultSubtable) {\n const subtables = lookupTable.subtables;\n for (let i = 0; i < subtables.length; i++) {\n const subtable = subtables[i];\n if (subtable.substFormat === format) {\n return subtable;\n }\n }\n if (defaultSubtable) {\n subtables.push(defaultSubtable);\n return defaultSubtable;\n }\n return undefined;\n}\n\nSubstitution.prototype = Layout.prototype;\n\n/**\n * Create a default GSUB table.\n * @return {Object} gsub - The GSUB table.\n */\nSubstitution.prototype.createDefaultTable = function () {\n // Generate a default empty GSUB table with just a DFLT script and dflt lang sys.\n return {\n version: 1,\n scripts: [\n {\n tag: 'DFLT',\n script: {\n defaultLangSys: {\n reserved: 0,\n reqFeatureIndex: 0xffff,\n featureIndexes: [],\n },\n langSysRecords: [],\n },\n },\n ],\n features: [],\n lookups: [],\n };\n};\n\n/**\n * List all single substitutions (lookup type 1) for a given script, language, and feature.\n * @param {string} [script='DFLT']\n * @param {string} [language='dflt']\n * @param {string} feature - 4-character feature name ('aalt', 'salt', 'ss01'...)\n * @return {Array} substitutions - The list of substitutions.\n */\nSubstitution.prototype.getSingle = function (feature, script, language) {\n const substitutions = [];\n const lookupTables = this.getLookupTables(script, language, feature, 1);\n for (let idx = 0; idx < lookupTables.length; idx++) {\n const subtables = lookupTables[idx].subtables;\n for (let i = 0; i < subtables.length; i++) {\n const subtable = subtables[i];\n const glyphs = this.expandCoverage(subtable.coverage);\n let j;\n if (subtable.substFormat === 1) {\n const delta = subtable.deltaGlyphId;\n for (j = 0; j < glyphs.length; j++) {\n const glyph = glyphs[j];\n substitutions.push({ sub: glyph, by: glyph + delta });\n }\n } else {\n const substitute = subtable.substitute;\n for (j = 0; j < glyphs.length; j++) {\n substitutions.push({ sub: glyphs[j], by: substitute[j] });\n }\n }\n }\n }\n return substitutions;\n};\n\n/**\n * List all multiple substitutions (lookup type 2) for a given script, language, and feature.\n * @param {string} [script='DFLT']\n * @param {string} [language='dflt']\n * @param {string} feature - 4-character feature name ('ccmp', 'stch')\n * @return {Array} substitutions - The list of substitutions.\n */\nSubstitution.prototype.getMultiple = function (feature, script, language) {\n const substitutions = [];\n const lookupTables = this.getLookupTables(script, language, feature, 2);\n for (let idx = 0; idx < lookupTables.length; idx++) {\n const subtables = lookupTables[idx].subtables;\n for (let i = 0; i < subtables.length; i++) {\n const subtable = subtables[i];\n const glyphs = this.expandCoverage(subtable.coverage);\n let j;\n\n for (j = 0; j < glyphs.length; j++) {\n const glyph = glyphs[j];\n const replacements = subtable.sequences[j];\n substitutions.push({ sub: glyph, by: replacements });\n }\n }\n }\n return substitutions;\n};\n\n/**\n * List all alternates (lookup type 3) for a given script, language, and feature.\n * @param {string} [script='DFLT']\n * @param {string} [language='dflt']\n * @param {string} feature - 4-character feature name ('aalt', 'salt'...)\n * @return {Array} alternates - The list of alternates\n */\nSubstitution.prototype.getAlternates = function (feature, script, language) {\n const alternates = [];\n const lookupTables = this.getLookupTables(script, language, feature, 3);\n for (let idx = 0; idx < lookupTables.length; idx++) {\n const subtables = lookupTables[idx].subtables;\n for (let i = 0; i < subtables.length; i++) {\n const subtable = subtables[i];\n const glyphs = this.expandCoverage(subtable.coverage);\n const alternateSets = subtable.alternateSets;\n for (let j = 0; j < glyphs.length; j++) {\n alternates.push({ sub: glyphs[j], by: alternateSets[j] });\n }\n }\n }\n return alternates;\n};\n\n/**\n * List all ligatures (lookup type 4) for a given script, language, and feature.\n * The result is an array of ligature objects like { sub: [ids], by: id }\n * @param {string} feature - 4-letter feature name ('liga', 'rlig', 'dlig'...)\n * @param {string} [script='DFLT']\n * @param {string} [language='dflt']\n * @return {Array} ligatures - The list of ligatures.\n */\nSubstitution.prototype.getLigatures = function (feature, script, language) {\n const ligatures = [];\n const lookupTables = this.getLookupTables(script, language, feature, 4);\n for (let idx = 0; idx < lookupTables.length; idx++) {\n const subtables = lookupTables[idx].subtables;\n for (let i = 0; i < subtables.length; i++) {\n const subtable = subtables[i];\n const glyphs = this.expandCoverage(subtable.coverage);\n const ligatureSets = subtable.ligatureSets;\n for (let j = 0; j < glyphs.length; j++) {\n const startGlyph = glyphs[j];\n const ligSet = ligatureSets[j];\n for (let k = 0; k < ligSet.length; k++) {\n const lig = ligSet[k];\n ligatures.push({\n sub: [startGlyph].concat(lig.components),\n by: lig.ligGlyph,\n });\n }\n }\n }\n }\n return ligatures;\n};\n\n/**\n * Add or modify a single substitution (lookup type 1)\n * Format 2, more flexible, is always used.\n * @param {string} feature - 4-letter feature name ('liga', 'rlig', 'dlig'...)\n * @param {Object} substitution - { sub: id, by: id } (format 1 is not supported)\n * @param {string} [script='DFLT']\n * @param {string} [language='dflt']\n */\nSubstitution.prototype.addSingle = function (\n feature,\n substitution,\n script,\n language\n) {\n const lookupTable = this.getLookupTables(\n script,\n language,\n feature,\n 1,\n true\n )[0];\n const subtable = getSubstFormat(lookupTable, 2, {\n // lookup type 1 subtable, format 2, coverage format 1\n substFormat: 2,\n coverage: { format: 1, glyphs: [] },\n substitute: [],\n });\n check.assert(\n subtable.coverage.format === 1,\n 'Single: unable to modify coverage table format ' +\n subtable.coverage.format\n );\n const coverageGlyph = substitution.sub;\n let pos = this.binSearch(subtable.coverage.glyphs, coverageGlyph);\n if (pos < 0) {\n pos = -1 - pos;\n subtable.coverage.glyphs.splice(pos, 0, coverageGlyph);\n subtable.substitute.splice(pos, 0, 0);\n }\n subtable.substitute[pos] = substitution.by;\n};\n\n/**\n * Add or modify a multiple substitution (lookup type 2)\n * @param {string} feature - 4-letter feature name ('ccmp', 'stch')\n * @param {Object} substitution - { sub: id, by: [id] } for format 2.\n * @param {string} [script='DFLT']\n * @param {string} [language='dflt']\n */\nSubstitution.prototype.addMultiple = function (\n feature,\n substitution,\n script,\n language\n) {\n check.assert(\n substitution.by instanceof Array && substitution.by.length > 1,\n 'Multiple: \"by\" must be an array of two or more ids'\n );\n const lookupTable = this.getLookupTables(\n script,\n language,\n feature,\n 2,\n true\n )[0];\n const subtable = getSubstFormat(lookupTable, 1, {\n // lookup type 2 subtable, format 1, coverage format 1\n substFormat: 1,\n coverage: { format: 1, glyphs: [] },\n sequences: [],\n });\n check.assert(\n subtable.coverage.format === 1,\n 'Multiple: unable to modify coverage table format ' +\n subtable.coverage.format\n );\n const coverageGlyph = substitution.sub;\n let pos = this.binSearch(subtable.coverage.glyphs, coverageGlyph);\n if (pos < 0) {\n pos = -1 - pos;\n subtable.coverage.glyphs.splice(pos, 0, coverageGlyph);\n subtable.sequences.splice(pos, 0, 0);\n }\n subtable.sequences[pos] = substitution.by;\n};\n\n/**\n * Add or modify an alternate substitution (lookup type 3)\n * @param {string} feature - 4-letter feature name ('liga', 'rlig', 'dlig'...)\n * @param {Object} substitution - { sub: id, by: [ids] }\n * @param {string} [script='DFLT']\n * @param {string} [language='dflt']\n */\nSubstitution.prototype.addAlternate = function (\n feature,\n substitution,\n script,\n language\n) {\n const lookupTable = this.getLookupTables(\n script,\n language,\n feature,\n 3,\n true\n )[0];\n const subtable = getSubstFormat(lookupTable, 1, {\n // lookup type 3 subtable, format 1, coverage format 1\n substFormat: 1,\n coverage: { format: 1, glyphs: [] },\n alternateSets: [],\n });\n check.assert(\n subtable.coverage.format === 1,\n 'Alternate: unable to modify coverage table format ' +\n subtable.coverage.format\n );\n const coverageGlyph = substitution.sub;\n let pos = this.binSearch(subtable.coverage.glyphs, coverageGlyph);\n if (pos < 0) {\n pos = -1 - pos;\n subtable.coverage.glyphs.splice(pos, 0, coverageGlyph);\n subtable.alternateSets.splice(pos, 0, 0);\n }\n subtable.alternateSets[pos] = substitution.by;\n};\n\n/**\n * Add a ligature (lookup type 4)\n * Ligatures with more components must be stored ahead of those with fewer components in order to be found\n * @param {string} feature - 4-letter feature name ('liga', 'rlig', 'dlig'...)\n * @param {Object} ligature - { sub: [ids], by: id }\n * @param {string} [script='DFLT']\n * @param {string} [language='dflt']\n */\nSubstitution.prototype.addLigature = function (\n feature,\n ligature,\n script,\n language\n) {\n const lookupTable = this.getLookupTables(\n script,\n language,\n feature,\n 4,\n true\n )[0];\n let subtable = lookupTable.subtables[0];\n if (!subtable) {\n subtable = {\n // lookup type 4 subtable, format 1, coverage format 1\n substFormat: 1,\n coverage: { format: 1, glyphs: [] },\n ligatureSets: [],\n };\n lookupTable.subtables[0] = subtable;\n }\n check.assert(\n subtable.coverage.format === 1,\n 'Ligature: unable to modify coverage table format ' +\n subtable.coverage.format\n );\n const coverageGlyph = ligature.sub[0];\n const ligComponents = ligature.sub.slice(1);\n const ligatureTable = {\n ligGlyph: ligature.by,\n components: ligComponents,\n };\n let pos = this.binSearch(subtable.coverage.glyphs, coverageGlyph);\n if (pos >= 0) {\n // ligatureSet already exists\n const ligatureSet = subtable.ligatureSets[pos];\n for (let i = 0; i < ligatureSet.length; i++) {\n // If ligature already exists, return.\n if (arraysEqual(ligatureSet[i].components, ligComponents)) {\n return;\n }\n }\n // ligature does not exist: add it.\n ligatureSet.push(ligatureTable);\n } else {\n // Create a new ligatureSet and add coverage for the first glyph.\n pos = -1 - pos;\n subtable.coverage.glyphs.splice(pos, 0, coverageGlyph);\n subtable.ligatureSets.splice(pos, 0, [ligatureTable]);\n }\n};\n\n/**\n * List all feature data for a given script and language.\n * @param {string} feature - 4-letter feature name\n * @param {string} [script='DFLT']\n * @param {string} [language='dflt']\n * @return {Array} substitutions - The list of substitutions.\n */\nSubstitution.prototype.getFeature = function (feature, script, language) {\n if (/ss\\d\\d/.test(feature)) {\n // ss01 - ss20\n return this.getSingle(feature, script, language);\n }\n switch (feature) {\n case 'aalt':\n case 'salt':\n return this.getSingle(feature, script, language).concat(\n this.getAlternates(feature, script, language)\n );\n case 'dlig':\n case 'liga':\n case 'rlig':\n return this.getLigatures(feature, script, language);\n case 'ccmp':\n return this.getMultiple(feature, script, language).concat(\n this.getLigatures(feature, script, language)\n );\n case 'stch':\n return this.getMultiple(feature, script, language);\n }\n return undefined;\n};\n\n/**\n * Add a substitution to a feature for a given script and language.\n * @param {string} feature - 4-letter feature name\n * @param {Object} sub - the substitution to add (an object like { sub: id or [ids], by: id or [ids] })\n * @param {string} [script='DFLT']\n * @param {string} [language='dflt']\n */\nSubstitution.prototype.add = function (feature, sub, script, language) {\n if (/ss\\d\\d/.test(feature)) {\n // ss01 - ss20\n return this.addSingle(feature, sub, script, language);\n }\n switch (feature) {\n case 'aalt':\n case 'salt':\n if (typeof sub.by === 'number') {\n return this.addSingle(feature, sub, script, language);\n }\n return this.addAlternate(feature, sub, script, language);\n case 'dlig':\n case 'liga':\n case 'rlig':\n return this.addLigature(feature, sub, script, language);\n case 'ccmp':\n if (sub.by instanceof Array) {\n return this.addMultiple(feature, sub, script, language);\n }\n return this.addLigature(feature, sub, script, language);\n }\n return undefined;\n};\n\nexport default Substitution;\n","function nodeBufferToArrayBuffer(buffer) {\n const ab = new ArrayBuffer(buffer.length);\n const view = new Uint8Array(ab);\n for (let i = 0; i < buffer.length; ++i) {\n view[i] = buffer[i];\n }\n\n return ab;\n}\n\nfunction checkArgument(expression, message) {\n if (!expression) {\n throw message;\n }\n}\n\nexport { nodeBufferToArrayBuffer, checkArgument };\n","// Parsing utility functions\n\nimport check from './check';\n\n// Retrieve an unsigned byte from the DataView.\nfunction getByte(dataView, offset) {\n return dataView.getUint8(offset);\n}\n\n// Retrieve an unsigned 16-bit short from the DataView.\n// The value is stored in big endian.\nfunction getUShort(dataView, offset) {\n return dataView.getUint16(offset, false);\n}\n\n// Retrieve a signed 16-bit short from the DataView.\n// The value is stored in big endian.\nfunction getShort(dataView, offset) {\n return dataView.getInt16(offset, false);\n}\n\n// Retrieve an unsigned 32-bit long from the DataView.\n// The value is stored in big endian.\nfunction getULong(dataView, offset) {\n return dataView.getUint32(offset, false);\n}\n\n// Retrieve a 32-bit signed fixed-point number (16.16) from the DataView.\n// The value is stored in big endian.\nfunction getFixed(dataView, offset) {\n const decimal = dataView.getInt16(offset, false);\n const fraction = dataView.getUint16(offset + 2, false);\n return decimal + fraction / 65535;\n}\n\n// Retrieve a 4-character tag from the DataView.\n// Tags are used to identify tables.\nfunction getTag(dataView, offset) {\n let tag = '';\n for (let i = offset; i < offset + 4; i += 1) {\n tag += String.fromCharCode(dataView.getInt8(i));\n }\n\n return tag;\n}\n\n// Retrieve an offset from the DataView.\n// Offsets are 1 to 4 bytes in length, depending on the offSize argument.\nfunction getOffset(dataView, offset, offSize) {\n let v = 0;\n for (let i = 0; i < offSize; i += 1) {\n v <<= 8;\n v += dataView.getUint8(offset + i);\n }\n\n return v;\n}\n\n// Retrieve a number of bytes from start offset to the end offset from the DataView.\nfunction getBytes(dataView, startOffset, endOffset) {\n const bytes = [];\n for (let i = startOffset; i < endOffset; i += 1) {\n bytes.push(dataView.getUint8(i));\n }\n\n return bytes;\n}\n\n// Convert the list of bytes to a string.\nfunction bytesToString(bytes) {\n let s = '';\n for (let i = 0; i < bytes.length; i += 1) {\n s += String.fromCharCode(bytes[i]);\n }\n\n return s;\n}\n\nconst typeOffsets = {\n byte: 1,\n uShort: 2,\n short: 2,\n uLong: 4,\n fixed: 4,\n longDateTime: 8,\n tag: 4\n};\n\n// A stateful parser that changes the offset whenever a value is retrieved.\n// The data is a DataView.\nfunction Parser(data, offset) {\n this.data = data;\n this.offset = offset;\n this.relativeOffset = 0;\n}\n\nParser.prototype.parseByte = function() {\n const v = this.data.getUint8(this.offset + this.relativeOffset);\n this.relativeOffset += 1;\n return v;\n};\n\nParser.prototype.parseChar = function() {\n const v = this.data.getInt8(this.offset + this.relativeOffset);\n this.relativeOffset += 1;\n return v;\n};\n\nParser.prototype.parseCard8 = Parser.prototype.parseByte;\n\nParser.prototype.parseUShort = function() {\n const v = this.data.getUint16(this.offset + this.relativeOffset);\n this.relativeOffset += 2;\n return v;\n};\n\nParser.prototype.parseCard16 = Parser.prototype.parseUShort;\nParser.prototype.parseSID = Parser.prototype.parseUShort;\nParser.prototype.parseOffset16 = Parser.prototype.parseUShort;\n\nParser.prototype.parseShort = function() {\n const v = this.data.getInt16(this.offset + this.relativeOffset);\n this.relativeOffset += 2;\n return v;\n};\n\nParser.prototype.parseF2Dot14 = function() {\n const v = this.data.getInt16(this.offset + this.relativeOffset) / 16384;\n this.relativeOffset += 2;\n return v;\n};\n\nParser.prototype.parseULong = function() {\n const v = getULong(this.data, this.offset + this.relativeOffset);\n this.relativeOffset += 4;\n return v;\n};\n\nParser.prototype.parseOffset32 = Parser.prototype.parseULong;\n\nParser.prototype.parseFixed = function() {\n const v = getFixed(this.data, this.offset + this.relativeOffset);\n this.relativeOffset += 4;\n return v;\n};\n\nParser.prototype.parseString = function(length) {\n const dataView = this.data;\n const offset = this.offset + this.relativeOffset;\n let string = '';\n this.relativeOffset += length;\n for (let i = 0; i < length; i++) {\n string += String.fromCharCode(dataView.getUint8(offset + i));\n }\n\n return string;\n};\n\nParser.prototype.parseTag = function() {\n return this.parseString(4);\n};\n\n// LONGDATETIME is a 64-bit integer.\n// JavaScript and unix timestamps traditionally use 32 bits, so we\n// only take the last 32 bits.\n// + Since until 2038 those bits will be filled by zeros we can ignore them.\nParser.prototype.parseLongDateTime = function() {\n let v = getULong(this.data, this.offset + this.relativeOffset + 4);\n // Subtract seconds between 01/01/1904 and 01/01/1970\n // to convert Apple Mac timestamp to Standard Unix timestamp\n v -= 2082844800;\n this.relativeOffset += 8;\n return v;\n};\n\nParser.prototype.parseVersion = function(minorBase) {\n const major = getUShort(this.data, this.offset + this.relativeOffset);\n\n // How to interpret the minor version is very vague in the spec. 0x5000 is 5, 0x1000 is 1\n // Default returns the correct number if minor = 0xN000 where N is 0-9\n // Set minorBase to 1 for tables that use minor = N where N is 0-9\n const minor = getUShort(this.data, this.offset + this.relativeOffset + 2);\n this.relativeOffset += 4;\n if (minorBase === undefined) minorBase = 0x1000;\n return major + minor / minorBase / 10;\n};\n\nParser.prototype.skip = function(type, amount) {\n if (amount === undefined) {\n amount = 1;\n }\n\n this.relativeOffset += typeOffsets[type] * amount;\n};\n\n///// Parsing lists and records ///////////////////////////////\n\n// Parse a list of 32 bit unsigned integers.\nParser.prototype.parseULongList = function(count) {\n if (count === undefined) { count = this.parseULong(); }\n const offsets = new Array(count);\n const dataView = this.data;\n let offset = this.offset + this.relativeOffset;\n for (let i = 0; i < count; i++) {\n offsets[i] = dataView.getUint32(offset);\n offset += 4;\n }\n\n this.relativeOffset += count * 4;\n return offsets;\n};\n\n// Parse a list of 16 bit unsigned integers. The length of the list can be read on the stream\n// or provided as an argument.\nParser.prototype.parseOffset16List =\nParser.prototype.parseUShortList = function(count) {\n if (count === undefined) { count = this.parseUShort(); }\n const offsets = new Array(count);\n const dataView = this.data;\n let offset = this.offset + this.relativeOffset;\n for (let i = 0; i < count; i++) {\n offsets[i] = dataView.getUint16(offset);\n offset += 2;\n }\n\n this.relativeOffset += count * 2;\n return offsets;\n};\n\n// Parses a list of 16 bit signed integers.\nParser.prototype.parseShortList = function(count) {\n const list = new Array(count);\n const dataView = this.data;\n let offset = this.offset + this.relativeOffset;\n for (let i = 0; i < count; i++) {\n list[i] = dataView.getInt16(offset);\n offset += 2;\n }\n\n this.relativeOffset += count * 2;\n return list;\n};\n\n// Parses a list of bytes.\nParser.prototype.parseByteList = function(count) {\n const list = new Array(count);\n const dataView = this.data;\n let offset = this.offset + this.relativeOffset;\n for (let i = 0; i < count; i++) {\n list[i] = dataView.getUint8(offset++);\n }\n\n this.relativeOffset += count;\n return list;\n};\n\n/**\n * Parse a list of items.\n * Record count is optional, if omitted it is read from the stream.\n * itemCallback is one of the Parser methods.\n */\nParser.prototype.parseList = function(count, itemCallback) {\n if (!itemCallback) {\n itemCallback = count;\n count = this.parseUShort();\n }\n const list = new Array(count);\n for (let i = 0; i < count; i++) {\n list[i] = itemCallback.call(this);\n }\n return list;\n};\n\nParser.prototype.parseList32 = function(count, itemCallback) {\n if (!itemCallback) {\n itemCallback = count;\n count = this.parseULong();\n }\n const list = new Array(count);\n for (let i = 0; i < count; i++) {\n list[i] = itemCallback.call(this);\n }\n return list;\n};\n\n/**\n * Parse a list of records.\n * Record count is optional, if omitted it is read from the stream.\n * Example of recordDescription: { sequenceIndex: Parser.uShort, lookupListIndex: Parser.uShort }\n */\nParser.prototype.parseRecordList = function(count, recordDescription) {\n // If the count argument is absent, read it in the stream.\n if (!recordDescription) {\n recordDescription = count;\n count = this.parseUShort();\n }\n const records = new Array(count);\n const fields = Object.keys(recordDescription);\n for (let i = 0; i < count; i++) {\n const rec = {};\n for (let j = 0; j < fields.length; j++) {\n const fieldName = fields[j];\n const fieldType = recordDescription[fieldName];\n rec[fieldName] = fieldType.call(this);\n }\n records[i] = rec;\n }\n return records;\n};\n\nParser.prototype.parseRecordList32 = function(count, recordDescription) {\n // If the count argument is absent, read it in the stream.\n if (!recordDescription) {\n recordDescription = count;\n count = this.parseULong();\n }\n const records = new Array(count);\n const fields = Object.keys(recordDescription);\n for (let i = 0; i < count; i++) {\n const rec = {};\n for (let j = 0; j < fields.length; j++) {\n const fieldName = fields[j];\n const fieldType = recordDescription[fieldName];\n rec[fieldName] = fieldType.call(this);\n }\n records[i] = rec;\n }\n return records;\n};\n\n// Parse a data structure into an object\n// Example of description: { sequenceIndex: Parser.uShort, lookupListIndex: Parser.uShort }\nParser.prototype.parseStruct = function(description) {\n if (typeof description === 'function') {\n return description.call(this);\n } else {\n const fields = Object.keys(description);\n const struct = {};\n for (let j = 0; j < fields.length; j++) {\n const fieldName = fields[j];\n const fieldType = description[fieldName];\n struct[fieldName] = fieldType.call(this);\n }\n return struct;\n }\n};\n\n/**\n * Parse a GPOS valueRecord\n * https://docs.microsoft.com/en-us/typography/opentype/spec/gpos#value-record\n * valueFormat is optional, if omitted it is read from the stream.\n */\nParser.prototype.parseValueRecord = function(valueFormat) {\n if (valueFormat === undefined) {\n valueFormat = this.parseUShort();\n }\n if (valueFormat === 0) {\n // valueFormat2 in kerning pairs is most often 0\n // in this case return undefined instead of an empty object, to save space\n return;\n }\n const valueRecord = {};\n\n if (valueFormat & 0x0001) { valueRecord.xPlacement = this.parseShort(); }\n if (valueFormat & 0x0002) { valueRecord.yPlacement = this.parseShort(); }\n if (valueFormat & 0x0004) { valueRecord.xAdvance = this.parseShort(); }\n if (valueFormat & 0x0008) { valueRecord.yAdvance = this.parseShort(); }\n\n // Device table (non-variable font) / VariationIndex table (variable font) not supported\n // https://docs.microsoft.com/fr-fr/typography/opentype/spec/chapter2#devVarIdxTbls\n if (valueFormat & 0x0010) { valueRecord.xPlaDevice = undefined; this.parseShort(); }\n if (valueFormat & 0x0020) { valueRecord.yPlaDevice = undefined; this.parseShort(); }\n if (valueFormat & 0x0040) { valueRecord.xAdvDevice = undefined; this.parseShort(); }\n if (valueFormat & 0x0080) { valueRecord.yAdvDevice = undefined; this.parseShort(); }\n\n return valueRecord;\n};\n\n/**\n * Parse a list of GPOS valueRecords\n * https://docs.microsoft.com/en-us/typography/opentype/spec/gpos#value-record\n * valueFormat and valueCount are read from the stream.\n */\nParser.prototype.parseValueRecordList = function() {\n const valueFormat = this.parseUShort();\n const valueCount = this.parseUShort();\n const values = new Array(valueCount);\n for (let i = 0; i < valueCount; i++) {\n values[i] = this.parseValueRecord(valueFormat);\n }\n return values;\n};\n\nParser.prototype.parsePointer = function(description) {\n const structOffset = this.parseOffset16();\n if (structOffset > 0) {\n // NULL offset => return undefined\n return new Parser(this.data, this.offset + structOffset).parseStruct(description);\n }\n return undefined;\n};\n\nParser.prototype.parsePointer32 = function(description) {\n const structOffset = this.parseOffset32();\n if (structOffset > 0) {\n // NULL offset => return undefined\n return new Parser(this.data, this.offset + structOffset).parseStruct(description);\n }\n return undefined;\n};\n\n/**\n * Parse a list of offsets to lists of 16-bit integers,\n * or a list of offsets to lists of offsets to any kind of items.\n * If itemCallback is not provided, a list of list of UShort is assumed.\n * If provided, itemCallback is called on each item and must parse the item.\n * See examples in tables/gsub.js\n */\nParser.prototype.parseListOfLists = function(itemCallback) {\n const offsets = this.parseOffset16List();\n const count = offsets.length;\n const relativeOffset = this.relativeOffset;\n const list = new Array(count);\n for (let i = 0; i < count; i++) {\n const start = offsets[i];\n if (start === 0) {\n // NULL offset\n // Add i as owned property to list. Convenient with assert.\n list[i] = undefined;\n continue;\n }\n this.relativeOffset = start;\n if (itemCallback) {\n const subOffsets = this.parseOffset16List();\n const subList = new Array(subOffsets.length);\n for (let j = 0; j < subOffsets.length; j++) {\n this.relativeOffset = start + subOffsets[j];\n subList[j] = itemCallback.call(this);\n }\n list[i] = subList;\n } else {\n list[i] = this.parseUShortList();\n }\n }\n this.relativeOffset = relativeOffset;\n return list;\n};\n\n///// Complex tables parsing //////////////////////////////////\n\n// Parse a coverage table in a GSUB, GPOS or GDEF table.\n// https://www.microsoft.com/typography/OTSPEC/chapter2.htm\n// parser.offset must point to the start of the table containing the coverage.\nParser.prototype.parseCoverage = function() {\n const startOffset = this.offset + this.relativeOffset;\n const format = this.parseUShort();\n const count = this.parseUShort();\n if (format === 1) {\n return {\n format: 1,\n glyphs: this.parseUShortList(count)\n };\n } else if (format === 2) {\n const ranges = new Array(count);\n for (let i = 0; i < count; i++) {\n ranges[i] = {\n start: this.parseUShort(),\n end: this.parseUShort(),\n index: this.parseUShort()\n };\n }\n return {\n format: 2,\n ranges: ranges\n };\n }\n throw new Error('0x' + startOffset.toString(16) + ': Coverage format must be 1 or 2.');\n};\n\n// Parse a Class Definition Table in a GSUB, GPOS or GDEF table.\n// https://www.microsoft.com/typography/OTSPEC/chapter2.htm\nParser.prototype.parseClassDef = function() {\n const startOffset = this.offset + this.relativeOffset;\n const format = this.parseUShort();\n if (format === 1) {\n return {\n format: 1,\n startGlyph: this.parseUShort(),\n classes: this.parseUShortList()\n };\n } else if (format === 2) {\n return {\n format: 2,\n ranges: this.parseRecordList({\n start: Parser.uShort,\n end: Parser.uShort,\n classId: Parser.uShort\n })\n };\n }\n throw new Error('0x' + startOffset.toString(16) + ': ClassDef format must be 1 or 2.');\n};\n\n///// Static methods ///////////////////////////////////\n// These convenience methods can be used as callbacks and should be called with \"this\" context set to a Parser instance.\n\nParser.list = function(count, itemCallback) {\n return function() {\n return this.parseList(count, itemCallback);\n };\n};\n\nParser.list32 = function(count, itemCallback) {\n return function() {\n return this.parseList32(count, itemCallback);\n };\n};\n\nParser.recordList = function(count, recordDescription) {\n return function() {\n return this.parseRecordList(count, recordDescription);\n };\n};\n\nParser.recordList32 = function(count, recordDescription) {\n return function() {\n return this.parseRecordList32(count, recordDescription);\n };\n};\n\nParser.pointer = function(description) {\n return function() {\n return this.parsePointer(description);\n };\n};\n\nParser.pointer32 = function(description) {\n return function() {\n return this.parsePointer32(description);\n };\n};\n\nParser.tag = Parser.prototype.parseTag;\nParser.byte = Parser.prototype.parseByte;\nParser.uShort = Parser.offset16 = Parser.prototype.parseUShort;\nParser.uShortList = Parser.prototype.parseUShortList;\nParser.uLong = Parser.offset32 = Parser.prototype.parseULong;\nParser.uLongList = Parser.prototype.parseULongList;\nParser.struct = Parser.prototype.parseStruct;\nParser.coverage = Parser.prototype.parseCoverage;\nParser.classDef = Parser.prototype.parseClassDef;\n\n///// Script, Feature, Lookup lists ///////////////////////////////////////////////\n// https://www.microsoft.com/typography/OTSPEC/chapter2.htm\n\nconst langSysTable = {\n reserved: Parser.uShort,\n reqFeatureIndex: Parser.uShort,\n featureIndexes: Parser.uShortList\n};\n\nParser.prototype.parseScriptList = function() {\n return this.parsePointer(Parser.recordList({\n tag: Parser.tag,\n script: Parser.pointer({\n defaultLangSys: Parser.pointer(langSysTable),\n langSysRecords: Parser.recordList({\n tag: Parser.tag,\n langSys: Parser.pointer(langSysTable)\n })\n })\n })) || [];\n};\n\nParser.prototype.parseFeatureList = function() {\n return this.parsePointer(Parser.recordList({\n tag: Parser.tag,\n feature: Parser.pointer({\n featureParams: Parser.offset16,\n lookupListIndexes: Parser.uShortList\n })\n })) || [];\n};\n\nParser.prototype.parseLookupList = function(lookupTableParsers) {\n return this.parsePointer(Parser.list(Parser.pointer(function() {\n const lookupType = this.parseUShort();\n check.argument(1 <= lookupType && lookupType <= 9, 'GPOS/GSUB lookup type ' + lookupType + ' unknown.');\n const lookupFlag = this.parseUShort();\n const useMarkFilteringSet = lookupFlag & 0x10;\n return {\n lookupType: lookupType,\n lookupFlag: lookupFlag,\n subtables: this.parseList(Parser.pointer(lookupTableParsers[lookupType])),\n markFilteringSet: useMarkFilteringSet ? this.parseUShort() : undefined\n };\n }))) || [];\n};\n\nParser.prototype.parseFeatureVariationsList = function() {\n return this.parsePointer32(function() {\n const majorVersion = this.parseUShort();\n const minorVersion = this.parseUShort();\n check.argument(majorVersion === 1 && minorVersion < 1, 'GPOS/GSUB feature variations table unknown.');\n const featureVariations = this.parseRecordList32({\n conditionSetOffset: Parser.offset32,\n featureTableSubstitutionOffset: Parser.offset32\n });\n return featureVariations;\n }) || [];\n};\n\nexport default {\n getByte,\n getCard8: getByte,\n getUShort,\n getCard16: getUShort,\n getShort,\n getULong,\n getFixed,\n getTag,\n getOffset,\n getBytes,\n bytesToString,\n Parser,\n};\n\nexport { Parser };\n","// The `glyf` table describes the glyphs in TrueType outline format.\n// http://www.microsoft.com/typography/otspec/glyf.htm\n\nimport check from '../check';\nimport glyphset from '../glyphset';\nimport parse from '../parse';\nimport Path from '../path';\n\n// Parse the coordinate data for a glyph.\nfunction parseGlyphCoordinate(p, flag, previousValue, shortVectorBitMask, sameBitMask) {\n let v;\n if ((flag & shortVectorBitMask) > 0) {\n // The coordinate is 1 byte long.\n v = p.parseByte();\n // The `same` bit is re-used for short values to signify the sign of the value.\n if ((flag & sameBitMask) === 0) {\n v = -v;\n }\n\n v = previousValue + v;\n } else {\n // The coordinate is 2 bytes long.\n // If the `same` bit is set, the coordinate is the same as the previous coordinate.\n if ((flag & sameBitMask) > 0) {\n v = previousValue;\n } else {\n // Parse the coordinate as a signed 16-bit delta value.\n v = previousValue + p.parseShort();\n }\n }\n\n return v;\n}\n\n// Parse a TrueType glyph.\nfunction parseGlyph(glyph, data, start) {\n const p = new parse.Parser(data, start);\n glyph.numberOfContours = p.parseShort();\n glyph._xMin = p.parseShort();\n glyph._yMin = p.parseShort();\n glyph._xMax = p.parseShort();\n glyph._yMax = p.parseShort();\n let flags;\n let flag;\n\n if (glyph.numberOfContours > 0) {\n // This glyph is not a composite.\n const endPointIndices = glyph.endPointIndices = [];\n for (let i = 0; i < glyph.numberOfContours; i += 1) {\n endPointIndices.push(p.parseUShort());\n }\n\n glyph.instructionLength = p.parseUShort();\n glyph.instructions = [];\n for (let i = 0; i < glyph.instructionLength; i += 1) {\n glyph.instructions.push(p.parseByte());\n }\n\n const numberOfCoordinates = endPointIndices[endPointIndices.length - 1] + 1;\n flags = [];\n for (let i = 0; i < numberOfCoordinates; i += 1) {\n flag = p.parseByte();\n flags.push(flag);\n // If bit 3 is set, we repeat this flag n times, where n is the next byte.\n if ((flag & 8) > 0) {\n const repeatCount = p.parseByte();\n for (let j = 0; j < repeatCount; j += 1) {\n flags.push(flag);\n i += 1;\n }\n }\n }\n\n check.argument(flags.length === numberOfCoordinates, 'Bad flags.');\n\n if (endPointIndices.length > 0) {\n const points = [];\n let point;\n // X/Y coordinates are relative to the previous point, except for the first point which is relative to 0,0.\n if (numberOfCoordinates > 0) {\n for (let i = 0; i < numberOfCoordinates; i += 1) {\n flag = flags[i];\n point = {};\n point.onCurve = !!(flag & 1);\n point.lastPointOfContour = endPointIndices.indexOf(i) >= 0;\n points.push(point);\n }\n\n let px = 0;\n for (let i = 0; i < numberOfCoordinates; i += 1) {\n flag = flags[i];\n point = points[i];\n point.x = parseGlyphCoordinate(p, flag, px, 2, 16);\n px = point.x;\n }\n\n let py = 0;\n for (let i = 0; i < numberOfCoordinates; i += 1) {\n flag = flags[i];\n point = points[i];\n point.y = parseGlyphCoordinate(p, flag, py, 4, 32);\n py = point.y;\n }\n }\n\n glyph.points = points;\n } else {\n glyph.points = [];\n }\n } else if (glyph.numberOfContours === 0) {\n glyph.points = [];\n } else {\n glyph.isComposite = true;\n glyph.points = [];\n glyph.components = [];\n let moreComponents = true;\n while (moreComponents) {\n flags = p.parseUShort();\n const component = {\n glyphIndex: p.parseUShort(),\n xScale: 1,\n scale01: 0,\n scale10: 0,\n yScale: 1,\n dx: 0,\n dy: 0\n };\n if ((flags & 1) > 0) {\n // The arguments are words\n if ((flags & 2) > 0) {\n // values are offset\n component.dx = p.parseShort();\n component.dy = p.parseShort();\n } else {\n // values are matched points\n component.matchedPoints = [p.parseUShort(), p.parseUShort()];\n }\n\n } else {\n // The arguments are bytes\n if ((flags & 2) > 0) {\n // values are offset\n component.dx = p.parseChar();\n component.dy = p.parseChar();\n } else {\n // values are matched points\n component.matchedPoints = [p.parseByte(), p.parseByte()];\n }\n }\n\n if ((flags & 8) > 0) {\n // We have a scale\n component.xScale = component.yScale = p.parseF2Dot14();\n } else if ((flags & 64) > 0) {\n // We have an X / Y scale\n component.xScale = p.parseF2Dot14();\n component.yScale = p.parseF2Dot14();\n } else if ((flags & 128) > 0) {\n // We have a 2x2 transformation\n component.xScale = p.parseF2Dot14();\n component.scale01 = p.parseF2Dot14();\n component.scale10 = p.parseF2Dot14();\n component.yScale = p.parseF2Dot14();\n }\n\n glyph.components.push(component);\n moreComponents = !!(flags & 32);\n }\n if (flags & 0x100) {\n // We have instructions\n glyph.instructionLength = p.parseUShort();\n glyph.instructions = [];\n for (let i = 0; i < glyph.instructionLength; i += 1) {\n glyph.instructions.push(p.parseByte());\n }\n }\n }\n}\n\n// Transform an array of points and return a new array.\nfunction transformPoints(points, transform) {\n const newPoints = [];\n for (let i = 0; i < points.length; i += 1) {\n const pt = points[i];\n const newPt = {\n x: transform.xScale * pt.x + transform.scale01 * pt.y + transform.dx,\n y: transform.scale10 * pt.x + transform.yScale * pt.y + transform.dy,\n onCurve: pt.onCurve,\n lastPointOfContour: pt.lastPointOfContour\n };\n newPoints.push(newPt);\n }\n\n return newPoints;\n}\n\nfunction getContours(points) {\n const contours = [];\n let currentContour = [];\n for (let i = 0; i < points.length; i += 1) {\n const pt = points[i];\n currentContour.push(pt);\n if (pt.lastPointOfContour) {\n contours.push(currentContour);\n currentContour = [];\n }\n }\n\n check.argument(currentContour.length === 0, 'There are still points left in the current contour.');\n return contours;\n}\n\n// Convert the TrueType glyph outline to a Path.\nfunction getPath(points) {\n const p = new Path();\n if (!points) {\n return p;\n }\n\n const contours = getContours(points);\n\n for (let contourIndex = 0; contourIndex < contours.length; ++contourIndex) {\n const contour = contours[contourIndex];\n\n let prev = null;\n let curr = contour[contour.length - 1];\n let next = contour[0];\n\n if (curr.onCurve) {\n p.moveTo(curr.x, curr.y);\n } else {\n if (next.onCurve) {\n p.moveTo(next.x, next.y);\n } else {\n // If both first and last points are off-curve, start at their middle.\n const start = {x: (curr.x + next.x) * 0.5, y: (curr.y + next.y) * 0.5};\n p.moveTo(start.x, start.y);\n }\n }\n\n for (let i = 0; i < contour.length; ++i) {\n prev = curr;\n curr = next;\n next = contour[(i + 1) % contour.length];\n\n if (curr.onCurve) {\n // This is a straight line.\n p.lineTo(curr.x, curr.y);\n } else {\n let prev2 = prev;\n let next2 = next;\n\n if (!prev.onCurve) {\n prev2 = { x: (curr.x + prev.x) * 0.5, y: (curr.y + prev.y) * 0.5 };\n }\n\n if (!next.onCurve) {\n next2 = { x: (curr.x + next.x) * 0.5, y: (curr.y + next.y) * 0.5 };\n }\n\n p.quadraticCurveTo(curr.x, curr.y, next2.x, next2.y);\n }\n }\n\n p.closePath();\n }\n return p;\n}\n\nfunction buildPath(glyphs, glyph) {\n if (glyph.isComposite) {\n for (let j = 0; j < glyph.components.length; j += 1) {\n const component = glyph.components[j];\n const componentGlyph = glyphs.get(component.glyphIndex);\n // Force the ttfGlyphLoader to parse the glyph.\n componentGlyph.getPath();\n if (componentGlyph.points) {\n let transformedPoints;\n if (component.matchedPoints === undefined) {\n // component positioned by offset\n transformedPoints = transformPoints(componentGlyph.points, component);\n } else {\n // component positioned by matched points\n if ((component.matchedPoints[0] > glyph.points.length - 1) ||\n (component.matchedPoints[1] > componentGlyph.points.length - 1)) {\n throw Error('Matched points out of range in ' + glyph.name);\n }\n const firstPt = glyph.points[component.matchedPoints[0]];\n let secondPt = componentGlyph.points[component.matchedPoints[1]];\n const transform = {\n xScale: component.xScale, scale01: component.scale01,\n scale10: component.scale10, yScale: component.yScale,\n dx: 0, dy: 0\n };\n secondPt = transformPoints([secondPt], transform)[0];\n transform.dx = firstPt.x - secondPt.x;\n transform.dy = firstPt.y - secondPt.y;\n transformedPoints = transformPoints(componentGlyph.points, transform);\n }\n glyph.points = glyph.points.concat(transformedPoints);\n }\n }\n }\n\n return getPath(glyph.points);\n}\n\nfunction parseGlyfTableAll(data, start, loca, font) {\n const glyphs = new glyphset.GlyphSet(font);\n\n // The last element of the loca table is invalid.\n for (let i = 0; i < loca.length - 1; i += 1) {\n const offset = loca[i];\n const nextOffset = loca[i + 1];\n if (offset !== nextOffset) {\n glyphs.push(i, glyphset.ttfGlyphLoader(font, i, parseGlyph, data, start + offset, buildPath));\n } else {\n glyphs.push(i, glyphset.glyphLoader(font, i));\n }\n }\n\n return glyphs;\n}\n\nfunction parseGlyfTableOnLowMemory(data, start, loca, font) {\n const glyphs = new glyphset.GlyphSet(font);\n\n font._push = function(i) {\n const offset = loca[i];\n const nextOffset = loca[i + 1];\n if (offset !== nextOffset) {\n glyphs.push(i, glyphset.ttfGlyphLoader(font, i, parseGlyph, data, start + offset, buildPath));\n } else {\n glyphs.push(i, glyphset.glyphLoader(font, i));\n }\n };\n\n return glyphs;\n}\n\n// Parse all the glyphs according to the offsets from the `loca` table.\nfunction parseGlyfTable(data, start, loca, font, opt) {\n if (opt.lowMemory)\n return parseGlyfTableOnLowMemory(data, start, loca, font);\n else\n return parseGlyfTableAll(data, start, loca, font);\n}\n\nexport default { getPath, parse: parseGlyfTable};\n","/* A TrueType font hinting interpreter.\n*\n* (c) 2017 Axel Kittenberger\n*\n* This interpreter has been implemented according to this documentation:\n* https://developer.apple.com/fonts/TrueType-Reference-Manual/RM05/Chap5.html\n*\n* According to the documentation F24DOT6 values are used for pixels.\n* That means calculation is 1/64 pixel accurate and uses integer operations.\n* However, Javascript has floating point operations by default and only\n* those are available. One could make a case to simulate the 1/64 accuracy\n* exactly by truncating after every division operation\n* (for example with << 0) to get pixel exactly results as other TrueType\n* implementations. It may make sense since some fonts are pixel optimized\n* by hand using DELTAP instructions. The current implementation doesn't\n* and rather uses full floating point precision.\n*\n* xScale, yScale and rotation is currently ignored.\n*\n* A few non-trivial instructions are missing as I didn't encounter yet\n* a font that used them to test a possible implementation.\n*\n* Some fonts seem to use undocumented features regarding the twilight zone.\n* Only some of them are implemented as they were encountered.\n*\n* The exports.DEBUG statements are removed on the minified distribution file.\n*/\n'use strict';\n\nimport glyf from './tables/glyf';\n\nlet instructionTable;\nlet exec;\nlet execGlyph;\nlet execComponent;\n\n/*\n* Creates a hinting object.\n*\n* There ought to be exactly one\n* for each truetype font that is used for hinting.\n*/\nfunction Hinting(font) {\n // the font this hinting object is for\n this.font = font;\n\n this.getCommands = function (hPoints) {\n return glyf.getPath(hPoints).commands;\n };\n\n // cached states\n this._fpgmState =\n this._prepState =\n undefined;\n\n // errorState\n // 0 ... all okay\n // 1 ... had an error in a glyf,\n // continue working but stop spamming\n // the console\n // 2 ... error at prep, stop hinting at this ppem\n // 3 ... error at fpeg, stop hinting for this font at all\n this._errorState = 0;\n}\n\n/*\n* Not rounding.\n*/\nfunction roundOff(v) {\n return v;\n}\n\n/*\n* Rounding to grid.\n*/\nfunction roundToGrid(v) {\n //Rounding in TT is supposed to \"symmetrical around zero\"\n return Math.sign(v) * Math.round(Math.abs(v));\n}\n\n/*\n* Rounding to double grid.\n*/\nfunction roundToDoubleGrid(v) {\n return Math.sign(v) * Math.round(Math.abs(v * 2)) / 2;\n}\n\n/*\n* Rounding to half grid.\n*/\nfunction roundToHalfGrid(v) {\n return Math.sign(v) * (Math.round(Math.abs(v) + 0.5) - 0.5);\n}\n\n/*\n* Rounding to up to grid.\n*/\nfunction roundUpToGrid(v) {\n return Math.sign(v) * Math.ceil(Math.abs(v));\n}\n\n/*\n* Rounding to down to grid.\n*/\nfunction roundDownToGrid(v) {\n return Math.sign(v) * Math.floor(Math.abs(v));\n}\n\n/*\n* Super rounding.\n*/\nconst roundSuper = function (v) {\n const period = this.srPeriod;\n let phase = this.srPhase;\n const threshold = this.srThreshold;\n let sign = 1;\n\n if (v < 0) {\n v = -v;\n sign = -1;\n }\n\n v += threshold - phase;\n\n v = Math.trunc(v / period) * period;\n\n v += phase;\n\n // according to http://xgridfit.sourceforge.net/round.html\n if (v < 0) return phase * sign;\n\n return v * sign;\n};\n\n/*\n* Unit vector of x-axis.\n*/\nconst xUnitVector = {\n x: 1,\n\n y: 0,\n\n axis: 'x',\n\n // Gets the projected distance between two points.\n // o1/o2 ... if true, respective original position is used.\n distance: function (p1, p2, o1, o2) {\n return (o1 ? p1.xo : p1.x) - (o2 ? p2.xo : p2.x);\n },\n\n // Moves point p so the moved position has the same relative\n // position to the moved positions of rp1 and rp2 than the\n // original positions had.\n //\n // See APPENDIX on INTERPOLATE at the bottom of this file.\n interpolate: function (p, rp1, rp2, pv) {\n let do1;\n let do2;\n let doa1;\n let doa2;\n let dm1;\n let dm2;\n let dt;\n\n if (!pv || pv === this) {\n do1 = p.xo - rp1.xo;\n do2 = p.xo - rp2.xo;\n dm1 = rp1.x - rp1.xo;\n dm2 = rp2.x - rp2.xo;\n doa1 = Math.abs(do1);\n doa2 = Math.abs(do2);\n dt = doa1 + doa2;\n\n if (dt === 0) {\n p.x = p.xo + (dm1 + dm2) / 2;\n return;\n }\n\n p.x = p.xo + (dm1 * doa2 + dm2 * doa1) / dt;\n return;\n }\n\n do1 = pv.distance(p, rp1, true, true);\n do2 = pv.distance(p, rp2, true, true);\n dm1 = pv.distance(rp1, rp1, false, true);\n dm2 = pv.distance(rp2, rp2, false, true);\n doa1 = Math.abs(do1);\n doa2 = Math.abs(do2);\n dt = doa1 + doa2;\n\n if (dt === 0) {\n xUnitVector.setRelative(p, p, (dm1 + dm2) / 2, pv, true);\n return;\n }\n\n xUnitVector.setRelative(p, p, (dm1 * doa2 + dm2 * doa1) / dt, pv, true);\n },\n\n // Slope of line normal to this\n normalSlope: Number.NEGATIVE_INFINITY,\n\n // Sets the point 'p' relative to point 'rp'\n // by the distance 'd'.\n //\n // See APPENDIX on SETRELATIVE at the bottom of this file.\n //\n // p ... point to set\n // rp ... reference point\n // d ... distance on projection vector\n // pv ... projection vector (undefined = this)\n // org ... if true, uses the original position of rp as reference.\n setRelative: function (p, rp, d, pv, org) {\n if (!pv || pv === this) {\n p.x = (org ? rp.xo : rp.x) + d;\n return;\n }\n\n const rpx = org ? rp.xo : rp.x;\n const rpy = org ? rp.yo : rp.y;\n const rpdx = rpx + d * pv.x;\n const rpdy = rpy + d * pv.y;\n\n p.x = rpdx + (p.y - rpdy) / pv.normalSlope;\n },\n\n // Slope of vector line.\n slope: 0,\n\n // Touches the point p.\n touch: function (p) {\n p.xTouched = true;\n },\n\n // Tests if a point p is touched.\n touched: function (p) {\n return p.xTouched;\n },\n\n // Untouches the point p.\n untouch: function (p) {\n p.xTouched = false;\n }\n};\n\n/*\n* Unit vector of y-axis.\n*/\nconst yUnitVector = {\n x: 0,\n\n y: 1,\n\n axis: 'y',\n\n // Gets the projected distance between two points.\n // o1/o2 ... if true, respective original position is used.\n distance: function (p1, p2, o1, o2) {\n return (o1 ? p1.yo : p1.y) - (o2 ? p2.yo : p2.y);\n },\n\n // Moves point p so the moved position has the same relative\n // position to the moved positions of rp1 and rp2 than the\n // original positions had.\n //\n // See APPENDIX on INTERPOLATE at the bottom of this file.\n interpolate: function (p, rp1, rp2, pv) {\n let do1;\n let do2;\n let doa1;\n let doa2;\n let dm1;\n let dm2;\n let dt;\n\n if (!pv || pv === this) {\n do1 = p.yo - rp1.yo;\n do2 = p.yo - rp2.yo;\n dm1 = rp1.y - rp1.yo;\n dm2 = rp2.y - rp2.yo;\n doa1 = Math.abs(do1);\n doa2 = Math.abs(do2);\n dt = doa1 + doa2;\n\n if (dt === 0) {\n p.y = p.yo + (dm1 + dm2) / 2;\n return;\n }\n\n p.y = p.yo + (dm1 * doa2 + dm2 * doa1) / dt;\n return;\n }\n\n do1 = pv.distance(p, rp1, true, true);\n do2 = pv.distance(p, rp2, true, true);\n dm1 = pv.distance(rp1, rp1, false, true);\n dm2 = pv.distance(rp2, rp2, false, true);\n doa1 = Math.abs(do1);\n doa2 = Math.abs(do2);\n dt = doa1 + doa2;\n\n if (dt === 0) {\n yUnitVector.setRelative(p, p, (dm1 + dm2) / 2, pv, true);\n return;\n }\n\n yUnitVector.setRelative(p, p, (dm1 * doa2 + dm2 * doa1) / dt, pv, true);\n },\n\n // Slope of line normal to this.\n normalSlope: 0,\n\n // Sets the point 'p' relative to point 'rp'\n // by the distance 'd'\n //\n // See APPENDIX on SETRELATIVE at the bottom of this file.\n //\n // p ... point to set\n // rp ... reference point\n // d ... distance on projection vector\n // pv ... projection vector (undefined = this)\n // org ... if true, uses the original position of rp as reference.\n setRelative: function (p, rp, d, pv, org) {\n if (!pv || pv === this) {\n p.y = (org ? rp.yo : rp.y) + d;\n return;\n }\n\n const rpx = org ? rp.xo : rp.x;\n const rpy = org ? rp.yo : rp.y;\n const rpdx = rpx + d * pv.x;\n const rpdy = rpy + d * pv.y;\n\n p.y = rpdy + pv.normalSlope * (p.x - rpdx);\n },\n\n // Slope of vector line.\n slope: Number.POSITIVE_INFINITY,\n\n // Touches the point p.\n touch: function (p) {\n p.yTouched = true;\n },\n\n // Tests if a point p is touched.\n touched: function (p) {\n return p.yTouched;\n },\n\n // Untouches the point p.\n untouch: function (p) {\n p.yTouched = false;\n }\n};\n\nObject.freeze(xUnitVector);\nObject.freeze(yUnitVector);\n\n/*\n* Creates a unit vector that is not x- or y-axis.\n*/\nfunction UnitVector(x, y) {\n this.x = x;\n this.y = y;\n this.axis = undefined;\n this.slope = y / x;\n this.normalSlope = -x / y;\n Object.freeze(this);\n}\n\n/*\n* Gets the projected distance between two points.\n* o1/o2 ... if true, respective original position is used.\n*/\nUnitVector.prototype.distance = function(p1, p2, o1, o2) {\n return (\n this.x * xUnitVector.distance(p1, p2, o1, o2) +\n this.y * yUnitVector.distance(p1, p2, o1, o2)\n );\n};\n\n/*\n* Moves point p so the moved position has the same relative\n* position to the moved positions of rp1 and rp2 than the\n* original positions had.\n*\n* See APPENDIX on INTERPOLATE at the bottom of this file.\n*/\nUnitVector.prototype.interpolate = function(p, rp1, rp2, pv) {\n let dm1;\n let dm2;\n let do1;\n let do2;\n let doa1;\n let doa2;\n let dt;\n\n do1 = pv.distance(p, rp1, true, true);\n do2 = pv.distance(p, rp2, true, true);\n dm1 = pv.distance(rp1, rp1, false, true);\n dm2 = pv.distance(rp2, rp2, false, true);\n doa1 = Math.abs(do1);\n doa2 = Math.abs(do2);\n dt = doa1 + doa2;\n\n if (dt === 0) {\n this.setRelative(p, p, (dm1 + dm2) / 2, pv, true);\n return;\n }\n\n this.setRelative(p, p, (dm1 * doa2 + dm2 * doa1) / dt, pv, true);\n};\n\n/*\n* Sets the point 'p' relative to point 'rp'\n* by the distance 'd'\n*\n* See APPENDIX on SETRELATIVE at the bottom of this file.\n*\n* p ... point to set\n* rp ... reference point\n* d ... distance on projection vector\n* pv ... projection vector (undefined = this)\n* org ... if true, uses the original position of rp as reference.\n*/\nUnitVector.prototype.setRelative = function(p, rp, d, pv, org) {\n pv = pv || this;\n\n const rpx = org ? rp.xo : rp.x;\n const rpy = org ? rp.yo : rp.y;\n const rpdx = rpx + d * pv.x;\n const rpdy = rpy + d * pv.y;\n\n const pvns = pv.normalSlope;\n const fvs = this.slope;\n\n const px = p.x;\n const py = p.y;\n\n p.x = (fvs * px - pvns * rpdx + rpdy - py) / (fvs - pvns);\n p.y = fvs * (p.x - px) + py;\n};\n\n/*\n* Touches the point p.\n*/\nUnitVector.prototype.touch = function(p) {\n p.xTouched = true;\n p.yTouched = true;\n};\n\n/*\n* Returns a unit vector with x/y coordinates.\n*/\nfunction getUnitVector(x, y) {\n const d = Math.sqrt(x * x + y * y);\n\n x /= d;\n y /= d;\n\n if (x === 1 && y === 0) return xUnitVector;\n else if (x === 0 && y === 1) return yUnitVector;\n else return new UnitVector(x, y);\n}\n\n/*\n* Creates a point in the hinting engine.\n*/\nfunction HPoint(\n x,\n y,\n lastPointOfContour,\n onCurve\n) {\n this.x = this.xo = Math.round(x * 64) / 64; // hinted x value and original x-value\n this.y = this.yo = Math.round(y * 64) / 64; // hinted y value and original y-value\n\n this.lastPointOfContour = lastPointOfContour;\n this.onCurve = onCurve;\n this.prevPointOnContour = undefined;\n this.nextPointOnContour = undefined;\n this.xTouched = false;\n this.yTouched = false;\n\n Object.preventExtensions(this);\n}\n\n/*\n* Returns the next touched point on the contour.\n*\n* v ... unit vector to test touch axis.\n*/\nHPoint.prototype.nextTouched = function(v) {\n let p = this.nextPointOnContour;\n\n while (!v.touched(p) && p !== this) p = p.nextPointOnContour;\n\n return p;\n};\n\n/*\n* Returns the previous touched point on the contour\n*\n* v ... unit vector to test touch axis.\n*/\nHPoint.prototype.prevTouched = function(v) {\n let p = this.prevPointOnContour;\n\n while (!v.touched(p) && p !== this) p = p.prevPointOnContour;\n\n return p;\n};\n\n/*\n* The zero point.\n*/\nconst HPZero = Object.freeze(new HPoint(0, 0));\n\n/*\n* The default state of the interpreter.\n*\n* Note: Freezing the defaultState and then deriving from it\n* makes the V8 Javascript engine going awkward,\n* so this is avoided, albeit the defaultState shouldn't\n* ever change.\n*/\nconst defaultState = {\n cvCutIn: 17 / 16, // control value cut in\n deltaBase: 9,\n deltaShift: 0.125,\n loop: 1, // loops some instructions\n minDis: 1, // minimum distance\n autoFlip: true\n};\n\n/*\n* The current state of the interpreter.\n*\n* env ... 'fpgm' or 'prep' or 'glyf'\n* prog ... the program\n*/\nfunction State(env, prog) {\n this.env = env;\n this.stack = [];\n this.prog = prog;\n\n switch (env) {\n case 'glyf' :\n this.zp0 = this.zp1 = this.zp2 = 1;\n this.rp0 = this.rp1 = this.rp2 = 0;\n /* fall through */\n case 'prep' :\n this.fv = this.pv = this.dpv = xUnitVector;\n this.round = roundToGrid;\n }\n}\n\n/*\n* Executes a glyph program.\n*\n* This does the hinting for each glyph.\n*\n* Returns an array of moved points.\n*\n* glyph: the glyph to hint\n* ppem: the size the glyph is rendered for\n*/\nHinting.prototype.exec = function(glyph, ppem) {\n if (typeof ppem !== 'number') {\n throw new Error('Point size is not a number!');\n }\n\n // Received a fatal error, don't do any hinting anymore.\n if (this._errorState > 2) return;\n\n const font = this.font;\n let prepState = this._prepState;\n\n if (!prepState || prepState.ppem !== ppem) {\n let fpgmState = this._fpgmState;\n\n if (!fpgmState) {\n // Executes the fpgm state.\n // This is used by fonts to define functions.\n State.prototype = defaultState;\n\n fpgmState =\n this._fpgmState =\n new State('fpgm', font.tables.fpgm);\n\n fpgmState.funcs = [ ];\n fpgmState.font = font;\n\n if (exports.DEBUG) {\n console.log('---EXEC FPGM---');\n fpgmState.step = -1;\n }\n\n try {\n exec(fpgmState);\n } catch (e) {\n console.log('Hinting error in FPGM:' + e);\n this._errorState = 3;\n return;\n }\n }\n\n // Executes the prep program for this ppem setting.\n // This is used by fonts to set cvt values\n // depending on to be rendered font size.\n\n State.prototype = fpgmState;\n prepState =\n this._prepState =\n new State('prep', font.tables.prep);\n\n prepState.ppem = ppem;\n\n // Creates a copy of the cvt table\n // and scales it to the current ppem setting.\n const oCvt = font.tables.cvt;\n if (oCvt) {\n const cvt = prepState.cvt = new Array(oCvt.length);\n const scale = ppem / font.unitsPerEm;\n for (let c = 0; c < oCvt.length; c++) {\n cvt[c] = oCvt[c] * scale;\n }\n } else {\n prepState.cvt = [];\n }\n\n if (exports.DEBUG) {\n console.log('---EXEC PREP---');\n prepState.step = -1;\n }\n\n try {\n exec(prepState);\n } catch (e) {\n if (this._errorState < 2) {\n console.log('Hinting error in PREP:' + e);\n }\n this._errorState = 2;\n }\n }\n\n if (this._errorState > 1) return;\n\n try {\n return execGlyph(glyph, prepState);\n } catch (e) {\n if (this._errorState < 1) {\n console.log('Hinting error:' + e);\n console.log('Note: further hinting errors are silenced');\n }\n this._errorState = 1;\n return undefined;\n }\n};\n\n/*\n* Executes the hinting program for a glyph.\n*/\nexecGlyph = function(glyph, prepState) {\n // original point positions\n const xScale = prepState.ppem / prepState.font.unitsPerEm;\n const yScale = xScale;\n let components = glyph.components;\n let contours;\n let gZone;\n let state;\n\n State.prototype = prepState;\n if (!components) {\n state = new State('glyf', glyph.instructions);\n if (exports.DEBUG) {\n console.log('---EXEC GLYPH---');\n state.step = -1;\n }\n execComponent(glyph, state, xScale, yScale);\n gZone = state.gZone;\n } else {\n const font = prepState.font;\n gZone = [];\n contours = [];\n for (let i = 0; i < components.length; i++) {\n const c = components[i];\n const cg = font.glyphs.get(c.glyphIndex);\n\n state = new State('glyf', cg.instructions);\n\n if (exports.DEBUG) {\n console.log('---EXEC COMP ' + i + '---');\n state.step = -1;\n }\n\n execComponent(cg, state, xScale, yScale);\n // appends the computed points to the result array\n // post processes the component points\n const dx = Math.round(c.dx * xScale);\n const dy = Math.round(c.dy * yScale);\n const gz = state.gZone;\n const cc = state.contours;\n for (let pi = 0; pi < gz.length; pi++) {\n const p = gz[pi];\n p.xTouched = p.yTouched = false;\n p.xo = p.x = p.x + dx;\n p.yo = p.y = p.y + dy;\n }\n\n const gLen = gZone.length;\n gZone.push.apply(gZone, gz);\n for (let j = 0; j < cc.length; j++) {\n contours.push(cc[j] + gLen);\n }\n }\n\n if (glyph.instructions && !state.inhibitGridFit) {\n // the composite has instructions on its own\n state = new State('glyf', glyph.instructions);\n\n state.gZone = state.z0 = state.z1 = state.z2 = gZone;\n\n state.contours = contours;\n\n // note: HPZero cannot be used here, since\n // the point might be modified\n gZone.push(\n new HPoint(0, 0),\n new HPoint(Math.round(glyph.advanceWidth * xScale), 0)\n );\n\n if (exports.DEBUG) {\n console.log('---EXEC COMPOSITE---');\n state.step = -1;\n }\n\n exec(state);\n\n gZone.length -= 2;\n }\n }\n\n return gZone;\n};\n\n/*\n* Executes the hinting program for a component of a multi-component glyph\n* or of the glyph itself for a non-component glyph.\n*/\nexecComponent = function(glyph, state, xScale, yScale)\n{\n const points = glyph.points || [];\n const pLen = points.length;\n const gZone = state.gZone = state.z0 = state.z1 = state.z2 = [];\n const contours = state.contours = [];\n\n // Scales the original points and\n // makes copies for the hinted points.\n let cp; // current point\n for (let i = 0; i < pLen; i++) {\n cp = points[i];\n\n gZone[i] = new HPoint(\n cp.x * xScale,\n cp.y * yScale,\n cp.lastPointOfContour,\n cp.onCurve\n );\n }\n\n // Chain links the contours.\n let sp; // start point\n let np; // next point\n\n for (let i = 0; i < pLen; i++) {\n cp = gZone[i];\n\n if (!sp) {\n sp = cp;\n contours.push(i);\n }\n\n if (cp.lastPointOfContour) {\n cp.nextPointOnContour = sp;\n sp.prevPointOnContour = cp;\n sp = undefined;\n } else {\n np = gZone[i + 1];\n cp.nextPointOnContour = np;\n np.prevPointOnContour = cp;\n }\n }\n\n if (state.inhibitGridFit) return;\n\n if (exports.DEBUG) {\n console.log('PROCESSING GLYPH', state.stack);\n for (let i = 0; i < pLen; i++) {\n console.log(i, gZone[i].x, gZone[i].y);\n }\n }\n\n gZone.push(\n new HPoint(0, 0),\n new HPoint(Math.round(glyph.advanceWidth * xScale), 0)\n );\n\n exec(state);\n\n // Removes the extra points.\n gZone.length -= 2;\n\n if (exports.DEBUG) {\n console.log('FINISHED GLYPH', state.stack);\n for (let i = 0; i < pLen; i++) {\n console.log(i, gZone[i].x, gZone[i].y);\n }\n }\n};\n\n/*\n* Executes the program loaded in state.\n*/\nexec = function(state) {\n let prog = state.prog;\n\n if (!prog) return;\n\n const pLen = prog.length;\n let ins;\n\n for (state.ip = 0; state.ip < pLen; state.ip++) {\n if (exports.DEBUG) state.step++;\n ins = instructionTable[prog[state.ip]];\n\n if (!ins) {\n throw new Error(\n 'unknown instruction: 0x' +\n Number(prog[state.ip]).toString(16)\n );\n }\n\n ins(state);\n\n // very extensive debugging for each step\n /*\n if (exports.DEBUG) {\n var da;\n if (state.gZone) {\n da = [];\n for (let i = 0; i < state.gZone.length; i++)\n {\n da.push(i + ' ' +\n state.gZone[i].x * 64 + ' ' +\n state.gZone[i].y * 64 + ' ' +\n (state.gZone[i].xTouched ? 'x' : '') +\n (state.gZone[i].yTouched ? 'y' : '')\n );\n }\n console.log('GZ', da);\n }\n\n if (state.tZone) {\n da = [];\n for (let i = 0; i < state.tZone.length; i++) {\n da.push(i + ' ' +\n state.tZone[i].x * 64 + ' ' +\n state.tZone[i].y * 64 + ' ' +\n (state.tZone[i].xTouched ? 'x' : '') +\n (state.tZone[i].yTouched ? 'y' : '')\n );\n }\n console.log('TZ', da);\n }\n\n if (state.stack.length > 10) {\n console.log(\n state.stack.length,\n '...', state.stack.slice(state.stack.length - 10)\n );\n } else {\n console.log(state.stack.length, state.stack);\n }\n }\n */\n }\n};\n\n/*\n* Initializes the twilight zone.\n*\n* This is only done if a SZPx instruction\n* refers to the twilight zone.\n*/\nfunction initTZone(state)\n{\n const tZone = state.tZone = new Array(state.gZone.length);\n\n // no idea if this is actually correct...\n for (let i = 0; i < tZone.length; i++)\n {\n tZone[i] = new HPoint(0, 0);\n }\n}\n\n/*\n* Skips the instruction pointer ahead over an IF/ELSE block.\n* handleElse .. if true breaks on matching ELSE\n*/\nfunction skip(state, handleElse)\n{\n const prog = state.prog;\n let ip = state.ip;\n let nesting = 1;\n let ins;\n\n do {\n ins = prog[++ip];\n if (ins === 0x58) // IF\n nesting++;\n else if (ins === 0x59) // EIF\n nesting--;\n else if (ins === 0x40) // NPUSHB\n ip += prog[ip + 1] + 1;\n else if (ins === 0x41) // NPUSHW\n ip += 2 * prog[ip + 1] + 1;\n else if (ins >= 0xB0 && ins <= 0xB7) // PUSHB\n ip += ins - 0xB0 + 1;\n else if (ins >= 0xB8 && ins <= 0xBF) // PUSHW\n ip += (ins - 0xB8 + 1) * 2;\n else if (handleElse && nesting === 1 && ins === 0x1B) // ELSE\n break;\n } while (nesting > 0);\n\n state.ip = ip;\n}\n\n/*----------------------------------------------------------*\n* And then a lot of instructions... *\n*----------------------------------------------------------*/\n\n// SVTCA[a] Set freedom and projection Vectors To Coordinate Axis\n// 0x00-0x01\nfunction SVTCA(v, state) {\n if (exports.DEBUG) console.log(state.step, 'SVTCA[' + v.axis + ']');\n\n state.fv = state.pv = state.dpv = v;\n}\n\n// SPVTCA[a] Set Projection Vector to Coordinate Axis\n// 0x02-0x03\nfunction SPVTCA(v, state) {\n if (exports.DEBUG) console.log(state.step, 'SPVTCA[' + v.axis + ']');\n\n state.pv = state.dpv = v;\n}\n\n// SFVTCA[a] Set Freedom Vector to Coordinate Axis\n// 0x04-0x05\nfunction SFVTCA(v, state) {\n if (exports.DEBUG) console.log(state.step, 'SFVTCA[' + v.axis + ']');\n\n state.fv = v;\n}\n\n// SPVTL[a] Set Projection Vector To Line\n// 0x06-0x07\nfunction SPVTL(a, state) {\n const stack = state.stack;\n const p2i = stack.pop();\n const p1i = stack.pop();\n const p2 = state.z2[p2i];\n const p1 = state.z1[p1i];\n\n if (exports.DEBUG) console.log('SPVTL[' + a + ']', p2i, p1i);\n\n let dx;\n let dy;\n\n if (!a) {\n dx = p1.x - p2.x;\n dy = p1.y - p2.y;\n } else {\n dx = p2.y - p1.y;\n dy = p1.x - p2.x;\n }\n\n state.pv = state.dpv = getUnitVector(dx, dy);\n}\n\n// SFVTL[a] Set Freedom Vector To Line\n// 0x08-0x09\nfunction SFVTL(a, state) {\n const stack = state.stack;\n const p2i = stack.pop();\n const p1i = stack.pop();\n const p2 = state.z2[p2i];\n const p1 = state.z1[p1i];\n\n if (exports.DEBUG) console.log('SFVTL[' + a + ']', p2i, p1i);\n\n let dx;\n let dy;\n\n if (!a) {\n dx = p1.x - p2.x;\n dy = p1.y - p2.y;\n } else {\n dx = p2.y - p1.y;\n dy = p1.x - p2.x;\n }\n\n state.fv = getUnitVector(dx, dy);\n}\n\n// SPVFS[] Set Projection Vector From Stack\n// 0x0A\nfunction SPVFS(state) {\n const stack = state.stack;\n const y = stack.pop();\n const x = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'SPVFS[]', y, x);\n\n state.pv = state.dpv = getUnitVector(x, y);\n}\n\n// SFVFS[] Set Freedom Vector From Stack\n// 0x0B\nfunction SFVFS(state) {\n const stack = state.stack;\n const y = stack.pop();\n const x = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'SPVFS[]', y, x);\n\n state.fv = getUnitVector(x, y);\n}\n\n// GPV[] Get Projection Vector\n// 0x0C\nfunction GPV(state) {\n const stack = state.stack;\n const pv = state.pv;\n\n if (exports.DEBUG) console.log(state.step, 'GPV[]');\n\n stack.push(pv.x * 0x4000);\n stack.push(pv.y * 0x4000);\n}\n\n// GFV[] Get Freedom Vector\n// 0x0C\nfunction GFV(state) {\n const stack = state.stack;\n const fv = state.fv;\n\n if (exports.DEBUG) console.log(state.step, 'GFV[]');\n\n stack.push(fv.x * 0x4000);\n stack.push(fv.y * 0x4000);\n}\n\n// SFVTPV[] Set Freedom Vector To Projection Vector\n// 0x0E\nfunction SFVTPV(state) {\n state.fv = state.pv;\n\n if (exports.DEBUG) console.log(state.step, 'SFVTPV[]');\n}\n\n// ISECT[] moves point p to the InterSECTion of two lines\n// 0x0F\nfunction ISECT(state)\n{\n const stack = state.stack;\n const pa0i = stack.pop();\n const pa1i = stack.pop();\n const pb0i = stack.pop();\n const pb1i = stack.pop();\n const pi = stack.pop();\n const z0 = state.z0;\n const z1 = state.z1;\n const pa0 = z0[pa0i];\n const pa1 = z0[pa1i];\n const pb0 = z1[pb0i];\n const pb1 = z1[pb1i];\n const p = state.z2[pi];\n\n if (exports.DEBUG) console.log('ISECT[], ', pa0i, pa1i, pb0i, pb1i, pi);\n\n // math from\n // en.wikipedia.org/wiki/Line%E2%80%93line_intersection#Given_two_points_on_each_line\n\n const x1 = pa0.x;\n const y1 = pa0.y;\n const x2 = pa1.x;\n const y2 = pa1.y;\n const x3 = pb0.x;\n const y3 = pb0.y;\n const x4 = pb1.x;\n const y4 = pb1.y;\n\n const div = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4);\n const f1 = x1 * y2 - y1 * x2;\n const f2 = x3 * y4 - y3 * x4;\n\n p.x = (f1 * (x3 - x4) - f2 * (x1 - x2)) / div;\n p.y = (f1 * (y3 - y4) - f2 * (y1 - y2)) / div;\n}\n\n// SRP0[] Set Reference Point 0\n// 0x10\nfunction SRP0(state) {\n state.rp0 = state.stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'SRP0[]', state.rp0);\n}\n\n// SRP1[] Set Reference Point 1\n// 0x11\nfunction SRP1(state) {\n state.rp1 = state.stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'SRP1[]', state.rp1);\n}\n\n// SRP1[] Set Reference Point 2\n// 0x12\nfunction SRP2(state) {\n state.rp2 = state.stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'SRP2[]', state.rp2);\n}\n\n// SZP0[] Set Zone Pointer 0\n// 0x13\nfunction SZP0(state) {\n const n = state.stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'SZP0[]', n);\n\n state.zp0 = n;\n\n switch (n) {\n case 0:\n if (!state.tZone) initTZone(state);\n state.z0 = state.tZone;\n break;\n case 1 :\n state.z0 = state.gZone;\n break;\n default :\n throw new Error('Invalid zone pointer');\n }\n}\n\n// SZP1[] Set Zone Pointer 1\n// 0x14\nfunction SZP1(state) {\n const n = state.stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'SZP1[]', n);\n\n state.zp1 = n;\n\n switch (n) {\n case 0:\n if (!state.tZone) initTZone(state);\n state.z1 = state.tZone;\n break;\n case 1 :\n state.z1 = state.gZone;\n break;\n default :\n throw new Error('Invalid zone pointer');\n }\n}\n\n// SZP2[] Set Zone Pointer 2\n// 0x15\nfunction SZP2(state) {\n const n = state.stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'SZP2[]', n);\n\n state.zp2 = n;\n\n switch (n) {\n case 0:\n if (!state.tZone) initTZone(state);\n state.z2 = state.tZone;\n break;\n case 1 :\n state.z2 = state.gZone;\n break;\n default :\n throw new Error('Invalid zone pointer');\n }\n}\n\n// SZPS[] Set Zone PointerS\n// 0x16\nfunction SZPS(state) {\n const n = state.stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'SZPS[]', n);\n\n state.zp0 = state.zp1 = state.zp2 = n;\n\n switch (n) {\n case 0:\n if (!state.tZone) initTZone(state);\n state.z0 = state.z1 = state.z2 = state.tZone;\n break;\n case 1 :\n state.z0 = state.z1 = state.z2 = state.gZone;\n break;\n default :\n throw new Error('Invalid zone pointer');\n }\n}\n\n// SLOOP[] Set LOOP variable\n// 0x17\nfunction SLOOP(state) {\n state.loop = state.stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'SLOOP[]', state.loop);\n}\n\n// RTG[] Round To Grid\n// 0x18\nfunction RTG(state) {\n if (exports.DEBUG) console.log(state.step, 'RTG[]');\n\n state.round = roundToGrid;\n}\n\n// RTHG[] Round To Half Grid\n// 0x19\nfunction RTHG(state) {\n if (exports.DEBUG) console.log(state.step, 'RTHG[]');\n\n state.round = roundToHalfGrid;\n}\n\n// SMD[] Set Minimum Distance\n// 0x1A\nfunction SMD(state) {\n const d = state.stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'SMD[]', d);\n\n state.minDis = d / 0x40;\n}\n\n// ELSE[] ELSE clause\n// 0x1B\nfunction ELSE(state) {\n // This instruction has been reached by executing a then branch\n // so it just skips ahead until matching EIF.\n //\n // In case the IF was negative the IF[] instruction already\n // skipped forward over the ELSE[]\n\n if (exports.DEBUG) console.log(state.step, 'ELSE[]');\n\n skip(state, false);\n}\n\n// JMPR[] JuMP Relative\n// 0x1C\nfunction JMPR(state) {\n const o = state.stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'JMPR[]', o);\n\n // A jump by 1 would do nothing.\n state.ip += o - 1;\n}\n\n// SCVTCI[] Set Control Value Table Cut-In\n// 0x1D\nfunction SCVTCI(state) {\n const n = state.stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'SCVTCI[]', n);\n\n state.cvCutIn = n / 0x40;\n}\n\n// DUP[] DUPlicate top stack element\n// 0x20\nfunction DUP(state) {\n const stack = state.stack;\n\n if (exports.DEBUG) console.log(state.step, 'DUP[]');\n\n stack.push(stack[stack.length - 1]);\n}\n\n// POP[] POP top stack element\n// 0x21\nfunction POP(state) {\n if (exports.DEBUG) console.log(state.step, 'POP[]');\n\n state.stack.pop();\n}\n\n// CLEAR[] CLEAR the stack\n// 0x22\nfunction CLEAR(state) {\n if (exports.DEBUG) console.log(state.step, 'CLEAR[]');\n\n state.stack.length = 0;\n}\n\n// SWAP[] SWAP the top two elements on the stack\n// 0x23\nfunction SWAP(state) {\n const stack = state.stack;\n\n const a = stack.pop();\n const b = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'SWAP[]');\n\n stack.push(a);\n stack.push(b);\n}\n\n// DEPTH[] DEPTH of the stack\n// 0x24\nfunction DEPTH(state) {\n const stack = state.stack;\n\n if (exports.DEBUG) console.log(state.step, 'DEPTH[]');\n\n stack.push(stack.length);\n}\n\n// LOOPCALL[] LOOPCALL function\n// 0x2A\nfunction LOOPCALL(state) {\n const stack = state.stack;\n const fn = stack.pop();\n const c = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'LOOPCALL[]', fn, c);\n\n // saves callers program\n const cip = state.ip;\n const cprog = state.prog;\n\n state.prog = state.funcs[fn];\n\n // executes the function\n for (let i = 0; i < c; i++) {\n exec(state);\n\n if (exports.DEBUG) console.log(\n ++state.step,\n i + 1 < c ? 'next loopcall' : 'done loopcall',\n i\n );\n }\n\n // restores the callers program\n state.ip = cip;\n state.prog = cprog;\n}\n\n// CALL[] CALL function\n// 0x2B\nfunction CALL(state) {\n const fn = state.stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'CALL[]', fn);\n\n // saves callers program\n const cip = state.ip;\n const cprog = state.prog;\n\n state.prog = state.funcs[fn];\n\n // executes the function\n exec(state);\n\n // restores the callers program\n state.ip = cip;\n state.prog = cprog;\n\n if (exports.DEBUG) console.log(++state.step, 'returning from', fn);\n}\n\n// CINDEX[] Copy the INDEXed element to the top of the stack\n// 0x25\nfunction CINDEX(state) {\n const stack = state.stack;\n const k = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'CINDEX[]', k);\n\n // In case of k == 1, it copies the last element after popping\n // thus stack.length - k.\n stack.push(stack[stack.length - k]);\n}\n\n// MINDEX[] Move the INDEXed element to the top of the stack\n// 0x26\nfunction MINDEX(state) {\n const stack = state.stack;\n const k = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'MINDEX[]', k);\n\n stack.push(stack.splice(stack.length - k, 1)[0]);\n}\n\n// FDEF[] Function DEFinition\n// 0x2C\nfunction FDEF(state) {\n if (state.env !== 'fpgm') throw new Error('FDEF not allowed here');\n const stack = state.stack;\n const prog = state.prog;\n let ip = state.ip;\n\n const fn = stack.pop();\n const ipBegin = ip;\n\n if (exports.DEBUG) console.log(state.step, 'FDEF[]', fn);\n\n while (prog[++ip] !== 0x2D);\n\n state.ip = ip;\n state.funcs[fn] = prog.slice(ipBegin + 1, ip);\n}\n\n// MDAP[a] Move Direct Absolute Point\n// 0x2E-0x2F\nfunction MDAP(round, state) {\n const pi = state.stack.pop();\n const p = state.z0[pi];\n const fv = state.fv;\n const pv = state.pv;\n\n if (exports.DEBUG) console.log(state.step, 'MDAP[' + round + ']', pi);\n\n let d = pv.distance(p, HPZero);\n\n if (round) d = state.round(d);\n\n fv.setRelative(p, HPZero, d, pv);\n fv.touch(p);\n\n state.rp0 = state.rp1 = pi;\n}\n\n// IUP[a] Interpolate Untouched Points through the outline\n// 0x30\nfunction IUP(v, state) {\n const z2 = state.z2;\n const pLen = z2.length - 2;\n let cp;\n let pp;\n let np;\n\n if (exports.DEBUG) console.log(state.step, 'IUP[' + v.axis + ']');\n\n for (let i = 0; i < pLen; i++) {\n cp = z2[i]; // current point\n\n // if this point has been touched go on\n if (v.touched(cp)) continue;\n\n pp = cp.prevTouched(v);\n\n // no point on the contour has been touched?\n if (pp === cp) continue;\n\n np = cp.nextTouched(v);\n\n if (pp === np) {\n // only one point on the contour has been touched\n // so simply moves the point like that\n\n v.setRelative(cp, cp, v.distance(pp, pp, false, true), v, true);\n }\n\n v.interpolate(cp, pp, np, v);\n }\n}\n\n// SHP[] SHift Point using reference point\n// 0x32-0x33\nfunction SHP(a, state) {\n const stack = state.stack;\n const rpi = a ? state.rp1 : state.rp2;\n const rp = (a ? state.z0 : state.z1)[rpi];\n const fv = state.fv;\n const pv = state.pv;\n let loop = state.loop;\n const z2 = state.z2;\n\n while (loop--)\n {\n const pi = stack.pop();\n const p = z2[pi];\n\n const d = pv.distance(rp, rp, false, true);\n fv.setRelative(p, p, d, pv);\n fv.touch(p);\n\n if (exports.DEBUG) {\n console.log(\n state.step,\n (state.loop > 1 ?\n 'loop ' + (state.loop - loop) + ': ' :\n ''\n ) +\n 'SHP[' + (a ? 'rp1' : 'rp2') + ']', pi\n );\n }\n }\n\n state.loop = 1;\n}\n\n// SHC[] SHift Contour using reference point\n// 0x36-0x37\nfunction SHC(a, state) {\n const stack = state.stack;\n const rpi = a ? state.rp1 : state.rp2;\n const rp = (a ? state.z0 : state.z1)[rpi];\n const fv = state.fv;\n const pv = state.pv;\n const ci = stack.pop();\n const sp = state.z2[state.contours[ci]];\n let p = sp;\n\n if (exports.DEBUG) console.log(state.step, 'SHC[' + a + ']', ci);\n\n const d = pv.distance(rp, rp, false, true);\n\n do {\n if (p !== rp) fv.setRelative(p, p, d, pv);\n p = p.nextPointOnContour;\n } while (p !== sp);\n}\n\n// SHZ[] SHift Zone using reference point\n// 0x36-0x37\nfunction SHZ(a, state) {\n const stack = state.stack;\n const rpi = a ? state.rp1 : state.rp2;\n const rp = (a ? state.z0 : state.z1)[rpi];\n const fv = state.fv;\n const pv = state.pv;\n\n const e = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'SHZ[' + a + ']', e);\n\n let z;\n switch (e) {\n case 0 : z = state.tZone; break;\n case 1 : z = state.gZone; break;\n default : throw new Error('Invalid zone');\n }\n\n let p;\n const d = pv.distance(rp, rp, false, true);\n const pLen = z.length - 2;\n for (let i = 0; i < pLen; i++)\n {\n p = z[i];\n fv.setRelative(p, p, d, pv);\n //if (p !== rp) fv.setRelative(p, p, d, pv);\n }\n}\n\n// SHPIX[] SHift point by a PIXel amount\n// 0x38\nfunction SHPIX(state) {\n const stack = state.stack;\n let loop = state.loop;\n const fv = state.fv;\n const d = stack.pop() / 0x40;\n const z2 = state.z2;\n\n while (loop--) {\n const pi = stack.pop();\n const p = z2[pi];\n\n if (exports.DEBUG) {\n console.log(\n state.step,\n (state.loop > 1 ? 'loop ' + (state.loop - loop) + ': ' : '') +\n 'SHPIX[]', pi, d\n );\n }\n\n fv.setRelative(p, p, d);\n fv.touch(p);\n }\n\n state.loop = 1;\n}\n\n// IP[] Interpolate Point\n// 0x39\nfunction IP(state) {\n const stack = state.stack;\n const rp1i = state.rp1;\n const rp2i = state.rp2;\n let loop = state.loop;\n const rp1 = state.z0[rp1i];\n const rp2 = state.z1[rp2i];\n const fv = state.fv;\n const pv = state.dpv;\n const z2 = state.z2;\n\n while (loop--) {\n const pi = stack.pop();\n const p = z2[pi];\n\n if (exports.DEBUG) {\n console.log(\n state.step,\n (state.loop > 1 ? 'loop ' + (state.loop - loop) + ': ' : '') +\n 'IP[]', pi, rp1i, '<->', rp2i\n );\n }\n\n fv.interpolate(p, rp1, rp2, pv);\n\n fv.touch(p);\n }\n\n state.loop = 1;\n}\n\n// MSIRP[a] Move Stack Indirect Relative Point\n// 0x3A-0x3B\nfunction MSIRP(a, state) {\n const stack = state.stack;\n const d = stack.pop() / 64;\n const pi = stack.pop();\n const p = state.z1[pi];\n const rp0 = state.z0[state.rp0];\n const fv = state.fv;\n const pv = state.pv;\n\n fv.setRelative(p, rp0, d, pv);\n fv.touch(p);\n\n if (exports.DEBUG) console.log(state.step, 'MSIRP[' + a + ']', d, pi);\n\n state.rp1 = state.rp0;\n state.rp2 = pi;\n if (a) state.rp0 = pi;\n}\n\n// ALIGNRP[] Align to reference point.\n// 0x3C\nfunction ALIGNRP(state) {\n const stack = state.stack;\n const rp0i = state.rp0;\n const rp0 = state.z0[rp0i];\n let loop = state.loop;\n const fv = state.fv;\n const pv = state.pv;\n const z1 = state.z1;\n\n while (loop--) {\n const pi = stack.pop();\n const p = z1[pi];\n\n if (exports.DEBUG) {\n console.log(\n state.step,\n (state.loop > 1 ? 'loop ' + (state.loop - loop) + ': ' : '') +\n 'ALIGNRP[]', pi\n );\n }\n\n fv.setRelative(p, rp0, 0, pv);\n fv.touch(p);\n }\n\n state.loop = 1;\n}\n\n// RTG[] Round To Double Grid\n// 0x3D\nfunction RTDG(state) {\n if (exports.DEBUG) console.log(state.step, 'RTDG[]');\n\n state.round = roundToDoubleGrid;\n}\n\n// MIAP[a] Move Indirect Absolute Point\n// 0x3E-0x3F\nfunction MIAP(round, state) {\n const stack = state.stack;\n const n = stack.pop();\n const pi = stack.pop();\n const p = state.z0[pi];\n const fv = state.fv;\n const pv = state.pv;\n let cv = state.cvt[n];\n\n if (exports.DEBUG) {\n console.log(\n state.step,\n 'MIAP[' + round + ']',\n n, '(', cv, ')', pi\n );\n }\n\n let d = pv.distance(p, HPZero);\n\n if (round) {\n if (Math.abs(d - cv) < state.cvCutIn) d = cv;\n\n d = state.round(d);\n }\n\n fv.setRelative(p, HPZero, d, pv);\n\n if (state.zp0 === 0) {\n p.xo = p.x;\n p.yo = p.y;\n }\n\n fv.touch(p);\n\n state.rp0 = state.rp1 = pi;\n}\n\n// NPUSB[] PUSH N Bytes\n// 0x40\nfunction NPUSHB(state) {\n const prog = state.prog;\n let ip = state.ip;\n const stack = state.stack;\n\n const n = prog[++ip];\n\n if (exports.DEBUG) console.log(state.step, 'NPUSHB[]', n);\n\n for (let i = 0; i < n; i++) stack.push(prog[++ip]);\n\n state.ip = ip;\n}\n\n// NPUSHW[] PUSH N Words\n// 0x41\nfunction NPUSHW(state) {\n let ip = state.ip;\n const prog = state.prog;\n const stack = state.stack;\n const n = prog[++ip];\n\n if (exports.DEBUG) console.log(state.step, 'NPUSHW[]', n);\n\n for (let i = 0; i < n; i++) {\n let w = (prog[++ip] << 8) | prog[++ip];\n if (w & 0x8000) w = -((w ^ 0xffff) + 1);\n stack.push(w);\n }\n\n state.ip = ip;\n}\n\n// WS[] Write Store\n// 0x42\nfunction WS(state) {\n const stack = state.stack;\n let store = state.store;\n\n if (!store) store = state.store = [];\n\n const v = stack.pop();\n const l = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'WS', v, l);\n\n store[l] = v;\n}\n\n// RS[] Read Store\n// 0x43\nfunction RS(state) {\n const stack = state.stack;\n const store = state.store;\n\n const l = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'RS', l);\n\n const v = (store && store[l]) || 0;\n\n stack.push(v);\n}\n\n// WCVTP[] Write Control Value Table in Pixel units\n// 0x44\nfunction WCVTP(state) {\n const stack = state.stack;\n\n const v = stack.pop();\n const l = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'WCVTP', v, l);\n\n state.cvt[l] = v / 0x40;\n}\n\n// RCVT[] Read Control Value Table entry\n// 0x45\nfunction RCVT(state) {\n const stack = state.stack;\n const cvte = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'RCVT', cvte);\n\n stack.push(state.cvt[cvte] * 0x40);\n}\n\n// GC[] Get Coordinate projected onto the projection vector\n// 0x46-0x47\nfunction GC(a, state) {\n const stack = state.stack;\n const pi = stack.pop();\n const p = state.z2[pi];\n\n if (exports.DEBUG) console.log(state.step, 'GC[' + a + ']', pi);\n\n stack.push(state.dpv.distance(p, HPZero, a, false) * 0x40);\n}\n\n// MD[a] Measure Distance\n// 0x49-0x4A\nfunction MD(a, state) {\n const stack = state.stack;\n const pi2 = stack.pop();\n const pi1 = stack.pop();\n const p2 = state.z1[pi2];\n const p1 = state.z0[pi1];\n const d = state.dpv.distance(p1, p2, a, a);\n\n if (exports.DEBUG) console.log(state.step, 'MD[' + a + ']', pi2, pi1, '->', d);\n\n state.stack.push(Math.round(d * 64));\n}\n\n// MPPEM[] Measure Pixels Per EM\n// 0x4B\nfunction MPPEM(state) {\n if (exports.DEBUG) console.log(state.step, 'MPPEM[]');\n state.stack.push(state.ppem);\n}\n\n// FLIPON[] set the auto FLIP Boolean to ON\n// 0x4D\nfunction FLIPON(state) {\n if (exports.DEBUG) console.log(state.step, 'FLIPON[]');\n state.autoFlip = true;\n}\n\n// LT[] Less Than\n// 0x50\nfunction LT(state) {\n const stack = state.stack;\n const e2 = stack.pop();\n const e1 = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'LT[]', e2, e1);\n\n stack.push(e1 < e2 ? 1 : 0);\n}\n\n// LTEQ[] Less Than or EQual\n// 0x53\nfunction LTEQ(state) {\n const stack = state.stack;\n const e2 = stack.pop();\n const e1 = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'LTEQ[]', e2, e1);\n\n stack.push(e1 <= e2 ? 1 : 0);\n}\n\n// GTEQ[] Greater Than\n// 0x52\nfunction GT(state) {\n const stack = state.stack;\n const e2 = stack.pop();\n const e1 = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'GT[]', e2, e1);\n\n stack.push(e1 > e2 ? 1 : 0);\n}\n\n// GTEQ[] Greater Than or EQual\n// 0x53\nfunction GTEQ(state) {\n const stack = state.stack;\n const e2 = stack.pop();\n const e1 = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'GTEQ[]', e2, e1);\n\n stack.push(e1 >= e2 ? 1 : 0);\n}\n\n// EQ[] EQual\n// 0x54\nfunction EQ(state) {\n const stack = state.stack;\n const e2 = stack.pop();\n const e1 = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'EQ[]', e2, e1);\n\n stack.push(e2 === e1 ? 1 : 0);\n}\n\n// NEQ[] Not EQual\n// 0x55\nfunction NEQ(state) {\n const stack = state.stack;\n const e2 = stack.pop();\n const e1 = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'NEQ[]', e2, e1);\n\n stack.push(e2 !== e1 ? 1 : 0);\n}\n\n// ODD[] ODD\n// 0x56\nfunction ODD(state) {\n const stack = state.stack;\n const n = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'ODD[]', n);\n\n stack.push(Math.trunc(n) % 2 ? 1 : 0);\n}\n\n// EVEN[] EVEN\n// 0x57\nfunction EVEN(state) {\n const stack = state.stack;\n const n = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'EVEN[]', n);\n\n stack.push(Math.trunc(n) % 2 ? 0 : 1);\n}\n\n// IF[] IF test\n// 0x58\nfunction IF(state) {\n let test = state.stack.pop();\n let ins;\n\n if (exports.DEBUG) console.log(state.step, 'IF[]', test);\n\n // if test is true it just continues\n // if not the ip is skipped until matching ELSE or EIF\n if (!test) {\n skip(state, true);\n\n if (exports.DEBUG) console.log(state.step, ins === 0x1B ? 'ELSE[]' : 'EIF[]');\n }\n}\n\n// EIF[] End IF\n// 0x59\nfunction EIF(state) {\n // this can be reached normally when\n // executing an else branch.\n // -> just ignore it\n\n if (exports.DEBUG) console.log(state.step, 'EIF[]');\n}\n\n// AND[] logical AND\n// 0x5A\nfunction AND(state) {\n const stack = state.stack;\n const e2 = stack.pop();\n const e1 = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'AND[]', e2, e1);\n\n stack.push(e2 && e1 ? 1 : 0);\n}\n\n// OR[] logical OR\n// 0x5B\nfunction OR(state) {\n const stack = state.stack;\n const e2 = stack.pop();\n const e1 = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'OR[]', e2, e1);\n\n stack.push(e2 || e1 ? 1 : 0);\n}\n\n// NOT[] logical NOT\n// 0x5C\nfunction NOT(state) {\n const stack = state.stack;\n const e = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'NOT[]', e);\n\n stack.push(e ? 0 : 1);\n}\n\n// DELTAP1[] DELTA exception P1\n// DELTAP2[] DELTA exception P2\n// DELTAP3[] DELTA exception P3\n// 0x5D, 0x71, 0x72\nfunction DELTAP123(b, state) {\n const stack = state.stack;\n const n = stack.pop();\n const fv = state.fv;\n const pv = state.pv;\n const ppem = state.ppem;\n const base = state.deltaBase + (b - 1) * 16;\n const ds = state.deltaShift;\n const z0 = state.z0;\n\n if (exports.DEBUG) console.log(state.step, 'DELTAP[' + b + ']', n, stack);\n\n for (let i = 0; i < n; i++) {\n const pi = stack.pop();\n const arg = stack.pop();\n const appem = base + ((arg & 0xF0) >> 4);\n if (appem !== ppem) continue;\n\n let mag = (arg & 0x0F) - 8;\n if (mag >= 0) mag++;\n if (exports.DEBUG) console.log(state.step, 'DELTAPFIX', pi, 'by', mag * ds);\n\n const p = z0[pi];\n fv.setRelative(p, p, mag * ds, pv);\n }\n}\n\n// SDB[] Set Delta Base in the graphics state\n// 0x5E\nfunction SDB(state) {\n const stack = state.stack;\n const n = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'SDB[]', n);\n\n state.deltaBase = n;\n}\n\n// SDS[] Set Delta Shift in the graphics state\n// 0x5F\nfunction SDS(state) {\n const stack = state.stack;\n const n = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'SDS[]', n);\n\n state.deltaShift = Math.pow(0.5, n);\n}\n\n// ADD[] ADD\n// 0x60\nfunction ADD(state) {\n const stack = state.stack;\n const n2 = stack.pop();\n const n1 = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'ADD[]', n2, n1);\n\n stack.push(n1 + n2);\n}\n\n// SUB[] SUB\n// 0x61\nfunction SUB(state) {\n const stack = state.stack;\n const n2 = stack.pop();\n const n1 = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'SUB[]', n2, n1);\n\n stack.push(n1 - n2);\n}\n\n// DIV[] DIV\n// 0x62\nfunction DIV(state) {\n const stack = state.stack;\n const n2 = stack.pop();\n const n1 = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'DIV[]', n2, n1);\n\n stack.push(n1 * 64 / n2);\n}\n\n// MUL[] MUL\n// 0x63\nfunction MUL(state) {\n const stack = state.stack;\n const n2 = stack.pop();\n const n1 = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'MUL[]', n2, n1);\n\n stack.push(n1 * n2 / 64);\n}\n\n// ABS[] ABSolute value\n// 0x64\nfunction ABS(state) {\n const stack = state.stack;\n const n = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'ABS[]', n);\n\n stack.push(Math.abs(n));\n}\n\n// NEG[] NEGate\n// 0x65\nfunction NEG(state) {\n const stack = state.stack;\n let n = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'NEG[]', n);\n\n stack.push(-n);\n}\n\n// FLOOR[] FLOOR\n// 0x66\nfunction FLOOR(state) {\n const stack = state.stack;\n const n = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'FLOOR[]', n);\n\n stack.push(Math.floor(n / 0x40) * 0x40);\n}\n\n// CEILING[] CEILING\n// 0x67\nfunction CEILING(state) {\n const stack = state.stack;\n const n = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'CEILING[]', n);\n\n stack.push(Math.ceil(n / 0x40) * 0x40);\n}\n\n// ROUND[ab] ROUND value\n// 0x68-0x6B\nfunction ROUND(dt, state) {\n const stack = state.stack;\n const n = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'ROUND[]');\n\n stack.push(state.round(n / 0x40) * 0x40);\n}\n\n// WCVTF[] Write Control Value Table in Funits\n// 0x70\nfunction WCVTF(state) {\n const stack = state.stack;\n const v = stack.pop();\n const l = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'WCVTF[]', v, l);\n\n state.cvt[l] = v * state.ppem / state.font.unitsPerEm;\n}\n\n// DELTAC1[] DELTA exception C1\n// DELTAC2[] DELTA exception C2\n// DELTAC3[] DELTA exception C3\n// 0x73, 0x74, 0x75\nfunction DELTAC123(b, state) {\n const stack = state.stack;\n const n = stack.pop();\n const ppem = state.ppem;\n const base = state.deltaBase + (b - 1) * 16;\n const ds = state.deltaShift;\n\n if (exports.DEBUG) console.log(state.step, 'DELTAC[' + b + ']', n, stack);\n\n for (let i = 0; i < n; i++) {\n const c = stack.pop();\n const arg = stack.pop();\n const appem = base + ((arg & 0xF0) >> 4);\n if (appem !== ppem) continue;\n\n let mag = (arg & 0x0F) - 8;\n if (mag >= 0) mag++;\n\n const delta = mag * ds;\n\n if (exports.DEBUG) console.log(state.step, 'DELTACFIX', c, 'by', delta);\n\n state.cvt[c] += delta;\n }\n}\n\n// SROUND[] Super ROUND\n// 0x76\nfunction SROUND(state) {\n let n = state.stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'SROUND[]', n);\n\n state.round = roundSuper;\n\n let period;\n\n switch (n & 0xC0) {\n case 0x00:\n period = 0.5;\n break;\n case 0x40:\n period = 1;\n break;\n case 0x80:\n period = 2;\n break;\n default:\n throw new Error('invalid SROUND value');\n }\n\n state.srPeriod = period;\n\n switch (n & 0x30) {\n case 0x00:\n state.srPhase = 0;\n break;\n case 0x10:\n state.srPhase = 0.25 * period;\n break;\n case 0x20:\n state.srPhase = 0.5 * period;\n break;\n case 0x30:\n state.srPhase = 0.75 * period;\n break;\n default: throw new Error('invalid SROUND value');\n }\n\n n &= 0x0F;\n\n if (n === 0) state.srThreshold = 0;\n else state.srThreshold = (n / 8 - 0.5) * period;\n}\n\n// S45ROUND[] Super ROUND 45 degrees\n// 0x77\nfunction S45ROUND(state) {\n let n = state.stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'S45ROUND[]', n);\n\n state.round = roundSuper;\n\n let period;\n\n switch (n & 0xC0) {\n case 0x00:\n period = Math.sqrt(2) / 2;\n break;\n case 0x40:\n period = Math.sqrt(2);\n break;\n case 0x80:\n period = 2 * Math.sqrt(2);\n break;\n default:\n throw new Error('invalid S45ROUND value');\n }\n\n state.srPeriod = period;\n\n switch (n & 0x30) {\n case 0x00:\n state.srPhase = 0;\n break;\n case 0x10:\n state.srPhase = 0.25 * period;\n break;\n case 0x20:\n state.srPhase = 0.5 * period;\n break;\n case 0x30:\n state.srPhase = 0.75 * period;\n break;\n default:\n throw new Error('invalid S45ROUND value');\n }\n\n n &= 0x0F;\n\n if (n === 0) state.srThreshold = 0;\n else state.srThreshold = (n / 8 - 0.5) * period;\n}\n\n// ROFF[] Round Off\n// 0x7A\nfunction ROFF(state) {\n if (exports.DEBUG) console.log(state.step, 'ROFF[]');\n\n state.round = roundOff;\n}\n\n// RUTG[] Round Up To Grid\n// 0x7C\nfunction RUTG(state) {\n if (exports.DEBUG) console.log(state.step, 'RUTG[]');\n\n state.round = roundUpToGrid;\n}\n\n// RDTG[] Round Down To Grid\n// 0x7D\nfunction RDTG(state) {\n if (exports.DEBUG) console.log(state.step, 'RDTG[]');\n\n state.round = roundDownToGrid;\n}\n\n// SCANCTRL[] SCAN conversion ConTRoL\n// 0x85\nfunction SCANCTRL(state) {\n const n = state.stack.pop();\n\n // ignored by opentype.js\n\n if (exports.DEBUG) console.log(state.step, 'SCANCTRL[]', n);\n}\n\n// SDPVTL[a] Set Dual Projection Vector To Line\n// 0x86-0x87\nfunction SDPVTL(a, state) {\n const stack = state.stack;\n const p2i = stack.pop();\n const p1i = stack.pop();\n const p2 = state.z2[p2i];\n const p1 = state.z1[p1i];\n\n if (exports.DEBUG) console.log(state.step, 'SDPVTL[' + a + ']', p2i, p1i);\n\n let dx;\n let dy;\n\n if (!a) {\n dx = p1.x - p2.x;\n dy = p1.y - p2.y;\n } else {\n dx = p2.y - p1.y;\n dy = p1.x - p2.x;\n }\n\n state.dpv = getUnitVector(dx, dy);\n}\n\n// GETINFO[] GET INFOrmation\n// 0x88\nfunction GETINFO(state) {\n const stack = state.stack;\n const sel = stack.pop();\n let r = 0;\n\n if (exports.DEBUG) console.log(state.step, 'GETINFO[]', sel);\n\n // v35 as in no subpixel hinting\n if (sel & 0x01) r = 35;\n\n // TODO rotation and stretch currently not supported\n // and thus those GETINFO are always 0.\n\n // opentype.js is always gray scaling\n if (sel & 0x20) r |= 0x1000;\n\n stack.push(r);\n}\n\n// ROLL[] ROLL the top three stack elements\n// 0x8A\nfunction ROLL(state) {\n const stack = state.stack;\n const a = stack.pop();\n const b = stack.pop();\n const c = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'ROLL[]');\n\n stack.push(b);\n stack.push(a);\n stack.push(c);\n}\n\n// MAX[] MAXimum of top two stack elements\n// 0x8B\nfunction MAX(state) {\n const stack = state.stack;\n const e2 = stack.pop();\n const e1 = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'MAX[]', e2, e1);\n\n stack.push(Math.max(e1, e2));\n}\n\n// MIN[] MINimum of top two stack elements\n// 0x8C\nfunction MIN(state) {\n const stack = state.stack;\n const e2 = stack.pop();\n const e1 = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'MIN[]', e2, e1);\n\n stack.push(Math.min(e1, e2));\n}\n\n// SCANTYPE[] SCANTYPE\n// 0x8D\nfunction SCANTYPE(state) {\n const n = state.stack.pop();\n // ignored by opentype.js\n if (exports.DEBUG) console.log(state.step, 'SCANTYPE[]', n);\n}\n\n// INSTCTRL[] INSTCTRL\n// 0x8D\nfunction INSTCTRL(state) {\n const s = state.stack.pop();\n let v = state.stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'INSTCTRL[]', s, v);\n\n switch (s) {\n case 1 : state.inhibitGridFit = !!v; return;\n case 2 : state.ignoreCvt = !!v; return;\n default: throw new Error('invalid INSTCTRL[] selector');\n }\n}\n\n// PUSHB[abc] PUSH Bytes\n// 0xB0-0xB7\nfunction PUSHB(n, state) {\n const stack = state.stack;\n const prog = state.prog;\n let ip = state.ip;\n\n if (exports.DEBUG) console.log(state.step, 'PUSHB[' + n + ']');\n\n for (let i = 0; i < n; i++) stack.push(prog[++ip]);\n\n state.ip = ip;\n}\n\n// PUSHW[abc] PUSH Words\n// 0xB8-0xBF\nfunction PUSHW(n, state) {\n let ip = state.ip;\n const prog = state.prog;\n const stack = state.stack;\n\n if (exports.DEBUG) console.log(state.ip, 'PUSHW[' + n + ']');\n\n for (let i = 0; i < n; i++) {\n let w = (prog[++ip] << 8) | prog[++ip];\n if (w & 0x8000) w = -((w ^ 0xffff) + 1);\n stack.push(w);\n }\n\n state.ip = ip;\n}\n\n// MDRP[abcde] Move Direct Relative Point\n// 0xD0-0xEF\n// (if indirect is 0)\n//\n// and\n//\n// MIRP[abcde] Move Indirect Relative Point\n// 0xE0-0xFF\n// (if indirect is 1)\n\nfunction MDRP_MIRP(indirect, setRp0, keepD, ro, dt, state) {\n const stack = state.stack;\n const cvte = indirect && stack.pop();\n const pi = stack.pop();\n const rp0i = state.rp0;\n const rp = state.z0[rp0i];\n const p = state.z1[pi];\n\n const md = state.minDis;\n const fv = state.fv;\n const pv = state.dpv;\n let od; // original distance\n let d; // moving distance\n let sign; // sign of distance\n let cv;\n\n d = od = pv.distance(p, rp, true, true);\n sign = d >= 0 ? 1 : -1; // Math.sign would be 0 in case of 0\n\n // TODO consider autoFlip\n d = Math.abs(d);\n\n if (indirect) {\n cv = state.cvt[cvte];\n\n if (ro && Math.abs(d - cv) < state.cvCutIn) d = cv;\n }\n\n if (keepD && d < md) d = md;\n\n if (ro) d = state.round(d);\n\n fv.setRelative(p, rp, sign * d, pv);\n fv.touch(p);\n\n if (exports.DEBUG) {\n console.log(\n state.step,\n (indirect ? 'MIRP[' : 'MDRP[') +\n (setRp0 ? 'M' : 'm') +\n (keepD ? '>' : '_') +\n (ro ? 'R' : '_') +\n (dt === 0 ? 'Gr' : (dt === 1 ? 'Bl' : (dt === 2 ? 'Wh' : ''))) +\n ']',\n indirect ?\n cvte + '(' + state.cvt[cvte] + ',' + cv + ')' :\n '',\n pi,\n '(d =', od, '->', sign * d, ')'\n );\n }\n\n state.rp1 = state.rp0;\n state.rp2 = pi;\n if (setRp0) state.rp0 = pi;\n}\n\n/*\n* The instruction table.\n*/\ninstructionTable = [\n /* 0x00 */ SVTCA.bind(undefined, yUnitVector),\n /* 0x01 */ SVTCA.bind(undefined, xUnitVector),\n /* 0x02 */ SPVTCA.bind(undefined, yUnitVector),\n /* 0x03 */ SPVTCA.bind(undefined, xUnitVector),\n /* 0x04 */ SFVTCA.bind(undefined, yUnitVector),\n /* 0x05 */ SFVTCA.bind(undefined, xUnitVector),\n /* 0x06 */ SPVTL.bind(undefined, 0),\n /* 0x07 */ SPVTL.bind(undefined, 1),\n /* 0x08 */ SFVTL.bind(undefined, 0),\n /* 0x09 */ SFVTL.bind(undefined, 1),\n /* 0x0A */ SPVFS,\n /* 0x0B */ SFVFS,\n /* 0x0C */ GPV,\n /* 0x0D */ GFV,\n /* 0x0E */ SFVTPV,\n /* 0x0F */ ISECT,\n /* 0x10 */ SRP0,\n /* 0x11 */ SRP1,\n /* 0x12 */ SRP2,\n /* 0x13 */ SZP0,\n /* 0x14 */ SZP1,\n /* 0x15 */ SZP2,\n /* 0x16 */ SZPS,\n /* 0x17 */ SLOOP,\n /* 0x18 */ RTG,\n /* 0x19 */ RTHG,\n /* 0x1A */ SMD,\n /* 0x1B */ ELSE,\n /* 0x1C */ JMPR,\n /* 0x1D */ SCVTCI,\n /* 0x1E */ undefined, // TODO SSWCI\n /* 0x1F */ undefined, // TODO SSW\n /* 0x20 */ DUP,\n /* 0x21 */ POP,\n /* 0x22 */ CLEAR,\n /* 0x23 */ SWAP,\n /* 0x24 */ DEPTH,\n /* 0x25 */ CINDEX,\n /* 0x26 */ MINDEX,\n /* 0x27 */ undefined, // TODO ALIGNPTS\n /* 0x28 */ undefined,\n /* 0x29 */ undefined, // TODO UTP\n /* 0x2A */ LOOPCALL,\n /* 0x2B */ CALL,\n /* 0x2C */ FDEF,\n /* 0x2D */ undefined, // ENDF (eaten by FDEF)\n /* 0x2E */ MDAP.bind(undefined, 0),\n /* 0x2F */ MDAP.bind(undefined, 1),\n /* 0x30 */ IUP.bind(undefined, yUnitVector),\n /* 0x31 */ IUP.bind(undefined, xUnitVector),\n /* 0x32 */ SHP.bind(undefined, 0),\n /* 0x33 */ SHP.bind(undefined, 1),\n /* 0x34 */ SHC.bind(undefined, 0),\n /* 0x35 */ SHC.bind(undefined, 1),\n /* 0x36 */ SHZ.bind(undefined, 0),\n /* 0x37 */ SHZ.bind(undefined, 1),\n /* 0x38 */ SHPIX,\n /* 0x39 */ IP,\n /* 0x3A */ MSIRP.bind(undefined, 0),\n /* 0x3B */ MSIRP.bind(undefined, 1),\n /* 0x3C */ ALIGNRP,\n /* 0x3D */ RTDG,\n /* 0x3E */ MIAP.bind(undefined, 0),\n /* 0x3F */ MIAP.bind(undefined, 1),\n /* 0x40 */ NPUSHB,\n /* 0x41 */ NPUSHW,\n /* 0x42 */ WS,\n /* 0x43 */ RS,\n /* 0x44 */ WCVTP,\n /* 0x45 */ RCVT,\n /* 0x46 */ GC.bind(undefined, 0),\n /* 0x47 */ GC.bind(undefined, 1),\n /* 0x48 */ undefined, // TODO SCFS\n /* 0x49 */ MD.bind(undefined, 0),\n /* 0x4A */ MD.bind(undefined, 1),\n /* 0x4B */ MPPEM,\n /* 0x4C */ undefined, // TODO MPS\n /* 0x4D */ FLIPON,\n /* 0x4E */ undefined, // TODO FLIPOFF\n /* 0x4F */ undefined, // TODO DEBUG\n /* 0x50 */ LT,\n /* 0x51 */ LTEQ,\n /* 0x52 */ GT,\n /* 0x53 */ GTEQ,\n /* 0x54 */ EQ,\n /* 0x55 */ NEQ,\n /* 0x56 */ ODD,\n /* 0x57 */ EVEN,\n /* 0x58 */ IF,\n /* 0x59 */ EIF,\n /* 0x5A */ AND,\n /* 0x5B */ OR,\n /* 0x5C */ NOT,\n /* 0x5D */ DELTAP123.bind(undefined, 1),\n /* 0x5E */ SDB,\n /* 0x5F */ SDS,\n /* 0x60 */ ADD,\n /* 0x61 */ SUB,\n /* 0x62 */ DIV,\n /* 0x63 */ MUL,\n /* 0x64 */ ABS,\n /* 0x65 */ NEG,\n /* 0x66 */ FLOOR,\n /* 0x67 */ CEILING,\n /* 0x68 */ ROUND.bind(undefined, 0),\n /* 0x69 */ ROUND.bind(undefined, 1),\n /* 0x6A */ ROUND.bind(undefined, 2),\n /* 0x6B */ ROUND.bind(undefined, 3),\n /* 0x6C */ undefined, // TODO NROUND[ab]\n /* 0x6D */ undefined, // TODO NROUND[ab]\n /* 0x6E */ undefined, // TODO NROUND[ab]\n /* 0x6F */ undefined, // TODO NROUND[ab]\n /* 0x70 */ WCVTF,\n /* 0x71 */ DELTAP123.bind(undefined, 2),\n /* 0x72 */ DELTAP123.bind(undefined, 3),\n /* 0x73 */ DELTAC123.bind(undefined, 1),\n /* 0x74 */ DELTAC123.bind(undefined, 2),\n /* 0x75 */ DELTAC123.bind(undefined, 3),\n /* 0x76 */ SROUND,\n /* 0x77 */ S45ROUND,\n /* 0x78 */ undefined, // TODO JROT[]\n /* 0x79 */ undefined, // TODO JROF[]\n /* 0x7A */ ROFF,\n /* 0x7B */ undefined,\n /* 0x7C */ RUTG,\n /* 0x7D */ RDTG,\n /* 0x7E */ POP, // actually SANGW, supposed to do only a pop though\n /* 0x7F */ POP, // actually AA, supposed to do only a pop though\n /* 0x80 */ undefined, // TODO FLIPPT\n /* 0x81 */ undefined, // TODO FLIPRGON\n /* 0x82 */ undefined, // TODO FLIPRGOFF\n /* 0x83 */ undefined,\n /* 0x84 */ undefined,\n /* 0x85 */ SCANCTRL,\n /* 0x86 */ SDPVTL.bind(undefined, 0),\n /* 0x87 */ SDPVTL.bind(undefined, 1),\n /* 0x88 */ GETINFO,\n /* 0x89 */ undefined, // TODO IDEF\n /* 0x8A */ ROLL,\n /* 0x8B */ MAX,\n /* 0x8C */ MIN,\n /* 0x8D */ SCANTYPE,\n /* 0x8E */ INSTCTRL,\n /* 0x8F */ undefined,\n /* 0x90 */ undefined,\n /* 0x91 */ undefined,\n /* 0x92 */ undefined,\n /* 0x93 */ undefined,\n /* 0x94 */ undefined,\n /* 0x95 */ undefined,\n /* 0x96 */ undefined,\n /* 0x97 */ undefined,\n /* 0x98 */ undefined,\n /* 0x99 */ undefined,\n /* 0x9A */ undefined,\n /* 0x9B */ undefined,\n /* 0x9C */ undefined,\n /* 0x9D */ undefined,\n /* 0x9E */ undefined,\n /* 0x9F */ undefined,\n /* 0xA0 */ undefined,\n /* 0xA1 */ undefined,\n /* 0xA2 */ undefined,\n /* 0xA3 */ undefined,\n /* 0xA4 */ undefined,\n /* 0xA5 */ undefined,\n /* 0xA6 */ undefined,\n /* 0xA7 */ undefined,\n /* 0xA8 */ undefined,\n /* 0xA9 */ undefined,\n /* 0xAA */ undefined,\n /* 0xAB */ undefined,\n /* 0xAC */ undefined,\n /* 0xAD */ undefined,\n /* 0xAE */ undefined,\n /* 0xAF */ undefined,\n /* 0xB0 */ PUSHB.bind(undefined, 1),\n /* 0xB1 */ PUSHB.bind(undefined, 2),\n /* 0xB2 */ PUSHB.bind(undefined, 3),\n /* 0xB3 */ PUSHB.bind(undefined, 4),\n /* 0xB4 */ PUSHB.bind(undefined, 5),\n /* 0xB5 */ PUSHB.bind(undefined, 6),\n /* 0xB6 */ PUSHB.bind(undefined, 7),\n /* 0xB7 */ PUSHB.bind(undefined, 8),\n /* 0xB8 */ PUSHW.bind(undefined, 1),\n /* 0xB9 */ PUSHW.bind(undefined, 2),\n /* 0xBA */ PUSHW.bind(undefined, 3),\n /* 0xBB */ PUSHW.bind(undefined, 4),\n /* 0xBC */ PUSHW.bind(undefined, 5),\n /* 0xBD */ PUSHW.bind(undefined, 6),\n /* 0xBE */ PUSHW.bind(undefined, 7),\n /* 0xBF */ PUSHW.bind(undefined, 8),\n /* 0xC0 */ MDRP_MIRP.bind(undefined, 0, 0, 0, 0, 0),\n /* 0xC1 */ MDRP_MIRP.bind(undefined, 0, 0, 0, 0, 1),\n /* 0xC2 */ MDRP_MIRP.bind(undefined, 0, 0, 0, 0, 2),\n /* 0xC3 */ MDRP_MIRP.bind(undefined, 0, 0, 0, 0, 3),\n /* 0xC4 */ MDRP_MIRP.bind(undefined, 0, 0, 0, 1, 0),\n /* 0xC5 */ MDRP_MIRP.bind(undefined, 0, 0, 0, 1, 1),\n /* 0xC6 */ MDRP_MIRP.bind(undefined, 0, 0, 0, 1, 2),\n /* 0xC7 */ MDRP_MIRP.bind(undefined, 0, 0, 0, 1, 3),\n /* 0xC8 */ MDRP_MIRP.bind(undefined, 0, 0, 1, 0, 0),\n /* 0xC9 */ MDRP_MIRP.bind(undefined, 0, 0, 1, 0, 1),\n /* 0xCA */ MDRP_MIRP.bind(undefined, 0, 0, 1, 0, 2),\n /* 0xCB */ MDRP_MIRP.bind(undefined, 0, 0, 1, 0, 3),\n /* 0xCC */ MDRP_MIRP.bind(undefined, 0, 0, 1, 1, 0),\n /* 0xCD */ MDRP_MIRP.bind(undefined, 0, 0, 1, 1, 1),\n /* 0xCE */ MDRP_MIRP.bind(undefined, 0, 0, 1, 1, 2),\n /* 0xCF */ MDRP_MIRP.bind(undefined, 0, 0, 1, 1, 3),\n /* 0xD0 */ MDRP_MIRP.bind(undefined, 0, 1, 0, 0, 0),\n /* 0xD1 */ MDRP_MIRP.bind(undefined, 0, 1, 0, 0, 1),\n /* 0xD2 */ MDRP_MIRP.bind(undefined, 0, 1, 0, 0, 2),\n /* 0xD3 */ MDRP_MIRP.bind(undefined, 0, 1, 0, 0, 3),\n /* 0xD4 */ MDRP_MIRP.bind(undefined, 0, 1, 0, 1, 0),\n /* 0xD5 */ MDRP_MIRP.bind(undefined, 0, 1, 0, 1, 1),\n /* 0xD6 */ MDRP_MIRP.bind(undefined, 0, 1, 0, 1, 2),\n /* 0xD7 */ MDRP_MIRP.bind(undefined, 0, 1, 0, 1, 3),\n /* 0xD8 */ MDRP_MIRP.bind(undefined, 0, 1, 1, 0, 0),\n /* 0xD9 */ MDRP_MIRP.bind(undefined, 0, 1, 1, 0, 1),\n /* 0xDA */ MDRP_MIRP.bind(undefined, 0, 1, 1, 0, 2),\n /* 0xDB */ MDRP_MIRP.bind(undefined, 0, 1, 1, 0, 3),\n /* 0xDC */ MDRP_MIRP.bind(undefined, 0, 1, 1, 1, 0),\n /* 0xDD */ MDRP_MIRP.bind(undefined, 0, 1, 1, 1, 1),\n /* 0xDE */ MDRP_MIRP.bind(undefined, 0, 1, 1, 1, 2),\n /* 0xDF */ MDRP_MIRP.bind(undefined, 0, 1, 1, 1, 3),\n /* 0xE0 */ MDRP_MIRP.bind(undefined, 1, 0, 0, 0, 0),\n /* 0xE1 */ MDRP_MIRP.bind(undefined, 1, 0, 0, 0, 1),\n /* 0xE2 */ MDRP_MIRP.bind(undefined, 1, 0, 0, 0, 2),\n /* 0xE3 */ MDRP_MIRP.bind(undefined, 1, 0, 0, 0, 3),\n /* 0xE4 */ MDRP_MIRP.bind(undefined, 1, 0, 0, 1, 0),\n /* 0xE5 */ MDRP_MIRP.bind(undefined, 1, 0, 0, 1, 1),\n /* 0xE6 */ MDRP_MIRP.bind(undefined, 1, 0, 0, 1, 2),\n /* 0xE7 */ MDRP_MIRP.bind(undefined, 1, 0, 0, 1, 3),\n /* 0xE8 */ MDRP_MIRP.bind(undefined, 1, 0, 1, 0, 0),\n /* 0xE9 */ MDRP_MIRP.bind(undefined, 1, 0, 1, 0, 1),\n /* 0xEA */ MDRP_MIRP.bind(undefined, 1, 0, 1, 0, 2),\n /* 0xEB */ MDRP_MIRP.bind(undefined, 1, 0, 1, 0, 3),\n /* 0xEC */ MDRP_MIRP.bind(undefined, 1, 0, 1, 1, 0),\n /* 0xED */ MDRP_MIRP.bind(undefined, 1, 0, 1, 1, 1),\n /* 0xEE */ MDRP_MIRP.bind(undefined, 1, 0, 1, 1, 2),\n /* 0xEF */ MDRP_MIRP.bind(undefined, 1, 0, 1, 1, 3),\n /* 0xF0 */ MDRP_MIRP.bind(undefined, 1, 1, 0, 0, 0),\n /* 0xF1 */ MDRP_MIRP.bind(undefined, 1, 1, 0, 0, 1),\n /* 0xF2 */ MDRP_MIRP.bind(undefined, 1, 1, 0, 0, 2),\n /* 0xF3 */ MDRP_MIRP.bind(undefined, 1, 1, 0, 0, 3),\n /* 0xF4 */ MDRP_MIRP.bind(undefined, 1, 1, 0, 1, 0),\n /* 0xF5 */ MDRP_MIRP.bind(undefined, 1, 1, 0, 1, 1),\n /* 0xF6 */ MDRP_MIRP.bind(undefined, 1, 1, 0, 1, 2),\n /* 0xF7 */ MDRP_MIRP.bind(undefined, 1, 1, 0, 1, 3),\n /* 0xF8 */ MDRP_MIRP.bind(undefined, 1, 1, 1, 0, 0),\n /* 0xF9 */ MDRP_MIRP.bind(undefined, 1, 1, 1, 0, 1),\n /* 0xFA */ MDRP_MIRP.bind(undefined, 1, 1, 1, 0, 2),\n /* 0xFB */ MDRP_MIRP.bind(undefined, 1, 1, 1, 0, 3),\n /* 0xFC */ MDRP_MIRP.bind(undefined, 1, 1, 1, 1, 0),\n /* 0xFD */ MDRP_MIRP.bind(undefined, 1, 1, 1, 1, 1),\n /* 0xFE */ MDRP_MIRP.bind(undefined, 1, 1, 1, 1, 2),\n /* 0xFF */ MDRP_MIRP.bind(undefined, 1, 1, 1, 1, 3)\n];\n\nexport default Hinting;\n\n/*****************************\n Mathematical Considerations\n******************************\n\nfv ... refers to freedom vector\npv ... refers to projection vector\nrp ... refers to reference point\np ... refers to to point being operated on\nd ... refers to distance\n\nSETRELATIVE:\n============\n\ncase freedom vector == x-axis:\n------------------------------\n\n (pv)\n .-'\n rpd .-'\n .-*\n d .-'90°'\n .-' '\n .-' '\n *-' ' b\n rp '\n '\n '\n p *----------*-------------- (fv)\n pm\n\n rpdx = rpx + d * pv.x\n rpdy = rpy + d * pv.y\n\n equation of line b\n\n y - rpdy = pvns * (x- rpdx)\n\n y = p.y\n\n x = rpdx + ( p.y - rpdy ) / pvns\n\n\ncase freedom vector == y-axis:\n------------------------------\n\n * pm\n |\\\n | \\\n | \\\n | \\\n | \\\n | \\\n | \\\n | \\\n | \\\n | \\ b\n | \\\n | \\\n | \\ .-' (pv)\n | 90° \\.-'\n | .-'* rpd\n | .-'\n * *-' d\n p rp\n\n rpdx = rpx + d * pv.x\n rpdy = rpy + d * pv.y\n\n equation of line b:\n pvns ... normal slope to pv\n\n y - rpdy = pvns * (x - rpdx)\n\n x = p.x\n\n y = rpdy + pvns * (p.x - rpdx)\n\n\n\ngeneric case:\n-------------\n\n\n .'(fv)\n .'\n .* pm\n .' !\n .' .\n .' !\n .' . b\n .' !\n * .\n p !\n 90° . ... (pv)\n ...-*-'''\n ...---''' rpd\n ...---''' d\n *--'''\n rp\n\n rpdx = rpx + d * pv.x\n rpdy = rpy + d * pv.y\n\n equation of line b:\n pvns... normal slope to pv\n\n y - rpdy = pvns * (x - rpdx)\n\n equation of freedom vector line:\n fvs ... slope of freedom vector (=fy/fx)\n\n y - py = fvs * (x - px)\n\n\n on pm both equations are true for same x/y\n\n y - rpdy = pvns * (x - rpdx)\n\n y - py = fvs * (x - px)\n\n form to y and set equal:\n\n pvns * (x - rpdx) + rpdy = fvs * (x - px) + py\n\n expand:\n\n pvns * x - pvns * rpdx + rpdy = fvs * x - fvs * px + py\n\n switch:\n\n fvs * x - fvs * px + py = pvns * x - pvns * rpdx + rpdy\n\n solve for x:\n\n fvs * x - pvns * x = fvs * px - pvns * rpdx - py + rpdy\n\n\n\n fvs * px - pvns * rpdx + rpdy - py\n x = -----------------------------------\n fvs - pvns\n\n and:\n\n y = fvs * (x - px) + py\n\n\n\nINTERPOLATE:\n============\n\nExamples of point interpolation.\n\nThe weight of the movement of the reference point gets bigger\nthe further the other reference point is away, thus the safest\noption (that is avoiding 0/0 divisions) is to weight the\noriginal distance of the other point by the sum of both distances.\n\nIf the sum of both distances is 0, then move the point by the\narithmetic average of the movement of both reference points.\n\n\n\n\n (+6)\n rp1o *---->*rp1\n . . (+12)\n . . rp2o *---------->* rp2\n . . . .\n . . . .\n . 10 20 . .\n |.........|...................| .\n . . .\n . . (+8) .\n po *------>*p .\n . . .\n . 12 . 24 .\n |...........|.......................|\n 36\n\n\n-------\n\n\n\n (+10)\n rp1o *-------->*rp1\n . . (-10)\n . . rp2 *<---------* rpo2\n . . . .\n . . . .\n . 10 . 30 . .\n |.........|.............................|\n . .\n . (+5) .\n po *--->* p .\n . . .\n . . 20 .\n |....|..............|\n 5 15\n\n\n-------\n\n\n (+10)\n rp1o *-------->*rp1\n . .\n . .\n rp2o *-------->*rp2\n\n\n (+10)\n po *-------->* p\n\n-------\n\n\n (+10)\n rp1o *-------->*rp1\n . .\n . .(+30)\n rp2o *---------------------------->*rp2\n\n\n (+25)\n po *----------------------->* p\n\n\n\nvim: set ts=4 sw=4 expandtab:\n*****/\n","/**\n * Converts a string into a list of tokens.\n */\n\n/**\n * Create a new token\n * @param {string} char a single char\n */\nfunction Token(char) {\n this.char = char;\n this.state = {};\n this.activeState = null;\n}\n\n/**\n * Create a new context range\n * @param {number} startIndex range start index\n * @param {number} endOffset range end index offset\n * @param {string} contextName owner context name\n */\nfunction ContextRange(startIndex, endOffset, contextName) {\n this.contextName = contextName;\n this.startIndex = startIndex;\n this.endOffset = endOffset;\n}\n\n/**\n * Check context start and end\n * @param {string} contextName a unique context name\n * @param {function} checkStart a predicate function the indicates a context's start\n * @param {function} checkEnd a predicate function the indicates a context's end\n */\nfunction ContextChecker(contextName, checkStart, checkEnd) {\n this.contextName = contextName;\n this.openRange = null;\n this.ranges = [];\n this.checkStart = checkStart;\n this.checkEnd = checkEnd;\n}\n\n/**\n * @typedef ContextParams\n * @type Object\n * @property {array} context context items\n * @property {number} currentIndex current item index\n */\n\n/**\n * Create a context params\n * @param {array} context a list of items\n * @param {number} currentIndex current item index\n */\nfunction ContextParams(context, currentIndex) {\n this.context = context;\n this.index = currentIndex;\n this.length = context.length;\n this.current = context[currentIndex];\n this.backtrack = context.slice(0, currentIndex);\n this.lookahead = context.slice(currentIndex + 1);\n}\n\n/**\n * Create an event instance\n * @param {string} eventId event unique id\n */\nfunction Event(eventId) {\n this.eventId = eventId;\n this.subscribers = [];\n}\n\n/**\n * Initialize a core events and auto subscribe required event handlers\n * @param {any} events an object that enlists core events handlers\n */\nfunction initializeCoreEvents(events) {\n const coreEvents = [\n 'start', 'end', 'next', 'newToken', 'contextStart',\n 'contextEnd', 'insertToken', 'removeToken', 'removeRange',\n 'replaceToken', 'replaceRange', 'composeRUD', 'updateContextsRanges'\n ];\n\n coreEvents.forEach(eventId => {\n Object.defineProperty(this.events, eventId, {\n value: new Event(eventId)\n });\n });\n\n if (!!events) {\n coreEvents.forEach(eventId => {\n const event = events[eventId];\n if (typeof event === 'function') {\n this.events[eventId].subscribe(event);\n }\n });\n }\n const requiresContextUpdate = [\n 'insertToken', 'removeToken', 'removeRange',\n 'replaceToken', 'replaceRange', 'composeRUD'\n ];\n requiresContextUpdate.forEach(eventId => {\n this.events[eventId].subscribe(\n this.updateContextsRanges\n );\n });\n}\n\n/**\n * Converts a string into a list of tokens\n * @param {any} events tokenizer core events\n */\nfunction Tokenizer(events) {\n this.tokens = [];\n this.registeredContexts = {};\n this.contextCheckers = [];\n this.events = {};\n this.registeredModifiers = [];\n\n initializeCoreEvents.call(this, events);\n}\n\n/**\n * Sets the state of a token, usually called by a state modifier.\n * @param {string} key state item key\n * @param {any} value state item value\n */\nToken.prototype.setState = function(key, value) {\n this.state[key] = value;\n this.activeState = { key, value: this.state[key] };\n return this.activeState;\n};\n\nToken.prototype.getState = function (stateId) {\n return this.state[stateId] || null;\n};\n\n/**\n * Checks if an index exists in the tokens list.\n * @param {number} index token index\n */\nTokenizer.prototype.inboundIndex = function(index) {\n return index >= 0 && index < this.tokens.length;\n};\n\n/**\n * Compose and apply a list of operations (replace, update, delete)\n * @param {array} RUDs replace, update and delete operations\n * TODO: Perf. Optimization (lengthBefore === lengthAfter ? dispatch once)\n */\nTokenizer.prototype.composeRUD = function (RUDs) {\n const silent = true;\n const state = RUDs.map(RUD => (\n this[RUD[0]].apply(this, RUD.slice(1).concat(silent))\n ));\n const hasFAILObject = obj => (\n typeof obj === 'object' &&\n obj.hasOwnProperty('FAIL')\n );\n if (state.every(hasFAILObject)) {\n return {\n FAIL: `composeRUD: one or more operations hasn't completed successfully`,\n report: state.filter(hasFAILObject)\n };\n }\n this.dispatch('composeRUD', [state.filter(op => !hasFAILObject(op))]);\n};\n\n/**\n * Replace a range of tokens with a list of tokens\n * @param {number} startIndex range start index\n * @param {number} offset range offset\n * @param {token} tokens a list of tokens to replace\n * @param {boolean} silent dispatch events and update context ranges\n */\nTokenizer.prototype.replaceRange = function (startIndex, offset, tokens, silent) {\n offset = offset !== null ? offset : this.tokens.length;\n const isTokenType = tokens.every(token => token instanceof Token);\n if (!isNaN(startIndex) && this.inboundIndex(startIndex) && isTokenType) {\n const replaced = this.tokens.splice.apply(\n this.tokens, [startIndex, offset].concat(tokens)\n );\n if (!silent) this.dispatch('replaceToken', [startIndex, offset, tokens]);\n return [replaced, tokens];\n } else {\n return { FAIL: 'replaceRange: invalid tokens or startIndex.' };\n }\n};\n\n/**\n * Replace a token with another token\n * @param {number} index token index\n * @param {token} token a token to replace\n * @param {boolean} silent dispatch events and update context ranges\n */\nTokenizer.prototype.replaceToken = function (index, token, silent) {\n if (!isNaN(index) && this.inboundIndex(index) && token instanceof Token) {\n const replaced = this.tokens.splice(index, 1, token);\n if (!silent) this.dispatch('replaceToken', [index, token]);\n return [replaced[0], token];\n } else {\n return { FAIL: 'replaceToken: invalid token or index.' };\n }\n};\n\n/**\n * Removes a range of tokens\n * @param {number} startIndex range start index\n * @param {number} offset range offset\n * @param {boolean} silent dispatch events and update context ranges\n */\nTokenizer.prototype.removeRange = function(startIndex, offset, silent) {\n offset = !isNaN(offset) ? offset : this.tokens.length;\n const tokens = this.tokens.splice(startIndex, offset);\n if (!silent) this.dispatch('removeRange', [tokens, startIndex, offset]);\n return tokens;\n};\n\n/**\n * Remove a token at a certain index\n * @param {number} index token index\n * @param {boolean} silent dispatch events and update context ranges\n */\nTokenizer.prototype.removeToken = function(index, silent) {\n if (!isNaN(index) && this.inboundIndex(index)) {\n const token = this.tokens.splice(index, 1);\n if (!silent) this.dispatch('removeToken', [token, index]);\n return token;\n } else {\n return { FAIL: 'removeToken: invalid token index.' };\n }\n};\n\n/**\n * Insert a list of tokens at a certain index\n * @param {array} tokens a list of tokens to insert\n * @param {number} index insert the list of tokens at index\n * @param {boolean} silent dispatch events and update context ranges\n */\nTokenizer.prototype.insertToken = function (tokens, index, silent) {\n const tokenType = tokens.every(\n token => token instanceof Token\n );\n if (tokenType) {\n this.tokens.splice.apply(\n this.tokens, [index, 0].concat(tokens)\n );\n if (!silent) this.dispatch('insertToken', [tokens, index]);\n return tokens;\n } else {\n return { FAIL: 'insertToken: invalid token(s).' };\n }\n};\n\n/**\n * A state modifier that is called on 'newToken' event\n * @param {string} modifierId state modifier id\n * @param {function} condition a predicate function that returns true or false\n * @param {function} modifier a function to update token state\n */\nTokenizer.prototype.registerModifier = function(modifierId, condition, modifier) {\n this.events.newToken.subscribe(function(token, contextParams) {\n const conditionParams = [token, contextParams];\n const canApplyModifier = (\n condition === null ||\n condition.apply(this, conditionParams) === true\n );\n const modifierParams = [token, contextParams];\n if (canApplyModifier) {\n let newStateValue = modifier.apply(this, modifierParams);\n token.setState(modifierId, newStateValue);\n }\n });\n this.registeredModifiers.push(modifierId);\n};\n\n/**\n * Subscribe a handler to an event\n * @param {function} eventHandler an event handler function\n */\nEvent.prototype.subscribe = function (eventHandler) {\n if (typeof eventHandler === 'function') {\n return ((this.subscribers.push(eventHandler)) - 1);\n } else {\n return { FAIL: `invalid '${this.eventId}' event handler`};\n }\n};\n\n/**\n * Unsubscribe an event handler\n * @param {string} subsId subscription id\n */\nEvent.prototype.unsubscribe = function (subsId) {\n this.subscribers.splice(subsId, 1);\n};\n\n/**\n * Sets context params current value index\n * @param {number} index context params current value index\n */\nContextParams.prototype.setCurrentIndex = function(index) {\n this.index = index;\n this.current = this.context[index];\n this.backtrack = this.context.slice(0, index);\n this.lookahead = this.context.slice(index + 1);\n};\n\n/**\n * Get an item at an offset from the current value\n * example (current value is 3):\n * 1 2 [3] 4 5 | items values\n * -2 -1 0 1 2 | offset values\n * @param {number} offset an offset from current value index\n */\nContextParams.prototype.get = function (offset) {\n switch (true) {\n case (offset === 0):\n return this.current;\n case (offset < 0 && Math.abs(offset) <= this.backtrack.length):\n return this.backtrack.slice(offset)[0];\n case (offset > 0 && offset <= this.lookahead.length):\n return this.lookahead[offset - 1];\n default:\n return null;\n }\n};\n\n/**\n * Converts a context range into a string value\n * @param {contextRange} range a context range\n */\nTokenizer.prototype.rangeToText = function (range) {\n if (range instanceof ContextRange) {\n return (\n this.getRangeTokens(range)\n .map(token => token.char).join('')\n );\n }\n};\n\n/**\n * Converts all tokens into a string\n */\nTokenizer.prototype.getText = function () {\n return this.tokens.map(token => token.char).join('');\n};\n\n/**\n * Get a context by name\n * @param {string} contextName context name to get\n */\nTokenizer.prototype.getContext = function (contextName) {\n let context = this.registeredContexts[contextName];\n return !!context ? context : null;\n};\n\n/**\n * Subscribes a new event handler to an event\n * @param {string} eventName event name to subscribe to\n * @param {function} eventHandler a function to be invoked on event\n */\nTokenizer.prototype.on = function(eventName, eventHandler) {\n const event = this.events[eventName];\n if (!!event) {\n return event.subscribe(eventHandler);\n } else {\n return null;\n }\n};\n\n/**\n * Dispatches an event\n * @param {string} eventName event name\n * @param {any} args event handler arguments\n */\nTokenizer.prototype.dispatch = function(eventName, args) {\n const event = this.events[eventName];\n if (event instanceof Event) {\n event.subscribers.forEach(subscriber => {\n subscriber.apply(this, args || []);\n });\n }\n};\n\n/**\n * Register a new context checker\n * @param {string} contextName a unique context name\n * @param {function} contextStartCheck a predicate function that returns true on context start\n * @param {function} contextEndCheck a predicate function that returns true on context end\n * TODO: call tokenize on registration to update context ranges with the new context.\n */\nTokenizer.prototype.registerContextChecker = function(contextName, contextStartCheck, contextEndCheck) {\n if (!!this.getContext(contextName)) return {\n FAIL:\n `context name '${contextName}' is already registered.`\n };\n if (typeof contextStartCheck !== 'function') return {\n FAIL:\n `missing context start check.`\n };\n if (typeof contextEndCheck !== 'function') return {\n FAIL:\n `missing context end check.`\n };\n const contextCheckers = new ContextChecker(\n contextName, contextStartCheck, contextEndCheck\n );\n this.registeredContexts[contextName] = contextCheckers;\n this.contextCheckers.push(contextCheckers);\n return contextCheckers;\n};\n\n/**\n * Gets a context range tokens\n * @param {contextRange} range a context range\n */\nTokenizer.prototype.getRangeTokens = function(range) {\n const endIndex = range.startIndex + range.endOffset;\n return [].concat(\n this.tokens\n .slice(range.startIndex, endIndex)\n );\n};\n\n/**\n * Gets the ranges of a context\n * @param {string} contextName context name\n */\nTokenizer.prototype.getContextRanges = function(contextName) {\n const context = this.getContext(contextName);\n if (!!context) {\n return context.ranges;\n } else {\n return { FAIL: `context checker '${contextName}' is not registered.` };\n }\n};\n\n/**\n * Resets context ranges to run context update\n */\nTokenizer.prototype.resetContextsRanges = function () {\n const registeredContexts = this.registeredContexts;\n for (const contextName in registeredContexts) {\n if (registeredContexts.hasOwnProperty(contextName)) {\n const context = registeredContexts[contextName];\n context.ranges = [];\n }\n }\n};\n\n/**\n * Updates context ranges\n */\nTokenizer.prototype.updateContextsRanges = function () {\n this.resetContextsRanges();\n const chars = this.tokens.map(token => token.char);\n for (let i = 0; i < chars.length; i++) {\n const contextParams = new ContextParams(chars, i);\n this.runContextCheck(contextParams);\n }\n this.dispatch('updateContextsRanges', [this.registeredContexts]);\n};\n\n/**\n * Sets the end offset of an open range\n * @param {number} offset range end offset\n * @param {string} contextName context name\n */\nTokenizer.prototype.setEndOffset = function (offset, contextName) {\n const startIndex = this.getContext(contextName).openRange.startIndex;\n let range = new ContextRange(startIndex, offset, contextName);\n const ranges = this.getContext(contextName).ranges;\n range.rangeId = `${contextName}.${ranges.length}`;\n ranges.push(range);\n this.getContext(contextName).openRange = null;\n return range;\n};\n\n/**\n * Runs a context check on the current context\n * @param {contextParams} contextParams current context params\n */\nTokenizer.prototype.runContextCheck = function(contextParams) {\n const index = contextParams.index;\n this.contextCheckers.forEach(contextChecker => {\n let contextName = contextChecker.contextName;\n let openRange = this.getContext(contextName).openRange;\n if (!openRange && contextChecker.checkStart(contextParams)) {\n openRange = new ContextRange(index, null, contextName);\n this.getContext(contextName).openRange = openRange;\n this.dispatch('contextStart', [contextName, index]);\n }\n if (!!openRange && contextChecker.checkEnd(contextParams)) {\n const offset = (index - openRange.startIndex) + 1;\n const range = this.setEndOffset(offset, contextName);\n this.dispatch('contextEnd', [contextName, range]);\n }\n });\n};\n\n/**\n * Converts a text into a list of tokens\n * @param {string} text a text to tokenize\n */\nTokenizer.prototype.tokenize = function (text) {\n this.tokens = [];\n this.resetContextsRanges();\n let chars = Array.from(text);\n this.dispatch('start');\n for (let i = 0; i < chars.length; i++) {\n const char = chars[i];\n const contextParams = new ContextParams(chars, i);\n this.dispatch('next', [contextParams]);\n this.runContextCheck(contextParams);\n let token = new Token(char);\n this.tokens.push(token);\n this.dispatch('newToken', [token, contextParams]);\n }\n this.dispatch('end', [this.tokens]);\n return this.tokens;\n};\n\nexport default Tokenizer;\nexport { Token, Event, ContextRange, ContextParams };\n","// ╭─┄┄┄────────────────────────┄─────────────────────────────────────────────╮\n// ┊ Character Class Assertions ┊ Checks if a char belongs to a certain class ┊\n// ╰─╾──────────────────────────┄─────────────────────────────────────────────╯\n// jscs:disable maximumLineLength\n/**\n * Check if a char is Arabic\n * @param {string} c a single char\n */\nexport function isArabicChar(c) {\n return /[\\u0600-\\u065F\\u066A-\\u06D2\\u06FA-\\u06FF]/.test(c);\n}\n\n/**\n * Check if a char is an isolated arabic char\n * @param {string} c a single char\n */\nexport function isIsolatedArabicChar(char) {\n return /[\\u0630\\u0690\\u0621\\u0631\\u0661\\u0671\\u0622\\u0632\\u0672\\u0692\\u06C2\\u0623\\u0673\\u0693\\u06C3\\u0624\\u0694\\u06C4\\u0625\\u0675\\u0695\\u06C5\\u06E5\\u0676\\u0696\\u06C6\\u0627\\u0677\\u0697\\u06C7\\u0648\\u0688\\u0698\\u06C8\\u0689\\u0699\\u06C9\\u068A\\u06CA\\u066B\\u068B\\u06CB\\u068C\\u068D\\u06CD\\u06FD\\u068E\\u06EE\\u06FE\\u062F\\u068F\\u06CF\\u06EF]/.test(char);\n}\n\n/**\n * Check if a char is an Arabic Tashkeel char\n * @param {string} c a single char\n */\nexport function isTashkeelArabicChar(char) {\n return /[\\u0600-\\u0605\\u060C-\\u060E\\u0610-\\u061B\\u061E\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED]/.test(char);\n}\n\n/**\n * Check if a char is Latin\n * @param {string} c a single char\n */\nexport function isLatinChar(c) {\n return /[A-z]/.test(c);\n}\n\n/**\n * Check if a char is whitespace char\n * @param {string} c a single char\n */\nexport function isWhiteSpace(c) {\n return /\\s/.test(c);\n}\n","/**\n * Query a feature by some of it's properties to lookup a glyph substitution.\n */\n\nimport { ContextParams } from '../tokenizer';\nimport { isTashkeelArabicChar } from '../char';\n\n/**\n * Create feature query instance\n * @param {Font} font opentype font instance\n */\nfunction FeatureQuery(font) {\n this.font = font;\n this.features = {};\n}\n\n/**\n * @typedef SubstitutionAction\n * @type Object\n * @property {number} id substitution type\n * @property {string} tag feature tag\n * @property {any} substitution substitution value(s)\n */\n\n/**\n * Create a substitution action instance\n * @param {SubstitutionAction} action\n */\nfunction SubstitutionAction(action) {\n this.id = action.id;\n this.tag = action.tag;\n this.substitution = action.substitution;\n}\n\n/**\n * Lookup a coverage table\n * @param {number} glyphIndex glyph index\n * @param {CoverageTable} coverage coverage table\n */\nfunction lookupCoverage(glyphIndex, coverage) {\n if (!glyphIndex) return -1;\n switch (coverage.format) {\n case 1:\n return coverage.glyphs.indexOf(glyphIndex);\n\n case 2:\n let ranges = coverage.ranges;\n for (let i = 0; i < ranges.length; i++) {\n const range = ranges[i];\n if (glyphIndex >= range.start && glyphIndex <= range.end) {\n let offset = glyphIndex - range.start;\n return range.index + offset;\n }\n }\n break;\n default:\n return -1; // not found\n }\n return -1;\n}\n\n/**\n * Handle a single substitution - format 1\n * @param {ContextParams} contextParams context params to lookup\n */\nfunction singleSubstitutionFormat1(glyphIndex, subtable) {\n let substituteIndex = lookupCoverage(glyphIndex, subtable.coverage);\n if (substituteIndex === -1) return null;\n return glyphIndex + subtable.deltaGlyphId;\n}\n\n/**\n * Handle a single substitution - format 2\n * @param {ContextParams} contextParams context params to lookup\n */\nfunction singleSubstitutionFormat2(glyphIndex, subtable) {\n let substituteIndex = lookupCoverage(glyphIndex, subtable.coverage);\n if (substituteIndex === -1) return null;\n return subtable.substitute[substituteIndex];\n}\n\n/**\n * Lookup a list of coverage tables\n * @param {any} coverageList a list of coverage tables\n * @param {ContextParams} contextParams context params to lookup\n */\nfunction lookupCoverageList(coverageList, contextParams) {\n let lookupList = [];\n for (let i = 0; i < coverageList.length; i++) {\n const coverage = coverageList[i];\n let glyphIndex = contextParams.current;\n glyphIndex = Array.isArray(glyphIndex) ? glyphIndex[0] : glyphIndex;\n const lookupIndex = lookupCoverage(glyphIndex, coverage);\n if (lookupIndex !== -1) {\n lookupList.push(lookupIndex);\n }\n }\n if (lookupList.length !== coverageList.length) return -1;\n return lookupList;\n}\n\n/**\n * Handle chaining context substitution - format 3\n * @param {ContextParams} contextParams context params to lookup\n */\nfunction chainingSubstitutionFormat3(contextParams, subtable) {\n const lookupsCount = (\n subtable.inputCoverage.length +\n subtable.lookaheadCoverage.length +\n subtable.backtrackCoverage.length\n );\n if (contextParams.context.length < lookupsCount) return [];\n // INPUT LOOKUP //\n let inputLookups = lookupCoverageList(\n subtable.inputCoverage, contextParams\n );\n if (inputLookups === -1) return [];\n // LOOKAHEAD LOOKUP //\n const lookaheadOffset = subtable.inputCoverage.length - 1;\n if (contextParams.lookahead.length < subtable.lookaheadCoverage.length) return [];\n let lookaheadContext = contextParams.lookahead.slice(lookaheadOffset);\n while (lookaheadContext.length && isTashkeelArabicChar(lookaheadContext[0].char)) {\n lookaheadContext.shift();\n }\n const lookaheadParams = new ContextParams(lookaheadContext, 0);\n let lookaheadLookups = lookupCoverageList(\n subtable.lookaheadCoverage, lookaheadParams\n );\n // BACKTRACK LOOKUP //\n let backtrackContext = [].concat(contextParams.backtrack);\n backtrackContext.reverse();\n while (backtrackContext.length && isTashkeelArabicChar(backtrackContext[0].char)) {\n backtrackContext.shift();\n }\n if (backtrackContext.length < subtable.backtrackCoverage.length) return [];\n const backtrackParams = new ContextParams(backtrackContext, 0);\n let backtrackLookups = lookupCoverageList(\n subtable.backtrackCoverage, backtrackParams\n );\n const contextRulesMatch = (\n inputLookups.length === subtable.inputCoverage.length &&\n lookaheadLookups.length === subtable.lookaheadCoverage.length &&\n backtrackLookups.length === subtable.backtrackCoverage.length\n );\n let substitutions = [];\n if (contextRulesMatch) {\n for (let i = 0; i < subtable.lookupRecords.length; i++) {\n const lookupRecord = subtable.lookupRecords[i];\n const lookupListIndex = lookupRecord.lookupListIndex;\n const lookupTable = this.getLookupByIndex(lookupListIndex);\n for (let s = 0; s < lookupTable.subtables.length; s++) {\n const subtable = lookupTable.subtables[s];\n const lookup = this.getLookupMethod(lookupTable, subtable);\n const substitutionType = this.getSubstitutionType(lookupTable, subtable);\n if (substitutionType === '12') {\n for (let n = 0; n < inputLookups.length; n++) {\n const glyphIndex = contextParams.get(n);\n const substitution = lookup(glyphIndex);\n if (substitution) substitutions.push(substitution);\n }\n }\n }\n }\n }\n return substitutions;\n}\n\n/**\n * Handle ligature substitution - format 1\n * @param {ContextParams} contextParams context params to lookup\n */\nfunction ligatureSubstitutionFormat1(contextParams, subtable) {\n // COVERAGE LOOKUP //\n let glyphIndex = contextParams.current;\n let ligSetIndex = lookupCoverage(glyphIndex, subtable.coverage);\n if (ligSetIndex === -1) return null;\n // COMPONENTS LOOKUP\n // (!) note, components are ordered in the written direction.\n let ligature;\n let ligatureSet = subtable.ligatureSets[ligSetIndex];\n for (let s = 0; s < ligatureSet.length; s++) {\n ligature = ligatureSet[s];\n for (let l = 0; l < ligature.components.length; l++) {\n const lookaheadItem = contextParams.lookahead[l];\n const component = ligature.components[l];\n if (lookaheadItem !== component) break;\n if (l === ligature.components.length - 1) return ligature;\n }\n }\n return null;\n}\n\n/**\n * Handle decomposition substitution - format 1\n * @param {number} glyphIndex glyph index\n * @param {any} subtable subtable\n */\nfunction decompositionSubstitutionFormat1(glyphIndex, subtable) {\n let substituteIndex = lookupCoverage(glyphIndex, subtable.coverage);\n if (substituteIndex === -1) return null;\n return subtable.sequences[substituteIndex];\n}\n\n/**\n * Get default script features indexes\n */\nFeatureQuery.prototype.getDefaultScriptFeaturesIndexes = function () {\n const scripts = this.font.tables.gsub.scripts;\n for (let s = 0; s < scripts.length; s++) {\n const script = scripts[s];\n if (script.tag === 'DFLT') return (\n script.script.defaultLangSys.featureIndexes\n );\n }\n return [];\n};\n\n/**\n * Get feature indexes of a specific script\n * @param {string} scriptTag script tag\n */\nFeatureQuery.prototype.getScriptFeaturesIndexes = function(scriptTag) {\n const tables = this.font.tables;\n if (!tables.gsub) return [];\n if (!scriptTag) return this.getDefaultScriptFeaturesIndexes();\n const scripts = this.font.tables.gsub.scripts;\n for (let i = 0; i < scripts.length; i++) {\n const script = scripts[i];\n if (script.tag === scriptTag && script.script.defaultLangSys) {\n return script.script.defaultLangSys.featureIndexes;\n } else {\n let langSysRecords = script.langSysRecords;\n if (!!langSysRecords) {\n for (let j = 0; j < langSysRecords.length; j++) {\n const langSysRecord = langSysRecords[j];\n if (langSysRecord.tag === scriptTag) {\n let langSys = langSysRecord.langSys;\n return langSys.featureIndexes;\n }\n }\n }\n }\n }\n return this.getDefaultScriptFeaturesIndexes();\n};\n\n/**\n * Map a feature tag to a gsub feature\n * @param {any} features gsub features\n * @param {string} scriptTag script tag\n */\nFeatureQuery.prototype.mapTagsToFeatures = function (features, scriptTag) {\n let tags = {};\n for (let i = 0; i < features.length; i++) {\n const tag = features[i].tag;\n const feature = features[i].feature;\n tags[tag] = feature;\n }\n this.features[scriptTag].tags = tags;\n};\n\n/**\n * Get features of a specific script\n * @param {string} scriptTag script tag\n */\nFeatureQuery.prototype.getScriptFeatures = function (scriptTag) {\n let features = this.features[scriptTag];\n if (this.features.hasOwnProperty(scriptTag)) return features;\n const featuresIndexes = this.getScriptFeaturesIndexes(scriptTag);\n if (!featuresIndexes) return null;\n const gsub = this.font.tables.gsub;\n features = featuresIndexes.map(index => gsub.features[index]);\n this.features[scriptTag] = features;\n this.mapTagsToFeatures(features, scriptTag);\n return features;\n};\n\n/**\n * Get substitution type\n * @param {any} lookupTable lookup table\n * @param {any} subtable subtable\n */\nFeatureQuery.prototype.getSubstitutionType = function(lookupTable, subtable) {\n const lookupType = lookupTable.lookupType.toString();\n const substFormat = subtable.substFormat.toString();\n return lookupType + substFormat;\n};\n\n/**\n * Get lookup method\n * @param {any} lookupTable lookup table\n * @param {any} subtable subtable\n */\nFeatureQuery.prototype.getLookupMethod = function(lookupTable, subtable) {\n let substitutionType = this.getSubstitutionType(lookupTable, subtable);\n switch (substitutionType) {\n case '11':\n return glyphIndex => singleSubstitutionFormat1.apply(\n this, [glyphIndex, subtable]\n );\n case '12':\n return glyphIndex => singleSubstitutionFormat2.apply(\n this, [glyphIndex, subtable]\n );\n case '63':\n return contextParams => chainingSubstitutionFormat3.apply(\n this, [contextParams, subtable]\n );\n case '41':\n return contextParams => ligatureSubstitutionFormat1.apply(\n this, [contextParams, subtable]\n );\n case '21':\n return glyphIndex => decompositionSubstitutionFormat1.apply(\n this, [glyphIndex, subtable]\n );\n default:\n throw new Error(\n `lookupType: ${lookupTable.lookupType} - ` +\n `substFormat: ${subtable.substFormat} ` +\n `is not yet supported`\n );\n }\n};\n\n/**\n * [ LOOKUP TYPES ]\n * -------------------------------\n * Single 1;\n * Multiple 2;\n * Alternate 3;\n * Ligature 4;\n * Context 5;\n * ChainingContext 6;\n * ExtensionSubstitution 7;\n * ReverseChainingContext 8;\n * -------------------------------\n *\n */\n\n/**\n * @typedef FQuery\n * @type Object\n * @param {string} tag feature tag\n * @param {string} script feature script\n * @param {ContextParams} contextParams context params\n */\n\n/**\n * Lookup a feature using a query parameters\n * @param {FQuery} query feature query\n */\nFeatureQuery.prototype.lookupFeature = function (query) {\n let contextParams = query.contextParams;\n let currentIndex = contextParams.index;\n const feature = this.getFeature({\n tag: query.tag, script: query.script\n });\n if (!feature) return new Error(\n `font '${this.font.names.fullName.en}' ` +\n `doesn't support feature '${query.tag}' ` +\n `for script '${query.script}'.`\n );\n const lookups = this.getFeatureLookups(feature);\n const substitutions = [].concat(contextParams.context);\n for (let l = 0; l < lookups.length; l++) {\n const lookupTable = lookups[l];\n const subtables = this.getLookupSubtables(lookupTable);\n for (let s = 0; s < subtables.length; s++) {\n const subtable = subtables[s];\n const substType = this.getSubstitutionType(lookupTable, subtable);\n const lookup = this.getLookupMethod(lookupTable, subtable);\n let substitution;\n switch (substType) {\n case '11':\n substitution = lookup(contextParams.current);\n if (substitution) {\n substitutions.splice(currentIndex, 1, new SubstitutionAction({\n id: 11, tag: query.tag, substitution\n }));\n }\n break;\n case '12':\n substitution = lookup(contextParams.current);\n if (substitution) {\n substitutions.splice(currentIndex, 1, new SubstitutionAction({\n id: 12, tag: query.tag, substitution\n }));\n }\n break;\n case '63':\n substitution = lookup(contextParams);\n if (Array.isArray(substitution) && substitution.length) {\n substitutions.splice(currentIndex, 1, new SubstitutionAction({\n id: 63, tag: query.tag, substitution\n }));\n }\n break;\n case '41':\n substitution = lookup(contextParams);\n if (substitution) {\n substitutions.splice(currentIndex, 1, new SubstitutionAction({\n id: 41, tag: query.tag, substitution\n }));\n }\n break;\n case '21':\n substitution = lookup(contextParams.current);\n if (substitution) {\n substitutions.splice(currentIndex, 1, new SubstitutionAction({\n id: 21, tag: query.tag, substitution\n }));\n }\n break;\n }\n contextParams = new ContextParams(substitutions, currentIndex);\n if (Array.isArray(substitution) && !substitution.length) continue;\n substitution = null;\n }\n }\n return substitutions.length ? substitutions : null;\n};\n\n/**\n * Checks if a font supports a specific features\n * @param {FQuery} query feature query object\n */\nFeatureQuery.prototype.supports = function (query) {\n if (!query.script) return false;\n this.getScriptFeatures(query.script);\n const supportedScript = this.features.hasOwnProperty(query.script);\n if (!query.tag) return supportedScript;\n const supportedFeature = (\n this.features[query.script].some(feature => feature.tag === query.tag)\n );\n return supportedScript && supportedFeature;\n};\n\n/**\n * Get lookup table subtables\n * @param {any} lookupTable lookup table\n */\nFeatureQuery.prototype.getLookupSubtables = function (lookupTable) {\n return lookupTable.subtables || null;\n};\n\n/**\n * Get lookup table by index\n * @param {number} index lookup table index\n */\nFeatureQuery.prototype.getLookupByIndex = function (index) {\n const lookups = this.font.tables.gsub.lookups;\n return lookups[index] || null;\n};\n\n/**\n * Get lookup tables for a feature\n * @param {string} feature\n */\nFeatureQuery.prototype.getFeatureLookups = function (feature) {\n // TODO: memoize\n return feature.lookupListIndexes.map(this.getLookupByIndex.bind(this));\n};\n\n/**\n * Query a feature by it's properties\n * @param {any} query an object that describes the properties of a query\n */\nFeatureQuery.prototype.getFeature = function getFeature(query) {\n if (!this.font) return { FAIL: `No font was found`};\n if (!this.features.hasOwnProperty(query.script)) {\n this.getScriptFeatures(query.script);\n }\n const scriptFeatures = this.features[query.script];\n if (!scriptFeatures) return (\n { FAIL: `No feature for script ${query.script}`}\n );\n if (!scriptFeatures.tags[query.tag]) return null;\n return this.features[query.script].tags[query.tag];\n};\n\nexport default FeatureQuery;\nexport { FeatureQuery, SubstitutionAction };\n","/**\n * Arabic word context checkers\n */\n\nimport { isArabicChar } from '../../../char';\n\nfunction arabicWordStartCheck(contextParams) {\n const char = contextParams.current;\n const prevChar = contextParams.get(-1);\n return (\n // ? arabic first char\n (prevChar === null && isArabicChar(char)) ||\n // ? arabic char preceded with a non arabic char\n (!isArabicChar(prevChar) && isArabicChar(char))\n );\n}\n\nfunction arabicWordEndCheck(contextParams) {\n const nextChar = contextParams.get(1);\n return (\n // ? last arabic char\n (nextChar === null) ||\n // ? next char is not arabic\n (!isArabicChar(nextChar))\n );\n}\n\nexport default {\n startCheck: arabicWordStartCheck,\n endCheck: arabicWordEndCheck\n};\n","/**\n * Arabic sentence context checkers\n */\n\nimport { isArabicChar, isWhiteSpace, isTashkeelArabicChar } from '../../../char';\n\nfunction arabicSentenceStartCheck(contextParams) {\n const char = contextParams.current;\n const prevChar = contextParams.get(-1);\n return (\n // ? an arabic char preceded with a non arabic char\n (isArabicChar(char) || isTashkeelArabicChar(char)) &&\n !isArabicChar(prevChar)\n );\n}\n\nfunction arabicSentenceEndCheck(contextParams) {\n const nextChar = contextParams.get(1);\n switch (true) {\n case nextChar === null:\n return true;\n case (!isArabicChar(nextChar) && !isTashkeelArabicChar(nextChar)):\n const nextIsWhitespace = isWhiteSpace(nextChar);\n if (!nextIsWhitespace) return true;\n if (nextIsWhitespace) {\n let arabicCharAhead = false;\n arabicCharAhead = (\n contextParams.lookahead.some(\n c => isArabicChar(c) || isTashkeelArabicChar(c)\n )\n );\n if (!arabicCharAhead) return true;\n }\n break;\n default:\n return false;\n }\n}\n\nexport default {\n startCheck: arabicSentenceStartCheck,\n endCheck: arabicSentenceEndCheck\n};\n","import { SubstitutionAction } from './featureQuery';\n\n/**\n * Apply single substitution format 1\n * @param {Array} substitutions substitutions\n * @param {any} tokens a list of tokens\n * @param {number} index token index\n */\nfunction singleSubstitutionFormat1(action, tokens, index) {\n tokens[index].setState(action.tag, action.substitution);\n}\n\n/**\n * Apply single substitution format 2\n * @param {Array} substitutions substitutions\n * @param {any} tokens a list of tokens\n * @param {number} index token index\n */\nfunction singleSubstitutionFormat2(action, tokens, index) {\n tokens[index].setState(action.tag, action.substitution);\n}\n\n/**\n * Apply chaining context substitution format 3\n * @param {Array} substitutions substitutions\n * @param {any} tokens a list of tokens\n * @param {number} index token index\n */\nfunction chainingSubstitutionFormat3(action, tokens, index) {\n action.substitution.forEach((subst, offset) => {\n const token = tokens[index + offset];\n token.setState(action.tag, subst);\n });\n}\n\n/**\n * Apply ligature substitution format 1\n * @param {Array} substitutions substitutions\n * @param {any} tokens a list of tokens\n * @param {number} index token index\n */\nfunction ligatureSubstitutionFormat1(action, tokens, index) {\n let token = tokens[index];\n token.setState(action.tag, action.substitution.ligGlyph);\n const compsCount = action.substitution.components.length;\n for (let i = 0; i < compsCount; i++) {\n token = tokens[index + i + 1];\n token.setState('deleted', true);\n }\n}\n\n/**\n * Supported substitutions\n */\nconst SUBSTITUTIONS = {\n 11: singleSubstitutionFormat1,\n 12: singleSubstitutionFormat2,\n 63: chainingSubstitutionFormat3,\n 41: ligatureSubstitutionFormat1\n};\n\n/**\n * Apply substitutions to a list of tokens\n * @param {Array} substitutions substitutions\n * @param {any} tokens a list of tokens\n * @param {number} index token index\n */\nfunction applySubstitution(action, tokens, index) {\n if (action instanceof SubstitutionAction && SUBSTITUTIONS[action.id]) {\n SUBSTITUTIONS[action.id](action, tokens, index);\n }\n}\n\nexport default applySubstitution;\n","/**\n * Apply Arabic presentation forms to a range of tokens\n */\n\nimport { ContextParams } from '../../tokenizer';\nimport { isIsolatedArabicChar, isTashkeelArabicChar } from '../../char';\nimport { SubstitutionAction } from '../featureQuery';\nimport applySubstitution from '../applySubstitution';\n\n/**\n * Check if a char can be connected to it's preceding char\n * @param {ContextParams} charContextParams context params of a char\n */\nfunction willConnectPrev(charContextParams) {\n let backtrack = [].concat(charContextParams.backtrack);\n for (let i = backtrack.length - 1; i >= 0; i--) {\n const prevChar = backtrack[i];\n const isolated = isIsolatedArabicChar(prevChar);\n const tashkeel = isTashkeelArabicChar(prevChar);\n if (!isolated && !tashkeel) return true;\n if (isolated) return false;\n }\n return false;\n}\n\n/**\n * Check if a char can be connected to it's proceeding char\n * @param {ContextParams} charContextParams context params of a char\n */\nfunction willConnectNext(charContextParams) {\n if (isIsolatedArabicChar(charContextParams.current)) return false;\n for (let i = 0; i < charContextParams.lookahead.length; i++) {\n const nextChar = charContextParams.lookahead[i];\n const tashkeel = isTashkeelArabicChar(nextChar);\n if (!tashkeel) return true;\n }\n return false;\n}\n\n/**\n * Apply arabic presentation forms to a list of tokens\n * @param {ContextRange} range a range of tokens\n */\nfunction arabicPresentationForms(range) {\n const script = 'arab';\n const tags = this.featuresTags[script];\n const tokens = this.tokenizer.getRangeTokens(range);\n if (tokens.length === 1) return;\n let contextParams = new ContextParams(\n tokens.map(token => token.getState('glyphIndex')\n ), 0);\n const charContextParams = new ContextParams(\n tokens.map(token => token.char\n ), 0);\n tokens.forEach((token, index) => {\n if (isTashkeelArabicChar(token.char)) return;\n contextParams.setCurrentIndex(index);\n charContextParams.setCurrentIndex(index);\n let CONNECT = 0; // 2 bits 00 (10: can connect next) (01: can connect prev)\n if (willConnectPrev(charContextParams)) CONNECT |= 1;\n if (willConnectNext(charContextParams)) CONNECT |= 2;\n let tag;\n switch (CONNECT) {\n case 1: (tag = 'fina'); break;\n case 2: (tag = 'init'); break;\n case 3: (tag = 'medi'); break;\n }\n if (tags.indexOf(tag) === -1) return;\n let substitutions = this.query.lookupFeature({\n tag, script, contextParams\n });\n if (substitutions instanceof Error) return console.info(substitutions.message);\n substitutions.forEach((action, index) => {\n if (action instanceof SubstitutionAction) {\n applySubstitution(action, tokens, index);\n contextParams.context[index] = action.substitution;\n }\n });\n });\n}\n\nexport default arabicPresentationForms;\nexport { arabicPresentationForms };\n","/**\n * Apply Arabic required ligatures feature to a range of tokens\n */\n\nimport { ContextParams } from '../../tokenizer';\nimport applySubstitution from '../applySubstitution';\n\n/**\n * Update context params\n * @param {any} tokens a list of tokens\n * @param {number} index current item index\n */\nfunction getContextParams(tokens, index) {\n const context = tokens.map(token => token.activeState.value);\n return new ContextParams(context, index || 0);\n}\n\n/**\n * Apply Arabic required ligatures to a context range\n * @param {ContextRange} range a range of tokens\n */\nfunction arabicRequiredLigatures(range) {\n const script = 'arab';\n let tokens = this.tokenizer.getRangeTokens(range);\n let contextParams = getContextParams(tokens);\n contextParams.context.forEach((glyphIndex, index) => {\n contextParams.setCurrentIndex(index);\n let substitutions = this.query.lookupFeature({\n tag: 'rlig', script, contextParams\n });\n if (substitutions.length) {\n substitutions.forEach(\n action => applySubstitution(action, tokens, index)\n );\n contextParams = getContextParams(tokens);\n }\n });\n}\n\nexport default arabicRequiredLigatures;\nexport { arabicRequiredLigatures };\n","/**\n * Latin word context checkers\n */\n\nimport { isLatinChar } from '../../../char';\n\nfunction latinWordStartCheck(contextParams) {\n const char = contextParams.current;\n const prevChar = contextParams.get(-1);\n return (\n // ? latin first char\n (prevChar === null && isLatinChar(char)) ||\n // ? latin char preceded with a non latin char\n (!isLatinChar(prevChar) && isLatinChar(char))\n );\n}\n\nfunction latinWordEndCheck(contextParams) {\n const nextChar = contextParams.get(1);\n return (\n // ? last latin char\n (nextChar === null) ||\n // ? next char is not latin\n (!isLatinChar(nextChar))\n );\n}\n\nexport default {\n startCheck: latinWordStartCheck,\n endCheck: latinWordEndCheck\n};\n","/**\n * Apply Latin ligature feature to a range of tokens\n */\n\nimport { ContextParams } from '../../tokenizer';\nimport applySubstitution from '../applySubstitution';\n\n/**\n * Update context params\n * @param {any} tokens a list of tokens\n * @param {number} index current item index\n */\nfunction getContextParams(tokens, index) {\n const context = tokens.map(token => token.activeState.value);\n return new ContextParams(context, index || 0);\n}\n\n/**\n * Apply Arabic required ligatures to a context range\n * @param {ContextRange} range a range of tokens\n */\nfunction latinLigature(range) {\n const script = 'latn';\n let tokens = this.tokenizer.getRangeTokens(range);\n let contextParams = getContextParams(tokens);\n contextParams.context.forEach((glyphIndex, index) => {\n contextParams.setCurrentIndex(index);\n let substitutions = this.query.lookupFeature({\n tag: 'liga', script, contextParams\n });\n if (substitutions.length) {\n substitutions.forEach(\n action => applySubstitution(action, tokens, index)\n );\n contextParams = getContextParams(tokens);\n }\n });\n}\n\nexport default latinLigature;\n","/**\n * Infer bidirectional properties for a given text and apply\n * the corresponding layout rules.\n */\n\nimport Tokenizer from './tokenizer';\nimport FeatureQuery from './features/featureQuery';\nimport arabicWordCheck from './features/arab/contextCheck/arabicWord';\nimport arabicSentenceCheck from './features/arab/contextCheck/arabicSentence';\nimport arabicPresentationForms from './features/arab/arabicPresentationForms';\nimport arabicRequiredLigatures from './features/arab/arabicRequiredLigatures';\nimport latinWordCheck from './features/latn/contextCheck/latinWord';\nimport latinLigature from './features/latn/latinLigatures';\n\n/**\n * Create Bidi. features\n * @param {string} baseDir text base direction. value either 'ltr' or 'rtl'\n */\nfunction Bidi(baseDir) {\n this.baseDir = baseDir || 'ltr';\n this.tokenizer = new Tokenizer();\n this.featuresTags = {};\n}\n\n/**\n * Sets Bidi text\n * @param {string} text a text input\n */\nBidi.prototype.setText = function (text) {\n this.text = text;\n};\n\n/**\n * Store essential context checks:\n * arabic word check for applying gsub features\n * arabic sentence check for adjusting arabic layout\n */\nBidi.prototype.contextChecks = ({\n latinWordCheck,\n arabicWordCheck,\n arabicSentenceCheck\n});\n\n/**\n * Register arabic word check\n */\nfunction registerContextChecker(checkId) {\n const check = this.contextChecks[`${checkId}Check`];\n return this.tokenizer.registerContextChecker(\n checkId, check.startCheck, check.endCheck\n );\n}\n\n/**\n * Perform pre tokenization procedure then\n * tokenize text input\n */\nfunction tokenizeText() {\n registerContextChecker.call(this, 'latinWord');\n registerContextChecker.call(this, 'arabicWord');\n registerContextChecker.call(this, 'arabicSentence');\n return this.tokenizer.tokenize(this.text);\n}\n\n/**\n * Reverse arabic sentence layout\n * TODO: check base dir before applying adjustments - priority low\n */\nfunction reverseArabicSentences() {\n const ranges = this.tokenizer.getContextRanges('arabicSentence');\n ranges.forEach(range => {\n let rangeTokens = this.tokenizer.getRangeTokens(range);\n this.tokenizer.replaceRange(\n range.startIndex,\n range.endOffset,\n rangeTokens.reverse()\n );\n });\n}\n\n/**\n * Register supported features tags\n * @param {script} script script tag\n * @param {Array} tags features tags list\n */\nBidi.prototype.registerFeatures = function (script, tags) {\n const supportedTags = tags.filter(\n tag => this.query.supports({script, tag})\n );\n if (!this.featuresTags.hasOwnProperty(script)) {\n this.featuresTags[script] = supportedTags;\n } else {\n this.featuresTags[script] =\n this.featuresTags[script].concat(supportedTags);\n }\n};\n\n/**\n * Apply GSUB features\n * @param {Array} tagsList a list of features tags\n * @param {string} script a script tag\n * @param {Font} font opentype font instance\n */\nBidi.prototype.applyFeatures = function (font, features) {\n if (!font) throw new Error(\n 'No valid font was provided to apply features'\n );\n if (!this.query) this.query = new FeatureQuery(font);\n for (let f = 0; f < features.length; f++) {\n const feature = features[f];\n if (!this.query.supports({script: feature.script})) continue;\n this.registerFeatures(feature.script, feature.tags);\n }\n};\n\n/**\n * Register a state modifier\n * @param {string} modifierId state modifier id\n * @param {function} condition a predicate function that returns true or false\n * @param {function} modifier a modifier function to set token state\n */\nBidi.prototype.registerModifier = function (modifierId, condition, modifier) {\n this.tokenizer.registerModifier(modifierId, condition, modifier);\n};\n\n/**\n * Check if 'glyphIndex' is registered\n */\nfunction checkGlyphIndexStatus() {\n if (this.tokenizer.registeredModifiers.indexOf('glyphIndex') === -1) {\n throw new Error(\n 'glyphIndex modifier is required to apply ' +\n 'arabic presentation features.'\n );\n }\n}\n\n/**\n * Apply arabic presentation forms features\n */\nfunction applyArabicPresentationForms() {\n const script = 'arab';\n if (!this.featuresTags.hasOwnProperty(script)) return;\n checkGlyphIndexStatus.call(this);\n const ranges = this.tokenizer.getContextRanges('arabicWord');\n ranges.forEach(range => {\n arabicPresentationForms.call(this, range);\n });\n}\n\n/**\n * Apply required arabic ligatures\n */\nfunction applyArabicRequireLigatures() {\n const script = 'arab';\n if (!this.featuresTags.hasOwnProperty(script)) return;\n const tags = this.featuresTags[script];\n if (tags.indexOf('rlig') === -1) return;\n checkGlyphIndexStatus.call(this);\n const ranges = this.tokenizer.getContextRanges('arabicWord');\n ranges.forEach(range => {\n arabicRequiredLigatures.call(this, range);\n });\n}\n\n/**\n * Apply required arabic ligatures\n */\nfunction applyLatinLigatures() {\n const script = 'latn';\n if (!this.featuresTags.hasOwnProperty(script)) return;\n const tags = this.featuresTags[script];\n if (tags.indexOf('liga') === -1) return;\n checkGlyphIndexStatus.call(this);\n const ranges = this.tokenizer.getContextRanges('latinWord');\n ranges.forEach(range => {\n latinLigature.call(this, range);\n });\n}\n\n/**\n * Check if a context is registered\n * @param {string} contextId context id\n */\nBidi.prototype.checkContextReady = function (contextId) {\n return !!this.tokenizer.getContext(contextId);\n};\n\n/**\n * Apply features to registered contexts\n */\nBidi.prototype.applyFeaturesToContexts = function () {\n if (this.checkContextReady('arabicWord')) {\n applyArabicPresentationForms.call(this);\n applyArabicRequireLigatures.call(this);\n }\n if (this.checkContextReady('latinWord')) {\n applyLatinLigatures.call(this);\n }\n if (this.checkContextReady('arabicSentence')) {\n reverseArabicSentences.call(this);\n }\n};\n\n/**\n * process text input\n * @param {string} text an input text\n */\nBidi.prototype.processText = function(text) {\n if (!this.text || this.text !== text) {\n this.setText(text);\n tokenizeText.call(this);\n this.applyFeaturesToContexts();\n }\n};\n\n/**\n * Process a string of text to identify and adjust\n * bidirectional text entities.\n * @param {string} text input text\n */\nBidi.prototype.getBidiText = function (text) {\n this.processText(text);\n return this.tokenizer.getText();\n};\n\n/**\n * Get the current state index of each token\n * @param {text} text an input text\n */\nBidi.prototype.getTextGlyphs = function (text) {\n this.processText(text);\n let indexes = [];\n for (let i = 0; i < this.tokenizer.tokens.length; i++) {\n const token = this.tokenizer.tokens[i];\n if (token.state.deleted) continue;\n const index = token.activeState.value;\n indexes.push(Array.isArray(index) ? index[0] : index);\n }\n return indexes;\n};\n\nexport default Bidi;\n","// The Font object\n\nimport Path from './path';\nimport { DefaultEncoding } from './encoding';\nimport glyphset from './glyphset';\nimport Position from './position';\nimport Substitution from './substitution';\nimport { checkArgument } from './util';\nimport HintingTrueType from './hintingtt';\nimport Bidi from './bidi';\n\n/**\n * @typedef FontOptions\n * @type Object\n * @property {Boolean} empty - whether to create a new empty font\n * @property {string} familyName\n * @property {string} styleName\n * @property {string=} fullName\n * @property {string=} postScriptName\n * @property {string=} designer\n * @property {string=} designerURL\n * @property {string=} manufacturer\n * @property {string=} manufacturerURL\n * @property {string=} license\n * @property {string=} licenseURL\n * @property {string=} version\n * @property {string=} description\n * @property {string=} copyright\n * @property {string=} trademark\n * @property {Number} unitsPerEm\n * @property {Number} ascender\n * @property {Number} descender\n * @property {Number} createdTimestamp\n * @property {string=} weightClass\n * @property {string=} widthClass\n * @property {string=} fsSelection\n */\n\n/**\n * A Font represents a loaded OpenType font file.\n * It contains a set of glyphs and methods to draw text on a drawing context,\n * or to get a path representing the text.\n * @exports opentype.Font\n * @class\n * @param {FontOptions}\n * @constructor\n */\nfunction Font(options) {\n options = options || {};\n options.tables = options.tables || {};\n\n if (!options.empty) {\n // Check that we've provided the minimum set of names.\n checkArgument(\n options.familyName,\n 'When creating a new Font object, familyName is required.'\n );\n checkArgument(\n options.styleName,\n 'When creating a new Font object, styleName is required.'\n );\n checkArgument(\n options.unitsPerEm,\n 'When creating a new Font object, unitsPerEm is required.'\n );\n checkArgument(\n options.ascender,\n 'When creating a new Font object, ascender is required.'\n );\n checkArgument(\n options.descender <= 0,\n 'When creating a new Font object, negative descender value is required.'\n );\n\n this.unitsPerEm = options.unitsPerEm || 1000;\n this.ascender = options.ascender;\n this.descender = options.descender;\n this.createdTimestamp = options.createdTimestamp;\n this.tables = Object.assign(options.tables, {\n os2: Object.assign(\n {\n usWeightClass:\n options.weightClass || this.usWeightClasses.MEDIUM,\n usWidthClass:\n options.widthClass || this.usWidthClasses.MEDIUM,\n fsSelection:\n options.fsSelection || this.fsSelectionValues.REGULAR,\n },\n options.tables.os2\n ),\n });\n }\n\n this.supported = true; // Deprecated: parseBuffer will throw an error if font is not supported.\n this.glyphs = new glyphset.GlyphSet(this, options.glyphs || []);\n this.encoding = new DefaultEncoding(this);\n this.position = new Position(this);\n this.substitution = new Substitution(this);\n this.tables = this.tables || {};\n\n // needed for low memory mode only.\n this._push = null;\n this._hmtxTableData = {};\n\n Object.defineProperty(this, 'hinting', {\n get: function () {\n if (this._hinting) return this._hinting;\n if (this.outlinesFormat === 'truetype') {\n return (this._hinting = new HintingTrueType(this));\n }\n },\n });\n}\n\n/**\n * Check if the font has a glyph for the given character.\n * @param {string}\n * @return {Boolean}\n */\nFont.prototype.hasChar = function (c) {\n return this.encoding.charToGlyphIndex(c) !== null;\n};\n\n/**\n * Convert the given character to a single glyph index.\n * Note that this function assumes that there is a one-to-one mapping between\n * the given character and a glyph; for complex scripts this might not be the case.\n * @param {string}\n * @return {Number}\n */\nFont.prototype.charToGlyphIndex = function (s) {\n return this.encoding.charToGlyphIndex(s);\n};\n\n/**\n * Convert the given character to a single Glyph object.\n * Note that this function assumes that there is a one-to-one mapping between\n * the given character and a glyph; for complex scripts this might not be the case.\n * @param {string}\n * @return {opentype.Glyph}\n */\nFont.prototype.charToGlyph = function (c) {\n const glyphIndex = this.charToGlyphIndex(c);\n let glyph = this.glyphs.get(glyphIndex);\n if (!glyph) {\n // .notdef\n glyph = this.glyphs.get(0);\n }\n\n return glyph;\n};\n\n/**\n * Update features\n * @param {any} options features options\n */\nFont.prototype.updateFeatures = function (options) {\n // TODO: update all features options not only 'latn'.\n return this.defaultRenderOptions.features.map((feature) => {\n if (feature.script === 'latn') {\n return {\n script: 'latn',\n tags: feature.tags.filter((tag) => options[tag]),\n };\n } else {\n return feature;\n }\n });\n};\n\n/**\n * Convert the given text to a list of Glyph objects.\n * Note that there is no strict one-to-one mapping between characters and\n * glyphs, so the list of returned glyphs can be larger or smaller than the\n * length of the given string.\n * @param {string}\n * @param {GlyphRenderOptions} [options]\n * @return {opentype.Glyph[]}\n */\nFont.prototype.stringToGlyphs = function (s, options) {\n const bidi = new Bidi();\n\n // Create and register 'glyphIndex' state modifier\n const charToGlyphIndexMod = (token) => this.charToGlyphIndex(token.char);\n bidi.registerModifier('glyphIndex', null, charToGlyphIndexMod);\n\n // roll-back to default features\n let features = options\n ? this.updateFeatures(options.features)\n : this.defaultRenderOptions.features;\n\n bidi.applyFeatures(this, features);\n\n const indexes = bidi.getTextGlyphs(s);\n\n let length = indexes.length;\n\n // convert glyph indexes to glyph objects\n const glyphs = new Array(length);\n const notdef = this.glyphs.get(0);\n for (let i = 0; i < length; i += 1) {\n glyphs[i] = this.glyphs.get(indexes[i]) || notdef;\n }\n return glyphs;\n};\n\n/**\n * Retrieve the value of the kerning pair between the left glyph (or its index)\n * and the right glyph (or its index). If no kerning pair is found, return 0.\n * The kerning value gets added to the advance width when calculating the spacing\n * between glyphs.\n * For GPOS kerning, this method uses the default script and language, which covers\n * most use cases. To have greater control, use font.position.getKerningValue .\n * @param {opentype.Glyph} leftGlyph\n * @param {opentype.Glyph} rightGlyph\n * @return {Number}\n */\nFont.prototype.getKerningValue = function (leftGlyph, rightGlyph) {\n leftGlyph = leftGlyph.index || leftGlyph;\n rightGlyph = rightGlyph.index || rightGlyph;\n const gposKerning = this.position.defaultKerningTables;\n if (gposKerning) {\n return this.position.getKerningValue(\n gposKerning,\n leftGlyph,\n rightGlyph\n );\n }\n // \"kern\" table\n return this.kerningPairs[leftGlyph + ',' + rightGlyph] || 0;\n};\n\n/**\n * @typedef GlyphRenderOptions\n * @type Object\n * @property {string} [script] - script used to determine which features to apply. By default, 'DFLT' or 'latn' is used.\n * See https://www.microsoft.com/typography/otspec/scripttags.htm\n * @property {string} [language='dflt'] - language system used to determine which features to apply.\n * See https://www.microsoft.com/typography/developers/opentype/languagetags.aspx\n * @property {boolean} [kerning=true] - whether to include kerning values\n * @property {object} [features] - OpenType Layout feature tags. Used to enable or disable the features of the given script/language system.\n * See https://www.microsoft.com/typography/otspec/featuretags.htm\n */\nFont.prototype.defaultRenderOptions = {\n kerning: true,\n features: [\n /**\n * these 4 features are required to render Arabic text properly\n * and shouldn't be turned off when rendering arabic text.\n */\n { script: 'arab', tags: ['init', 'medi', 'fina', 'rlig'] },\n { script: 'latn', tags: ['liga', 'rlig'] },\n ],\n};\n\n/**\n * Helper function that invokes the given callback for each glyph in the given text.\n * The callback gets `(glyph, x, y, fontSize, options)`.* @param {string} text\n * @param {string} text - The text to apply.\n * @param {number} [x=0] - Horizontal position of the beginning of the text.\n * @param {number} [y=0] - Vertical position of the *baseline* of the text.\n * @param {number} [fontSize=72] - Font size in pixels. We scale the glyph units by `1 / unitsPerEm * fontSize`.\n * @param {GlyphRenderOptions=} options\n * @param {Function} callback\n */\nFont.prototype.forEachGlyph = function (\n text,\n x,\n y,\n fontSize,\n options,\n callback\n) {\n x = x !== undefined ? x : 0;\n y = y !== undefined ? y : 0;\n fontSize = fontSize !== undefined ? fontSize : 72;\n options = Object.assign({}, this.defaultRenderOptions, options);\n const fontScale = (1 / this.unitsPerEm) * fontSize;\n const glyphs = this.stringToGlyphs(text, options);\n let kerningLookups;\n if (options.kerning) {\n const script = options.script || this.position.getDefaultScriptName();\n kerningLookups = this.position.getKerningTables(\n script,\n options.language\n );\n }\n for (let i = 0; i < glyphs.length; i += 1) {\n const glyph = glyphs[i];\n callback.call(this, glyph, x, y, fontSize, options);\n if (glyph.advanceWidth) {\n x += glyph.advanceWidth * fontScale;\n }\n\n if (options.kerning && i < glyphs.length - 1) {\n // We should apply position adjustment lookups in a more generic way.\n // Here we only use the xAdvance value.\n const kerningValue = kerningLookups\n ? this.position.getKerningValue(\n kerningLookups,\n glyph.index,\n glyphs[i + 1].index\n )\n : this.getKerningValue(glyph, glyphs[i + 1]);\n x += kerningValue * fontScale;\n }\n\n if (options.letterSpacing) {\n x += options.letterSpacing * fontSize;\n } else if (options.tracking) {\n x += (options.tracking / 1000) * fontSize;\n }\n }\n return x;\n};\n\n/**\n * Create a Path object that represents the given text.\n * @param {string} text - The text to create.\n * @param {number} [x=0] - Horizontal position of the beginning of the text.\n * @param {number} [y=0] - Vertical position of the *baseline* of the text.\n * @param {number} [fontSize=72] - Font size in pixels. We scale the glyph units by `1 / unitsPerEm * fontSize`.\n * @param {GlyphRenderOptions=} options\n * @return {opentype.Path}\n */\nFont.prototype.getPath = function (text, x, y, fontSize, options) {\n const fullPath = new Path();\n this.forEachGlyph(\n text,\n x,\n y,\n fontSize,\n options,\n function (glyph, gX, gY, gFontSize) {\n const glyphPath = glyph.getPath(gX, gY, gFontSize, options, this);\n fullPath.extend(glyphPath);\n }\n );\n return fullPath;\n};\n\n/**\n * Create an array of Path objects that represent the glyphs of a given text.\n * @param {string} text - The text to create.\n * @param {number} [x=0] - Horizontal position of the beginning of the text.\n * @param {number} [y=0] - Vertical position of the *baseline* of the text.\n * @param {number} [fontSize=72] - Font size in pixels. We scale the glyph units by `1 / unitsPerEm * fontSize`.\n * @param {GlyphRenderOptions=} options\n * @return {opentype.Path[]}\n */\nFont.prototype.getPaths = function (text, x, y, fontSize, options) {\n const glyphPaths = [];\n this.forEachGlyph(\n text,\n x,\n y,\n fontSize,\n options,\n function (glyph, gX, gY, gFontSize) {\n const glyphPath = glyph.getPath(gX, gY, gFontSize, options, this);\n glyphPaths.push(glyphPath);\n }\n );\n\n return glyphPaths;\n};\n\n/**\n * Returns the advance width of a text.\n *\n * This is something different than Path.getBoundingBox() as for example a\n * suffixed whitespace increases the advanceWidth but not the bounding box\n * or an overhanging letter like a calligraphic 'f' might have a quite larger\n * bounding box than its advance width.\n *\n * This corresponds to canvas2dContext.measureText(text).width\n *\n * @param {string} text - The text to create.\n * @param {number} [fontSize=72] - Font size in pixels. We scale the glyph units by `1 / unitsPerEm * fontSize`.\n * @param {GlyphRenderOptions=} options\n * @return advance width\n */\nFont.prototype.getAdvanceWidth = function (text, fontSize, options) {\n return this.forEachGlyph(text, 0, 0, fontSize, options, function () {});\n};\n\n/**\n * @private\n */\nFont.prototype.fsSelectionValues = {\n ITALIC: 0x001, //1\n UNDERSCORE: 0x002, //2\n NEGATIVE: 0x004, //4\n OUTLINED: 0x008, //8\n STRIKEOUT: 0x010, //16\n BOLD: 0x020, //32\n REGULAR: 0x040, //64\n USER_TYPO_METRICS: 0x080, //128\n WWS: 0x100, //256\n OBLIQUE: 0x200, //512\n};\n\n/**\n * @private\n */\nFont.prototype.usWidthClasses = {\n ULTRA_CONDENSED: 1,\n EXTRA_CONDENSED: 2,\n CONDENSED: 3,\n SEMI_CONDENSED: 4,\n MEDIUM: 5,\n SEMI_EXPANDED: 6,\n EXPANDED: 7,\n EXTRA_EXPANDED: 8,\n ULTRA_EXPANDED: 9,\n};\n\n/**\n * @private\n */\nFont.prototype.usWeightClasses = {\n THIN: 100,\n EXTRA_LIGHT: 200,\n LIGHT: 300,\n NORMAL: 400,\n MEDIUM: 500,\n SEMI_BOLD: 600,\n BOLD: 700,\n EXTRA_BOLD: 800,\n BLACK: 900,\n};\n\nexport default Font;\n","// The `cmap` table stores the mappings from characters to glyphs.\n// https://www.microsoft.com/typography/OTSPEC/cmap.htm\n\nimport check from '../check';\nimport parse from '../parse';\n\nfunction parseCmapTableFormat12(cmap, p) {\n //Skip reserved.\n p.parseUShort();\n\n // Length in bytes of the sub-tables.\n cmap.length = p.parseULong();\n cmap.language = p.parseULong();\n\n let groupCount;\n cmap.groupCount = groupCount = p.parseULong();\n cmap.glyphIndexMap = {};\n\n for (let i = 0; i < groupCount; i += 1) {\n const startCharCode = p.parseULong();\n const endCharCode = p.parseULong();\n let startGlyphId = p.parseULong();\n\n for (let c = startCharCode; c <= endCharCode; c += 1) {\n cmap.glyphIndexMap[c] = startGlyphId;\n startGlyphId++;\n }\n }\n}\n\nfunction parseCmapTableFormat4(cmap, p, data, start, offset) {\n // Length in bytes of the sub-tables.\n cmap.length = p.parseUShort();\n cmap.language = p.parseUShort();\n\n // segCount is stored x 2.\n let segCount;\n cmap.segCount = segCount = p.parseUShort() >> 1;\n\n // Skip searchRange, entrySelector, rangeShift.\n p.skip('uShort', 3);\n\n // The \"unrolled\" mapping from character codes to glyph indices.\n cmap.glyphIndexMap = {};\n const endCountParser = new parse.Parser(data, start + offset + 14);\n const startCountParser = new parse.Parser(\n data,\n start + offset + 16 + segCount * 2\n );\n const idDeltaParser = new parse.Parser(\n data,\n start + offset + 16 + segCount * 4\n );\n const idRangeOffsetParser = new parse.Parser(\n data,\n start + offset + 16 + segCount * 6\n );\n let glyphIndexOffset = start + offset + 16 + segCount * 8;\n for (let i = 0; i < segCount - 1; i += 1) {\n let glyphIndex;\n const endCount = endCountParser.parseUShort();\n const startCount = startCountParser.parseUShort();\n const idDelta = idDeltaParser.parseShort();\n const idRangeOffset = idRangeOffsetParser.parseUShort();\n for (let c = startCount; c <= endCount; c += 1) {\n if (idRangeOffset !== 0) {\n // The idRangeOffset is relative to the current position in the idRangeOffset array.\n // Take the current offset in the idRangeOffset array.\n glyphIndexOffset =\n idRangeOffsetParser.offset +\n idRangeOffsetParser.relativeOffset -\n 2;\n\n // Add the value of the idRangeOffset, which will move us into the glyphIndex array.\n glyphIndexOffset += idRangeOffset;\n\n // Then add the character index of the current segment, multiplied by 2 for USHORTs.\n glyphIndexOffset += (c - startCount) * 2;\n glyphIndex = parse.getUShort(data, glyphIndexOffset);\n if (glyphIndex !== 0) {\n glyphIndex = (glyphIndex + idDelta) & 0xffff;\n }\n } else {\n glyphIndex = (c + idDelta) & 0xffff;\n }\n\n cmap.glyphIndexMap[c] = glyphIndex;\n }\n }\n}\n\n// Parse the `cmap` table. This table stores the mappings from characters to glyphs.\n// There are many available formats, but we only support the Windows format 4 and 12.\n// This function returns a `CmapEncoding` object or null if no supported format could be found.\nfunction parseCmapTable(data, start) {\n const cmap = {};\n cmap.version = parse.getUShort(data, start);\n check.argument(cmap.version === 0, 'cmap table version should be 0.');\n\n // The cmap table can contain many sub-tables, each with their own format.\n // We're only interested in a \"platform 0\" (Unicode format) and \"platform 3\" (Windows format) table.\n cmap.numTables = parse.getUShort(data, start + 2);\n let offset = -1;\n for (let i = cmap.numTables - 1; i >= 0; i -= 1) {\n const platformId = parse.getUShort(data, start + 4 + i * 8);\n const encodingId = parse.getUShort(data, start + 4 + i * 8 + 2);\n if (\n (platformId === 3 &&\n (encodingId === 0 || encodingId === 1 || encodingId === 10)) ||\n (platformId === 0 &&\n (encodingId === 0 ||\n encodingId === 1 ||\n encodingId === 2 ||\n encodingId === 3 ||\n encodingId === 4))\n ) {\n offset = parse.getULong(data, start + 4 + i * 8 + 4);\n break;\n }\n }\n\n if (offset === -1) {\n // There is no cmap table in the font that we support.\n throw new Error('No valid cmap sub-tables found.');\n }\n\n const p = new parse.Parser(data, start + offset);\n cmap.format = p.parseUShort();\n\n if (cmap.format === 12) {\n parseCmapTableFormat12(cmap, p);\n } else if (cmap.format === 4) {\n parseCmapTableFormat4(cmap, p, data, start, offset);\n } else {\n throw new Error(\n 'Only format 4 and 12 cmap tables are supported (found format ' +\n cmap.format +\n ').'\n );\n }\n\n return cmap;\n}\n\nexport default { parse: parseCmapTable };\n","// The `CFF` table contains the glyph outlines in PostScript format.\n// https://www.microsoft.com/typography/OTSPEC/cff.htm\n// http://download.microsoft.com/download/8/0/1/801a191c-029d-4af3-9642-555f6fe514ee/cff.pdf\n// http://download.microsoft.com/download/8/0/1/801a191c-029d-4af3-9642-555f6fe514ee/type2.pdf\n\nimport {\n CffEncoding,\n cffStandardEncoding,\n cffExpertEncoding,\n cffStandardStrings,\n} from '../encoding';\nimport glyphset from '../glyphset';\nimport parse from '../parse';\nimport Path from '../path';\n\n// Subroutines are encoded using the negative half of the number space.\n// See type 2 chapter 4.7 \"Subroutine operators\".\nfunction calcCFFSubroutineBias(subrs) {\n let bias;\n if (subrs.length < 1240) {\n bias = 107;\n } else if (subrs.length < 33900) {\n bias = 1131;\n } else {\n bias = 32768;\n }\n\n return bias;\n}\n\n// Parse a `CFF` INDEX array.\n// An index array consists of a list of offsets, then a list of objects at those offsets.\nfunction parseCFFIndex(data, start, conversionFn) {\n const offsets = [];\n const objects = [];\n const count = parse.getCard16(data, start);\n let objectOffset;\n let endOffset;\n if (count !== 0) {\n const offsetSize = parse.getByte(data, start + 2);\n objectOffset = start + (count + 1) * offsetSize + 2;\n let pos = start + 3;\n for (let i = 0; i < count + 1; i += 1) {\n offsets.push(parse.getOffset(data, pos, offsetSize));\n pos += offsetSize;\n }\n\n // The total size of the index array is 4 header bytes + the value of the last offset.\n endOffset = objectOffset + offsets[count];\n } else {\n endOffset = start + 2;\n }\n\n for (let i = 0; i < offsets.length - 1; i += 1) {\n let value = parse.getBytes(\n data,\n objectOffset + offsets[i],\n objectOffset + offsets[i + 1]\n );\n if (conversionFn) {\n value = conversionFn(value);\n }\n\n objects.push(value);\n }\n\n return { objects: objects, startOffset: start, endOffset: endOffset };\n}\n\nfunction parseCFFIndexLowMemory(data, start) {\n const offsets = [];\n const count = parse.getCard16(data, start);\n let objectOffset;\n let endOffset;\n if (count !== 0) {\n const offsetSize = parse.getByte(data, start + 2);\n objectOffset = start + (count + 1) * offsetSize + 2;\n let pos = start + 3;\n for (let i = 0; i < count + 1; i += 1) {\n offsets.push(parse.getOffset(data, pos, offsetSize));\n pos += offsetSize;\n }\n\n // The total size of the index array is 4 header bytes + the value of the last offset.\n endOffset = objectOffset + offsets[count];\n } else {\n endOffset = start + 2;\n }\n\n return { offsets: offsets, startOffset: start, endOffset: endOffset };\n}\nfunction getCffIndexObject(i, offsets, data, start, conversionFn) {\n const count = parse.getCard16(data, start);\n let objectOffset = 0;\n if (count !== 0) {\n const offsetSize = parse.getByte(data, start + 2);\n objectOffset = start + (count + 1) * offsetSize + 2;\n }\n\n let value = parse.getBytes(\n data,\n objectOffset + offsets[i],\n objectOffset + offsets[i + 1]\n );\n if (conversionFn) {\n value = conversionFn(value);\n }\n return value;\n}\n\n// Parse a `CFF` DICT real value.\nfunction parseFloatOperand(parser) {\n let s = '';\n const eof = 15;\n const lookup = [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9',\n '.',\n 'E',\n 'E-',\n null,\n '-',\n ];\n while (true) {\n const b = parser.parseByte();\n const n1 = b >> 4;\n const n2 = b & 15;\n\n if (n1 === eof) {\n break;\n }\n\n s += lookup[n1];\n\n if (n2 === eof) {\n break;\n }\n\n s += lookup[n2];\n }\n\n return parseFloat(s);\n}\n\n// Parse a `CFF` DICT operand.\nfunction parseOperand(parser, b0) {\n let b1;\n let b2;\n let b3;\n let b4;\n if (b0 === 28) {\n b1 = parser.parseByte();\n b2 = parser.parseByte();\n return (b1 << 8) | b2;\n }\n\n if (b0 === 29) {\n b1 = parser.parseByte();\n b2 = parser.parseByte();\n b3 = parser.parseByte();\n b4 = parser.parseByte();\n return (b1 << 24) | (b2 << 16) | (b3 << 8) | b4;\n }\n\n if (b0 === 30) {\n return parseFloatOperand(parser);\n }\n\n if (b0 >= 32 && b0 <= 246) {\n return b0 - 139;\n }\n\n if (b0 >= 247 && b0 <= 250) {\n b1 = parser.parseByte();\n return (b0 - 247) * 256 + b1 + 108;\n }\n\n if (b0 >= 251 && b0 <= 254) {\n b1 = parser.parseByte();\n return -(b0 - 251) * 256 - b1 - 108;\n }\n\n throw new Error('Invalid b0 ' + b0);\n}\n\n// Convert the entries returned by `parseDict` to a proper dictionary.\n// If a value is a list of one, it is unpacked.\nfunction entriesToObject(entries) {\n const o = {};\n for (let i = 0; i < entries.length; i += 1) {\n const key = entries[i][0];\n const values = entries[i][1];\n let value;\n if (values.length === 1) {\n value = values[0];\n } else {\n value = values;\n }\n\n if (o.hasOwnProperty(key) && !isNaN(o[key])) {\n throw new Error('Object ' + o + ' already has key ' + key);\n }\n\n o[key] = value;\n }\n\n return o;\n}\n\n// Parse a `CFF` DICT object.\n// A dictionary contains key-value pairs in a compact tokenized format.\nfunction parseCFFDict(data, start, size) {\n start = start !== undefined ? start : 0;\n const parser = new parse.Parser(data, start);\n const entries = [];\n let operands = [];\n size = size !== undefined ? size : data.length;\n\n while (parser.relativeOffset < size) {\n let op = parser.parseByte();\n\n // The first byte for each dict item distinguishes between operator (key) and operand (value).\n // Values <= 21 are operators.\n if (op <= 21) {\n // Two-byte operators have an initial escape byte of 12.\n if (op === 12) {\n op = 1200 + parser.parseByte();\n }\n\n entries.push([op, operands]);\n operands = [];\n } else {\n // Since the operands (values) come before the operators (keys), we store all operands in a list\n // until we encounter an operator.\n operands.push(parseOperand(parser, op));\n }\n }\n\n return entriesToObject(entries);\n}\n\n// Given a String Index (SID), return the value of the string.\n// Strings below index 392 are standard CFF strings and are not encoded in the font.\nfunction getCFFString(strings, index) {\n if (index <= 390) {\n index = cffStandardStrings[index];\n } else {\n index = strings[index - 391];\n }\n\n return index;\n}\n\n// Interpret a dictionary and return a new dictionary with readable keys and values for missing entries.\n// This function takes `meta` which is a list of objects containing `operand`, `name` and `default`.\nfunction interpretDict(dict, meta, strings) {\n const newDict = {};\n let value;\n\n // Because we also want to include missing values, we start out from the meta list\n // and lookup values in the dict.\n for (let i = 0; i < meta.length; i += 1) {\n const m = meta[i];\n\n if (Array.isArray(m.type)) {\n const values = [];\n values.length = m.type.length;\n for (let j = 0; j < m.type.length; j++) {\n value = dict[m.op] !== undefined ? dict[m.op][j] : undefined;\n if (value === undefined) {\n value =\n m.value !== undefined && m.value[j] !== undefined\n ? m.value[j]\n : null;\n }\n if (m.type[j] === 'SID') {\n value = getCFFString(strings, value);\n }\n values[j] = value;\n }\n newDict[m.name] = values;\n } else {\n value = dict[m.op];\n if (value === undefined) {\n value = m.value !== undefined ? m.value : null;\n }\n\n if (m.type === 'SID') {\n value = getCFFString(strings, value);\n }\n newDict[m.name] = value;\n }\n }\n\n return newDict;\n}\n\n// Parse the CFF header.\nfunction parseCFFHeader(data, start) {\n const header = {};\n header.formatMajor = parse.getCard8(data, start);\n header.formatMinor = parse.getCard8(data, start + 1);\n header.size = parse.getCard8(data, start + 2);\n header.offsetSize = parse.getCard8(data, start + 3);\n header.startOffset = start;\n header.endOffset = start + 4;\n return header;\n}\n\nconst TOP_DICT_META = [\n { name: 'version', op: 0, type: 'SID' },\n { name: 'notice', op: 1, type: 'SID' },\n { name: 'copyright', op: 1200, type: 'SID' },\n { name: 'fullName', op: 2, type: 'SID' },\n { name: 'familyName', op: 3, type: 'SID' },\n { name: 'weight', op: 4, type: 'SID' },\n { name: 'isFixedPitch', op: 1201, type: 'number', value: 0 },\n { name: 'italicAngle', op: 1202, type: 'number', value: 0 },\n { name: 'underlinePosition', op: 1203, type: 'number', value: -100 },\n { name: 'underlineThickness', op: 1204, type: 'number', value: 50 },\n { name: 'paintType', op: 1205, type: 'number', value: 0 },\n { name: 'charstringType', op: 1206, type: 'number', value: 2 },\n {\n name: 'fontMatrix',\n op: 1207,\n type: ['real', 'real', 'real', 'real', 'real', 'real'],\n value: [0.001, 0, 0, 0.001, 0, 0],\n },\n { name: 'uniqueId', op: 13, type: 'number' },\n {\n name: 'fontBBox',\n op: 5,\n type: ['number', 'number', 'number', 'number'],\n value: [0, 0, 0, 0],\n },\n { name: 'strokeWidth', op: 1208, type: 'number', value: 0 },\n { name: 'xuid', op: 14, type: [], value: null },\n { name: 'charset', op: 15, type: 'offset', value: 0 },\n { name: 'encoding', op: 16, type: 'offset', value: 0 },\n { name: 'charStrings', op: 17, type: 'offset', value: 0 },\n { name: 'private', op: 18, type: ['number', 'offset'], value: [0, 0] },\n { name: 'ros', op: 1230, type: ['SID', 'SID', 'number'] },\n { name: 'cidFontVersion', op: 1231, type: 'number', value: 0 },\n { name: 'cidFontRevision', op: 1232, type: 'number', value: 0 },\n { name: 'cidFontType', op: 1233, type: 'number', value: 0 },\n { name: 'cidCount', op: 1234, type: 'number', value: 8720 },\n { name: 'uidBase', op: 1235, type: 'number' },\n { name: 'fdArray', op: 1236, type: 'offset' },\n { name: 'fdSelect', op: 1237, type: 'offset' },\n { name: 'fontName', op: 1238, type: 'SID' },\n];\n\nconst PRIVATE_DICT_META = [\n { name: 'subrs', op: 19, type: 'offset', value: 0 },\n { name: 'defaultWidthX', op: 20, type: 'number', value: 0 },\n { name: 'nominalWidthX', op: 21, type: 'number', value: 0 },\n];\n\n// Parse the CFF top dictionary. A CFF table can contain multiple fonts, each with their own top dictionary.\n// The top dictionary contains the essential metadata for the font, together with the private dictionary.\nfunction parseCFFTopDict(data, strings) {\n const dict = parseCFFDict(data, 0, data.byteLength);\n return interpretDict(dict, TOP_DICT_META, strings);\n}\n\n// Parse the CFF private dictionary. We don't fully parse out all the values, only the ones we need.\nfunction parseCFFPrivateDict(data, start, size, strings) {\n const dict = parseCFFDict(data, start, size);\n return interpretDict(dict, PRIVATE_DICT_META, strings);\n}\n\n// Returns a list of \"Top DICT\"s found using an INDEX list.\n// Used to read both the usual high-level Top DICTs and also the FDArray\n// discovered inside CID-keyed fonts. When a Top DICT has a reference to\n// a Private DICT that is read and saved into the Top DICT.\n//\n// In addition to the expected/optional values as outlined in TOP_DICT_META\n// the following values might be saved into the Top DICT.\n//\n// _subrs [] array of local CFF subroutines from Private DICT\n// _subrsBias bias value computed from number of subroutines\n// (see calcCFFSubroutineBias() and parseCFFCharstring())\n// _defaultWidthX default widths for CFF characters\n// _nominalWidthX bias added to width embedded within glyph description\n//\n// _privateDict saved copy of parsed Private DICT from Top DICT\nfunction gatherCFFTopDicts(data, start, cffIndex, strings) {\n const topDictArray = [];\n for (let iTopDict = 0; iTopDict < cffIndex.length; iTopDict += 1) {\n const topDictData = new DataView(\n new Uint8Array(cffIndex[iTopDict]).buffer\n );\n const topDict = parseCFFTopDict(topDictData, strings);\n topDict._subrs = [];\n topDict._subrsBias = 0;\n topDict._defaultWidthX = 0;\n topDict._nominalWidthX = 0;\n const privateSize = topDict.private[0];\n const privateOffset = topDict.private[1];\n if (privateSize !== 0 && privateOffset !== 0) {\n const privateDict = parseCFFPrivateDict(\n data,\n privateOffset + start,\n privateSize,\n strings\n );\n topDict._defaultWidthX = privateDict.defaultWidthX;\n topDict._nominalWidthX = privateDict.nominalWidthX;\n if (privateDict.subrs !== 0) {\n const subrOffset = privateOffset + privateDict.subrs;\n const subrIndex = parseCFFIndex(data, subrOffset + start);\n topDict._subrs = subrIndex.objects;\n topDict._subrsBias = calcCFFSubroutineBias(topDict._subrs);\n }\n topDict._privateDict = privateDict;\n }\n topDictArray.push(topDict);\n }\n return topDictArray;\n}\n\n// Parse the CFF charset table, which contains internal names for all the glyphs.\n// This function will return a list of glyph names.\n// See Adobe TN #5176 chapter 13, \"Charsets\".\nfunction parseCFFCharset(data, start, nGlyphs, strings) {\n let sid;\n let count;\n const parser = new parse.Parser(data, start);\n\n // The .notdef glyph is not included, so subtract 1.\n nGlyphs -= 1;\n const charset = ['.notdef'];\n\n const format = parser.parseCard8();\n if (format === 0) {\n for (let i = 0; i < nGlyphs; i += 1) {\n sid = parser.parseSID();\n charset.push(getCFFString(strings, sid));\n }\n } else if (format === 1) {\n while (charset.length <= nGlyphs) {\n sid = parser.parseSID();\n count = parser.parseCard8();\n for (let i = 0; i <= count; i += 1) {\n charset.push(getCFFString(strings, sid));\n sid += 1;\n }\n }\n } else if (format === 2) {\n while (charset.length <= nGlyphs) {\n sid = parser.parseSID();\n count = parser.parseCard16();\n for (let i = 0; i <= count; i += 1) {\n charset.push(getCFFString(strings, sid));\n sid += 1;\n }\n }\n } else {\n throw new Error('Unknown charset format ' + format);\n }\n\n return charset;\n}\n\n// Parse the CFF encoding data. Only one encoding can be specified per font.\n// See Adobe TN #5176 chapter 12, \"Encodings\".\nfunction parseCFFEncoding(data, start, charset) {\n let code;\n const enc = {};\n const parser = new parse.Parser(data, start);\n const format = parser.parseCard8();\n if (format === 0) {\n const nCodes = parser.parseCard8();\n for (let i = 0; i < nCodes; i += 1) {\n code = parser.parseCard8();\n enc[code] = i;\n }\n } else if (format === 1) {\n const nRanges = parser.parseCard8();\n code = 1;\n for (let i = 0; i < nRanges; i += 1) {\n const first = parser.parseCard8();\n const nLeft = parser.parseCard8();\n for (let j = first; j <= first + nLeft; j += 1) {\n enc[j] = code;\n code += 1;\n }\n }\n } else {\n throw new Error('Unknown encoding format ' + format);\n }\n\n return new CffEncoding(enc, charset);\n}\n\n// Take in charstring code and return a Glyph object.\n// The encoding is described in the Type 2 Charstring Format\n// https://www.microsoft.com/typography/OTSPEC/charstr2.htm\nfunction parseCFFCharstring(font, glyph, code) {\n let c1x;\n let c1y;\n let c2x;\n let c2y;\n const p = new Path();\n const stack = [];\n let nStems = 0;\n let haveWidth = false;\n let open = false;\n let x = 0;\n let y = 0;\n let subrs;\n let subrsBias;\n let defaultWidthX;\n let nominalWidthX;\n if (font.isCIDFont) {\n const fdIndex = font.tables.cff.topDict._fdSelect[glyph.index];\n const fdDict = font.tables.cff.topDict._fdArray[fdIndex];\n subrs = fdDict._subrs;\n subrsBias = fdDict._subrsBias;\n defaultWidthX = fdDict._defaultWidthX;\n nominalWidthX = fdDict._nominalWidthX;\n } else {\n subrs = font.tables.cff.topDict._subrs;\n subrsBias = font.tables.cff.topDict._subrsBias;\n defaultWidthX = font.tables.cff.topDict._defaultWidthX;\n nominalWidthX = font.tables.cff.topDict._nominalWidthX;\n }\n let width = defaultWidthX;\n\n function newContour(x, y) {\n if (open) {\n p.closePath();\n }\n\n p.moveTo(x, y);\n open = true;\n }\n\n function parseStems() {\n let hasWidthArg;\n\n // The number of stem operators on the stack is always even.\n // If the value is uneven, that means a width is specified.\n hasWidthArg = stack.length % 2 !== 0;\n if (hasWidthArg && !haveWidth) {\n width = stack.shift() + nominalWidthX;\n }\n\n nStems += stack.length >> 1;\n stack.length = 0;\n haveWidth = true;\n }\n\n function parse(code) {\n let b1;\n let b2;\n let b3;\n let b4;\n let codeIndex;\n let subrCode;\n let jpx;\n let jpy;\n let c3x;\n let c3y;\n let c4x;\n let c4y;\n\n let i = 0;\n while (i < code.length) {\n let v = code[i];\n i += 1;\n switch (v) {\n case 1: // hstem\n parseStems();\n break;\n case 3: // vstem\n parseStems();\n break;\n case 4: // vmoveto\n if (stack.length > 1 && !haveWidth) {\n width = stack.shift() + nominalWidthX;\n haveWidth = true;\n }\n\n y += stack.pop();\n newContour(x, y);\n break;\n case 5: // rlineto\n while (stack.length > 0) {\n x += stack.shift();\n y += stack.shift();\n p.lineTo(x, y);\n }\n\n break;\n case 6: // hlineto\n while (stack.length > 0) {\n x += stack.shift();\n p.lineTo(x, y);\n if (stack.length === 0) {\n break;\n }\n\n y += stack.shift();\n p.lineTo(x, y);\n }\n\n break;\n case 7: // vlineto\n while (stack.length > 0) {\n y += stack.shift();\n p.lineTo(x, y);\n if (stack.length === 0) {\n break;\n }\n\n x += stack.shift();\n p.lineTo(x, y);\n }\n\n break;\n case 8: // rrcurveto\n while (stack.length > 0) {\n c1x = x + stack.shift();\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y + stack.shift();\n p.curveTo(c1x, c1y, c2x, c2y, x, y);\n }\n\n break;\n case 10: // callsubr\n codeIndex = stack.pop() + subrsBias;\n subrCode = subrs[codeIndex];\n if (subrCode) {\n parse(subrCode);\n }\n\n break;\n case 11: // return\n return;\n case 12: // flex operators\n v = code[i];\n i += 1;\n switch (v) {\n case 35: // flex\n // |- dx1 dy1 dx2 dy2 dx3 dy3 dx4 dy4 dx5 dy5 dx6 dy6 fd flex (12 35) |-\n c1x = x + stack.shift(); // dx1\n c1y = y + stack.shift(); // dy1\n c2x = c1x + stack.shift(); // dx2\n c2y = c1y + stack.shift(); // dy2\n jpx = c2x + stack.shift(); // dx3\n jpy = c2y + stack.shift(); // dy3\n c3x = jpx + stack.shift(); // dx4\n c3y = jpy + stack.shift(); // dy4\n c4x = c3x + stack.shift(); // dx5\n c4y = c3y + stack.shift(); // dy5\n x = c4x + stack.shift(); // dx6\n y = c4y + stack.shift(); // dy6\n stack.shift(); // flex depth\n p.curveTo(c1x, c1y, c2x, c2y, jpx, jpy);\n p.curveTo(c3x, c3y, c4x, c4y, x, y);\n break;\n case 34: // hflex\n // |- dx1 dx2 dy2 dx3 dx4 dx5 dx6 hflex (12 34) |-\n c1x = x + stack.shift(); // dx1\n c1y = y; // dy1\n c2x = c1x + stack.shift(); // dx2\n c2y = c1y + stack.shift(); // dy2\n jpx = c2x + stack.shift(); // dx3\n jpy = c2y; // dy3\n c3x = jpx + stack.shift(); // dx4\n c3y = c2y; // dy4\n c4x = c3x + stack.shift(); // dx5\n c4y = y; // dy5\n x = c4x + stack.shift(); // dx6\n p.curveTo(c1x, c1y, c2x, c2y, jpx, jpy);\n p.curveTo(c3x, c3y, c4x, c4y, x, y);\n break;\n case 36: // hflex1\n // |- dx1 dy1 dx2 dy2 dx3 dx4 dx5 dy5 dx6 hflex1 (12 36) |-\n c1x = x + stack.shift(); // dx1\n c1y = y + stack.shift(); // dy1\n c2x = c1x + stack.shift(); // dx2\n c2y = c1y + stack.shift(); // dy2\n jpx = c2x + stack.shift(); // dx3\n jpy = c2y; // dy3\n c3x = jpx + stack.shift(); // dx4\n c3y = c2y; // dy4\n c4x = c3x + stack.shift(); // dx5\n c4y = c3y + stack.shift(); // dy5\n x = c4x + stack.shift(); // dx6\n p.curveTo(c1x, c1y, c2x, c2y, jpx, jpy);\n p.curveTo(c3x, c3y, c4x, c4y, x, y);\n break;\n case 37: // flex1\n // |- dx1 dy1 dx2 dy2 dx3 dy3 dx4 dy4 dx5 dy5 d6 flex1 (12 37) |-\n c1x = x + stack.shift(); // dx1\n c1y = y + stack.shift(); // dy1\n c2x = c1x + stack.shift(); // dx2\n c2y = c1y + stack.shift(); // dy2\n jpx = c2x + stack.shift(); // dx3\n jpy = c2y + stack.shift(); // dy3\n c3x = jpx + stack.shift(); // dx4\n c3y = jpy + stack.shift(); // dy4\n c4x = c3x + stack.shift(); // dx5\n c4y = c3y + stack.shift(); // dy5\n if (Math.abs(c4x - x) > Math.abs(c4y - y)) {\n x = c4x + stack.shift();\n } else {\n y = c4y + stack.shift();\n }\n\n p.curveTo(c1x, c1y, c2x, c2y, jpx, jpy);\n p.curveTo(c3x, c3y, c4x, c4y, x, y);\n break;\n default:\n console.log(\n 'Glyph ' +\n glyph.index +\n ': unknown operator ' +\n 1200 +\n v\n );\n stack.length = 0;\n }\n break;\n case 14: // endchar\n if (stack.length > 0 && !haveWidth) {\n width = stack.shift() + nominalWidthX;\n haveWidth = true;\n }\n\n if (open) {\n p.closePath();\n open = false;\n }\n\n break;\n case 18: // hstemhm\n parseStems();\n break;\n case 19: // hintmask\n case 20: // cntrmask\n parseStems();\n i += (nStems + 7) >> 3;\n break;\n case 21: // rmoveto\n if (stack.length > 2 && !haveWidth) {\n width = stack.shift() + nominalWidthX;\n haveWidth = true;\n }\n\n y += stack.pop();\n x += stack.pop();\n newContour(x, y);\n break;\n case 22: // hmoveto\n if (stack.length > 1 && !haveWidth) {\n width = stack.shift() + nominalWidthX;\n haveWidth = true;\n }\n\n x += stack.pop();\n newContour(x, y);\n break;\n case 23: // vstemhm\n parseStems();\n break;\n case 24: // rcurveline\n while (stack.length > 2) {\n c1x = x + stack.shift();\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y + stack.shift();\n p.curveTo(c1x, c1y, c2x, c2y, x, y);\n }\n\n x += stack.shift();\n y += stack.shift();\n p.lineTo(x, y);\n break;\n case 25: // rlinecurve\n while (stack.length > 6) {\n x += stack.shift();\n y += stack.shift();\n p.lineTo(x, y);\n }\n\n c1x = x + stack.shift();\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y + stack.shift();\n p.curveTo(c1x, c1y, c2x, c2y, x, y);\n break;\n case 26: // vvcurveto\n if (stack.length % 2) {\n x += stack.shift();\n }\n\n while (stack.length > 0) {\n c1x = x;\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x;\n y = c2y + stack.shift();\n p.curveTo(c1x, c1y, c2x, c2y, x, y);\n }\n\n break;\n case 27: // hhcurveto\n if (stack.length % 2) {\n y += stack.shift();\n }\n\n while (stack.length > 0) {\n c1x = x + stack.shift();\n c1y = y;\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y;\n p.curveTo(c1x, c1y, c2x, c2y, x, y);\n }\n\n break;\n case 28: // shortint\n b1 = code[i];\n b2 = code[i + 1];\n stack.push(((b1 << 24) | (b2 << 16)) >> 16);\n i += 2;\n break;\n case 29: // callgsubr\n codeIndex = stack.pop() + font.gsubrsBias;\n subrCode = font.gsubrs[codeIndex];\n if (subrCode) {\n parse(subrCode);\n }\n\n break;\n case 30: // vhcurveto\n while (stack.length > 0) {\n c1x = x;\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y + (stack.length === 1 ? stack.shift() : 0);\n p.curveTo(c1x, c1y, c2x, c2y, x, y);\n if (stack.length === 0) {\n break;\n }\n\n c1x = x + stack.shift();\n c1y = y;\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n y = c2y + stack.shift();\n x = c2x + (stack.length === 1 ? stack.shift() : 0);\n p.curveTo(c1x, c1y, c2x, c2y, x, y);\n }\n\n break;\n case 31: // hvcurveto\n while (stack.length > 0) {\n c1x = x + stack.shift();\n c1y = y;\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n y = c2y + stack.shift();\n x = c2x + (stack.length === 1 ? stack.shift() : 0);\n p.curveTo(c1x, c1y, c2x, c2y, x, y);\n if (stack.length === 0) {\n break;\n }\n\n c1x = x;\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y + (stack.length === 1 ? stack.shift() : 0);\n p.curveTo(c1x, c1y, c2x, c2y, x, y);\n }\n\n break;\n default:\n if (v < 32) {\n console.log(\n 'Glyph ' + glyph.index + ': unknown operator ' + v\n );\n } else if (v < 247) {\n stack.push(v - 139);\n } else if (v < 251) {\n b1 = code[i];\n i += 1;\n stack.push((v - 247) * 256 + b1 + 108);\n } else if (v < 255) {\n b1 = code[i];\n i += 1;\n stack.push(-(v - 251) * 256 - b1 - 108);\n } else {\n b1 = code[i];\n b2 = code[i + 1];\n b3 = code[i + 2];\n b4 = code[i + 3];\n i += 4;\n stack.push(\n ((b1 << 24) | (b2 << 16) | (b3 << 8) | b4) / 65536\n );\n }\n }\n }\n }\n\n parse(code);\n\n glyph.advanceWidth = width;\n return p;\n}\n\nfunction parseCFFFDSelect(data, start, nGlyphs, fdArrayCount) {\n const fdSelect = [];\n let fdIndex;\n const parser = new parse.Parser(data, start);\n const format = parser.parseCard8();\n if (format === 0) {\n // Simple list of nGlyphs elements\n for (let iGid = 0; iGid < nGlyphs; iGid++) {\n fdIndex = parser.parseCard8();\n if (fdIndex >= fdArrayCount) {\n throw new Error(\n 'CFF table CID Font FDSelect has bad FD index value ' +\n fdIndex +\n ' (FD count ' +\n fdArrayCount +\n ')'\n );\n }\n fdSelect.push(fdIndex);\n }\n } else if (format === 3) {\n // Ranges\n const nRanges = parser.parseCard16();\n let first = parser.parseCard16();\n if (first !== 0) {\n throw new Error(\n 'CFF Table CID Font FDSelect format 3 range has bad initial GID ' +\n first\n );\n }\n let next;\n for (let iRange = 0; iRange < nRanges; iRange++) {\n fdIndex = parser.parseCard8();\n next = parser.parseCard16();\n if (fdIndex >= fdArrayCount) {\n throw new Error(\n 'CFF table CID Font FDSelect has bad FD index value ' +\n fdIndex +\n ' (FD count ' +\n fdArrayCount +\n ')'\n );\n }\n if (next > nGlyphs) {\n throw new Error(\n 'CFF Table CID Font FDSelect format 3 range has bad GID ' +\n next\n );\n }\n for (; first < next; first++) {\n fdSelect.push(fdIndex);\n }\n first = next;\n }\n if (next !== nGlyphs) {\n throw new Error(\n 'CFF Table CID Font FDSelect format 3 range has bad final GID ' +\n next\n );\n }\n } else {\n throw new Error(\n 'CFF Table CID Font FDSelect table has unsupported format ' + format\n );\n }\n return fdSelect;\n}\n\n// Parse the `CFF` table, which contains the glyph outlines in PostScript format.\nfunction parseCFFTable(data, start, font, opt) {\n font.tables.cff = {};\n const header = parseCFFHeader(data, start);\n const nameIndex = parseCFFIndex(\n data,\n header.endOffset,\n parse.bytesToString\n );\n const topDictIndex = parseCFFIndex(data, nameIndex.endOffset);\n const stringIndex = parseCFFIndex(\n data,\n topDictIndex.endOffset,\n parse.bytesToString\n );\n const globalSubrIndex = parseCFFIndex(data, stringIndex.endOffset);\n font.gsubrs = globalSubrIndex.objects;\n font.gsubrsBias = calcCFFSubroutineBias(font.gsubrs);\n\n const topDictArray = gatherCFFTopDicts(\n data,\n start,\n topDictIndex.objects,\n stringIndex.objects\n );\n if (topDictArray.length !== 1) {\n throw new Error(\n \"CFF table has too many fonts in 'FontSet' - count of fonts NameIndex.length = \" +\n topDictArray.length\n );\n }\n\n const topDict = topDictArray[0];\n font.tables.cff.topDict = topDict;\n\n if (topDict._privateDict) {\n font.defaultWidthX = topDict._privateDict.defaultWidthX;\n font.nominalWidthX = topDict._privateDict.nominalWidthX;\n }\n\n if (topDict.ros[0] !== undefined && topDict.ros[1] !== undefined) {\n font.isCIDFont = true;\n }\n\n if (font.isCIDFont) {\n let fdArrayOffset = topDict.fdArray;\n let fdSelectOffset = topDict.fdSelect;\n if (fdArrayOffset === 0 || fdSelectOffset === 0) {\n throw new Error(\n 'Font is marked as a CID font, but FDArray and/or FDSelect information is missing'\n );\n }\n fdArrayOffset += start;\n const fdArrayIndex = parseCFFIndex(data, fdArrayOffset);\n const fdArray = gatherCFFTopDicts(\n data,\n start,\n fdArrayIndex.objects,\n stringIndex.objects\n );\n topDict._fdArray = fdArray;\n fdSelectOffset += start;\n topDict._fdSelect = parseCFFFDSelect(\n data,\n fdSelectOffset,\n font.numGlyphs,\n fdArray.length\n );\n }\n\n const privateDictOffset = start + topDict.private[1];\n const privateDict = parseCFFPrivateDict(\n data,\n privateDictOffset,\n topDict.private[0],\n stringIndex.objects\n );\n font.defaultWidthX = privateDict.defaultWidthX;\n font.nominalWidthX = privateDict.nominalWidthX;\n\n if (privateDict.subrs !== 0) {\n const subrOffset = privateDictOffset + privateDict.subrs;\n const subrIndex = parseCFFIndex(data, subrOffset);\n font.subrs = subrIndex.objects;\n font.subrsBias = calcCFFSubroutineBias(font.subrs);\n } else {\n font.subrs = [];\n font.subrsBias = 0;\n }\n\n // Offsets in the top dict are relative to the beginning of the CFF data, so add the CFF start offset.\n let charStringsIndex;\n if (opt.lowMemory) {\n charStringsIndex = parseCFFIndexLowMemory(\n data,\n start + topDict.charStrings\n );\n font.nGlyphs = charStringsIndex.offsets.length;\n } else {\n charStringsIndex = parseCFFIndex(data, start + topDict.charStrings);\n font.nGlyphs = charStringsIndex.objects.length;\n }\n\n const charset = parseCFFCharset(\n data,\n start + topDict.charset,\n font.nGlyphs,\n stringIndex.objects\n );\n if (topDict.encoding === 0) {\n // Standard encoding\n font.cffEncoding = new CffEncoding(cffStandardEncoding, charset);\n } else if (topDict.encoding === 1) {\n // Expert encoding\n font.cffEncoding = new CffEncoding(cffExpertEncoding, charset);\n } else {\n font.cffEncoding = parseCFFEncoding(\n data,\n start + topDict.encoding,\n charset\n );\n }\n\n // Prefer the CMAP encoding to the CFF encoding.\n font.encoding = font.encoding || font.cffEncoding;\n\n font.glyphs = new glyphset.GlyphSet(font);\n if (opt.lowMemory) {\n font._push = function (i) {\n const charString = getCffIndexObject(\n i,\n charStringsIndex.offsets,\n data,\n start + topDict.charStrings\n );\n font.glyphs.push(\n i,\n glyphset.cffGlyphLoader(font, i, parseCFFCharstring, charString)\n );\n };\n } else {\n for (let i = 0; i < font.nGlyphs; i += 1) {\n const charString = charStringsIndex.objects[i];\n font.glyphs.push(\n i,\n glyphset.cffGlyphLoader(font, i, parseCFFCharstring, charString)\n );\n }\n }\n}\n\nexport default { parse: parseCFFTable };\n","// The `fvar` table stores font variation axes and instances.\n// https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6fvar.html\n\nimport check from '../check';\nimport parse from '../parse';\n\nfunction parseFvarAxis(data, start, names) {\n const axis = {};\n const p = new parse.Parser(data, start);\n axis.tag = p.parseTag();\n axis.minValue = p.parseFixed();\n axis.defaultValue = p.parseFixed();\n axis.maxValue = p.parseFixed();\n p.skip('uShort', 1); // reserved for flags; no values defined\n axis.name = names[p.parseUShort()] || {};\n return axis;\n}\n\nfunction parseFvarInstance(data, start, axes, names) {\n const inst = {};\n const p = new parse.Parser(data, start);\n inst.name = names[p.parseUShort()] || {};\n p.skip('uShort', 1); // reserved for flags; no values defined\n\n inst.coordinates = {};\n for (let i = 0; i < axes.length; ++i) {\n inst.coordinates[axes[i].tag] = p.parseFixed();\n }\n\n return inst;\n}\n\nfunction parseFvarTable(data, start, names) {\n const p = new parse.Parser(data, start);\n const tableVersion = p.parseULong();\n check.argument(\n tableVersion === 0x00010000,\n 'Unsupported fvar table version.'\n );\n const offsetToData = p.parseOffset16();\n // Skip countSizePairs.\n p.skip('uShort', 1);\n const axisCount = p.parseUShort();\n const axisSize = p.parseUShort();\n const instanceCount = p.parseUShort();\n const instanceSize = p.parseUShort();\n\n const axes = [];\n for (let i = 0; i < axisCount; i++) {\n axes.push(\n parseFvarAxis(data, start + offsetToData + i * axisSize, names)\n );\n }\n\n const instances = [];\n const instanceStart = start + offsetToData + axisCount * axisSize;\n for (let j = 0; j < instanceCount; j++) {\n instances.push(\n parseFvarInstance(\n data,\n instanceStart + j * instanceSize,\n axes,\n names\n )\n );\n }\n\n return { axes: axes, instances: instances };\n}\n\nexport default { parse: parseFvarTable };\n","// The `GDEF` table contains various glyph properties\n// https://docs.microsoft.com/en-us/typography/opentype/spec/gdef\n\nimport check from '../check';\nimport { Parser } from '../parse';\n\nvar attachList = function() {\n return {\n coverage: this.parsePointer(Parser.coverage),\n attachPoints: this.parseList(Parser.pointer(Parser.uShortList))\n };\n};\n\nvar caretValue = function() {\n var format = this.parseUShort();\n check.argument(format === 1 || format === 2 || format === 3,\n 'Unsupported CaretValue table version.');\n if (format === 1) {\n return { coordinate: this.parseShort() };\n } else if (format === 2) {\n return { pointindex: this.parseShort() };\n } else if (format === 3) {\n // Device / Variation Index tables unsupported\n return { coordinate: this.parseShort() };\n }\n};\n\nvar ligGlyph = function() {\n return this.parseList(Parser.pointer(caretValue));\n};\n\nvar ligCaretList = function() {\n return {\n coverage: this.parsePointer(Parser.coverage),\n ligGlyphs: this.parseList(Parser.pointer(ligGlyph))\n };\n};\n\nvar markGlyphSets = function() {\n this.parseUShort(); // Version\n return this.parseList(Parser.pointer(Parser.coverage));\n};\n\nfunction parseGDEFTable(data, start) {\n start = start || 0;\n const p = new Parser(data, start);\n const tableVersion = p.parseVersion(1);\n check.argument(tableVersion === 1 || tableVersion === 1.2 || tableVersion === 1.3,\n 'Unsupported GDEF table version.');\n var gdef = {\n version: tableVersion,\n classDef: p.parsePointer(Parser.classDef),\n attachList: p.parsePointer(attachList),\n ligCaretList: p.parsePointer(ligCaretList),\n markAttachClassDef: p.parsePointer(Parser.classDef)\n };\n if (tableVersion >= 1.2) {\n gdef.markGlyphSets = p.parsePointer(markGlyphSets);\n }\n return gdef;\n}\nexport default { parse: parseGDEFTable };\n","// The `GPOS` table contains kerning pairs, among other things.\n// https://docs.microsoft.com/en-us/typography/opentype/spec/gpos\n\nimport check from '../check';\nimport { Parser } from '../parse';\n\nconst subtableParsers = new Array(10); // subtableParsers[0] is unused\n\n// https://docs.microsoft.com/en-us/typography/opentype/spec/gpos#lookup-type-1-single-adjustment-positioning-subtable\n// this = Parser instance\nsubtableParsers[1] = function parseLookup1() {\n const start = this.offset + this.relativeOffset;\n const posformat = this.parseUShort();\n if (posformat === 1) {\n return {\n posFormat: 1,\n coverage: this.parsePointer(Parser.coverage),\n value: this.parseValueRecord(),\n };\n } else if (posformat === 2) {\n return {\n posFormat: 2,\n coverage: this.parsePointer(Parser.coverage),\n values: this.parseValueRecordList(),\n };\n }\n check.assert(\n false,\n '0x' +\n start.toString(16) +\n ': GPOS lookup type 1 format must be 1 or 2.'\n );\n};\n\n// https://docs.microsoft.com/en-us/typography/opentype/spec/gpos#lookup-type-2-pair-adjustment-positioning-subtable\nsubtableParsers[2] = function parseLookup2() {\n const start = this.offset + this.relativeOffset;\n const posFormat = this.parseUShort();\n check.assert(\n posFormat === 1 || posFormat === 2,\n '0x' +\n start.toString(16) +\n ': GPOS lookup type 2 format must be 1 or 2.'\n );\n const coverage = this.parsePointer(Parser.coverage);\n const valueFormat1 = this.parseUShort();\n const valueFormat2 = this.parseUShort();\n if (posFormat === 1) {\n // Adjustments for Glyph Pairs\n return {\n posFormat: posFormat,\n coverage: coverage,\n valueFormat1: valueFormat1,\n valueFormat2: valueFormat2,\n pairSets: this.parseList(\n Parser.pointer(\n Parser.list(function () {\n return {\n // pairValueRecord\n secondGlyph: this.parseUShort(),\n value1: this.parseValueRecord(valueFormat1),\n value2: this.parseValueRecord(valueFormat2),\n };\n })\n )\n ),\n };\n } else if (posFormat === 2) {\n const classDef1 = this.parsePointer(Parser.classDef);\n const classDef2 = this.parsePointer(Parser.classDef);\n const class1Count = this.parseUShort();\n const class2Count = this.parseUShort();\n return {\n // Class Pair Adjustment\n posFormat: posFormat,\n coverage: coverage,\n valueFormat1: valueFormat1,\n valueFormat2: valueFormat2,\n classDef1: classDef1,\n classDef2: classDef2,\n class1Count: class1Count,\n class2Count: class2Count,\n classRecords: this.parseList(\n class1Count,\n Parser.list(class2Count, function () {\n return {\n value1: this.parseValueRecord(valueFormat1),\n value2: this.parseValueRecord(valueFormat2),\n };\n })\n ),\n };\n }\n};\n\nsubtableParsers[3] = function parseLookup3() {\n return { error: 'GPOS Lookup 3 not supported' };\n};\nsubtableParsers[4] = function parseLookup4() {\n return { error: 'GPOS Lookup 4 not supported' };\n};\nsubtableParsers[5] = function parseLookup5() {\n return { error: 'GPOS Lookup 5 not supported' };\n};\nsubtableParsers[6] = function parseLookup6() {\n return { error: 'GPOS Lookup 6 not supported' };\n};\nsubtableParsers[7] = function parseLookup7() {\n return { error: 'GPOS Lookup 7 not supported' };\n};\nsubtableParsers[8] = function parseLookup8() {\n return { error: 'GPOS Lookup 8 not supported' };\n};\nsubtableParsers[9] = function parseLookup9() {\n return { error: 'GPOS Lookup 9 not supported' };\n};\n\n// https://docs.microsoft.com/en-us/typography/opentype/spec/gpos\nfunction parseGposTable(data, start) {\n start = start || 0;\n const p = new Parser(data, start);\n const tableVersion = p.parseVersion(1);\n check.argument(\n tableVersion === 1 || tableVersion === 1.1,\n 'Unsupported GPOS table version ' + tableVersion\n );\n\n if (tableVersion === 1) {\n return {\n version: tableVersion,\n scripts: p.parseScriptList(),\n features: p.parseFeatureList(),\n lookups: p.parseLookupList(subtableParsers),\n };\n } else {\n return {\n version: tableVersion,\n scripts: p.parseScriptList(),\n features: p.parseFeatureList(),\n lookups: p.parseLookupList(subtableParsers),\n variations: p.parseFeatureVariationsList(),\n };\n }\n}\n\nexport default { parse: parseGposTable };\n","// The `GSUB` table contains ligatures, among other things.\n// https://www.microsoft.com/typography/OTSPEC/gsub.htm\n\nimport check from '../check';\nimport { Parser } from '../parse';\n\nconst subtableParsers = new Array(9); // subtableParsers[0] is unused\n\n// https://www.microsoft.com/typography/OTSPEC/GSUB.htm#SS\nsubtableParsers[1] = function parseLookup1() {\n const start = this.offset + this.relativeOffset;\n const substFormat = this.parseUShort();\n if (substFormat === 1) {\n return {\n substFormat: 1,\n coverage: this.parsePointer(Parser.coverage),\n deltaGlyphId: this.parseUShort(),\n };\n } else if (substFormat === 2) {\n return {\n substFormat: 2,\n coverage: this.parsePointer(Parser.coverage),\n substitute: this.parseOffset16List(),\n };\n }\n check.assert(\n false,\n '0x' + start.toString(16) + ': lookup type 1 format must be 1 or 2.'\n );\n};\n\n// https://www.microsoft.com/typography/OTSPEC/GSUB.htm#MS\nsubtableParsers[2] = function parseLookup2() {\n const substFormat = this.parseUShort();\n check.argument(\n substFormat === 1,\n 'GSUB Multiple Substitution Subtable identifier-format must be 1'\n );\n return {\n substFormat: substFormat,\n coverage: this.parsePointer(Parser.coverage),\n sequences: this.parseListOfLists(),\n };\n};\n\n// https://www.microsoft.com/typography/OTSPEC/GSUB.htm#AS\nsubtableParsers[3] = function parseLookup3() {\n const substFormat = this.parseUShort();\n check.argument(\n substFormat === 1,\n 'GSUB Alternate Substitution Subtable identifier-format must be 1'\n );\n return {\n substFormat: substFormat,\n coverage: this.parsePointer(Parser.coverage),\n alternateSets: this.parseListOfLists(),\n };\n};\n\n// https://www.microsoft.com/typography/OTSPEC/GSUB.htm#LS\nsubtableParsers[4] = function parseLookup4() {\n const substFormat = this.parseUShort();\n check.argument(\n substFormat === 1,\n 'GSUB ligature table identifier-format must be 1'\n );\n return {\n substFormat: substFormat,\n coverage: this.parsePointer(Parser.coverage),\n ligatureSets: this.parseListOfLists(function () {\n return {\n ligGlyph: this.parseUShort(),\n components: this.parseUShortList(this.parseUShort() - 1),\n };\n }),\n };\n};\n\nconst lookupRecordDesc = {\n sequenceIndex: Parser.uShort,\n lookupListIndex: Parser.uShort,\n};\n\n// https://www.microsoft.com/typography/OTSPEC/GSUB.htm#CSF\nsubtableParsers[5] = function parseLookup5() {\n const start = this.offset + this.relativeOffset;\n const substFormat = this.parseUShort();\n\n if (substFormat === 1) {\n return {\n substFormat: substFormat,\n coverage: this.parsePointer(Parser.coverage),\n ruleSets: this.parseListOfLists(function () {\n const glyphCount = this.parseUShort();\n const substCount = this.parseUShort();\n return {\n input: this.parseUShortList(glyphCount - 1),\n lookupRecords: this.parseRecordList(\n substCount,\n lookupRecordDesc\n ),\n };\n }),\n };\n } else if (substFormat === 2) {\n return {\n substFormat: substFormat,\n coverage: this.parsePointer(Parser.coverage),\n classDef: this.parsePointer(Parser.classDef),\n classSets: this.parseListOfLists(function () {\n const glyphCount = this.parseUShort();\n const substCount = this.parseUShort();\n return {\n classes: this.parseUShortList(glyphCount - 1),\n lookupRecords: this.parseRecordList(\n substCount,\n lookupRecordDesc\n ),\n };\n }),\n };\n } else if (substFormat === 3) {\n const glyphCount = this.parseUShort();\n const substCount = this.parseUShort();\n return {\n substFormat: substFormat,\n coverages: this.parseList(\n glyphCount,\n Parser.pointer(Parser.coverage)\n ),\n lookupRecords: this.parseRecordList(substCount, lookupRecordDesc),\n };\n }\n check.assert(\n false,\n '0x' + start.toString(16) + ': lookup type 5 format must be 1, 2 or 3.'\n );\n};\n\n// https://www.microsoft.com/typography/OTSPEC/GSUB.htm#CC\nsubtableParsers[6] = function parseLookup6() {\n const start = this.offset + this.relativeOffset;\n const substFormat = this.parseUShort();\n if (substFormat === 1) {\n return {\n substFormat: 1,\n coverage: this.parsePointer(Parser.coverage),\n chainRuleSets: this.parseListOfLists(function () {\n return {\n backtrack: this.parseUShortList(),\n input: this.parseUShortList(this.parseShort() - 1),\n lookahead: this.parseUShortList(),\n lookupRecords: this.parseRecordList(lookupRecordDesc),\n };\n }),\n };\n } else if (substFormat === 2) {\n return {\n substFormat: 2,\n coverage: this.parsePointer(Parser.coverage),\n backtrackClassDef: this.parsePointer(Parser.classDef),\n inputClassDef: this.parsePointer(Parser.classDef),\n lookaheadClassDef: this.parsePointer(Parser.classDef),\n chainClassSet: this.parseListOfLists(function () {\n return {\n backtrack: this.parseUShortList(),\n input: this.parseUShortList(this.parseShort() - 1),\n lookahead: this.parseUShortList(),\n lookupRecords: this.parseRecordList(lookupRecordDesc),\n };\n }),\n };\n } else if (substFormat === 3) {\n return {\n substFormat: 3,\n backtrackCoverage: this.parseList(Parser.pointer(Parser.coverage)),\n inputCoverage: this.parseList(Parser.pointer(Parser.coverage)),\n lookaheadCoverage: this.parseList(Parser.pointer(Parser.coverage)),\n lookupRecords: this.parseRecordList(lookupRecordDesc),\n };\n }\n check.assert(\n false,\n '0x' + start.toString(16) + ': lookup type 6 format must be 1, 2 or 3.'\n );\n};\n\n// https://www.microsoft.com/typography/OTSPEC/GSUB.htm#ES\nsubtableParsers[7] = function parseLookup7() {\n // Extension Substitution subtable\n const substFormat = this.parseUShort();\n check.argument(\n substFormat === 1,\n 'GSUB Extension Substitution subtable identifier-format must be 1'\n );\n const extensionLookupType = this.parseUShort();\n const extensionParser = new Parser(\n this.data,\n this.offset + this.parseULong()\n );\n return {\n substFormat: 1,\n lookupType: extensionLookupType,\n extension: subtableParsers[extensionLookupType].call(extensionParser),\n };\n};\n\n// https://www.microsoft.com/typography/OTSPEC/GSUB.htm#RCCS\nsubtableParsers[8] = function parseLookup8() {\n const substFormat = this.parseUShort();\n check.argument(\n substFormat === 1,\n 'GSUB Reverse Chaining Contextual Single Substitution Subtable identifier-format must be 1'\n );\n return {\n substFormat: substFormat,\n coverage: this.parsePointer(Parser.coverage),\n backtrackCoverage: this.parseList(Parser.pointer(Parser.coverage)),\n lookaheadCoverage: this.parseList(Parser.pointer(Parser.coverage)),\n substitutes: this.parseUShortList(),\n };\n};\n\n// https://www.microsoft.com/typography/OTSPEC/gsub.htm\nfunction parseGsubTable(data, start) {\n start = start || 0;\n const p = new Parser(data, start);\n const tableVersion = p.parseVersion(1);\n check.argument(\n tableVersion === 1 || tableVersion === 1.1,\n 'Unsupported GSUB table version.'\n );\n if (tableVersion === 1) {\n return {\n version: tableVersion,\n scripts: p.parseScriptList(),\n features: p.parseFeatureList(),\n lookups: p.parseLookupList(subtableParsers),\n };\n } else {\n return {\n version: tableVersion,\n scripts: p.parseScriptList(),\n features: p.parseFeatureList(),\n lookups: p.parseLookupList(subtableParsers),\n variations: p.parseFeatureVariationsList(),\n };\n }\n}\n\nexport default { parse: parseGsubTable };\n","// The `head` table contains global information about the font.\n// https://www.microsoft.com/typography/OTSPEC/head.htm\n\nimport check from '../check';\nimport parse from '../parse';\n\n// Parse the header `head` table\nfunction parseHeadTable(data, start) {\n const head = {};\n const p = new parse.Parser(data, start);\n head.version = p.parseVersion();\n head.fontRevision = Math.round(p.parseFixed() * 1000) / 1000;\n head.checkSumAdjustment = p.parseULong();\n head.magicNumber = p.parseULong();\n check.argument(\n head.magicNumber === 0x5f0f3cf5,\n 'Font header has wrong magic number.'\n );\n head.flags = p.parseUShort();\n head.unitsPerEm = p.parseUShort();\n head.created = p.parseLongDateTime();\n head.modified = p.parseLongDateTime();\n head.xMin = p.parseShort();\n head.yMin = p.parseShort();\n head.xMax = p.parseShort();\n head.yMax = p.parseShort();\n head.macStyle = p.parseUShort();\n head.lowestRecPPEM = p.parseUShort();\n head.fontDirectionHint = p.parseShort();\n head.indexToLocFormat = p.parseShort();\n head.glyphDataFormat = p.parseShort();\n return head;\n}\n\nexport default { parse: parseHeadTable };\n","// The `hhea` table contains information for horizontal layout.\n// https://www.microsoft.com/typography/OTSPEC/hhea.htm\n\nimport parse from '../parse';\n\n// Parse the horizontal header `hhea` table\nfunction parseHheaTable(data, start) {\n const hhea = {};\n const p = new parse.Parser(data, start);\n hhea.version = p.parseVersion();\n hhea.ascender = p.parseShort();\n hhea.descender = p.parseShort();\n hhea.lineGap = p.parseShort();\n hhea.advanceWidthMax = p.parseUShort();\n hhea.minLeftSideBearing = p.parseShort();\n hhea.minRightSideBearing = p.parseShort();\n hhea.xMaxExtent = p.parseShort();\n hhea.caretSlopeRise = p.parseShort();\n hhea.caretSlopeRun = p.parseShort();\n hhea.caretOffset = p.parseShort();\n p.relativeOffset += 8;\n hhea.metricDataFormat = p.parseShort();\n hhea.numberOfHMetrics = p.parseUShort();\n return hhea;\n}\n\nexport default { parse: parseHheaTable };\n","// The `hmtx` table contains the horizontal metrics for all glyphs.\n// https://www.microsoft.com/typography/OTSPEC/hmtx.htm\n\nimport parse from '../parse';\n\nfunction parseHmtxTableAll(data, start, numMetrics, numGlyphs, glyphs) {\n let advanceWidth;\n let leftSideBearing;\n const p = new parse.Parser(data, start);\n for (let i = 0; i < numGlyphs; i += 1) {\n // If the font is monospaced, only one entry is needed. This last entry applies to all subsequent glyphs.\n if (i < numMetrics) {\n advanceWidth = p.parseUShort();\n leftSideBearing = p.parseShort();\n }\n\n const glyph = glyphs.get(i);\n glyph.advanceWidth = advanceWidth;\n glyph.leftSideBearing = leftSideBearing;\n }\n}\n\nfunction parseHmtxTableOnLowMemory(font, data, start, numMetrics, numGlyphs) {\n font._hmtxTableData = {};\n\n let advanceWidth;\n let leftSideBearing;\n const p = new parse.Parser(data, start);\n for (let i = 0; i < numGlyphs; i += 1) {\n // If the font is monospaced, only one entry is needed. This last entry applies to all subsequent glyphs.\n if (i < numMetrics) {\n advanceWidth = p.parseUShort();\n leftSideBearing = p.parseShort();\n }\n\n font._hmtxTableData[i] = {\n advanceWidth: advanceWidth,\n leftSideBearing: leftSideBearing,\n };\n }\n}\n\n// Parse the `hmtx` table, which contains the horizontal metrics for all glyphs.\n// This function augments the glyph array, adding the advanceWidth and leftSideBearing to each glyph.\nfunction parseHmtxTable(font, data, start, numMetrics, numGlyphs, glyphs, opt) {\n if (opt.lowMemory)\n parseHmtxTableOnLowMemory(font, data, start, numMetrics, numGlyphs);\n else parseHmtxTableAll(data, start, numMetrics, numGlyphs, glyphs);\n}\n\nexport default { parse: parseHmtxTable };\n","// The `kern` table contains kerning pairs.\n// Note that some fonts use the GPOS OpenType layout table to specify kerning.\n// https://www.microsoft.com/typography/OTSPEC/kern.htm\n\nimport check from '../check';\nimport parse from '../parse';\n\nfunction parseWindowsKernTable(p) {\n const pairs = {};\n // Skip nTables.\n p.skip('uShort');\n const subtableVersion = p.parseUShort();\n check.argument(subtableVersion === 0, 'Unsupported kern sub-table version.');\n // Skip subtableLength, subtableCoverage\n p.skip('uShort', 2);\n const nPairs = p.parseUShort();\n // Skip searchRange, entrySelector, rangeShift.\n p.skip('uShort', 3);\n for (let i = 0; i < nPairs; i += 1) {\n const leftIndex = p.parseUShort();\n const rightIndex = p.parseUShort();\n const value = p.parseShort();\n pairs[leftIndex + ',' + rightIndex] = value;\n }\n return pairs;\n}\n\nfunction parseMacKernTable(p) {\n const pairs = {};\n // The Mac kern table stores the version as a fixed (32 bits) but we only loaded the first 16 bits.\n // Skip the rest.\n p.skip('uShort');\n const nTables = p.parseULong();\n //check.argument(nTables === 1, 'Only 1 subtable is supported (got ' + nTables + ').');\n if (nTables > 1) {\n console.warn('Only the first kern subtable is supported.');\n }\n p.skip('uLong');\n const coverage = p.parseUShort();\n const subtableVersion = coverage & 0xFF;\n p.skip('uShort');\n if (subtableVersion === 0) {\n const nPairs = p.parseUShort();\n // Skip searchRange, entrySelector, rangeShift.\n p.skip('uShort', 3);\n for (let i = 0; i < nPairs; i += 1) {\n const leftIndex = p.parseUShort();\n const rightIndex = p.parseUShort();\n const value = p.parseShort();\n pairs[leftIndex + ',' + rightIndex] = value;\n }\n }\n return pairs;\n}\n\n// Parse the `kern` table which contains kerning pairs.\nfunction parseKernTable(data, start) {\n const p = new parse.Parser(data, start);\n const tableVersion = p.parseUShort();\n if (tableVersion === 0) {\n return parseWindowsKernTable(p);\n } else if (tableVersion === 1) {\n return parseMacKernTable(p);\n } else {\n throw new Error('Unsupported kern table version (' + tableVersion + ').');\n }\n}\n\nexport default { parse: parseKernTable };\n","// The `ltag` table stores IETF BCP-47 language tags. It allows supporting\n// languages for which TrueType does not assign a numeric code.\n// https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6ltag.html\n// http://www.w3.org/International/articles/language-tags/\n// http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry\n\nimport check from '../check';\nimport parse from '../parse';\n\nfunction parseLtagTable(data, start) {\n const p = new parse.Parser(data, start);\n const tableVersion = p.parseULong();\n check.argument(tableVersion === 1, 'Unsupported ltag table version.');\n // The 'ltag' specification does not define any flags; skip the field.\n p.skip('uLong', 1);\n const numTags = p.parseULong();\n\n const tags = [];\n for (let i = 0; i < numTags; i++) {\n let tag = '';\n const offset = start + p.parseUShort();\n const length = p.parseUShort();\n for (let j = offset; j < offset + length; ++j) {\n tag += String.fromCharCode(data.getInt8(j));\n }\n\n tags.push(tag);\n }\n\n return tags;\n}\n\nexport default { parse: parseLtagTable };\n","// The `loca` table stores the offsets to the locations of the glyphs in the font.\n// https://www.microsoft.com/typography/OTSPEC/loca.htm\n\nimport parse from '../parse';\n\n// Parse the `loca` table. This table stores the offsets to the locations of the glyphs in the font,\n// relative to the beginning of the glyphData table.\n// The number of glyphs stored in the `loca` table is specified in the `maxp` table (under numGlyphs)\n// The loca table has two versions: a short version where offsets are stored as uShorts, and a long\n// version where offsets are stored as uLongs. The `head` table specifies which version to use\n// (under indexToLocFormat).\nfunction parseLocaTable(data, start, numGlyphs, shortVersion) {\n const p = new parse.Parser(data, start);\n const parseFn = shortVersion ? p.parseUShort : p.parseULong;\n // There is an extra entry after the last index element to compute the length of the last glyph.\n // That's why we use numGlyphs + 1.\n const glyphOffsets = [];\n for (let i = 0; i < numGlyphs + 1; i += 1) {\n let glyphOffset = parseFn.call(p);\n if (shortVersion) {\n // The short table version stores the actual offset divided by 2.\n glyphOffset *= 2;\n }\n\n glyphOffsets.push(glyphOffset);\n }\n\n return glyphOffsets;\n}\n\nexport default { parse: parseLocaTable };\n","// The `maxp` table establishes the memory requirements for the font.\n// We need it just to get the number of glyphs in the font.\n// https://www.microsoft.com/typography/OTSPEC/maxp.htm\n\nimport parse from '../parse';\n\n// Parse the maximum profile `maxp` table.\nfunction parseMaxpTable(data, start) {\n const maxp = {};\n const p = new parse.Parser(data, start);\n maxp.version = p.parseVersion();\n maxp.numGlyphs = p.parseUShort();\n if (maxp.version === 1.0) {\n maxp.maxPoints = p.parseUShort();\n maxp.maxContours = p.parseUShort();\n maxp.maxCompositePoints = p.parseUShort();\n maxp.maxCompositeContours = p.parseUShort();\n maxp.maxZones = p.parseUShort();\n maxp.maxTwilightPoints = p.parseUShort();\n maxp.maxStorage = p.parseUShort();\n maxp.maxFunctionDefs = p.parseUShort();\n maxp.maxInstructionDefs = p.parseUShort();\n maxp.maxStackElements = p.parseUShort();\n maxp.maxSizeOfInstructions = p.parseUShort();\n maxp.maxComponentElements = p.parseUShort();\n maxp.maxComponentDepth = p.parseUShort();\n }\n\n return maxp;\n}\n\nexport default { parse: parseMaxpTable };\n","// The `OS/2` table contains metrics required in OpenType fonts.\n// https://www.microsoft.com/typography/OTSPEC/os2.htm\n\nimport parse from '../parse';\n\n// Parse the OS/2 and Windows metrics `OS/2` table\nfunction parseOS2Table(data, start) {\n const os2 = {};\n const p = new parse.Parser(data, start);\n os2.version = p.parseUShort();\n os2.xAvgCharWidth = p.parseShort();\n os2.usWeightClass = p.parseUShort();\n os2.usWidthClass = p.parseUShort();\n os2.fsType = p.parseUShort();\n os2.ySubscriptXSize = p.parseShort();\n os2.ySubscriptYSize = p.parseShort();\n os2.ySubscriptXOffset = p.parseShort();\n os2.ySubscriptYOffset = p.parseShort();\n os2.ySuperscriptXSize = p.parseShort();\n os2.ySuperscriptYSize = p.parseShort();\n os2.ySuperscriptXOffset = p.parseShort();\n os2.ySuperscriptYOffset = p.parseShort();\n os2.yStrikeoutSize = p.parseShort();\n os2.yStrikeoutPosition = p.parseShort();\n os2.sFamilyClass = p.parseShort();\n os2.panose = [];\n for (let i = 0; i < 10; i++) {\n os2.panose[i] = p.parseByte();\n }\n\n os2.ulUnicodeRange1 = p.parseULong();\n os2.ulUnicodeRange2 = p.parseULong();\n os2.ulUnicodeRange3 = p.parseULong();\n os2.ulUnicodeRange4 = p.parseULong();\n os2.achVendID = String.fromCharCode(\n p.parseByte(),\n p.parseByte(),\n p.parseByte(),\n p.parseByte()\n );\n os2.fsSelection = p.parseUShort();\n os2.usFirstCharIndex = p.parseUShort();\n os2.usLastCharIndex = p.parseUShort();\n os2.sTypoAscender = p.parseShort();\n os2.sTypoDescender = p.parseShort();\n os2.sTypoLineGap = p.parseShort();\n os2.usWinAscent = p.parseUShort();\n os2.usWinDescent = p.parseUShort();\n if (os2.version >= 1) {\n os2.ulCodePageRange1 = p.parseULong();\n os2.ulCodePageRange2 = p.parseULong();\n }\n\n if (os2.version >= 2) {\n os2.sxHeight = p.parseShort();\n os2.sCapHeight = p.parseShort();\n os2.usDefaultChar = p.parseUShort();\n os2.usBreakChar = p.parseUShort();\n os2.usMaxContent = p.parseUShort();\n }\n\n return os2;\n}\n\nexport default { parse: parseOS2Table };\n","// The `post` table stores additional PostScript information, such as glyph names.\n// https://www.microsoft.com/typography/OTSPEC/post.htm\n\nimport parse from '../parse';\n\n// Parse the PostScript `post` table\nfunction parsePostTable(data, start) {\n const post = {};\n const p = new parse.Parser(data, start);\n post.version = p.parseVersion();\n post.italicAngle = p.parseFixed();\n post.underlinePosition = p.parseShort();\n post.underlineThickness = p.parseShort();\n post.isFixedPitch = p.parseULong();\n post.minMemType42 = p.parseULong();\n post.maxMemType42 = p.parseULong();\n post.minMemType1 = p.parseULong();\n post.maxMemType1 = p.parseULong();\n post.names = [];\n switch (post.version) {\n case 1:\n break;\n case 2:\n post.numberOfGlyphs = p.parseUShort();\n post.glyphNameIndex = new Array(post.numberOfGlyphs);\n for (let i = 0; i < post.numberOfGlyphs; i++) {\n post.glyphNameIndex[i] = p.parseUShort();\n }\n break;\n case 2.5:\n post.numberOfGlyphs = p.parseUShort();\n post.offset = new Array(post.numberOfGlyphs);\n for (let i = 0; i < post.numberOfGlyphs; i++) {\n post.offset[i] = p.parseChar();\n }\n break;\n }\n return post;\n}\n\nexport default { parse: parsePostTable };\n","// Data types used in the OpenType font file.\n// All OpenType fonts use Motorola-style byte ordering (Big Endian)\n\nimport check from './check';\n\nconst LIMIT16 = 32768; // The limit at which a 16-bit number switches signs == 2^15\nconst LIMIT32 = 2147483648; // The limit at which a 32-bit number switches signs == 2 ^ 31\n\n/**\n * @exports opentype.decode\n * @class\n */\nconst decode = {};\n/**\n * @exports opentype.encode\n * @class\n */\nconst encode = {};\n/**\n * @exports opentype.sizeOf\n * @class\n */\nconst sizeOf = {};\n\n// Return a function that always returns the same value.\nfunction constant(v) {\n return function() {\n return v;\n };\n}\n\n// OpenType data types //////////////////////////////////////////////////////\n\n/**\n * Convert an 8-bit unsigned integer to a list of 1 byte.\n * @param {number}\n * @returns {Array}\n */\nencode.BYTE = function(v) {\n check.argument(v >= 0 && v <= 255, 'Byte value should be between 0 and 255.');\n return [v];\n};\n/**\n * @constant\n * @type {number}\n */\nsizeOf.BYTE = constant(1);\n\n/**\n * Convert a 8-bit signed integer to a list of 1 byte.\n * @param {string}\n * @returns {Array}\n */\nencode.CHAR = function(v) {\n return [v.charCodeAt(0)];\n};\n\n/**\n * @constant\n * @type {number}\n */\nsizeOf.CHAR = constant(1);\n\n/**\n * Convert an ASCII string to a list of bytes.\n * @param {string}\n * @returns {Array}\n */\nencode.CHARARRAY = function(v) {\n if (typeof v === 'undefined') {\n v = '';\n console.warn('Undefined CHARARRAY encountered and treated as an empty string. This is probably caused by a missing glyph name.');\n }\n const b = [];\n for (let i = 0; i < v.length; i += 1) {\n b[i] = v.charCodeAt(i);\n }\n\n return b;\n};\n\n/**\n * @param {Array}\n * @returns {number}\n */\nsizeOf.CHARARRAY = function(v) {\n if (typeof v === 'undefined') {\n return 0;\n }\n return v.length;\n};\n\n/**\n * Convert a 16-bit unsigned integer to a list of 2 bytes.\n * @param {number}\n * @returns {Array}\n */\nencode.USHORT = function(v) {\n return [(v >> 8) & 0xFF, v & 0xFF];\n};\n\n/**\n * @constant\n * @type {number}\n */\nsizeOf.USHORT = constant(2);\n\n/**\n * Convert a 16-bit signed integer to a list of 2 bytes.\n * @param {number}\n * @returns {Array}\n */\nencode.SHORT = function(v) {\n // Two's complement\n if (v >= LIMIT16) {\n v = -(2 * LIMIT16 - v);\n }\n\n return [(v >> 8) & 0xFF, v & 0xFF];\n};\n\n/**\n * @constant\n * @type {number}\n */\nsizeOf.SHORT = constant(2);\n\n/**\n * Convert a 24-bit unsigned integer to a list of 3 bytes.\n * @param {number}\n * @returns {Array}\n */\nencode.UINT24 = function(v) {\n return [(v >> 16) & 0xFF, (v >> 8) & 0xFF, v & 0xFF];\n};\n\n/**\n * @constant\n * @type {number}\n */\nsizeOf.UINT24 = constant(3);\n\n/**\n * Convert a 32-bit unsigned integer to a list of 4 bytes.\n * @param {number}\n * @returns {Array}\n */\nencode.ULONG = function(v) {\n return [(v >> 24) & 0xFF, (v >> 16) & 0xFF, (v >> 8) & 0xFF, v & 0xFF];\n};\n\n/**\n * @constant\n * @type {number}\n */\nsizeOf.ULONG = constant(4);\n\n/**\n * Convert a 32-bit unsigned integer to a list of 4 bytes.\n * @param {number}\n * @returns {Array}\n */\nencode.LONG = function(v) {\n // Two's complement\n if (v >= LIMIT32) {\n v = -(2 * LIMIT32 - v);\n }\n\n return [(v >> 24) & 0xFF, (v >> 16) & 0xFF, (v >> 8) & 0xFF, v & 0xFF];\n};\n\n/**\n * @constant\n * @type {number}\n */\nsizeOf.LONG = constant(4);\n\nencode.FIXED = encode.ULONG;\nsizeOf.FIXED = sizeOf.ULONG;\n\nencode.FWORD = encode.SHORT;\nsizeOf.FWORD = sizeOf.SHORT;\n\nencode.UFWORD = encode.USHORT;\nsizeOf.UFWORD = sizeOf.USHORT;\n\n/**\n * Convert a 32-bit Apple Mac timestamp integer to a list of 8 bytes, 64-bit timestamp.\n * @param {number}\n * @returns {Array}\n */\nencode.LONGDATETIME = function(v) {\n return [0, 0, 0, 0, (v >> 24) & 0xFF, (v >> 16) & 0xFF, (v >> 8) & 0xFF, v & 0xFF];\n};\n\n/**\n * @constant\n * @type {number}\n */\nsizeOf.LONGDATETIME = constant(8);\n\n/**\n * Convert a 4-char tag to a list of 4 bytes.\n * @param {string}\n * @returns {Array}\n */\nencode.TAG = function(v) {\n check.argument(v.length === 4, 'Tag should be exactly 4 ASCII characters.');\n return [v.charCodeAt(0),\n v.charCodeAt(1),\n v.charCodeAt(2),\n v.charCodeAt(3)];\n};\n\n/**\n * @constant\n * @type {number}\n */\nsizeOf.TAG = constant(4);\n\n// CFF data types ///////////////////////////////////////////////////////////\n\nencode.Card8 = encode.BYTE;\nsizeOf.Card8 = sizeOf.BYTE;\n\nencode.Card16 = encode.USHORT;\nsizeOf.Card16 = sizeOf.USHORT;\n\nencode.OffSize = encode.BYTE;\nsizeOf.OffSize = sizeOf.BYTE;\n\nencode.SID = encode.USHORT;\nsizeOf.SID = sizeOf.USHORT;\n\n// Convert a numeric operand or charstring number to a variable-size list of bytes.\n/**\n * Convert a numeric operand or charstring number to a variable-size list of bytes.\n * @param {number}\n * @returns {Array}\n */\nencode.NUMBER = function(v) {\n if (v >= -107 && v <= 107) {\n return [v + 139];\n } else if (v >= 108 && v <= 1131) {\n v = v - 108;\n return [(v >> 8) + 247, v & 0xFF];\n } else if (v >= -1131 && v <= -108) {\n v = -v - 108;\n return [(v >> 8) + 251, v & 0xFF];\n } else if (v >= -32768 && v <= 32767) {\n return encode.NUMBER16(v);\n } else {\n return encode.NUMBER32(v);\n }\n};\n\n/**\n * @param {number}\n * @returns {number}\n */\nsizeOf.NUMBER = function(v) {\n return encode.NUMBER(v).length;\n};\n\n/**\n * Convert a signed number between -32768 and +32767 to a three-byte value.\n * This ensures we always use three bytes, but is not the most compact format.\n * @param {number}\n * @returns {Array}\n */\nencode.NUMBER16 = function(v) {\n return [28, (v >> 8) & 0xFF, v & 0xFF];\n};\n\n/**\n * @constant\n * @type {number}\n */\nsizeOf.NUMBER16 = constant(3);\n\n/**\n * Convert a signed number between -(2^31) and +(2^31-1) to a five-byte value.\n * This is useful if you want to be sure you always use four bytes,\n * at the expense of wasting a few bytes for smaller numbers.\n * @param {number}\n * @returns {Array}\n */\nencode.NUMBER32 = function(v) {\n return [29, (v >> 24) & 0xFF, (v >> 16) & 0xFF, (v >> 8) & 0xFF, v & 0xFF];\n};\n\n/**\n * @constant\n * @type {number}\n */\nsizeOf.NUMBER32 = constant(5);\n\n/**\n * @param {number}\n * @returns {Array}\n */\nencode.REAL = function(v) {\n let value = v.toString();\n\n // Some numbers use an epsilon to encode the value. (e.g. JavaScript will store 0.0000001 as 1e-7)\n // This code converts it back to a number without the epsilon.\n const m = /\\.(\\d*?)(?:9{5,20}|0{5,20})\\d{0,2}(?:e(.+)|$)/.exec(value);\n if (m) {\n const epsilon = parseFloat('1e' + ((m[2] ? +m[2] : 0) + m[1].length));\n value = (Math.round(v * epsilon) / epsilon).toString();\n }\n\n let nibbles = '';\n for (let i = 0, ii = value.length; i < ii; i += 1) {\n const c = value[i];\n if (c === 'e') {\n nibbles += value[++i] === '-' ? 'c' : 'b';\n } else if (c === '.') {\n nibbles += 'a';\n } else if (c === '-') {\n nibbles += 'e';\n } else {\n nibbles += c;\n }\n }\n\n nibbles += (nibbles.length & 1) ? 'f' : 'ff';\n const out = [30];\n for (let i = 0, ii = nibbles.length; i < ii; i += 2) {\n out.push(parseInt(nibbles.substr(i, 2), 16));\n }\n\n return out;\n};\n\n/**\n * @param {number}\n * @returns {number}\n */\nsizeOf.REAL = function(v) {\n return encode.REAL(v).length;\n};\n\nencode.NAME = encode.CHARARRAY;\nsizeOf.NAME = sizeOf.CHARARRAY;\n\nencode.STRING = encode.CHARARRAY;\nsizeOf.STRING = sizeOf.CHARARRAY;\n\n/**\n * @param {DataView} data\n * @param {number} offset\n * @param {number} numBytes\n * @returns {string}\n */\ndecode.UTF8 = function(data, offset, numBytes) {\n const codePoints = [];\n const numChars = numBytes;\n for (let j = 0; j < numChars; j++, offset += 1) {\n codePoints[j] = data.getUint8(offset);\n }\n\n return String.fromCharCode.apply(null, codePoints);\n};\n\n/**\n * @param {DataView} data\n * @param {number} offset\n * @param {number} numBytes\n * @returns {string}\n */\ndecode.UTF16 = function(data, offset, numBytes) {\n const codePoints = [];\n const numChars = numBytes / 2;\n for (let j = 0; j < numChars; j++, offset += 2) {\n codePoints[j] = data.getUint16(offset);\n }\n\n return String.fromCharCode.apply(null, codePoints);\n};\n\n/**\n * Convert a JavaScript string to UTF16-BE.\n * @param {string}\n * @returns {Array}\n */\nencode.UTF16 = function(v) {\n const b = [];\n for (let i = 0; i < v.length; i += 1) {\n const codepoint = v.charCodeAt(i);\n b[b.length] = (codepoint >> 8) & 0xFF;\n b[b.length] = codepoint & 0xFF;\n }\n\n return b;\n};\n\n/**\n * @param {string}\n * @returns {number}\n */\nsizeOf.UTF16 = function(v) {\n return v.length * 2;\n};\n\n// Data for converting old eight-bit Macintosh encodings to Unicode.\n// This representation is optimized for decoding; encoding is slower\n// and needs more memory. The assumption is that all opentype.js users\n// want to open fonts, but saving a font will be comparatively rare\n// so it can be more expensive. Keyed by IANA character set name.\n//\n// Python script for generating these strings:\n//\n// s = u''.join([chr(c).decode('mac_greek') for c in range(128, 256)])\n// print(s.encode('utf-8'))\n/**\n * @private\n */\nconst eightBitMacEncodings = {\n 'x-mac-croatian': // Python: 'mac_croatian'\n 'ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®Š™´¨≠ŽØ∞±≤≥∆µ∂∑∏š∫ªºΩžø' +\n '¿¡¬√ƒ≈ƫȅ ÀÃÕŒœĐ—“”‘’÷◊©⁄€‹›Æ»–·‚„‰ÂćÁčÈÍÎÏÌÓÔđÒÚÛÙıˆ˜¯πË˚¸Êæˇ',\n 'x-mac-cyrillic': // Python: 'mac_cyrillic'\n 'АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°Ґ£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµґЈЄєЇїЉљЊњ' +\n 'јЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю',\n 'x-mac-gaelic': // http://unicode.org/Public/MAPPINGS/VENDORS/APPLE/GAELIC.TXT\n 'ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØḂ±≤≥ḃĊċḊḋḞḟĠġṀæø' +\n 'ṁṖṗɼƒſṠ«»… ÀÃÕŒœ–—“”‘’ṡẛÿŸṪ€‹›Ŷŷṫ·Ỳỳ⁊ÂÊÁËÈÍÎÏÌÓÔ♣ÒÚÛÙıÝýŴŵẄẅẀẁẂẃ',\n 'x-mac-greek': // Python: 'mac_greek'\n 'Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦€ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩ' +\n 'άΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ\\u00AD',\n 'x-mac-icelandic': // Python: 'mac_iceland'\n 'ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüݰ¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø' +\n '¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ',\n 'x-mac-inuit': // http://unicode.org/Public/MAPPINGS/VENDORS/APPLE/INUIT.TXT\n 'ᐃᐄᐅᐆᐊᐋᐱᐲᐳᐴᐸᐹᑉᑎᑏᑐᑑᑕᑖᑦᑭᑮᑯᑰᑲᑳᒃᒋᒌᒍᒎᒐᒑ°ᒡᒥᒦ•¶ᒧ®©™ᒨᒪᒫᒻᓂᓃᓄᓅᓇᓈᓐᓯᓰᓱᓲᓴᓵᔅᓕᓖᓗ' +\n 'ᓘᓚᓛᓪᔨᔩᔪᔫᔭ… ᔮᔾᕕᕖᕗ–—“”‘’ᕘᕙᕚᕝᕆᕇᕈᕉᕋᕌᕐᕿᖀᖁᖂᖃᖄᖅᖏᖐᖑᖒᖓᖔᖕᙱᙲᙳᙴᙵᙶᖖᖠᖡᖢᖣᖤᖥᖦᕼŁł',\n 'x-mac-ce': // Python: 'mac_latin2'\n 'ÄĀāÉĄÖÜáąČäčĆć鏟ĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅ' +\n 'ņѬ√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ',\n macintosh: // Python: 'mac_roman'\n 'ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø' +\n '¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ',\n 'x-mac-romanian': // Python: 'mac_romanian'\n 'ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ĂȘ∞±≤≥¥µ∂∑∏π∫ªºΩăș' +\n '¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€‹›Țț‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ',\n 'x-mac-turkish': // Python: 'mac_turkish'\n 'ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø' +\n '¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙˆ˜¯˘˙˚¸˝˛ˇ'\n};\n\n/**\n * Decodes an old-style Macintosh string. Returns either a Unicode JavaScript\n * string, or 'undefined' if the encoding is unsupported. For example, we do\n * not support Chinese, Japanese or Korean because these would need large\n * mapping tables.\n * @param {DataView} dataView\n * @param {number} offset\n * @param {number} dataLength\n * @param {string} encoding\n * @returns {string}\n */\ndecode.MACSTRING = function(dataView, offset, dataLength, encoding) {\n const table = eightBitMacEncodings[encoding];\n if (table === undefined) {\n return undefined;\n }\n\n let result = '';\n for (let i = 0; i < dataLength; i++) {\n const c = dataView.getUint8(offset + i);\n // In all eight-bit Mac encodings, the characters 0x00..0x7F are\n // mapped to U+0000..U+007F; we only need to look up the others.\n if (c <= 0x7F) {\n result += String.fromCharCode(c);\n } else {\n result += table[c & 0x7F];\n }\n }\n\n return result;\n};\n\n// Helper function for encode.MACSTRING. Returns a dictionary for mapping\n// Unicode character codes to their 8-bit MacOS equivalent. This table\n// is not exactly a super cheap data structure, but we do not care because\n// encoding Macintosh strings is only rarely needed in typical applications.\nconst macEncodingTableCache = typeof WeakMap === 'function' && new WeakMap();\nlet macEncodingCacheKeys;\nconst getMacEncodingTable = function (encoding) {\n // Since we use encoding as a cache key for WeakMap, it has to be\n // a String object and not a literal. And at least on NodeJS 2.10.1,\n // WeakMap requires that the same String instance is passed for cache hits.\n if (!macEncodingCacheKeys) {\n macEncodingCacheKeys = {};\n for (let e in eightBitMacEncodings) {\n /*jshint -W053 */ // Suppress \"Do not use String as a constructor.\"\n macEncodingCacheKeys[e] = new String(e);\n }\n }\n\n const cacheKey = macEncodingCacheKeys[encoding];\n if (cacheKey === undefined) {\n return undefined;\n }\n\n // We can't do \"if (cache.has(key)) {return cache.get(key)}\" here:\n // since garbage collection may run at any time, it could also kick in\n // between the calls to cache.has() and cache.get(). In that case,\n // we would return 'undefined' even though we do support the encoding.\n if (macEncodingTableCache) {\n const cachedTable = macEncodingTableCache.get(cacheKey);\n if (cachedTable !== undefined) {\n return cachedTable;\n }\n }\n\n const decodingTable = eightBitMacEncodings[encoding];\n if (decodingTable === undefined) {\n return undefined;\n }\n\n const encodingTable = {};\n for (let i = 0; i < decodingTable.length; i++) {\n encodingTable[decodingTable.charCodeAt(i)] = i + 0x80;\n }\n\n if (macEncodingTableCache) {\n macEncodingTableCache.set(cacheKey, encodingTable);\n }\n\n return encodingTable;\n};\n\n/**\n * Encodes an old-style Macintosh string. Returns a byte array upon success.\n * If the requested encoding is unsupported, or if the input string contains\n * a character that cannot be expressed in the encoding, the function returns\n * 'undefined'.\n * @param {string} str\n * @param {string} encoding\n * @returns {Array}\n */\nencode.MACSTRING = function(str, encoding) {\n const table = getMacEncodingTable(encoding);\n if (table === undefined) {\n return undefined;\n }\n\n const result = [];\n for (let i = 0; i < str.length; i++) {\n let c = str.charCodeAt(i);\n\n // In all eight-bit Mac encodings, the characters 0x00..0x7F are\n // mapped to U+0000..U+007F; we only need to look up the others.\n if (c >= 0x80) {\n c = table[c];\n if (c === undefined) {\n // str contains a Unicode character that cannot be encoded\n // in the requested encoding.\n return undefined;\n }\n }\n result[i] = c;\n // result.push(c);\n }\n\n return result;\n};\n\n/**\n * @param {string} str\n * @param {string} encoding\n * @returns {number}\n */\nsizeOf.MACSTRING = function(str, encoding) {\n const b = encode.MACSTRING(str, encoding);\n if (b !== undefined) {\n return b.length;\n } else {\n return 0;\n }\n};\n\n// Helper for encode.VARDELTAS\nfunction isByteEncodable(value) {\n return value >= -128 && value <= 127;\n}\n\n// Helper for encode.VARDELTAS\nfunction encodeVarDeltaRunAsZeroes(deltas, pos, result) {\n let runLength = 0;\n const numDeltas = deltas.length;\n while (pos < numDeltas && runLength < 64 && deltas[pos] === 0) {\n ++pos;\n ++runLength;\n }\n result.push(0x80 | (runLength - 1));\n return pos;\n}\n\n// Helper for encode.VARDELTAS\nfunction encodeVarDeltaRunAsBytes(deltas, offset, result) {\n let runLength = 0;\n const numDeltas = deltas.length;\n let pos = offset;\n while (pos < numDeltas && runLength < 64) {\n const value = deltas[pos];\n if (!isByteEncodable(value)) {\n break;\n }\n\n // Within a byte-encoded run of deltas, a single zero is best\n // stored literally as 0x00 value. However, if we have two or\n // more zeroes in a sequence, it is better to start a new run.\n // Fore example, the sequence of deltas [15, 15, 0, 15, 15]\n // becomes 6 bytes (04 0F 0F 00 0F 0F) when storing the zero\n // within the current run, but 7 bytes (01 0F 0F 80 01 0F 0F)\n // when starting a new run.\n if (value === 0 && pos + 1 < numDeltas && deltas[pos + 1] === 0) {\n break;\n }\n\n ++pos;\n ++runLength;\n }\n result.push(runLength - 1);\n for (let i = offset; i < pos; ++i) {\n result.push((deltas[i] + 256) & 0xff);\n }\n return pos;\n}\n\n// Helper for encode.VARDELTAS\nfunction encodeVarDeltaRunAsWords(deltas, offset, result) {\n let runLength = 0;\n const numDeltas = deltas.length;\n let pos = offset;\n while (pos < numDeltas && runLength < 64) {\n const value = deltas[pos];\n\n // Within a word-encoded run of deltas, it is easiest to start\n // a new run (with a different encoding) whenever we encounter\n // a zero value. For example, the sequence [0x6666, 0, 0x7777]\n // needs 7 bytes when storing the zero inside the current run\n // (42 66 66 00 00 77 77), and equally 7 bytes when starting a\n // new run (40 66 66 80 40 77 77).\n if (value === 0) {\n break;\n }\n\n // Within a word-encoded run of deltas, a single value in the\n // range (-128..127) should be encoded within the current run\n // because it is more compact. For example, the sequence\n // [0x6666, 2, 0x7777] becomes 7 bytes when storing the value\n // literally (42 66 66 00 02 77 77), but 8 bytes when starting\n // a new run (40 66 66 00 02 40 77 77).\n if (isByteEncodable(value) && pos + 1 < numDeltas && isByteEncodable(deltas[pos + 1])) {\n break;\n }\n\n ++pos;\n ++runLength;\n }\n result.push(0x40 | (runLength - 1));\n for (let i = offset; i < pos; ++i) {\n const val = deltas[i];\n result.push(((val + 0x10000) >> 8) & 0xff, (val + 0x100) & 0xff);\n }\n return pos;\n}\n\n/**\n * Encode a list of variation adjustment deltas.\n *\n * Variation adjustment deltas are used in ‘gvar’ and ‘cvar’ tables.\n * They indicate how points (in ‘gvar’) or values (in ‘cvar’) get adjusted\n * when generating instances of variation fonts.\n *\n * @see https://www.microsoft.com/typography/otspec/gvar.htm\n * @see https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6gvar.html\n * @param {Array}\n * @return {Array}\n */\nencode.VARDELTAS = function(deltas) {\n let pos = 0;\n const result = [];\n while (pos < deltas.length) {\n const value = deltas[pos];\n if (value === 0) {\n pos = encodeVarDeltaRunAsZeroes(deltas, pos, result);\n } else if (value >= -128 && value <= 127) {\n pos = encodeVarDeltaRunAsBytes(deltas, pos, result);\n } else {\n pos = encodeVarDeltaRunAsWords(deltas, pos, result);\n }\n }\n return result;\n};\n\n// Convert a list of values to a CFF INDEX structure.\n// The values should be objects containing name / type / value.\n/**\n * @param {Array} l\n * @returns {Array}\n */\nencode.INDEX = function(l) {\n //var offset, offsets, offsetEncoder, encodedOffsets, encodedOffset, data,\n // i, v;\n // Because we have to know which data type to use to encode the offsets,\n // we have to go through the values twice: once to encode the data and\n // calculate the offsets, then again to encode the offsets using the fitting data type.\n let offset = 1; // First offset is always 1.\n const offsets = [offset];\n const data = [];\n for (let i = 0; i < l.length; i += 1) {\n const v = encode.OBJECT(l[i]);\n Array.prototype.push.apply(data, v);\n offset += v.length;\n offsets.push(offset);\n }\n\n if (data.length === 0) {\n return [0, 0];\n }\n\n const encodedOffsets = [];\n const offSize = (1 + Math.floor(Math.log(offset) / Math.log(2)) / 8) | 0;\n const offsetEncoder = [undefined, encode.BYTE, encode.USHORT, encode.UINT24, encode.ULONG][offSize];\n for (let i = 0; i < offsets.length; i += 1) {\n const encodedOffset = offsetEncoder(offsets[i]);\n Array.prototype.push.apply(encodedOffsets, encodedOffset);\n }\n\n return Array.prototype.concat(encode.Card16(l.length),\n encode.OffSize(offSize),\n encodedOffsets,\n data);\n};\n\n/**\n * @param {Array}\n * @returns {number}\n */\nsizeOf.INDEX = function(v) {\n return encode.INDEX(v).length;\n};\n\n/**\n * Convert an object to a CFF DICT structure.\n * The keys should be numeric.\n * The values should be objects containing name / type / value.\n * @param {Object} m\n * @returns {Array}\n */\nencode.DICT = function(m) {\n let d = [];\n const keys = Object.keys(m);\n const length = keys.length;\n\n for (let i = 0; i < length; i += 1) {\n // Object.keys() return string keys, but our keys are always numeric.\n const k = parseInt(keys[i], 0);\n const v = m[k];\n // Value comes before the key.\n d = d.concat(encode.OPERAND(v.value, v.type));\n d = d.concat(encode.OPERATOR(k));\n }\n\n return d;\n};\n\n/**\n * @param {Object}\n * @returns {number}\n */\nsizeOf.DICT = function(m) {\n return encode.DICT(m).length;\n};\n\n/**\n * @param {number}\n * @returns {Array}\n */\nencode.OPERATOR = function(v) {\n if (v < 1200) {\n return [v];\n } else {\n return [12, v - 1200];\n }\n};\n\n/**\n * @param {Array} v\n * @param {string}\n * @returns {Array}\n */\nencode.OPERAND = function(v, type) {\n let d = [];\n if (Array.isArray(type)) {\n for (let i = 0; i < type.length; i += 1) {\n check.argument(v.length === type.length, 'Not enough arguments given for type' + type);\n d = d.concat(encode.OPERAND(v[i], type[i]));\n }\n } else {\n if (type === 'SID') {\n d = d.concat(encode.NUMBER(v));\n } else if (type === 'offset') {\n // We make it easy for ourselves and always encode offsets as\n // 4 bytes. This makes offset calculation for the top dict easier.\n d = d.concat(encode.NUMBER32(v));\n } else if (type === 'number') {\n d = d.concat(encode.NUMBER(v));\n } else if (type === 'real') {\n d = d.concat(encode.REAL(v));\n } else {\n throw new Error('Unknown operand type ' + type);\n // FIXME Add support for booleans\n }\n }\n\n return d;\n};\n\nencode.OP = encode.BYTE;\nsizeOf.OP = sizeOf.BYTE;\n\n// memoize charstring encoding using WeakMap if available\nconst wmm = typeof WeakMap === 'function' && new WeakMap();\n\n/**\n * Convert a list of CharString operations to bytes.\n * @param {Array}\n * @returns {Array}\n */\nencode.CHARSTRING = function(ops) {\n // See encode.MACSTRING for why we don't do \"if (wmm && wmm.has(ops))\".\n if (wmm) {\n const cachedValue = wmm.get(ops);\n if (cachedValue !== undefined) {\n return cachedValue;\n }\n }\n\n let d = [];\n const length = ops.length;\n\n for (let i = 0; i < length; i += 1) {\n const op = ops[i];\n d = d.concat(encode[op.type](op.value));\n }\n\n if (wmm) {\n wmm.set(ops, d);\n }\n\n return d;\n};\n\n/**\n * @param {Array}\n * @returns {number}\n */\nsizeOf.CHARSTRING = function(ops) {\n return encode.CHARSTRING(ops).length;\n};\n\n// Utility functions ////////////////////////////////////////////////////////\n\n/**\n * Convert an object containing name / type / value to bytes.\n * @param {Object}\n * @returns {Array}\n */\nencode.OBJECT = function(v) {\n const encodingFunction = encode[v.type];\n check.argument(encodingFunction !== undefined, 'No encoding function for type ' + v.type);\n return encodingFunction(v.value);\n};\n\n/**\n * @param {Object}\n * @returns {number}\n */\nsizeOf.OBJECT = function(v) {\n const sizeOfFunction = sizeOf[v.type];\n check.argument(sizeOfFunction !== undefined, 'No sizeOf function for type ' + v.type);\n return sizeOfFunction(v.value);\n};\n\n/**\n * Convert a table object to bytes.\n * A table contains a list of fields containing the metadata (name, type and default value).\n * The table itself has the field values set as attributes.\n * @param {opentype.Table}\n * @returns {Array}\n */\nencode.TABLE = function(table) {\n let d = [];\n const length = table.fields.length;\n const subtables = [];\n const subtableOffsets = [];\n\n for (let i = 0; i < length; i += 1) {\n const field = table.fields[i];\n const encodingFunction = encode[field.type];\n check.argument(encodingFunction !== undefined, 'No encoding function for field type ' + field.type + ' (' + field.name + ')');\n let value = table[field.name];\n if (value === undefined) {\n value = field.value;\n }\n\n const bytes = encodingFunction(value);\n\n if (field.type === 'TABLE') {\n subtableOffsets.push(d.length);\n d = d.concat([0, 0]);\n subtables.push(bytes);\n } else {\n d = d.concat(bytes);\n }\n }\n\n for (let i = 0; i < subtables.length; i += 1) {\n const o = subtableOffsets[i];\n const offset = d.length;\n check.argument(offset < 65536, 'Table ' + table.tableName + ' too big.');\n d[o] = offset >> 8;\n d[o + 1] = offset & 0xff;\n d = d.concat(subtables[i]);\n }\n\n return d;\n};\n\n/**\n * @param {opentype.Table}\n * @returns {number}\n */\nsizeOf.TABLE = function(table) {\n let numBytes = 0;\n const length = table.fields.length;\n\n for (let i = 0; i < length; i += 1) {\n const field = table.fields[i];\n const sizeOfFunction = sizeOf[field.type];\n check.argument(sizeOfFunction !== undefined, 'No sizeOf function for field type ' + field.type + ' (' + field.name + ')');\n let value = table[field.name];\n if (value === undefined) {\n value = field.value;\n }\n\n numBytes += sizeOfFunction(value);\n\n // Subtables take 2 more bytes for offsets.\n if (field.type === 'TABLE') {\n numBytes += 2;\n }\n }\n\n return numBytes;\n};\n\nencode.RECORD = encode.TABLE;\nsizeOf.RECORD = sizeOf.TABLE;\n\n// Merge in a list of bytes.\nencode.LITERAL = function(v) {\n return v;\n};\n\nsizeOf.LITERAL = function(v) {\n return v.length;\n};\n\nexport { decode, encode, sizeOf };\n","// The `GPOS` table contains kerning pairs, among other things.\n// https://www.microsoft.com/typography/OTSPEC/gpos.htm\n\nimport check from '../check';\nimport { decode } from '../types';\nimport parse from '../parse';\n\n// Parse the metadata `meta` table.\n// https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6meta.html\nfunction parseMetaTable(data, start) {\n const p = new parse.Parser(data, start);\n const tableVersion = p.parseULong();\n check.argument(tableVersion === 1, 'Unsupported META table version.');\n p.parseULong(); // flags - currently unused and set to 0\n p.parseULong(); // tableOffset\n const numDataMaps = p.parseULong();\n\n const tags = {};\n for (let i = 0; i < numDataMaps; i++) {\n const tag = p.parseTag();\n const dataOffset = p.parseULong();\n const dataLength = p.parseULong();\n const text = decode.UTF8(data, start + dataOffset, dataLength);\n\n tags[tag] = text;\n }\n return tags;\n}\n\nexport default { parse: parseMetaTable };\n","// opentype.js\n// https://github.com/opentypejs/opentype.js\n// (c) 2015 Frederik De Bleser\n// opentype.js may be freely distributed under the MIT license.\n\n/* global DataView, Uint8Array */\n\nimport { inflateSync } from 'fflate';\nimport Font from './font';\nimport Glyph from './glyph';\nimport { CmapEncoding, addGlyphNames } from './encoding';\nimport parse from './parse';\nimport Path from './path';\nimport cmap from './tables/cmap';\nimport cff from './tables/cff';\nimport fvar from './tables/fvar';\nimport glyf from './tables/glyf';\nimport gdef from './tables/gdef';\nimport gpos from './tables/gpos';\nimport gsub from './tables/gsub';\nimport head from './tables/head';\nimport hhea from './tables/hhea';\nimport hmtx from './tables/hmtx';\nimport kern from './tables/kern';\nimport ltag from './tables/ltag';\nimport loca from './tables/loca';\nimport maxp from './tables/maxp';\nimport os2 from './tables/os2';\nimport post from './tables/post';\nimport meta from './tables/meta';\n\n/**\n * The opentype library.\n * @namespace opentype\n */\n\n// Table Directory Entries //////////////////////////////////////////////\n/**\n * Parses OpenType table entries.\n * @param {DataView}\n * @param {Number}\n * @return {Object[]}\n */\nfunction parseOpenTypeTableEntries(data, numTables) {\n const tableEntries = [];\n let p = 12;\n for (let i = 0; i < numTables; i += 1) {\n const tag = parse.getTag(data, p);\n const checksum = parse.getULong(data, p + 4);\n const offset = parse.getULong(data, p + 8);\n const length = parse.getULong(data, p + 12);\n tableEntries.push({\n tag: tag,\n checksum: checksum,\n offset: offset,\n length: length,\n compression: false,\n });\n p += 16;\n }\n\n return tableEntries;\n}\n\n/**\n * Parses WOFF table entries.\n * @param {DataView}\n * @param {Number}\n * @return {Object[]}\n */\nfunction parseWOFFTableEntries(data, numTables) {\n const tableEntries = [];\n let p = 44; // offset to the first table directory entry.\n for (let i = 0; i < numTables; i += 1) {\n const tag = parse.getTag(data, p);\n const offset = parse.getULong(data, p + 4);\n const compLength = parse.getULong(data, p + 8);\n const origLength = parse.getULong(data, p + 12);\n let compression;\n if (compLength < origLength) {\n compression = 'WOFF';\n } else {\n compression = false;\n }\n\n tableEntries.push({\n tag: tag,\n offset: offset,\n compression: compression,\n compressedLength: compLength,\n length: origLength,\n });\n p += 20;\n }\n\n return tableEntries;\n}\n\n/**\n * @typedef TableData\n * @type Object\n * @property {DataView} data - The DataView\n * @property {number} offset - The data offset.\n */\n\n/**\n * @param {DataView}\n * @param {Object}\n * @return {TableData}\n */\nfunction uncompressTable(data, tableEntry) {\n if (tableEntry.compression === 'WOFF') {\n const inBuffer = new Uint8Array(\n data.buffer,\n tableEntry.offset + 2,\n tableEntry.compressedLength - 2\n );\n const outBuffer = new Uint8Array(tableEntry.length);\n inflateSync(inBuffer, outBuffer);\n if (outBuffer.byteLength !== tableEntry.length) {\n throw new Error(\n 'Decompression error: ' +\n tableEntry.tag +\n ` decompressed length doesn't match recorded length`\n );\n }\n\n const view = new DataView(outBuffer.buffer, 0);\n return { data: view, offset: 0 };\n } else {\n return { data: data, offset: tableEntry.offset };\n }\n}\n\n// Public API ///////////////////////////////////////////////////////////\n\n/**\n * Parse the OpenType file data (as an ArrayBuffer) and return a Font object.\n * Throws an error if the font could not be parsed.\n * @param {ArrayBuffer}\n * @param {Object} opt - options for parsing\n * @return {opentype.Font}\n */\nfunction parseBuffer(buffer, opt) {\n opt = opt === undefined || opt === null ? {} : opt;\n\n let indexToLocFormat;\n\n // Since the constructor can also be called to create new fonts from scratch, we indicate this\n // should be an empty font that we'll fill with our own data.\n const font = new Font({ empty: true });\n\n // OpenType fonts use big endian byte ordering.\n // We can't rely on typed array view types, because they operate with the endianness of the host computer.\n // Instead we use DataViews where we can specify endianness.\n const data = new DataView(buffer, 0);\n let numTables;\n let tableEntries = [];\n const signature = parse.getTag(data, 0);\n if (\n signature === String.fromCharCode(0, 1, 0, 0) ||\n signature === 'true' ||\n signature === 'typ1'\n ) {\n font.outlinesFormat = 'truetype';\n numTables = parse.getUShort(data, 4);\n tableEntries = parseOpenTypeTableEntries(data, numTables);\n } else if (signature === 'OTTO') {\n font.outlinesFormat = 'cff';\n numTables = parse.getUShort(data, 4);\n tableEntries = parseOpenTypeTableEntries(data, numTables);\n } else if (signature === 'wOFF') {\n const flavor = parse.getTag(data, 4);\n if (flavor === String.fromCharCode(0, 1, 0, 0)) {\n font.outlinesFormat = 'truetype';\n } else if (flavor === 'OTTO') {\n font.outlinesFormat = 'cff';\n } else {\n throw new Error('Unsupported OpenType flavor ' + signature);\n }\n\n numTables = parse.getUShort(data, 12);\n tableEntries = parseWOFFTableEntries(data, numTables);\n } else {\n throw new Error('Unsupported OpenType signature ' + signature);\n }\n\n let cffTableEntry;\n let fvarTableEntry;\n let glyfTableEntry;\n let gdefTableEntry;\n let gposTableEntry;\n let gsubTableEntry;\n let hmtxTableEntry;\n let kernTableEntry;\n let locaTableEntry;\n let metaTableEntry;\n let p;\n\n for (let i = 0; i < numTables; i += 1) {\n const tableEntry = tableEntries[i];\n let table;\n switch (tableEntry.tag) {\n case 'cmap':\n table = uncompressTable(data, tableEntry);\n font.tables.cmap = cmap.parse(table.data, table.offset);\n font.encoding = new CmapEncoding(font.tables.cmap);\n break;\n case 'cvt ':\n table = uncompressTable(data, tableEntry);\n p = new parse.Parser(table.data, table.offset);\n font.tables.cvt = p.parseShortList(tableEntry.length / 2);\n break;\n case 'fvar':\n fvarTableEntry = tableEntry;\n break;\n case 'fpgm':\n table = uncompressTable(data, tableEntry);\n p = new parse.Parser(table.data, table.offset);\n font.tables.fpgm = p.parseByteList(tableEntry.length);\n break;\n case 'head':\n table = uncompressTable(data, tableEntry);\n font.tables.head = head.parse(table.data, table.offset);\n font.unitsPerEm = font.tables.head.unitsPerEm;\n indexToLocFormat = font.tables.head.indexToLocFormat;\n break;\n case 'hhea':\n table = uncompressTable(data, tableEntry);\n font.tables.hhea = hhea.parse(table.data, table.offset);\n font.ascender = font.tables.hhea.ascender;\n font.descender = font.tables.hhea.descender;\n font.numberOfHMetrics = font.tables.hhea.numberOfHMetrics;\n break;\n case 'hmtx':\n hmtxTableEntry = tableEntry;\n break;\n case 'ltag':\n table = uncompressTable(data, tableEntry);\n ltagTable = ltag.parse(table.data, table.offset);\n break;\n case 'maxp':\n table = uncompressTable(data, tableEntry);\n font.tables.maxp = maxp.parse(table.data, table.offset);\n font.numGlyphs = font.tables.maxp.numGlyphs;\n break;\n case 'OS/2':\n table = uncompressTable(data, tableEntry);\n font.tables.os2 = os2.parse(table.data, table.offset);\n break;\n case 'post':\n table = uncompressTable(data, tableEntry);\n font.tables.post = post.parse(table.data, table.offset);\n break;\n case 'prep':\n table = uncompressTable(data, tableEntry);\n p = new parse.Parser(table.data, table.offset);\n font.tables.prep = p.parseByteList(tableEntry.length);\n break;\n case 'glyf':\n glyfTableEntry = tableEntry;\n break;\n case 'loca':\n locaTableEntry = tableEntry;\n break;\n case 'CFF ':\n cffTableEntry = tableEntry;\n break;\n case 'kern':\n kernTableEntry = tableEntry;\n break;\n case 'GDEF':\n gdefTableEntry = tableEntry;\n break;\n case 'GPOS':\n gposTableEntry = tableEntry;\n break;\n case 'GSUB':\n gsubTableEntry = tableEntry;\n break;\n case 'meta':\n metaTableEntry = tableEntry;\n break;\n }\n }\n\n if (glyfTableEntry && locaTableEntry) {\n const shortVersion = indexToLocFormat === 0;\n const locaTable = uncompressTable(data, locaTableEntry);\n const locaOffsets = loca.parse(\n locaTable.data,\n locaTable.offset,\n font.numGlyphs,\n shortVersion\n );\n const glyfTable = uncompressTable(data, glyfTableEntry);\n font.glyphs = glyf.parse(\n glyfTable.data,\n glyfTable.offset,\n locaOffsets,\n font,\n opt\n );\n } else if (cffTableEntry) {\n const cffTable = uncompressTable(data, cffTableEntry);\n cff.parse(cffTable.data, cffTable.offset, font, opt);\n } else {\n throw new Error(`Font doesn't contain TrueType or CFF outlines.`);\n }\n\n const hmtxTable = uncompressTable(data, hmtxTableEntry);\n hmtx.parse(\n font,\n hmtxTable.data,\n hmtxTable.offset,\n font.numberOfHMetrics,\n font.numGlyphs,\n font.glyphs,\n opt\n );\n addGlyphNames(font, opt);\n\n if (kernTableEntry) {\n const kernTable = uncompressTable(data, kernTableEntry);\n font.kerningPairs = kern.parse(kernTable.data, kernTable.offset);\n } else {\n font.kerningPairs = {};\n }\n\n if (gdefTableEntry) {\n const gdefTable = uncompressTable(data, gdefTableEntry);\n font.tables.gdef = gdef.parse(gdefTable.data, gdefTable.offset);\n }\n\n if (gposTableEntry) {\n const gposTable = uncompressTable(data, gposTableEntry);\n font.tables.gpos = gpos.parse(gposTable.data, gposTable.offset);\n font.position.init();\n }\n\n if (gsubTableEntry) {\n const gsubTable = uncompressTable(data, gsubTableEntry);\n font.tables.gsub = gsub.parse(gsubTable.data, gsubTable.offset);\n }\n\n if (fvarTableEntry) {\n const fvarTable = uncompressTable(data, fvarTableEntry);\n font.tables.fvar = fvar.parse(\n fvarTable.data,\n fvarTable.offset,\n font.names\n );\n }\n\n if (metaTableEntry) {\n const metaTable = uncompressTable(data, metaTableEntry);\n font.tables.meta = meta.parse(metaTable.data, metaTable.offset);\n font.metas = font.tables.meta;\n }\n\n return font;\n}\n\nfunction load() {}\nfunction loadSync() {}\n\nexport {\n Font,\n Glyph,\n Path,\n parse as _parse,\n parseBuffer as parse,\n load,\n loadSync,\n};\n","export async function getYogaModule() {\n const { default: initYoga } = await import('yoga-wasm-web/asm')\n return initYoga()\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: ()=>_default\n});\nfunction _default(value) {\n value = `${value}`;\n if (value === \"0\") {\n return \"0\";\n }\n // Flip sign of numbers\n if (/^[+-]?(\\d+|\\d*\\.\\d+)(e[+-]?\\d+)?(%|\\w+)?$/.test(value)) {\n return value.replace(/^[+-]?/, (sign)=>sign === \"-\" ? \"\" : \"-\");\n }\n if (value.includes(\"var(\") || value.includes(\"calc(\")) {\n return `calc(${value} * -1)`;\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: ()=>_default\n});\nconst _default = [\n \"preflight\",\n \"container\",\n \"accessibility\",\n \"pointerEvents\",\n \"visibility\",\n \"position\",\n \"inset\",\n \"isolation\",\n \"zIndex\",\n \"order\",\n \"gridColumn\",\n \"gridColumnStart\",\n \"gridColumnEnd\",\n \"gridRow\",\n \"gridRowStart\",\n \"gridRowEnd\",\n \"float\",\n \"clear\",\n \"margin\",\n \"boxSizing\",\n \"display\",\n \"aspectRatio\",\n \"height\",\n \"maxHeight\",\n \"minHeight\",\n \"width\",\n \"minWidth\",\n \"maxWidth\",\n \"flex\",\n \"flexShrink\",\n \"flexGrow\",\n \"flexBasis\",\n \"tableLayout\",\n \"borderCollapse\",\n \"borderSpacing\",\n \"transformOrigin\",\n \"translate\",\n \"rotate\",\n \"skew\",\n \"scale\",\n \"transform\",\n \"animation\",\n \"cursor\",\n \"touchAction\",\n \"userSelect\",\n \"resize\",\n \"scrollSnapType\",\n \"scrollSnapAlign\",\n \"scrollSnapStop\",\n \"scrollMargin\",\n \"scrollPadding\",\n \"listStylePosition\",\n \"listStyleType\",\n \"appearance\",\n \"columns\",\n \"breakBefore\",\n \"breakInside\",\n \"breakAfter\",\n \"gridAutoColumns\",\n \"gridAutoFlow\",\n \"gridAutoRows\",\n \"gridTemplateColumns\",\n \"gridTemplateRows\",\n \"flexDirection\",\n \"flexWrap\",\n \"placeContent\",\n \"placeItems\",\n \"alignContent\",\n \"alignItems\",\n \"justifyContent\",\n \"justifyItems\",\n \"gap\",\n \"space\",\n \"divideWidth\",\n \"divideStyle\",\n \"divideColor\",\n \"divideOpacity\",\n \"placeSelf\",\n \"alignSelf\",\n \"justifySelf\",\n \"overflow\",\n \"overscrollBehavior\",\n \"scrollBehavior\",\n \"textOverflow\",\n \"whitespace\",\n \"wordBreak\",\n \"borderRadius\",\n \"borderWidth\",\n \"borderStyle\",\n \"borderColor\",\n \"borderOpacity\",\n \"backgroundColor\",\n \"backgroundOpacity\",\n \"backgroundImage\",\n \"gradientColorStops\",\n \"boxDecorationBreak\",\n \"backgroundSize\",\n \"backgroundAttachment\",\n \"backgroundClip\",\n \"backgroundPosition\",\n \"backgroundRepeat\",\n \"backgroundOrigin\",\n \"fill\",\n \"stroke\",\n \"strokeWidth\",\n \"objectFit\",\n \"objectPosition\",\n \"padding\",\n \"textAlign\",\n \"textIndent\",\n \"verticalAlign\",\n \"fontFamily\",\n \"fontSize\",\n \"fontWeight\",\n \"textTransform\",\n \"fontStyle\",\n \"fontVariantNumeric\",\n \"lineHeight\",\n \"letterSpacing\",\n \"textColor\",\n \"textOpacity\",\n \"textDecoration\",\n \"textDecorationColor\",\n \"textDecorationStyle\",\n \"textDecorationThickness\",\n \"textUnderlineOffset\",\n \"fontSmoothing\",\n \"placeholderColor\",\n \"placeholderOpacity\",\n \"caretColor\",\n \"accentColor\",\n \"opacity\",\n \"backgroundBlendMode\",\n \"mixBlendMode\",\n \"boxShadow\",\n \"boxShadowColor\",\n \"outlineStyle\",\n \"outlineWidth\",\n \"outlineOffset\",\n \"outlineColor\",\n \"ringWidth\",\n \"ringColor\",\n \"ringOpacity\",\n \"ringOffsetWidth\",\n \"ringOffsetColor\",\n \"blur\",\n \"brightness\",\n \"contrast\",\n \"dropShadow\",\n \"grayscale\",\n \"hueRotate\",\n \"invert\",\n \"saturate\",\n \"sepia\",\n \"filter\",\n \"backdropBlur\",\n \"backdropBrightness\",\n \"backdropContrast\",\n \"backdropGrayscale\",\n \"backdropHueRotate\",\n \"backdropInvert\",\n \"backdropOpacity\",\n \"backdropSaturate\",\n \"backdropSepia\",\n \"backdropFilter\",\n \"transitionProperty\",\n \"transitionDelay\",\n \"transitionDuration\",\n \"transitionTimingFunction\",\n \"willChange\",\n \"content\"\n];\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: ()=>_default\n});\nfunction _default(pluginConfig, plugins) {\n if (pluginConfig === undefined) {\n return plugins;\n }\n const pluginNames = Array.isArray(pluginConfig) ? pluginConfig : [\n ...new Set(plugins.filter((pluginName)=>{\n return pluginConfig !== false && pluginConfig[pluginName] !== false;\n }).concat(Object.keys(pluginConfig).filter((pluginName)=>{\n return pluginConfig[pluginName] !== false;\n }))), \n ];\n return pluginNames;\n}\n","/** @type {import('tailwindcss').Config} */\nmodule.exports = {\n content: [],\n presets: [],\n darkMode: 'media', // or 'class'\n theme: {\n screens: {\n sm: '640px',\n md: '768px',\n lg: '1024px',\n xl: '1280px',\n '2xl': '1536px',\n },\n colors: ({ colors }) => ({\n inherit: colors.inherit,\n current: colors.current,\n transparent: colors.transparent,\n black: colors.black,\n white: colors.white,\n slate: colors.slate,\n gray: colors.gray,\n zinc: colors.zinc,\n neutral: colors.neutral,\n stone: colors.stone,\n red: colors.red,\n orange: colors.orange,\n amber: colors.amber,\n yellow: colors.yellow,\n lime: colors.lime,\n green: colors.green,\n emerald: colors.emerald,\n teal: colors.teal,\n cyan: colors.cyan,\n sky: colors.sky,\n blue: colors.blue,\n indigo: colors.indigo,\n violet: colors.violet,\n purple: colors.purple,\n fuchsia: colors.fuchsia,\n pink: colors.pink,\n rose: colors.rose,\n }),\n columns: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n '3xs': '16rem',\n '2xs': '18rem',\n xs: '20rem',\n sm: '24rem',\n md: '28rem',\n lg: '32rem',\n xl: '36rem',\n '2xl': '42rem',\n '3xl': '48rem',\n '4xl': '56rem',\n '5xl': '64rem',\n '6xl': '72rem',\n '7xl': '80rem',\n },\n spacing: {\n px: '1px',\n 0: '0px',\n 0.5: '0.125rem',\n 1: '0.25rem',\n 1.5: '0.375rem',\n 2: '0.5rem',\n 2.5: '0.625rem',\n 3: '0.75rem',\n 3.5: '0.875rem',\n 4: '1rem',\n 5: '1.25rem',\n 6: '1.5rem',\n 7: '1.75rem',\n 8: '2rem',\n 9: '2.25rem',\n 10: '2.5rem',\n 11: '2.75rem',\n 12: '3rem',\n 14: '3.5rem',\n 16: '4rem',\n 20: '5rem',\n 24: '6rem',\n 28: '7rem',\n 32: '8rem',\n 36: '9rem',\n 40: '10rem',\n 44: '11rem',\n 48: '12rem',\n 52: '13rem',\n 56: '14rem',\n 60: '15rem',\n 64: '16rem',\n 72: '18rem',\n 80: '20rem',\n 96: '24rem',\n },\n animation: {\n none: 'none',\n spin: 'spin 1s linear infinite',\n ping: 'ping 1s cubic-bezier(0, 0, 0.2, 1) infinite',\n pulse: 'pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite',\n bounce: 'bounce 1s infinite',\n },\n aspectRatio: {\n auto: 'auto',\n square: '1 / 1',\n video: '16 / 9',\n },\n backdropBlur: ({ theme }) => theme('blur'),\n backdropBrightness: ({ theme }) => theme('brightness'),\n backdropContrast: ({ theme }) => theme('contrast'),\n backdropGrayscale: ({ theme }) => theme('grayscale'),\n backdropHueRotate: ({ theme }) => theme('hueRotate'),\n backdropInvert: ({ theme }) => theme('invert'),\n backdropOpacity: ({ theme }) => theme('opacity'),\n backdropSaturate: ({ theme }) => theme('saturate'),\n backdropSepia: ({ theme }) => theme('sepia'),\n backgroundColor: ({ theme }) => theme('colors'),\n backgroundImage: {\n none: 'none',\n 'gradient-to-t': 'linear-gradient(to top, var(--tw-gradient-stops))',\n 'gradient-to-tr': 'linear-gradient(to top right, var(--tw-gradient-stops))',\n 'gradient-to-r': 'linear-gradient(to right, var(--tw-gradient-stops))',\n 'gradient-to-br': 'linear-gradient(to bottom right, var(--tw-gradient-stops))',\n 'gradient-to-b': 'linear-gradient(to bottom, var(--tw-gradient-stops))',\n 'gradient-to-bl': 'linear-gradient(to bottom left, var(--tw-gradient-stops))',\n 'gradient-to-l': 'linear-gradient(to left, var(--tw-gradient-stops))',\n 'gradient-to-tl': 'linear-gradient(to top left, var(--tw-gradient-stops))',\n },\n backgroundOpacity: ({ theme }) => theme('opacity'),\n backgroundPosition: {\n bottom: 'bottom',\n center: 'center',\n left: 'left',\n 'left-bottom': 'left bottom',\n 'left-top': 'left top',\n right: 'right',\n 'right-bottom': 'right bottom',\n 'right-top': 'right top',\n top: 'top',\n },\n backgroundSize: {\n auto: 'auto',\n cover: 'cover',\n contain: 'contain',\n },\n blur: {\n 0: '0',\n none: '0',\n sm: '4px',\n DEFAULT: '8px',\n md: '12px',\n lg: '16px',\n xl: '24px',\n '2xl': '40px',\n '3xl': '64px',\n },\n brightness: {\n 0: '0',\n 50: '.5',\n 75: '.75',\n 90: '.9',\n 95: '.95',\n 100: '1',\n 105: '1.05',\n 110: '1.1',\n 125: '1.25',\n 150: '1.5',\n 200: '2',\n },\n borderColor: ({ theme }) => ({\n ...theme('colors'),\n DEFAULT: theme('colors.gray.200', 'currentColor'),\n }),\n borderOpacity: ({ theme }) => theme('opacity'),\n borderRadius: {\n none: '0px',\n sm: '0.125rem',\n DEFAULT: '0.25rem',\n md: '0.375rem',\n lg: '0.5rem',\n xl: '0.75rem',\n '2xl': '1rem',\n '3xl': '1.5rem',\n full: '9999px',\n },\n borderSpacing: ({ theme }) => ({\n ...theme('spacing'),\n }),\n borderWidth: {\n DEFAULT: '1px',\n 0: '0px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n boxShadow: {\n sm: '0 1px 2px 0 rgb(0 0 0 / 0.05)',\n DEFAULT: '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',\n md: '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',\n lg: '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',\n xl: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\n '2xl': '0 25px 50px -12px rgb(0 0 0 / 0.25)',\n inner: 'inset 0 2px 4px 0 rgb(0 0 0 / 0.05)',\n none: 'none',\n },\n boxShadowColor: ({ theme }) => theme('colors'),\n caretColor: ({ theme }) => theme('colors'),\n accentColor: ({ theme }) => ({\n ...theme('colors'),\n auto: 'auto',\n }),\n contrast: {\n 0: '0',\n 50: '.5',\n 75: '.75',\n 100: '1',\n 125: '1.25',\n 150: '1.5',\n 200: '2',\n },\n container: {},\n content: {\n none: 'none',\n },\n cursor: {\n auto: 'auto',\n default: 'default',\n pointer: 'pointer',\n wait: 'wait',\n text: 'text',\n move: 'move',\n help: 'help',\n 'not-allowed': 'not-allowed',\n none: 'none',\n 'context-menu': 'context-menu',\n progress: 'progress',\n cell: 'cell',\n crosshair: 'crosshair',\n 'vertical-text': 'vertical-text',\n alias: 'alias',\n copy: 'copy',\n 'no-drop': 'no-drop',\n grab: 'grab',\n grabbing: 'grabbing',\n 'all-scroll': 'all-scroll',\n 'col-resize': 'col-resize',\n 'row-resize': 'row-resize',\n 'n-resize': 'n-resize',\n 'e-resize': 'e-resize',\n 's-resize': 's-resize',\n 'w-resize': 'w-resize',\n 'ne-resize': 'ne-resize',\n 'nw-resize': 'nw-resize',\n 'se-resize': 'se-resize',\n 'sw-resize': 'sw-resize',\n 'ew-resize': 'ew-resize',\n 'ns-resize': 'ns-resize',\n 'nesw-resize': 'nesw-resize',\n 'nwse-resize': 'nwse-resize',\n 'zoom-in': 'zoom-in',\n 'zoom-out': 'zoom-out',\n },\n divideColor: ({ theme }) => theme('borderColor'),\n divideOpacity: ({ theme }) => theme('borderOpacity'),\n divideWidth: ({ theme }) => theme('borderWidth'),\n dropShadow: {\n sm: '0 1px 1px rgb(0 0 0 / 0.05)',\n DEFAULT: ['0 1px 2px rgb(0 0 0 / 0.1)', '0 1px 1px rgb(0 0 0 / 0.06)'],\n md: ['0 4px 3px rgb(0 0 0 / 0.07)', '0 2px 2px rgb(0 0 0 / 0.06)'],\n lg: ['0 10px 8px rgb(0 0 0 / 0.04)', '0 4px 3px rgb(0 0 0 / 0.1)'],\n xl: ['0 20px 13px rgb(0 0 0 / 0.03)', '0 8px 5px rgb(0 0 0 / 0.08)'],\n '2xl': '0 25px 25px rgb(0 0 0 / 0.15)',\n none: '0 0 #0000',\n },\n fill: ({ theme }) => theme('colors'),\n grayscale: {\n 0: '0',\n DEFAULT: '100%',\n },\n hueRotate: {\n 0: '0deg',\n 15: '15deg',\n 30: '30deg',\n 60: '60deg',\n 90: '90deg',\n 180: '180deg',\n },\n invert: {\n 0: '0',\n DEFAULT: '100%',\n },\n flex: {\n 1: '1 1 0%',\n auto: '1 1 auto',\n initial: '0 1 auto',\n none: 'none',\n },\n flexBasis: ({ theme }) => ({\n auto: 'auto',\n ...theme('spacing'),\n '1/2': '50%',\n '1/3': '33.333333%',\n '2/3': '66.666667%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n '1/5': '20%',\n '2/5': '40%',\n '3/5': '60%',\n '4/5': '80%',\n '1/6': '16.666667%',\n '2/6': '33.333333%',\n '3/6': '50%',\n '4/6': '66.666667%',\n '5/6': '83.333333%',\n '1/12': '8.333333%',\n '2/12': '16.666667%',\n '3/12': '25%',\n '4/12': '33.333333%',\n '5/12': '41.666667%',\n '6/12': '50%',\n '7/12': '58.333333%',\n '8/12': '66.666667%',\n '9/12': '75%',\n '10/12': '83.333333%',\n '11/12': '91.666667%',\n full: '100%',\n }),\n flexGrow: {\n 0: '0',\n DEFAULT: '1',\n },\n flexShrink: {\n 0: '0',\n DEFAULT: '1',\n },\n fontFamily: {\n sans: [\n 'ui-sans-serif',\n 'system-ui',\n '-apple-system',\n 'BlinkMacSystemFont',\n '\"Segoe UI\"',\n 'Roboto',\n '\"Helvetica Neue\"',\n 'Arial',\n '\"Noto Sans\"',\n 'sans-serif',\n '\"Apple Color Emoji\"',\n '\"Segoe UI Emoji\"',\n '\"Segoe UI Symbol\"',\n '\"Noto Color Emoji\"',\n ],\n serif: ['ui-serif', 'Georgia', 'Cambria', '\"Times New Roman\"', 'Times', 'serif'],\n mono: [\n 'ui-monospace',\n 'SFMono-Regular',\n 'Menlo',\n 'Monaco',\n 'Consolas',\n '\"Liberation Mono\"',\n '\"Courier New\"',\n 'monospace',\n ],\n },\n fontSize: {\n xs: ['0.75rem', { lineHeight: '1rem' }],\n sm: ['0.875rem', { lineHeight: '1.25rem' }],\n base: ['1rem', { lineHeight: '1.5rem' }],\n lg: ['1.125rem', { lineHeight: '1.75rem' }],\n xl: ['1.25rem', { lineHeight: '1.75rem' }],\n '2xl': ['1.5rem', { lineHeight: '2rem' }],\n '3xl': ['1.875rem', { lineHeight: '2.25rem' }],\n '4xl': ['2.25rem', { lineHeight: '2.5rem' }],\n '5xl': ['3rem', { lineHeight: '1' }],\n '6xl': ['3.75rem', { lineHeight: '1' }],\n '7xl': ['4.5rem', { lineHeight: '1' }],\n '8xl': ['6rem', { lineHeight: '1' }],\n '9xl': ['8rem', { lineHeight: '1' }],\n },\n fontWeight: {\n thin: '100',\n extralight: '200',\n light: '300',\n normal: '400',\n medium: '500',\n semibold: '600',\n bold: '700',\n extrabold: '800',\n black: '900',\n },\n gap: ({ theme }) => theme('spacing'),\n gradientColorStops: ({ theme }) => theme('colors'),\n gridAutoColumns: {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n },\n gridAutoRows: {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n },\n gridColumn: {\n auto: 'auto',\n 'span-1': 'span 1 / span 1',\n 'span-2': 'span 2 / span 2',\n 'span-3': 'span 3 / span 3',\n 'span-4': 'span 4 / span 4',\n 'span-5': 'span 5 / span 5',\n 'span-6': 'span 6 / span 6',\n 'span-7': 'span 7 / span 7',\n 'span-8': 'span 8 / span 8',\n 'span-9': 'span 9 / span 9',\n 'span-10': 'span 10 / span 10',\n 'span-11': 'span 11 / span 11',\n 'span-12': 'span 12 / span 12',\n 'span-full': '1 / -1',\n },\n gridColumnEnd: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n 13: '13',\n },\n gridColumnStart: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n 13: '13',\n },\n gridRow: {\n auto: 'auto',\n 'span-1': 'span 1 / span 1',\n 'span-2': 'span 2 / span 2',\n 'span-3': 'span 3 / span 3',\n 'span-4': 'span 4 / span 4',\n 'span-5': 'span 5 / span 5',\n 'span-6': 'span 6 / span 6',\n 'span-full': '1 / -1',\n },\n gridRowStart: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n },\n gridRowEnd: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n },\n gridTemplateColumns: {\n none: 'none',\n 1: 'repeat(1, minmax(0, 1fr))',\n 2: 'repeat(2, minmax(0, 1fr))',\n 3: 'repeat(3, minmax(0, 1fr))',\n 4: 'repeat(4, minmax(0, 1fr))',\n 5: 'repeat(5, minmax(0, 1fr))',\n 6: 'repeat(6, minmax(0, 1fr))',\n 7: 'repeat(7, minmax(0, 1fr))',\n 8: 'repeat(8, minmax(0, 1fr))',\n 9: 'repeat(9, minmax(0, 1fr))',\n 10: 'repeat(10, minmax(0, 1fr))',\n 11: 'repeat(11, minmax(0, 1fr))',\n 12: 'repeat(12, minmax(0, 1fr))',\n },\n gridTemplateRows: {\n none: 'none',\n 1: 'repeat(1, minmax(0, 1fr))',\n 2: 'repeat(2, minmax(0, 1fr))',\n 3: 'repeat(3, minmax(0, 1fr))',\n 4: 'repeat(4, minmax(0, 1fr))',\n 5: 'repeat(5, minmax(0, 1fr))',\n 6: 'repeat(6, minmax(0, 1fr))',\n },\n height: ({ theme }) => ({\n auto: 'auto',\n ...theme('spacing'),\n '1/2': '50%',\n '1/3': '33.333333%',\n '2/3': '66.666667%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n '1/5': '20%',\n '2/5': '40%',\n '3/5': '60%',\n '4/5': '80%',\n '1/6': '16.666667%',\n '2/6': '33.333333%',\n '3/6': '50%',\n '4/6': '66.666667%',\n '5/6': '83.333333%',\n full: '100%',\n screen: '100vh',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n }),\n inset: ({ theme }) => ({\n auto: 'auto',\n ...theme('spacing'),\n '1/2': '50%',\n '1/3': '33.333333%',\n '2/3': '66.666667%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n full: '100%',\n }),\n keyframes: {\n spin: {\n to: {\n transform: 'rotate(360deg)',\n },\n },\n ping: {\n '75%, 100%': {\n transform: 'scale(2)',\n opacity: '0',\n },\n },\n pulse: {\n '50%': {\n opacity: '.5',\n },\n },\n bounce: {\n '0%, 100%': {\n transform: 'translateY(-25%)',\n animationTimingFunction: 'cubic-bezier(0.8,0,1,1)',\n },\n '50%': {\n transform: 'none',\n animationTimingFunction: 'cubic-bezier(0,0,0.2,1)',\n },\n },\n },\n letterSpacing: {\n tighter: '-0.05em',\n tight: '-0.025em',\n normal: '0em',\n wide: '0.025em',\n wider: '0.05em',\n widest: '0.1em',\n },\n lineHeight: {\n none: '1',\n tight: '1.25',\n snug: '1.375',\n normal: '1.5',\n relaxed: '1.625',\n loose: '2',\n 3: '.75rem',\n 4: '1rem',\n 5: '1.25rem',\n 6: '1.5rem',\n 7: '1.75rem',\n 8: '2rem',\n 9: '2.25rem',\n 10: '2.5rem',\n },\n listStyleType: {\n none: 'none',\n disc: 'disc',\n decimal: 'decimal',\n },\n margin: ({ theme }) => ({\n auto: 'auto',\n ...theme('spacing'),\n }),\n maxHeight: ({ theme }) => ({\n ...theme('spacing'),\n full: '100%',\n screen: '100vh',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n }),\n maxWidth: ({ theme, breakpoints }) => ({\n none: 'none',\n 0: '0rem',\n xs: '20rem',\n sm: '24rem',\n md: '28rem',\n lg: '32rem',\n xl: '36rem',\n '2xl': '42rem',\n '3xl': '48rem',\n '4xl': '56rem',\n '5xl': '64rem',\n '6xl': '72rem',\n '7xl': '80rem',\n full: '100%',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n prose: '65ch',\n ...breakpoints(theme('screens')),\n }),\n minHeight: {\n 0: '0px',\n full: '100%',\n screen: '100vh',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n },\n minWidth: {\n 0: '0px',\n full: '100%',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n },\n objectPosition: {\n bottom: 'bottom',\n center: 'center',\n left: 'left',\n 'left-bottom': 'left bottom',\n 'left-top': 'left top',\n right: 'right',\n 'right-bottom': 'right bottom',\n 'right-top': 'right top',\n top: 'top',\n },\n opacity: {\n 0: '0',\n 5: '0.05',\n 10: '0.1',\n 20: '0.2',\n 25: '0.25',\n 30: '0.3',\n 40: '0.4',\n 50: '0.5',\n 60: '0.6',\n 70: '0.7',\n 75: '0.75',\n 80: '0.8',\n 90: '0.9',\n 95: '0.95',\n 100: '1',\n },\n order: {\n first: '-9999',\n last: '9999',\n none: '0',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n },\n padding: ({ theme }) => theme('spacing'),\n placeholderColor: ({ theme }) => theme('colors'),\n placeholderOpacity: ({ theme }) => theme('opacity'),\n outlineColor: ({ theme }) => theme('colors'),\n outlineOffset: {\n 0: '0px',\n 1: '1px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n outlineWidth: {\n 0: '0px',\n 1: '1px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n ringColor: ({ theme }) => ({\n DEFAULT: theme(`colors.blue.500`, '#3b82f6'),\n ...theme('colors'),\n }),\n ringOffsetColor: ({ theme }) => theme('colors'),\n ringOffsetWidth: {\n 0: '0px',\n 1: '1px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n ringOpacity: ({ theme }) => ({\n DEFAULT: '0.5',\n ...theme('opacity'),\n }),\n ringWidth: {\n DEFAULT: '3px',\n 0: '0px',\n 1: '1px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n rotate: {\n 0: '0deg',\n 1: '1deg',\n 2: '2deg',\n 3: '3deg',\n 6: '6deg',\n 12: '12deg',\n 45: '45deg',\n 90: '90deg',\n 180: '180deg',\n },\n saturate: {\n 0: '0',\n 50: '.5',\n 100: '1',\n 150: '1.5',\n 200: '2',\n },\n scale: {\n 0: '0',\n 50: '.5',\n 75: '.75',\n 90: '.9',\n 95: '.95',\n 100: '1',\n 105: '1.05',\n 110: '1.1',\n 125: '1.25',\n 150: '1.5',\n },\n scrollMargin: ({ theme }) => ({\n ...theme('spacing'),\n }),\n scrollPadding: ({ theme }) => theme('spacing'),\n sepia: {\n 0: '0',\n DEFAULT: '100%',\n },\n skew: {\n 0: '0deg',\n 1: '1deg',\n 2: '2deg',\n 3: '3deg',\n 6: '6deg',\n 12: '12deg',\n },\n space: ({ theme }) => ({\n ...theme('spacing'),\n }),\n stroke: ({ theme }) => theme('colors'),\n strokeWidth: {\n 0: '0',\n 1: '1',\n 2: '2',\n },\n textColor: ({ theme }) => theme('colors'),\n textDecorationColor: ({ theme }) => theme('colors'),\n textDecorationThickness: {\n auto: 'auto',\n 'from-font': 'from-font',\n 0: '0px',\n 1: '1px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n textUnderlineOffset: {\n auto: 'auto',\n 0: '0px',\n 1: '1px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n textIndent: ({ theme }) => ({\n ...theme('spacing'),\n }),\n textOpacity: ({ theme }) => theme('opacity'),\n transformOrigin: {\n center: 'center',\n top: 'top',\n 'top-right': 'top right',\n right: 'right',\n 'bottom-right': 'bottom right',\n bottom: 'bottom',\n 'bottom-left': 'bottom left',\n left: 'left',\n 'top-left': 'top left',\n },\n transitionDelay: {\n 75: '75ms',\n 100: '100ms',\n 150: '150ms',\n 200: '200ms',\n 300: '300ms',\n 500: '500ms',\n 700: '700ms',\n 1000: '1000ms',\n },\n transitionDuration: {\n DEFAULT: '150ms',\n 75: '75ms',\n 100: '100ms',\n 150: '150ms',\n 200: '200ms',\n 300: '300ms',\n 500: '500ms',\n 700: '700ms',\n 1000: '1000ms',\n },\n transitionProperty: {\n none: 'none',\n all: 'all',\n DEFAULT:\n 'color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter',\n colors: 'color, background-color, border-color, text-decoration-color, fill, stroke',\n opacity: 'opacity',\n shadow: 'box-shadow',\n transform: 'transform',\n },\n transitionTimingFunction: {\n DEFAULT: 'cubic-bezier(0.4, 0, 0.2, 1)',\n linear: 'linear',\n in: 'cubic-bezier(0.4, 0, 1, 1)',\n out: 'cubic-bezier(0, 0, 0.2, 1)',\n 'in-out': 'cubic-bezier(0.4, 0, 0.2, 1)',\n },\n translate: ({ theme }) => ({\n ...theme('spacing'),\n '1/2': '50%',\n '1/3': '33.333333%',\n '2/3': '66.666667%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n full: '100%',\n }),\n width: ({ theme }) => ({\n auto: 'auto',\n ...theme('spacing'),\n '1/2': '50%',\n '1/3': '33.333333%',\n '2/3': '66.666667%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n '1/5': '20%',\n '2/5': '40%',\n '3/5': '60%',\n '4/5': '80%',\n '1/6': '16.666667%',\n '2/6': '33.333333%',\n '3/6': '50%',\n '4/6': '66.666667%',\n '5/6': '83.333333%',\n '1/12': '8.333333%',\n '2/12': '16.666667%',\n '3/12': '25%',\n '4/12': '33.333333%',\n '5/12': '41.666667%',\n '6/12': '50%',\n '7/12': '58.333333%',\n '8/12': '66.666667%',\n '9/12': '75%',\n '10/12': '83.333333%',\n '11/12': '91.666667%',\n full: '100%',\n screen: '100vw',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n }),\n willChange: {\n auto: 'auto',\n scroll: 'scroll-position',\n contents: 'contents',\n transform: 'transform',\n },\n zIndex: {\n auto: 'auto',\n 0: '0',\n 10: '10',\n 20: '20',\n 30: '30',\n 40: '40',\n 50: '50',\n },\n },\n variantOrder: [\n 'first',\n 'last',\n 'odd',\n 'even',\n 'visited',\n 'checked',\n 'empty',\n 'read-only',\n 'group-hover',\n 'group-focus',\n 'focus-within',\n 'hover',\n 'focus',\n 'focus-visible',\n 'active',\n 'disabled',\n ],\n plugins: [],\n}\n","export default {\n info(key, messages) {\n console.info(...(Array.isArray(key) ? [key] : [messages, key]))\n },\n warn(key, messages) {\n console.warn(...(Array.isArray(key) ? [key] : [messages, key]))\n },\n risk(key, messages) {\n console.error(...(Array.isArray(key) ? [key] : [messages, key]))\n },\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: ()=>_default\n});\nconst _log = /*#__PURE__*/ _interopRequireDefault(require(\"../util/log\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction warn({ version , from , to }) {\n _log.default.warn(`${from}-color-renamed`, [\n `As of Tailwind CSS ${version}, \\`${from}\\` has been renamed to \\`${to}\\`.`,\n \"Update your configuration file to silence this warning.\", \n ]);\n}\nconst _default = {\n inherit: \"inherit\",\n current: \"currentColor\",\n transparent: \"transparent\",\n black: \"#000\",\n white: \"#fff\",\n slate: {\n 50: \"#f8fafc\",\n 100: \"#f1f5f9\",\n 200: \"#e2e8f0\",\n 300: \"#cbd5e1\",\n 400: \"#94a3b8\",\n 500: \"#64748b\",\n 600: \"#475569\",\n 700: \"#334155\",\n 800: \"#1e293b\",\n 900: \"#0f172a\"\n },\n gray: {\n 50: \"#f9fafb\",\n 100: \"#f3f4f6\",\n 200: \"#e5e7eb\",\n 300: \"#d1d5db\",\n 400: \"#9ca3af\",\n 500: \"#6b7280\",\n 600: \"#4b5563\",\n 700: \"#374151\",\n 800: \"#1f2937\",\n 900: \"#111827\"\n },\n zinc: {\n 50: \"#fafafa\",\n 100: \"#f4f4f5\",\n 200: \"#e4e4e7\",\n 300: \"#d4d4d8\",\n 400: \"#a1a1aa\",\n 500: \"#71717a\",\n 600: \"#52525b\",\n 700: \"#3f3f46\",\n 800: \"#27272a\",\n 900: \"#18181b\"\n },\n neutral: {\n 50: \"#fafafa\",\n 100: \"#f5f5f5\",\n 200: \"#e5e5e5\",\n 300: \"#d4d4d4\",\n 400: \"#a3a3a3\",\n 500: \"#737373\",\n 600: \"#525252\",\n 700: \"#404040\",\n 800: \"#262626\",\n 900: \"#171717\"\n },\n stone: {\n 50: \"#fafaf9\",\n 100: \"#f5f5f4\",\n 200: \"#e7e5e4\",\n 300: \"#d6d3d1\",\n 400: \"#a8a29e\",\n 500: \"#78716c\",\n 600: \"#57534e\",\n 700: \"#44403c\",\n 800: \"#292524\",\n 900: \"#1c1917\"\n },\n red: {\n 50: \"#fef2f2\",\n 100: \"#fee2e2\",\n 200: \"#fecaca\",\n 300: \"#fca5a5\",\n 400: \"#f87171\",\n 500: \"#ef4444\",\n 600: \"#dc2626\",\n 700: \"#b91c1c\",\n 800: \"#991b1b\",\n 900: \"#7f1d1d\"\n },\n orange: {\n 50: \"#fff7ed\",\n 100: \"#ffedd5\",\n 200: \"#fed7aa\",\n 300: \"#fdba74\",\n 400: \"#fb923c\",\n 500: \"#f97316\",\n 600: \"#ea580c\",\n 700: \"#c2410c\",\n 800: \"#9a3412\",\n 900: \"#7c2d12\"\n },\n amber: {\n 50: \"#fffbeb\",\n 100: \"#fef3c7\",\n 200: \"#fde68a\",\n 300: \"#fcd34d\",\n 400: \"#fbbf24\",\n 500: \"#f59e0b\",\n 600: \"#d97706\",\n 700: \"#b45309\",\n 800: \"#92400e\",\n 900: \"#78350f\"\n },\n yellow: {\n 50: \"#fefce8\",\n 100: \"#fef9c3\",\n 200: \"#fef08a\",\n 300: \"#fde047\",\n 400: \"#facc15\",\n 500: \"#eab308\",\n 600: \"#ca8a04\",\n 700: \"#a16207\",\n 800: \"#854d0e\",\n 900: \"#713f12\"\n },\n lime: {\n 50: \"#f7fee7\",\n 100: \"#ecfccb\",\n 200: \"#d9f99d\",\n 300: \"#bef264\",\n 400: \"#a3e635\",\n 500: \"#84cc16\",\n 600: \"#65a30d\",\n 700: \"#4d7c0f\",\n 800: \"#3f6212\",\n 900: \"#365314\"\n },\n green: {\n 50: \"#f0fdf4\",\n 100: \"#dcfce7\",\n 200: \"#bbf7d0\",\n 300: \"#86efac\",\n 400: \"#4ade80\",\n 500: \"#22c55e\",\n 600: \"#16a34a\",\n 700: \"#15803d\",\n 800: \"#166534\",\n 900: \"#14532d\"\n },\n emerald: {\n 50: \"#ecfdf5\",\n 100: \"#d1fae5\",\n 200: \"#a7f3d0\",\n 300: \"#6ee7b7\",\n 400: \"#34d399\",\n 500: \"#10b981\",\n 600: \"#059669\",\n 700: \"#047857\",\n 800: \"#065f46\",\n 900: \"#064e3b\"\n },\n teal: {\n 50: \"#f0fdfa\",\n 100: \"#ccfbf1\",\n 200: \"#99f6e4\",\n 300: \"#5eead4\",\n 400: \"#2dd4bf\",\n 500: \"#14b8a6\",\n 600: \"#0d9488\",\n 700: \"#0f766e\",\n 800: \"#115e59\",\n 900: \"#134e4a\"\n },\n cyan: {\n 50: \"#ecfeff\",\n 100: \"#cffafe\",\n 200: \"#a5f3fc\",\n 300: \"#67e8f9\",\n 400: \"#22d3ee\",\n 500: \"#06b6d4\",\n 600: \"#0891b2\",\n 700: \"#0e7490\",\n 800: \"#155e75\",\n 900: \"#164e63\"\n },\n sky: {\n 50: \"#f0f9ff\",\n 100: \"#e0f2fe\",\n 200: \"#bae6fd\",\n 300: \"#7dd3fc\",\n 400: \"#38bdf8\",\n 500: \"#0ea5e9\",\n 600: \"#0284c7\",\n 700: \"#0369a1\",\n 800: \"#075985\",\n 900: \"#0c4a6e\"\n },\n blue: {\n 50: \"#eff6ff\",\n 100: \"#dbeafe\",\n 200: \"#bfdbfe\",\n 300: \"#93c5fd\",\n 400: \"#60a5fa\",\n 500: \"#3b82f6\",\n 600: \"#2563eb\",\n 700: \"#1d4ed8\",\n 800: \"#1e40af\",\n 900: \"#1e3a8a\"\n },\n indigo: {\n 50: \"#eef2ff\",\n 100: \"#e0e7ff\",\n 200: \"#c7d2fe\",\n 300: \"#a5b4fc\",\n 400: \"#818cf8\",\n 500: \"#6366f1\",\n 600: \"#4f46e5\",\n 700: \"#4338ca\",\n 800: \"#3730a3\",\n 900: \"#312e81\"\n },\n violet: {\n 50: \"#f5f3ff\",\n 100: \"#ede9fe\",\n 200: \"#ddd6fe\",\n 300: \"#c4b5fd\",\n 400: \"#a78bfa\",\n 500: \"#8b5cf6\",\n 600: \"#7c3aed\",\n 700: \"#6d28d9\",\n 800: \"#5b21b6\",\n 900: \"#4c1d95\"\n },\n purple: {\n 50: \"#faf5ff\",\n 100: \"#f3e8ff\",\n 200: \"#e9d5ff\",\n 300: \"#d8b4fe\",\n 400: \"#c084fc\",\n 500: \"#a855f7\",\n 600: \"#9333ea\",\n 700: \"#7e22ce\",\n 800: \"#6b21a8\",\n 900: \"#581c87\"\n },\n fuchsia: {\n 50: \"#fdf4ff\",\n 100: \"#fae8ff\",\n 200: \"#f5d0fe\",\n 300: \"#f0abfc\",\n 400: \"#e879f9\",\n 500: \"#d946ef\",\n 600: \"#c026d3\",\n 700: \"#a21caf\",\n 800: \"#86198f\",\n 900: \"#701a75\"\n },\n pink: {\n 50: \"#fdf2f8\",\n 100: \"#fce7f3\",\n 200: \"#fbcfe8\",\n 300: \"#f9a8d4\",\n 400: \"#f472b6\",\n 500: \"#ec4899\",\n 600: \"#db2777\",\n 700: \"#be185d\",\n 800: \"#9d174d\",\n 900: \"#831843\"\n },\n rose: {\n 50: \"#fff1f2\",\n 100: \"#ffe4e6\",\n 200: \"#fecdd3\",\n 300: \"#fda4af\",\n 400: \"#fb7185\",\n 500: \"#f43f5e\",\n 600: \"#e11d48\",\n 700: \"#be123c\",\n 800: \"#9f1239\",\n 900: \"#881337\"\n },\n get lightBlue () {\n warn({\n version: \"v2.2\",\n from: \"lightBlue\",\n to: \"sky\"\n });\n return this.sky;\n },\n get warmGray () {\n warn({\n version: \"v3.0\",\n from: \"warmGray\",\n to: \"stone\"\n });\n return this.stone;\n },\n get trueGray () {\n warn({\n version: \"v3.0\",\n from: \"trueGray\",\n to: \"neutral\"\n });\n return this.neutral;\n },\n get coolGray () {\n warn({\n version: \"v3.0\",\n from: \"coolGray\",\n to: \"gray\"\n });\n return this.gray;\n },\n get blueGray () {\n warn({\n version: \"v3.0\",\n from: \"blueGray\",\n to: \"slate\"\n });\n return this.slate;\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"defaults\", {\n enumerable: true,\n get: ()=>defaults\n});\nfunction defaults(target, ...sources) {\n for (let source of sources){\n for(let k in source){\n var ref;\n if (!(target === null || target === void 0 ? void 0 : (ref = target.hasOwnProperty) === null || ref === void 0 ? void 0 : ref.call(target, k))) {\n target[k] = source[k];\n }\n }\n for (let k1 of Object.getOwnPropertySymbols(source)){\n var ref1;\n if (!(target === null || target === void 0 ? void 0 : (ref1 = target.hasOwnProperty) === null || ref1 === void 0 ? void 0 : ref1.call(target, k1))) {\n target[k1] = source[k1];\n }\n }\n }\n return target;\n}\n","/**\n * Parse a path string into an array of path segments.\n *\n * Square bracket notation `a[b]` may be used to \"escape\" dots that would otherwise be interpreted as path separators.\n *\n * Example:\n * a -> ['a']\n * a.b.c -> ['a', 'b', 'c']\n * a[b].c -> ['a', 'b', 'c']\n * a[b.c].e.f -> ['a', 'b.c', 'e', 'f']\n * a[b][c][d] -> ['a', 'b', 'c', 'd']\n *\n * @param {string|string[]} path\n **/ \"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"toPath\", {\n enumerable: true,\n get: ()=>toPath\n});\nfunction toPath(path) {\n if (Array.isArray(path)) return path;\n let openBrackets = path.split(\"[\").length - 1;\n let closedBrackets = path.split(\"]\").length - 1;\n if (openBrackets !== closedBrackets) {\n throw new Error(`Path is invalid. Has unbalanced brackets: ${path}`);\n }\n return path.split(/\\.(?![^\\[]*\\])|[\\[\\]]/g).filter(Boolean);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"normalizeConfig\", {\n enumerable: true,\n get: ()=>normalizeConfig\n});\nconst _log = /*#__PURE__*/ _interopRequireWildcard(require(\"./log\"));\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction normalizeConfig(config) {\n // Quick structure validation\n /**\n * type FilePath = string\n * type RawFile = { raw: string, extension?: string }\n * type ExtractorFn = (content: string) => Array\n * type TransformerFn = (content: string) => string\n *\n * type Content =\n * | Array\n * | {\n * files: Array,\n * extract?: ExtractorFn | { [extension: string]: ExtractorFn }\n * transform?: TransformerFn | { [extension: string]: TransformerFn }\n * }\n */ let valid = (()=>{\n // `config.purge` should not exist anymore\n if (config.purge) {\n return false;\n }\n // `config.content` should exist\n if (!config.content) {\n return false;\n }\n // `config.content` should be an object or an array\n if (!Array.isArray(config.content) && !(typeof config.content === \"object\" && config.content !== null)) {\n return false;\n }\n // When `config.content` is an array, it should consist of FilePaths or RawFiles\n if (Array.isArray(config.content)) {\n return config.content.every((path)=>{\n // `path` can be a string\n if (typeof path === \"string\") return true;\n // `path` can be an object { raw: string, extension?: string }\n // `raw` must be a string\n if (typeof (path === null || path === void 0 ? void 0 : path.raw) !== \"string\") return false;\n // `extension` (if provided) should also be a string\n if ((path === null || path === void 0 ? void 0 : path.extension) && typeof (path === null || path === void 0 ? void 0 : path.extension) !== \"string\") {\n return false;\n }\n return true;\n });\n }\n // When `config.content` is an object\n if (typeof config.content === \"object\" && config.content !== null) {\n // Only `files`, `extract` and `transform` can exist in `config.content`\n if (Object.keys(config.content).some((key)=>![\n \"files\",\n \"extract\",\n \"transform\"\n ].includes(key))) {\n return false;\n }\n // `config.content.files` should exist of FilePaths or RawFiles\n if (Array.isArray(config.content.files)) {\n if (!config.content.files.every((path)=>{\n // `path` can be a string\n if (typeof path === \"string\") return true;\n // `path` can be an object { raw: string, extension?: string }\n // `raw` must be a string\n if (typeof (path === null || path === void 0 ? void 0 : path.raw) !== \"string\") return false;\n // `extension` (if provided) should also be a string\n if ((path === null || path === void 0 ? void 0 : path.extension) && typeof (path === null || path === void 0 ? void 0 : path.extension) !== \"string\") {\n return false;\n }\n return true;\n })) {\n return false;\n }\n // `config.content.extract` is optional, and can be a Function or a Record\n if (typeof config.content.extract === \"object\") {\n for (let value of Object.values(config.content.extract)){\n if (typeof value !== \"function\") {\n return false;\n }\n }\n } else if (!(config.content.extract === undefined || typeof config.content.extract === \"function\")) {\n return false;\n }\n // `config.content.transform` is optional, and can be a Function or a Record\n if (typeof config.content.transform === \"object\") {\n for (let value1 of Object.values(config.content.transform)){\n if (typeof value1 !== \"function\") {\n return false;\n }\n }\n } else if (!(config.content.transform === undefined || typeof config.content.transform === \"function\")) {\n return false;\n }\n }\n return true;\n }\n return false;\n })();\n if (!valid) {\n _log.default.warn(\"purge-deprecation\", [\n \"The `purge`/`content` options have changed in Tailwind CSS v3.0.\",\n \"Update your configuration file to eliminate this warning.\",\n \"https://tailwindcss.com/docs/upgrade-guide#configure-content-sources\", \n ]);\n }\n // Normalize the `safelist`\n config.safelist = (()=>{\n var ref;\n let { content , purge , safelist } = config;\n if (Array.isArray(safelist)) return safelist;\n if (Array.isArray(content === null || content === void 0 ? void 0 : content.safelist)) return content.safelist;\n if (Array.isArray(purge === null || purge === void 0 ? void 0 : purge.safelist)) return purge.safelist;\n if (Array.isArray(purge === null || purge === void 0 ? void 0 : (ref = purge.options) === null || ref === void 0 ? void 0 : ref.safelist)) return purge.options.safelist;\n return [];\n })();\n // Normalize prefix option\n if (typeof config.prefix === \"function\") {\n _log.default.warn(\"prefix-function\", [\n \"As of Tailwind CSS v3.0, `prefix` cannot be a function.\",\n \"Update `prefix` in your configuration to be a string to eliminate this warning.\",\n \"https://tailwindcss.com/docs/upgrade-guide#prefix-cannot-be-a-function\", \n ]);\n config.prefix = \"\";\n } else {\n var _prefix;\n config.prefix = (_prefix = config.prefix) !== null && _prefix !== void 0 ? _prefix : \"\";\n }\n // Normalize the `content`\n config.content = {\n files: (()=>{\n let { content , purge } = config;\n if (Array.isArray(purge)) return purge;\n if (Array.isArray(purge === null || purge === void 0 ? void 0 : purge.content)) return purge.content;\n if (Array.isArray(content)) return content;\n if (Array.isArray(content === null || content === void 0 ? void 0 : content.content)) return content.content;\n if (Array.isArray(content === null || content === void 0 ? void 0 : content.files)) return content.files;\n return [];\n })(),\n extract: (()=>{\n let extract = (()=>{\n var ref, ref1, ref2, ref3, ref4, ref5, ref6, ref7, ref8, ref9;\n if ((ref = config.purge) === null || ref === void 0 ? void 0 : ref.extract) return config.purge.extract;\n if ((ref1 = config.content) === null || ref1 === void 0 ? void 0 : ref1.extract) return config.content.extract;\n if ((ref2 = config.purge) === null || ref2 === void 0 ? void 0 : (ref3 = ref2.extract) === null || ref3 === void 0 ? void 0 : ref3.DEFAULT) return config.purge.extract.DEFAULT;\n if ((ref4 = config.content) === null || ref4 === void 0 ? void 0 : (ref5 = ref4.extract) === null || ref5 === void 0 ? void 0 : ref5.DEFAULT) return config.content.extract.DEFAULT;\n if ((ref6 = config.purge) === null || ref6 === void 0 ? void 0 : (ref7 = ref6.options) === null || ref7 === void 0 ? void 0 : ref7.extractors) return config.purge.options.extractors;\n if ((ref8 = config.content) === null || ref8 === void 0 ? void 0 : (ref9 = ref8.options) === null || ref9 === void 0 ? void 0 : ref9.extractors) return config.content.options.extractors;\n return {};\n })();\n let extractors = {};\n let defaultExtractor = (()=>{\n var ref, ref1, ref2, ref3;\n if ((ref = config.purge) === null || ref === void 0 ? void 0 : (ref1 = ref.options) === null || ref1 === void 0 ? void 0 : ref1.defaultExtractor) {\n return config.purge.options.defaultExtractor;\n }\n if ((ref2 = config.content) === null || ref2 === void 0 ? void 0 : (ref3 = ref2.options) === null || ref3 === void 0 ? void 0 : ref3.defaultExtractor) {\n return config.content.options.defaultExtractor;\n }\n return undefined;\n })();\n if (defaultExtractor !== undefined) {\n extractors.DEFAULT = defaultExtractor;\n }\n // Functions\n if (typeof extract === \"function\") {\n extractors.DEFAULT = extract;\n } else if (Array.isArray(extract)) {\n for (let { extensions , extractor } of extract !== null && extract !== void 0 ? extract : []){\n for (let extension of extensions){\n extractors[extension] = extractor;\n }\n }\n } else if (typeof extract === \"object\" && extract !== null) {\n Object.assign(extractors, extract);\n }\n return extractors;\n })(),\n transform: (()=>{\n let transform = (()=>{\n var ref, ref1, ref2, ref3, ref4, ref5;\n if ((ref = config.purge) === null || ref === void 0 ? void 0 : ref.transform) return config.purge.transform;\n if ((ref1 = config.content) === null || ref1 === void 0 ? void 0 : ref1.transform) return config.content.transform;\n if ((ref2 = config.purge) === null || ref2 === void 0 ? void 0 : (ref3 = ref2.transform) === null || ref3 === void 0 ? void 0 : ref3.DEFAULT) return config.purge.transform.DEFAULT;\n if ((ref4 = config.content) === null || ref4 === void 0 ? void 0 : (ref5 = ref4.transform) === null || ref5 === void 0 ? void 0 : ref5.DEFAULT) return config.content.transform.DEFAULT;\n return {};\n })();\n let transformers = {};\n if (typeof transform === \"function\") {\n transformers.DEFAULT = transform;\n }\n if (typeof transform === \"object\" && transform !== null) {\n Object.assign(transformers, transform);\n }\n return transformers;\n })()\n };\n // Validate globs to prevent bogus globs.\n // E.g.: `./src/*.{html}` is invalid, the `{html}` should just be `html`\n for (let file of config.content.files){\n if (typeof file === \"string\" && /{([^,]*?)}/g.test(file)) {\n _log.default.warn(\"invalid-glob-braces\", [\n `The glob pattern ${(0, _log.dim)(file)} in your Tailwind CSS configuration is invalid.`,\n `Update it to ${(0, _log.dim)(file.replace(/{([^,]*?)}/g, \"$1\"))} to silence this warning.`\n ]);\n break;\n }\n }\n return config;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: ()=>isPlainObject\n});\nfunction isPlainObject(value) {\n if (Object.prototype.toString.call(value) !== \"[object Object]\") {\n return false;\n }\n const prototype = Object.getPrototypeOf(value);\n return prototype === null || prototype === Object.prototype;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"cloneDeep\", {\n enumerable: true,\n get: ()=>cloneDeep\n});\nfunction cloneDeep(value) {\n if (Array.isArray(value)) {\n return value.map((child)=>cloneDeep(child));\n }\n if (typeof value === \"object\" && value !== null) {\n return Object.fromEntries(Object.entries(value).map(([k, v])=>[\n k,\n cloneDeep(v)\n ]));\n }\n return value;\n}\n","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = unesc;\n\n// Many thanks for this post which made this migration much easier.\n// https://mathiasbynens.be/notes/css-escapes\n\n/**\n * \n * @param {string} str \n * @returns {[string, number]|undefined}\n */\nfunction gobbleHex(str) {\n var lower = str.toLowerCase();\n var hex = '';\n var spaceTerminated = false;\n\n for (var i = 0; i < 6 && lower[i] !== undefined; i++) {\n var code = lower.charCodeAt(i); // check to see if we are dealing with a valid hex char [a-f|0-9]\n\n var valid = code >= 97 && code <= 102 || code >= 48 && code <= 57; // https://drafts.csswg.org/css-syntax/#consume-escaped-code-point\n\n spaceTerminated = code === 32;\n\n if (!valid) {\n break;\n }\n\n hex += lower[i];\n }\n\n if (hex.length === 0) {\n return undefined;\n }\n\n var codePoint = parseInt(hex, 16);\n var isSurrogate = codePoint >= 0xD800 && codePoint <= 0xDFFF; // Add special case for\n // \"If this number is zero, or is for a surrogate, or is greater than the maximum allowed code point\"\n // https://drafts.csswg.org/css-syntax/#maximum-allowed-code-point\n\n if (isSurrogate || codePoint === 0x0000 || codePoint > 0x10FFFF) {\n return [\"\\uFFFD\", hex.length + (spaceTerminated ? 1 : 0)];\n }\n\n return [String.fromCodePoint(codePoint), hex.length + (spaceTerminated ? 1 : 0)];\n}\n\nvar CONTAINS_ESCAPE = /\\\\/;\n\nfunction unesc(str) {\n var needToProcess = CONTAINS_ESCAPE.test(str);\n\n if (!needToProcess) {\n return str;\n }\n\n var ret = \"\";\n\n for (var i = 0; i < str.length; i++) {\n if (str[i] === \"\\\\\") {\n var gobbled = gobbleHex(str.slice(i + 1, i + 7));\n\n if (gobbled !== undefined) {\n ret += gobbled[0];\n i += gobbled[1];\n continue;\n } // Retain a pair of \\\\ if double escaped `\\\\\\\\`\n // https://github.com/postcss/postcss-selector-parser/commit/268c9a7656fb53f543dc620aa5b73a30ec3ff20e\n\n\n if (str[i + 1] === \"\\\\\") {\n ret += \"\\\\\";\n i++;\n continue;\n } // if \\\\ is at the end of the string retain it\n // https://github.com/postcss/postcss-selector-parser/commit/01a6b346e3612ce1ab20219acc26abdc259ccefb\n\n\n if (str.length === i + 1) {\n ret += str[i];\n }\n\n continue;\n }\n\n ret += str[i];\n }\n\n return ret;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = getProp;\n\nfunction getProp(obj) {\n for (var _len = arguments.length, props = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n props[_key - 1] = arguments[_key];\n }\n\n while (props.length > 0) {\n var prop = props.shift();\n\n if (!obj[prop]) {\n return undefined;\n }\n\n obj = obj[prop];\n }\n\n return obj;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = ensureObject;\n\nfunction ensureObject(obj) {\n for (var _len = arguments.length, props = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n props[_key - 1] = arguments[_key];\n }\n\n while (props.length > 0) {\n var prop = props.shift();\n\n if (!obj[prop]) {\n obj[prop] = {};\n }\n\n obj = obj[prop];\n }\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = stripComments;\n\nfunction stripComments(str) {\n var s = \"\";\n var commentStart = str.indexOf(\"/*\");\n var lastEnd = 0;\n\n while (commentStart >= 0) {\n s = s + str.slice(lastEnd, commentStart);\n var commentEnd = str.indexOf(\"*/\", commentStart + 2);\n\n if (commentEnd < 0) {\n return s;\n }\n\n lastEnd = commentEnd + 2;\n commentStart = str.indexOf(\"/*\", lastEnd);\n }\n\n s = s + str.slice(lastEnd);\n return s;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.stripComments = exports.ensureObject = exports.getProp = exports.unesc = void 0;\n\nvar _unesc = _interopRequireDefault(require(\"./unesc\"));\n\nexports.unesc = _unesc[\"default\"];\n\nvar _getProp = _interopRequireDefault(require(\"./getProp\"));\n\nexports.getProp = _getProp[\"default\"];\n\nvar _ensureObject = _interopRequireDefault(require(\"./ensureObject\"));\n\nexports.ensureObject = _ensureObject[\"default\"];\n\nvar _stripComments = _interopRequireDefault(require(\"./stripComments\"));\n\nexports.stripComments = _stripComments[\"default\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _util = require(\"../util\");\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar cloneNode = function cloneNode(obj, parent) {\n if (typeof obj !== 'object' || obj === null) {\n return obj;\n }\n\n var cloned = new obj.constructor();\n\n for (var i in obj) {\n if (!obj.hasOwnProperty(i)) {\n continue;\n }\n\n var value = obj[i];\n var type = typeof value;\n\n if (i === 'parent' && type === 'object') {\n if (parent) {\n cloned[i] = parent;\n }\n } else if (value instanceof Array) {\n cloned[i] = value.map(function (j) {\n return cloneNode(j, cloned);\n });\n } else {\n cloned[i] = cloneNode(value, cloned);\n }\n }\n\n return cloned;\n};\n\nvar Node = /*#__PURE__*/function () {\n function Node(opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n Object.assign(this, opts);\n this.spaces = this.spaces || {};\n this.spaces.before = this.spaces.before || '';\n this.spaces.after = this.spaces.after || '';\n }\n\n var _proto = Node.prototype;\n\n _proto.remove = function remove() {\n if (this.parent) {\n this.parent.removeChild(this);\n }\n\n this.parent = undefined;\n return this;\n };\n\n _proto.replaceWith = function replaceWith() {\n if (this.parent) {\n for (var index in arguments) {\n this.parent.insertBefore(this, arguments[index]);\n }\n\n this.remove();\n }\n\n return this;\n };\n\n _proto.next = function next() {\n return this.parent.at(this.parent.index(this) + 1);\n };\n\n _proto.prev = function prev() {\n return this.parent.at(this.parent.index(this) - 1);\n };\n\n _proto.clone = function clone(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n\n var cloned = cloneNode(this);\n\n for (var name in overrides) {\n cloned[name] = overrides[name];\n }\n\n return cloned;\n }\n /**\n * Some non-standard syntax doesn't follow normal escaping rules for css.\n * This allows non standard syntax to be appended to an existing property\n * by specifying the escaped value. By specifying the escaped value,\n * illegal characters are allowed to be directly inserted into css output.\n * @param {string} name the property to set\n * @param {any} value the unescaped value of the property\n * @param {string} valueEscaped optional. the escaped value of the property.\n */\n ;\n\n _proto.appendToPropertyAndEscape = function appendToPropertyAndEscape(name, value, valueEscaped) {\n if (!this.raws) {\n this.raws = {};\n }\n\n var originalValue = this[name];\n var originalEscaped = this.raws[name];\n this[name] = originalValue + value; // this may trigger a setter that updates raws, so it has to be set first.\n\n if (originalEscaped || valueEscaped !== value) {\n this.raws[name] = (originalEscaped || originalValue) + valueEscaped;\n } else {\n delete this.raws[name]; // delete any escaped value that was created by the setter.\n }\n }\n /**\n * Some non-standard syntax doesn't follow normal escaping rules for css.\n * This allows the escaped value to be specified directly, allowing illegal\n * characters to be directly inserted into css output.\n * @param {string} name the property to set\n * @param {any} value the unescaped value of the property\n * @param {string} valueEscaped the escaped value of the property.\n */\n ;\n\n _proto.setPropertyAndEscape = function setPropertyAndEscape(name, value, valueEscaped) {\n if (!this.raws) {\n this.raws = {};\n }\n\n this[name] = value; // this may trigger a setter that updates raws, so it has to be set first.\n\n this.raws[name] = valueEscaped;\n }\n /**\n * When you want a value to passed through to CSS directly. This method\n * deletes the corresponding raw value causing the stringifier to fallback\n * to the unescaped value.\n * @param {string} name the property to set.\n * @param {any} value The value that is both escaped and unescaped.\n */\n ;\n\n _proto.setPropertyWithoutEscape = function setPropertyWithoutEscape(name, value) {\n this[name] = value; // this may trigger a setter that updates raws, so it has to be set first.\n\n if (this.raws) {\n delete this.raws[name];\n }\n }\n /**\n *\n * @param {number} line The number (starting with 1)\n * @param {number} column The column number (starting with 1)\n */\n ;\n\n _proto.isAtPosition = function isAtPosition(line, column) {\n if (this.source && this.source.start && this.source.end) {\n if (this.source.start.line > line) {\n return false;\n }\n\n if (this.source.end.line < line) {\n return false;\n }\n\n if (this.source.start.line === line && this.source.start.column > column) {\n return false;\n }\n\n if (this.source.end.line === line && this.source.end.column < column) {\n return false;\n }\n\n return true;\n }\n\n return undefined;\n };\n\n _proto.stringifyProperty = function stringifyProperty(name) {\n return this.raws && this.raws[name] || this[name];\n };\n\n _proto.valueToString = function valueToString() {\n return String(this.stringifyProperty(\"value\"));\n };\n\n _proto.toString = function toString() {\n return [this.rawSpaceBefore, this.valueToString(), this.rawSpaceAfter].join('');\n };\n\n _createClass(Node, [{\n key: \"rawSpaceBefore\",\n get: function get() {\n var rawSpace = this.raws && this.raws.spaces && this.raws.spaces.before;\n\n if (rawSpace === undefined) {\n rawSpace = this.spaces && this.spaces.before;\n }\n\n return rawSpace || \"\";\n },\n set: function set(raw) {\n (0, _util.ensureObject)(this, \"raws\", \"spaces\");\n this.raws.spaces.before = raw;\n }\n }, {\n key: \"rawSpaceAfter\",\n get: function get() {\n var rawSpace = this.raws && this.raws.spaces && this.raws.spaces.after;\n\n if (rawSpace === undefined) {\n rawSpace = this.spaces.after;\n }\n\n return rawSpace || \"\";\n },\n set: function set(raw) {\n (0, _util.ensureObject)(this, \"raws\", \"spaces\");\n this.raws.spaces.after = raw;\n }\n }]);\n\n return Node;\n}();\n\nexports[\"default\"] = Node;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.UNIVERSAL = exports.ATTRIBUTE = exports.CLASS = exports.COMBINATOR = exports.COMMENT = exports.ID = exports.NESTING = exports.PSEUDO = exports.ROOT = exports.SELECTOR = exports.STRING = exports.TAG = void 0;\nvar TAG = 'tag';\nexports.TAG = TAG;\nvar STRING = 'string';\nexports.STRING = STRING;\nvar SELECTOR = 'selector';\nexports.SELECTOR = SELECTOR;\nvar ROOT = 'root';\nexports.ROOT = ROOT;\nvar PSEUDO = 'pseudo';\nexports.PSEUDO = PSEUDO;\nvar NESTING = 'nesting';\nexports.NESTING = NESTING;\nvar ID = 'id';\nexports.ID = ID;\nvar COMMENT = 'comment';\nexports.COMMENT = COMMENT;\nvar COMBINATOR = 'combinator';\nexports.COMBINATOR = COMBINATOR;\nvar CLASS = 'class';\nexports.CLASS = CLASS;\nvar ATTRIBUTE = 'attribute';\nexports.ATTRIBUTE = ATTRIBUTE;\nvar UNIVERSAL = 'universal';\nexports.UNIVERSAL = UNIVERSAL;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nvar types = _interopRequireWildcard(require(\"./types\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Container = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Container, _Node);\n\n function Container(opts) {\n var _this;\n\n _this = _Node.call(this, opts) || this;\n\n if (!_this.nodes) {\n _this.nodes = [];\n }\n\n return _this;\n }\n\n var _proto = Container.prototype;\n\n _proto.append = function append(selector) {\n selector.parent = this;\n this.nodes.push(selector);\n return this;\n };\n\n _proto.prepend = function prepend(selector) {\n selector.parent = this;\n this.nodes.unshift(selector);\n return this;\n };\n\n _proto.at = function at(index) {\n return this.nodes[index];\n };\n\n _proto.index = function index(child) {\n if (typeof child === 'number') {\n return child;\n }\n\n return this.nodes.indexOf(child);\n };\n\n _proto.removeChild = function removeChild(child) {\n child = this.index(child);\n this.at(child).parent = undefined;\n this.nodes.splice(child, 1);\n var index;\n\n for (var id in this.indexes) {\n index = this.indexes[id];\n\n if (index >= child) {\n this.indexes[id] = index - 1;\n }\n }\n\n return this;\n };\n\n _proto.removeAll = function removeAll() {\n for (var _iterator = _createForOfIteratorHelperLoose(this.nodes), _step; !(_step = _iterator()).done;) {\n var node = _step.value;\n node.parent = undefined;\n }\n\n this.nodes = [];\n return this;\n };\n\n _proto.empty = function empty() {\n return this.removeAll();\n };\n\n _proto.insertAfter = function insertAfter(oldNode, newNode) {\n newNode.parent = this;\n var oldIndex = this.index(oldNode);\n this.nodes.splice(oldIndex + 1, 0, newNode);\n newNode.parent = this;\n var index;\n\n for (var id in this.indexes) {\n index = this.indexes[id];\n\n if (oldIndex <= index) {\n this.indexes[id] = index + 1;\n }\n }\n\n return this;\n };\n\n _proto.insertBefore = function insertBefore(oldNode, newNode) {\n newNode.parent = this;\n var oldIndex = this.index(oldNode);\n this.nodes.splice(oldIndex, 0, newNode);\n newNode.parent = this;\n var index;\n\n for (var id in this.indexes) {\n index = this.indexes[id];\n\n if (index <= oldIndex) {\n this.indexes[id] = index + 1;\n }\n }\n\n return this;\n };\n\n _proto._findChildAtPosition = function _findChildAtPosition(line, col) {\n var found = undefined;\n this.each(function (node) {\n if (node.atPosition) {\n var foundChild = node.atPosition(line, col);\n\n if (foundChild) {\n found = foundChild;\n return false;\n }\n } else if (node.isAtPosition(line, col)) {\n found = node;\n return false;\n }\n });\n return found;\n }\n /**\n * Return the most specific node at the line and column number given.\n * The source location is based on the original parsed location, locations aren't\n * updated as selector nodes are mutated.\n * \n * Note that this location is relative to the location of the first character\n * of the selector, and not the location of the selector in the overall document\n * when used in conjunction with postcss.\n *\n * If not found, returns undefined.\n * @param {number} line The line number of the node to find. (1-based index)\n * @param {number} col The column number of the node to find. (1-based index)\n */\n ;\n\n _proto.atPosition = function atPosition(line, col) {\n if (this.isAtPosition(line, col)) {\n return this._findChildAtPosition(line, col) || this;\n } else {\n return undefined;\n }\n };\n\n _proto._inferEndPosition = function _inferEndPosition() {\n if (this.last && this.last.source && this.last.source.end) {\n this.source = this.source || {};\n this.source.end = this.source.end || {};\n Object.assign(this.source.end, this.last.source.end);\n }\n };\n\n _proto.each = function each(callback) {\n if (!this.lastEach) {\n this.lastEach = 0;\n }\n\n if (!this.indexes) {\n this.indexes = {};\n }\n\n this.lastEach++;\n var id = this.lastEach;\n this.indexes[id] = 0;\n\n if (!this.length) {\n return undefined;\n }\n\n var index, result;\n\n while (this.indexes[id] < this.length) {\n index = this.indexes[id];\n result = callback(this.at(index), index);\n\n if (result === false) {\n break;\n }\n\n this.indexes[id] += 1;\n }\n\n delete this.indexes[id];\n\n if (result === false) {\n return false;\n }\n };\n\n _proto.walk = function walk(callback) {\n return this.each(function (node, i) {\n var result = callback(node, i);\n\n if (result !== false && node.length) {\n result = node.walk(callback);\n }\n\n if (result === false) {\n return false;\n }\n });\n };\n\n _proto.walkAttributes = function walkAttributes(callback) {\n var _this2 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.ATTRIBUTE) {\n return callback.call(_this2, selector);\n }\n });\n };\n\n _proto.walkClasses = function walkClasses(callback) {\n var _this3 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.CLASS) {\n return callback.call(_this3, selector);\n }\n });\n };\n\n _proto.walkCombinators = function walkCombinators(callback) {\n var _this4 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.COMBINATOR) {\n return callback.call(_this4, selector);\n }\n });\n };\n\n _proto.walkComments = function walkComments(callback) {\n var _this5 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.COMMENT) {\n return callback.call(_this5, selector);\n }\n });\n };\n\n _proto.walkIds = function walkIds(callback) {\n var _this6 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.ID) {\n return callback.call(_this6, selector);\n }\n });\n };\n\n _proto.walkNesting = function walkNesting(callback) {\n var _this7 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.NESTING) {\n return callback.call(_this7, selector);\n }\n });\n };\n\n _proto.walkPseudos = function walkPseudos(callback) {\n var _this8 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.PSEUDO) {\n return callback.call(_this8, selector);\n }\n });\n };\n\n _proto.walkTags = function walkTags(callback) {\n var _this9 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.TAG) {\n return callback.call(_this9, selector);\n }\n });\n };\n\n _proto.walkUniversals = function walkUniversals(callback) {\n var _this10 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.UNIVERSAL) {\n return callback.call(_this10, selector);\n }\n });\n };\n\n _proto.split = function split(callback) {\n var _this11 = this;\n\n var current = [];\n return this.reduce(function (memo, node, index) {\n var split = callback.call(_this11, node);\n current.push(node);\n\n if (split) {\n memo.push(current);\n current = [];\n } else if (index === _this11.length - 1) {\n memo.push(current);\n }\n\n return memo;\n }, []);\n };\n\n _proto.map = function map(callback) {\n return this.nodes.map(callback);\n };\n\n _proto.reduce = function reduce(callback, memo) {\n return this.nodes.reduce(callback, memo);\n };\n\n _proto.every = function every(callback) {\n return this.nodes.every(callback);\n };\n\n _proto.some = function some(callback) {\n return this.nodes.some(callback);\n };\n\n _proto.filter = function filter(callback) {\n return this.nodes.filter(callback);\n };\n\n _proto.sort = function sort(callback) {\n return this.nodes.sort(callback);\n };\n\n _proto.toString = function toString() {\n return this.map(String).join('');\n };\n\n _createClass(Container, [{\n key: \"first\",\n get: function get() {\n return this.at(0);\n }\n }, {\n key: \"last\",\n get: function get() {\n return this.at(this.length - 1);\n }\n }, {\n key: \"length\",\n get: function get() {\n return this.nodes.length;\n }\n }]);\n\n return Container;\n}(_node[\"default\"]);\n\nexports[\"default\"] = Container;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _container = _interopRequireDefault(require(\"./container\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Root = /*#__PURE__*/function (_Container) {\n _inheritsLoose(Root, _Container);\n\n function Root(opts) {\n var _this;\n\n _this = _Container.call(this, opts) || this;\n _this.type = _types.ROOT;\n return _this;\n }\n\n var _proto = Root.prototype;\n\n _proto.toString = function toString() {\n var str = this.reduce(function (memo, selector) {\n memo.push(String(selector));\n return memo;\n }, []).join(',');\n return this.trailingComma ? str + ',' : str;\n };\n\n _proto.error = function error(message, options) {\n if (this._error) {\n return this._error(message, options);\n } else {\n return new Error(message);\n }\n };\n\n _createClass(Root, [{\n key: \"errorGenerator\",\n set: function set(handler) {\n this._error = handler;\n }\n }]);\n\n return Root;\n}(_container[\"default\"]);\n\nexports[\"default\"] = Root;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _container = _interopRequireDefault(require(\"./container\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Selector = /*#__PURE__*/function (_Container) {\n _inheritsLoose(Selector, _Container);\n\n function Selector(opts) {\n var _this;\n\n _this = _Container.call(this, opts) || this;\n _this.type = _types.SELECTOR;\n return _this;\n }\n\n return Selector;\n}(_container[\"default\"]);\n\nexports[\"default\"] = Selector;\nmodule.exports = exports.default;","/*! https://mths.be/cssesc v3.0.0 by @mathias */\n'use strict';\n\nvar object = {};\nvar hasOwnProperty = object.hasOwnProperty;\nvar merge = function merge(options, defaults) {\n\tif (!options) {\n\t\treturn defaults;\n\t}\n\tvar result = {};\n\tfor (var key in defaults) {\n\t\t// `if (defaults.hasOwnProperty(key) { … }` is not needed here, since\n\t\t// only recognized option names are used.\n\t\tresult[key] = hasOwnProperty.call(options, key) ? options[key] : defaults[key];\n\t}\n\treturn result;\n};\n\nvar regexAnySingleEscape = /[ -,\\.\\/:-@\\[-\\^`\\{-~]/;\nvar regexSingleEscape = /[ -,\\.\\/:-@\\[\\]\\^`\\{-~]/;\nvar regexAlwaysEscape = /['\"\\\\]/;\nvar regexExcessiveSpaces = /(^|\\\\+)?(\\\\[A-F0-9]{1,6})\\x20(?![a-fA-F0-9\\x20])/g;\n\n// https://mathiasbynens.be/notes/css-escapes#css\nvar cssesc = function cssesc(string, options) {\n\toptions = merge(options, cssesc.options);\n\tif (options.quotes != 'single' && options.quotes != 'double') {\n\t\toptions.quotes = 'single';\n\t}\n\tvar quote = options.quotes == 'double' ? '\"' : '\\'';\n\tvar isIdentifier = options.isIdentifier;\n\n\tvar firstChar = string.charAt(0);\n\tvar output = '';\n\tvar counter = 0;\n\tvar length = string.length;\n\twhile (counter < length) {\n\t\tvar character = string.charAt(counter++);\n\t\tvar codePoint = character.charCodeAt();\n\t\tvar value = void 0;\n\t\t// If it’s not a printable ASCII character…\n\t\tif (codePoint < 0x20 || codePoint > 0x7E) {\n\t\t\tif (codePoint >= 0xD800 && codePoint <= 0xDBFF && counter < length) {\n\t\t\t\t// It’s a high surrogate, and there is a next character.\n\t\t\t\tvar extra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) {\n\t\t\t\t\t// next character is low surrogate\n\t\t\t\t\tcodePoint = ((codePoint & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000;\n\t\t\t\t} else {\n\t\t\t\t\t// It’s an unmatched surrogate; only append this code unit, in case\n\t\t\t\t\t// the next code unit is the high surrogate of a surrogate pair.\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t}\n\t\t\tvalue = '\\\\' + codePoint.toString(16).toUpperCase() + ' ';\n\t\t} else {\n\t\t\tif (options.escapeEverything) {\n\t\t\t\tif (regexAnySingleEscape.test(character)) {\n\t\t\t\t\tvalue = '\\\\' + character;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = '\\\\' + codePoint.toString(16).toUpperCase() + ' ';\n\t\t\t\t}\n\t\t\t} else if (/[\\t\\n\\f\\r\\x0B]/.test(character)) {\n\t\t\t\tvalue = '\\\\' + codePoint.toString(16).toUpperCase() + ' ';\n\t\t\t} else if (character == '\\\\' || !isIdentifier && (character == '\"' && quote == character || character == '\\'' && quote == character) || isIdentifier && regexSingleEscape.test(character)) {\n\t\t\t\tvalue = '\\\\' + character;\n\t\t\t} else {\n\t\t\t\tvalue = character;\n\t\t\t}\n\t\t}\n\t\toutput += value;\n\t}\n\n\tif (isIdentifier) {\n\t\tif (/^-[-\\d]/.test(output)) {\n\t\t\toutput = '\\\\-' + output.slice(1);\n\t\t} else if (/\\d/.test(firstChar)) {\n\t\t\toutput = '\\\\3' + firstChar + ' ' + output.slice(1);\n\t\t}\n\t}\n\n\t// Remove spaces after `\\HEX` escapes that are not followed by a hex digit,\n\t// since they’re redundant. Note that this is only possible if the escape\n\t// sequence isn’t preceded by an odd number of backslashes.\n\toutput = output.replace(regexExcessiveSpaces, function ($0, $1, $2) {\n\t\tif ($1 && $1.length % 2) {\n\t\t\t// It’s not safe to remove the space, so don’t.\n\t\t\treturn $0;\n\t\t}\n\t\t// Strip the space.\n\t\treturn ($1 || '') + $2;\n\t});\n\n\tif (!isIdentifier && options.wrap) {\n\t\treturn quote + output + quote;\n\t}\n\treturn output;\n};\n\n// Expose default options (so they can be overridden globally).\ncssesc.options = {\n\t'escapeEverything': false,\n\t'isIdentifier': false,\n\t'quotes': 'single',\n\t'wrap': false\n};\n\ncssesc.version = '3.0.0';\n\nmodule.exports = cssesc;\n","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _cssesc = _interopRequireDefault(require(\"cssesc\"));\n\nvar _util = require(\"../util\");\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar ClassName = /*#__PURE__*/function (_Node) {\n _inheritsLoose(ClassName, _Node);\n\n function ClassName(opts) {\n var _this;\n\n _this = _Node.call(this, opts) || this;\n _this.type = _types.CLASS;\n _this._constructed = true;\n return _this;\n }\n\n var _proto = ClassName.prototype;\n\n _proto.valueToString = function valueToString() {\n return '.' + _Node.prototype.valueToString.call(this);\n };\n\n _createClass(ClassName, [{\n key: \"value\",\n get: function get() {\n return this._value;\n },\n set: function set(v) {\n if (this._constructed) {\n var escaped = (0, _cssesc[\"default\"])(v, {\n isIdentifier: true\n });\n\n if (escaped !== v) {\n (0, _util.ensureObject)(this, \"raws\");\n this.raws.value = escaped;\n } else if (this.raws) {\n delete this.raws.value;\n }\n }\n\n this._value = v;\n }\n }]);\n\n return ClassName;\n}(_node[\"default\"]);\n\nexports[\"default\"] = ClassName;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Comment = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Comment, _Node);\n\n function Comment(opts) {\n var _this;\n\n _this = _Node.call(this, opts) || this;\n _this.type = _types.COMMENT;\n return _this;\n }\n\n return Comment;\n}(_node[\"default\"]);\n\nexports[\"default\"] = Comment;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar ID = /*#__PURE__*/function (_Node) {\n _inheritsLoose(ID, _Node);\n\n function ID(opts) {\n var _this;\n\n _this = _Node.call(this, opts) || this;\n _this.type = _types.ID;\n return _this;\n }\n\n var _proto = ID.prototype;\n\n _proto.valueToString = function valueToString() {\n return '#' + _Node.prototype.valueToString.call(this);\n };\n\n return ID;\n}(_node[\"default\"]);\n\nexports[\"default\"] = ID;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _cssesc = _interopRequireDefault(require(\"cssesc\"));\n\nvar _util = require(\"../util\");\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Namespace = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Namespace, _Node);\n\n function Namespace() {\n return _Node.apply(this, arguments) || this;\n }\n\n var _proto = Namespace.prototype;\n\n _proto.qualifiedName = function qualifiedName(value) {\n if (this.namespace) {\n return this.namespaceString + \"|\" + value;\n } else {\n return value;\n }\n };\n\n _proto.valueToString = function valueToString() {\n return this.qualifiedName(_Node.prototype.valueToString.call(this));\n };\n\n _createClass(Namespace, [{\n key: \"namespace\",\n get: function get() {\n return this._namespace;\n },\n set: function set(namespace) {\n if (namespace === true || namespace === \"*\" || namespace === \"&\") {\n this._namespace = namespace;\n\n if (this.raws) {\n delete this.raws.namespace;\n }\n\n return;\n }\n\n var escaped = (0, _cssesc[\"default\"])(namespace, {\n isIdentifier: true\n });\n this._namespace = namespace;\n\n if (escaped !== namespace) {\n (0, _util.ensureObject)(this, \"raws\");\n this.raws.namespace = escaped;\n } else if (this.raws) {\n delete this.raws.namespace;\n }\n }\n }, {\n key: \"ns\",\n get: function get() {\n return this._namespace;\n },\n set: function set(namespace) {\n this.namespace = namespace;\n }\n }, {\n key: \"namespaceString\",\n get: function get() {\n if (this.namespace) {\n var ns = this.stringifyProperty(\"namespace\");\n\n if (ns === true) {\n return '';\n } else {\n return ns;\n }\n } else {\n return '';\n }\n }\n }]);\n\n return Namespace;\n}(_node[\"default\"]);\n\nexports[\"default\"] = Namespace;\n;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _namespace = _interopRequireDefault(require(\"./namespace\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Tag = /*#__PURE__*/function (_Namespace) {\n _inheritsLoose(Tag, _Namespace);\n\n function Tag(opts) {\n var _this;\n\n _this = _Namespace.call(this, opts) || this;\n _this.type = _types.TAG;\n return _this;\n }\n\n return Tag;\n}(_namespace[\"default\"]);\n\nexports[\"default\"] = Tag;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar String = /*#__PURE__*/function (_Node) {\n _inheritsLoose(String, _Node);\n\n function String(opts) {\n var _this;\n\n _this = _Node.call(this, opts) || this;\n _this.type = _types.STRING;\n return _this;\n }\n\n return String;\n}(_node[\"default\"]);\n\nexports[\"default\"] = String;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _container = _interopRequireDefault(require(\"./container\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Pseudo = /*#__PURE__*/function (_Container) {\n _inheritsLoose(Pseudo, _Container);\n\n function Pseudo(opts) {\n var _this;\n\n _this = _Container.call(this, opts) || this;\n _this.type = _types.PSEUDO;\n return _this;\n }\n\n var _proto = Pseudo.prototype;\n\n _proto.toString = function toString() {\n var params = this.length ? '(' + this.map(String).join(',') + ')' : '';\n return [this.rawSpaceBefore, this.stringifyProperty(\"value\"), params, this.rawSpaceAfter].join('');\n };\n\n return Pseudo;\n}(_container[\"default\"]);\n\nexports[\"default\"] = Pseudo;\nmodule.exports = exports.default;","module.exports = function deprecate(fn, message) {\n return function (...args) {\n console.warn(message)\n return fn(...args)\n }\n}\n","\"use strict\";\n\nexports.__esModule = true;\nexports.unescapeValue = unescapeValue;\nexports[\"default\"] = void 0;\n\nvar _cssesc = _interopRequireDefault(require(\"cssesc\"));\n\nvar _unesc = _interopRequireDefault(require(\"../util/unesc\"));\n\nvar _namespace = _interopRequireDefault(require(\"./namespace\"));\n\nvar _types = require(\"./types\");\n\nvar _CSSESC_QUOTE_OPTIONS;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar deprecate = require(\"util-deprecate\");\n\nvar WRAPPED_IN_QUOTES = /^('|\")([^]*)\\1$/;\nvar warnOfDeprecatedValueAssignment = deprecate(function () {}, \"Assigning an attribute a value containing characters that might need to be escaped is deprecated. \" + \"Call attribute.setValue() instead.\");\nvar warnOfDeprecatedQuotedAssignment = deprecate(function () {}, \"Assigning attr.quoted is deprecated and has no effect. Assign to attr.quoteMark instead.\");\nvar warnOfDeprecatedConstructor = deprecate(function () {}, \"Constructing an Attribute selector with a value without specifying quoteMark is deprecated. Note: The value should be unescaped now.\");\n\nfunction unescapeValue(value) {\n var deprecatedUsage = false;\n var quoteMark = null;\n var unescaped = value;\n var m = unescaped.match(WRAPPED_IN_QUOTES);\n\n if (m) {\n quoteMark = m[1];\n unescaped = m[2];\n }\n\n unescaped = (0, _unesc[\"default\"])(unescaped);\n\n if (unescaped !== value) {\n deprecatedUsage = true;\n }\n\n return {\n deprecatedUsage: deprecatedUsage,\n unescaped: unescaped,\n quoteMark: quoteMark\n };\n}\n\nfunction handleDeprecatedContructorOpts(opts) {\n if (opts.quoteMark !== undefined) {\n return opts;\n }\n\n if (opts.value === undefined) {\n return opts;\n }\n\n warnOfDeprecatedConstructor();\n\n var _unescapeValue = unescapeValue(opts.value),\n quoteMark = _unescapeValue.quoteMark,\n unescaped = _unescapeValue.unescaped;\n\n if (!opts.raws) {\n opts.raws = {};\n }\n\n if (opts.raws.value === undefined) {\n opts.raws.value = opts.value;\n }\n\n opts.value = unescaped;\n opts.quoteMark = quoteMark;\n return opts;\n}\n\nvar Attribute = /*#__PURE__*/function (_Namespace) {\n _inheritsLoose(Attribute, _Namespace);\n\n function Attribute(opts) {\n var _this;\n\n if (opts === void 0) {\n opts = {};\n }\n\n _this = _Namespace.call(this, handleDeprecatedContructorOpts(opts)) || this;\n _this.type = _types.ATTRIBUTE;\n _this.raws = _this.raws || {};\n Object.defineProperty(_this.raws, 'unquoted', {\n get: deprecate(function () {\n return _this.value;\n }, \"attr.raws.unquoted is deprecated. Call attr.value instead.\"),\n set: deprecate(function () {\n return _this.value;\n }, \"Setting attr.raws.unquoted is deprecated and has no effect. attr.value is unescaped by default now.\")\n });\n _this._constructed = true;\n return _this;\n }\n /**\n * Returns the Attribute's value quoted such that it would be legal to use\n * in the value of a css file. The original value's quotation setting\n * used for stringification is left unchanged. See `setValue(value, options)`\n * if you want to control the quote settings of a new value for the attribute.\n *\n * You can also change the quotation used for the current value by setting quoteMark.\n *\n * Options:\n * * quoteMark {'\"' | \"'\" | null} - Use this value to quote the value. If this\n * option is not set, the original value for quoteMark will be used. If\n * indeterminate, a double quote is used. The legal values are:\n * * `null` - the value will be unquoted and characters will be escaped as necessary.\n * * `'` - the value will be quoted with a single quote and single quotes are escaped.\n * * `\"` - the value will be quoted with a double quote and double quotes are escaped.\n * * preferCurrentQuoteMark {boolean} - if true, prefer the source quote mark\n * over the quoteMark option value.\n * * smart {boolean} - if true, will select a quote mark based on the value\n * and the other options specified here. See the `smartQuoteMark()`\n * method.\n **/\n\n\n var _proto = Attribute.prototype;\n\n _proto.getQuotedValue = function getQuotedValue(options) {\n if (options === void 0) {\n options = {};\n }\n\n var quoteMark = this._determineQuoteMark(options);\n\n var cssescopts = CSSESC_QUOTE_OPTIONS[quoteMark];\n var escaped = (0, _cssesc[\"default\"])(this._value, cssescopts);\n return escaped;\n };\n\n _proto._determineQuoteMark = function _determineQuoteMark(options) {\n return options.smart ? this.smartQuoteMark(options) : this.preferredQuoteMark(options);\n }\n /**\n * Set the unescaped value with the specified quotation options. The value\n * provided must not include any wrapping quote marks -- those quotes will\n * be interpreted as part of the value and escaped accordingly.\n */\n ;\n\n _proto.setValue = function setValue(value, options) {\n if (options === void 0) {\n options = {};\n }\n\n this._value = value;\n this._quoteMark = this._determineQuoteMark(options);\n\n this._syncRawValue();\n }\n /**\n * Intelligently select a quoteMark value based on the value's contents. If\n * the value is a legal CSS ident, it will not be quoted. Otherwise a quote\n * mark will be picked that minimizes the number of escapes.\n *\n * If there's no clear winner, the quote mark from these options is used,\n * then the source quote mark (this is inverted if `preferCurrentQuoteMark` is\n * true). If the quoteMark is unspecified, a double quote is used.\n *\n * @param options This takes the quoteMark and preferCurrentQuoteMark options\n * from the quoteValue method.\n */\n ;\n\n _proto.smartQuoteMark = function smartQuoteMark(options) {\n var v = this.value;\n var numSingleQuotes = v.replace(/[^']/g, '').length;\n var numDoubleQuotes = v.replace(/[^\"]/g, '').length;\n\n if (numSingleQuotes + numDoubleQuotes === 0) {\n var escaped = (0, _cssesc[\"default\"])(v, {\n isIdentifier: true\n });\n\n if (escaped === v) {\n return Attribute.NO_QUOTE;\n } else {\n var pref = this.preferredQuoteMark(options);\n\n if (pref === Attribute.NO_QUOTE) {\n // pick a quote mark that isn't none and see if it's smaller\n var quote = this.quoteMark || options.quoteMark || Attribute.DOUBLE_QUOTE;\n var opts = CSSESC_QUOTE_OPTIONS[quote];\n var quoteValue = (0, _cssesc[\"default\"])(v, opts);\n\n if (quoteValue.length < escaped.length) {\n return quote;\n }\n }\n\n return pref;\n }\n } else if (numDoubleQuotes === numSingleQuotes) {\n return this.preferredQuoteMark(options);\n } else if (numDoubleQuotes < numSingleQuotes) {\n return Attribute.DOUBLE_QUOTE;\n } else {\n return Attribute.SINGLE_QUOTE;\n }\n }\n /**\n * Selects the preferred quote mark based on the options and the current quote mark value.\n * If you want the quote mark to depend on the attribute value, call `smartQuoteMark(opts)`\n * instead.\n */\n ;\n\n _proto.preferredQuoteMark = function preferredQuoteMark(options) {\n var quoteMark = options.preferCurrentQuoteMark ? this.quoteMark : options.quoteMark;\n\n if (quoteMark === undefined) {\n quoteMark = options.preferCurrentQuoteMark ? options.quoteMark : this.quoteMark;\n }\n\n if (quoteMark === undefined) {\n quoteMark = Attribute.DOUBLE_QUOTE;\n }\n\n return quoteMark;\n };\n\n _proto._syncRawValue = function _syncRawValue() {\n var rawValue = (0, _cssesc[\"default\"])(this._value, CSSESC_QUOTE_OPTIONS[this.quoteMark]);\n\n if (rawValue === this._value) {\n if (this.raws) {\n delete this.raws.value;\n }\n } else {\n this.raws.value = rawValue;\n }\n };\n\n _proto._handleEscapes = function _handleEscapes(prop, value) {\n if (this._constructed) {\n var escaped = (0, _cssesc[\"default\"])(value, {\n isIdentifier: true\n });\n\n if (escaped !== value) {\n this.raws[prop] = escaped;\n } else {\n delete this.raws[prop];\n }\n }\n };\n\n _proto._spacesFor = function _spacesFor(name) {\n var attrSpaces = {\n before: '',\n after: ''\n };\n var spaces = this.spaces[name] || {};\n var rawSpaces = this.raws.spaces && this.raws.spaces[name] || {};\n return Object.assign(attrSpaces, spaces, rawSpaces);\n };\n\n _proto._stringFor = function _stringFor(name, spaceName, concat) {\n if (spaceName === void 0) {\n spaceName = name;\n }\n\n if (concat === void 0) {\n concat = defaultAttrConcat;\n }\n\n var attrSpaces = this._spacesFor(spaceName);\n\n return concat(this.stringifyProperty(name), attrSpaces);\n }\n /**\n * returns the offset of the attribute part specified relative to the\n * start of the node of the output string.\n *\n * * \"ns\" - alias for \"namespace\"\n * * \"namespace\" - the namespace if it exists.\n * * \"attribute\" - the attribute name\n * * \"attributeNS\" - the start of the attribute or its namespace\n * * \"operator\" - the match operator of the attribute\n * * \"value\" - The value (string or identifier)\n * * \"insensitive\" - the case insensitivity flag;\n * @param part One of the possible values inside an attribute.\n * @returns -1 if the name is invalid or the value doesn't exist in this attribute.\n */\n ;\n\n _proto.offsetOf = function offsetOf(name) {\n var count = 1;\n\n var attributeSpaces = this._spacesFor(\"attribute\");\n\n count += attributeSpaces.before.length;\n\n if (name === \"namespace\" || name === \"ns\") {\n return this.namespace ? count : -1;\n }\n\n if (name === \"attributeNS\") {\n return count;\n }\n\n count += this.namespaceString.length;\n\n if (this.namespace) {\n count += 1;\n }\n\n if (name === \"attribute\") {\n return count;\n }\n\n count += this.stringifyProperty(\"attribute\").length;\n count += attributeSpaces.after.length;\n\n var operatorSpaces = this._spacesFor(\"operator\");\n\n count += operatorSpaces.before.length;\n var operator = this.stringifyProperty(\"operator\");\n\n if (name === \"operator\") {\n return operator ? count : -1;\n }\n\n count += operator.length;\n count += operatorSpaces.after.length;\n\n var valueSpaces = this._spacesFor(\"value\");\n\n count += valueSpaces.before.length;\n var value = this.stringifyProperty(\"value\");\n\n if (name === \"value\") {\n return value ? count : -1;\n }\n\n count += value.length;\n count += valueSpaces.after.length;\n\n var insensitiveSpaces = this._spacesFor(\"insensitive\");\n\n count += insensitiveSpaces.before.length;\n\n if (name === \"insensitive\") {\n return this.insensitive ? count : -1;\n }\n\n return -1;\n };\n\n _proto.toString = function toString() {\n var _this2 = this;\n\n var selector = [this.rawSpaceBefore, '['];\n selector.push(this._stringFor('qualifiedAttribute', 'attribute'));\n\n if (this.operator && (this.value || this.value === '')) {\n selector.push(this._stringFor('operator'));\n selector.push(this._stringFor('value'));\n selector.push(this._stringFor('insensitiveFlag', 'insensitive', function (attrValue, attrSpaces) {\n if (attrValue.length > 0 && !_this2.quoted && attrSpaces.before.length === 0 && !(_this2.spaces.value && _this2.spaces.value.after)) {\n attrSpaces.before = \" \";\n }\n\n return defaultAttrConcat(attrValue, attrSpaces);\n }));\n }\n\n selector.push(']');\n selector.push(this.rawSpaceAfter);\n return selector.join('');\n };\n\n _createClass(Attribute, [{\n key: \"quoted\",\n get: function get() {\n var qm = this.quoteMark;\n return qm === \"'\" || qm === '\"';\n },\n set: function set(value) {\n warnOfDeprecatedQuotedAssignment();\n }\n /**\n * returns a single (`'`) or double (`\"`) quote character if the value is quoted.\n * returns `null` if the value is not quoted.\n * returns `undefined` if the quotation state is unknown (this can happen when\n * the attribute is constructed without specifying a quote mark.)\n */\n\n }, {\n key: \"quoteMark\",\n get: function get() {\n return this._quoteMark;\n }\n /**\n * Set the quote mark to be used by this attribute's value.\n * If the quote mark changes, the raw (escaped) value at `attr.raws.value` of the attribute\n * value is updated accordingly.\n *\n * @param {\"'\" | '\"' | null} quoteMark The quote mark or `null` if the value should be unquoted.\n */\n ,\n set: function set(quoteMark) {\n if (!this._constructed) {\n this._quoteMark = quoteMark;\n return;\n }\n\n if (this._quoteMark !== quoteMark) {\n this._quoteMark = quoteMark;\n\n this._syncRawValue();\n }\n }\n }, {\n key: \"qualifiedAttribute\",\n get: function get() {\n return this.qualifiedName(this.raws.attribute || this.attribute);\n }\n }, {\n key: \"insensitiveFlag\",\n get: function get() {\n return this.insensitive ? 'i' : '';\n }\n }, {\n key: \"value\",\n get: function get() {\n return this._value;\n }\n /**\n * Before 3.0, the value had to be set to an escaped value including any wrapped\n * quote marks. In 3.0, the semantics of `Attribute.value` changed so that the value\n * is unescaped during parsing and any quote marks are removed.\n *\n * Because the ambiguity of this semantic change, if you set `attr.value = newValue`,\n * a deprecation warning is raised when the new value contains any characters that would\n * require escaping (including if it contains wrapped quotes).\n *\n * Instead, you should call `attr.setValue(newValue, opts)` and pass options that describe\n * how the new value is quoted.\n */\n ,\n set: function set(v) {\n if (this._constructed) {\n var _unescapeValue2 = unescapeValue(v),\n deprecatedUsage = _unescapeValue2.deprecatedUsage,\n unescaped = _unescapeValue2.unescaped,\n quoteMark = _unescapeValue2.quoteMark;\n\n if (deprecatedUsage) {\n warnOfDeprecatedValueAssignment();\n }\n\n if (unescaped === this._value && quoteMark === this._quoteMark) {\n return;\n }\n\n this._value = unescaped;\n this._quoteMark = quoteMark;\n\n this._syncRawValue();\n } else {\n this._value = v;\n }\n }\n }, {\n key: \"attribute\",\n get: function get() {\n return this._attribute;\n },\n set: function set(name) {\n this._handleEscapes(\"attribute\", name);\n\n this._attribute = name;\n }\n }]);\n\n return Attribute;\n}(_namespace[\"default\"]);\n\nexports[\"default\"] = Attribute;\nAttribute.NO_QUOTE = null;\nAttribute.SINGLE_QUOTE = \"'\";\nAttribute.DOUBLE_QUOTE = '\"';\nvar CSSESC_QUOTE_OPTIONS = (_CSSESC_QUOTE_OPTIONS = {\n \"'\": {\n quotes: 'single',\n wrap: true\n },\n '\"': {\n quotes: 'double',\n wrap: true\n }\n}, _CSSESC_QUOTE_OPTIONS[null] = {\n isIdentifier: true\n}, _CSSESC_QUOTE_OPTIONS);\n\nfunction defaultAttrConcat(attrValue, attrSpaces) {\n return \"\" + attrSpaces.before + attrValue + attrSpaces.after;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _namespace = _interopRequireDefault(require(\"./namespace\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Universal = /*#__PURE__*/function (_Namespace) {\n _inheritsLoose(Universal, _Namespace);\n\n function Universal(opts) {\n var _this;\n\n _this = _Namespace.call(this, opts) || this;\n _this.type = _types.UNIVERSAL;\n _this.value = '*';\n return _this;\n }\n\n return Universal;\n}(_namespace[\"default\"]);\n\nexports[\"default\"] = Universal;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Combinator = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Combinator, _Node);\n\n function Combinator(opts) {\n var _this;\n\n _this = _Node.call(this, opts) || this;\n _this.type = _types.COMBINATOR;\n return _this;\n }\n\n return Combinator;\n}(_node[\"default\"]);\n\nexports[\"default\"] = Combinator;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Nesting = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Nesting, _Node);\n\n function Nesting(opts) {\n var _this;\n\n _this = _Node.call(this, opts) || this;\n _this.type = _types.NESTING;\n _this.value = '&';\n return _this;\n }\n\n return Nesting;\n}(_node[\"default\"]);\n\nexports[\"default\"] = Nesting;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = sortAscending;\n\nfunction sortAscending(list) {\n return list.sort(function (a, b) {\n return a - b;\n });\n}\n\n;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.combinator = exports.word = exports.comment = exports.str = exports.tab = exports.newline = exports.feed = exports.cr = exports.backslash = exports.bang = exports.slash = exports.doubleQuote = exports.singleQuote = exports.space = exports.greaterThan = exports.pipe = exports.equals = exports.plus = exports.caret = exports.tilde = exports.dollar = exports.closeSquare = exports.openSquare = exports.closeParenthesis = exports.openParenthesis = exports.semicolon = exports.colon = exports.comma = exports.at = exports.asterisk = exports.ampersand = void 0;\nvar ampersand = 38; // `&`.charCodeAt(0);\n\nexports.ampersand = ampersand;\nvar asterisk = 42; // `*`.charCodeAt(0);\n\nexports.asterisk = asterisk;\nvar at = 64; // `@`.charCodeAt(0);\n\nexports.at = at;\nvar comma = 44; // `,`.charCodeAt(0);\n\nexports.comma = comma;\nvar colon = 58; // `:`.charCodeAt(0);\n\nexports.colon = colon;\nvar semicolon = 59; // `;`.charCodeAt(0);\n\nexports.semicolon = semicolon;\nvar openParenthesis = 40; // `(`.charCodeAt(0);\n\nexports.openParenthesis = openParenthesis;\nvar closeParenthesis = 41; // `)`.charCodeAt(0);\n\nexports.closeParenthesis = closeParenthesis;\nvar openSquare = 91; // `[`.charCodeAt(0);\n\nexports.openSquare = openSquare;\nvar closeSquare = 93; // `]`.charCodeAt(0);\n\nexports.closeSquare = closeSquare;\nvar dollar = 36; // `$`.charCodeAt(0);\n\nexports.dollar = dollar;\nvar tilde = 126; // `~`.charCodeAt(0);\n\nexports.tilde = tilde;\nvar caret = 94; // `^`.charCodeAt(0);\n\nexports.caret = caret;\nvar plus = 43; // `+`.charCodeAt(0);\n\nexports.plus = plus;\nvar equals = 61; // `=`.charCodeAt(0);\n\nexports.equals = equals;\nvar pipe = 124; // `|`.charCodeAt(0);\n\nexports.pipe = pipe;\nvar greaterThan = 62; // `>`.charCodeAt(0);\n\nexports.greaterThan = greaterThan;\nvar space = 32; // ` `.charCodeAt(0);\n\nexports.space = space;\nvar singleQuote = 39; // `'`.charCodeAt(0);\n\nexports.singleQuote = singleQuote;\nvar doubleQuote = 34; // `\"`.charCodeAt(0);\n\nexports.doubleQuote = doubleQuote;\nvar slash = 47; // `/`.charCodeAt(0);\n\nexports.slash = slash;\nvar bang = 33; // `!`.charCodeAt(0);\n\nexports.bang = bang;\nvar backslash = 92; // '\\\\'.charCodeAt(0);\n\nexports.backslash = backslash;\nvar cr = 13; // '\\r'.charCodeAt(0);\n\nexports.cr = cr;\nvar feed = 12; // '\\f'.charCodeAt(0);\n\nexports.feed = feed;\nvar newline = 10; // '\\n'.charCodeAt(0);\n\nexports.newline = newline;\nvar tab = 9; // '\\t'.charCodeAt(0);\n// Expose aliases primarily for readability.\n\nexports.tab = tab;\nvar str = singleQuote; // No good single character representation!\n\nexports.str = str;\nvar comment = -1;\nexports.comment = comment;\nvar word = -2;\nexports.word = word;\nvar combinator = -3;\nexports.combinator = combinator;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = tokenize;\nexports.FIELDS = void 0;\n\nvar t = _interopRequireWildcard(require(\"./tokenTypes\"));\n\nvar _unescapable, _wordDelimiters;\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar unescapable = (_unescapable = {}, _unescapable[t.tab] = true, _unescapable[t.newline] = true, _unescapable[t.cr] = true, _unescapable[t.feed] = true, _unescapable);\nvar wordDelimiters = (_wordDelimiters = {}, _wordDelimiters[t.space] = true, _wordDelimiters[t.tab] = true, _wordDelimiters[t.newline] = true, _wordDelimiters[t.cr] = true, _wordDelimiters[t.feed] = true, _wordDelimiters[t.ampersand] = true, _wordDelimiters[t.asterisk] = true, _wordDelimiters[t.bang] = true, _wordDelimiters[t.comma] = true, _wordDelimiters[t.colon] = true, _wordDelimiters[t.semicolon] = true, _wordDelimiters[t.openParenthesis] = true, _wordDelimiters[t.closeParenthesis] = true, _wordDelimiters[t.openSquare] = true, _wordDelimiters[t.closeSquare] = true, _wordDelimiters[t.singleQuote] = true, _wordDelimiters[t.doubleQuote] = true, _wordDelimiters[t.plus] = true, _wordDelimiters[t.pipe] = true, _wordDelimiters[t.tilde] = true, _wordDelimiters[t.greaterThan] = true, _wordDelimiters[t.equals] = true, _wordDelimiters[t.dollar] = true, _wordDelimiters[t.caret] = true, _wordDelimiters[t.slash] = true, _wordDelimiters);\nvar hex = {};\nvar hexChars = \"0123456789abcdefABCDEF\";\n\nfor (var i = 0; i < hexChars.length; i++) {\n hex[hexChars.charCodeAt(i)] = true;\n}\n/**\n * Returns the last index of the bar css word\n * @param {string} css The string in which the word begins\n * @param {number} start The index into the string where word's first letter occurs\n */\n\n\nfunction consumeWord(css, start) {\n var next = start;\n var code;\n\n do {\n code = css.charCodeAt(next);\n\n if (wordDelimiters[code]) {\n return next - 1;\n } else if (code === t.backslash) {\n next = consumeEscape(css, next) + 1;\n } else {\n // All other characters are part of the word\n next++;\n }\n } while (next < css.length);\n\n return next - 1;\n}\n/**\n * Returns the last index of the escape sequence\n * @param {string} css The string in which the sequence begins\n * @param {number} start The index into the string where escape character (`\\`) occurs.\n */\n\n\nfunction consumeEscape(css, start) {\n var next = start;\n var code = css.charCodeAt(next + 1);\n\n if (unescapable[code]) {// just consume the escape char\n } else if (hex[code]) {\n var hexDigits = 0; // consume up to 6 hex chars\n\n do {\n next++;\n hexDigits++;\n code = css.charCodeAt(next + 1);\n } while (hex[code] && hexDigits < 6); // if fewer than 6 hex chars, a trailing space ends the escape\n\n\n if (hexDigits < 6 && code === t.space) {\n next++;\n }\n } else {\n // the next char is part of the current word\n next++;\n }\n\n return next;\n}\n\nvar FIELDS = {\n TYPE: 0,\n START_LINE: 1,\n START_COL: 2,\n END_LINE: 3,\n END_COL: 4,\n START_POS: 5,\n END_POS: 6\n};\nexports.FIELDS = FIELDS;\n\nfunction tokenize(input) {\n var tokens = [];\n var css = input.css.valueOf();\n var _css = css,\n length = _css.length;\n var offset = -1;\n var line = 1;\n var start = 0;\n var end = 0;\n var code, content, endColumn, endLine, escaped, escapePos, last, lines, next, nextLine, nextOffset, quote, tokenType;\n\n function unclosed(what, fix) {\n if (input.safe) {\n // fyi: this is never set to true.\n css += fix;\n next = css.length - 1;\n } else {\n throw input.error('Unclosed ' + what, line, start - offset, start);\n }\n }\n\n while (start < length) {\n code = css.charCodeAt(start);\n\n if (code === t.newline) {\n offset = start;\n line += 1;\n }\n\n switch (code) {\n case t.space:\n case t.tab:\n case t.newline:\n case t.cr:\n case t.feed:\n next = start;\n\n do {\n next += 1;\n code = css.charCodeAt(next);\n\n if (code === t.newline) {\n offset = next;\n line += 1;\n }\n } while (code === t.space || code === t.newline || code === t.tab || code === t.cr || code === t.feed);\n\n tokenType = t.space;\n endLine = line;\n endColumn = next - offset - 1;\n end = next;\n break;\n\n case t.plus:\n case t.greaterThan:\n case t.tilde:\n case t.pipe:\n next = start;\n\n do {\n next += 1;\n code = css.charCodeAt(next);\n } while (code === t.plus || code === t.greaterThan || code === t.tilde || code === t.pipe);\n\n tokenType = t.combinator;\n endLine = line;\n endColumn = start - offset;\n end = next;\n break;\n // Consume these characters as single tokens.\n\n case t.asterisk:\n case t.ampersand:\n case t.bang:\n case t.comma:\n case t.equals:\n case t.dollar:\n case t.caret:\n case t.openSquare:\n case t.closeSquare:\n case t.colon:\n case t.semicolon:\n case t.openParenthesis:\n case t.closeParenthesis:\n next = start;\n tokenType = code;\n endLine = line;\n endColumn = start - offset;\n end = next + 1;\n break;\n\n case t.singleQuote:\n case t.doubleQuote:\n quote = code === t.singleQuote ? \"'\" : '\"';\n next = start;\n\n do {\n escaped = false;\n next = css.indexOf(quote, next + 1);\n\n if (next === -1) {\n unclosed('quote', quote);\n }\n\n escapePos = next;\n\n while (css.charCodeAt(escapePos - 1) === t.backslash) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n\n tokenType = t.str;\n endLine = line;\n endColumn = start - offset;\n end = next + 1;\n break;\n\n default:\n if (code === t.slash && css.charCodeAt(start + 1) === t.asterisk) {\n next = css.indexOf('*/', start + 2) + 1;\n\n if (next === 0) {\n unclosed('comment', '*/');\n }\n\n content = css.slice(start, next + 1);\n lines = content.split('\\n');\n last = lines.length - 1;\n\n if (last > 0) {\n nextLine = line + last;\n nextOffset = next - lines[last].length;\n } else {\n nextLine = line;\n nextOffset = offset;\n }\n\n tokenType = t.comment;\n line = nextLine;\n endLine = nextLine;\n endColumn = next - nextOffset;\n } else if (code === t.slash) {\n next = start;\n tokenType = code;\n endLine = line;\n endColumn = start - offset;\n end = next + 1;\n } else {\n next = consumeWord(css, start);\n tokenType = t.word;\n endLine = line;\n endColumn = next - offset;\n }\n\n end = next + 1;\n break;\n } // Ensure that the token structure remains consistent\n\n\n tokens.push([tokenType, // [0] Token type\n line, // [1] Starting line\n start - offset, // [2] Starting column\n endLine, // [3] Ending line\n endColumn, // [4] Ending column\n start, // [5] Start position / Source index\n end // [6] End position\n ]); // Reset offset for the next token\n\n if (nextOffset) {\n offset = nextOffset;\n nextOffset = null;\n }\n\n start = end;\n }\n\n return tokens;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _root = _interopRequireDefault(require(\"./selectors/root\"));\n\nvar _selector = _interopRequireDefault(require(\"./selectors/selector\"));\n\nvar _className = _interopRequireDefault(require(\"./selectors/className\"));\n\nvar _comment = _interopRequireDefault(require(\"./selectors/comment\"));\n\nvar _id = _interopRequireDefault(require(\"./selectors/id\"));\n\nvar _tag = _interopRequireDefault(require(\"./selectors/tag\"));\n\nvar _string = _interopRequireDefault(require(\"./selectors/string\"));\n\nvar _pseudo = _interopRequireDefault(require(\"./selectors/pseudo\"));\n\nvar _attribute = _interopRequireWildcard(require(\"./selectors/attribute\"));\n\nvar _universal = _interopRequireDefault(require(\"./selectors/universal\"));\n\nvar _combinator = _interopRequireDefault(require(\"./selectors/combinator\"));\n\nvar _nesting = _interopRequireDefault(require(\"./selectors/nesting\"));\n\nvar _sortAscending = _interopRequireDefault(require(\"./sortAscending\"));\n\nvar _tokenize = _interopRequireWildcard(require(\"./tokenize\"));\n\nvar tokens = _interopRequireWildcard(require(\"./tokenTypes\"));\n\nvar types = _interopRequireWildcard(require(\"./selectors/types\"));\n\nvar _util = require(\"./util\");\n\nvar _WHITESPACE_TOKENS, _Object$assign;\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar WHITESPACE_TOKENS = (_WHITESPACE_TOKENS = {}, _WHITESPACE_TOKENS[tokens.space] = true, _WHITESPACE_TOKENS[tokens.cr] = true, _WHITESPACE_TOKENS[tokens.feed] = true, _WHITESPACE_TOKENS[tokens.newline] = true, _WHITESPACE_TOKENS[tokens.tab] = true, _WHITESPACE_TOKENS);\nvar WHITESPACE_EQUIV_TOKENS = Object.assign({}, WHITESPACE_TOKENS, (_Object$assign = {}, _Object$assign[tokens.comment] = true, _Object$assign));\n\nfunction tokenStart(token) {\n return {\n line: token[_tokenize.FIELDS.START_LINE],\n column: token[_tokenize.FIELDS.START_COL]\n };\n}\n\nfunction tokenEnd(token) {\n return {\n line: token[_tokenize.FIELDS.END_LINE],\n column: token[_tokenize.FIELDS.END_COL]\n };\n}\n\nfunction getSource(startLine, startColumn, endLine, endColumn) {\n return {\n start: {\n line: startLine,\n column: startColumn\n },\n end: {\n line: endLine,\n column: endColumn\n }\n };\n}\n\nfunction getTokenSource(token) {\n return getSource(token[_tokenize.FIELDS.START_LINE], token[_tokenize.FIELDS.START_COL], token[_tokenize.FIELDS.END_LINE], token[_tokenize.FIELDS.END_COL]);\n}\n\nfunction getTokenSourceSpan(startToken, endToken) {\n if (!startToken) {\n return undefined;\n }\n\n return getSource(startToken[_tokenize.FIELDS.START_LINE], startToken[_tokenize.FIELDS.START_COL], endToken[_tokenize.FIELDS.END_LINE], endToken[_tokenize.FIELDS.END_COL]);\n}\n\nfunction unescapeProp(node, prop) {\n var value = node[prop];\n\n if (typeof value !== \"string\") {\n return;\n }\n\n if (value.indexOf(\"\\\\\") !== -1) {\n (0, _util.ensureObject)(node, 'raws');\n node[prop] = (0, _util.unesc)(value);\n\n if (node.raws[prop] === undefined) {\n node.raws[prop] = value;\n }\n }\n\n return node;\n}\n\nfunction indexesOf(array, item) {\n var i = -1;\n var indexes = [];\n\n while ((i = array.indexOf(item, i + 1)) !== -1) {\n indexes.push(i);\n }\n\n return indexes;\n}\n\nfunction uniqs() {\n var list = Array.prototype.concat.apply([], arguments);\n return list.filter(function (item, i) {\n return i === list.indexOf(item);\n });\n}\n\nvar Parser = /*#__PURE__*/function () {\n function Parser(rule, options) {\n if (options === void 0) {\n options = {};\n }\n\n this.rule = rule;\n this.options = Object.assign({\n lossy: false,\n safe: false\n }, options);\n this.position = 0;\n this.css = typeof this.rule === 'string' ? this.rule : this.rule.selector;\n this.tokens = (0, _tokenize[\"default\"])({\n css: this.css,\n error: this._errorGenerator(),\n safe: this.options.safe\n });\n var rootSource = getTokenSourceSpan(this.tokens[0], this.tokens[this.tokens.length - 1]);\n this.root = new _root[\"default\"]({\n source: rootSource\n });\n this.root.errorGenerator = this._errorGenerator();\n var selector = new _selector[\"default\"]({\n source: {\n start: {\n line: 1,\n column: 1\n }\n }\n });\n this.root.append(selector);\n this.current = selector;\n this.loop();\n }\n\n var _proto = Parser.prototype;\n\n _proto._errorGenerator = function _errorGenerator() {\n var _this = this;\n\n return function (message, errorOptions) {\n if (typeof _this.rule === 'string') {\n return new Error(message);\n }\n\n return _this.rule.error(message, errorOptions);\n };\n };\n\n _proto.attribute = function attribute() {\n var attr = [];\n var startingToken = this.currToken;\n this.position++;\n\n while (this.position < this.tokens.length && this.currToken[_tokenize.FIELDS.TYPE] !== tokens.closeSquare) {\n attr.push(this.currToken);\n this.position++;\n }\n\n if (this.currToken[_tokenize.FIELDS.TYPE] !== tokens.closeSquare) {\n return this.expected('closing square bracket', this.currToken[_tokenize.FIELDS.START_POS]);\n }\n\n var len = attr.length;\n var node = {\n source: getSource(startingToken[1], startingToken[2], this.currToken[3], this.currToken[4]),\n sourceIndex: startingToken[_tokenize.FIELDS.START_POS]\n };\n\n if (len === 1 && !~[tokens.word].indexOf(attr[0][_tokenize.FIELDS.TYPE])) {\n return this.expected('attribute', attr[0][_tokenize.FIELDS.START_POS]);\n }\n\n var pos = 0;\n var spaceBefore = '';\n var commentBefore = '';\n var lastAdded = null;\n var spaceAfterMeaningfulToken = false;\n\n while (pos < len) {\n var token = attr[pos];\n var content = this.content(token);\n var next = attr[pos + 1];\n\n switch (token[_tokenize.FIELDS.TYPE]) {\n case tokens.space:\n // if (\n // len === 1 ||\n // pos === 0 && this.content(next) === '|'\n // ) {\n // return this.expected('attribute', token[TOKEN.START_POS], content);\n // }\n spaceAfterMeaningfulToken = true;\n\n if (this.options.lossy) {\n break;\n }\n\n if (lastAdded) {\n (0, _util.ensureObject)(node, 'spaces', lastAdded);\n var prevContent = node.spaces[lastAdded].after || '';\n node.spaces[lastAdded].after = prevContent + content;\n var existingComment = (0, _util.getProp)(node, 'raws', 'spaces', lastAdded, 'after') || null;\n\n if (existingComment) {\n node.raws.spaces[lastAdded].after = existingComment + content;\n }\n } else {\n spaceBefore = spaceBefore + content;\n commentBefore = commentBefore + content;\n }\n\n break;\n\n case tokens.asterisk:\n if (next[_tokenize.FIELDS.TYPE] === tokens.equals) {\n node.operator = content;\n lastAdded = 'operator';\n } else if ((!node.namespace || lastAdded === \"namespace\" && !spaceAfterMeaningfulToken) && next) {\n if (spaceBefore) {\n (0, _util.ensureObject)(node, 'spaces', 'attribute');\n node.spaces.attribute.before = spaceBefore;\n spaceBefore = '';\n }\n\n if (commentBefore) {\n (0, _util.ensureObject)(node, 'raws', 'spaces', 'attribute');\n node.raws.spaces.attribute.before = spaceBefore;\n commentBefore = '';\n }\n\n node.namespace = (node.namespace || \"\") + content;\n var rawValue = (0, _util.getProp)(node, 'raws', 'namespace') || null;\n\n if (rawValue) {\n node.raws.namespace += content;\n }\n\n lastAdded = 'namespace';\n }\n\n spaceAfterMeaningfulToken = false;\n break;\n\n case tokens.dollar:\n if (lastAdded === \"value\") {\n var oldRawValue = (0, _util.getProp)(node, 'raws', 'value');\n node.value += \"$\";\n\n if (oldRawValue) {\n node.raws.value = oldRawValue + \"$\";\n }\n\n break;\n }\n\n // Falls through\n\n case tokens.caret:\n if (next[_tokenize.FIELDS.TYPE] === tokens.equals) {\n node.operator = content;\n lastAdded = 'operator';\n }\n\n spaceAfterMeaningfulToken = false;\n break;\n\n case tokens.combinator:\n if (content === '~' && next[_tokenize.FIELDS.TYPE] === tokens.equals) {\n node.operator = content;\n lastAdded = 'operator';\n }\n\n if (content !== '|') {\n spaceAfterMeaningfulToken = false;\n break;\n }\n\n if (next[_tokenize.FIELDS.TYPE] === tokens.equals) {\n node.operator = content;\n lastAdded = 'operator';\n } else if (!node.namespace && !node.attribute) {\n node.namespace = true;\n }\n\n spaceAfterMeaningfulToken = false;\n break;\n\n case tokens.word:\n if (next && this.content(next) === '|' && attr[pos + 2] && attr[pos + 2][_tokenize.FIELDS.TYPE] !== tokens.equals && // this look-ahead probably fails with comment nodes involved.\n !node.operator && !node.namespace) {\n node.namespace = content;\n lastAdded = 'namespace';\n } else if (!node.attribute || lastAdded === \"attribute\" && !spaceAfterMeaningfulToken) {\n if (spaceBefore) {\n (0, _util.ensureObject)(node, 'spaces', 'attribute');\n node.spaces.attribute.before = spaceBefore;\n spaceBefore = '';\n }\n\n if (commentBefore) {\n (0, _util.ensureObject)(node, 'raws', 'spaces', 'attribute');\n node.raws.spaces.attribute.before = commentBefore;\n commentBefore = '';\n }\n\n node.attribute = (node.attribute || \"\") + content;\n\n var _rawValue = (0, _util.getProp)(node, 'raws', 'attribute') || null;\n\n if (_rawValue) {\n node.raws.attribute += content;\n }\n\n lastAdded = 'attribute';\n } else if (!node.value && node.value !== \"\" || lastAdded === \"value\" && !spaceAfterMeaningfulToken) {\n var _unescaped = (0, _util.unesc)(content);\n\n var _oldRawValue = (0, _util.getProp)(node, 'raws', 'value') || '';\n\n var oldValue = node.value || '';\n node.value = oldValue + _unescaped;\n node.quoteMark = null;\n\n if (_unescaped !== content || _oldRawValue) {\n (0, _util.ensureObject)(node, 'raws');\n node.raws.value = (_oldRawValue || oldValue) + content;\n }\n\n lastAdded = 'value';\n } else {\n var insensitive = content === 'i' || content === \"I\";\n\n if ((node.value || node.value === '') && (node.quoteMark || spaceAfterMeaningfulToken)) {\n node.insensitive = insensitive;\n\n if (!insensitive || content === \"I\") {\n (0, _util.ensureObject)(node, 'raws');\n node.raws.insensitiveFlag = content;\n }\n\n lastAdded = 'insensitive';\n\n if (spaceBefore) {\n (0, _util.ensureObject)(node, 'spaces', 'insensitive');\n node.spaces.insensitive.before = spaceBefore;\n spaceBefore = '';\n }\n\n if (commentBefore) {\n (0, _util.ensureObject)(node, 'raws', 'spaces', 'insensitive');\n node.raws.spaces.insensitive.before = commentBefore;\n commentBefore = '';\n }\n } else if (node.value || node.value === '') {\n lastAdded = 'value';\n node.value += content;\n\n if (node.raws.value) {\n node.raws.value += content;\n }\n }\n }\n\n spaceAfterMeaningfulToken = false;\n break;\n\n case tokens.str:\n if (!node.attribute || !node.operator) {\n return this.error(\"Expected an attribute followed by an operator preceding the string.\", {\n index: token[_tokenize.FIELDS.START_POS]\n });\n }\n\n var _unescapeValue = (0, _attribute.unescapeValue)(content),\n unescaped = _unescapeValue.unescaped,\n quoteMark = _unescapeValue.quoteMark;\n\n node.value = unescaped;\n node.quoteMark = quoteMark;\n lastAdded = 'value';\n (0, _util.ensureObject)(node, 'raws');\n node.raws.value = content;\n spaceAfterMeaningfulToken = false;\n break;\n\n case tokens.equals:\n if (!node.attribute) {\n return this.expected('attribute', token[_tokenize.FIELDS.START_POS], content);\n }\n\n if (node.value) {\n return this.error('Unexpected \"=\" found; an operator was already defined.', {\n index: token[_tokenize.FIELDS.START_POS]\n });\n }\n\n node.operator = node.operator ? node.operator + content : content;\n lastAdded = 'operator';\n spaceAfterMeaningfulToken = false;\n break;\n\n case tokens.comment:\n if (lastAdded) {\n if (spaceAfterMeaningfulToken || next && next[_tokenize.FIELDS.TYPE] === tokens.space || lastAdded === 'insensitive') {\n var lastComment = (0, _util.getProp)(node, 'spaces', lastAdded, 'after') || '';\n var rawLastComment = (0, _util.getProp)(node, 'raws', 'spaces', lastAdded, 'after') || lastComment;\n (0, _util.ensureObject)(node, 'raws', 'spaces', lastAdded);\n node.raws.spaces[lastAdded].after = rawLastComment + content;\n } else {\n var lastValue = node[lastAdded] || '';\n var rawLastValue = (0, _util.getProp)(node, 'raws', lastAdded) || lastValue;\n (0, _util.ensureObject)(node, 'raws');\n node.raws[lastAdded] = rawLastValue + content;\n }\n } else {\n commentBefore = commentBefore + content;\n }\n\n break;\n\n default:\n return this.error(\"Unexpected \\\"\" + content + \"\\\" found.\", {\n index: token[_tokenize.FIELDS.START_POS]\n });\n }\n\n pos++;\n }\n\n unescapeProp(node, \"attribute\");\n unescapeProp(node, \"namespace\");\n this.newNode(new _attribute[\"default\"](node));\n this.position++;\n }\n /**\n * return a node containing meaningless garbage up to (but not including) the specified token position.\n * if the token position is negative, all remaining tokens are consumed.\n *\n * This returns an array containing a single string node if all whitespace,\n * otherwise an array of comment nodes with space before and after.\n *\n * These tokens are not added to the current selector, the caller can add them or use them to amend\n * a previous node's space metadata.\n *\n * In lossy mode, this returns only comments.\n */\n ;\n\n _proto.parseWhitespaceEquivalentTokens = function parseWhitespaceEquivalentTokens(stopPosition) {\n if (stopPosition < 0) {\n stopPosition = this.tokens.length;\n }\n\n var startPosition = this.position;\n var nodes = [];\n var space = \"\";\n var lastComment = undefined;\n\n do {\n if (WHITESPACE_TOKENS[this.currToken[_tokenize.FIELDS.TYPE]]) {\n if (!this.options.lossy) {\n space += this.content();\n }\n } else if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.comment) {\n var spaces = {};\n\n if (space) {\n spaces.before = space;\n space = \"\";\n }\n\n lastComment = new _comment[\"default\"]({\n value: this.content(),\n source: getTokenSource(this.currToken),\n sourceIndex: this.currToken[_tokenize.FIELDS.START_POS],\n spaces: spaces\n });\n nodes.push(lastComment);\n }\n } while (++this.position < stopPosition);\n\n if (space) {\n if (lastComment) {\n lastComment.spaces.after = space;\n } else if (!this.options.lossy) {\n var firstToken = this.tokens[startPosition];\n var lastToken = this.tokens[this.position - 1];\n nodes.push(new _string[\"default\"]({\n value: '',\n source: getSource(firstToken[_tokenize.FIELDS.START_LINE], firstToken[_tokenize.FIELDS.START_COL], lastToken[_tokenize.FIELDS.END_LINE], lastToken[_tokenize.FIELDS.END_COL]),\n sourceIndex: firstToken[_tokenize.FIELDS.START_POS],\n spaces: {\n before: space,\n after: ''\n }\n }));\n }\n }\n\n return nodes;\n }\n /**\n * \n * @param {*} nodes \n */\n ;\n\n _proto.convertWhitespaceNodesToSpace = function convertWhitespaceNodesToSpace(nodes, requiredSpace) {\n var _this2 = this;\n\n if (requiredSpace === void 0) {\n requiredSpace = false;\n }\n\n var space = \"\";\n var rawSpace = \"\";\n nodes.forEach(function (n) {\n var spaceBefore = _this2.lossySpace(n.spaces.before, requiredSpace);\n\n var rawSpaceBefore = _this2.lossySpace(n.rawSpaceBefore, requiredSpace);\n\n space += spaceBefore + _this2.lossySpace(n.spaces.after, requiredSpace && spaceBefore.length === 0);\n rawSpace += spaceBefore + n.value + _this2.lossySpace(n.rawSpaceAfter, requiredSpace && rawSpaceBefore.length === 0);\n });\n\n if (rawSpace === space) {\n rawSpace = undefined;\n }\n\n var result = {\n space: space,\n rawSpace: rawSpace\n };\n return result;\n };\n\n _proto.isNamedCombinator = function isNamedCombinator(position) {\n if (position === void 0) {\n position = this.position;\n }\n\n return this.tokens[position + 0] && this.tokens[position + 0][_tokenize.FIELDS.TYPE] === tokens.slash && this.tokens[position + 1] && this.tokens[position + 1][_tokenize.FIELDS.TYPE] === tokens.word && this.tokens[position + 2] && this.tokens[position + 2][_tokenize.FIELDS.TYPE] === tokens.slash;\n };\n\n _proto.namedCombinator = function namedCombinator() {\n if (this.isNamedCombinator()) {\n var nameRaw = this.content(this.tokens[this.position + 1]);\n var name = (0, _util.unesc)(nameRaw).toLowerCase();\n var raws = {};\n\n if (name !== nameRaw) {\n raws.value = \"/\" + nameRaw + \"/\";\n }\n\n var node = new _combinator[\"default\"]({\n value: \"/\" + name + \"/\",\n source: getSource(this.currToken[_tokenize.FIELDS.START_LINE], this.currToken[_tokenize.FIELDS.START_COL], this.tokens[this.position + 2][_tokenize.FIELDS.END_LINE], this.tokens[this.position + 2][_tokenize.FIELDS.END_COL]),\n sourceIndex: this.currToken[_tokenize.FIELDS.START_POS],\n raws: raws\n });\n this.position = this.position + 3;\n return node;\n } else {\n this.unexpected();\n }\n };\n\n _proto.combinator = function combinator() {\n var _this3 = this;\n\n if (this.content() === '|') {\n return this.namespace();\n } // We need to decide between a space that's a descendant combinator and meaningless whitespace at the end of a selector.\n\n\n var nextSigTokenPos = this.locateNextMeaningfulToken(this.position);\n\n if (nextSigTokenPos < 0 || this.tokens[nextSigTokenPos][_tokenize.FIELDS.TYPE] === tokens.comma) {\n var nodes = this.parseWhitespaceEquivalentTokens(nextSigTokenPos);\n\n if (nodes.length > 0) {\n var last = this.current.last;\n\n if (last) {\n var _this$convertWhitespa = this.convertWhitespaceNodesToSpace(nodes),\n space = _this$convertWhitespa.space,\n rawSpace = _this$convertWhitespa.rawSpace;\n\n if (rawSpace !== undefined) {\n last.rawSpaceAfter += rawSpace;\n }\n\n last.spaces.after += space;\n } else {\n nodes.forEach(function (n) {\n return _this3.newNode(n);\n });\n }\n }\n\n return;\n }\n\n var firstToken = this.currToken;\n var spaceOrDescendantSelectorNodes = undefined;\n\n if (nextSigTokenPos > this.position) {\n spaceOrDescendantSelectorNodes = this.parseWhitespaceEquivalentTokens(nextSigTokenPos);\n }\n\n var node;\n\n if (this.isNamedCombinator()) {\n node = this.namedCombinator();\n } else if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.combinator) {\n node = new _combinator[\"default\"]({\n value: this.content(),\n source: getTokenSource(this.currToken),\n sourceIndex: this.currToken[_tokenize.FIELDS.START_POS]\n });\n this.position++;\n } else if (WHITESPACE_TOKENS[this.currToken[_tokenize.FIELDS.TYPE]]) {// pass\n } else if (!spaceOrDescendantSelectorNodes) {\n this.unexpected();\n }\n\n if (node) {\n if (spaceOrDescendantSelectorNodes) {\n var _this$convertWhitespa2 = this.convertWhitespaceNodesToSpace(spaceOrDescendantSelectorNodes),\n _space = _this$convertWhitespa2.space,\n _rawSpace = _this$convertWhitespa2.rawSpace;\n\n node.spaces.before = _space;\n node.rawSpaceBefore = _rawSpace;\n }\n } else {\n // descendant combinator\n var _this$convertWhitespa3 = this.convertWhitespaceNodesToSpace(spaceOrDescendantSelectorNodes, true),\n _space2 = _this$convertWhitespa3.space,\n _rawSpace2 = _this$convertWhitespa3.rawSpace;\n\n if (!_rawSpace2) {\n _rawSpace2 = _space2;\n }\n\n var spaces = {};\n var raws = {\n spaces: {}\n };\n\n if (_space2.endsWith(' ') && _rawSpace2.endsWith(' ')) {\n spaces.before = _space2.slice(0, _space2.length - 1);\n raws.spaces.before = _rawSpace2.slice(0, _rawSpace2.length - 1);\n } else if (_space2.startsWith(' ') && _rawSpace2.startsWith(' ')) {\n spaces.after = _space2.slice(1);\n raws.spaces.after = _rawSpace2.slice(1);\n } else {\n raws.value = _rawSpace2;\n }\n\n node = new _combinator[\"default\"]({\n value: ' ',\n source: getTokenSourceSpan(firstToken, this.tokens[this.position - 1]),\n sourceIndex: firstToken[_tokenize.FIELDS.START_POS],\n spaces: spaces,\n raws: raws\n });\n }\n\n if (this.currToken && this.currToken[_tokenize.FIELDS.TYPE] === tokens.space) {\n node.spaces.after = this.optionalSpace(this.content());\n this.position++;\n }\n\n return this.newNode(node);\n };\n\n _proto.comma = function comma() {\n if (this.position === this.tokens.length - 1) {\n this.root.trailingComma = true;\n this.position++;\n return;\n }\n\n this.current._inferEndPosition();\n\n var selector = new _selector[\"default\"]({\n source: {\n start: tokenStart(this.tokens[this.position + 1])\n }\n });\n this.current.parent.append(selector);\n this.current = selector;\n this.position++;\n };\n\n _proto.comment = function comment() {\n var current = this.currToken;\n this.newNode(new _comment[\"default\"]({\n value: this.content(),\n source: getTokenSource(current),\n sourceIndex: current[_tokenize.FIELDS.START_POS]\n }));\n this.position++;\n };\n\n _proto.error = function error(message, opts) {\n throw this.root.error(message, opts);\n };\n\n _proto.missingBackslash = function missingBackslash() {\n return this.error('Expected a backslash preceding the semicolon.', {\n index: this.currToken[_tokenize.FIELDS.START_POS]\n });\n };\n\n _proto.missingParenthesis = function missingParenthesis() {\n return this.expected('opening parenthesis', this.currToken[_tokenize.FIELDS.START_POS]);\n };\n\n _proto.missingSquareBracket = function missingSquareBracket() {\n return this.expected('opening square bracket', this.currToken[_tokenize.FIELDS.START_POS]);\n };\n\n _proto.unexpected = function unexpected() {\n return this.error(\"Unexpected '\" + this.content() + \"'. Escaping special characters with \\\\ may help.\", this.currToken[_tokenize.FIELDS.START_POS]);\n };\n\n _proto.namespace = function namespace() {\n var before = this.prevToken && this.content(this.prevToken) || true;\n\n if (this.nextToken[_tokenize.FIELDS.TYPE] === tokens.word) {\n this.position++;\n return this.word(before);\n } else if (this.nextToken[_tokenize.FIELDS.TYPE] === tokens.asterisk) {\n this.position++;\n return this.universal(before);\n }\n };\n\n _proto.nesting = function nesting() {\n if (this.nextToken) {\n var nextContent = this.content(this.nextToken);\n\n if (nextContent === \"|\") {\n this.position++;\n return;\n }\n }\n\n var current = this.currToken;\n this.newNode(new _nesting[\"default\"]({\n value: this.content(),\n source: getTokenSource(current),\n sourceIndex: current[_tokenize.FIELDS.START_POS]\n }));\n this.position++;\n };\n\n _proto.parentheses = function parentheses() {\n var last = this.current.last;\n var unbalanced = 1;\n this.position++;\n\n if (last && last.type === types.PSEUDO) {\n var selector = new _selector[\"default\"]({\n source: {\n start: tokenStart(this.tokens[this.position - 1])\n }\n });\n var cache = this.current;\n last.append(selector);\n this.current = selector;\n\n while (this.position < this.tokens.length && unbalanced) {\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis) {\n unbalanced++;\n }\n\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) {\n unbalanced--;\n }\n\n if (unbalanced) {\n this.parse();\n } else {\n this.current.source.end = tokenEnd(this.currToken);\n this.current.parent.source.end = tokenEnd(this.currToken);\n this.position++;\n }\n }\n\n this.current = cache;\n } else {\n // I think this case should be an error. It's used to implement a basic parse of media queries\n // but I don't think it's a good idea.\n var parenStart = this.currToken;\n var parenValue = \"(\";\n var parenEnd;\n\n while (this.position < this.tokens.length && unbalanced) {\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis) {\n unbalanced++;\n }\n\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) {\n unbalanced--;\n }\n\n parenEnd = this.currToken;\n parenValue += this.parseParenthesisToken(this.currToken);\n this.position++;\n }\n\n if (last) {\n last.appendToPropertyAndEscape(\"value\", parenValue, parenValue);\n } else {\n this.newNode(new _string[\"default\"]({\n value: parenValue,\n source: getSource(parenStart[_tokenize.FIELDS.START_LINE], parenStart[_tokenize.FIELDS.START_COL], parenEnd[_tokenize.FIELDS.END_LINE], parenEnd[_tokenize.FIELDS.END_COL]),\n sourceIndex: parenStart[_tokenize.FIELDS.START_POS]\n }));\n }\n }\n\n if (unbalanced) {\n return this.expected('closing parenthesis', this.currToken[_tokenize.FIELDS.START_POS]);\n }\n };\n\n _proto.pseudo = function pseudo() {\n var _this4 = this;\n\n var pseudoStr = '';\n var startingToken = this.currToken;\n\n while (this.currToken && this.currToken[_tokenize.FIELDS.TYPE] === tokens.colon) {\n pseudoStr += this.content();\n this.position++;\n }\n\n if (!this.currToken) {\n return this.expected(['pseudo-class', 'pseudo-element'], this.position - 1);\n }\n\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.word) {\n this.splitWord(false, function (first, length) {\n pseudoStr += first;\n\n _this4.newNode(new _pseudo[\"default\"]({\n value: pseudoStr,\n source: getTokenSourceSpan(startingToken, _this4.currToken),\n sourceIndex: startingToken[_tokenize.FIELDS.START_POS]\n }));\n\n if (length > 1 && _this4.nextToken && _this4.nextToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis) {\n _this4.error('Misplaced parenthesis.', {\n index: _this4.nextToken[_tokenize.FIELDS.START_POS]\n });\n }\n });\n } else {\n return this.expected(['pseudo-class', 'pseudo-element'], this.currToken[_tokenize.FIELDS.START_POS]);\n }\n };\n\n _proto.space = function space() {\n var content = this.content(); // Handle space before and after the selector\n\n if (this.position === 0 || this.prevToken[_tokenize.FIELDS.TYPE] === tokens.comma || this.prevToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis || this.current.nodes.every(function (node) {\n return node.type === 'comment';\n })) {\n this.spaces = this.optionalSpace(content);\n this.position++;\n } else if (this.position === this.tokens.length - 1 || this.nextToken[_tokenize.FIELDS.TYPE] === tokens.comma || this.nextToken[_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) {\n this.current.last.spaces.after = this.optionalSpace(content);\n this.position++;\n } else {\n this.combinator();\n }\n };\n\n _proto.string = function string() {\n var current = this.currToken;\n this.newNode(new _string[\"default\"]({\n value: this.content(),\n source: getTokenSource(current),\n sourceIndex: current[_tokenize.FIELDS.START_POS]\n }));\n this.position++;\n };\n\n _proto.universal = function universal(namespace) {\n var nextToken = this.nextToken;\n\n if (nextToken && this.content(nextToken) === '|') {\n this.position++;\n return this.namespace();\n }\n\n var current = this.currToken;\n this.newNode(new _universal[\"default\"]({\n value: this.content(),\n source: getTokenSource(current),\n sourceIndex: current[_tokenize.FIELDS.START_POS]\n }), namespace);\n this.position++;\n };\n\n _proto.splitWord = function splitWord(namespace, firstCallback) {\n var _this5 = this;\n\n var nextToken = this.nextToken;\n var word = this.content();\n\n while (nextToken && ~[tokens.dollar, tokens.caret, tokens.equals, tokens.word].indexOf(nextToken[_tokenize.FIELDS.TYPE])) {\n this.position++;\n var current = this.content();\n word += current;\n\n if (current.lastIndexOf('\\\\') === current.length - 1) {\n var next = this.nextToken;\n\n if (next && next[_tokenize.FIELDS.TYPE] === tokens.space) {\n word += this.requiredSpace(this.content(next));\n this.position++;\n }\n }\n\n nextToken = this.nextToken;\n }\n\n var hasClass = indexesOf(word, '.').filter(function (i) {\n // Allow escaped dot within class name\n var escapedDot = word[i - 1] === '\\\\'; // Allow decimal numbers percent in @keyframes\n\n var isKeyframesPercent = /^\\d+\\.\\d+%$/.test(word);\n return !escapedDot && !isKeyframesPercent;\n });\n var hasId = indexesOf(word, '#').filter(function (i) {\n return word[i - 1] !== '\\\\';\n }); // Eliminate Sass interpolations from the list of id indexes\n\n var interpolations = indexesOf(word, '#{');\n\n if (interpolations.length) {\n hasId = hasId.filter(function (hashIndex) {\n return !~interpolations.indexOf(hashIndex);\n });\n }\n\n var indices = (0, _sortAscending[\"default\"])(uniqs([0].concat(hasClass, hasId)));\n indices.forEach(function (ind, i) {\n var index = indices[i + 1] || word.length;\n var value = word.slice(ind, index);\n\n if (i === 0 && firstCallback) {\n return firstCallback.call(_this5, value, indices.length);\n }\n\n var node;\n var current = _this5.currToken;\n var sourceIndex = current[_tokenize.FIELDS.START_POS] + indices[i];\n var source = getSource(current[1], current[2] + ind, current[3], current[2] + (index - 1));\n\n if (~hasClass.indexOf(ind)) {\n var classNameOpts = {\n value: value.slice(1),\n source: source,\n sourceIndex: sourceIndex\n };\n node = new _className[\"default\"](unescapeProp(classNameOpts, \"value\"));\n } else if (~hasId.indexOf(ind)) {\n var idOpts = {\n value: value.slice(1),\n source: source,\n sourceIndex: sourceIndex\n };\n node = new _id[\"default\"](unescapeProp(idOpts, \"value\"));\n } else {\n var tagOpts = {\n value: value,\n source: source,\n sourceIndex: sourceIndex\n };\n unescapeProp(tagOpts, \"value\");\n node = new _tag[\"default\"](tagOpts);\n }\n\n _this5.newNode(node, namespace); // Ensure that the namespace is used only once\n\n\n namespace = null;\n });\n this.position++;\n };\n\n _proto.word = function word(namespace) {\n var nextToken = this.nextToken;\n\n if (nextToken && this.content(nextToken) === '|') {\n this.position++;\n return this.namespace();\n }\n\n return this.splitWord(namespace);\n };\n\n _proto.loop = function loop() {\n while (this.position < this.tokens.length) {\n this.parse(true);\n }\n\n this.current._inferEndPosition();\n\n return this.root;\n };\n\n _proto.parse = function parse(throwOnParenthesis) {\n switch (this.currToken[_tokenize.FIELDS.TYPE]) {\n case tokens.space:\n this.space();\n break;\n\n case tokens.comment:\n this.comment();\n break;\n\n case tokens.openParenthesis:\n this.parentheses();\n break;\n\n case tokens.closeParenthesis:\n if (throwOnParenthesis) {\n this.missingParenthesis();\n }\n\n break;\n\n case tokens.openSquare:\n this.attribute();\n break;\n\n case tokens.dollar:\n case tokens.caret:\n case tokens.equals:\n case tokens.word:\n this.word();\n break;\n\n case tokens.colon:\n this.pseudo();\n break;\n\n case tokens.comma:\n this.comma();\n break;\n\n case tokens.asterisk:\n this.universal();\n break;\n\n case tokens.ampersand:\n this.nesting();\n break;\n\n case tokens.slash:\n case tokens.combinator:\n this.combinator();\n break;\n\n case tokens.str:\n this.string();\n break;\n // These cases throw; no break needed.\n\n case tokens.closeSquare:\n this.missingSquareBracket();\n\n case tokens.semicolon:\n this.missingBackslash();\n\n default:\n this.unexpected();\n }\n }\n /**\n * Helpers\n */\n ;\n\n _proto.expected = function expected(description, index, found) {\n if (Array.isArray(description)) {\n var last = description.pop();\n description = description.join(', ') + \" or \" + last;\n }\n\n var an = /^[aeiou]/.test(description[0]) ? 'an' : 'a';\n\n if (!found) {\n return this.error(\"Expected \" + an + \" \" + description + \".\", {\n index: index\n });\n }\n\n return this.error(\"Expected \" + an + \" \" + description + \", found \\\"\" + found + \"\\\" instead.\", {\n index: index\n });\n };\n\n _proto.requiredSpace = function requiredSpace(space) {\n return this.options.lossy ? ' ' : space;\n };\n\n _proto.optionalSpace = function optionalSpace(space) {\n return this.options.lossy ? '' : space;\n };\n\n _proto.lossySpace = function lossySpace(space, required) {\n if (this.options.lossy) {\n return required ? ' ' : '';\n } else {\n return space;\n }\n };\n\n _proto.parseParenthesisToken = function parseParenthesisToken(token) {\n var content = this.content(token);\n\n if (token[_tokenize.FIELDS.TYPE] === tokens.space) {\n return this.requiredSpace(content);\n } else {\n return content;\n }\n };\n\n _proto.newNode = function newNode(node, namespace) {\n if (namespace) {\n if (/^ +$/.test(namespace)) {\n if (!this.options.lossy) {\n this.spaces = (this.spaces || '') + namespace;\n }\n\n namespace = true;\n }\n\n node.namespace = namespace;\n unescapeProp(node, \"namespace\");\n }\n\n if (this.spaces) {\n node.spaces.before = this.spaces;\n this.spaces = '';\n }\n\n return this.current.append(node);\n };\n\n _proto.content = function content(token) {\n if (token === void 0) {\n token = this.currToken;\n }\n\n return this.css.slice(token[_tokenize.FIELDS.START_POS], token[_tokenize.FIELDS.END_POS]);\n };\n\n /**\n * returns the index of the next non-whitespace, non-comment token.\n * returns -1 if no meaningful token is found.\n */\n _proto.locateNextMeaningfulToken = function locateNextMeaningfulToken(startPosition) {\n if (startPosition === void 0) {\n startPosition = this.position + 1;\n }\n\n var searchPosition = startPosition;\n\n while (searchPosition < this.tokens.length) {\n if (WHITESPACE_EQUIV_TOKENS[this.tokens[searchPosition][_tokenize.FIELDS.TYPE]]) {\n searchPosition++;\n continue;\n } else {\n return searchPosition;\n }\n }\n\n return -1;\n };\n\n _createClass(Parser, [{\n key: \"currToken\",\n get: function get() {\n return this.tokens[this.position];\n }\n }, {\n key: \"nextToken\",\n get: function get() {\n return this.tokens[this.position + 1];\n }\n }, {\n key: \"prevToken\",\n get: function get() {\n return this.tokens[this.position - 1];\n }\n }]);\n\n return Parser;\n}();\n\nexports[\"default\"] = Parser;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _parser = _interopRequireDefault(require(\"./parser\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar Processor = /*#__PURE__*/function () {\n function Processor(func, options) {\n this.func = func || function noop() {};\n\n this.funcRes = null;\n this.options = options;\n }\n\n var _proto = Processor.prototype;\n\n _proto._shouldUpdateSelector = function _shouldUpdateSelector(rule, options) {\n if (options === void 0) {\n options = {};\n }\n\n var merged = Object.assign({}, this.options, options);\n\n if (merged.updateSelector === false) {\n return false;\n } else {\n return typeof rule !== \"string\";\n }\n };\n\n _proto._isLossy = function _isLossy(options) {\n if (options === void 0) {\n options = {};\n }\n\n var merged = Object.assign({}, this.options, options);\n\n if (merged.lossless === false) {\n return true;\n } else {\n return false;\n }\n };\n\n _proto._root = function _root(rule, options) {\n if (options === void 0) {\n options = {};\n }\n\n var parser = new _parser[\"default\"](rule, this._parseOptions(options));\n return parser.root;\n };\n\n _proto._parseOptions = function _parseOptions(options) {\n return {\n lossy: this._isLossy(options)\n };\n };\n\n _proto._run = function _run(rule, options) {\n var _this = this;\n\n if (options === void 0) {\n options = {};\n }\n\n return new Promise(function (resolve, reject) {\n try {\n var root = _this._root(rule, options);\n\n Promise.resolve(_this.func(root)).then(function (transform) {\n var string = undefined;\n\n if (_this._shouldUpdateSelector(rule, options)) {\n string = root.toString();\n rule.selector = string;\n }\n\n return {\n transform: transform,\n root: root,\n string: string\n };\n }).then(resolve, reject);\n } catch (e) {\n reject(e);\n return;\n }\n });\n };\n\n _proto._runSync = function _runSync(rule, options) {\n if (options === void 0) {\n options = {};\n }\n\n var root = this._root(rule, options);\n\n var transform = this.func(root);\n\n if (transform && typeof transform.then === \"function\") {\n throw new Error(\"Selector processor returned a promise to a synchronous call.\");\n }\n\n var string = undefined;\n\n if (options.updateSelector && typeof rule !== \"string\") {\n string = root.toString();\n rule.selector = string;\n }\n\n return {\n transform: transform,\n root: root,\n string: string\n };\n }\n /**\n * Process rule into a selector AST.\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {Promise} The AST of the selector after processing it.\n */\n ;\n\n _proto.ast = function ast(rule, options) {\n return this._run(rule, options).then(function (result) {\n return result.root;\n });\n }\n /**\n * Process rule into a selector AST synchronously.\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {parser.Root} The AST of the selector after processing it.\n */\n ;\n\n _proto.astSync = function astSync(rule, options) {\n return this._runSync(rule, options).root;\n }\n /**\n * Process a selector into a transformed value asynchronously\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {Promise} The value returned by the processor.\n */\n ;\n\n _proto.transform = function transform(rule, options) {\n return this._run(rule, options).then(function (result) {\n return result.transform;\n });\n }\n /**\n * Process a selector into a transformed value synchronously.\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {any} The value returned by the processor.\n */\n ;\n\n _proto.transformSync = function transformSync(rule, options) {\n return this._runSync(rule, options).transform;\n }\n /**\n * Process a selector into a new selector string asynchronously.\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {string} the selector after processing.\n */\n ;\n\n _proto.process = function process(rule, options) {\n return this._run(rule, options).then(function (result) {\n return result.string || result.root.toString();\n });\n }\n /**\n * Process a selector into a new selector string synchronously.\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {string} the selector after processing.\n */\n ;\n\n _proto.processSync = function processSync(rule, options) {\n var result = this._runSync(rule, options);\n\n return result.string || result.root.toString();\n };\n\n return Processor;\n}();\n\nexports[\"default\"] = Processor;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.universal = exports.tag = exports.string = exports.selector = exports.root = exports.pseudo = exports.nesting = exports.id = exports.comment = exports.combinator = exports.className = exports.attribute = void 0;\n\nvar _attribute = _interopRequireDefault(require(\"./attribute\"));\n\nvar _className = _interopRequireDefault(require(\"./className\"));\n\nvar _combinator = _interopRequireDefault(require(\"./combinator\"));\n\nvar _comment = _interopRequireDefault(require(\"./comment\"));\n\nvar _id = _interopRequireDefault(require(\"./id\"));\n\nvar _nesting = _interopRequireDefault(require(\"./nesting\"));\n\nvar _pseudo = _interopRequireDefault(require(\"./pseudo\"));\n\nvar _root = _interopRequireDefault(require(\"./root\"));\n\nvar _selector = _interopRequireDefault(require(\"./selector\"));\n\nvar _string = _interopRequireDefault(require(\"./string\"));\n\nvar _tag = _interopRequireDefault(require(\"./tag\"));\n\nvar _universal = _interopRequireDefault(require(\"./universal\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar attribute = function attribute(opts) {\n return new _attribute[\"default\"](opts);\n};\n\nexports.attribute = attribute;\n\nvar className = function className(opts) {\n return new _className[\"default\"](opts);\n};\n\nexports.className = className;\n\nvar combinator = function combinator(opts) {\n return new _combinator[\"default\"](opts);\n};\n\nexports.combinator = combinator;\n\nvar comment = function comment(opts) {\n return new _comment[\"default\"](opts);\n};\n\nexports.comment = comment;\n\nvar id = function id(opts) {\n return new _id[\"default\"](opts);\n};\n\nexports.id = id;\n\nvar nesting = function nesting(opts) {\n return new _nesting[\"default\"](opts);\n};\n\nexports.nesting = nesting;\n\nvar pseudo = function pseudo(opts) {\n return new _pseudo[\"default\"](opts);\n};\n\nexports.pseudo = pseudo;\n\nvar root = function root(opts) {\n return new _root[\"default\"](opts);\n};\n\nexports.root = root;\n\nvar selector = function selector(opts) {\n return new _selector[\"default\"](opts);\n};\n\nexports.selector = selector;\n\nvar string = function string(opts) {\n return new _string[\"default\"](opts);\n};\n\nexports.string = string;\n\nvar tag = function tag(opts) {\n return new _tag[\"default\"](opts);\n};\n\nexports.tag = tag;\n\nvar universal = function universal(opts) {\n return new _universal[\"default\"](opts);\n};\n\nexports.universal = universal;","\"use strict\";\n\nexports.__esModule = true;\nexports.isNode = isNode;\nexports.isPseudoElement = isPseudoElement;\nexports.isPseudoClass = isPseudoClass;\nexports.isContainer = isContainer;\nexports.isNamespace = isNamespace;\nexports.isUniversal = exports.isTag = exports.isString = exports.isSelector = exports.isRoot = exports.isPseudo = exports.isNesting = exports.isIdentifier = exports.isComment = exports.isCombinator = exports.isClassName = exports.isAttribute = void 0;\n\nvar _types = require(\"./types\");\n\nvar _IS_TYPE;\n\nvar IS_TYPE = (_IS_TYPE = {}, _IS_TYPE[_types.ATTRIBUTE] = true, _IS_TYPE[_types.CLASS] = true, _IS_TYPE[_types.COMBINATOR] = true, _IS_TYPE[_types.COMMENT] = true, _IS_TYPE[_types.ID] = true, _IS_TYPE[_types.NESTING] = true, _IS_TYPE[_types.PSEUDO] = true, _IS_TYPE[_types.ROOT] = true, _IS_TYPE[_types.SELECTOR] = true, _IS_TYPE[_types.STRING] = true, _IS_TYPE[_types.TAG] = true, _IS_TYPE[_types.UNIVERSAL] = true, _IS_TYPE);\n\nfunction isNode(node) {\n return typeof node === \"object\" && IS_TYPE[node.type];\n}\n\nfunction isNodeType(type, node) {\n return isNode(node) && node.type === type;\n}\n\nvar isAttribute = isNodeType.bind(null, _types.ATTRIBUTE);\nexports.isAttribute = isAttribute;\nvar isClassName = isNodeType.bind(null, _types.CLASS);\nexports.isClassName = isClassName;\nvar isCombinator = isNodeType.bind(null, _types.COMBINATOR);\nexports.isCombinator = isCombinator;\nvar isComment = isNodeType.bind(null, _types.COMMENT);\nexports.isComment = isComment;\nvar isIdentifier = isNodeType.bind(null, _types.ID);\nexports.isIdentifier = isIdentifier;\nvar isNesting = isNodeType.bind(null, _types.NESTING);\nexports.isNesting = isNesting;\nvar isPseudo = isNodeType.bind(null, _types.PSEUDO);\nexports.isPseudo = isPseudo;\nvar isRoot = isNodeType.bind(null, _types.ROOT);\nexports.isRoot = isRoot;\nvar isSelector = isNodeType.bind(null, _types.SELECTOR);\nexports.isSelector = isSelector;\nvar isString = isNodeType.bind(null, _types.STRING);\nexports.isString = isString;\nvar isTag = isNodeType.bind(null, _types.TAG);\nexports.isTag = isTag;\nvar isUniversal = isNodeType.bind(null, _types.UNIVERSAL);\nexports.isUniversal = isUniversal;\n\nfunction isPseudoElement(node) {\n return isPseudo(node) && node.value && (node.value.startsWith(\"::\") || node.value.toLowerCase() === \":before\" || node.value.toLowerCase() === \":after\" || node.value.toLowerCase() === \":first-letter\" || node.value.toLowerCase() === \":first-line\");\n}\n\nfunction isPseudoClass(node) {\n return isPseudo(node) && !isPseudoElement(node);\n}\n\nfunction isContainer(node) {\n return !!(isNode(node) && node.walk);\n}\n\nfunction isNamespace(node) {\n return isAttribute(node) || isTag(node);\n}","\"use strict\";\n\nexports.__esModule = true;\n\nvar _types = require(\"./types\");\n\nObject.keys(_types).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _types[key]) return;\n exports[key] = _types[key];\n});\n\nvar _constructors = require(\"./constructors\");\n\nObject.keys(_constructors).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _constructors[key]) return;\n exports[key] = _constructors[key];\n});\n\nvar _guards = require(\"./guards\");\n\nObject.keys(_guards).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _guards[key]) return;\n exports[key] = _guards[key];\n});","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _processor = _interopRequireDefault(require(\"./processor\"));\n\nvar selectors = _interopRequireWildcard(require(\"./selectors\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar parser = function parser(processor) {\n return new _processor[\"default\"](processor);\n};\n\nObject.assign(parser, selectors);\ndelete parser.__esModule;\nvar _default = parser;\nexports[\"default\"] = _default;\nmodule.exports = exports.default;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: ()=>escapeCommas\n});\nfunction escapeCommas(className) {\n return className.replace(/\\\\,/g, \"\\\\2c \");\n}\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n parseColor: ()=>parseColor,\n formatColor: ()=>formatColor\n});\nconst _colorName = /*#__PURE__*/ _interopRequireDefault(require(\"color-name\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nlet HEX = /^#([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})?$/i;\nlet SHORT_HEX = /^#([a-f\\d])([a-f\\d])([a-f\\d])([a-f\\d])?$/i;\nlet VALUE = /(?:\\d+|\\d*\\.\\d+)%?/;\nlet SEP = /(?:\\s*,\\s*|\\s+)/;\nlet ALPHA_SEP = /\\s*[,/]\\s*/;\nlet CUSTOM_PROPERTY = /var\\(--(?:[^ )]*?)\\)/;\nlet RGB = new RegExp(`^(rgb)a?\\\\(\\\\s*(${VALUE.source}|${CUSTOM_PROPERTY.source})(?:${SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?(?:${SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?(?:${ALPHA_SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?\\\\s*\\\\)$`);\nlet HSL = new RegExp(`^(hsl)a?\\\\(\\\\s*((?:${VALUE.source})(?:deg|rad|grad|turn)?|${CUSTOM_PROPERTY.source})(?:${SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?(?:${SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?(?:${ALPHA_SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?\\\\s*\\\\)$`);\nfunction parseColor(value, { loose =false } = {}) {\n var ref, ref1;\n if (typeof value !== \"string\") {\n return null;\n }\n value = value.trim();\n if (value === \"transparent\") {\n return {\n mode: \"rgb\",\n color: [\n \"0\",\n \"0\",\n \"0\"\n ],\n alpha: \"0\"\n };\n }\n if (value in _colorName.default) {\n return {\n mode: \"rgb\",\n color: _colorName.default[value].map((v)=>v.toString())\n };\n }\n let hex = value.replace(SHORT_HEX, (_, r, g, b, a)=>[\n \"#\",\n r,\n r,\n g,\n g,\n b,\n b,\n a ? a + a : \"\"\n ].join(\"\")).match(HEX);\n if (hex !== null) {\n return {\n mode: \"rgb\",\n color: [\n parseInt(hex[1], 16),\n parseInt(hex[2], 16),\n parseInt(hex[3], 16)\n ].map((v)=>v.toString()),\n alpha: hex[4] ? (parseInt(hex[4], 16) / 255).toString() : undefined\n };\n }\n var ref2;\n let match = (ref2 = value.match(RGB)) !== null && ref2 !== void 0 ? ref2 : value.match(HSL);\n if (match === null) {\n return null;\n }\n let color = [\n match[2],\n match[3],\n match[4]\n ].filter(Boolean).map((v)=>v.toString());\n if (!loose && color.length !== 3) {\n return null;\n }\n if (color.length < 3 && !color.some((part)=>/^var\\(.*?\\)$/.test(part))) {\n return null;\n }\n return {\n mode: match[1],\n color,\n alpha: (ref = match[5]) === null || ref === void 0 ? void 0 : (ref1 = ref.toString) === null || ref1 === void 0 ? void 0 : ref1.call(ref)\n };\n}\nfunction formatColor({ mode , color , alpha }) {\n let hasAlpha = alpha !== undefined;\n return `${mode}(${color.join(\" \")}${hasAlpha ? ` / ${alpha}` : \"\"})`;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n withAlphaValue: ()=>withAlphaValue,\n default: ()=>withAlphaVariable\n});\nconst _color = require(\"./color\");\nfunction withAlphaValue(color, alphaValue, defaultValue) {\n if (typeof color === \"function\") {\n return color({\n opacityValue: alphaValue\n });\n }\n let parsed = (0, _color.parseColor)(color, {\n loose: true\n });\n if (parsed === null) {\n return defaultValue;\n }\n return (0, _color.formatColor)({\n ...parsed,\n alpha: alphaValue\n });\n}\nfunction withAlphaVariable({ color , property , variable }) {\n let properties = [].concat(property);\n if (typeof color === \"function\") {\n return {\n [variable]: \"1\",\n ...Object.fromEntries(properties.map((p)=>{\n return [\n p,\n color({\n opacityVariable: variable,\n opacityValue: `var(${variable})`\n })\n ];\n }))\n };\n }\n const parsed = (0, _color.parseColor)(color);\n if (parsed === null) {\n return Object.fromEntries(properties.map((p)=>[\n p,\n color\n ]));\n }\n if (parsed.alpha !== undefined) {\n // Has an alpha value, return color as-is\n return Object.fromEntries(properties.map((p)=>[\n p,\n color\n ]));\n }\n return {\n [variable]: \"1\",\n ...Object.fromEntries(properties.map((p)=>{\n return [\n p,\n (0, _color.formatColor)({\n ...parsed,\n alpha: `var(${variable})`\n })\n ];\n }))\n };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n pattern: ()=>pattern,\n withoutCapturing: ()=>withoutCapturing,\n any: ()=>any,\n optional: ()=>optional,\n zeroOrMore: ()=>zeroOrMore,\n nestedBrackets: ()=>nestedBrackets,\n escape: ()=>escape\n});\nconst REGEX_SPECIAL = /[\\\\^$.*+?()[\\]{}|]/g;\nconst REGEX_HAS_SPECIAL = RegExp(REGEX_SPECIAL.source);\n/**\n * @param {string|RegExp|Array} source\n */ function toSource(source) {\n source = Array.isArray(source) ? source : [\n source\n ];\n source = source.map((item)=>item instanceof RegExp ? item.source : item);\n return source.join(\"\");\n}\nfunction pattern(source) {\n return new RegExp(toSource(source), \"g\");\n}\nfunction withoutCapturing(source) {\n return new RegExp(`(?:${toSource(source)})`, \"g\");\n}\nfunction any(sources) {\n return `(?:${sources.map(toSource).join(\"|\")})`;\n}\nfunction optional(source) {\n return `(?:${toSource(source)})?`;\n}\nfunction zeroOrMore(source) {\n return `(?:${toSource(source)})*`;\n}\nfunction nestedBrackets(open, close, depth = 1) {\n return withoutCapturing([\n escape(open),\n /[^\\s]*/,\n depth === 1 ? `[^${escape(open)}${escape(close)}\\s]*` : any([\n `[^${escape(open)}${escape(close)}\\s]*`,\n nestedBrackets(open, close, depth - 1)\n ]),\n /[^\\s]*/,\n escape(close), \n ]);\n}\nfunction escape(string) {\n return string && REGEX_HAS_SPECIAL.test(string) ? string.replace(REGEX_SPECIAL, \"\\\\$&\") : string || \"\";\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"splitAtTopLevelOnly\", {\n enumerable: true,\n get: ()=>splitAtTopLevelOnly\n});\nconst _regex = /*#__PURE__*/ _interopRequireWildcard(require(\"../lib/regex\"));\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction* splitAtTopLevelOnly(input, separator) {\n let SPECIALS = new RegExp(`[(){}\\\\[\\\\]${_regex.escape(separator)}]`, \"g\");\n let depth = 0;\n let lastIndex = 0;\n let found = false;\n let separatorIndex = 0;\n let separatorStart = 0;\n let separatorLength = separator.length;\n // Find all paren-like things & character\n // And only split on commas if they're top-level\n for (let match of input.matchAll(SPECIALS)){\n let matchesSeparator = match[0] === separator[separatorIndex];\n let atEndOfSeparator = separatorIndex === separatorLength - 1;\n let matchesFullSeparator = matchesSeparator && atEndOfSeparator;\n if (match[0] === \"(\") depth++;\n if (match[0] === \")\") depth--;\n if (match[0] === \"[\") depth++;\n if (match[0] === \"]\") depth--;\n if (match[0] === \"{\") depth++;\n if (match[0] === \"}\") depth--;\n if (matchesSeparator && depth === 0) {\n if (separatorStart === 0) {\n separatorStart = match.index;\n }\n separatorIndex++;\n }\n if (matchesFullSeparator && depth === 0) {\n found = true;\n yield input.substring(lastIndex, separatorStart);\n lastIndex = separatorStart + separatorLength;\n }\n if (separatorIndex === separatorLength) {\n separatorIndex = 0;\n separatorStart = 0;\n }\n }\n // Provide the last segment of the string if available\n // Otherwise the whole string since no `char`s were found\n // This mirrors the behavior of string.split()\n if (found) {\n yield input.substring(lastIndex);\n } else {\n yield input;\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n parseBoxShadowValue: ()=>parseBoxShadowValue,\n formatBoxShadowValue: ()=>formatBoxShadowValue\n});\nconst _splitAtTopLevelOnly = require(\"./splitAtTopLevelOnly\");\nlet KEYWORDS = new Set([\n \"inset\",\n \"inherit\",\n \"initial\",\n \"revert\",\n \"unset\"\n]);\nlet SPACE = /\\ +(?![^(]*\\))/g // Similar to the one above, but with spaces instead.\n;\nlet LENGTH = /^-?(\\d+|\\.\\d+)(.*?)$/g;\nfunction parseBoxShadowValue(input) {\n let shadows = Array.from((0, _splitAtTopLevelOnly.splitAtTopLevelOnly)(input, \",\"));\n return shadows.map((shadow)=>{\n let value = shadow.trim();\n let result = {\n raw: value\n };\n let parts = value.split(SPACE);\n let seen = new Set();\n for (let part of parts){\n // Reset index, since the regex is stateful.\n LENGTH.lastIndex = 0;\n // Keyword\n if (!seen.has(\"KEYWORD\") && KEYWORDS.has(part)) {\n result.keyword = part;\n seen.add(\"KEYWORD\");\n } else if (LENGTH.test(part)) {\n if (!seen.has(\"X\")) {\n result.x = part;\n seen.add(\"X\");\n } else if (!seen.has(\"Y\")) {\n result.y = part;\n seen.add(\"Y\");\n } else if (!seen.has(\"BLUR\")) {\n result.blur = part;\n seen.add(\"BLUR\");\n } else if (!seen.has(\"SPREAD\")) {\n result.spread = part;\n seen.add(\"SPREAD\");\n }\n } else {\n if (!result.color) {\n result.color = part;\n } else {\n if (!result.unknown) result.unknown = [];\n result.unknown.push(part);\n }\n }\n }\n // Check if valid\n result.valid = result.x !== undefined && result.y !== undefined;\n return result;\n });\n}\nfunction formatBoxShadowValue(shadows) {\n return shadows.map((shadow)=>{\n if (!shadow.valid) {\n return shadow.raw;\n }\n return [\n shadow.keyword,\n shadow.x,\n shadow.y,\n shadow.blur,\n shadow.spread,\n shadow.color\n ].filter(Boolean).join(\" \");\n }).join(\", \");\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n normalize: ()=>normalize,\n url: ()=>url,\n number: ()=>number,\n percentage: ()=>percentage,\n length: ()=>length,\n lineWidth: ()=>lineWidth,\n shadow: ()=>shadow,\n color: ()=>color,\n image: ()=>image,\n gradient: ()=>gradient,\n position: ()=>position,\n familyName: ()=>familyName,\n genericName: ()=>genericName,\n absoluteSize: ()=>absoluteSize,\n relativeSize: ()=>relativeSize\n});\nconst _color = require(\"./color\");\nconst _parseBoxShadowValue = require(\"./parseBoxShadowValue\");\nlet cssFunctions = [\n \"min\",\n \"max\",\n \"clamp\",\n \"calc\"\n];\n// Ref: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Types\nlet COMMA = /,(?![^(]*\\))/g // Comma separator that is not located between brackets. E.g.: `cubiz-bezier(a, b, c)` these don't count.\n;\nlet UNDERSCORE = /_(?![^(]*\\))/g // Underscore separator that is not located between brackets. E.g.: `rgba(255,_255,_255)_black` these don't count.\n;\nfunction normalize(value, isRoot = true) {\n // Keep raw strings if it starts with `url(`\n if (value.includes(\"url(\")) {\n return value.split(/(url\\(.*?\\))/g).filter(Boolean).map((part)=>{\n if (/^url\\(.*?\\)$/.test(part)) {\n return part;\n }\n return normalize(part, false);\n }).join(\"\");\n }\n // Convert `_` to ` `, except for escaped underscores `\\_`\n value = value.replace(/([^\\\\])_+/g, (fullMatch, characterBefore)=>characterBefore + \" \".repeat(fullMatch.length - 1)).replace(/^_/g, \" \").replace(/\\\\_/g, \"_\");\n // Remove leftover whitespace\n if (isRoot) {\n value = value.trim();\n }\n // Add spaces around operators inside math functions like calc() that do not follow an operator\n // or '('.\n value = value.replace(/(calc|min|max|clamp)\\(.+\\)/g, (match)=>{\n return match.replace(/(-?\\d*\\.?\\d(?!\\b-.+[,)](?![^+\\-/*])\\D)(?:%|[a-z]+)?|\\))([+\\-/*])/g, \"$1 $2 \");\n });\n return value;\n}\nfunction url(value) {\n return value.startsWith(\"url(\");\n}\nfunction number(value) {\n return !isNaN(Number(value)) || cssFunctions.some((fn)=>new RegExp(`^${fn}\\\\(.+?`).test(value));\n}\nfunction percentage(value) {\n return value.split(UNDERSCORE).every((part)=>{\n return /%$/g.test(part) || cssFunctions.some((fn)=>new RegExp(`^${fn}\\\\(.+?%`).test(part));\n });\n}\nlet lengthUnits = [\n \"cm\",\n \"mm\",\n \"Q\",\n \"in\",\n \"pc\",\n \"pt\",\n \"px\",\n \"em\",\n \"ex\",\n \"ch\",\n \"rem\",\n \"lh\",\n \"vw\",\n \"vh\",\n \"vmin\",\n \"vmax\", \n];\nlet lengthUnitsPattern = `(?:${lengthUnits.join(\"|\")})`;\nfunction length(value) {\n return value.split(UNDERSCORE).every((part)=>{\n return part === \"0\" || new RegExp(`${lengthUnitsPattern}$`).test(part) || cssFunctions.some((fn)=>new RegExp(`^${fn}\\\\(.+?${lengthUnitsPattern}`).test(part));\n });\n}\nlet lineWidths = new Set([\n \"thin\",\n \"medium\",\n \"thick\"\n]);\nfunction lineWidth(value) {\n return lineWidths.has(value);\n}\nfunction shadow(value) {\n let parsedShadows = (0, _parseBoxShadowValue.parseBoxShadowValue)(normalize(value));\n for (let parsedShadow of parsedShadows){\n if (!parsedShadow.valid) {\n return false;\n }\n }\n return true;\n}\nfunction color(value) {\n let colors = 0;\n let result = value.split(UNDERSCORE).every((part)=>{\n part = normalize(part);\n if (part.startsWith(\"var(\")) return true;\n if ((0, _color.parseColor)(part, {\n loose: true\n }) !== null) return colors++, true;\n return false;\n });\n if (!result) return false;\n return colors > 0;\n}\nfunction image(value) {\n let images = 0;\n let result = value.split(COMMA).every((part)=>{\n part = normalize(part);\n if (part.startsWith(\"var(\")) return true;\n if (url(part) || gradient(part) || [\n \"element(\",\n \"image(\",\n \"cross-fade(\",\n \"image-set(\"\n ].some((fn)=>part.startsWith(fn))) {\n images++;\n return true;\n }\n return false;\n });\n if (!result) return false;\n return images > 0;\n}\nlet gradientTypes = new Set([\n \"linear-gradient\",\n \"radial-gradient\",\n \"repeating-linear-gradient\",\n \"repeating-radial-gradient\",\n \"conic-gradient\", \n]);\nfunction gradient(value) {\n value = normalize(value);\n for (let type of gradientTypes){\n if (value.startsWith(`${type}(`)) {\n return true;\n }\n }\n return false;\n}\nlet validPositions = new Set([\n \"center\",\n \"top\",\n \"right\",\n \"bottom\",\n \"left\"\n]);\nfunction position(value) {\n let positions = 0;\n let result = value.split(UNDERSCORE).every((part)=>{\n part = normalize(part);\n if (part.startsWith(\"var(\")) return true;\n if (validPositions.has(part) || length(part) || percentage(part)) {\n positions++;\n return true;\n }\n return false;\n });\n if (!result) return false;\n return positions > 0;\n}\nfunction familyName(value) {\n let fonts = 0;\n let result = value.split(COMMA).every((part)=>{\n part = normalize(part);\n if (part.startsWith(\"var(\")) return true;\n // If it contains spaces, then it should be quoted\n if (part.includes(\" \")) {\n if (!/(['\"])([^\"']+)\\1/g.test(part)) {\n return false;\n }\n }\n // If it starts with a number, it's invalid\n if (/^\\d/g.test(part)) {\n return false;\n }\n fonts++;\n return true;\n });\n if (!result) return false;\n return fonts > 0;\n}\nlet genericNames = new Set([\n \"serif\",\n \"sans-serif\",\n \"monospace\",\n \"cursive\",\n \"fantasy\",\n \"system-ui\",\n \"ui-serif\",\n \"ui-sans-serif\",\n \"ui-monospace\",\n \"ui-rounded\",\n \"math\",\n \"emoji\",\n \"fangsong\", \n]);\nfunction genericName(value) {\n return genericNames.has(value);\n}\nlet absoluteSizes = new Set([\n \"xx-small\",\n \"x-small\",\n \"small\",\n \"medium\",\n \"large\",\n \"x-large\",\n \"x-large\",\n \"xxx-large\", \n]);\nfunction absoluteSize(value) {\n return absoluteSizes.has(value);\n}\nlet relativeSizes = new Set([\n \"larger\",\n \"smaller\"\n]);\nfunction relativeSize(value) {\n return relativeSizes.has(value);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n updateAllClasses: ()=>updateAllClasses,\n asValue: ()=>asValue,\n parseColorFormat: ()=>parseColorFormat,\n asColor: ()=>asColor,\n asLookupValue: ()=>asLookupValue,\n coerceValue: ()=>coerceValue\n});\nconst _postcssSelectorParser = /*#__PURE__*/ _interopRequireDefault(require(\"postcss-selector-parser\"));\nconst _escapeCommas = /*#__PURE__*/ _interopRequireDefault(require(\"./escapeCommas\"));\nconst _withAlphaVariable = require(\"./withAlphaVariable\");\nconst _dataTypes = require(\"./dataTypes\");\nconst _negateValue = /*#__PURE__*/ _interopRequireDefault(require(\"./negateValue\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction updateAllClasses(selectors, updateClass) {\n let parser = (0, _postcssSelectorParser.default)((selectors)=>{\n selectors.walkClasses((sel)=>{\n let updatedClass = updateClass(sel.value);\n sel.value = updatedClass;\n if (sel.raws && sel.raws.value) {\n sel.raws.value = (0, _escapeCommas.default)(sel.raws.value);\n }\n });\n });\n let result = parser.processSync(selectors);\n return result;\n}\nfunction resolveArbitraryValue(modifier, validate) {\n if (!isArbitraryValue(modifier)) {\n return undefined;\n }\n let value = modifier.slice(1, -1);\n if (!validate(value)) {\n return undefined;\n }\n return (0, _dataTypes.normalize)(value);\n}\nfunction asNegativeValue(modifier, lookup = {}, validate) {\n let positiveValue = lookup[modifier];\n if (positiveValue !== undefined) {\n return (0, _negateValue.default)(positiveValue);\n }\n if (isArbitraryValue(modifier)) {\n let resolved = resolveArbitraryValue(modifier, validate);\n if (resolved === undefined) {\n return undefined;\n }\n return (0, _negateValue.default)(resolved);\n }\n}\nfunction asValue(modifier, options = {}, { validate =()=>true } = {}) {\n var ref;\n let value = (ref = options.values) === null || ref === void 0 ? void 0 : ref[modifier];\n if (value !== undefined) {\n return value;\n }\n if (options.supportsNegativeValues && modifier.startsWith(\"-\")) {\n return asNegativeValue(modifier.slice(1), options.values, validate);\n }\n return resolveArbitraryValue(modifier, validate);\n}\nfunction isArbitraryValue(input) {\n return input.startsWith(\"[\") && input.endsWith(\"]\");\n}\nfunction splitAlpha(modifier) {\n let slashIdx = modifier.lastIndexOf(\"/\");\n if (slashIdx === -1 || slashIdx === modifier.length - 1) {\n return [\n modifier\n ];\n }\n return [\n modifier.slice(0, slashIdx),\n modifier.slice(slashIdx + 1)\n ];\n}\nfunction parseColorFormat(value) {\n if (typeof value === \"string\" && value.includes(\"\")) {\n let oldValue = value;\n return ({ opacityValue =1 })=>oldValue.replace(\"\", opacityValue);\n }\n return value;\n}\nfunction asColor(modifier, options = {}, { tailwindConfig ={} } = {}) {\n var ref;\n if (((ref = options.values) === null || ref === void 0 ? void 0 : ref[modifier]) !== undefined) {\n var ref1;\n return parseColorFormat((ref1 = options.values) === null || ref1 === void 0 ? void 0 : ref1[modifier]);\n }\n let [color, alpha] = splitAlpha(modifier);\n if (alpha !== undefined) {\n var ref2, ref3, ref4;\n var ref5;\n let normalizedColor = (ref5 = (ref2 = options.values) === null || ref2 === void 0 ? void 0 : ref2[color]) !== null && ref5 !== void 0 ? ref5 : isArbitraryValue(color) ? color.slice(1, -1) : undefined;\n if (normalizedColor === undefined) {\n return undefined;\n }\n normalizedColor = parseColorFormat(normalizedColor);\n if (isArbitraryValue(alpha)) {\n return (0, _withAlphaVariable.withAlphaValue)(normalizedColor, alpha.slice(1, -1));\n }\n if (((ref3 = tailwindConfig.theme) === null || ref3 === void 0 ? void 0 : (ref4 = ref3.opacity) === null || ref4 === void 0 ? void 0 : ref4[alpha]) === undefined) {\n return undefined;\n }\n return (0, _withAlphaVariable.withAlphaValue)(normalizedColor, tailwindConfig.theme.opacity[alpha]);\n }\n return asValue(modifier, options, {\n validate: _dataTypes.color\n });\n}\nfunction asLookupValue(modifier, options = {}) {\n var ref;\n return (ref = options.values) === null || ref === void 0 ? void 0 : ref[modifier];\n}\nfunction guess(validate) {\n return (modifier, options)=>{\n return asValue(modifier, options, {\n validate\n });\n };\n}\nlet typeMap = {\n any: asValue,\n color: asColor,\n url: guess(_dataTypes.url),\n image: guess(_dataTypes.image),\n length: guess(_dataTypes.length),\n percentage: guess(_dataTypes.percentage),\n position: guess(_dataTypes.position),\n lookup: asLookupValue,\n \"generic-name\": guess(_dataTypes.genericName),\n \"family-name\": guess(_dataTypes.familyName),\n number: guess(_dataTypes.number),\n \"line-width\": guess(_dataTypes.lineWidth),\n \"absolute-size\": guess(_dataTypes.absoluteSize),\n \"relative-size\": guess(_dataTypes.relativeSize),\n shadow: guess(_dataTypes.shadow)\n};\nlet supportedTypes = Object.keys(typeMap);\nfunction splitAtFirst(input, delim) {\n let idx = input.indexOf(delim);\n if (idx === -1) return [\n undefined,\n input\n ];\n return [\n input.slice(0, idx),\n input.slice(idx + 1)\n ];\n}\nfunction coerceValue(types, modifier, options, tailwindConfig) {\n if (isArbitraryValue(modifier)) {\n let arbitraryValue = modifier.slice(1, -1);\n let [explicitType, value] = splitAtFirst(arbitraryValue, \":\");\n // It could be that this resolves to `url(https` which is not a valid\n // identifier. We currently only support \"simple\" words with dashes or\n // underscores. E.g.: family-name\n if (!/^[\\w-_]+$/g.test(explicitType)) {\n value = arbitraryValue;\n } else if (explicitType !== undefined && !supportedTypes.includes(explicitType)) {\n return [];\n }\n if (value.length > 0 && supportedTypes.includes(explicitType)) {\n return [\n asValue(`[${value}]`, options),\n explicitType\n ];\n }\n }\n // Find first matching type\n for (let type of [].concat(types)){\n let result = typeMap[type](modifier, options, {\n tailwindConfig\n });\n if (result !== undefined) return [\n result,\n type\n ];\n }\n return [];\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: ()=>toColorValue\n});\nfunction toColorValue(maybeFunction) {\n return typeof maybeFunction === \"function\" ? maybeFunction({}) : maybeFunction;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: ()=>resolveConfig\n});\nconst _negateValue = /*#__PURE__*/ _interopRequireDefault(require(\"./negateValue\"));\nconst _corePluginList = /*#__PURE__*/ _interopRequireDefault(require(\"../corePluginList\"));\nconst _configurePlugins = /*#__PURE__*/ _interopRequireDefault(require(\"./configurePlugins\"));\nconst _defaultConfigStub = /*#__PURE__*/ _interopRequireDefault(require(\"../../stubs/defaultConfig.stub\"));\nconst _colors = /*#__PURE__*/ _interopRequireDefault(require(\"../public/colors\"));\nconst _defaults = require(\"./defaults\");\nconst _toPath = require(\"./toPath\");\nconst _normalizeConfig = require(\"./normalizeConfig\");\nconst _isPlainObject = /*#__PURE__*/ _interopRequireDefault(require(\"./isPlainObject\"));\nconst _cloneDeep = require(\"./cloneDeep\");\nconst _pluginUtils = require(\"./pluginUtils\");\nconst _withAlphaVariable = require(\"./withAlphaVariable\");\nconst _toColorValue = /*#__PURE__*/ _interopRequireDefault(require(\"./toColorValue\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction isFunction(input) {\n return typeof input === \"function\";\n}\nfunction isObject(input) {\n return typeof input === \"object\" && input !== null;\n}\nfunction mergeWith(target, ...sources) {\n let customizer = sources.pop();\n for (let source of sources){\n for(let k in source){\n let merged = customizer(target[k], source[k]);\n if (merged === undefined) {\n if (isObject(target[k]) && isObject(source[k])) {\n target[k] = mergeWith(target[k], source[k], customizer);\n } else {\n target[k] = source[k];\n }\n } else {\n target[k] = merged;\n }\n }\n }\n return target;\n}\nconst configUtils = {\n colors: _colors.default,\n negative (scale) {\n // TODO: Log that this function isn't really needed anymore?\n return Object.keys(scale).filter((key)=>scale[key] !== \"0\").reduce((negativeScale, key)=>{\n let negativeValue = (0, _negateValue.default)(scale[key]);\n if (negativeValue !== undefined) {\n negativeScale[`-${key}`] = negativeValue;\n }\n return negativeScale;\n }, {});\n },\n breakpoints (screens) {\n return Object.keys(screens).filter((key)=>typeof screens[key] === \"string\").reduce((breakpoints, key)=>({\n ...breakpoints,\n [`screen-${key}`]: screens[key]\n }), {});\n }\n};\nfunction value(valueToResolve, ...args) {\n return isFunction(valueToResolve) ? valueToResolve(...args) : valueToResolve;\n}\nfunction collectExtends(items) {\n return items.reduce((merged, { extend })=>{\n return mergeWith(merged, extend, (mergedValue, extendValue)=>{\n if (mergedValue === undefined) {\n return [\n extendValue\n ];\n }\n if (Array.isArray(mergedValue)) {\n return [\n extendValue,\n ...mergedValue\n ];\n }\n return [\n extendValue,\n mergedValue\n ];\n });\n }, {});\n}\nfunction mergeThemes(themes) {\n return {\n ...themes.reduce((merged, theme)=>(0, _defaults.defaults)(merged, theme), {}),\n // In order to resolve n config objects, we combine all of their `extend` properties\n // into arrays instead of objects so they aren't overridden.\n extend: collectExtends(themes)\n };\n}\nfunction mergeExtensionCustomizer(merged, value) {\n // When we have an array of objects, we do want to merge it\n if (Array.isArray(merged) && isObject(merged[0])) {\n return merged.concat(value);\n }\n // When the incoming value is an array, and the existing config is an object, prepend the existing object\n if (Array.isArray(value) && isObject(value[0]) && isObject(merged)) {\n return [\n merged,\n ...value\n ];\n }\n // Override arrays (for example for font-families, box-shadows, ...)\n if (Array.isArray(value)) {\n return value;\n }\n // Execute default behaviour\n return undefined;\n}\nfunction mergeExtensions({ extend , ...theme }) {\n return mergeWith(theme, extend, (themeValue, extensions)=>{\n // The `extend` property is an array, so we need to check if it contains any functions\n if (!isFunction(themeValue) && !extensions.some(isFunction)) {\n return mergeWith({}, themeValue, ...extensions, mergeExtensionCustomizer);\n }\n return (resolveThemePath, utils)=>mergeWith({}, ...[\n themeValue,\n ...extensions\n ].map((e)=>value(e, resolveThemePath, utils)), mergeExtensionCustomizer);\n });\n}\n/**\n *\n * @param {string} key\n * @return {Iterable}\n */ function* toPaths(key) {\n let path = (0, _toPath.toPath)(key);\n if (path.length === 0) {\n return;\n }\n yield path;\n if (Array.isArray(key)) {\n return;\n }\n let pattern = /^(.*?)\\s*\\/\\s*([^/]+)$/;\n let matches = key.match(pattern);\n if (matches !== null) {\n let [, prefix, alpha] = matches;\n let newPath = (0, _toPath.toPath)(prefix);\n newPath.alpha = alpha;\n yield newPath;\n }\n}\nfunction resolveFunctionKeys(object) {\n // theme('colors.red.500 / 0.5') -> ['colors', 'red', '500 / 0', '5]\n const resolvePath = (key, defaultValue)=>{\n for (const path of toPaths(key)){\n let index = 0;\n let val = object;\n while(val !== undefined && val !== null && index < path.length){\n val = val[path[index++]];\n let shouldResolveAsFn = isFunction(val) && (path.alpha === undefined || index <= path.length - 1);\n val = shouldResolveAsFn ? val(resolvePath, configUtils) : val;\n }\n if (val !== undefined) {\n if (path.alpha !== undefined) {\n let normalized = (0, _pluginUtils.parseColorFormat)(val);\n return (0, _withAlphaVariable.withAlphaValue)(normalized, path.alpha, (0, _toColorValue.default)(normalized));\n }\n if ((0, _isPlainObject.default)(val)) {\n return (0, _cloneDeep.cloneDeep)(val);\n }\n return val;\n }\n }\n return defaultValue;\n };\n Object.assign(resolvePath, {\n theme: resolvePath,\n ...configUtils\n });\n return Object.keys(object).reduce((resolved, key)=>{\n resolved[key] = isFunction(object[key]) ? object[key](resolvePath, configUtils) : object[key];\n return resolved;\n }, {});\n}\nfunction extractPluginConfigs(configs) {\n let allConfigs = [];\n configs.forEach((config)=>{\n allConfigs = [\n ...allConfigs,\n config\n ];\n var ref;\n const plugins = (ref = config === null || config === void 0 ? void 0 : config.plugins) !== null && ref !== void 0 ? ref : [];\n if (plugins.length === 0) {\n return;\n }\n plugins.forEach((plugin)=>{\n if (plugin.__isOptionsFunction) {\n plugin = plugin();\n }\n var ref;\n allConfigs = [\n ...allConfigs,\n ...extractPluginConfigs([\n (ref = plugin === null || plugin === void 0 ? void 0 : plugin.config) !== null && ref !== void 0 ? ref : {}\n ])\n ];\n });\n });\n return allConfigs;\n}\nfunction resolveCorePlugins(corePluginConfigs) {\n const result = [\n ...corePluginConfigs\n ].reduceRight((resolved, corePluginConfig)=>{\n if (isFunction(corePluginConfig)) {\n return corePluginConfig({\n corePlugins: resolved\n });\n }\n return (0, _configurePlugins.default)(corePluginConfig, resolved);\n }, _corePluginList.default);\n return result;\n}\nfunction resolvePluginLists(pluginLists) {\n const result = [\n ...pluginLists\n ].reduceRight((resolved, pluginList)=>{\n return [\n ...resolved,\n ...pluginList\n ];\n }, []);\n return result;\n}\nfunction resolveConfig(configs) {\n let allConfigs = [\n ...extractPluginConfigs(configs),\n {\n prefix: \"\",\n important: false,\n separator: \":\",\n variantOrder: _defaultConfigStub.default.variantOrder\n }, \n ];\n var ref, ref1;\n return (0, _normalizeConfig.normalizeConfig)((0, _defaults.defaults)({\n theme: resolveFunctionKeys(mergeExtensions(mergeThemes(allConfigs.map((t)=>{\n return (ref = t === null || t === void 0 ? void 0 : t.theme) !== null && ref !== void 0 ? ref : {};\n })))),\n corePlugins: resolveCorePlugins(allConfigs.map((c)=>c.corePlugins)),\n plugins: resolvePluginLists(configs.map((c)=>{\n return (ref1 = c === null || c === void 0 ? void 0 : c.plugins) !== null && ref1 !== void 0 ? ref1 : [];\n }))\n }, ...allConfigs));\n}\n","export default {\n yellow: (s) => s,\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n flagEnabled: ()=>flagEnabled,\n issueFlagNotices: ()=>issueFlagNotices,\n default: ()=>_default\n});\nconst _picocolors = /*#__PURE__*/ _interopRequireDefault(require(\"picocolors\"));\nconst _log = /*#__PURE__*/ _interopRequireDefault(require(\"./util/log\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nlet defaults = {\n optimizeUniversalDefaults: false\n};\nlet featureFlags = {\n future: [\n \"hoverOnlyWhenSupported\",\n \"respectDefaultRingColorOpacity\"\n ],\n experimental: [\n \"optimizeUniversalDefaults\",\n \"matchVariant\" /* , 'variantGrouping' */ \n ]\n};\nfunction flagEnabled(config, flag) {\n if (featureFlags.future.includes(flag)) {\n var ref;\n var ref1, ref2;\n return config.future === \"all\" || ((ref2 = (ref1 = config === null || config === void 0 ? void 0 : (ref = config.future) === null || ref === void 0 ? void 0 : ref[flag]) !== null && ref1 !== void 0 ? ref1 : defaults[flag]) !== null && ref2 !== void 0 ? ref2 : false);\n }\n if (featureFlags.experimental.includes(flag)) {\n var ref3;\n var ref4, ref5;\n return config.experimental === \"all\" || ((ref5 = (ref4 = config === null || config === void 0 ? void 0 : (ref3 = config.experimental) === null || ref3 === void 0 ? void 0 : ref3[flag]) !== null && ref4 !== void 0 ? ref4 : defaults[flag]) !== null && ref5 !== void 0 ? ref5 : false);\n }\n return false;\n}\nfunction experimentalFlagsEnabled(config) {\n if (config.experimental === \"all\") {\n return featureFlags.experimental;\n }\n var ref;\n return Object.keys((ref = config === null || config === void 0 ? void 0 : config.experimental) !== null && ref !== void 0 ? ref : {}).filter((flag)=>featureFlags.experimental.includes(flag) && config.experimental[flag]);\n}\nfunction issueFlagNotices(config) {\n if (process.env.JEST_WORKER_ID !== undefined) {\n return;\n }\n if (experimentalFlagsEnabled(config).length > 0) {\n let changes = experimentalFlagsEnabled(config).map((s)=>_picocolors.default.yellow(s)).join(\", \");\n _log.default.warn(\"experimental-flags-enabled\", [\n `You have enabled experimental features: ${changes}`,\n \"Experimental features in Tailwind CSS are not covered by semver, may introduce breaking changes, and can change at any time.\", \n ]);\n }\n}\nconst _default = featureFlags;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: ()=>getAllConfigs\n});\nconst _defaultConfigStubJs = /*#__PURE__*/ _interopRequireDefault(require(\"../../stubs/defaultConfig.stub.js\"));\nconst _featureFlags = require(\"../featureFlags\");\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction getAllConfigs(config) {\n var ref;\n const configs = ((ref = config === null || config === void 0 ? void 0 : config.presets) !== null && ref !== void 0 ? ref : [\n _defaultConfigStubJs.default\n ]).slice().reverse().flatMap((preset)=>getAllConfigs(typeof preset === \"function\" ? preset() : preset));\n const features = {\n // Add experimental configs here...\n respectDefaultRingColorOpacity: {\n theme: {\n ringColor: {\n DEFAULT: \"#3b82f67f\"\n }\n }\n }\n };\n const experimentals = Object.keys(features).filter((feature)=>(0, _featureFlags.flagEnabled)(config, feature)).map((feature)=>features[feature]);\n return [\n config,\n ...experimentals,\n ...configs\n ];\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: ()=>resolveConfig\n});\nconst _resolveConfig = /*#__PURE__*/ _interopRequireDefault(require(\"../util/resolveConfig\"));\nconst _getAllConfigs = /*#__PURE__*/ _interopRequireDefault(require(\"../util/getAllConfigs\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction resolveConfig(...configs) {\n let [, ...defaultConfigs] = (0, _getAllConfigs.default)(configs[0]);\n return (0, _resolveConfig.default)([\n ...configs,\n ...defaultConfigs\n ]);\n}\n","let resolveConfig = require('./lib/public/resolve-config')\nmodule.exports = (resolveConfig.__esModule ? resolveConfig : { default: resolveConfig }).default\n","import type { Yoga } from 'yoga-wasm-web'\n\nlet yogaInstance: Yoga\n\nexport function init(yoga: Yoga) {\n yogaInstance = yoga\n}\n\nlet initializationPromise = null\n\nexport default async function getYoga(): Promise {\n if (yogaInstance) return yogaInstance\n\n if (initializationPromise) {\n await initializationPromise\n return yogaInstance\n }\n\n initializationPromise = import('@yoga')\n .then((mod) => mod.getYogaModule())\n .then((yoga) => (yogaInstance = yoga))\n\n await initializationPromise\n initializationPromise = null\n\n return yogaInstance\n}\n","var e=(t,r)=>()=>(r||t((r={exports:{}}).exports,r),r.exports);var u=e((k,g)=>{g.exports=[\"em\",\"ex\",\"ch\",\"rem\",\"vh\",\"vw\",\"vmin\",\"vmax\",\"px\",\"mm\",\"cm\",\"in\",\"pt\",\"pc\",\"mozmm\"]});var a=e((z,v)=>{v.exports=[\"deg\",\"grad\",\"rad\",\"turn\"]});var c=e((L,w)=>{w.exports=[\"dpi\",\"dpcm\",\"dppx\"]});var h=e(($,y)=>{y.exports=[\"Hz\",\"kHz\"]});var m=e((j,b)=>{b.exports=[\"s\",\"ms\"]});var q=u(),f=a(),p=c(),l=h(),d=m();function s(t){if(/\\.\\D?$/.test(t))throw new Error(\"The dot should be followed by a number\");if(/^[+-]{2}/.test(t))throw new Error(\"Only one leading +/- is allowed\");if(x(t)>1)throw new Error(\"Only one dot is allowed\");if(/%$/.test(t)){this.type=\"percentage\",this.value=o(t),this.unit=\"%\";return}var r=O(t);if(!r){this.type=\"number\",this.value=o(t);return}this.type=F(r),this.value=o(t.substr(0,t.length-r.length)),this.unit=r}s.prototype.valueOf=function(){return this.value};s.prototype.toString=function(){return this.value+(this.unit||\"\")};function U(t){return new s(t)}function x(t){var r=t.match(/\\./g);return r?r.length:0}function o(t){var r=parseFloat(t);if(isNaN(r))throw new Error(\"Invalid number: \"+t);return r}var E=[].concat(f,l,q,p,d);function O(t){var r=t.match(/\\D+$/),n=r&&r[0];if(n&&E.indexOf(n)===-1)throw new Error(\"Invalid unit: \"+n);return n}var D=Object.assign(i(f,\"angle\"),i(l,\"frequency\"),i(p,\"resolution\"),i(d,\"time\"));function i(t,r){return Object.fromEntries(t.map(n=>[n,r]))}function F(t){return D[t]||\"length\"}export{U as default};\n","import type { ReactNode, ReactElement } from 'react'\n\nimport CssDimension from './vendor/parse-css-dimension/index.js'\nimport LineBreaker from 'linebreak'\n\nexport function isReactElement(node: ReactNode): node is ReactElement {\n const type = typeof node\n if (\n type === 'number' ||\n type === 'bigint' ||\n type === 'string' ||\n type === 'boolean'\n ) {\n return false\n }\n return true\n}\n\nexport function isClass(f: Function) {\n return /^class\\s/.test(f.toString())\n}\n\nexport function hasDangerouslySetInnerHTMLProp(props: any) {\n return 'dangerouslySetInnerHTML' in props\n}\n\nexport function normalizeChildren(children: any) {\n const flattend =\n typeof children === 'undefined' ? [] : [].concat(children).flat(Infinity)\n\n const res = []\n for (let i = 0; i < flattend.length; i++) {\n let value = flattend[i]\n if (\n typeof value === 'undefined' ||\n typeof value === 'boolean' ||\n value === null\n ) {\n continue\n }\n if (typeof value === 'number') {\n value = String(value)\n }\n if (\n typeof value === 'string' &&\n res.length &&\n typeof res[res.length - 1] === 'string'\n ) {\n res[res.length - 1] += value\n } else {\n res.push(value)\n }\n }\n return res\n}\n\nexport function lengthToNumber(\n length: string | number,\n baseFontSize: number,\n baseLength: number,\n inheritedStyle: Record,\n percentage = false\n): number | undefined {\n if (typeof length === 'number') return length\n\n // Convert em and rem values to number (px), convert rad to deg.\n try {\n length = length.trim()\n\n // Not length: `1px/2px`, `1px 2px`, `1px, 2px`, `calc(1px)`.\n if (/[ /\\(,]/.test(length)) return\n\n // Just a number as string: '100'\n if (length === String(+length)) return +length\n\n const parsed = new CssDimension(length)\n if (parsed.type === 'length') {\n switch (parsed.unit) {\n case 'em':\n return parsed.value * baseFontSize\n case 'rem':\n return parsed.value * 16\n case 'vw':\n return ~~(\n (parsed.value * (inheritedStyle._viewportWidth as number)) /\n 100\n )\n case 'vh':\n return ~~(\n (parsed.value * (inheritedStyle._viewportHeight as number)) /\n 100\n )\n default:\n return parsed.value\n }\n } else if (parsed.type === 'angle') {\n return calcDegree(length)\n } else if (parsed.type === 'percentage') {\n if (percentage) {\n return (parsed.value / 100) * baseLength\n }\n }\n } catch {\n // Not a length unit, silently ignore.\n }\n}\n\nexport function calcDegree(deg: string) {\n const parsed = new CssDimension(deg)\n\n switch (parsed.unit) {\n case 'deg':\n return parsed.value\n case 'rad':\n return (parsed.value * 180) / Math.PI\n case 'turn':\n return parsed.value * 360\n case 'grad':\n return 0.9 * parsed.value\n }\n}\n\n// Multiplies two 2d transform matrices.\nexport function multiply(m1: number[], m2: number[]) {\n return [\n m1[0] * m2[0] + m1[2] * m2[1],\n m1[1] * m2[0] + m1[3] * m2[1],\n m1[0] * m2[2] + m1[2] * m2[3],\n m1[1] * m2[2] + m1[3] * m2[3],\n m1[0] * m2[4] + m1[2] * m2[5] + m1[4],\n m1[1] * m2[4] + m1[3] * m2[5] + m1[5],\n ]\n}\n\nexport function v(\n field: string | number | undefined,\n map: Record,\n fallback: any,\n errorIfNotAllowedForProperty?: string\n) {\n let value = map[field]\n if (typeof value === 'undefined') {\n if (errorIfNotAllowedForProperty && typeof field !== 'undefined') {\n throw new Error(\n `Invalid value for CSS property \"${errorIfNotAllowedForProperty}\". Allowed values: ${Object.keys(\n map\n )\n .map((_v) => `\"${_v}\"`)\n .join(' | ')}. Received: \"${field}\".`\n )\n }\n value = fallback\n }\n return value\n}\n\nlet wordSegmenter\nlet graphemeSegmenter\n\n// Implementation modified from\n// https://github.com/niklasvh/html2canvas/blob/6521a487d78172f7179f7c973c1a3af40eb92009/src/css/layout/text.ts\n// https://drafts.csswg.org/css-text/#word-separator\nexport const wordSeparators = [\n 0x0020, 0x00a0, 0x1361, 0x10100, 0x10101, 0x1039, 0x1091, 0xa,\n].map((point) => String.fromCodePoint(point))\n\nexport function segment(\n content: string,\n granularity: 'word' | 'grapheme',\n locale?: string\n): string[] {\n if (!wordSegmenter || !graphemeSegmenter) {\n if (!(typeof Intl !== 'undefined' && 'Segmenter' in Intl)) {\n // https://caniuse.com/mdn-javascript_builtins_intl_segments\n throw new Error(\n 'Intl.Segmenter does not exist, please use import a polyfill.'\n )\n }\n\n wordSegmenter = new Intl.Segmenter(locale, { granularity: 'word' })\n graphemeSegmenter = new Intl.Segmenter(locale, {\n granularity: 'grapheme',\n })\n }\n\n if (granularity === 'grapheme') {\n return [...graphemeSegmenter.segment(content)].map((seg) => seg.segment)\n } else {\n const segmented = [...wordSegmenter.segment(content)].map(\n (seg) => seg.segment\n ) as string[]\n\n const output = []\n\n let i = 0\n // When there is a non-breaking space, join the previous and next words together.\n // This change causes them to be treated as a single segment.\n while (i < segmented.length) {\n const s = segmented[i]\n\n if (s == '\\u00a0') {\n const previousWord = i === 0 ? '' : output.pop()\n const nextWord = i === segmented.length - 1 ? '' : segmented[i + 1]\n\n output.push(previousWord + '\\u00a0' + nextWord)\n i += 2\n } else {\n output.push(s)\n i++\n }\n }\n\n return output\n }\n}\n\nexport function buildXMLString(\n type: string,\n attrs: Record,\n children?: string\n) {\n let attrString = ''\n\n for (const [k, _v] of Object.entries(attrs)) {\n if (typeof _v !== 'undefined') {\n attrString += ` ${k}=\"${_v}\"`\n }\n }\n\n if (children) {\n return `<${type}${attrString}>${children}`\n }\n return `<${type}${attrString}/>`\n}\n\nexport function createLRU(max = 20) {\n const store: Map = new Map()\n function set(key: string, value: T) {\n if (store.size >= max) {\n const keyToDelete = store.keys().next().value\n store.delete(keyToDelete)\n }\n store.set(key, value)\n }\n function get(key: string): T | undefined {\n const hasKey = store.has(key)\n if (!hasKey) return undefined\n\n const entry = store.get(key)!\n store.delete(key)\n store.set(key, entry)\n return entry\n }\n function clear() {\n store.clear()\n }\n\n return {\n set,\n get,\n clear,\n }\n}\n\nexport function parseViewBox(viewBox?: string | null | undefined) {\n return viewBox ? viewBox.split(/[, ]/).filter(Boolean).map(Number) : null\n}\n\nexport function toString(x: unknown): string {\n return Object.prototype.toString.call(x)\n}\n\nexport function isString(x: unknown): x is string {\n return typeof x === 'string'\n}\n\nexport function isNumber(x: unknown): x is number {\n return typeof x === 'number'\n}\n\nexport function isUndefined(x: unknown): x is undefined {\n return toString(x) === '[object Undefined]'\n}\n\nexport function splitByBreakOpportunities(\n content: string,\n wordBreak: string\n): {\n words: string[]\n requiredBreaks: boolean[]\n} {\n if (wordBreak === 'break-all') {\n return { words: segment(content, 'grapheme'), requiredBreaks: [] }\n }\n\n if (wordBreak === 'keep-all') {\n return { words: segment(content, 'word'), requiredBreaks: [] }\n }\n\n const breaker = new LineBreaker(content)\n let last = 0\n let bk = breaker.nextBreak()\n const words = []\n const requiredBreaks = [false]\n\n while (bk) {\n const word = content.slice(last, bk.position)\n words.push(word)\n\n if (bk.required) {\n requiredBreaks.push(true)\n } else {\n requiredBreaks.push(false)\n }\n\n last = bk.position\n bk = breaker.nextBreak()\n }\n\n return { words, requiredBreaks }\n}\n\nexport const midline = (s: string) => {\n return s.replaceAll(\n /([A-Z])/g,\n (_, letter: string) => `-${letter.toLowerCase()}`\n )\n}\n\nexport function splitEffects(\n input: string,\n separator: string | RegExp = ','\n): string[] {\n const result = []\n let l = 0\n let parenCount = 0\n separator = new RegExp(separator)\n\n for (let i = 0; i < input.length; i++) {\n if (input[i] === '(') {\n parenCount++\n } else if (input[i] === ')') {\n parenCount--\n }\n\n if (parenCount === 0 && separator.test(input[i])) {\n result.push(input.slice(l, i).trim())\n l = i + 1\n }\n }\n\n result.push(input.slice(l).trim())\n\n return result\n}\n","/**\n * This module is used to fetch image from the given URL and resolve it as\n * base64 inlined data URI, so the toolchain can process it.\n * The image data will be cached in a LRU so we don't need to fetch it again\n * in new render processes. But to invalidate the cache the workaround is to\n * add a random query string to the URL.\n * TODO: We might want another option to disable image caching by default.\n */\n\nconst AVIF = 'image/avif'\nconst WEBP = 'image/webp'\nconst APNG = 'image/apng'\nconst PNG = 'image/png'\nconst JPEG = 'image/jpeg'\nconst GIF = 'image/gif'\nconst SVG = 'image/svg+xml'\n\nfunction parseJPEG(buf: ArrayBuffer) {\n const view = new DataView(buf)\n\n // Skip magic bytes\n let offset = 4\n\n const len = view.byteLength\n while (offset < len) {\n const i = view.getUint16(offset, false)\n\n if (i > len) {\n throw new TypeError('Invalid JPEG')\n }\n\n const next = view.getUint8(i + 1 + offset)\n if (next === 0xc0 || next === 0xc1 || next === 0xc2) {\n return [\n view.getUint16(i + 7 + offset, false),\n view.getUint16(i + 5 + offset, false),\n ] as [number, number]\n }\n\n // TODO: Support orientations from EXIF.\n\n offset += i + 2\n }\n\n throw new TypeError('Invalid JPEG')\n}\n\nfunction parseGIF(buf: ArrayBuffer) {\n const view = new Uint8Array(buf.slice(6, 10))\n return [view[0] | (view[1] << 8), view[2] | (view[3] << 8)] as [\n number,\n number\n ]\n}\n\nfunction parsePNG(buf: ArrayBuffer) {\n const v = new DataView(buf)\n return [v.getUint16(18, false), v.getUint16(22, false)] as [number, number]\n}\n\nimport { createLRU, parseViewBox } from '../utils.js'\n\ntype ResolvedImageData = [string, number?, number?] | readonly []\nexport const cache = createLRU(100)\nexport const inflightRequests = new Map>()\n\nconst ALLOWED_IMAGE_TYPES = [PNG, APNG, JPEG, GIF, SVG]\n\nfunction arrayBufferToBase64(buffer) {\n let binary = ''\n const bytes = new Uint8Array(buffer)\n for (let i = 0; i < bytes.byteLength; i++) {\n binary += String.fromCharCode(bytes[i])\n }\n return btoa(binary)\n}\n\nfunction base64ToArrayBuffer(base64: string): ArrayBuffer {\n let binaryString = atob(base64)\n let len = binaryString.length\n let bytes = new Uint8Array(len)\n for (let i = 0; i < len; i++) {\n bytes[i] = binaryString.charCodeAt(i)\n }\n return bytes.buffer\n}\n\nfunction parseSvgImageSize(src: string, data: string) {\n // Parse the SVG image size\n const svgTag = data.match(/]*>/)[0]\n\n const viewBoxStr = svgTag.match(/viewBox=['\"](.+)['\"]/)\n let viewBox = viewBoxStr ? parseViewBox(viewBoxStr[1]) : null\n\n const width = svgTag.match(/width=['\"](\\d*\\.\\d+|\\d+)['\"]/)\n const height = svgTag.match(/height=['\"](\\d*\\.\\d+|\\d+)['\"]/)\n\n if (!viewBox && (!width || !height)) {\n throw new Error(`Failed to parse SVG from ${src}: missing \"viewBox\"`)\n }\n\n const size = viewBox ? [viewBox[2], viewBox[3]] : [+width[1], +height[1]]\n\n const ratio = size[0] / size[1]\n const imageSize: [number, number] =\n width && height\n ? [+width[1], +height[1]]\n : width\n ? [+width[1], +width[1] / ratio]\n : height\n ? [+height[1] * ratio, +height[1]]\n : [size[0], size[1]]\n\n return imageSize\n}\n\nfunction arrayBufferToDataUri(data: ArrayBuffer) {\n let imageSize: [number, number]\n\n const imageType = detectContentType(new Uint8Array(data))\n\n switch (imageType) {\n case PNG:\n case APNG:\n imageSize = parsePNG(data)\n break\n case GIF:\n imageSize = parseGIF(data)\n break\n case JPEG:\n imageSize = parseJPEG(data)\n break\n }\n\n if (!ALLOWED_IMAGE_TYPES.includes(imageType)) {\n throw new Error(`Unsupported image type: ${imageType || 'unknown'}`)\n }\n return [\n `data:${imageType};base64,${arrayBufferToBase64(data)}`,\n imageSize,\n ] as const\n}\n\nexport async function resolveImageData(\n src: string | ArrayBuffer\n): Promise {\n if (!src) {\n throw new Error('Image source is not provided.')\n }\n\n // ArrayBuffer\n if (typeof src === 'object') {\n const [newSrc, imageSize] = arrayBufferToDataUri(src)\n return [newSrc, ...imageSize] as ResolvedImageData\n }\n\n if (\n (src.startsWith('\"') && src.endsWith('\"')) ||\n (src.startsWith(\"'\") && src.endsWith(\"'\"))\n ) {\n src = src.slice(1, -1)\n }\n\n // Throw error if the image source is not an absolute URL in server environment\n // Should be after slicing quotes to avoid throwing error too early\n if (typeof window === 'undefined') {\n if (!src.startsWith('http') && !src.startsWith('data:')) {\n throw new Error(`Image source must be an absolute URL: ${src}`)\n }\n }\n\n if (src.startsWith('data:')) {\n let decodedURI: { imageType; encodingType; dataString }\n\n try {\n decodedURI =\n /data:(?[a-z/+]+)(;[^;=]+=[^;=]+)*?(;(?[^;,]+))?,(?.*)/g.exec(\n src\n ).groups as typeof decodedURI\n } catch (err) {\n console.warn('Image data URI resolved without size:' + src)\n return [src]\n }\n\n const { imageType, encodingType, dataString } = decodedURI\n if (imageType === SVG) {\n const utf8Src =\n encodingType === 'base64'\n ? atob(dataString)\n : decodeURIComponent(dataString.replace(/ /g, '%20'))\n const base64Src =\n encodingType === 'base64'\n ? src\n : `data:image/svg+xml;base64,${btoa(utf8Src)}`\n let imageSize = parseSvgImageSize(src, utf8Src)\n cache.set(src, [base64Src, ...imageSize])\n return [base64Src, ...imageSize]\n } else if (encodingType === 'base64') {\n let imageSize: [number, number]\n const data = base64ToArrayBuffer(dataString)\n switch (imageType) {\n case PNG:\n case APNG:\n imageSize = parsePNG(data)\n break\n case GIF:\n imageSize = parseGIF(data)\n break\n case JPEG:\n imageSize = parseJPEG(data)\n break\n }\n cache.set(src, [src, ...imageSize])\n return [src, ...imageSize]\n } else {\n console.warn('Image data URI resolved without size:' + src)\n cache.set(src, [src])\n return [src]\n }\n }\n\n if (!globalThis.fetch) {\n throw new Error('`fetch` is required to be polyfilled to load images.')\n }\n\n if (inflightRequests.has(src)) {\n return inflightRequests.get(src)\n }\n const cached = cache.get(src)\n if (cached) {\n return cached\n }\n\n const url = src\n const promise = fetch(url)\n .then((res): Promise => {\n const type = res.headers.get('content-type')\n\n // Handle SVG specially\n if (type === 'image/svg+xml' || type === 'application/svg+xml') {\n return res.text()\n }\n\n return res.arrayBuffer()\n })\n .then((data) => {\n if (typeof data === 'string') {\n try {\n const newSrc = `data:image/svg+xml;base64,${btoa(data)}`\n // Parse the SVG image size\n const imageSize = parseSvgImageSize(url, data)\n return [newSrc, ...imageSize] as ResolvedImageData\n } catch (e) {\n throw new Error(`Failed to parse SVG image: ${e.message}`)\n }\n }\n\n const [newSrc, imageSize] = arrayBufferToDataUri(data)\n return [newSrc, ...imageSize] as ResolvedImageData\n })\n .then((result) => {\n cache.set(url, result)\n return result\n })\n .catch((err) => {\n console.error(`Can't load image ${url}: ` + err.message)\n cache.set(url, [])\n return [] as const\n })\n\n inflightRequests.set(url, promise)\n return promise\n}\n\n/**\n * Inspects the first few bytes of a buffer to determine if\n * it matches the \"magic number\" of known file signatures.\n * https://en.wikipedia.org/wiki/List_of_file_signatures\n */\nfunction detectContentType(buffer: Uint8Array) {\n if ([0xff, 0xd8, 0xff].every((b, i) => buffer[i] === b)) {\n return JPEG\n }\n if (\n [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a].every(\n (b, i) => buffer[i] === b\n )\n ) {\n if (detectAPNG(buffer)) {\n return APNG\n }\n return PNG\n }\n if ([0x47, 0x49, 0x46, 0x38].every((b, i) => buffer[i] === b)) {\n return GIF\n }\n if (\n [0x52, 0x49, 0x46, 0x46, 0, 0, 0, 0, 0x57, 0x45, 0x42, 0x50].every(\n (b, i) => !b || buffer[i] === b\n )\n ) {\n return WEBP\n }\n if ([0x3c, 0x3f, 0x78, 0x6d, 0x6c].every((b, i) => buffer[i] === b)) {\n return SVG\n }\n if (\n [0, 0, 0, 0, 0x66, 0x74, 0x79, 0x70, 0x61, 0x76, 0x69, 0x66].every(\n (b, i) => !b || buffer[i] === b\n )\n ) {\n return AVIF\n }\n return null\n}\n\nfunction detectAPNG(bytes: Uint8Array) {\n const dv = new DataView(bytes.buffer)\n let type: string,\n length: number,\n off = 8,\n isAPNG = false\n while (!isAPNG && type !== 'IEND' && off < bytes.length) {\n length = dv.getUint32(off)\n const chars = bytes.subarray(off + 4, off + 8)\n type = String.fromCharCode(...chars)\n isAPNG = type === 'acTL'\n off += 12 + length\n }\n return isAPNG\n}\n","import type { ReactElement, ReactNode } from 'react'\nimport { resolveImageData, cache } from './image.js'\nimport { isReactElement, parseViewBox, midline } from '../utils.js'\n\n// Based on\n// https://raw.githubusercontent.com/facebook/react/master/packages/react-dom/src/shared/possibleStandardNames.js\nconst ATTRIBUTE_MAPPING = {\n accentHeight: 'accent-height',\n alignmentBaseline: 'alignment-baseline',\n arabicForm: 'arabic-form',\n baselineShift: 'baseline-shift',\n capHeight: 'cap-height',\n clipPath: 'clip-path',\n clipRule: 'clip-rule',\n colorInterpolation: 'color-interpolation',\n colorInterpolationFilters: 'color-interpolation-filters',\n colorProfile: 'color-profile',\n colorRendering: 'color-rendering',\n dominantBaseline: 'dominant-baseline',\n enableBackground: 'enable-background',\n fillOpacity: 'fill-opacity',\n fillRule: 'fill-rule',\n floodColor: 'flood-color',\n floodOpacity: 'flood-opacity',\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontSizeAdjust: 'font-size-adjust',\n fontStretch: 'font-stretch',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n href: 'href',\n imageRendering: 'image-rendering',\n letterSpacing: 'letter-spacing',\n lightingColor: 'lighting-color',\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pointerEvents: 'pointer-events',\n renderingIntent: 'rendering-intent',\n shapeRendering: 'shape-rendering',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strikethroughPosition: 'strikethrough-position',\n strikethroughThickness: 'strikethrough-thickness',\n strokeDasharray: 'stroke-dasharray',\n strokeDashoffset: 'stroke-dashoffset',\n strokeLinecap: 'stroke-linecap',\n strokeLinejoin: 'stroke-linejoin',\n strokeMiterlimit: 'stroke-miterlimit',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n vectorEffect: 'vector-effect',\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n xHeight: 'x-height',\n xlinkActuate: 'xlink:actuate',\n xlinkArcrole: 'xlink:arcrole',\n xlinkHref: 'xlink:href',\n xlinkRole: 'xlink:role',\n xlinkShow: 'xlink:show',\n xlinkTitle: 'xlink:title',\n xlinkType: 'xlink:type',\n xmlBase: 'xml:base',\n xmlLang: 'xml:lang',\n xmlSpace: 'xml:space',\n xmlnsXlink: 'xmlns:xlink',\n} as const\n\n// From https://github.com/yoksel/url-encoder/blob/master/src/js/script.js\nconst SVGSymbols = /[\\r\\n%#()<>?[\\\\\\]^`{|}\"']/g\n\nfunction translateSVGNodeToSVGString(\n node: ReactElement | string | (ReactElement | string)[],\n inheritedColor: string\n): string {\n if (!node) return ''\n if (Array.isArray(node)) {\n return node\n .map((n) => translateSVGNodeToSVGString(n, inheritedColor))\n .join('')\n }\n if (typeof node !== 'object') return String(node)\n\n const type = node.type\n if (type === 'text') {\n throw new Error(\n ' nodes are not currently supported, please convert them to '\n )\n }\n\n const { children, style, ...restProps } = node.props || {}\n const currentColor = style?.color || inheritedColor\n\n const attrs = `${Object.entries(restProps)\n .map(([k, _v]) => {\n if (typeof _v === 'string' && _v.toLowerCase() === 'currentcolor') {\n _v = currentColor\n }\n\n if (k === 'href' && type === 'image') {\n return ` ${ATTRIBUTE_MAPPING[k] || k}=\"${cache.get(_v as string)[0]}\"`\n }\n return ` ${ATTRIBUTE_MAPPING[k] || k}=\"${_v}\"`\n })\n .join('')}`\n\n const styles = style\n ? ` style=\"${Object.entries(style)\n .map(([k, _v]) => `${midline(k)}:${_v}`)\n .join(';')}\"`\n : ''\n\n return `<${type}${attrs}${styles}>${translateSVGNodeToSVGString(\n children,\n currentColor\n )}`\n}\n/**\n * pre process node and resolve absolute link to img data for image element\n * @param node ReactNode\n * @returns\n */\nexport async function preProcessNode(node: ReactNode) {\n const set = new Set()\n const walk = (_node: ReactNode) => {\n if (!_node) return\n if (!isReactElement(_node)) return\n\n if (Array.isArray(_node)) {\n _node.forEach((v) => walk(v))\n return\n } else if (typeof _node === 'object') {\n if (_node.type === 'image') {\n if (set.has(_node.props.href)) {\n // do nothing\n } else {\n set.add(_node.props.href)\n }\n } else if (_node.type === 'img') {\n if (set.has(_node.props.src)) {\n // do nothing\n } else {\n set.add(_node.props.src)\n }\n } else {\n // do nothing\n }\n }\n\n Array.isArray(_node.props.children)\n ? _node.props.children.map((c) => walk(c))\n : walk(_node.props.children)\n }\n\n walk(node)\n\n return Promise.all(Array.from(set).map((s) => resolveImageData(s)))\n}\n\nexport async function SVGNodeToImage(\n node: ReactElement,\n inheritedColor: string\n): Promise {\n let {\n viewBox,\n viewbox,\n width,\n height,\n className,\n style,\n children,\n ...restProps\n } = node.props || {}\n\n viewBox ||= viewbox\n\n // We directly assign the xmlns attribute here to deduplicate.\n restProps.xmlns = 'http://www.w3.org/2000/svg'\n\n const currentColor = style?.color || inheritedColor\n const viewBoxSize = parseViewBox(viewBox)\n\n // ratio = height / width\n const ratio = viewBoxSize ? viewBoxSize[3] / viewBoxSize[2] : null\n width = width || (ratio && height) ? height / ratio : null\n height = height || (ratio && width) ? width * ratio : null\n\n restProps.width = width\n restProps.height = height\n if (viewBox) restProps.viewBox = viewBox\n\n return `data:image/svg+xml;utf8,${` {\n if (typeof _v === 'string' && _v.toLowerCase() === 'currentcolor') {\n _v = currentColor\n }\n return ` ${ATTRIBUTE_MAPPING[k] || k}=\"${_v}\"`\n })\n .join('')}>${translateSVGNodeToSVGString(\n children,\n currentColor\n )}`.replace(SVGSymbols, encodeURIComponent)}`\n}\n","/**\n * Pre-defined styles for elements. Here we hand pick some from Chromium's\n * default styles:\n * https://chromium.googlesource.com/chromium/blink/+/master/Source/core/css/html.css\n *\n * We try to only include commonly used, styling elements rather than semantic elements.\n */\n\nconst DEFAULT_DISPLAY = 'flex'\n\nexport default {\n // Generic block-level elements\n p: {\n display: DEFAULT_DISPLAY,\n marginTop: '1em',\n marginBottom: '1em',\n },\n div: {\n display: DEFAULT_DISPLAY,\n },\n blockquote: {\n display: DEFAULT_DISPLAY,\n marginTop: '1em',\n marginBottom: '1em',\n marginLeft: 40,\n marginRight: 40,\n },\n center: {\n display: DEFAULT_DISPLAY,\n textAlign: 'center',\n },\n hr: {\n display: DEFAULT_DISPLAY,\n marginTop: '0.5em',\n marginBottom: '0.5em',\n marginLeft: 'auto',\n marginRight: 'auto',\n borderWidth: 1,\n // We don't have `inset`\n borderStyle: 'solid',\n },\n // Heading elements\n h1: {\n display: DEFAULT_DISPLAY,\n fontSize: '2em',\n marginTop: '0.67em',\n marginBottom: '0.67em',\n marginLeft: 0,\n marginRight: 0,\n fontWeight: 'bold',\n },\n h2: {\n display: DEFAULT_DISPLAY,\n fontSize: '1.5em',\n marginTop: '0.83em',\n marginBottom: '0.83em',\n marginLeft: 0,\n marginRight: 0,\n fontWeight: 'bold',\n },\n h3: {\n display: DEFAULT_DISPLAY,\n fontSize: '1.17em',\n marginTop: '1em',\n marginBottom: '1em',\n marginLeft: 0,\n marginRight: 0,\n fontWeight: 'bold',\n },\n h4: {\n display: DEFAULT_DISPLAY,\n marginTop: '1.33em',\n marginBottom: '1.33em',\n marginLeft: 0,\n marginRight: 0,\n fontWeight: 'bold',\n },\n h5: {\n display: DEFAULT_DISPLAY,\n fontSize: '0.83em',\n marginTop: '1.67em',\n marginBottom: '1.67em',\n marginLeft: 0,\n marginRight: 0,\n fontWeight: 'bold',\n },\n h6: {\n display: DEFAULT_DISPLAY,\n fontSize: '0.67em',\n marginTop: '2.33em',\n marginBottom: '2.33em',\n marginLeft: 0,\n marginRight: 0,\n fontWeight: 'bold',\n },\n // Tables\n // Lists\n // Form elements\n // Inline elements\n u: {\n textDecoration: 'underline',\n },\n strong: {\n fontWeight: 'bold',\n },\n b: {\n fontWeight: 'bold',\n },\n i: {\n fontStyle: 'italic',\n },\n em: {\n fontStyle: 'italic',\n },\n code: {\n fontFamily: 'monospace',\n },\n kbd: {\n fontFamily: 'monospace',\n },\n pre: {\n display: DEFAULT_DISPLAY,\n fontFamily: 'monospace',\n whiteSpace: 'pre',\n marginTop: '1em',\n marginBottom: '1em',\n },\n mark: {\n backgroundColor: 'yellow',\n color: 'black',\n },\n big: {\n fontSize: 'larger',\n },\n small: {\n fontSize: 'smaller',\n },\n s: {\n textDecoration: 'line-through',\n },\n}\n","import { SerializedStyle } from './expand.js'\n\nconst list = new Set([\n 'color',\n 'font',\n 'fontFamily',\n 'fontSize',\n 'fontStyle',\n 'fontWeight',\n 'letterSpacing',\n 'lineHeight',\n 'textAlign',\n 'textTransform',\n 'textShadowOffset',\n 'textShadowColor',\n 'textShadowRadius',\n 'WebkitTextStrokeWidth',\n 'WebkitTextStrokeColor',\n 'textDecorationLine',\n 'textDecorationStyle',\n 'textDecorationColor',\n 'whiteSpace',\n 'transform',\n 'wordBreak',\n 'tabSize',\n\n // Special case: SVG doesn't apply these to children elements so we need to\n // make it inheritable here.\n 'opacity',\n 'filter',\n\n // Special properties of Satori:\n '_viewportWidth',\n '_viewportHeight',\n '_inheritedClipPathId',\n '_inheritedMaskId',\n '_inheritedBackgroundClipTextPath',\n])\n\nexport default function inheritable(style: SerializedStyle): SerializedStyle {\n const inheritedStyle: SerializedStyle = {}\n for (const prop in style) {\n if (list.has(prop)) {\n inheritedStyle[prop] = style[prop]\n }\n }\n return inheritedStyle\n}\n","/**\n * Handler to update the Yoga node properties with the given element type and\n * style. Each supported element has its own preset styles, so this function\n * also returns the inherited style for children of the element.\n */\n\nimport type { Node as YogaNode } from 'yoga-wasm-web'\n\nimport getYoga from '../yoga/index.js'\nimport presets from './presets.js'\nimport inheritable from './inheritable.js'\nimport expand, { SerializedStyle } from './expand.js'\nimport { lengthToNumber, parseViewBox, v } from '../utils.js'\nimport { resolveImageData } from './image.js'\n\ntype SatoriElement = keyof typeof presets\n\nexport default async function compute(\n node: YogaNode,\n type: SatoriElement | string,\n inheritedStyle: SerializedStyle,\n definedStyle: Record,\n props: Record\n): Promise<[SerializedStyle, SerializedStyle]> {\n const Yoga = await getYoga()\n\n // Extend the default style with defined and inherited styles.\n const style: SerializedStyle = {\n ...inheritedStyle,\n ...expand(presets[type], inheritedStyle),\n ...expand(definedStyle, inheritedStyle),\n }\n\n if (type === 'img') {\n let [resolvedSrc, imageWidth, imageHeight] = await resolveImageData(\n props.src\n )\n\n // Cannot parse the image size (e.g. base64 data URI).\n if (imageWidth === undefined && imageHeight === undefined) {\n if (props.width === undefined || props.height === undefined) {\n throw new Error(\n 'Image size cannot be determined. Please provide the width and height of the image.'\n )\n }\n imageWidth = parseInt(props.width)\n imageHeight = parseInt(props.height)\n }\n const r = imageHeight / imageWidth\n\n // Before calculating the missing width or height based on the image ratio,\n // we must subtract the padding and border due to how box model works.\n // TODO: Ensure these are absolute length values, not relative values.\n let extraHorizontal =\n (style.borderLeftWidth || 0) +\n (style.borderRightWidth || 0) +\n (style.paddingLeft || 0) +\n (style.paddingRight || 0)\n let extraVertical =\n (style.borderTopWidth || 0) +\n (style.borderBottomWidth || 0) +\n (style.paddingTop || 0) +\n (style.paddingBottom || 0)\n\n let contentBoxWidth = style.width || props.width\n let contentBoxHeight = style.height || props.height\n\n const isAbsoluteContentSize =\n typeof contentBoxWidth === 'number' &&\n typeof contentBoxHeight === 'number'\n\n if (isAbsoluteContentSize) {\n contentBoxWidth -= extraHorizontal\n contentBoxHeight -= extraVertical\n }\n\n // When no content size is defined, we use the image size as the content size.\n if (contentBoxWidth === undefined && contentBoxHeight === undefined) {\n contentBoxWidth = '100%'\n node.setAspectRatio(1 / r)\n } else {\n // If only one sisde is not defined, we can calculate the other one.\n if (contentBoxWidth === undefined) {\n if (typeof contentBoxHeight === 'number') {\n contentBoxWidth = contentBoxHeight / r\n } else {\n // If it uses a relative value (e.g. 50%), we can rely on aspect ratio.\n // Note: this doesn't work well if there are paddings or borders.\n node.setAspectRatio(1 / r)\n }\n } else if (contentBoxHeight === undefined) {\n if (typeof contentBoxWidth === 'number') {\n contentBoxHeight = contentBoxWidth * r\n } else {\n // If it uses a relative value (e.g. 50%), we can rely on aspect ratio.\n // Note: this doesn't work well if there are paddings or borders.\n node.setAspectRatio(1 / r)\n }\n }\n }\n\n style.width = isAbsoluteContentSize\n ? (contentBoxWidth as number) + extraHorizontal\n : contentBoxWidth\n style.height = isAbsoluteContentSize\n ? (contentBoxHeight as number) + extraVertical\n : contentBoxHeight\n style.__src = resolvedSrc\n }\n\n if (type === 'svg') {\n const viewBox = props.viewBox || props.viewbox\n const viewBoxSize = parseViewBox(viewBox)\n const ratio = viewBoxSize ? viewBoxSize[3] / viewBoxSize[2] : null\n\n let { width, height } = props\n if (typeof width === 'undefined' && height) {\n if (ratio == null) {\n width = 0\n } else if (typeof height === 'string' && height.endsWith('%')) {\n width = parseInt(height) / ratio + '%'\n } else {\n height = lengthToNumber(\n height,\n inheritedStyle.fontSize,\n 1,\n inheritedStyle\n )\n width = height / ratio\n }\n } else if (typeof height === 'undefined' && width) {\n if (ratio == null) {\n width = 0\n } else if (typeof width === 'string' && width.endsWith('%')) {\n height = parseInt(width) * ratio + '%'\n } else {\n width = lengthToNumber(\n width,\n inheritedStyle.fontSize,\n 1,\n inheritedStyle\n )\n height = width * ratio\n }\n } else {\n if (typeof width !== 'undefined') {\n width =\n lengthToNumber(width, inheritedStyle.fontSize, 1, inheritedStyle) ||\n width\n }\n if (typeof height !== 'undefined') {\n height =\n lengthToNumber(height, inheritedStyle.fontSize, 1, inheritedStyle) ||\n height\n }\n width ||= viewBoxSize?.[2]\n height ||= viewBoxSize?.[3]\n }\n\n if (!style.width && width) style.width = width\n if (!style.height && height) style.height = height\n }\n\n // Set properties for Yoga.\n node.setDisplay(\n v(\n style.display,\n {\n flex: Yoga.DISPLAY_FLEX,\n block: Yoga.DISPLAY_FLEX,\n none: Yoga.DISPLAY_NONE,\n '-webkit-box': Yoga.DISPLAY_FLEX,\n },\n Yoga.DISPLAY_FLEX,\n 'display'\n )\n )\n\n node.setAlignContent(\n v(\n style.alignContent,\n {\n stretch: Yoga.ALIGN_STRETCH,\n center: Yoga.ALIGN_CENTER,\n 'flex-start': Yoga.ALIGN_FLEX_START,\n 'flex-end': Yoga.ALIGN_FLEX_END,\n 'space-between': Yoga.ALIGN_SPACE_BETWEEN,\n 'space-around': Yoga.ALIGN_SPACE_AROUND,\n baseline: Yoga.ALIGN_BASELINE,\n normal: Yoga.ALIGN_AUTO,\n },\n Yoga.ALIGN_AUTO,\n 'alignContent'\n )\n )\n\n node.setAlignItems(\n v(\n style.alignItems,\n {\n stretch: Yoga.ALIGN_STRETCH,\n center: Yoga.ALIGN_CENTER,\n 'flex-start': Yoga.ALIGN_FLEX_START,\n 'flex-end': Yoga.ALIGN_FLEX_END,\n baseline: Yoga.ALIGN_BASELINE,\n normal: Yoga.ALIGN_AUTO,\n },\n Yoga.ALIGN_STRETCH,\n 'alignItems'\n )\n )\n node.setAlignSelf(\n v(\n style.alignSelf,\n {\n stretch: Yoga.ALIGN_STRETCH,\n center: Yoga.ALIGN_CENTER,\n 'flex-start': Yoga.ALIGN_FLEX_START,\n 'flex-end': Yoga.ALIGN_FLEX_END,\n baseline: Yoga.ALIGN_BASELINE,\n normal: Yoga.ALIGN_AUTO,\n },\n Yoga.ALIGN_AUTO,\n 'alignSelf'\n )\n )\n node.setJustifyContent(\n v(\n style.justifyContent,\n {\n center: Yoga.JUSTIFY_CENTER,\n 'flex-start': Yoga.JUSTIFY_FLEX_START,\n 'flex-end': Yoga.JUSTIFY_FLEX_END,\n 'space-between': Yoga.JUSTIFY_SPACE_BETWEEN,\n 'space-around': Yoga.JUSTIFY_SPACE_AROUND,\n },\n Yoga.JUSTIFY_FLEX_START,\n 'justifyContent'\n )\n )\n // @TODO: node.setAspectRatio\n\n node.setFlexDirection(\n v(\n style.flexDirection,\n {\n row: Yoga.FLEX_DIRECTION_ROW,\n column: Yoga.FLEX_DIRECTION_COLUMN,\n 'row-reverse': Yoga.FLEX_DIRECTION_ROW_REVERSE,\n 'column-reverse': Yoga.FLEX_DIRECTION_COLUMN_REVERSE,\n },\n Yoga.FLEX_DIRECTION_ROW,\n 'flexDirection'\n )\n )\n node.setFlexWrap(\n v(\n style.flexWrap,\n {\n wrap: Yoga.WRAP_WRAP,\n nowrap: Yoga.WRAP_NO_WRAP,\n 'wrap-reverse': Yoga.WRAP_WRAP_REVERSE,\n },\n Yoga.WRAP_NO_WRAP,\n 'flexWrap'\n )\n )\n\n if (typeof style.gap !== 'undefined') {\n node.setGap(Yoga.GUTTER_ALL, style.gap)\n }\n\n if (typeof style.rowGap !== 'undefined') {\n node.setGap(Yoga.GUTTER_ROW, style.rowGap)\n }\n\n if (typeof style.columnGap !== 'undefined') {\n node.setGap(Yoga.GUTTER_COLUMN, style.columnGap)\n }\n\n // @TODO: node.setFlex\n\n if (typeof style.flexBasis !== 'undefined') {\n node.setFlexBasis(style.flexBasis)\n }\n node.setFlexGrow(typeof style.flexGrow === 'undefined' ? 0 : style.flexGrow)\n node.setFlexShrink(\n typeof style.flexShrink === 'undefined' ? 0 : style.flexShrink\n )\n\n if (typeof style.maxHeight !== 'undefined') {\n node.setMaxHeight(style.maxHeight)\n }\n if (typeof style.maxWidth !== 'undefined') {\n node.setMaxWidth(style.maxWidth)\n }\n if (typeof style.minHeight !== 'undefined') {\n node.setMinHeight(style.minHeight)\n }\n if (typeof style.minWidth !== 'undefined') {\n node.setMinWidth(style.minWidth)\n }\n\n node.setOverflow(\n v(\n style.overflow,\n {\n visible: Yoga.OVERFLOW_VISIBLE,\n hidden: Yoga.OVERFLOW_HIDDEN,\n },\n Yoga.OVERFLOW_VISIBLE,\n 'overflow'\n )\n )\n\n node.setMargin(Yoga.EDGE_TOP, style.marginTop || 0)\n node.setMargin(Yoga.EDGE_BOTTOM, style.marginBottom || 0)\n node.setMargin(Yoga.EDGE_LEFT, style.marginLeft || 0)\n node.setMargin(Yoga.EDGE_RIGHT, style.marginRight || 0)\n\n node.setBorder(Yoga.EDGE_TOP, style.borderTopWidth || 0)\n node.setBorder(Yoga.EDGE_BOTTOM, style.borderBottomWidth || 0)\n node.setBorder(Yoga.EDGE_LEFT, style.borderLeftWidth || 0)\n node.setBorder(Yoga.EDGE_RIGHT, style.borderRightWidth || 0)\n\n node.setPadding(Yoga.EDGE_TOP, style.paddingTop || 0)\n node.setPadding(Yoga.EDGE_BOTTOM, style.paddingBottom || 0)\n node.setPadding(Yoga.EDGE_LEFT, style.paddingLeft || 0)\n node.setPadding(Yoga.EDGE_RIGHT, style.paddingRight || 0)\n\n node.setPositionType(\n v(\n style.position,\n {\n absolute: Yoga.POSITION_TYPE_ABSOLUTE,\n relative: Yoga.POSITION_TYPE_RELATIVE,\n },\n Yoga.POSITION_TYPE_RELATIVE,\n 'position'\n )\n )\n\n if (typeof style.top !== 'undefined') {\n node.setPosition(Yoga.EDGE_TOP, style.top)\n }\n if (typeof style.bottom !== 'undefined') {\n node.setPosition(Yoga.EDGE_BOTTOM, style.bottom)\n }\n if (typeof style.left !== 'undefined') {\n node.setPosition(Yoga.EDGE_LEFT, style.left)\n }\n if (typeof style.right !== 'undefined') {\n node.setPosition(Yoga.EDGE_RIGHT, style.right)\n }\n\n if (typeof style.height !== 'undefined') {\n node.setHeight(style.height)\n } else {\n node.setHeightAuto()\n }\n if (typeof style.width !== 'undefined') {\n node.setWidth(style.width)\n } else {\n node.setWidthAuto()\n }\n\n return [style, inheritable(style)]\n}\n","import { multiply } from '../utils.js'\nimport type { ParsedTransformOrigin } from '../transform-origin.js'\n\nconst baseMatrix = [1, 0, 0, 1, 0, 0]\n\n// Mutate the array in place.\nfunction resolveTransforms(transforms: any[], width: number, height: number) {\n let matrix = [...baseMatrix]\n\n // Handle CSS transforms To make it easier, we convert different transform\n // types directly to a matrix and apply it recursively to all its children.\n // Transforms are applied from right to left.\n // eslint-disable-next-line @typescript-eslint/no-shadow\n for (const transform of transforms) {\n const type = Object.keys(transform)[0]\n let v = transform[type]\n\n // Resolve percentages based on the element's final size.\n if (typeof v === 'string') {\n if (type === 'translateX') {\n v = (parseFloat(v) / 100) * width\n // Override the original object.\n transform[type] = v\n } else if (type === 'translateY') {\n v = (parseFloat(v) / 100) * height\n transform[type] = v\n } else {\n throw new Error(`Invalid transform: \"${type}: ${v}\".`)\n }\n }\n\n let len = v as number\n\n const transformMatrix = [...baseMatrix]\n switch (type) {\n case 'translateX':\n transformMatrix[4] = len\n break\n case 'translateY':\n transformMatrix[5] = len\n break\n case 'scale':\n transformMatrix[0] = len\n transformMatrix[3] = len\n break\n case 'scaleX':\n transformMatrix[0] = len\n break\n case 'scaleY':\n transformMatrix[3] = len\n break\n case 'rotate': {\n const rad = (len * Math.PI) / 180\n const c = Math.cos(rad)\n const s = Math.sin(rad)\n transformMatrix[0] = c\n transformMatrix[1] = s\n transformMatrix[2] = -s\n transformMatrix[3] = c\n break\n }\n case 'skewX':\n transformMatrix[2] = Math.tan((len * Math.PI) / 180)\n break\n case 'skewY':\n transformMatrix[1] = Math.tan((len * Math.PI) / 180)\n break\n }\n matrix = multiply(transformMatrix, matrix)\n }\n\n transforms.splice(0, transforms.length)\n transforms.push(...matrix)\n ;(transforms as any).__resolved = true\n}\n\nexport default function transform(\n {\n left,\n top,\n width,\n height,\n }: {\n left: number\n top: number\n width: number\n height: number\n },\n transforms: number[],\n isInheritingTransform: boolean,\n transformOrigin?: ParsedTransformOrigin\n) {\n let result: number[]\n\n if (!(transforms as any).__resolved) {\n resolveTransforms(transforms, width, height)\n }\n\n let matrix = transforms\n\n // Calculate the transform origin.\n if (isInheritingTransform) {\n result = matrix\n } else {\n const xOrigin =\n transformOrigin?.xAbsolute ??\n ((transformOrigin?.xRelative ?? 50) * width) / 100\n const yOrigin =\n transformOrigin?.yAbsolute ??\n ((transformOrigin?.yRelative ?? 50) * height) / 100\n\n // If this element is the transform target, we attach the origin coordinates\n // to this matrix.\n const x = left + xOrigin\n const y = top + yOrigin\n\n // Due to the different coordinate systems, we need to move the shape to the\n // origin first, then apply the matrix, then move it back.\n result = multiply(\n [1, 0, 0, 1, x, y],\n multiply(matrix, [1, 0, 0, 1, -x, -y])\n )\n\n // And we need to apply its parent transform if it has one.\n if ((matrix as any).__parent) {\n result = multiply((matrix as any).__parent, result)\n }\n\n // Mutate self.\n matrix.splice(0, 6, ...result)\n }\n\n return `matrix(${result.map((v) => v.toFixed(2)).join(',')})`\n}\n","// @TODO: It seems that SVG filters are pretty expensive for resvg, PNG\n// generation time 10x'd when adding this filter (WASM in browser).\n// https://drafts.fxtf.org/filter-effects/#feGaussianBlurElement\n\nimport { buildXMLString } from '../utils.js'\n\nfunction shiftPath(path: string, dx: number, dy: number) {\n return path.replace(\n /([MA])([0-9.-]+),([0-9.-]+)/g,\n function (_, command, x, y) {\n return command + (parseFloat(x) + dx) + ',' + (parseFloat(y) + dy)\n }\n )\n}\n\n// The scale is used to make the filter area larger than the bounding box,\n// because usually the given measured text bounding is larger than the path\n// bounding.\n// The text bounding box is measured via the font metrics, which is not the same\n// as the actual content. For example, the text bounding box of \"A\" is larger\n// than the actual \"a\" path but they have the same font metrics.\n// This scale can be adjusted to prevent the filter from cutting off the text.\nconst SCALE = 1.1\n\nexport function buildDropShadow(\n { id, width, height }: { id: string; width: number; height: number },\n style: {\n shadowColor: string[]\n shadowOffset: {\n width: number\n height: number\n }[]\n shadowRadius: number[]\n }\n) {\n if (\n !style.shadowColor ||\n !style.shadowOffset ||\n typeof style.shadowRadius === 'undefined'\n ) {\n return ''\n }\n\n const shadowCount = style.shadowColor.length\n let effects = ''\n let merge = ''\n\n // There could be multiple shadows, we need to get the maximum bounding box\n // and use `feMerge` to merge them together.\n let left = 0\n let right = width\n let top = 0\n let bottom = height\n for (let i = 0; i < shadowCount; i++) {\n // Expand the area for the filter to prevent it from cutting off.\n const grow = (style.shadowRadius[i] * style.shadowRadius[i]) / 4\n left = Math.min(style.shadowOffset[i].width - grow, left)\n right = Math.max(style.shadowOffset[i].width + grow + width, right)\n top = Math.min(style.shadowOffset[i].height - grow, top)\n bottom = Math.max(style.shadowOffset[i].height + grow + height, bottom)\n\n effects += buildXMLString('feDropShadow', {\n dx: style.shadowOffset[i].width,\n dy: style.shadowOffset[i].height,\n stdDeviation:\n // According to the spec, we use the half of the blur radius as the standard\n // deviation for the filter.\n // > the image that would be generated by applying to the shadow a Gaussian\n // > blur with a standard deviation equal to half the blur radius\n // > https://www.w3.org/TR/css-backgrounds-3/#shadow-blur\n style.shadowRadius[i] / 2,\n 'flood-color': style.shadowColor[i],\n 'flood-opacity': 1,\n ...(shadowCount > 1\n ? {\n in: 'SourceGraphic',\n result: `satori_s-${id}-result-${i}`,\n }\n : {}),\n })\n\n if (shadowCount > 1) {\n // Merge needs to be in reverse order.\n merge =\n buildXMLString('feMergeNode', {\n in: `satori_s-${id}-result-${i}`,\n }) + merge\n }\n }\n\n return buildXMLString(\n 'filter',\n {\n id: `satori_s-${id}`,\n x: ((left / width) * 100 * SCALE).toFixed(2) + '%',\n y: ((top / height) * 100 * SCALE).toFixed(2) + '%',\n width: (((right - left) / width) * 100 * SCALE).toFixed(2) + '%',\n height: (((bottom - top) / height) * 100 * SCALE).toFixed(2) + '%',\n },\n effects + (merge ? buildXMLString('feMerge', {}, merge) : '')\n )\n}\n\nexport function boxShadow(\n {\n width,\n height,\n shape,\n opacity,\n id,\n }: {\n width: number\n height: number\n shape: string\n opacity: number\n id: string\n },\n style: Record\n) {\n if (!style.boxShadow) return null\n\n let shadow = ''\n let innerShadow = ''\n\n for (let i = style.boxShadow.length - 1; i >= 0; i--) {\n let s = ''\n\n const shadowStyle = style.boxShadow[i]\n\n if (shadowStyle.spreadRadius && shadowStyle.inset) {\n shadowStyle.spreadRadius = -shadowStyle.spreadRadius\n }\n\n // Expand the area for the filter to prevent it from cutting off.\n const grow =\n (shadowStyle.blurRadius * shadowStyle.blurRadius) / 4 +\n (shadowStyle.spreadRadius || 0)\n\n const left = Math.min(\n -grow - (shadowStyle.inset ? shadowStyle.offsetX : 0),\n 0\n )\n const right = Math.max(\n grow + width - (shadowStyle.inset ? shadowStyle.offsetX : 0),\n width\n )\n const top = Math.min(\n -grow - (shadowStyle.inset ? shadowStyle.offsetY : 0),\n 0\n )\n const bottom = Math.max(\n grow + height - (shadowStyle.inset ? shadowStyle.offsetY : 0),\n height\n )\n\n const sid = `satori_s-${id}-${i}`\n const maskId = `satori_ms-${id}-${i}`\n const shapeWithSpread = shadowStyle.spreadRadius\n ? shape.replace(\n 'stroke-width=\"0\"',\n `stroke-width=\"${shadowStyle.spreadRadius * 2}\"`\n )\n : shape\n\n s += buildXMLString(\n 'mask',\n {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n },\n buildXMLString('rect', {\n x: 0,\n y: 0,\n width: style._viewportWidth || '100%',\n height: style._viewportHeight || '100%',\n fill: shadowStyle.inset ? '#000' : '#fff',\n }) +\n shapeWithSpread\n .replace(\n 'fill=\"#fff\"',\n shadowStyle.inset ? 'fill=\"#fff\"' : 'fill=\"#000\"'\n )\n .replace('stroke=\"#fff\"', '')\n )\n\n let finalShape = shapeWithSpread\n .replace(/d=\"([^\"]+)\"/, (_, path) => {\n return (\n 'd=\"' +\n shiftPath(path, shadowStyle.offsetX, shadowStyle.offsetY) +\n '\"'\n )\n })\n .replace(/x=\"([^\"]+)\"/, (_, x) => {\n return 'x=\"' + (parseFloat(x) + shadowStyle.offsetX) + '\"'\n })\n .replace(/y=\"([^\"]+)\"/, (_, y) => {\n return 'y=\"' + (parseFloat(y) + shadowStyle.offsetY) + '\"'\n })\n\n // Negative spread radius, we need another mask here.\n if (shadowStyle.spreadRadius && shadowStyle.spreadRadius < 0) {\n s += buildXMLString(\n 'mask',\n {\n id: maskId + '-neg',\n maskUnits: 'userSpaceOnUse',\n },\n finalShape\n .replace('stroke=\"#fff\"', 'stroke=\"#000\"')\n .replace(\n /stroke-width=\"[^\"]+\"/,\n `stroke-width=\"${-shadowStyle.spreadRadius * 2}\"`\n )\n )\n }\n\n if (shadowStyle.spreadRadius && shadowStyle.spreadRadius < 0) {\n finalShape = buildXMLString(\n 'g',\n {\n mask: `url(#${maskId}-neg)`,\n },\n finalShape\n )\n }\n\n s +=\n buildXMLString(\n 'defs',\n {},\n buildXMLString(\n 'filter',\n {\n id: sid,\n x: `${(left / width) * 100}%`,\n y: `${(top / height) * 100}%`,\n width: `${((right - left) / width) * 100}%`,\n height: `${((bottom - top) / height) * 100}%`,\n },\n buildXMLString('feGaussianBlur', {\n // According to the spec, we use the half of the blur radius as the standard\n // deviation for the filter.\n // > the image that would be generated by applying to the shadow a Gaussian\n // > blur with a standard deviation equal to half the blur radius\n // > https://www.w3.org/TR/css-backgrounds-3/#shadow-blur\n stdDeviation: shadowStyle.blurRadius / 2,\n result: 'b',\n }) +\n buildXMLString('feFlood', {\n 'flood-color': shadowStyle.color,\n in: 'SourceGraphic',\n result: 'f',\n }) +\n buildXMLString('feComposite', {\n in: 'f',\n in2: 'b',\n operator: shadowStyle.inset ? 'out' : 'in',\n })\n )\n ) +\n buildXMLString(\n 'g',\n {\n mask: `url(#${maskId})`,\n filter: `url(#${sid})`,\n opacity: opacity,\n },\n finalShape\n )\n\n if (shadowStyle.inset) {\n innerShadow += s\n } else {\n shadow += s\n }\n }\n\n return [shadow, innerShadow]\n}\n","import { buildXMLString } from '../utils.js'\n\nexport default function buildDecoration(\n {\n width,\n left,\n top,\n ascender,\n clipPathId,\n matrix,\n }: {\n width: number\n left: number\n top: number\n ascender: number\n clipPathId?: string\n matrix?: string\n },\n style: Record\n) {\n const {\n textDecorationColor,\n textDecorationStyle,\n textDecorationLine,\n fontSize,\n color,\n } = style\n if (!textDecorationLine || textDecorationLine === 'none') return ''\n\n // The UA should use such font-based information when choosing auto line thicknesses wherever appropriate.\n // https://drafts.csswg.org/css-text-decor-4/#text-decoration-thickness\n const height = Math.max(1, fontSize * 0.1)\n\n const y =\n textDecorationLine === 'line-through'\n ? top + ascender * 0.7\n : textDecorationLine === 'underline'\n ? top + ascender * 1.1\n : top\n\n const dasharray =\n textDecorationStyle === 'dashed'\n ? `${height * 1.2} ${height * 2}`\n : textDecorationStyle === 'dotted'\n ? `0 ${height * 2}`\n : undefined\n\n return (\n (clipPathId ? `` : '') +\n buildXMLString('line', {\n x1: left,\n y1: y,\n x2: left + width,\n y2: y,\n stroke: textDecorationColor || color,\n 'stroke-width': height,\n 'stroke-dasharray': dasharray,\n 'stroke-linecap': textDecorationStyle === 'dotted' ? 'round' : 'square',\n transform: matrix,\n }) +\n (clipPathId ? '' : '')\n )\n}\n","export function stringFromCode(code: string): string {\n code = code.replace('U+', '0x')\n\n return String.fromCodePoint(Number(code))\n}\n\nexport const Space = stringFromCode('U+0020')\nexport const Tab = stringFromCode('U+0009')\nexport const HorizontalEllipsis = stringFromCode('U+2026')\n","import { FontEngine } from '../font.js'\nimport { segment } from '../utils.js'\n\nexport function genMeasurer(\n engine: FontEngine,\n isImage: (grapheme: string) => boolean,\n style: {\n fontSize: number\n letterSpacing: number\n }\n): {\n measureGrapheme: (grapheme: string) => number\n measureGraphemeArray: (graphemes: string[]) => number\n measureText: (text: string) => number\n} {\n const { fontSize, letterSpacing } = style\n\n const cache = new Map()\n\n function measureGrapheme(grapheme: string): number {\n if (cache.has(grapheme)) {\n return cache.get(grapheme)\n }\n\n const width = engine.measure(grapheme, { fontSize, letterSpacing })\n cache.set(grapheme, width)\n\n return width\n }\n\n function measureGraphemeArray(graphemes: string[]): number {\n let width = 0\n\n for (const grapheme of graphemes) {\n if (isImage(grapheme)) {\n width += fontSize\n } else {\n width += measureGrapheme(grapheme)\n }\n }\n\n return width\n }\n\n function measureText(text: string): number {\n return measureGraphemeArray(segment(text, 'grapheme'))\n }\n\n return {\n measureGrapheme,\n measureGraphemeArray,\n measureText,\n }\n}\n","import { Locale } from '../language.js'\nimport { isNumber, segment, splitByBreakOpportunities } from '../utils.js'\nimport { HorizontalEllipsis, Space } from './characters.js'\nimport { SerializedStyle } from '../handler/expand.js'\n\nexport function preprocess(\n content: string,\n style: SerializedStyle,\n locale?: Locale\n): {\n words: string[]\n requiredBreaks: boolean[]\n allowSoftWrap: boolean\n allowBreakWord: boolean\n processedContent: string\n shouldCollapseTabsAndSpaces: boolean\n lineLimit: number\n blockEllipsis: string\n} {\n const { textTransform, whiteSpace, wordBreak } = style\n\n content = processTextTransform(content, textTransform, locale)\n\n const {\n content: processedContent,\n shouldCollapseTabsAndSpaces,\n allowSoftWrap,\n } = processWhiteSpace(content, whiteSpace)\n\n const { words, requiredBreaks, allowBreakWord } = processWordBreak(\n processedContent,\n wordBreak\n )\n\n const [lineLimit, blockEllipsis] = processTextOverflow(style, allowSoftWrap)\n\n return {\n words,\n requiredBreaks,\n allowSoftWrap,\n allowBreakWord,\n processedContent,\n shouldCollapseTabsAndSpaces,\n lineLimit,\n blockEllipsis,\n }\n}\n\nfunction processTextTransform(\n content: string,\n textTransform: string,\n locale?: Locale\n): string {\n if (textTransform === 'uppercase') {\n content = content.toLocaleUpperCase(locale)\n } else if (textTransform === 'lowercase') {\n content = content.toLocaleLowerCase(locale)\n } else if (textTransform === 'capitalize') {\n content = segment(content, 'word', locale)\n // For each word...\n .map((word) => {\n // ...split into graphemes...\n return segment(word, 'grapheme', locale)\n .map((grapheme, index) => {\n // ...and make the first grapheme uppercase\n return index === 0 ? grapheme.toLocaleUpperCase(locale) : grapheme\n })\n .join('')\n })\n .join('')\n }\n\n return content\n}\n\nfunction processTextOverflow(\n style: SerializedStyle,\n allowSoftWrap: boolean\n): [number, string?] {\n const {\n textOverflow,\n lineClamp,\n WebkitLineClamp,\n WebkitBoxOrient,\n overflow,\n display,\n } = style\n\n if (display === 'block' && lineClamp) {\n const [lineLimit, blockEllipsis = HorizontalEllipsis] =\n parseLineClamp(lineClamp)\n if (lineLimit) {\n return [lineLimit, blockEllipsis]\n }\n }\n\n if (\n textOverflow === 'ellipsis' &&\n display === '-webkit-box' &&\n WebkitBoxOrient === 'vertical' &&\n isNumber(WebkitLineClamp) &&\n WebkitLineClamp > 0\n ) {\n return [WebkitLineClamp, HorizontalEllipsis]\n }\n\n if (textOverflow === 'ellipsis' && overflow === 'hidden' && !allowSoftWrap) {\n return [1, HorizontalEllipsis]\n }\n\n return [Infinity]\n}\n\nfunction processWordBreak(\n content,\n wordBreak: string\n): { words: string[]; requiredBreaks: boolean[]; allowBreakWord: boolean } {\n const allowBreakWord = ['break-all', 'break-word'].includes(wordBreak)\n\n const { words, requiredBreaks } = splitByBreakOpportunities(\n content,\n wordBreak\n )\n\n return { words, requiredBreaks, allowBreakWord }\n}\n\nfunction processWhiteSpace(\n content: string,\n whiteSpace: string\n): {\n content: string\n shouldCollapseTabsAndSpaces: boolean\n allowSoftWrap: boolean\n} {\n const shouldKeepLinebreak = ['pre', 'pre-wrap', 'pre-line'].includes(\n whiteSpace\n )\n\n const shouldCollapseTabsAndSpaces = ['normal', 'nowrap', 'pre-line'].includes(\n whiteSpace\n )\n\n const allowSoftWrap = !['pre', 'nowrap'].includes(whiteSpace)\n\n if (!shouldKeepLinebreak) {\n content = content.replace(/\\n/g, Space)\n }\n\n if (shouldCollapseTabsAndSpaces) {\n content = content.replace(/([ ]|\\t)+/g, Space).replace(/^[ ]|[ ]$/g, '')\n }\n\n return { content, shouldCollapseTabsAndSpaces, allowSoftWrap }\n}\n\nfunction parseLineClamp(input: number | string): [number?, string?] {\n if (typeof input === 'number') return [input]\n\n const regex1 = /^(\\d+)\\s*\"(.*)\"$/\n const regex2 = /^(\\d+)\\s*'(.*)'$/\n const match1 = regex1.exec(input)\n const match2 = regex2.exec(input)\n\n if (match1) {\n const number = +match1[1]\n const text = match1[2]\n\n return [number, text]\n } else if (match2) {\n const number = +match2[1]\n const text = match2[2]\n\n return [number, text]\n }\n\n return []\n}\n","/**\n * This module calculates the layout of a text string. Currently the only\n * supported inline node is text. All other nodes are using block layout.\n */\nimport type { LayoutContext } from '../layout.js'\nimport type { Yoga } from 'yoga-wasm-web'\nimport getYoga from '../yoga/index.js'\nimport {\n v,\n segment,\n wordSeparators,\n buildXMLString,\n isUndefined,\n isString,\n lengthToNumber,\n} from '../utils.js'\nimport buildText, { container } from '../builder/text.js'\nimport { buildDropShadow } from '../builder/shadow.js'\nimport buildDecoration from '../builder/text-decoration.js'\nimport { Locale } from '../language.js'\nimport { HorizontalEllipsis, Space, Tab } from './characters.js'\nimport { genMeasurer } from './measurer.js'\nimport { preprocess } from './processor.js'\n\nconst skippedWordWhenFindingMissingFont = new Set([Tab])\n\nfunction shouldSkipWhenFindingMissingFont(word: string): boolean {\n return skippedWordWhenFindingMissingFont.has(word)\n}\n\nexport default async function* buildTextNodes(\n content: string,\n context: LayoutContext\n): AsyncGenerator<{ word: string; locale?: Locale }[], string, [any, any]> {\n const Yoga = await getYoga()\n\n const {\n parentStyle,\n inheritedStyle,\n parent,\n font,\n id,\n isInheritingTransform,\n debug,\n embedFont,\n graphemeImages,\n locale,\n canLoadAdditionalAssets,\n } = context\n\n const {\n textAlign,\n lineHeight,\n textWrap,\n fontSize,\n filter: cssFilter,\n tabSize = 8,\n letterSpacing,\n _inheritedBackgroundClipTextPath,\n flexShrink,\n } = parentStyle\n\n const {\n words,\n requiredBreaks,\n allowSoftWrap,\n allowBreakWord,\n processedContent,\n shouldCollapseTabsAndSpaces,\n lineLimit,\n blockEllipsis,\n } = preprocess(content, parentStyle, locale)\n\n const textContainer = createTextContainerNode(Yoga, textAlign)\n parent.insertChild(textContainer, parent.getChildCount())\n\n if (isUndefined(flexShrink)) {\n parent.setFlexShrink(1)\n }\n\n // Get the correct font according to the container style.\n // https://www.w3.org/TR/CSS2/visudet.html\n let engine = font.getEngine(fontSize, lineHeight, parentStyle, locale)\n\n // Yield segments that are missing a font.\n const wordsMissingFont = canLoadAdditionalAssets\n ? segment(processedContent, 'grapheme').filter(\n (word) => !shouldSkipWhenFindingMissingFont(word) && !engine.has(word)\n )\n : []\n\n yield wordsMissingFont.map((word) => {\n return {\n word,\n locale,\n }\n })\n\n if (wordsMissingFont.length) {\n // Reload the engine with additional fonts.\n engine = font.getEngine(fontSize, lineHeight, parentStyle, locale)\n }\n\n function isImage(s: string): boolean {\n return !!(graphemeImages && graphemeImages[s])\n }\n\n const { measureGrapheme, measureGraphemeArray, measureText } = genMeasurer(\n engine,\n isImage,\n {\n fontSize,\n letterSpacing,\n }\n )\n\n const tabWidth = isString(tabSize)\n ? lengthToNumber(tabSize, fontSize, 1, parentStyle)\n : measureGrapheme(Space) * tabSize\n\n const calc = (\n text: string,\n currentWidth: number\n ): {\n originWidth: number\n endingSpacesWidth: number\n text: string\n } => {\n if (text.length === 0) {\n return {\n originWidth: 0,\n endingSpacesWidth: 0,\n text,\n }\n }\n\n const { index, tabCount } = detectTabs(text)\n\n let originWidth = 0\n\n if (tabCount > 0) {\n const textBeforeTab = text.slice(0, index)\n const textAfterTab = text.slice(index + tabCount)\n const textWidthBeforeTab = measureText(textBeforeTab)\n const offsetBeforeTab = textWidthBeforeTab + currentWidth\n const tabMoveDistance =\n tabWidth === 0\n ? textWidthBeforeTab\n : (Math.floor(offsetBeforeTab / tabWidth) + tabCount) * tabWidth\n originWidth = tabMoveDistance + measureText(textAfterTab)\n } else {\n originWidth = measureText(text)\n }\n\n const afterTrimEndWidth =\n text.trimEnd() === text ? originWidth : measureText(text.trimEnd())\n\n return {\n originWidth,\n endingSpacesWidth: originWidth - afterTrimEndWidth,\n text,\n }\n }\n\n // Global variables used to compute the text layout.\n // @TODO: Use segments instead of words to properly support kerning.\n let lineWidths = []\n let baselines = []\n let lineSegmentNumber = []\n let texts: string[] = []\n let wordPositionInLayout: (null | {\n x: number\n y: number\n width: number\n line: number\n lineIndex: number\n isImage: boolean\n })[] = []\n\n // With the given container width, compute the text layout.\n function flow(width: number) {\n let lines = 0\n let maxWidth = 0\n let lineIndex = -1\n let height = 0\n let currentWidth = 0\n let currentLineHeight = 0\n let currentBaselineOffset = 0\n\n lineWidths = []\n lineSegmentNumber = [0]\n texts = []\n wordPositionInLayout = []\n\n // We naively implement the width calculation without proper kerning.\n // @TODO: Support different writing modes.\n // @TODO: Support RTL languages.\n let i = 0\n let prevLineEndingSpacesWidth = 0\n while (i < words.length && lines < lineLimit) {\n let word = words[i]\n const forceBreak = requiredBreaks[i]\n\n let w = 0\n\n const {\n originWidth,\n endingSpacesWidth,\n text: _word,\n } = calc(word, currentWidth)\n word = _word\n\n w = originWidth\n const lineEndingSpacesWidth = endingSpacesWidth\n\n // When starting a new line from an empty line, we should push one extra\n // line height.\n if (forceBreak && currentLineHeight === 0) {\n currentLineHeight = engine.height(word)\n }\n\n const allowedToPutAtBeginning = ',.!?:-@)>]}%#'.indexOf(word[0]) < 0\n const allowedToJustify = !currentWidth\n\n const willWrap =\n i &&\n allowedToPutAtBeginning &&\n // When determining whether a line break is necessary, the width of the\n // trailing spaces is not included in the calculation, as the end boundary\n // can be closely adjacent to the last non-space character.\n // e.g.\n // 'aaa bbb ccc'\n // When the break line happens at the end of the `bbb`, what we see looks like this\n // |aaa bbb|\n // |ccc |\n currentWidth + w > width + lineEndingSpacesWidth &&\n allowSoftWrap\n\n // Need to break the word if:\n // - we have break-word\n // - the word is wider than the container width\n // - the word will be put at the beginning of the line\n const needToBreakWord =\n allowBreakWord && w > width && (!currentWidth || willWrap || forceBreak)\n\n if (needToBreakWord) {\n // Break the word into multiple segments and continue the loop.\n const chars = segment(word, 'grapheme')\n words.splice(i, 1, ...chars)\n if (currentWidth > 0) {\n // Start a new line, spaces can be ignored.\n lineWidths.push(currentWidth - prevLineEndingSpacesWidth)\n baselines.push(currentBaselineOffset)\n lines++\n height += currentLineHeight\n currentWidth = 0\n currentLineHeight = 0\n currentBaselineOffset = 0\n lineSegmentNumber.push(1)\n lineIndex = -1\n }\n prevLineEndingSpacesWidth = lineEndingSpacesWidth\n continue\n }\n if (forceBreak || willWrap) {\n // Start a new line, spaces can be ignored.\n if (shouldCollapseTabsAndSpaces && word === Space) {\n w = 0\n }\n\n lineWidths.push(currentWidth - prevLineEndingSpacesWidth)\n baselines.push(currentBaselineOffset)\n lines++\n height += currentLineHeight\n currentWidth = w\n currentLineHeight = w ? engine.height(word) : 0\n currentBaselineOffset = w ? engine.baseline(word) : 0\n lineSegmentNumber.push(1)\n lineIndex = -1\n\n // If it's naturally broken, we update the max width.\n // Since if there are multiple lines, the width should fit the\n // container.\n if (!forceBreak) {\n maxWidth = Math.max(maxWidth, width)\n }\n } else {\n // It fits into the current line.\n currentWidth += w\n const glyphHeight = engine.height(word)\n if (glyphHeight > currentLineHeight) {\n // Use the baseline of the highest segment as the baseline of the line.\n currentLineHeight = glyphHeight\n currentBaselineOffset = engine.baseline(word)\n }\n if (allowedToJustify) {\n lineSegmentNumber[lineSegmentNumber.length - 1]++\n }\n }\n\n if (allowedToJustify) {\n lineIndex++\n }\n\n maxWidth = Math.max(maxWidth, currentWidth)\n\n let x = currentWidth - w\n\n if (w === 0) {\n wordPositionInLayout.push({\n y: height,\n x,\n width: 0,\n line: lines,\n lineIndex,\n isImage: false,\n })\n } else {\n const _texts = segment(word, 'word')\n\n for (let j = 0; j < _texts.length; j++) {\n const _text = _texts[j]\n let _width = 0\n let _isImage = false\n\n if (isImage(_text)) {\n _width = fontSize\n _isImage = true\n } else {\n _width = measureGrapheme(_text)\n }\n\n texts.push(_text)\n wordPositionInLayout.push({\n y: height,\n x,\n width: _width,\n line: lines,\n lineIndex,\n isImage: _isImage,\n })\n\n x += _width\n }\n }\n\n i++\n prevLineEndingSpacesWidth = lineEndingSpacesWidth\n }\n\n if (currentWidth) {\n if (lines < lineLimit) {\n height += currentLineHeight\n }\n lines++\n lineWidths.push(currentWidth)\n baselines.push(currentBaselineOffset)\n }\n\n // @TODO: Support `line-height`.\n return { width: maxWidth, height }\n }\n\n // It's possible that the text's measured size is different from the container's\n // size, because the container might have a fixed width or height or being\n // expanded by its parent.\n let measuredTextSize = { width: 0, height: 0 }\n textContainer.setMeasureFunc((containerWidth) => {\n const { width, height } = flow(containerWidth)\n\n // When doing `text-wrap: balance`, we reflow the text multiple times\n // using binary search to find the best width.\n // https://www.w3.org/TR/css-text-4/#valdef-text-wrap-balance\n if (textWrap === 'balance') {\n let l = width / 2\n let r = width\n let m: number = width\n while (l + 1 < r) {\n m = (l + r) / 2\n const { height: mHeight } = flow(m)\n if (mHeight > height) {\n l = m\n } else {\n r = m\n }\n }\n flow(r)\n const _width = Math.ceil(r)\n measuredTextSize = { width: _width, height }\n return { width: _width, height }\n }\n const _width = Math.ceil(width)\n measuredTextSize = { width: _width, height }\n // This may be a temporary fix, I didn't dig deep into yoga.\n // But when the return value of width here doesn't change (assuming the value of width is 216.9),\n // when we later get the width through `parent.getComputedWidth()`, sometimes it returns 216 and sometimes 217.\n // I'm not sure if this is a yoga bug, but it seems related to the entire page width.\n // So I use Math.ceil.\n return { width: _width, height }\n })\n\n const [x, y] = yield\n\n let result = ''\n let backgroundClipDef = ''\n\n const clipPathId = inheritedStyle._inheritedClipPathId as string | undefined\n const overflowMaskId = inheritedStyle._inheritedMaskId as number | undefined\n\n const {\n left: containerLeft,\n top: containerTop,\n width: containerWidth,\n height: containerHeight,\n } = textContainer.getComputedLayout()\n\n const parentContainerInnerWidth =\n parent.getComputedWidth() -\n parent.getComputedPadding(Yoga.EDGE_LEFT) -\n parent.getComputedPadding(Yoga.EDGE_RIGHT) -\n parent.getComputedBorder(Yoga.EDGE_LEFT) -\n parent.getComputedBorder(Yoga.EDGE_RIGHT)\n\n // Attach offset to the current node.\n const left = x + containerLeft\n const top = y + containerTop\n\n const { matrix, opacity } = container(\n {\n left: containerLeft,\n top: containerTop,\n width: containerWidth,\n height: containerHeight,\n isInheritingTransform,\n },\n parentStyle\n )\n\n let filter = ''\n if (parentStyle.textShadowOffset) {\n const { textShadowColor, textShadowOffset, textShadowRadius } = parentStyle\n\n filter = buildDropShadow(\n {\n width: measuredTextSize.width,\n height: measuredTextSize.height,\n id,\n },\n {\n shadowColor: textShadowColor,\n shadowOffset: textShadowOffset,\n shadowRadius: textShadowRadius,\n }\n )\n\n filter = buildXMLString('defs', {}, filter)\n }\n\n let decorationShape = ''\n let mergedPath = ''\n let extra = ''\n let skippedLine = -1\n let decorationLines: Record = {}\n let wordBuffer: string | null = null\n let bufferedOffset = 0\n\n for (let i = 0; i < texts.length; i++) {\n // Skip whitespace and empty characters.\n const layout = wordPositionInLayout[i]\n const nextLayout = wordPositionInLayout[i + 1]\n\n if (!layout) continue\n\n let text = texts[i]\n let path: string | null = null\n let isLastDisplayedBeforeEllipsis = false\n\n const image = graphemeImages ? graphemeImages[text] : null\n\n let topOffset = layout.y\n let leftOffset = layout.x\n const width = layout.width\n const line = layout.line\n\n if (line === skippedLine) {\n continue\n }\n\n // When `text-align` is `justify`, the width of the line will be adjusted.\n let extendedWidth = false\n\n if (lineWidths.length > 1) {\n // Calculate alignment. Note that for Flexbox, there is only text\n // alignment when the container is multi-line.\n const remainingWidth = containerWidth - lineWidths[line]\n if (textAlign === 'right' || textAlign === 'end') {\n leftOffset += remainingWidth\n } else if (textAlign === 'center') {\n leftOffset += remainingWidth / 2\n } else if (textAlign === 'justify') {\n // Don't justify the last line.\n if (line < lineWidths.length - 1) {\n const segments = lineSegmentNumber[line]\n const gutter = segments > 1 ? remainingWidth / (segments - 1) : 0\n leftOffset += gutter * layout.lineIndex\n extendedWidth = true\n }\n }\n }\n\n const baselineOfLine = baselines[line]\n const baselineOfWord = engine.baseline(text)\n const heightOfWord = engine.height(text)\n const baselineDelta = baselineOfLine - baselineOfWord\n\n if (!decorationLines[line]) {\n decorationLines[line] = [\n leftOffset,\n top + topOffset + baselineDelta,\n baselineOfWord,\n extendedWidth ? containerWidth : lineWidths[line],\n ]\n }\n\n if (lineLimit !== Infinity) {\n let _blockEllipsis = blockEllipsis\n let ellipsisWidth = measureGrapheme(blockEllipsis)\n if (ellipsisWidth > parentContainerInnerWidth) {\n _blockEllipsis = HorizontalEllipsis\n ellipsisWidth = measureGrapheme(_blockEllipsis)\n }\n const spaceWidth = measureGrapheme(Space)\n const isNotLastLine = line < lineWidths.length - 1\n const isLastAllowedLine = line + 1 === lineLimit\n\n function calcEllipsis(baseWidth: number, _text: string) {\n const chars = segment(_text, 'grapheme', locale)\n\n let subset = ''\n let resolvedWidth = 0\n\n for (const char of chars) {\n const w = baseWidth + measureGraphemeArray([subset + char])\n if (\n // Keep at least one character:\n // > The first character or atomic inline-level element on a line\n // must be clipped rather than ellipsed.\n // https://drafts.csswg.org/css-overflow/#text-overflow\n subset &&\n w + ellipsisWidth > parentContainerInnerWidth\n ) {\n break\n }\n subset += char\n resolvedWidth = w\n }\n\n return {\n subset,\n resolvedWidth,\n }\n }\n\n if (\n isLastAllowedLine &&\n (isNotLastLine || lineWidths[line] > parentContainerInnerWidth)\n ) {\n if (\n leftOffset + width + ellipsisWidth + spaceWidth >\n parentContainerInnerWidth\n ) {\n const { subset, resolvedWidth } = calcEllipsis(leftOffset, text)\n\n text = subset + _blockEllipsis\n skippedLine = line\n decorationLines[line][2] = resolvedWidth\n isLastDisplayedBeforeEllipsis = true\n } else if (nextLayout && nextLayout.line !== line) {\n if (textAlign === 'center') {\n const { subset, resolvedWidth } = calcEllipsis(leftOffset, text)\n\n text = subset + _blockEllipsis\n skippedLine = line\n decorationLines[line][2] = resolvedWidth\n isLastDisplayedBeforeEllipsis = true\n } else {\n const nextLineText = texts[i + 1]\n\n const { subset, resolvedWidth } = calcEllipsis(\n width + leftOffset,\n nextLineText\n )\n\n text = text + subset + _blockEllipsis\n skippedLine = line\n decorationLines[line][2] = resolvedWidth\n isLastDisplayedBeforeEllipsis = true\n }\n }\n }\n }\n\n if (image) {\n // For images, we remove the baseline offset.\n topOffset += 0\n } else if (embedFont) {\n // If the current word and the next word are on the same line, we try to\n // merge them together to better handle the kerning.\n if (\n !text.includes(Tab) &&\n !wordSeparators.includes(text) &&\n texts[i + 1] &&\n nextLayout &&\n !nextLayout.isImage &&\n topOffset === nextLayout.y &&\n !isLastDisplayedBeforeEllipsis\n ) {\n if (wordBuffer === null) {\n bufferedOffset = leftOffset\n }\n wordBuffer = wordBuffer === null ? text : wordBuffer + text\n continue\n }\n\n const finalizedSegment = wordBuffer === null ? text : wordBuffer + text\n const finalizedLeftOffset =\n wordBuffer === null ? leftOffset : bufferedOffset\n const finalizedWidth = layout.width + leftOffset - finalizedLeftOffset\n\n path = engine.getSVG(finalizedSegment.replace(/(\\t)+/g, ''), {\n fontSize,\n left: left + finalizedLeftOffset,\n // Since we need to pass the baseline position, add the ascender to the top.\n top: top + topOffset + baselineOfWord + baselineDelta,\n letterSpacing,\n })\n\n wordBuffer = null\n\n if (debug) {\n extra +=\n // Glyph\n buildXMLString('rect', {\n x: left + finalizedLeftOffset,\n y: top + topOffset + baselineDelta,\n width: finalizedWidth,\n height: heightOfWord,\n fill: 'transparent',\n stroke: '#575eff',\n 'stroke-width': 1,\n transform: matrix ? matrix : undefined,\n 'clip-path': clipPathId ? `url(#${clipPathId})` : undefined,\n }) +\n // Baseline\n buildXMLString('line', {\n x1: left + leftOffset,\n x2: left + leftOffset + layout.width,\n y1: top + topOffset + baselineDelta + baselineOfWord,\n y2: top + topOffset + baselineDelta + baselineOfWord,\n stroke: '#14c000',\n 'stroke-width': 1,\n transform: matrix ? matrix : undefined,\n 'clip-path': clipPathId ? `url(#${clipPathId})` : undefined,\n })\n }\n } else {\n // We need manually add the font ascender height to ensure it starts\n // at the baseline because 's alignment baseline is set to `hanging`\n // by default and supported to change in SVG 1.1.\n topOffset += baselineOfWord + baselineDelta\n }\n\n // Get the decoration shape.\n if (parentStyle.textDecorationLine) {\n const deco = decorationLines[line]\n if (deco && !deco[4]) {\n decorationShape += buildDecoration(\n {\n left: left + deco[0],\n top: deco[1],\n width: deco[3],\n ascender: deco[2],\n clipPathId,\n matrix,\n },\n parentStyle\n )\n deco[4] = 1\n }\n }\n\n if (path !== null) {\n mergedPath += path + ' '\n } else {\n const [t, shape] = buildText(\n {\n content: text,\n filter,\n id,\n left: left + leftOffset,\n top: top + topOffset,\n width,\n height: heightOfWord,\n matrix,\n opacity,\n image,\n clipPathId,\n debug,\n shape: !!_inheritedBackgroundClipTextPath,\n decorationShape,\n },\n parentStyle\n )\n result += t\n backgroundClipDef += shape\n decorationShape = ''\n }\n\n if (isLastDisplayedBeforeEllipsis) {\n break\n }\n }\n\n // Embed the font as path.\n if (mergedPath) {\n const p =\n parentStyle.color !== 'transparent' && opacity !== 0\n ? buildXMLString('path', {\n fill: parentStyle.color,\n d: mergedPath,\n transform: matrix ? matrix : undefined,\n opacity: opacity !== 1 ? opacity : undefined,\n 'clip-path': clipPathId ? `url(#${clipPathId})` : undefined,\n mask: overflowMaskId ? `url(#${overflowMaskId})` : undefined,\n\n style: cssFilter ? `filter:${cssFilter}` : undefined,\n 'stroke-width': inheritedStyle.WebkitTextStrokeWidth\n ? `${inheritedStyle.WebkitTextStrokeWidth}px`\n : undefined,\n stroke: inheritedStyle.WebkitTextStrokeWidth\n ? inheritedStyle.WebkitTextStrokeColor\n : undefined,\n 'stroke-linejoin': inheritedStyle.WebkitTextStrokeWidth\n ? 'round'\n : undefined,\n 'paint-order': inheritedStyle.WebkitTextStrokeWidth\n ? 'stroke'\n : undefined,\n })\n : ''\n\n if (_inheritedBackgroundClipTextPath) {\n backgroundClipDef = buildXMLString('path', {\n d: mergedPath,\n transform: matrix ? matrix : undefined,\n })\n }\n\n result +=\n (filter\n ? filter +\n buildXMLString(\n 'g',\n { filter: `url(#satori_s-${id})` },\n p + decorationShape\n )\n : p + decorationShape) + extra\n }\n\n // Attach information to the parent node.\n if (backgroundClipDef) {\n ;(parentStyle._inheritedBackgroundClipTextPath as any).value +=\n backgroundClipDef\n }\n\n return result\n}\n\nfunction createTextContainerNode(\n Yoga: Yoga,\n textAlign: string\n): ReturnType {\n // Create a container node for this text fragment.\n const textContainer = Yoga.Node.create()\n textContainer.setAlignItems(Yoga.ALIGN_BASELINE)\n textContainer.setJustifyContent(\n v(\n textAlign,\n {\n left: Yoga.JUSTIFY_FLEX_START,\n right: Yoga.JUSTIFY_FLEX_END,\n center: Yoga.JUSTIFY_CENTER,\n justify: Yoga.JUSTIFY_SPACE_BETWEEN,\n // We don't have other writing modes yet.\n start: Yoga.JUSTIFY_FLEX_START,\n end: Yoga.JUSTIFY_FLEX_END,\n },\n Yoga.JUSTIFY_FLEX_START,\n 'textAlign'\n )\n )\n\n return textContainer\n}\n\nfunction detectTabs(text: string):\n | {\n index: null\n tabCount: 0\n }\n | {\n index: number\n tabCount: number\n } {\n const result = /(\\t)+/.exec(text)\n return result\n ? {\n index: result.index,\n tabCount: result[0].length,\n }\n : {\n index: null,\n tabCount: 0,\n }\n}\n","import { lengthToNumber } from '../../utils.js'\nimport cssColorParse from 'parse-css-color'\nimport type { ColorStop } from 'css-gradient-parser'\n\ninterface Stop {\n color: string\n offset?: number\n}\n\nexport function normalizeStops(\n totalLength: number,\n colorStops: ColorStop[],\n inheritedStyle: Record,\n repeating: boolean,\n from?: 'background' | 'mask'\n) {\n // Resolve the color stops based on the spec:\n // https://drafts.csswg.org/css-images/#color-stop-syntax\n const stops: Stop[] = []\n for (const stop of colorStops) {\n const { color } = stop\n if (!stops.length) {\n // First stop, ensure it's at the start.\n stops.push({\n offset: 0,\n color,\n })\n\n if (!stop.offset) continue\n if (stop.offset.value === '0') continue\n }\n\n // All offsets are relative values (0-1) in SVG.\n const offset =\n typeof stop.offset === 'undefined'\n ? undefined\n : stop.offset.unit === '%'\n ? +stop.offset.value / 100\n : Number(\n lengthToNumber(\n `${stop.offset.value}${stop.offset.unit}`,\n inheritedStyle.fontSize as number,\n totalLength,\n inheritedStyle,\n true\n )\n ) / totalLength\n\n stops.push({\n offset,\n color,\n })\n }\n if (!stops.length) {\n stops.push({\n offset: 0,\n color: 'transparent',\n })\n }\n // Last stop, ensure it's at the end.\n const lastStop = stops[stops.length - 1]\n if (lastStop.offset !== 1) {\n if (typeof lastStop.offset === 'undefined') {\n lastStop.offset = 1\n } else if (repeating) {\n stops[stops.length - 1] = {\n offset: 1,\n color: lastStop.color,\n }\n } else {\n stops.push({\n offset: 1,\n color: lastStop.color,\n })\n }\n }\n\n let previousStop = 0\n let nextStop = 1\n // Evenly distribute the missing stop offsets.\n for (let i = 0; i < stops.length; i++) {\n if (typeof stops[i].offset === 'undefined') {\n // Find the next stop that has an offset.\n if (nextStop < i) nextStop = i\n while (typeof stops[nextStop].offset === 'undefined') nextStop++\n\n stops[i].offset =\n ((stops[nextStop].offset - stops[previousStop].offset) /\n (nextStop - previousStop)) *\n (i - previousStop) +\n stops[previousStop].offset\n } else {\n previousStop = i\n }\n }\n\n if (from === 'mask') {\n return stops.map((stop) => {\n const color = cssColorParse(stop.color)\n if (!color) return stop\n if (color.alpha === 0) {\n return { ...stop, color: `rgba(0, 0, 0, 1)` }\n } else {\n return { ...stop, color: `rgba(255, 255, 255, ${color.alpha})` }\n }\n })\n }\n\n return stops\n}\n","import { parseLinearGradient, ColorStop } from 'css-gradient-parser'\nimport { normalizeStops } from './utils.js'\nimport { buildXMLString, calcDegree, lengthToNumber } from '../../utils.js'\n\nexport function buildLinearGradient(\n {\n id,\n width,\n height,\n repeatX,\n repeatY,\n }: {\n id: string\n width: number\n height: number\n repeatX: boolean\n repeatY: boolean\n },\n image: string,\n dimensions: number[],\n offsets: number[],\n inheritableStyle: Record,\n from?: 'background' | 'mask'\n) {\n const parsed = parseLinearGradient(image)\n const [imageWidth, imageHeight] = dimensions\n const repeating = image.startsWith('repeating')\n\n // Calculate the direction.\n let points, length, xys\n\n if (parsed.orientation.type === 'directional') {\n points = resolveXYFromDirection(parsed.orientation.value)\n\n length = Math.sqrt(\n Math.pow((points.x2 - points.x1) * imageWidth, 2) +\n Math.pow((points.y2 - points.y1) * imageHeight, 2)\n )\n } else if (parsed.orientation.type === 'angular') {\n const { length: l, ...p } = calcNormalPoint(\n (calcDegree(\n `${parsed.orientation.value.value}${parsed.orientation.value.unit}`\n ) /\n 180) *\n Math.PI,\n imageWidth,\n imageHeight\n )\n\n length = l\n points = p\n }\n\n xys = repeating\n ? calcPercentage(parsed.stops, length, points, inheritableStyle)\n : points\n\n const stops = normalizeStops(\n repeating ? resolveRepeatingCycle(parsed.stops, length) : length,\n parsed.stops,\n inheritableStyle,\n repeating,\n from\n )\n\n const gradientId = `satori_bi${id}`\n const patternId = `satori_pattern_${id}`\n\n const defs = buildXMLString(\n 'pattern',\n {\n id: patternId,\n x: offsets[0] / width,\n y: offsets[1] / height,\n width: repeatX ? imageWidth / width : '1',\n height: repeatY ? imageHeight / height : '1',\n patternUnits: 'objectBoundingBox',\n },\n buildXMLString(\n 'linearGradient',\n {\n id: gradientId,\n ...xys,\n spreadMethod: repeating ? 'repeat' : 'pad',\n },\n stops\n .map((stop) =>\n buildXMLString('stop', {\n offset: (stop.offset ?? 0) * 100 + '%',\n 'stop-color': stop.color,\n })\n )\n .join('')\n ) +\n buildXMLString('rect', {\n x: 0,\n y: 0,\n width: imageWidth,\n height: imageHeight,\n fill: `url(#${gradientId})`,\n })\n )\n return [patternId, defs]\n}\n\nfunction resolveRepeatingCycle(stops: ColorStop[], length: number) {\n const last = stops[stops.length - 1]\n const { offset } = last\n if (!offset) return length\n\n if (offset.unit === '%') return (Number(offset.value) / 100) * length\n\n return Number(offset.value)\n}\n\nfunction resolveXYFromDirection(dir: string) {\n let x1 = 0,\n y1 = 0,\n x2 = 0,\n y2 = 0\n\n if (dir.includes('top')) {\n y1 = 1\n } else if (dir.includes('bottom')) {\n y2 = 1\n }\n\n if (dir.includes('left')) {\n x1 = 1\n } else if (dir.includes('right')) {\n x2 = 1\n }\n\n if (!x1 && !x2 && !y1 && !y2) {\n y1 = 1\n }\n\n return { x1, y1, x2, y2 }\n}\n\n/**\n * calc start point and end point of linear gradient\n */\nfunction calcNormalPoint(v: number, w: number, h: number) {\n const r = Math.pow(h / w, 2)\n\n // make sure angle is 0 <= angle <= 360\n v = ((v % (Math.PI * 2)) + Math.PI * 2) % (Math.PI * 2)\n\n let x1, y1, x2, y2, length, tmp, a, b\n\n const dfs = (angle: number) => {\n if (angle === 0) {\n x1 = 0\n y1 = h\n x2 = 0\n y2 = 0\n length = h\n return\n } else if (angle === Math.PI / 2) {\n x1 = 0\n y1 = 0\n x2 = w\n y2 = 0\n length = w\n return\n }\n if (angle > 0 && angle < Math.PI / 2) {\n x1 =\n ((r * w) / 2 / Math.tan(angle) - h / 2) /\n (Math.tan(angle) + r / Math.tan(angle))\n y1 = Math.tan(angle) * x1 + h\n x2 = Math.abs(w / 2 - x1) + w / 2\n y2 = h / 2 - Math.abs(y1 - h / 2)\n length = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2))\n // y = -1 / tan * x = h / 2 +1 / tan * w/2\n // y = tan * x + h\n a =\n (w / 2 / Math.tan(angle) - h / 2) /\n (Math.tan(angle) + 1 / Math.tan(angle))\n b = Math.tan(angle) * a + h\n length = 2 * Math.sqrt(Math.pow(w / 2 - a, 2) + Math.pow(h / 2 - b, 2))\n return\n } else if (angle > Math.PI / 2 && angle < Math.PI) {\n x1 =\n (h / 2 + (r * w) / 2 / Math.tan(angle)) /\n (Math.tan(angle) + r / Math.tan(angle))\n y1 = Math.tan(angle) * x1\n x2 = Math.abs(w / 2 - x1) + w / 2\n y2 = h / 2 + Math.abs(y1 - h / 2)\n // y = -1 / tan * x + h / 2 + 1 / tan * w / 2\n // y = tan * x\n a =\n (w / 2 / Math.tan(angle) + h / 2) /\n (Math.tan(angle) + 1 / Math.tan(angle))\n b = Math.tan(angle) * a\n length = 2 * Math.sqrt(Math.pow(w / 2 - a, 2) + Math.pow(h / 2 - b, 2))\n return\n } else if (angle >= Math.PI) {\n dfs(angle - Math.PI)\n\n tmp = x1\n x1 = x2\n x2 = tmp\n tmp = y1\n y1 = y2\n y2 = tmp\n }\n }\n\n dfs(v)\n\n return {\n x1: x1 / w,\n y1: y1 / h,\n x2: x2 / w,\n y2: y2 / h,\n length,\n }\n}\n\nfunction calcPercentage(\n stops: ColorStop[],\n length: number,\n points: {\n x1: number\n y1: number\n x2: number\n y2: number\n },\n inheritableStyle: Record\n) {\n const { x1, x2, y1, y2 } = points\n const p1 = !stops[0].offset\n ? 0\n : stops[0].offset.unit === '%'\n ? Number(stops[0].offset.value) / 100\n : lengthToNumber(\n `${stops[0].offset.value}${stops[0].offset.unit}`,\n inheritableStyle.fontSize as number,\n length,\n inheritableStyle,\n true\n ) / length\n const p2 = !stops.at(-1).offset\n ? 1\n : stops.at(-1).offset.unit === '%'\n ? Number(stops.at(-1).offset.value) / 100\n : lengthToNumber(\n `${stops.at(-1).offset.value}${stops.at(-1).offset.unit}`,\n inheritableStyle.fontSize as number,\n length,\n inheritableStyle,\n true\n ) / length\n\n const sx = (x2 - x1) * p1 + x1\n const sy = (y2 - y1) * p1 + y1\n const ex = (x2 - x1) * p2 + x1\n const ey = (y2 - y1) * p2 + y1\n\n return {\n x1: sx,\n y1: sy,\n x2: ex,\n y2: ey,\n }\n}\n","import {\n parseRadialGradient,\n RadialResult,\n RadialPropertyValue,\n} from 'css-gradient-parser'\nimport { buildXMLString, lengthToNumber } from '../../utils.js'\nimport { normalizeStops } from './utils.js'\n\nexport function buildRadialGradient(\n {\n id,\n width,\n height,\n repeatX,\n repeatY,\n }: {\n id: string\n width: number\n height: number\n repeatX: boolean\n repeatY: boolean\n },\n image: string,\n dimensions: number[],\n offsets: number[],\n inheritableStyle: Record,\n from?: 'background' | 'mask'\n) {\n const {\n shape,\n stops: colorStops,\n position,\n size,\n } = parseRadialGradient(image)\n const [xDelta, yDelta] = dimensions\n\n let cx: number = xDelta / 2\n let cy: number = yDelta / 2\n\n const pos = calcRadialGradient(\n position.x,\n position.y,\n xDelta,\n yDelta,\n inheritableStyle.fontSize as number,\n inheritableStyle\n )\n cx = pos.x\n cy = pos.y\n\n const stops = normalizeStops(width, colorStops, inheritableStyle, false, from)\n\n const gradientId = `satori_radial_${id}`\n const patternId = `satori_pattern_${id}`\n const maskId = `satori_mask_${id}`\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/gradient/radial-gradient()#values\n const spread = calcRadius(\n shape as Shape,\n size,\n inheritableStyle.fontSize as number,\n { x: cx, y: cy },\n [xDelta, yDelta],\n inheritableStyle\n )\n\n // TODO: check for repeat-x/repeat-y\n const defs = buildXMLString(\n 'pattern',\n {\n id: patternId,\n x: offsets[0] / width,\n y: offsets[1] / height,\n width: repeatX ? xDelta / width : '1',\n height: repeatY ? yDelta / height : '1',\n patternUnits: 'objectBoundingBox',\n },\n buildXMLString(\n 'radialGradient',\n {\n id: gradientId,\n },\n stops\n .map((stop) =>\n buildXMLString('stop', {\n offset: stop.offset || 0,\n 'stop-color': stop.color,\n })\n )\n .join('')\n ) +\n buildXMLString(\n 'mask',\n {\n id: maskId,\n },\n buildXMLString('rect', {\n x: 0,\n y: 0,\n width: xDelta,\n height: yDelta,\n fill: '#fff',\n })\n ) +\n buildXMLString('rect', {\n x: 0,\n y: 0,\n width: xDelta,\n height: yDelta,\n fill: stops.at(-1)?.color || 'transparent',\n }) +\n buildXMLString(shape, {\n cx: cx,\n cy: cy,\n width: xDelta,\n height: yDelta,\n ...spread,\n fill: `url(#${gradientId})`,\n mask: `url(#${maskId})`,\n })\n )\n\n const result = [patternId, defs]\n return result\n}\n\ninterface Position {\n type: 'keyword' | 'length'\n value: string\n}\n\ntype PositionKeyWord = 'center' | 'left' | 'right' | 'top' | 'bottom'\n\nfunction calcRadialGradient(\n cx: RadialPropertyValue,\n cy: RadialPropertyValue,\n xDelta: number,\n yDelta: number,\n baseFontSize: number,\n style: Record\n) {\n const pos: { x: number; y: number } = { x: xDelta / 2, y: yDelta / 2 }\n if (cx.type === 'keyword') {\n Object.assign(\n pos,\n calcPos(cx.value as PositionKeyWord, xDelta, yDelta, 'x')\n )\n } else {\n pos.x =\n lengthToNumber(\n `${cx.value.value}${cx.value.unit}`,\n baseFontSize,\n xDelta,\n style,\n true\n ) || xDelta / 2\n }\n\n if (cy.type === 'keyword') {\n Object.assign(\n pos,\n calcPos(cy.value as PositionKeyWord, xDelta, yDelta, 'y')\n )\n } else {\n pos.y =\n lengthToNumber(\n `${cy.value.value}${cy.value.unit}`,\n baseFontSize,\n yDelta,\n style,\n true\n ) || yDelta / 2\n }\n\n return pos\n}\n\nfunction calcPos(\n key: PositionKeyWord,\n xDelta: number,\n yDelta: number,\n dir: 'x' | 'y'\n) {\n switch (key) {\n case 'center':\n return { [dir]: dir === 'x' ? xDelta / 2 : yDelta / 2 }\n case 'left':\n return { x: 0 }\n case 'top':\n return { y: 0 }\n case 'right':\n return { x: xDelta }\n case 'bottom':\n return { y: yDelta }\n }\n}\n\ntype Shape = 'circle' | 'ellipse'\nfunction calcRadius(\n shape: Shape,\n endingShape: RadialResult['size'],\n baseFontSize: number,\n centerAxis: { x: number; y: number },\n length: [number, number],\n inheritableStyle: Record\n) {\n const [xDelta, yDelta] = length\n const { x: cx, y: cy } = centerAxis\n const spread: Record = {}\n let fx = 0\n let fy = 0\n\n if (isSizeAllLength(endingShape)) {\n if (endingShape.some((v) => v.value.value.startsWith('-'))) {\n throw new Error(\n 'disallow setting negative values to the size of the shape. Check https://w3c.github.io/csswg-drafts/css-images/#valdef-rg-size-length-0'\n )\n }\n if (shape === 'circle') {\n return {\n r: Number(\n lengthToNumber(\n `${endingShape[0].value.value}${endingShape[0].value.unit}`,\n baseFontSize,\n xDelta,\n inheritableStyle,\n true\n )\n ),\n }\n } else {\n return {\n rx: Number(\n lengthToNumber(\n `${endingShape[0].value.value}${endingShape[0].value.unit}`,\n baseFontSize,\n xDelta,\n inheritableStyle,\n true\n )\n ),\n ry: Number(\n lengthToNumber(\n `${endingShape[1].value.value}${endingShape[1].value.unit}`,\n baseFontSize,\n yDelta,\n inheritableStyle,\n true\n )\n ),\n }\n }\n }\n\n switch (endingShape[0].value) {\n case 'farthest-corner':\n fx = Math.max(Math.abs(xDelta - cx), Math.abs(cx))\n fy = Math.max(Math.abs(yDelta - cy), Math.abs(cy))\n break\n case 'closest-corner':\n fx = Math.min(Math.abs(xDelta - cx), Math.abs(cx))\n fy = Math.min(Math.abs(yDelta - cy), Math.abs(cy))\n break\n case 'farthest-side':\n if (shape === 'circle') {\n spread.r = Math.max(\n Math.abs(xDelta - cx),\n Math.abs(cx),\n Math.abs(yDelta - cy),\n Math.abs(cy)\n )\n } else {\n spread.rx = Math.max(Math.abs(xDelta - cx), Math.abs(cx))\n spread.ry = Math.max(Math.abs(yDelta - cy), Math.abs(cy))\n }\n return spread\n case 'closest-side':\n if (shape === 'circle') {\n spread.r = Math.min(\n Math.abs(xDelta - cx),\n Math.abs(cx),\n Math.abs(yDelta - cy),\n Math.abs(cy)\n )\n } else {\n spread.rx = Math.min(Math.abs(xDelta - cx), Math.abs(cx))\n spread.ry = Math.min(Math.abs(yDelta - cy), Math.abs(cy))\n }\n\n return spread\n }\n if (shape === 'circle') {\n spread.r = Math.sqrt(fx * fx + fy * fy)\n } else {\n // Spec: https://drafts.csswg.org/css-images/#typedef-size\n // Get the aspect ratio of the closest-side size.\n const ratio = fy !== 0 ? fx / fy : 1\n\n if (fx === 0) {\n spread.rx = 0\n spread.ry = 0\n } else {\n // fx^2/a^2 + fy^2/b^2 = 1\n // fx^2/(b*ratio)^2 + fy^2/b^2 = 1\n // (fx^2+fy^2*ratio^2) = (b*ratio)^2\n // b = sqrt(fx^2+fy^2*ratio^2)/ratio\n\n spread.ry = Math.sqrt(fx * fx + fy * fy * ratio * ratio) / ratio\n spread.rx = spread.ry * ratio\n }\n }\n\n return spread\n}\n\nfunction isSizeAllLength(v: RadialPropertyValue[]): v is Array<{\n type: 'length'\n value: {\n unit: string\n value: string\n }\n}> {\n return !v.some((s) => s.type === 'keyword')\n}\n","import CssDimension from '../vendor/parse-css-dimension/index.js'\nimport { buildXMLString } from '../utils.js'\n\nimport { resolveImageData } from '../handler/image.js'\nimport { buildLinearGradient } from './gradient/linear.js'\nimport { buildRadialGradient } from './gradient/radial.js'\n\ninterface Background {\n attachment?: string\n color?: string\n clip: string\n image: string\n origin?: string\n position: string\n size: string\n repeat: string\n}\n\nfunction toAbsoluteValue(v: string | number, base: number) {\n if (typeof v === 'string' && v.endsWith('%')) {\n return (base * parseFloat(v)) / 100\n }\n return +v\n}\n\nfunction parseLengthPairs(\n str: string,\n {\n x,\n y,\n defaultX,\n defaultY,\n }: {\n x: number\n y: number\n defaultX: number | string\n defaultY: number | string\n }\n) {\n return (\n str\n ? str\n .split(' ')\n .map((value) => {\n try {\n const parsed = new CssDimension(value)\n return parsed.type === 'length' || parsed.type === 'number'\n ? parsed.value\n : parsed.value + parsed.unit\n } catch (e) {\n return null\n }\n })\n .filter((v) => v !== null)\n : [defaultX, defaultY]\n ).map((v, index) => toAbsoluteValue(v, [x, y][index]))\n}\n\nexport default async function backgroundImage(\n {\n id,\n width,\n height,\n left,\n top,\n }: { id: string; width: number; height: number; left: number; top: number },\n { image, size, position, repeat }: Background,\n inheritableStyle: Record,\n from?: 'background' | 'mask'\n): Promise {\n // Default to `repeat`.\n repeat = repeat || 'repeat'\n from = from || 'background'\n\n const repeatX = repeat === 'repeat-x' || repeat === 'repeat'\n const repeatY = repeat === 'repeat-y' || repeat === 'repeat'\n\n const dimensions = parseLengthPairs(size, {\n x: width,\n y: height,\n defaultX: width,\n defaultY: height,\n })\n const offsets = parseLengthPairs(position, {\n x: width,\n y: height,\n defaultX: 0,\n defaultY: 0,\n })\n\n if (\n image.startsWith('linear-gradient(') ||\n image.startsWith('repeating-linear-gradient(')\n ) {\n return buildLinearGradient(\n { id, width, height, repeatX, repeatY },\n image,\n dimensions,\n offsets,\n inheritableStyle,\n from\n )\n }\n\n if (image.startsWith('radial-gradient(')) {\n return buildRadialGradient(\n { id, width, height, repeatX, repeatY },\n image,\n dimensions,\n offsets,\n inheritableStyle,\n from\n )\n }\n\n if (image.startsWith('url(')) {\n const dimensionsWithoutFallback = parseLengthPairs(size, {\n x: width,\n y: height,\n defaultX: 0,\n defaultY: 0,\n })\n const [src, imageWidth, imageHeight] = await resolveImageData(\n image.slice(4, -1)\n )\n const resolvedWidth =\n from === 'mask'\n ? imageWidth || dimensionsWithoutFallback[0]\n : dimensionsWithoutFallback[0] || imageWidth\n const resolvedHeight =\n from === 'mask'\n ? imageHeight || dimensionsWithoutFallback[1]\n : dimensionsWithoutFallback[1] || imageHeight\n\n return [\n `satori_bi${id}`,\n buildXMLString(\n 'pattern',\n {\n id: `satori_bi${id}`,\n patternContentUnits: 'userSpaceOnUse',\n patternUnits: 'userSpaceOnUse',\n x: offsets[0] + left,\n y: offsets[1] + top,\n width: repeatX ? resolvedWidth : '100%',\n height: repeatY ? resolvedHeight : '100%',\n },\n buildXMLString('image', {\n x: 0,\n y: 0,\n width: resolvedWidth,\n height: resolvedHeight,\n preserveAspectRatio: 'none',\n href: src,\n })\n ),\n ]\n }\n\n throw new Error(`Invalid background image: \"${image}\"`)\n}\n","/**\n * CSS border radius to SVG path.\n */\n\n// TODO: Support the `border-radius: 10px / 20px` syntax.\n// https://developer.mozilla.org/en-US/docs/Web/CSS/border-radius\n\nimport { buildXMLString, lengthToNumber } from '../utils.js'\n\n// Getting the intersection of a 45deg ray with the elliptical arc x^2/rx^2 + y^2/ry^2 = 1.\n// Reference:\n// https://www.w3.org/TR/SVG/implnote.html#ArcConversionEndpointToCenter\nfunction svgArcCenterOffset([rx, ry]: number[]) {\n if (Math.round(rx * 1000) === 0 && Math.round(ry * 1000) === 0) {\n return 0\n }\n return Math.round(((rx * ry) / Math.sqrt(rx * rx + ry * ry)) * 1000) / 1000\n}\n\nfunction resolveSize(a: number, b: number, limit: number) {\n if (limit < a + b) {\n if (limit / 2 < a && limit / 2 < b) {\n a = b = limit / 2\n } else if (limit / 2 < a) {\n a = limit - b\n } else if (limit / 2 < b) {\n b = limit - a\n }\n }\n return [a, b]\n}\n\nfunction makeSmaller(arr: [number, number]) {\n arr[0] = arr[1] = Math.min(arr[0], arr[1])\n}\n\n// Each corner can have 2 values, the first is the horizontal radius, the second is the vertical radius.\nfunction resolveRadius(\n v: number | string | undefined,\n width: number,\n height: number,\n fontSize: number,\n style: any\n): [boolean, undefined | [number, number]] {\n if (typeof v === 'string') {\n const sides = v.split(' ').map((s) => s.trim())\n const singleValue = !sides[1] && !sides[0].endsWith('%')\n sides[1] = sides[1] || sides[0]\n return [\n singleValue,\n [\n Math.min(lengthToNumber(sides[0], fontSize, width, style, true), width),\n Math.min(\n lengthToNumber(sides[1], fontSize, height, style, true),\n height\n ),\n ],\n ]\n }\n if (typeof v === 'number') {\n return [true, [Math.min(v, width), Math.min(v, height)]]\n }\n return [true, undefined]\n}\n\nconst radiusZeroOrNull = (_radius?: [number, number]) =>\n _radius && _radius[0] !== 0 && _radius[1] !== 0\n\nexport function getBorderRadiusClipPath(\n {\n id,\n borderRadiusPath,\n borderType,\n left,\n top,\n width,\n height,\n }: {\n id: string\n borderRadiusPath?: string\n borderType?: 'rect' | 'path'\n left: number\n top: number\n width: number\n height: number\n },\n style: Record\n) {\n const rectClipId = `satori_brc-${id}`\n const defs = buildXMLString(\n 'clipPath',\n {\n id: rectClipId,\n },\n buildXMLString(borderType, {\n x: left,\n y: top,\n width,\n height,\n d: borderRadiusPath ? borderRadiusPath : undefined,\n })\n )\n\n return [defs, rectClipId]\n}\n\nexport default function radius(\n {\n left,\n top,\n width,\n height,\n }: {\n left: number\n top: number\n width: number\n height: number\n },\n style: Record,\n partialSides?: boolean[]\n) {\n let {\n borderTopLeftRadius,\n borderTopRightRadius,\n borderBottomLeftRadius,\n borderBottomRightRadius,\n fontSize,\n } = style\n\n let singleAbsValueTopLeftCorner\n let singleAbsValueTopRightCorner\n let singleAbsValueBottomLeftCorner\n let singleAbsValueBottomRightCorner\n ;[singleAbsValueTopLeftCorner, borderTopLeftRadius] = resolveRadius(\n borderTopLeftRadius,\n width,\n height,\n fontSize,\n style\n )\n ;[singleAbsValueTopRightCorner, borderTopRightRadius] = resolveRadius(\n borderTopRightRadius,\n width,\n height,\n fontSize,\n style\n )\n ;[singleAbsValueBottomLeftCorner, borderBottomLeftRadius] = resolveRadius(\n borderBottomLeftRadius,\n width,\n height,\n fontSize,\n style\n )\n ;[singleAbsValueBottomRightCorner, borderBottomRightRadius] = resolveRadius(\n borderBottomRightRadius,\n width,\n height,\n fontSize,\n style\n )\n\n if (\n !partialSides &&\n !radiusZeroOrNull(borderTopLeftRadius) &&\n !radiusZeroOrNull(borderTopRightRadius) &&\n !radiusZeroOrNull(borderBottomLeftRadius) &&\n !radiusZeroOrNull(borderBottomRightRadius)\n ) {\n return ''\n }\n borderTopLeftRadius ||= [0, 0]\n borderTopRightRadius ||= [0, 0]\n borderBottomLeftRadius ||= [0, 0]\n borderBottomRightRadius ||= [0, 0]\n\n // Limit the radius sizes of each edge to make sure they will never overlap.\n\n // Top\n ;[borderTopLeftRadius[0], borderTopRightRadius[0]] = resolveSize(\n borderTopLeftRadius[0],\n borderTopRightRadius[0],\n width\n )\n // Bottom\n ;[borderBottomLeftRadius[0], borderBottomRightRadius[0]] = resolveSize(\n borderBottomLeftRadius[0],\n borderBottomRightRadius[0],\n width\n )\n // Left\n ;[borderTopLeftRadius[1], borderBottomLeftRadius[1]] = resolveSize(\n borderTopLeftRadius[1],\n borderBottomLeftRadius[1],\n height\n )\n // Right\n ;[borderTopRightRadius[1], borderBottomRightRadius[1]] = resolveSize(\n borderTopRightRadius[1],\n borderBottomRightRadius[1],\n height\n )\n\n // If the specified border radius is a single value (e.g. 10px or 10em), we take\n // the minimum of the resolved horizontal and vertical radius and apply to both.\n if (singleAbsValueTopLeftCorner) {\n makeSmaller(borderTopLeftRadius)\n }\n if (singleAbsValueTopRightCorner) {\n makeSmaller(borderTopRightRadius)\n }\n if (singleAbsValueBottomLeftCorner) {\n makeSmaller(borderBottomLeftRadius)\n }\n if (singleAbsValueBottomRightCorner) {\n makeSmaller(borderBottomRightRadius)\n }\n\n type Arc = [[number, number], [number, number]]\n const p: Arc[] = []\n p[0] = [borderTopRightRadius, borderTopRightRadius]\n p[1] = [\n borderBottomRightRadius,\n [-borderBottomRightRadius[0], borderBottomRightRadius[1]],\n ]\n p[2] = [\n borderBottomLeftRadius,\n [-borderBottomLeftRadius[0], -borderBottomLeftRadius[1]],\n ]\n p[3] = [\n borderTopLeftRadius,\n [borderTopLeftRadius[0], -borderTopLeftRadius[1]],\n ]\n\n const T = `h${width - borderTopLeftRadius[0] - borderTopRightRadius[0]} a${\n p[0][0]\n } 0 0 1 ${p[0][1]}`\n const R = `v${\n height - borderTopRightRadius[1] - borderBottomRightRadius[1]\n } a${p[1][0]} 0 0 1 ${p[1][1]}`\n const B = `h${\n borderBottomRightRadius[0] + borderBottomLeftRadius[0] - width\n } a${p[2][0]} 0 0 1 ${p[2][1]}`\n const L = `v${borderBottomLeftRadius[1] + borderTopLeftRadius[1] - height} a${\n p[3][0]\n } 0 0 1 ${p[3][1]}`\n\n if (partialSides) {\n // \"However it is not defined what these transitions look like or what function maps from this ratio to a point on the curve.\"\n // https://w3c.github.io/csswg-drafts/css-backgrounds-3/#corner-transitions\n let start = partialSides.indexOf(false)\n\n if (!partialSides.includes(true)) throw new Error('Invalid `partialSides`.')\n\n if (start === -1) {\n start = 0\n } else {\n while (!partialSides[start]) {\n start = (start + 1) % 4\n }\n }\n\n function getArc(i: number) {\n const c0 = svgArcCenterOffset(\n [\n borderTopLeftRadius,\n borderTopRightRadius,\n borderBottomRightRadius,\n borderBottomLeftRadius,\n ][i]\n )\n return i === 0\n ? [\n [\n left + borderTopLeftRadius[0] - c0,\n top + borderTopLeftRadius[1] - c0,\n ],\n [left + borderTopLeftRadius[0], top],\n ]\n : i === 1\n ? [\n [\n left + width - borderTopRightRadius[0] + c0,\n top + borderTopRightRadius[1] - c0,\n ],\n [left + width, top + borderTopRightRadius[1]],\n ]\n : i === 2\n ? [\n [\n left + width - borderBottomRightRadius[0] + c0,\n top + height - borderBottomRightRadius[1] + c0,\n ],\n [left + width - borderBottomRightRadius[0], top + height],\n ]\n : [\n [\n left + borderBottomLeftRadius[0] - c0,\n top + height - borderBottomLeftRadius[1] + c0,\n ],\n [left, top + height - borderBottomLeftRadius[1]],\n ]\n }\n\n let result = ''\n\n const arc0 = getArc(start)\n\n let l = `M${arc0[0]} A${p[(start + 3) % 4][0]} 0 0 1 ${arc0[1]}`\n\n let len = 0\n for (; len < 4 && partialSides[(start + len) % 4]; len++) {\n result += l + ' '\n l = [T, R, B, L][(start + len) % 4]\n }\n const end = (start + len) % 4\n\n // For the last segment, we skip the full arc and add the half arc.\n result += l.split(' ')[0]\n\n const arc1 = getArc(end)\n result += ` A${p[(end + 3) % 4][0]} 0 0 1 ${arc1[0]}`\n\n return result\n }\n\n // Generate the path\n return `M${left + borderTopLeftRadius[0]},${top} ${T} ${R} ${B} ${L}`\n}\n","import { buildXMLString } from '../utils.js'\nimport radius from './border-radius.js'\n\nfunction compareBorderDirections(a: string, b: string, style: any) {\n return (\n style[a + 'Width'] === style[b + 'Width'] &&\n style[a + 'Style'] === style[b + 'Style'] &&\n style[a + 'Color'] === style[b + 'Color']\n )\n}\n\nexport function getBorderClipPath(\n {\n id,\n // Can be `overflow: hidden` from parent containers.\n currentClipPathId,\n borderPath,\n borderType,\n left,\n top,\n width,\n height,\n }: {\n id: string\n currentClipPathId?: string | number\n borderPath?: string\n borderType?: 'rect' | 'path'\n left: number\n top: number\n width: number\n height: number\n },\n style: Record\n) {\n const hasBorder =\n style.borderTopWidth ||\n style.borderRightWidth ||\n style.borderBottomWidth ||\n style.borderLeftWidth\n\n if (!hasBorder) return null\n\n // In SVG, stroke is always centered on the path and there is no\n // existing property to make it behave like CSS border. So here we\n // 2x the border width and introduce another clip path to clip the\n // overflowed part.\n const rectClipId = `satori_bc-${id}`\n const defs = buildXMLString(\n 'clipPath',\n {\n id: rectClipId,\n 'clip-path': currentClipPathId ? `url(#${currentClipPathId})` : undefined,\n },\n buildXMLString(borderType, {\n x: left,\n y: top,\n width,\n height,\n d: borderPath ? borderPath : undefined,\n })\n )\n\n return [defs, rectClipId]\n}\n\nexport default function border(\n {\n left,\n top,\n width,\n height,\n props,\n asContentMask,\n maskBorderOnly,\n }: {\n left: number\n top: number\n width: number\n height: number\n props: any\n asContentMask?: boolean\n maskBorderOnly?: boolean\n },\n style: Record\n) {\n const directions = ['borderTop', 'borderRight', 'borderBottom', 'borderLeft']\n\n // No border\n if (\n !asContentMask &&\n !directions.some((direction) => style[direction + 'Width'])\n )\n return ''\n\n let fullBorder = ''\n\n let start = 0\n while (\n start > 0 &&\n compareBorderDirections(\n directions[start],\n directions[(start + 3) % 4],\n style\n )\n ) {\n start = (start + 3) % 4\n }\n\n let partialSides = [false, false, false, false]\n let currentStyle = []\n for (let _i = 0; _i < 4; _i++) {\n const i = (start + _i) % 4\n const ni = (start + _i + 1) % 4\n\n const d = directions[i]\n const nd = directions[ni]\n\n partialSides[i] = true\n currentStyle = [\n style[d + 'Width'],\n style[d + 'Style'],\n style[d + 'Color'],\n d,\n ]\n\n if (!compareBorderDirections(d, nd, style)) {\n const w =\n (currentStyle[0] || 0) +\n (asContentMask && !maskBorderOnly\n ? style[d.replace('border', 'padding')] || 0\n : 0)\n if (w) {\n fullBorder += buildXMLString('path', {\n width,\n height,\n ...props,\n fill: 'none',\n stroke: asContentMask ? '#000' : currentStyle[2],\n 'stroke-width': w * 2,\n 'stroke-dasharray':\n !asContentMask && currentStyle[1] === 'dashed'\n ? w * 2 + ' ' + w\n : undefined,\n d: radius(\n { left, top, width, height },\n style as Record,\n partialSides\n ),\n })\n }\n partialSides = [false, false, false, false]\n }\n }\n\n if (partialSides.some(Boolean)) {\n const w =\n (currentStyle[0] || 0) +\n (asContentMask && !maskBorderOnly\n ? style[currentStyle[3].replace('border', 'padding')] || 0\n : 0)\n if (w) {\n fullBorder += buildXMLString('path', {\n width,\n height,\n ...props,\n fill: 'none',\n stroke: asContentMask ? '#000' : currentStyle[2],\n 'stroke-width': w * 2,\n 'stroke-dasharray':\n !asContentMask && currentStyle[1] === 'dashed'\n ? w * 2 + ' ' + w\n : undefined,\n d: radius(\n { left, top, width, height },\n style as Record,\n partialSides\n ),\n })\n }\n }\n\n return fullBorder\n}\n","/**\n * When there is border radius, the content area should be clipped by the\n * inner path of border + padding. This applies to element as well as any\n * child element inside a `overflow: hidden` container.\n */\n\nimport { buildXMLString } from '../utils.js'\nimport border from './border.js'\n\nexport default function contentMask(\n {\n id,\n left,\n top,\n width,\n height,\n matrix,\n borderOnly,\n }: {\n id: string\n left: number\n top: number\n width: number\n height: number\n matrix: string | undefined\n borderOnly?: boolean\n },\n style: Record\n) {\n const offsetLeft =\n ((style.borderLeftWidth as number) || 0) +\n (borderOnly ? 0 : (style.paddingLeft as number) || 0)\n const offsetTop =\n ((style.borderTopWidth as number) || 0) +\n (borderOnly ? 0 : (style.paddingTop as number) || 0)\n const offsetRight =\n ((style.borderRightWidth as number) || 0) +\n (borderOnly ? 0 : (style.paddingRight as number) || 0)\n const offsetBottom =\n ((style.borderBottomWidth as number) || 0) +\n (borderOnly ? 0 : (style.paddingBottom as number) || 0)\n\n const contentArea = {\n x: left + offsetLeft,\n y: top + offsetTop,\n width: width - offsetLeft - offsetRight,\n height: height - offsetTop - offsetBottom,\n }\n\n const _contentMask = buildXMLString(\n 'mask',\n { id },\n buildXMLString('rect', {\n ...contentArea,\n fill: '#fff',\n // add transformation matrix to mask if overflow is hidden AND a\n // transformation style is defined, otherwise children will be clipped\n // incorrectly\n transform:\n style.overflow === 'hidden' && style.transform && matrix\n ? matrix\n : undefined,\n mask: style._inheritedMaskId\n ? `url(#${style._inheritedMaskId})`\n : undefined,\n }) +\n border(\n {\n left,\n top,\n width,\n height,\n props: {\n transform: matrix ? matrix : undefined,\n },\n asContentMask: true,\n maskBorderOnly: borderOnly,\n },\n style\n )\n )\n\n return _contentMask\n}\n","import { buildXMLString } from '../utils.js'\nimport { createShapeParser } from '../parser/shape.js'\n\nexport function genClipPathId(id: string) {\n return `satori_cp-${id}`\n}\nexport function genClipPath(id: string) {\n return `url(#${genClipPathId(id)})`\n}\n\nexport function buildClipPath(\n v: {\n left: number\n top: number\n width: number\n height: number\n path: string\n matrix: string | undefined\n id: string\n currentClipPath: string | string\n src?: string\n },\n style: Record,\n inheritedStyle: Record\n) {\n if (style.clipPath === 'none') return ''\n\n const parser = createShapeParser(v, style, inheritedStyle)\n const clipPath = style.clipPath as string\n\n let tmp: { type: string; [p: string]: string | number } = { type: '' }\n\n for (const k of Object.keys(parser)) {\n tmp = parser[k](clipPath)\n if (tmp) break\n }\n\n if (tmp) {\n const { type, ...rest } = tmp\n return buildXMLString(\n 'clipPath',\n {\n id: genClipPathId(v.id),\n 'clip-path': v.currentClipPath,\n transform: `translate(${v.left}, ${v.top})`,\n },\n buildXMLString(type, rest)\n )\n }\n return ''\n}\n","/**\n * Generate clip path for the given element.\n */\n\nimport { buildXMLString } from '../utils.js'\nimport mask from './content-mask.js'\nimport { buildClipPath, genClipPathId } from './clip-path.js'\n\nexport default function overflow(\n {\n left,\n top,\n width,\n height,\n path,\n matrix,\n id,\n currentClipPath,\n src,\n }: {\n left: number\n top: number\n width: number\n height: number\n path: string\n matrix: string | undefined\n id: string\n currentClipPath: string | string\n src?: string\n },\n style: Record,\n inheritableStyle: Record\n) {\n let overflowClipPath = ''\n const clipPath =\n style.clipPath && style.clipPath !== 'none'\n ? buildClipPath(\n { left, top, width, height, path, id, matrix, currentClipPath, src },\n style as Record,\n inheritableStyle\n )\n : ''\n\n if (style.overflow !== 'hidden' && !src) {\n overflowClipPath = ''\n } else {\n const _id = clipPath ? `satori_ocp-${id}` : genClipPathId(id)\n\n overflowClipPath = buildXMLString(\n 'clipPath',\n {\n id: _id,\n 'clip-path': currentClipPath,\n },\n buildXMLString(path ? 'path' : 'rect', {\n x: left,\n y: top,\n width,\n height,\n d: path ? path : undefined,\n // add transformation matrix to clip path if overflow is hidden AND a\n // transformation style is defined, otherwise children will be clipped\n // relative to the parent's original plane instead of the transformed\n // plane\n transform:\n style.overflow === 'hidden' && style.transform && matrix\n ? matrix\n : undefined,\n })\n )\n }\n\n const contentMask = mask(\n {\n id: `satori_om-${id}`,\n left,\n top,\n width,\n height,\n matrix,\n borderOnly: src ? false : true,\n },\n style\n )\n\n return clipPath + overflowClipPath + contentMask\n}\n","import { buildXMLString } from '../utils.js'\nimport buildBackgroundImage from './background-image.js'\nimport type { MaskProperty } from '../parser/mask.js'\n\nconst genMaskImageId = (id: string) => `satori_mi-${id}`\n\nexport default async function buildMaskImage(\n v: {\n id: string\n left: number\n top: number\n width: number\n height: number\n },\n style: Record,\n inheritedStyle: Record\n): Promise<[string, string]> {\n if (!style.maskImage) return ['', '']\n const { left, top, width, height, id } = v\n const maskImage = style.maskImage as unknown as MaskProperty[]\n const length = maskImage.length\n if (!length) return ['', '']\n const miId = genMaskImageId(id)\n\n let mask = ''\n\n for (let i = 0; i < length; i++) {\n const m = maskImage[i]\n\n const [_id, def] = await buildBackgroundImage(\n { id: `${miId}-${i}`, left, top, width, height },\n m,\n inheritedStyle,\n 'mask'\n )\n\n mask +=\n def +\n buildXMLString('rect', {\n x: left,\n y: top,\n width,\n height,\n fill: `url(#${_id})`,\n })\n }\n\n mask = buildXMLString('mask', { id: miId }, mask)\n\n return [miId, mask]\n}\n","import type { ParsedTransformOrigin } from '../transform-origin.js'\n\nimport backgroundImage from './background-image.js'\nimport radius, { getBorderRadiusClipPath } from './border-radius.js'\nimport { boxShadow } from './shadow.js'\nimport transform from './transform.js'\nimport overflow from './overflow.js'\nimport { buildXMLString } from '../utils.js'\nimport border, { getBorderClipPath } from './border.js'\nimport { genClipPath } from './clip-path.js'\nimport buildMaskImage from './mask-image.js'\n\nexport default async function rect(\n {\n id,\n left,\n top,\n width,\n height,\n isInheritingTransform,\n src,\n debug,\n }: {\n id: string\n left: number\n top: number\n width: number\n height: number\n isInheritingTransform: boolean\n src?: string\n debug?: boolean\n },\n style: Record,\n inheritableStyle: Record\n) {\n if (style.display === 'none') return ''\n\n const isImage = !!src\n\n let type: 'rect' | 'path' = 'rect'\n let matrix = ''\n let defs = ''\n let fills: string[] = []\n let opacity = 1\n let extra = ''\n\n if (style.backgroundColor) {\n fills.push(style.backgroundColor as string)\n }\n\n if (style.opacity !== undefined) {\n opacity = +style.opacity\n }\n\n if (style.transform) {\n matrix = transform(\n {\n left,\n top,\n width,\n height,\n },\n style.transform as unknown as number[],\n isInheritingTransform,\n style.transformOrigin as ParsedTransformOrigin | undefined\n )\n }\n\n let backgroundShapes = ''\n if (style.backgroundImage) {\n const backgrounds: string[][] = []\n\n for (\n let index = 0;\n index < (style.backgroundImage as any).length;\n index++\n ) {\n const background = (style.backgroundImage as any)[index]\n const image = await backgroundImage(\n { id: id + '_' + index, width, height, left, top },\n background,\n inheritableStyle\n )\n if (image) {\n // Background images that come first in the array are rendered last.\n backgrounds.unshift(image)\n }\n }\n\n for (const background of backgrounds) {\n fills.push(`url(#${background[0]})`)\n defs += background[1]\n if (background[2]) {\n backgroundShapes += background[2]\n }\n }\n }\n\n const [miId, mi] = await buildMaskImage(\n { id, left, top, width, height },\n style,\n inheritableStyle\n )\n\n defs += mi\n const maskId = miId\n ? `url(#${miId})`\n : style._inheritedMaskId\n ? `url(#${style._inheritedMaskId})`\n : undefined\n\n const path = radius(\n { left, top, width, height },\n style as Record\n )\n if (path) {\n type = 'path'\n }\n\n const clipPathId = style._inheritedClipPathId as number | undefined\n\n if (debug) {\n extra = buildXMLString('rect', {\n x: left,\n y: top,\n width,\n height,\n fill: 'transparent',\n stroke: '#ff5757',\n 'stroke-width': 1,\n transform: matrix || undefined,\n 'clip-path': clipPathId ? `url(#${clipPathId})` : undefined,\n })\n }\n\n const { backgroundClip, filter: cssFilter } = style\n\n const currentClipPath =\n backgroundClip === 'text'\n ? `url(#satori_bct-${id})`\n : clipPathId\n ? `url(#${clipPathId})`\n : style.clipPath\n ? genClipPath(id)\n : undefined\n\n const clip = overflow(\n { left, top, width, height, path, id, matrix, currentClipPath, src },\n style as Record,\n inheritableStyle\n )\n\n // Each background generates a new rectangle.\n // @TODO: Not sure if this is the best way to do it, maybe with\n // multiple s is better.\n let shape = fills\n .map((fill) =>\n buildXMLString(type, {\n x: left,\n y: top,\n width,\n height,\n fill,\n d: path ? path : undefined,\n transform: matrix ? matrix : undefined,\n 'clip-path': style.transform ? undefined : currentClipPath,\n style: cssFilter ? `filter:${cssFilter}` : undefined,\n mask: style.transform ? undefined : maskId,\n })\n )\n .join('')\n\n const borderClip = getBorderClipPath(\n {\n id,\n left,\n top,\n width,\n height,\n currentClipPathId: clipPathId,\n borderPath: path,\n borderType: type,\n },\n style\n )\n\n // border radius for images with transform property\n let imageBorderRadius = undefined\n\n // If it's an image () tag, we add an extra layer of the image itself.\n if (isImage) {\n // We need to subtract the border and padding sizes from the image size.\n const offsetLeft =\n ((style.borderLeftWidth as number) || 0) +\n ((style.paddingLeft as number) || 0)\n const offsetTop =\n ((style.borderTopWidth as number) || 0) +\n ((style.paddingTop as number) || 0)\n const offsetRight =\n ((style.borderRightWidth as number) || 0) +\n ((style.paddingRight as number) || 0)\n const offsetBottom =\n ((style.borderBottomWidth as number) || 0) +\n ((style.paddingBottom as number) || 0)\n\n const preserveAspectRatio =\n style.objectFit === 'contain'\n ? 'xMidYMid'\n : style.objectFit === 'cover'\n ? 'xMidYMid slice'\n : 'none'\n\n if (style.transform) {\n imageBorderRadius = getBorderRadiusClipPath(\n {\n id,\n borderRadiusPath: path,\n borderType: type,\n left,\n top,\n width,\n height,\n },\n style\n )\n }\n\n shape += buildXMLString('image', {\n x: left + offsetLeft,\n y: top + offsetTop,\n width: width - offsetLeft - offsetRight,\n height: height - offsetTop - offsetBottom,\n href: src,\n preserveAspectRatio,\n transform: matrix ? matrix : undefined,\n style: cssFilter ? `filter:${cssFilter}` : undefined,\n 'clip-path': style.transform\n ? imageBorderRadius\n ? `url(#${imageBorderRadius[1]})`\n : undefined\n : `url(#satori_cp-${id})`,\n mask: style.transform\n ? undefined\n : miId\n ? `url(#${miId})`\n : `url(#satori_om-${id})`,\n })\n }\n\n if (borderClip) {\n defs += borderClip[0]\n const rectClipId = borderClip[1]\n\n shape += border(\n {\n left,\n top,\n width,\n height,\n props: {\n transform: matrix ? matrix : undefined,\n // When using `background-clip: text`, we need to draw the extra border because\n // it shouldn't be clipped by the clip path, so we are not using currentClipPath here.\n 'clip-path': `url(#${rectClipId})`,\n },\n },\n style\n )\n }\n\n // box-shadow.\n const shadow = boxShadow(\n {\n width,\n height,\n id,\n opacity,\n shape: buildXMLString(type, {\n x: left,\n y: top,\n width,\n height,\n fill: '#fff',\n stroke: '#fff',\n 'stroke-width': 0,\n d: path ? path : undefined,\n transform: matrix ? matrix : undefined,\n 'clip-path': currentClipPath,\n mask: maskId,\n }),\n },\n style\n )\n\n return (\n (defs ? buildXMLString('defs', {}, defs) : '') +\n (shadow ? shadow[0] : '') +\n (imageBorderRadius ? imageBorderRadius[0] : '') +\n clip +\n (opacity !== 1 ? `` : '') +\n (style.transform && (currentClipPath || maskId)\n ? ``\n : '') +\n (backgroundShapes || shape) +\n (style.transform && (currentClipPath || maskId) ? '' : '') +\n (opacity !== 1 ? `` : '') +\n (shadow ? shadow[1] : '') +\n extra\n )\n}\n","export default () => {\n\t// https://mths.be/emoji\n\treturn /[#*0-9]\\uFE0F?\\u20E3|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26AA\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C8\\u26CF\\u26D1\\u26D3\\u26E9\\u26F0-\\u26F5\\u26F7\\u26F8\\u26FA\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2757\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B55\\u3030\\u303D\\u3297\\u3299]\\uFE0F?|[\\u261D\\u270C\\u270D](?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?|[\\u270A\\u270B](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u2693\\u26A1\\u26AB\\u26C5\\u26CE\\u26D4\\u26EA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2795-\\u2797\\u27B0\\u27BF\\u2B50]|\\u26F9(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\u2764\\uFE0F?(?:\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79))?|\\uD83C(?:[\\uDC04\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]\\uFE0F?|[\\uDF85\\uDFC2\\uDFC7](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDFC3\\uDFC4\\uDFCA](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDFCB\\uDFCC](?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uDDE6\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF]|\\uDDE7\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF]|\\uDDE8\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF]|\\uDDE9\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF]|\\uDDEA\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA]|\\uDDEB\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7]|\\uDDEC\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE]|\\uDDED\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA]|\\uDDEE\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9]|\\uDDEF\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5]|\\uDDF0\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF]|\\uDDF1\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE]|\\uDDF2\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF]|\\uDDF3\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF]|\\uDDF4\\uD83C\\uDDF2|\\uDDF5\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE]|\\uDDF6\\uD83C\\uDDE6|\\uDDF7\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC]|\\uDDF8\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF]|\\uDDF9\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF]|\\uDDFA\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF]|\\uDDFB\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA]|\\uDDFC\\uD83C[\\uDDEB\\uDDF8]|\\uDDFD\\uD83C\\uDDF0|\\uDDFE\\uD83C[\\uDDEA\\uDDF9]|\\uDDFF\\uD83C[\\uDDE6\\uDDF2\\uDDFC]|\\uDFF3\\uFE0F?(?:\\u200D(?:\\u26A7\\uFE0F?|\\uD83C\\uDF08))?|\\uDFF4(?:\\u200D\\u2620\\uFE0F?|\\uDB40\\uDC67\\uDB40\\uDC62\\uDB40(?:\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F)?)|\\uD83D(?:[\\uDC08\\uDC26](?:\\u200D\\u2B1B)?|[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3]\\uFE0F?|[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD74\\uDD90](?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC25\\uDC27-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEDC-\\uDEDF\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|\\uDC41\\uFE0F?(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?))|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC6F(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDD75(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDE2E(?:\\u200D\\uD83D\\uDCA8)?|\\uDE35(?:\\u200D\\uD83D\\uDCAB)?|\\uDE36(?:\\u200D\\uD83C\\uDF2B\\uFE0F?)?)|\\uD83E(?:[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5\\uDEC3-\\uDEC5\\uDEF0\\uDEF2-\\uDEF8](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCC\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE7C\\uDE80-\\uDE88\\uDE90-\\uDEBD\\uDEBF-\\uDEC2\\uDECE-\\uDEDB\\uDEE0-\\uDEE8]|\\uDD3C(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF])?|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83E\\uDDD1))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?))?|\\uDEF1(?:\\uD83C(?:\\uDFFB(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFC-\\uDFFF])?|\\uDFFC(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])?|\\uDFFD(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])?|\\uDFFE(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])?|\\uDFFF(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFE])?))?)/g;\n};\n","// This function guesses the human language (writing system) of the given\n// JavaScript string, using the Unicode Alias in extended RegExp.\n//\n// You can learn more about this in:\n// - https://en.wikipedia.org/wiki/Script_(Unicode)\n// - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions/Unicode_Property_Escapes\n// - https://unicode.org/reports/tr18/#General_Category_Property\n// - https://tc39.es/ecma262/multipage/text-processing.html#table-unicode-script-values\n\nimport createEmojiRegex from 'emoji-regex'\n\n// Remove the \"g\" flag\nconst emojiRegex = new RegExp(createEmojiRegex(), '')\n\n// Supported languages. The order matters.\n// Usually, this is only for \"special cases\" like CJKV languages as latin\n// characters are usually included in the base font, and can be safely fallback\n// to the Noto Sans font. A list of special cases we want to support can be\n// found here (sort by popularity):\n// - https://fonts.google.com/noto/fonts?sort=popularity¬o.query=sans\n//\n// We can't tell if a hanzi(kanji) is Chinese or Japanese by regular expressions.\n// - https://unicode.org/faq/han_cjk.html\n\nconst specialCode = {\n emoji: emojiRegex,\n symbol: /\\p{Symbol}/u,\n math: /\\p{Math}/u,\n} as const\n\nconst code = {\n 'ja-JP': /\\p{scx=Hira}|\\p{scx=Kana}|\\p{scx=Han}|[\\u3000]|[\\uFF00-\\uFFEF]/u,\n 'ko-KR': /\\p{scx=Hangul}/u,\n 'zh-CN': /\\p{scx=Han}/u,\n 'zh-TW': /\\p{scx=Han}/u,\n 'zh-HK': /\\p{scx=Han}/u,\n 'th-TH': /\\p{scx=Thai}/u,\n 'bn-IN': /\\p{scx=Bengali}/u,\n 'ar-AR': /\\p{scx=Arabic}/u,\n 'ta-IN': /\\p{scx=Tamil}/u,\n 'ml-IN': /\\p{scx=Malayalam}/u,\n 'he-IL': /\\p{scx=Hebrew}/u,\n 'te-IN': /\\p{scx=Telugu}/u,\n devanagari: /\\p{scx=Devanagari}/u,\n kannada: /\\p{scx=Kannada}/u,\n} as const\n\ntype SpecialCodeKey = keyof typeof specialCode\ntype CodeKey = keyof typeof specialCode | keyof typeof code\nexport type Locale = keyof typeof code\nexport type LangCode = CodeKey | 'unknown'\n\nexport const locales = Object.keys({ ...code, ...specialCode }) as Locale[]\nexport function isValidLocale(x: any): x is Locale {\n return locales.includes(x)\n}\n\nexport function detectLanguageCode(\n segment: string,\n locale?: Locale\n): Array | ['unknown'] | [SpecialCodeKey] {\n for (const c of Object.keys(specialCode) as SpecialCodeKey[]) {\n if (specialCode[c].test(segment)) {\n return [c]\n }\n }\n\n const languages = Object.keys(code).filter((lang) =>\n code[lang].test(segment)\n ) as Locale[]\n\n if (languages.length === 0) {\n return ['unknown']\n }\n\n if (locale) {\n const index = languages.findIndex((lang) => lang === locale)\n if (index !== -1) {\n languages.splice(index, 1)\n languages.unshift(locale)\n }\n }\n\n return languages\n}\n\nexport function normalizeLocale(locale?: string): Locale | undefined {\n if (locale) {\n return locales.find((l) => l.toLowerCase().startsWith(locale.toLowerCase()))\n }\n}\n","/**\n * This module is used to calculate the layout of the current sub-tree.\n */\n\nimport type { ReactNode } from 'react'\nimport type { Node as YogaNode } from 'yoga-wasm-web'\n\nimport getYoga from './yoga/index.js'\nimport {\n isReactElement,\n isClass,\n buildXMLString,\n normalizeChildren,\n hasDangerouslySetInnerHTMLProp,\n} from './utils.js'\nimport { SVGNodeToImage } from './handler/preprocess.js'\nimport computeStyle from './handler/compute.js'\nimport FontLoader from './font.js'\nimport buildTextNodes from './text/index.js'\nimport rect from './builder/rect.js'\nimport { Locale, normalizeLocale } from './language.js'\nimport { SerializedStyle } from './handler/expand.js'\n\nexport interface LayoutContext {\n id: string\n parentStyle: SerializedStyle\n inheritedStyle: SerializedStyle\n isInheritingTransform?: boolean\n parent: YogaNode\n font: FontLoader\n embedFont: boolean\n debug?: boolean\n graphemeImages?: Record\n canLoadAdditionalAssets: boolean\n locale?: Locale\n getTwStyles: (tw: string, style: any) => any\n onNodeDetected?: (node: SatoriNode) => void\n}\n\nexport interface SatoriNode {\n // Layout information.\n left: number\n top: number\n width: number\n height: number\n type: string\n key?: string | number\n props: Record\n textContent?: string\n}\n\nexport default async function* layout(\n element: ReactNode,\n context: LayoutContext\n): AsyncGenerator<\n { word: string; locale?: string }[],\n string,\n [number, number]\n> {\n const Yoga = await getYoga()\n const {\n id,\n inheritedStyle,\n parent,\n font,\n debug,\n locale,\n embedFont = true,\n graphemeImages,\n canLoadAdditionalAssets,\n getTwStyles,\n } = context\n\n // 1. Pre-process the node.\n if (element === null || typeof element === 'undefined') {\n yield\n yield\n return ''\n }\n\n // Not a regular element.\n if (!isReactElement(element) || typeof element.type === 'function') {\n let iter: ReturnType\n\n if (!isReactElement(element)) {\n // Process as text node.\n iter = buildTextNodes(String(element), context)\n yield (await iter.next()).value as { word: string; locale?: Locale }[]\n } else {\n if (isClass(element.type as Function)) {\n throw new Error('Class component is not supported.')\n }\n // If it's a custom component, Satori strictly requires it to be pure,\n // stateless, and not relying on any React APIs such as hooks or suspense.\n // So we can safely evaluate it to render. Otherwise, an error will be\n // thrown by React.\n iter = layout((element.type as Function)(element.props), context)\n yield (await iter.next()).value as { word: string; locale?: string }[]\n }\n\n await iter.next()\n const offset = yield\n return (await iter.next(offset)).value as string\n }\n\n // Process as element.\n const { type, props } = element\n if (props && hasDangerouslySetInnerHTMLProp(props)) {\n throw new Error(\n 'dangerouslySetInnerHTML property is not supported. See documentation for more information https://github.com/vercel/satori#jsx.'\n )\n }\n let { style, children, tw, lang: _newLocale = locale } = props || {}\n const newLocale = normalizeLocale(_newLocale)\n\n // Extend Tailwind styles.\n if (tw) {\n const twStyles = getTwStyles(tw, style)\n style = Object.assign(twStyles, style)\n }\n\n const node = Yoga.Node.create()\n parent.insertChild(node, parent.getChildCount())\n\n const [computedStyle, newInheritableStyle] = await computeStyle(\n node,\n type,\n inheritedStyle,\n style,\n props\n )\n // Post-process styles to attach inheritable properties for Satori.\n\n // If the element is inheriting the parent `transform`, or applying its own.\n // This affects the coordinate system.\n const isInheritingTransform =\n computedStyle.transform === inheritedStyle.transform\n if (!isInheritingTransform) {\n ;(computedStyle.transform as any).__parent = inheritedStyle.transform\n }\n\n // If the element has `overflow` set to `hidden` or clip-path is set, we need to create a clip\n // path and use it in all its children.\n if (\n computedStyle.overflow === 'hidden' ||\n (computedStyle.clipPath && computedStyle.clipPath !== 'none')\n ) {\n newInheritableStyle._inheritedClipPathId = `satori_cp-${id}`\n newInheritableStyle._inheritedMaskId = `satori_om-${id}`\n }\n\n if (computedStyle.maskImage) {\n newInheritableStyle._inheritedMaskId = `satori_mi-${id}`\n }\n\n // If the element has `background-clip: text` set, we need to create a clip\n // path and use it in all its children.\n if (computedStyle.backgroundClip === 'text') {\n const mutateRefValue = { value: '' } as any\n newInheritableStyle._inheritedBackgroundClipTextPath = mutateRefValue\n computedStyle._inheritedBackgroundClipTextPath = mutateRefValue\n }\n\n // 2. Do layout recursively for its children.\n const normalizedChildren = normalizeChildren(children)\n const iterators: ReturnType[] = []\n\n let i = 0\n const segmentsMissingFont: { word: string; locale?: string }[] = []\n for (const child of normalizedChildren) {\n const iter = layout(child, {\n id: id + '-' + i++,\n parentStyle: computedStyle,\n inheritedStyle: newInheritableStyle,\n isInheritingTransform: true,\n parent: node,\n font,\n embedFont,\n debug,\n graphemeImages,\n canLoadAdditionalAssets,\n locale: newLocale,\n getTwStyles,\n onNodeDetected: context.onNodeDetected,\n })\n if (canLoadAdditionalAssets) {\n segmentsMissingFont.push(...(((await iter.next()).value as any) || []))\n } else {\n await iter.next()\n }\n iterators.push(iter)\n }\n yield segmentsMissingFont\n for (const iter of iterators) await iter.next()\n\n // 3. Post-process the node.\n const [x, y] = yield\n let { left, top, width, height } = node.getComputedLayout()\n // Attach offset to the current node.\n left += x\n top += y\n\n let childrenRenderResult = ''\n let baseRenderResult = ''\n let depsRenderResult = ''\n\n // Emit event for the current node. We don't pass the children prop to the\n // event handler because everything is already flattened, unless it's a text\n // node.\n const { children: childrenNode, ...restProps } = props\n context.onNodeDetected?.({\n left,\n top,\n width,\n height,\n type,\n props: restProps,\n key: element.key,\n textContent: isReactElement(childrenNode) ? undefined : childrenNode,\n })\n\n // Generate the rendered markup for the current node.\n if (type === 'img') {\n const src = computedStyle.__src as string\n baseRenderResult = await rect(\n {\n id,\n left,\n top,\n width,\n height,\n src,\n isInheritingTransform,\n debug,\n },\n computedStyle,\n newInheritableStyle\n )\n } else if (type === 'svg') {\n // When entering a node, we need to convert it to a with the\n // SVG data URL embedded.\n const currentColor = computedStyle.color\n const src = await SVGNodeToImage(element, currentColor)\n baseRenderResult = await rect(\n {\n id,\n left,\n top,\n width,\n height,\n src,\n isInheritingTransform,\n debug,\n },\n computedStyle,\n newInheritableStyle\n )\n } else {\n const display = style?.display\n if (\n type === 'div' &&\n children &&\n typeof children !== 'string' &&\n display !== 'flex' &&\n display !== 'none'\n ) {\n throw new Error(\n `Expected
to have explicit \"display: flex\" or \"display: none\" if it has more than one child node.`\n )\n }\n baseRenderResult = await rect(\n { id, left, top, width, height, isInheritingTransform, debug },\n computedStyle,\n newInheritableStyle\n )\n }\n\n // Generate the rendered markup for the children.\n for (const iter of iterators) {\n childrenRenderResult += (await iter.next([left, top])).value\n }\n\n // An extra pass to generate the special background-clip shape collected from\n // children.\n if (computedStyle._inheritedBackgroundClipTextPath) {\n depsRenderResult += buildXMLString(\n 'clipPath',\n {\n id: `satori_bct-${id}`,\n 'clip-path': computedStyle._inheritedClipPathId\n ? `url(#${computedStyle._inheritedClipPathId})`\n : undefined,\n },\n (computedStyle._inheritedBackgroundClipTextPath as any).value\n )\n }\n\n return depsRenderResult + baseRenderResult + childrenRenderResult\n}\n","/**\n * This class handles everything related to fonts.\n */\nimport opentype from '@shuding/opentype.js'\nimport { Locale, locales, isValidLocale } from './language.js'\n\nexport type Weight = 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900\nexport type WeightName = 'normal' | 'bold'\nexport type FontWeight = Weight | WeightName\nexport type FontStyle = 'normal' | 'italic'\nconst SUFFIX_WHEN_LANG_NOT_SET = 'unknown'\n\nexport interface FontOptions {\n data: Buffer | ArrayBuffer\n name: string\n weight?: Weight\n style?: FontStyle\n lang?: string\n}\n\nexport type FontEngine = {\n has: (s: string) => boolean\n baseline: (s?: string, resolvedFont?: any) => number\n height: (s?: string, resolvedFont?: any) => number\n measure: (\n s: string,\n style: {\n fontSize: number\n letterSpacing: number\n }\n ) => number\n getSVG: (\n s: string,\n style: {\n fontSize: number\n top: number\n left: number\n letterSpacing: number\n }\n ) => string\n}\n\nfunction compareFont(\n weight,\n style,\n [matchedWeight, matchedStyle],\n [nextWeight, nextStyle]\n) {\n if (matchedWeight !== nextWeight) {\n // Put the defined weight first.\n if (!matchedWeight) return 1\n if (!nextWeight) return -1\n\n // Exact match.\n if (matchedWeight === weight) return -1\n if (nextWeight === weight) return 1\n\n // 400 and 500.\n if (weight === 400 && matchedWeight === 500) return -1\n if (weight === 500 && matchedWeight === 400) return -1\n if (weight === 400 && nextWeight === 500) return 1\n if (weight === 500 && nextWeight === 400) return 1\n\n // Less than 400.\n if (weight < 400) {\n if (matchedWeight < weight && nextWeight < weight)\n return nextWeight - matchedWeight\n if (matchedWeight < weight) return -1\n if (nextWeight < weight) return 1\n return matchedWeight - nextWeight\n }\n\n // Greater than 500.\n if (weight < matchedWeight && weight < nextWeight)\n return matchedWeight - nextWeight\n if (weight < matchedWeight) return -1\n if (weight < nextWeight) return 1\n return nextWeight - matchedWeight\n }\n\n if (matchedStyle !== nextStyle) {\n // Exact match.\n if (matchedStyle === style) return -1\n if (nextStyle === style) return 1\n }\n\n return -1\n}\n\nexport default class FontLoader {\n defaultFont: opentype.Font\n fonts = new Map()\n constructor(fontOptions: FontOptions[]) {\n this.addFonts(fontOptions)\n }\n\n // Get font by name and weight.\n private get({\n name,\n weight,\n style,\n }: {\n name: string\n weight: Weight | WeightName\n style: FontStyle\n }) {\n if (!this.fonts.has(name)) {\n return null\n }\n\n if (weight === 'normal') weight = 400\n if (weight === 'bold') weight = 700\n if (typeof weight === 'string')\n weight = Number.parseInt(weight, 10) as Weight\n\n const fonts = [...this.fonts.get(name)]\n\n let matchedFont = fonts[0]\n\n // Fallback to the closest weight and style according to the strategy here:\n // https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight#fallback_weights\n for (let i = 1; i < fonts.length; i++) {\n const [, weight1, style1] = matchedFont\n const [, weight2, style2] = fonts[i]\n if (\n compareFont(weight, style, [weight1, style1], [weight2, style2]) > 0\n ) {\n matchedFont = fonts[i]\n }\n }\n\n return matchedFont[0]\n }\n\n public addFonts(fontOptions: FontOptions[]) {\n for (const fontOption of fontOptions) {\n const { name, data, lang } = fontOption\n if (lang && !isValidLocale(lang)) {\n throw new Error(\n `Invalid value for props \\`lang\\`: \"${lang}\". The value must be one of the following: ${locales.join(\n ', '\n )}.`\n )\n }\n const _lang = lang ?? SUFFIX_WHEN_LANG_NOT_SET\n const font = opentype.parse(\n // Buffer to ArrayBuffer.\n 'buffer' in data\n ? data.buffer.slice(\n data.byteOffset,\n data.byteOffset + data.byteLength\n )\n : data,\n // @ts-ignore\n { lowMemory: true }\n )\n\n // Modify the `charToGlyphIndex` method, so we can know which char is\n // being mapped to which glyph.\n const originalCharToGlyphIndex = font.charToGlyphIndex\n font.charToGlyphIndex = (char) => {\n const index = originalCharToGlyphIndex.call(font, char)\n if (index === 0) {\n // The current requested char is missing a glyph.\n if ((font as any)._trackBrokenChars) {\n ;(font as any)._trackBrokenChars.push(char)\n }\n }\n return index\n }\n\n // We use the first font as the default font fallback.\n if (!this.defaultFont) this.defaultFont = font\n\n const _name = `${name.toLowerCase()}_${_lang}`\n\n if (!this.fonts.has(_name)) {\n this.fonts.set(_name, [])\n }\n this.fonts.get(_name).push([font, fontOption.weight, fontOption.style])\n }\n }\n\n public getEngine(\n fontSize = 16,\n lineHeight: number | string = 'normal',\n {\n fontFamily = 'sans-serif',\n fontWeight = 400,\n fontStyle = 'normal',\n }: {\n fontFamily?: string | string[]\n fontWeight?: FontWeight\n fontStyle?: FontStyle\n },\n locale: Locale | undefined\n ): FontEngine {\n if (!this.fonts.size) {\n throw new Error(\n 'No fonts are loaded. At least one font is required to calculate the layout.'\n )\n }\n\n fontFamily = (Array.isArray(fontFamily) ? fontFamily : [fontFamily]).map(\n (name) => name.toLowerCase()\n )\n const fonts = []\n fontFamily.forEach((face) => {\n const getNormal = this.get({\n name: face,\n weight: fontWeight,\n style: fontStyle,\n })\n if (getNormal) {\n fonts.push(getNormal)\n return\n }\n\n const getUnknown = this.get({\n name: face + '_unknown',\n weight: fontWeight,\n style: fontStyle,\n })\n\n if (getUnknown) {\n fonts.push(getUnknown)\n return\n }\n })\n\n // Add additional fonts as the fallback.\n const keys = Array.from(this.fonts.keys())\n const specifiedLangFonts = []\n const nonSpecifiedLangFonts = []\n const additionalFonts = []\n for (const name of keys) {\n if (fontFamily.includes(name)) continue\n if (locale) {\n const lang = getLangFromFontName(name)\n if (lang) {\n if (lang === locale) {\n specifiedLangFonts.push(\n this.get({\n name,\n weight: fontWeight,\n style: fontStyle,\n })\n )\n } else {\n nonSpecifiedLangFonts.push(\n this.get({\n name,\n weight: fontWeight,\n style: fontStyle,\n })\n )\n }\n } else {\n additionalFonts.push(\n this.get({\n name,\n weight: fontWeight,\n style: fontStyle,\n })\n )\n }\n } else {\n additionalFonts.push(\n this.get({\n name,\n weight: fontWeight,\n style: fontStyle,\n })\n )\n }\n }\n\n const cachedFontResolver = new Map()\n const resolveFont = (word: string, fallback = true) => {\n const _fonts = [\n ...fonts,\n ...additionalFonts,\n ...specifiedLangFonts,\n ...(fallback ? nonSpecifiedLangFonts : []),\n ]\n\n if (typeof word === 'undefined') {\n if (fallback) {\n return _fonts[_fonts.length - 1]\n }\n return undefined\n }\n\n const code = word.charCodeAt(0)\n if (cachedFontResolver.has(code)) return cachedFontResolver.get(code)\n\n const font = _fonts.find((_font, index) => {\n return (\n !!_font.charToGlyphIndex(word) ||\n (fallback && index === _fonts.length - 1)\n )\n })\n\n if (font) {\n cachedFontResolver.set(code, font)\n }\n\n return font\n }\n\n const ascender = (resolvedFont: opentype.Font, useOS2Table = false) => {\n const _ascender =\n (useOS2Table ? resolvedFont.tables?.os2?.sTypoAscender : 0) ||\n resolvedFont.ascender\n return (_ascender / resolvedFont.unitsPerEm) * fontSize\n }\n\n const descender = (resolvedFont: opentype.Font, useOS2Table = false) => {\n const _descender =\n (useOS2Table ? resolvedFont.tables?.os2?.sTypoDescender : 0) ||\n resolvedFont.descender\n return (_descender / resolvedFont.unitsPerEm) * fontSize\n }\n\n const height = (resolvedFont: opentype.Font, useOS2Table = false) => {\n if ('string' === typeof lineHeight && 'normal' === lineHeight) {\n const _lineGap =\n (useOS2Table ? resolvedFont.tables?.os2?.sTypoLineGap : 0) || 0\n return (\n ascender(resolvedFont, useOS2Table) -\n descender(resolvedFont, useOS2Table) +\n (_lineGap / resolvedFont.unitsPerEm) * fontSize\n )\n } else if ('number' === typeof lineHeight) {\n return fontSize * lineHeight\n }\n }\n\n const resolve = (s: string) => {\n return resolveFont(s, false)\n }\n\n const engine = {\n has: (s: string) => {\n if (s === '\\n') return true\n const font = resolve(s)\n if (!font) return false\n ;(font as any)._trackBrokenChars = []\n font.stringToGlyphs(s)\n if (!(font as any)._trackBrokenChars.length) return true\n ;(font as any)._trackBrokenChars = undefined\n return false\n },\n baseline: (\n s?: string,\n resolvedFont = typeof s === 'undefined' ? fonts[0] : resolveFont(s)\n ) => {\n const asc = ascender(resolvedFont)\n const desc = descender(resolvedFont)\n const contentHeight = asc - desc\n\n return asc + (height(resolvedFont) - contentHeight) / 2\n },\n height: (\n s?: string,\n resolvedFont = typeof s === 'undefined' ? fonts[0] : resolveFont(s)\n ) => {\n return height(resolvedFont)\n },\n measure: (\n s: string,\n style: {\n fontSize: number\n letterSpacing: number\n }\n ) => {\n return this.measure(resolveFont, s, style)\n },\n getSVG: (\n s: string,\n style: {\n fontSize: number\n top: number\n left: number\n letterSpacing: number\n }\n ) => {\n return this.getSVG(resolveFont, s, style)\n },\n }\n\n return engine\n }\n\n private patchFontFallbackResolver(\n font: opentype.Font,\n resolveFont: (word: string, fallback?: boolean) => opentype.Font\n ) {\n const brokenChars = []\n ;(font as any)._trackBrokenChars = brokenChars\n\n const originalStringToGlyphs = font.stringToGlyphs\n font.stringToGlyphs = (s: string, ...args: any) => {\n const glyphs = originalStringToGlyphs.call(font, s, ...args)\n\n for (let i = 0; i < glyphs.length; i++) {\n // Hitting an undefined glyph. We have to try to resolve it from other\n // fonts.\n // @TODO: This affects the kerning resolution but should be fine for now.\n if (glyphs[i].unicode === undefined) {\n const char = brokenChars.shift()\n const anotherFont = resolveFont(char)\n if (anotherFont !== font) {\n const glyph = anotherFont.charToGlyph(char)\n // Scale the glyph to match the current units per em.\n const scale = font.unitsPerEm / anotherFont.unitsPerEm\n const p = new opentype.Path()\n p.unitsPerEm = font.unitsPerEm\n p.commands = glyph.path.commands.map((command) => {\n const scaledCommand = { ...command }\n for (let k in scaledCommand) {\n if (typeof scaledCommand[k] === 'number') {\n scaledCommand[k] *= scale\n }\n }\n return scaledCommand\n })\n const g = new opentype.Glyph({\n ...glyph,\n advanceWidth: glyph.advanceWidth * scale,\n xMin: glyph.xMin * scale,\n xMax: glyph.xMax * scale,\n yMin: glyph.yMin * scale,\n yMax: glyph.yMax * scale,\n path: p,\n })\n\n glyphs[i] = g\n }\n }\n }\n\n return glyphs\n }\n\n return () => {\n font.stringToGlyphs = originalStringToGlyphs\n ;(font as any)._trackBrokenChars = undefined\n }\n }\n\n private measure(\n resolveFont: (word: string, fallback?: boolean) => opentype.Font,\n content: string,\n {\n fontSize,\n letterSpacing = 0,\n }: {\n fontSize: number\n letterSpacing: number\n }\n ) {\n const font = resolveFont(content)\n const unpatch = this.patchFontFallbackResolver(font, resolveFont)\n\n try {\n return font.getAdvanceWidth(content, fontSize, {\n letterSpacing: letterSpacing / fontSize,\n })\n } finally {\n unpatch()\n }\n }\n\n private getSVG(\n resolveFont: (word: string, fallback?: boolean) => opentype.Font,\n content: string,\n {\n fontSize,\n top,\n left,\n letterSpacing = 0,\n }: {\n fontSize: number\n top: number\n left: number\n letterSpacing: number\n }\n ) {\n const font = resolveFont(content)\n const unpatch = this.patchFontFallbackResolver(font, resolveFont)\n\n try {\n if (fontSize === 0) {\n return ''\n }\n return font\n .getPath(content.replace(/\\n/g, ''), left, top, fontSize, {\n letterSpacing: letterSpacing / fontSize,\n })\n .toPathData(1)\n } finally {\n unpatch()\n }\n }\n}\n\nfunction getLangFromFontName(name: string): Locale | undefined {\n const arr = name.split('_')\n const lang = arr[arr.length - 1]\n\n return lang === SUFFIX_WHEN_LANG_NOT_SET ? undefined : (lang as Locale)\n}\n","import { buildXMLString } from '../utils.js'\n\nexport default function svg({\n width,\n height,\n content,\n}: {\n width: number\n height: number\n content: string\n}) {\n return buildXMLString(\n 'svg',\n {\n width,\n height,\n viewBox: `0 0 ${width} ${height}`,\n xmlns: 'http://www.w3.org/2000/svg',\n },\n content\n )\n}\n","import resolveConfig from 'tailwindcss/resolveConfig';\nimport Cache from './cache';\nimport ClassParser from './ClassParser';\nimport { parseInputs } from './parse-inputs';\nimport { complete, warn } from './helpers';\nimport { getAddedUtilities } from './plugin';\nimport { removeOpacityHelpers } from './resolve/color';\nexport function create(customConfig, platform) {\n const config = resolveConfig(withContent(customConfig));\n const device = {};\n const pluginUtils = getAddedUtilities(config.plugins);\n const customStringUtils = {};\n const customStyleUtils = Object.entries(pluginUtils)\n .map(([util, style]) => {\n if (typeof style === `string`) {\n // mutating while mapping, i know - bad form, but for performance sake... ¯\\_(ツ)_/¯\n customStringUtils[util] = style;\n return [util, { kind: `null` }];\n }\n return [util, complete(style)];\n })\n .filter(([, ir]) => ir.kind !== `null`);\n function deriveCacheGroup() {\n return ([\n device.windowDimensions ? `w${device.windowDimensions.width}` : false,\n device.windowDimensions ? `h${device.windowDimensions.height}` : false,\n device.fontScale ? `fs${device.fontScale}` : false,\n device.colorScheme === `dark` ? `dark` : false,\n device.pixelDensity === 2 ? `retina` : false,\n ]\n .filter(Boolean)\n .join(`--`) || `default`);\n }\n let cacheGroup = deriveCacheGroup();\n const contextCaches = {};\n function getCache() {\n const existing = contextCaches[cacheGroup];\n if (existing) {\n return existing;\n }\n const cache = new Cache(customStyleUtils);\n contextCaches[cacheGroup] = cache;\n return cache;\n }\n function style(...inputs) {\n const cache = getCache();\n let resolved = {};\n const dependents = [];\n const ordered = [];\n const [utilities, userStyle] = parseInputs(inputs);\n // check if we've seen this full set of classes before\n // if we have a cached copy, we can skip examining each utility\n const joined = utilities.join(` `);\n const cached = cache.getStyle(joined);\n if (cached) {\n return { ...cached, ...(userStyle ? userStyle : {}) };\n }\n for (const utility of utilities) {\n let styleIr = cache.getIr(utility);\n if (!styleIr && utility in customStringUtils) {\n const customStyle = style(customStringUtils[utility]);\n cache.setIr(utility, complete(customStyle));\n resolved = { ...resolved, ...customStyle };\n continue;\n }\n const parser = new ClassParser(utility, config, cache, device, platform);\n styleIr = parser.parse();\n switch (styleIr.kind) {\n case `complete`:\n resolved = { ...resolved, ...styleIr.style };\n cache.setIr(utility, styleIr);\n break;\n case `dependent`:\n dependents.push(styleIr);\n break;\n case `ordered`:\n ordered.push(styleIr);\n break;\n case `null`:\n cache.setIr(utility, styleIr);\n break;\n }\n }\n if (ordered.length > 0) {\n ordered.sort((a, b) => a.order - b.order);\n for (const orderedStyle of ordered) {\n switch (orderedStyle.styleIr.kind) {\n case `complete`:\n resolved = { ...resolved, ...orderedStyle.styleIr.style };\n break;\n case `dependent`:\n dependents.push(orderedStyle.styleIr);\n break;\n }\n }\n }\n if (dependents.length > 0) {\n for (const dependent of dependents) {\n const error = dependent.complete(resolved);\n if (error) {\n warn(error);\n }\n }\n removeOpacityHelpers(resolved);\n }\n // cache the full set of classes for future re-renders\n // it's important we cache BEFORE merging in userStyle below\n if (joined !== ``) {\n cache.setStyle(joined, resolved);\n }\n if (userStyle) {\n resolved = { ...resolved, ...userStyle };\n }\n return resolved;\n }\n function color(utils) {\n const styleObj = style(utils\n .split(/\\s+/g)\n .map((util) => util.replace(/^(bg|text|border)-/, ``))\n .map((util) => `bg-${util}`)\n .join(` `));\n return typeof styleObj.backgroundColor === `string`\n ? styleObj.backgroundColor\n : undefined;\n }\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n const tailwindFn = (strings, ...values) => {\n let str = ``;\n strings.forEach((string, i) => {\n var _a;\n str += string + ((_a = values[i]) !== null && _a !== void 0 ? _a : ``);\n });\n return style(str);\n };\n tailwindFn.style = style;\n tailwindFn.color = color;\n tailwindFn.prefixMatch = (...prefixes) => {\n const joined = prefixes.sort().join(`:`);\n const cache = getCache();\n const cached = cache.getPrefixMatch(joined);\n if (cached !== undefined) {\n return cached;\n }\n const parser = new ClassParser(`${joined}:flex`, config, cache, device, platform);\n const ir = parser.parse();\n const prefixMatches = ir.kind !== `null`;\n cache.setPrefixMatch(joined, prefixMatches);\n return prefixMatches;\n };\n tailwindFn.setWindowDimensions = (newDimensions) => {\n device.windowDimensions = newDimensions;\n cacheGroup = deriveCacheGroup();\n };\n tailwindFn.setFontScale = (newFontScale) => {\n device.fontScale = newFontScale;\n cacheGroup = deriveCacheGroup();\n };\n tailwindFn.setPixelDensity = (newPixelDensity) => {\n device.pixelDensity = newPixelDensity;\n cacheGroup = deriveCacheGroup();\n };\n tailwindFn.setColorScheme = (newColorScheme) => {\n device.colorScheme = newColorScheme;\n cacheGroup = deriveCacheGroup();\n };\n return tailwindFn;\n}\nexport default create;\nfunction withContent(config) {\n return {\n ...config,\n // prevent warnings from tailwind about not having a `content` prop\n // we don't need one because we have our own jit parser which\n // does not rely on knowing content paths to search\n content: [`_no_warnings_please`],\n };\n}\n","export const PLATFORMS = [`ios`, `android`, `windows`, `macos`, `web`];\nexport function isPlatform(x) {\n return PLATFORMS.includes(x);\n}\nexport const ORIENTATIONS = [`portrait`, `landscape`];\nexport function isOrientation(x) {\n return ORIENTATIONS.includes(x);\n}\nexport var ConfigType;\n(function (ConfigType) {\n ConfigType[\"fontSize\"] = \"fontSize\";\n ConfigType[\"lineHeight\"] = \"lineHeight\";\n})(ConfigType || (ConfigType = {}));\nexport var Unit;\n(function (Unit) {\n Unit[\"rem\"] = \"rem\";\n Unit[\"em\"] = \"em\";\n Unit[\"px\"] = \"px\";\n Unit[\"percent\"] = \"%\";\n Unit[\"vw\"] = \"vw\";\n Unit[\"vh\"] = \"vh\";\n Unit[\"none\"] = \"\";\n})(Unit || (Unit = {}));\nexport function isString(value) {\n return typeof value === `string`;\n}\nexport function isObject(value) {\n return typeof value === `object`;\n}\n","var _a;\nimport { Unit } from './types';\nexport function complete(style) {\n return { kind: `complete`, style };\n}\nexport function parseNumericValue(value, context = {}) {\n const { fractions } = context;\n if (fractions && value.includes(`/`)) {\n const [numerator = ``, denominator = ``] = value.split(`/`, 2);\n const parsedNumerator = parseNumericValue(numerator);\n const parsedDenominator = parseNumericValue(denominator);\n if (!parsedNumerator || !parsedDenominator) {\n return null;\n }\n return [parsedNumerator[0] / parsedDenominator[0], parsedDenominator[1]];\n }\n const number = parseFloat(value);\n if (Number.isNaN(number)) {\n return null;\n }\n const match = value.match(/(([a-z]{2,}|%))$/);\n if (!match) {\n return [number, Unit.none];\n }\n switch (match === null || match === void 0 ? void 0 : match[1]) {\n case `rem`:\n return [number, Unit.rem];\n case `px`:\n return [number, Unit.px];\n case `em`:\n return [number, Unit.em];\n case `%`:\n return [number, Unit.percent];\n case `vw`:\n return [number, Unit.vw];\n case `vh`:\n return [number, Unit.vh];\n default:\n return null;\n }\n}\nexport function getCompleteStyle(prop, value, context = {}) {\n const styleVal = parseStyleVal(value, context);\n return styleVal === null ? null : complete({ [prop]: styleVal });\n}\nexport function mergeStyle(prop, value, style) {\n const styleVal = parseStyleVal(value);\n if (styleVal !== null) {\n style[prop] = styleVal;\n }\n return style;\n}\nexport function getStyle(prop, value) {\n const styleVal = parseStyleVal(value);\n return styleVal === null ? null : { [prop]: styleVal };\n}\nexport function parseStyleVal(value, context = {}) {\n if (value === undefined) {\n return null;\n }\n const parsed = parseNumericValue(String(value), context);\n if (parsed) {\n return toStyleVal(...parsed, context);\n }\n else {\n return null;\n }\n}\nexport function toStyleVal(number, unit, context = {}) {\n const { isNegative, device } = context;\n switch (unit) {\n case Unit.rem:\n return number * 16 * (isNegative ? -1 : 1);\n case Unit.px:\n return number * (isNegative ? -1 : 1);\n case Unit.percent:\n return `${isNegative ? `-` : ``}${number}%`;\n case Unit.none:\n return number * (isNegative ? -1 : 1);\n case Unit.vw:\n if (!(device === null || device === void 0 ? void 0 : device.windowDimensions)) {\n warn(`\\`vw\\` CSS unit requires configuration with \\`useDeviceContext()\\``);\n return null;\n }\n return device.windowDimensions.width * (number / 100);\n case Unit.vh:\n if (!(device === null || device === void 0 ? void 0 : device.windowDimensions)) {\n warn(`\\`vh\\` CSS unit requires configuration with \\`useDeviceContext()\\``);\n return null;\n }\n return device.windowDimensions.height * (number / 100);\n default:\n return null;\n }\n}\nexport function toPx(value) {\n const parsed = parseNumericValue(value);\n if (!parsed) {\n return null;\n }\n const [number, unit] = parsed;\n switch (unit) {\n case Unit.rem:\n return number * 16;\n case Unit.px:\n return number;\n default:\n return null;\n }\n}\nconst DIR_MAP = {\n t: `Top`,\n tr: `TopRight`,\n tl: `TopLeft`,\n b: `Bottom`,\n br: `BottomRight`,\n bl: `BottomLeft`,\n l: `Left`,\n r: `Right`,\n x: `Horizontal`,\n y: `Vertical`,\n};\nexport function getDirection(string) {\n return DIR_MAP[string !== null && string !== void 0 ? string : ``] || `All`;\n}\nexport function parseAndConsumeDirection(utilityFragment) {\n let direction = `All`;\n const consumed = utilityFragment.replace(/^-(t|b|r|l|tr|tl|br|bl)(-|$)/, (_, dir) => {\n direction = getDirection(dir);\n return ``;\n });\n return [consumed, direction];\n}\nexport function parseUnconfigged(value, context = {}) {\n if (value.includes(`/`)) {\n const style = unconfiggedStyleVal(value, { ...context, fractions: true });\n if (style)\n return style;\n }\n if (value[0] === `[`) {\n value = value.slice(1, -1);\n }\n return unconfiggedStyleVal(value, context);\n}\nexport function unconfiggedStyle(prop, value, context = {}) {\n const styleVal = parseUnconfigged(value, context);\n if (styleVal === null) {\n return null;\n }\n return complete({ [prop]: styleVal });\n}\nfunction unconfiggedStyleVal(value, context = {}) {\n if (value === `px`) {\n return 1;\n }\n const parsed = parseNumericValue(value, context);\n if (!parsed) {\n return null;\n }\n let [number, unit] = parsed;\n if (context.fractions) {\n unit = Unit.percent;\n number *= 100;\n }\n // not sure if this is the right approach, but this allows arbitrary\n // non-bracket numbers, like top-73 and it INFERS the meaning to be\n // tailwind's default scale for spacing, which is 1 = 0.25rem\n if (unit === Unit.none) {\n number = number / 4;\n unit = Unit.rem;\n }\n return toStyleVal(number, unit, context);\n}\nfunction consoleWarn(...args) {\n console.warn(...args);\n}\nfunction noopWarn(..._) {\n // ¯\\_(ツ)_/¯\n}\nexport const warn = typeof process === `undefined` || ((_a = process === null || process === void 0 ? void 0 : process.env) === null || _a === void 0 ? void 0 : _a.JEST_WORKER_ID) === undefined\n ? consoleWarn\n : noopWarn;\n","import { complete } from './helpers';\nconst defaultStyles = [\n [`aspect-square`, complete({ aspectRatio: 1 })],\n [`aspect-video`, complete({ aspectRatio: 16 / 9 })],\n [`items-center`, complete({ alignItems: `center` })],\n [`items-start`, complete({ alignItems: `flex-start` })],\n [`items-end`, complete({ alignItems: `flex-end` })],\n [`items-baseline`, complete({ alignItems: `baseline` })],\n [`items-stretch`, complete({ alignItems: `stretch` })],\n [`justify-start`, complete({ justifyContent: `flex-start` })],\n [`justify-end`, complete({ justifyContent: `flex-end` })],\n [`justify-center`, complete({ justifyContent: `center` })],\n [`justify-between`, complete({ justifyContent: `space-between` })],\n [`justify-around`, complete({ justifyContent: `space-around` })],\n [`justify-evenly`, complete({ justifyContent: `space-evenly` })],\n [`content-start`, complete({ alignContent: `flex-start` })],\n [`content-end`, complete({ alignContent: `flex-end` })],\n [`content-between`, complete({ alignContent: `space-between` })],\n [`content-around`, complete({ alignContent: `space-around` })],\n [`content-stretch`, complete({ alignContent: `stretch` })],\n [`content-center`, complete({ alignContent: `center` })],\n [`self-auto`, complete({ alignSelf: `auto` })],\n [`self-start`, complete({ alignSelf: `flex-start` })],\n [`self-end`, complete({ alignSelf: `flex-end` })],\n [`self-center`, complete({ alignSelf: `center` })],\n [`self-stretch`, complete({ alignSelf: `stretch` })],\n [`self-baseline`, complete({ alignSelf: `baseline` })],\n [`direction-inherit`, complete({ direction: `inherit` })],\n [`direction-ltr`, complete({ direction: `ltr` })],\n [`direction-rtl`, complete({ direction: `rtl` })],\n [`hidden`, complete({ display: `none` })],\n [`flex`, complete({ display: `flex` })],\n [`flex-row`, complete({ flexDirection: `row` })],\n [`flex-row-reverse`, complete({ flexDirection: `row-reverse` })],\n [`flex-col`, complete({ flexDirection: `column` })],\n [`flex-col-reverse`, complete({ flexDirection: `column-reverse` })],\n [`flex-wrap`, complete({ flexWrap: `wrap` })],\n [`flex-wrap-reverse`, complete({ flexWrap: `wrap-reverse` })],\n [`flex-nowrap`, complete({ flexWrap: `nowrap` })],\n [`flex-auto`, complete({ flexGrow: 1, flexShrink: 1, flexBasis: `auto` })],\n [`flex-initial`, complete({ flexGrow: 0, flexShrink: 1, flexBasis: `auto` })],\n [`flex-none`, complete({ flexGrow: 0, flexShrink: 0, flexBasis: `auto` })],\n [`overflow-hidden`, complete({ overflow: `hidden` })],\n [`overflow-visible`, complete({ overflow: `visible` })],\n [`overflow-scroll`, complete({ overflow: `scroll` })],\n [`absolute`, complete({ position: `absolute` })],\n [`relative`, complete({ position: `relative` })],\n [`italic`, complete({ fontStyle: `italic` })],\n [`not-italic`, complete({ fontStyle: `normal` })],\n [`oldstyle-nums`, fontVariant(`oldstyle-nums`)],\n [`small-caps`, fontVariant(`small-caps`)],\n [`lining-nums`, fontVariant(`lining-nums`)],\n [`tabular-nums`, fontVariant(`tabular-nums`)],\n [`proportional-nums`, fontVariant(`proportional-nums`)],\n [`font-thin`, complete({ fontWeight: `100` })],\n [`font-100`, complete({ fontWeight: `100` })],\n [`font-extralight`, complete({ fontWeight: `200` })],\n [`font-200`, complete({ fontWeight: `200` })],\n [`font-light`, complete({ fontWeight: `300` })],\n [`font-300`, complete({ fontWeight: `300` })],\n [`font-normal`, complete({ fontWeight: `normal` })],\n [`font-400`, complete({ fontWeight: `400` })],\n [`font-medium`, complete({ fontWeight: `500` })],\n [`font-500`, complete({ fontWeight: `500` })],\n [`font-semibold`, complete({ fontWeight: `600` })],\n [`font-600`, complete({ fontWeight: `600` })],\n [`font-bold`, complete({ fontWeight: `bold` })],\n [`font-700`, complete({ fontWeight: `700` })],\n [`font-extrabold`, complete({ fontWeight: `800` })],\n [`font-800`, complete({ fontWeight: `800` })],\n [`font-black`, complete({ fontWeight: `900` })],\n [`font-900`, complete({ fontWeight: `900` })],\n [`include-font-padding`, complete({ includeFontPadding: true })],\n [`remove-font-padding`, complete({ includeFontPadding: false })],\n // not sure if RN supports `max-width: none;`, but this should be equivalent\n [`max-w-none`, complete({ maxWidth: `99999%` })],\n [`text-left`, complete({ textAlign: `left` })],\n [`text-center`, complete({ textAlign: `center` })],\n [`text-right`, complete({ textAlign: `right` })],\n [`text-justify`, complete({ textAlign: `justify` })],\n [`text-auto`, complete({ textAlign: `auto` })],\n [`underline`, complete({ textDecorationLine: `underline` })],\n [`line-through`, complete({ textDecorationLine: `line-through` })],\n [`no-underline`, complete({ textDecorationLine: `none` })],\n [`uppercase`, complete({ textTransform: `uppercase` })],\n [`lowercase`, complete({ textTransform: `lowercase` })],\n [`capitalize`, complete({ textTransform: `capitalize` })],\n [`normal-case`, complete({ textTransform: `none` })],\n [`w-auto`, complete({ width: `auto` })],\n [`h-auto`, complete({ height: `auto` })],\n // default box-shadow implementations\n [\n `shadow-sm`,\n complete({\n shadowOffset: { width: 1, height: 1 },\n shadowColor: `#000`,\n shadowRadius: 1,\n shadowOpacity: 0.025,\n elevation: 1,\n }),\n ],\n [\n `shadow`,\n complete({\n shadowOffset: { width: 1, height: 1 },\n shadowColor: `#000`,\n shadowRadius: 1,\n shadowOpacity: 0.075,\n elevation: 2,\n }),\n ],\n [\n `shadow-md`,\n complete({\n shadowOffset: { width: 1, height: 1 },\n shadowColor: `#000`,\n shadowRadius: 3,\n shadowOpacity: 0.125,\n elevation: 3,\n }),\n ],\n [\n `shadow-lg`,\n complete({\n shadowOffset: { width: 1, height: 1 },\n shadowColor: `#000`,\n shadowOpacity: 0.15,\n shadowRadius: 8,\n elevation: 8,\n }),\n ],\n [\n `shadow-xl`,\n complete({\n shadowOffset: { width: 1, height: 1 },\n shadowColor: `#000`,\n shadowOpacity: 0.19,\n shadowRadius: 20,\n elevation: 12,\n }),\n ],\n [\n `shadow-2xl`,\n complete({\n shadowOffset: { width: 1, height: 1 },\n shadowColor: `#000`,\n shadowOpacity: 0.25,\n shadowRadius: 30,\n elevation: 16,\n }),\n ],\n [\n `shadow-none`,\n complete({\n shadowOffset: { width: 0, height: 0 },\n shadowColor: `#000`,\n shadowRadius: 0,\n shadowOpacity: 0,\n elevation: 0,\n }),\n ],\n];\nexport default defaultStyles;\nfunction fontVariant(type) {\n return {\n kind: `dependent`,\n complete(style) {\n if (!style.fontVariant || !Array.isArray(style.fontVariant)) {\n style.fontVariant = [];\n }\n style.fontVariant.push(type);\n },\n };\n}\n","import defaultStyles from './styles';\nexport default class Cache {\n constructor(customStyles) {\n this.ir = new Map(defaultStyles);\n this.styles = new Map();\n this.prefixes = new Map();\n this.ir = new Map([...defaultStyles, ...(customStyles !== null && customStyles !== void 0 ? customStyles : [])]);\n }\n getStyle(key) {\n return this.styles.get(key);\n }\n setStyle(key, style) {\n this.styles.set(key, style);\n }\n getIr(key) {\n return this.ir.get(key);\n }\n setIr(key, ir) {\n this.ir.set(key, ir);\n }\n getPrefixMatch(key) {\n return this.prefixes.get(key);\n }\n setPrefixMatch(key, value) {\n this.prefixes.set(key, value);\n }\n}\n","import { Unit } from '../types';\nimport { getCompleteStyle, complete, getStyle, mergeStyle, parseNumericValue, unconfiggedStyle, } from '../helpers';\nexport default function fontSize(value, config, context = {}) {\n const configValue = config === null || config === void 0 ? void 0 : config[value];\n if (!configValue) {\n return unconfiggedStyle(`fontSize`, value, context);\n }\n if (typeof configValue === `string`) {\n return getCompleteStyle(`fontSize`, configValue);\n }\n let style = {};\n const [fontSize, rest] = configValue;\n const fontSizeStyle = getStyle(`fontSize`, fontSize);\n if (fontSizeStyle) {\n style = fontSizeStyle;\n }\n if (typeof rest === `string`) {\n return complete(mergeStyle(`lineHeight`, calculateLineHeight(rest, style), style));\n }\n const { lineHeight, letterSpacing } = rest;\n if (lineHeight) {\n mergeStyle(`lineHeight`, calculateLineHeight(lineHeight, style), style);\n }\n if (letterSpacing) {\n mergeStyle(`letterSpacing`, letterSpacing, style);\n }\n return complete(style);\n}\n// calculates line-height for relative units\nfunction calculateLineHeight(lineHeight, style) {\n const parsed = parseNumericValue(lineHeight);\n if (parsed) {\n const [number, unit] = parsed;\n if ((unit === Unit.none || unit === Unit.em) && typeof style.fontSize === `number`) {\n return style.fontSize * number;\n }\n }\n return lineHeight;\n}\n","import { Unit } from '../types';\nimport { parseNumericValue, complete, toStyleVal } from '../helpers';\nexport default function lineHeight(value, config) {\n var _a;\n const parseValue = (_a = config === null || config === void 0 ? void 0 : config[value]) !== null && _a !== void 0 ? _a : (value.startsWith(`[`) ? value.slice(1, -1) : value);\n const parsed = parseNumericValue(parseValue);\n if (!parsed) {\n return null;\n }\n const [number, unit] = parsed;\n if (unit === Unit.none) {\n // we have a relative line-height like `2` for `leading-loose`\n return {\n kind: `dependent`,\n complete(style) {\n if (typeof style.fontSize !== `number`) {\n return `relative line-height utilities require that font-size be set`;\n }\n style.lineHeight = style.fontSize * number;\n },\n };\n }\n const styleVal = toStyleVal(number, unit);\n return styleVal !== null ? complete({ lineHeight: styleVal }) : null;\n}\n","import { Unit } from '../types';\nimport { parseNumericValue, parseUnconfigged, toStyleVal } from '../helpers';\nexport default function spacing(type, direction, isNegative, value, config) {\n let numericValue = ``;\n if (value[0] === `[`) {\n numericValue = value.slice(1, -1);\n }\n else {\n const configValue = config === null || config === void 0 ? void 0 : config[value];\n if (!configValue) {\n const unconfigged = parseUnconfigged(value);\n if (unconfigged && typeof unconfigged === `number`) {\n return spacingStyle(unconfigged, Unit.px, direction, type);\n }\n return null;\n }\n else {\n numericValue = configValue;\n }\n }\n if (numericValue === `auto`) {\n return expand(direction, type, `auto`);\n }\n const parsed = parseNumericValue(numericValue);\n if (!parsed) {\n return null;\n }\n let [number, unit] = parsed;\n if (isNegative) {\n number = -number;\n }\n return spacingStyle(number, unit, direction, type);\n}\nfunction spacingStyle(number, unit, direction, type) {\n const pixels = toStyleVal(number, unit);\n if (pixels === null) {\n return null;\n }\n return expand(direction, type, pixels);\n}\nfunction expand(direction, type, value) {\n switch (direction) {\n case `All`:\n return {\n kind: `complete`,\n style: {\n [`${type}Top`]: value,\n [`${type}Right`]: value,\n [`${type}Bottom`]: value,\n [`${type}Left`]: value,\n },\n };\n case `Bottom`:\n case `Top`:\n case `Left`:\n case `Right`:\n return {\n kind: `complete`,\n style: {\n [`${type}${direction}`]: value,\n },\n };\n case `Vertical`:\n return {\n kind: `complete`,\n style: {\n [`${type}Top`]: value,\n [`${type}Bottom`]: value,\n },\n };\n case `Horizontal`:\n return {\n kind: `complete`,\n style: {\n [`${type}Left`]: value,\n [`${type}Right`]: value,\n },\n };\n default:\n return null;\n }\n}\n","import { toPx, warn } from './helpers';\nexport default function screens(input) {\n if (!input) {\n return {};\n }\n const screenData = Object.entries(input).reduce((acc, [screen, value]) => {\n const data = [0, Infinity, 0];\n const values = typeof value === `string` ? { min: value } : value;\n const minPx = values.min ? toPx(values.min) : 0;\n if (minPx === null) {\n warn(`invalid screen config value: ${screen}->min: ${values.min}`);\n }\n else {\n data[0] = minPx;\n }\n const maxPx = values.max ? toPx(values.max) : Infinity;\n if (maxPx === null) {\n warn(`invalid screen config value: ${screen}->max: ${values.max}`);\n }\n else {\n data[1] = maxPx;\n }\n acc[screen] = data;\n return acc;\n }, {});\n const values = Object.values(screenData);\n values.sort((a, b) => {\n const [minA, maxA] = a;\n const [minB, maxB] = b;\n if (maxA === Infinity || maxB === Infinity) {\n return minA - minB;\n }\n return maxA - maxB;\n });\n let order = 0;\n values.forEach((value) => (value[2] = order++));\n return screenData;\n}\n","import { complete } from '../helpers';\nexport default function fontFamily(value, config) {\n const configValue = config === null || config === void 0 ? void 0 : config[value];\n if (!configValue) {\n return null;\n }\n if (typeof configValue === `string`) {\n return complete({ fontFamily: configValue });\n }\n const firstFamily = configValue[0];\n if (!firstFamily) {\n return null;\n }\n return complete({ fontFamily: firstFamily });\n}\n","import { isObject, isString } from '../types';\nimport { warn, complete } from '../helpers';\nexport function color(type, value, config) {\n if (!config) {\n return null;\n }\n // support opacity shorthand: `bg-red-200/50`\n let shorthandOpacity = undefined;\n if (value.includes(`/`)) {\n [value = ``, shorthandOpacity] = value.split(`/`, 2);\n }\n let color = ``;\n // for arbitrary support: `bg-[#eaeaea]`, `text-[rgba(1, 1, 1, 0.5)]`\n if (value.startsWith(`[#`) || value.startsWith(`[rgb`)) {\n color = value.slice(1, -1);\n // search for color in config\n }\n else {\n color = findColorInConfigRecursive(value, config);\n }\n if (!color) {\n return null;\n }\n if (shorthandOpacity) {\n const opacity = Number(shorthandOpacity);\n if (!Number.isNaN(opacity)) {\n color = addOpacity(color, opacity / 100);\n return complete({ [STYLE_PROPS[type].color]: color });\n }\n }\n // return a dependent style to support merging of classes\n // like `bg-red-800 bg-opacity-75`\n return {\n kind: `dependent`,\n complete(style) {\n const opacityProp = STYLE_PROPS[type].opacity;\n const opacity = style[opacityProp];\n if (typeof opacity === `number`) {\n color = addOpacity(color, opacity);\n }\n style[STYLE_PROPS[type].color] = color;\n },\n };\n}\nexport function colorOpacity(type, value) {\n const percentage = parseInt(value, 10);\n if (Number.isNaN(percentage)) {\n return null;\n }\n const opacity = percentage / 100;\n const style = { [STYLE_PROPS[type].opacity]: opacity };\n return { kind: `complete`, style };\n}\nfunction addOpacity(color, opacity) {\n if (color.startsWith(`#`)) {\n color = hexToRgba(color);\n }\n else if (color.startsWith(`rgb(`)) {\n color = color.replace(/^rgb\\(/, `rgba(`).replace(/\\)$/, `, 1)`);\n }\n // @TODO: support hls/hlsa if anyone opens an issue...\n return color.replace(/, ?\\d*\\.?(\\d+)\\)$/, `, ${opacity})`);\n}\nexport function removeOpacityHelpers(style) {\n for (const key in style) {\n if (key.startsWith(`__opacity_`)) {\n delete style[key];\n }\n }\n}\nconst STYLE_PROPS = {\n bg: { opacity: `__opacity_bg`, color: `backgroundColor` },\n text: { opacity: `__opacity_text`, color: `color` },\n border: { opacity: `__opacity_border`, color: `borderColor` },\n borderTop: { opacity: `__opacity_border`, color: `borderTopColor` },\n borderBottom: { opacity: `__opacity_border`, color: `borderBottomColor` },\n borderLeft: { opacity: `__opacity_border`, color: `borderLeftColor` },\n borderRight: { opacity: `__opacity_border`, color: `borderRightColor` },\n shadow: { opacity: `__opacity_shadow`, color: `shadowColor` },\n tint: { opacity: `__opacity_tint`, color: `tintColor` },\n};\nfunction hexToRgba(hex) {\n const orig = hex;\n hex = hex.replace(MATCH_SHORT_HEX, (_, r, g, b) => r + r + g + g + b + b);\n const result = MATCH_FULL_HEX.exec(hex);\n if (!result) {\n warn(`invalid config hex color value: ${orig}`);\n return `rgba(0, 0, 0, 1)`;\n }\n const r = parseInt(result[1], 16);\n const g = parseInt(result[2], 16);\n const b = parseInt(result[3], 16);\n return `rgba(${r}, ${g}, ${b}, 1)`;\n}\nfunction findColorInConfigRecursive(colorName, config) {\n const configColor = config[colorName];\n // the color is found at the current config level\n if (isString(configColor)) {\n return configColor;\n }\n else if (isObject(configColor) && isString(configColor.DEFAULT)) {\n return configColor.DEFAULT;\n }\n // search for a matching sub-string at the current config level\n let [colorNameStart = ``, ...colorNameRest] = colorName.split(`-`);\n while (colorNameStart !== colorName) {\n const subConfig = config[colorNameStart];\n if (isObject(subConfig)) {\n return findColorInConfigRecursive(colorNameRest.join(`-`), subConfig);\n }\n else if (colorNameRest.length === 0) {\n return ``;\n }\n colorNameStart = `${colorNameStart}-${colorNameRest.shift()}`;\n }\n return ``;\n}\nconst MATCH_SHORT_HEX = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\nconst MATCH_FULL_HEX = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i;\n","import { parseAndConsumeDirection, complete, getCompleteStyle, unconfiggedStyle, } from '../helpers';\nimport { color } from './color';\nexport function border(value, theme) {\n let [rest, direction] = parseAndConsumeDirection(value);\n const widthUtilityMatch = rest.match(/^(-?(\\d)+)?$/);\n if (widthUtilityMatch) {\n return borderWidth(rest, direction, theme === null || theme === void 0 ? void 0 : theme.borderWidth);\n }\n rest = rest.replace(/^-/, ``);\n if ([`dashed`, `solid`, `dotted`].includes(rest)) {\n return complete({ borderStyle: rest });\n }\n let colorType = `border`;\n switch (direction) {\n case `Bottom`:\n colorType = `borderBottom`;\n break;\n case `Top`:\n colorType = `borderTop`;\n break;\n case `Left`:\n colorType = `borderLeft`;\n break;\n case `Right`:\n colorType = `borderRight`;\n break;\n }\n const colorStyle = color(colorType, rest, theme === null || theme === void 0 ? void 0 : theme.borderColor);\n if (colorStyle) {\n return colorStyle;\n }\n // Finally Handling Arbitrary Width Case\n // border-[20px] or border-[2.5rem]\n const prop = `border${direction === `All` ? `` : direction}Width`;\n rest = rest.replace(/^-/, ``);\n const numericValue = rest.slice(1, -1);\n const arbitraryWidth = unconfiggedStyle(prop, numericValue);\n // can't use % for border-radius in RN\n if (typeof (arbitraryWidth === null || arbitraryWidth === void 0 ? void 0 : arbitraryWidth.style[prop]) !== `number`) {\n return null;\n }\n return arbitraryWidth;\n}\nfunction borderWidth(value, direction, config) {\n if (!config) {\n return null;\n }\n value = value.replace(/^-/, ``);\n const key = value === `` ? `DEFAULT` : value;\n const configValue = config[key];\n if (configValue === undefined) {\n return null;\n }\n const prop = `border${direction === `All` ? `` : direction}Width`;\n return getCompleteStyle(prop, configValue);\n}\nexport function borderRadius(value, config) {\n if (!config) {\n return null;\n }\n let [rest, direction] = parseAndConsumeDirection(value);\n rest = rest.replace(/^-/, ``);\n if (rest === ``) {\n rest = `DEFAULT`;\n }\n const prop = `border${direction === `All` ? `` : direction}Radius`;\n const configValue = config[rest];\n if (configValue) {\n return expand(getCompleteStyle(prop, configValue));\n }\n const arbitrary = unconfiggedStyle(prop, rest);\n // can't use % for border-radius in RN\n if (typeof (arbitrary === null || arbitrary === void 0 ? void 0 : arbitrary.style[prop]) !== `number`) {\n return null;\n }\n return expand(arbitrary);\n}\n// RN only supports `borderRadius` + `border(top|bottom)(left|right)Radius`\nfunction expand(ir) {\n if ((ir === null || ir === void 0 ? void 0 : ir.kind) !== `complete`)\n return ir;\n const top = ir.style.borderTopRadius;\n if (top !== undefined) {\n ir.style.borderTopLeftRadius = top;\n ir.style.borderTopRightRadius = top;\n delete ir.style.borderTopRadius;\n }\n const bottom = ir.style.borderBottomRadius;\n if (bottom !== undefined) {\n ir.style.borderBottomLeftRadius = bottom;\n ir.style.borderBottomRightRadius = bottom;\n delete ir.style.borderBottomRadius;\n }\n const left = ir.style.borderLeftRadius;\n if (left !== undefined) {\n ir.style.borderBottomLeftRadius = left;\n ir.style.borderTopLeftRadius = left;\n delete ir.style.borderLeftRadius;\n }\n const right = ir.style.borderRightRadius;\n if (right !== undefined) {\n ir.style.borderBottomRightRadius = right;\n ir.style.borderTopRightRadius = right;\n delete ir.style.borderRightRadius;\n }\n return ir;\n}\n","import { complete, parseStyleVal, parseUnconfigged } from '../helpers';\nexport function inset(type, value, isNegative, config) {\n let insetDir = null;\n if (type === `inset`) {\n value = value.replace(/^(x|y)-/, (_, dir) => {\n insetDir = dir === `x` ? `x` : `y`;\n return ``;\n });\n }\n const configValue = config === null || config === void 0 ? void 0 : config[value];\n if (configValue) {\n const styleVal = parseStyleVal(configValue, { isNegative });\n if (styleVal !== null) {\n return insetStyle(type, insetDir, styleVal);\n }\n }\n const unconfigged = parseUnconfigged(value, { isNegative });\n if (unconfigged !== null) {\n return insetStyle(type, insetDir, unconfigged);\n }\n return null;\n}\nfunction insetStyle(type, dir, styleVal) {\n if (type !== `inset`) {\n return complete({ [type]: styleVal });\n }\n switch (dir) {\n case null:\n return complete({\n top: styleVal,\n left: styleVal,\n right: styleVal,\n bottom: styleVal,\n });\n case `y`:\n return complete({\n top: styleVal,\n bottom: styleVal,\n });\n case `x`:\n return complete({\n left: styleVal,\n right: styleVal,\n });\n }\n}\n","import { complete, parseStyleVal } from '../helpers';\nexport function flexGrowShrink(type, value, config) {\n var _a;\n value = value.replace(/^-/, ``);\n const configKey = value === `` ? `DEFAULT` : value;\n const numericValue = Number((_a = config === null || config === void 0 ? void 0 : config[configKey]) !== null && _a !== void 0 ? _a : value);\n if (!Number.isNaN(numericValue)) {\n return complete({ [`flex${type}`]: numericValue });\n }\n return null;\n}\nexport function flex(value, config) {\n var _a, _b;\n value = (config === null || config === void 0 ? void 0 : config[value]) || value;\n if ([`min-content`, `revert`, `unset`].includes(value)) {\n // unsupported\n return null;\n }\n // @see https://developer.mozilla.org/en-US/docs/Web/CSS/flex\n // MDN: One value, unitless number: flex-grow flex-basis is then equal to 0.\n if (value.match(/^\\d+(\\.\\d+)?$/)) {\n return complete({\n flexGrow: Number(value),\n flexBasis: `0%`,\n });\n }\n // MDN: Two values (both integers): flex-grow | flex-basis\n let match = value.match(/^(\\d+)\\s+(\\d+)$/);\n if (match) {\n return complete({\n flexGrow: Number(match[1]),\n flexShrink: Number(match[2]),\n });\n }\n // MDN: Two values: flex-grow | flex-basis\n match = value.match(/^(\\d+)\\s+([^ ]+)$/);\n if (match) {\n const flexBasis = parseStyleVal((_a = match[2]) !== null && _a !== void 0 ? _a : ``);\n if (!flexBasis) {\n return null;\n }\n return complete({\n flexGrow: Number(match[1]),\n flexBasis,\n });\n }\n // MDN: Three values: flex-grow | flex-shrink | flex-basis\n match = value.match(/^(\\d+)\\s+(\\d+)\\s+(.+)$/);\n if (match) {\n const flexBasis = parseStyleVal((_b = match[3]) !== null && _b !== void 0 ? _b : ``);\n if (!flexBasis) {\n return null;\n }\n return complete({\n flexGrow: Number(match[1]),\n flexShrink: Number(match[2]),\n flexBasis,\n });\n }\n return null;\n}\n","import { getCompleteStyle, complete, parseStyleVal, unconfiggedStyle } from '../helpers';\nexport function widthHeight(type, value, context = {}, config) {\n const configValue = config === null || config === void 0 ? void 0 : config[value];\n if (configValue !== undefined) {\n return getCompleteStyle(type, configValue, context);\n }\n return unconfiggedStyle(type, value, context);\n}\nexport function minMaxWidthHeight(type, value, context = {}, config) {\n const styleVal = parseStyleVal(config === null || config === void 0 ? void 0 : config[value], context);\n if (styleVal) {\n return complete({ [type]: styleVal });\n }\n if (value === `screen`) {\n value = type.includes(`Width`) ? `100vw` : `100vh`;\n }\n return unconfiggedStyle(type, value, context);\n}\n","import { Unit } from '../types';\nimport { parseNumericValue, complete, toStyleVal, unconfiggedStyle, warn, } from '../helpers';\nexport function letterSpacing(value, isNegative, config) {\n const configValue = config === null || config === void 0 ? void 0 : config[value];\n if (configValue) {\n const parsed = parseNumericValue(configValue, { isNegative });\n if (!parsed) {\n return null;\n }\n const [number, unit] = parsed;\n if (unit === Unit.em) {\n return relativeLetterSpacing(number);\n }\n // @TODO, if we get a percentage based config value, theoretically we could\n // make a font-size dependent style as well, wait for someone to raise an issue\n if (unit === Unit.percent) {\n warn(`percentage-based letter-spacing configuration currently unsupported, switch to \\`em\\`s, or open an issue if you'd like to see support added.`);\n return null;\n }\n const styleVal = toStyleVal(number, unit, { isNegative });\n if (styleVal !== null) {\n return complete({ letterSpacing: styleVal });\n }\n return null;\n }\n return unconfiggedStyle(`letterSpacing`, value, { isNegative });\n}\nfunction relativeLetterSpacing(ems) {\n return {\n kind: `dependent`,\n complete(style) {\n const fontSize = style.fontSize;\n if (typeof fontSize !== `number` || Number.isNaN(fontSize)) {\n return `tracking-X relative letter spacing classes require font-size to be set`;\n }\n style.letterSpacing = Math.round((ems * fontSize + Number.EPSILON) * 100) / 100;\n },\n };\n}\n","import { parseNumericValue, complete } from '../helpers';\nexport function opacity(value, config) {\n const configValue = config === null || config === void 0 ? void 0 : config[value];\n if (configValue) {\n const parsedConfig = parseNumericValue(String(configValue));\n if (parsedConfig) {\n return complete({ opacity: parsedConfig[0] });\n }\n }\n const parsedArbitrary = parseNumericValue(value);\n if (parsedArbitrary) {\n return complete({ opacity: parsedArbitrary[0] / 100 });\n }\n return null;\n}\n","import { parseUnconfigged } from '../helpers';\nexport function shadowOpacity(value) {\n const percentage = parseInt(value, 10);\n if (Number.isNaN(percentage)) {\n return null;\n }\n return {\n kind: `complete`,\n style: { shadowOpacity: percentage / 100 },\n };\n}\nexport function shadowOffset(value) {\n if (value.includes(`/`)) {\n const [widthStr = ``, heightStr = ``] = value.split(`/`, 2);\n const width = offsetValue(widthStr);\n const height = offsetValue(heightStr);\n if (width === null || height === null) {\n return null;\n }\n return {\n kind: `complete`,\n style: {\n shadowOffset: {\n width,\n height,\n },\n },\n };\n }\n const number = offsetValue(value);\n if (number === null) {\n return null;\n }\n return {\n kind: `complete`,\n style: {\n shadowOffset: {\n width: number,\n height: number,\n },\n },\n };\n}\nfunction offsetValue(value) {\n const parsed = parseUnconfigged(value);\n return typeof parsed === `number` ? parsed : null;\n}\n","import fontSize from './resolve/font-size';\nimport lineHeight from './resolve/line-height';\nimport spacing from './resolve/spacing';\nimport screens from './screens';\nimport { isOrientation, isPlatform, } from './types';\nimport fontFamily from './resolve/font-family';\nimport { color, colorOpacity } from './resolve/color';\nimport { border, borderRadius } from './resolve/borders';\nimport { getCompleteStyle, getDirection, unconfiggedStyle, warn, complete, parseNumericValue, } from './helpers';\nimport { inset } from './resolve/inset';\nimport { flexGrowShrink, flex } from './resolve/flex';\nimport { widthHeight, minMaxWidthHeight } from './resolve/width-height';\nimport { letterSpacing } from './resolve/letter-spacing';\nimport { opacity } from './resolve/opacity';\nimport { shadowOpacity, shadowOffset } from './resolve/shadow';\nexport default class ClassParser {\n constructor(input, config = {}, cache, device, platform) {\n var _a, _b, _c, _d, _e, _f;\n this.config = config;\n this.cache = cache;\n this.position = 0;\n this.isNull = false;\n this.isNegative = false;\n this.context = {};\n this.context.device = device;\n const parts = input.trim().split(`:`);\n let prefixes = [];\n if (parts.length === 1) {\n this.string = input;\n }\n else {\n this.string = (_a = parts.pop()) !== null && _a !== void 0 ? _a : ``;\n prefixes = parts;\n }\n this.char = this.string[0];\n const widthBreakpoints = screens((_b = this.config.theme) === null || _b === void 0 ? void 0 : _b.screens);\n // loop through the prefixes ONE time, extracting useful info\n for (const prefix of prefixes) {\n if (widthBreakpoints[prefix]) {\n const breakpointOrder = (_c = widthBreakpoints[prefix]) === null || _c === void 0 ? void 0 : _c[2];\n if (breakpointOrder !== undefined) {\n this.order = ((_d = this.order) !== null && _d !== void 0 ? _d : 0) + breakpointOrder;\n }\n const windowWidth = (_e = device.windowDimensions) === null || _e === void 0 ? void 0 : _e.width;\n if (windowWidth) {\n const [min, max] = (_f = widthBreakpoints[prefix]) !== null && _f !== void 0 ? _f : [0, 0];\n if (windowWidth <= min || windowWidth > max) {\n // breakpoint does not match\n this.isNull = true;\n }\n }\n else {\n this.isNull = true;\n }\n }\n else if (isPlatform(prefix)) {\n this.isNull = prefix !== platform;\n }\n else if (isOrientation(prefix)) {\n if (!device.windowDimensions) {\n this.isNull = true;\n }\n else {\n const deviceOrientation = device.windowDimensions.width > device.windowDimensions.height\n ? `landscape`\n : `portrait`;\n if (deviceOrientation !== prefix) {\n this.isNull = true;\n }\n else {\n this.incrementOrder();\n }\n }\n }\n else if (prefix === `retina`) {\n if (device.pixelDensity === 2) {\n this.incrementOrder();\n }\n else {\n this.isNull = true;\n }\n }\n else if (prefix === `dark`) {\n if (device.colorScheme !== `dark`) {\n this.isNull = true;\n }\n else {\n this.incrementOrder();\n }\n }\n else if (!this.handlePossibleArbitraryBreakpointPrefix(prefix)) {\n this.isNull = true;\n }\n }\n }\n parse() {\n if (this.isNull) {\n return { kind: `null` };\n }\n // resolve things like ios:hidden, after prefix removed\n const cached = this.cache.getIr(this.rest);\n if (cached) {\n return cached;\n }\n this.parseIsNegative();\n const ir = this.parseUtility();\n if (!ir) {\n return { kind: `null` };\n }\n if (this.order !== undefined) {\n return { kind: `ordered`, order: this.order, styleIr: ir };\n }\n return ir;\n }\n parseUtility() {\n var _a, _b, _c, _d, _e;\n const theme = this.config.theme;\n let style = null;\n switch (this.char) {\n case `m`:\n case `p`: {\n const match = this.peekSlice(1, 3).match(/^(t|b|r|l|x|y)?-/);\n if (match) {\n const prop = this.char === `m` ? `margin` : `padding`;\n this.advance(((_b = (_a = match[0]) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) + 1);\n const spacingDirection = getDirection(match[1]);\n const style = spacing(prop, spacingDirection, this.isNegative, this.rest, (_c = this.config.theme) === null || _c === void 0 ? void 0 : _c[prop]);\n if (style)\n return style;\n }\n }\n }\n if (this.consumePeeked(`h-`)) {\n style = widthHeight(`height`, this.rest, this.context, theme === null || theme === void 0 ? void 0 : theme.height);\n if (style)\n return style;\n }\n if (this.consumePeeked(`w-`)) {\n style = widthHeight(`width`, this.rest, this.context, theme === null || theme === void 0 ? void 0 : theme.width);\n if (style)\n return style;\n }\n if (this.consumePeeked(`min-w-`)) {\n style = minMaxWidthHeight(`minWidth`, this.rest, this.context, theme === null || theme === void 0 ? void 0 : theme.minWidth);\n if (style)\n return style;\n }\n if (this.consumePeeked(`min-h-`)) {\n style = minMaxWidthHeight(`minHeight`, this.rest, this.context, theme === null || theme === void 0 ? void 0 : theme.minHeight);\n if (style)\n return style;\n }\n if (this.consumePeeked(`max-w-`)) {\n style = minMaxWidthHeight(`maxWidth`, this.rest, this.context, theme === null || theme === void 0 ? void 0 : theme.maxWidth);\n if (style)\n return style;\n }\n if (this.consumePeeked(`max-h-`)) {\n style = minMaxWidthHeight(`maxHeight`, this.rest, this.context, theme === null || theme === void 0 ? void 0 : theme.maxHeight);\n if (style)\n return style;\n }\n if (this.consumePeeked(`leading-`)) {\n style = lineHeight(this.rest, theme === null || theme === void 0 ? void 0 : theme.lineHeight);\n if (style)\n return style;\n }\n if (this.consumePeeked(`text-`)) {\n style = fontSize(this.rest, theme === null || theme === void 0 ? void 0 : theme.fontSize, this.context);\n if (style)\n return style;\n style = color(`text`, this.rest, theme === null || theme === void 0 ? void 0 : theme.textColor);\n if (style)\n return style;\n if (this.consumePeeked(`opacity-`)) {\n style = colorOpacity(`text`, this.rest);\n if (style)\n return style;\n }\n }\n if (this.consumePeeked(`font-`)) {\n style = fontFamily(this.rest, theme === null || theme === void 0 ? void 0 : theme.fontFamily);\n if (style)\n return style;\n }\n if (this.consumePeeked(`aspect-`)) {\n if (this.consumePeeked(`ratio-`)) {\n warn(`\\`aspect-ratio-{ratio}\\` is deprecated, use \\`aspect-{ratio}\\` instead`);\n }\n style = getCompleteStyle(`aspectRatio`, this.rest, { fractions: true });\n if (style)\n return style;\n }\n if (this.consumePeeked(`tint-`)) {\n style = color(`tint`, this.rest, theme === null || theme === void 0 ? void 0 : theme.colors);\n if (style)\n return style;\n }\n if (this.consumePeeked(`bg-`)) {\n style = color(`bg`, this.rest, theme === null || theme === void 0 ? void 0 : theme.backgroundColor);\n if (style)\n return style;\n if (this.consumePeeked(`opacity-`)) {\n style = colorOpacity(`bg`, this.rest);\n if (style)\n return style;\n }\n }\n if (this.consumePeeked(`border`)) {\n style = border(this.rest, theme);\n if (style)\n return style;\n if (this.consumePeeked(`-opacity-`)) {\n style = colorOpacity(`border`, this.rest);\n if (style)\n return style;\n }\n }\n if (this.consumePeeked(`rounded`)) {\n style = borderRadius(this.rest, theme === null || theme === void 0 ? void 0 : theme.borderRadius);\n if (style)\n return style;\n }\n if (this.consumePeeked(`bottom-`)) {\n style = inset(`bottom`, this.rest, this.isNegative, theme === null || theme === void 0 ? void 0 : theme.inset);\n if (style)\n return style;\n }\n if (this.consumePeeked(`top-`)) {\n style = inset(`top`, this.rest, this.isNegative, theme === null || theme === void 0 ? void 0 : theme.inset);\n if (style)\n return style;\n }\n if (this.consumePeeked(`left-`)) {\n style = inset(`left`, this.rest, this.isNegative, theme === null || theme === void 0 ? void 0 : theme.inset);\n if (style)\n return style;\n }\n if (this.consumePeeked(`right-`)) {\n style = inset(`right`, this.rest, this.isNegative, theme === null || theme === void 0 ? void 0 : theme.inset);\n if (style)\n return style;\n }\n if (this.consumePeeked(`inset-`)) {\n style = inset(`inset`, this.rest, this.isNegative, theme === null || theme === void 0 ? void 0 : theme.inset);\n if (style)\n return style;\n }\n if (this.consumePeeked(`flex-`)) {\n if (this.consumePeeked(`grow`)) {\n style = flexGrowShrink(`Grow`, this.rest, theme === null || theme === void 0 ? void 0 : theme.flexGrow);\n }\n else if (this.consumePeeked(`shrink`)) {\n style = flexGrowShrink(`Shrink`, this.rest, theme === null || theme === void 0 ? void 0 : theme.flexShrink);\n }\n else {\n style = flex(this.rest, theme === null || theme === void 0 ? void 0 : theme.flex);\n }\n if (style)\n return style;\n }\n if (this.consumePeeked(`grow`)) {\n style = flexGrowShrink(`Grow`, this.rest, theme === null || theme === void 0 ? void 0 : theme.flexGrow);\n if (style)\n return style;\n }\n if (this.consumePeeked(`shrink`)) {\n style = flexGrowShrink(`Shrink`, this.rest, theme === null || theme === void 0 ? void 0 : theme.flexShrink);\n if (style)\n return style;\n }\n if (this.consumePeeked(`shadow-color-opacity-`)) {\n style = colorOpacity(`shadow`, this.rest);\n if (style)\n return style;\n }\n if (this.consumePeeked(`shadow-opacity-`)) {\n style = shadowOpacity(this.rest);\n if (style)\n return style;\n }\n if (this.consumePeeked(`shadow-offset-`)) {\n style = shadowOffset(this.rest);\n if (style)\n return style;\n }\n if (this.consumePeeked(`shadow-radius-`)) {\n style = unconfiggedStyle(`shadowRadius`, this.rest);\n if (style)\n return style;\n }\n if (this.consumePeeked(`shadow-`)) {\n style = color(`shadow`, this.rest, theme === null || theme === void 0 ? void 0 : theme.colors);\n if (style)\n return style;\n }\n if (this.consumePeeked(`elevation-`)) {\n const elevation = parseInt(this.rest, 10);\n if (!Number.isNaN(elevation)) {\n return complete({ elevation });\n }\n }\n if (this.consumePeeked(`opacity-`)) {\n style = opacity(this.rest, theme === null || theme === void 0 ? void 0 : theme.opacity);\n if (style)\n return style;\n }\n if (this.consumePeeked(`tracking-`)) {\n style = letterSpacing(this.rest, this.isNegative, theme === null || theme === void 0 ? void 0 : theme.letterSpacing);\n if (style)\n return style;\n }\n if (this.consumePeeked(`z-`)) {\n const zIndex = Number((_e = (_d = theme === null || theme === void 0 ? void 0 : theme.zIndex) === null || _d === void 0 ? void 0 : _d[this.rest]) !== null && _e !== void 0 ? _e : this.rest);\n if (!Number.isNaN(zIndex)) {\n return complete({ zIndex });\n }\n }\n warn(`\\`${this.rest}\\` unknown or invalid utility`);\n return null;\n }\n handlePossibleArbitraryBreakpointPrefix(prefix) {\n var _a;\n // save the expense of running the regex with a quick sniff test\n if (prefix[0] !== `m`)\n return false;\n const match = prefix.match(/^(min|max)-(w|h)-\\[([^\\]]+)\\]$/);\n if (!match)\n return false;\n if (!((_a = this.context.device) === null || _a === void 0 ? void 0 : _a.windowDimensions)) {\n this.isNull = true;\n return true;\n }\n const windowDims = this.context.device.windowDimensions;\n const [, type = ``, dir = ``, amount = ``] = match;\n const checkDimension = dir === `w` ? windowDims.width : windowDims.height;\n const parsedAmount = parseNumericValue(amount, this.context);\n if (parsedAmount === null) {\n this.isNull = true;\n return true;\n }\n const [bound, unit] = parsedAmount;\n if (unit !== `px`) {\n this.isNull = true;\n }\n if (type === `min` ? checkDimension >= bound : checkDimension <= bound) {\n this.incrementOrder();\n }\n else {\n this.isNull = true;\n }\n return true;\n }\n advance(amount = 1) {\n this.position += amount;\n this.char = this.string[this.position];\n }\n get rest() {\n return this.peekSlice(0, this.string.length);\n }\n peekSlice(begin, end) {\n return this.string.slice(this.position + begin, this.position + end);\n }\n consumePeeked(string) {\n if (this.peekSlice(0, string.length) === string) {\n this.advance(string.length);\n return true;\n }\n return false;\n }\n parseIsNegative() {\n if (this.char === `-`) {\n this.advance();\n this.isNegative = true;\n this.context.isNegative = true;\n }\n }\n incrementOrder() {\n var _a;\n this.order = ((_a = this.order) !== null && _a !== void 0 ? _a : 0) + 1;\n }\n}\n","export function parseInputs(inputs) {\n let classNames = [];\n let styles = null;\n inputs.forEach((input) => {\n if (typeof input === `string`) {\n classNames = [...classNames, ...split(input)];\n }\n else if (Array.isArray(input)) {\n classNames = [...classNames, ...input.flatMap(split)];\n }\n else if (typeof input === `object` && input !== null) {\n for (const [key, value] of Object.entries(input)) {\n if (typeof value === `boolean`) {\n classNames = [...classNames, ...(value ? split(key) : [])];\n }\n else if (styles) {\n styles[key] = value;\n }\n else {\n styles = { [key]: value };\n }\n }\n }\n });\n return [classNames.filter(Boolean).filter(unique), styles];\n}\nfunction split(str) {\n return str.trim().split(/\\s+/);\n}\nfunction unique(className, index, classes) {\n return classes.indexOf(className) === index;\n}\n","const plugin = (handler) => {\n return { handler, config: undefined };\n};\nexport default plugin;\nexport function getAddedUtilities(plugins) {\n var _a;\n return ((_a = plugins === null || plugins === void 0 ? void 0 : plugins.reduce((utils, plugin) => ({ ...utils, ...callPluginFunction(plugin.handler) }), {})) !== null && _a !== void 0 ? _a : {});\n}\nfunction callPluginFunction(pluginFn) {\n let added = {};\n pluginFn({\n addUtilities: (utilities) => {\n added = utilities;\n },\n ...core,\n });\n return added;\n}\nfunction notImplemented(fn) {\n throw new Error(`tailwindcss plugin function argument object prop \"${fn}\" not implemented`);\n}\nconst core = {\n addComponents: notImplemented,\n addBase: notImplemented,\n addVariant: notImplemented,\n e: notImplemented,\n prefix: notImplemented,\n theme: notImplemented,\n variants: notImplemented,\n config: notImplemented,\n corePlugins: notImplemented,\n matchUtilities: notImplemented,\n postcss: null,\n};\n","import type { TwConfig } from 'twrnc'\n\nimport * as twrnc from 'twrnc/create'\n\ntype TwPlugin = TwConfig['plugins'][number]\n\nconst defaultShadows: TwPlugin = {\n handler: ({ addUtilities }) => {\n const presets = {\n 'shadow-sm': { boxShadow: '0 1px 2px 0 rgb(0 0 0 / 0.05)' },\n shadow: {\n boxShadow:\n '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',\n },\n 'shadow-md': {\n boxShadow:\n '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',\n },\n 'shadow-lg': {\n boxShadow:\n '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',\n },\n 'shadow-xl': {\n boxShadow:\n '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\n },\n 'shadow-2xl': {\n boxShadow: '0 25px 50px -12px rgb(0 0 0 / 0.25)',\n },\n 'shadow-inner': {\n boxShadow: 'inset 0 2px 4px 0 rgb(0 0 0 / 0.05)',\n },\n 'shadow-none': { boxShadow: '0 0 #0000' },\n }\n\n addUtilities(presets)\n },\n}\n\nfunction createTw(config?: TwConfig) {\n return twrnc.create(\n {\n ...config,\n plugins: [...(config?.plugins ?? []), defaultShadows],\n },\n 'web'\n )\n}\n\nlet tw\nexport default function getTw({\n width,\n height,\n config,\n}: {\n width: number\n height: number\n config?: TwConfig\n}) {\n if (!tw) {\n tw = createTw(config)\n }\n tw.setWindowDimensions({ width: +width, height: +height })\n return tw\n}\n","import type { ReactNode } from 'react'\nimport type { TwConfig } from 'twrnc'\nimport type { SatoriNode } from './layout.js'\n\nimport getYoga, { init } from './yoga/index.js'\nimport layout from './layout.js'\nimport FontLoader, { FontOptions } from './font.js'\nimport svg from './builder/svg.js'\nimport { segment } from './utils.js'\nimport { detectLanguageCode, LangCode, Locale } from './language.js'\nimport getTw from './handler/tailwind.js'\nimport { preProcessNode } from './handler/preprocess.js'\nimport { cache, inflightRequests } from './handler/image.js'\n\n// We don't need to initialize the opentype instances every time.\nconst fontCache = new WeakMap()\n\nexport type SatoriOptions = (\n | {\n width: number\n height: number\n }\n | {\n width: number\n }\n | {\n height: number\n }\n) & {\n fonts: FontOptions[]\n embedFont?: boolean\n debug?: boolean\n graphemeImages?: Record\n loadAdditionalAsset?: (\n languageCode: string,\n segment: string\n ) => Promise>\n tailwindConfig?: TwConfig\n onNodeDetected?: (node: SatoriNode) => void\n}\nexport type { SatoriNode }\n\nexport { init }\n\nexport default async function satori(\n element: ReactNode,\n options: SatoriOptions\n): Promise {\n const Yoga = await getYoga()\n if (!Yoga || !Yoga.Node) {\n throw new Error(\n 'Satori is not initialized: expect `yoga` to be loaded, got ' + Yoga\n )\n }\n options.fonts = options.fonts || []\n\n let font: FontLoader\n if (fontCache.has(options.fonts)) {\n font = fontCache.get(options.fonts)\n } else {\n fontCache.set(options.fonts, (font = new FontLoader(options.fonts)))\n }\n\n const definedWidth = 'width' in options ? options.width : undefined\n const definedHeight = 'height' in options ? options.height : undefined\n\n const root = Yoga.Node.create()\n if (definedWidth) root.setWidth(definedWidth)\n if (definedHeight) root.setHeight(definedHeight)\n root.setFlexDirection(Yoga.FLEX_DIRECTION_ROW)\n root.setFlexWrap(Yoga.WRAP_WRAP)\n root.setAlignContent(Yoga.ALIGN_AUTO)\n root.setAlignItems(Yoga.ALIGN_FLEX_START)\n root.setJustifyContent(Yoga.JUSTIFY_FLEX_START)\n root.setOverflow(Yoga.OVERFLOW_HIDDEN)\n\n const graphemeImages = { ...options.graphemeImages }\n // Some Chinese characters have different glyphs in Chinese and\n // Japanese, but their Unicode is the same. If the user needs to display\n // the Chinese and Japanese characters simultaneously correctly, the user\n // needs to download the Chinese and Japanese fonts, respectively.\n // Assuming that the user has downloaded the corresponding Japanese font,\n // to let the program realize that the font has not been downloaded in Chinese,\n // we need to prohibit Japanese as the fallback when executing `engine.has`.\n //\n // This causes a problem. Consider a scenario where we need to display Chinese\n // correctly under tags with `lang=\"ja\"` set. `engine.has` will repeatedly treat\n // the Chinese as missing font because we have removed the Chinese as a fallback.\n // To address this situation, we may need to add `processedWordsMissingFont`\n const processedWordsMissingFonts = new Set()\n\n cache.clear()\n inflightRequests.clear()\n await preProcessNode(element)\n\n const handler = layout(element, {\n id: 'id',\n parentStyle: {},\n inheritedStyle: {\n fontSize: 16,\n fontWeight: 'normal',\n fontFamily: 'serif',\n fontStyle: 'normal',\n lineHeight: 'normal',\n color: 'black',\n opacity: 1,\n whiteSpace: 'normal',\n\n // Special style properties:\n _viewportWidth: definedWidth,\n _viewportHeight: definedHeight,\n },\n parent: root,\n font,\n embedFont: options.embedFont,\n debug: options.debug,\n graphemeImages,\n canLoadAdditionalAssets: !!options.loadAdditionalAsset,\n onNodeDetected: options.onNodeDetected,\n getTwStyles: (tw, style) => {\n const twToStyles = getTw({\n width: definedWidth,\n height: definedHeight,\n config: options.tailwindConfig,\n })\n const twStyles = { ...twToStyles([tw] as any) }\n if (typeof twStyles.lineHeight === 'number') {\n twStyles.lineHeight =\n twStyles.lineHeight / (+twStyles.fontSize || style.fontSize || 16)\n }\n if (twStyles.shadowColor && twStyles.boxShadow) {\n twStyles.boxShadow = (twStyles.boxShadow as string).replace(\n /rgba?\\([^)]+\\)/,\n twStyles.shadowColor as string\n )\n }\n return twStyles\n },\n })\n\n const segmentsMissingFont = (await handler.next()).value as {\n word: string\n locale?: Locale\n }[]\n\n if (options.loadAdditionalAsset) {\n if (segmentsMissingFont.length) {\n const languageCodes = convertToLanguageCodes(segmentsMissingFont)\n const fonts: FontOptions[] = []\n const images: Record = {}\n\n await Promise.all(\n Object.entries(languageCodes).flatMap(([code, segments]) =>\n segments.map((_segment) => {\n const key = `${code}_${_segment}`\n if (processedWordsMissingFonts.has(key)) {\n return null\n }\n processedWordsMissingFonts.add(key)\n\n return options\n .loadAdditionalAsset(code, _segment)\n .then((asset: any) => {\n if (typeof asset === 'string') {\n images[_segment] = asset\n } else if (asset) {\n if (Array.isArray(asset)) {\n fonts.push(...asset)\n } else {\n fonts.push(asset)\n }\n }\n })\n })\n )\n )\n\n // Directly mutate the font provider and the grapheme map.\n font.addFonts(fonts)\n Object.assign(graphemeImages, images)\n }\n }\n\n await handler.next()\n root.calculateLayout(definedWidth, definedHeight, Yoga.DIRECTION_LTR)\n\n const content = (await handler.next([0, 0])).value as string\n\n const computedWidth = root.getComputedWidth()\n const computedHeight = root.getComputedHeight()\n\n root.freeRecursive()\n\n return svg({ width: computedWidth, height: computedHeight, content })\n}\n\nfunction convertToLanguageCodes(\n segmentsMissingFont: { word: string; locale?: Locale }[]\n): Partial> {\n const languageCodes = {}\n let wordsByCode = {}\n\n for (const { word, locale } of segmentsMissingFont) {\n const code = detectLanguageCode(word, locale).join('|')\n wordsByCode[code] = wordsByCode[code] || ''\n wordsByCode[code] += word\n }\n\n Object.keys(wordsByCode).forEach((code: LangCode) => {\n languageCodes[code] = languageCodes[code] || []\n if (code === 'emoji') {\n languageCodes[code].push(\n ...unique(segment(wordsByCode[code], 'grapheme'))\n )\n } else {\n languageCodes[code][0] = languageCodes[code][0] || ''\n languageCodes[code][0] += unique(\n segment(\n wordsByCode[code],\n 'grapheme',\n code === 'unknown' ? undefined : code\n )\n ).join('')\n }\n })\n\n return languageCodes\n}\n\nfunction unique(arr: T[]): T[] {\n return Array.from(new Set(arr))\n}\n","import path from \"node:path\";\nimport fs from \"node:fs/promises\";\nimport type { Readable } from \"node:stream\";\nimport { styleText } from \"node:util\";\nimport satori, { type FontWeight, type SatoriOptions } from \"satori\";\nimport sharp from \"sharp\";\nimport readingTime from \"reading-time\";\nimport type {\n QuartzEmitterPlugin,\n BuildCtx,\n FilePath,\n FullSlug,\n GlobalConfiguration,\n QuartzPluginData,\n} from \"@quartz-community/types\";\nimport { joinSegments } from \"@quartz-community/types\";\nimport { unescapeHTML } from \"@quartz-community/utils\";\nimport { getDate } from \"@quartz-community/utils/sort\";\nimport type { JSX } from \"preact\";\nimport { type ThemeKey } from \"@quartz-community/types\";\nimport { getIconCode } from \"@quartz-community/utils/emoji\";\nimport { type FontSpecification, type Theme, getFontSpecificationName } from \"./theme.js\";\nimport { loadEmoji } from \"./emoji.js\";\n\nconst QUARTZ = \"quartz\";\n\ntype Frontmatter = {\n title?: string;\n description?: string;\n socialDescription?: string;\n socialImage?: string;\n tags?: string[];\n} & Record;\n\n/**\n * Page data passed to user-provided `imageStructure` callbacks.\n *\n * This is deliberately narrower than `@quartz-community/types`'\n * `QuartzPluginData`: it documents exactly which fields the og-image\n * emitter promises to populate before invoking `imageStructure`. The\n * extra `text?` field is synthesised by this plugin from the page's\n * rendered content prior to the callback.\n *\n * Do NOT replace this with `QuartzPluginData`: doing so would advertise\n * fields (e.g. `htmlAst`) that this emitter does not pass through.\n */\nexport type SocialImageFileData = {\n slug?: FullSlug;\n frontmatter?: Frontmatter;\n description?: string;\n text?: string;\n filePath?: string;\n dates?: Record;\n};\n\nconst defaultHeaderWeight = [700];\nconst defaultBodyWeight = [400];\n\nconst write = async (args: {\n ctx: BuildCtx;\n content: string | Buffer | Readable;\n slug: FullSlug;\n ext: string;\n}): Promise => {\n const pathToPage = joinSegments(args.ctx.argv.output, args.slug + args.ext) as FilePath;\n const dir = path.dirname(pathToPage);\n await fs.mkdir(dir, { recursive: true });\n await fs.writeFile(pathToPage, args.content);\n return pathToPage;\n};\n\nfunction getFileExtension(path: string): string | undefined {\n return path.match(/\\.([^./?#]+)(?:[?#]|$)/)?.[1];\n}\n\nfunction isAbsoluteURL(url: string): boolean {\n return /^https?:\\/\\//.test(url);\n}\n\nfunction formatDate(d: Date, locale: string = \"en-US\"): string {\n return d.toLocaleDateString(locale, {\n year: \"numeric\",\n month: \"short\",\n day: \"2-digit\",\n });\n}\n\nexport async function getSatoriFonts(headerFont: FontSpecification, bodyFont: FontSpecification) {\n const headerWeights: FontWeight[] = (\n typeof headerFont === \"string\"\n ? defaultHeaderWeight\n : (headerFont.weights ?? defaultHeaderWeight)\n ) as FontWeight[];\n const bodyWeights: FontWeight[] = (\n typeof bodyFont === \"string\" ? defaultBodyWeight : (bodyFont.weights ?? defaultBodyWeight)\n ) as FontWeight[];\n\n const headerFontName = typeof headerFont === \"string\" ? headerFont : headerFont.name;\n const bodyFontName = typeof bodyFont === \"string\" ? bodyFont : bodyFont.name;\n\n const headerFontPromises = headerWeights.map(async (weight) => {\n const data = await fetchTtf(headerFontName, weight);\n if (!data) return null;\n return {\n name: headerFontName,\n data,\n weight,\n style: \"normal\" as const,\n };\n });\n\n const bodyFontPromises = bodyWeights.map(async (weight) => {\n const data = await fetchTtf(bodyFontName, weight);\n if (!data) return null;\n return {\n name: bodyFontName,\n data,\n weight,\n style: \"normal\" as const,\n };\n });\n\n const [headerFonts, bodyFonts] = await Promise.all([\n Promise.all(headerFontPromises),\n Promise.all(bodyFontPromises),\n ]);\n\n const fonts: SatoriOptions[\"fonts\"] = [\n ...headerFonts.filter((font): font is NonNullable => font !== null),\n ...bodyFonts.filter((font): font is NonNullable => font !== null),\n ];\n\n return fonts;\n}\n\nexport async function fetchTtf(\n rawFontName: string,\n weight: FontWeight,\n): Promise {\n const fontName = rawFontName.replaceAll(\" \", \"+\");\n const cacheKey = `${fontName}-${weight}`;\n const cacheDir = path.join(QUARTZ, \".quartz-cache\", \"fonts\");\n const cachePath = path.join(cacheDir, cacheKey);\n\n try {\n await fs.access(cachePath);\n return fs.readFile(cachePath);\n } catch {\n /* file not cached, will fetch below */\n }\n\n const cssResponse = await fetch(\n `https://fonts.googleapis.com/css2?family=${fontName}:wght@${weight}`,\n );\n const css = await cssResponse.text();\n\n const urlRegex = /url\\((https:\\/\\/fonts.gstatic.com\\/s\\/.*?.ttf)\\)/g;\n const match = urlRegex.exec(css);\n\n if (!match) {\n console.log(\n styleText(\n \"yellow\",\n `\\nWarning: Failed to fetch font ${rawFontName} with weight ${weight}, got ${cssResponse.statusText}`,\n ),\n );\n return;\n }\n\n const fontUrl = match[1];\n if (!fontUrl) {\n return;\n }\n const fontResponse = await fetch(fontUrl);\n const fontData = Buffer.from(await fontResponse.arrayBuffer());\n await fs.mkdir(cacheDir, { recursive: true });\n await fs.writeFile(cachePath, fontData);\n\n return fontData;\n}\n\nexport type SocialImageOptions = {\n colorScheme: ThemeKey;\n height: number;\n width: number;\n excludeRoot: boolean;\n defaultTitle?: string;\n defaultDescription?: string;\n readingTimeText?: (minutes: number) => string;\n imageStructure: (\n options: ImageOptions & {\n userOpts: UserOpts;\n iconBase64?: string;\n },\n ) => JSX.Element;\n};\n\nexport type UserOpts = Omit;\n\nexport type ImageOptions = {\n title: string;\n description: string;\n fonts: SatoriOptions[\"fonts\"];\n cfg: GlobalConfiguration;\n fileData: SocialImageFileData;\n};\n\nexport const defaultImage: SocialImageOptions[\"imageStructure\"] = ({\n cfg,\n userOpts,\n title,\n description,\n fileData,\n iconBase64,\n}) => {\n const { colorScheme } = userOpts;\n const theme = cfg.theme as Theme;\n const fontBreakPoint = 32;\n const useSmallerFont = title.length > fontBreakPoint;\n\n const rawDate = getDate(fileData as QuartzPluginData);\n const date = rawDate ? formatDate(rawDate, cfg.locale) : null;\n\n const { minutes } = readingTime(fileData.text ?? \"\");\n const readingTimeText = (userOpts.readingTimeText ?? ((time) => `${time} min read`))(\n Math.ceil(minutes),\n );\n\n const tags = fileData.frontmatter?.tags ?? [];\n const bodyFont = getFontSpecificationName(theme.typography.body);\n const headerFont = getFontSpecificationName(theme.typography.header);\n\n return (\n \n \n {iconBase64 && (\n \n )}\n \n {cfg.baseUrl}\n
\n \n\n \n \n {title}\n \n \n\n \n \n {description}\n

\n \n\n \n \n {date && (\n
\n \n \n \n \n \n \n {date}\n
\n )}\n
\n \n \n \n \n {readingTimeText}\n
\n \n\n \n {tags.slice(0, 3).map((tag) => (\n \n #{tag}\n \n ))}\n \n \n \n );\n};\n\nconst defaultOptions: SocialImageOptions = {\n colorScheme: \"lightMode\",\n width: 1200,\n height: 630,\n imageStructure: defaultImage,\n excludeRoot: false,\n defaultTitle: \"Untitled\",\n defaultDescription: \"No description provided\",\n readingTimeText: (minutes) => `${minutes} min read`,\n};\n\nasync function generateSocialImage(\n { cfg, description, fonts, title, fileData }: ImageOptions,\n userOpts: SocialImageOptions,\n): Promise {\n const { width, height } = userOpts;\n const iconPath = joinSegments(QUARTZ, \"static\", \"icon.png\");\n let iconBase64: string | undefined = undefined;\n\n try {\n const iconData = await fs.readFile(iconPath);\n iconBase64 = `data:image/png;base64,${iconData.toString(\"base64\")}`;\n } catch {\n console.warn(styleText(\"yellow\", `Warning: Could not find icon at ${iconPath}`));\n }\n\n const imageComponent = userOpts.imageStructure({\n cfg,\n userOpts,\n title,\n description,\n fonts,\n fileData,\n iconBase64,\n });\n\n const svg = await satori(imageComponent as Parameters[0], {\n width,\n height,\n fonts,\n loadAdditionalAsset: async (languageCode: string, segment: string) => {\n if (languageCode === \"emoji\") {\n return await loadEmoji(getIconCode(segment));\n }\n\n return languageCode;\n },\n });\n\n return sharp(Buffer.from(svg)).webp({ quality: 40 });\n}\n\nasync function processOgImage(\n ctx: BuildCtx,\n fileData: QuartzPluginData,\n fonts: SatoriOptions[\"fonts\"],\n fullOptions: SocialImageOptions,\n) {\n const cfg = ctx.cfg.configuration;\n const slug = fileData.slug!;\n const titleSuffix = cfg.pageTitleSuffix ?? \"\";\n const frontmatter = fileData.frontmatter;\n const title = (frontmatter?.title ?? fullOptions.defaultTitle ?? \"\") + titleSuffix;\n const description =\n frontmatter?.socialDescription ??\n frontmatter?.description ??\n unescapeHTML(fileData.description?.trim() ?? fullOptions.defaultDescription ?? \"\");\n\n const stream = await generateSocialImage(\n {\n title,\n description,\n fonts,\n cfg,\n fileData,\n },\n fullOptions,\n );\n\n return write({\n ctx,\n content: stream,\n slug: `${slug}-og-image` as FullSlug,\n ext: \".webp\",\n });\n}\n\nexport const CustomOgImagesEmitterName = \"CustomOgImages\";\nexport const CustomOgImages: QuartzEmitterPlugin> = (userOpts) => {\n const fullOptions = { ...defaultOptions, ...userOpts };\n\n return {\n name: CustomOgImagesEmitterName,\n getQuartzComponents() {\n return [];\n },\n async *emit(ctx, content, _resources) {\n const cfg = ctx.cfg.configuration;\n const theme = cfg.theme as Theme;\n const headerFont = theme.typography.header;\n const bodyFont = theme.typography.body;\n const fonts = await getSatoriFonts(headerFont, bodyFont);\n\n for (const [_tree, vfile] of content) {\n const data = vfile.data as QuartzPluginData;\n if (data.frontmatter?.socialImage !== undefined) continue;\n yield processOgImage(ctx, data, fonts, fullOptions);\n }\n },\n async *partialEmit(ctx, _content, _resources, changeEvents) {\n const cfg = ctx.cfg.configuration;\n const theme = cfg.theme as Theme;\n const headerFont = theme.typography.header;\n const bodyFont = theme.typography.body;\n const fonts = await getSatoriFonts(headerFont, bodyFont);\n\n for (const changeEvent of changeEvents) {\n if (!changeEvent.file) continue;\n const data = changeEvent.file.data as QuartzPluginData;\n if (data.frontmatter?.socialImage !== undefined) continue;\n if (changeEvent.type === \"add\" || changeEvent.type === \"change\") {\n yield processOgImage(ctx, data, fonts, fullOptions);\n }\n }\n },\n externalResources: (ctx) => {\n if (!ctx.cfg.configuration.baseUrl) {\n return {};\n }\n\n const baseUrl = ctx.cfg.configuration.baseUrl;\n return {\n additionalHead: [\n (pageData: QuartzPluginData) => {\n const isRealFile = pageData.filePath !== undefined;\n let userDefinedOgImagePath = pageData.frontmatter?.socialImage;\n\n if (userDefinedOgImagePath) {\n userDefinedOgImagePath = isAbsoluteURL(userDefinedOgImagePath)\n ? userDefinedOgImagePath\n : `https://${baseUrl}/static/${userDefinedOgImagePath}`;\n }\n\n const generatedOgImagePath = isRealFile\n ? `https://${baseUrl}/${pageData.slug!}-og-image.webp`\n : undefined;\n const defaultOgImagePath = `https://${baseUrl}/static/og-image.png`;\n const ogImagePath =\n userDefinedOgImagePath ?? generatedOgImagePath ?? defaultOgImagePath;\n const ogImageMimeType = `image/${getFileExtension(ogImagePath) ?? \"png\"}`;\n return (\n <>\n {!userDefinedOgImagePath && (\n <>\n \n \n \n )}\n \n \n \n \n \n );\n },\n ],\n };\n },\n };\n};\n","import type { Root as HtmlRoot } from \"hast\";\nimport type { Root as MdRoot } from \"mdast\";\nimport type { Data, VFile } from \"vfile\";\nimport type { PluggableList } from \"unified\";\n\n// ============================================================================\n// Path Types - Branded string types for type-safe file paths\n// ============================================================================\n\nexport type FilePath = string & { _brand: \"FilePath\" };\nexport type FullSlug = string & { _brand: \"FullSlug\" };\nexport type SimpleSlug = string & { _brand: \"SimpleSlug\" };\n\nexport function joinSegments(...segments: string[]): FilePath {\n return segments\n .filter((segment) => segment.length > 0)\n .join(\"/\")\n .replace(/\\/+/g, \"/\") as FilePath;\n}\n\n// ============================================================================\n// Resource Types - CSS/JS resources that plugins can inject\n// ============================================================================\n\nexport type JSResource =\n | {\n loadTime: \"beforeDOMReady\" | \"afterDOMReady\";\n moduleType?: \"module\";\n spaPreserve?: boolean;\n src: string;\n contentType: \"external\";\n }\n | {\n loadTime: \"beforeDOMReady\" | \"afterDOMReady\";\n moduleType?: \"module\";\n spaPreserve?: boolean;\n script: string;\n contentType: \"inline\";\n };\n\nexport type CSSResource = {\n content: string;\n inline?: boolean;\n spaPreserve?: boolean;\n};\n\nexport interface StaticResources {\n css: CSSResource[];\n js: JSResource[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n additionalHead: any[];\n}\n\n// ============================================================================\n// Config Types - Quartz configuration\n// ============================================================================\n\n/**\n * Flat configuration object that components receive as `cfg` prop.\n * This matches Quartz's `GlobalConfiguration` — the resolved config\n * passed to components at render time (i.e. `ctx.cfg.configuration`).\n */\nexport interface GlobalConfiguration {\n pageTitle?: string;\n pageTitleSuffix?: string;\n enableSPA?: boolean;\n enablePopovers?: boolean;\n analytics?: unknown;\n ignorePatterns?: string[];\n defaultDateType?: string;\n baseUrl?: string;\n theme?: unknown;\n locale?: string;\n}\n\n/**\n * Full Quartz config with nested `configuration` property.\n * This is what `BuildCtx.cfg` holds — used in plugin hooks\n * (transformers, filters, emitters), NOT in component props.\n */\nexport interface QuartzConfig {\n configuration: GlobalConfiguration;\n plugins?: unknown;\n externalPlugins?: unknown;\n}\n\n// ============================================================================\n// Context Types - Build context passed to plugin hooks\n// ============================================================================\n\nexport interface Argv {\n directory: string;\n verbose: boolean;\n output: string;\n serve: boolean;\n watch: boolean;\n port: number;\n wsPort: number;\n remoteDevHost?: string;\n concurrency?: number;\n}\n\nexport interface BuildCtx {\n buildId: string;\n argv: Argv;\n cfg: QuartzConfig;\n allSlugs: FullSlug[];\n allFiles: FilePath[];\n incremental: boolean;\n}\n\n// ============================================================================\n// VFile Types - Content data types\n// ============================================================================\n\nexport type QuartzPluginData = Data;\nexport type MarkdownContent = [MdRoot, VFile];\nexport type ProcessedContent = [HtmlRoot, VFile];\n\n// ============================================================================\n// Core Component Types - The contract between Quartz and plugins\n// ============================================================================\n\nexport type QuartzComponentProps = {\n ctx: unknown;\n externalResources: StaticResources;\n fileData: QuartzPluginData & Record;\n cfg: GlobalConfiguration;\n children: unknown;\n tree: unknown;\n allFiles: (QuartzPluginData & Record)[];\n displayClass?: \"mobile-only\" | \"desktop-only\";\n [key: string]: unknown;\n};\n\nexport type QuartzComponent = ((props: QuartzComponentProps) => unknown) & {\n css?: string | string[] | undefined;\n beforeDOMLoaded?: string | string[] | undefined;\n afterDOMLoaded?: string | string[] | undefined;\n};\n\nexport type QuartzComponentConstructor<\n Options extends object | undefined = undefined,\n> = (opts?: Options) => QuartzComponent;\n\nexport type StringResource = string | string[];\n\n// ============================================================================\n// Plugin Types - What Quartz expects from plugins\n// ============================================================================\n\ntype OptionType = object | undefined;\ntype ExternalResourcesFn = (\n ctx: BuildCtx,\n) => Partial | undefined;\n\nexport type { ExternalResourcesFn };\n\nexport interface PluginTypes {\n transformers: QuartzTransformerPluginInstance[];\n filters: QuartzFilterPluginInstance[];\n emitters: QuartzEmitterPluginInstance[];\n pageTypes: QuartzPageTypePluginInstance[];\n}\n\nexport type QuartzTransformerPlugin = (\n opts?: Options,\n) => QuartzTransformerPluginInstance;\n\nexport type QuartzTransformerPluginInstance = {\n name: string;\n textTransform?: (ctx: BuildCtx, src: string) => string;\n markdownPlugins?: (ctx: BuildCtx) => PluggableList;\n htmlPlugins?: (ctx: BuildCtx) => PluggableList;\n externalResources?: ExternalResourcesFn;\n};\n\nexport type QuartzFilterPlugin = (\n opts?: Options,\n) => QuartzFilterPluginInstance;\n\nexport type QuartzFilterPluginInstance = {\n name: string;\n shouldPublish(ctx: BuildCtx, content: ProcessedContent): boolean;\n};\n\nexport type ChangeEvent = {\n type: \"add\" | \"change\" | \"delete\";\n path: FilePath;\n file?: VFile;\n};\n\nexport type QuartzEmitterPlugin = (\n opts?: Options,\n) => QuartzEmitterPluginInstance;\n\nexport type QuartzEmitterPluginInstance = {\n name: string;\n emit: (\n ctx: BuildCtx,\n content: ProcessedContent[],\n resources: StaticResources,\n ) => Promise | AsyncGenerator;\n partialEmit?: (\n ctx: BuildCtx,\n content: ProcessedContent[],\n resources: StaticResources,\n changeEvents: ChangeEvent[],\n ) => Promise | AsyncGenerator | null;\n getQuartzComponents?: (ctx: BuildCtx) => QuartzComponent[];\n externalResources?: ExternalResourcesFn;\n};\n\n// ============================================================================\n// PageType Plugin Types - Declarative page rendering plugins\n// ============================================================================\n\n/**\n * Matcher function: determines if a source file belongs to a page type.\n * Returns true if the page type should own this file.\n */\nexport type PageMatcher = (args: {\n slug: FullSlug;\n fileData: QuartzPluginData & Record;\n cfg: GlobalConfiguration;\n}) => boolean;\n\n/**\n * Virtual page descriptor for page types that generate pages\n * from aggregated data (e.g., tag indexes, folder listings).\n */\nexport interface VirtualPage {\n slug: FullSlug;\n title: string;\n data: Partial & Record;\n}\n\n/**\n * Generator function: produces virtual pages from all processed content.\n * Used by page types that don't match source files but instead create\n * synthetic pages (e.g., one page per tag, one page per folder).\n */\nexport type PageGenerator = (args: {\n content: ProcessedContent[];\n cfg: GlobalConfiguration;\n ctx: BuildCtx;\n}) => VirtualPage[];\n\n/** A function that mutates a HAST tree at render time, when allFiles is available. */\nexport type TreeTransform = (\n root: HtmlRoot,\n slug: FullSlug,\n componentData: QuartzComponentProps,\n) => void;\n\n/**\n * A PageType plugin definition.\n *\n * PageTypes are a declarative abstraction over page-rendering emitters.\n * Each PageType declares which files it owns (via `match`), optionally\n * generates virtual pages (via `generate`), and provides a body component\n * and layout reference for rendering.\n */\nexport type QuartzPageTypePlugin = (\n opts?: Options,\n) => QuartzPageTypePluginInstance;\n\nexport type QuartzPageTypePluginInstance = {\n name: string;\n /** Higher priority wins when multiple page types match the same file. Default: 0. */\n priority?: number;\n /** File extensions this page type handles (e.g. [\".canvas\"]). Files with these extensions are excluded from the default asset emitter and processed by generate() instead. */\n fileExtensions?: string[];\n /** Determines which source files this page type owns. */\n match: PageMatcher;\n /** Produces virtual pages from aggregated content data. */\n generate?: PageGenerator;\n /** Layout key — references a key in `layout.byPageType`. */\n layout: string;\n /** Optional page frame name (e.g. \"default\", \"full-width\", \"canvas\"). Defaults to \"default\". */\n frame?: string;\n /** The body component constructor for this page type. */\n body: QuartzComponentConstructor;\n /** Optional render-time HAST tree transforms (e.g. resolving inline codeblocks). */\n treeTransforms?: (ctx: BuildCtx) => TreeTransform[];\n};\n\n// ============================================================================\n// PageFrame Types — Custom page layout frames\n// ============================================================================\n\n/**\n * Props passed to a PageFrame's render function.\n * Contains the resolved layout components and the shared component data.\n */\nexport interface PageFrameProps {\n /** Component data shared across all components on the page */\n componentData: QuartzComponentProps;\n /** The Head component (rendered in ) — NOT used by frames, included for completeness */\n head: QuartzComponent;\n /** Header slot components (rendered inside
) */\n header: QuartzComponent[];\n /** Components rendered before the page body */\n beforeBody: QuartzComponent[];\n /** The page body component (Content) */\n pageBody: QuartzComponent;\n /** Components rendered after the page body */\n afterBody: QuartzComponent[];\n /** Left sidebar components */\n left: QuartzComponent[];\n /** Right sidebar components */\n right: QuartzComponent[];\n /** Footer component */\n footer: QuartzComponent;\n}\n\n/**\n * A PageFrame defines the inner HTML structure of a page inside the\n * `
` shell. Different frames can produce completely\n * different layouts (e.g. with/without sidebars, horizontal scroll, etc.)\n * while the outer shell (html, head, body, quartz-root) remains stable\n * for SPA navigation.\n *\n * The `render` function returns `unknown` to avoid coupling to a specific\n * JSX runtime (Preact, React, etc.). Quartz core casts this to JSX.Element.\n */\nexport interface PageFrame {\n /** Unique name for this frame (e.g. \"default\", \"full-width\", \"canvas\") */\n name: string;\n /** Render the inner page structure. Returns a JSX tree to be placed inside Body > #quartz-body. */\n render: (props: PageFrameProps) => unknown;\n /** Optional CSS string to include when this frame is active */\n css?: string;\n}\n\nexport type HTMLAttributes = Record<\n string,\n string | number | boolean | undefined\n>;\n\nexport type EventHandler = (event: Event) => void;\n\nexport type CleanupFunction = () => void;\n\nexport type ClassValue =\n | string\n | number\n | boolean\n | undefined\n | null\n | ClassValue[];\n\n// ============================================================================\n// Content Index Types - Data shape for contentIndex.json\n// ============================================================================\n\nexport type ContentDetails = {\n slug: FullSlug;\n filePath: FilePath;\n title: string;\n links: string[];\n tags: string[];\n content: string;\n richContent?: string;\n date?: Date;\n description?: string;\n};\n\nexport type ContentIndex = Record;\n\n// ============================================================================\n// Sort & Theme Types\n// ============================================================================\n\nexport type SortFn = (f1: QuartzPluginData, f2: QuartzPluginData) => number;\n\nexport type ThemeKey = \"lightMode\" | \"darkMode\";\n\nexport type ValidDateType = \"created\" | \"modified\" | \"published\";\n\n// ============================================================================\n// VFile DataMap Augmentation — canonical vfile shape for Quartz\n// ============================================================================\n\ndeclare module \"vfile\" {\n interface DataMap {\n slug: FullSlug;\n filePath: FilePath;\n relativePath: FilePath;\n description: string;\n text: string;\n links: SimpleSlug[];\n toc: { depth: number; text: string; slug: string }[];\n collapseToc: boolean;\n blocks: Record;\n htmlAst: import(\"hast\").Root;\n hasMermaidDiagram: boolean | undefined;\n frontmatter: { [key: string]: unknown } & {\n title: string;\n } & Partial<{\n tags: string[];\n aliases: string[];\n modified: string;\n created: string;\n published: string;\n description: string;\n socialDescription: string;\n publish: boolean | string;\n draft: boolean | string;\n lang: string;\n enableToc: string;\n cssclasses: string[];\n socialImage: string;\n comments: boolean | string;\n }>;\n dates: {\n created: Date;\n modified: Date;\n published: Date;\n };\n defaultDateType?: ValidDateType;\n }\n}\n","/** Normal hydration that attaches to a DOM tree but does not diff it. */\nexport const MODE_HYDRATE = 1 << 5;\n/** Signifies this VNode suspended on the previous render */\nexport const MODE_SUSPENDED = 1 << 7;\n/** Indicates that this node needs to be inserted while patching children */\nexport const INSERT_VNODE = 1 << 2;\n/** Indicates a VNode has been matched with another VNode in the diff */\nexport const MATCHED = 1 << 1;\n\n/** Reset all mode flags */\nexport const RESET_MODE = ~(MODE_HYDRATE | MODE_SUSPENDED);\n\nexport const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\nexport const XHTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\nexport const MATH_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n\nexport const NULL = null;\nexport const UNDEFINED = undefined;\nexport const EMPTY_OBJ = /** @type {any} */ ({});\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL =\n\t/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\n","import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {import('./internal').Options}\n */\nconst options = {\n\t_catchError\n};\n\nexport default options;\n","import { slice } from './util';\nimport options from './options';\nimport { NULL, UNDEFINED } from './constants';\n\nlet vnodeId = 0;\n\n/**\n * Create an virtual node (used for JSX)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component constructor for this\n * virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array} [children] The children of the\n * virtual node\n * @returns {import('./internal').VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' && type.defaultProps != NULL) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === UNDEFINED) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(type, normalizedProps, key, ref, NULL);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {import('./internal').VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\t/** @type {import('./internal').VNode} */\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: NULL,\n\t\t_parent: NULL,\n\t\t_depth: 0,\n\t\t_dom: NULL,\n\t\t_component: NULL,\n\t\tconstructor: UNDEFINED,\n\t\t_original: original == NULL ? ++vnodeId : original,\n\t\t_index: -1,\n\t\t_flags: 0\n\t};\n\n\t// Only invoke the vnode hook if this was *not* a direct copy:\n\tif (original == NULL && options.vnode != NULL) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn { current: NULL };\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != NULL && vnode.constructor === UNDEFINED;\n","import { NULL } from '../constants';\n\n/**\n * Find the closest error boundary to a thrown error and call it\n * @param {object} error The thrown value\n * @param {import('../internal').VNode} vnode The vnode that threw the error that was caught (except\n * for unmounting when this parameter is the highest parent that was being\n * unmounted)\n * @param {import('../internal').VNode} [oldVNode]\n * @param {import('../internal').ErrorInfo} [errorInfo]\n */\nexport function _catchError(error, vnode, oldVNode, errorInfo) {\n\t/** @type {import('../internal').Component} */\n\tlet component,\n\t\t/** @type {import('../internal').ComponentType} */\n\t\tctor,\n\t\t/** @type {boolean} */\n\t\thandled;\n\n\tfor (; (vnode = vnode._parent); ) {\n\t\tif ((component = vnode._component) && !component._processingException) {\n\t\t\ttry {\n\t\t\t\tctor = component.constructor;\n\n\t\t\t\tif (ctor && ctor.getDerivedStateFromError != NULL) {\n\t\t\t\t\tcomponent.setState(ctor.getDerivedStateFromError(error));\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\tif (component.componentDidCatch != NULL) {\n\t\t\t\t\tcomponent.componentDidCatch(error, errorInfo || {});\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\t// This is an error boundary. Mark it as having bailed out, and whether it was mid-hydration.\n\t\t\t\tif (handled) {\n\t\t\t\t\treturn (component._pendingError = component);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\terror = e;\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow error;\n}\n","import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\nimport { MODE_HYDRATE, NULL } from './constants';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function BaseComponent(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @this {import('./internal').Component}\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nBaseComponent.prototype.setState = function (update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState != NULL && this._nextState != this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\t// Some libraries like `immer` mark the current state as readonly,\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\n\t\tupdate = update(assign({}, s), this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == NULL) return;\n\n\tif (this._vnode) {\n\t\tif (callback) {\n\t\t\tthis._stateCallbacks.push(callback);\n\t\t}\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @this {import('./internal').Component}\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nBaseComponent.prototype.forceUpdate = function (callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](https://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {ComponentChildren | void}\n */\nBaseComponent.prototype.render = Fragment;\n\n/**\n * @param {import('./internal').VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == NULL) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._index + 1)\n\t\t\t: NULL;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != NULL && sibling._dom != NULL) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : NULL;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tif (component._parentDom && component._dirty) {\n\t\tlet oldVNode = component._vnode,\n\t\t\toldDom = oldVNode._dom,\n\t\t\tcommitQueue = [],\n\t\t\trefQueue = [],\n\t\t\tnewVNode = assign({}, oldVNode);\n\t\tnewVNode._original = oldVNode._original + 1;\n\t\tif (options.vnode) options.vnode(newVNode);\n\n\t\tdiff(\n\t\t\tcomponent._parentDom,\n\t\t\tnewVNode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tcomponent._parentDom.namespaceURI,\n\t\t\toldVNode._flags & MODE_HYDRATE ? [oldDom] : NULL,\n\t\t\tcommitQueue,\n\t\t\toldDom == NULL ? getDomSibling(oldVNode) : oldDom,\n\t\t\t!!(oldVNode._flags & MODE_HYDRATE),\n\t\t\trefQueue\n\t\t);\n\n\t\tnewVNode._original = oldVNode._original;\n\t\tnewVNode._parent._children[newVNode._index] = newVNode;\n\t\tcommitRoot(commitQueue, newVNode, refQueue);\n\t\toldVNode._dom = oldVNode._parent = null;\n\n\t\tif (newVNode._dom != oldDom) {\n\t\t\tupdateParentDomPointers(newVNode);\n\t\t}\n\t}\n}\n\n/**\n * @param {import('./internal').VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != NULL && vnode._component != NULL) {\n\t\tvnode._dom = vnode._component.base = NULL;\n\t\tvnode._children.some(child => {\n\t\t\tif (child != NULL && child._dom != NULL) {\n\t\t\t\treturn (vnode._dom = vnode._component.base = child._dom);\n\t\t\t}\n\t\t});\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array}\n */\nlet rerenderQueue = [];\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\nconst defer =\n\ttypeof Promise == 'function'\n\t\t? Promise.prototype.then.bind(Promise.resolve())\n\t\t: setTimeout;\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./internal').Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!process._rerenderCount++) ||\n\t\tprevDebounce != options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || defer)(process);\n\t}\n}\n\n/**\n * @param {import('./internal').Component} a\n * @param {import('./internal').Component} b\n */\nconst depthSort = (a, b) => a._vnode._depth - b._vnode._depth;\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\ttry {\n\t\tlet c,\n\t\t\tl = 1;\n\n\t\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t\t// process() calls from getting scheduled while `queue` is still being consumed.\n\t\twhile (rerenderQueue.length) {\n\t\t\t// Keep the rerender queue sorted by (depth, insertion order). The queue\n\t\t\t// will initially be sorted on the first iteration only if it has more than 1 item.\n\t\t\t//\n\t\t\t// New items can be added to the queue e.g. when rerendering a provider, so we want to\n\t\t\t// keep the order from top to bottom with those new items so we can handle them in a\n\t\t\t// single pass\n\t\t\tif (rerenderQueue.length > l) {\n\t\t\t\trerenderQueue.sort(depthSort);\n\t\t\t}\n\n\t\t\tc = rerenderQueue.shift();\n\t\t\tl = rerenderQueue.length;\n\n\t\t\trenderComponent(c);\n\t\t}\n\t} finally {\n\t\trerenderQueue.length = process._rerenderCount = 0;\n\t}\n}\n\nprocess._rerenderCount = 0;\n","import { IS_NON_DIMENSIONAL, NULL, SVG_NAMESPACE } from '../constants';\nimport options from '../options';\n\n// Per-instance unique key for event clock stamps. Each Preact copy on the page\n// gets its own random suffix so that `_dispatched` / `_attached` properties on\n// shared event objects and handler functions cannot collide across instances.\n// ~1 in 60M collision odds - if you have that many praect versions on the page,\n// you deserve some weird bugs.\n// In 11 we can replace this with a\n// Symbol\nlet _id = Math.random().toString(8),\n\tEVENT_DISPATCHED = '__d' + _id,\n\tEVENT_ATTACHED = '__a' + _id;\n\nfunction setStyle(style, key, value) {\n\tif (key[0] == '-') {\n\t\tstyle.setProperty(key, value == NULL ? '' : value);\n\t} else if (value == NULL) {\n\t\tstyle[key] = '';\n\t} else if (typeof value != 'number' || IS_NON_DIMENSIONAL.test(key)) {\n\t\tstyle[key] = value;\n\t} else {\n\t\tstyle[key] = value + 'px';\n\t}\n}\n\nconst CAPTURE_REGEX = /(PointerCapture)$|Capture$/i;\n\n// A logical clock to solve issues like https://github.com/preactjs/preact/issues/3927.\n// When the DOM performs an event it leaves micro-ticks in between bubbling up which means that\n// an event can trigger on a newly reated DOM-node while the event bubbles up.\n//\n// Originally inspired by Vue\n// (https://github.com/vuejs/core/blob/caeb8a68811a1b0f79/packages/runtime-dom/src/modules/events.ts#L90-L101),\n// but modified to use a logical clock instead of Date.now() in case event handlers get attached\n// and events get dispatched during the same millisecond.\n//\n// The clock is incremented after each new event dispatch. This allows 1 000 000 new events\n// per second for over 280 years before the value reaches Number.MAX_SAFE_INTEGER (2**53 - 1).\nlet eventClock = 0;\n\n/**\n * Set a property value on a DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to modify\n * @param {string} name The name of the property to set\n * @param {*} value The value to set the property to\n * @param {*} oldValue The old value the property had\n * @param {string} namespace Whether or not this DOM node is an SVG node or not\n */\nexport function setProperty(dom, name, value, oldValue, namespace) {\n\tlet useCapture;\n\n\to: if (name == 'style') {\n\t\tif (typeof value == 'string') {\n\t\t\tdom.style.cssText = value;\n\t\t} else {\n\t\t\tif (typeof oldValue == 'string') {\n\t\t\t\tdom.style.cssText = oldValue = '';\n\t\t\t}\n\n\t\t\tif (oldValue) {\n\t\t\t\tfor (name in oldValue) {\n\t\t\t\t\tif (!(value && name in value)) {\n\t\t\t\t\t\tsetStyle(dom.style, name, '');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tfor (name in value) {\n\t\t\t\t\tif (!oldValue || value[name] != oldValue[name]) {\n\t\t\t\t\t\tsetStyle(dom.style, name, value[name]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6\n\telse if (name[0] == 'o' && name[1] == 'n') {\n\t\tuseCapture = name != (name = name.replace(CAPTURE_REGEX, '$1'));\n\t\tconst lowerCaseName = name.toLowerCase();\n\n\t\t// Infer correct casing for DOM built-in events:\n\t\tif (lowerCaseName in dom || name == 'onFocusOut' || name == 'onFocusIn')\n\t\t\tname = lowerCaseName.slice(2);\n\t\telse name = name.slice(2);\n\n\t\tif (!dom._listeners) dom._listeners = {};\n\t\tdom._listeners[name + useCapture] = value;\n\n\t\tif (value) {\n\t\t\tif (!oldValue) {\n\t\t\t\tvalue[EVENT_ATTACHED] = eventClock;\n\t\t\t\tdom.addEventListener(\n\t\t\t\t\tname,\n\t\t\t\t\tuseCapture ? eventProxyCapture : eventProxy,\n\t\t\t\t\tuseCapture\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tvalue[EVENT_ATTACHED] = oldValue[EVENT_ATTACHED];\n\t\t\t}\n\t\t} else {\n\t\t\tdom.removeEventListener(\n\t\t\t\tname,\n\t\t\t\tuseCapture ? eventProxyCapture : eventProxy,\n\t\t\t\tuseCapture\n\t\t\t);\n\t\t}\n\t} else {\n\t\tif (namespace == SVG_NAMESPACE) {\n\t\t\t// Normalize incorrect prop usage for SVG:\n\t\t\t// - xlink:href / xlinkHref --> href (xlink:href was removed from SVG and isn't needed)\n\t\t\t// - className --> class\n\t\t\tname = name.replace(/xlink(H|:h)/, 'h').replace(/sName$/, 's');\n\t\t} else if (\n\t\t\tname != 'width' &&\n\t\t\tname != 'height' &&\n\t\t\tname != 'href' &&\n\t\t\tname != 'list' &&\n\t\t\tname != 'form' &&\n\t\t\t// Default value in browsers is `-1` and an empty string is\n\t\t\t// cast to `0` instead\n\t\t\tname != 'tabIndex' &&\n\t\t\tname != 'download' &&\n\t\t\tname != 'rowSpan' &&\n\t\t\tname != 'colSpan' &&\n\t\t\tname != 'role' &&\n\t\t\tname != 'popover' &&\n\t\t\tname in dom\n\t\t) {\n\t\t\ttry {\n\t\t\t\tdom[name] = value == NULL ? '' : value;\n\t\t\t\t// labelled break is 1b smaller here than a return statement (sorry)\n\t\t\t\tbreak o;\n\t\t\t} catch (e) {}\n\t\t}\n\n\t\t// aria- and data- attributes have no boolean representation.\n\t\t// A `false` value is different from the attribute not being\n\t\t// present, so we can't remove it. For non-boolean aria\n\t\t// attributes we could treat false as a removal, but the\n\t\t// amount of exceptions would cost too many bytes. On top of\n\t\t// that other frameworks generally stringify `false`.\n\n\t\tif (typeof value == 'function') {\n\t\t\t// never serialize functions as attribute values\n\t\t} else if (value != NULL && (value !== false || name[4] == '-')) {\n\t\t\tdom.setAttribute(name, name == 'popover' && value == true ? '' : value);\n\t\t} else {\n\t\t\tdom.removeAttribute(name);\n\t\t}\n\t}\n}\n\n/**\n * Create an event proxy function.\n * @param {boolean} useCapture Is the event handler for the capture phase.\n * @private\n */\nfunction createEventProxy(useCapture) {\n\t/**\n\t * Proxy an event to hooked event handlers\n\t * @param {import('../internal').PreactEvent} e The event object from the browser\n\t * @private\n\t */\n\treturn function (e) {\n\t\tif (this._listeners) {\n\t\t\tconst eventHandler = this._listeners[e.type + useCapture];\n\t\t\tif (e[EVENT_DISPATCHED] == NULL) {\n\t\t\t\te[EVENT_DISPATCHED] = eventClock++;\n\n\t\t\t\t// When `e[EVENT_DISPATCHED]` is smaller than the time when the targeted event\n\t\t\t\t// handler was attached we know we have bubbled up to an element that was added\n\t\t\t\t// during patching the DOM.\n\t\t\t} else if (e[EVENT_DISPATCHED] < eventHandler[EVENT_ATTACHED]) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treturn eventHandler(options.event ? options.event(e) : e);\n\t\t}\n\t};\n}\n\nconst eventProxy = createEventProxy(false);\nconst eventProxyCapture = createEventProxy(true);\n","import { enqueueRender } from './component';\nimport { NULL } from './constants';\n\nexport let i = 0;\n\nexport function createContext(defaultValue) {\n\tfunction Context(props) {\n\t\tif (!this.getChildContext) {\n\t\t\t/** @type {Set | null} */\n\t\t\tlet subs = new Set();\n\t\t\tlet ctx = {};\n\t\t\tctx[Context._id] = this;\n\n\t\t\tthis.getChildContext = () => ctx;\n\n\t\t\tthis.componentWillUnmount = () => {\n\t\t\t\tsubs = NULL;\n\t\t\t};\n\n\t\t\tthis.shouldComponentUpdate = function (_props) {\n\t\t\t\t// @ts-expect-error even\n\t\t\t\tif (this.props.value != _props.value) {\n\t\t\t\t\tsubs.forEach(c => {\n\t\t\t\t\t\tc._force = true;\n\t\t\t\t\t\tenqueueRender(c);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tthis.sub = c => {\n\t\t\t\tsubs.add(c);\n\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\tc.componentWillUnmount = () => {\n\t\t\t\t\tif (subs) {\n\t\t\t\t\t\tsubs.delete(c);\n\t\t\t\t\t}\n\t\t\t\t\tif (old) old.call(c);\n\t\t\t\t};\n\t\t\t};\n\t\t}\n\n\t\treturn props.children;\n\t}\n\n\tContext._id = '__cC' + i++;\n\tContext._defaultValue = defaultValue;\n\n\t/** @type {import('./internal').FunctionComponent} */\n\tContext.Consumer = (props, contextValue) => {\n\t\treturn props.children(contextValue);\n\t};\n\n\t// we could also get rid of _contextRef entirely\n\tContext.Provider =\n\t\tContext._contextRef =\n\t\tContext.Consumer.contextType =\n\t\t\tContext;\n\n\treturn Context;\n}\n","import { options, Fragment } from 'preact';\nimport { encodeEntities } from './utils';\nimport { IS_NON_DIMENSIONAL } from '../../src/constants';\n\nlet vnodeId = 0;\n\nconst isArray = Array.isArray;\n\n/**\n * @fileoverview\n * This file exports various methods that implement Babel's \"automatic\" JSX runtime API:\n * - jsx(type, props, key)\n * - jsxs(type, props, key)\n * - jsxDEV(type, props, key, __source, __self)\n *\n * The implementation of createVNode here is optimized for performance.\n * Benchmarks: https://esbench.com/bench/5f6b54a0b4632100a7dcd2b3\n */\n\n/**\n * JSX.Element factory used by Babel's {runtime:\"automatic\"} JSX transform\n * @param {VNode['type']} type\n * @param {VNode['props']} props\n * @param {VNode['key']} [key]\n * @param {unknown} [isStaticChildren]\n * @param {unknown} [__source]\n * @param {unknown} [__self]\n */\nfunction createVNode(type, props, key, isStaticChildren, __source, __self) {\n\tif (!props) props = {};\n\t// We'll want to preserve `ref` in props to get rid of the need for\n\t// forwardRef components in the future, but that should happen via\n\t// a separate PR.\n\tlet normalizedProps = props,\n\t\tref,\n\t\ti;\n\n\tif ('ref' in normalizedProps) {\n\t\tnormalizedProps = {};\n\t\tfor (i in props) {\n\t\t\tif (i == 'ref') {\n\t\t\t\tref = props[i];\n\t\t\t} else {\n\t\t\t\tnormalizedProps[i] = props[i];\n\t\t\t}\n\t\t}\n\t}\n\n\t/** @type {VNode & { __source: any; __self: any }} */\n\tconst vnode = {\n\t\ttype,\n\t\tprops: normalizedProps,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t_component: null,\n\t\tconstructor: undefined,\n\t\t_original: --vnodeId,\n\t\t_index: -1,\n\t\t_flags: 0,\n\t\t__source,\n\t\t__self\n\t};\n\n\t// If a Component VNode, check for and apply defaultProps.\n\t// Note: `type` is often a String, and can be `undefined` in development.\n\tif (typeof type === 'function' && (ref = type.defaultProps)) {\n\t\tfor (i in ref)\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = ref[i];\n\t\t\t}\n\t}\n\n\tif (options.vnode) options.vnode(vnode);\n\treturn vnode;\n}\n\n/**\n * Create a template vnode. This function is not expected to be\n * used directly, but rather through a precompile JSX transform\n * @param {string[]} templates\n * @param {Array} exprs\n * @returns {VNode}\n */\nfunction jsxTemplate(templates, ...exprs) {\n\tconst vnode = createVNode(Fragment, { tpl: templates, exprs });\n\t// Bypass render to string top level Fragment optimization\n\tvnode.key = vnode._vnode;\n\treturn vnode;\n}\n\nconst JS_TO_CSS = {};\nconst CSS_REGEX = /[A-Z]/g;\n\n/**\n * Unwrap potential signals.\n * @param {*} value\n * @returns {*}\n */\nfunction normalizeAttrValue(value) {\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.valueOf === 'function'\n\t\t? value.valueOf()\n\t\t: value;\n}\n\n/**\n * Serialize an HTML attribute to a string. This function is not\n * expected to be used directly, but rather through a precompile\n * JSX transform\n * @param {string} name The attribute name\n * @param {*} value The attribute value\n * @returns {string}\n */\nfunction jsxAttr(name, value) {\n\tif (options.attr) {\n\t\tconst result = options.attr(name, value);\n\t\tif (typeof result === 'string') return result;\n\t}\n\n\tvalue = normalizeAttrValue(value);\n\n\tif (name === 'ref' || name === 'key') return '';\n\tif (name === 'style' && typeof value === 'object') {\n\t\tlet str = '';\n\t\tfor (let prop in value) {\n\t\t\tlet val = value[prop];\n\t\t\tif (val != null && val !== '') {\n\t\t\t\tconst name =\n\t\t\t\t\tprop[0] == '-'\n\t\t\t\t\t\t? prop\n\t\t\t\t\t\t: JS_TO_CSS[prop] ||\n\t\t\t\t\t\t\t(JS_TO_CSS[prop] = prop.replace(CSS_REGEX, '-$&').toLowerCase());\n\n\t\t\t\tlet suffix = ';';\n\t\t\t\tif (\n\t\t\t\t\ttypeof val === 'number' &&\n\t\t\t\t\t// Exclude custom-attributes\n\t\t\t\t\t!name.startsWith('--') &&\n\t\t\t\t\t!IS_NON_DIMENSIONAL.test(name)\n\t\t\t\t) {\n\t\t\t\t\tsuffix = 'px;';\n\t\t\t\t}\n\t\t\t\tstr = str + name + ':' + val + suffix;\n\t\t\t}\n\t\t}\n\t\treturn name + '=\"' + encodeEntities(str) + '\"';\n\t}\n\n\tif (\n\t\tvalue == null ||\n\t\tvalue === false ||\n\t\ttypeof value === 'function' ||\n\t\ttypeof value === 'object'\n\t) {\n\t\treturn '';\n\t} else if (value === true) return name;\n\n\treturn name + '=\"' + encodeEntities('' + value) + '\"';\n}\n\n/**\n * Escape a dynamic child passed to `jsxTemplate`. This function\n * is not expected to be used directly, but rather through a\n * precompile JSX transform\n * @param {*} value\n * @returns {string | null | VNode | Array}\n */\nfunction jsxEscape(value) {\n\tif (\n\t\tvalue == null ||\n\t\ttypeof value === 'boolean' ||\n\t\ttypeof value === 'function'\n\t) {\n\t\treturn null;\n\t}\n\n\tif (typeof value === 'object') {\n\t\t// Check for VNode\n\t\tif (value.constructor === undefined) return value;\n\n\t\tif (isArray(value)) {\n\t\t\tfor (let i = 0; i < value.length; i++) {\n\t\t\t\tvalue[i] = jsxEscape(value[i]);\n\t\t\t}\n\t\t\treturn value;\n\t\t}\n\t}\n\n\treturn encodeEntities('' + value);\n}\n\nexport {\n\tcreateVNode as jsx,\n\tcreateVNode as jsxs,\n\tcreateVNode as jsxDEV,\n\tFragment,\n\t// precompiled JSX transform\n\tjsxTemplate,\n\tjsxAttr,\n\tjsxEscape\n};\n","const U200D = String.fromCharCode(8205);\nconst UFE0Fg = /\\uFE0F/g;\n\nexport function getIconCode(char: string): string {\n return toCodePoint(char.indexOf(U200D) < 0 ? char.replace(UFE0Fg, \"\") : char);\n}\n\nfunction toCodePoint(unicodeSurrogates: string): string {\n const r: string[] = [];\n let c = 0,\n p = 0,\n i = 0;\n\n while (i < unicodeSurrogates.length) {\n c = unicodeSurrogates.charCodeAt(i++);\n if (p) {\n r.push((65536 + ((p - 55296) << 10) + (c - 56320)).toString(16));\n p = 0;\n } else if (55296 <= c && c <= 56319) {\n p = c;\n } else {\n r.push(c.toString(16));\n }\n }\n return r.join(\"-\");\n}\n","import type { QuartzPluginData, ValidDateType, SortFn } from \"@quartz-community/types\";\n\nexport function getDate(data: QuartzPluginData): Date | undefined {\n const defaultDateType = data.defaultDateType as ValidDateType | undefined;\n if (!defaultDateType) {\n return undefined;\n }\n const dates = data.dates as Record | undefined;\n return dates?.[defaultDateType];\n}\n\nexport function byDateAndAlphabetical(): SortFn {\n return (f1, f2) => {\n const f1Date = getDate(f1);\n const f2Date = getDate(f2);\n if (f1Date && f2Date) {\n return f2Date.getTime() - f1Date.getTime();\n } else if (f1Date && !f2Date) {\n return -1;\n } else if (!f1Date && f2Date) {\n return 1;\n }\n\n const f1Title = (\n ((f1.frontmatter as Record)?.title as string) ?? \"\"\n ).toLowerCase();\n const f2Title = (\n ((f2.frontmatter as Record)?.title as string) ?? \"\"\n ).toLowerCase();\n return f1Title.localeCompare(f2Title);\n };\n}\n","export interface ColorScheme {\n light: string;\n lightgray: string;\n gray: string;\n darkgray: string;\n dark: string;\n secondary: string;\n tertiary: string;\n highlight: string;\n textHighlight: string;\n}\n\ninterface Colors {\n lightMode: ColorScheme;\n darkMode: ColorScheme;\n}\n\nexport type FontSpecification =\n | string\n | {\n name: string;\n weights?: number[];\n includeItalic?: boolean;\n };\n\nexport interface Theme {\n typography: {\n title?: FontSpecification;\n header: FontSpecification;\n body: FontSpecification;\n code: FontSpecification;\n };\n cdnCaching: boolean;\n colors: Colors;\n fontOrigin: \"googleFonts\" | \"local\";\n}\n\nexport type ThemeKey = keyof Colors;\n\nexport function getFontSpecificationName(spec: FontSpecification): string {\n if (typeof spec === \"string\") {\n return spec;\n }\n return spec.name;\n}\n","type EmojiMap = {\n codePointToName: Record;\n nameToBase64: Record;\n};\n\nlet emojimap: EmojiMap | undefined = undefined;\nexport async function loadEmoji(code: string) {\n if (!emojimap) {\n const path = await import(\"node:path\");\n const fs = await import(\"node:fs/promises\");\n const mapPath = path.join(\"quartz\", \"util\", \"emojimap.json\");\n const data = JSON.parse(await fs.readFile(mapPath, \"utf-8\"));\n emojimap = data;\n }\n\n const name = emojimap!.codePointToName[`${code.toUpperCase()}`];\n if (!name) throw new Error(`codepoint ${code} not found in map`);\n\n const b64 = emojimap!.nameToBase64[name];\n if (!b64) throw new Error(`name ${name} not found in map`);\n\n return b64;\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../node_modules/tiny-inflate/index.js","../node_modules/unicode-trie/swap.js","../node_modules/unicode-trie/index.js","../node_modules/base64-js/lib/b64.js","../node_modules/postcss-value-parser/lib/parse.js","../node_modules/postcss-value-parser/lib/walk.js","../node_modules/postcss-value-parser/lib/stringify.js","../node_modules/postcss-value-parser/lib/unit.js","../node_modules/postcss-value-parser/lib/index.js","../node_modules/camelize/index.js","../node_modules/css-color-keywords/colors.json","../node_modules/css-color-keywords/index.js","../node_modules/css-to-react-native/index.js","../node_modules/css-background-parser/index.js","../node_modules/css-box-shadow/index.js","../node_modules/color-name/index.js","../node_modules/hex-rgb/index.js","../node_modules/escape-html/index.js","../node_modules/yoga-wasm-web/dist/wrapAsm-f766f97f.js","../node_modules/yoga-wasm-web/dist/asm.js","../node_modules/reading-time/lib/reading-time.js","../node_modules/reading-time/lib/stream.js","../node_modules/reading-time/index.js","../node_modules/linebreak/dist/src/classes.js","../node_modules/linebreak/dist/src/pairs.js","../node_modules/linebreak/dist/src/linebreaker.js","../node_modules/satori/src/handler/expand.ts","../node_modules/parse-css-color/dist/index.esm.js","../node_modules/satori/src/transform-origin.ts","../node_modules/satori/src/parser/mask.ts","../node_modules/satori/src/builder/text.ts","../node_modules/css-gradient-parser/src/utils.ts","../node_modules/css-gradient-parser/src/linear.ts","../node_modules/css-gradient-parser/src/radial.ts","../node_modules/satori/src/parser/shape.ts","../node_modules/@shuding/opentype.js/node_modules/.pnpm/fflate@0.7.3/node_modules/fflate/esm/browser.js","../node_modules/@shuding/opentype.js/src/path.js","../node_modules/@shuding/opentype.js/src/encoding.js","../node_modules/@shuding/opentype.js/src/check.js","../node_modules/@shuding/opentype.js/src/glyph.js","../node_modules/@shuding/opentype.js/src/glyphset.js","../node_modules/@shuding/opentype.js/src/layout.js","../node_modules/@shuding/opentype.js/src/position.js","../node_modules/@shuding/opentype.js/src/substitution.js","../node_modules/@shuding/opentype.js/src/util.js","../node_modules/@shuding/opentype.js/src/parse.js","../node_modules/@shuding/opentype.js/src/tables/glyf.js","../node_modules/@shuding/opentype.js/src/hintingtt.js","../node_modules/@shuding/opentype.js/src/tokenizer.js","../node_modules/@shuding/opentype.js/src/char.js","../node_modules/@shuding/opentype.js/src/features/featureQuery.js","../node_modules/@shuding/opentype.js/src/features/arab/contextCheck/arabicWord.js","../node_modules/@shuding/opentype.js/src/features/arab/contextCheck/arabicSentence.js","../node_modules/@shuding/opentype.js/src/features/applySubstitution.js","../node_modules/@shuding/opentype.js/src/features/arab/arabicPresentationForms.js","../node_modules/@shuding/opentype.js/src/features/arab/arabicRequiredLigatures.js","../node_modules/@shuding/opentype.js/src/features/latn/contextCheck/latinWord.js","../node_modules/@shuding/opentype.js/src/features/latn/latinLigatures.js","../node_modules/@shuding/opentype.js/src/bidi.js","../node_modules/@shuding/opentype.js/src/font.js","../node_modules/@shuding/opentype.js/src/tables/cmap.js","../node_modules/@shuding/opentype.js/src/tables/cff.js","../node_modules/@shuding/opentype.js/src/tables/fvar.js","../node_modules/@shuding/opentype.js/src/tables/gdef.js","../node_modules/@shuding/opentype.js/src/tables/gpos.js","../node_modules/@shuding/opentype.js/src/tables/gsub.js","../node_modules/@shuding/opentype.js/src/tables/head.js","../node_modules/@shuding/opentype.js/src/tables/hhea.js","../node_modules/@shuding/opentype.js/src/tables/hmtx.js","../node_modules/@shuding/opentype.js/src/tables/kern.js","../node_modules/@shuding/opentype.js/src/tables/ltag.js","../node_modules/@shuding/opentype.js/src/tables/loca.js","../node_modules/@shuding/opentype.js/src/tables/maxp.js","../node_modules/@shuding/opentype.js/src/tables/os2.js","../node_modules/@shuding/opentype.js/src/tables/post.js","../node_modules/@shuding/opentype.js/src/types.js","../node_modules/@shuding/opentype.js/src/tables/meta.js","../node_modules/@shuding/opentype.js/src/opentype.js","../node_modules/satori/src/yoga/yoga-prebuilt.ts","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/util/negateValue.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/corePluginList.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/util/configurePlugins.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/stubs/defaultConfig.stub.js","../node_modules/satori/src/vendor/twrnc/log.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/public/colors.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/util/defaults.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/util/toPath.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/util/normalizeConfig.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/util/isPlainObject.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/util/cloneDeep.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/util/unesc.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/util/getProp.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/util/ensureObject.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/util/stripComments.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/util/index.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/node.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/types.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/container.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/root.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/selector.js","../node_modules/satori/node_modules/.pnpm/cssesc@3.0.0/node_modules/cssesc/cssesc.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/className.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/comment.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/id.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/namespace.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/tag.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/string.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/pseudo.js","../node_modules/satori/src/vendor/twrnc/deprecate.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/attribute.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/universal.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/combinator.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/nesting.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/sortAscending.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/tokenTypes.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/tokenize.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/parser.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/processor.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/constructors.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/guards.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/selectors/index.js","../node_modules/satori/node_modules/.pnpm/postcss-selector-parser@6.0.10/node_modules/postcss-selector-parser/dist/index.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/util/escapeCommas.js","../node_modules/satori/node_modules/.pnpm/color-name@1.1.4/node_modules/color-name/index.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/util/color.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/util/withAlphaVariable.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/lib/regex.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/util/splitAtTopLevelOnly.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/util/parseBoxShadowValue.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/util/dataTypes.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/util/pluginUtils.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/util/toColorValue.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/util/resolveConfig.js","../node_modules/satori/src/vendor/twrnc/picocolors.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/featureFlags.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/util/getAllConfigs.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/lib/public/resolve-config.js","../node_modules/satori/node_modules/.pnpm/tailwindcss@3.1.8_postcss@8.4.21/node_modules/tailwindcss/resolveConfig.js","../node_modules/satori/src/yoga/index.ts","../node_modules/satori/src/vendor/parse-css-dimension/index.js","../node_modules/satori/src/utils.ts","../node_modules/satori/src/handler/image.ts","../node_modules/satori/src/handler/preprocess.ts","../node_modules/satori/src/handler/presets.ts","../node_modules/satori/src/handler/inheritable.ts","../node_modules/satori/src/handler/compute.ts","../node_modules/satori/src/builder/transform.ts","../node_modules/satori/src/builder/shadow.ts","../node_modules/satori/src/builder/text-decoration.ts","../node_modules/satori/src/text/characters.ts","../node_modules/satori/src/text/measurer.ts","../node_modules/satori/src/text/processor.ts","../node_modules/satori/src/text/index.ts","../node_modules/satori/src/builder/gradient/utils.ts","../node_modules/satori/src/builder/gradient/linear.ts","../node_modules/satori/src/builder/gradient/radial.ts","../node_modules/satori/src/builder/background-image.ts","../node_modules/satori/src/builder/border-radius.ts","../node_modules/satori/src/builder/border.ts","../node_modules/satori/src/builder/content-mask.ts","../node_modules/satori/src/builder/clip-path.ts","../node_modules/satori/src/builder/overflow.ts","../node_modules/satori/src/builder/mask-image.ts","../node_modules/satori/src/builder/rect.ts","../node_modules/satori/node_modules/.pnpm/emoji-regex@10.2.1/node_modules/emoji-regex/index.mjs","../node_modules/satori/src/language.ts","../node_modules/satori/src/layout.ts","../node_modules/satori/src/font.ts","../node_modules/satori/src/builder/svg.ts","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/create.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/types.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/helpers.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/styles.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/cache.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/resolve/font-size.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/resolve/line-height.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/resolve/spacing.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/screens.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/resolve/font-family.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/resolve/color.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/resolve/borders.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/resolve/inset.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/resolve/flex.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/resolve/width-height.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/resolve/letter-spacing.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/resolve/opacity.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/resolve/shadow.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/ClassParser.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/parse-inputs.js","../node_modules/satori/node_modules/.pnpm/twrnc@3.4.0_postcss@8.4.21_react-native@0.72.4/node_modules/twrnc/dist/esm/plugin.js","../node_modules/satori/src/handler/tailwind.ts","../node_modules/satori/src/satori.ts","../src/emitter.tsx","../node_modules/@quartz-community/types/src/index.ts","../node_modules/@quartz-community/utils/src/emoji.ts","../node_modules/@quartz-community/utils/src/sort.ts","../src/theme.ts","../src/emoji.ts"],"names":["exports","bits","lengths","d","offs","m","decode","l","v","max","parse","x","matchString","matchColor","noopToken","valueForTypeToken","regExpToken","transform","aspectRatio","border","borderWidth","borderColor","directionFactory","keyFor","parseShadowOffset","parseShadow","boxShadow","flex","flexFlow","fontFamily","font","fontWeight","fontVariant","placeContent","textDecoration","textDecorationLine","textShadow","oneOfType","xyTransformFactory","transforms","background","shadowOffset","textShadowOffset","TokenStream","transformRawValue","baseTransformShorthandValue","getStylesForProperty","getPropertyName","index","number","E","_","T","N","O","u","r","e","k","a","i","n","f","t","b","o","c","s","A","h","p","w","y","G","R","g","Z","W","V","B","I","X","L","F","C","S","P","Y","U","M","H","Q","z","j","D","J","K","q","$","rr","re","ra","ri","rn","rf","rb","rk","rA","rl","rd","rh","rp","rN","rw","rG","rX","rL","r_","rF","rC","rY","rH","rz","rD","rx","rJ","rK","rq","r$","r0","r2","r1","r4","r3","r8","r9","r7","er","ei","ef","et","eb","eo","ek","rP","rS","rM","rU","rZ","rW","eu","ro","rV","rs","rQ","rc","ry","ru","rO","rg","rt","rB","rv","rm","rE","rj","r5","rI","rR","rT","el","ec","readingTime","require_reading_time","$hJqJp$base64js","$hJqJp$unicodetrie","percentage","hex2Rgb","colorName","import_css_to_react_native","split","input","separator","result","parenCount","resolveStops","stops","color","offset","isHint","resolveLength","REGEX","value","unit","parseLinearGradient","repeating","props","properties","orientation","resolveLinearOrientation","angle","rgExtentKeyword","positionKeyword","isRgExtentKeyword","isPositionKeyWord","extendPosition","res","parseRadialGradient","isColor","prefix","shape","size","position","le","st","sl","bl","bt","tl","let","const","arguments","cmap","path","parseGlyph","buildPath","parseCFFCharstring","langSysTable","pair","loca","ci","this","subtable","gsub","singleSubstitutionFormat1","singleSubstitutionFormat2","chainingSubstitutionFormat3","ligatureSubstitutionFormat1","getContextParams","check","HintingTrueType","meta","code","charString","gdef","subtableParsers","parseLookup1","parseLookup2","parseLookup3","parseLookup4","parseLookup5","glyphCount","substCount","parseLookup6","parseLookup7","parseLookup8","head","hhea","maxp","os2","post","yoga_prebuilt_exports","__export","getYogaModule","initYoga","init_yoga_prebuilt","__esmMin","require_negateValue","__commonJSMin","_default","sign","require_corePluginList","require_configurePlugins","pluginConfig","plugins","pluginName","require_defaultConfig_stub","module","colors","theme","breakpoints","log_exports","log_default","init_log","key","messages","require_colors","_log","_interopRequireDefault","obj","warn","version","from","to","require_defaults","defaults","target","sources","source","ref","k1","ref1","require_toPath","toPath","openBrackets","closedBrackets","require_normalizeConfig","normalizeConfig","_interopRequireWildcard","_getRequireWildcardCache","nodeInterop","cacheBabelInterop","cacheNodeInterop","cache","newObj","hasPropertyDescriptor","desc","config","value1","content","purge","safelist","_prefix","extract","ref2","ref3","ref4","ref5","ref6","ref7","ref8","ref9","extractors","defaultExtractor","extensions","extractor","extension","transformers","file","require_isPlainObject","isPlainObject","prototype","require_cloneDeep","cloneDeep","child","require_unesc","unesc","gobbleHex","str","lower","hex","spaceTerminated","valid","codePoint","isSurrogate","CONTAINS_ESCAPE","needToProcess","ret","gobbled","require_getProp","getProp","_len","_key","prop","require_ensureObject","ensureObject","require_stripComments","stripComments","commentStart","lastEnd","commentEnd","require_util","_unesc","_getProp","_ensureObject","_stripComments","require_node","_util","_defineProperties","descriptor","_createClass","Constructor","protoProps","staticProps","cloneNode","parent","cloned","type","Node","opts","_proto","overrides","name","valueEscaped","originalValue","originalEscaped","line","column","rawSpace","raw","require_types","TAG","STRING","SELECTOR","ROOT","PSEUDO","NESTING","ID","COMMENT","COMBINATOR","CLASS","ATTRIBUTE","UNIVERSAL","require_container","_node","types","_createForOfIteratorHelperLoose","allowArrayLike","it","_unsupportedIterableToArray","minLen","_arrayLikeToArray","arr","len","arr2","_inheritsLoose","subClass","superClass","_setPrototypeOf","Container","_Node","_this","selector","id","_iterator","_step","node","oldNode","newNode","oldIndex","col","found","foundChild","callback","_this2","_this3","_this4","_this5","_this6","_this7","_this8","_this9","_this10","_this11","current","memo","require_root","_container","_types","Root","_Container","message","options","handler","require_selector","Selector","require_cssesc","object","hasOwnProperty","merge","regexAnySingleEscape","regexSingleEscape","regexExcessiveSpaces","cssesc","string","quote","isIdentifier","firstChar","output","counter","length","character","extra","$0","$1","$2","require_className","_cssesc","ClassName","escaped","require_comment","Comment","require_id","require_namespace","Namespace","namespace","ns","require_tag","_namespace","Tag","_Namespace","require_string","String","require_pseudo","Pseudo","params","require_deprecate","fn","args","require_attribute","unescapeValue","_CSSESC_QUOTE_OPTIONS","deprecate","WRAPPED_IN_QUOTES","warnOfDeprecatedValueAssignment","warnOfDeprecatedQuotedAssignment","warnOfDeprecatedConstructor","deprecatedUsage","quoteMark","unescaped","handleDeprecatedContructorOpts","_unescapeValue","Attribute","cssescopts","CSSESC_QUOTE_OPTIONS","numSingleQuotes","numDoubleQuotes","pref","quoteValue","rawValue","attrSpaces","spaces","rawSpaces","spaceName","concat","defaultAttrConcat","count","attributeSpaces","operatorSpaces","operator","valueSpaces","insensitiveSpaces","attrValue","qm","_unescapeValue2","require_universal","Universal","require_combinator","Combinator","require_nesting","Nesting","require_sortAscending","sortAscending","list","require_tokenTypes","ampersand","asterisk","at","comma","colon","semicolon","openParenthesis","closeParenthesis","openSquare","closeSquare","dollar","tilde","caret","plus","equals","pipe","greaterThan","space","singleQuote","doubleQuote","slash","bang","backslash","cr","feed","newline","tab","comment","word","combinator","require_tokenize","tokenize","_unescapable","_wordDelimiters","unescapable","wordDelimiters","hexChars","consumeWord","css","start","next","consumeEscape","hexDigits","FIELDS","tokens","_css","end","endColumn","endLine","escapePos","last","lines","nextLine","nextOffset","tokenType","unclosed","what","fix","require_parser","_root","_selector","_className","_comment","_id","_tag","_string","_pseudo","_attribute","_universal","_combinator","_nesting","_sortAscending","_tokenize","_WHITESPACE_TOKENS","_Object$assign","WHITESPACE_TOKENS","WHITESPACE_EQUIV_TOKENS","tokenStart","token","tokenEnd","getSource","startLine","startColumn","getTokenSource","getTokenSourceSpan","startToken","endToken","unescapeProp","indexesOf","array","item","indexes","uniqs","Parser","rule","rootSource","errorOptions","attr","startingToken","pos","spaceBefore","commentBefore","lastAdded","spaceAfterMeaningfulToken","prevContent","existingComment","oldRawValue","_rawValue","_unescaped","_oldRawValue","oldValue","insensitive","lastComment","rawLastComment","lastValue","rawLastValue","stopPosition","startPosition","nodes","firstToken","lastToken","requiredSpace","rawSpaceBefore","nameRaw","raws","nextSigTokenPos","_this$convertWhitespa","spaceOrDescendantSelectorNodes","_this$convertWhitespa2","_space","_rawSpace","_this$convertWhitespa3","_space2","_rawSpace2","before","nextContent","unbalanced","parenStart","parenValue","parenEnd","pseudoStr","first","nextToken","firstCallback","hasClass","escapedDot","isKeyframesPercent","hasId","interpolations","hashIndex","indices","ind","sourceIndex","classNameOpts","idOpts","tagOpts","throwOnParenthesis","description","an","required","searchPosition","require_processor","_parser","Processor","func","merged","parser","resolve","reject","root","require_constructors","attribute","className","nesting","pseudo","tag","universal","require_guards","isNode","isPseudoElement","isPseudoClass","isContainer","isNamespace","_IS_TYPE","IS_TYPE","isNodeType","isAttribute","isClassName","isCombinator","isComment","isNesting","isPseudo","isRoot","isSelector","isString","isTag","isUniversal","require_selectors","_constructors","_guards","require_dist","_processor","selectors","processor","require_escapeCommas","escapeCommas","require_color_name","require_color","_export","all","parseColor","formatColor","_colorName","HEX","SHORT_HEX","VALUE","SEP","ALPHA_SEP","CUSTOM_PROPERTY","RGB","HSL","loose","match","part","mode","alpha","hasAlpha","require_withAlphaVariable","withAlphaValue","withAlphaVariable","_color","alphaValue","defaultValue","parsed","property","variable","require_regex","pattern","withoutCapturing","any","optional","zeroOrMore","nestedBrackets","escape","REGEX_SPECIAL","REGEX_HAS_SPECIAL","toSource","open","close","depth","require_splitAtTopLevelOnly","splitAtTopLevelOnly","_regex","SPECIALS","lastIndex","separatorIndex","separatorStart","separatorLength","matchesSeparator","atEndOfSeparator","matchesFullSeparator","require_parseBoxShadowValue","parseBoxShadowValue","formatBoxShadowValue","_splitAtTopLevelOnly","KEYWORDS","SPACE","LENGTH","shadow","parts","seen","shadows","require_dataTypes","normalize","url","lineWidth","image","gradient","familyName","genericName","absoluteSize","relativeSize","_parseBoxShadowValue","cssFunctions","COMMA","UNDERSCORE","fullMatch","characterBefore","lengthUnits","lengthUnitsPattern","lineWidths","parsedShadows","parsedShadow","images","gradientTypes","validPositions","positions","fonts","genericNames","absoluteSizes","relativeSizes","require_pluginUtils","updateAllClasses","asValue","parseColorFormat","asColor","asLookupValue","coerceValue","_postcssSelectorParser","_escapeCommas","_withAlphaVariable","_dataTypes","_negateValue","updateClass","sel","updatedClass","resolveArbitraryValue","modifier","validate","isArbitraryValue","asNegativeValue","lookup","positiveValue","resolved","splitAlpha","slashIdx","opacityValue","tailwindConfig","normalizedColor","guess","typeMap","supportedTypes","splitAtFirst","delim","idx","arbitraryValue","explicitType","require_toColorValue","toColorValue","maybeFunction","require_resolveConfig","resolveConfig","_corePluginList","_configurePlugins","_defaultConfigStub","_colors","_defaults","_toPath","_normalizeConfig","_isPlainObject","_cloneDeep","_pluginUtils","_toColorValue","isFunction","isObject","mergeWith","customizer","configUtils","scale","negativeScale","negativeValue","screens","valueToResolve","collectExtends","items","extend","mergedValue","extendValue","mergeThemes","themes","mergeExtensionCustomizer","mergeExtensions","themeValue","resolveThemePath","utils","toPaths","matches","newPath","resolveFunctionKeys","resolvePath","val","normalized","extractPluginConfigs","configs","allConfigs","plugin","resolveCorePlugins","corePluginConfigs","corePluginConfig","resolvePluginLists","pluginLists","pluginList","picocolors_exports","picocolors_default","init_picocolors","require_featureFlags","flagEnabled","issueFlagNotices","_picocolors","featureFlags","flag","experimentalFlagsEnabled","changes","require_getAllConfigs","getAllConfigs","_defaultConfigStubJs","_featureFlags","preset","features","experimentals","feature","require_resolve_config","_resolveConfig","_getAllConfigs","defaultConfigs","yogaInstance","initializationPromise","getYoga","mod","yoga","isReactElement","isClass","hasDangerouslySetInnerHTMLProp","normalizeChildren","children","flattend","lengthToNumber","baseFontSize","baseLength","inheritedStyle","calcDegree","deg","multiply","m1","m2","field","map","fallback","errorIfNotAllowedForProperty","_v","wordSegmenter","graphemeSegmenter","wordSeparators","point","segment","granularity","locale","seg","segmented","previousWord","nextWord","buildXMLString","attrs","attrString","createLRU","store","set","keyToDelete","get","entry","clear","parseViewBox","viewBox","toString","isNumber","isUndefined","splitByBreakOpportunities","wordBreak","breaker","LineBreaker","bk","words","requiredBreaks","midline","letter","splitEffects","AVIF","WEBP","APNG","PNG","JPEG","GIF","SVG","parseJPEG","buf","view","parseGIF","parsePNG","inflightRequests","ALLOWED_IMAGE_TYPES","arrayBufferToBase64","buffer","binary","bytes","base64ToArrayBuffer","base64","binaryString","parseSvgImageSize","src","data","svgTag","viewBoxStr","width","height","ratio","arrayBufferToDataUri","imageSize","imageType","detectContentType","resolveImageData","newSrc","decodedURI","encodingType","dataString","utf8Src","base64Src","cached","promise","err","detectAPNG","dv","off","isAPNG","chars","ATTRIBUTE_MAPPING","SVGSymbols","translateSVGNodeToSVGString","inheritedColor","style","restProps","currentColor","styles","preProcessNode","walk","SVGNodeToImage","viewbox","viewBoxSize","DEFAULT_DISPLAY","presets_default","inheritable","parseUnit","handleWord","unitIsHorizontal","parsedUnit","parseTransformOrigin","valueParser","getMaskProperty","parseMask","maskImage","common","optOutPx","keepNumber","handleFallbackColor","rawInput","purify","num","handleSpecialCase","horizontal","vertical","vh","vv","purified","full","parseBoxShadow","symbols","replaced","symbol","values","getErrorHint","RGB_SLASH","normalizeColor","expand","serializedStyle","getCurrentColor","preprocess","resolvedStyle","backgrounds","parseElementStyle","calcBaseFontSize","textShadowRadius","inheritedSize","refineHSL","cssColorParse","convertCurrentColorToActualValue","compute","definedStyle","Yoga","resolvedSrc","imageWidth","imageHeight","extraHorizontal","extraVertical","contentBoxWidth","contentBoxHeight","isAbsoluteContentSize","baseMatrix","resolveTransforms","matrix","transformMatrix","rad","left","top","isInheritingTransform","transformOrigin","xOrigin","yOrigin","container","opacity","buildText","filter","clipPathId","debug","decorationShape","shapeProps","escapeHTML","shiftPath","dx","dy","command","SCALE","buildDropShadow","shadowCount","effects","right","bottom","grow","innerShadow","shadowStyle","sid","maskId","shapeWithSpread","finalShape","buildDecoration","ascender","textDecorationColor","textDecorationStyle","fontSize","dasharray","stringFromCode","Space","Tab","HorizontalEllipsis","genMeasurer","engine","isImage","letterSpacing","measureGrapheme","grapheme","measureGraphemeArray","graphemes","measureText","text","textTransform","whiteSpace","processTextTransform","processedContent","shouldCollapseTabsAndSpaces","allowSoftWrap","processWhiteSpace","allowBreakWord","processWordBreak","lineLimit","blockEllipsis","processTextOverflow","textOverflow","lineClamp","WebkitLineClamp","WebkitBoxOrient","overflow","display","parseLineClamp","shouldKeepLinebreak","regex1","regex2","match1","match2","skippedWordWhenFindingMissingFont","shouldSkipWhenFindingMissingFont","buildTextNodes","context","parentStyle","embedFont","graphemeImages","canLoadAdditionalAssets","textAlign","lineHeight","textWrap","cssFilter","tabSize","_inheritedBackgroundClipTextPath","flexShrink","textContainer","createTextContainerNode","wordsMissingFont","tabWidth","calc","currentWidth","tabCount","detectTabs","originWidth","textBeforeTab","textAfterTab","textWidthBeforeTab","offsetBeforeTab","afterTrimEndWidth","baselines","lineSegmentNumber","texts","wordPositionInLayout","flow","maxWidth","lineIndex","currentLineHeight","currentBaselineOffset","prevLineEndingSpacesWidth","forceBreak","endingSpacesWidth","_word","lineEndingSpacesWidth","allowedToPutAtBeginning","allowedToJustify","willWrap","glyphHeight","_texts","_text","_width","_isImage","measuredTextSize","containerWidth","mHeight","backgroundClipDef","overflowMaskId","containerLeft","containerTop","containerHeight","parentContainerInnerWidth","textShadowColor","mergedPath","skippedLine","decorationLines","wordBuffer","bufferedOffset","layout","nextLayout","isLastDisplayedBeforeEllipsis","topOffset","leftOffset","extendedWidth","remainingWidth","segments","gutter","baselineOfLine","baselineOfWord","heightOfWord","baselineDelta","calcEllipsis","baseWidth","subset","resolvedWidth","char","ellipsisWidth","_blockEllipsis","spaceWidth","isNotLastLine","nextLineText","finalizedSegment","finalizedLeftOffset","finalizedWidth","deco","normalizeStops","totalLength","colorStops","stop","lastStop","previousStop","nextStop","buildLinearGradient","repeatX","repeatY","dimensions","offsets","inheritableStyle","points","xys","resolveXYFromDirection","calcNormalPoint","calcPercentage","resolveRepeatingCycle","gradientId","patternId","defs","dir","x1","y1","x2","y2","tmp","dfs","p1","p2","sx","sy","ex","ey","buildRadialGradient","_a","xDelta","yDelta","cx","cy","calcRadialGradient","spread","calcRadius","calcPos","endingShape","centerAxis","fx","fy","isSizeAllLength","toAbsoluteValue","base","parseLengthPairs","defaultX","defaultY","backgroundImage","repeat","dimensionsWithoutFallback","resolvedHeight","svgArcCenterOffset","resolveSize","limit","makeSmaller","resolveRadius","sides","singleValue","radiusZeroOrNull","_radius","getBorderRadiusClipPath","borderRadiusPath","borderType","rectClipId","radius","partialSides","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","singleAbsValueTopLeftCorner","singleAbsValueTopRightCorner","singleAbsValueBottomLeftCorner","singleAbsValueBottomRightCorner","getArc","c0","arc0","arc1","compareBorderDirections","getBorderClipPath","currentClipPathId","borderPath","asContentMask","maskBorderOnly","directions","direction","fullBorder","currentStyle","_i","ni","nd","contentMask","borderOnly","offsetLeft","offsetTop","offsetRight","offsetBottom","contentArea","regexMap","createShapeParser","parseCircle","resolvePosition","parseEllipse","parsePath","fillRule","resolveFillRule","parsePolygon","parseInset","inset","radiusMap","genClipPathId","genClipPath","buildClipPath","clipPath","rest","currentClipPath","overflowClipPath","genMaskImageId","buildMaskImage","miId","mask","def","rect","fills","backgroundShapes","mi","backgroundClip","clip","fill","borderClip","imageBorderRadius","preserveAspectRatio","emoji_regex_default","emojiRegex","specialCode","locales","isValidLocale","detectLanguageCode","languages","lang","normalizeLocale","element","getTwStyles","iter","tw","_newLocale","newLocale","twStyles","computedStyle","newInheritableStyle","mutateRefValue","normalizedChildren","iterators","segmentsMissingFont","childrenRenderResult","baseRenderResult","depsRenderResult","childrenNode","SUFFIX_WHEN_LANG_NOT_SET","compareFont","weight","matchedWeight","matchedStyle","nextWeight","nextStyle","FontLoader","fontOptions","matchedFont","weight1","style1","weight2","style2","fontOption","_lang","opentype","originalCharToGlyphIndex","_name","fontStyle","face","getNormal","getUnknown","keys","specifiedLangFonts","nonSpecifiedLangFonts","additionalFonts","getLangFromFontName","cachedFontResolver","resolveFont","_fonts","_font","resolvedFont","useOS2Table","_b","descender","_lineGap","asc","contentHeight","brokenChars","originalStringToGlyphs","glyphs","anotherFont","glyph","scaledCommand","unpatch","svg","import_resolveConfig","PLATFORMS","isPlatform","ORIENTATIONS","isOrientation","ConfigType","Unit","complete","parseNumericValue","fractions","numerator","denominator","parsedNumerator","parsedDenominator","getCompleteStyle","styleVal","parseStyleVal","mergeStyle","getStyle","toStyleVal","isNegative","device","toPx","DIR_MAP","getDirection","parseAndConsumeDirection","utilityFragment","parseUnconfigged","unconfiggedStyleVal","unconfiggedStyle","consoleWarn","noopWarn","defaultStyles","styles_default","Cache","customStyles","ir","configValue","fontSizeStyle","calculateLineHeight","parseValue","spacing","numericValue","unconfigged","spacingStyle","pixels","screenData","acc","screen","minPx","maxPx","minA","maxA","minB","maxB","order","firstFamily","shorthandOpacity","findColorInConfigRecursive","addOpacity","STYLE_PROPS","opacityProp","colorOpacity","hexToRgba","removeOpacityHelpers","orig","MATCH_SHORT_HEX","MATCH_FULL_HEX","configColor","colorNameStart","colorNameRest","subConfig","colorType","colorStyle","arbitraryWidth","borderRadius","arbitrary","insetDir","insetStyle","flexGrowShrink","configKey","flexBasis","widthHeight","minMaxWidthHeight","relativeLetterSpacing","ems","parsedConfig","parsedArbitrary","shadowOpacity","widthStr","heightStr","offsetValue","ClassParser","platform","_c","_d","_e","_f","prefixes","widthBreakpoints","breakpointOrder","windowWidth","min","spacingDirection","elevation","zIndex","windowDims","amount","checkDimension","parsedAmount","bound","begin","parseInputs","inputs","classNames","unique","classes","getAddedUtilities","callPluginFunction","pluginFn","added","utilities","core","notImplemented","create","customConfig","withContent","pluginUtils","customStringUtils","customStyleUtils","util","deriveCacheGroup","cacheGroup","contextCaches","getCache","existing","dependents","ordered","userStyle","joined","utility","styleIr","customStyle","orderedStyle","dependent","error","styleObj","tailwindFn","strings","prefixMatches","newDimensions","newFontScale","newPixelDensity","newColorScheme","defaultShadows","addUtilities","createTw","getTw","fontCache","satori","definedWidth","definedHeight","processedWordsMissingFonts","languageCodes","convertToLanguageCodes","_segment","asset","computedWidth","computedHeight","wordsByCode","U200D","fs","jsxs","jsx","slug","Fragment"],"mappings":"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AQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA;;AACjQ,EAAA;AAAC,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAAA;AAAQ,IAAA,yCAA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AAK,MAAI6Q,EAAAA,EACZ,CAAA;AACD,EAAA,IAAMA,KAAW,CACb,WAAA,EACA,aACA,eAAA,EACA,eAAA,EACA,cACA,UAAA,EACA,OAAA,EACA,WAAA,EACA,QAAA,EACA,SACA,YAAA,EACA,iBAAA,EACA,iBACA,SAAA,EACA,cAAA,EACA,cACA,OAAA,EACA,OAAA,EACA,QAAA,EACA,WAAA,EACA,WACA,aAAA,EACA,QAAA,EACA,aACA,WAAA,EACA,OAAA,EACA,YACA,UAAA,EACA,MAAA,EACA,YAAA,EACA,UAAA,EACA,aACA,aAAA,EACA,gBAAA,EACA,iBACA,iBAAA,EACA,WAAA,EACA,UACA,MAAA,EACA,OAAA,EACA,WAAA,EACA,WAAA,EACA,UACA,aAAA,EACA,YAAA,EACA,UACA,gBAAA,EACA,iBAAA,EACA,kBACA,cAAA,EACA,eAAA,EACA,mBAAA,EACA,eAAA,EACA,cACA,SAAA,EACA,aAAA,EACA,eACA,YAAA,EACA,iBAAA,EACA,gBACA,cAAA,EACA,qBAAA,EACA,kBAAA,EACA,eAAA,EACA,YACA,cAAA,EACA,YAAA,EACA,gBACA,YAAA,EACA,gBAAA,EACA,gBACA,KAAA,EACA,OAAA,EACA,aAAA,EACA,aAAA,EACA,eACA,eAAA,EACA,WAAA,EACA,aACA,aAAA,EACA,UAAA,EACA,sBACA,gBAAA,EACA,cAAA,EACA,YAAA,EACA,WAAA,EACA,gBACA,aAAA,EACA,aAAA,EACA,eACA,eAAA,EACA,iBAAA,EACA,qBACA,iBAAA,EACA,oBAAA,EACA,oBAAA,EACA,gBAAA,EACA,wBACA,gBAAA,EACA,oBAAA,EACA,oBACA,kBAAA,EACA,MAAA,EACA,UACA,aAAA,EACA,WAAA,EACA,gBAAA,EACA,SAAA,EACA,aACA,YAAA,EACA,eAAA,EACA,cACA,UAAA,EACA,YAAA,EACA,iBACA,WAAA,EACA,oBAAA,EACA,YAAA,EACA,eAAA,EACA,aACA,aAAA,EACA,gBAAA,EACA,uBACA,qBAAA,EACA,yBAAA,EACA,uBACA,eAAA,EACA,kBAAA,EACA,oBA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","file":"index.js","sourcesContent":["var TINF_OK = 0;\nvar TINF_DATA_ERROR = -3;\n\nfunction Tree() {\n this.table = new Uint16Array(16); /* table of code length counts */\n this.trans = new Uint16Array(288); /* code -> symbol translation table */\n}\n\nfunction Data(source, dest) {\n this.source = source;\n this.sourceIndex = 0;\n this.tag = 0;\n this.bitcount = 0;\n \n this.dest = dest;\n this.destLen = 0;\n \n this.ltree = new Tree(); /* dynamic length/symbol tree */\n this.dtree = new Tree(); /* dynamic distance tree */\n}\n\n/* --------------------------------------------------- *\n * -- uninitialized global data (static structures) -- *\n * --------------------------------------------------- */\n\nvar sltree = new Tree();\nvar sdtree = new Tree();\n\n/* extra bits and base tables for length codes */\nvar length_bits = new Uint8Array(30);\nvar length_base = new Uint16Array(30);\n\n/* extra bits and base tables for distance codes */\nvar dist_bits = new Uint8Array(30);\nvar dist_base = new Uint16Array(30);\n\n/* special ordering of code length codes */\nvar clcidx = new Uint8Array([\n 16, 17, 18, 0, 8, 7, 9, 6,\n 10, 5, 11, 4, 12, 3, 13, 2,\n 14, 1, 15\n]);\n\n/* used by tinf_decode_trees, avoids allocations every call */\nvar code_tree = new Tree();\nvar lengths = new Uint8Array(288 + 32);\n\n/* ----------------------- *\n * -- utility functions -- *\n * ----------------------- */\n\n/* build extra bits and base tables */\nfunction tinf_build_bits_base(bits, base, delta, first) {\n var i, sum;\n\n /* build bits table */\n for (i = 0; i < delta; ++i) bits[i] = 0;\n for (i = 0; i < 30 - delta; ++i) bits[i + delta] = i / delta | 0;\n\n /* build base table */\n for (sum = first, i = 0; i < 30; ++i) {\n base[i] = sum;\n sum += 1 << bits[i];\n }\n}\n\n/* build the fixed huffman trees */\nfunction tinf_build_fixed_trees(lt, dt) {\n var i;\n\n /* build fixed length tree */\n for (i = 0; i < 7; ++i) lt.table[i] = 0;\n\n lt.table[7] = 24;\n lt.table[8] = 152;\n lt.table[9] = 112;\n\n for (i = 0; i < 24; ++i) lt.trans[i] = 256 + i;\n for (i = 0; i < 144; ++i) lt.trans[24 + i] = i;\n for (i = 0; i < 8; ++i) lt.trans[24 + 144 + i] = 280 + i;\n for (i = 0; i < 112; ++i) lt.trans[24 + 144 + 8 + i] = 144 + i;\n\n /* build fixed distance tree */\n for (i = 0; i < 5; ++i) dt.table[i] = 0;\n\n dt.table[5] = 32;\n\n for (i = 0; i < 32; ++i) dt.trans[i] = i;\n}\n\n/* given an array of code lengths, build a tree */\nvar offs = new Uint16Array(16);\n\nfunction tinf_build_tree(t, lengths, off, num) {\n var i, sum;\n\n /* clear code length count table */\n for (i = 0; i < 16; ++i) t.table[i] = 0;\n\n /* scan symbol lengths, and sum code length counts */\n for (i = 0; i < num; ++i) t.table[lengths[off + i]]++;\n\n t.table[0] = 0;\n\n /* compute offset table for distribution sort */\n for (sum = 0, i = 0; i < 16; ++i) {\n offs[i] = sum;\n sum += t.table[i];\n }\n\n /* create code->symbol translation table (symbols sorted by code) */\n for (i = 0; i < num; ++i) {\n if (lengths[off + i]) t.trans[offs[lengths[off + i]]++] = i;\n }\n}\n\n/* ---------------------- *\n * -- decode functions -- *\n * ---------------------- */\n\n/* get one bit from source stream */\nfunction tinf_getbit(d) {\n /* check if tag is empty */\n if (!d.bitcount--) {\n /* load next tag */\n d.tag = d.source[d.sourceIndex++];\n d.bitcount = 7;\n }\n\n /* shift bit out of tag */\n var bit = d.tag & 1;\n d.tag >>>= 1;\n\n return bit;\n}\n\n/* read a num bit value from a stream and add base */\nfunction tinf_read_bits(d, num, base) {\n if (!num)\n return base;\n\n while (d.bitcount < 24) {\n d.tag |= d.source[d.sourceIndex++] << d.bitcount;\n d.bitcount += 8;\n }\n\n var val = d.tag & (0xffff >>> (16 - num));\n d.tag >>>= num;\n d.bitcount -= num;\n return val + base;\n}\n\n/* given a data stream and a tree, decode a symbol */\nfunction tinf_decode_symbol(d, t) {\n while (d.bitcount < 24) {\n d.tag |= d.source[d.sourceIndex++] << d.bitcount;\n d.bitcount += 8;\n }\n \n var sum = 0, cur = 0, len = 0;\n var tag = d.tag;\n\n /* get more bits while code value is above sum */\n do {\n cur = 2 * cur + (tag & 1);\n tag >>>= 1;\n ++len;\n\n sum += t.table[len];\n cur -= t.table[len];\n } while (cur >= 0);\n \n d.tag = tag;\n d.bitcount -= len;\n\n return t.trans[sum + cur];\n}\n\n/* given a data stream, decode dynamic trees from it */\nfunction tinf_decode_trees(d, lt, dt) {\n var hlit, hdist, hclen;\n var i, num, length;\n\n /* get 5 bits HLIT (257-286) */\n hlit = tinf_read_bits(d, 5, 257);\n\n /* get 5 bits HDIST (1-32) */\n hdist = tinf_read_bits(d, 5, 1);\n\n /* get 4 bits HCLEN (4-19) */\n hclen = tinf_read_bits(d, 4, 4);\n\n for (i = 0; i < 19; ++i) lengths[i] = 0;\n\n /* read code lengths for code length alphabet */\n for (i = 0; i < hclen; ++i) {\n /* get 3 bits code length (0-7) */\n var clen = tinf_read_bits(d, 3, 0);\n lengths[clcidx[i]] = clen;\n }\n\n /* build code length tree */\n tinf_build_tree(code_tree, lengths, 0, 19);\n\n /* decode code lengths for the dynamic trees */\n for (num = 0; num < hlit + hdist;) {\n var sym = tinf_decode_symbol(d, code_tree);\n\n switch (sym) {\n case 16:\n /* copy previous code length 3-6 times (read 2 bits) */\n var prev = lengths[num - 1];\n for (length = tinf_read_bits(d, 2, 3); length; --length) {\n lengths[num++] = prev;\n }\n break;\n case 17:\n /* repeat code length 0 for 3-10 times (read 3 bits) */\n for (length = tinf_read_bits(d, 3, 3); length; --length) {\n lengths[num++] = 0;\n }\n break;\n case 18:\n /* repeat code length 0 for 11-138 times (read 7 bits) */\n for (length = tinf_read_bits(d, 7, 11); length; --length) {\n lengths[num++] = 0;\n }\n break;\n default:\n /* values 0-15 represent the actual code lengths */\n lengths[num++] = sym;\n break;\n }\n }\n\n /* build dynamic trees */\n tinf_build_tree(lt, lengths, 0, hlit);\n tinf_build_tree(dt, lengths, hlit, hdist);\n}\n\n/* ----------------------------- *\n * -- block inflate functions -- *\n * ----------------------------- */\n\n/* given a stream and two trees, inflate a block of data */\nfunction tinf_inflate_block_data(d, lt, dt) {\n while (1) {\n var sym = tinf_decode_symbol(d, lt);\n\n /* check for end of block */\n if (sym === 256) {\n return TINF_OK;\n }\n\n if (sym < 256) {\n d.dest[d.destLen++] = sym;\n } else {\n var length, dist, offs;\n var i;\n\n sym -= 257;\n\n /* possibly get more bits from length code */\n length = tinf_read_bits(d, length_bits[sym], length_base[sym]);\n\n dist = tinf_decode_symbol(d, dt);\n\n /* possibly get more bits from distance code */\n offs = d.destLen - tinf_read_bits(d, dist_bits[dist], dist_base[dist]);\n\n /* copy match */\n for (i = offs; i < offs + length; ++i) {\n d.dest[d.destLen++] = d.dest[i];\n }\n }\n }\n}\n\n/* inflate an uncompressed block of data */\nfunction tinf_inflate_uncompressed_block(d) {\n var length, invlength;\n var i;\n \n /* unread from bitbuffer */\n while (d.bitcount > 8) {\n d.sourceIndex--;\n d.bitcount -= 8;\n }\n\n /* get length */\n length = d.source[d.sourceIndex + 1];\n length = 256 * length + d.source[d.sourceIndex];\n\n /* get one's complement of length */\n invlength = d.source[d.sourceIndex + 3];\n invlength = 256 * invlength + d.source[d.sourceIndex + 2];\n\n /* check length */\n if (length !== (~invlength & 0x0000ffff))\n return TINF_DATA_ERROR;\n\n d.sourceIndex += 4;\n\n /* copy block */\n for (i = length; i; --i)\n d.dest[d.destLen++] = d.source[d.sourceIndex++];\n\n /* make sure we start next block on a byte boundary */\n d.bitcount = 0;\n\n return TINF_OK;\n}\n\n/* inflate stream from source to dest */\nfunction tinf_uncompress(source, dest) {\n var d = new Data(source, dest);\n var bfinal, btype, res;\n\n do {\n /* read final block flag */\n bfinal = tinf_getbit(d);\n\n /* read block type (2 bits) */\n btype = tinf_read_bits(d, 2, 0);\n\n /* decompress block */\n switch (btype) {\n case 0:\n /* decompress uncompressed block */\n res = tinf_inflate_uncompressed_block(d);\n break;\n case 1:\n /* decompress block with fixed huffman trees */\n res = tinf_inflate_block_data(d, sltree, sdtree);\n break;\n case 2:\n /* decompress block with dynamic huffman trees */\n tinf_decode_trees(d, d.ltree, d.dtree);\n res = tinf_inflate_block_data(d, d.ltree, d.dtree);\n break;\n default:\n res = TINF_DATA_ERROR;\n }\n\n if (res !== TINF_OK)\n throw new Error('Data error');\n\n } while (!bfinal);\n\n if (d.destLen < d.dest.length) {\n if (typeof d.dest.slice === 'function')\n return d.dest.slice(0, d.destLen);\n else\n return d.dest.subarray(0, d.destLen);\n }\n \n return d.dest;\n}\n\n/* -------------------- *\n * -- initialization -- *\n * -------------------- */\n\n/* build fixed huffman trees */\ntinf_build_fixed_trees(sltree, sdtree);\n\n/* build extra bits and base tables */\ntinf_build_bits_base(length_bits, length_base, 4, 3);\ntinf_build_bits_base(dist_bits, dist_base, 2, 1);\n\n/* fix a special case */\nlength_bits[28] = 0;\nlength_base[28] = 258;\n\nmodule.exports = tinf_uncompress;\n","const isBigEndian = (new Uint8Array(new Uint32Array([0x12345678]).buffer)[0] === 0x12);\n\nconst swap = (b, n, m) => {\n let i = b[n];\n b[n] = b[m];\n b[m] = i;\n};\n\nconst swap32 = array => {\n const len = array.length;\n for (let i = 0; i < len; i += 4) {\n swap(array, i, i + 3);\n swap(array, i + 1, i + 2);\n }\n};\n\nconst swap32LE = array => {\n if (isBigEndian) {\n swap32(array);\n }\n};\n\nmodule.exports = {\n swap32LE: swap32LE\n};\n","const inflate = require('tiny-inflate');\nconst { swap32LE } = require('./swap');\n\n// Shift size for getting the index-1 table offset.\nconst SHIFT_1 = 6 + 5;\n\n// Shift size for getting the index-2 table offset.\nconst SHIFT_2 = 5;\n\n// Difference between the two shift sizes,\n// for getting an index-1 offset from an index-2 offset. 6=11-5\nconst SHIFT_1_2 = SHIFT_1 - SHIFT_2;\n\n// Number of index-1 entries for the BMP. 32=0x20\n// This part of the index-1 table is omitted from the serialized form.\nconst OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> SHIFT_1;\n\n// Number of entries in an index-2 block. 64=0x40\nconst INDEX_2_BLOCK_LENGTH = 1 << SHIFT_1_2;\n\n// Mask for getting the lower bits for the in-index-2-block offset. */\nconst INDEX_2_MASK = INDEX_2_BLOCK_LENGTH - 1;\n\n// Shift size for shifting left the index array values.\n// Increases possible data size with 16-bit index values at the cost\n// of compactability.\n// This requires data blocks to be aligned by DATA_GRANULARITY.\nconst INDEX_SHIFT = 2;\n\n// Number of entries in a data block. 32=0x20\nconst DATA_BLOCK_LENGTH = 1 << SHIFT_2;\n\n// Mask for getting the lower bits for the in-data-block offset.\nconst DATA_MASK = DATA_BLOCK_LENGTH - 1;\n\n// The part of the index-2 table for U+D800..U+DBFF stores values for\n// lead surrogate code _units_ not code _points_.\n// Values for lead surrogate code _points_ are indexed with this portion of the table.\n// Length=32=0x20=0x400>>SHIFT_2. (There are 1024=0x400 lead surrogates.)\nconst LSCP_INDEX_2_OFFSET = 0x10000 >> SHIFT_2;\nconst LSCP_INDEX_2_LENGTH = 0x400 >> SHIFT_2;\n\n// Count the lengths of both BMP pieces. 2080=0x820\nconst INDEX_2_BMP_LENGTH = LSCP_INDEX_2_OFFSET + LSCP_INDEX_2_LENGTH;\n\n// The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\n// Length 32=0x20 for lead bytes C0..DF, regardless of SHIFT_2.\nconst UTF8_2B_INDEX_2_OFFSET = INDEX_2_BMP_LENGTH;\nconst UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; // U+0800 is the first code point after 2-byte UTF-8\n\n// The index-1 table, only used for supplementary code points, at offset 2112=0x840.\n// Variable length, for code points up to highStart, where the last single-value range starts.\n// Maximum length 512=0x200=0x100000>>SHIFT_1.\n// (For 0x100000 supplementary code points U+10000..U+10ffff.)\n//\n// The part of the index-2 table for supplementary code points starts\n// after this index-1 table.\n//\n// Both the index-1 table and the following part of the index-2 table\n// are omitted completely if there is only BMP data.\nconst INDEX_1_OFFSET = UTF8_2B_INDEX_2_OFFSET + UTF8_2B_INDEX_2_LENGTH;\n\n// The alignment size of a data block. Also the granularity for compaction.\nconst DATA_GRANULARITY = 1 << INDEX_SHIFT;\n\nclass UnicodeTrie {\n constructor(data) {\n const isBuffer = (typeof data.readUInt32BE === 'function') && (typeof data.slice === 'function');\n\n if (isBuffer || data instanceof Uint8Array) {\n // read binary format\n let uncompressedLength;\n if (isBuffer) {\n this.highStart = data.readUInt32LE(0);\n this.errorValue = data.readUInt32LE(4);\n uncompressedLength = data.readUInt32LE(8);\n data = data.slice(12);\n } else {\n const view = new DataView(data.buffer);\n this.highStart = view.getUint32(0, true);\n this.errorValue = view.getUint32(4, true);\n uncompressedLength = view.getUint32(8, true);\n data = data.subarray(12);\n }\n\n // double inflate the actual trie data\n data = inflate(data, new Uint8Array(uncompressedLength));\n data = inflate(data, new Uint8Array(uncompressedLength));\n\n // swap bytes from little-endian\n swap32LE(data);\n\n this.data = new Uint32Array(data.buffer);\n\n } else {\n // pre-parsed data\n ({ data: this.data, highStart: this.highStart, errorValue: this.errorValue } = data);\n }\n }\n\n get(codePoint) {\n let index;\n if ((codePoint < 0) || (codePoint > 0x10ffff)) {\n return this.errorValue;\n }\n\n if ((codePoint < 0xd800) || ((codePoint > 0xdbff) && (codePoint <= 0xffff))) {\n // Ordinary BMP code point, excluding leading surrogates.\n // BMP uses a single level lookup. BMP index starts at offset 0 in the index.\n // data is stored in the index array itself.\n index = (this.data[codePoint >> SHIFT_2] << INDEX_SHIFT) + (codePoint & DATA_MASK);\n return this.data[index];\n }\n\n if (codePoint <= 0xffff) {\n // Lead Surrogate Code Point. A Separate index section is stored for\n // lead surrogate code units and code points.\n // The main index has the code unit data.\n // For this function, we need the code point data.\n index = (this.data[LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> SHIFT_2)] << INDEX_SHIFT) + (codePoint & DATA_MASK);\n return this.data[index];\n }\n\n if (codePoint < this.highStart) {\n // Supplemental code point, use two-level lookup.\n index = this.data[(INDEX_1_OFFSET - OMITTED_BMP_INDEX_1_LENGTH) + (codePoint >> SHIFT_1)];\n index = this.data[index + ((codePoint >> SHIFT_2) & INDEX_2_MASK)];\n index = (index << INDEX_SHIFT) + (codePoint & DATA_MASK);\n return this.data[index];\n }\n\n return this.data[this.data.length - DATA_GRANULARITY];\n }\n}\n\nmodule.exports = UnicodeTrie;","var lookup = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n;(function (exports) {\n\t'use strict';\n\n var Arr = (typeof Uint8Array !== 'undefined')\n ? Uint8Array\n : Array\n\n\tvar PLUS = '+'.charCodeAt(0)\n\tvar SLASH = '/'.charCodeAt(0)\n\tvar NUMBER = '0'.charCodeAt(0)\n\tvar LOWER = 'a'.charCodeAt(0)\n\tvar UPPER = 'A'.charCodeAt(0)\n\tvar PLUS_URL_SAFE = '-'.charCodeAt(0)\n\tvar SLASH_URL_SAFE = '_'.charCodeAt(0)\n\n\tfunction decode (elt) {\n\t\tvar code = elt.charCodeAt(0)\n\t\tif (code === PLUS ||\n\t\t code === PLUS_URL_SAFE)\n\t\t\treturn 62 // '+'\n\t\tif (code === SLASH ||\n\t\t code === SLASH_URL_SAFE)\n\t\t\treturn 63 // '/'\n\t\tif (code < NUMBER)\n\t\t\treturn -1 //no match\n\t\tif (code < NUMBER + 10)\n\t\t\treturn code - NUMBER + 26 + 26\n\t\tif (code < UPPER + 26)\n\t\t\treturn code - UPPER\n\t\tif (code < LOWER + 26)\n\t\t\treturn code - LOWER + 26\n\t}\n\n\tfunction b64ToByteArray (b64) {\n\t\tvar i, j, l, tmp, placeHolders, arr\n\n\t\tif (b64.length % 4 > 0) {\n\t\t\tthrow new Error('Invalid string. Length must be a multiple of 4')\n\t\t}\n\n\t\t// the number of equal signs (place holders)\n\t\t// if there are two placeholders, than the two characters before it\n\t\t// represent one byte\n\t\t// if there is only one, then the three characters before it represent 2 bytes\n\t\t// this is just a cheap hack to not do indexOf twice\n\t\tvar len = b64.length\n\t\tplaceHolders = '=' === b64.charAt(len - 2) ? 2 : '=' === b64.charAt(len - 1) ? 1 : 0\n\n\t\t// base64 is 4/3 + up to two characters of the original data\n\t\tarr = new Arr(b64.length * 3 / 4 - placeHolders)\n\n\t\t// if there are placeholders, only get up to the last complete 4 chars\n\t\tl = placeHolders > 0 ? b64.length - 4 : b64.length\n\n\t\tvar L = 0\n\n\t\tfunction push (v) {\n\t\t\tarr[L++] = v\n\t\t}\n\n\t\tfor (i = 0, j = 0; i < l; i += 4, j += 3) {\n\t\t\ttmp = (decode(b64.charAt(i)) << 18) | (decode(b64.charAt(i + 1)) << 12) | (decode(b64.charAt(i + 2)) << 6) | decode(b64.charAt(i + 3))\n\t\t\tpush((tmp & 0xFF0000) >> 16)\n\t\t\tpush((tmp & 0xFF00) >> 8)\n\t\t\tpush(tmp & 0xFF)\n\t\t}\n\n\t\tif (placeHolders === 2) {\n\t\t\ttmp = (decode(b64.charAt(i)) << 2) | (decode(b64.charAt(i + 1)) >> 4)\n\t\t\tpush(tmp & 0xFF)\n\t\t} else if (placeHolders === 1) {\n\t\t\ttmp = (decode(b64.charAt(i)) << 10) | (decode(b64.charAt(i + 1)) << 4) | (decode(b64.charAt(i + 2)) >> 2)\n\t\t\tpush((tmp >> 8) & 0xFF)\n\t\t\tpush(tmp & 0xFF)\n\t\t}\n\n\t\treturn arr\n\t}\n\n\tfunction uint8ToBase64 (uint8) {\n\t\tvar i,\n\t\t\textraBytes = uint8.length % 3, // if we have 1 byte left, pad 2 bytes\n\t\t\toutput = \"\",\n\t\t\ttemp, length\n\n\t\tfunction encode (num) {\n\t\t\treturn lookup.charAt(num)\n\t\t}\n\n\t\tfunction tripletToBase64 (num) {\n\t\t\treturn encode(num >> 18 & 0x3F) + encode(num >> 12 & 0x3F) + encode(num >> 6 & 0x3F) + encode(num & 0x3F)\n\t\t}\n\n\t\t// go through the array every three bytes, we'll deal with trailing stuff later\n\t\tfor (i = 0, length = uint8.length - extraBytes; i < length; i += 3) {\n\t\t\ttemp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])\n\t\t\toutput += tripletToBase64(temp)\n\t\t}\n\n\t\t// pad the end with zeros, but make sure to not forget the extra bytes\n\t\tswitch (extraBytes) {\n\t\t\tcase 1:\n\t\t\t\ttemp = uint8[uint8.length - 1]\n\t\t\t\toutput += encode(temp >> 2)\n\t\t\t\toutput += encode((temp << 4) & 0x3F)\n\t\t\t\toutput += '=='\n\t\t\t\tbreak\n\t\t\tcase 2:\n\t\t\t\ttemp = (uint8[uint8.length - 2] << 8) + (uint8[uint8.length - 1])\n\t\t\t\toutput += encode(temp >> 10)\n\t\t\t\toutput += encode((temp >> 4) & 0x3F)\n\t\t\t\toutput += encode((temp << 2) & 0x3F)\n\t\t\t\toutput += '='\n\t\t\t\tbreak\n\t\t}\n\n\t\treturn output\n\t}\n\n\texports.toByteArray = b64ToByteArray\n\texports.fromByteArray = uint8ToBase64\n}(typeof exports === 'undefined' ? (this.base64js = {}) : exports))\n","var openParentheses = \"(\".charCodeAt(0);\nvar closeParentheses = \")\".charCodeAt(0);\nvar singleQuote = \"'\".charCodeAt(0);\nvar doubleQuote = '\"'.charCodeAt(0);\nvar backslash = \"\\\\\".charCodeAt(0);\nvar slash = \"/\".charCodeAt(0);\nvar comma = \",\".charCodeAt(0);\nvar colon = \":\".charCodeAt(0);\nvar star = \"*\".charCodeAt(0);\nvar uLower = \"u\".charCodeAt(0);\nvar uUpper = \"U\".charCodeAt(0);\nvar plus = \"+\".charCodeAt(0);\nvar isUnicodeRange = /^[a-f0-9?-]+$/i;\n\nmodule.exports = function(input) {\n var tokens = [];\n var value = input;\n\n var next,\n quote,\n prev,\n token,\n escape,\n escapePos,\n whitespacePos,\n parenthesesOpenPos;\n var pos = 0;\n var code = value.charCodeAt(pos);\n var max = value.length;\n var stack = [{ nodes: tokens }];\n var balanced = 0;\n var parent;\n\n var name = \"\";\n var before = \"\";\n var after = \"\";\n\n while (pos < max) {\n // Whitespaces\n if (code <= 32) {\n next = pos;\n do {\n next += 1;\n code = value.charCodeAt(next);\n } while (code <= 32);\n token = value.slice(pos, next);\n\n prev = tokens[tokens.length - 1];\n if (code === closeParentheses && balanced) {\n after = token;\n } else if (prev && prev.type === \"div\") {\n prev.after = token;\n prev.sourceEndIndex += token.length;\n } else if (\n code === comma ||\n code === colon ||\n (code === slash &&\n value.charCodeAt(next + 1) !== star &&\n (!parent ||\n (parent && parent.type === \"function\" && parent.value !== \"calc\")))\n ) {\n before = token;\n } else {\n tokens.push({\n type: \"space\",\n sourceIndex: pos,\n sourceEndIndex: next,\n value: token\n });\n }\n\n pos = next;\n\n // Quotes\n } else if (code === singleQuote || code === doubleQuote) {\n next = pos;\n quote = code === singleQuote ? \"'\" : '\"';\n token = {\n type: \"string\",\n sourceIndex: pos,\n quote: quote\n };\n do {\n escape = false;\n next = value.indexOf(quote, next + 1);\n if (~next) {\n escapePos = next;\n while (value.charCodeAt(escapePos - 1) === backslash) {\n escapePos -= 1;\n escape = !escape;\n }\n } else {\n value += quote;\n next = value.length - 1;\n token.unclosed = true;\n }\n } while (escape);\n token.value = value.slice(pos + 1, next);\n token.sourceEndIndex = token.unclosed ? next : next + 1;\n tokens.push(token);\n pos = next + 1;\n code = value.charCodeAt(pos);\n\n // Comments\n } else if (code === slash && value.charCodeAt(pos + 1) === star) {\n next = value.indexOf(\"*/\", pos);\n\n token = {\n type: \"comment\",\n sourceIndex: pos,\n sourceEndIndex: next + 2\n };\n\n if (next === -1) {\n token.unclosed = true;\n next = value.length;\n token.sourceEndIndex = next;\n }\n\n token.value = value.slice(pos + 2, next);\n tokens.push(token);\n\n pos = next + 2;\n code = value.charCodeAt(pos);\n\n // Operation within calc\n } else if (\n (code === slash || code === star) &&\n parent &&\n parent.type === \"function\" &&\n parent.value === \"calc\"\n ) {\n token = value[pos];\n tokens.push({\n type: \"word\",\n sourceIndex: pos - before.length,\n sourceEndIndex: pos + token.length,\n value: token\n });\n pos += 1;\n code = value.charCodeAt(pos);\n\n // Dividers\n } else if (code === slash || code === comma || code === colon) {\n token = value[pos];\n\n tokens.push({\n type: \"div\",\n sourceIndex: pos - before.length,\n sourceEndIndex: pos + token.length,\n value: token,\n before: before,\n after: \"\"\n });\n before = \"\";\n\n pos += 1;\n code = value.charCodeAt(pos);\n\n // Open parentheses\n } else if (openParentheses === code) {\n // Whitespaces after open parentheses\n next = pos;\n do {\n next += 1;\n code = value.charCodeAt(next);\n } while (code <= 32);\n parenthesesOpenPos = pos;\n token = {\n type: \"function\",\n sourceIndex: pos - name.length,\n value: name,\n before: value.slice(parenthesesOpenPos + 1, next)\n };\n pos = next;\n\n if (name === \"url\" && code !== singleQuote && code !== doubleQuote) {\n next -= 1;\n do {\n escape = false;\n next = value.indexOf(\")\", next + 1);\n if (~next) {\n escapePos = next;\n while (value.charCodeAt(escapePos - 1) === backslash) {\n escapePos -= 1;\n escape = !escape;\n }\n } else {\n value += \")\";\n next = value.length - 1;\n token.unclosed = true;\n }\n } while (escape);\n // Whitespaces before closed\n whitespacePos = next;\n do {\n whitespacePos -= 1;\n code = value.charCodeAt(whitespacePos);\n } while (code <= 32);\n if (parenthesesOpenPos < whitespacePos) {\n if (pos !== whitespacePos + 1) {\n token.nodes = [\n {\n type: \"word\",\n sourceIndex: pos,\n sourceEndIndex: whitespacePos + 1,\n value: value.slice(pos, whitespacePos + 1)\n }\n ];\n } else {\n token.nodes = [];\n }\n if (token.unclosed && whitespacePos + 1 !== next) {\n token.after = \"\";\n token.nodes.push({\n type: \"space\",\n sourceIndex: whitespacePos + 1,\n sourceEndIndex: next,\n value: value.slice(whitespacePos + 1, next)\n });\n } else {\n token.after = value.slice(whitespacePos + 1, next);\n token.sourceEndIndex = next;\n }\n } else {\n token.after = \"\";\n token.nodes = [];\n }\n pos = next + 1;\n token.sourceEndIndex = token.unclosed ? next : pos;\n code = value.charCodeAt(pos);\n tokens.push(token);\n } else {\n balanced += 1;\n token.after = \"\";\n token.sourceEndIndex = pos + 1;\n tokens.push(token);\n stack.push(token);\n tokens = token.nodes = [];\n parent = token;\n }\n name = \"\";\n\n // Close parentheses\n } else if (closeParentheses === code && balanced) {\n pos += 1;\n code = value.charCodeAt(pos);\n\n parent.after = after;\n parent.sourceEndIndex += after.length;\n after = \"\";\n balanced -= 1;\n stack[stack.length - 1].sourceEndIndex = pos;\n stack.pop();\n parent = stack[balanced];\n tokens = parent.nodes;\n\n // Words\n } else {\n next = pos;\n do {\n if (code === backslash) {\n next += 1;\n }\n next += 1;\n code = value.charCodeAt(next);\n } while (\n next < max &&\n !(\n code <= 32 ||\n code === singleQuote ||\n code === doubleQuote ||\n code === comma ||\n code === colon ||\n code === slash ||\n code === openParentheses ||\n (code === star &&\n parent &&\n parent.type === \"function\" &&\n parent.value === \"calc\") ||\n (code === slash &&\n parent.type === \"function\" &&\n parent.value === \"calc\") ||\n (code === closeParentheses && balanced)\n )\n );\n token = value.slice(pos, next);\n\n if (openParentheses === code) {\n name = token;\n } else if (\n (uLower === token.charCodeAt(0) || uUpper === token.charCodeAt(0)) &&\n plus === token.charCodeAt(1) &&\n isUnicodeRange.test(token.slice(2))\n ) {\n tokens.push({\n type: \"unicode-range\",\n sourceIndex: pos,\n sourceEndIndex: next,\n value: token\n });\n } else {\n tokens.push({\n type: \"word\",\n sourceIndex: pos,\n sourceEndIndex: next,\n value: token\n });\n }\n\n pos = next;\n }\n }\n\n for (pos = stack.length - 1; pos; pos -= 1) {\n stack[pos].unclosed = true;\n stack[pos].sourceEndIndex = value.length;\n }\n\n return stack[0].nodes;\n};\n","module.exports = function walk(nodes, cb, bubble) {\n var i, max, node, result;\n\n for (i = 0, max = nodes.length; i < max; i += 1) {\n node = nodes[i];\n if (!bubble) {\n result = cb(node, i, nodes);\n }\n\n if (\n result !== false &&\n node.type === \"function\" &&\n Array.isArray(node.nodes)\n ) {\n walk(node.nodes, cb, bubble);\n }\n\n if (bubble) {\n cb(node, i, nodes);\n }\n }\n};\n","function stringifyNode(node, custom) {\n var type = node.type;\n var value = node.value;\n var buf;\n var customResult;\n\n if (custom && (customResult = custom(node)) !== undefined) {\n return customResult;\n } else if (type === \"word\" || type === \"space\") {\n return value;\n } else if (type === \"string\") {\n buf = node.quote || \"\";\n return buf + value + (node.unclosed ? \"\" : buf);\n } else if (type === \"comment\") {\n return \"/*\" + value + (node.unclosed ? \"\" : \"*/\");\n } else if (type === \"div\") {\n return (node.before || \"\") + value + (node.after || \"\");\n } else if (Array.isArray(node.nodes)) {\n buf = stringify(node.nodes, custom);\n if (type !== \"function\") {\n return buf;\n }\n return (\n value +\n \"(\" +\n (node.before || \"\") +\n buf +\n (node.after || \"\") +\n (node.unclosed ? \"\" : \")\")\n );\n }\n return value;\n}\n\nfunction stringify(nodes, custom) {\n var result, i;\n\n if (Array.isArray(nodes)) {\n result = \"\";\n for (i = nodes.length - 1; ~i; i -= 1) {\n result = stringifyNode(nodes[i], custom) + result;\n }\n return result;\n }\n return stringifyNode(nodes, custom);\n}\n\nmodule.exports = stringify;\n","var minus = \"-\".charCodeAt(0);\nvar plus = \"+\".charCodeAt(0);\nvar dot = \".\".charCodeAt(0);\nvar exp = \"e\".charCodeAt(0);\nvar EXP = \"E\".charCodeAt(0);\n\n// Check if three code points would start a number\n// https://www.w3.org/TR/css-syntax-3/#starts-with-a-number\nfunction likeNumber(value) {\n var code = value.charCodeAt(0);\n var nextCode;\n\n if (code === plus || code === minus) {\n nextCode = value.charCodeAt(1);\n\n if (nextCode >= 48 && nextCode <= 57) {\n return true;\n }\n\n var nextNextCode = value.charCodeAt(2);\n\n if (nextCode === dot && nextNextCode >= 48 && nextNextCode <= 57) {\n return true;\n }\n\n return false;\n }\n\n if (code === dot) {\n nextCode = value.charCodeAt(1);\n\n if (nextCode >= 48 && nextCode <= 57) {\n return true;\n }\n\n return false;\n }\n\n if (code >= 48 && code <= 57) {\n return true;\n }\n\n return false;\n}\n\n// Consume a number\n// https://www.w3.org/TR/css-syntax-3/#consume-number\nmodule.exports = function(value) {\n var pos = 0;\n var length = value.length;\n var code;\n var nextCode;\n var nextNextCode;\n\n if (length === 0 || !likeNumber(value)) {\n return false;\n }\n\n code = value.charCodeAt(pos);\n\n if (code === plus || code === minus) {\n pos++;\n }\n\n while (pos < length) {\n code = value.charCodeAt(pos);\n\n if (code < 48 || code > 57) {\n break;\n }\n\n pos += 1;\n }\n\n code = value.charCodeAt(pos);\n nextCode = value.charCodeAt(pos + 1);\n\n if (code === dot && nextCode >= 48 && nextCode <= 57) {\n pos += 2;\n\n while (pos < length) {\n code = value.charCodeAt(pos);\n\n if (code < 48 || code > 57) {\n break;\n }\n\n pos += 1;\n }\n }\n\n code = value.charCodeAt(pos);\n nextCode = value.charCodeAt(pos + 1);\n nextNextCode = value.charCodeAt(pos + 2);\n\n if (\n (code === exp || code === EXP) &&\n ((nextCode >= 48 && nextCode <= 57) ||\n ((nextCode === plus || nextCode === minus) &&\n nextNextCode >= 48 &&\n nextNextCode <= 57))\n ) {\n pos += nextCode === plus || nextCode === minus ? 3 : 2;\n\n while (pos < length) {\n code = value.charCodeAt(pos);\n\n if (code < 48 || code > 57) {\n break;\n }\n\n pos += 1;\n }\n }\n\n return {\n number: value.slice(0, pos),\n unit: value.slice(pos)\n };\n};\n","var parse = require(\"./parse\");\nvar walk = require(\"./walk\");\nvar stringify = require(\"./stringify\");\n\nfunction ValueParser(value) {\n if (this instanceof ValueParser) {\n this.nodes = parse(value);\n return this;\n }\n return new ValueParser(value);\n}\n\nValueParser.prototype.toString = function() {\n return Array.isArray(this.nodes) ? stringify(this.nodes) : \"\";\n};\n\nValueParser.prototype.walk = function(cb, bubble) {\n walk(this.nodes, cb, bubble);\n return this;\n};\n\nValueParser.unit = require(\"./unit\");\n\nValueParser.walk = walk;\n\nValueParser.stringify = stringify;\n\nmodule.exports = ValueParser;\n","'use strict';\n\nmodule.exports = function (obj) {\n\tif (typeof obj === 'string') { return camelCase(obj); }\n\treturn walk(obj);\n};\n\nfunction walk(obj) {\n\tif (!obj || typeof obj !== 'object') { return obj; }\n\tif (isDate(obj) || isRegex(obj)) { return obj; }\n\tif (isArray(obj)) { return map(obj, walk); }\n\treturn reduce(objectKeys(obj), function (acc, key) {\n\t\tvar camel = camelCase(key);\n\t\tacc[camel] = walk(obj[key]);\n\t\treturn acc;\n\t}, {});\n}\n\nfunction camelCase(str) {\n\treturn str.replace(/[_.-](\\w|$)/g, function (_, x) {\n\t\treturn x.toUpperCase();\n\t});\n}\n\nvar isArray = Array.isArray || function (obj) {\n\treturn Object.prototype.toString.call(obj) === '[object Array]';\n};\n\nvar isDate = function (obj) {\n\treturn Object.prototype.toString.call(obj) === '[object Date]';\n};\n\nvar isRegex = function (obj) {\n\treturn Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar has = Object.prototype.hasOwnProperty;\nvar objectKeys = Object.keys || function (obj) {\n\tvar keys = [];\n\tfor (var key in obj) {\n\t\tif (has.call(obj, key)) { keys.push(key); }\n\t}\n\treturn keys;\n};\n\nfunction map(xs, f) {\n\tif (xs.map) { return xs.map(f); }\n\tvar res = [];\n\tfor (var i = 0; i < xs.length; i++) {\n\t\tres.push(f(xs[i], i));\n\t}\n\treturn res;\n}\n\nfunction reduce(xs, f, acc) {\n\tif (xs.reduce) { return xs.reduce(f, acc); }\n\tfor (var i = 0; i < xs.length; i++) {\n\t\tacc = f(acc, xs[i], i);\n\t}\n\treturn acc;\n}\n","{\n \"black\": \"#000000\",\n \"silver\": \"#c0c0c0\",\n \"gray\": \"#808080\",\n \"white\": \"#ffffff\",\n \"maroon\": \"#800000\",\n \"red\": \"#ff0000\",\n \"purple\": \"#800080\",\n \"fuchsia\": \"#ff00ff\",\n \"green\": \"#008000\",\n \"lime\": \"#00ff00\",\n \"olive\": \"#808000\",\n \"yellow\": \"#ffff00\",\n \"navy\": \"#000080\",\n \"blue\": \"#0000ff\",\n \"teal\": \"#008080\",\n \"aqua\": \"#00ffff\",\n \"orange\": \"#ffa500\",\n \"aliceblue\": \"#f0f8ff\",\n \"antiquewhite\": \"#faebd7\",\n \"aquamarine\": \"#7fffd4\",\n \"azure\": \"#f0ffff\",\n \"beige\": \"#f5f5dc\",\n \"bisque\": \"#ffe4c4\",\n \"blanchedalmond\": \"#ffebcd\",\n \"blueviolet\": \"#8a2be2\",\n \"brown\": \"#a52a2a\",\n \"burlywood\": \"#deb887\",\n \"cadetblue\": \"#5f9ea0\",\n \"chartreuse\": \"#7fff00\",\n \"chocolate\": \"#d2691e\",\n \"coral\": \"#ff7f50\",\n \"cornflowerblue\": \"#6495ed\",\n \"cornsilk\": \"#fff8dc\",\n \"crimson\": \"#dc143c\",\n \"darkblue\": \"#00008b\",\n \"darkcyan\": \"#008b8b\",\n \"darkgoldenrod\": \"#b8860b\",\n \"darkgray\": \"#a9a9a9\",\n \"darkgreen\": \"#006400\",\n \"darkgrey\": \"#a9a9a9\",\n \"darkkhaki\": \"#bdb76b\",\n \"darkmagenta\": \"#8b008b\",\n \"darkolivegreen\": \"#556b2f\",\n \"darkorange\": \"#ff8c00\",\n \"darkorchid\": \"#9932cc\",\n \"darkred\": \"#8b0000\",\n \"darksalmon\": \"#e9967a\",\n \"darkseagreen\": \"#8fbc8f\",\n \"darkslateblue\": \"#483d8b\",\n \"darkslategray\": \"#2f4f4f\",\n \"darkslategrey\": \"#2f4f4f\",\n \"darkturquoise\": \"#00ced1\",\n \"darkviolet\": \"#9400d3\",\n \"deeppink\": \"#ff1493\",\n \"deepskyblue\": \"#00bfff\",\n \"dimgray\": \"#696969\",\n \"dimgrey\": \"#696969\",\n \"dodgerblue\": \"#1e90ff\",\n \"firebrick\": \"#b22222\",\n \"floralwhite\": \"#fffaf0\",\n \"forestgreen\": \"#228b22\",\n \"gainsboro\": \"#dcdcdc\",\n \"ghostwhite\": \"#f8f8ff\",\n \"gold\": \"#ffd700\",\n \"goldenrod\": \"#daa520\",\n \"greenyellow\": \"#adff2f\",\n \"grey\": \"#808080\",\n \"honeydew\": \"#f0fff0\",\n \"hotpink\": \"#ff69b4\",\n \"indianred\": \"#cd5c5c\",\n \"indigo\": \"#4b0082\",\n \"ivory\": \"#fffff0\",\n \"khaki\": \"#f0e68c\",\n \"lavender\": \"#e6e6fa\",\n \"lavenderblush\": \"#fff0f5\",\n \"lawngreen\": \"#7cfc00\",\n \"lemonchiffon\": \"#fffacd\",\n \"lightblue\": \"#add8e6\",\n \"lightcoral\": \"#f08080\",\n \"lightcyan\": \"#e0ffff\",\n \"lightgoldenrodyellow\": \"#fafad2\",\n \"lightgray\": \"#d3d3d3\",\n \"lightgreen\": \"#90ee90\",\n \"lightgrey\": \"#d3d3d3\",\n \"lightpink\": \"#ffb6c1\",\n \"lightsalmon\": \"#ffa07a\",\n \"lightseagreen\": \"#20b2aa\",\n \"lightskyblue\": \"#87cefa\",\n \"lightslategray\": \"#778899\",\n \"lightslategrey\": \"#778899\",\n \"lightsteelblue\": \"#b0c4de\",\n \"lightyellow\": \"#ffffe0\",\n \"limegreen\": \"#32cd32\",\n \"linen\": \"#faf0e6\",\n \"mediumaquamarine\": \"#66cdaa\",\n \"mediumblue\": \"#0000cd\",\n \"mediumorchid\": \"#ba55d3\",\n \"mediumpurple\": \"#9370db\",\n \"mediumseagreen\": \"#3cb371\",\n \"mediumslateblue\": \"#7b68ee\",\n \"mediumspringgreen\": \"#00fa9a\",\n \"mediumturquoise\": \"#48d1cc\",\n \"mediumvioletred\": \"#c71585\",\n \"midnightblue\": \"#191970\",\n \"mintcream\": \"#f5fffa\",\n \"mistyrose\": \"#ffe4e1\",\n \"moccasin\": \"#ffe4b5\",\n \"navajowhite\": \"#ffdead\",\n \"oldlace\": \"#fdf5e6\",\n \"olivedrab\": \"#6b8e23\",\n \"orangered\": \"#ff4500\",\n \"orchid\": \"#da70d6\",\n \"palegoldenrod\": \"#eee8aa\",\n \"palegreen\": \"#98fb98\",\n \"paleturquoise\": \"#afeeee\",\n \"palevioletred\": \"#db7093\",\n \"papayawhip\": \"#ffefd5\",\n \"peachpuff\": \"#ffdab9\",\n \"peru\": \"#cd853f\",\n \"pink\": \"#ffc0cb\",\n \"plum\": \"#dda0dd\",\n \"powderblue\": \"#b0e0e6\",\n \"rosybrown\": \"#bc8f8f\",\n \"royalblue\": \"#4169e1\",\n \"saddlebrown\": \"#8b4513\",\n \"salmon\": \"#fa8072\",\n \"sandybrown\": \"#f4a460\",\n \"seagreen\": \"#2e8b57\",\n \"seashell\": \"#fff5ee\",\n \"sienna\": \"#a0522d\",\n \"skyblue\": \"#87ceeb\",\n \"slateblue\": \"#6a5acd\",\n \"slategray\": \"#708090\",\n \"slategrey\": \"#708090\",\n \"snow\": \"#fffafa\",\n \"springgreen\": \"#00ff7f\",\n \"steelblue\": \"#4682b4\",\n \"tan\": \"#d2b48c\",\n \"thistle\": \"#d8bfd8\",\n \"tomato\": \"#ff6347\",\n \"turquoise\": \"#40e0d0\",\n \"violet\": \"#ee82ee\",\n \"wheat\": \"#f5deb3\",\n \"whitesmoke\": \"#f5f5f5\",\n \"yellowgreen\": \"#9acd32\",\n \"rebeccapurple\": \"#663399\"\n}\n","'use strict'\n\nmodule.exports = require('./colors.json')\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopDefault(ex) {\n return ex && typeof ex === 'object' && 'default' in ex ? ex['default'] : ex;\n}\n\nvar parse = require('postcss-value-parser');\n\nvar parse__default = _interopDefault(parse);\n\nvar camelizeStyleName = _interopDefault(require('camelize'));\n\nvar cssColorKeywords = _interopDefault(require('css-color-keywords'));\n\nvar matchString = function matchString(node) {\n if (node.type !== 'string') return null;\n return node.value.replace(/\\\\([0-9a-f]{1,6})(?:\\s|$)/gi, function (match, charCode) {\n return String.fromCharCode(parseInt(charCode, 16));\n }).replace(/\\\\/g, '');\n};\n\nvar hexColorRe = /^(#(?:[0-9a-f]{3,4}){1,2})$/i;\nvar cssFunctionNameRe = /^(rgba?|hsla?|hwb|lab|lch|gray|color)$/;\n\nvar matchColor = function matchColor(node) {\n if (node.type === 'word' && (hexColorRe.test(node.value) || node.value in cssColorKeywords || node.value === 'transparent')) {\n return node.value;\n } else if (node.type === 'function' && cssFunctionNameRe.test(node.value)) {\n return parse.stringify(node);\n }\n\n return null;\n};\n\nvar noneRe = /^(none)$/i;\nvar autoRe = /^(auto)$/i;\nvar identRe = /(^-?[_a-z][_a-z0-9-]*$)/i; // Note if these are wrong, you'll need to change index.js too\n\nvar numberRe = /^([+-]?(?:\\d*\\.)?\\d+(?:e[+-]?\\d+)?)$/i; // Note lengthRe is sneaky: you can omit units for 0\n\nvar lengthRe = /^(0$|(?:[+-]?(?:\\d*\\.)?\\d+(?:e[+-]?\\d+)?)(?=px$))/i;\nvar unsupportedUnitRe = /^([+-]?(?:\\d*\\.)?\\d+(?:e[+-]?\\d+)?(ch|em|ex|rem|vh|vw|vmin|vmax|cm|mm|in|pc|pt))$/i;\nvar angleRe = /^([+-]?(?:\\d*\\.)?\\d+(?:e[+-]?\\d+)?(?:deg|rad))$/i;\nvar percentRe = /^([+-]?(?:\\d*\\.)?\\d+(?:e[+-]?\\d+)?%)$/i;\n\nvar noopToken = function noopToken(predicate) {\n return function (node) {\n return predicate(node) ? '' : null;\n };\n};\n\nvar valueForTypeToken = function valueForTypeToken(type) {\n return function (node) {\n return node.type === type ? node.value : null;\n };\n};\n\nvar regExpToken = function regExpToken(regExp, transform) {\n if (transform === void 0) {\n transform = String;\n }\n\n return function (node) {\n if (node.type !== 'word') return null;\n var match = node.value.match(regExp);\n if (match === null) return null;\n var value = transform(match[1]);\n return value;\n };\n};\n\nvar SPACE = noopToken(function (node) {\n return node.type === 'space';\n});\nvar SLASH = noopToken(function (node) {\n return node.type === 'div' && node.value === '/';\n});\nvar COMMA = noopToken(function (node) {\n return node.type === 'div' && node.value === ',';\n});\nvar WORD = valueForTypeToken('word');\nvar NONE = regExpToken(noneRe);\nvar AUTO = regExpToken(autoRe);\nvar NUMBER = regExpToken(numberRe, Number);\nvar LENGTH = regExpToken(lengthRe, Number);\nvar UNSUPPORTED_LENGTH_UNIT = regExpToken(unsupportedUnitRe);\nvar ANGLE = regExpToken(angleRe, function (angle) {\n return angle.toLowerCase();\n});\nvar PERCENT = regExpToken(percentRe);\nvar IDENT = regExpToken(identRe);\nvar STRING = matchString;\nvar COLOR = matchColor;\nvar LINE = regExpToken(/^(none|underline|line-through)$/i);\n\nvar aspectRatio = function aspectRatio(tokenStream) {\n var aspectRatio = tokenStream.expect(NUMBER);\n\n if (tokenStream.hasTokens()) {\n tokenStream.expect(SLASH);\n aspectRatio /= tokenStream.expect(NUMBER);\n }\n\n return {\n aspectRatio: aspectRatio\n };\n};\n\nvar BORDER_STYLE = regExpToken(/^(solid|dashed|dotted)$/);\nvar defaultBorderWidth = 1;\nvar defaultBorderColor = 'black';\nvar defaultBorderStyle = 'solid';\n\nvar border = function border(tokenStream) {\n var borderWidth;\n var borderColor;\n var borderStyle;\n\n if (tokenStream.matches(NONE)) {\n tokenStream.expectEmpty();\n return {\n borderWidth: 0,\n borderColor: 'black',\n borderStyle: 'solid'\n };\n }\n\n var partsParsed = 0;\n\n while (partsParsed < 3 && tokenStream.hasTokens()) {\n if (partsParsed !== 0) tokenStream.expect(SPACE);\n\n if (borderWidth === undefined && tokenStream.matches(LENGTH, UNSUPPORTED_LENGTH_UNIT)) {\n borderWidth = tokenStream.lastValue;\n } else if (borderColor === undefined && tokenStream.matches(COLOR)) {\n borderColor = tokenStream.lastValue;\n } else if (borderStyle === undefined && tokenStream.matches(BORDER_STYLE)) {\n borderStyle = tokenStream.lastValue;\n } else {\n tokenStream[\"throw\"]();\n }\n\n partsParsed += 1;\n }\n\n tokenStream.expectEmpty();\n if (borderWidth === undefined) borderWidth = defaultBorderWidth;\n if (borderColor === undefined) borderColor = defaultBorderColor;\n if (borderStyle === undefined) borderStyle = defaultBorderStyle;\n return {\n borderWidth: borderWidth,\n borderColor: borderColor,\n borderStyle: borderStyle\n };\n};\n\nvar directionFactory = function directionFactory(_ref) {\n var _ref$types = _ref.types,\n types = _ref$types === void 0 ? [LENGTH, UNSUPPORTED_LENGTH_UNIT, PERCENT] : _ref$types,\n _ref$directions = _ref.directions,\n directions = _ref$directions === void 0 ? ['Top', 'Right', 'Bottom', 'Left'] : _ref$directions,\n _ref$prefix = _ref.prefix,\n prefix = _ref$prefix === void 0 ? '' : _ref$prefix,\n _ref$suffix = _ref.suffix,\n suffix = _ref$suffix === void 0 ? '' : _ref$suffix;\n return function (tokenStream) {\n var _ref2;\n\n var values = []; // borderWidth doesn't currently allow a percent value, but may do in the future\n\n values.push(tokenStream.expect.apply(tokenStream, types));\n\n while (values.length < 4 && tokenStream.hasTokens()) {\n tokenStream.expect(SPACE);\n values.push(tokenStream.expect.apply(tokenStream, types));\n }\n\n tokenStream.expectEmpty();\n var top = values[0],\n _values$ = values[1],\n right = _values$ === void 0 ? top : _values$,\n _values$2 = values[2],\n bottom = _values$2 === void 0 ? top : _values$2,\n _values$3 = values[3],\n left = _values$3 === void 0 ? right : _values$3;\n\n var keyFor = function keyFor(n) {\n return \"\" + prefix + directions[n] + suffix;\n };\n\n return _ref2 = {}, _ref2[keyFor(0)] = top, _ref2[keyFor(1)] = right, _ref2[keyFor(2)] = bottom, _ref2[keyFor(3)] = left, _ref2;\n };\n};\n\nvar parseShadowOffset = function parseShadowOffset(tokenStream) {\n var width = tokenStream.expect(LENGTH);\n var height = tokenStream.matches(SPACE) ? tokenStream.expect(LENGTH) : width;\n tokenStream.expectEmpty();\n return {\n width: width,\n height: height\n };\n};\n\nvar parseShadow = function parseShadow(tokenStream) {\n var offsetX;\n var offsetY;\n var radius;\n var color;\n\n if (tokenStream.matches(NONE)) {\n tokenStream.expectEmpty();\n return {\n offset: {\n width: 0,\n height: 0\n },\n radius: 0,\n color: 'black'\n };\n }\n\n var didParseFirst = false;\n\n while (tokenStream.hasTokens()) {\n if (didParseFirst) tokenStream.expect(SPACE);\n\n if (offsetX === undefined && tokenStream.matches(LENGTH, UNSUPPORTED_LENGTH_UNIT)) {\n offsetX = tokenStream.lastValue;\n tokenStream.expect(SPACE);\n offsetY = tokenStream.expect(LENGTH, UNSUPPORTED_LENGTH_UNIT);\n tokenStream.saveRewindPoint();\n\n if (tokenStream.matches(SPACE) && tokenStream.matches(LENGTH, UNSUPPORTED_LENGTH_UNIT)) {\n radius = tokenStream.lastValue;\n } else {\n tokenStream.rewind();\n }\n } else if (color === undefined && tokenStream.matches(COLOR)) {\n color = tokenStream.lastValue;\n } else {\n tokenStream[\"throw\"]();\n }\n\n didParseFirst = true;\n }\n\n if (offsetX === undefined) tokenStream[\"throw\"]();\n return {\n offset: {\n width: offsetX,\n height: offsetY\n },\n radius: radius !== undefined ? radius : 0,\n color: color !== undefined ? color : 'black'\n };\n};\n\nvar boxShadow = function boxShadow(tokenStream) {\n var _parseShadow = parseShadow(tokenStream),\n offset = _parseShadow.offset,\n radius = _parseShadow.radius,\n color = _parseShadow.color;\n\n return {\n shadowOffset: offset,\n shadowRadius: radius,\n shadowColor: color,\n shadowOpacity: 1\n };\n};\n\nvar defaultFlexGrow = 1;\nvar defaultFlexShrink = 1;\nvar defaultFlexBasis = 0;\n\nvar flex = function flex(tokenStream) {\n var flexGrow;\n var flexShrink;\n var flexBasis;\n\n if (tokenStream.matches(NONE)) {\n tokenStream.expectEmpty();\n return {\n flexGrow: 0,\n flexShrink: 0,\n flexBasis: 'auto'\n };\n }\n\n tokenStream.saveRewindPoint();\n\n if (tokenStream.matches(AUTO) && !tokenStream.hasTokens()) {\n return {\n flexGrow: 1,\n flexShrink: 1,\n flexBasis: 'auto'\n };\n }\n\n tokenStream.rewind();\n var partsParsed = 0;\n\n while (partsParsed < 2 && tokenStream.hasTokens()) {\n if (partsParsed !== 0) tokenStream.expect(SPACE);\n\n if (flexGrow === undefined && tokenStream.matches(NUMBER)) {\n flexGrow = tokenStream.lastValue;\n tokenStream.saveRewindPoint();\n\n if (tokenStream.matches(SPACE) && tokenStream.matches(NUMBER)) {\n flexShrink = tokenStream.lastValue;\n } else {\n tokenStream.rewind();\n }\n } else if (flexBasis === undefined && tokenStream.matches(LENGTH, UNSUPPORTED_LENGTH_UNIT, PERCENT)) {\n flexBasis = tokenStream.lastValue;\n } else if (flexBasis === undefined && tokenStream.matches(AUTO)) {\n flexBasis = 'auto';\n } else {\n tokenStream[\"throw\"]();\n }\n\n partsParsed += 1;\n }\n\n tokenStream.expectEmpty();\n if (flexGrow === undefined) flexGrow = defaultFlexGrow;\n if (flexShrink === undefined) flexShrink = defaultFlexShrink;\n if (flexBasis === undefined) flexBasis = defaultFlexBasis;\n return {\n flexGrow: flexGrow,\n flexShrink: flexShrink,\n flexBasis: flexBasis\n };\n};\n\nvar FLEX_WRAP = regExpToken(/(nowrap|wrap|wrap-reverse)/);\nvar FLEX_DIRECTION = regExpToken(/(row|row-reverse|column|column-reverse)/);\nvar defaultFlexWrap = 'nowrap';\nvar defaultFlexDirection = 'row';\n\nvar flexFlow = function flexFlow(tokenStream) {\n var flexWrap;\n var flexDirection;\n var partsParsed = 0;\n\n while (partsParsed < 2 && tokenStream.hasTokens()) {\n if (partsParsed !== 0) tokenStream.expect(SPACE);\n\n if (flexWrap === undefined && tokenStream.matches(FLEX_WRAP)) {\n flexWrap = tokenStream.lastValue;\n } else if (flexDirection === undefined && tokenStream.matches(FLEX_DIRECTION)) {\n flexDirection = tokenStream.lastValue;\n } else {\n tokenStream[\"throw\"]();\n }\n\n partsParsed += 1;\n }\n\n tokenStream.expectEmpty();\n if (flexWrap === undefined) flexWrap = defaultFlexWrap;\n if (flexDirection === undefined) flexDirection = defaultFlexDirection;\n return {\n flexWrap: flexWrap,\n flexDirection: flexDirection\n };\n};\n\nvar fontFamily = function fontFamily(tokenStream) {\n var fontFamily;\n\n if (tokenStream.matches(STRING)) {\n fontFamily = tokenStream.lastValue;\n } else {\n fontFamily = tokenStream.expect(IDENT);\n\n while (tokenStream.hasTokens()) {\n tokenStream.expect(SPACE);\n var nextIdent = tokenStream.expect(IDENT);\n fontFamily += \" \" + nextIdent;\n }\n }\n\n tokenStream.expectEmpty();\n return {\n fontFamily: fontFamily\n };\n};\n\nvar NORMAL = regExpToken(/^(normal)$/);\nvar STYLE = regExpToken(/^(italic)$/);\nvar WEIGHT = regExpToken(/^([1-9]00|bold)$/);\nvar VARIANT = regExpToken(/^(small-caps)$/);\nvar defaultFontStyle = 'normal';\nvar defaultFontWeight = 'normal';\nvar defaultFontVariant = [];\n\nvar font = function font(tokenStream) {\n var fontStyle;\n var fontWeight;\n var fontVariant; // let fontSize;\n\n var lineHeight; // let fontFamily;\n\n var numStyleWeightVariantMatched = 0;\n\n while (numStyleWeightVariantMatched < 3 && tokenStream.hasTokens()) {\n if (tokenStream.matches(NORMAL)) ;else if (fontStyle === undefined && tokenStream.matches(STYLE)) {\n fontStyle = tokenStream.lastValue;\n } else if (fontWeight === undefined && tokenStream.matches(WEIGHT)) {\n fontWeight = tokenStream.lastValue;\n } else if (fontVariant === undefined && tokenStream.matches(VARIANT)) {\n fontVariant = [tokenStream.lastValue];\n } else {\n break;\n }\n tokenStream.expect(SPACE);\n numStyleWeightVariantMatched += 1;\n }\n\n var fontSize = tokenStream.expect(LENGTH, UNSUPPORTED_LENGTH_UNIT);\n\n if (tokenStream.matches(SLASH)) {\n lineHeight = tokenStream.expect(LENGTH, UNSUPPORTED_LENGTH_UNIT);\n }\n\n tokenStream.expect(SPACE);\n\n var _fontFamily = fontFamily(tokenStream),\n fontFamily$1 = _fontFamily.fontFamily;\n\n if (fontStyle === undefined) fontStyle = defaultFontStyle;\n if (fontWeight === undefined) fontWeight = defaultFontWeight;\n if (fontVariant === undefined) fontVariant = defaultFontVariant;\n var out = {\n fontStyle: fontStyle,\n fontWeight: fontWeight,\n fontVariant: fontVariant,\n fontSize: fontSize,\n fontFamily: fontFamily$1\n };\n if (lineHeight !== undefined) out.lineHeight = lineHeight;\n return out;\n};\n\nvar fontVariant = function fontVariant(tokenStream) {\n var values = [tokenStream.expect(IDENT)];\n\n while (tokenStream.hasTokens()) {\n tokenStream.expect(SPACE);\n values.push(tokenStream.expect(IDENT));\n }\n\n return {\n fontVariant: values\n };\n};\n\nvar ALIGN_CONTENT = regExpToken(/(flex-(?:start|end)|center|stretch|space-(?:between|around))/);\nvar JUSTIFY_CONTENT = regExpToken(/(flex-(?:start|end)|center|space-(?:between|around|evenly))/);\n\nvar placeContent = function placeContent(tokenStream) {\n var alignContent = tokenStream.expect(ALIGN_CONTENT);\n var justifyContent;\n\n if (tokenStream.hasTokens()) {\n tokenStream.expect(SPACE);\n justifyContent = tokenStream.expect(JUSTIFY_CONTENT);\n } else {\n justifyContent = 'stretch';\n }\n\n tokenStream.expectEmpty();\n return {\n alignContent: alignContent,\n justifyContent: justifyContent\n };\n};\n\nvar STYLE$1 = regExpToken(/^(solid|double|dotted|dashed)$/);\nvar defaultTextDecorationLine = 'none';\nvar defaultTextDecorationStyle = 'solid';\nvar defaultTextDecorationColor = 'black';\n\nvar textDecoration = function textDecoration(tokenStream) {\n var line;\n var style;\n var color;\n var didParseFirst = false;\n\n while (tokenStream.hasTokens()) {\n if (didParseFirst) tokenStream.expect(SPACE);\n\n if (line === undefined && tokenStream.matches(LINE)) {\n var lines = [tokenStream.lastValue.toLowerCase()];\n tokenStream.saveRewindPoint();\n\n if (lines[0] !== 'none' && tokenStream.matches(SPACE) && tokenStream.matches(LINE)) {\n lines.push(tokenStream.lastValue.toLowerCase()); // Underline comes before line-through\n\n lines.sort().reverse();\n } else {\n tokenStream.rewind();\n }\n\n line = lines.join(' ');\n } else if (style === undefined && tokenStream.matches(STYLE$1)) {\n style = tokenStream.lastValue;\n } else if (color === undefined && tokenStream.matches(COLOR)) {\n color = tokenStream.lastValue;\n } else {\n tokenStream[\"throw\"]();\n }\n\n didParseFirst = true;\n }\n\n return {\n textDecorationLine: line !== undefined ? line : defaultTextDecorationLine,\n textDecorationColor: color !== undefined ? color : defaultTextDecorationColor,\n textDecorationStyle: style !== undefined ? style : defaultTextDecorationStyle\n };\n};\n\nvar textDecorationLine = function textDecorationLine(tokenStream) {\n var lines = [];\n var didParseFirst = false;\n\n while (tokenStream.hasTokens()) {\n if (didParseFirst) tokenStream.expect(SPACE);\n lines.push(tokenStream.expect(LINE).toLowerCase());\n didParseFirst = true;\n }\n\n lines.sort().reverse();\n return {\n textDecorationLine: lines.join(' ')\n };\n};\n\nvar textShadow = function textShadow(tokenStream) {\n var _parseShadow2 = parseShadow(tokenStream),\n offset = _parseShadow2.offset,\n radius = _parseShadow2.radius,\n color = _parseShadow2.color;\n\n return {\n textShadowOffset: offset,\n textShadowRadius: radius,\n textShadowColor: color\n };\n};\n\nvar oneOfType = function oneOfType(tokenType) {\n return function (functionStream) {\n var value = functionStream.expect(tokenType);\n functionStream.expectEmpty();\n return value;\n };\n};\n\nvar singleNumber = oneOfType(NUMBER);\nvar singleLength = oneOfType(LENGTH);\nvar singleAngle = oneOfType(ANGLE);\n\nvar xyTransformFactory = function xyTransformFactory(tokenType) {\n return function (key, valueIfOmitted) {\n return function (functionStream) {\n var _ref3, _ref4;\n\n var x = functionStream.expect(tokenType);\n var y;\n\n if (functionStream.hasTokens()) {\n functionStream.expect(COMMA);\n y = functionStream.expect(tokenType);\n } else if (valueIfOmitted !== undefined) {\n y = valueIfOmitted;\n } else {\n // Assumption, if x === y, then we can omit XY\n // I.e. scale(5) => [{ scale: 5 }] rather than [{ scaleX: 5 }, { scaleY: 5 }]\n return x;\n }\n\n functionStream.expectEmpty();\n return [(_ref3 = {}, _ref3[key + \"Y\"] = y, _ref3), (_ref4 = {}, _ref4[key + \"X\"] = x, _ref4)];\n };\n };\n};\n\nvar xyNumber = xyTransformFactory(NUMBER);\nvar xyLength = xyTransformFactory(LENGTH);\nvar xyAngle = xyTransformFactory(ANGLE);\nvar partTransforms = {\n perspective: singleNumber,\n scale: xyNumber('scale'),\n scaleX: singleNumber,\n scaleY: singleNumber,\n translate: xyLength('translate', 0),\n translateX: singleLength,\n translateY: singleLength,\n rotate: singleAngle,\n rotateX: singleAngle,\n rotateY: singleAngle,\n rotateZ: singleAngle,\n skewX: singleAngle,\n skewY: singleAngle,\n skew: xyAngle('skew', '0deg')\n};\n\nvar transform = function transform(tokenStream) {\n var transforms = [];\n var didParseFirst = false;\n\n while (tokenStream.hasTokens()) {\n if (didParseFirst) tokenStream.expect(SPACE);\n var functionStream = tokenStream.expectFunction();\n var functionName = functionStream.functionName;\n var transformedValues = partTransforms[functionName](functionStream);\n\n if (!Array.isArray(transformedValues)) {\n var _ref5;\n\n transformedValues = [(_ref5 = {}, _ref5[functionName] = transformedValues, _ref5)];\n }\n\n transforms = transformedValues.concat(transforms);\n didParseFirst = true;\n }\n\n return {\n transform: transforms\n };\n};\n\nvar background = function background(tokenStream) {\n return {\n backgroundColor: tokenStream.expect(COLOR)\n };\n};\n\nvar borderColor = directionFactory({\n types: [COLOR],\n prefix: 'border',\n suffix: 'Color'\n});\nvar borderRadius = directionFactory({\n directions: ['TopLeft', 'TopRight', 'BottomRight', 'BottomLeft'],\n prefix: 'border',\n suffix: 'Radius'\n});\nvar borderWidth = directionFactory({\n prefix: 'border',\n suffix: 'Width'\n});\nvar margin = directionFactory({\n types: [LENGTH, UNSUPPORTED_LENGTH_UNIT, PERCENT, AUTO],\n prefix: 'margin'\n});\nvar padding = directionFactory({\n prefix: 'padding'\n});\n\nvar fontWeight = function fontWeight(tokenStream) {\n return {\n fontWeight: tokenStream.expect(WORD) // Also match numbers as strings\n\n };\n};\n\nvar shadowOffset = function shadowOffset(tokenStream) {\n return {\n shadowOffset: parseShadowOffset(tokenStream)\n };\n};\n\nvar textShadowOffset = function textShadowOffset(tokenStream) {\n return {\n textShadowOffset: parseShadowOffset(tokenStream)\n };\n};\n\nvar transforms = {\n aspectRatio: aspectRatio,\n background: background,\n border: border,\n borderColor: borderColor,\n borderRadius: borderRadius,\n borderWidth: borderWidth,\n boxShadow: boxShadow,\n flex: flex,\n flexFlow: flexFlow,\n font: font,\n fontFamily: fontFamily,\n fontVariant: fontVariant,\n fontWeight: fontWeight,\n margin: margin,\n padding: padding,\n placeContent: placeContent,\n shadowOffset: shadowOffset,\n textShadow: textShadow,\n textShadowOffset: textShadowOffset,\n textDecoration: textDecoration,\n textDecorationLine: textDecorationLine,\n transform: transform\n};\nvar propertiesWithoutUnits;\n\nif (process.env.NODE_ENV !== 'production') {\n propertiesWithoutUnits = ['aspectRatio', 'elevation', 'flexGrow', 'flexShrink', 'opacity', 'shadowOpacity', 'zIndex'];\n}\n\nvar devPropertiesWithUnitsRegExp = propertiesWithoutUnits != null ? new RegExp(propertiesWithoutUnits.join('|')) : null;\nvar SYMBOL_MATCH = 'SYMBOL_MATCH';\n\nvar TokenStream =\n/*#__PURE__*/\nfunction () {\n function TokenStream(nodes, parent) {\n this.index = 0;\n this.nodes = nodes;\n this.functionName = parent != null ? parent.value : null;\n this.lastValue = null;\n this.rewindIndex = -1;\n }\n\n var _proto = TokenStream.prototype;\n\n _proto.hasTokens = function hasTokens() {\n return this.index <= this.nodes.length - 1;\n };\n\n _proto[SYMBOL_MATCH] = function () {\n if (!this.hasTokens()) return null;\n var node = this.nodes[this.index];\n\n for (var i = 0; i < arguments.length; i += 1) {\n var tokenDescriptor = i < 0 || arguments.length <= i ? undefined : arguments[i];\n var value = tokenDescriptor(node);\n\n if (value !== null) {\n this.index += 1;\n this.lastValue = value;\n return value;\n }\n }\n\n return null;\n };\n\n _proto.matches = function matches() {\n return this[SYMBOL_MATCH].apply(this, arguments) !== null;\n };\n\n _proto.expect = function expect() {\n var value = this[SYMBOL_MATCH].apply(this, arguments);\n return value !== null ? value : this[\"throw\"]();\n };\n\n _proto.matchesFunction = function matchesFunction() {\n var node = this.nodes[this.index];\n if (node.type !== 'function') return null;\n var value = new TokenStream(node.nodes, node);\n this.index += 1;\n this.lastValue = null;\n return value;\n };\n\n _proto.expectFunction = function expectFunction() {\n var value = this.matchesFunction();\n return value !== null ? value : this[\"throw\"]();\n };\n\n _proto.expectEmpty = function expectEmpty() {\n if (this.hasTokens()) this[\"throw\"]();\n };\n\n _proto[\"throw\"] = function _throw() {\n throw new Error(\"Unexpected token type: \" + this.nodes[this.index].type);\n };\n\n _proto.saveRewindPoint = function saveRewindPoint() {\n this.rewindIndex = this.index;\n };\n\n _proto.rewind = function rewind() {\n if (this.rewindIndex === -1) throw new Error('Internal error');\n this.index = this.rewindIndex;\n this.lastValue = null;\n };\n\n return TokenStream;\n}();\n/* eslint-disable no-param-reassign */\n// Note if this is wrong, you'll need to change tokenTypes.js too\n\n\nvar numberOrLengthRe = /^([+-]?(?:\\d*\\.)?\\d+(?:e[+-]?\\d+)?)(?:px)?$/i;\nvar numberOnlyRe = /^[+-]?(?:\\d*\\.\\d*|[1-9]\\d*)(?:e[+-]?\\d+)?$/i;\nvar boolRe = /^true|false$/i;\nvar nullRe = /^null$/i;\nvar undefinedRe = /^undefined$/i; // Undocumented export\n\nvar transformRawValue = function transformRawValue(propName, value) {\n if (process.env.NODE_ENV !== 'production') {\n var needsUnit = !devPropertiesWithUnitsRegExp.test(propName);\n var isNumberWithoutUnit = numberOnlyRe.test(value);\n\n if (needsUnit && isNumberWithoutUnit) {\n // eslint-disable-next-line no-console\n console.warn(\"Expected style \\\"\" + propName + \": \" + value + \"\\\" to contain units\");\n }\n\n if (!needsUnit && value !== '0' && !isNumberWithoutUnit) {\n // eslint-disable-next-line no-console\n console.warn(\"Expected style \\\"\" + propName + \": \" + value + \"\\\" to be unitless\");\n }\n }\n\n var numberMatch = value.match(numberOrLengthRe);\n if (numberMatch !== null) return Number(numberMatch[1]);\n var boolMatch = value.match(boolRe);\n if (boolMatch !== null) return boolMatch[0].toLowerCase() === 'true';\n var nullMatch = value.match(nullRe);\n if (nullMatch !== null) return null;\n var undefinedMatch = value.match(undefinedRe);\n if (undefinedMatch !== null) return undefined;\n return value;\n};\n\nvar baseTransformShorthandValue = function baseTransformShorthandValue(propName, value) {\n var ast = parse__default(value);\n var tokenStream = new TokenStream(ast.nodes);\n return transforms[propName](tokenStream);\n};\n\nvar transformShorthandValue = process.env.NODE_ENV === 'production' ? baseTransformShorthandValue : function (propName, value) {\n try {\n return baseTransformShorthandValue(propName, value);\n } catch (e) {\n throw new Error(\"Failed to parse declaration \\\"\" + propName + \": \" + value + \"\\\"\");\n }\n};\n\nvar getStylesForProperty = function getStylesForProperty(propName, inputValue, allowShorthand) {\n var _ref6;\n\n var isRawValue = allowShorthand === false || !(propName in transforms);\n var value = inputValue.trim();\n var propValues = isRawValue ? (_ref6 = {}, _ref6[propName] = transformRawValue(propName, value), _ref6) : transformShorthandValue(propName, value);\n return propValues;\n};\n\nvar getPropertyName = function getPropertyName(propName) {\n var isCustomProp = /^--\\w+/.test(propName);\n\n if (isCustomProp) {\n return propName;\n }\n\n return camelizeStyleName(propName);\n};\n\nvar index = function index(rules, shorthandBlacklist) {\n if (shorthandBlacklist === void 0) {\n shorthandBlacklist = [];\n }\n\n return rules.reduce(function (accum, rule) {\n var propertyName = getPropertyName(rule[0]);\n var value = rule[1];\n var allowShorthand = shorthandBlacklist.indexOf(propertyName) === -1;\n return Object.assign(accum, getStylesForProperty(propertyName, value, allowShorthand));\n }, {});\n};\n\nexports[\"default\"] = index;\nexports.getPropertyName = getPropertyName;\nexports.getStylesForProperty = getStylesForProperty;\nexports.transformRawValue = transformRawValue;\n","/*!\n * https://github.com/gilmoreorless/css-background-parser\n * Copyright © 2015 Gilmore Davidson under the MIT license: http://gilmoreorless.mit-license.org/\n */\n(function (exports) {\n\n function BackgroundList(backgrounds) {\n if (!(this instanceof BackgroundList)) {\n return new BackgroundList();\n }\n this.backgrounds = backgrounds || [];\n }\n\n BackgroundList.prototype.toString = function () {\n return this.backgrounds.join(', ');\n };\n\n\n function Background(props) {\n if (!(this instanceof Background)) {\n return new Background(props);\n }\n props = props || {};\n var bg = this;\n\n function defprop(name, defaultValue) {\n bg[name] = (name in props) ? props[name] : defaultValue;\n }\n\n // http://www.w3.org/TR/css3-background/#backgrounds\n defprop('color', '');\n defprop('image', 'none');\n defprop('attachment', 'scroll');\n defprop('clip', 'border-box');\n defprop('origin', 'padding-box');\n defprop('position', '0% 0%');\n defprop('repeat', 'repeat');\n defprop('size', 'auto');\n }\n\n Background.prototype.toString = function () {\n var list = [\n this.image,\n this.repeat,\n this.attachment,\n this.position + ' / ' + this.size,\n this.origin,\n this.clip\n ];\n if (this.color) {\n list.unshift(this.color);\n }\n return list.join(' ');\n };\n\n exports.BackgroundList = BackgroundList;\n exports.Background = Background;\n\n\n function parseImages(cssText) {\n var images = [];\n var tokens = /[,\\(\\)]/;\n var parens = 0;\n var buffer = '';\n\n if (cssText == null) {\n return images;\n }\n\n while (cssText.length) {\n var match = tokens.exec(cssText);\n if (!match) {\n break;\n }\n var char = match[0];\n var ignoreChar = false;\n switch (char) {\n case ',':\n if (!parens) {\n images.push(buffer.trim());\n buffer = '';\n ignoreChar = true;\n }\n break;\n case '(':\n parens++;\n break;\n case ')':\n parens--;\n break;\n }\n\n var index = match.index + 1;\n buffer += cssText.slice(0, ignoreChar ? index - 1 : index);\n cssText = cssText.slice(index);\n }\n\n if (buffer.length || cssText.length) {\n images.push((buffer + cssText).trim());\n }\n\n return images;\n }\n\n // Helper for .map()\n function trim(str) {\n return str.trim();\n }\n\n function parseSimpleList(cssText) {\n return (cssText || '').split(',').map(trim);\n }\n\n exports.parseElementStyle = function (styleObject) {\n var list = new BackgroundList();\n if (styleObject == null) {\n return list;\n }\n\n var bgImage = parseImages(styleObject.backgroundImage);\n var bgColor = styleObject.backgroundColor;\n var bgAttachment = parseSimpleList(styleObject.backgroundAttachment);\n var bgClip = parseSimpleList(styleObject.backgroundClip);\n var bgOrigin = parseSimpleList(styleObject.backgroundOrigin);\n var bgPosition = parseSimpleList(styleObject.backgroundPosition);\n var bgRepeat = parseSimpleList(styleObject.backgroundRepeat);\n var bgSize = parseSimpleList(styleObject.backgroundSize);\n var background;\n\n for (var i = 0, ii = bgImage.length; i < ii; i++) {\n background = new Background({\n image: bgImage[i],\n attachment: bgAttachment[i % bgAttachment.length],\n clip: bgClip[i % bgClip.length],\n origin: bgOrigin[i % bgOrigin.length],\n position: bgPosition[i % bgPosition.length],\n repeat: bgRepeat[i % bgRepeat.length],\n size: bgSize[i % bgSize.length]\n });\n if (i === ii - 1) {\n background.color = bgColor;\n }\n list.backgrounds.push(background);\n }\n\n return list;\n };\n\n // exports.parseCssString = function (cssString) {\n // return new Background();\n // };\n\n // exports.parseBackgroundValue = function (cssString) {\n // return new Background();\n // };\n\n})((function (root) {\n // CommonJS\n if (typeof module !== 'undefined' && module.exports !== undefined) return module.exports;\n // Global `cssBgParser`\n return (root.cssBgParser = {});\n})(this));\n","const VALUES_REG = /,(?![^\\(]*\\))/\nconst PARTS_REG = /\\s(?![^(]*\\))/\nconst LENGTH_REG = /^[0-9]+[a-zA-Z%]+?$/\n\nconst parseValue = str => {\n const parts = str.split(PARTS_REG)\n const inset = parts.includes('inset')\n const last = parts.slice(-1)[0]\n const color = !isLength(last) ? last : undefined\n\n const nums = parts\n .filter(n => n !== 'inset')\n .filter(n => n !== color)\n .map(toNum)\n const [ offsetX, offsetY, blurRadius, spreadRadius ] = nums\n\n return {\n inset,\n offsetX,\n offsetY,\n blurRadius,\n spreadRadius,\n color\n }\n}\n\nconst stringifyValue = obj => {\n const {\n inset,\n offsetX = 0,\n offsetY = 0,\n blurRadius = 0,\n spreadRadius,\n color\n } = obj || {}\n\n return [\n (inset ? 'inset' : null),\n offsetX,\n offsetY,\n blurRadius ,\n spreadRadius,\n color\n ].filter(v => v !== null && v !== undefined)\n .map(toPx)\n .map(s => ('' + s).trim())\n .join(' ')\n}\n\nconst isLength = v => v === '0' || LENGTH_REG.test(v)\nconst toNum = v => {\n if (!/px$/.test(v) && v !== '0') return v\n const n = parseFloat(v)\n return !isNaN(n) ? n : v\n}\nconst toPx = n => typeof n === 'number' && n !== 0 ? (n + 'px') : n\n\nconst parse = str => str.split(VALUES_REG).map(s => s.trim()).map(parseValue)\nconst stringify = arr => arr.map(stringifyValue).join(', ')\n\nmodule.exports = {\n parse,\n stringify\n}\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","'use strict';\n\nconst hexCharacters = 'a-f\\\\d';\nconst match3or4Hex = `#?[${hexCharacters}]{3}[${hexCharacters}]?`;\nconst match6or8Hex = `#?[${hexCharacters}]{6}([${hexCharacters}]{2})?`;\nconst nonHexChars = new RegExp(`[^#${hexCharacters}]`, 'gi');\nconst validHexSize = new RegExp(`^${match3or4Hex}$|^${match6or8Hex}$`, 'i');\n\nmodule.exports = (hex, options = {}) => {\n\tif (typeof hex !== 'string' || nonHexChars.test(hex) || !validHexSize.test(hex)) {\n\t\tthrow new TypeError('Expected a valid hex string');\n\t}\n\n\thex = hex.replace(/^#/, '');\n\tlet alphaFromHex = 1;\n\n\tif (hex.length === 8) {\n\t\talphaFromHex = Number.parseInt(hex.slice(6, 8), 16) / 255;\n\t\thex = hex.slice(0, 6);\n\t}\n\n\tif (hex.length === 4) {\n\t\talphaFromHex = Number.parseInt(hex.slice(3, 4).repeat(2), 16) / 255;\n\t\thex = hex.slice(0, 3);\n\t}\n\n\tif (hex.length === 3) {\n\t\thex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\n\t}\n\n\tconst number = Number.parseInt(hex, 16);\n\tconst red = number >> 16;\n\tconst green = (number >> 8) & 255;\n\tconst blue = number & 255;\n\tconst alpha = typeof options.alpha === 'number' ? options.alpha : alphaFromHex;\n\n\tif (options.format === 'array') {\n\t\treturn [red, green, blue, alpha];\n\t}\n\n\tif (options.format === 'css') {\n\t\tconst alphaString = alpha === 1 ? '' : ` / ${Number((alpha * 100).toFixed(2))}%`;\n\t\treturn `rgb(${red} ${green} ${blue}${alphaString})`;\n\t}\n\n\treturn {red, green, blue, alpha};\n};\n","/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n","var YGEnums={},ALIGN_AUTO=YGEnums.ALIGN_AUTO=0,ALIGN_FLEX_START=YGEnums.ALIGN_FLEX_START=1,ALIGN_CENTER=YGEnums.ALIGN_CENTER=2,ALIGN_FLEX_END=YGEnums.ALIGN_FLEX_END=3,ALIGN_STRETCH=YGEnums.ALIGN_STRETCH=4,ALIGN_BASELINE=YGEnums.ALIGN_BASELINE=5,ALIGN_SPACE_BETWEEN=YGEnums.ALIGN_SPACE_BETWEEN=6,ALIGN_SPACE_AROUND=YGEnums.ALIGN_SPACE_AROUND=7,DIMENSION_WIDTH=YGEnums.DIMENSION_WIDTH=0,DIMENSION_HEIGHT=YGEnums.DIMENSION_HEIGHT=1,DIRECTION_INHERIT=YGEnums.DIRECTION_INHERIT=0,DIRECTION_LTR=YGEnums.DIRECTION_LTR=1,DIRECTION_RTL=YGEnums.DIRECTION_RTL=2,DISPLAY_FLEX=YGEnums.DISPLAY_FLEX=0,DISPLAY_NONE=YGEnums.DISPLAY_NONE=1,EDGE_LEFT=YGEnums.EDGE_LEFT=0,EDGE_TOP=YGEnums.EDGE_TOP=1,EDGE_RIGHT=YGEnums.EDGE_RIGHT=2,EDGE_BOTTOM=YGEnums.EDGE_BOTTOM=3,EDGE_START=YGEnums.EDGE_START=4,EDGE_END=YGEnums.EDGE_END=5,EDGE_HORIZONTAL=YGEnums.EDGE_HORIZONTAL=6,EDGE_VERTICAL=YGEnums.EDGE_VERTICAL=7,EDGE_ALL=YGEnums.EDGE_ALL=8,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS=YGEnums.EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS=0,EXPERIMENTAL_FEATURE_ABSOLUTE_PERCENTAGE_AGAINST_PADDING_EDGE=YGEnums.EXPERIMENTAL_FEATURE_ABSOLUTE_PERCENTAGE_AGAINST_PADDING_EDGE=1,EXPERIMENTAL_FEATURE_FIX_ABSOLUTE_TRAILING_COLUMN_MARGIN=YGEnums.EXPERIMENTAL_FEATURE_FIX_ABSOLUTE_TRAILING_COLUMN_MARGIN=2,FLEX_DIRECTION_COLUMN=YGEnums.FLEX_DIRECTION_COLUMN=0,FLEX_DIRECTION_COLUMN_REVERSE=YGEnums.FLEX_DIRECTION_COLUMN_REVERSE=1,FLEX_DIRECTION_ROW=YGEnums.FLEX_DIRECTION_ROW=2,FLEX_DIRECTION_ROW_REVERSE=YGEnums.FLEX_DIRECTION_ROW_REVERSE=3,GUTTER_COLUMN=YGEnums.GUTTER_COLUMN=0,GUTTER_ROW=YGEnums.GUTTER_ROW=1,GUTTER_ALL=YGEnums.GUTTER_ALL=2,JUSTIFY_FLEX_START=YGEnums.JUSTIFY_FLEX_START=0,JUSTIFY_CENTER=YGEnums.JUSTIFY_CENTER=1,JUSTIFY_FLEX_END=YGEnums.JUSTIFY_FLEX_END=2,JUSTIFY_SPACE_BETWEEN=YGEnums.JUSTIFY_SPACE_BETWEEN=3,JUSTIFY_SPACE_AROUND=YGEnums.JUSTIFY_SPACE_AROUND=4,JUSTIFY_SPACE_EVENLY=YGEnums.JUSTIFY_SPACE_EVENLY=5,LOG_LEVEL_ERROR=YGEnums.LOG_LEVEL_ERROR=0,LOG_LEVEL_WARN=YGEnums.LOG_LEVEL_WARN=1,LOG_LEVEL_INFO=YGEnums.LOG_LEVEL_INFO=2,LOG_LEVEL_DEBUG=YGEnums.LOG_LEVEL_DEBUG=3,LOG_LEVEL_VERBOSE=YGEnums.LOG_LEVEL_VERBOSE=4,LOG_LEVEL_FATAL=YGEnums.LOG_LEVEL_FATAL=5,MEASURE_MODE_UNDEFINED=YGEnums.MEASURE_MODE_UNDEFINED=0,MEASURE_MODE_EXACTLY=YGEnums.MEASURE_MODE_EXACTLY=1,MEASURE_MODE_AT_MOST=YGEnums.MEASURE_MODE_AT_MOST=2,NODE_TYPE_DEFAULT=YGEnums.NODE_TYPE_DEFAULT=0,NODE_TYPE_TEXT=YGEnums.NODE_TYPE_TEXT=1,OVERFLOW_VISIBLE=YGEnums.OVERFLOW_VISIBLE=0,OVERFLOW_HIDDEN=YGEnums.OVERFLOW_HIDDEN=1,OVERFLOW_SCROLL=YGEnums.OVERFLOW_SCROLL=2,POSITION_TYPE_STATIC=YGEnums.POSITION_TYPE_STATIC=0,POSITION_TYPE_RELATIVE=YGEnums.POSITION_TYPE_RELATIVE=1,POSITION_TYPE_ABSOLUTE=YGEnums.POSITION_TYPE_ABSOLUTE=2,PRINT_OPTIONS_LAYOUT=YGEnums.PRINT_OPTIONS_LAYOUT=1,PRINT_OPTIONS_STYLE=YGEnums.PRINT_OPTIONS_STYLE=2,PRINT_OPTIONS_CHILDREN=YGEnums.PRINT_OPTIONS_CHILDREN=4,UNIT_UNDEFINED=YGEnums.UNIT_UNDEFINED=0,UNIT_POINT=YGEnums.UNIT_POINT=1,UNIT_PERCENT=YGEnums.UNIT_PERCENT=2,UNIT_AUTO=YGEnums.UNIT_AUTO=3,WRAP_NO_WRAP=YGEnums.WRAP_NO_WRAP=0,WRAP_WRAP=YGEnums.WRAP_WRAP=1,WRAP_WRAP_REVERSE=YGEnums.WRAP_WRAP_REVERSE=2;let CONSTANTS=YGEnums;var wrapAsm=E=>{function _(E,_,T){let N=E[_];E[_]=function(...E){return T.call(this,N,...E)}}for(let T of[\"setPosition\",\"setMargin\",\"setFlexBasis\",\"setWidth\",\"setHeight\",\"setMinWidth\",\"setMinHeight\",\"setMaxWidth\",\"setMaxHeight\",\"setPadding\"]){let N={[YGEnums.UNIT_POINT]:E.Node.prototype[T],[YGEnums.UNIT_PERCENT]:E.Node.prototype[`${T}Percent`],[YGEnums.UNIT_AUTO]:E.Node.prototype[`${T}Auto`]};_(E.Node.prototype,T,function(E,..._){let I,L;let O=_.pop();if(\"auto\"===O)I=YGEnums.UNIT_AUTO,L=void 0;else if(\"object\"==typeof O)I=O.unit,L=O.valueOf();else if(I=\"string\"==typeof O&&O.endsWith(\"%\")?YGEnums.UNIT_PERCENT:YGEnums.UNIT_POINT,L=parseFloat(O),!Number.isNaN(O)&&Number.isNaN(L))throw Error(`Invalid value ${O} for ${T}`);if(!N[I])throw Error(`Failed to execute \"${T}\": Unsupported unit '${O}'`);return void 0!==L?N[I].call(this,..._,L):N[I].call(this,..._)})}function T(_){return E.MeasureCallback.implement({measure:(...E)=>{let{width:T,height:N}=_(...E);return{width:T??NaN,height:N??NaN}}})}function N(_){return E.DirtiedCallback.implement({dirtied:_})}return _(E.Node.prototype,\"setMeasureFunc\",function(E,_){return _?E.call(this,T(_)):this.unsetMeasureFunc()}),_(E.Node.prototype,\"setDirtiedFunc\",function(E,_){E.call(this,N(_))}),_(E.Config.prototype,\"free\",function(){E.Config.destroy(this)}),_(E.Node,\"create\",(_,T)=>T?E.Node.createWithConfig(T):E.Node.createDefault()),_(E.Node.prototype,\"free\",function(){E.Node.destroy(this)}),_(E.Node.prototype,\"freeRecursive\",function(){for(let E=0,_=this.getChildCount();E<_;++E)this.getChild(0).freeRecursive();this.free()}),_(E.Node.prototype,\"calculateLayout\",function(E,_=NaN,T=NaN,N=YGEnums.DIRECTION_LTR){return E.call(this,_,T,N)}),{Config:E.Config,Node:E.Node,...YGEnums}};export{OVERFLOW_HIDDEN as $,ALIGN_AUTO as A,FLEX_DIRECTION_ROW as B,FLEX_DIRECTION_ROW_REVERSE as C,DIMENSION_WIDTH as D,EDGE_LEFT as E,FLEX_DIRECTION_COLUMN as F,GUTTER_COLUMN as G,GUTTER_ROW as H,GUTTER_ALL as I,JUSTIFY_FLEX_START as J,JUSTIFY_CENTER as K,JUSTIFY_FLEX_END as L,JUSTIFY_SPACE_BETWEEN as M,JUSTIFY_SPACE_AROUND as N,JUSTIFY_SPACE_EVENLY as O,LOG_LEVEL_ERROR as P,LOG_LEVEL_WARN as Q,LOG_LEVEL_INFO as R,LOG_LEVEL_DEBUG as S,LOG_LEVEL_VERBOSE as T,LOG_LEVEL_FATAL as U,MEASURE_MODE_UNDEFINED as V,MEASURE_MODE_EXACTLY as W,MEASURE_MODE_AT_MOST as X,NODE_TYPE_DEFAULT as Y,NODE_TYPE_TEXT as Z,OVERFLOW_VISIBLE as _,ALIGN_FLEX_START as a,OVERFLOW_SCROLL as a0,POSITION_TYPE_STATIC as a1,POSITION_TYPE_RELATIVE as a2,POSITION_TYPE_ABSOLUTE as a3,PRINT_OPTIONS_LAYOUT as a4,PRINT_OPTIONS_STYLE as a5,PRINT_OPTIONS_CHILDREN as a6,UNIT_UNDEFINED as a7,UNIT_POINT as a8,UNIT_PERCENT as a9,UNIT_AUTO as aa,WRAP_NO_WRAP as ab,WRAP_WRAP as ac,WRAP_WRAP_REVERSE as ad,ALIGN_CENTER as b,ALIGN_FLEX_END as c,ALIGN_STRETCH as d,ALIGN_BASELINE as e,ALIGN_SPACE_BETWEEN as f,ALIGN_SPACE_AROUND as g,DIMENSION_HEIGHT as h,DIRECTION_INHERIT as i,DIRECTION_LTR as j,DIRECTION_RTL as k,DISPLAY_FLEX as l,DISPLAY_NONE as m,EDGE_TOP as n,EDGE_RIGHT as o,EDGE_BOTTOM as p,EDGE_START as q,EDGE_END as r,EDGE_HORIZONTAL as s,EDGE_VERTICAL as t,EDGE_ALL as u,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS as v,wrapAsm as w,EXPERIMENTAL_FEATURE_ABSOLUTE_PERCENTAGE_AGAINST_PADDING_EDGE as x,EXPERIMENTAL_FEATURE_FIX_ABSOLUTE_TRAILING_COLUMN_MARGIN as y,FLEX_DIRECTION_COLUMN_REVERSE as z};\n","import{w as r}from\"./wrapAsm-f766f97f.js\";export{A as ALIGN_AUTO,e as ALIGN_BASELINE,b as ALIGN_CENTER,c as ALIGN_FLEX_END,a as ALIGN_FLEX_START,g as ALIGN_SPACE_AROUND,f as ALIGN_SPACE_BETWEEN,d as ALIGN_STRETCH,h as DIMENSION_HEIGHT,D as DIMENSION_WIDTH,i as DIRECTION_INHERIT,j as DIRECTION_LTR,k as DIRECTION_RTL,l as DISPLAY_FLEX,m as DISPLAY_NONE,u as EDGE_ALL,p as EDGE_BOTTOM,r as EDGE_END,s as EDGE_HORIZONTAL,E as EDGE_LEFT,o as EDGE_RIGHT,q as EDGE_START,n as EDGE_TOP,t as EDGE_VERTICAL,x as EXPERIMENTAL_FEATURE_ABSOLUTE_PERCENTAGE_AGAINST_PADDING_EDGE,y as EXPERIMENTAL_FEATURE_FIX_ABSOLUTE_TRAILING_COLUMN_MARGIN,v as EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS,F as FLEX_DIRECTION_COLUMN,z as FLEX_DIRECTION_COLUMN_REVERSE,B as FLEX_DIRECTION_ROW,C as FLEX_DIRECTION_ROW_REVERSE,I as GUTTER_ALL,G as GUTTER_COLUMN,H as GUTTER_ROW,K as JUSTIFY_CENTER,L as JUSTIFY_FLEX_END,J as JUSTIFY_FLEX_START,N as JUSTIFY_SPACE_AROUND,M as JUSTIFY_SPACE_BETWEEN,O as JUSTIFY_SPACE_EVENLY,S as LOG_LEVEL_DEBUG,P as LOG_LEVEL_ERROR,U as LOG_LEVEL_FATAL,R as LOG_LEVEL_INFO,T as LOG_LEVEL_VERBOSE,Q as LOG_LEVEL_WARN,X as MEASURE_MODE_AT_MOST,W as MEASURE_MODE_EXACTLY,V as MEASURE_MODE_UNDEFINED,Y as NODE_TYPE_DEFAULT,Z as NODE_TYPE_TEXT,$ as OVERFLOW_HIDDEN,a0 as OVERFLOW_SCROLL,_ as OVERFLOW_VISIBLE,a3 as POSITION_TYPE_ABSOLUTE,a2 as POSITION_TYPE_RELATIVE,a1 as POSITION_TYPE_STATIC,a6 as PRINT_OPTIONS_CHILDREN,a4 as PRINT_OPTIONS_LAYOUT,a5 as PRINT_OPTIONS_STYLE,aa as UNIT_AUTO,a9 as UNIT_PERCENT,a8 as UNIT_POINT,a7 as UNIT_UNDEFINED,ab as WRAP_NO_WRAP,ac as WRAP_WRAP,ad as WRAP_WRAP_REVERSE}from\"./wrapAsm-f766f97f.js\";var yoga=(()=>{var r=\"undefined\"!=typeof document&&document.currentScript?document.currentScript.src:void 0;return function(e={}){u||(u=void 0!==e?e:{}),u.ready=new Promise(function(r,e){s=r,A=e});var a,i,n=Object.assign({},u),f=\"\";\"undefined\"!=typeof document&&document.currentScript&&(f=document.currentScript.src),r&&(f=r),f=0!==f.indexOf(\"blob:\")?f.substr(0,f.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1):\"\";var t=u.print||console.log.bind(console),b=u.printErr||console.warn.bind(console);function o(){}function k(r){this.exports=function(r){for(var e,a=new Uint8Array(123),i=25;i>=0;--i)a[48+i]=52+i,a[65+i]=i,a[97+i]=26+i;function n(r,e,i){for(var n,f,t=0,b=e,o=i.length,k=e+(3*o>>2)-(\"=\"==i[o-2])-(\"=\"==i[o-1]);t>4,b>2),b>2]=l[L>>2]+1,L=3&l[r+24>>2],r$=(0|i)<=1?1:i,rf=L||r$,s[r+300|0]=252&d[r+300|0]|3&rf,L=r+252|0,i=((0|rf)!=1)<<3,S=rP(r,rL=(0|rf)==2?3:2,b),p[L+i>>2]=S,_=L,L=((0|rf)==1)<<3,Q=rS(r,rL,b),p[_+L>>2]=Q,H=rP(r,0,b),p[r+256>>2]=H,C=rS(r,0,b),p[r+264>>2]=C,eb=(F=r+268|0)+i|0,eo=rM(r,rL),p[eb>>2]=eo,eb=L+F|0,eo=rU(r,rL),p[eb>>2]=eo,X=rM(r,0),p[r+272>>2]=X,P=rU(r,0),p[r+280>>2]=P,eb=(_=i)+(i=r+284|0)|0,eo=rZ(r,rL,b),p[eb>>2]=eo,eb=i+L|0,eo=rW(r,rL,b),p[eb>>2]=eo,O=rZ(r,0,b),p[r+288>>2]=O,D=rW(r,0,b),p[r+296>>2]=D,S=w(S+Q),Q=w(H+C),i=l[r+8>>2]){H=w(w(w(p[r+284>>2]+p[r+292>>2])+p[r+268>>2])+p[r+276>>2]),a=f?w(a-Q):w(NaN),X=w(w(O+D)+X),e=O=n?w(e-S):w(NaN);i:if(e==e){if((e=w(O-H))!=e){e=w(0);break i}e=eu(e,w(0))}S=w(X+P),X=a;n:if(a==a){if((X=w(a-S))!=X){X=w(0);break n}X=eu(X,w(0))}if(!((0|n)!=1|(0|f)!=1)){i=(e=ro(r,2,O,b))!=e,X=w(w(rZ(r,2,b)+rM(r,2))+w(rW(r,2,b)+rU(r,2)));f:{if(!(i|X!=X)){e=eu(e,X);break f}e=i?X:e}p[r+516>>2]=e,i=(e=ro(r,0,a,o))!=e,a=w(w(rZ(r,0,b)+rM(r,0))+w(rW(r,0,b)+rU(r,0)));t:{if(!(i|a!=a)){e=eu(e,a);break t}e=i?a:e}p[r+520>>2]=e;break r}b:{if(16&d[r+4|0]){eY[0|i](I+24|0,r,e,n,X,f,0);break b}eY[0|i](I+24|0,r,e,n,X,f)}l[h+20>>2]=l[h+20>>2]+1,l[(i=(N<<2)+h|0)+24>>2]=l[i+24>>2]+1,e=w(H+p[I+24>>2]),i=(e=ro(r,2,n?(0|n)==2?e:O:e,b))!=e,X=w(w(rZ(r,2,b)+rM(r,2))+w(rW(r,2,b)+rU(r,2)));o:{if(!(i|X!=X)){e=eu(e,X);break o}e=i?X:e}p[r+516>>2]=e,e=w(S+p[I+28>>2]),i=(e=ro(r,0,f?(0|f)==2?e:a:e,o))!=e,a=w(w(rZ(r,0,b)+rM(r,0))+w(rW(r,0,b)+rU(r,0)));k:{if(!(i|a!=a)){e=eu(e,a);break k}e=i?a:e}p[r+520>>2]=e;break r}if(i=l[r+556>>2],N=l[r+560>>2],(0|i)==(0|N)){Q=w(a-Q),i=(e=ro(r,2,-3&n?w(e-S):w(w(w(p[r+284>>2]+p[r+292>>2])+p[r+268>>2])+p[r+276>>2]),b))!=e,a=w(w(rZ(r,2,b)+rM(r,2))+w(rW(r,2,b)+rU(r,2)));c:{if(!(i|a!=a)){e=eu(e,a);break c}e=i?a:e}p[r+516>>2]=e,i=(e=ro(r,0,-3&f?Q:w(w(w(O+D)+X)+P),o))!=e,a=w(w(rZ(r,0,b)+rM(r,0))+w(rW(r,0,b)+rU(r,0)));u:{if(!(i|a!=a)){e=eu(e,a);break u}e=i?a:e}p[r+520>>2]=e;break r}s:if(!c){if(O=w(e-S),X=w(a-Q),!((0|n)==2&O<=w(0)|!(!(X<=w(0))|(0|f)!=2)&X==X)&((0|n)!=1|(0|f)!=1))break s;i=(e=ro(r,2,O==O?(0|n)==2&&O>2]=e,i=(e=ro(r,0,X!=X?w(0):(0|f)==2&&X>2]=e;break r}for(rd=(rr=N-i|0)>>2;L=l[i>>2],l[L+552>>2]!=(0|r)&&(F=l[r+568>>2],L=rV(l[F>>2],d[F+8|0],L,r,U,0),l[i>>2]=L,l[L+552>>2]=r),U=U+1|0,(0|N)!=(0|(i=i+4|0)););s[r+300|0]=251&d[r+300|0],U=3,i=(rH=l[r+24>>2])>>>2&3;d:{h:{v:{if((0|rf)==2){N=0;p:switch(i-2|0){case 0:break d;case 1:break p;default:break v}U=2;break d}if(U=2,N=0,i>>>0>1)break h}N=U}U=i}r0=w(e-S),rh=w(w(rZ(r,U,b)+rM(r,U))+w(rW(r,U,b)+rU(r,U))),D=w(rZ(r,N,b)+rM(r,N)),rb=w(D+w(rW(r,N,b)+rU(r,N))),C=rs(r,0,r0,(rk=U>>>0>1)?rh:rb,b),J=rs(r,1,r2=w(a-Q),rk?rb:rh,o),K=rk?J:C,Q=rk?C:J,rp=l[r+560>>2],L=l[r+556>>2],x=rk?n:f;m:if((0|x)==1){if((0|L)==(0|rp))break a;for(i=0,F=L;;){_=i,i=l[F>>2];N:{if(!rQ(i)){i=_;break N}if(Y=0,_||!(_=l[i+552>>2]))break m;w:{y:{a=p[i+32>>2];E:if((a==a||(X=w(0),(a=p[i+28>>2])>w(0)))&&(X=a,a!=a))break y;if(w(y(X))>2])!=a){if(s[i+4|0]<0){a=w(1);break w}if(a=w(0),!((e=p[i+28>>2])>2],rc(M),F=l[M+24>>2];G:{if(4194304&F){if(function r(e,a){var i=0,n=0,f=0,t=0,b=0,o=0;for(re=i=re-320|0,l[(i=n=ry(i,0,288))+16>>2]=2143289344,l[i+20>>2]=2143289344,ry(i+24|0,0,49),l[i+80>>2]=2143289344,t=i+288|0,f=i+96|0;l[(i=f)+16>>2]=-1082130432,l[i+20>>2]=-1082130432,l[i+8>>2]=0,l[i+12>>2]=0,l[i>>2]=-1082130432,l[i+4>>2]=-1082130432,(0|t)!=(0|(f=i+24|0)););if(l[n+312>>2]=-1082130432,l[n+316>>2]=-1082130432,l[n+304>>2]=0,l[n+308>>2]=0,l[n+296>>2]=-1082130432,l[n+300>>2]=-1082130432,l[n+288>>2]=2143289344,l[n+292>>2]=2143289344,ru(e+228|0,n,320),l[e+244>>2]=0,l[e+248>>2]=0,s[e+4|0]=1|d[e+4|0],f=l[e+556>>2],b=l[e+560>>2],(0|f)!=(0|b))for(;i=l[f>>2],l[i+552>>2]!=(0|e)&&(t=l[e+568>>2],i=rV(l[t>>2],d[t+8|0],i,e,o,a),l[f>>2]=i,l[i+552>>2]=e,i=l[f>>2]),r(i,a),o=o+1|0,(0|b)!=(0|(f=f+4|0)););re=n+320|0}(M,0),F=1|(i=d[M+4|0]),s[M+4|0]=F,!(4&i))break G;s[M+4|0]=251&F;break G}if(c&&(rO(M,(i=3&F)||ra,Q,K,C),F=l[M+24>>2]),(196608&F)==131072)break G;R:{if((0|Y)==(0|M)){l[Y+308>>2]=0,l[Y+304>>2]=m,a=w(0);break R}_=(rF=l[r+24>>2])>>>2&3;g:{Z:if((0|rf)==2){i=3;W:switch(_-2|0){case 0:break g;case 1:break W;default:break Z}i=2;break g}i=_}O=(rA=i>>>0>1)?C:J,a=w(0),e=p[M+40>>2];V:{B:{_=l[M+40>>2];T:if((0|_)!=2139156720){if((0|_)==2140081935)break B;j=4276;I:{if((0|_)!=2141891242){if(e==e)break I;j=4268}a=p[j>>2];X:{O:switch(0|(_=l[j+4>>2])){case 0:case 3:break O;default:break X}if(e=w(NaN),!(p[M+28>>2]>w(0)))break V;ri=(j=s[M+4|0]<0)?2143289344:0,_=j?3:1,E=ri,t[2]=E,a=u()}switch(e=w(NaN),_-1|0){case 0:break B;case 1:break T;default:break V}}if(G=(-1073741825&_)+536870912|0,t[2]=G,a=u(),!(1073741824&_))break B}e=w(w(O*a)*w(.009999999776482582));break V}e=a}a=p[M+572>>2],_=0;L:{_:switch(0|($=l[M+576>>2])){case 0:case 3:break L;default:break _}if(S=p[M+572>>2],!((0|$)!=1|S!=S)){if(a>2],j=0;F:{C:switch(0|(q=l[M+584>>2])){case 0:case 3:break F;default:break C}if(P=p[M+580>>2],!((0|q)!=1|P!=P)){if(S>2],(!d[l[M+568>>2]+20|0]|l[M+304>>2]==(0|m))&a==a)break S;if(!((a=w(w(rZ(M,i,C)+rM(M,i))+w(rW(M,i,C)+rU(M,i))))<=e)&ea){a=e;break P}a=a!=a?e:a;break P}if(l[I+360>>2]=2143289344,l[I+24>>2]=2143289344,ri=0,l[I+356>>2]=0,l[I+352>>2]=0,P=w(rP(M,2,C)+rS(M,2,C)),H=rP(M,0,C),z=rS(M,0,C),O=w(NaN),rl=0,e=w(NaN),_){M:{H:switch($-1|0){case 0:e=a;break M;case 1:break H;default:break M}e=w(w(C*a)*w(.009999999776482582))}l[I+356>>2]=1,e=w(P+e),p[I+24>>2]=e,rl=1}if(H=w(H+z),j){a=w(NaN);Q:{z:switch(q-1|0){case 0:a=S;break Q;case 1:break z;default:break Q}a=w(w(J*S)*w(.009999999776482582))}l[I+352>>2]=1,O=w(H+a),p[I+360>>2]=O,ri=1}$=i>>>0<2,q=3145728&rF;j:{D:{x:{if(!(!rA&(0|q)==2097152)){if(rw|(0|q)==2097152)break D;if(e!=e)break x;break D}if(rw|e==e)break j}rl=2,l[I+356>>2]=2,p[I+24>>2]=C,e=C}J:{if(!(!$&(0|q)==2097152)){if((0|q)==2097152|J!=J)break j;if(O!=O)break J;break j}if(O==O|J!=J)break j}ri=2,l[I+352>>2]=2,p[I+360>>2]=J,O=J}q=(a=p[M+224>>2])!=a;K:if(!q){q:{if(!(rA|(0|rl)!=1)){l[I+352>>2]=1,p[I+360>>2]=H+w(w(e-P)/a);break q}if($|(0|ri)!=1)break K;l[I+356>>2]=1,p[I+24>>2]=w(w(O-H)*a)+P}ri=1,rl=1}F=(F=F>>>13&7)||rF>>>10&7;$:if(!((0|F)==5|(0|rl)==1|(rA|(_|rN))|(0|F)!=4)){if(l[I+356>>2]=1,p[I+24>>2]=C,q)break $;ri=1,l[I+352>>2]=1,p[I+360>>2]=w(C-P)/a}rr:if(!($|(0|f)!=1|J!=J|j|(0|F)!=4|(0|ri)==1)){if(l[I+352>>2]=1,p[I+360>>2]=J,q)break rr;l[I+356>>2]=1,p[I+24>>2]=w(J-H)*a}if(rg(M,2,C,C,I+356|0,I+24|0),rg(M,0,J,C,I+352|0,I+360|0),rt(M,p[I+24>>2],p[I+360>>2],rf,l[I+356>>2],l[I+352>>2],C,J,0,5,A,h,v,m),F=(e=p[(M+(l[(i<<2)+4252>>2]<<2)|0)+516>>2])!=e,a=w(w(rZ(M,i,C)+rM(M,i))+w(rW(M,i,C)+rU(M,i))),!(F|a!=a)){a=eu(e,a);break P}a=F?a:e}p[M+308>>2]=a}l[M+304>>2]=m}X=w(X+w(a+w(rP(M,U,C)+rS(M,U,C))))}if((0|rp)==(0|(L=L+4|0)))break}break e}l[I>>2]=3023,rB(r,I),eX(),k()}l[I+16>>2]=3105,rB(r,I+16|0),eX(),k()}X=w(0)}e=w(X+w(0)),rz=rk?o:b,rC=rk?b:o,rr>>>0>=5&&(e=w(w(rv(r,U,K)*w(rd-1>>>0))+e)),i=e>Q,rp=786432&rH,rG=(0|x)==2&&rp&&i?1:x,r8=(rw=(0|(M=rk?f:n))==1)&(1^c),rk=U>>>0<2,r9=-3&M,rF=r+208|0,q=(f=N<<2)+4220|0,r7=!rp&rw,er=(0|M)!=1|c,rA=(L=U<<2)+4220|0,r_=L+4252|0,ei=(rl=K==K)<<1,$=f+4252|0,ef=!x|!i,rH=I+52|0,r1=rv(r,N,K),F=0,i=0,ri=0;re:{for(;;){j=i,ry(I+24|0,0,44),i=l[r+560>>2],f=l[r+556>>2];ra:if((0|i)!=(0|f)){if((0|(i=i-f|0))<0)break re;if(L=en(I+360|0,i>>2,0,rH),i=l[I+44>>2],f=l[I+48>>2]-i|0,f=rm(l[I+364>>2]-f|0,i,f),i=l[I+44>>2],l[I+364>>2]=i,l[I+44>>2]=f,_=l[I+368>>2],Y=l[I+372>>2],f=l[I+48>>2],l[I+368>>2]=f,x=l[I+52>>2],l[I+48>>2]=_,l[I+52>>2]=Y,l[I+372>>2]=x,l[L>>2]=i,(0|i)!=(0|f)&&(l[I+368>>2]=f+((i-f|0)+3&-4)),!i)break ra;rE(i)}f=(Y=l[r+24>>2])>>>2&3;ri:{rn:if((0|((i=3&Y)||r$))==2){i=3;rf:switch(f-2|0){case 0:break ri;case 1:break rf;default:break rn}i=2;break ri}i=f}X=rv(r,i,C),L=F,_=l[r+560>>2],f=l[r+556>>2];rt:if(!(L>>>0>=_-f>>2>>>0))for(x=786432&Y,a=w(0);;){if(_-f>>2>>>0<=L>>>0)break re;if(Y=l[(L<<2)+f>>2],!(4194304&(rr=l[Y+24>>2])|(196608&rr)==131072)){if(l[Y+548>>2]=j,e=rP(Y,i,C),O=rS(Y,i,C),f=l[I+24>>2],S=(0|L)==(0|F)?w(0):X,e=w(e+O),O=p[Y+308>>2],P=ro(Y,i,O,rC),!(f?!(w(S+w(e+w(a+P)))>Q)|!x:1))break rt;if(l[I+24>>2]=f+1,S=w(S+w(e+P)),p[I+28>>2]=S+p[I+28>>2],rQ(Y)){rb:{if(l[Y+552>>2]){if((e=p[Y+32>>2])!=e&&(e=(e=p[Y+28>>2])>w(0)?e:w(0)),p[I+32>>2]=e+p[I+32>>2],(e=p[Y+36>>2])==e)break rb;if(s[Y+4|0]<0){e=w(1);break rb}if(e=w(0),!((P=p[Y+28>>2])>2]=p[I+32>>2]+w(0)}p[I+36>>2]=p[I+36>>2]-w(e*O)}f=l[I+48>>2];ro:{if((0|f)!=l[I+52>>2]){l[f>>2]=Y,l[I+48>>2]=f+4;break ro}if((_=(rr=(f=f-l[I+44>>2]|0)>>2)+1|0)>>>0>=1073741824)break re;if(ra=f>>>1|0,rr=en(I+360|0,f>>>0>=2147483644?1073741823:_>>>0>>0?ra:_,rr,rH),l[l[I+368>>2]>>2]=Y,l[I+368>>2]=l[I+368>>2]+4,f=l[I+44>>2],_=l[I+48>>2]-f|0,_=rm(l[I+364>>2]-_|0,f,_),f=l[I+44>>2],l[I+364>>2]=f,l[I+44>>2]=_,Y=l[I+368>>2],ra=l[I+372>>2],_=l[I+48>>2],l[I+368>>2]=_,rN=l[I+52>>2],l[I+48>>2]=Y,l[I+52>>2]=ra,l[I+372>>2]=rN,l[rr>>2]=f,(0|f)!=(0|_)&&(l[I+368>>2]=_+((f-_|0)+3&-4)),!f)break ro;rE(f)}f=l[r+556>>2],_=l[r+560>>2],a=w(a+S)}if(!((L=L+1|0)>>>0<_-f>>2>>>0))break}!((z=p[I+32>>2])>w(0))|!(z>2]=1065353216,z=w(1)),!((rn=p[I+36>>2])>w(0))|!(rn>2]=1065353216,rn=w(1)),l[I+40>>2]=L,H=p[I+28>>2],x=l[I+24>>2],ri&&rE(ri),S=p[I+56>>2],rr=l[I+48>>2],ri=l[I+44>>2];rk:{rc:{ru:{rs:if((0|rG)!=1){a=w(0),e=p[rF>>2];rA:{rl:{i=l[rF>>2];rd:if((0|i)!=2139156720){if((0|i)==2140081935)break rl;f=4276;rh:{if((0|i)!=2141891242){if(e==e)break rh;f=4268}switch(a=p[f>>2],e=w(NaN),l[f+4>>2]-1|0){case 0:break rl;case 1:break rd;default:break rA}}if(R=(-1073741825&i)+536870912|0,t[2]=R,a=u(),!(1073741824&i))break rl}e=w(w(a*b)*w(.009999999776482582));break rA}e=a}a=w(0),X=p[r+216>>2];rv:{rp:{i=l[r+216>>2];rm:if((0|i)!=2139156720){if((0|i)==2140081935)break rp;f=4276;rN:{if((0|i)!=2141891242){if(X==X)break rN;f=4268}switch(a=p[f>>2],X=w(NaN),l[f+4>>2]-1|0){case 0:break rp;case 1:break rm;default:break rv}}if(g=(-1073741825&i)+536870912|0,t[2]=g,a=u(),!(1073741824&i))break rp}X=w(w(a*b)*w(.009999999776482582));break rv}X=a}a=w(0),O=p[r+212>>2];rw:{ry:{i=l[r+212>>2];rE:if((0|i)!=2139156720){if((0|i)==2140081935)break ry;f=4276;rG:{if((0|i)!=2141891242){if(O==O)break rG;f=4268}switch(a=p[f>>2],P=w(NaN),l[f+4>>2]-1|0){case 0:break ry;case 1:break rE;default:break rw}}if(Z=(-1073741825&i)+536870912|0,t[2]=Z,a=u(),!(1073741824&i))break ry}P=w(w(a*o)*w(.009999999776482582));break rw}P=a}a=w(0),O=p[r+220>>2];rR:{rg:{i=l[r+220>>2];rZ:if((0|i)!=2139156720){if((0|i)==2140081935)break rg;f=4276;rW:{if((0|i)!=2141891242){if(O==O)break rW;f=4268}switch(a=p[f>>2],O=w(NaN),l[f+4>>2]-1|0){case 0:break rg;case 1:break rZ;default:break rR}}if(W=(-1073741825&i)+536870912|0,t[2]=W,a=u(),!(1073741824&i))break rg}O=w(w(a*o)*w(.009999999776482582));break rR}O=a}if((a=w(((i=U>>>0>1)?e:P)-rh))==a&a>H||(a=w((i?X:O)-rh))==a&a>2]+11|0])break rs;if(a=H,!l[r+552>>2]|z==w(0))break rc;e=p[r+32>>2];rV:{rB:{if(e==e){a=e;break rB}if(!((a=p[r+28>>2])>w(0)))break rV}if(a!=a){a=Q;break rc}e=p[r+32>>2]}if(e!=e&&(a=H,!((e=p[r+28>>2])>w(0)))||(a=Q,e!=w(0)))break rc;a=H;break rc}a=Q}if(a!=a)break rc;S=w(a-H);break rk}if(!(H>2])+308>>2],a=ro(i,U,H,rC);rI:{if(S>2];rX:{if(!Y){X=w(0);break rX}if((X=p[i+36>>2])==X)break rX;if(s[i+4|0]<0){X=w(1);break rX}if(X=w(0),!((e=p[i+28>>2])w(0)|e>2])==a)break rL;if(s[i+4|0]<0){a=w(1);break rL}if(a=w(0),!((X=p[i+28>>2])w(0))|!l[i+552>>2]||(X=p[i+32>>2])!=X&&!((X=p[i+28>>2])>w(0))||!(Xw(0)))break rI;_=(e=ro(i,U,P=w(w(w(S/z)*X)+a),Q))!=e,H=w(w(rZ(i,U,C)+rM(i,U))+w(rW(i,U,C)+rU(i,U)));r_:{if(!(_|H!=H)){e=eu(e,H);break r_}e=_?H:e}if(P!=P|e!=e|e==P)break rI;z=w(z-X),O=w(O+w(e-a))}if((0|rr)==(0|(f=f+4|0)))break}for(H=w(S-O),rD=w(H/rn),rx=w(H/z),rK=!(ra=rw&(!(12&d[r+26|0])|ef)),rN=l[$>>2],P=w(0),_=ri;;){f=l[_>>2],a=ro(f,U,p[f+308>>2],rC);rF:{rC:{if(H>2]){e=w(0);break rS}if((e=p[f+36>>2])==e)break rS;if(s[f+4|0]<0){e=w(1);break rS}if(e=w(0),!((X=p[f+28>>2])w(0))|!l[f+552>>2]||(e=p[f+32>>2])!=e&&!((e=p[f+28>>2])>w(0))||!(ew(0)))break rF;e=w(w(rx*e)+a)}if(i=(e=ro(f,U,e,Q))!=e,X=w(w(rZ(f,U,C)+rM(f,U))+w(rW(f,U,C)+rU(f,U))),!(i|X!=X)){X=eu(e,X);break rF}X=i?X:e}e=rP(f,U,C),O=rS(f,U,C),z=rP(f,N,C),rq=rS(f,N,C),O=w(e+O),r4=w(X+O),p[I+352>>2]=r4,l[I+344>>2]=1,z=w(z+rq),e=p[f+224>>2];rP:{if(e==e){l[I+348>>2]=1,O=w(r4-O),p[I+356>>2]=z+(rk?w(O*e):w(O/e)),O=p[(Y=f+(rN<<3)|0)+572>>2],i=l[Y+576>>2],e=p[Y+572>>2];break rP}e=p[(Y=f+(rN<<3)|0)+572>>2];rY:{rU:{rM:{rH:{rQ:{rz:{rj:{rD:{rx:{if(!rl){O=p[Y+572>>2],i=l[Y+576>>2];break rx}O=p[Y+572>>2];rJ:{rK:{rq:{r$:switch(0|(i=l[Y+576>>2])){case 0:case 3:break rq;default:break r$}if(!((0|i)!=1|e!=e)){if(!(ra&O>2]>>>13&7)||(Y=l[r+24>>2]>>>10&7),(0|Y)!=4||(ea(I+24|0,f,N),3==l[I+28>>2]))break rJ;if(ee(I+360|0,f,N),3!=l[I+364>>2])break rD}e=O}switch(0|i){case 0:case 3:break rz;default:break rj}}l[I+348>>2]=1;break rU}if(!((0|i)!=1|e!=e)){if((e=O)>2]=ei;break rU}e=w(NaN);r0:switch(i-1|0){case 1:break rH;case 0:break r0;default:break rM}e=O;break rM}e=w(w(K*O)*w(.009999999776482582))}e=w(z+e),p[I+356>>2]=e,l[I+348>>2]=(rw|(0|i)!=2)&e==e;break rY}p[I+356>>2]=K}e=O}rg(f,U,Q,C,I+344|0,I+352|0),rg(f,N,K,C,I+348|0,I+356|0);r2:{r1:{r4:{r3:switch(0|i){case 0:case 3:break r4;default:break r3}if(!((0|i)!=1|e!=e)){if(O>2]>>>13&7)||(i=l[r+24>>2]>>>10&7),(0|i)!=4||(ea(I+24|0,f,N),3==l[I+28>>2]))break r2;ee(I+360|0,f,N),Y=3!=l[I+364>>2];break r2}Y=0}e=p[I+352>>2],O=p[I+356>>2],z=(i=U>>>0>1)?e:O,e=i?O:e,rJ=l[I+344>>2],r3=l[I+348>>2],et=i?rJ:r3,rJ=i?r3:rJ,i=(1^Y)&c,rt(f,z,e,3&d[r+300|0],et,rJ,C,J,i,i?4:7,A,h,v,m),P=w(P+w(X-a)),i=d[r+300|0];r8:{r6:{if(4&i){Y=251&i;break r6}if(Y=251&i,i=0,!(4&d[f+300|0]))break r8}i=4}if(s[r+300|0]=i|Y,(0|rr)==(0|(_=_+4|0)))break}}S=w(S-P)}i=d[r+300|0],s[r+300|0]=251&i|(Sw(0))|(0|rG)!=2)){P=w(0),a=w(0);r9:{r7:{e=p[(i=rF+(l[r_>>2]<<2)|0)>>2],f=(0|(i=l[i>>2]))==2139156720;er:{if(!f){if(_=(0|i)==2140081935)break r7;if((Y=(0|i)==2141891242)|e!=e)break r5;if(_)break r7;if(Y)break r5;if(V=(-1073741825&i)+536870912|0,t[2]=V,a=u(),!(1073741824&i))break er}a=w(w(rC*a)*w(.009999999776482582))}if(a!=a)break r5;a=w(0);ee:if(!f){if((0|i)==2140081935)break r7;f=4276;ea:{if((0|i)!=2141891242){if(e==e)break ea;f=4268}switch(a=p[f>>2],X=w(NaN),l[f+4>>2]-1|0){case 0:break r7;case 1:break ee;default:break r9}}if(B=(-1073741825&i)+536870912|0,t[2]=B,a=u(),!(1073741824&i))break r7}X=w(w(rC*a)*w(.009999999776482582));break r9}X=a}if((e=w(w(w(X-O)-rD)-w(Q-S)))!=e)break r5;P=eu(e,w(0));break r5}P=S}Y=L>>>0<=F>>>0;ei:{if(!Y){for(rr=l[r+556>>2],ra=(i=l[r+560>>2]-rr>>2)>>>0>>0?F:i,_=0,i=F;;){if((0|i)==(0|ra))break re;if(f=l[rr+(i<<2)>>2],(196608&l[f+24>>2])!=131072&&(ea(rN=I+24|0,f,U),rK=l[I+28>>2],ee(rN,f,U),_=(((0|rK)==3)+_|0)+(3==l[I+28>>2])|0),(0|L)==(0|(i=i+1|0)))break}if(z=w(0),a=H,_)break ei}z=w(0),_=0,a=H;en:switch((l[r+24>>2]>>>4&7)-1|0){case 0:z=w(P*w(.5));break ei;case 1:z=P;break ei;case 2:if(x>>>0<2)break ei;a=w(H+w((eo=w(0),ek=eu(P,w(0)),((eb=P!=P)?eo:ek)/w(x-1>>>0))));break ei;case 4:z=w(P/w(x+1>>>0)),a=w(H+z);break ei;case 3:break en;default:break ei}z=w(w(P*w(.5))/w(x>>>0)),a=w(w(z+z)+H)}if(e=w(O+z),S=w(0),x=rj(r),Y)a=w(0);else{for(rr=L-1|0,rx=w(P/w(0|_)),O=w(0),X=w(0),i=F;;){if(f=l[r+556>>2],l[r+560>>2]-f>>2>>>0<=i>>>0)break re;_=(f=l[f+(i<<2)>>2])+228|0,ru(I+24|0,_,320),a=w(a-((0|i)==(0|rr)?H:w(0))),ra=l[f+24>>2];ef:if(!(4194304&ra)){et:{if((196608&ra)==131072){if(!r5(f,U))break et;if(!c)break ef;P=rI(f,U,Q),rn=rM(r,U),rq=rP(f,U,C),p[_+(l[rA>>2]<<2)>>2]=rq+w(P+rn);break ef}if(ea(I+360|0,f,U),e=w(e+(3==l[I+364>>2]?rx:w(-0))),c&&(ra=_,_=l[rA>>2]<<2,p[ra+_>>2]=e+p[_+(I+24|0)>>2]),ee(I+360|0,f,U),e=w(e+(3==l[I+364>>2]?rx:w(-0))),!er){e=w(e+w(w(a+w(rP(f,U,C)+rS(f,U,C)))+p[I+104>>2])),S=K;break ef}if(e=w(e+w(a+w(p[(_=f+516|0)+(l[r_>>2]<<2)>>2]+w(rP(f,U,C)+rS(f,U,C))))),x){P=rR(f),rn=rP(f,0,C),P=w(P+rn),rn=w(w(p[f+520>>2]+w(rP(f,0,C)+rS(f,0,C)))-P),f=O!=O;eb:{if(!(f|P!=P)){O=eu(O,P);break eb}O=f?P:O}if(!((f=X!=X)|rn!=rn)){X=eu(X,rn);break ef}X=f?rn:X;break ef}if(!((P=w(p[_+(l[$>>2]<<2)>>2]+w(rP(f,N,C)+rS(f,N,C))))!=P|(f=S!=S))){S=eu(S,P);break ef}S=f?P:S;break ef}if(!c)break ef;P=p[(f=l[rA>>2]<<2)+(I+24|0)>>2],eb=f+_|0,eo=w(z+w(P+rM(r,U))),p[eb>>2]=eo}if((0|L)==(0|(i=i+1|0)))break}a=w(X+O)}if(O=x?a:S,P=K,!r9){i=(a=ro(r,N,w(rb+O),rz))!=a,X=w(w(rZ(r,N,b)+rM(r,N))+w(rW(r,N,b)+rU(r,N)));eo:{if(!(i|X!=X)){a=eu(a,X);break eo}a=i?X:a}P=w(a-rb)}i=(a=ro(r,N,w(rb+(r7?K:O)),rz))!=a,X=w(w(rZ(r,N,b)+rM(r,N))+w(rW(r,N,b)+rU(r,N)));ek:{if(!(i|X!=X)){a=eu(a,X);break ek}a=i?X:a}if(X=w(a-rb),!(!c|Y))for(;;){if(i=l[r+556>>2],l[r+560>>2]-i>>2>>>0<=F>>>0)break re;i=l[i+(F<<2)>>2],f=l[i+24>>2];ec:if(!(4194304&f)){if((196608&f)==131072){if(f=l[q>>2],r5(i,N)&&(a=w(w(rI(i,N,K)+rM(r,N))+rP(i,N,C)),p[(i+(f<<2)|0)+228>>2]=a,a==a))break ec;eb=i+(f<<2)|0,eo=w(rM(r,N)+rP(i,N,C)),p[eb+228>>2]=eo;break ec}(f=f>>>13&7)||(f=l[r+24>>2]>>>10&7);eu:{es:{eA:{if((0|f)==5){f=8&l[r+24>>2]?5:1;break eA}if((0|f)!=4||(ea(I+24|0,i,N),f=4,3==l[I+28>>2]))break eA;if(ee(I+360|0,i,N),_=l[$>>2],3==l[I+364>>2])break es;O=p[(_=i+(_<<3)|0)+572>>2];el:{ed:switch(0|(f=l[_+576>>2])){case 0:case 3:break el;default:break ed}if(S=p[_+572>>2],!((0|f)!=1|S!=S)){if(a=D,O>2]<<2)|0)+516>>2],a=(a=p[i+224>>2])==a?w(w(rP(i,N,C)+rS(i,N,C))+(rk?w(O*a):w(O/a))):X,p[I+360>>2]=a,eb=I,eo=w(O+w(rP(i,U,C)+rS(i,U,C))),p[eb+24>>2]=eo,l[I+356>>2]=1,l[I+352>>2]=1,rg(i,U,Q,C,I+356|0,I+24|0),rg(i,N,K,C,I+352|0,I+360|0),O=p[I+360>>2],S=p[I+24>>2],a=(f=U>>>0>1)?O:S,O=f?S:O,f=(0|rp)!=0&(896&l[r+24>>2])!=512,rt(i,O,a,rf,!(f&rk|O!=O),(!f|rk)&a==a,C,J,1,2,A,h,v,m),a=D;break eu}_=l[$>>2]}a=p[((_<<2)+i|0)+516>>2],O=rP(i,N,C),S=rS(i,N,C),ea(I+24|0,i,N),O=w(P-w(a+w(O+S)));eh:if(3==l[I+28>>2]){if(ee(I+360|0,i,N),3!=l[I+364>>2])break eh;a=w(O*w(.5)),a=w(D+(eo=w(0),ek=eu(a,w(0)),(eb=a!=a)?eo:ek));break eu}if(ee(I+24|0,i,N),a=D,3==l[I+28>>2])break eu;if(ea(I+24|0,i,N),3==l[I+28>>2]){a=w(D+(eo=w(0),ek=eu(O,w(0)),(eb=O!=O)?eo:ek));break eu}ev:switch(f-1|0){case 1:a=w(D+w(O*w(.5)));break eu;case 0:break eu;default:break ev}a=w(D+O)}p[(i=i+(l[q>>2]<<2)|0)+228>>2]=a+w(rX+p[i+228>>2])}if((0|(F=F+1|0))==(0|L))break}a=w((j?r1:w(0))+X),i=rY!=rY,e=w(rD+e);ep:{if(!(i|e!=e)){rY=eu(rY,e);break ep}rY=i?e:rY}if(rX=w(rX+a),i=j+1|0,F=L,!(L>>>0>>0))break}em:if(c&&(rp||rj(r))){O=w(0);eN:{ew:if(K==K){e=w(K-rX);ey:switch((l[r+24>>2]>>>7&7)-2|0){case 0:D=w(D+w(e*w(.5)));break ew;case 2:if(!(K>rX))break ew;O=w(e/w(i>>>0));break ew;case 5:if(K>rX){if(D=w(D+w(e/w(i<<1>>>0))),i>>>0<2)break ew;O=w(e/w(i>>>0));break eN}D=w(D+w(e*w(.5)));break ew;case 4:if(!(K>rX)|i>>>0<2)break ew;O=w(e/w(j>>>0));break eN;case 1:break ey;default:break ew}D=w(D+e)}if(!i)break em}for(_=0,i=0,f=0;;){if(S=w(0),a=w(0),e=w(0),X=w(0),L=i,i>>>0>>0){eE:{for(;;){if(f=l[r+556>>2],l[r+560>>2]-f>>2>>>0<=L>>>0)break re;F=l[f+(L<<2)>>2],Y=l[F+24>>2];eG:if(!(4194304&Y|(196608&Y)==131072)){if(f=L,l[F+548>>2]!=(0|_))break eE;e=p[(F+(l[$>>2]<<2)|0)+516>>2];eR:if(e>=w(0)){if(f=a!=a,e=w(e+w(rP(F,N,C)+rS(F,N,C))),!(f|e!=e)){a=eu(a,e);break eR}a=f?e:a}if((f=Y>>>13&7)||(f=l[r+24>>2]>>>10&7),!(8&d[r+24|0])|(0|f)!=5)break eG;e=rR(F),P=rP(F,0,C),e=w(e+P),P=w(w(p[F+520>>2]+w(rP(F,0,C)+rS(F,0,C)))-e),f=a!=a,F=X!=X;eg:{if(!(F|e!=e)){X=eu(X,e);break eg}X=F?e:X}F=S!=S;eZ:{if(!(F|P!=P)){S=eu(S,P);break eZ}S=F?P:S}if(!(f|(e=w(X+S))!=e)){a=eu(a,e);break eG}a=f?e:a}if((0|rd)==(0|(L=L+1|0)))break}f=rd}e=a}if(P=w(D+(_?r1:w(0))),a=w(O+e),D=w(P+a),i>>>0>>0)for(H=w(P+X);;){if(L=l[r+556>>2],l[r+560>>2]-L>>2>>>0<=i>>>0)break re;F=l[L+(i<<2)>>2],L=l[F+24>>2];eW:if(!(4194304&L|(196608&L)==131072)){(L=L>>>13&7)||(L=l[r+24>>2]>>>10&7);eV:{eB:switch(L-1|0){case 4:if(8&d[r+24|0])break eV;case 0:e=rP(F,N,C),p[(F+(l[q>>2]<<2)|0)+228>>2]=P+e;break eW;case 2:e=rS(F,N,C),p[(L=F+228|0)+(l[q>>2]<<2)>>2]=w(D-e)-p[(L+(l[$>>2]<<2)|0)+288>>2];break eW;case 1:p[(L=F+228|0)+(l[q>>2]<<2)>>2]=P+w(w(a-p[(L+(l[$>>2]<<2)|0)+288>>2])*w(.5));break eW;case 3:break eB;default:break eW}e=rP(F,N,C),p[(F+(l[q>>2]<<2)|0)+228>>2]=P+e,e=p[(L=Y=F+(l[$>>2]<<3)|0)+572>>2];eT:{eI:switch(0|(L=l[L+576>>2])){case 0:case 3:break eT;default:break eI}if(X=p[Y+572>>2],!((0|L)!=1|X!=X)){if(e>>0>=2){S=a,e=p[F+516>>2],X=w(e+w(rP(F,U,C)+rS(F,U,C)));break eX}S=w(p[F+520>>2]+w(rP(F,N,C)+rS(F,N,C))),e=p[F+516>>2],X=a}eO:{eL:{if(!(X!=X|e!=e)){if(w(y(w(X-e)))>2])!=e)|S!=S)){if(!(w(y(w(S-e)))>2]=eo}if((0|f)==(0|(i=i+1|0)))break}if(L=(0|_)!=(0|j),_=_+1|0,i=f,!L)break}}_=r+516|0,i=(e=ro(r,2,r0,b))!=e,a=w(w(rZ(r,2,b)+rM(r,2))+w(rW(r,2,b)+rU(r,2)));e_:{if(!(i|a!=a)){e=eu(e,a);break e_}e=i?a:e}p[_>>2]=e,i=(e=ro(r,0,r2,o))!=e,a=w(w(rZ(r,0,b)+rM(r,0))+w(rW(r,0,b)+rU(r,0)));eF:{if(!(i|a!=a)){e=eu(e,a);break eF}e=i?a:e}p[r+520>>2]=e;eC:{eS:{eP:if(!rG||!((0|(i=l[r+24>>2]>>>20&3))==2|(0|rG)!=2)){if(i=(e=ro(r,U,rY,rC))!=e,a=w(w(rZ(r,U,b)+rM(r,U))+w(rW(r,U,b)+rU(r,U))),!(i|a!=a)){e=eu(e,a);break eS}e=i?a:e;break eS}if((0|rG)!=2|(0|i)!=2)break eC;i=(a=w(rh+Q))!=a,e=ro(r,U,rY,rC);eY:{if(!(i|e!=e)){e=es(a,e);break eY}e=i?e:a}if(!((i=e!=e)|rh!=rh)){e=eu(e,rh);break eS}e=i?rh:e}p[_+(l[r_>>2]<<2)>>2]=e}eU:{eM:{eH:if(!M||(f=(0|M)!=2,i=l[r+24>>2]>>>20&3,!(f|(0|i)==2))){if(i=(e=ro(r,N,w(rb+rX),rz))!=e,a=w(w(rZ(r,N,b)+rM(r,N))+w(rW(r,N,b)+rU(r,N))),!(i|a!=a)){e=eu(e,a);break eM}e=i?a:e;break eM}if(f|(0|i)!=2)break eU;i=(a=w(rb+K))!=a,e=ro(r,N,w(rb+rX),rz);eQ:{if(!(i|e!=e)){e=es(a,e);break eQ}e=i?e:a}if(!((i=e!=e)|rb!=rb)){e=eu(e,rb);break eM}e=i?rb:e}p[_+(l[$>>2]<<2)>>2]=e}ez:if(c){if(i=l[r+560>>2],F=l[r+556>>2],(786432&l[r+24>>2])==524288){for(f=rd>>>0<=1?1:rd,c=i-F>>2,i=0;L=0,L=i>>>0>>0?l[(i<<2)+F>>2]:L,(196608&l[L+24>>2])!=131072&&(Y=(L=L+228|0)+(l[q>>2]<<2)|0,j=l[$>>2]<<2,p[Y>>2]=w(p[j+_>>2]-p[Y>>2])-p[(L+j|0)+288>>2]),(0|f)!=(0|(i=i+1|0)););F=l[r+556>>2],i=l[r+560>>2]}if((0|i)!=(0|F))for(j=((U>>>0>1?rG:n)|0)!=0;;){c=l[F>>2];ej:if((4390912&l[c+24>>2])==131072){a=C,Q=J,d[l[r+568>>2]+21|0]&&(Q=p[r+520>>2],a=p[r+516>>2]),n=l[r+24>>2]>>>2&3;eD:{ex:{if((0|rf)==2){f=0,L=3;eJ:switch(n-2|0){case 0:break eD;case 1:break eJ;default:break ex}L=2;break eD}if(f=0,n>>>0<=1)break ex;L=n;break eD}L=n,f=rL}o=w(rP(c,2,a)+rS(c,2,a)),O=rP(c,0,a),S=rS(c,0,a),e=p[c+572>>2];eK:{eq:{e$:switch(0|(n=l[c+576>>2])){case 0:case 3:break eq;default:break e$}b=p[c+572>>2];e0:{if(!((0|n)!=1|b!=b)){if(X=e,!(e>2]-w(rM(r,2)+rU(r,2)))-w(rI(c,2,a)+rT(c,2,a))),a))!=e,b=w(w(rZ(c,2,a)+rM(c,2))+w(rW(c,2,a)+rU(c,2))),!(n|b!=b)){X=eu(e,b);break eK}X=n?b:e}S=w(O+S);e4:{e3:{e8:{e6:{e5:{e9:{e7:{Y=X!=X,b=p[c+580>>2];ar:{ae:{aa:switch(0|(n=l[c+584>>2])){case 0:case 3:break ae;default:break aa}e=p[c+580>>2];ai:{if(!((0|n)!=1|e!=e)){if(!((e=b)>2]-w(rM(r,0)+rU(r,0)))-w(rI(c,0,Q)+rT(c,0,Q))),Q))!=e,b=w(w(rZ(c,0,a)+rM(c,0))+w(rW(c,0,a)+rU(c,0))),!(n|b!=b)){e=eu(e,b);break ar}e=n?b:e}if((0|Y)==(e!=e|0)||(O=p[c+224>>2])!=O)break e5;if(X!=X){X=w(w(w(e-S)*O)+o);break e5}if(e==e)break e5;break e9}if((O=p[c+224>>2])!=O)break e6}e=w(S+w(w(X-o)/O))}if(X!=X)break e8;if(e==e)break e4}n=0;break e3}n=1}Y=a>w(0),b=(x=n&j&L>>>0<2)&&Y?a:X,n^=1,rt(c,b,e,rf,x&&Y?2:n,e==e,b,e,0,6,A,h,v,m),X=w(p[c+516>>2]+eW(c,2,a)),e=w(p[c+520>>2]+eW(c,0,a))}rt(c,X,e,rf,1,1,X,e,1,1,A,h,v,m),o=(n=L>>>0<2)?a:Q,b=d[(Y=l[r+568>>2])+22|0]?o:a;ab:{ao:{ak:if(!(!r6(c,L)||r5(c,L))){x=l[(L<<2)+4252>>2]<<2,e=w(w(w(w(p[x+_>>2]-p[(c+x|0)+516>>2])-rU(r,L))-rS(c,L,b))-rT(c,L,n?Q:a));break ao}if(!(r5(c,L)|(112&l[r+24>>2])!=16)){n=l[(L<<2)+4252>>2]<<2,e=w(w(p[n+_>>2]-p[(n+c|0)+516>>2])*w(.5));break ao}if(!(r5(c,L)|(112&l[r+24>>2])!=32)){n=l[(L<<2)+4252>>2]<<2,e=w(p[n+_>>2]-p[(n+c|0)+516>>2]);break ao}if(!d[Y+21|0]||!r5(c,L))break ab;e=p[_+(l[(L<<2)+4252>>2]<<2)>>2],e=w(w(rI(c,L,e)+rM(r,L))+rP(c,L,e))}p[(c+(l[(L<<2)+4220>>2]<<2)|0)+228>>2]=e}ac:{au:if(!(!r6(c,f)||r5(c,f))){n=l[(f<<2)+4252>>2]<<2,e=w(w(w(w(p[n+_>>2]-p[(n+c|0)+516>>2])-rU(r,f))-rS(c,f,b))-rT(c,f,o));break ac}as:if(!r5(c,f)){if((n=l[c+24>>2]>>>13&7)||(n=l[r+24>>2]>>>10&7),(0|n)!=2)break as;n=l[(f<<2)+4252>>2]<<2,e=w(w(p[n+_>>2]-p[(n+c|0)+516>>2])*w(.5));break ac}aA:if(!r5(c,f)){L=l[c+24>>2]>>>13&7,n=l[r+24>>2],L=L||n>>>10&7;al:{if(!((0|L)!=5|8&n)){if((786432&n)==524288)break al;break aA}if(((786432&n)==524288|0)==((0|L)==3|0))break aA}n=l[(f<<2)+4252>>2]<<2,e=w(p[n+_>>2]-p[(n+c|0)+516>>2]);break ac}if(!d[Y+21|0]||!r5(c,f))break ej;e=p[_+(l[(f<<2)+4252>>2]<<2)>>2],e=w(w(rI(c,f,e)+rM(r,f))+rP(c,f,e))}p[(c+(l[(f<<2)+4220>>2]<<2)|0)+228>>2]=e}if((0|(F=F+4|0))==(0|i))break}if(!((N|U)&1))break ez;for(f=1&N,c=1&U,A=rd>>>0<=1?1:rd,h=(N<<2)+4236|0,v=(U<<2)+4236|0,m=l[r+556>>2],N=l[r+560>>2]-m>>2,i=0;;){if((0|i)==(0|N))break re;r=l[m+(i<<2)>>2];ad:if(!(64&d[r+26|0])){if(c&&(n=r+228|0,L=l[r_>>2]<<2,p[n+(l[v>>2]<<2)>>2]=w(p[L+_>>2]-p[(n+L|0)+288>>2])-p[n+(l[rA>>2]<<2)>>2]),!f)break ad;r=r+228|0,n=l[$>>2]<<2,p[r+(l[h>>2]<<2)>>2]=w(p[n+_>>2]-p[(r+n|0)+288>>2])-p[r+(l[q>>2]<<2)>>2]}if((0|A)==(0|(i=i+1|0)))break}}if(!ri)break r;rE(ri);break r}T(),k()}re=I+384|0}function rn(){var r=0,e=0;B(6952,6953,6954,0,4284,17,4287,0,4287,0,2528,4289,18),l[(r=eo(8))>>2]=8,l[r+4>>2]=1,g(6952,2873,6,4304,4328,19,0|r,1),B(6956,6957,6958,6952,4284,20,4284,21,4284,22,2e3,4289,23),l[(r=eo(4))>>2]=24,g(6956,2358,2,4336,4344,25,0|r,0),W(6952,1397,2,4348,4356,26,27),W(6952,2978,3,4436,4448,28,29),B(6976,6977,6978,0,4284,30,4287,0,4287,0,2544,4289,31),l[(r=eo(8))>>2]=8,l[r+4>>2]=1,g(6976,3244,2,4456,4344,32,0|r,1),B(6979,6980,6981,6976,4284,33,4284,34,4284,35,2023,4289,36),l[(r=eo(4))>>2]=37,g(6979,2358,2,4464,4344,38,0|r,0),W(6976,1397,2,4472,4356,39,40),W(6976,2978,3,4436,4448,28,41),B(6982,6983,6984,0,4284,42,4287,0,4287,0,2812,4289,43),P(6982,1,4520,4284,44,45),W(6982,2866,1,4520,4284,44,45),W(6982,1128,2,4524,4344,46,47),l[(r=eo(8))+4>>2]=0,l[r>>2]=48,g(6982,3185,4,4544,4560,49,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=50,g(6982,1980,3,4568,4580,51,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=52,g(6982,1951,3,4588,4600,53,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=54,g(6982,1799,3,4588,4600,53,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=55,g(6982,3215,3,4608,4448,56,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=57,g(6982,1925,2,4620,4356,58,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=59,g(6982,1784,2,4620,4356,58,0|r,0),_(6985,1270,4628,60,4289,61),eh(1731,0),eh(1611,8),eh(2144,16),eh(2454,24),eh(2560,32),eh(1617,40),L(6985),_(6955,2849,4628,62,4289,63),ed(2560,0),ed(1617,8),L(6955),_(6986,2860,4628,64,4289,65),l[(r=eo(4))>>2]=8,l[(e=eo(4))>>2]=8,X(6986,2854,7018,4630,66,0|r,7018,4634,67,0|e),l[(r=eo(4))>>2]=0,l[(e=eo(4))>>2]=0,X(6986,1606,7011,4356,68,0|r,7011,4600,69,0|e),L(6986),B(6987,6988,6989,0,4284,70,4287,0,4287,0,2973,4289,71),P(6987,1,4640,4284,72,73),W(6987,1592,1,4640,4284,72,73),W(6987,2802,2,4644,4356,74,75),W(6987,1128,2,4652,4344,76,77),l[(r=eo(8))+4>>2]=0,l[r>>2]=78,g(6987,1752,2,4652,4344,79,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=80,g(6987,2956,3,4660,4600,81,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=82,g(6987,2881,3,4672,4600,83,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=84,g(6987,2334,4,4688,4704,85,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=86,g(6987,1484,4,4688,4704,85,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=87,g(6987,1355,3,4672,4600,83,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=88,g(6987,1817,3,4672,4600,83,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=89,g(6987,2823,3,4672,4600,83,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=90,g(6987,2378,3,4672,4600,83,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=91,g(6987,2163,3,4672,4600,83,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=92,g(6987,1319,3,4672,4600,83,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=93,g(6987,2412,4,4688,4704,85,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=94,g(6987,1503,4,4688,4704,85,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=95,g(6987,2235,3,4672,4600,83,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=96,g(6987,1219,3,4672,4600,83,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=97,g(6987,1136,3,4672,4600,83,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=98,g(6987,1158,3,4712,4634,99,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=100,g(6987,1845,3,4712,4634,99,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=101,g(6987,1464,3,4712,4634,99,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=102,g(6987,2218,2,4652,4344,79,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=103,g(6987,1195,3,4712,4634,99,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=104,g(6987,2500,3,4712,4634,99,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=105,g(6987,2590,3,4712,4634,99,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=106,g(6987,1539,3,4712,4634,99,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=107,g(6987,2249,2,4652,4344,79,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=108,g(6987,1650,3,4712,4634,99,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=109,g(6987,1427,3,4712,4634,99,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=110,g(6987,2204,2,4652,4344,79,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=111,g(6987,2608,3,4712,4634,99,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=112,g(6987,1555,3,4712,4634,99,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=113,g(6987,1670,3,4712,4634,99,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=114,g(6987,1444,3,4712,4634,99,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=115,g(6987,2566,3,4712,4634,99,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=116,g(6987,1520,3,4712,4634,99,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=117,g(6987,1624,3,4712,4634,99,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=118,g(6987,1407,3,4712,4634,99,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=119,g(6987,2304,3,4712,4634,99,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=120,g(6987,2092,4,4688,4704,85,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=121,g(6987,2718,4,4688,4704,85,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=122,g(6987,1574,4,4688,4704,85,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=123,g(6987,2187,4,4688,4704,85,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=124,g(6987,2897,2,4724,4356,125,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=126,g(6987,2346,3,4732,4448,127,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=128,g(6987,1371,2,4724,4356,125,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=129,g(6987,1831,2,4724,4356,125,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=130,g(6987,2836,2,4724,4356,125,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=131,g(6987,2395,2,4724,4356,125,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=132,g(6987,2175,2,4724,4356,125,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=133,g(6987,1337,2,4724,4356,125,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=134,g(6987,2422,3,4732,4448,127,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=135,g(6987,1858,2,4744,4356,136,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=137,g(6987,1207,2,4752,4630,138,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=139,g(6987,2514,2,4752,4630,138,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=140,g(6987,2599,2,4744,4356,136,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=141,g(6987,1660,2,4744,4356,136,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=142,g(6987,2620,2,4744,4356,136,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=143,g(6987,1683,2,4744,4356,136,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=144,g(6987,2578,2,4744,4356,136,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=145,g(6987,1637,2,4744,4356,136,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=146,g(6987,2319,2,4752,4630,138,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=147,g(6987,2102,3,4760,4772,148,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=149,g(6987,1231,2,4724,4356,125,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=150,g(6987,1147,2,4724,4356,125,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=151,g(6987,2729,3,4732,4448,127,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=152,g(6987,2194,3,4780,4792,153,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=154,g(6987,2985,4,4800,4560,155,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=156,g(6987,3006,3,4816,4600,157,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=158,g(6987,1292,2,4828,4356,159,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=160,g(6987,1387,2,4836,4356,161,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=162,g(6987,2997,3,4844,4448,163,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=164,g(6987,2913,2,4856,4356,165,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=166,g(6987,2933,3,4864,4600,167,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=168,g(6987,3308,3,4876,4600,169,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=170,g(6987,3306,2,4652,4344,79,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=171,g(6987,3325,3,4888,4600,172,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=173,g(6987,3323,2,4652,4344,79,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=174,g(6987,1118,2,4652,4344,79,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=175,g(6987,1110,2,4900,4356,176,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=177,g(6987,1243,5,4912,4932,178,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=179,g(6987,1736,2,4752,4630,138,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=180,g(6987,1714,2,4752,4630,138,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=181,g(6987,2148,2,4752,4630,138,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=182,g(6987,2461,2,4752,4630,138,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=183,g(6987,2632,2,4752,4630,138,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=184,g(6987,1696,2,4752,4630,138,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=185,g(6987,1259,2,4940,4356,186,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=187,g(6987,2432,3,4760,4772,148,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=188,g(6987,2112,3,4760,4772,148,0|r,0),l[(r=eo(8))+4>>2]=0,l[r>>2]=189,g(6987,2740,3,4760,4772,148,0|r,0)}function rf(r,e,a,i,n,f,t){var b=0,o=0,k=0,c=0,u=0,h=0,v=0,p=0,w=0,y=0,E=0,G=0,R=0,g=0,Z=0,W=0,V=0,B=0,T=0,I=0;re=k=re-80|0,l[k+76>>2]=e,B=k+55|0,R=k+56|0;r:{e:{a:{i:{n:for(;;){if(c=e,(2147483647^w)<(0|b))break i;w=b+w|0;f:{t:{b:{if(o=d[0|(b=c)])for(;;){o:{e=255&o;k:{if(!e){e=b;break k}if((0|e)!=37)break o;for(o=b;;){if(37!=d[o+1|0]){e=o;break k}if(b=b+1|0,u=d[o+2|0],o=e=o+2|0,(0|u)!=37)break}}if((0|(b=b-c|0))>(0|(V=2147483647^w)))break i;if(r&&rF(r,c,b),b)continue n;l[k+76>>2]=e,b=e+1|0,E=-1,!eO(o=s[e+1|0])|36!=d[e+2|0]||(E=o-48|0,g=1,b=e+3|0),l[k+76>>2]=b,p=0,e=(o=s[0|b])-32|0;c:{if(e>>>0>31){u=b;break c}if(u=b,!(75913&(e=1<>2]=u,p|=e,(e=(o=s[b+1|0])-32|0)>>>0>=32)break c;if(b=u,!(75913&(e=1<>2]=10,o=u+3|0,g=1,y=l[((s[u+1|0]<<3)+i|0)-384>>2];break s}if(g)break b;if(o=u+1|0,!r){l[k+76>>2]=o,g=0,y=0;break u}e=l[a>>2],l[a>>2]=e+4,g=0,y=l[e>>2]}if(l[k+76>>2]=o,(0|y)>=0)break u;y=0-y|0,p|=8192;break u}if((0|(y=ei(k+76|0)))<0)break i;o=l[k+76>>2]}b=0,v=-1;A:{if(46!=d[0|o]){e=o,G=0;break A}if(42==d[o+1|0]){e=s[o+2|0];l:{if(!(!eO(e)|36!=d[o+3|0])){l[((e<<2)+n|0)-192>>2]=10,e=o+4|0,v=l[((s[o+2|0]<<3)+i|0)-384>>2];break l}if(g)break b;if(e=o+2|0,v=0,!r)break l;o=l[a>>2],l[a>>2]=o+4,v=l[o>>2]}l[k+76>>2]=e,G=(-1^v)>>>31|0;break A}l[k+76>>2]=o+1,v=ei(k+76|0),e=l[k+76>>2],G=1}for(;;){if(h=b,u=28,Z=e,(b=s[0|e])-123>>>0<4294967238)break a;if(e=Z+1|0,!((b=d[(b+N(h,58)|0)+4895|0])-1>>>0<8))break}l[k+76>>2]=e;d:{h:{if((0|b)!=27){if(!b)break a;if((0|E)>=0){l[(E<<2)+n>>2]=b,o=l[(b=(E<<3)+i|0)+4>>2],l[k+64>>2]=l[b>>2],l[k+68>>2]=o;break h}if(!r)break f;rN(k- -64|0,b,a,t);break d}if((0|E)>=0)break a}if(b=0,!r)continue n}o=-65537&p,p=8192&p?o:p,E=0,W=1166,u=R;v:{p:{m:{N:{w:{y:{E:{G:{R:{g:{Z:{W:{V:{B:{T:{I:switch(b=s[0|Z],(b=h&&(15&b)==3?-33&b:b)-88|0){case 11:break v;case 9:case 13:case 14:case 15:break p;case 27:break E;case 12:case 17:break g;case 23:break Z;case 0:case 32:break W;case 24:break V;case 22:break B;case 29:break T;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 10:case 16:case 18:case 19:case 20:case 21:case 25:case 26:case 28:case 30:case 31:break t;default:break I}X:switch(b-65|0){case 0:case 4:case 5:case 6:break p;case 2:break w;case 1:case 3:break t;default:break X}if((0|b)==83)break y;break t}o=l[k+64>>2],h=l[k+68>>2],b=1166;break R}b=0;O:switch(255&h){case 0:case 1:case 6:l[l[k+64>>2]>>2]=w;continue n;case 2:c=l[k+64>>2],l[c>>2]=w,l[c+4>>2]=w>>31;continue n;case 3:A[l[k+64>>2]>>1]=w;continue n;case 4:s[l[k+64>>2]]=w;continue n;case 7:break O;default:continue n}c=l[k+64>>2],l[c>>2]=w,l[c+4>>2]=w>>31;continue n}v=v>>>0<=8?8:v,p|=8,b=120}if(c=R,o=l[k+64>>2],h=l[k+68>>2],o|h)for(T=32&b;s[0|(c=c-1|0)]=T|d[(15&o)+5424|0],I=!h&o>>>0>15|(0|h)!=0,Z=h,h=h>>>4|0,o=(15&Z)<<28|o>>>4,I;);if(!(8&p)|!(l[k+64>>2]|l[k+68>>2]))break G;W=(b>>>4|0)+1166|0,E=2;break G}if(b=R,h=c=l[k+68>>2],o=l[k+64>>2],c|o)for(;s[0|(b=b-1|0)]=7&o|48,Z=!h&o>>>0>7|(0|h)!=0,h=(c=h)>>>3|0,o=(7&c)<<29|o>>>3,Z;);if(c=b,!(8&p))break G;v=(0|(b=R-c|0))<(0|v)?v:b+1|0;break G}if(o=l[k+64>>2],h=b=l[k+68>>2],(0|b)<0){h=c=0-(h+((0|o)!=0)|0)|0,o=0-o|0,l[k+64>>2]=o,l[k+68>>2]=c,E=1,b=1166;break R}if(2048&p){E=1,b=1167;break R}b=(E=1&p)?1168:1166}W=b,c=rK(o,h,R)}if((0|v)<0?G:0)break i;if(p=G?-65537&p:p,b=l[k+64>>2],o=l[k+68>>2],!((b|o)!=0|v)){c=R,v=0;break t}v=(0|(b=!(b|o)+(R-c|0)|0))<(0|v)?v:b;break t}p=0,u=(0|(h=G=v>>>0>=2147483647?2147483647:v))!=0;L:{_:{b=c=(b=l[k+64>>2])||4208;F:{C:{S:if(!(!(3&b)|!h))for(;;){if(!(p=d[0|b]))break C;if(u=(0|(h=h-1|0))!=0,!(3&(b=b+1|0)))break S;if(!h)break}if(!u)break _;P:{if(!(!d[0|b]|h>>>0<4))for(;;){if((-1^(u=l[b>>2]))&u-16843009&-2139062144)break P;if(b=b+4|0,!((h=h-4|0)>>>0>3))break}if(!h)break _}u=0;break F}u=1}for(;;){if(!u){p=d[0|b],u=1;continue}if(!p)break L;if(b=b+1|0,!(h=h-1|0))break _;u=0}}b=0}if(u=(b=b?b-c|0:G)+c|0,(0|v)>=0){p=o,v=b;break t}if(p=o,v=b,d[0|u])break i;break t}if(v){o=l[k+64>>2];break N}b=0,er(r,32,y,0,p);break m}l[k+12>>2]=0,l[k+8>>2]=l[k+64>>2],o=k+8|0,l[k+64>>2]=o,v=-1}b=0;Y:{for(;;){if(!(c=l[o>>2]))break Y;if(!((u=(0|(c=el(k+4|0,c)))<0)|c>>>0>v-b>>>0)){if(o=o+4|0,v>>>0>(b=b+c|0)>>>0)continue;break Y}break}if(u)break e}if(u=61,(0|b)<0)break a;if(er(r,32,y,b,p),!b){b=0;break m}for(u=0,o=l[k+64>>2];;){if(!(c=l[o>>2])||(u=(c=el(k+4|0,c))+u|0)>>>0>b>>>0)break m;if(rF(r,k+4|0,c),o=o+4|0,!(b>>>0>u>>>0))break}}er(r,32,y,b,8192^p),b=(0|b)<(0|y)?y:b;continue n}if((0|v)<0?G:0)break i;if(u=61,(0|(b=0|eY[0|f](r,m[k+64>>3],y,v,p,b)))>=0)continue n;break a}s[k+55|0]=l[k+64>>2],v=1,c=B,p=o;break t}o=d[b+1|0],b=b+1|0}if(r)break r;if(!g)break f;for(b=1;;){if(r=l[(b<<2)+n>>2]){if(rN((b<<3)+i|0,r,a,t),w=1,(0|(b=b+1|0))!=10)continue;break r}break}if(w=1,b>>>0>=10)break r;for(;;){if(l[(b<<2)+n>>2])break b;if((0|(b=b+1|0))==10)break}break r}u=28;break a}if((0|(v=(0|v)>(0|(h=u-c|0))?v:h))>(2147483647^E))break i;if(u=61,(0|V)<(0|(b=(0|(o=v+E|0))<(0|y)?y:o)))break a;er(r,32,b,o,p),rF(r,W,E),er(r,48,b,o,65536^p),er(r,48,v,h,0),rF(r,c,h),er(r,32,b,o,8192^p);continue}break}w=0;break r}u=61}l[1761]=u}w=-1}return re=k+80|0,w}function rt(r,e,a,i,n,f,t,b,o,k,c,u,A,h){var m=w(0),E=0,G=0,R=0,g=w(0),Z=0,W=0,V=0,B=w(0);r:((l[r+312>>2]!=(0|h)?4&d[r+4|0]:0)||(Z=0,l[r+316>>2]!=(0|i)))&&(l[r+540>>2]=-1082130432,l[r+544>>2]=-1082130432,l[r+532>>2]=0,l[r+536>>2]=0,l[r+524>>2]=-1082130432,l[r+528>>2]=-1082130432,l[r+320>>2]=0,Z=1);W=A+1|0;e:{a:{i:{n:{if(l[r+8>>2]){if(g=rP(r,2,t),B=rS(r,2,t),m=w(rP(r,0,t)+rS(r,0,t)),A=r+524|0,g=w(g+B),rA(n,e,f,a,l[r+532>>2],p[A>>2],l[r+536>>2],p[r+528>>2],p[r+540>>2],p[r+544>>2],g,m,c))break i;if(!(G=l[r+320>>2]))break n;for(E=r+324|0;;){if(rA(n,e,f,a,l[(A=E+N(R,24)|0)+8>>2],p[A>>2],l[A+12>>2],p[A+4>>2],p[A+16>>2],p[A+20>>2],g,m,c))break i;if((0|G)==(0|(R=R+1|0)))break}break n}if(!o){if(!(V=l[r+320>>2]))break n;for(G=r+324|0;;){m=p[(A=(E=N(R,24))+G|0)>>2];f:{t:{if(!(m!=m|e!=e)){if(w(y(w(m-e)))>2];b:{if(!(m!=m|a!=a)){if(w(y(w(m-a)))>2]!=(0|n))break f;if(l[E+12>>2]==(0|f))break i}if((0|V)==(0|(R=R+1|0)))break}break n}m=p[(A=r+524|0)>>2];o:{if(!(m!=m|e!=e)){if(w(y(w(m-e)))>2]==(0|n)&&l[r+536>>2]==(0|f)?A:0,A=(m=p[r+528>>2])!=m,G=a!=a;k:{if(A|G){A&=G;break k}A=w(y(w(m-a)))>2]=i;break a}if(!(!A|Z)){p[r+516>>2]=p[A+16>>2],p[r+520>>2]=p[A+20>>2],l[(i=(o?12:16)+u|0)>>2]=l[i>>2]+1,i=0;break e}if(ri(r,e,a,i,n,f,t,b,o,c,u,W,h,k),l[r+316>>2]=i,i=1,A)break e}(i=(A=l[r+320>>2])+1|0)>>>0>v[u+8>>2]&&(l[u+8>>2]=i),(0|A)==8&&(l[r+320>>2]=0,A=0),o?i=r+524|0:(l[r+320>>2]=A+1,i=(N(A,24)+r|0)+324|0),l[i+12>>2]=f,l[i+8>>2]=n,p[i+4>>2]=a,p[i>>2]=e,p[i+16>>2]=p[r+516>>2],p[i+20>>2]=p[r+520>>2],i=1}c:if(o){if(n=l[r+520>>2],l[r+244>>2]=l[r+516>>2],l[r+248>>2]=n,f=1|(n=d[r+4|0]),s[r+4|0]=f,!(4&n))break c;s[r+4|0]=251&f}return l[r+312>>2]=h,i}function rb(r){r|=0;var e=0,a=0,i=0,n=0,f=0,t=0,b=0,o=0,k=0,c=0,u=0;b=8;r:if(!(r>>>0>4294967239)){e:{for(;;){b=b>>>0<=8?8:b,f=e=l[1731],n=l[1730],r=r>>>0<=8?8:r+3&-4;a:{if(r>>>0<=127){t=(r>>>3|0)-1|0;break a}if(i=E(r),t=((r>>>29-i^4)-(i<<2)|0)+110|0,r>>>0<=4095)break a;t=(i=((r>>>30-i^2)-(i<<1)|0)+71|0)>>>0>=63?63:i}if(a=31&t,(63&t)>>>0>=32?(i=0,e=e>>>a|0):(i=e>>>a|0,e=((1<>>a),e|i){for(;;){n=i;i:{if(e|i){o=(a=i-1|0)+1|0,f=a,f=(0|(a=e-1|0))!=-1?o:f,a=63-(i=(0|(i=E(i^f)))==32?E(e^a)+32|0:i)|0,ra=0-(i>>>0>63)|0;break i}ra=0,a=64}a=31&(f=a),(63&f)>>>0>=32?(i=0,e=n>>>a|0):(i=n>>>a|0,e=((1<>>a),o=e,e=l[(a=(t=f+t|0)<<4)+5896>>2],f=a+5888|0;n:{if((0|e)!=(0|f)){if(n=rp(e,b,r))break r;n=l[e+4>>2],l[n+8>>2]=l[e+8>>2],l[l[e+8>>2]+4>>2]=n,l[e+8>>2]=f,n=a+5892|0,l[e+4>>2]=l[n>>2],l[n>>2]=e,l[l[e+4>>2]+8>>2]=e,t=t+1|0,e=(1&i)<<31|o>>>1,i=i>>>1|0;break n}k=l[1731],n=31&(e=f=63&t),e>>>0>=32?(e=0,a=-1>>>n|0):a=(e=-1>>>n|0)|(1<>>0>=32?(e=a<>>32-n|e<>>0>=32?(e=-1<>>32-e,u=-2&a,a=31&f,f>>>0>=32?(f=0,e=e>>>a|0):(f=e>>>a|0,e=((1<>>a),e|=c,ra=n|f,l[1730]=l[1730]&e,l[1731]=ra&k,e=1^o}if(!(e|i))break}f=l[1731],n=l[1730]}f:{if(n|f){i=l[(e=(a=63-((0|(i=E(f)))==32?E(n)+32|0:i)|0)<<4)+5896>>2];t:if(!(!f&n>>>0<1073741824)){if(t=99,(0|(e=e+5888|0))==(0|i))break t;for(;;){if(!t)break t;if(n=rp(i,b,r))break r;if(t=t-1|0,i=l[i+8>>2],(0|e)==(0|i))break}i=e}if(rd(r+48|0))break f;if(!i||(0|(e=(a<<4)+5888|0))==(0|i))break e;for(;;){if(n=rp(i,b,r))break r;if(i=l[i+8>>2],(0|e)==(0|i))break}break e}if(!rd(r+48|0))break e}if(n=0,b-1&b)break r;if(!(r>>>0<=4294967239))break}break r}n=0}return 0|n}function ro(r,e,a,i){var n,f,b,o,k=w(0),c=w(0),s=0,A=w(0);r:{e:{a:{i:{n:{f:{if(e>>>0<=1){c=p[r+212>>2],e=l[r+212>>2];t:if((0|e)!=2139156720){if((0|e)==2140081935)break f;s=4276;b:{if((0|e)!=2141891242){if(c==c)break b;s=4268}switch(k=p[s>>2],c=w(NaN),l[s+4>>2]-1|0){case 0:break f;case 1:break t;default:break n}}if(n=(-1073741825&e)+536870912|0,t[2]=n,k=u(),!(1073741824&e))break f}c=w(w(k*i)*w(.009999999776482582));break n}c=p[r+208>>2];o:{k:{e=l[r+208>>2];c:if((0|e)!=2139156720){if((0|e)==2140081935)break k;s=4276;u:{if((0|e)!=2141891242){if(c==c)break u;s=4268}switch(k=p[s>>2],c=w(NaN),l[s+4>>2]-1|0){case 0:break k;case 1:break c;default:break o}}if(f=(-1073741825&e)+536870912|0,t[2]=f,k=u(),!(1073741824&e))break k}c=w(w(k*i)*w(.009999999776482582));break o}c=k}k=w(0),A=p[r+216>>2],r=l[r+216>>2];s:if((0|r)!=2139156720){if((0|r)==2140081935)break a;e=4276;A:{if((0|r)!=2141891242){if(A==A)break A;e=4268}switch(k=p[e>>2],l[e+4>>2]-1|0){case 1:break s;case 0:break i;default:break e}}if(b=(-1073741825&r)+536870912|0,t[2]=b,k=u(),!(1073741824&r))break i}k=w(w(k*i)*w(.009999999776482582));break i}c=k}k=w(0),A=p[r+220>>2],r=l[r+220>>2];l:if((0|r)!=2139156720){if((0|r)==2140081935)break a;e=4276;d:{if((0|r)!=2141891242){if(A==A)break d;e=4268}switch(k=p[e>>2],l[e+4>>2]-1|0){case 1:break l;case 0:break i;default:break e}}if(o=(-1073741825&r)+536870912|0,t[2]=o,k=u(),!(1073741824&r))break i}k=w(w(k*i)*w(.009999999776482582))}if(!(k>=w(0)))break e}if(a>k)break r}if(!(c>=w(0)))return a;k=a>2]=0,l[r+12>>2]=0,A[r+4>>1]=1,l[r>>2]=0,l[r+16>>2]=0,l[r+20>>2]=0,l[r+24>>2]=0,l[r+36>>2]=2143289344,l[r+40>>2]=2141891242,l[r+28>>2]=2143289344,l[r+32>>2]=2143289344,i=ry(r+44|0,0,36);l[i+(a<<2)>>2]=2143289344,(0|(a=a+1|0))!=9;);for(a=0,i=ry(r+80|0,0,36);l[i+(a<<2)>>2]=2143289344,(0|(a=a+1|0))!=9;);for(a=0,i=ry(r+116|0,0,36);l[i+(a<<2)>>2]=2143289344,(0|(a=a+1|0))!=9;);for(a=0,i=ry(r+152|0,0,36);l[i+(a<<2)>>2]=2143289344,(0|(a=a+1|0))!=9;);for(a=0,l[r+196>>2]=0,l[(i=r+188|0)>>2]=0,l[i+4>>2]=0;l[i+(a<<2)>>2]=2143289344,(0|(a=a+1|0))!=3;);for(l[r+24>>2]=4224,l[r+224>>2]=2143289344,l[r+216>>2]=2143289344,l[r+220>>2]=2143289344,l[r+208>>2]=2143289344,l[r+212>>2]=2143289344,l[r+200>>2]=2141891242,l[r+204>>2]=2141891242,ry(r+228|0,0,288),l[r+244>>2]=2143289344,l[r+248>>2]=2143289344,ry(r+252|0,0,49),l[r+308>>2]=2143289344,i=r+516|0,a=r+324|0;l[a+16>>2]=-1082130432,l[a+20>>2]=-1082130432,l[a+8>>2]=0,l[a+12>>2]=0,l[a>>2]=-1082130432,l[a+4>>2]=-1082130432,(0|i)!=(0|(a=a+24|0)););return l[r+548>>2]=0,l[r+552>>2]=0,l[r+516>>2]=2143289344,l[r+520>>2]=2143289344,l[r+572>>2]=2143289344,l[r+576>>2]=0,l[r+568>>2]=e,l[r+540>>2]=-1082130432,l[r+544>>2]=-1082130432,l[r+532>>2]=0,l[r+536>>2]=0,l[r+524>>2]=-1082130432,l[r+528>>2]=-1082130432,l[r+556>>2]=0,l[r+560>>2]=0,l[r+564>>2]=0,l[r+580>>2]=2143289344,l[r+584>>2]=0,d[e+10|0]&&(l[r+24>>2]=4616,s[r+4|0]=128|d[r+4|0]),r}function rc(r){var e,a,i=0,n=0,f=w(0),b=w(0),o=w(0),k=0,c=0,s=0,A=0,d=0,h=0,v=0,m=0,N=0;for(l[(k=re-16|0)+8>>2]=0,l[k+12>>2]=1,d=r+200|0,h=r+572|0,v=r+208|0,m=r+216|0,r=0;;){N=r,c=(A=l[(k+8|0)+(r<<2)>>2])<<2,f=p[(r=m+c|0)>>2];r:{e:{a:{i:{n:{f:if(!(!((s=(0|(i=l[r>>2]))==2139156720)|(0|i)==2140081935|(0|i)==2141891242)&f!=f)){b=p[(r=c+v|0)>>2],n=l[r>>2];t:{b:{if((0|n)!=2139156720){if(o=w(NaN),r=3,(0|n)==2141891242)break t;if((0|n)!=2140081935)break b;o=w(0),r=1;break t}o=w(0),r=2;break t}if(r=0,b!=b)break t;e=(-1073741825&n)+536870912|0,t[2]=e,o=u(),r=1073741824&n?2:1}n=r;o:{k:{if(!s){if(b=w(NaN),r=3,(0|i)==2141891242)break o;if((0|i)!=2140081935)break k;b=w(0),r=1;break o}b=w(0),r=2;break o}if(r=0,f!=f)break o;a=(-1073741825&i)+536870912|0,t[2]=a,b=u(),r=1073741824&i?2:1}if((0|n)!=(0|r)|!(!r|b!=b&o!=o|w(y(w(b-o)))>2],(0|(i=l[i>>2]))==2139156720)break n;if((0|i)==2140081935)break e;if((0|i)==2141891242)break a;if(f!=f)break i;r=(-1073741825&i)+536870912|0,i=1073741824&i?2:1;break r}i=2;break r}r=2143289344,i=0;break r}r=2143289344,i=3;break r}i=1}if(l[(n=(A<<3)+h|0)+4>>2]=i,l[n>>2]=r,r=1,1&N)break}}function ru(r,e,a){var i=0,n=0,f=0;if(a>>>0>=512)return x(0|r,0|e,0|a),r;n=r+a|0;r:{if(!((r^e)&3)){e:{if(!(3&r)||!a){a=r;break e}for(a=r;;){if(s[0|a]=d[0|e],e=e+1|0,!(3&(a=a+1|0)))break e;if(!(a>>>0>>0))break}}i=-4&n;a:if(!(i>>>0<64)&&!((f=i+-64|0)>>>0>>0))for(;l[a>>2]=l[e>>2],l[a+4>>2]=l[e+4>>2],l[a+8>>2]=l[e+8>>2],l[a+12>>2]=l[e+12>>2],l[a+16>>2]=l[e+16>>2],l[a+20>>2]=l[e+20>>2],l[a+24>>2]=l[e+24>>2],l[a+28>>2]=l[e+28>>2],l[a+32>>2]=l[e+32>>2],l[a+36>>2]=l[e+36>>2],l[a+40>>2]=l[e+40>>2],l[a+44>>2]=l[e+44>>2],l[a+48>>2]=l[e+48>>2],l[a+52>>2]=l[e+52>>2],l[a+56>>2]=l[e+56>>2],l[a+60>>2]=l[e+60>>2],e=e- -64|0,f>>>0>=(a=a- -64|0)>>>0;);if(a>>>0>=i>>>0)break r;for(;l[a>>2]=l[e>>2],e=e+4|0,i>>>0>(a=a+4|0)>>>0;);break r}if(n>>>0<4||(i=n-4|0)>>>0>>0){a=r;break r}for(a=r;s[0|a]=d[0|e],s[a+1|0]=d[e+1|0],s[a+2|0]=d[e+2|0],s[a+3|0]=d[e+3|0],e=e+4|0,i>>>0>=(a=a+4|0)>>>0;);}if(a>>>0>>0)for(;s[0|a]=d[0|e],e=e+1|0,(0|n)!=(0|(a=a+1|0)););return r}function rs(r,e,a,i,n){var f,b,o=w(0),k=0,c=w(0),s=w(0),A=0,d=0,h=w(0),v=w(0),m=0;if(!(d=(c=w(a-i))!=c)){a=w(0),o=p[(k=(e<<2)+r|0)+208>>2];r:{e:{k=l[k+208>>2];a:{i:if((0|k)!=2139156720){if((0|k)==2140081935)break e;A=4276;n:{if((0|k)!=2141891242){if(o==o)break n;A=4268}switch(a=p[A>>2],l[A+4>>2]-1|0){case 0:break a;case 1:break i;default:break r}}if(f=(-1073741825&k)+536870912|0,t[2]=f,a=u(),!(1073741824&k))break a}a=w(w(a*n)*w(.009999999776482582))}if(a==a)break e;break r}s=w(a-i)}a=w(0),o=p[(r=(e<<2)+r|0)+216>>2];f:{t:{e=l[r+216>>2];b:{o:if((0|e)!=2139156720){if((0|e)==2140081935)break t;r=4276;k:{if((0|e)!=2141891242){if(o==o)break k;r=4268}switch(a=p[r>>2],o=w(34028234663852886e22),l[r+4>>2]-1|0){case 0:break b;case 1:break o;default:break f}}if(b=(-1073741825&e)+536870912|0,t[2]=b,a=u(),!(1073741824&e))break b}a=w(w(a*n)*w(.009999999776482582))}if(a==a)break t;o=w(34028234663852886e22);break f}o=w(a-i)}if(h=c,v=es(c,o),!((r=(a=o!=o|d?h:v)!=a)|s!=s))return eu(a,s);c=r?s:a}return c}function rA(r,e,a,i,n,f,t,b,o,k,c,u,s){var A=w(0),l=w(0),d=0,h=0,v=w(0),m=w(0),N=w(0),E=0,G=0;if(o>2],l=b,A==w(0))break r;m=rH(+e,E=+A,0,0),N=rH(+i,E,0,0),v=rH(+f,E,0,0),l=rH(+b,E,0,0)}A=l,s=0;e:if((0|r)==(0|n)){if((G=v!=v)|(s=m!=m)){s&=G;break e}s=w(y(w(v-m)))=o))break n;break i}if(s=0,!(e=o))break i}if((n=e!=e)|(r=o!=o)){s=r&n;break i}s=w(y(w(e-o)))=k))break t;break f}if(h=0,!(e=k))break f}if((a=e!=e)|(r=k!=k)){h=r&a;break f}h=w(y(w(e-k)))>>20&2047))==2047)return(r*=1)/r;if(!(n=b<<1)&(0|(u=c<<1|b>>>31))==2145386496|u>>>0<2145386496)return!n&(0|u)==2145386496?0*r:r;r:{if(!k){if(k=0,f=b<<12,(0|(n=c<<12|b>>>20))>0|(0|n)>=0)for(;k=k-1|0,n=n<<1|f>>>31,f<<=1,(0|n)>0|(0|n)>=0;);f=31&(n=1-k|0),(63&n)>>>0>=32?(n=b<>>32-f|c<1023){for(;;){e:if(!((0|(b=n+-1048576|0))<0)&&!((n=b)|f))return 0*r;if(n=n<<1|f>>>31,f<<=1,!((0|(k=k-1|0))>1023))break}k=1023}a:if(!((0|(b=n+-1048576|0))<0)&&!((n=b)|f))return 0*r;if((0|n)==1048575|n>>>0<1048575)for(;k=k-1|0,b=n>>>0<524288,u=n<<1|f>>>31,f<<=1,n=u,b;);return A=-2147483648&c,u=n+-1048576|k<<20,s=f,c=n,s=f,f=31&(b=1-k|0),(63&b)>>>0>=32?(n=0,b=c>>>f|0):(n=c>>>f|0,b=((1<>>f),a=((f=(0|k)>0)?s:b)|0,t[0]=a,i=(f?u:n)|A,t[1]=i,+o[0]}function rd(r){var e=0,a=0,i=0,n=0,f=0;a=(i=l[1396])+(e=r+7&-8)|0;r:{e:if(!((a>>>0<=i>>>0?e:0)||a>>>0>eU()<<16>>>0&&!(0|D(0|a)))){l[1396]=a;break r}l[1761]=48,i=-1}if((0|i)!=-1){l[(a=(e=r+i|0)-16|0)+12>>2]=16,l[a>>2]=16,f=(r=l[1728])?l[r+8>>2]:0;a:{i:{if((0|f)==(0|i)){if(n=i-(-2&l[i-4>>2])|0,f=l[n-4>>2],l[r+8>>2]=e,e=-16,!(1&s[((r=n-(-2&f)|0)+l[r>>2]|0)-4|0]))break i;e=l[r+4>>2],l[e+8>>2]=l[r+8>>2],l[l[r+8>>2]+4>>2]=e,a=a-r|0,l[r>>2]=a;break a}l[i+12>>2]=16,l[i>>2]=16,l[i+8>>2]=e,l[i+4>>2]=r,l[1728]=i,e=16}a=a-(r=e+i|0)|0,l[r>>2]=a}l[((-4&a)+r|0)-4>>2]=1|a,e=l[r>>2]-8|0;n:{if(e>>>0<=127){a=(e>>>3|0)-1|0;break n}if(n=E(e),a=((e>>>29-n^4)-(n<<2)|0)+110|0,e>>>0<=4095)break n;a=(a=((e>>>30-n^2)-(n<<1)|0)+71|0)>>>0>=63?63:a}e=a<<4,l[r+4>>2]=e+5888,e=e+5896|0,l[r+8>>2]=l[e>>2],l[e>>2]=r,l[l[r+8>>2]+4>>2]=r,e=l[1730],n=l[1731],r=31&a,(63&a)>>>0>=32?(a=1<>>32-r,l[1730]=f|e,l[1731]=a|n}return(0|i)!=-1}function rh(r,e,a){var i=0,n=0,f=0,t=0,b=0,o=0,k=0,c=0,u=0;r:{e:{a:{i:{n:{f:{t:{b:{o:{k:{if(e){if(!a)break k;break o}ra=0,r=(r>>>0)/(a>>>0)|0;break r}if(!r)break b;break t}if(!(a-1&a))break f;t=0-(f=(E(a)+33|0)-E(e)|0)|0;break i}ra=0,r=(e>>>0)/0|0;break r}if((i=32-E(e)|0)>>>0<31)break n;break a}if((0|a)==1)break e;a=31&(f=a?31-E(a-1^a)|0:32),(63&f)>>>0>=32?r=e>>>a|0:(i=e>>>a|0,r=((1<>>a),ra=i;break r}f=i+1|0,t=63-i|0}if(n=31&(i=63&f),i>>>0>=32?(i=0,b=e>>>n|0):(i=e>>>n|0,b=((1<>>n),t&=63,n=31&t,t>>>0>=32?(e=r<>>32-n|e<>>31)+((i=b<<1|e>>>31)>>>0>t>>>0)|0)>>31),b=i-k|0,i=o-(i>>>0>>0)|0,e=e<<1|r>>>31,r=c|r<<1,c=1&n,f=f-1|0;);ra=e<<1|r>>>31,r=c|r<<1;break r}r=0,e=0}ra=e}return r}function rv(r,e,a){var i,n,f=w(0),b=w(0);r:{e:{a:{if((-2&e)==2){if(e=l[r+188>>2],f=p[r+188>>2],(0|e)==2139156720|(0|e)==2140081935|(0|e)==2141891242|f==f||(e=l[r+196>>2],f=p[r+196>>2],(0|e)==2139156720|(0|e)==2140081935|(0|e)==2141891242|f==f))break a;break e}if(e=l[r+192>>2],f=p[r+192>>2],(0|e)==2139156720|(0|e)==2140081935|(0|e)==2141891242|f==f||(f=p[r+196>>2],(0|(e=l[r+196>>2]))==2139156720|(0|e)==2140081935|(0|e)==2141891242))break a;if(f!=f)break e}f=w(0);i:{n:if((0|e)!=2139156720){if((0|e)==2140081935)break r;r=4276;f:{if((0|e)!=2141891242){if(i=e,t[2]=i,(f=u())==f)break f;r=4268}switch(f=p[r>>2],b=w(NaN),l[r+4>>2]-1|0){case 0:break r;case 1:break n;default:break i}}if(n=(-1073741825&e)+536870912|0,t[2]=n,f=u(),!(1073741824&e))break r}b=w(w(f*a)*w(.009999999776482582))}return b}f=w(0)}return f}function rp(r,e,a){var i=0,n=0,f=0,t=0;if(n=((i=r+4|0)+e|0)-1&0-e,e=l[r>>2],n+a>>>0<=(e+r|0)-4>>>0){f=l[r+4>>2],l[f+8>>2]=l[r+8>>2],l[l[r+8>>2]+4>>2]=f,(0|i)!=(0|n)&&(n=n-i|0,f=r-(-2&l[r-4>>2])|0,i=n+l[f>>2]|0,l[f>>2]=i,l[(f+(-4&i)|0)-4>>2]=i,r=r+n|0,e=e-n|0,l[r>>2]=e);r:{if(a+24>>>0<=e>>>0){i=(r+a|0)+8|0,e=(e-a|0)-8|0,l[i>>2]=e,l[(i+(-4&e)|0)-4>>2]=1|e,n=l[i>>2]-8|0;e:{if(n>>>0<=127){e=(n>>>3|0)-1|0;break e}if(f=E(n),e=((n>>>29-f^4)-(f<<2)|0)+110|0,n>>>0<=4095)break e;e=(e=((n>>>30-f^2)-(f<<1)|0)+71|0)>>>0>=63?63:e}n=e<<4,l[i+4>>2]=n+5888,n=n+5896|0,l[i+8>>2]=l[n>>2],l[n>>2]=i,l[l[i+8>>2]+4>>2]=i,n=l[1730],f=l[1731],i=31&e,(63&e)>>>0>=32?(e=1<>>32-i,i=t),l[1730]=i|n,l[1731]=e|f,e=a+8|0,l[r>>2]=e,l[((-4&e)+r|0)-4>>2]=e;break r}l[(r+e|0)-4>>2]=e}r=r+4|0}else r=0;return r}function rm(r,e,a){var i=0,n=0;r:if((0|r)!=(0|e)){if(e-(n=r+a|0)>>>0<=0-(a<<1)>>>0)return ru(r,e,a);i=(r^e)&3;e:{a:{if(r>>>0>>0){if(i){i=r;break e}if(!(3&r)){i=r;break a}for(i=r;;){if(!a)break r;if(s[0|i]=d[0|e],e=e+1|0,a=a-1|0,!(3&(i=i+1|0)))break}break a}i:if(!i){if(3&n)for(;;){if(!a)break r;if(s[0|(i=(a=a-1|0)+r|0)]=d[e+a|0],!(3&i))break}if(a>>>0<=3)break i;for(;l[(a=a-4|0)+r>>2]=l[e+a>>2],a>>>0>3;);}if(!a)break r;for(;s[(a=a-1|0)+r|0]=d[e+a|0],a;);break r}if(a>>>0<=3)break e;for(;l[i>>2]=l[e>>2],e=e+4|0,i=i+4|0,(a=a-4|0)>>>0>3;);}if(!a)break r;for(;s[0|i]=d[0|e],i=i+1|0,e=e+1|0,a=a-1|0;);}return r}function rN(r,e,a,i){r:switch(e-9|0){case 0:e=l[a>>2],l[a>>2]=e+4,l[r>>2]=l[e>>2];return;case 6:e=l[a>>2],l[a>>2]=e+4,e=A[e>>1],l[r>>2]=e,l[r+4>>2]=e>>31;return;case 7:e=l[a>>2],l[a>>2]=e+4,l[r>>2]=h[e>>1],l[r+4>>2]=0;return;case 8:e=l[a>>2],l[a>>2]=e+4,e=s[0|e],l[r>>2]=e,l[r+4>>2]=e>>31;return;case 9:e=l[a>>2],l[a>>2]=e+4,l[r>>2]=d[0|e],l[r+4>>2]=0;return;case 16:e=l[a>>2]+7&-8,l[a>>2]=e+8,m[r>>3]=m[e>>3];return;case 17:eY[0|i](r,a);default:return;case 1:case 4:case 14:e=l[a>>2],l[a>>2]=e+4,e=l[e>>2],l[r>>2]=e,l[r+4>>2]=e>>31;return;case 2:case 5:case 11:case 15:e=l[a>>2],l[a>>2]=e+4,l[r>>2]=l[e>>2],l[r+4>>2]=0;return;case 3:case 10:case 12:case 13:break r}e=l[a>>2]+7&-8,l[a>>2]=e+8,a=l[e+4>>2],l[r>>2]=l[e>>2],l[r+4>>2]=a}function rw(){rr(7004,3018),$(7005,2479,1,1,0),V(7006,2139,1,-128,127),V(7007,2132,1,-128,127),V(7008,2130,1,0,255),V(7009,1286,2,-32768,32767),V(7010,1277,2,0,65535),V(7011,1315,4,-2147483648,2147483647),V(7012,1306,4,0,-1),V(7013,2658,4,-2147483648,2147483647),V(7014,2649,4,0,-1),eV(7015,1776,-2147483648,2147483647),eV(7016,1775,0,-1),C(7017,1769,4),C(7018,2966,8),S(7019,2676),S(7020,3835),O(7021,4,2663),O(7022,2,2688),O(7023,4,2703),q(7024,2484),Z(7025,0,3766),Z(7026,0,3868),Z(7027,1,3796),Z(7028,2,3398),Z(7029,3,3429),Z(7030,4,3469),Z(7031,5,3498),Z(7032,4,3905),Z(7033,5,3935),Z(7026,0,3600),Z(7027,1,3567),Z(7028,2,3666),Z(7029,3,3632),Z(7030,4,3733),Z(7031,5,3699),Z(7034,6,3536),Z(7035,7,3974)}function ry(r,e,a){var i=0,n=0,f=0,t=0;r:if(a){if(s[0|r]=e,s[(i=r+a|0)-1|0]=e,a>>>0<3||(s[r+2|0]=e,s[r+1|0]=e,s[i-3|0]=e,s[i-2|0]=e,a>>>0<7)||(s[r+3|0]=e,s[i-4|0]=e,a>>>0<9)||(n=(i=0-r&3)+r|0,e=N(255&e,16843009),l[n>>2]=e,l[(a=(i=a-i&-4)+n|0)-4>>2]=e,i>>>0<9)||(l[n+8>>2]=e,l[n+4>>2]=e,l[a-8>>2]=e,l[a-12>>2]=e,i>>>0<25)||(l[n+24>>2]=e,l[n+20>>2]=e,l[n+16>>2]=e,l[n+12>>2]=e,l[a-16>>2]=e,l[a-20>>2]=e,l[a-24>>2]=e,l[a-28>>2]=e,(a=i-(t=4&n|24)|0)>>>0<32))break r;for(i=r9(e,0,1,1),f=ra,e=n+t|0;l[e+24>>2]=i,l[e+28>>2]=f,l[e+16>>2]=i,l[e+20>>2]=f,l[e+8>>2]=i,l[e+12>>2]=f,l[e>>2]=i,l[e+4>>2]=f,e=e+32|0,(a=a-32|0)>>>0>31;);}return r}function rE(r){var e=0,a=0,i=0,n=0,f=0;if(r|=0){a=n=l[(e=r-4|0)>>2],i=e,(0|(r=-2&(f=l[r-8>>2])))!=(0|f)&&(a=l[(i=e-r|0)+4>>2],l[a+8>>2]=l[i+8>>2],l[l[i+8>>2]+4>>2]=a,a=r+n|0),(0|(e=l[(r=e+n|0)>>2]))!=l[(r+e|0)-4>>2]&&(n=l[r+4>>2],l[n+8>>2]=l[r+8>>2],l[l[r+8>>2]+4>>2]=n,a=e+a|0),l[i>>2]=a,l[((-4&a)+i|0)-4>>2]=1|a,e=l[i>>2]-8|0;r:{if(e>>>0<=127){r=(e>>>3|0)-1|0;break r}if(a=E(e),r=((e>>>29-a^4)-(a<<2)|0)+110|0,e>>>0<=4095)break r;r=(r=((e>>>30-a^2)-(a<<1)|0)+71|0)>>>0>=63?63:r}e=r<<4,l[i+4>>2]=e+5888,e=e+5896|0,l[i+8>>2]=l[e>>2],l[e>>2]=i,l[l[i+8>>2]+4>>2]=i,e=l[1730],a=l[1731],i=31&r,(63&r)>>>0>=32?(r=1<>>32-i,l[1730]=n|e,l[1731]=r|a}}function rG(r,e,a,i,n){var f=0,t=0,b=0,o=0;re=f=re-208|0,l[f+204>>2]=a,ry(a=f+160|0,0,40),l[f+200>>2]=l[f+204>>2];r:{if((0|rf(0,e,f+200|0,f+80|0,a,i,n))<0){n=-1;break r}o=l[r+76>>2]>=0,t=l[r>>2],l[r+72>>2]<=0&&(l[r>>2]=-33&t);e:{a:{i:{if(!l[r+48>>2]){l[r+48>>2]=80,l[r+28>>2]=0,l[r+16>>2]=0,l[r+20>>2]=0,b=l[r+44>>2],l[r+44>>2]=f;break i}if(l[r+16>>2])break a}if(a=-1,ef(r))break e}a=rf(r,e,f+200|0,f+80|0,f+160|0,i,n)}if(b&&(eY[l[r+36>>2]](r,0,0),l[r+48>>2]=0,l[r+44>>2]=b,l[r+28>>2]=0,e=l[r+20>>2],l[r+16>>2]=0,l[r+20>>2]=0,a=e?a:-1),e=r,r=l[r>>2],l[e>>2]=r|32&t,n=32&r?-1:a,!o)break r}return re=f+208|0,n}function rR(r){var e=0,a=w(0),i=0,n=0,f=0,t=0,b=0,o=w(0),c=0;re=f=re-16|0,e=l[r+12>>2];r:{if(e){o=p[r+520>>2],a=p[r+516>>2];e:{if(32&d[r+4|0]){a=w(eY[0|e](r,a,o,0));break e}a=w(eY[0|e](r,a,o))}if(a==a)break r;l[f>>2]=3340,rB(r,f),eX(),k()}a:{i:{if(t=l[r+556>>2],e=l[r+560>>2],(0|t)!=(0|e)){for(c=(e=e-t>>2)>>>0<=1?1:e;;){if(n=l[(b<<2)+t>>2],!l[n+548>>2]){if((196608&(e=l[n+24>>2]))!=131072){if((e=e>>>13&7)||(e=l[r+24>>2]>>>10&7),2&d[n+4|0]|(8&d[r+24|0]?(0|e)==5:0))break i;i=i||n}if((0|c)!=(0|(b=b+1|0)))continue}break}if(i)break a}a=p[r+520>>2];break r}i=n}a=w(rR(i)+p[i+232>>2])}return re=f+16|0,a}function rg(r,e,a,i,n,f){var b,o=0,k=w(0),c=0,s=w(0);k=p[(o=(l[(e<<2)+4252>>2]<<2)+r|0)+216>>2];r:{e:{o=l[o+216>>2];a:if((0|o)!=2139156720){if((0|o)==2140081935)break e;c=4276;i:{if((0|o)!=2141891242){if(k==k)break i;c=4268}switch(s=p[c>>2],k=w(NaN),l[c+4>>2]-1|0){case 0:break e;case 1:break a;default:break r}}if(b=(-1073741825&o)+536870912|0,t[2]=b,s=u(),!(1073741824&o))break e}k=w(w(s*a)*w(.009999999776482582));break r}k=s}i=w(k+w(rP(r,e,i)+rS(r,e,i)));n:{f:{t:switch(l[n>>2]){case 1:case 2:a=p[f>>2],i=i!=i?a:a>2]=2}p[f>>2]=i}}function rZ(r,e,a){var i,n,f=w(0),b=w(0),o=0,k=w(0);r=r+116|0,o=l[(e<<2)+4220>>2];r:{if((-2&e)==2){e=rX(r,4,o,2140081935);break r}e=rY(r,o,2140081935)}e:{a:{i:{n:if((0|e)!=2139156720){if((0|e)==2140081935)break e;r=4276;f:{if((0|e)!=2141891242){if(i=e,t[2]=i,(f=u())==f)break f;r=4268}switch(f=p[r>>2],b=w(NaN),l[r+4>>2]-1|0){case 0:break i;case 1:break n;default:break a}}if(n=(-1073741825&e)+536870912|0,t[2]=n,f=u(),!(1073741824&e))break i}f=w(w(f*a)*w(.009999999776482582))}if(f>=w(0))return f;if(b=f,f>2];r:{if((-2&e)==2){e=rX(r,5,o,2140081935);break r}e=rY(r,o,2140081935)}e:{a:{i:{n:if((0|e)!=2139156720){if((0|e)==2140081935)break e;r=4276;f:{if((0|e)!=2141891242){if(i=e,t[2]=i,(f=u())==f)break f;r=4268}switch(f=p[r>>2],b=w(NaN),l[r+4>>2]-1|0){case 0:break i;case 1:break n;default:break a}}if(n=(-1073741825&e)+536870912|0,t[2]=n,f=u(),!(1073741824&e))break i}f=w(w(f*a)*w(.009999999776482582))}if(f>=w(0))return f;if(b=f,f>2]=0,l[e+556>>2]=0,l[e+560>>2]=0,n=l[a+556>>2],i=l[a+560>>2],(0|n)!=(0|i)){if((0|(t=i-n|0))<0)break r;for(r=eo(t),l[e+556>>2]=r,l[e+564>>2]=r+t;l[r>>2]=l[n>>2],r=r+4|0,(0|i)!=(0|(n=n+4|0)););l[e+560>>2]=r}r=l[a+572>>2],l[e+568>>2]=l[a+568>>2],l[e+572>>2]=r,l[e+584>>2]=l[a+584>>2],r=l[a+580>>2],l[e+576>>2]=l[a+576>>2],l[e+580>>2]=r,l[e+552>>2]=0}return f}T(),k()}function rB(r,e){var a=0,i=0,n=0;re=n=re-16|0,l[n+12>>2]=e;r:{e:{if(!r){e=l[n+12>>2];break e}if(e=l[n+12>>2],!(a=l[r+568>>2]))break e;if(i=l[a+4>>2],d[a+9|0]){eY[0|i](a,r,5,0,4215,e);break r}eY[0|i](a,r,5,4215,e);break r}a:{if(!d[6936]){A[(a=eo(28))+20>>1]=0,l[a+16>>2]=1065353216,A[a+10>>1]=0,A[a+12>>1]=0,l[a>>2]=0,l[a+24>>2]=0,s[a+9|0]=0,i=1,l[a+4>>2]=1,s[a+22|0]=0,l[1733]=a,s[6936]=1,l[1732]=l[1732]+1;break a}if(a=l[1733],i=l[a+4>>2],!d[a+9|0])break a;eY[0|i](a,r,5,0,4215,e);break r}eY[0|i](a,r,5,4215,e)}re=n+16|0}function rT(r,e,a){var i,n,f=w(0),b=0,o=w(0);r=r+80|0,b=l[(e<<2)+4236>>2];r:{e:{if((-2&e)==2){e=rX(r,5,b,2140081935);break e}e=rY(r,b,2140081935)}a:{i:if((0|e)!=2139156720){if((0|e)==2140081935)break r;r=4276;n:{if((0|e)!=2141891242){if(i=e,t[2]=i,(f=u())==f)break n;r=4268}switch(f=p[r>>2],o=w(NaN),l[r+4>>2]-1|0){case 0:break r;case 1:break i;default:break a}}if(n=(-1073741825&e)+536870912|0,t[2]=n,f=u(),!(1073741824&e))break r}o=w(w(f*a)*w(.009999999776482582))}return o}return f}function rI(r,e,a){var i,n,f=w(0),b=0,o=w(0);r=r+80|0,b=l[(e<<2)+4220>>2];r:{e:{if((-2&e)==2){e=rX(r,4,b,2140081935);break e}e=rY(r,b,2140081935)}a:{i:if((0|e)!=2139156720){if((0|e)==2140081935)break r;r=4276;n:{if((0|e)!=2141891242){if(i=e,t[2]=i,(f=u())==f)break n;r=4268}switch(f=p[r>>2],o=w(NaN),l[r+4>>2]-1|0){case 0:break r;case 1:break i;default:break a}}if(n=(-1073741825&e)+536870912|0,t[2]=n,f=u(),!(1073741824&e))break r}o=w(w(f*a)*w(.009999999776482582))}return o}return f}function rX(r,e,a,i){var n=w(0);n=p[(e=(e<<2)+r|0)>>2],e=l[e>>2];r:if(!((0|e)==2139156720|(0|e)==2140081935|(0|e)==2141891242|n==n)){if(n=p[(e=(a<<2)+r|0)>>2],(0|(e=l[e>>2]))==2139156720|(0|e)==2140081935|(0|e)==2141891242|n==n||(e=l[r+24>>2],n=p[r+24>>2],(0|e)==2139156720|(0|e)==2140081935|(0|e)==2141891242|n==n)||(n=p[r+32>>2],!((0|(r=l[r+32>>2]))==2139156720|(0|r)==2140081935|(0|r)==2141891242)&&(e=i,n!=n)))break r;e=r}return e}function rO(r,e,a,i,n){var f=0,t=0,b=w(0),o=0;f=2,t=l[r+24>>2]>>>2&3;r:{e:{a:{if(!(!l[r+552>>2]|(0|e)!=2)){e=0,f=3;i:switch(t-2|0){case 0:break r;case 1:break i;default:break a}f=2;break r}if(e=0,t>>>0>1)break e}e=f}f=t}a=ey(r,f,a),i=ey(r,e,i),b=rP(r,f,n),p[(t=r+228|0)+(l[(o=f<<2)+4220>>2]<<2)>>2]=a+b,b=rS(r,f,n),p[t+(l[o+4236>>2]<<2)>>2]=a+b,a=rP(r,e,n),p[t+(l[(f=e<<2)+4220>>2]<<2)>>2]=i+a,a=rS(r,e,n),p[t+(l[f+4236>>2]<<2)>>2]=i+a}function rL(r){var e=0,a=0,i=0,n=0;if(r|=0){if(e=l[r>>2],(a=l[e+552>>2])&&(rq(a,e),l[e+552>>2]=0),i=l[e+560>>2],a=l[e+556>>2],(0|i)!=(0|a))for(n=(i=i-a>>2)>>>0<=1?1:i,i=0;l[l[a+(i<<2)>>2]+552>>2]=0,(0|n)!=(0|(i=i+1|0)););l[e+560>>2]=a,r_(e+556|0),(a=l[e+556>>2])&&(l[e+560>>2]=a,rE(a)),rE(e),e=l[r+8>>2],l[r+8>>2]=0,e&&eY[l[l[e>>2]+4>>2]](e),e=l[r+4>>2],l[r+4>>2]=0,e&&eY[l[l[e>>2]+4>>2]](e),rE(r)}}function r_(r){var e=0,a=0,i=0,n=0,f=0;re=n=re-32|0,e=l[r>>2],a=l[r+4>>2]-e>>2;r:if(!(a>>>0>=l[r+8>>2]-e>>2>>>0)){if(a=en(n+8|0,a,a,r+8|0),e=l[r>>2],i=l[r+4>>2]-e|0,i=rm(l[a+4>>2]-i|0,e,i),e=l[r>>2],l[r>>2]=i,l[a+4>>2]=e,i=l[r+4>>2],l[r+4>>2]=l[a+8>>2],l[a+8>>2]=i,f=l[r+8>>2],l[r+8>>2]=l[a+12>>2],l[a>>2]=e,l[a+12>>2]=f,(0|e)!=(0|i)&&(l[a+8>>2]=i+((e-i|0)+3&-4)),!e)break r;rE(e)}re=n+32|0}function rF(r,e,a){var i=0,n=0,f=0;if(!(32&d[0|r]))r:{i=e,r=l[(e=r)+16>>2];e:{if(!r){if(ef(e))break e;r=l[e+16>>2]}if(f=l[e+20>>2],r-f>>>0>>0){eY[l[e+36>>2]](e,i,a);break r}a:if(!(l[e+80>>2]<0)){for(r=a;;){if(n=r,!r)break a;if(10==d[i+(r=n-1|0)|0])break}if(eY[l[e+36>>2]](e,i,n)>>>0>>0)break e;i=i+n|0,a=a-n|0,f=l[e+20>>2]}ru(f,i,a),l[e+20>>2]=l[e+20>>2]+a}}}function rC(r,e,a){var i=0,n=0,f=0;re=i=re-16|0,n=r+24|0,eY[0|e](i+8|0,n),f=l[i+12>>2];r:if((l[l[i+8>>2]>>2]&7<>f!=(0|a))for(eY[0|e](i+8|0,n),n=e=l[i+8>>2],f=l[e>>2],e=l[i+12>>2],l[n>>2]=f&(7<>2])&&eY[0|e](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}re=i+16|0}function rS(r,e,a){var i,n,f=w(0),b=0;r=r+44|0,b=l[(e<<2)+4236>>2];r:{if((-2&e)==2){r=rX(r,5,b,2140081935);break r}r=rY(r,b,2140081935)}e:{if((0|r)!=2139156720){if((0|r)==2140081935|(0|r)==2141891242)break e;if(i=r,t[2]=i,(f=u())!=f)return w(NaN);if(n=(-1073741825&r)+536870912|0,t[2]=n,f=u(),!(1073741824&r))break e}f=w(w(f*a)*w(.009999999776482582))}return f}function rP(r,e,a){var i,n,f=w(0),b=0;r=r+44|0,b=l[(e<<2)+4220>>2];r:{if((-2&e)==2){r=rX(r,4,b,2140081935);break r}r=rY(r,b,2140081935)}e:{if((0|r)!=2139156720){if((0|r)==2140081935|(0|r)==2141891242)break e;if(i=r,t[2]=i,(f=u())!=f)return w(NaN);if(n=(-1073741825&r)+536870912|0,t[2]=n,f=u(),!(1073741824&r))break e}f=w(w(f*a)*w(.009999999776482582))}return f}function rY(r,e,a){var i=w(0);i=p[(e=(e<<2)+r|0)>>2],e=l[e>>2];r:if(!((0|e)==2139156720|(0|e)==2140081935|(0|e)==2141891242|i==i)){if(e=l[r+28>>2],i=p[r+28>>2],(0|e)==2139156720|(0|e)==2140081935|(0|e)==2141891242|i==i||(i=p[r+32>>2],!((0|(r=l[r+32>>2]))==2139156720|(0|r)==2140081935|(0|r)==2141891242)&&(e=a,i!=i)))break r;e=r}return e}function rU(r,e){var a,i,n=w(0),f=0;r=r+152|0,f=l[(e<<2)+4236>>2];r:{if((-2&e)==2){r=rX(r,5,f,2140081935);break r}r=rY(r,f,2140081935)}n=w(0);e:if((0|r)!=2139156720){if(n=w(0),(0|r)==2140081935)break e;a:if((0|r)!=2141891242&&(a=r,t[2]=a,(n=u())==n)){i=(-1073741825&r)+536870912|0,t[2]=i,n=u();break e}n=w(NaN)}return eu(n,w(0))}function rM(r,e){var a,i,n=w(0),f=0;r=r+152|0,f=l[(e<<2)+4220>>2];r:{if((-2&e)==2){r=rX(r,4,f,2140081935);break r}r=rY(r,f,2140081935)}n=w(0);e:if((0|r)!=2139156720){if(n=w(0),(0|r)==2140081935)break e;a:if((0|r)!=2141891242&&(a=r,t[2]=a,(n=u())==n)){i=(-1073741825&r)+536870912|0,t[2]=i,n=u();break e}n=w(NaN)}return eu(n,w(0))}function rH(r,e,a,i){var n=0,f=0,t=0;r*=e,t=(n=(n=rl(r))<0?n+1:n)!=n;r:{if(!(!(1e-4>y(n))|t)){r-=n;break r}e:{if(n!=n){r-=n;break e}if(r-=n,!(1e-4>y(n+-1)))break e;r+=1;break r}if(a){r+=1;break r}if(i)break r;f=0;a:if(!t){if(f=1,n>.5)break a;f=1e-4>y(n+-.5)?1:0}r+=f}return r!=r|e!=e?w(NaN):w(r/e)}function rQ(r){var e=w(0),a=0,i=w(0);a=0;r:if((196608&l[r+24>>2])!=131072){e:if(l[r+552>>2]){e=p[r+32>>2];a:if((e==e||(e=p[r+28>>2])>w(0))&&(a=1,e!=w(0)))break r;if((e=p[r+36>>2])==e)break e;if(s[r+4|0]<0){e=w(1);break e}if(e=w(0),!((i=p[r+28>>2])>2]=2143289344,l[r+4>>2]=3;return}l[r>>2]=0,l[r+4>>2]=1;return}l[r>>2]=0,l[r+4>>2]=2;return}if(t[2]=e,(a=u())!=a){l[r>>2]=2143289344,l[r+4>>2]=0;return}l[r+4>>2]=1073741824&e?2:1,l[r>>2]=(-1073741825&e)+536870912}function rj(r){var e=0,a=0,i=0;a=l[r+24>>2];r:if(8&a){if(e=1,(7168&a)==5120||(e=0,i=l[r+560>>2],a=l[r+556>>2],(0|i)==(0|a)))break r;for(i=(r=i-a>>2)>>>0<=1?1:r,r=0;;){if(e=(196608&(e=l[l[a+(r<<2)>>2]+24>>2]))!=131072&(57344&e)==40960)break r;if((0|i)==(0|(r=r+1|0)))break}}return e}function rD(r){var e,a=0,i=w(0);a=2143289344;r:if(!(w(y(r))==w(1/0)|r!=r||(a=2139156720,rw(-.00000000000000000010842021724855044)|r==w(0)))){c(r),e=-2147483648&t[2]|1602224127,t[2]=e,i=u(),c(r>w(18446742974197924e3)?i:rw(-.00000000000000000010842021724855044)|r==w(0)))){c(r),e=-2147483648&t[2]|1610612735,t[2]=e,i=u(),c(r>w(36893485948395848e3)?i:r>2]);break r}e:{if(d[6936]){e=l[1733];break e}A[(e=eo(28))+20>>1]=0,l[e+16>>2]=1065353216,A[e+10>>1]=0,A[e+12>>1]=0,l[e>>2]=0,l[e+24>>2]=0,s[e+9|0]=0,l[e+4>>2]=1,s[e+22|0]=0,l[1733]=e,s[6936]=1,l[1732]=l[1732]+1}e=ev(e)}return l[r+4>>2]=0,l[r+8>>2]=0,l[r>>2]=e,l[e>>2]=r,r}function rK(r,e,a){var i=0,n=0,f=0;r:{if(!e){i=r;break r}for(;r=r9(i=rh(r,e,10),n=ra,246,0)+r|0,s[0|(a=a-1|0)]=48|r,f=e>>>0>9,r=i,e=n,f;);}if(i)for(;a=a-1|0,r=(i>>>0)/10|0,s[0|a]=N(r,246)+i|48,e=i>>>0>9,i=r,e;);return a}function rq(r,e){var a=0,i=0;r:{e:if(a=l[r+556>>2],i=l[r+560>>2],(0|a)!=(0|i)){for(;;){if(l[a>>2]==(0|e))break e;if((0|i)==(0|(a=a+4|0)))break}break r}if((0|a)==(0|i))break r;return e=a+4|0,rm(a,e,i-e|0),l[r+560>>2]=i-4,1}return 0}function r$(r,e,a){var i=0;r:if(l[((i=r+24|0)+(e<<2)|0)+184>>2]!=(0|a))for(l[((e<<2)+i|0)+184>>2]=a;;){if(4&(e=d[r+4|0]))break r;if(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}}function r0(r,e,a){var i=0;r:if(l[((i=r+24|0)+(e<<2)|0)+192>>2]!=(0|a))for(l[((e<<2)+i|0)+192>>2]=a;;){if(4&(e=d[r+4|0]))break r;if(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}}function r2(r,e,a){var i=0;r:if(l[((i=r+24|0)+(e<<2)|0)+176>>2]!=(0|a))for(l[((e<<2)+i|0)+176>>2]=a;;){if(4&(e=d[r+4|0]))break r;if(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}}function r1(r,e){var a=0,i=0,n=0;r:if(l[(a=r+24|0)+16>>2]!=(0|e))for(i=0|eY[9](a),n=e,l[i+16>>2]=n;;){if(4&(e=d[r+4|0]))break r;if(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}}function r4(r,e,a){var i=0;r:if(l[((i=r+24|0)+(e<<2)|0)+56>>2]!=(0|a))for(l[((e<<2)+i|0)+56>>2]=a;;){if(4&(e=d[r+4|0]))break r;if(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}}function r3(r,e,a){var i=0;r:if(l[((i=r+24|0)+(e<<2)|0)+92>>2]!=(0|a))for(l[((e<<2)+i|0)+92>>2]=a;;){if(4&(e=d[r+4|0]))break r;if(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}}function r8(r,e,a){var i=0;r:if(l[((i=r+24|0)+(e<<2)|0)+20>>2]!=(0|a))for(l[((e<<2)+i|0)+20>>2]=a;;){if(4&(e=d[r+4|0]))break r;if(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}}function r6(r,e){var a,i=0,n=w(0);r=r+80|0,i=l[(e<<2)+4236>>2];r:{if((-2&e)==2){r=rX(r,5,i,2143289344);break r}r=rY(r,i,2143289344)}return(0|r)==2139156720|(0|r)==2140081935|(0|r)==2141891242?r=1:(a=r,t[2]=a,r=(n=u())==n),r}function r5(r,e){var a,i=0,n=w(0);r=r+80|0,i=l[(e<<2)+4220>>2];r:{if((-2&e)==2){r=rX(r,4,i,2143289344);break r}r=rY(r,i,2143289344)}return(0|r)==2139156720|(0|r)==2140081935|(0|r)==2141891242?r=1:(a=r,t[2]=a,r=(n=u())==n),r}function r9(r,e,a,i){var n=0,f=0,t=0,b=0,o=0,k=0;return k=N(n=a>>>16|0,f=r>>>16|0),n=(65535&(f=((o=N(t=65535&a,b=65535&r))>>>16|0)+N(f,t)|0))+N(n,b)|0,ra=(N(e,a)+k|0)+N(r,i)+(f>>>16)+(n>>>16)|0,65535&o|n<<16}function r7(r,e){var a=0,i=0,n=0;re=i=re-16|0,n=-17&(a=d[r+4|0]),s[r+4|0]=n;r:{if(e){if(l[r+560>>2]!=l[r+556>>2])break r;a=8|n}else a&=231;l[r+8>>2]=e,s[r+4|0]=a,re=i+16|0;return}l[i>>2]=4059,rB(r,i),eX(),k()}function er(r,e,a,i,n){var f=0;if(re=f=re-256|0,!(73728&n|(0|a)<=(0|i))){if(ry(f,255&e,(a=(i=a-i|0)>>>0<256)?i:256),!a)for(;rF(r,f,256),(i=i-256|0)>>>0>255;);rF(r,f,i)}re=f+256|0}function ee(r,e,a){var i=0,n=w(0);r:((-2&a)!=2||(n=p[(i=e- -64|0)>>2],!((0|(i=l[i>>2]))==2139156720|(0|i)==2140081935|(0|i)==2141891242|n==n)))&&(i=l[((l[(a<<2)+4236>>2]<<2)+e|0)+44>>2]);rz(r,i)}function ea(r,e,a){var i=0,n=w(0);r:((-2&a)!=2||(i=l[e+60>>2],n=p[e+60>>2],!((0|i)==2139156720|(0|i)==2140081935|(0|i)==2141891242|n==n)))&&(i=l[((l[(a<<2)+4220>>2]<<2)+e|0)+44>>2]);rz(r,i)}function ei(r){var e=0,a=0,i=0;for(i=l[r>>2];;){if(eO(a=s[0|i])){i=i+1|0,l[r>>2]=i,e=e>>>0<=214748364?(0|(a=a-48|0))>(2147483647^(e=N(e,10)))?-1:a+e|0:-1;continue}break}return e}function en(r,e,a,i){var n=0;l[r+12>>2]=0,l[r+16>>2]=i;r:{if(e){if(e>>>0>=1073741824)break r;n=eo(e<<2)}return l[r>>2]=n,a=(a<<2)+n|0,l[r+8>>2]=a,l[r+12>>2]=(e<<2)+n,l[r+4>>2]=a,r}eP(),k()}function ef(r){var e=0;return(e=l[r+72>>2],l[r+72>>2]=e-1|e,8&(e=l[r>>2]))?(l[r>>2]=32|e,-1):(l[r+4>>2]=0,l[r+8>>2]=0,e=l[r+44>>2],l[r+28>>2]=e,l[r+20>>2]=e,l[r+16>>2]=e+l[r+48>>2],0)}function et(r,e,a,i){r|=0,e|=0,a|=0,i|=0;var n=0;n=l[r>>2],e=((r=l[r+4>>2])>>1)+e|0,1&r&&(n=l[n+l[e>>2]>>2]),eY[0|n](e,a,i)}function eb(r,e,a){r|=0,e|=0,a|=0;var i=0;return i=l[r>>2],e=((r=l[r+4>>2])>>1)+e|0,1&r&&(i=l[i+l[e>>2]>>2]),0|eY[0|i](e,a)}function eo(r){var e=0;r=r||1;r:{for(;;){if(e=rb(r))break r;if(e=l[2022]){eY[0|e]();continue}break}T(),k()}return e}function ek(r,e,a){r|=0,e|=0,a|=0;var i=0;i=l[r>>2],e=((r=l[r+4>>2])>>1)+e|0,1&r&&(i=l[i+l[e>>2]>>2]),eY[0|i](e,a)}function ec(r,e){r|=0,e|=0;var a=0;return a=l[r>>2],e=((r=l[r+4>>2])>>1)+e|0,1&r&&(a=l[a+l[e>>2]>>2]),0|eY[0|a](e)}function eu(r,e){return(c(r),(2147483647&t[2])>>>0<=2139095040)?(c(e),(2147483647&t[2])>>>0>2139095040)?r:w(R(r,e)):e}function es(r,e){return(c(r),(2147483647&t[2])>>>0<=2139095040)?(c(e),(2147483647&t[2])>>>0>2139095040)?r:w(G(r,e)):e}function eA(r,e){r|=0,e|=0;var a=0;return re=a=re-16|0,l[a+8>>2]=e,r=0|eY[0|r](a+8|0),I(l[a+8>>2]),re=a+16|0,0|r}function el(r,e){if(!r)return 0;r:{if(!((-128&e)==57216|e>>>0<=127)){l[1761]=25,r=-1;break r}s[0|r]=e,r=1}return r}function ed(r,e){var a=0,i=0;l[(a=eo(4))>>2]=e,l[(i=eo(4))>>2]=e,X(6955,0|r,7018,4630,192,0|a,7018,4634,193,0|i)}function eh(r,e){var a=0,i=0;l[(a=eo(4))>>2]=e,l[(i=eo(4))>>2]=e,X(6985,0|r,7018,4630,190,0|a,7018,4634,191,0|i)}function ev(r){var e=0,a=0;return re=e=re-16|0,a=rk(eo(588),r),r||(l[e>>2]=2759,rB(0,e),eX(),k()),re=e+16|0,a}function ep(r,e){var a=0;r:{if(1&s[6964]){a=l[1740];break r}a=0|F(1,4400),s[6964]=1,l[1740]=a}Q(0|a,0|r,0|e,0)}function em(r,e){r|=0,e|=0;var a=0;a=l[r>>2],e=((r=l[r+4>>2])>>1)+e|0,1&r&&(a=l[a+l[e>>2]>>2]),eY[0|a](e)}function eN(r){return l[(r|=0)>>2]=4508,d[r+4|0]&&ep(l[r+8>>2],1758),I(l[r+8>>2]),0|r}function ew(r){return l[(r|=0)>>2]=4388,d[r+4|0]&&ep(l[r+8>>2],1758),I(l[r+8>>2]),0|r}function ey(r,e,a){return r5(r,e)?rI(r,e,a):((a=rT(r,e,a))==a&&(a=w(-a)),a)}function eE(r){var e=0;(r|=0)&&((e=l[r>>2])&&rE(e),l[1732]=l[1732]-1,rE(r))}function eG(r,e,a){e|=0,a=+a,m[l[(r|=0)>>2]+e>>3]=a}function eR(r,e){return e|=0,+m[l[(r|=0)>>2]+e>>3]}function eg(r){(r|=0)&&eY[l[l[r>>2]+4>>2]](r)}function eZ(r){return r?(l[1761]=r,-1):0}function eW(r,e,a){return w(rP(r,e,a)+rS(r,e,a))}function eV(r,e,a,i){j(0|r,0|e,8,0,0|a,-1,0|i)}function eB(r,e){e|=0,eY[l[(r|=0)>>2]](e)}function eT(r){return 0|eY[0|(r|=0)]()}function eI(r,e){e|=0,eY[0|(r|=0)](e)}function eX(){eY[l[1470]](),eP(),k()}function eO(r){return r-48>>>0<10}function eL(r){(r|=0)&&rE(r)}function e_(r){return 0|(r|=0)}function eF(r){s[(r|=0)+4|0]=1}function eC(r){k()}function eS(){eP(),k()}function eP(){T(),k()}n(e=d,1024,\"T25seSBsZWFmIG5vZGVzIHdpdGggY3VzdG9tIG1lYXN1cmUgZnVuY3Rpb25zc2hvdWxkIG1hbnVhbGx5IG1hcmsgdGhlbXNlbHZlcyBhcyBkaXJ0eQBpc0RpcnR5AG1hcmtEaXJ0eQBkZXN0cm95AHNldERpc3BsYXkAZ2V0RGlzcGxheQBzZXRGbGV4AC0rICAgMFgweAAtMFgrMFggMFgtMHgrMHggMHgAc2V0RmxleEdyb3cAZ2V0RmxleEdyb3cAc2V0T3ZlcmZsb3cAZ2V0T3ZlcmZsb3cAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AHNldEFsaWduQ29udGVudABnZXRBbGlnbkNvbnRlbnQAZ2V0UGFyZW50AGltcGxlbWVudABzZXRNYXhIZWlnaHRQZXJjZW50AHNldEhlaWdodFBlcmNlbnQAc2V0TWluSGVpZ2h0UGVyY2VudABzZXRGbGV4QmFzaXNQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHVzZUxlZ2FjeVN0cmV0Y2hCZWhhdmlvdXIAc2V0VXNlTGVnYWN5U3RyZXRjaEJlaGF2aW91cgBzZXRQb2ludFNjYWxlRmFjdG9yAE1lYXN1cmVDYWxsYmFja1dyYXBwZXIARGlydGllZENhbGxiYWNrV3JhcHBlcgBDYW5ub3QgcmVzZXQgYSBub2RlIHN0aWxsIGF0dGFjaGVkIHRvIGEgb3duZXIAc2V0Qm9yZGVyAGdldEJvcmRlcgBnZXRDb21wdXRlZEJvcmRlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRNYXJnaW5BdXRvAHNldFdpZHRoQXV0bwBTY2FsZSBmYWN0b3Igc2hvdWxkIG5vdCBiZSBsZXNzIHRoYW4gemVybwBzZXRBc3BlY3RSYXRpbwBnZXRBc3BlY3RSYXRpbwBzZXRQb3NpdGlvbgBnZXRQb3NpdGlvbgBub3RpZnlPbkRlc3RydWN0aW9uAHNldEZsZXhEaXJlY3Rpb24AZ2V0RmxleERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAd2lkdGgAc2V0TWF4V2lkdGgAZ2V0TWF4V2lkdGgAc2V0V2lkdGgAZ2V0V2lkdGgAc2V0TWluV2lkdGgAZ2V0TWluV2lkdGgAZ2V0Q29tcHV0ZWRXaWR0aAB1bnNpZ25lZCBsb25nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBjcmVhdGVXaXRoQ29uZmlnAGluZgBzZXRBbGlnblNlbGYAZ2V0QWxpZ25TZWxmAFNpemUAdmFsdWUAVmFsdWUAY3JlYXRlAG1lYXN1cmUAc2V0UG9zaXRpb25UeXBlAGdldFBvc2l0aW9uVHlwZQBpc1JlZmVyZW5jZUJhc2VsaW5lAHNldElzUmVmZXJlbmNlQmFzZWxpbmUAY29weVN0eWxlAGRvdWJsZQBOb2RlAGV4dGVuZABpbnNlcnRDaGlsZABnZXRDaGlsZAByZW1vdmVDaGlsZAB2b2lkAGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodE1lYXN1cmVNb2RlIG11c3QgYmUgWUdNZWFzdXJlTW9kZVVuZGVmaW5lZABhdmFpbGFibGVXaWR0aCBpcyBpbmRlZmluaXRlIHNvIHdpZHRoTWVhc3VyZU1vZGUgbXVzdCBiZSBZR01lYXN1cmVNb2RlVW5kZWZpbmVkAHNldEV4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGlzRXhwZXJpbWVudGFsRmVhdHVyZUVuYWJsZWQAZGlydGllZABDYW5ub3QgcmVzZXQgYSBub2RlIHdoaWNoIHN0aWxsIGhhcyBjaGlsZHJlbiBhdHRhY2hlZAB1bnNldE1lYXN1cmVGdW5jAHVuc2V0RGlydGllZEZ1bmMARXhwZWN0IGN1c3RvbSBiYXNlbGluZSBmdW5jdGlvbiB0byBub3QgcmV0dXJuIE5hTgBOQU4ASU5GAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVkIGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGRvdWJsZT4AQ2hpbGQgYWxyZWFkeSBoYXMgYSBvd25lciwgaXQgbXVzdCBiZSByZW1vdmVkIGZpcnN0LgBDYW5ub3Qgc2V0IG1lYXN1cmUgZnVuY3Rpb246IE5vZGVzIHdpdGggbWVhc3VyZSBmdW5jdGlvbnMgY2Fubm90IGhhdmUgY2hpbGRyZW4uAENhbm5vdCBhZGQgY2hpbGQ6IE5vZGVzIHdpdGggbWVhc3VyZSBmdW5jdGlvbnMgY2Fubm90IGhhdmUgY2hpbGRyZW4uAChudWxsKQAlcwoAAAEAAAADAAAAAAAAAAIAAAADAAAAAQAAAAIAAAAAAAAAAQAAAAE=\"),n(e,4270,\"wH8AAAAAAADAfwMAAABpaQB2AHZp\"),n(e,4304,\"KxsAACkbAABpGwAAYxsAAGkbAABjGwAAaWlpZmlmaQBcGwAALBsAAHZpaQAtGwAAcBsAAGlpaQ==\"),n(e,4368,\"wwAAAMQAAADF\"),n(e,4388,\"wwAAAMYAAADHAAAAXBs=\"),n(e,4416,\"KxsAAGkbAABjGwAAaRsAAGMbAABwGwAAaxsAAHAbAABpaWlpAAAAAFwbAABBGwAAXBsAAEMbAABEGwAAcBs=\"),n(e,4488,\"yAAAAMkAAADK\"),n(e,4508,\"yAAAAMsAAADHAAAARxsAAFwbAABHGw==\"),n(e,4544,\"XBsAAEcbAABjGwAAXRsAAHZpaWlpAAAAXBsAAEcbAABpGwAAdmlpZgAAAABcGwAARxsAAF0bAAB2aWlpAAAAAF0bAABIGwAAYxsAAF0bAABHGwAAaQBkaWkAdmlpZAAATBsAAEwbAABHGwAAXBsAAEwbAABcGwAATBsAAEsbAABcGwAATBsAAGMbAAAAAAAAXBsAAEwbAABjGwAAahsAAHZpaWlkAAAAXBsAAEwbAABqGwAAYxsAAE0bAABKGwAATRsAAGMbAABKGwAATRsAAGobAABNGwAAahsAAE0bAABjGwAAZGlpaQAAAABpGwAATBsAAGMbAABmaWlpAAAAAFwbAABMGwAATBsAAGQbAABcGwAATBsAAEwbAABkGwAATRsAAEwbAABMGwAATBsAAEwbAABkGwAAXRsAAEwbAABcGwAATBsAAF0bAABcGwAATBsAACkbAABcGwAATBsAAEEbAABdGwAATRsAAAAAAABcGwAATBsAAGobAABqGwAAYxsAAHZpaWRkaQAASRsAAE0b\"),n(e,4960,\"GQAKABkZGQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAAZABEKGRkZAwoHAAEACQsYAAAJBgsAAAsABhkAAAAZGRk=\"),n(e,5041,\"DgAAAAAAAAAAGQAKDRkZGQANAAACAAkOAAAACQAOAAAO\"),n(e,5099,\"DA==\"),n(e,5111,\"EwAAAAATAAAAAAkMAAAAAAAMAAAM\"),n(e,5157,\"EA==\"),n(e,5169,\"DwAAAAQPAAAAAAkQAAAAAAAQAAAQ\"),n(e,5215,\"Eg==\"),n(e,5227,\"EQAAAAARAAAAAAkSAAAAAAASAAASAAAaAAAAGhoa\"),n(e,5282,\"GgAAABoaGgAAAAAAAAk=\"),n(e,5331,\"FA==\"),n(e,5343,\"FwAAAAAXAAAAAAkUAAAAAAAUAAAU\"),n(e,5389,\"Fg==\"),n(e,5401,\"FQAAAAAVAAAAAAkWAAAAAAAWAAAWAAAwMTIzNDU2Nzg5QUJDREVG\"),n(e,5476,\"0Q==\"),n(e,5516,\"//////////8=\"),n(e,5584,\"oB8BAAAAAAAF\"),n(e,5604,\"zA==\"),n(e,5628,\"zQAAAM4AAACEGw==\"),n(e,5652,\"Ag==\"),n(e,5668,\"//////////8=\"),n(e,5736,\"BQ==\"),n(e,5748,\"zw==\"),n(e,5772,\"zQAAANAAAACYGwAAAAQ=\"),n(e,5796,\"AQ==\"),n(e,5812,\"/////wo=\"),n(e,5880,\"0g==\");var eY=((a=[null,function(r,e,a,i,n){var f,t,b,o,k,c;return(i|=0,n|=0,(a|=0)?(0|a)!=5:0)?0|rG(f=5736,t=i,b=n,2,3):0|rG(o=5592,k=i,c=n,2,3)},function(r,e,a,i,n,f){r|=0,e=+e,a|=0,i|=0,n|=0,f|=0;var b,k,c=0,u=0,A=0,h=0,v=0,p=0,m=0,w=0,E=0,G=0,R=0,g=0,Z=0,W=0,V=0,B=0,T=0,I=0,X=0;re=m=re-560|0,l[m+44>>2]=0,b=+e,o[0]=b,c=0|t[1],t[0];r:{if((0|c)<0){Z=1,I=1176,k=+(e=-e),o[0]=k,c=0|t[1],t[0];break r}if(2048&n){Z=1,I=1179;break r}I=(Z=1&n)?1182:1177,X=!Z}e:{if((2146435072&c)==2146435072){er(r,32,a,c=Z+3|0,-65537&n),rF(r,I,Z),i=32&f,rF(r,e!=e?i?2450:3390:i?2819:3394,3),er(r,32,a,c,8192^n),w=(0|a)<(0|c)?c:a;break e}V=m+16|0;a:{i:{n:{if(e=function r(e,a){var i,n,f,b=0,k=0,c=0;if(i=+e,o[0]=i,k=0|t[1],c=0|t[0],(0|(b=k>>>20&2047))!=2047){if(!b)return 0==e?b=0:(e=r(18446744073709552e3*e,a),b=l[a>>2]+-64|0),l[a>>2]=b,e;l[a>>2]=b-1022,n=0|c,t[0]=n,f=-2146435073&k|1071644672,t[1]=f,e=+o[0]}return e}(e,m+44|0),0!=(e+=e)){if(c=l[m+44>>2],l[m+44>>2]=c-1,(0|(B=32|f))!=97)break n;break a}if((0|(B=32|f))==97)break a;v=l[m+44>>2],p=(0|i)<0?6:i;break i}v=c-29|0,l[m+44>>2]=v,e*=268435456,p=(0|i)<0?6:i}for(u=R=(m+48|0)+((0|v)>=0?288:0)|0;i=e<4294967296&e>=0?~~e>>>0:0,l[u>>2]=i,u=u+4|0,0!=(e=(e-+(i>>>0))*1e9););f:{if((0|v)<=0){i=v,c=u,A=R;break f}for(A=R,i=v;;){E=(0|i)>=29?29:i,c=u-4|0;t:if(!(A>>>0>c>>>0)){for(i=0;h=l[c>>2],T=i,i=31&E,(63&E)>>>0>=32?(w=h<>>32-i,i=h<>>0>T>>>0?h+1|0:h,1e9),ra,-1e9,0)+T|0,l[c>>2]=h,A>>>0<=(c=c-4|0)>>>0;);if(!i)break t;l[(A=A-4|0)>>2]=i}for(;c=u,A>>>0>>0&&!l[(u=c-4|0)>>2];);if(i=l[m+44>>2]-E|0,l[m+44>>2]=i,u=c,!((0|i)>0))break}}if((0|i)<0)for(W=((p+25>>>0)/9|0)+1|0,G=(0|B)==102;;){w=(0|(i=0-i|0))>=9?9:i;b:{if(c>>>0<=A>>>0){u=l[A>>2];break b}for(E=1e9>>>w|0,h=-1<>2],l[u>>2]=T+(i>>>w|0),i=N(E,i&h),(u=u+4|0)>>>0>>0;);if(u=l[A>>2],!i)break b;l[c>>2]=i,c=c+4|0}if(i=w+l[m+44>>2]|0,l[m+44>>2]=i,A=(!u<<2)+A|0,u=G?R:A,c=c-u>>2>(0|W)?u+(W<<2)|0:c,!((0|i)<0))break}i=0;o:if(!(c>>>0<=A>>>0)){if(i=N(R-A>>2,9),u=10,(h=l[A>>2])>>>0<10)break o;for(;i=i+1|0,u=N(u,10),h>>>0>=u>>>0;);}if((0|(u=(p-((0|B)!=102?i:0)|0)-((0|B)==103&(0|p)!=0)|0))<(N(c-R>>2,9)-9|0)){if(h=(0|(E=u+9216|0))/9|0,v=((((0|v)<0?4:292)+m|0)+(h<<2)|0)-4048|0,u=10,(0|(w=E+N(h,-9)|0))<=7)for(;u=N(u,10),(0|(w=w+1|0))!=8;);W=((E=l[v>>2])>>>0)/(u>>>0)|0,G=N(W,u),h=v+4|0;k:if(!((0|E)==(0|G)&(0|h)==(0|c))){E=E-G|0;c:(1&W||(e=9007199254740992,!(!(1&s[v-4|0])|((0|u)!=1e9|A>>>0>=v>>>0))))&&(e=9007199254740994);if(g=(0|c)==(0|h)?1:1.5,g=(h=u>>>1|0)>>>0>E>>>0?.5:(0|h)==(0|E)?g:1.5,45!=d[0|I]|X||(g=-g,e=-e),l[v>>2]=G,e+g==e)break k;if(i=u+G|0,l[v>>2]=i,i>>>0>=1e9)for(;l[v>>2]=0,(v=v-4|0)>>>0>>0&&(l[(A=A-4|0)>>2]=0),i=l[v>>2]+1|0,l[v>>2]=i,i>>>0>999999999;);if(i=N(R-A>>2,9),u=10,(h=l[A>>2])>>>0<10)break k;for(;i=i+1|0,u=N(u,10),h>>>0>=u>>>0;);}c=c>>>0>(u=v+4|0)>>>0?u:c}for(;h=c,!(E=c>>>0<=A>>>0)&&!l[(c=h-4|0)>>2];);u:{if((0|B)!=103){v=8&n;break u}if(p=((c=(0|(u=p||1))>(0|i)&(0|i)>-5)?-1^i:-1)+u|0,f=(c?-1:-2)+f|0,v=8&n)break u;c=-9;s:if(!E&&(v=l[h-4>>2])){if(w=10,c=0,(v>>>0)%10|0)break s;for(;u=c,c=c+1|0,w=N(w,10),!((v>>>0)%(w>>>0)|0););c=-1^u}if(u=N(h-R>>2,9),(-33&f)==70){v=0,p=(0|(c=(0|(c=(c+u|0)-9|0))>0?c:0))>(0|p)?p:c;break u}v=0,p=(0|(c=(0|(c=((i+u|0)+c|0)-9|0))>0?c:0))>(0|p)?p:c}if(w=-1,(((E=v|p)?2147483645:2147483646)|0)<(0|p))break e;G=(((0|E)!=0)+p|0)+1|0,u=-33&f;A:{if((0|u)==70){if((2147483647^G)<(0|i))break e;c=(0|i)>0?i:0;break A}if(c=rK(((c=i>>31)^i)-c|0,0,V),(V-c|0)<=1)for(;s[0|(c=c-1|0)]=48,(V-c|0)<2;);if(s[0|(W=c-2|0)]=f,s[c-1|0]=(0|i)<0?45:43,(0|(c=V-W|0))>(2147483647^G))break e}if((0|(i=c+G|0))>(2147483647^Z))break e;er(r,32,a,G=i+Z|0,n),rF(r,I,Z),er(r,48,a,G,65536^n);l:{d:{h:{if((0|u)==70){for(i=8|(f=m+16|0),v=9|f,A=u=A>>>0>R>>>0?R:A;;){c=rK(l[A>>2],0,v);v:{if((0|u)!=(0|A)){if(m+16>>>0>=c>>>0)break v;for(;s[0|(c=c-1|0)]=48,m+16>>>0>>0;);break v}if((0|c)!=(0|v))break v;s[m+24|0]=48,c=i}if(rF(r,c,v-c|0),!(R>>>0>=(A=A+4|0)>>>0))break}if(E&&rF(r,4206,1),(0|p)<=0|A>>>0>=h>>>0)break h;for(;;){if((c=rK(l[A>>2],0,v))>>>0>m+16>>>0)for(;s[0|(c=c-1|0)]=48,m+16>>>0>>0;);if(rF(r,c,(0|p)>=9?9:p),c=p-9|0,h>>>0<=(A=A+4|0)>>>0)break d;if(i=(0|p)>9,p=c,!i)break}break d}p:if(!((0|p)<0))for(R=A>>>0>>0?h:A+4|0,i=8|(f=m+16|0),h=9|f,u=A;;){c=rK(l[u>>2],0,h),(0|h)==(0|c)&&(s[m+24|0]=48,c=i);m:{if((0|u)!=(0|A)){if(m+16>>>0>=c>>>0)break m;for(;s[0|(c=c-1|0)]=48,m+16>>>0>>0;);break m}if(rF(r,c,1),c=c+1|0,!(v|p))break m;rF(r,4206,1)}if(f=h-c|0,rF(r,c,(0|f)>(0|p)?p:f),p=p-f|0,R>>>0<=(u=u+4|0)>>>0)break p;if(!((0|p)>=0))break}er(r,48,p+18|0,18,0),rF(r,W,V-W|0);break l}c=p}er(r,48,c+9|0,9,0)}er(r,32,a,G,8192^n),w=(0|a)<(0|G)?G:a;break e}v=(f<<26>>31&9)+I|0;N:if(!(i>>>0>11)){for(c=12-i|0,g=16;g*=16,c=c-1|0;);if(45==d[0|v]){e=-(g+(-e-g));break N}e=e+g-g}for(R=2|Z,A=32&f,c=(u=l[m+44>>2])>>31,c=rK((c^u)-c|0,0,V),(0|V)==(0|c)&&(s[m+15|0]=48,c=m+15|0),s[0|(p=c-2|0)]=f+15,s[c-1|0]=(0|u)<0?45:43,c=8&n,u=m+16|0;f=u,h=2147483648>y(e)?~~e:-2147483648,s[0|u]=A|d[h+5424|0],!(c|(0|i)>0)&0==(e=(e-+(0|h))*16)|((u=f+1|0)-(m+16|0)|0)!=1||(s[f+1|0]=46,u=f+2|0),0!=e;);if(w=-1,(2147483645-(f=(c=V-p|0)+R|0)|0)<(0|i))break e;w:{y:if(i&&!(((A=u-(m+16|0)|0)-2|0)>=(0|i))){i=i+2|0;break w}i=A=u-(m+16|0)|0}er(r,32,a,f=i+f|0,n),rF(r,v,R),er(r,48,a,f,65536^n),rF(r,m+16|0,A),er(r,48,i-A|0,0,0),rF(r,p,c),er(r,32,a,f,8192^n),w=(0|a)<(0|f)?f:a}return re=m+560|0,0|w},function(r,e){r|=0,e|=0;var a,i,n=0,f=0,b=0,k=0,c=0,u=0,s=0,A=0,d=0,h=0,v=0,p=0,N=0,w=0,y=0,E=0;n=e,e=l[e>>2]+7&-8,l[n>>2]=e+16,N=r,s=l[e>>2],f=l[e+4>>2],v=r=l[e+12>>2],re=c=re-32|0,r&=2147483647,u=r,b=r-1006698496|0,r=r-1140785152|0,e=n=l[e+8>>2];r:{if((0|b)==(0|r)&e>>>0>>0|r>>>0>b>>>0){if(n=v<<4|(r=n)>>>28,e=r<<4|f>>>28,r=n,(0|(f&=268435455))==134217728&(0|s)!=0|f>>>0>134217728){r=r+1073741824|0,r=(e=e+1|0)?r:r+1|0;break r}if(r=r+1073741824|0,s|(0|f)!=134217728)break r;r=(e=(f=1&e)+e|0)>>>0>>0?r+1|0:r;break r}if(!(!e&(0|u)==2147418112?!(f|s):u>>>0<2147418112)){n=v<<4|(r=n)>>>28,e=r<<4|f>>>28,r=524287&n|2146959360;break r}if(e=0,r=2146435072,u>>>0>1140785151||(r=0,(p=u>>>16|0)>>>0<15249))break r;e=s,r=f,u=b=65535&v|65536,h=n,k=n,A=p-15233|0;e:{if(64&A){n=e,e=31&(b=A+-64|0),(63&b)>>>0>=32?(r=n<>>32-e|r<>>0>=32?(n=d<>>32-k|b<>>0>=32?(n=0,e=r>>>k|0):(n=r>>>k|0,e=((1<>>k),k=w|e,b|=n,e=31&A,(63&A)>>>0>=32?(n=d<>>32-e|r<>2]=e,l[c+20>>2]=r,l[c+24>>2]=k,l[c+28>>2]=b,e=15361-p|0;a:{if(64&e){f=h,r=31&(e=e+-64|0),(63&e)>>>0>=32?(n=0,s=u>>>r|0):(n=u>>>r|0,s=((1<>>r),f=n,h=0,u=0;break a}if(!e)break a;b=h,n=31&(r=64-e|0),(63&r)>>>0>=32?(r=b<>>32-n|u<>>0>=32?(n=0,b=f>>>s|0):(n=f>>>s|0,b=((1<>>s),s=k|b,f=r|n,b=h,n=31&e,(63&e)>>>0>=32?(r=0,h=u>>>n|0):(r=u>>>n|0,h=((1<>>n),u=r}if(l[c>>2]=s,l[c+4>>2]=f,l[c+8>>2]=h,l[c+12>>2]=u,e=l[c+8>>2],r=l[c+12>>2]<<4|e>>>28,e<<=4,n=l[c>>2],e=(u=l[c+4>>2])>>>28|e,(0|(f=268435455&u))==134217728&(0|(n|=(l[c+16>>2]|l[c+24>>2]|(l[c+20>>2]|l[c+28>>2]))!=0))!=0|f>>>0>134217728){r=(e=e+1|0)?r:r+1|0;break r}if(n|(0|f)!=134217728)break r;r=(n=e)>>>0>(e=e+(1&e)|0)>>>0?r+1|0:r}re=c+32|0,a=0|e,t[0]=a,i=-2147483648&v|r,t[1]=i,y=N,E=+o[0],m[y>>3]=E},e_,function(r,e){e|=0,l[(r|=0)+4>>2]=7,l[r>>2]=e},function(r,e){e|=0,l[(r|=0)+4>>2]=10,l[r>>2]=e},function(r,e){e|=0,l[(r|=0)+4>>2]=13,l[r>>2]=e},e_,e_,e_,e_,e_,e_,function(r,e,a,i,n,f){r|=0,e|=0,a=w(a),i|=0,n=w(n),f|=0;var t=0;re=t=re-16|0,e=l[l[e>>2]+4>>2],eY[l[l[e>>2]+8>>2]](t,e,a,i,n,f),p[r>>2]=m[t>>3],p[r+4>>2]=m[t+8>>3],re=t+16|0},function(r){r|=0,r=l[l[r>>2]+8>>2],eY[l[l[r>>2]+8>>2]](r)},rn,function(r){return 6952},eg,function(r,e,a,i,n,f){r|=0,e|=0,a=w(a),i|=0,n=w(n),f|=0;var t=0,b=0;return re=t=re-16|0,b=l[r>>2],e=((r=l[r+4>>2])>>1)+e|0,1&r&&(b=l[b+l[e>>2]>>2]),eY[0|b](t,e,a,i,n,f),r=eo(16),e=l[t+12>>2],l[r+8>>2]=l[t+8>>2],l[r+12>>2]=e,e=l[t+4>>2],l[r>>2]=l[t>>2],l[r+4>>2]=e,re=t+16|0,0|r},function(r){return 6956},e_,e_,eg,eF,eB,eA,function(r){r|=0;var e=0;return s[(e=eo(12))+4|0]=0,l[e+8>>2]=l[r>>2],l[r>>2]=0,l[e>>2]=4368,0|e},function(r,e,a){r|=0,e|=0,a|=0;var i=0,n=0,f=0,t=0;if(re=i=re-32|0,(n=l[e>>2])>>>0<2147483632){r:{e:{if(n>>>0>=11){t=eo(f=(15|n)+1|0),l[i+16>>2]=-2147483648|f,l[i+8>>2]=t,l[i+12>>2]=n,f=n+t|0;break e}if(s[i+19|0]=n,f=(t=i+8|0)+n|0,!n)break r}ru(t,e+4|0,n)}return s[0|f]=0,l[i>>2]=a,eY[0|r](i+24|0,i+8|0,i),U(l[i+24>>2]),r=l[i+24>>2],I(0|r),I(l[i>>2]),s[i+19|0]<0&&rE(l[i+8>>2]),re=i+32|0,0|r}T(),k()},function(r,e,a){r|=0,e|=0,a|=0;var i=0,n=0;i=r,n=0|Y((s[e+11|0]<0?l[e>>2]:e)|0,6956,l[a>>2]),l[i>>2]=n},function(r){return 6976},eg,em,function(r){return 6979},e_,e_,eg,eF,eB,eA,function(r){r|=0;var e=0;return s[(e=eo(12))+4|0]=0,l[e+8>>2]=l[r>>2],l[r>>2]=0,l[e>>2]=4488,0|e},function(r,e,a){r|=0,e|=0,a|=0;var i=0,n=0;i=r,n=0|Y((s[e+11|0]<0?l[e>>2]:e)|0,6979,l[a>>2]),l[i>>2]=n},function(r){return 6982},eE,eT,function(){var r=0,e=0;return e=eo(4),A[(r=eo(28))+20>>1]=0,l[r+16>>2]=1065353216,A[r+10>>1]=0,A[r+12>>1]=0,l[r>>2]=0,l[r+24>>2]=0,s[r+9|0]=0,l[r+4>>2]=1,s[r+22|0]=0,l[1732]=l[1732]+1,l[e>>2]=r,0|e},eI,eE,function(r,e,a){e|=0,a|=0,s[(l[(r|=0)>>2]+e|0)+20|0]=a},et,function(r,e){r|=0,e=w(e);var a=0,i=0,n=0;if(re=a=re-16|0,r=l[r>>2],!(e>=w(0))){l[a>>2]=2262,re=i=re-16|0,l[i+12>>2]=a;r:if(!r){if(d[6936]){r=l[1733];break r}A[(r=eo(28))+20>>1]=0,l[r+16>>2]=1065353216,A[r+10>>1]=0,A[r+12>>1]=0,l[r>>2]=0,l[r+24>>2]=0,s[r+9|0]=0,l[r+4>>2]=1,s[r+22|0]=0,l[1733]=r,s[6936]=1,l[1732]=l[1732]+1}n=l[r+4>>2];e:{if(d[r+9|0]){eY[0|n](r,0,5,0,4215,a);break e}eY[0|n](r,0,5,4215,a)}re=i+16|0,eX(),k()}p[r+16>>2]=e==w(0)?w(0):e,re=a+16|0},function(r,e,a){r|=0,e|=0,a=w(a);var i=0;i=l[r>>2],e=((r=l[r+4>>2])>>1)+e|0,1&r&&(i=l[i+l[e>>2]>>2]),eY[0|i](e,a)},function(r,e){e|=0,s[l[(r|=0)>>2]+11|0]=e},ek,function(r,e){e|=0,s[l[(r|=0)>>2]+10|0]=e},function(r,e){return e|=0,d[(l[(r|=0)>>2]+e|0)+20|0]},eb,function(r){return d[l[(r|=0)>>2]+11|0]},ec,function(r){return d[l[(r|=0)>>2]+10|0]},function(){return 0|ry(eo(48),0,48)},eL,function(){var r=0;return l[(r=eo(16))>>2]=0,l[r+4>>2]=0,l[r+8>>2]=0,l[r+12>>2]=0,0|r},eL,function(){var r=0;return l[(r=eo(16))+8>>2]=0,l[r+12>>2]=0,l[r>>2]=0,0|r},eL,eR,eG,function(r,e){return e|=0,l[l[(r|=0)>>2]+e>>2]},function(r,e,a){e|=0,a|=0,l[l[(r|=0)>>2]+e>>2]=a},function(r){return 6987},rL,eT,function(){return 0|rJ(eo(12),0)},function(r,e){return e|=0,0|eY[0|(r|=0)](e)},function(r){return r|=0,0|rJ(eo(12),r)},eI,rL,function(r){r|=0;var e=0,a=0,i=0,n=0;re=i=re-624|0,e=l[r+4>>2],l[r+4>>2]=0,e&&eY[l[l[e>>2]+4>>2]](e),e=l[r+8>>2],l[r+8>>2]=0,e&&eY[l[l[e>>2]+4>>2]](e);r:{if(r=l[r>>2],l[r+560>>2]==l[r+556>>2]){if(l[r+552>>2])break r;r_(r+556|0),n=s[r+4|0],e=rk(i+32|0,l[r+568>>2]),a=l[e+4>>2],l[r>>2]=l[e>>2],l[r+4>>2]=a,a=l[e+20>>2],l[r+16>>2]=l[e+16>>2],l[r+20>>2]=a,a=l[e+12>>2],l[r+8>>2]=l[e+8>>2],l[r+12>>2]=a,ru(r+24|0,e+24|0,204),ru(r+228|0,e+228|0,328),(a=l[r+556>>2])&&(l[r+560>>2]=a,rE(a)),l[r+556>>2]=l[e+556>>2],l[r+560>>2]=l[e+560>>2],l[r+564>>2]=l[e+564>>2],l[r+584>>2]=l[e+584>>2],a=l[e+580>>2],l[r+576>>2]=l[e+576>>2],l[r+580>>2]=a,a=l[e+572>>2],l[r+568>>2]=l[e+568>>2],l[r+572>>2]=a,(0|n)<0&&(s[r+4|0]=128|d[r+4|0],l[r+24>>2]=-909&l[r+24>>2]|520),re=i+624|0;return}l[i+16>>2]=3252,rB(r,i+16|0),eX(),k()}l[i>>2]=2046,rB(r,i),eX(),k()},em,function(r,e){r|=0,e|=0;var a,i,n=0,f=w(0),b=0,o=0,k=w(0),c=0,A=0,h=0,v=w(0);r:{A=l[e>>2],e=l[r>>2];e:if(!((l[A+24>>2]^l[e+24>>2])&8388607)){v=p[A+40>>2],b=l[A+40>>2],f=p[e+40>>2];a:{i:{if((0|(n=l[e+40>>2]))!=2139156720){if(k=w(NaN),r=3,(0|n)==2141891242)break a;if((0|n)!=2140081935)break i;k=w(0),r=1;break a}r=2;break a}if(r=0,f!=f)break a;a=(-1073741825&n)+536870912|0,t[2]=a,k=u(),r=1073741824&n?2:1}n:{f:{if((0|b)!=2139156720){if(f=w(NaN),n=3,(0|b)==2141891242)break n;if((0|b)!=2140081935)break f;f=w(0),n=1;break n}f=w(0),n=2;break n}if(n=0,v!=v)break n;i=(-1073741825&b)+536870912|0,t[2]=i,f=u(),n=1073741824&b?2:1}if((0|n)!=(0|r)|!(!r|k!=k&f!=f|w(y(w(k-f)))>2]!=l[o>>2]))break e;r=0;t:{for(;;){if(b=r,(0|(r=r+1|0))==9)break t;if(l[(c=r<<2)+n>>2]!=l[o+c>>2])break}if(b>>>0<8)break e}if(n=e+80|0,o=A+80|0,l[n>>2]!=l[o>>2])break e;r=0;b:{for(;;){if(b=r,(0|(r=r+1|0))==9)break b;if(l[(c=r<<2)+n>>2]!=l[o+c>>2])break}if(b>>>0<8)break e}if(n=e+116|0,o=A+116|0,l[n>>2]!=l[o>>2])break e;r=0;o:{for(;;){if(b=r,(0|(r=r+1|0))==9)break o;if(l[(c=r<<2)+n>>2]!=l[o+c>>2])break}if(b>>>0<8)break e}if(n=e+152|0,o=A+152|0,l[n>>2]!=l[o>>2])break e;r=0;k:{for(;;){if(b=r,(0|(r=r+1|0))==9)break k;if(l[(c=r<<2)+n>>2]!=l[o+c>>2])break}if(b>>>0<8)break e}if(n=e+188|0,o=A+188|0,l[n>>2]!=l[o>>2])break e;r=0;c:{for(;;){if(b=r,(0|(r=r+1|0))==3)break c;if(l[(c=r<<2)+n>>2]!=l[o+c>>2])break}if(b>>>0<2)break e}for(c=A+200|0,h=e+200|0,r=0,b=1;;){u:if(r<<=2,n=l[r+c>>2],o=l[r+h>>2],b&&(b=0,r=1,(0|n)==(0|o)))continue;break}if((0|n)!=(0|o))break e;for(c=A+208|0,h=e+208|0,r=0,b=1;;){s:if(r<<=2,n=l[r+c>>2],o=l[r+h>>2],b&&(b=0,r=1,(0|n)==(0|o)))continue;break}if((0|n)!=(0|o))break e;for(c=A+216|0,h=e+216|0,r=0,b=1;;){A:if(r<<=2,n=l[r+c>>2],o=l[r+h>>2],b&&(b=0,r=1,(0|n)==(0|o)))continue;break}if((0|n)!=(0|o)||(r=(k=p[A+28>>2])!=k,f=p[e+28>>2],(0|r)==(f==f|0)|!(r|f!=f)&f!=k)||(f=p[e+32>>2],k=p[A+32>>2],(f==f|0)==(k!=k|0)|f==f&f!=k)||(r=(k=p[A+36>>2])!=k,f=p[e+36>>2],(0|r)==(f==f|0)|!r&f!=k))break e;if(r=0,(f=p[e+224>>2])!=f&&(r=1,(k=p[A+224>>2])!=k)||(k=f,f=p[A+224>>2],k==f|f!=f&r))break r}for(ru(e+24|0,A+24|0,204);;){if(4&(r=d[e+4|0]))break r;if(s[e+4|0]=4|r,(r=l[e+20>>2])&&eY[0|r](e),l[e+308>>2]=2143289344,!(e=l[e+552>>2]))break}}},ek,function(r,e){r|=0,e|=0;var a=0;r:if(r=l[r>>2],((a=l[r+24>>2])>>>16&3)!=(0|e))for(l[r+24>>2]=-196609&a|e<<16&196608;;){if(4&(e=d[r+4|0]))break r;if(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}},ek,function(r,e,a){e|=0,a=+a,r4(l[(r|=0)>>2],e,rx(w(a)))},function(r,e,a,i){r|=0,e|=0,a|=0,i=+i;var n=0;n=l[r>>2],e=((r=l[r+4>>2])>>1)+e|0,1&r&&(n=l[n+l[e>>2]>>2]),eY[0|n](e,a,i)},function(r,e,a){e|=0,a=+a,r4(l[(r|=0)>>2],e,rD(w(a)))},function(r,e){e|=0,rC(l[(r|=0)>>2],5,e)},function(r,e){e|=0,rC(l[(r|=0)>>2],6,e)},function(r,e){e|=0,rC(l[(r|=0)>>2],7,e)},function(r,e){r|=0,e|=0;var a=0;r:if(r=l[r>>2],((a=l[r+24>>2])>>>2&3)!=(0|e))for(l[r+24>>2]=-13&a|e<<2&12;;){if(4&(e=d[r+4|0]))break r;if(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}},function(r,e){r|=0,e|=0;var a=0;r:if(r=l[r>>2],((a=l[r+24>>2])>>>18&3)!=(0|e))for(l[r+24>>2]=-786433&a|e<<18&786432;;){if(4&(e=d[r+4|0]))break r;if(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}},function(r,e){r|=0,e|=0;var a=0;r:if(r=l[r>>2],((a=l[r+24>>2])>>>4&7)!=(0|e))for(l[r+24>>2]=-113&a|e<<4&112;;){if(4&(e=d[r+4|0]))break r;if(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}},function(r,e,a){e|=0,a=+a,r8(l[(r|=0)>>2],e,rx(w(a)))},function(r,e,a){e|=0,a=+a,r8(l[(r|=0)>>2],e,rD(w(a)))},function(r,e){e|=0,r8(l[(r|=0)>>2],e,2141891242)},function(r,e){r|=0,e|=0;var a=0;r:if(r=l[r>>2],((a=l[r+24>>2])>>>20&3)!=(0|e))for(l[r+24>>2]=-3145729&a|e<<20&3145728;;){if(4&(e=d[r+4|0]))break r;if(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}},function(r,e){r|=0,e|=0;var a=0;r:if(r=l[r>>2],((a=l[r+24>>2])>>>22&1)!=(0|e))for(l[r+24>>2]=-4194305&a|e<<22&4194304;;){if(4&(e=d[r+4|0]))break r;if(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}},function(r,e){r|=0,e=+e;var a=0,i=w(0),n=w(0);r:if(i=w(e),n=p[(r=l[r>>2])+28>>2],!(i==n|i!=i&n!=n))for(p[r+28>>2]=i;;){if(4&(a=d[r+4|0]))break r;if(s[r+4|0]=4|a,(a=l[r+20>>2])&&eY[0|a](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}},function(r,e,a){r|=0,e|=0,a=+a;var i=0;i=l[r>>2],e=((r=l[r+4>>2])>>1)+e|0,1&r&&(i=l[i+l[e>>2]>>2]),eY[0|i](e,a)},function(r,e){e=+e,r1(l[(r|=0)>>2],rx(w(e)))},function(r,e){e=+e,r1(l[(r|=0)>>2],rD(w(e)))},function(r){r1(l[(r|=0)>>2],2141891242)},function(r,e){r|=0,e=+e;var a=0,i=w(0),n=w(0);r:if(i=w(e),n=p[(r=l[r>>2])+32>>2],!(i==n|i!=i&n!=n))for(p[r+32>>2]=i;;){if(4&(a=d[r+4|0]))break r;if(s[r+4|0]=4|a,(a=l[r+20>>2])&&eY[0|a](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}},function(r,e){r|=0,e=+e;var a=0,i=w(0),n=w(0);r:if(i=w(e),n=p[(r=l[r>>2])+36>>2],!(i==n|i!=i&n!=n))for(p[r+36>>2]=i;;){if(4&(a=d[r+4|0]))break r;if(s[r+4|0]=4|a,(a=l[r+20>>2])&&eY[0|a](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}},function(r,e){e=+e,r2(l[(r|=0)>>2],0,rx(w(e)))},function(r,e){e=+e,r2(l[(r|=0)>>2],0,rD(w(e)))},function(r){r2(l[(r|=0)>>2],0,2141891242)},function(r,e){e=+e,r2(l[(r|=0)>>2],1,rx(w(e)))},function(r,e){e=+e,r2(l[(r|=0)>>2],1,rD(w(e)))},function(r){r2(l[(r|=0)>>2],1,2141891242)},function(r,e){e=+e,r$(l[(r|=0)>>2],0,rx(w(e)))},function(r,e){e=+e,r$(l[(r|=0)>>2],0,rD(w(e)))},function(r,e){e=+e,r$(l[(r|=0)>>2],1,rx(w(e)))},function(r,e){e=+e,r$(l[(r|=0)>>2],1,rD(w(e)))},function(r,e){e=+e,r0(l[(r|=0)>>2],0,rx(w(e)))},function(r,e){e=+e,r0(l[(r|=0)>>2],0,rD(w(e)))},function(r,e){e=+e,r0(l[(r|=0)>>2],1,rx(w(e)))},function(r,e){e=+e,r0(l[(r|=0)>>2],1,rD(w(e)))},function(r,e){r|=0,e=+e;var a=0,i=w(0),n=w(0);r:if(i=w(e),n=p[(r=l[r>>2])+224>>2],!(i==n|i!=i&n!=n))for(p[r+224>>2]=i;;){if(4&(a=d[r+4|0]))break r;if(s[r+4|0]=4|a,(a=l[r+20>>2])&&eY[0|a](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}},function(r,e,a){r|=0,e|=0,a=+a;var i=0,n=0;r:if(e=(r=l[r>>2])+(e<<2)|0,(0|(n=l[e+152>>2]))!=(0|(i=rx(w(a)))))for(l[e+152>>2]=i;;){if(4&(e=d[r+4|0]))break r;if(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}},function(r,e,a){e|=0,a=+a,r3(l[(r|=0)>>2],e,rx(w(a)))},function(r,e,a){e|=0,a=+a,r3(l[(r|=0)>>2],e,rD(w(a)))},function(r,e,a){r|=0,e|=0,a=+a;var i=0,n=0;r:if(e=(r=l[r>>2])+(e<<2)|0,(0|(n=l[e+188>>2]))!=(0|(i=rx(w(a)))))for(l[e+188>>2]=i;;){if(4&(e=d[r+4|0]))break r;if(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}},function(r){return 3&h[l[(r|=0)>>2]+26>>1]},ec,function(r,e,a){r|=0,e|=0,a|=0;var i,n=0,f=0,b=w(0);n=2,b=p[(e=l[e>>2]+(a<<2)|0)+80>>2];r:{e:{if((0|(e=l[e+80>>2]))!=2139156720){if(f=NaN,(0|e)==2141891242){n=3;break r}if((0|e)!=2140081935)break e;f=0,n=1}break r}if(b!=b){n=0;break r}n=1073741824&e?2:1,f=+(i=(-1073741825&e)+536870912|0,t[2]=i,u())}m[r+8>>3]=f,l[r>>2]=n},function(r,e,a){r|=0,e|=0,a|=0;var i=0,n=0;return re=i=re-16|0,n=l[r>>2],e=((r=l[r+4>>2])>>1)+e|0,1&r&&(n=l[n+l[e>>2]>>2]),eY[0|n](i,e,a),r=eo(16),e=l[i+12>>2],l[r+8>>2]=l[i+8>>2],l[r+12>>2]=e,e=l[i+4>>2],l[r>>2]=l[i>>2],l[r+4>>2]=e,re=i+16|0,0|r},function(r){return l[l[(r|=0)>>2]+24>>2]>>>7&7},function(r){return l[l[(r|=0)>>2]+24>>2]>>>10&7},function(r){return l[l[(r|=0)>>2]+24>>2]>>>13&7},function(r){return l[l[(r|=0)>>2]+24>>2]>>>2&3},function(r){return l[l[(r|=0)>>2]+24>>2]>>>18&3},function(r){return l[l[(r|=0)>>2]+24>>2]>>>4&7},function(r,e,a){r|=0,e|=0,a|=0;var i,n=0,f=0,b=w(0);n=2,b=p[(e=l[e>>2]+(a<<2)|0)+44>>2];r:{e:{if((0|(e=l[e+44>>2]))!=2139156720){if(f=NaN,(0|e)==2141891242){n=3;break r}if((0|e)!=2140081935)break e;f=0,n=1}break r}if(b!=b){n=0;break r}n=1073741824&e?2:1,f=+(i=(-1073741825&e)+536870912|0,t[2]=i,u())}m[r+8>>3]=f,l[r>>2]=n},function(r,e){r|=0,e|=0;var a,i=0,n=w(0),f=w(0);n=w(NaN),f=p[(e=l[e>>2])+40>>2],e=l[e+40>>2],i=3;r:if((0|e)!=2141891242){if((0|e)==2140081935){n=w(0),i=1;break r}if((0|e)==2139156720){n=w(0),i=2;break r}if(i=0,f!=f)break r;a=(-1073741825&e)+536870912|0,t[2]=a,n=u(),i=1073741824&e?2:1}l[r>>2]=i,m[r+8>>3]=n},function(r,e){r|=0,e|=0;var a=0,i=0;return re=a=re-16|0,i=l[r>>2],e=((r=l[r+4>>2])>>1)+e|0,1&r&&(i=l[i+l[e>>2]>>2]),eY[0|i](a,e),r=eo(16),e=l[a+12>>2],l[r+8>>2]=l[a+8>>2],l[r+12>>2]=e,e=l[a+4>>2],l[r>>2]=l[a>>2],l[r+4>>2]=e,re=a+16|0,0|r},function(r){r|=0;var e=w(0);return+((e=p[l[r>>2]+32>>2])==e?e:w(0))},function(r,e){r|=0,e|=0;var a=0;return a=l[r>>2],e=((r=l[r+4>>2])>>1)+e|0,1&r&&(a=l[a+l[e>>2]>>2]),+eY[0|a](e)},function(r){r|=0;var e=w(0);return(e=p[(r=l[r>>2])+36>>2])!=e&&(e=d[l[r+568>>2]+10|0]?w(1):w(0)),+e},function(r,e){r|=0,e|=0;var a,i=0,n=0,f=w(0);f=p[(e=l[e>>2])+200>>2];r:{e:{if((0|(e=l[e+200>>2]))!=2139156720){if(n=NaN,i=3,(0|e)==2141891242)break r;if((0|e)!=2140081935)break e;n=0,i=1;break r}i=2;break r}if(i=0,f!=f)break r;n=+(a=(-1073741825&e)+536870912|0,t[2]=a,u()),i=1073741824&e?2:1}e=i,m[r+8>>3]=n,l[r>>2]=e},function(r,e){r|=0,e|=0;var a,i=0,n=0,f=w(0);f=p[(e=l[e>>2])+204>>2];r:{e:{if((0|(e=l[e+204>>2]))!=2139156720){if(n=NaN,i=3,(0|e)==2141891242)break r;if((0|e)!=2140081935)break e;n=0,i=1;break r}i=2;break r}if(i=0,f!=f)break r;n=+(a=(-1073741825&e)+536870912|0,t[2]=a,u()),i=1073741824&e?2:1}e=i,m[r+8>>3]=n,l[r>>2]=e},function(r,e){r|=0,e|=0;var a,i=0,n=0,f=w(0);f=p[(e=l[e>>2])+208>>2];r:{e:{if((0|(e=l[e+208>>2]))!=2139156720){if(n=NaN,i=3,(0|e)==2141891242)break r;if((0|e)!=2140081935)break e;n=0,i=1;break r}i=2;break r}if(i=0,f!=f)break r;n=+(a=(-1073741825&e)+536870912|0,t[2]=a,u()),i=1073741824&e?2:1}e=i,m[r+8>>3]=n,l[r>>2]=e},function(r,e){r|=0,e|=0;var a,i=0,n=0,f=w(0);f=p[(e=l[e>>2])+212>>2];r:{e:{if((0|(e=l[e+212>>2]))!=2139156720){if(n=NaN,i=3,(0|e)==2141891242)break r;if((0|e)!=2140081935)break e;n=0,i=1;break r}i=2;break r}if(i=0,f!=f)break r;n=+(a=(-1073741825&e)+536870912|0,t[2]=a,u()),i=1073741824&e?2:1}e=i,m[r+8>>3]=n,l[r>>2]=e},function(r,e){r|=0,e|=0;var a,i=0,n=0,f=w(0);f=p[(e=l[e>>2])+216>>2];r:{e:{if((0|(e=l[e+216>>2]))!=2139156720){if(n=NaN,i=3,(0|e)==2141891242)break r;if((0|e)!=2140081935)break e;n=0,i=1;break r}i=2;break r}if(i=0,f!=f)break r;n=+(a=(-1073741825&e)+536870912|0,t[2]=a,u()),i=1073741824&e?2:1}e=i,m[r+8>>3]=n,l[r>>2]=e},function(r,e){r|=0,e|=0;var a,i=0,n=0,f=w(0);f=p[(e=l[e>>2])+220>>2];r:{e:{if((0|(e=l[e+220>>2]))!=2139156720){if(n=NaN,i=3,(0|e)==2141891242)break r;if((0|e)!=2140081935)break e;n=0,i=1;break r}i=2;break r}if(i=0,f!=f)break r;n=+(a=(-1073741825&e)+536870912|0,t[2]=a,u()),i=1073741824&e?2:1}e=i,m[r+8>>3]=n,l[r>>2]=e},function(r){r|=0;var e=w(0);return+((e=p[l[r>>2]+224>>2])!=e?w(NaN):e)},function(r,e){r|=0,e|=0;var a,i=0,n=w(0);n=p[(r=l[r>>2]+(e<<2)|0)+152>>2];r:{e:if(!((0|(r=l[r+152>>2]))==2139156720|(0|r)==2140081935)){if(i=NaN,(0|r)==2141891242|n!=n)break r;if((0|r)==2139156720)break e;return+(a=(-1073741825&r)+536870912|0,t[2]=a,u())}i=0}return+i},function(r,e,a){r|=0,e|=0,a|=0;var i=0;return i=l[r>>2],e=((r=l[r+4>>2])>>1)+e|0,1&r&&(i=l[i+l[e>>2]>>2]),+eY[0|i](e,a)},function(r){return l[l[(r|=0)>>2]+24>>2]>>>20&3},function(r){return l[l[(r|=0)>>2]+24>>2]>>>22&1},function(r,e,a){r|=0,e|=0,a|=0;var i,n=0,f=0,b=w(0);n=2,b=p[(e=l[e>>2]+(a<<2)|0)+116>>2];r:{e:{if((0|(e=l[e+116>>2]))!=2139156720){if(f=NaN,(0|e)==2141891242){n=3;break r}if((0|e)!=2140081935)break e;f=0,n=1}break r}if(b!=b){n=0;break r}n=1073741824&e?2:1,f=+(i=(-1073741825&e)+536870912|0,t[2]=i,u())}m[r+8>>3]=f,l[r>>2]=n},function(r,e){r|=0,e|=0;var a,i=w(0),n=w(0);n=p[(r=l[r>>2]+(e<<2)|0)+188>>2];r:{e:if(!((0|(r=l[r+188>>2]))==2139156720|(0|r)==2140081935)){if(i=w(NaN),(0|r)==2141891242|n!=n)break r;if((0|r)==2139156720)break e;return w((a=(-1073741825&r)+536870912|0,t[2]=a,u()))}i=w(0)}return w(i)},function(r,e,a){r|=0,e|=0,a|=0;var i=0;return i=l[r>>2],e=((r=l[r+4>>2])>>1)+e|0,1&r&&(i=l[i+l[e>>2]>>2]),w(w(eY[0|i](e,a)))},function(r,e,a){r|=0,e|=0,a|=0;var i=0,n=0,f=0,t=0,b=0,o=0,c=0,u=0,A=0,h=0;re=b=re-80|0,r=l[r>>2];r:{e:{if(o=l[e>>2],!l[o+552>>2]){if(l[r+8>>2])break e;t=(e=l[r+556>>2])+(a<<2)|0,i=l[r+560>>2],f=l[(n=r+564|0)>>2];a:{if(i>>>0>>0){if((0|i)==(0|t)){l[t>>2]=o,l[r+560>>2]=t+4;break a}if(a=i,e=i-4|0,i>>>0>e>>>0)for(;l[a>>2]=l[e>>2],a=a+4|0,i>>>0>(e=e+4|0)>>>0;);l[r+560>>2]=a,(0|(e=t+4|0))!=(0|i)&&(e=i-e|0,rm(i-(-4&e)|0,t,e)),l[t>>2]=o;break a}if((i=(i-e>>2)+1|0)>>>0>=1073741824)break r;f=(e=f-e|0)>>>1|0,a=l[(n=en(b+32|0,e>>>0>=2147483644?1073741823:i>>>0>>0?f:i,a,n))+8>>2];i:if((0|a)==l[n+12>>2]){if(e=l[n+4>>2],i=l[n>>2],e>>>0>i>>>0){a=rm(c=(i=-(((e-i>>2)+1|0)/2)<<2)+e|0,f=e,e=a-e|0)+e|0,l[n+8>>2]=a,l[n+4>>2]=i+l[n+4>>2];break i}f=en(b+56|0,e=(0|a)==(0|i)?1:a-i>>1,e>>>2|0,l[n+16>>2]),i=l[f+8>>2],e=l[n+4>>2],a=l[n+8>>2];n:{if((0|e)==(0|a)){a=i,i=e;break n}for(a=(a-e|0)+i|0;l[i>>2]=l[e>>2],e=e+4|0,(0|(i=i+4|0))!=(0|a););e=l[n+8>>2],i=l[n+4>>2]}if(c=l[n>>2],l[n>>2]=l[f>>2],l[f>>2]=c,l[n+4>>2]=l[f+4>>2],l[f+4>>2]=i,l[n+8>>2]=a,l[f+8>>2]=e,u=l[n+12>>2],l[n+12>>2]=l[f+12>>2],l[f+12>>2]=u,(0|e)!=(0|i)&&(l[f+8>>2]=((i-e|0)+3&-4)+e),!c)break i;rE(c),a=l[n+8>>2]}if(l[a>>2]=o,l[n+8>>2]=l[n+8>>2]+4,e=l[r+556>>2],a=t-e|0,A=n,h=rm(l[n+4>>2]-a|0,e,a),l[A+4>>2]=h,i=l[r+560>>2]-t|0,t=rm(l[n+8>>2],t,i),e=l[r+556>>2],l[r+556>>2]=l[n+4>>2],l[n+4>>2]=e,a=l[r+560>>2],l[r+560>>2]=i+t,l[n+8>>2]=a,i=l[r+564>>2],l[r+564>>2]=l[n+12>>2],l[n>>2]=e,l[n+12>>2]=i,(0|e)!=(0|a)&&(l[n+8>>2]=a+((e-a|0)+3&-4)),!e)break a;rE(e)}for(l[o+552>>2]=r;!(4&(e=d[r+4|0]))&&(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,r=l[r+552>>2]););re=b+80|0;return}l[b+16>>2]=4006,rB(r,b+16|0),eX(),k()}l[b>>2]=4139,rB(r,b),eX(),k()}T(),k()},et,function(r,e){r|=0,e|=0;var a=0,i=0,n=0,f=0;re=n=re-320|0,r=l[r>>2];r:if(l[r+560>>2]!=l[r+556>>2]){if(i=l[e>>2],e=l[i+552>>2],!rq(r,i))break r;if((0|r)==(0|e)){for(l[(e=a=ry(n,0,288))+16>>2]=2143289344,l[e+20>>2]=2143289344,ry(e+24|0,0,49),l[e+80>>2]=2143289344,f=e+288|0,e=e+96|0;l[e+16>>2]=-1082130432,l[e+20>>2]=-1082130432,l[e+8>>2]=0,l[e+12>>2]=0,l[e>>2]=-1082130432,l[e+4>>2]=-1082130432,(0|f)!=(0|(e=e+24|0)););l[a+312>>2]=-1082130432,l[a+316>>2]=-1082130432,l[a+304>>2]=0,l[a+308>>2]=0,l[a+296>>2]=-1082130432,l[a+300>>2]=-1082130432,l[a+288>>2]=2143289344,l[a+292>>2]=2143289344,ru(i+228|0,a,320),l[i+552>>2]=0}for(;;){if(4&(e=d[r+4|0]))break r;if(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}}re=n+320|0},ek,function(r){return r|=0,r=l[r>>2],l[r+560>>2]-l[r+556>>2]>>2},ec,function(r){return(r|=0,r=l[l[r>>2]+552>>2])?l[r>>2]:0},ec,function(r,e){r|=0,e|=0;var a=0,i=0;a=l[r>>2],r=l[a+556>>2];r:!(l[a+560>>2]-r>>2>>>0<=e>>>0)&&(r=l[r+(e<<2)>>2])&&(i=l[r>>2]);return 0|i},eb,function(r){return(2&d[l[(r|=0)>>2]+4|0])>>>1|0},ec,function(r,e){r|=0,e|=0;var a=0;r:if(((2&(a=d[(r=l[r>>2])+4|0]))>>>1|0)!=(0|e))for(s[r+4|0]=253&a|(e?2:0);;){if(4&(e=d[r+4|0]))break r;if(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,!(r=l[r+552>>2]))break}},ek,function(r,e){r|=0,e|=0;var a=0;a=l[r+4>>2],l[r+4>>2]=e,a&&eY[l[l[a>>2]+4>>2]](a),r7(l[r>>2],14)},ek,function(r){r|=0;var e=0;e=l[r+4>>2],l[r+4>>2]=0,e&&eY[l[l[e>>2]+4>>2]](e),r7(l[r>>2],0)},function(r,e){r|=0,e|=0;var a=0;a=l[r+8>>2],l[r+8>>2]=e,a&&eY[l[l[a>>2]+4>>2]](a),l[l[r>>2]+20>>2]=15},ek,function(r){r|=0;var e=0;e=l[r+8>>2],l[r+8>>2]=0,e&&eY[l[l[e>>2]+4>>2]](e),l[l[r>>2]+20>>2]=0},function(r){r|=0;var e=0,a=0;if(re=a=re-16|0,r=l[r>>2],l[r+8>>2]){for(;!(4&(e=d[r+4|0]))&&(s[r+4|0]=4|e,(e=l[r+20>>2])&&eY[0|e](r),l[r+308>>2]=2143289344,r=l[r+552>>2]););re=a+16|0;return}l[a>>2]=1024,rB(r,a),eX(),k()},function(r){return(4&d[l[(r|=0)>>2]+4|0])>>>2|0},ec,function(r,e,a,i){r|=0,e=+e,a=+a,i|=0;var n,f,b,o,k=w(0),c=w(0),s=0,A=w(0),h=0,v=w(0),m=0,N=w(0),E=0;re=E=re+-64|0,s=l[r>>2],ry(E+8|0,0,56),l[1735]=l[1735]+1,rc(s),A=w(e),c=p[s+572>>2];r:{e:{a:switch(0|(r=l[s+576>>2])){case 0:case 3:break e;default:break a}k=p[s+572>>2];i:{if(!((0|r)!=1|k!=k)){if(!((k=c)>2];t:{b:{r=l[s+216>>2];o:{k:if((0|r)!=2139156720){if((0|r)==2140081935)break t;m=4276;c:{if((0|r)!=2141891242){if(c==c)break c;m=4268}switch(k=p[m>>2],l[m+4>>2]-1|0){case 0:break o;case 1:break k;default:break b}}if(n=(-1073741825&r)+536870912|0,t[2]=n,k=u(),!(1073741824&r))break o}k=w(w(k*A)*w(.009999999776482582))}if(k!=k)break b;k=w(0);u:if((0|r)!=2139156720){if((0|r)==2140081935)break t;h=4276;s:{if((0|r)!=2141891242){if(c==c)break s;h=4268}switch(k=p[h>>2],N=w(NaN),m=2,l[h+4>>2]-1|0){case 1:break u;case 0:break t;default:break r}}if(f=(-1073741825&r)+536870912|0,t[2]=f,k=u(),!(1073741824&r))break t}N=w(w(k*A)*w(.009999999776482582)),m=2;break r}m=A==A,N=A;break r}m=2,N=k}v=w(a),c=p[s+580>>2];A:{l:{d:switch(0|(r=l[s+584>>2])){case 0:case 3:break l;default:break d}k=p[s+580>>2];h:{if(!((0|r)!=1|k!=k)){if(!((k=c)>2];m:{N:{r=l[s+220>>2];w:{y:if((0|r)!=2139156720){if((0|r)==2140081935)break m;h=4276;E:{if((0|r)!=2141891242){if(c==c)break E;h=4268}switch(k=p[h>>2],l[h+4>>2]-1|0){case 0:break w;case 1:break y;default:break N}}if(b=(-1073741825&r)+536870912|0,t[2]=b,k=u(),!(1073741824&r))break w}k=w(w(k*v)*w(.009999999776482582))}if(k!=k)break N;k=w(0);G:if((0|r)!=2139156720){if((0|r)==2140081935)break m;h=4276;R:{if((0|r)!=2141891242){if(c==c)break R;h=4268}switch(k=p[h>>2],c=w(NaN),r=2,l[h+4>>2]-1|0){case 0:break m;case 1:break G;default:break A}}if(o=(-1073741825&r)+536870912|0,t[2]=o,k=u(),!(1073741824&r))break m}c=w(w(k*v)*w(.009999999776482582)),r=2;break A}r=v==v,c=v;break A}r=2,c=k}rt(s,N,c,i,m,r,A,v,1,0,l[s+568>>2],E+8|0,0,l[1735])&&(rO(s,3&d[s+300|0],A,v,A),function r(e,a,i,n){var f=0,t=0,b=0,o=0,k=0,c=0,u=0,s=0,A=0,h=0,v=0,m=w(0),N=w(0),E=w(0),G=0,R=w(0);r:if(0!=a){if(m=p[e+248>>2],N=p[e+244>>2],E=p[e+232>>2],s=+p[e+228>>2],f=(b=8&d[e+4|0])>>>3|0,G=e,R=rH(s,a,0,f),p[G+228>>2]=R,A=+E,G=e,R=rH(A,a,0,f),p[G+232>>2]=R,f=(k=rl((h=+N)*a))!=k,t=(c=rl((v=+m)*a))!=c,i=s+i,o=f|(o=1e-4>y(k))?!o|f:!(1e-4>y(k+-1)),f=(0|b)!=0,G=e,R=w(rH(i+h,a,o&f,!o&f)-rH(i,a,0,f)),p[G+244>>2]=R,n=A+n,t=t|(b=1e-4>y(c))?!b|t:!(1e-4>y(c+-1)),G=e,R=w(rH(n+v,a,f&t,!t&f)-rH(n,a,0,f)),p[G+248>>2]=R,f=l[e+560>>2],t=l[e+556>>2],(0|f)==(0|t))break r;for(t=(f=f-t>>2)>>>0<=1?1:f;f=l[e+556>>2],f=l[e+560>>2]-f>>2>>>0>u>>>0?l[f+(u<<2)>>2]:0,r(f,a,i,n),(0|t)!=(0|(u=u+1|0)););}}(s,+p[l[s+568>>2]+16>>2],0,0)),re=E- -64|0},function(r,e,a,i,n){r|=0,e|=0,a=+a,i=+i,n|=0;var f=0;f=l[r>>2],e=((r=l[r+4>>2])>>1)+e|0,1&r&&(f=l[f+l[e>>2]>>2]),eY[0|f](e,a,i,n)},function(r){return+p[l[(r|=0)>>2]+228>>2]},function(r){return+p[l[(r|=0)>>2]+236>>2]},function(r){return+p[l[(r|=0)>>2]+232>>2]},function(r){return+p[l[(r|=0)>>2]+240>>2]},function(r){return+p[l[(r|=0)>>2]+244>>2]},function(r){return+p[l[(r|=0)>>2]+248>>2]},function(r,e){r|=0,e|=0,e=l[e>>2],m[r>>3]=p[e+228>>2],m[r+8>>3]=p[e+236>>2],m[r+16>>3]=p[e+232>>2],m[r+24>>3]=p[e+240>>2],m[r+32>>3]=p[e+244>>2],m[r+40>>3]=p[e+248>>2]},function(r,e){r|=0,e|=0;var a=0,i=0;return re=a=re-48|0,i=l[r>>2],e=((r=l[r+4>>2])>>1)+e|0,1&r&&(i=l[i+l[e>>2]>>2]),eY[0|i](a,e),r=ru(eo(48),a,48),re=a+48|0,0|r},function(r,e){r|=0,e|=0;var a=0;if(re=a=re-16|0,r=l[r>>2],(0|e)<6){re=a+16|0;r:{e:switch(e-4|0){case 0:if(e=r+260|0,(3&d[r+300|0])==2)break r;e=r+252|0;break r;case 1:if(e=r+252|0,(3&d[r+300|0])==2)break r;e=r+260|0;break r;default:break e}e=(r+(e<<2)|0)+252|0}return+p[e>>2]}l[a>>2]=1871,rB(r,a),eX(),k()},function(r,e){r|=0,e|=0;var a=0;if(re=a=re-16|0,r=l[r>>2],(0|e)<6){re=a+16|0;r:{e:switch(e-4|0){case 0:if(e=r+276|0,(3&d[r+300|0])==2)break r;e=r+268|0;break r;case 1:if(e=r+268|0,(3&d[r+300|0])==2)break r;e=r+276|0;break r;default:break e}e=(r+(e<<2)|0)+268|0}return+p[e>>2]}l[a>>2]=1871,rB(r,a),eX(),k()},function(r,e){r|=0,e|=0;var a=0;if(re=a=re-16|0,r=l[r>>2],(0|e)<6){re=a+16|0;r:{e:switch(e-4|0){case 0:if(e=r+292|0,(3&d[r+300|0])==2)break r;e=r+284|0;break r;case 1:if(e=r+284|0,(3&d[r+300|0])==2)break r;e=r+292|0;break r;default:break e}e=(r+(e<<2)|0)+284|0}return+p[e>>2]}l[a>>2]=1871,rB(r,a),eX(),k()},eR,eG,eR,eG,rw,ew,function(r){rE(ew(r|=0))},function(r,e,a,i,n,f){r|=0,e|=0,a=w(a),i|=0,n=w(n),f|=0;var t=0,b=0,o=0;re=t=re-48|0,o=l[e+8>>2];r:{if(1&s[6972]){e=l[1742];break r}e=0|F(5,4416),s[6972]=1,l[1742]=e}l[t+40>>2]=f,p[t+32>>2]=n,l[t+24>>2]=i,p[t+16>>2]=a,b=+H(0|e,0|o,2873,t+12|0,t+16|0);e:{if(b<4294967296&b>=0){e=~~b>>>0;break e}e=0}i=l[t+12>>2],f=l[e+4>>2],l[r>>2]=l[e>>2],l[r+4>>2]=f,f=l[e+12>>2],l[r+8>>2]=l[e+8>>2],l[r+12>>2]=f,M(0|i),re=t+48|0},eC,eS,eN,function(r){rE(eN(r|=0))},function(r){ep(l[(r|=0)+8>>2],3244)},eC,function(r){return 0|K(l[(r|=0)+60>>2])},function(r,e,a){r|=0,e|=0,a|=0;var i=0,n=0,f=0,t=0,b=0,o=0,k=0;re=i=re-32|0,n=l[r+28>>2],l[i+16>>2]=n,f=l[r+20>>2],l[i+28>>2]=a,l[i+24>>2]=e,e=f-n|0,l[i+20>>2]=e,f=e+a|0,o=2,e=i+16|0;r:{for(;;){e:{a:{i:{if(!eZ(0|J(l[r+60>>2],0|e,0|o,i+12|0))){if((0|(t=l[i+12>>2]))==(0|f))break i;if((0|t)>=0)break a;break e}if((0|f)!=-1)break e}e=l[r+44>>2],l[r+28>>2]=e,l[r+20>>2]=e,l[r+16>>2]=e+l[r+48>>2],r=a;break r}n=((k=(b=l[e+4>>2])>>>0>>0)<<3)+e|0,b=t-(k?b:0)|0,l[n>>2]=b+l[n>>2],l[(e=(k?12:4)+e|0)>>2]=l[e>>2]-b,f=f-t|0,o=o-k|0,e=n;continue}break}if(l[r+28>>2]=0,l[r+16>>2]=0,l[r+20>>2]=0,l[r>>2]=32|l[r>>2],r=0,(0|o)==2)break r;r=a-l[e+4>>2]|0}return re=i+32|0,0|r},function(r,e,a,i){r|=0,e|=0,a|=0,i|=0;var n=0;return re=n=re-16|0,r=eZ(0|z(l[r+60>>2],0|e,0|a,255&i,n+8|0)),re=n+16|0,ra=r?-1:l[n+12>>2],(r?-1:l[n+8>>2])|0},function(r){return 0},function(r,e,a,i){return ra=0,0},function(r,e,a){r|=0,e|=0,a|=0;var i=0,n=0,f=0,t=0,b=0;return n=l[r+84>>2],f=l[n>>2],i=l[n+4>>2],b=l[r+28>>2],t=l[r+20>>2]-b|0,(t=i>>>0>>0?i:t)&&(ru(f,b,t),f=t+l[n>>2]|0,l[n>>2]=f,i=l[n+4>>2]-t|0,l[n+4>>2]=i),(i=a>>>0>i>>>0?i:a)&&(ru(f,e,i),f=i+l[n>>2]|0,l[n>>2]=f,l[n+4>>2]=l[n+4>>2]-i),s[0|f]=0,e=l[r+44>>2],l[r+28>>2]=e,l[r+20>>2]=e,0|a},eS]).set=function(r,e){this[r]=e},a.get=function(r){return this[r]},a);function eU(){return b.byteLength/65536|0}return{E:function(){for(var r=0,e=0,a=0;a=(e=r<<4)+5888|0,l[e+5892>>2]=a,l[e+5896>>2]=a,(0|(r=r+1|0))!=64;);rd(48),l[1736]=16,l[1737]=0,rn(),l[1737]=l[1748],l[1748]=6944,l[1749]=194,l[1750]=0,rw(),l[1750]=l[1748],l[1748]=6996},F:function(r){r|=0;var e=0,a=0,i=0,n=0,f=0;re=a=re-96|0,l[a>>2]=r,re=i=re-16|0,l[i+12>>2]=a,re=r=re-144|0,r=ru(r,5440,144),e=f=a+16|0,l[r+44>>2]=e,l[r+20>>2]=e,n=(n=-2-e|0)>>>0>=2147483647?2147483647:n,l[r+48>>2]=n,e=e+n|0,l[r+28>>2]=e,l[r+16>>2]=e,rG(r,2201,a,0,0),n&&(s[(e=l[r+20>>2])-((0|e)==l[r+16>>2])|0]=0),re=r+144|0,re=i+16|0,r=f;r:{if(3&r)for(;;){if(!d[0|r])break r;if(!(3&(r=r+1|0)))break}for(;e=r,r=r+4|0,!((-1^(i=l[e>>2]))&i-16843009&-2139062144););for(;e=(r=e)+1|0,d[0|r];);}return r=(e=rb(r=(r-f|0)+1|0))?ru(e,f,r):0,re=a+96|0,0|r},G:function(){var r=0;if(r=l[1748])for(;eY[l[r>>2]](),r=l[r+4>>2];);},H:rb,I:eY,J:rE,K:function(r,e,a,i,n){return e|=0,a|=0,i|=0,n|=0,0|eY[0|(r|=0)](e,a,i,n)}}}(r)}(r)}Object.assign(u,n),n=null,u.wasmBinary&&(l=u.wasmBinary),u.noExitRuntime;var c=Error;l=[];var u,s,A,l,d,h=!1;function v(r,e,a){a=e+a;for(var i=\"\";!(e>=a);){var n=r[e++];if(!n)break;if(128&n){var f=63&r[e++];if(192==(224&n))i+=String.fromCharCode((31&n)<<6|f);else{var t=63&r[e++];65536>(n=224==(240&n)?(15&n)<<12|f<<6|t:(7&n)<<18|f<<12|t<<6|63&r[e++])?i+=String.fromCharCode(n):(n-=65536,i+=String.fromCharCode(55296|n>>10,56320|1023&n))}}else i+=String.fromCharCode(n)}return i}function p(){var r=d.buffer;u.HEAP8=N=new Int8Array(r),u.HEAP16=y=new Int16Array(r),u.HEAP32=G=new Int32Array(r),u.HEAPU8=w=new Uint8Array(r),u.HEAPU16=E=new Uint16Array(r),u.HEAPU32=R=new Uint32Array(r),u.HEAPF32=g=new Float32Array(r),u.HEAPF64=Z=new Float64Array(r)}var m=u.INITIAL_MEMORY||16777216;65536<=m||O(\"INITIAL_MEMORY should be larger than STACK_SIZE, was \"+m+\"! (STACK_SIZE=65536)\"),d=u.wasmMemory?u.wasmMemory:new function(){this.buffer=new ArrayBuffer(m/65536*65536)},p(),m=d.buffer.byteLength;var N,w,y,E,G,R,g,Z,W,V=[],B=[],T=[],I=0,X=null;function O(r){throw u.onAbort&&u.onAbort(r),b(r=\"Aborted(\"+r+\")\"),h=!0,A(r=new c(r+\". Build with -sASSERTIONS for more info.\")),r}function L(r){return r.startsWith(\"data:application/octet-stream;base64,\")}if(!L(a=\"yoga-asm.wasm\")){var _=a;a=u.locateFile?u.locateFile(_,f):f+_}function F(r){for(;0=e?\"_\"+r:r}function S(r,e){return r=C(r),function(){return e.apply(this,arguments)}}var P=[{},{value:void 0},{value:null},{value:!0},{value:!1}],Y=[];function U(r){var e=Error,a=S(r,function(e){this.name=r,this.message=e,void 0!==(e=Error(e).stack)&&(this.stack=this.toString()+\"\\n\"+e.replace(/^Error(:[^\\n]*)?\\n/,\"\"))});return a.prototype=Object.create(e.prototype),a.prototype.constructor=a,a.prototype.toString=function(){return void 0===this.message?this.name:this.name+\": \"+this.message},a}var M=void 0;function H(r){throw new M(r)}var Q=r=>(r||H(\"Cannot use deleted val. handle = \"+r),P[r].value),z=r=>{switch(r){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var e=Y.length?Y.pop():P.length;return P[e]={fa:1,value:r},e}},j=void 0,D=void 0;function x(r){for(var e=\"\";w[r];)e+=D[w[r++]];return e}var J=[];function K(){for(;J.length;){var r=J.pop();r.L.Z=!1,r.delete()}}var q=void 0,$={};function rr(r,e){for(void 0===e&&H(\"ptr should not be undefined\");r.P;)e=r.aa(e),r=r.P;return e}var re={};function ra(r){var e=x(r=rq(r));return r0(r),e}function ri(r,e){var a=re[r];return void 0===a&&H(e+\" has unknown type \"+ra(r)),a}function rn(){}var rf=!1;function rt(r){--r.count.value,0===r.count.value&&(r.S?r.T.V(r.S):r.O.M.V(r.N))}var rb={},ro=void 0;function rk(r){throw new ro(r)}function rc(r,e){return e.O&&e.N||rk(\"makeClassHandle requires ptr and ptrType\"),!!e.T!=!!e.S&&rk(\"Both smartPtrType and smartPtr must be specified\"),e.count={value:1},ru(Object.create(r,{L:{value:e}}))}function ru(r){return\"undefined\"==typeof FinalizationRegistry?(ru=r=>r,r):(rf=new FinalizationRegistry(r=>{rt(r.L)}),ru=r=>{var e=r.L;return e.S&&rf.register(r,{L:e},r),r},rn=r=>{rf.unregister(r)},ru(r))}var rs={};function rA(r){for(;r.length;){var e=r.pop();r.pop()(e)}}function rl(r){return this.fromWireType(G[r>>2])}var rd={},rh={};function rv(r,e,a){function i(e){(e=a(e)).length!==r.length&&rk(\"Mismatched type converter count\");for(var i=0;i{re.hasOwnProperty(r)?n[e]=re[r]:(f.push(r),rd.hasOwnProperty(r)||(rd[r]=[]),rd[r].push(()=>{n[e]=re[r],++t===f.length&&i(n)}))}),0===f.length&&i(n)}function rp(r){switch(r){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw TypeError(\"Unknown type size: \"+r)}}function rm(r,e,a={}){if(!(\"argPackAdvance\"in e))throw TypeError(\"registerType registeredInstance requires argPackAdvance\");var i=e.name;if(r||H('type \"'+i+'\" must have a positive integer typeid pointer'),re.hasOwnProperty(r)){if(a.ta)return;H(\"Cannot register type '\"+i+\"' twice\")}re[r]=e,delete rh[r],rd.hasOwnProperty(r)&&(e=rd[r],delete rd[r],e.forEach(r=>r()))}function rN(r){H(r.L.O.M.name+\" instance already deleted\")}function rw(){}function ry(r,e,a){if(void 0===r[e].R){var i=r[e];r[e]=function(){return r[e].R.hasOwnProperty(arguments.length)||H(\"Function '\"+a+\"' called with an invalid number of arguments (\"+arguments.length+\") - expects one of (\"+r[e].R+\")!\"),r[e].R[arguments.length].apply(this,arguments)},r[e].R=[],r[e].R[i.Y]=i}}function rE(r,e,a,i,n,f,t,b){this.name=r,this.constructor=e,this.W=a,this.V=i,this.P=n,this.oa=f,this.aa=t,this.ma=b,this.ia=[]}function rG(r,e,a){for(;e!==a;)e.aa||H(\"Expected null or instance of \"+a.name+\", got an instance of \"+e.name),r=e.aa(r),e=e.P;return r}function rR(r,e){return null===e?(this.da&&H(\"null is not a valid \"+this.name),0):(e.L||H('Cannot pass \"'+rL(e)+'\" as a '+this.name),e.L.N||H(\"Cannot pass deleted object as a pointer of type \"+this.name),rG(e.L.N,e.L.O.M,this.M))}function rg(r,e){if(null===e){if(this.da&&H(\"null is not a valid \"+this.name),this.ca){var a=this.ea();return null!==r&&r.push(this.V,a),a}return 0}if(e.L||H('Cannot pass \"'+rL(e)+'\" as a '+this.name),e.L.N||H(\"Cannot pass deleted object as a pointer of type \"+this.name),!this.ba&&e.L.O.ba&&H(\"Cannot convert argument of type \"+(e.L.T?e.L.T.name:e.L.O.name)+\" to parameter type \"+this.name),a=rG(e.L.N,e.L.O.M,this.M),this.ca)switch(void 0===e.L.S&&H(\"Passing raw pointer to smart pointer is illegal\"),this.Aa){case 0:e.L.T===this?a=e.L.S:H(\"Cannot convert argument of type \"+(e.L.T?e.L.T.name:e.L.O.name)+\" to parameter type \"+this.name);break;case 1:a=e.L.S;break;case 2:if(e.L.T===this)a=e.L.S;else{var i=e.clone();a=this.wa(a,z(function(){i.delete()})),null!==r&&r.push(this.V,a)}break;default:H(\"Unsupporting sharing policy\")}return a}function rZ(r,e){return null===e?(this.da&&H(\"null is not a valid \"+this.name),0):(e.L||H('Cannot pass \"'+rL(e)+'\" as a '+this.name),e.L.N||H(\"Cannot pass deleted object as a pointer of type \"+this.name),e.L.O.ba&&H(\"Cannot convert argument of type \"+e.L.O.name+\" to parameter type \"+this.name),rG(e.L.N,e.L.O.M,this.M))}function rW(r,e,a,i){this.name=r,this.M=e,this.da=a,this.ba=i,this.ca=!1,this.V=this.wa=this.ea=this.ja=this.Aa=this.va=void 0,void 0!==e.P?this.toWireType=rg:(this.toWireType=i?rR:rZ,this.U=null)}function rV(r,e){var a,i,n=(r=x(r)).includes(\"j\")?(a=r,i=[],function(){if(i.length=0,Object.assign(i,arguments),a.includes(\"j\")){var r=u[\"dynCall_\"+a];r=i&&i.length?r.apply(null,[e].concat(i)):r.call(null,e)}else r=W.get(e).apply(null,i);return r}):W.get(e);return\"function\"!=typeof n&&H(\"unknown function pointer with signature \"+r+\": \"+e),n}var rB=void 0;function rT(r,e){var a=[],i={};throw e.forEach(function r(e){i[e]||re[e]||(rh[e]?rh[e].forEach(r):(a.push(e),i[e]=!0))}),new rB(r+\": \"+a.map(ra).join([\", \"]))}function rI(r,e,a,i,n){var f=e.length;2>f&&H(\"argTypes array size mismatch! Must at least get return value and 'this' types!\");var t=null!==e[1]&&null!==a,b=!1;for(a=1;a>2]);return a}function rO(r){4=e/2);++i){var n=y[r+2*i>>1];if(0==n)break;a+=String.fromCharCode(n)}return a}function rF(r,e,a){if(void 0===a&&(a=2147483647),2>a)return 0;a-=2;var i=e;a=a<2*r.length?a/2:r.length;for(var n=0;n>1]=r.charCodeAt(n),e+=2;return y[e>>1]=0,e-i}function rC(r){return 2*r.length}function rS(r,e){for(var a=0,i=\"\";!(a>=e/4);){var n=G[r+4*a>>2];if(0==n)break;++a,65536<=n?(n-=65536,i+=String.fromCharCode(55296|n>>10,56320|1023&n)):i+=String.fromCharCode(n)}return i}function rP(r,e,a){if(void 0===a&&(a=2147483647),4>a)return 0;var i=e;a=i+a-4;for(var n=0;n=f&&(f=65536+((1023&f)<<10)|1023&r.charCodeAt(++n)),G[e>>2]=f,(e+=4)+4>a)break}return G[e>>2]=0,e-i}function rY(r){for(var e=0,a=0;a=i&&++a,e+=4}return e}var rU={};function rM(r){var e=rU[r];return void 0===e?x(r):e}var rH=[],rQ=[],rz=[null,[],[]];M=u.BindingError=U(\"BindingError\"),u.count_emval_handles=function(){for(var r=0,e=5;erD;++rD)rj[rD]=String.fromCharCode(rD);D=rj,u.getInheritedInstanceCount=function(){return Object.keys($).length},u.getLiveInheritedInstances=function(){var r,e=[];for(r in $)$.hasOwnProperty(r)&&e.push($[r]);return e},u.flushPendingDeletes=K,u.setDelayFunction=function(r){q=r,J.length&&q&&q(K)},ro=u.InternalError=U(\"InternalError\"),rw.prototype.isAliasOf=function(r){if(!(this instanceof rw&&r instanceof rw))return!1;var e=this.L.O.M,a=this.L.N,i=r.L.O.M;for(r=r.L.N;e.P;)a=e.aa(a),e=e.P;for(;i.P;)r=i.aa(r),i=i.P;return e===i&&a===r},rw.prototype.clone=function(){if(this.L.N||rN(this),this.L.$)return this.L.count.value+=1,this;var r=ru,e=Object,a=e.create,i=Object.getPrototypeOf(this),n=this.L;return r=r(a.call(e,i,{L:{value:{count:n.count,Z:n.Z,$:n.$,N:n.N,O:n.O,S:n.S,T:n.T}}})),r.L.count.value+=1,r.L.Z=!1,r},rw.prototype.delete=function(){this.L.N||rN(this),this.L.Z&&!this.L.$&&H(\"Object already scheduled for deletion\"),rn(this),rt(this.L),this.L.$||(this.L.S=void 0,this.L.N=void 0)},rw.prototype.isDeleted=function(){return!this.L.N},rw.prototype.deleteLater=function(){return this.L.N||rN(this),this.L.Z&&!this.L.$&&H(\"Object already scheduled for deletion\"),J.push(this),1===J.length&&q&&q(K),this.L.Z=!0,this},rW.prototype.pa=function(r){return this.ja&&(r=this.ja(r)),r},rW.prototype.ga=function(r){this.V&&this.V(r)},rW.prototype.argPackAdvance=8,rW.prototype.readValueFromPointer=rl,rW.prototype.deleteObject=function(r){null!==r&&r.delete()},rW.prototype.fromWireType=function(r){function e(){return this.ca?rc(this.M.W,{O:this.va,N:i,T:this,S:r}):rc(this.M.W,{O:this,N:r})}var a,i=this.pa(r);if(!i)return this.ga(r),null;var n=$[rr(this.M,i)];if(void 0!==n)return 0===n.L.count.value?(n.L.N=i,n.L.S=r,n.clone()):(n=n.clone(),this.ga(r),n);if(!(n=rb[n=this.M.oa(i)]))return e.call(this);n=this.ba?n.ka:n.pointerType;var f=function r(e,a,i){return a===i?e:void 0===i.P?null:null===(e=r(e,a,i.P))?null:i.ma(e)}(i,this.M,n.M);return null===f?e.call(this):this.ca?rc(n.M.W,{O:n,N:f,T:this,S:r}):rc(n.M.W,{O:n,N:f})},rB=u.UnboundTypeError=U(\"UnboundTypeError\");var rx=\"function\"==typeof atob?atob:function(r){var e=\"\",a=0;r=r.replace(/[^A-Za-z0-9\\+\\/=]/g,\"\");do{var i=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(r.charAt(a++)),n=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(r.charAt(a++)),f=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(r.charAt(a++)),t=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(r.charAt(a++));i=i<<2|n>>4,n=(15&n)<<4|f>>2;var b=(3&f)<<6|t;e+=String.fromCharCode(i),64!==f&&(e+=String.fromCharCode(n)),64!==t&&(e+=String.fromCharCode(b))}while(ar.sa).concat(n.map(r=>r.ya)),r=>{var f={};return n.forEach((e,a)=>{var i=r[a],t=e.qa,b=e.ra,o=r[a+n.length],k=e.xa,c=e.za;f[e.na]={read:r=>i.fromWireType(t(b,r)),write:(r,e)=>{var a=[];k(c,r,o.toWireType(a,e)),rA(a)}}}),[{name:e.name,fromWireType:function(r){var e,a={};for(e in f)a[e]=f[e].read(r);return i(r),a},toWireType:function(r,e){for(var n in f)if(!(n in e))throw TypeError('Missing field: \"'+n+'\"');var t=a();for(n in f)f[n].write(t,e[n]);return null!==r&&r.push(i,t),t},argPackAdvance:8,readValueFromPointer:rl,U:i}]})},w:function(){},C:function(r,e,a,i,n){var f=rp(a);rm(r,{name:e=x(e),fromWireType:function(r){return!!r},toWireType:function(r,e){return e?i:n},argPackAdvance:8,readValueFromPointer:function(r){if(1===a)var i=N;else if(2===a)i=y;else if(4===a)i=G;else throw TypeError(\"Unknown boolean type size: \"+e);return this.fromWireType(i[r>>f])},U:null})},f:function(r,e,a,i,n,f,t,b,o,k,c,s,A){c=x(c),f=rV(n,f),b&&(b=rV(t,b)),k&&(k=rV(o,k)),A=rV(s,A);var l,d=C(c);l=function(){rT(\"Cannot construct \"+c+\" due to unbound types\",[i])},u.hasOwnProperty(d)?(H(\"Cannot register public name '\"+d+\"' twice\"),ry(u,d,d),u.hasOwnProperty(void 0)&&H(\"Cannot register multiple overloads of a function with the same number of arguments (undefined)!\"),u[d].R[void 0]=l):u[d]=l,rv([r,e,a],i?[i]:[],function(e){if(e=e[0],i)var a,n=e.M,t=n.W;else t=rw.prototype;e=S(d,function(){if(Object.getPrototypeOf(this)!==o)throw new M(\"Use 'new' to construct \"+c);if(void 0===s.X)throw new M(c+\" has no accessible constructor\");var r=s.X[arguments.length];if(void 0===r)throw new M(\"Tried to invoke ctor of \"+c+\" with invalid number of parameters (\"+arguments.length+\") - expected (\"+Object.keys(s.X).toString()+\") parameters instead!\");return r.apply(this,arguments)});var o=Object.create(t,{constructor:{value:e}});e.prototype=o;var s=new rE(c,e,o,A,n,f,b,k);n=new rW(c,s,!0,!1),t=new rW(c+\"*\",s,!1,!1);var l=new rW(c+\" const*\",s,!1,!0);return rb[r]={pointerType:t,ka:l},a=e,u.hasOwnProperty(d)||rk(\"Replacing nonexistant public symbol\"),u[d]=a,u[d].Y=void 0,[n,t,l]})},d:function(r,e,a,i,n,f,t){var b=rX(a,i);e=x(e),f=rV(n,f),rv([],[r],function(r){function i(){rT(\"Cannot call \"+n+\" due to unbound types\",b)}var n=(r=r[0]).name+\".\"+e;e.startsWith(\"@@\")&&(e=Symbol[e.substring(2)]);var o=r.M.constructor;return void 0===o[e]?(i.Y=a-1,o[e]=i):(ry(o,e,n),o[e].R[a-1]=i),rv([],b,function(r){return r=rI(n,[r[0],null].concat(r.slice(1)),null,f,t),void 0===o[e].R?(r.Y=a-1,o[e]=r):o[e].R[a-1]=r,[]}),[]})},p:function(r,e,a,i,n,f){0{rT(\"Cannot construct \"+r.name+\" due to unbound types\",t)},rv([],t,function(i){return i.splice(1,0,null),r.M.X[e-1]=rI(a,i,null,n,f),[]}),[]})},b:function(r,e,a,i,n,f,t,b){var o=rX(a,i);e=x(e),f=rV(n,f),rv([],[r],function(r){function i(){rT(\"Cannot call \"+n+\" due to unbound types\",o)}var n=(r=r[0]).name+\".\"+e;e.startsWith(\"@@\")&&(e=Symbol[e.substring(2)]),b&&r.M.ia.push(e);var k=r.M.W,c=k[e];return void 0===c||void 0===c.R&&c.className!==r.name&&c.Y===a-2?(i.Y=a-2,i.className=r.name,k[e]=i):(ry(k,e,n),k[e].R[a-2]=i),rv([],o,function(i){return i=rI(n,i,r,f,t),void 0===k[e].R?(i.Y=a-2,k[e]=i):k[e].R[a-2]=i,[]}),[]})},B:function(r,e){rm(r,{name:e=x(e),fromWireType:function(r){var e=Q(r);return rO(r),e},toWireType:function(r,e){return z(e)},argPackAdvance:8,readValueFromPointer:rl,U:null})},n:function(r,e,a){a=rp(a),rm(r,{name:e=x(e),fromWireType:function(r){return r},toWireType:function(r,e){return e},argPackAdvance:8,readValueFromPointer:function(r,e){switch(e){case 2:return function(r){return this.fromWireType(g[r>>2])};case 3:return function(r){return this.fromWireType(Z[r>>3])};default:throw TypeError(\"Unknown float type: \"+r)}}(e,a),U:null})},e:function(r,e,a,i,n){e=x(e),-1===n&&(n=4294967295),n=rp(a);var f=r=>r;if(0===i){var t=32-8*a;f=r=>r<>>t}a=e.includes(\"unsigned\")?function(r,e){return e>>>0}:function(r,e){return e},rm(r,{name:e,fromWireType:f,toWireType:a,argPackAdvance:8,readValueFromPointer:function(r,e,a){switch(e){case 0:return a?function(r){return N[r]}:function(r){return w[r]};case 1:return a?function(r){return y[r>>1]}:function(r){return E[r>>1]};case 2:return a?function(r){return G[r>>2]}:function(r){return R[r>>2]};default:throw TypeError(\"Unknown integer type: \"+r)}}(e,n,0!==i),U:null})},c:function(r,e,a){function i(r){r>>=2;var e=R;return new n(e.buffer,e[r+1],e[r])}var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][e];rm(r,{name:a=x(a),fromWireType:i,argPackAdvance:8,readValueFromPointer:i},{ta:!0})},o:function(r,e){var a=\"std::string\"===(e=x(e));rm(r,{name:e,fromWireType:function(r){var e=R[r>>2],i=r+4;if(a)for(var n=i,f=0;f<=e;++f){var t=i+f;if(f==e||0==w[t]){if(n=n?v(w,n,t-n):\"\",void 0===b)var b=n;else b+=\"\\x00\"+n;n=t+1}}else{for(f=0,b=Array(e);f=t?f++:2047>=t?f+=2:55296<=t&&57343>=t?(f+=4,++i):f+=3}i=f}else i=e.length;if(t=(f=r$(4+i+1))+4,R[f>>2]=i,a&&n){if(n=t,t=i+1,i=w,0=o&&(o=65536+((1023&o)<<10)|1023&e.charCodeAt(++b)),127>=o){if(n>=t)break;i[n++]=o}else{if(2047>=o){if(n+1>=t)break;i[n++]=192|o>>6}else{if(65535>=o){if(n+2>=t)break;i[n++]=224|o>>12}else{if(n+3>=t)break;i[n++]=240|o>>18,i[n++]=128|o>>12&63}i[n++]=128|o>>6&63}i[n++]=128|63&o}}i[n]=0}}else if(n)for(n=0;nE,b=1;else 4===e&&(i=rS,n=rP,f=rY,t=()=>R,b=2);rm(r,{name:a,fromWireType:function(r){for(var a,n=R[r>>2],f=t(),o=r+4,k=0;k<=n;++k){var c=r+4+k*e;(k==n||0==f[c>>b])&&(o=i(o,c-o),void 0===a?a=o:a+=\"\\x00\"+o,o=c+e)}return r0(r),a},toWireType:function(r,i){\"string\"!=typeof i&&H(\"Cannot pass non-string to C++ string type \"+a);var t=f(i),o=r$(4+t+e);return R[o>>2]=t>>b,n(i,o+4,t+e),null!==r&&r.push(r0,o),o},argPackAdvance:8,readValueFromPointer:rl,U:function(r){r0(r)}})},l:function(r,e,a,i,n,f){rs[r]={name:x(e),ea:rV(a,i),V:rV(n,f),ha:[]}},i:function(r,e,a,i,n,f,t,b,o,k){rs[r].ha.push({na:x(e),sa:a,qa:rV(i,n),ra:f,ya:t,xa:rV(b,o),za:k})},D:function(r,e){rm(r,{ua:!0,name:e=x(e),argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},t:function(r,e,a,i,n){r=rH[r],e=Q(e),a=rM(a);var f=[];return R[i>>2]=z(f),r(e,a,f,n)},u:function(r,e,a,i){r=rH[r],r(e=Q(e),a=rM(a),null,i)},h:rO,m:function(r,e){var a,i,n=function(r,e){for(var a=Array(r),i=0;i>2],\"parameter \"+i);return a}(r,e),f=n[0],t=rQ[e=f.name+\"_$\"+n.slice(1).map(function(r){return r.name}).join(\"_\")+\"$\"];if(void 0!==t)return t;var b=Array(r-1);return a=(e,a,i,t)=>{for(var o=0,k=0;k>>=0))return!1;for(var a=1;4>=a;a*=2){var i=e*(1+.2/a);i=Math.min(i,r+100663296);var n=Math,f=n.min;i=Math.max(r,i),i+=(65536-i%65536)%65536;r:{var t=d.buffer;try{d.grow(f.call(n,2147483648,i)-t.byteLength+65535>>>16),p();var b=1;break r}catch(r){}b=void 0}if(b)return!0}return!1},A:function(){return 52},v:function(){return 70},z:function(r,e,a,i){for(var n=0,f=0;f>2],k=R[e+4>>2];e+=8;for(var c=0;c>2]=n,0},a:d},rK=function(){function r(r){u.asm=r.exports,W=u.asm.I,B.unshift(u.asm.E),I--,u.monitorRunDependencies&&u.monitorRunDependencies(I),0==I&&X&&(r=X,X=null,r())}var e={a:rJ};if(I++,u.monitorRunDependencies&&u.monitorRunDependencies(I),u.instantiateWasm)try{return u.instantiateWasm(e,r)}catch(r){b(\"Module.instantiateWasm callback failed with error: \"+r),A(r)}return e=function(r){var e=a;try{try{if(e==a&&l)new Uint8Array(l);else{if(L(e)){try{var i=rx(e.slice(37)),n=new Uint8Array(i.length);for(e=0;e\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * @typedef {import('reading-time').Options['wordBound']} WordBoundFunction\n */\n\n/**\n * @param {number} number\n * @param {number[][]} arrayOfRanges\n */\nfunction codeIsInRanges(number, arrayOfRanges) {\n return arrayOfRanges.some(([lowerBound, upperBound]) =>\n (lowerBound <= number) && (number <= upperBound)\n )\n}\n\n/**\n * @type {WordBoundFunction}\n */\nfunction isCJK(c) {\n if ('string' !== typeof c) {\n return false\n }\n const charCode = c.charCodeAt(0)\n // Help wanted!\n // This should be good for most cases, but if you find it unsatisfactory\n // (e.g. some other language where each character should be standalone words),\n // contributions welcome!\n return codeIsInRanges(\n charCode,\n [\n // Hiragana (Katakana not included on purpose,\n // context: https://github.com/ngryman/reading-time/pull/35#issuecomment-853364526)\n // If you think Katakana should be included and have solid reasons, improvement is welcomed\n [0x3040, 0x309f],\n // CJK Unified ideographs\n [0x4e00, 0x9fff],\n // Hangul\n [0xac00, 0xd7a3],\n // CJK extensions\n [0x20000, 0x2ebe0]\n ]\n )\n}\n\n/**\n * @type {WordBoundFunction}\n */\nfunction isAnsiWordBound(c) {\n return ' \\n\\r\\t'.includes(c)\n}\n\n/**\n * @type {WordBoundFunction}\n */\nfunction isPunctuation(c) {\n if ('string' !== typeof c) {\n return false\n }\n const charCode = c.charCodeAt(0)\n return codeIsInRanges(\n charCode,\n [\n [0x21, 0x2f],\n [0x3a, 0x40],\n [0x5b, 0x60],\n [0x7b, 0x7e],\n // CJK Symbols and Punctuation\n [0x3000, 0x303f],\n // Full-width ASCII punctuation variants\n [0xff00, 0xffef]\n ]\n )\n}\n\n/**\n * @type {import('reading-time').default}\n */\nfunction readingTime(text, options = {}) {\n let words = 0, start = 0, end = text.length - 1\n\n // use provided value if available\n const wordsPerMinute = options.wordsPerMinute || 200\n\n // use provided function if available\n const isWordBound = options.wordBound || isAnsiWordBound\n\n // fetch bounds\n while (isWordBound(text[start])) start++\n while (isWordBound(text[end])) end--\n\n // Add a trailing word bound to make handling edges more convenient\n const normalizedText = `${text}\\n`\n\n // calculate the number of words\n for (let i = start; i <= end; i++) {\n // A CJK character is a always word;\n // A non-word bound followed by a word bound / CJK is the end of a word.\n if (\n isCJK(normalizedText[i]) ||\n (!isWordBound(normalizedText[i]) &&\n (isWordBound(normalizedText[i + 1]) || isCJK(normalizedText[i + 1]))\n )\n ) {\n words++\n }\n // In case of CJK followed by punctuations, those characters have to be eaten as well\n if (isCJK(normalizedText[i])) {\n while (\n i <= end &&\n (isPunctuation(normalizedText[i + 1]) || isWordBound(normalizedText[i + 1]))\n ) {\n i++\n }\n }\n }\n\n // reading time stats\n const minutes = words / wordsPerMinute\n // Math.round used to resolve floating point funkyness\n // http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html\n const time = Math.round(minutes * 60 * 1000)\n const displayed = Math.ceil(minutes.toFixed(2))\n\n return {\n text: displayed + ' min read',\n minutes: minutes,\n time: time,\n words: words\n }\n}\n\n/**\n * Export\n */\nmodule.exports = readingTime\n","/*!\n * reading-time\n * Copyright (c) Nicolas Gryman \n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n */\nconst readingTime = require('./reading-time')\nconst Transform = require('stream').Transform\nconst util = require('util')\n\n/**\n * @typedef {import('reading-time').Options} Options\n * @typedef {import('reading-time').Options['wordBound']} WordBoundFunction\n * @typedef {import('reading-time').readingTimeStream} ReadingTimeStream\n * @typedef {import('stream').TransformCallback} TransformCallback\n */\n\n/**\n * @param {Options} options\n * @returns {ReadingTimeStream}\n */\nfunction ReadingTimeStream(options) {\n // allow use without new\n if (!(this instanceof ReadingTimeStream)) {\n return new ReadingTimeStream(options)\n }\n\n Transform.call(this, { objectMode: true })\n\n this.options = options || {}\n this.stats = {\n minutes: 0,\n time: 0,\n words: 0\n }\n}\nutil.inherits(ReadingTimeStream, Transform)\n\n/**\n * @param {Buffer} chunk\n * @param {BufferEncoding} encoding\n * @param {TransformCallback} callback\n */\nReadingTimeStream.prototype._transform = function(chunk, encoding, callback) {\n const stats = readingTime(chunk.toString(encoding), this.options)\n\n this.stats.minutes += stats.minutes\n this.stats.time += stats.time\n this.stats.words += stats.words\n\n callback()\n}\n\n/**\n * @param {TransformCallback} callback\n */\nReadingTimeStream.prototype._flush = function(callback) {\n this.stats.text = Math.ceil(this.stats.minutes.toFixed(2)) + ' min read'\n\n this.push(this.stats)\n callback()\n}\n\n/**\n * Export\n */\nmodule.exports = ReadingTimeStream\n","module.exports.default = module.exports = require('./lib/reading-time')\nmodule.exports.readingTimeStream = require('./lib/stream')\n","// The following break classes are handled by the pair table\nexport const OP = 0; // Opening punctuation\nexport const CL = 1; // Closing punctuation\nexport const CP = 2; // Closing parenthesis\nexport const QU = 3; // Ambiguous quotation\nexport const GL = 4; // Glue\nexport const NS = 5; // Non-starters\nexport const EX = 6; // Exclamation/Interrogation\nexport const SY = 7; // Symbols allowing break after\nexport const IS = 8; // Infix separator\nexport const PR = 9; // Prefix\nexport const PO = 10; // Postfix\nexport const NU = 11; // Numeric\nexport const AL = 12; // Alphabetic\nexport const HL = 13; // Hebrew Letter\nexport const ID = 14; // Ideographic\nexport const IN = 15; // Inseparable characters\nexport const HY = 16; // Hyphen\nexport const BA = 17; // Break after\nexport const BB = 18; // Break before\nexport const B2 = 19; // Break on either side (but not pair)\nexport const ZW = 20; // Zero-width space\nexport const CM = 21; // Combining marks\nexport const WJ = 22; // Word joiner\nexport const H2 = 23; // Hangul LV\nexport const H3 = 24; // Hangul LVT\nexport const JL = 25; // Hangul L Jamo\nexport const JV = 26; // Hangul V Jamo\nexport const JT = 27; // Hangul T Jamo\nexport const RI = 28; // Regional Indicator\nexport const EB = 29; // Emoji Base\nexport const EM = 30; // Emoji Modifier\nexport const ZWJ = 31; // Zero Width Joiner\nexport const CB = 32; // Contingent break\n\n// The following break classes are not handled by the pair table\nexport const AI = 33; // Ambiguous (Alphabetic or Ideograph)\nexport const BK = 34; // Break (mandatory)\nexport const CJ = 35; // Conditional Japanese Starter\nexport const CR = 36; // Carriage return\nexport const LF = 37; // Line feed\nexport const NL = 38; // Next line\nexport const SA = 39; // South-East Asian\nexport const SG = 40; // Surrogates\nexport const SP = 41; // Space\nexport const XX = 42; // Unknown\n","export const DI_BRK = 0; // Direct break opportunity\nexport const IN_BRK = 1; // Indirect break opportunity\nexport const CI_BRK = 2; // Indirect break opportunity for combining marks\nexport const CP_BRK = 3; // Prohibited break for combining marks\nexport const PR_BRK = 4; // Prohibited break\n\n// Based on example pair table from https://www.unicode.org/reports/tr14/tr14-37.html#Table2\n// - ZWJ special processing for LB8a of Revision 41\n// - CB manually added as per Rule LB20\n// - CL, CP, NS, SY, IS, PR, PO, HY, BA, B2 and RI manually adjusted as per LB22 of Revision 45\nexport const pairTable = [\n //OP , CL , CP , QU , GL , NS , EX , SY , IS , PR , PO , NU , AL , HL , ID , IN , HY , BA , BB , B2 , ZW , CM , WJ , H2 , H3 , JL , JV , JT , RI , EB , EM , ZWJ , CB\n [PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, CP_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK], // OP\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // CL\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // CP\n [PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, CI_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK], // QU\n [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, CI_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK], // GL\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // NS\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // EX\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK, IN_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // SY\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // IS\n [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK], // PR\n [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // PO\n [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // NU\n [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // AL\n [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // HL\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // ID\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // IN\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, DI_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // HY\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, DI_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // BA\n [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, CI_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK], // BB\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, PR_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // B2\n [DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK], // ZW\n [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // CM\n [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, CI_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK], // WJ\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // H2\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // H3\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // JL\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // JV\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // JT\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // RI\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, DI_BRK], // EB\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // EM\n [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // ZWJ\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, DI_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK] // CB\n];","import UnicodeTrie from 'unicode-trie';\nimport fs from 'fs';\nimport base64 from 'base64-js';\nimport { BK, CR, LF, NL, SG, WJ, SP, ZWJ, BA, HY, NS, AI, AL, CJ, HL, RI, SA, XX } from './classes';\nimport { DI_BRK, IN_BRK, CI_BRK, CP_BRK, PR_BRK, pairTable } from './pairs';\n\nconst data = base64.toByteArray(fs.readFileSync(__dirname + '/classes.trie', 'base64'));\nconst classTrie = new UnicodeTrie(data);\n\nconst mapClass = function (c) {\n switch (c) {\n case AI:\n return AL;\n\n case SA:\n case SG:\n case XX:\n return AL;\n\n case CJ:\n return NS;\n\n default:\n return c;\n }\n};\n\nconst mapFirst = function (c) {\n switch (c) {\n case LF:\n case NL:\n return BK;\n\n case SP:\n return WJ;\n\n default:\n return c;\n }\n};\n\nclass Break {\n constructor(position, required = false) {\n this.position = position;\n this.required = required;\n }\n}\n\nclass LineBreaker {\n constructor(string) {\n this.string = string;\n this.pos = 0;\n this.lastPos = 0;\n this.curClass = null;\n this.nextClass = null;\n this.LB8a = false;\n this.LB21a = false;\n this.LB30a = 0;\n }\n\n nextCodePoint() {\n const code = this.string.charCodeAt(this.pos++);\n const next = this.string.charCodeAt(this.pos);\n\n // If a surrogate pair\n if ((0xd800 <= code && code <= 0xdbff) && (0xdc00 <= next && next <= 0xdfff)) {\n this.pos++;\n return ((code - 0xd800) * 0x400) + (next - 0xdc00) + 0x10000;\n }\n\n return code;\n }\n\n nextCharClass() {\n return mapClass(classTrie.get(this.nextCodePoint()));\n }\n\n getSimpleBreak() {\n // handle classes not handled by the pair table\n switch (this.nextClass) {\n case SP:\n return false;\n\n case BK:\n case LF:\n case NL:\n this.curClass = BK;\n return false;\n\n case CR:\n this.curClass = CR;\n return false;\n }\n\n return null;\n }\n\n getPairTableBreak(lastClass) {\n // if not handled already, use the pair table\n let shouldBreak = false;\n switch (pairTable[this.curClass][this.nextClass]) {\n case DI_BRK: // Direct break\n shouldBreak = true;\n break;\n\n case IN_BRK: // possible indirect break\n shouldBreak = lastClass === SP;\n break;\n\n case CI_BRK:\n shouldBreak = lastClass === SP;\n if (!shouldBreak) {\n shouldBreak = false;\n return shouldBreak;\n }\n break;\n\n case CP_BRK: // prohibited for combining marks\n if (lastClass !== SP) {\n return shouldBreak;\n }\n break;\n\n case PR_BRK:\n break;\n }\n\n if (this.LB8a) {\n shouldBreak = false;\n }\n\n // Rule LB21a\n if (this.LB21a && (this.curClass === HY || this.curClass === BA)) {\n shouldBreak = false;\n this.LB21a = false;\n } else {\n this.LB21a = (this.curClass === HL);\n }\n\n // Rule LB30a\n if (this.curClass === RI) {\n this.LB30a++;\n if (this.LB30a == 2 && (this.nextClass === RI)) {\n shouldBreak = true;\n this.LB30a = 0;\n }\n } else {\n this.LB30a = 0;\n }\n\n this.curClass = this.nextClass;\n\n return shouldBreak;\n }\n\n nextBreak() {\n // get the first char if we're at the beginning of the string\n if (this.curClass == null) {\n let firstClass = this.nextCharClass();\n this.curClass = mapFirst(firstClass);\n this.nextClass = firstClass;\n this.LB8a = (firstClass === ZWJ);\n this.LB30a = 0;\n }\n\n while (this.pos < this.string.length) {\n this.lastPos = this.pos;\n const lastClass = this.nextClass;\n this.nextClass = this.nextCharClass();\n\n // explicit newline\n if ((this.curClass === BK) || ((this.curClass === CR) && (this.nextClass !== LF))) {\n this.curClass = mapFirst(mapClass(this.nextClass));\n return new Break(this.lastPos, true);\n }\n\n let shouldBreak = this.getSimpleBreak();\n\n if (shouldBreak === null) {\n shouldBreak = this.getPairTableBreak(lastClass);\n }\n\n // Rule LB8a\n this.LB8a = (this.nextClass === ZWJ);\n\n if (shouldBreak) {\n return new Break(this.lastPos);\n }\n }\n\n if (this.lastPos < this.string.length) {\n this.lastPos = this.string.length;\n return new Break(this.string.length);\n }\n\n return null;\n }\n}\n\nmodule.exports = LineBreaker;\n","/**\n * This module expands the CSS properties to get rid of shorthands, as well as\n * cleaning up some properties.\n */\n\nimport { getPropertyName, getStylesForProperty } from 'css-to-react-native'\nimport { parseElementStyle } from 'css-background-parser'\nimport { parse as parseBoxShadow } from 'css-box-shadow'\nimport cssColorParse from 'parse-css-color'\n\nimport CssDimension from '../vendor/parse-css-dimension/index.js'\nimport parseTransformOrigin, {\n ParsedTransformOrigin,\n} from '../transform-origin.js'\nimport { isString, lengthToNumber, v, splitEffects } from '../utils.js'\nimport { MaskProperty, parseMask } from '../parser/mask.js'\nimport { FontWeight, FontStyle } from '../font.js'\n\n// https://react-cn.github.io/react/tips/style-props-value-px.html\nconst optOutPx = new Set([\n 'flex',\n 'flexGrow',\n 'flexShrink',\n 'flexBasis',\n 'fontWeight',\n 'lineHeight',\n 'opacity',\n 'scale',\n 'scaleX',\n 'scaleY',\n])\nconst keepNumber = new Set(['lineHeight'])\n\nfunction handleFallbackColor(\n prop: string,\n parsed: Record,\n rawInput: string,\n currentColor: string\n) {\n if (\n prop === 'textDecoration' &&\n !rawInput.includes(parsed.textDecorationColor)\n ) {\n parsed.textDecorationColor = currentColor\n }\n return parsed\n}\n\nfunction purify(name: string, value?: string | number) {\n const num = Number(value)\n if (isNaN(num)) return value\n if (!optOutPx.has(name)) return num + 'px'\n if (keepNumber.has(name)) return num\n return String(value)\n}\n\nfunction handleSpecialCase(\n name: string,\n value: string | number,\n currentColor: string\n) {\n if (name === 'lineHeight') {\n return { lineHeight: purify(name, value) }\n }\n\n if (name === 'fontFamily') {\n return {\n fontFamily: (value as string).split(',').map((_v) => {\n return _v\n .trim()\n .replace(/(^['\"])|(['\"]$)/g, '')\n .toLocaleLowerCase()\n }),\n }\n }\n\n if (name === 'borderRadius') {\n if (typeof value !== 'string' || !value.includes('/')) {\n // Regular border radius\n return\n }\n // Support the `border-radius: 10px / 20px` syntax.\n const [horizontal, vertical] = value.split('/')\n const vh = getStylesForProperty(name, horizontal, true)\n const vv = getStylesForProperty(name, vertical, true)\n for (const k in vh) {\n vv[k] = purify(name, vh[k]) + ' ' + purify(name, vv[k])\n }\n return vv\n }\n\n if (/^border(Top|Right|Bottom|Left)?$/.test(name)) {\n const resolved = getStylesForProperty('border', value, true)\n\n // Border width should be default to 3px (medium) instead of 1px:\n // https://w3c.github.io/csswg-drafts/css-backgrounds-3/#border-width\n // Although on Chrome it will be displayed as 1.5px but let's stick to the\n // spec.\n if (resolved.borderWidth === 1 && !String(value).includes('1px')) {\n resolved.borderWidth = 3\n }\n\n // A trick to fix `border: 1px solid` to not use `black` but the inherited\n // `color` value. This is necessary because css-to-react-native automatically\n // fallbacks to default color values.\n if (resolved.borderColor === 'black' && !String(value).includes('black')) {\n resolved.borderColor = currentColor\n }\n\n const purified = {\n Width: purify(name + 'Width', resolved.borderWidth),\n Style: v(\n resolved.borderStyle,\n {\n solid: 'solid',\n dashed: 'dashed',\n },\n 'solid',\n name + 'Style'\n ),\n Color: resolved.borderColor,\n }\n\n const full = {}\n for (const k of name === 'border'\n ? ['Top', 'Right', 'Bottom', 'Left']\n : [name.slice(6)]) {\n for (const p in purified) {\n full['border' + k + p] = purified[p]\n }\n }\n return full\n }\n\n if (name === 'boxShadow') {\n if (!value) {\n throw new Error('Invalid `boxShadow` value: \"' + value + '\".')\n }\n return {\n [name]: typeof value === 'string' ? parseBoxShadow(value) : value,\n }\n }\n\n if (name === 'transform') {\n if (typeof value !== 'string') throw new Error('Invalid `transform` value.')\n // To support percentages in transform (which is not supported in RN), we\n // replace them with random symbols and then replace them back after parsing.\n const symbols = {}\n const replaced = value.replace(/(-?[\\d.]+%)/g, (_, _v) => {\n const symbol = ~~(Math.random() * 1e9)\n symbols[symbol] = _v\n return symbol + 'px'\n })\n const parsed = getStylesForProperty('transform', replaced, true)\n for (const t of parsed.transform) {\n for (const k in t) {\n if (symbols[t[k]]) {\n t[k] = symbols[t[k]]\n }\n }\n }\n return parsed\n }\n\n if (name === 'background') {\n value = value.toString().trim()\n if (\n /^(linear-gradient|radial-gradient|url|repeating-linear-gradient)\\(/.test(\n value\n )\n ) {\n return getStylesForProperty('backgroundImage', value, true)\n }\n return getStylesForProperty('background', value, true)\n }\n\n if (name === 'textShadow') {\n // Handle multiple text shadows if provided.\n value = value.toString().trim()\n const result = {}\n\n const shadows = splitEffects(value)\n\n for (const shadow of shadows) {\n const styles = getStylesForProperty('textShadow', shadow, true)\n for (const k in styles) {\n if (!result[k]) {\n result[k] = [styles[k]]\n } else {\n result[k].push(styles[k])\n }\n }\n }\n\n return result\n }\n\n if (name === 'WebkitTextStroke') {\n value = value.toString().trim()\n const values = value.split(' ')\n if (values.length !== 2) {\n throw new Error('Invalid `WebkitTextStroke` value.')\n }\n\n return {\n WebkitTextStrokeWidth: purify(name, values[0]),\n WebkitTextStrokeColor: purify(name, values[1]),\n }\n }\n\n return\n}\n\nfunction getErrorHint(name: string) {\n if (name === 'transform') {\n return ' Only absolute lengths such as `10px` are supported.'\n }\n return ''\n}\n\nconst RGB_SLASH = /rgb\\((\\d+)\\s+(\\d+)\\s+(\\d+)\\s*\\/\\s*([\\.\\d]+)\\)/\nfunction normalizeColor(value: string | object) {\n if (typeof value === 'string') {\n if (RGB_SLASH.test(value.trim())) {\n // rgb(255 122 127 / .2) -> rgba(255, 122, 127, .2)\n return value.trim().replace(RGB_SLASH, (_, r, g, b, a) => {\n return `rgba(${r}, ${g}, ${b}, ${a})`\n })\n }\n }\n\n // Recursively normalize colors in arrays and objects.\n if (typeof value === 'object' && value !== null) {\n for (const k in value) {\n value[k] = normalizeColor(value[k])\n }\n return value\n }\n\n return value\n}\n\ntype MainStyle = {\n color: string\n fontSize: number\n transformOrigin: ParsedTransformOrigin\n maskImage: MaskProperty[]\n opacity: number\n textTransform: string\n whiteSpace: string\n wordBreak: string\n textAlign: string\n lineHeight: number | string\n letterSpacing: number\n\n fontFamily: string | string[]\n fontWeight: FontWeight\n fontStyle: FontStyle\n\n borderTopWidth: number\n borderLeftWidth: number\n borderRightWidth: number\n borderBottomWidth: number\n\n paddingTop: number\n paddingLeft: number\n paddingRight: number\n paddingBottom: number\n\n flexGrow: number\n flexShrink: number\n\n gap: number\n rowGap: number\n columnGap: number\n\n textShadowOffset: {\n width: number\n height: number\n }[]\n textShadowColor: string[]\n textShadowRadius: number[]\n WebkitTextStrokeWidth: number\n WebkitTextStrokeColor: string\n}\n\ntype OtherStyle = Exclude, keyof MainStyle>\n\nexport type SerializedStyle = Partial\n\nexport default function expand(\n style: Record | undefined,\n inheritedStyle: SerializedStyle\n): SerializedStyle {\n const serializedStyle: SerializedStyle = {}\n\n if (style) {\n const currentColor = getCurrentColor(\n style.color as string,\n inheritedStyle.color\n )\n\n serializedStyle.color = currentColor\n\n for (const prop in style) {\n // Internal properties.\n if (prop.startsWith('_')) {\n serializedStyle[prop] = style[prop]\n continue\n }\n\n if (prop === 'color') {\n continue\n }\n\n const name = getPropertyName(prop)\n const value = preprocess(style[prop], currentColor)\n\n try {\n const resolvedStyle =\n handleSpecialCase(name, value, currentColor) ||\n handleFallbackColor(\n name,\n getStylesForProperty(name, purify(name, value), true),\n value as string,\n currentColor\n )\n\n Object.assign(serializedStyle, resolvedStyle)\n } catch (err) {\n throw new Error(\n err.message +\n // Attach the extra information of the rule itself if it's not included in\n // the error message.\n (err.message.includes(value)\n ? '\\n ' + getErrorHint(name)\n : `\\n in CSS rule \\`${name}: ${value}\\`.${getErrorHint(name)}`)\n )\n }\n }\n }\n\n // Parse background images.\n if (serializedStyle.backgroundImage) {\n const { backgrounds } = parseElementStyle(serializedStyle)\n serializedStyle.backgroundImage = backgrounds\n }\n\n if (serializedStyle.maskImage || serializedStyle['WebkitMaskImage']) {\n serializedStyle.maskImage = parseMask(serializedStyle)\n }\n\n // Calculate the base font size.\n const baseFontSize = calcBaseFontSize(\n serializedStyle.fontSize,\n inheritedStyle.fontSize\n )\n if (typeof serializedStyle.fontSize !== 'undefined') {\n serializedStyle.fontSize = baseFontSize\n }\n\n if (serializedStyle.transformOrigin) {\n serializedStyle.transformOrigin = parseTransformOrigin(\n serializedStyle.transformOrigin as any,\n baseFontSize\n )\n }\n\n for (const prop in serializedStyle) {\n let value = serializedStyle[prop]\n\n // Line height needs to be relative.\n if (prop === 'lineHeight') {\n if (typeof value === 'string' && value !== 'normal') {\n value = serializedStyle[prop] =\n lengthToNumber(\n value,\n baseFontSize,\n baseFontSize,\n inheritedStyle,\n true\n ) / baseFontSize\n }\n } else {\n // Convert em and rem values to px (number).\n if (typeof value === 'string') {\n const len = lengthToNumber(\n value,\n baseFontSize,\n baseFontSize,\n inheritedStyle\n )\n if (typeof len !== 'undefined') serializedStyle[prop] = len\n value = serializedStyle[prop]\n }\n\n if (typeof value === 'string' || typeof value === 'object') {\n const color = normalizeColor(value)\n if (color) {\n serializedStyle[prop] = color as any\n }\n value = serializedStyle[prop]\n }\n }\n\n // Inherit the opacity.\n if (prop === 'opacity' && typeof value === 'number') {\n serializedStyle.opacity = value * inheritedStyle.opacity\n }\n\n if (prop === 'transform') {\n const transforms = value as any as { [type: string]: number | string }[]\n\n for (const transform of transforms) {\n const type = Object.keys(transform)[0]\n const _v = transform[type]\n\n // Convert em, rem, vw, vh values to px (number), but keep % values.\n const len =\n typeof _v === 'string'\n ? lengthToNumber(_v, baseFontSize, baseFontSize, inheritedStyle) ??\n _v\n : _v\n transform[type] = len\n }\n }\n\n if (prop === 'textShadowRadius') {\n const textShadowRadius = value as unknown as Array\n\n serializedStyle.textShadowRadius = textShadowRadius.map((_v) =>\n lengthToNumber(_v, baseFontSize, 0, inheritedStyle, false)\n )\n }\n\n if (prop === 'textShadowOffset') {\n const textShadowOffset = value as unknown as Array<{\n width: number | string\n height: number | string\n }>\n\n serializedStyle.textShadowOffset = textShadowOffset.map(\n ({ height, width }) => ({\n height: lengthToNumber(\n height,\n baseFontSize,\n 0,\n inheritedStyle,\n false\n ),\n width: lengthToNumber(width, baseFontSize, 0, inheritedStyle, false),\n })\n )\n }\n }\n\n return serializedStyle\n}\n\nfunction calcBaseFontSize(\n size: number | string,\n inheritedSize: number\n): number {\n if (typeof size === 'number') return size\n\n try {\n const parsed = new CssDimension(size)\n switch (parsed.unit) {\n case 'em':\n return parsed.value * inheritedSize\n case 'rem':\n return parsed.value * 16\n }\n } catch (err) {\n return inheritedSize\n }\n}\n\n/**\n * @see https://github.com/RazrFalcon/resvg/issues/579\n */\nfunction refineHSL(color: string) {\n if (color.startsWith('hsl')) {\n const t = cssColorParse(color)\n const [h, s, l] = t.values\n\n return `hsl(${[h, `${s}%`, `${l}%`]\n .concat(t.alpha === 1 ? [] : [t.alpha])\n .join(',')})`\n }\n\n return color\n}\n\nfunction getCurrentColor(\n color: string | undefined,\n inheritedColor: string\n): string {\n if (color && color.toLowerCase() !== 'currentcolor') {\n return refineHSL(color)\n }\n\n return refineHSL(inheritedColor)\n}\n\nfunction convertCurrentColorToActualValue(\n value: string,\n currentColor: string\n): string {\n return value.replace(/currentcolor/gi, currentColor)\n}\n\nfunction preprocess(\n value: string | number,\n currentColor: string\n): string | number {\n if (isString(value)) {\n value = convertCurrentColorToActualValue(value, currentColor)\n }\n\n return value\n}\n","import colorName from 'color-name';\nimport hex2Rgb from 'hex-rgb';\n\nconst pattern = /^#([a-f0-9]{3,4}|[a-f0-9]{4}(?:[a-f0-9]{2}){1,2})\\b$/;\nvar hexRe = new RegExp(pattern, 'i');\n\nconst float = '-?\\\\d*(?:\\\\.\\\\d+)';\n\nconst number = `(${float}?)`;\nconst percentage = `(${float}?%)`;\nconst numberOrPercentage = `(${float}?%?)`;\n\nconst pattern$1 = `^\n hsla?\\\\(\n \\\\s*(-?\\\\d*(?:\\\\.\\\\d+)?(?:deg|rad|turn)?)\\\\s*,\n \\\\s*${percentage}\\\\s*,\n \\\\s*${percentage}\\\\s*\n (?:,\\\\s*${numberOrPercentage}\\\\s*)?\n \\\\)\n $\n`.replace(/\\n|\\s/g, '');\n\nvar hsl3Re = new RegExp(pattern$1);\n\nconst pattern$2 = `^\n hsla?\\\\(\n \\\\s*(-?\\\\d*(?:\\\\.\\\\d+)?(?:deg|rad|turn)?)\\\\s*\n \\\\s+${percentage}\n \\\\s+${percentage}\n \\\\s*(?:\\\\s*\\\\/\\\\s*${numberOrPercentage}\\\\s*)?\n \\\\)\n $\n`.replace(/\\n|\\s/g, '');\n\nvar hsl4Re = new RegExp(pattern$2);\n\nconst pattern$3 = `^\n rgba?\\\\(\n \\\\s*${number}\\\\s*,\n \\\\s*${number}\\\\s*,\n \\\\s*${number}\\\\s*\n (?:,\\\\s*${numberOrPercentage}\\\\s*)?\n \\\\)\n $\n`.replace(/\\n|\\s/g, '');\n\nvar rgb3NumberRe = new RegExp(pattern$3);\n\nconst pattern$4 = `^\n rgba?\\\\(\n \\\\s*${percentage}\\\\s*,\n \\\\s*${percentage}\\\\s*,\n \\\\s*${percentage}\\\\s*\n (?:,\\\\s*${numberOrPercentage}\\\\s*)?\n \\\\)\n $\n`.replace(/\\n|\\s/g, '');\n\nvar rgb3PercentageRe = new RegExp(pattern$4);\n\nconst pattern$5 = `^\n rgba?\\\\(\n \\\\s*${number}\n \\\\s+${number}\n \\\\s+${number}\n \\\\s*(?:\\\\s*\\\\/\\\\s*${numberOrPercentage}\\\\s*)?\n \\\\)\n$\n`.replace(/\\n|\\s/g, '');\n\nvar rgb4NumberRe = new RegExp(pattern$5);\n\nconst pattern$6 = `^\n rgba?\\\\(\n \\\\s*${percentage}\n \\\\s+${percentage}\n \\\\s+${percentage}\n \\\\s*(?:\\\\s*\\\\/\\\\s*${numberOrPercentage}\\\\s*)?\n \\\\)\n$\n`.replace(/\\n|\\s/g, '');\n\nvar rgb4PercentageRe = new RegExp(pattern$6);\n\nconst pattern$7 = /^transparent$/;\nvar transparentRe = new RegExp(pattern$7, 'i');\n\nconst clamp = (num, min, max) => Math.min(Math.max(min, num), max);\n\n/* 500 => 255, -10 => 0, 128 => 128 */\nconst parseRGB = (num) => {\n let n = num;\n if (typeof n !== 'number') n = n.endsWith('%') ? (parseFloat(n) * 255) / 100 : parseFloat(n);\n return clamp(Math.round(n), 0, 255);\n};\n\n/* 200 => 100, -100 => 0, 50 => 50 */\nconst parsePercentage = (percentage) => clamp(parseFloat(percentage), 0, 100);\n\n/* '50%' => 5.0, 200 => 1, -10 => 0 */\nfunction parseAlpha(alpha) {\n let a = alpha;\n if (typeof a !== 'number') a = a.endsWith('%') ? parseFloat(a) / 100 : parseFloat(a);\n return clamp(a, 0, 1);\n}\n\nfunction getHEX(hex) {\n const [r, g, b, a] = hex2Rgb(hex, { format: 'array' });\n return getRGB([null, ...[r, g, b, a]]);\n}\n\nfunction getHSL([, h, s, l, a = 1]) {\n let hh = h;\n if (hh.endsWith('turn')) {\n hh = (parseFloat(hh) * 360) / 1;\n } else if (hh.endsWith('rad')) {\n hh = Math.round((parseFloat(hh) * 180) / Math.PI);\n } else {\n hh = parseFloat(hh);\n }\n return {\n type: 'hsl',\n values: [hh, parsePercentage(s), parsePercentage(l)],\n alpha: parseAlpha(a === null ? 1 : a)\n };\n}\n\nfunction getRGB([, r, g, b, a = 1]) {\n return {\n type: 'rgb',\n values: [r, g, b].map(parseRGB),\n alpha: parseAlpha(a === null ? 1 : a)\n };\n}\n\n/**\n * parse-css-color\n * @version v0.2.1\n * @link http://github.com/noeldelgado/parse-css-color/\n * @license MIT\n */\n\nconst parseCSSColor = (str) => {\n if (typeof str !== 'string') return null;\n\n const hex = hexRe.exec(str);\n if (hex) return getHEX(hex[0]);\n\n const hsl = hsl4Re.exec(str) || hsl3Re.exec(str);\n if (hsl) return getHSL(hsl);\n\n const rgb =\n rgb4NumberRe.exec(str) ||\n rgb4PercentageRe.exec(str) ||\n rgb3NumberRe.exec(str) ||\n rgb3PercentageRe.exec(str);\n if (rgb) return getRGB(rgb);\n\n if (transparentRe.exec(str)) return getRGB([null, 0, 0, 0, 0]);\n\n const cn = colorName[str.toLowerCase()];\n if (cn) return getRGB([null, cn[0], cn[1], cn[2], 1]);\n\n return null;\n};\n\nexport default parseCSSColor;\n","import valueParser from 'postcss-value-parser'\n\nimport CssDimension from './vendor/parse-css-dimension/index.js'\n\n/**\n * If key for each direction is missing, assume default (50%)\n */\nexport interface ParsedTransformOrigin {\n /** Relative horizontal transform origin in % */\n xRelative?: number\n /** Relative vertical transform origin in % */\n yRelative?: number\n /** Absolute horizontal transform origin in pixels */\n xAbsolute?: number\n /** Absolute horizontal transform origin in pixels */\n yAbsolute?: number\n}\n\ninterface ParsedUnit {\n /** Relative unit in % */\n relative?: number\n /** Absolute unit in pixels */\n absolute?: number\n}\n\nfunction parseUnit(word: string, baseFontSize: number): ParsedUnit {\n try {\n const parsed = new CssDimension(word)\n switch (parsed.unit) {\n case 'px':\n return { absolute: parsed.value }\n case 'em':\n return { absolute: parsed.value * baseFontSize }\n case 'rem':\n return { absolute: parsed.value * 16 }\n case '%':\n return { relative: parsed.value }\n default:\n return {}\n }\n } catch (e) {\n return {}\n }\n}\n\nfunction handleWord(\n word: string,\n baseFontSize: number,\n unitIsHorizontal: boolean\n) {\n switch (word) {\n case 'top':\n return { yRelative: 0 }\n case 'left':\n return { xRelative: 0 }\n case 'right':\n return { xRelative: 100 }\n case 'bottom':\n return { yRelative: 100 }\n case 'center':\n return {}\n default: {\n const parsedUnit = parseUnit(word, baseFontSize)\n return parsedUnit.absolute\n ? {\n [unitIsHorizontal ? 'xAbsolute' : 'yAbsolute']: parsedUnit.absolute,\n }\n : parsedUnit.relative\n ? {\n [unitIsHorizontal ? 'xRelative' : 'yRelative']: parsedUnit.relative,\n }\n : {}\n }\n }\n}\n\nexport default function parseTransformOrigin(\n value: string | number,\n baseFontSize: number\n): ParsedTransformOrigin {\n // If it's a single value and a number, then it's horizontal\n if (typeof value === 'number') {\n return { xAbsolute: value }\n }\n let words: string[]\n try {\n words = valueParser(value)\n .nodes.filter((node) => node.type === 'word')\n .map((node) => node.value)\n } catch (e) {\n return {}\n }\n\n if (words.length === 1) {\n // If it's a single value and a number, then it's horizontal, so\n // pass `true` to `unitIsHorizontal`\n return handleWord(words[0], baseFontSize, true)\n } else if (words.length === 2) {\n // Make words to be [horizontal, vertical]\n if (\n words[0] === 'top' ||\n words[0] === 'bottom' ||\n words[1] === 'left' ||\n words[1] === 'right'\n ) {\n words.reverse()\n }\n\n return {\n ...handleWord(words[0], baseFontSize, true),\n ...handleWord(words[1], baseFontSize, false),\n }\n } else {\n return {}\n }\n}\n","import { getPropertyName } from 'css-to-react-native'\nimport { splitEffects } from '../utils.js'\n\nfunction getMaskProperty(style: Record, name: string) {\n const key = getPropertyName(`mask-${name}`)\n return (style[key] || style[`WebkitM${key.substring(1)}`]) as string\n}\n\nexport interface MaskProperty {\n image: string\n position: string\n size: string\n repeat: string\n origin: string\n clip: string\n}\n\nexport function parseMask(\n style: Record\n): MaskProperty[] {\n const maskImage = (style.maskImage || style.WebkitMaskImage) as string\n\n const common = {\n position: getMaskProperty(style, 'position') || '0% 0%',\n size: getMaskProperty(style, 'size') || '100% 100%',\n repeat: getMaskProperty(style, 'repeat') || 'repeat',\n origin: getMaskProperty(style, 'origin') || 'border-box',\n clip: getMaskProperty(style, 'origin') || 'border-box',\n }\n\n let maskImages = splitEffects(maskImage).filter((v) => v && v !== 'none')\n\n return maskImages.reverse().map((m) => ({\n image: m,\n ...common,\n }))\n}\n","import escapeHTML from 'escape-html'\nimport type { ParsedTransformOrigin } from '../transform-origin.js'\nimport transform from './transform.js'\nimport { buildXMLString } from '../utils.js'\n\nexport function container(\n {\n left,\n top,\n width,\n height,\n isInheritingTransform,\n }: {\n left: number\n top: number\n width: number\n height: number\n isInheritingTransform: boolean\n },\n style: Record\n) {\n let matrix = ''\n let opacity = 1\n\n if (style.transform) {\n matrix = transform(\n {\n left,\n top,\n width,\n height,\n },\n style.transform as unknown as number[],\n isInheritingTransform,\n style.transformOrigin as ParsedTransformOrigin | undefined\n )\n }\n\n if (style.opacity !== undefined) {\n opacity = +style.opacity\n }\n\n return { matrix, opacity }\n}\n\nexport default function buildText(\n {\n id,\n content,\n filter,\n left,\n top,\n width,\n height,\n matrix,\n opacity,\n image,\n clipPathId,\n debug,\n shape,\n decorationShape,\n }: {\n content: string\n filter: string\n id: string\n left: number\n top: number\n width: number\n height: number\n matrix: string\n opacity: number\n image: string | null\n clipPathId?: string\n debug?: boolean\n shape?: boolean\n decorationShape?: string\n },\n style: Record\n) {\n let extra = ''\n if (debug) {\n extra = buildXMLString('rect', {\n x: left,\n y: top - height,\n width,\n height,\n fill: 'transparent',\n stroke: '#575eff',\n 'stroke-width': 1,\n transform: matrix || undefined,\n 'clip-path': clipPathId ? `url(#${clipPathId})` : undefined,\n })\n }\n\n // This grapheme should be rendered as an image.\n if (image) {\n const shapeProps = {\n href: image,\n x: left,\n y: top,\n width,\n height,\n transform: matrix || undefined,\n 'clip-path': clipPathId ? `url(#${clipPathId})` : undefined,\n style: style.filter ? `filter:${style.filter}` : undefined,\n }\n return [\n (filter ? `${filter}` : '') +\n buildXMLString('image', {\n ...shapeProps,\n opacity: opacity !== 1 ? opacity : undefined,\n }) +\n (decorationShape || '') +\n (filter ? '' : '') +\n extra,\n // SVG doesn't support `` as the shape.\n '',\n ]\n }\n\n // Do not embed the font, use with the raw content instead.\n const shapeProps = {\n x: left,\n y: top,\n width,\n height,\n 'font-weight': style.fontWeight,\n 'font-style': style.fontStyle,\n 'font-size': style.fontSize,\n 'font-family': style.fontFamily,\n 'letter-spacing': style.letterSpacing || undefined,\n transform: matrix || undefined,\n 'clip-path': clipPathId ? `url(#${clipPathId})` : undefined,\n style: style.filter ? `filter:${style.filter}` : undefined,\n 'stroke-width': style.WebkitTextStrokeWidth\n ? `${style.WebkitTextStrokeWidth}px`\n : undefined,\n stroke: style.WebkitTextStrokeWidth\n ? style.WebkitTextStrokeColor\n : undefined,\n 'stroke-linejoin': style.WebkitTextStrokeWidth ? 'round' : undefined,\n 'paint-order': style.WebkitTextStrokeWidth ? 'stroke' : undefined,\n }\n return [\n (filter ? `${filter}` : '') +\n buildXMLString(\n 'text',\n {\n ...shapeProps,\n fill: style.color,\n opacity: opacity !== 1 ? opacity : undefined,\n },\n escapeHTML(content)\n ) +\n (decorationShape || '') +\n (filter ? '' : '') +\n extra,\n shape ? buildXMLString('text', shapeProps, escapeHTML(content)) : '',\n ]\n}\n","import { ColorStop } from \"./type.js\"\n\nexport function split(\n input: string,\n separator: string | RegExp = ','\n): string[] {\n const result = []\n let l = 0\n let parenCount = 0\n separator = new RegExp(separator)\n\n for (let i = 0; i < input.length; i++) {\n if (input[i] === '(') {\n parenCount++\n } else if (input[i] === ')') {\n parenCount--\n }\n\n if (parenCount === 0 && separator.test(input[i])) {\n result.push(input.slice(l, i).trim())\n l = i + 1\n }\n }\n\n result.push(input.slice(l).trim())\n\n return result\n}\n\nexport function resolveStops(v: string[]): ColorStop[] {\n const stops: ColorStop[] = []\n\n for (let i = 0, n = v.length; i < n;) {\n const [color, offset] = split(v[i], /\\s+/)\n\n if (isHint(v[i + 1])) {\n stops.push({\n color,\n offset: resolveLength(offset),\n hint: resolveLength(v[i + 1])\n })\n i += 2\n } else {\n stops.push({\n color,\n offset: resolveLength(offset)\n })\n i++\n }\n }\n\n return stops\n}\n\nconst REGEX = /^(-?\\d+\\.?\\d*)(%|vw|vh|px|em|rem|deg|rad|grad|turn)$/\n\nfunction isHint(v: string) {\n return REGEX.test(v)\n}\n\nexport function resolveLength(v?: string) {\n if (!v) return undefined\n\n const [, value, unit] = v.trim().match(REGEX) || []\n\n return { value, unit }\n}","import { split, resolveStops,resolveLength } from \"./utils.js\"\nimport { ColorStop } from './type.js'\n\ntype LinearOrientation = {\n type: 'directional'\n value: string\n} | {\n type: 'angular'\n value: { unit: string; value: string }\n}\n\nexport interface LinearResult {\n orientation: LinearOrientation\n repeating: boolean\n stops: ColorStop[]\n}\n\nexport function parseLinearGradient(input: string): LinearResult {\n if (!/^(repeating-)?linear-gradient/.test(input)) throw new SyntaxError(`could not find syntax for this item: ${input}`)\n\n let [, repeating, props] = input.match(/(repeating-)?linear-gradient\\((.+)\\)/)\n const result: LinearResult = {\n orientation: { type: 'directional', value: 'bottom' },\n repeating: Boolean(repeating),\n stops: []\n }\n\n const properties: string[] = split(props)\n const orientation = resolveLinearOrientation(properties[0])\n if (orientation) {\n result.orientation = orientation\n properties.shift()\n }\n\n return { ...result, stops: resolveStops(properties) }\n}\n\nfunction resolveLinearOrientation(angle: string): LinearOrientation {\n if (angle.startsWith('to ')) {\n return {\n type: 'directional',\n value: angle.replace('to ', '')\n }\n }\n\n if (['turn', 'deg', 'grad', 'rad'].some(unit => angle.endsWith(unit))) {\n return {\n type: 'angular',\n value: resolveLength(angle)\n }\n }\n\n return null\n}","import { resolveStops, split, resolveLength } from './utils.js'\nimport { ColorStop } from './type.js'\n\nexport type RgExtentKeyword = 'closest-corner' | 'closest-side' | 'farthest-corner' | 'farthest-side'\n\nexport type RadialPropertyValue = {\n type: 'keyword'\n value: string\n} | {\n type: 'length'\n value: { unit: string; value: string }\n}\n\nexport interface RadialResult {\n shape: 'circle' | 'ellipse'\n repeating: boolean\n size: RadialPropertyValue[]\n position: {\n x: RadialPropertyValue\n y: RadialPropertyValue\n }\n stops: ColorStop[]\n}\n\nconst rgExtentKeyword = new Set([\n 'closest-corner',\n 'closest-side',\n 'farthest-corner',\n 'farthest-side'\n])\n\ntype PositionKeyWord = 'center' | 'left' | 'right' | 'top' | 'bottom'\n\nconst positionKeyword = new Set([\n 'center',\n 'left',\n 'top',\n 'right',\n 'bottom'\n])\n\n//eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction isRgExtentKeyword(v: any): v is RgExtentKeyword {\n return rgExtentKeyword.has(v)\n}\n\n//eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction isPositionKeyWord(v: any): v is PositionKeyWord {\n return positionKeyword.has(v)\n}\n\nfunction extendPosition(v: string[]) {\n const res = Array(2).fill('')\n for (let i = 0; i < 2; i++) {\n if (!v[i]) res[i] = 'center'\n else res[i] = v[i]\n }\n\n return res\n}\n\nexport function parseRadialGradient(input: string): RadialResult {\n if (!/(repeating-)?radial-gradient/.test(input)) throw new SyntaxError(`could not find syntax for this item: ${input}`)\n \n const [, repeating, props] = input.match(/(repeating-)?radial-gradient\\((.+)\\)/)\n const result: RadialResult = {\n shape: 'ellipse',\n repeating: Boolean(repeating),\n size: [{\n type: 'keyword',\n value: 'farthest-corner'\n }],\n position: {\n x: { type: 'keyword', value: 'center' },\n y: { type: 'keyword', value: 'center' }\n },\n stops: []\n }\n\n const properties = split(props)\n // handle like radial-gradient(rgba(0,0,0,0), #ee7621)\n if (isColor(properties[0])) {\n return { ...result, stops: resolveStops(properties) }\n }\n\n const prefix = properties[0].split('at').map(v => v.trim())\n\n const shape = ((prefix[0] || '').match(/(circle|ellipse)/) || [])[1]\n const size: string[] = (prefix[0] || '').match(/(-?\\d+\\.?\\d*(vw|vh|px|em|rem|%|rad|grad|turn|deg)?|closest-corner|closest-side|farthest-corner|farthest-side)/g) || []\n const position = extendPosition((prefix[1] || '').split(' '))\n\n if (!shape) {\n if (size.length === 1 && !isRgExtentKeyword(size[0])) {\n result.shape = 'circle'\n } else {\n result.shape = 'ellipse'\n }\n } else {\n result.shape = shape as RadialResult['shape']\n }\n\n if (size.length === 0) {\n size.push('farthest-corner')\n }\n\n result.size = size.map(v => {\n if (isRgExtentKeyword(v)) {\n return { type: 'keyword', value: v }\n } else {\n return { type: 'length', value: resolveLength(v) }\n }\n })\n\n result.position.x = isPositionKeyWord(position[0])\n ? { type: 'keyword', value: position[0] }\n : { type: 'length', value: resolveLength(position[0]) }\n\n result.position.y = isPositionKeyWord(position[1])\n ? { type: 'keyword', value: position[1] }\n : { type: 'length', value: resolveLength(position[1]) }\n\n if (shape || size.length > 0 || prefix[1]) properties.shift()\n\n return {\n ...result,\n stops: resolveStops(properties)\n }\n}\n\nfunction isColor(v: string) {\n if (/(circle|ellipse|at)/.test(v)) return false\n return /^(rgba?|hwb|hsl|lab|lch|oklab|color|#|[a-zA-Z]+)/.test(v)\n}","import { lengthToNumber } from '../utils.js'\nimport { default as buildBorderRadius } from '../builder/border-radius.js'\nimport { getStylesForProperty } from 'css-to-react-native'\n\nconst regexMap = {\n circle: /circle\\((.+)\\)/,\n ellipse: /ellipse\\((.+)\\)/,\n path: /path\\((.+)\\)/,\n polygon: /polygon\\((.+)\\)/,\n inset: /inset\\((.+)\\)/,\n}\n\nexport function createShapeParser(\n {\n width,\n height,\n }: {\n width: number\n height: number\n },\n style: Record,\n inheritedStyle: Record\n) {\n function parseCircle(str: string) {\n const res = str.match(regexMap['circle'])\n\n if (!res) return null\n\n const [, value] = res\n const [radius, pos = ''] = value.split('at').map((v) => v.trim())\n const { x, y } = resolvePosition(pos, width, height)\n\n return {\n type: 'circle',\n r: lengthToNumber(\n radius,\n inheritedStyle.fontSize as number,\n Math.sqrt(Math.pow(width, 2) + Math.pow(height, 2)) / Math.sqrt(2),\n inheritedStyle,\n true\n ),\n cx: lengthToNumber(\n x,\n inheritedStyle.fontSize as number,\n width,\n inheritedStyle,\n true\n ),\n cy: lengthToNumber(\n y,\n inheritedStyle.fontSize as number,\n height,\n inheritedStyle,\n true\n ),\n }\n }\n function parseEllipse(str: string) {\n const res = str.match(regexMap['ellipse'])\n\n if (!res) return null\n\n const [, value] = res\n const [radius, pos = ''] = value.split('at').map((v) => v.trim())\n const [rx, ry] = radius.split(' ')\n const { x, y } = resolvePosition(pos, width, height)\n\n return {\n type: 'ellipse',\n rx: lengthToNumber(\n rx || '50%',\n inheritedStyle.fontSize as number,\n width,\n inheritedStyle,\n true\n ),\n ry: lengthToNumber(\n ry || '50%',\n inheritedStyle.fontSize as number,\n height,\n inheritedStyle,\n true\n ),\n cx: lengthToNumber(\n x,\n inheritedStyle.fontSize as number,\n width,\n inheritedStyle,\n true\n ),\n cy: lengthToNumber(\n y,\n inheritedStyle.fontSize as number,\n height,\n inheritedStyle,\n true\n ),\n }\n }\n function parsePath(str: string) {\n const res = str.match(regexMap['path'])\n\n if (!res) return null\n\n const [fillRule, d] = resolveFillRule(res[1])\n\n return {\n type: 'path',\n d,\n 'fill-rule': fillRule,\n }\n }\n function parsePolygon(str: string) {\n const res = str.match(regexMap['polygon'])\n\n if (!res) return null\n\n const [fillRule, points] = resolveFillRule(res[1])\n\n return {\n type: 'polygon',\n 'fill-rule': fillRule,\n points: points\n .split(',')\n .map((v) =>\n v\n .split(' ')\n .map((k, i) =>\n lengthToNumber(\n k,\n inheritedStyle.fontSize as number,\n i === 0 ? width : height,\n inheritedStyle,\n true\n )\n )\n .join(' ')\n )\n .join(','),\n }\n }\n function parseInset(str: string) {\n const res = str.match(regexMap['inset'])\n\n if (!res) return null\n\n const [inset, radius] = (\n res[1].includes('round') ? res[1] : `${res[1].trim()} round 0`\n ).split('round')\n const radiusMap = getStylesForProperty('borderRadius', radius, true)\n const r = Object.values(radiusMap)\n .map((s) => String(s))\n .map(\n (s, i) =>\n lengthToNumber(\n s,\n inheritedStyle.fontSize as number,\n i === 0 || i === 2 ? height : width,\n inheritedStyle,\n true\n ) || 0\n )\n const offsets = Object.values(getStylesForProperty('margin', inset, true))\n .map((s) => String(s))\n .map(\n (s, i) =>\n lengthToNumber(\n s,\n inheritedStyle.fontSize as number,\n i === 0 || i === 2 ? height : width,\n inheritedStyle,\n true\n ) || 0\n )\n const x = offsets[3]\n const y = offsets[0]\n const w = width - (offsets[1] + offsets[3])\n const h = height - (offsets[0] + offsets[2])\n\n if (r.some((v) => v > 0)) {\n const d = buildBorderRadius(\n { left: x, top: y, width: w, height: h },\n { ...style, ...radiusMap }\n )\n\n return { type: 'path', d }\n }\n\n return {\n type: 'rect',\n x,\n y,\n width: w,\n height: h,\n }\n }\n\n return {\n parseCircle,\n parseEllipse,\n parsePath,\n parsePolygon,\n parseInset,\n }\n}\n\nfunction resolveFillRule(str: string) {\n const [, fillRule = 'nonzero', d] =\n str.replace(/('|\")/g, '').match(/^(nonzero|evenodd)?,?(.+)/) || []\n\n return [fillRule, d]\n}\n\nfunction resolvePosition(position: string, xDelta: number, yDelta: number) {\n const pos = position.split(' ')\n const res: { x: number | string; y: number | string } = {\n x: pos[0] || '50%',\n y: pos[1] || '50%',\n }\n\n pos.forEach((v) => {\n if (v === 'top') {\n res.y = 0\n } else if (v === 'bottom') {\n res.y = yDelta\n } else if (v === 'left') {\n res.x = 0\n } else if (v === 'right') {\n res.x = xDelta\n } else if (v === 'center') {\n res.x = xDelta / 2\n res.y = yDelta / 2\n } else {\n // do nothing\n }\n })\n\n return res\n}\n","// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Some of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// However, the vast majority of the codebase has diverged from UZIP.js to increase performance and reduce bundle size.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\nvar ch2 = {};\nvar wk = (function (c, id, msg, transfer, cb) {\n var w = new Worker(ch2[id] || (ch2[id] = URL.createObjectURL(new Blob([\n c + ';addEventListener(\"error\",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})'\n ], { type: 'text/javascript' }))));\n w.onmessage = function (e) {\n var d = e.data, ed = d.$e$;\n if (ed) {\n var err = new Error(ed[0]);\n err['code'] = ed[1];\n err.stack = ed[2];\n cb(err, null);\n }\n else\n cb(null, d);\n };\n w.postMessage(msg, transfer);\n return w;\n});\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, u32 = Uint32Array;\n// fixed length extra bits\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\n// see fleb note\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n var r = new u32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return [b, r];\n};\nvar _a = freb(fleb, 2), fl = _a[0], revfl = _a[1];\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b[0], revfd = _b[1];\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = ((i & 0xAAAA) >>> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >>> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >>> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >>> 8) | ((x & 0x00FF) << 8)) >>> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n var s = cd.length;\n // index\n var i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n var l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i) {\n if (cd[i])\n ++l[cd[i] - 1];\n }\n // u16 \"map\": index -> minimum code for bit length = index\n var le = new u16(mb);\n for (i = 0; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n var co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = (i << 4) | cd[i];\n // free bits\n var r_1 = mb - cd[i];\n // start value\n var v = le[cd[i] - 1]++ << r_1;\n // m is end value\n for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >>> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i) {\n if (cd[i]) {\n co[i] = rev[le[cd[i] - 1]++] >>> (15 - cd[i]);\n }\n }\n }\n return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8)) >> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p + 7) / 8) | 0; };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n var n = new (v.BYTES_PER_ELEMENT == 2 ? u16 : v.BYTES_PER_ELEMENT == 4 ? u32 : u8)(e - s);\n n.set(v.subarray(s, e));\n return n;\n};\n/**\n * Codes for errors generated within this library\n */\nexport var FlateErrorCode = {\n UnexpectedEOF: 0,\n InvalidBlockType: 1,\n InvalidLengthLiteral: 2,\n InvalidDistance: 3,\n StreamFinished: 4,\n NoStreamHandler: 5,\n InvalidHeader: 6,\n NoCallback: 7,\n InvalidUTF8: 8,\n ExtraFieldTooLong: 9,\n InvalidDate: 10,\n FilenameTooLong: 11,\n StreamFinishing: 12,\n InvalidZipData: 13,\n UnknownCompressionMethod: 14\n};\n// error codes\nvar ec = [\n 'unexpected EOF',\n 'invalid block type',\n 'invalid length/literal',\n 'invalid distance',\n 'stream finished',\n 'no stream handler',\n ,\n 'no callback',\n 'invalid UTF-8 data',\n 'extra field too long',\n 'date not in range 1980-2099',\n 'filename too long',\n 'stream finishing',\n 'invalid zip data'\n // determined by unknown compression method\n];\n;\nvar err = function (ind, msg, nt) {\n var e = new Error(msg || ec[ind]);\n e.code = ind;\n if (Error.captureStackTrace)\n Error.captureStackTrace(e, err);\n if (!nt)\n throw e;\n return e;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, buf, st) {\n // source length\n var sl = dat.length;\n if (!sl || (st && st.f && !st.l))\n return buf || new u8(0);\n // have to estimate size\n var noBuf = !buf || st;\n // no state\n var noSt = !st || st.i;\n if (!st)\n st = {};\n // Assumes roughly 33% compression ratio average\n if (!buf)\n buf = new u8(sl * 3);\n // ensure buffer can fit at least l elements\n var cbuf = function (l) {\n var bl = buf.length;\n // need to increase size to fit\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n // last chunk bitpos bytes\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n // total bits\n var tbts = sl * 8;\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n final = bits(dat, pos, 1);\n // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n if (t > sl) {\n if (noSt)\n err(0);\n break;\n }\n // ensure size\n if (noBuf)\n cbuf(bt + l);\n // Copy over uncompressed data\n buf.set(dat.subarray(s, t), bt);\n // Get new bitpos, update byte count\n st.b = bt += l, st.p = pos = t * 8, st.f = final;\n continue;\n }\n else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n // length+distance tree\n var ldt = new u8(tl);\n // code length tree\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n // code lengths bits\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n // code lengths map\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)];\n // bits read\n pos += r & 15;\n // symbol\n var s = r >>> 4;\n // code length to copy\n if (s < 16) {\n ldt[i++] = s;\n }\n else {\n // copy count\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n // length tree distance tree\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n // max length bits\n lbt = max(lt);\n // max dist bits\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n }\n else\n err(1);\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n }\n // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17;\n if (noBuf)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var lpos = pos;\n for (;; lpos = pos) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms], sym = c >>> 4;\n pos += c & 15;\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (!c)\n err(2);\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lpos = pos, lm = null;\n break;\n }\n else {\n var add = sym - 254;\n // no extra bits needed if less\n if (sym > 264) {\n // index\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n // dist\n var d = dm[bits16(dat, pos) & dms], dsym = d >>> 4;\n if (!d)\n err(3);\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & ((1 << b) - 1), pos += b;\n }\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (noBuf)\n cbuf(bt + 131072);\n var end = bt + add;\n for (; bt < end; bt += 4) {\n buf[bt] = buf[bt - dt];\n buf[bt + 1] = buf[bt + 1 - dt];\n buf[bt + 2] = buf[bt + 2 - dt];\n buf[bt + 3] = buf[bt + 3 - dt];\n }\n bt = end;\n }\n }\n st.l = lm, st.p = lpos, st.b = bt, st.f = final;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n return bt == buf.length ? buf : slc(buf, 0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n d[o + 2] |= v >>> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n // Need extra info to make a tree\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return [et, 0];\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return [v, 1];\n }\n t.sort(function (a, b) { return a.f - b.f; });\n // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n // code lengths\n var tr = new u16(maxSym + 1);\n // max bits in tree\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0, dt = 0;\n // left cost\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << (mbt - tr[i2_1]));\n tr[i2_1] = mb;\n }\n else\n break;\n }\n dt >>>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << (mb - tr[i2_2]++ - 1);\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return [new u8(tr), mbt];\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n return n.s == -1\n ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n var s = c.length;\n // Note that the semicolon was intentional\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n // ind num streak\n var cli = 0, cln = c[0], cls = 1;\n var w = function (v) { cl[cli++] = v; };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n cls = 0;\n }\n }\n else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(((cls - 3) << 5) | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return [cl.subarray(0, cli), s];\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >>> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15), dlt = _a[0], mlb = _a[1];\n var _b = hTree(df, 15), ddt = _b[0], mdb = _b[1];\n var _c = lc(dlt), lclt = _c[0], nlc = _c[1];\n var _d = lc(ddt), lcdt = _d[0], ndc = _d[1];\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n lcfreq[lclt[i] & 31]++;\n for (var i = 0; i < lcdt.length; ++i)\n lcfreq[lcdt[i] & 31]++;\n var _e = hTree(lcfreq, 7), lct = _e[0], mlcb = _e[1];\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = (bl + 5) << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + (2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18]);\n if (flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, (clct[i] >>> 5) & 127), p += clct[i] >>> 12;\n }\n }\n }\n else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n if (syms[i] > 255) {\n var len = (syms[i] >>> 18) & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, (syms[i] >>> 23) & 31), p += fleb[len];\n var dst = syms[i] & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, (syms[i] >>> 5) & 8191), p += fdeb[dst];\n }\n else {\n wbits16(out, p, lm[syms[i]]), p += ll[syms[i]];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new u32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, lst) {\n var s = dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7000)) + post);\n // writing to this writes to the output buffer\n var w = o.subarray(pre, o.length - post);\n var pos = 0;\n if (!lvl || s < 8) {\n for (var i = 0; i <= s; i += 65535) {\n // end\n var e = i + 65535;\n if (e >= s) {\n // write final block\n w[pos >> 3] = lst;\n }\n pos = wfblk(w, pos + 1, dat.subarray(i, e));\n }\n }\n else {\n var opt = deo[lvl - 1];\n var n = opt >>> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n // prev 2-byte val map curr 2-byte val map\n var prev = new u16(32768), head = new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n var syms = new u32(25000);\n // length/literal freq distance freq\n var lf = new u16(288), df = new u16(32);\n // l/lcnt exbits index l/lind waitdx bitpos\n var lc_1 = 0, eb = 0, i = 0, li = 0, wi = 0, bs = 0;\n for (; i < s; ++i) {\n // hash value\n // deopt when i > s - 3 - at end, deopt acceptable\n var hv = hsh(i);\n // index mod 32768 previous index mod\n var imod = i & 32767, pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && rem > 423) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n // len dist chain\n var l = 2, d = 0, ch_1 = c, dif = (imod - pimod) & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n // break out early when we reach \"nice\" (we are satisfied enough)\n if (nl > maxn)\n break;\n // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = (i - dif + j + 32768) & 32767;\n var pti = prev[ti];\n var cd = (ti - pti + 32768) & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n // check the previous match\n imod = pimod, pimod = prev[imod];\n dif += (imod - pimod + 32768) & 32767;\n }\n }\n // d will be nonzero only when a match was found\n if (d) {\n // store both dist and len data in one Uint32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n }\n else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n // this is the easiest way to avoid needing to maintain state\n if (!lst && pos & 7)\n pos = wfblk(w, pos + 1, et);\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\n// CRC32 table\nvar crct = /*#__PURE__*/ (function () {\n var t = new Int32Array(256);\n for (var i = 0; i < 256; ++i) {\n var c = i, k = 9;\n while (--k)\n c = ((c & 1) && -306674912) ^ (c >>> 1);\n t[i] = c;\n }\n return t;\n})();\n// CRC32\nvar crc = function () {\n var c = -1;\n return {\n p: function (d) {\n // closures have awful performance\n var cr = c;\n for (var i = 0; i < d.length; ++i)\n cr = crct[(cr & 255) ^ d[i]] ^ (cr >>> 8);\n c = cr;\n },\n d: function () { return ~c; }\n };\n};\n// Alder32\nvar adler = function () {\n var a = 1, b = 0;\n return {\n p: function (d) {\n // closures have awful performance\n var n = a, m = b;\n var l = d.length | 0;\n for (var i = 0; i != l;) {\n var e = Math.min(i + 2655, l);\n for (; i < e; ++i)\n m += n += d[i];\n n = (n & 65535) + 15 * (n >> 16), m = (m & 65535) + 15 * (m >> 16);\n }\n a = n, b = m;\n },\n d: function () {\n a %= 65521, b %= 65521;\n return (a & 255) << 24 | (a >>> 8) << 16 | (b & 255) << 8 | (b >>> 8);\n }\n };\n};\n;\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : (12 + opt.mem), pre, post, !st);\n};\n// Walmart object spread\nvar mrg = function (a, b) {\n var o = {};\n for (var k in a)\n o[k] = a[k];\n for (var k in b)\n o[k] = b[k];\n return o;\n};\n// worker clone\n// This is possibly the craziest part of the entire codebase, despite how simple it may seem.\n// The only parameter to this function is a closure that returns an array of variables outside of the function scope.\n// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization.\n// We will return an object mapping of true variable name to value (basically, the current scope as a JS object).\n// The reason we can't just use the original variable names is minifiers mangling the toplevel scope.\n// This took me three weeks to figure out how to do.\nvar wcln = function (fn, fnStr, td) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/\\s+/g, '').split(',');\n for (var i = 0; i < dt.length; ++i) {\n var v = dt[i], k = ks[i];\n if (typeof v == 'function') {\n fnStr += ';' + k + '=';\n var st_1 = v.toString();\n if (v.prototype) {\n // for global objects\n if (st_1.indexOf('[native code]') != -1) {\n var spInd = st_1.indexOf(' ', 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n }\n else {\n fnStr += st_1;\n for (var t in v.prototype)\n fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n }\n }\n else\n fnStr += st_1;\n }\n else\n td[k] = v;\n }\n return [fnStr, td];\n};\nvar ch = [];\n// clone bufs\nvar cbfs = function (v) {\n var tl = [];\n for (var k in v) {\n if (v[k].buffer) {\n tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n }\n return tl;\n};\n// use a worker to execute code\nvar wrkr = function (fns, init, id, cb) {\n var _a;\n if (!ch[id]) {\n var fnStr = '', td_1 = {}, m = fns.length - 1;\n for (var i = 0; i < m; ++i)\n _a = wcln(fns[i], fnStr, td_1), fnStr = _a[0], td_1 = _a[1];\n ch[id] = wcln(fns[m], fnStr, td_1);\n }\n var td = mrg({}, ch[id][1]);\n return wk(ch[id][0] + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n};\n// base async inflate fn\nvar bInflt = function () { return [u8, u16, u32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, ec, hMap, max, bits, bits16, shft, slc, err, inflt, inflateSync, pbf, gu8]; };\nvar bDflt = function () { return [u8, u16, u32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; };\n// gzip extra\nvar gze = function () { return [gzh, gzhl, wbytes, crc, crct]; };\n// gunzip extra\nvar guze = function () { return [gzs, gzl]; };\n// zlib extra\nvar zle = function () { return [zlh, wbytes, adler]; };\n// unzlib extra\nvar zule = function () { return [zlv]; };\n// post buf\nvar pbf = function (msg) { return postMessage(msg, [msg.buffer]); };\n// get u8\nvar gu8 = function (o) { return o && o.size && new u8(o.size); };\n// async helper\nvar cbify = function (dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function (err, dat) {\n w.terminate();\n cb(err, dat);\n });\n w.postMessage([dat, opts], opts.consume ? [dat.buffer] : []);\n return function () { w.terminate(); };\n};\n// auto stream\nvar astrm = function (strm) {\n strm.ondata = function (dat, final) { return postMessage([dat, final], [dat.buffer]); };\n return function (ev) { return strm.push(ev.data[0], ev.data[1]); };\n};\n// async stream attach\nvar astrmify = function (fns, strm, opts, init, id) {\n var t;\n var w = wrkr(fns, init, id, function (err, dat) {\n if (err)\n w.terminate(), strm.ondata.call(strm, err);\n else {\n if (dat[1])\n w.terminate();\n strm.ondata.call(strm, err, dat[0], dat[1]);\n }\n });\n w.postMessage(opts);\n strm.push = function (d, f) {\n if (!strm.ondata)\n err(5);\n if (t)\n strm.ondata(err(4, 0, 1), null, !!f);\n w.postMessage([d, t = f], [d.buffer]);\n };\n strm.terminate = function () { w.terminate(); };\n};\n// read 2 bytes\nvar b2 = function (d, b) { return d[b] | (d[b + 1] << 8); };\n// read 4 bytes\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16) | (d[b + 3] << 24)) >>> 0; };\nvar b8 = function (d, b) { return b4(d, b) + (b4(d, b + 4) * 4294967296); };\n// write bytes\nvar wbytes = function (d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\n// gzip header\nvar gzh = function (c, o) {\n var fn = o.filename;\n c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n if (o.mtime != 0)\n wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n if (fn) {\n c[3] = 8;\n for (var i = 0; i <= fn.length; ++i)\n c[i + 10] = fn.charCodeAt(i);\n }\n};\n// gzip footer: -8 to -4 = CRC, -4 to -0 is length\n// gzip start\nvar gzs = function (d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n err(6, 'invalid gzip data');\n var flg = d[3];\n var st = 10;\n if (flg & 4)\n st += d[10] | (d[11] << 8) + 2;\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n ;\n return st + (flg & 2);\n};\n// gzip length\nvar gzl = function (d) {\n var l = d.length;\n return ((d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16) | (d[l - 1] << 24)) >>> 0;\n};\n// gzip header length\nvar gzhl = function (o) { return 10 + ((o.filename && (o.filename.length + 1)) || 0); };\n// zlib header\nvar zlh = function (c, o) {\n var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = (fl << 6) | (fl ? (32 - 2 * fl) : 1);\n};\n// zlib valid\nvar zlv = function (d) {\n if ((d[0] & 15) != 8 || (d[0] >>> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n err(6, 'invalid zlib data');\n if (d[1] & 32)\n err(6, 'invalid zlib data: preset dictionaries not supported');\n};\nfunction AsyncCmpStrm(opts, cb) {\n if (!cb && typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n return opts;\n}\n// zlib footer: -4 to -0 is Adler32\n/**\n * Streaming DEFLATE compression\n */\nvar Deflate = /*#__PURE__*/ (function () {\n function Deflate(opts, cb) {\n if (!cb && typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n this.o = opts || {};\n }\n Deflate.prototype.p = function (c, f) {\n this.ondata(dopt(c, this.o, 0, 0, !f), f);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Deflate.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n this.d = final;\n this.p(chunk, final || false);\n };\n return Deflate;\n}());\nexport { Deflate };\n/**\n * Asynchronous streaming DEFLATE compression\n */\nvar AsyncDeflate = /*#__PURE__*/ (function () {\n function AsyncDeflate(opts, cb) {\n astrmify([\n bDflt,\n function () { return [astrm, Deflate]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Deflate(ev.data);\n onmessage = astrm(strm);\n }, 6);\n }\n return AsyncDeflate;\n}());\nexport { AsyncDeflate };\nexport function deflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n ], function (ev) { return pbf(deflateSync(ev.data[0], ev.data[1])); }, 0, cb);\n}\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\nexport function deflateSync(data, opts) {\n return dopt(data, opts || {}, 0, 0);\n}\n/**\n * Streaming DEFLATE decompression\n */\nvar Inflate = /*#__PURE__*/ (function () {\n /**\n * Creates an inflation stream\n * @param cb The callback to call whenever data is inflated\n */\n function Inflate(cb) {\n this.s = {};\n this.p = new u8(0);\n this.ondata = cb;\n }\n Inflate.prototype.e = function (c) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n var l = this.p.length;\n var n = new u8(l + c.length);\n n.set(this.p), n.set(c, l), this.p = n;\n };\n Inflate.prototype.c = function (final) {\n this.d = this.s.i = final || false;\n var bts = this.s.b;\n var dt = inflt(this.p, this.o, this.s);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, (this.s.p / 8) | 0), this.s.p &= 7;\n };\n /**\n * Pushes a chunk to be inflated\n * @param chunk The chunk to push\n * @param final Whether this is the final chunk\n */\n Inflate.prototype.push = function (chunk, final) {\n this.e(chunk), this.c(final);\n };\n return Inflate;\n}());\nexport { Inflate };\n/**\n * Asynchronous streaming DEFLATE decompression\n */\nvar AsyncInflate = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous inflation stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncInflate(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n function () { return [astrm, Inflate]; }\n ], this, 0, function () {\n var strm = new Inflate();\n onmessage = astrm(strm);\n }, 7);\n }\n return AsyncInflate;\n}());\nexport { AsyncInflate };\nexport function inflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt\n ], function (ev) { return pbf(inflateSync(ev.data[0], gu8(ev.data[1]))); }, 1, cb);\n}\n/**\n * Expands DEFLATE data with no wrapper\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function inflateSync(data, out) {\n return inflt(data, out);\n}\n// before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.\n/**\n * Streaming GZIP compression\n */\nvar Gzip = /*#__PURE__*/ (function () {\n function Gzip(opts, cb) {\n this.c = crc();\n this.l = 0;\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gzip.prototype.push = function (chunk, final) {\n Deflate.prototype.push.call(this, chunk, final);\n };\n Gzip.prototype.p = function (c, f) {\n this.c.p(c);\n this.l += c.length;\n var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, !f);\n if (this.v)\n gzh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n this.ondata(raw, f);\n };\n return Gzip;\n}());\nexport { Gzip };\n/**\n * Asynchronous streaming GZIP compression\n */\nvar AsyncGzip = /*#__PURE__*/ (function () {\n function AsyncGzip(opts, cb) {\n astrmify([\n bDflt,\n gze,\n function () { return [astrm, Deflate, Gzip]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Gzip(ev.data);\n onmessage = astrm(strm);\n }, 8);\n }\n return AsyncGzip;\n}());\nexport { AsyncGzip };\nexport function gzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n gze,\n function () { return [gzipSync]; }\n ], function (ev) { return pbf(gzipSync(ev.data[0], ev.data[1])); }, 2, cb);\n}\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\nexport function gzipSync(data, opts) {\n if (!opts)\n opts = {};\n var c = crc(), l = data.length;\n c.p(data);\n var d = dopt(data, opts, gzhl(opts), 8), s = d.length;\n return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Streaming GZIP decompression\n */\nvar Gunzip = /*#__PURE__*/ (function () {\n /**\n * Creates a GUNZIP stream\n * @param cb The callback to call whenever data is inflated\n */\n function Gunzip(cb) {\n this.v = 1;\n Inflate.call(this, cb);\n }\n /**\n * Pushes a chunk to be GUNZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gunzip.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n var s = this.p.length > 3 ? gzs(this.p) : 4;\n if (s >= this.p.length && !final)\n return;\n this.p = this.p.subarray(s), this.v = 0;\n }\n if (final) {\n if (this.p.length < 8)\n err(6, 'invalid gzip data');\n this.p = this.p.subarray(0, -8);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Gunzip;\n}());\nexport { Gunzip };\n/**\n * Asynchronous streaming GZIP decompression\n */\nvar AsyncGunzip = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous GUNZIP stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncGunzip(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n guze,\n function () { return [astrm, Inflate, Gunzip]; }\n ], this, 0, function () {\n var strm = new Gunzip();\n onmessage = astrm(strm);\n }, 9);\n }\n return AsyncGunzip;\n}());\nexport { AsyncGunzip };\nexport function gunzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n guze,\n function () { return [gunzipSync]; }\n ], function (ev) { return pbf(gunzipSync(ev.data[0])); }, 3, cb);\n}\n/**\n * Expands GZIP data\n * @param data The data to decompress\n * @param out Where to write the data. GZIP already encodes the output size, so providing this doesn't save memory.\n * @returns The decompressed version of the data\n */\nexport function gunzipSync(data, out) {\n return inflt(data.subarray(gzs(data), -8), out || new u8(gzl(data)));\n}\n/**\n * Streaming Zlib compression\n */\nvar Zlib = /*#__PURE__*/ (function () {\n function Zlib(opts, cb) {\n this.c = adler();\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be zlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Zlib.prototype.push = function (chunk, final) {\n Deflate.prototype.push.call(this, chunk, final);\n };\n Zlib.prototype.p = function (c, f) {\n this.c.p(c);\n var raw = dopt(c, this.o, this.v && 2, f && 4, !f);\n if (this.v)\n zlh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 4, this.c.d());\n this.ondata(raw, f);\n };\n return Zlib;\n}());\nexport { Zlib };\n/**\n * Asynchronous streaming Zlib compression\n */\nvar AsyncZlib = /*#__PURE__*/ (function () {\n function AsyncZlib(opts, cb) {\n astrmify([\n bDflt,\n zle,\n function () { return [astrm, Deflate, Zlib]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Zlib(ev.data);\n onmessage = astrm(strm);\n }, 10);\n }\n return AsyncZlib;\n}());\nexport { AsyncZlib };\nexport function zlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n zle,\n function () { return [zlibSync]; }\n ], function (ev) { return pbf(zlibSync(ev.data[0], ev.data[1])); }, 4, cb);\n}\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nexport function zlibSync(data, opts) {\n if (!opts)\n opts = {};\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Streaming Zlib decompression\n */\nvar Unzlib = /*#__PURE__*/ (function () {\n /**\n * Creates a Zlib decompression stream\n * @param cb The callback to call whenever data is inflated\n */\n function Unzlib(cb) {\n this.v = 1;\n Inflate.call(this, cb);\n }\n /**\n * Pushes a chunk to be unzlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzlib.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n if (this.p.length < 2 && !final)\n return;\n this.p = this.p.subarray(2), this.v = 0;\n }\n if (final) {\n if (this.p.length < 4)\n err(6, 'invalid zlib data');\n this.p = this.p.subarray(0, -4);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Unzlib;\n}());\nexport { Unzlib };\n/**\n * Asynchronous streaming Zlib decompression\n */\nvar AsyncUnzlib = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous Zlib decompression stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncUnzlib(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n zule,\n function () { return [astrm, Inflate, Unzlib]; }\n ], this, 0, function () {\n var strm = new Unzlib();\n onmessage = astrm(strm);\n }, 11);\n }\n return AsyncUnzlib;\n}());\nexport { AsyncUnzlib };\nexport function unzlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n zule,\n function () { return [unzlibSync]; }\n ], function (ev) { return pbf(unzlibSync(ev.data[0], gu8(ev.data[1]))); }, 5, cb);\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function unzlibSync(data, out) {\n return inflt((zlv(data), data.subarray(2, -4)), out);\n}\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzip as compress, AsyncGzip as AsyncCompress };\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzipSync as compressSync, Gzip as Compress };\n/**\n * Streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar Decompress = /*#__PURE__*/ (function () {\n /**\n * Creates a decompression stream\n * @param cb The callback to call whenever data is decompressed\n */\n function Decompress(cb) {\n this.G = Gunzip;\n this.I = Inflate;\n this.Z = Unzlib;\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Decompress.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (!this.s) {\n if (this.p && this.p.length) {\n var n = new u8(this.p.length + chunk.length);\n n.set(this.p), n.set(chunk, this.p.length);\n }\n else\n this.p = chunk;\n if (this.p.length > 2) {\n var _this_1 = this;\n var cb = function () { _this_1.ondata.apply(_this_1, arguments); };\n this.s = (this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8)\n ? new this.G(cb)\n : ((this.p[0] & 15) != 8 || (this.p[0] >> 4) > 7 || ((this.p[0] << 8 | this.p[1]) % 31))\n ? new this.I(cb)\n : new this.Z(cb);\n this.s.push(this.p, final);\n this.p = null;\n }\n }\n else\n this.s.push(chunk, final);\n };\n return Decompress;\n}());\nexport { Decompress };\n/**\n * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar AsyncDecompress = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous decompression stream\n * @param cb The callback to call whenever data is decompressed\n */\n function AsyncDecompress(cb) {\n this.G = AsyncGunzip;\n this.I = AsyncInflate;\n this.Z = AsyncUnzlib;\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncDecompress.prototype.push = function (chunk, final) {\n Decompress.prototype.push.call(this, chunk, final);\n };\n return AsyncDecompress;\n}());\nexport { AsyncDecompress };\nexport function decompress(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzip(data, opts, cb)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflate(data, opts, cb)\n : unzlib(data, opts, cb);\n}\n/**\n * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function decompressSync(data, out) {\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzipSync(data, out)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflateSync(data, out)\n : unzlibSync(data, out);\n}\n// flatten a directory structure\nvar fltn = function (d, p, t, o) {\n for (var k in d) {\n var val = d[k], n = p + k, op = o;\n if (Array.isArray(val))\n op = mrg(o, val[1]), val = val[0];\n if (val instanceof u8)\n t[n] = [val, op];\n else {\n t[n += '/'] = [new u8(0), op];\n fltn(val, n, t, o);\n }\n }\n};\n// text encoder\nvar te = typeof TextEncoder != 'undefined' && /*#__PURE__*/ new TextEncoder();\n// text decoder\nvar td = typeof TextDecoder != 'undefined' && /*#__PURE__*/ new TextDecoder();\n// text decoder stream\nvar tds = 0;\ntry {\n td.decode(et, { stream: true });\n tds = 1;\n}\ncatch (e) { }\n// decode UTF8\nvar dutf8 = function (d) {\n for (var r = '', i = 0;;) {\n var c = d[i++];\n var eb = (c > 127) + (c > 223) + (c > 239);\n if (i + eb > d.length)\n return [r, slc(d, i - 1)];\n if (!eb)\n r += String.fromCharCode(c);\n else if (eb == 3) {\n c = ((c & 15) << 18 | (d[i++] & 63) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63)) - 65536,\n r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n }\n else if (eb & 1)\n r += String.fromCharCode((c & 31) << 6 | (d[i++] & 63));\n else\n r += String.fromCharCode((c & 15) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63));\n }\n};\n/**\n * Streaming UTF-8 decoding\n */\nvar DecodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is decoded\n */\n function DecodeUTF8(cb) {\n this.ondata = cb;\n if (tds)\n this.t = new TextDecoder();\n else\n this.p = et;\n }\n /**\n * Pushes a chunk to be decoded from UTF-8 binary\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n DecodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n final = !!final;\n if (this.t) {\n this.ondata(this.t.decode(chunk, { stream: true }), final);\n if (final) {\n if (this.t.decode().length)\n err(8);\n this.t = null;\n }\n return;\n }\n if (!this.p)\n err(4);\n var dat = new u8(this.p.length + chunk.length);\n dat.set(this.p);\n dat.set(chunk, this.p.length);\n var _a = dutf8(dat), ch = _a[0], np = _a[1];\n if (final) {\n if (np.length)\n err(8);\n this.p = null;\n }\n else\n this.p = np;\n this.ondata(ch, final);\n };\n return DecodeUTF8;\n}());\nexport { DecodeUTF8 };\n/**\n * Streaming UTF-8 encoding\n */\nvar EncodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is encoded\n */\n function EncodeUTF8(cb) {\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be encoded to UTF-8\n * @param chunk The string data to push\n * @param final Whether this is the last chunk\n */\n EncodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n this.ondata(strToU8(chunk), this.d = final || false);\n };\n return EncodeUTF8;\n}());\nexport { EncodeUTF8 };\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nexport function strToU8(str, latin1) {\n if (latin1) {\n var ar_1 = new u8(str.length);\n for (var i = 0; i < str.length; ++i)\n ar_1[i] = str.charCodeAt(i);\n return ar_1;\n }\n if (te)\n return te.encode(str);\n var l = str.length;\n var ar = new u8(str.length + (str.length >> 1));\n var ai = 0;\n var w = function (v) { ar[ai++] = v; };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + ((l - i) << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | (c >> 6)), w(128 | (c & 63));\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n w(240 | (c >> 18)), w(128 | ((c >> 12) & 63)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n else\n w(224 | (c >> 12)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n }\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nexport function strFromU8(dat, latin1) {\n if (latin1) {\n var r = '';\n for (var i = 0; i < dat.length; i += 16384)\n r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384));\n return r;\n }\n else if (td)\n return td.decode(dat);\n else {\n var _a = dutf8(dat), out = _a[0], ext = _a[1];\n if (ext.length)\n err(8);\n return out;\n }\n}\n;\n// deflate bit flag\nvar dbf = function (l) { return l == 1 ? 3 : l < 6 ? 2 : l == 9 ? 1 : 0; };\n// skip local zip header\nvar slzh = function (d, b) { return b + 30 + b2(d, b + 26) + b2(d, b + 28); };\n// read zip header\nvar zh = function (d, b, z) {\n var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20);\n var _a = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a[0], su = _a[1], off = _a[2];\n return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n};\n// read zip64 extra field\nvar z64e = function (d, b) {\n for (; b2(d, b) != 1; b += 4 + b2(d, b + 2))\n ;\n return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)];\n};\n// extra field length\nvar exfl = function (ex) {\n var le = 0;\n if (ex) {\n for (var k in ex) {\n var l = ex[k].length;\n if (l > 65535)\n err(9);\n le += l + 4;\n }\n }\n return le;\n};\n// write zip header\nvar wzh = function (d, b, f, fn, u, c, ce, co) {\n var fl = fn.length, ex = f.extra, col = co && co.length;\n var exl = exfl(ex);\n wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n if (ce != null)\n d[b++] = 20, d[b++] = f.os;\n d[b] = 20, b += 2; // spec compliance? what's that?\n d[b++] = (f.flag << 1) | (c == null && 8), d[b++] = u && 8;\n d[b++] = f.compression & 255, d[b++] = f.compression >> 8;\n var dt = new Date(f.mtime == null ? Date.now() : f.mtime), y = dt.getFullYear() - 1980;\n if (y < 0 || y > 119)\n err(10);\n wbytes(d, b, (y << 25) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >>> 1)), b += 4;\n if (c != null) {\n wbytes(d, b, f.crc);\n wbytes(d, b + 4, c);\n wbytes(d, b + 8, f.size);\n }\n wbytes(d, b + 12, fl);\n wbytes(d, b + 14, exl), b += 16;\n if (ce != null) {\n wbytes(d, b, col);\n wbytes(d, b + 6, f.attrs);\n wbytes(d, b + 10, ce), b += 14;\n }\n d.set(fn, b);\n b += fl;\n if (exl) {\n for (var k in ex) {\n var exf = ex[k], l = exf.length;\n wbytes(d, b, +k);\n wbytes(d, b + 2, l);\n d.set(exf, b + 4), b += 4 + l;\n }\n }\n if (col)\n d.set(co, b), b += col;\n return b;\n};\n// write zip footer (end of central directory)\nvar wzf = function (o, b, c, d, e) {\n wbytes(o, b, 0x6054B50); // skip disk\n wbytes(o, b + 8, c);\n wbytes(o, b + 10, c);\n wbytes(o, b + 12, d);\n wbytes(o, b + 16, e);\n};\n/**\n * A pass-through stream to keep data uncompressed in a ZIP archive.\n */\nvar ZipPassThrough = /*#__PURE__*/ (function () {\n /**\n * Creates a pass-through stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n */\n function ZipPassThrough(filename) {\n this.filename = filename;\n this.c = crc();\n this.size = 0;\n this.compression = 0;\n }\n /**\n * Processes a chunk and pushes to the output stream. You can override this\n * method in a subclass for custom behavior, but by default this passes\n * the data through. You must call this.ondata(err, chunk, final) at some\n * point in this method.\n * @param chunk The chunk to process\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.process = function (chunk, final) {\n this.ondata(null, chunk, final);\n };\n /**\n * Pushes a chunk to be added. If you are subclassing this with a custom\n * compression algorithm, note that you must push data from the source\n * file only, pre-compression.\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n this.c.p(chunk);\n this.size += chunk.length;\n if (final)\n this.crc = this.c.d();\n this.process(chunk, final || false);\n };\n return ZipPassThrough;\n}());\nexport { ZipPassThrough };\n// I don't extend because TypeScript extension adds 1kB of runtime bloat\n/**\n * Streaming DEFLATE compression for ZIP archives. Prefer using AsyncZipDeflate\n * for better performance\n */\nvar ZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function ZipDeflate(filename, opts) {\n var _this_1 = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new Deflate(opts, function (dat, final) {\n _this_1.ondata(null, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n }\n ZipDeflate.prototype.process = function (chunk, final) {\n try {\n this.d.push(chunk, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return ZipDeflate;\n}());\nexport { ZipDeflate };\n/**\n * Asynchronous streaming DEFLATE compression for ZIP archives\n */\nvar AsyncZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function AsyncZipDeflate(filename, opts) {\n var _this_1 = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new AsyncDeflate(opts, function (err, dat, final) {\n _this_1.ondata(err, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n this.terminate = this.d.terminate;\n }\n AsyncZipDeflate.prototype.process = function (chunk, final) {\n this.d.push(chunk, final);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return AsyncZipDeflate;\n}());\nexport { AsyncZipDeflate };\n// TODO: Better tree shaking\n/**\n * A zippable archive to which files can incrementally be added\n */\nvar Zip = /*#__PURE__*/ (function () {\n /**\n * Creates an empty ZIP archive to which files can be added\n * @param cb The callback to call whenever data for the generated ZIP archive\n * is available\n */\n function Zip(cb) {\n this.ondata = cb;\n this.u = [];\n this.d = 1;\n }\n /**\n * Adds a file to the ZIP archive\n * @param file The file stream to add\n */\n Zip.prototype.add = function (file) {\n var _this_1 = this;\n if (!this.ondata)\n err(5);\n // finishing or finished\n if (this.d & 2)\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, false);\n else {\n var f = strToU8(file.filename), fl_1 = f.length;\n var com = file.comment, o = com && strToU8(com);\n var u = fl_1 != file.filename.length || (o && (com.length != o.length));\n var hl_1 = fl_1 + exfl(file.extra) + 30;\n if (fl_1 > 65535)\n this.ondata(err(11, 0, 1), null, false);\n var header = new u8(hl_1);\n wzh(header, 0, file, f, u);\n var chks_1 = [header];\n var pAll_1 = function () {\n for (var _i = 0, chks_2 = chks_1; _i < chks_2.length; _i++) {\n var chk = chks_2[_i];\n _this_1.ondata(null, chk, false);\n }\n chks_1 = [];\n };\n var tr_1 = this.d;\n this.d = 0;\n var ind_1 = this.u.length;\n var uf_1 = mrg(file, {\n f: f,\n u: u,\n o: o,\n t: function () {\n if (file.terminate)\n file.terminate();\n },\n r: function () {\n pAll_1();\n if (tr_1) {\n var nxt = _this_1.u[ind_1 + 1];\n if (nxt)\n nxt.r();\n else\n _this_1.d = 1;\n }\n tr_1 = 1;\n }\n });\n var cl_1 = 0;\n file.ondata = function (err, dat, final) {\n if (err) {\n _this_1.ondata(err, dat, final);\n _this_1.terminate();\n }\n else {\n cl_1 += dat.length;\n chks_1.push(dat);\n if (final) {\n var dd = new u8(16);\n wbytes(dd, 0, 0x8074B50);\n wbytes(dd, 4, file.crc);\n wbytes(dd, 8, cl_1);\n wbytes(dd, 12, file.size);\n chks_1.push(dd);\n uf_1.c = cl_1, uf_1.b = hl_1 + cl_1 + 16, uf_1.crc = file.crc, uf_1.size = file.size;\n if (tr_1)\n uf_1.r();\n tr_1 = 1;\n }\n else if (tr_1)\n pAll_1();\n }\n };\n this.u.push(uf_1);\n }\n };\n /**\n * Ends the process of adding files and prepares to emit the final chunks.\n * This *must* be called after adding all desired files for the resulting\n * ZIP file to work properly.\n */\n Zip.prototype.end = function () {\n var _this_1 = this;\n if (this.d & 2) {\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, true);\n return;\n }\n if (this.d)\n this.e();\n else\n this.u.push({\n r: function () {\n if (!(_this_1.d & 1))\n return;\n _this_1.u.splice(-1, 1);\n _this_1.e();\n },\n t: function () { }\n });\n this.d = 3;\n };\n Zip.prototype.e = function () {\n var bt = 0, l = 0, tl = 0;\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n tl += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0);\n }\n var out = new u8(tl + 22);\n for (var _b = 0, _c = this.u; _b < _c.length; _b++) {\n var f = _c[_b];\n wzh(out, bt, f, f.f, f.u, f.c, l, f.o);\n bt += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0), l += f.b;\n }\n wzf(out, bt, this.u.length, tl, l);\n this.ondata(null, out, true);\n this.d = 2;\n };\n /**\n * A method to terminate any internal workers used by the stream. Subsequent\n * calls to add() will fail.\n */\n Zip.prototype.terminate = function () {\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n f.t();\n }\n this.d = 2;\n };\n return Zip;\n}());\nexport { Zip };\nexport function zip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var r = {};\n fltn(data, '', r, opts);\n var k = Object.keys(r);\n var lft = k.length, o = 0, tot = 0;\n var slft = lft, files = new Array(lft);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var cbf = function () {\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n tot = 0;\n for (var i = 0; i < slft; ++i) {\n var f = files[i];\n try {\n var l = f.c.length;\n wzh(out, tot, f, f.f, f.u, l);\n var badd = 30 + f.f.length + exfl(f.extra);\n var loc = tot + badd;\n out.set(f.c, loc);\n wzh(out, o, f, f.f, f.u, l, tot, f.m), o += 16 + badd + (f.m ? f.m.length : 0), tot = loc + l;\n }\n catch (e) {\n return cbd(e, null);\n }\n }\n wzf(out, o, files.length, cdl, oe);\n cbd(null, out);\n };\n if (!lft)\n cbf();\n var _loop_1 = function (i) {\n var fn = k[i];\n var _a = r[fn], file = _a[0], p = _a[1];\n var c = crc(), size = file.length;\n c.p(file);\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n var compression = p.level == 0 ? 0 : 8;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n var l = d.length;\n files[i] = mrg(p, {\n size: size,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n compression: compression\n });\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n if (!--lft)\n cbf();\n }\n };\n if (s > 65535)\n cbl(err(11, 0, 1), null);\n if (!compression)\n cbl(null, file);\n else if (size < 160000) {\n try {\n cbl(null, deflateSync(file, p));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(deflate(file, p, cbl));\n };\n // Cannot use lft because it can decrease\n for (var i = 0; i < slft; ++i) {\n _loop_1(i);\n }\n return tAll;\n}\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\nexport function zipSync(data, opts) {\n if (!opts)\n opts = {};\n var r = {};\n var files = [];\n fltn(data, '', r, opts);\n var o = 0;\n var tot = 0;\n for (var fn in r) {\n var _a = r[fn], file = _a[0], p = _a[1];\n var compression = p.level == 0 ? 0 : 8;\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n if (s > 65535)\n err(11);\n var d = compression ? deflateSync(file, p) : file, l = d.length;\n var c = crc();\n c.p(file);\n files.push(mrg(p, {\n size: file.length,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n o: o,\n compression: compression\n }));\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n }\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n for (var i = 0; i < files.length; ++i) {\n var f = files[i];\n wzh(out, f.o, f, f.f, f.u, f.c.length);\n var badd = 30 + f.f.length + exfl(f.extra);\n out.set(f.c, f.o + badd);\n wzh(out, o, f, f.f, f.u, f.c.length, f.o, f.m), o += 16 + badd + (f.m ? f.m.length : 0);\n }\n wzf(out, o, files.length, cdl, oe);\n return out;\n}\n/**\n * Streaming pass-through decompression for ZIP archives\n */\nvar UnzipPassThrough = /*#__PURE__*/ (function () {\n function UnzipPassThrough() {\n }\n UnzipPassThrough.prototype.push = function (data, final) {\n this.ondata(null, data, final);\n };\n UnzipPassThrough.compression = 0;\n return UnzipPassThrough;\n}());\nexport { UnzipPassThrough };\n/**\n * Streaming DEFLATE decompression for ZIP archives. Prefer AsyncZipInflate for\n * better performance.\n */\nvar UnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function UnzipInflate() {\n var _this_1 = this;\n this.i = new Inflate(function (dat, final) {\n _this_1.ondata(null, dat, final);\n });\n }\n UnzipInflate.prototype.push = function (data, final) {\n try {\n this.i.push(data, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n UnzipInflate.compression = 8;\n return UnzipInflate;\n}());\nexport { UnzipInflate };\n/**\n * Asynchronous streaming DEFLATE decompression for ZIP archives\n */\nvar AsyncUnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function AsyncUnzipInflate(_, sz) {\n var _this_1 = this;\n if (sz < 320000) {\n this.i = new Inflate(function (dat, final) {\n _this_1.ondata(null, dat, final);\n });\n }\n else {\n this.i = new AsyncInflate(function (err, dat, final) {\n _this_1.ondata(err, dat, final);\n });\n this.terminate = this.i.terminate;\n }\n }\n AsyncUnzipInflate.prototype.push = function (data, final) {\n if (this.i.terminate)\n data = slc(data, 0);\n this.i.push(data, final);\n };\n AsyncUnzipInflate.compression = 8;\n return AsyncUnzipInflate;\n}());\nexport { AsyncUnzipInflate };\n/**\n * A ZIP archive decompression stream that emits files as they are discovered\n */\nvar Unzip = /*#__PURE__*/ (function () {\n /**\n * Creates a ZIP decompression stream\n * @param cb The callback to call whenever a file in the ZIP archive is found\n */\n function Unzip(cb) {\n this.onfile = cb;\n this.k = [];\n this.o = {\n 0: UnzipPassThrough\n };\n this.p = et;\n }\n /**\n * Pushes a chunk to be unzipped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzip.prototype.push = function (chunk, final) {\n var _this_1 = this;\n if (!this.onfile)\n err(5);\n if (!this.p)\n err(4);\n if (this.c > 0) {\n var len = Math.min(this.c, chunk.length);\n var toAdd = chunk.subarray(0, len);\n this.c -= len;\n if (this.d)\n this.d.push(toAdd, !this.c);\n else\n this.k[0].push(toAdd);\n chunk = chunk.subarray(len);\n if (chunk.length)\n return this.push(chunk, final);\n }\n else {\n var f = 0, i = 0, is = void 0, buf = void 0;\n if (!this.p.length)\n buf = chunk;\n else if (!chunk.length)\n buf = this.p;\n else {\n buf = new u8(this.p.length + chunk.length);\n buf.set(this.p), buf.set(chunk, this.p.length);\n }\n var l = buf.length, oc = this.c, add = oc && this.d;\n var _loop_2 = function () {\n var _a;\n var sig = b4(buf, i);\n if (sig == 0x4034B50) {\n f = 1, is = i;\n this_1.d = null;\n this_1.c = 0;\n var bf = b2(buf, i + 6), cmp_1 = b2(buf, i + 8), u = bf & 2048, dd = bf & 8, fnl = b2(buf, i + 26), es = b2(buf, i + 28);\n if (l > i + 30 + fnl + es) {\n var chks_3 = [];\n this_1.k.unshift(chks_3);\n f = 2;\n var sc_1 = b4(buf, i + 18), su_1 = b4(buf, i + 22);\n var fn_1 = strFromU8(buf.subarray(i + 30, i += 30 + fnl), !u);\n if (sc_1 == 4294967295) {\n _a = dd ? [-2] : z64e(buf, i), sc_1 = _a[0], su_1 = _a[1];\n }\n else if (dd)\n sc_1 = -1;\n i += es;\n this_1.c = sc_1;\n var d_1;\n var file_1 = {\n name: fn_1,\n compression: cmp_1,\n start: function () {\n if (!file_1.ondata)\n err(5);\n if (!sc_1)\n file_1.ondata(null, et, true);\n else {\n var ctr = _this_1.o[cmp_1];\n if (!ctr)\n file_1.ondata(err(14, 'unknown compression type ' + cmp_1, 1), null, false);\n d_1 = sc_1 < 0 ? new ctr(fn_1) : new ctr(fn_1, sc_1, su_1);\n d_1.ondata = function (err, dat, final) { file_1.ondata(err, dat, final); };\n for (var _i = 0, chks_4 = chks_3; _i < chks_4.length; _i++) {\n var dat = chks_4[_i];\n d_1.push(dat, false);\n }\n if (_this_1.k[0] == chks_3 && _this_1.c)\n _this_1.d = d_1;\n else\n d_1.push(et, true);\n }\n },\n terminate: function () {\n if (d_1 && d_1.terminate)\n d_1.terminate();\n }\n };\n if (sc_1 >= 0)\n file_1.size = sc_1, file_1.originalSize = su_1;\n this_1.onfile(file_1);\n }\n return \"break\";\n }\n else if (oc) {\n if (sig == 0x8074B50) {\n is = i += 12 + (oc == -2 && 8), f = 3, this_1.c = 0;\n return \"break\";\n }\n else if (sig == 0x2014B50) {\n is = i -= 4, f = 3, this_1.c = 0;\n return \"break\";\n }\n }\n };\n var this_1 = this;\n for (; i < l - 4; ++i) {\n var state_1 = _loop_2();\n if (state_1 === \"break\")\n break;\n }\n this.p = et;\n if (oc < 0) {\n var dat = f ? buf.subarray(0, is - 12 - (oc == -2 && 8) - (b4(buf, is - 16) == 0x8074B50 && 4)) : buf.subarray(0, i);\n if (add)\n add.push(dat, !!f);\n else\n this.k[+(f == 2)].push(dat);\n }\n if (f & 2)\n return this.push(buf.subarray(i), final);\n this.p = buf.subarray(i);\n }\n if (final) {\n if (this.c)\n err(13);\n this.p = null;\n }\n };\n /**\n * Registers a decoder with the stream, allowing for files compressed with\n * the compression type provided to be expanded correctly\n * @param decoder The decoder constructor\n */\n Unzip.prototype.register = function (decoder) {\n this.o[decoder.compression] = decoder;\n };\n return Unzip;\n}());\nexport { Unzip };\nvar mt = typeof queueMicrotask == 'function' ? queueMicrotask : typeof setTimeout == 'function' ? setTimeout : function (fn) { fn(); };\nexport function unzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var files = {};\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) {\n cbd(err(13, 0, 1), null);\n return tAll;\n }\n }\n ;\n var lft = b2(data, e + 8);\n if (lft) {\n var c = lft;\n var o = b4(data, e + 16);\n var z = o == 4294967295;\n if (z) {\n e = b4(data, e - 12);\n if (b4(data, e) != 0x6064B50) {\n cbd(err(13, 0, 1), null);\n return tAll;\n }\n c = lft = b4(data, e + 32);\n o = b4(data, e + 48);\n }\n var fltr = opts && opts.filter;\n var _loop_3 = function (i) {\n var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n if (d)\n files[fn] = d;\n if (!--lft)\n cbd(null, files);\n }\n };\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_1\n })) {\n if (!c_1)\n cbl(null, slc(data, b, b + sc));\n else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n if (sc < 320000) {\n try {\n cbl(null, inflateSync(infl, new u8(su)));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(inflate(infl, { size: su }, cbl));\n }\n else\n cbl(err(14, 'unknown compression type ' + c_1, 1), null);\n }\n else\n cbl(null, null);\n };\n for (var i = 0; i < c; ++i) {\n _loop_3(i);\n }\n }\n else\n cbd(null, {});\n return tAll;\n}\n/**\n * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better\n * performance with more than one file.\n * @param data The raw compressed ZIP file\n * @param opts The ZIP extraction options\n * @returns The decompressed files\n */\nexport function unzipSync(data, opts) {\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558)\n err(13);\n }\n ;\n var c = b2(data, e + 8);\n if (!c)\n return {};\n var o = b4(data, e + 16);\n var z = o == 4294967295;\n if (z) {\n e = b4(data, e - 12);\n if (b4(data, e) != 0x6064B50)\n err(13);\n c = b4(data, e + 32);\n o = b4(data, e + 48);\n }\n var fltr = opts && opts.filter;\n for (var i = 0; i < c; ++i) {\n var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_2\n })) {\n if (!c_2)\n files[fn] = slc(data, b, b + sc);\n else if (c_2 == 8)\n files[fn] = inflateSync(data.subarray(b, b + sc), new u8(su));\n else\n err(14, 'unknown compression type ' + c_2);\n }\n }\n return files;\n}\n","// Geometric objects\n\n// import BoundingBox from './bbox';\n\n/**\n * A bézier path containing a set of path commands similar to a SVG path.\n * Paths can be drawn on a context using `draw`.\n * @exports opentype.Path\n * @class\n * @constructor\n */\nfunction Path() {\n this.commands = [];\n this.fill = 'black';\n this.stroke = null;\n this.strokeWidth = 1;\n}\n\n/**\n * @param {number} x\n * @param {number} y\n */\nPath.prototype.moveTo = function (x, y) {\n this.commands.push({\n type: 'M',\n x: x,\n y: y,\n });\n};\n\n/**\n * @param {number} x\n * @param {number} y\n */\nPath.prototype.lineTo = function (x, y) {\n this.commands.push({\n type: 'L',\n x: x,\n y: y,\n });\n};\n\n/**\n * Draws cubic curve\n * @function\n * curveTo\n * @memberof opentype.Path.prototype\n * @param {number} x1 - x of control 1\n * @param {number} y1 - y of control 1\n * @param {number} x2 - x of control 2\n * @param {number} y2 - y of control 2\n * @param {number} x - x of path point\n * @param {number} y - y of path point\n */\n\n/**\n * Draws cubic curve\n * @function\n * bezierCurveTo\n * @memberof opentype.Path.prototype\n * @param {number} x1 - x of control 1\n * @param {number} y1 - y of control 1\n * @param {number} x2 - x of control 2\n * @param {number} y2 - y of control 2\n * @param {number} x - x of path point\n * @param {number} y - y of path point\n * @see curveTo\n */\nPath.prototype.curveTo = Path.prototype.bezierCurveTo = function (\n x1,\n y1,\n x2,\n y2,\n x,\n y\n) {\n this.commands.push({\n type: 'C',\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2,\n x: x,\n y: y,\n });\n};\n\n/**\n * Draws quadratic curve\n * @function\n * quadraticCurveTo\n * @memberof opentype.Path.prototype\n * @param {number} x1 - x of control\n * @param {number} y1 - y of control\n * @param {number} x - x of path point\n * @param {number} y - y of path point\n */\n\n/**\n * Draws quadratic curve\n * @function\n * quadTo\n * @memberof opentype.Path.prototype\n * @param {number} x1 - x of control\n * @param {number} y1 - y of control\n * @param {number} x - x of path point\n * @param {number} y - y of path point\n */\nPath.prototype.quadTo = Path.prototype.quadraticCurveTo = function (\n x1,\n y1,\n x,\n y\n) {\n this.commands.push({\n type: 'Q',\n x1: x1,\n y1: y1,\n x: x,\n y: y,\n });\n};\n\n/**\n * Closes the path\n * @function closePath\n * @memberof opentype.Path.prototype\n */\n\n/**\n * Close the path\n * @function close\n * @memberof opentype.Path.prototype\n */\nPath.prototype.close = Path.prototype.closePath = function () {\n this.commands.push({\n type: 'Z',\n });\n};\n\n/**\n * Add the given path or list of commands to the commands of this path.\n * @param {Array} pathOrCommands - another opentype.Path, an opentype.BoundingBox, or an array of commands.\n */\nPath.prototype.extend = function (pathOrCommands) {\n if (pathOrCommands.commands) {\n pathOrCommands = pathOrCommands.commands;\n }\n // else if (pathOrCommands instanceof BoundingBox) {\n // const box = pathOrCommands;\n // this.moveTo(box.x1, box.y1);\n // this.lineTo(box.x2, box.y1);\n // this.lineTo(box.x2, box.y2);\n // this.lineTo(box.x1, box.y2);\n // this.close();\n // return;\n // }\n\n Array.prototype.push.apply(this.commands, pathOrCommands);\n};\n\n/**\n * Convert the Path to a string of path data instructions\n * See http://www.w3.org/TR/SVG/paths.html#PathData\n * @param {number} [decimalPlaces=2] - The amount of decimal places for floating-point values\n * @return {string}\n */\nPath.prototype.toPathData = function (decimalPlaces) {\n decimalPlaces = decimalPlaces !== undefined ? decimalPlaces : 2;\n\n function floatToString(v) {\n if (Math.round(v) === v) {\n return '' + Math.round(v);\n } else {\n return v.toFixed(decimalPlaces);\n }\n }\n\n function packValues() {\n let s = '';\n for (let i = 0; i < arguments.length; i += 1) {\n const v = arguments[i];\n if (v >= 0 && i > 0) {\n s += ' ';\n }\n\n s += floatToString(v);\n }\n\n return s;\n }\n\n let d = '';\n for (let i = 0; i < this.commands.length; i += 1) {\n const cmd = this.commands[i];\n if (cmd.type === 'M') {\n d += 'M' + packValues(cmd.x, cmd.y);\n } else if (cmd.type === 'L') {\n d += 'L' + packValues(cmd.x, cmd.y);\n } else if (cmd.type === 'C') {\n d += 'C' + packValues(cmd.x1, cmd.y1, cmd.x2, cmd.y2, cmd.x, cmd.y);\n } else if (cmd.type === 'Q') {\n d += 'Q' + packValues(cmd.x1, cmd.y1, cmd.x, cmd.y);\n } else if (cmd.type === 'Z') {\n d += 'Z';\n }\n }\n\n return d;\n};\n\nexport default Path;\n","// Glyph encoding\n\nconst cffStandardStrings = [\n '.notdef',\n 'space',\n 'exclam',\n 'quotedbl',\n 'numbersign',\n 'dollar',\n 'percent',\n 'ampersand',\n 'quoteright',\n 'parenleft',\n 'parenright',\n 'asterisk',\n 'plus',\n 'comma',\n 'hyphen',\n 'period',\n 'slash',\n 'zero',\n 'one',\n 'two',\n 'three',\n 'four',\n 'five',\n 'six',\n 'seven',\n 'eight',\n 'nine',\n 'colon',\n 'semicolon',\n 'less',\n 'equal',\n 'greater',\n 'question',\n 'at',\n 'A',\n 'B',\n 'C',\n 'D',\n 'E',\n 'F',\n 'G',\n 'H',\n 'I',\n 'J',\n 'K',\n 'L',\n 'M',\n 'N',\n 'O',\n 'P',\n 'Q',\n 'R',\n 'S',\n 'T',\n 'U',\n 'V',\n 'W',\n 'X',\n 'Y',\n 'Z',\n 'bracketleft',\n 'backslash',\n 'bracketright',\n 'asciicircum',\n 'underscore',\n 'quoteleft',\n 'a',\n 'b',\n 'c',\n 'd',\n 'e',\n 'f',\n 'g',\n 'h',\n 'i',\n 'j',\n 'k',\n 'l',\n 'm',\n 'n',\n 'o',\n 'p',\n 'q',\n 'r',\n 's',\n 't',\n 'u',\n 'v',\n 'w',\n 'x',\n 'y',\n 'z',\n 'braceleft',\n 'bar',\n 'braceright',\n 'asciitilde',\n 'exclamdown',\n 'cent',\n 'sterling',\n 'fraction',\n 'yen',\n 'florin',\n 'section',\n 'currency',\n 'quotesingle',\n 'quotedblleft',\n 'guillemotleft',\n 'guilsinglleft',\n 'guilsinglright',\n 'fi',\n 'fl',\n 'endash',\n 'dagger',\n 'daggerdbl',\n 'periodcentered',\n 'paragraph',\n 'bullet',\n 'quotesinglbase',\n 'quotedblbase',\n 'quotedblright',\n 'guillemotright',\n 'ellipsis',\n 'perthousand',\n 'questiondown',\n 'grave',\n 'acute',\n 'circumflex',\n 'tilde',\n 'macron',\n 'breve',\n 'dotaccent',\n 'dieresis',\n 'ring',\n 'cedilla',\n 'hungarumlaut',\n 'ogonek',\n 'caron',\n 'emdash',\n 'AE',\n 'ordfeminine',\n 'Lslash',\n 'Oslash',\n 'OE',\n 'ordmasculine',\n 'ae',\n 'dotlessi',\n 'lslash',\n 'oslash',\n 'oe',\n 'germandbls',\n 'onesuperior',\n 'logicalnot',\n 'mu',\n 'trademark',\n 'Eth',\n 'onehalf',\n 'plusminus',\n 'Thorn',\n 'onequarter',\n 'divide',\n 'brokenbar',\n 'degree',\n 'thorn',\n 'threequarters',\n 'twosuperior',\n 'registered',\n 'minus',\n 'eth',\n 'multiply',\n 'threesuperior',\n 'copyright',\n 'Aacute',\n 'Acircumflex',\n 'Adieresis',\n 'Agrave',\n 'Aring',\n 'Atilde',\n 'Ccedilla',\n 'Eacute',\n 'Ecircumflex',\n 'Edieresis',\n 'Egrave',\n 'Iacute',\n 'Icircumflex',\n 'Idieresis',\n 'Igrave',\n 'Ntilde',\n 'Oacute',\n 'Ocircumflex',\n 'Odieresis',\n 'Ograve',\n 'Otilde',\n 'Scaron',\n 'Uacute',\n 'Ucircumflex',\n 'Udieresis',\n 'Ugrave',\n 'Yacute',\n 'Ydieresis',\n 'Zcaron',\n 'aacute',\n 'acircumflex',\n 'adieresis',\n 'agrave',\n 'aring',\n 'atilde',\n 'ccedilla',\n 'eacute',\n 'ecircumflex',\n 'edieresis',\n 'egrave',\n 'iacute',\n 'icircumflex',\n 'idieresis',\n 'igrave',\n 'ntilde',\n 'oacute',\n 'ocircumflex',\n 'odieresis',\n 'ograve',\n 'otilde',\n 'scaron',\n 'uacute',\n 'ucircumflex',\n 'udieresis',\n 'ugrave',\n 'yacute',\n 'ydieresis',\n 'zcaron',\n 'exclamsmall',\n 'Hungarumlautsmall',\n 'dollaroldstyle',\n 'dollarsuperior',\n 'ampersandsmall',\n 'Acutesmall',\n 'parenleftsuperior',\n 'parenrightsuperior',\n '266 ff',\n 'onedotenleader',\n 'zerooldstyle',\n 'oneoldstyle',\n 'twooldstyle',\n 'threeoldstyle',\n 'fouroldstyle',\n 'fiveoldstyle',\n 'sixoldstyle',\n 'sevenoldstyle',\n 'eightoldstyle',\n 'nineoldstyle',\n 'commasuperior',\n 'threequartersemdash',\n 'periodsuperior',\n 'questionsmall',\n 'asuperior',\n 'bsuperior',\n 'centsuperior',\n 'dsuperior',\n 'esuperior',\n 'isuperior',\n 'lsuperior',\n 'msuperior',\n 'nsuperior',\n 'osuperior',\n 'rsuperior',\n 'ssuperior',\n 'tsuperior',\n 'ff',\n 'ffi',\n 'ffl',\n 'parenleftinferior',\n 'parenrightinferior',\n 'Circumflexsmall',\n 'hyphensuperior',\n 'Gravesmall',\n 'Asmall',\n 'Bsmall',\n 'Csmall',\n 'Dsmall',\n 'Esmall',\n 'Fsmall',\n 'Gsmall',\n 'Hsmall',\n 'Ismall',\n 'Jsmall',\n 'Ksmall',\n 'Lsmall',\n 'Msmall',\n 'Nsmall',\n 'Osmall',\n 'Psmall',\n 'Qsmall',\n 'Rsmall',\n 'Ssmall',\n 'Tsmall',\n 'Usmall',\n 'Vsmall',\n 'Wsmall',\n 'Xsmall',\n 'Ysmall',\n 'Zsmall',\n 'colonmonetary',\n 'onefitted',\n 'rupiah',\n 'Tildesmall',\n 'exclamdownsmall',\n 'centoldstyle',\n 'Lslashsmall',\n 'Scaronsmall',\n 'Zcaronsmall',\n 'Dieresissmall',\n 'Brevesmall',\n 'Caronsmall',\n 'Dotaccentsmall',\n 'Macronsmall',\n 'figuredash',\n 'hypheninferior',\n 'Ogoneksmall',\n 'Ringsmall',\n 'Cedillasmall',\n 'questiondownsmall',\n 'oneeighth',\n 'threeeighths',\n 'fiveeighths',\n 'seveneighths',\n 'onethird',\n 'twothirds',\n 'zerosuperior',\n 'foursuperior',\n 'fivesuperior',\n 'sixsuperior',\n 'sevensuperior',\n 'eightsuperior',\n 'ninesuperior',\n 'zeroinferior',\n 'oneinferior',\n 'twoinferior',\n 'threeinferior',\n 'fourinferior',\n 'fiveinferior',\n 'sixinferior',\n 'seveninferior',\n 'eightinferior',\n 'nineinferior',\n 'centinferior',\n 'dollarinferior',\n 'periodinferior',\n 'commainferior',\n 'Agravesmall',\n 'Aacutesmall',\n 'Acircumflexsmall',\n 'Atildesmall',\n 'Adieresissmall',\n 'Aringsmall',\n 'AEsmall',\n 'Ccedillasmall',\n 'Egravesmall',\n 'Eacutesmall',\n 'Ecircumflexsmall',\n 'Edieresissmall',\n 'Igravesmall',\n 'Iacutesmall',\n 'Icircumflexsmall',\n 'Idieresissmall',\n 'Ethsmall',\n 'Ntildesmall',\n 'Ogravesmall',\n 'Oacutesmall',\n 'Ocircumflexsmall',\n 'Otildesmall',\n 'Odieresissmall',\n 'OEsmall',\n 'Oslashsmall',\n 'Ugravesmall',\n 'Uacutesmall',\n 'Ucircumflexsmall',\n 'Udieresissmall',\n 'Yacutesmall',\n 'Thornsmall',\n 'Ydieresissmall',\n '001.000',\n '001.001',\n '001.002',\n '001.003',\n 'Black',\n 'Bold',\n 'Book',\n 'Light',\n 'Medium',\n 'Regular',\n 'Roman',\n 'Semibold',\n];\n\nconst cffStandardEncoding = [\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n 'space',\n 'exclam',\n 'quotedbl',\n 'numbersign',\n 'dollar',\n 'percent',\n 'ampersand',\n 'quoteright',\n 'parenleft',\n 'parenright',\n 'asterisk',\n 'plus',\n 'comma',\n 'hyphen',\n 'period',\n 'slash',\n 'zero',\n 'one',\n 'two',\n 'three',\n 'four',\n 'five',\n 'six',\n 'seven',\n 'eight',\n 'nine',\n 'colon',\n 'semicolon',\n 'less',\n 'equal',\n 'greater',\n 'question',\n 'at',\n 'A',\n 'B',\n 'C',\n 'D',\n 'E',\n 'F',\n 'G',\n 'H',\n 'I',\n 'J',\n 'K',\n 'L',\n 'M',\n 'N',\n 'O',\n 'P',\n 'Q',\n 'R',\n 'S',\n 'T',\n 'U',\n 'V',\n 'W',\n 'X',\n 'Y',\n 'Z',\n 'bracketleft',\n 'backslash',\n 'bracketright',\n 'asciicircum',\n 'underscore',\n 'quoteleft',\n 'a',\n 'b',\n 'c',\n 'd',\n 'e',\n 'f',\n 'g',\n 'h',\n 'i',\n 'j',\n 'k',\n 'l',\n 'm',\n 'n',\n 'o',\n 'p',\n 'q',\n 'r',\n 's',\n 't',\n 'u',\n 'v',\n 'w',\n 'x',\n 'y',\n 'z',\n 'braceleft',\n 'bar',\n 'braceright',\n 'asciitilde',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n 'exclamdown',\n 'cent',\n 'sterling',\n 'fraction',\n 'yen',\n 'florin',\n 'section',\n 'currency',\n 'quotesingle',\n 'quotedblleft',\n 'guillemotleft',\n 'guilsinglleft',\n 'guilsinglright',\n 'fi',\n 'fl',\n '',\n 'endash',\n 'dagger',\n 'daggerdbl',\n 'periodcentered',\n '',\n 'paragraph',\n 'bullet',\n 'quotesinglbase',\n 'quotedblbase',\n 'quotedblright',\n 'guillemotright',\n 'ellipsis',\n 'perthousand',\n '',\n 'questiondown',\n '',\n 'grave',\n 'acute',\n 'circumflex',\n 'tilde',\n 'macron',\n 'breve',\n 'dotaccent',\n 'dieresis',\n '',\n 'ring',\n 'cedilla',\n '',\n 'hungarumlaut',\n 'ogonek',\n 'caron',\n 'emdash',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n 'AE',\n '',\n 'ordfeminine',\n '',\n '',\n '',\n '',\n 'Lslash',\n 'Oslash',\n 'OE',\n 'ordmasculine',\n '',\n '',\n '',\n '',\n '',\n 'ae',\n '',\n '',\n '',\n 'dotlessi',\n '',\n '',\n 'lslash',\n 'oslash',\n 'oe',\n 'germandbls',\n];\n\nconst cffExpertEncoding = [\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n 'space',\n 'exclamsmall',\n 'Hungarumlautsmall',\n '',\n 'dollaroldstyle',\n 'dollarsuperior',\n 'ampersandsmall',\n 'Acutesmall',\n 'parenleftsuperior',\n 'parenrightsuperior',\n 'twodotenleader',\n 'onedotenleader',\n 'comma',\n 'hyphen',\n 'period',\n 'fraction',\n 'zerooldstyle',\n 'oneoldstyle',\n 'twooldstyle',\n 'threeoldstyle',\n 'fouroldstyle',\n 'fiveoldstyle',\n 'sixoldstyle',\n 'sevenoldstyle',\n 'eightoldstyle',\n 'nineoldstyle',\n 'colon',\n 'semicolon',\n 'commasuperior',\n 'threequartersemdash',\n 'periodsuperior',\n 'questionsmall',\n '',\n 'asuperior',\n 'bsuperior',\n 'centsuperior',\n 'dsuperior',\n 'esuperior',\n '',\n '',\n 'isuperior',\n '',\n '',\n 'lsuperior',\n 'msuperior',\n 'nsuperior',\n 'osuperior',\n '',\n '',\n 'rsuperior',\n 'ssuperior',\n 'tsuperior',\n '',\n 'ff',\n 'fi',\n 'fl',\n 'ffi',\n 'ffl',\n 'parenleftinferior',\n '',\n 'parenrightinferior',\n 'Circumflexsmall',\n 'hyphensuperior',\n 'Gravesmall',\n 'Asmall',\n 'Bsmall',\n 'Csmall',\n 'Dsmall',\n 'Esmall',\n 'Fsmall',\n 'Gsmall',\n 'Hsmall',\n 'Ismall',\n 'Jsmall',\n 'Ksmall',\n 'Lsmall',\n 'Msmall',\n 'Nsmall',\n 'Osmall',\n 'Psmall',\n 'Qsmall',\n 'Rsmall',\n 'Ssmall',\n 'Tsmall',\n 'Usmall',\n 'Vsmall',\n 'Wsmall',\n 'Xsmall',\n 'Ysmall',\n 'Zsmall',\n 'colonmonetary',\n 'onefitted',\n 'rupiah',\n 'Tildesmall',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n 'exclamdownsmall',\n 'centoldstyle',\n 'Lslashsmall',\n '',\n '',\n 'Scaronsmall',\n 'Zcaronsmall',\n 'Dieresissmall',\n 'Brevesmall',\n 'Caronsmall',\n '',\n 'Dotaccentsmall',\n '',\n '',\n 'Macronsmall',\n '',\n '',\n 'figuredash',\n 'hypheninferior',\n '',\n '',\n 'Ogoneksmall',\n 'Ringsmall',\n 'Cedillasmall',\n '',\n '',\n '',\n 'onequarter',\n 'onehalf',\n 'threequarters',\n 'questiondownsmall',\n 'oneeighth',\n 'threeeighths',\n 'fiveeighths',\n 'seveneighths',\n 'onethird',\n 'twothirds',\n '',\n '',\n 'zerosuperior',\n 'onesuperior',\n 'twosuperior',\n 'threesuperior',\n 'foursuperior',\n 'fivesuperior',\n 'sixsuperior',\n 'sevensuperior',\n 'eightsuperior',\n 'ninesuperior',\n 'zeroinferior',\n 'oneinferior',\n 'twoinferior',\n 'threeinferior',\n 'fourinferior',\n 'fiveinferior',\n 'sixinferior',\n 'seveninferior',\n 'eightinferior',\n 'nineinferior',\n 'centinferior',\n 'dollarinferior',\n 'periodinferior',\n 'commainferior',\n 'Agravesmall',\n 'Aacutesmall',\n 'Acircumflexsmall',\n 'Atildesmall',\n 'Adieresissmall',\n 'Aringsmall',\n 'AEsmall',\n 'Ccedillasmall',\n 'Egravesmall',\n 'Eacutesmall',\n 'Ecircumflexsmall',\n 'Edieresissmall',\n 'Igravesmall',\n 'Iacutesmall',\n 'Icircumflexsmall',\n 'Idieresissmall',\n 'Ethsmall',\n 'Ntildesmall',\n 'Ogravesmall',\n 'Oacutesmall',\n 'Ocircumflexsmall',\n 'Otildesmall',\n 'Odieresissmall',\n 'OEsmall',\n 'Oslashsmall',\n 'Ugravesmall',\n 'Uacutesmall',\n 'Ucircumflexsmall',\n 'Udieresissmall',\n 'Yacutesmall',\n 'Thornsmall',\n 'Ydieresissmall',\n];\n\n/**\n * This is the encoding used for fonts created from scratch.\n * It loops through all glyphs and finds the appropriate unicode value.\n * Since it's linear time, other encodings will be faster.\n * @exports opentype.DefaultEncoding\n * @class\n * @constructor\n * @param {opentype.Font}\n */\nfunction DefaultEncoding(font) {\n this.font = font;\n}\n\nDefaultEncoding.prototype.charToGlyphIndex = function (c) {\n const code = c.codePointAt(0);\n const glyphs = this.font.glyphs;\n if (glyphs) {\n for (let i = 0; i < glyphs.length; i += 1) {\n const glyph = glyphs.get(i);\n for (let j = 0; j < glyph.unicodes.length; j += 1) {\n if (glyph.unicodes[j] === code) {\n return i;\n }\n }\n }\n }\n return null;\n};\n\n/**\n * @exports opentype.CmapEncoding\n * @class\n * @constructor\n * @param {Object} cmap - a object with the cmap encoded data\n */\nfunction CmapEncoding(cmap) {\n this.cmap = cmap;\n}\n\n/**\n * @param {string} c - the character\n * @return {number} The glyph index.\n */\nCmapEncoding.prototype.charToGlyphIndex = function (c) {\n return this.cmap.glyphIndexMap[c.codePointAt(0)] || 0;\n};\n\n/**\n * @exports opentype.CffEncoding\n * @class\n * @constructor\n * @param {string} encoding - The encoding\n * @param {Array} charset - The character set.\n */\nfunction CffEncoding(encoding, charset) {\n this.encoding = encoding;\n this.charset = charset;\n}\n\n/**\n * @param {string} s - The character\n * @return {number} The index.\n */\nCffEncoding.prototype.charToGlyphIndex = function (s) {\n const code = s.codePointAt(0);\n const charName = this.encoding[code];\n return this.charset.indexOf(charName);\n};\n\nfunction addGlyphNamesAll(font) {\n let glyph;\n const glyphIndexMap = font.tables.cmap.glyphIndexMap;\n const charCodes = Object.keys(glyphIndexMap);\n\n for (let i = 0; i < charCodes.length; i += 1) {\n const c = charCodes[i];\n const glyphIndex = glyphIndexMap[c];\n glyph = font.glyphs.get(glyphIndex);\n glyph.addUnicode(parseInt(c));\n }\n}\n\nfunction addGlyphNamesToUnicodeMap(font) {\n font._IndexToUnicodeMap = {};\n\n const glyphIndexMap = font.tables.cmap.glyphIndexMap;\n const charCodes = Object.keys(glyphIndexMap);\n\n for (let i = 0; i < charCodes.length; i += 1) {\n const c = charCodes[i];\n let glyphIndex = glyphIndexMap[c];\n if (font._IndexToUnicodeMap[glyphIndex] === undefined) {\n font._IndexToUnicodeMap[glyphIndex] = {\n unicodes: [parseInt(c)],\n };\n } else {\n font._IndexToUnicodeMap[glyphIndex].unicodes.push(parseInt(c));\n }\n }\n}\n\n/**\n * @alias opentype.addGlyphNames\n * @param {opentype.Font}\n * @param {Object}\n */\nfunction addGlyphNames(font, opt) {\n if (opt.lowMemory) {\n addGlyphNamesToUnicodeMap(font);\n } else {\n addGlyphNamesAll(font);\n }\n}\n\nexport {\n cffStandardStrings,\n cffStandardEncoding,\n cffExpertEncoding,\n DefaultEncoding,\n CmapEncoding,\n CffEncoding,\n addGlyphNames,\n};\n","// Run-time checking of preconditions.\n\nfunction fail(message) {\n throw new Error(message);\n}\n\n// Precondition function that checks if the given predicate is true.\n// If not, it will throw an error.\nfunction argument(predicate, message) {\n if (!predicate) {\n fail(message);\n }\n}\n\nexport { fail, argument, argument as assert };\nexport default { fail, argument, assert: argument };\n","// The Glyph object\n\nimport check from './check';\nimport Path from './path';\n// import glyf from './tables/glyf' Can't be imported here, because it's a circular dependency\n\nfunction getPathDefinition(glyph, path) {\n let _path = path || new Path();\n return {\n configurable: true,\n\n get: function () {\n if (typeof _path === 'function') {\n _path = _path();\n }\n\n return _path;\n },\n\n set: function (p) {\n _path = p;\n },\n };\n}\n/**\n * @typedef GlyphOptions\n * @type Object\n * @property {string} [name] - The glyph name\n * @property {number} [unicode]\n * @property {Array} [unicodes]\n * @property {number} [xMin]\n * @property {number} [yMin]\n * @property {number} [xMax]\n * @property {number} [yMax]\n * @property {number} [advanceWidth]\n */\n\n// A Glyph is an individual mark that often corresponds to a character.\n// Some glyphs, such as ligatures, are a combination of many characters.\n// Glyphs are the basic building blocks of a font.\n//\n// The `Glyph` class contains utility methods for drawing the path and its points.\n/**\n * @exports opentype.Glyph\n * @class\n * @param {GlyphOptions}\n * @constructor\n */\nfunction Glyph(options) {\n // By putting all the code on a prototype function (which is only declared once)\n // we reduce the memory requirements for larger fonts by some 2%\n this.bindConstructorValues(options);\n}\n\n/**\n * @param {GlyphOptions}\n */\nGlyph.prototype.bindConstructorValues = function (options) {\n this.index = options.index || 0;\n\n // These three values cannot be deferred for memory optimization:\n this.name = options.name || null;\n this.unicode = options.unicode || undefined;\n this.unicodes =\n options.unicodes || options.unicode !== undefined\n ? [options.unicode]\n : [];\n\n // But by binding these values only when necessary, we reduce can\n // the memory requirements by almost 3% for larger fonts.\n if ('xMin' in options) {\n this.xMin = options.xMin;\n }\n\n if ('yMin' in options) {\n this.yMin = options.yMin;\n }\n\n if ('xMax' in options) {\n this.xMax = options.xMax;\n }\n\n if ('yMax' in options) {\n this.yMax = options.yMax;\n }\n\n if ('advanceWidth' in options) {\n this.advanceWidth = options.advanceWidth;\n }\n\n // The path for a glyph is the most memory intensive, and is bound as a value\n // with a getter/setter to ensure we actually do path parsing only once the\n // path is actually needed by anything.\n Object.defineProperty(this, 'path', getPathDefinition(this, options.path));\n};\n\n/**\n * @param {number}\n */\nGlyph.prototype.addUnicode = function (unicode) {\n if (this.unicodes.length === 0) {\n this.unicode = unicode;\n }\n\n this.unicodes.push(unicode);\n};\n\n// /**\n// * Calculate the minimum bounding box for this glyph.\n// * @return {opentype.BoundingBox}\n// */\n// Glyph.prototype.getBoundingBox = function() {\n// return this.path.getBoundingBox();\n// };\n\n/**\n * Convert the glyph to a Path we can draw on a drawing context.\n * @param {number} [x=0] - Horizontal position of the beginning of the text.\n * @param {number} [y=0] - Vertical position of the *baseline* of the text.\n * @param {number} [fontSize=72] - Font size in pixels. We scale the glyph units by `1 / unitsPerEm * fontSize`.\n * @param {Object=} options - xScale, yScale to stretch the glyph.\n * @param {opentype.Font} if hinting is to be used, the font\n * @return {opentype.Path}\n */\nGlyph.prototype.getPath = function (x, y, fontSize, options, font) {\n x = x !== undefined ? x : 0;\n y = y !== undefined ? y : 0;\n fontSize = fontSize !== undefined ? fontSize : 72;\n let commands;\n let hPoints;\n if (!options) options = {};\n let xScale = options.xScale;\n let yScale = options.yScale;\n\n if (options.hinting && font && font.hinting) {\n // in case of hinting, the hinting engine takes care\n // of scaling the points (not the path) before hinting.\n hPoints = this.path && font.hinting.exec(this, fontSize);\n // in case the hinting engine failed hPoints is undefined\n // and thus reverts to plain rending\n }\n\n if (hPoints) {\n // Call font.hinting.getCommands instead of `glyf.getPath(hPoints).commands` to avoid a circular dependency\n commands = font.hinting.getCommands(hPoints);\n x = Math.round(x);\n y = Math.round(y);\n // TODO in case of hinting xyScaling is not yet supported\n xScale = yScale = 1;\n } else {\n commands = this.path.commands;\n const scale = (1 / (this.path.unitsPerEm || 1000)) * fontSize;\n if (xScale === undefined) xScale = scale;\n if (yScale === undefined) yScale = scale;\n }\n\n const p = new Path();\n for (let i = 0; i < commands.length; i += 1) {\n const cmd = commands[i];\n if (cmd.type === 'M') {\n p.moveTo(x + cmd.x * xScale, y + -cmd.y * yScale);\n } else if (cmd.type === 'L') {\n p.lineTo(x + cmd.x * xScale, y + -cmd.y * yScale);\n } else if (cmd.type === 'Q') {\n p.quadraticCurveTo(\n x + cmd.x1 * xScale,\n y + -cmd.y1 * yScale,\n x + cmd.x * xScale,\n y + -cmd.y * yScale\n );\n } else if (cmd.type === 'C') {\n p.curveTo(\n x + cmd.x1 * xScale,\n y + -cmd.y1 * yScale,\n x + cmd.x2 * xScale,\n y + -cmd.y2 * yScale,\n x + cmd.x * xScale,\n y + -cmd.y * yScale\n );\n } else if (cmd.type === 'Z') {\n p.closePath();\n }\n }\n\n return p;\n};\n\n/**\n * Split the glyph into contours.\n * This function is here for backwards compatibility, and to\n * provide raw access to the TrueType glyph outlines.\n * @return {Array}\n */\nGlyph.prototype.getContours = function () {\n if (this.points === undefined) {\n return [];\n }\n\n const contours = [];\n let currentContour = [];\n for (let i = 0; i < this.points.length; i += 1) {\n const pt = this.points[i];\n currentContour.push(pt);\n if (pt.lastPointOfContour) {\n contours.push(currentContour);\n currentContour = [];\n }\n }\n\n check.argument(\n currentContour.length === 0,\n 'There are still points left in the current contour.'\n );\n return contours;\n};\n\n/**\n * Calculate the xMin/yMin/xMax/yMax/lsb/rsb for a Glyph.\n * @return {Object}\n */\nGlyph.prototype.getMetrics = function () {\n const commands = this.path.commands;\n const xCoords = [];\n const yCoords = [];\n for (let i = 0; i < commands.length; i += 1) {\n const cmd = commands[i];\n if (cmd.type !== 'Z') {\n xCoords.push(cmd.x);\n yCoords.push(cmd.y);\n }\n\n if (cmd.type === 'Q' || cmd.type === 'C') {\n xCoords.push(cmd.x1);\n yCoords.push(cmd.y1);\n }\n\n if (cmd.type === 'C') {\n xCoords.push(cmd.x2);\n yCoords.push(cmd.y2);\n }\n }\n\n const metrics = {\n xMin: Math.min.apply(null, xCoords),\n yMin: Math.min.apply(null, yCoords),\n xMax: Math.max.apply(null, xCoords),\n yMax: Math.max.apply(null, yCoords),\n leftSideBearing: this.leftSideBearing,\n };\n\n if (!isFinite(metrics.xMin)) {\n metrics.xMin = 0;\n }\n\n if (!isFinite(metrics.xMax)) {\n metrics.xMax = this.advanceWidth;\n }\n\n if (!isFinite(metrics.yMin)) {\n metrics.yMin = 0;\n }\n\n if (!isFinite(metrics.yMax)) {\n metrics.yMax = 0;\n }\n\n metrics.rightSideBearing =\n this.advanceWidth -\n metrics.leftSideBearing -\n (metrics.xMax - metrics.xMin);\n return metrics;\n};\n\nexport default Glyph;\n","// The GlyphSet object\n\nimport Glyph from './glyph';\n\n// Define a property on the glyph that depends on the path being loaded.\nfunction defineDependentProperty(glyph, externalName, internalName) {\n Object.defineProperty(glyph, externalName, {\n get: function () {\n // Request the path property to make sure the path is loaded.\n glyph.path; // jshint ignore:line\n return glyph[internalName];\n },\n set: function (newValue) {\n glyph[internalName] = newValue;\n },\n enumerable: true,\n configurable: true,\n });\n}\n\n/**\n * A GlyphSet represents all glyphs available in the font, but modelled using\n * a deferred glyph loader, for retrieving glyphs only once they are absolutely\n * necessary, to keep the memory footprint down.\n * @exports opentype.GlyphSet\n * @class\n * @param {opentype.Font}\n * @param {Array}\n */\nfunction GlyphSet(font, glyphs) {\n this.font = font;\n this.glyphs = {};\n if (Array.isArray(glyphs)) {\n for (let i = 0; i < glyphs.length; i++) {\n const glyph = glyphs[i];\n glyph.path.unitsPerEm = font.unitsPerEm;\n this.glyphs[i] = glyph;\n }\n }\n\n this.length = (glyphs && glyphs.length) || 0;\n}\n\n/**\n * @param {number} index\n * @return {opentype.Glyph}\n */\nGlyphSet.prototype.get = function (index) {\n // this.glyphs[index] is 'undefined' when low memory mode is on. glyph is pushed on request only.\n if (this.glyphs[index] === undefined) {\n this.font._push(index);\n if (typeof this.glyphs[index] === 'function') {\n this.glyphs[index] = this.glyphs[index]();\n }\n\n let glyph = this.glyphs[index];\n let unicodeObj = this.font._IndexToUnicodeMap[index];\n\n if (unicodeObj) {\n for (let j = 0; j < unicodeObj.unicodes.length; j++)\n glyph.addUnicode(unicodeObj.unicodes[j]);\n }\n\n this.glyphs[index].advanceWidth =\n this.font._hmtxTableData[index].advanceWidth;\n this.glyphs[index].leftSideBearing =\n this.font._hmtxTableData[index].leftSideBearing;\n } else {\n if (typeof this.glyphs[index] === 'function') {\n this.glyphs[index] = this.glyphs[index]();\n }\n }\n\n return this.glyphs[index];\n};\n\n/**\n * @param {number} index\n * @param {Object}\n */\nGlyphSet.prototype.push = function (index, loader) {\n this.glyphs[index] = loader;\n this.length++;\n};\n\n/**\n * @alias opentype.glyphLoader\n * @param {opentype.Font} font\n * @param {number} index\n * @return {opentype.Glyph}\n */\nfunction glyphLoader(font, index) {\n return new Glyph({ index: index, font: font });\n}\n\n/**\n * Generate a stub glyph that can be filled with all metadata *except*\n * the \"points\" and \"path\" properties, which must be loaded only once\n * the glyph's path is actually requested for text shaping.\n * @alias opentype.ttfGlyphLoader\n * @param {opentype.Font} font\n * @param {number} index\n * @param {Function} parseGlyph\n * @param {Object} data\n * @param {number} position\n * @param {Function} buildPath\n * @return {opentype.Glyph}\n */\nfunction ttfGlyphLoader(font, index, parseGlyph, data, position, buildPath) {\n return function () {\n const glyph = new Glyph({ index: index, font: font });\n\n glyph.path = function () {\n parseGlyph(glyph, data, position);\n const path = buildPath(font.glyphs, glyph);\n path.unitsPerEm = font.unitsPerEm;\n return path;\n };\n\n defineDependentProperty(glyph, 'xMin', '_xMin');\n defineDependentProperty(glyph, 'xMax', '_xMax');\n defineDependentProperty(glyph, 'yMin', '_yMin');\n defineDependentProperty(glyph, 'yMax', '_yMax');\n\n return glyph;\n };\n}\n/**\n * @alias opentype.cffGlyphLoader\n * @param {opentype.Font} font\n * @param {number} index\n * @param {Function} parseCFFCharstring\n * @param {string} charstring\n * @return {opentype.Glyph}\n */\nfunction cffGlyphLoader(font, index, parseCFFCharstring, charstring) {\n return function () {\n const glyph = new Glyph({ index: index, font: font });\n\n glyph.path = function () {\n const path = parseCFFCharstring(font, glyph, charstring);\n path.unitsPerEm = font.unitsPerEm;\n return path;\n };\n\n return glyph;\n };\n}\n\nexport default { GlyphSet, glyphLoader, ttfGlyphLoader, cffGlyphLoader };\n","// The Layout object is the prototype of Substitution objects, and provides\n// utility methods to manipulate common layout tables (GPOS, GSUB, GDEF...)\n\nimport check from './check';\n\nfunction searchTag(arr, tag) {\n /* jshint bitwise: false */\n let imin = 0;\n let imax = arr.length - 1;\n while (imin <= imax) {\n const imid = (imin + imax) >>> 1;\n const val = arr[imid].tag;\n if (val === tag) {\n return imid;\n } else if (val < tag) {\n imin = imid + 1;\n } else {\n imax = imid - 1;\n }\n }\n // Not found: return -1-insertion point\n return -imin - 1;\n}\n\nfunction binSearch(arr, value) {\n /* jshint bitwise: false */\n let imin = 0;\n let imax = arr.length - 1;\n while (imin <= imax) {\n const imid = (imin + imax) >>> 1;\n const val = arr[imid];\n if (val === value) {\n return imid;\n } else if (val < value) {\n imin = imid + 1;\n } else {\n imax = imid - 1;\n }\n }\n // Not found: return -1-insertion point\n return -imin - 1;\n}\n\n// binary search in a list of ranges (coverage, class definition)\nfunction searchRange(ranges, value) {\n // jshint bitwise: false\n let range;\n let imin = 0;\n let imax = ranges.length - 1;\n while (imin <= imax) {\n const imid = (imin + imax) >>> 1;\n range = ranges[imid];\n const start = range.start;\n if (start === value) {\n return range;\n } else if (start < value) {\n imin = imid + 1;\n } else {\n imax = imid - 1;\n }\n }\n if (imin > 0) {\n range = ranges[imin - 1];\n if (value > range.end) return 0;\n return range;\n }\n}\n\n/**\n * @exports opentype.Layout\n * @class\n */\nfunction Layout(font, tableName) {\n this.font = font;\n this.tableName = tableName;\n}\n\nLayout.prototype = {\n /**\n * Binary search an object by \"tag\" property\n * @instance\n * @function searchTag\n * @memberof opentype.Layout\n * @param {Array} arr\n * @param {string} tag\n * @return {number}\n */\n searchTag: searchTag,\n\n /**\n * Binary search in a list of numbers\n * @instance\n * @function binSearch\n * @memberof opentype.Layout\n * @param {Array} arr\n * @param {number} value\n * @return {number}\n */\n binSearch: binSearch,\n\n /**\n * Get or create the Layout table (GSUB, GPOS etc).\n * @param {boolean} create - Whether to create a new one.\n * @return {Object} The GSUB or GPOS table.\n */\n getTable: function (create) {\n let layout = this.font.tables[this.tableName];\n if (!layout && create) {\n layout = this.font.tables[this.tableName] =\n this.createDefaultTable();\n }\n return layout;\n },\n\n /**\n * Returns the best bet for a script name.\n * Returns 'DFLT' if it exists.\n * If not, returns 'latn' if it exists.\n * If neither exist, returns undefined.\n */\n getDefaultScriptName: function () {\n let layout = this.getTable();\n if (!layout) {\n return;\n }\n let hasLatn = false;\n for (let i = 0; i < layout.scripts.length; i++) {\n const name = layout.scripts[i].tag;\n if (name === 'DFLT') return name;\n if (name === 'latn') hasLatn = true;\n }\n if (hasLatn) return 'latn';\n },\n\n /**\n * Returns all LangSysRecords in the given script.\n * @instance\n * @param {string} [script='DFLT']\n * @param {boolean} create - forces the creation of this script table if it doesn't exist.\n * @return {Object} An object with tag and script properties.\n */\n getScriptTable: function (script, create) {\n const layout = this.getTable(create);\n if (layout) {\n script = script || 'DFLT';\n const scripts = layout.scripts;\n const pos = searchTag(layout.scripts, script);\n if (pos >= 0) {\n return scripts[pos].script;\n } else if (create) {\n const scr = {\n tag: script,\n script: {\n defaultLangSys: {\n reserved: 0,\n reqFeatureIndex: 0xffff,\n featureIndexes: [],\n },\n langSysRecords: [],\n },\n };\n scripts.splice(-1 - pos, 0, scr);\n return scr.script;\n }\n }\n },\n\n /**\n * Returns a language system table\n * @instance\n * @param {string} [script='DFLT']\n * @param {string} [language='dlft']\n * @param {boolean} create - forces the creation of this langSysTable if it doesn't exist.\n * @return {Object}\n */\n getLangSysTable: function (script, language, create) {\n const scriptTable = this.getScriptTable(script, create);\n if (scriptTable) {\n if (!language || language === 'dflt' || language === 'DFLT') {\n return scriptTable.defaultLangSys;\n }\n const pos = searchTag(scriptTable.langSysRecords, language);\n if (pos >= 0) {\n return scriptTable.langSysRecords[pos].langSys;\n } else if (create) {\n const langSysRecord = {\n tag: language,\n langSys: {\n reserved: 0,\n reqFeatureIndex: 0xffff,\n featureIndexes: [],\n },\n };\n scriptTable.langSysRecords.splice(-1 - pos, 0, langSysRecord);\n return langSysRecord.langSys;\n }\n }\n },\n\n /**\n * Get a specific feature table.\n * @instance\n * @param {string} [script='DFLT']\n * @param {string} [language='dlft']\n * @param {string} feature - One of the codes listed at https://www.microsoft.com/typography/OTSPEC/featurelist.htm\n * @param {boolean} create - forces the creation of the feature table if it doesn't exist.\n * @return {Object}\n */\n getFeatureTable: function (script, language, feature, create) {\n const langSysTable = this.getLangSysTable(script, language, create);\n if (langSysTable) {\n let featureRecord;\n const featIndexes = langSysTable.featureIndexes;\n const allFeatures = this.font.tables[this.tableName].features;\n // The FeatureIndex array of indices is in arbitrary order,\n // even if allFeatures is sorted alphabetically by feature tag.\n for (let i = 0; i < featIndexes.length; i++) {\n featureRecord = allFeatures[featIndexes[i]];\n if (featureRecord.tag === feature) {\n return featureRecord.feature;\n }\n }\n if (create) {\n const index = allFeatures.length;\n // Automatic ordering of features would require to shift feature indexes in the script list.\n check.assert(\n index === 0 || feature >= allFeatures[index - 1].tag,\n 'Features must be added in alphabetical order.'\n );\n featureRecord = {\n tag: feature,\n feature: { params: 0, lookupListIndexes: [] },\n };\n allFeatures.push(featureRecord);\n featIndexes.push(index);\n return featureRecord.feature;\n }\n }\n },\n\n /**\n * Get the lookup tables of a given type for a script/language/feature.\n * @instance\n * @param {string} [script='DFLT']\n * @param {string} [language='dlft']\n * @param {string} feature - 4-letter feature code\n * @param {number} lookupType - 1 to 9\n * @param {boolean} create - forces the creation of the lookup table if it doesn't exist, with no subtables.\n * @return {Object[]}\n */\n getLookupTables: function (script, language, feature, lookupType, create) {\n const featureTable = this.getFeatureTable(\n script,\n language,\n feature,\n create\n );\n const tables = [];\n if (featureTable) {\n let lookupTable;\n const lookupListIndexes = featureTable.lookupListIndexes;\n const allLookups = this.font.tables[this.tableName].lookups;\n // lookupListIndexes are in no particular order, so use naive search.\n for (let i = 0; i < lookupListIndexes.length; i++) {\n lookupTable = allLookups[lookupListIndexes[i]];\n if (lookupTable.lookupType === lookupType) {\n tables.push(lookupTable);\n }\n }\n if (tables.length === 0 && create) {\n lookupTable = {\n lookupType: lookupType,\n lookupFlag: 0,\n subtables: [],\n markFilteringSet: undefined,\n };\n const index = allLookups.length;\n allLookups.push(lookupTable);\n lookupListIndexes.push(index);\n return [lookupTable];\n }\n }\n return tables;\n },\n\n /**\n * Find a glyph in a class definition table\n * https://docs.microsoft.com/en-us/typography/opentype/spec/chapter2#class-definition-table\n * @param {object} classDefTable - an OpenType Layout class definition table\n * @param {number} glyphIndex - the index of the glyph to find\n * @returns {number} -1 if not found\n */\n getGlyphClass: function (classDefTable, glyphIndex) {\n switch (classDefTable.format) {\n case 1:\n if (\n classDefTable.startGlyph <= glyphIndex &&\n glyphIndex <\n classDefTable.startGlyph + classDefTable.classes.length\n ) {\n return classDefTable.classes[\n glyphIndex - classDefTable.startGlyph\n ];\n }\n return 0;\n case 2:\n const range = searchRange(classDefTable.ranges, glyphIndex);\n return range ? range.classId : 0;\n }\n },\n\n /**\n * Find a glyph in a coverage table\n * https://docs.microsoft.com/en-us/typography/opentype/spec/chapter2#coverage-table\n * @param {object} coverageTable - an OpenType Layout coverage table\n * @param {number} glyphIndex - the index of the glyph to find\n * @returns {number} -1 if not found\n */\n getCoverageIndex: function (coverageTable, glyphIndex) {\n switch (coverageTable.format) {\n case 1:\n const index = binSearch(coverageTable.glyphs, glyphIndex);\n return index >= 0 ? index : -1;\n case 2:\n const range = searchRange(coverageTable.ranges, glyphIndex);\n return range ? range.index + glyphIndex - range.start : -1;\n }\n },\n\n /**\n * Returns the list of glyph indexes of a coverage table.\n * Format 1: the list is stored raw\n * Format 2: compact list as range records.\n * @instance\n * @param {Object} coverageTable\n * @return {Array}\n */\n expandCoverage: function (coverageTable) {\n if (coverageTable.format === 1) {\n return coverageTable.glyphs;\n } else {\n const glyphs = [];\n const ranges = coverageTable.ranges;\n for (let i = 0; i < ranges.length; i++) {\n const range = ranges[i];\n const start = range.start;\n const end = range.end;\n for (let j = start; j <= end; j++) {\n glyphs.push(j);\n }\n }\n return glyphs;\n }\n },\n};\n\nexport default Layout;\n","// The Position object provides utility methods to manipulate\n// the GPOS position table.\n\nimport Layout from './layout';\n\n/**\n * @exports opentype.Position\n * @class\n * @extends opentype.Layout\n * @param {opentype.Font}\n * @constructor\n */\nfunction Position(font) {\n Layout.call(this, font, 'gpos');\n}\n\nPosition.prototype = Layout.prototype;\n\n/**\n * Init some data for faster and easier access later.\n */\nPosition.prototype.init = function() {\n const script = this.getDefaultScriptName();\n this.defaultKerningTables = this.getKerningTables(script);\n};\n\n/**\n * Find a glyph pair in a list of lookup tables of type 2 and retrieve the xAdvance kerning value.\n *\n * @param {integer} leftIndex - left glyph index\n * @param {integer} rightIndex - right glyph index\n * @returns {integer}\n */\nPosition.prototype.getKerningValue = function(kerningLookups, leftIndex, rightIndex) {\n for (let i = 0; i < kerningLookups.length; i++) {\n const subtables = kerningLookups[i].subtables;\n for (let j = 0; j < subtables.length; j++) {\n const subtable = subtables[j];\n const covIndex = this.getCoverageIndex(subtable.coverage, leftIndex);\n if (covIndex < 0) continue;\n switch (subtable.posFormat) {\n case 1:\n // Search Pair Adjustment Positioning Format 1\n let pairSet = subtable.pairSets[covIndex];\n for (let k = 0; k < pairSet.length; k++) {\n let pair = pairSet[k];\n if (pair.secondGlyph === rightIndex) {\n return pair.value1 && pair.value1.xAdvance || 0;\n }\n }\n break; // left glyph found, not right glyph - try next subtable\n case 2:\n // Search Pair Adjustment Positioning Format 2\n const class1 = this.getGlyphClass(subtable.classDef1, leftIndex);\n const class2 = this.getGlyphClass(subtable.classDef2, rightIndex);\n const pair = subtable.classRecords[class1][class2];\n return pair.value1 && pair.value1.xAdvance || 0;\n }\n }\n }\n return 0;\n};\n\n/**\n * List all kerning lookup tables.\n *\n * @param {string} [script='DFLT'] - use font.position.getDefaultScriptName() for a better default value\n * @param {string} [language='dflt']\n * @return {object[]} The list of kerning lookup tables (may be empty), or undefined if there is no GPOS table (and we should use the kern table)\n */\nPosition.prototype.getKerningTables = function(script, language) {\n if (this.font.tables.gpos) {\n return this.getLookupTables(script, language, 'kern', 2);\n }\n};\n\nexport default Position;\n","// The Substitution object provides utility methods to manipulate\n// the GSUB substitution table.\n\nimport check from './check';\nimport Layout from './layout';\n\n/**\n * @exports opentype.Substitution\n * @class\n * @extends opentype.Layout\n * @param {opentype.Font}\n * @constructor\n */\nfunction Substitution(font) {\n Layout.call(this, font, 'gsub');\n}\n\n// Check if 2 arrays of primitives are equal.\nfunction arraysEqual(ar1, ar2) {\n const n = ar1.length;\n if (n !== ar2.length) {\n return false;\n }\n for (let i = 0; i < n; i++) {\n if (ar1[i] !== ar2[i]) {\n return false;\n }\n }\n return true;\n}\n\n// Find the first subtable of a lookup table in a particular format.\nfunction getSubstFormat(lookupTable, format, defaultSubtable) {\n const subtables = lookupTable.subtables;\n for (let i = 0; i < subtables.length; i++) {\n const subtable = subtables[i];\n if (subtable.substFormat === format) {\n return subtable;\n }\n }\n if (defaultSubtable) {\n subtables.push(defaultSubtable);\n return defaultSubtable;\n }\n return undefined;\n}\n\nSubstitution.prototype = Layout.prototype;\n\n/**\n * Create a default GSUB table.\n * @return {Object} gsub - The GSUB table.\n */\nSubstitution.prototype.createDefaultTable = function () {\n // Generate a default empty GSUB table with just a DFLT script and dflt lang sys.\n return {\n version: 1,\n scripts: [\n {\n tag: 'DFLT',\n script: {\n defaultLangSys: {\n reserved: 0,\n reqFeatureIndex: 0xffff,\n featureIndexes: [],\n },\n langSysRecords: [],\n },\n },\n ],\n features: [],\n lookups: [],\n };\n};\n\n/**\n * List all single substitutions (lookup type 1) for a given script, language, and feature.\n * @param {string} [script='DFLT']\n * @param {string} [language='dflt']\n * @param {string} feature - 4-character feature name ('aalt', 'salt', 'ss01'...)\n * @return {Array} substitutions - The list of substitutions.\n */\nSubstitution.prototype.getSingle = function (feature, script, language) {\n const substitutions = [];\n const lookupTables = this.getLookupTables(script, language, feature, 1);\n for (let idx = 0; idx < lookupTables.length; idx++) {\n const subtables = lookupTables[idx].subtables;\n for (let i = 0; i < subtables.length; i++) {\n const subtable = subtables[i];\n const glyphs = this.expandCoverage(subtable.coverage);\n let j;\n if (subtable.substFormat === 1) {\n const delta = subtable.deltaGlyphId;\n for (j = 0; j < glyphs.length; j++) {\n const glyph = glyphs[j];\n substitutions.push({ sub: glyph, by: glyph + delta });\n }\n } else {\n const substitute = subtable.substitute;\n for (j = 0; j < glyphs.length; j++) {\n substitutions.push({ sub: glyphs[j], by: substitute[j] });\n }\n }\n }\n }\n return substitutions;\n};\n\n/**\n * List all multiple substitutions (lookup type 2) for a given script, language, and feature.\n * @param {string} [script='DFLT']\n * @param {string} [language='dflt']\n * @param {string} feature - 4-character feature name ('ccmp', 'stch')\n * @return {Array} substitutions - The list of substitutions.\n */\nSubstitution.prototype.getMultiple = function (feature, script, language) {\n const substitutions = [];\n const lookupTables = this.getLookupTables(script, language, feature, 2);\n for (let idx = 0; idx < lookupTables.length; idx++) {\n const subtables = lookupTables[idx].subtables;\n for (let i = 0; i < subtables.length; i++) {\n const subtable = subtables[i];\n const glyphs = this.expandCoverage(subtable.coverage);\n let j;\n\n for (j = 0; j < glyphs.length; j++) {\n const glyph = glyphs[j];\n const replacements = subtable.sequences[j];\n substitutions.push({ sub: glyph, by: replacements });\n }\n }\n }\n return substitutions;\n};\n\n/**\n * List all alternates (lookup type 3) for a given script, language, and feature.\n * @param {string} [script='DFLT']\n * @param {string} [language='dflt']\n * @param {string} feature - 4-character feature name ('aalt', 'salt'...)\n * @return {Array} alternates - The list of alternates\n */\nSubstitution.prototype.getAlternates = function (feature, script, language) {\n const alternates = [];\n const lookupTables = this.getLookupTables(script, language, feature, 3);\n for (let idx = 0; idx < lookupTables.length; idx++) {\n const subtables = lookupTables[idx].subtables;\n for (let i = 0; i < subtables.length; i++) {\n const subtable = subtables[i];\n const glyphs = this.expandCoverage(subtable.coverage);\n const alternateSets = subtable.alternateSets;\n for (let j = 0; j < glyphs.length; j++) {\n alternates.push({ sub: glyphs[j], by: alternateSets[j] });\n }\n }\n }\n return alternates;\n};\n\n/**\n * List all ligatures (lookup type 4) for a given script, language, and feature.\n * The result is an array of ligature objects like { sub: [ids], by: id }\n * @param {string} feature - 4-letter feature name ('liga', 'rlig', 'dlig'...)\n * @param {string} [script='DFLT']\n * @param {string} [language='dflt']\n * @return {Array} ligatures - The list of ligatures.\n */\nSubstitution.prototype.getLigatures = function (feature, script, language) {\n const ligatures = [];\n const lookupTables = this.getLookupTables(script, language, feature, 4);\n for (let idx = 0; idx < lookupTables.length; idx++) {\n const subtables = lookupTables[idx].subtables;\n for (let i = 0; i < subtables.length; i++) {\n const subtable = subtables[i];\n const glyphs = this.expandCoverage(subtable.coverage);\n const ligatureSets = subtable.ligatureSets;\n for (let j = 0; j < glyphs.length; j++) {\n const startGlyph = glyphs[j];\n const ligSet = ligatureSets[j];\n for (let k = 0; k < ligSet.length; k++) {\n const lig = ligSet[k];\n ligatures.push({\n sub: [startGlyph].concat(lig.components),\n by: lig.ligGlyph,\n });\n }\n }\n }\n }\n return ligatures;\n};\n\n/**\n * Add or modify a single substitution (lookup type 1)\n * Format 2, more flexible, is always used.\n * @param {string} feature - 4-letter feature name ('liga', 'rlig', 'dlig'...)\n * @param {Object} substitution - { sub: id, by: id } (format 1 is not supported)\n * @param {string} [script='DFLT']\n * @param {string} [language='dflt']\n */\nSubstitution.prototype.addSingle = function (\n feature,\n substitution,\n script,\n language\n) {\n const lookupTable = this.getLookupTables(\n script,\n language,\n feature,\n 1,\n true\n )[0];\n const subtable = getSubstFormat(lookupTable, 2, {\n // lookup type 1 subtable, format 2, coverage format 1\n substFormat: 2,\n coverage: { format: 1, glyphs: [] },\n substitute: [],\n });\n check.assert(\n subtable.coverage.format === 1,\n 'Single: unable to modify coverage table format ' +\n subtable.coverage.format\n );\n const coverageGlyph = substitution.sub;\n let pos = this.binSearch(subtable.coverage.glyphs, coverageGlyph);\n if (pos < 0) {\n pos = -1 - pos;\n subtable.coverage.glyphs.splice(pos, 0, coverageGlyph);\n subtable.substitute.splice(pos, 0, 0);\n }\n subtable.substitute[pos] = substitution.by;\n};\n\n/**\n * Add or modify a multiple substitution (lookup type 2)\n * @param {string} feature - 4-letter feature name ('ccmp', 'stch')\n * @param {Object} substitution - { sub: id, by: [id] } for format 2.\n * @param {string} [script='DFLT']\n * @param {string} [language='dflt']\n */\nSubstitution.prototype.addMultiple = function (\n feature,\n substitution,\n script,\n language\n) {\n check.assert(\n substitution.by instanceof Array && substitution.by.length > 1,\n 'Multiple: \"by\" must be an array of two or more ids'\n );\n const lookupTable = this.getLookupTables(\n script,\n language,\n feature,\n 2,\n true\n )[0];\n const subtable = getSubstFormat(lookupTable, 1, {\n // lookup type 2 subtable, format 1, coverage format 1\n substFormat: 1,\n coverage: { format: 1, glyphs: [] },\n sequences: [],\n });\n check.assert(\n subtable.coverage.format === 1,\n 'Multiple: unable to modify coverage table format ' +\n subtable.coverage.format\n );\n const coverageGlyph = substitution.sub;\n let pos = this.binSearch(subtable.coverage.glyphs, coverageGlyph);\n if (pos < 0) {\n pos = -1 - pos;\n subtable.coverage.glyphs.splice(pos, 0, coverageGlyph);\n subtable.sequences.splice(pos, 0, 0);\n }\n subtable.sequences[pos] = substitution.by;\n};\n\n/**\n * Add or modify an alternate substitution (lookup type 3)\n * @param {string} feature - 4-letter feature name ('liga', 'rlig', 'dlig'...)\n * @param {Object} substitution - { sub: id, by: [ids] }\n * @param {string} [script='DFLT']\n * @param {string} [language='dflt']\n */\nSubstitution.prototype.addAlternate = function (\n feature,\n substitution,\n script,\n language\n) {\n const lookupTable = this.getLookupTables(\n script,\n language,\n feature,\n 3,\n true\n )[0];\n const subtable = getSubstFormat(lookupTable, 1, {\n // lookup type 3 subtable, format 1, coverage format 1\n substFormat: 1,\n coverage: { format: 1, glyphs: [] },\n alternateSets: [],\n });\n check.assert(\n subtable.coverage.format === 1,\n 'Alternate: unable to modify coverage table format ' +\n subtable.coverage.format\n );\n const coverageGlyph = substitution.sub;\n let pos = this.binSearch(subtable.coverage.glyphs, coverageGlyph);\n if (pos < 0) {\n pos = -1 - pos;\n subtable.coverage.glyphs.splice(pos, 0, coverageGlyph);\n subtable.alternateSets.splice(pos, 0, 0);\n }\n subtable.alternateSets[pos] = substitution.by;\n};\n\n/**\n * Add a ligature (lookup type 4)\n * Ligatures with more components must be stored ahead of those with fewer components in order to be found\n * @param {string} feature - 4-letter feature name ('liga', 'rlig', 'dlig'...)\n * @param {Object} ligature - { sub: [ids], by: id }\n * @param {string} [script='DFLT']\n * @param {string} [language='dflt']\n */\nSubstitution.prototype.addLigature = function (\n feature,\n ligature,\n script,\n language\n) {\n const lookupTable = this.getLookupTables(\n script,\n language,\n feature,\n 4,\n true\n )[0];\n let subtable = lookupTable.subtables[0];\n if (!subtable) {\n subtable = {\n // lookup type 4 subtable, format 1, coverage format 1\n substFormat: 1,\n coverage: { format: 1, glyphs: [] },\n ligatureSets: [],\n };\n lookupTable.subtables[0] = subtable;\n }\n check.assert(\n subtable.coverage.format === 1,\n 'Ligature: unable to modify coverage table format ' +\n subtable.coverage.format\n );\n const coverageGlyph = ligature.sub[0];\n const ligComponents = ligature.sub.slice(1);\n const ligatureTable = {\n ligGlyph: ligature.by,\n components: ligComponents,\n };\n let pos = this.binSearch(subtable.coverage.glyphs, coverageGlyph);\n if (pos >= 0) {\n // ligatureSet already exists\n const ligatureSet = subtable.ligatureSets[pos];\n for (let i = 0; i < ligatureSet.length; i++) {\n // If ligature already exists, return.\n if (arraysEqual(ligatureSet[i].components, ligComponents)) {\n return;\n }\n }\n // ligature does not exist: add it.\n ligatureSet.push(ligatureTable);\n } else {\n // Create a new ligatureSet and add coverage for the first glyph.\n pos = -1 - pos;\n subtable.coverage.glyphs.splice(pos, 0, coverageGlyph);\n subtable.ligatureSets.splice(pos, 0, [ligatureTable]);\n }\n};\n\n/**\n * List all feature data for a given script and language.\n * @param {string} feature - 4-letter feature name\n * @param {string} [script='DFLT']\n * @param {string} [language='dflt']\n * @return {Array} substitutions - The list of substitutions.\n */\nSubstitution.prototype.getFeature = function (feature, script, language) {\n if (/ss\\d\\d/.test(feature)) {\n // ss01 - ss20\n return this.getSingle(feature, script, language);\n }\n switch (feature) {\n case 'aalt':\n case 'salt':\n return this.getSingle(feature, script, language).concat(\n this.getAlternates(feature, script, language)\n );\n case 'dlig':\n case 'liga':\n case 'rlig':\n return this.getLigatures(feature, script, language);\n case 'ccmp':\n return this.getMultiple(feature, script, language).concat(\n this.getLigatures(feature, script, language)\n );\n case 'stch':\n return this.getMultiple(feature, script, language);\n }\n return undefined;\n};\n\n/**\n * Add a substitution to a feature for a given script and language.\n * @param {string} feature - 4-letter feature name\n * @param {Object} sub - the substitution to add (an object like { sub: id or [ids], by: id or [ids] })\n * @param {string} [script='DFLT']\n * @param {string} [language='dflt']\n */\nSubstitution.prototype.add = function (feature, sub, script, language) {\n if (/ss\\d\\d/.test(feature)) {\n // ss01 - ss20\n return this.addSingle(feature, sub, script, language);\n }\n switch (feature) {\n case 'aalt':\n case 'salt':\n if (typeof sub.by === 'number') {\n return this.addSingle(feature, sub, script, language);\n }\n return this.addAlternate(feature, sub, script, language);\n case 'dlig':\n case 'liga':\n case 'rlig':\n return this.addLigature(feature, sub, script, language);\n case 'ccmp':\n if (sub.by instanceof Array) {\n return this.addMultiple(feature, sub, script, language);\n }\n return this.addLigature(feature, sub, script, language);\n }\n return undefined;\n};\n\nexport default Substitution;\n","function nodeBufferToArrayBuffer(buffer) {\n const ab = new ArrayBuffer(buffer.length);\n const view = new Uint8Array(ab);\n for (let i = 0; i < buffer.length; ++i) {\n view[i] = buffer[i];\n }\n\n return ab;\n}\n\nfunction checkArgument(expression, message) {\n if (!expression) {\n throw message;\n }\n}\n\nexport { nodeBufferToArrayBuffer, checkArgument };\n","// Parsing utility functions\n\nimport check from './check';\n\n// Retrieve an unsigned byte from the DataView.\nfunction getByte(dataView, offset) {\n return dataView.getUint8(offset);\n}\n\n// Retrieve an unsigned 16-bit short from the DataView.\n// The value is stored in big endian.\nfunction getUShort(dataView, offset) {\n return dataView.getUint16(offset, false);\n}\n\n// Retrieve a signed 16-bit short from the DataView.\n// The value is stored in big endian.\nfunction getShort(dataView, offset) {\n return dataView.getInt16(offset, false);\n}\n\n// Retrieve an unsigned 32-bit long from the DataView.\n// The value is stored in big endian.\nfunction getULong(dataView, offset) {\n return dataView.getUint32(offset, false);\n}\n\n// Retrieve a 32-bit signed fixed-point number (16.16) from the DataView.\n// The value is stored in big endian.\nfunction getFixed(dataView, offset) {\n const decimal = dataView.getInt16(offset, false);\n const fraction = dataView.getUint16(offset + 2, false);\n return decimal + fraction / 65535;\n}\n\n// Retrieve a 4-character tag from the DataView.\n// Tags are used to identify tables.\nfunction getTag(dataView, offset) {\n let tag = '';\n for (let i = offset; i < offset + 4; i += 1) {\n tag += String.fromCharCode(dataView.getInt8(i));\n }\n\n return tag;\n}\n\n// Retrieve an offset from the DataView.\n// Offsets are 1 to 4 bytes in length, depending on the offSize argument.\nfunction getOffset(dataView, offset, offSize) {\n let v = 0;\n for (let i = 0; i < offSize; i += 1) {\n v <<= 8;\n v += dataView.getUint8(offset + i);\n }\n\n return v;\n}\n\n// Retrieve a number of bytes from start offset to the end offset from the DataView.\nfunction getBytes(dataView, startOffset, endOffset) {\n const bytes = [];\n for (let i = startOffset; i < endOffset; i += 1) {\n bytes.push(dataView.getUint8(i));\n }\n\n return bytes;\n}\n\n// Convert the list of bytes to a string.\nfunction bytesToString(bytes) {\n let s = '';\n for (let i = 0; i < bytes.length; i += 1) {\n s += String.fromCharCode(bytes[i]);\n }\n\n return s;\n}\n\nconst typeOffsets = {\n byte: 1,\n uShort: 2,\n short: 2,\n uLong: 4,\n fixed: 4,\n longDateTime: 8,\n tag: 4\n};\n\n// A stateful parser that changes the offset whenever a value is retrieved.\n// The data is a DataView.\nfunction Parser(data, offset) {\n this.data = data;\n this.offset = offset;\n this.relativeOffset = 0;\n}\n\nParser.prototype.parseByte = function() {\n const v = this.data.getUint8(this.offset + this.relativeOffset);\n this.relativeOffset += 1;\n return v;\n};\n\nParser.prototype.parseChar = function() {\n const v = this.data.getInt8(this.offset + this.relativeOffset);\n this.relativeOffset += 1;\n return v;\n};\n\nParser.prototype.parseCard8 = Parser.prototype.parseByte;\n\nParser.prototype.parseUShort = function() {\n const v = this.data.getUint16(this.offset + this.relativeOffset);\n this.relativeOffset += 2;\n return v;\n};\n\nParser.prototype.parseCard16 = Parser.prototype.parseUShort;\nParser.prototype.parseSID = Parser.prototype.parseUShort;\nParser.prototype.parseOffset16 = Parser.prototype.parseUShort;\n\nParser.prototype.parseShort = function() {\n const v = this.data.getInt16(this.offset + this.relativeOffset);\n this.relativeOffset += 2;\n return v;\n};\n\nParser.prototype.parseF2Dot14 = function() {\n const v = this.data.getInt16(this.offset + this.relativeOffset) / 16384;\n this.relativeOffset += 2;\n return v;\n};\n\nParser.prototype.parseULong = function() {\n const v = getULong(this.data, this.offset + this.relativeOffset);\n this.relativeOffset += 4;\n return v;\n};\n\nParser.prototype.parseOffset32 = Parser.prototype.parseULong;\n\nParser.prototype.parseFixed = function() {\n const v = getFixed(this.data, this.offset + this.relativeOffset);\n this.relativeOffset += 4;\n return v;\n};\n\nParser.prototype.parseString = function(length) {\n const dataView = this.data;\n const offset = this.offset + this.relativeOffset;\n let string = '';\n this.relativeOffset += length;\n for (let i = 0; i < length; i++) {\n string += String.fromCharCode(dataView.getUint8(offset + i));\n }\n\n return string;\n};\n\nParser.prototype.parseTag = function() {\n return this.parseString(4);\n};\n\n// LONGDATETIME is a 64-bit integer.\n// JavaScript and unix timestamps traditionally use 32 bits, so we\n// only take the last 32 bits.\n// + Since until 2038 those bits will be filled by zeros we can ignore them.\nParser.prototype.parseLongDateTime = function() {\n let v = getULong(this.data, this.offset + this.relativeOffset + 4);\n // Subtract seconds between 01/01/1904 and 01/01/1970\n // to convert Apple Mac timestamp to Standard Unix timestamp\n v -= 2082844800;\n this.relativeOffset += 8;\n return v;\n};\n\nParser.prototype.parseVersion = function(minorBase) {\n const major = getUShort(this.data, this.offset + this.relativeOffset);\n\n // How to interpret the minor version is very vague in the spec. 0x5000 is 5, 0x1000 is 1\n // Default returns the correct number if minor = 0xN000 where N is 0-9\n // Set minorBase to 1 for tables that use minor = N where N is 0-9\n const minor = getUShort(this.data, this.offset + this.relativeOffset + 2);\n this.relativeOffset += 4;\n if (minorBase === undefined) minorBase = 0x1000;\n return major + minor / minorBase / 10;\n};\n\nParser.prototype.skip = function(type, amount) {\n if (amount === undefined) {\n amount = 1;\n }\n\n this.relativeOffset += typeOffsets[type] * amount;\n};\n\n///// Parsing lists and records ///////////////////////////////\n\n// Parse a list of 32 bit unsigned integers.\nParser.prototype.parseULongList = function(count) {\n if (count === undefined) { count = this.parseULong(); }\n const offsets = new Array(count);\n const dataView = this.data;\n let offset = this.offset + this.relativeOffset;\n for (let i = 0; i < count; i++) {\n offsets[i] = dataView.getUint32(offset);\n offset += 4;\n }\n\n this.relativeOffset += count * 4;\n return offsets;\n};\n\n// Parse a list of 16 bit unsigned integers. The length of the list can be read on the stream\n// or provided as an argument.\nParser.prototype.parseOffset16List =\nParser.prototype.parseUShortList = function(count) {\n if (count === undefined) { count = this.parseUShort(); }\n const offsets = new Array(count);\n const dataView = this.data;\n let offset = this.offset + this.relativeOffset;\n for (let i = 0; i < count; i++) {\n offsets[i] = dataView.getUint16(offset);\n offset += 2;\n }\n\n this.relativeOffset += count * 2;\n return offsets;\n};\n\n// Parses a list of 16 bit signed integers.\nParser.prototype.parseShortList = function(count) {\n const list = new Array(count);\n const dataView = this.data;\n let offset = this.offset + this.relativeOffset;\n for (let i = 0; i < count; i++) {\n list[i] = dataView.getInt16(offset);\n offset += 2;\n }\n\n this.relativeOffset += count * 2;\n return list;\n};\n\n// Parses a list of bytes.\nParser.prototype.parseByteList = function(count) {\n const list = new Array(count);\n const dataView = this.data;\n let offset = this.offset + this.relativeOffset;\n for (let i = 0; i < count; i++) {\n list[i] = dataView.getUint8(offset++);\n }\n\n this.relativeOffset += count;\n return list;\n};\n\n/**\n * Parse a list of items.\n * Record count is optional, if omitted it is read from the stream.\n * itemCallback is one of the Parser methods.\n */\nParser.prototype.parseList = function(count, itemCallback) {\n if (!itemCallback) {\n itemCallback = count;\n count = this.parseUShort();\n }\n const list = new Array(count);\n for (let i = 0; i < count; i++) {\n list[i] = itemCallback.call(this);\n }\n return list;\n};\n\nParser.prototype.parseList32 = function(count, itemCallback) {\n if (!itemCallback) {\n itemCallback = count;\n count = this.parseULong();\n }\n const list = new Array(count);\n for (let i = 0; i < count; i++) {\n list[i] = itemCallback.call(this);\n }\n return list;\n};\n\n/**\n * Parse a list of records.\n * Record count is optional, if omitted it is read from the stream.\n * Example of recordDescription: { sequenceIndex: Parser.uShort, lookupListIndex: Parser.uShort }\n */\nParser.prototype.parseRecordList = function(count, recordDescription) {\n // If the count argument is absent, read it in the stream.\n if (!recordDescription) {\n recordDescription = count;\n count = this.parseUShort();\n }\n const records = new Array(count);\n const fields = Object.keys(recordDescription);\n for (let i = 0; i < count; i++) {\n const rec = {};\n for (let j = 0; j < fields.length; j++) {\n const fieldName = fields[j];\n const fieldType = recordDescription[fieldName];\n rec[fieldName] = fieldType.call(this);\n }\n records[i] = rec;\n }\n return records;\n};\n\nParser.prototype.parseRecordList32 = function(count, recordDescription) {\n // If the count argument is absent, read it in the stream.\n if (!recordDescription) {\n recordDescription = count;\n count = this.parseULong();\n }\n const records = new Array(count);\n const fields = Object.keys(recordDescription);\n for (let i = 0; i < count; i++) {\n const rec = {};\n for (let j = 0; j < fields.length; j++) {\n const fieldName = fields[j];\n const fieldType = recordDescription[fieldName];\n rec[fieldName] = fieldType.call(this);\n }\n records[i] = rec;\n }\n return records;\n};\n\n// Parse a data structure into an object\n// Example of description: { sequenceIndex: Parser.uShort, lookupListIndex: Parser.uShort }\nParser.prototype.parseStruct = function(description) {\n if (typeof description === 'function') {\n return description.call(this);\n } else {\n const fields = Object.keys(description);\n const struct = {};\n for (let j = 0; j < fields.length; j++) {\n const fieldName = fields[j];\n const fieldType = description[fieldName];\n struct[fieldName] = fieldType.call(this);\n }\n return struct;\n }\n};\n\n/**\n * Parse a GPOS valueRecord\n * https://docs.microsoft.com/en-us/typography/opentype/spec/gpos#value-record\n * valueFormat is optional, if omitted it is read from the stream.\n */\nParser.prototype.parseValueRecord = function(valueFormat) {\n if (valueFormat === undefined) {\n valueFormat = this.parseUShort();\n }\n if (valueFormat === 0) {\n // valueFormat2 in kerning pairs is most often 0\n // in this case return undefined instead of an empty object, to save space\n return;\n }\n const valueRecord = {};\n\n if (valueFormat & 0x0001) { valueRecord.xPlacement = this.parseShort(); }\n if (valueFormat & 0x0002) { valueRecord.yPlacement = this.parseShort(); }\n if (valueFormat & 0x0004) { valueRecord.xAdvance = this.parseShort(); }\n if (valueFormat & 0x0008) { valueRecord.yAdvance = this.parseShort(); }\n\n // Device table (non-variable font) / VariationIndex table (variable font) not supported\n // https://docs.microsoft.com/fr-fr/typography/opentype/spec/chapter2#devVarIdxTbls\n if (valueFormat & 0x0010) { valueRecord.xPlaDevice = undefined; this.parseShort(); }\n if (valueFormat & 0x0020) { valueRecord.yPlaDevice = undefined; this.parseShort(); }\n if (valueFormat & 0x0040) { valueRecord.xAdvDevice = undefined; this.parseShort(); }\n if (valueFormat & 0x0080) { valueRecord.yAdvDevice = undefined; this.parseShort(); }\n\n return valueRecord;\n};\n\n/**\n * Parse a list of GPOS valueRecords\n * https://docs.microsoft.com/en-us/typography/opentype/spec/gpos#value-record\n * valueFormat and valueCount are read from the stream.\n */\nParser.prototype.parseValueRecordList = function() {\n const valueFormat = this.parseUShort();\n const valueCount = this.parseUShort();\n const values = new Array(valueCount);\n for (let i = 0; i < valueCount; i++) {\n values[i] = this.parseValueRecord(valueFormat);\n }\n return values;\n};\n\nParser.prototype.parsePointer = function(description) {\n const structOffset = this.parseOffset16();\n if (structOffset > 0) {\n // NULL offset => return undefined\n return new Parser(this.data, this.offset + structOffset).parseStruct(description);\n }\n return undefined;\n};\n\nParser.prototype.parsePointer32 = function(description) {\n const structOffset = this.parseOffset32();\n if (structOffset > 0) {\n // NULL offset => return undefined\n return new Parser(this.data, this.offset + structOffset).parseStruct(description);\n }\n return undefined;\n};\n\n/**\n * Parse a list of offsets to lists of 16-bit integers,\n * or a list of offsets to lists of offsets to any kind of items.\n * If itemCallback is not provided, a list of list of UShort is assumed.\n * If provided, itemCallback is called on each item and must parse the item.\n * See examples in tables/gsub.js\n */\nParser.prototype.parseListOfLists = function(itemCallback) {\n const offsets = this.parseOffset16List();\n const count = offsets.length;\n const relativeOffset = this.relativeOffset;\n const list = new Array(count);\n for (let i = 0; i < count; i++) {\n const start = offsets[i];\n if (start === 0) {\n // NULL offset\n // Add i as owned property to list. Convenient with assert.\n list[i] = undefined;\n continue;\n }\n this.relativeOffset = start;\n if (itemCallback) {\n const subOffsets = this.parseOffset16List();\n const subList = new Array(subOffsets.length);\n for (let j = 0; j < subOffsets.length; j++) {\n this.relativeOffset = start + subOffsets[j];\n subList[j] = itemCallback.call(this);\n }\n list[i] = subList;\n } else {\n list[i] = this.parseUShortList();\n }\n }\n this.relativeOffset = relativeOffset;\n return list;\n};\n\n///// Complex tables parsing //////////////////////////////////\n\n// Parse a coverage table in a GSUB, GPOS or GDEF table.\n// https://www.microsoft.com/typography/OTSPEC/chapter2.htm\n// parser.offset must point to the start of the table containing the coverage.\nParser.prototype.parseCoverage = function() {\n const startOffset = this.offset + this.relativeOffset;\n const format = this.parseUShort();\n const count = this.parseUShort();\n if (format === 1) {\n return {\n format: 1,\n glyphs: this.parseUShortList(count)\n };\n } else if (format === 2) {\n const ranges = new Array(count);\n for (let i = 0; i < count; i++) {\n ranges[i] = {\n start: this.parseUShort(),\n end: this.parseUShort(),\n index: this.parseUShort()\n };\n }\n return {\n format: 2,\n ranges: ranges\n };\n }\n throw new Error('0x' + startOffset.toString(16) + ': Coverage format must be 1 or 2.');\n};\n\n// Parse a Class Definition Table in a GSUB, GPOS or GDEF table.\n// https://www.microsoft.com/typography/OTSPEC/chapter2.htm\nParser.prototype.parseClassDef = function() {\n const startOffset = this.offset + this.relativeOffset;\n const format = this.parseUShort();\n if (format === 1) {\n return {\n format: 1,\n startGlyph: this.parseUShort(),\n classes: this.parseUShortList()\n };\n } else if (format === 2) {\n return {\n format: 2,\n ranges: this.parseRecordList({\n start: Parser.uShort,\n end: Parser.uShort,\n classId: Parser.uShort\n })\n };\n }\n throw new Error('0x' + startOffset.toString(16) + ': ClassDef format must be 1 or 2.');\n};\n\n///// Static methods ///////////////////////////////////\n// These convenience methods can be used as callbacks and should be called with \"this\" context set to a Parser instance.\n\nParser.list = function(count, itemCallback) {\n return function() {\n return this.parseList(count, itemCallback);\n };\n};\n\nParser.list32 = function(count, itemCallback) {\n return function() {\n return this.parseList32(count, itemCallback);\n };\n};\n\nParser.recordList = function(count, recordDescription) {\n return function() {\n return this.parseRecordList(count, recordDescription);\n };\n};\n\nParser.recordList32 = function(count, recordDescription) {\n return function() {\n return this.parseRecordList32(count, recordDescription);\n };\n};\n\nParser.pointer = function(description) {\n return function() {\n return this.parsePointer(description);\n };\n};\n\nParser.pointer32 = function(description) {\n return function() {\n return this.parsePointer32(description);\n };\n};\n\nParser.tag = Parser.prototype.parseTag;\nParser.byte = Parser.prototype.parseByte;\nParser.uShort = Parser.offset16 = Parser.prototype.parseUShort;\nParser.uShortList = Parser.prototype.parseUShortList;\nParser.uLong = Parser.offset32 = Parser.prototype.parseULong;\nParser.uLongList = Parser.prototype.parseULongList;\nParser.struct = Parser.prototype.parseStruct;\nParser.coverage = Parser.prototype.parseCoverage;\nParser.classDef = Parser.prototype.parseClassDef;\n\n///// Script, Feature, Lookup lists ///////////////////////////////////////////////\n// https://www.microsoft.com/typography/OTSPEC/chapter2.htm\n\nconst langSysTable = {\n reserved: Parser.uShort,\n reqFeatureIndex: Parser.uShort,\n featureIndexes: Parser.uShortList\n};\n\nParser.prototype.parseScriptList = function() {\n return this.parsePointer(Parser.recordList({\n tag: Parser.tag,\n script: Parser.pointer({\n defaultLangSys: Parser.pointer(langSysTable),\n langSysRecords: Parser.recordList({\n tag: Parser.tag,\n langSys: Parser.pointer(langSysTable)\n })\n })\n })) || [];\n};\n\nParser.prototype.parseFeatureList = function() {\n return this.parsePointer(Parser.recordList({\n tag: Parser.tag,\n feature: Parser.pointer({\n featureParams: Parser.offset16,\n lookupListIndexes: Parser.uShortList\n })\n })) || [];\n};\n\nParser.prototype.parseLookupList = function(lookupTableParsers) {\n return this.parsePointer(Parser.list(Parser.pointer(function() {\n const lookupType = this.parseUShort();\n check.argument(1 <= lookupType && lookupType <= 9, 'GPOS/GSUB lookup type ' + lookupType + ' unknown.');\n const lookupFlag = this.parseUShort();\n const useMarkFilteringSet = lookupFlag & 0x10;\n return {\n lookupType: lookupType,\n lookupFlag: lookupFlag,\n subtables: this.parseList(Parser.pointer(lookupTableParsers[lookupType])),\n markFilteringSet: useMarkFilteringSet ? this.parseUShort() : undefined\n };\n }))) || [];\n};\n\nParser.prototype.parseFeatureVariationsList = function() {\n return this.parsePointer32(function() {\n const majorVersion = this.parseUShort();\n const minorVersion = this.parseUShort();\n check.argument(majorVersion === 1 && minorVersion < 1, 'GPOS/GSUB feature variations table unknown.');\n const featureVariations = this.parseRecordList32({\n conditionSetOffset: Parser.offset32,\n featureTableSubstitutionOffset: Parser.offset32\n });\n return featureVariations;\n }) || [];\n};\n\nexport default {\n getByte,\n getCard8: getByte,\n getUShort,\n getCard16: getUShort,\n getShort,\n getULong,\n getFixed,\n getTag,\n getOffset,\n getBytes,\n bytesToString,\n Parser,\n};\n\nexport { Parser };\n","// The `glyf` table describes the glyphs in TrueType outline format.\n// http://www.microsoft.com/typography/otspec/glyf.htm\n\nimport check from '../check';\nimport glyphset from '../glyphset';\nimport parse from '../parse';\nimport Path from '../path';\n\n// Parse the coordinate data for a glyph.\nfunction parseGlyphCoordinate(p, flag, previousValue, shortVectorBitMask, sameBitMask) {\n let v;\n if ((flag & shortVectorBitMask) > 0) {\n // The coordinate is 1 byte long.\n v = p.parseByte();\n // The `same` bit is re-used for short values to signify the sign of the value.\n if ((flag & sameBitMask) === 0) {\n v = -v;\n }\n\n v = previousValue + v;\n } else {\n // The coordinate is 2 bytes long.\n // If the `same` bit is set, the coordinate is the same as the previous coordinate.\n if ((flag & sameBitMask) > 0) {\n v = previousValue;\n } else {\n // Parse the coordinate as a signed 16-bit delta value.\n v = previousValue + p.parseShort();\n }\n }\n\n return v;\n}\n\n// Parse a TrueType glyph.\nfunction parseGlyph(glyph, data, start) {\n const p = new parse.Parser(data, start);\n glyph.numberOfContours = p.parseShort();\n glyph._xMin = p.parseShort();\n glyph._yMin = p.parseShort();\n glyph._xMax = p.parseShort();\n glyph._yMax = p.parseShort();\n let flags;\n let flag;\n\n if (glyph.numberOfContours > 0) {\n // This glyph is not a composite.\n const endPointIndices = glyph.endPointIndices = [];\n for (let i = 0; i < glyph.numberOfContours; i += 1) {\n endPointIndices.push(p.parseUShort());\n }\n\n glyph.instructionLength = p.parseUShort();\n glyph.instructions = [];\n for (let i = 0; i < glyph.instructionLength; i += 1) {\n glyph.instructions.push(p.parseByte());\n }\n\n const numberOfCoordinates = endPointIndices[endPointIndices.length - 1] + 1;\n flags = [];\n for (let i = 0; i < numberOfCoordinates; i += 1) {\n flag = p.parseByte();\n flags.push(flag);\n // If bit 3 is set, we repeat this flag n times, where n is the next byte.\n if ((flag & 8) > 0) {\n const repeatCount = p.parseByte();\n for (let j = 0; j < repeatCount; j += 1) {\n flags.push(flag);\n i += 1;\n }\n }\n }\n\n check.argument(flags.length === numberOfCoordinates, 'Bad flags.');\n\n if (endPointIndices.length > 0) {\n const points = [];\n let point;\n // X/Y coordinates are relative to the previous point, except for the first point which is relative to 0,0.\n if (numberOfCoordinates > 0) {\n for (let i = 0; i < numberOfCoordinates; i += 1) {\n flag = flags[i];\n point = {};\n point.onCurve = !!(flag & 1);\n point.lastPointOfContour = endPointIndices.indexOf(i) >= 0;\n points.push(point);\n }\n\n let px = 0;\n for (let i = 0; i < numberOfCoordinates; i += 1) {\n flag = flags[i];\n point = points[i];\n point.x = parseGlyphCoordinate(p, flag, px, 2, 16);\n px = point.x;\n }\n\n let py = 0;\n for (let i = 0; i < numberOfCoordinates; i += 1) {\n flag = flags[i];\n point = points[i];\n point.y = parseGlyphCoordinate(p, flag, py, 4, 32);\n py = point.y;\n }\n }\n\n glyph.points = points;\n } else {\n glyph.points = [];\n }\n } else if (glyph.numberOfContours === 0) {\n glyph.points = [];\n } else {\n glyph.isComposite = true;\n glyph.points = [];\n glyph.components = [];\n let moreComponents = true;\n while (moreComponents) {\n flags = p.parseUShort();\n const component = {\n glyphIndex: p.parseUShort(),\n xScale: 1,\n scale01: 0,\n scale10: 0,\n yScale: 1,\n dx: 0,\n dy: 0\n };\n if ((flags & 1) > 0) {\n // The arguments are words\n if ((flags & 2) > 0) {\n // values are offset\n component.dx = p.parseShort();\n component.dy = p.parseShort();\n } else {\n // values are matched points\n component.matchedPoints = [p.parseUShort(), p.parseUShort()];\n }\n\n } else {\n // The arguments are bytes\n if ((flags & 2) > 0) {\n // values are offset\n component.dx = p.parseChar();\n component.dy = p.parseChar();\n } else {\n // values are matched points\n component.matchedPoints = [p.parseByte(), p.parseByte()];\n }\n }\n\n if ((flags & 8) > 0) {\n // We have a scale\n component.xScale = component.yScale = p.parseF2Dot14();\n } else if ((flags & 64) > 0) {\n // We have an X / Y scale\n component.xScale = p.parseF2Dot14();\n component.yScale = p.parseF2Dot14();\n } else if ((flags & 128) > 0) {\n // We have a 2x2 transformation\n component.xScale = p.parseF2Dot14();\n component.scale01 = p.parseF2Dot14();\n component.scale10 = p.parseF2Dot14();\n component.yScale = p.parseF2Dot14();\n }\n\n glyph.components.push(component);\n moreComponents = !!(flags & 32);\n }\n if (flags & 0x100) {\n // We have instructions\n glyph.instructionLength = p.parseUShort();\n glyph.instructions = [];\n for (let i = 0; i < glyph.instructionLength; i += 1) {\n glyph.instructions.push(p.parseByte());\n }\n }\n }\n}\n\n// Transform an array of points and return a new array.\nfunction transformPoints(points, transform) {\n const newPoints = [];\n for (let i = 0; i < points.length; i += 1) {\n const pt = points[i];\n const newPt = {\n x: transform.xScale * pt.x + transform.scale01 * pt.y + transform.dx,\n y: transform.scale10 * pt.x + transform.yScale * pt.y + transform.dy,\n onCurve: pt.onCurve,\n lastPointOfContour: pt.lastPointOfContour\n };\n newPoints.push(newPt);\n }\n\n return newPoints;\n}\n\nfunction getContours(points) {\n const contours = [];\n let currentContour = [];\n for (let i = 0; i < points.length; i += 1) {\n const pt = points[i];\n currentContour.push(pt);\n if (pt.lastPointOfContour) {\n contours.push(currentContour);\n currentContour = [];\n }\n }\n\n check.argument(currentContour.length === 0, 'There are still points left in the current contour.');\n return contours;\n}\n\n// Convert the TrueType glyph outline to a Path.\nfunction getPath(points) {\n const p = new Path();\n if (!points) {\n return p;\n }\n\n const contours = getContours(points);\n\n for (let contourIndex = 0; contourIndex < contours.length; ++contourIndex) {\n const contour = contours[contourIndex];\n\n let prev = null;\n let curr = contour[contour.length - 1];\n let next = contour[0];\n\n if (curr.onCurve) {\n p.moveTo(curr.x, curr.y);\n } else {\n if (next.onCurve) {\n p.moveTo(next.x, next.y);\n } else {\n // If both first and last points are off-curve, start at their middle.\n const start = {x: (curr.x + next.x) * 0.5, y: (curr.y + next.y) * 0.5};\n p.moveTo(start.x, start.y);\n }\n }\n\n for (let i = 0; i < contour.length; ++i) {\n prev = curr;\n curr = next;\n next = contour[(i + 1) % contour.length];\n\n if (curr.onCurve) {\n // This is a straight line.\n p.lineTo(curr.x, curr.y);\n } else {\n let prev2 = prev;\n let next2 = next;\n\n if (!prev.onCurve) {\n prev2 = { x: (curr.x + prev.x) * 0.5, y: (curr.y + prev.y) * 0.5 };\n }\n\n if (!next.onCurve) {\n next2 = { x: (curr.x + next.x) * 0.5, y: (curr.y + next.y) * 0.5 };\n }\n\n p.quadraticCurveTo(curr.x, curr.y, next2.x, next2.y);\n }\n }\n\n p.closePath();\n }\n return p;\n}\n\nfunction buildPath(glyphs, glyph) {\n if (glyph.isComposite) {\n for (let j = 0; j < glyph.components.length; j += 1) {\n const component = glyph.components[j];\n const componentGlyph = glyphs.get(component.glyphIndex);\n // Force the ttfGlyphLoader to parse the glyph.\n componentGlyph.getPath();\n if (componentGlyph.points) {\n let transformedPoints;\n if (component.matchedPoints === undefined) {\n // component positioned by offset\n transformedPoints = transformPoints(componentGlyph.points, component);\n } else {\n // component positioned by matched points\n if ((component.matchedPoints[0] > glyph.points.length - 1) ||\n (component.matchedPoints[1] > componentGlyph.points.length - 1)) {\n throw Error('Matched points out of range in ' + glyph.name);\n }\n const firstPt = glyph.points[component.matchedPoints[0]];\n let secondPt = componentGlyph.points[component.matchedPoints[1]];\n const transform = {\n xScale: component.xScale, scale01: component.scale01,\n scale10: component.scale10, yScale: component.yScale,\n dx: 0, dy: 0\n };\n secondPt = transformPoints([secondPt], transform)[0];\n transform.dx = firstPt.x - secondPt.x;\n transform.dy = firstPt.y - secondPt.y;\n transformedPoints = transformPoints(componentGlyph.points, transform);\n }\n glyph.points = glyph.points.concat(transformedPoints);\n }\n }\n }\n\n return getPath(glyph.points);\n}\n\nfunction parseGlyfTableAll(data, start, loca, font) {\n const glyphs = new glyphset.GlyphSet(font);\n\n // The last element of the loca table is invalid.\n for (let i = 0; i < loca.length - 1; i += 1) {\n const offset = loca[i];\n const nextOffset = loca[i + 1];\n if (offset !== nextOffset) {\n glyphs.push(i, glyphset.ttfGlyphLoader(font, i, parseGlyph, data, start + offset, buildPath));\n } else {\n glyphs.push(i, glyphset.glyphLoader(font, i));\n }\n }\n\n return glyphs;\n}\n\nfunction parseGlyfTableOnLowMemory(data, start, loca, font) {\n const glyphs = new glyphset.GlyphSet(font);\n\n font._push = function(i) {\n const offset = loca[i];\n const nextOffset = loca[i + 1];\n if (offset !== nextOffset) {\n glyphs.push(i, glyphset.ttfGlyphLoader(font, i, parseGlyph, data, start + offset, buildPath));\n } else {\n glyphs.push(i, glyphset.glyphLoader(font, i));\n }\n };\n\n return glyphs;\n}\n\n// Parse all the glyphs according to the offsets from the `loca` table.\nfunction parseGlyfTable(data, start, loca, font, opt) {\n if (opt.lowMemory)\n return parseGlyfTableOnLowMemory(data, start, loca, font);\n else\n return parseGlyfTableAll(data, start, loca, font);\n}\n\nexport default { getPath, parse: parseGlyfTable};\n","/* A TrueType font hinting interpreter.\n*\n* (c) 2017 Axel Kittenberger\n*\n* This interpreter has been implemented according to this documentation:\n* https://developer.apple.com/fonts/TrueType-Reference-Manual/RM05/Chap5.html\n*\n* According to the documentation F24DOT6 values are used for pixels.\n* That means calculation is 1/64 pixel accurate and uses integer operations.\n* However, Javascript has floating point operations by default and only\n* those are available. One could make a case to simulate the 1/64 accuracy\n* exactly by truncating after every division operation\n* (for example with << 0) to get pixel exactly results as other TrueType\n* implementations. It may make sense since some fonts are pixel optimized\n* by hand using DELTAP instructions. The current implementation doesn't\n* and rather uses full floating point precision.\n*\n* xScale, yScale and rotation is currently ignored.\n*\n* A few non-trivial instructions are missing as I didn't encounter yet\n* a font that used them to test a possible implementation.\n*\n* Some fonts seem to use undocumented features regarding the twilight zone.\n* Only some of them are implemented as they were encountered.\n*\n* The exports.DEBUG statements are removed on the minified distribution file.\n*/\n'use strict';\n\nimport glyf from './tables/glyf';\n\nlet instructionTable;\nlet exec;\nlet execGlyph;\nlet execComponent;\n\n/*\n* Creates a hinting object.\n*\n* There ought to be exactly one\n* for each truetype font that is used for hinting.\n*/\nfunction Hinting(font) {\n // the font this hinting object is for\n this.font = font;\n\n this.getCommands = function (hPoints) {\n return glyf.getPath(hPoints).commands;\n };\n\n // cached states\n this._fpgmState =\n this._prepState =\n undefined;\n\n // errorState\n // 0 ... all okay\n // 1 ... had an error in a glyf,\n // continue working but stop spamming\n // the console\n // 2 ... error at prep, stop hinting at this ppem\n // 3 ... error at fpeg, stop hinting for this font at all\n this._errorState = 0;\n}\n\n/*\n* Not rounding.\n*/\nfunction roundOff(v) {\n return v;\n}\n\n/*\n* Rounding to grid.\n*/\nfunction roundToGrid(v) {\n //Rounding in TT is supposed to \"symmetrical around zero\"\n return Math.sign(v) * Math.round(Math.abs(v));\n}\n\n/*\n* Rounding to double grid.\n*/\nfunction roundToDoubleGrid(v) {\n return Math.sign(v) * Math.round(Math.abs(v * 2)) / 2;\n}\n\n/*\n* Rounding to half grid.\n*/\nfunction roundToHalfGrid(v) {\n return Math.sign(v) * (Math.round(Math.abs(v) + 0.5) - 0.5);\n}\n\n/*\n* Rounding to up to grid.\n*/\nfunction roundUpToGrid(v) {\n return Math.sign(v) * Math.ceil(Math.abs(v));\n}\n\n/*\n* Rounding to down to grid.\n*/\nfunction roundDownToGrid(v) {\n return Math.sign(v) * Math.floor(Math.abs(v));\n}\n\n/*\n* Super rounding.\n*/\nconst roundSuper = function (v) {\n const period = this.srPeriod;\n let phase = this.srPhase;\n const threshold = this.srThreshold;\n let sign = 1;\n\n if (v < 0) {\n v = -v;\n sign = -1;\n }\n\n v += threshold - phase;\n\n v = Math.trunc(v / period) * period;\n\n v += phase;\n\n // according to http://xgridfit.sourceforge.net/round.html\n if (v < 0) return phase * sign;\n\n return v * sign;\n};\n\n/*\n* Unit vector of x-axis.\n*/\nconst xUnitVector = {\n x: 1,\n\n y: 0,\n\n axis: 'x',\n\n // Gets the projected distance between two points.\n // o1/o2 ... if true, respective original position is used.\n distance: function (p1, p2, o1, o2) {\n return (o1 ? p1.xo : p1.x) - (o2 ? p2.xo : p2.x);\n },\n\n // Moves point p so the moved position has the same relative\n // position to the moved positions of rp1 and rp2 than the\n // original positions had.\n //\n // See APPENDIX on INTERPOLATE at the bottom of this file.\n interpolate: function (p, rp1, rp2, pv) {\n let do1;\n let do2;\n let doa1;\n let doa2;\n let dm1;\n let dm2;\n let dt;\n\n if (!pv || pv === this) {\n do1 = p.xo - rp1.xo;\n do2 = p.xo - rp2.xo;\n dm1 = rp1.x - rp1.xo;\n dm2 = rp2.x - rp2.xo;\n doa1 = Math.abs(do1);\n doa2 = Math.abs(do2);\n dt = doa1 + doa2;\n\n if (dt === 0) {\n p.x = p.xo + (dm1 + dm2) / 2;\n return;\n }\n\n p.x = p.xo + (dm1 * doa2 + dm2 * doa1) / dt;\n return;\n }\n\n do1 = pv.distance(p, rp1, true, true);\n do2 = pv.distance(p, rp2, true, true);\n dm1 = pv.distance(rp1, rp1, false, true);\n dm2 = pv.distance(rp2, rp2, false, true);\n doa1 = Math.abs(do1);\n doa2 = Math.abs(do2);\n dt = doa1 + doa2;\n\n if (dt === 0) {\n xUnitVector.setRelative(p, p, (dm1 + dm2) / 2, pv, true);\n return;\n }\n\n xUnitVector.setRelative(p, p, (dm1 * doa2 + dm2 * doa1) / dt, pv, true);\n },\n\n // Slope of line normal to this\n normalSlope: Number.NEGATIVE_INFINITY,\n\n // Sets the point 'p' relative to point 'rp'\n // by the distance 'd'.\n //\n // See APPENDIX on SETRELATIVE at the bottom of this file.\n //\n // p ... point to set\n // rp ... reference point\n // d ... distance on projection vector\n // pv ... projection vector (undefined = this)\n // org ... if true, uses the original position of rp as reference.\n setRelative: function (p, rp, d, pv, org) {\n if (!pv || pv === this) {\n p.x = (org ? rp.xo : rp.x) + d;\n return;\n }\n\n const rpx = org ? rp.xo : rp.x;\n const rpy = org ? rp.yo : rp.y;\n const rpdx = rpx + d * pv.x;\n const rpdy = rpy + d * pv.y;\n\n p.x = rpdx + (p.y - rpdy) / pv.normalSlope;\n },\n\n // Slope of vector line.\n slope: 0,\n\n // Touches the point p.\n touch: function (p) {\n p.xTouched = true;\n },\n\n // Tests if a point p is touched.\n touched: function (p) {\n return p.xTouched;\n },\n\n // Untouches the point p.\n untouch: function (p) {\n p.xTouched = false;\n }\n};\n\n/*\n* Unit vector of y-axis.\n*/\nconst yUnitVector = {\n x: 0,\n\n y: 1,\n\n axis: 'y',\n\n // Gets the projected distance between two points.\n // o1/o2 ... if true, respective original position is used.\n distance: function (p1, p2, o1, o2) {\n return (o1 ? p1.yo : p1.y) - (o2 ? p2.yo : p2.y);\n },\n\n // Moves point p so the moved position has the same relative\n // position to the moved positions of rp1 and rp2 than the\n // original positions had.\n //\n // See APPENDIX on INTERPOLATE at the bottom of this file.\n interpolate: function (p, rp1, rp2, pv) {\n let do1;\n let do2;\n let doa1;\n let doa2;\n let dm1;\n let dm2;\n let dt;\n\n if (!pv || pv === this) {\n do1 = p.yo - rp1.yo;\n do2 = p.yo - rp2.yo;\n dm1 = rp1.y - rp1.yo;\n dm2 = rp2.y - rp2.yo;\n doa1 = Math.abs(do1);\n doa2 = Math.abs(do2);\n dt = doa1 + doa2;\n\n if (dt === 0) {\n p.y = p.yo + (dm1 + dm2) / 2;\n return;\n }\n\n p.y = p.yo + (dm1 * doa2 + dm2 * doa1) / dt;\n return;\n }\n\n do1 = pv.distance(p, rp1, true, true);\n do2 = pv.distance(p, rp2, true, true);\n dm1 = pv.distance(rp1, rp1, false, true);\n dm2 = pv.distance(rp2, rp2, false, true);\n doa1 = Math.abs(do1);\n doa2 = Math.abs(do2);\n dt = doa1 + doa2;\n\n if (dt === 0) {\n yUnitVector.setRelative(p, p, (dm1 + dm2) / 2, pv, true);\n return;\n }\n\n yUnitVector.setRelative(p, p, (dm1 * doa2 + dm2 * doa1) / dt, pv, true);\n },\n\n // Slope of line normal to this.\n normalSlope: 0,\n\n // Sets the point 'p' relative to point 'rp'\n // by the distance 'd'\n //\n // See APPENDIX on SETRELATIVE at the bottom of this file.\n //\n // p ... point to set\n // rp ... reference point\n // d ... distance on projection vector\n // pv ... projection vector (undefined = this)\n // org ... if true, uses the original position of rp as reference.\n setRelative: function (p, rp, d, pv, org) {\n if (!pv || pv === this) {\n p.y = (org ? rp.yo : rp.y) + d;\n return;\n }\n\n const rpx = org ? rp.xo : rp.x;\n const rpy = org ? rp.yo : rp.y;\n const rpdx = rpx + d * pv.x;\n const rpdy = rpy + d * pv.y;\n\n p.y = rpdy + pv.normalSlope * (p.x - rpdx);\n },\n\n // Slope of vector line.\n slope: Number.POSITIVE_INFINITY,\n\n // Touches the point p.\n touch: function (p) {\n p.yTouched = true;\n },\n\n // Tests if a point p is touched.\n touched: function (p) {\n return p.yTouched;\n },\n\n // Untouches the point p.\n untouch: function (p) {\n p.yTouched = false;\n }\n};\n\nObject.freeze(xUnitVector);\nObject.freeze(yUnitVector);\n\n/*\n* Creates a unit vector that is not x- or y-axis.\n*/\nfunction UnitVector(x, y) {\n this.x = x;\n this.y = y;\n this.axis = undefined;\n this.slope = y / x;\n this.normalSlope = -x / y;\n Object.freeze(this);\n}\n\n/*\n* Gets the projected distance between two points.\n* o1/o2 ... if true, respective original position is used.\n*/\nUnitVector.prototype.distance = function(p1, p2, o1, o2) {\n return (\n this.x * xUnitVector.distance(p1, p2, o1, o2) +\n this.y * yUnitVector.distance(p1, p2, o1, o2)\n );\n};\n\n/*\n* Moves point p so the moved position has the same relative\n* position to the moved positions of rp1 and rp2 than the\n* original positions had.\n*\n* See APPENDIX on INTERPOLATE at the bottom of this file.\n*/\nUnitVector.prototype.interpolate = function(p, rp1, rp2, pv) {\n let dm1;\n let dm2;\n let do1;\n let do2;\n let doa1;\n let doa2;\n let dt;\n\n do1 = pv.distance(p, rp1, true, true);\n do2 = pv.distance(p, rp2, true, true);\n dm1 = pv.distance(rp1, rp1, false, true);\n dm2 = pv.distance(rp2, rp2, false, true);\n doa1 = Math.abs(do1);\n doa2 = Math.abs(do2);\n dt = doa1 + doa2;\n\n if (dt === 0) {\n this.setRelative(p, p, (dm1 + dm2) / 2, pv, true);\n return;\n }\n\n this.setRelative(p, p, (dm1 * doa2 + dm2 * doa1) / dt, pv, true);\n};\n\n/*\n* Sets the point 'p' relative to point 'rp'\n* by the distance 'd'\n*\n* See APPENDIX on SETRELATIVE at the bottom of this file.\n*\n* p ... point to set\n* rp ... reference point\n* d ... distance on projection vector\n* pv ... projection vector (undefined = this)\n* org ... if true, uses the original position of rp as reference.\n*/\nUnitVector.prototype.setRelative = function(p, rp, d, pv, org) {\n pv = pv || this;\n\n const rpx = org ? rp.xo : rp.x;\n const rpy = org ? rp.yo : rp.y;\n const rpdx = rpx + d * pv.x;\n const rpdy = rpy + d * pv.y;\n\n const pvns = pv.normalSlope;\n const fvs = this.slope;\n\n const px = p.x;\n const py = p.y;\n\n p.x = (fvs * px - pvns * rpdx + rpdy - py) / (fvs - pvns);\n p.y = fvs * (p.x - px) + py;\n};\n\n/*\n* Touches the point p.\n*/\nUnitVector.prototype.touch = function(p) {\n p.xTouched = true;\n p.yTouched = true;\n};\n\n/*\n* Returns a unit vector with x/y coordinates.\n*/\nfunction getUnitVector(x, y) {\n const d = Math.sqrt(x * x + y * y);\n\n x /= d;\n y /= d;\n\n if (x === 1 && y === 0) return xUnitVector;\n else if (x === 0 && y === 1) return yUnitVector;\n else return new UnitVector(x, y);\n}\n\n/*\n* Creates a point in the hinting engine.\n*/\nfunction HPoint(\n x,\n y,\n lastPointOfContour,\n onCurve\n) {\n this.x = this.xo = Math.round(x * 64) / 64; // hinted x value and original x-value\n this.y = this.yo = Math.round(y * 64) / 64; // hinted y value and original y-value\n\n this.lastPointOfContour = lastPointOfContour;\n this.onCurve = onCurve;\n this.prevPointOnContour = undefined;\n this.nextPointOnContour = undefined;\n this.xTouched = false;\n this.yTouched = false;\n\n Object.preventExtensions(this);\n}\n\n/*\n* Returns the next touched point on the contour.\n*\n* v ... unit vector to test touch axis.\n*/\nHPoint.prototype.nextTouched = function(v) {\n let p = this.nextPointOnContour;\n\n while (!v.touched(p) && p !== this) p = p.nextPointOnContour;\n\n return p;\n};\n\n/*\n* Returns the previous touched point on the contour\n*\n* v ... unit vector to test touch axis.\n*/\nHPoint.prototype.prevTouched = function(v) {\n let p = this.prevPointOnContour;\n\n while (!v.touched(p) && p !== this) p = p.prevPointOnContour;\n\n return p;\n};\n\n/*\n* The zero point.\n*/\nconst HPZero = Object.freeze(new HPoint(0, 0));\n\n/*\n* The default state of the interpreter.\n*\n* Note: Freezing the defaultState and then deriving from it\n* makes the V8 Javascript engine going awkward,\n* so this is avoided, albeit the defaultState shouldn't\n* ever change.\n*/\nconst defaultState = {\n cvCutIn: 17 / 16, // control value cut in\n deltaBase: 9,\n deltaShift: 0.125,\n loop: 1, // loops some instructions\n minDis: 1, // minimum distance\n autoFlip: true\n};\n\n/*\n* The current state of the interpreter.\n*\n* env ... 'fpgm' or 'prep' or 'glyf'\n* prog ... the program\n*/\nfunction State(env, prog) {\n this.env = env;\n this.stack = [];\n this.prog = prog;\n\n switch (env) {\n case 'glyf' :\n this.zp0 = this.zp1 = this.zp2 = 1;\n this.rp0 = this.rp1 = this.rp2 = 0;\n /* fall through */\n case 'prep' :\n this.fv = this.pv = this.dpv = xUnitVector;\n this.round = roundToGrid;\n }\n}\n\n/*\n* Executes a glyph program.\n*\n* This does the hinting for each glyph.\n*\n* Returns an array of moved points.\n*\n* glyph: the glyph to hint\n* ppem: the size the glyph is rendered for\n*/\nHinting.prototype.exec = function(glyph, ppem) {\n if (typeof ppem !== 'number') {\n throw new Error('Point size is not a number!');\n }\n\n // Received a fatal error, don't do any hinting anymore.\n if (this._errorState > 2) return;\n\n const font = this.font;\n let prepState = this._prepState;\n\n if (!prepState || prepState.ppem !== ppem) {\n let fpgmState = this._fpgmState;\n\n if (!fpgmState) {\n // Executes the fpgm state.\n // This is used by fonts to define functions.\n State.prototype = defaultState;\n\n fpgmState =\n this._fpgmState =\n new State('fpgm', font.tables.fpgm);\n\n fpgmState.funcs = [ ];\n fpgmState.font = font;\n\n if (exports.DEBUG) {\n console.log('---EXEC FPGM---');\n fpgmState.step = -1;\n }\n\n try {\n exec(fpgmState);\n } catch (e) {\n console.log('Hinting error in FPGM:' + e);\n this._errorState = 3;\n return;\n }\n }\n\n // Executes the prep program for this ppem setting.\n // This is used by fonts to set cvt values\n // depending on to be rendered font size.\n\n State.prototype = fpgmState;\n prepState =\n this._prepState =\n new State('prep', font.tables.prep);\n\n prepState.ppem = ppem;\n\n // Creates a copy of the cvt table\n // and scales it to the current ppem setting.\n const oCvt = font.tables.cvt;\n if (oCvt) {\n const cvt = prepState.cvt = new Array(oCvt.length);\n const scale = ppem / font.unitsPerEm;\n for (let c = 0; c < oCvt.length; c++) {\n cvt[c] = oCvt[c] * scale;\n }\n } else {\n prepState.cvt = [];\n }\n\n if (exports.DEBUG) {\n console.log('---EXEC PREP---');\n prepState.step = -1;\n }\n\n try {\n exec(prepState);\n } catch (e) {\n if (this._errorState < 2) {\n console.log('Hinting error in PREP:' + e);\n }\n this._errorState = 2;\n }\n }\n\n if (this._errorState > 1) return;\n\n try {\n return execGlyph(glyph, prepState);\n } catch (e) {\n if (this._errorState < 1) {\n console.log('Hinting error:' + e);\n console.log('Note: further hinting errors are silenced');\n }\n this._errorState = 1;\n return undefined;\n }\n};\n\n/*\n* Executes the hinting program for a glyph.\n*/\nexecGlyph = function(glyph, prepState) {\n // original point positions\n const xScale = prepState.ppem / prepState.font.unitsPerEm;\n const yScale = xScale;\n let components = glyph.components;\n let contours;\n let gZone;\n let state;\n\n State.prototype = prepState;\n if (!components) {\n state = new State('glyf', glyph.instructions);\n if (exports.DEBUG) {\n console.log('---EXEC GLYPH---');\n state.step = -1;\n }\n execComponent(glyph, state, xScale, yScale);\n gZone = state.gZone;\n } else {\n const font = prepState.font;\n gZone = [];\n contours = [];\n for (let i = 0; i < components.length; i++) {\n const c = components[i];\n const cg = font.glyphs.get(c.glyphIndex);\n\n state = new State('glyf', cg.instructions);\n\n if (exports.DEBUG) {\n console.log('---EXEC COMP ' + i + '---');\n state.step = -1;\n }\n\n execComponent(cg, state, xScale, yScale);\n // appends the computed points to the result array\n // post processes the component points\n const dx = Math.round(c.dx * xScale);\n const dy = Math.round(c.dy * yScale);\n const gz = state.gZone;\n const cc = state.contours;\n for (let pi = 0; pi < gz.length; pi++) {\n const p = gz[pi];\n p.xTouched = p.yTouched = false;\n p.xo = p.x = p.x + dx;\n p.yo = p.y = p.y + dy;\n }\n\n const gLen = gZone.length;\n gZone.push.apply(gZone, gz);\n for (let j = 0; j < cc.length; j++) {\n contours.push(cc[j] + gLen);\n }\n }\n\n if (glyph.instructions && !state.inhibitGridFit) {\n // the composite has instructions on its own\n state = new State('glyf', glyph.instructions);\n\n state.gZone = state.z0 = state.z1 = state.z2 = gZone;\n\n state.contours = contours;\n\n // note: HPZero cannot be used here, since\n // the point might be modified\n gZone.push(\n new HPoint(0, 0),\n new HPoint(Math.round(glyph.advanceWidth * xScale), 0)\n );\n\n if (exports.DEBUG) {\n console.log('---EXEC COMPOSITE---');\n state.step = -1;\n }\n\n exec(state);\n\n gZone.length -= 2;\n }\n }\n\n return gZone;\n};\n\n/*\n* Executes the hinting program for a component of a multi-component glyph\n* or of the glyph itself for a non-component glyph.\n*/\nexecComponent = function(glyph, state, xScale, yScale)\n{\n const points = glyph.points || [];\n const pLen = points.length;\n const gZone = state.gZone = state.z0 = state.z1 = state.z2 = [];\n const contours = state.contours = [];\n\n // Scales the original points and\n // makes copies for the hinted points.\n let cp; // current point\n for (let i = 0; i < pLen; i++) {\n cp = points[i];\n\n gZone[i] = new HPoint(\n cp.x * xScale,\n cp.y * yScale,\n cp.lastPointOfContour,\n cp.onCurve\n );\n }\n\n // Chain links the contours.\n let sp; // start point\n let np; // next point\n\n for (let i = 0; i < pLen; i++) {\n cp = gZone[i];\n\n if (!sp) {\n sp = cp;\n contours.push(i);\n }\n\n if (cp.lastPointOfContour) {\n cp.nextPointOnContour = sp;\n sp.prevPointOnContour = cp;\n sp = undefined;\n } else {\n np = gZone[i + 1];\n cp.nextPointOnContour = np;\n np.prevPointOnContour = cp;\n }\n }\n\n if (state.inhibitGridFit) return;\n\n if (exports.DEBUG) {\n console.log('PROCESSING GLYPH', state.stack);\n for (let i = 0; i < pLen; i++) {\n console.log(i, gZone[i].x, gZone[i].y);\n }\n }\n\n gZone.push(\n new HPoint(0, 0),\n new HPoint(Math.round(glyph.advanceWidth * xScale), 0)\n );\n\n exec(state);\n\n // Removes the extra points.\n gZone.length -= 2;\n\n if (exports.DEBUG) {\n console.log('FINISHED GLYPH', state.stack);\n for (let i = 0; i < pLen; i++) {\n console.log(i, gZone[i].x, gZone[i].y);\n }\n }\n};\n\n/*\n* Executes the program loaded in state.\n*/\nexec = function(state) {\n let prog = state.prog;\n\n if (!prog) return;\n\n const pLen = prog.length;\n let ins;\n\n for (state.ip = 0; state.ip < pLen; state.ip++) {\n if (exports.DEBUG) state.step++;\n ins = instructionTable[prog[state.ip]];\n\n if (!ins) {\n throw new Error(\n 'unknown instruction: 0x' +\n Number(prog[state.ip]).toString(16)\n );\n }\n\n ins(state);\n\n // very extensive debugging for each step\n /*\n if (exports.DEBUG) {\n var da;\n if (state.gZone) {\n da = [];\n for (let i = 0; i < state.gZone.length; i++)\n {\n da.push(i + ' ' +\n state.gZone[i].x * 64 + ' ' +\n state.gZone[i].y * 64 + ' ' +\n (state.gZone[i].xTouched ? 'x' : '') +\n (state.gZone[i].yTouched ? 'y' : '')\n );\n }\n console.log('GZ', da);\n }\n\n if (state.tZone) {\n da = [];\n for (let i = 0; i < state.tZone.length; i++) {\n da.push(i + ' ' +\n state.tZone[i].x * 64 + ' ' +\n state.tZone[i].y * 64 + ' ' +\n (state.tZone[i].xTouched ? 'x' : '') +\n (state.tZone[i].yTouched ? 'y' : '')\n );\n }\n console.log('TZ', da);\n }\n\n if (state.stack.length > 10) {\n console.log(\n state.stack.length,\n '...', state.stack.slice(state.stack.length - 10)\n );\n } else {\n console.log(state.stack.length, state.stack);\n }\n }\n */\n }\n};\n\n/*\n* Initializes the twilight zone.\n*\n* This is only done if a SZPx instruction\n* refers to the twilight zone.\n*/\nfunction initTZone(state)\n{\n const tZone = state.tZone = new Array(state.gZone.length);\n\n // no idea if this is actually correct...\n for (let i = 0; i < tZone.length; i++)\n {\n tZone[i] = new HPoint(0, 0);\n }\n}\n\n/*\n* Skips the instruction pointer ahead over an IF/ELSE block.\n* handleElse .. if true breaks on matching ELSE\n*/\nfunction skip(state, handleElse)\n{\n const prog = state.prog;\n let ip = state.ip;\n let nesting = 1;\n let ins;\n\n do {\n ins = prog[++ip];\n if (ins === 0x58) // IF\n nesting++;\n else if (ins === 0x59) // EIF\n nesting--;\n else if (ins === 0x40) // NPUSHB\n ip += prog[ip + 1] + 1;\n else if (ins === 0x41) // NPUSHW\n ip += 2 * prog[ip + 1] + 1;\n else if (ins >= 0xB0 && ins <= 0xB7) // PUSHB\n ip += ins - 0xB0 + 1;\n else if (ins >= 0xB8 && ins <= 0xBF) // PUSHW\n ip += (ins - 0xB8 + 1) * 2;\n else if (handleElse && nesting === 1 && ins === 0x1B) // ELSE\n break;\n } while (nesting > 0);\n\n state.ip = ip;\n}\n\n/*----------------------------------------------------------*\n* And then a lot of instructions... *\n*----------------------------------------------------------*/\n\n// SVTCA[a] Set freedom and projection Vectors To Coordinate Axis\n// 0x00-0x01\nfunction SVTCA(v, state) {\n if (exports.DEBUG) console.log(state.step, 'SVTCA[' + v.axis + ']');\n\n state.fv = state.pv = state.dpv = v;\n}\n\n// SPVTCA[a] Set Projection Vector to Coordinate Axis\n// 0x02-0x03\nfunction SPVTCA(v, state) {\n if (exports.DEBUG) console.log(state.step, 'SPVTCA[' + v.axis + ']');\n\n state.pv = state.dpv = v;\n}\n\n// SFVTCA[a] Set Freedom Vector to Coordinate Axis\n// 0x04-0x05\nfunction SFVTCA(v, state) {\n if (exports.DEBUG) console.log(state.step, 'SFVTCA[' + v.axis + ']');\n\n state.fv = v;\n}\n\n// SPVTL[a] Set Projection Vector To Line\n// 0x06-0x07\nfunction SPVTL(a, state) {\n const stack = state.stack;\n const p2i = stack.pop();\n const p1i = stack.pop();\n const p2 = state.z2[p2i];\n const p1 = state.z1[p1i];\n\n if (exports.DEBUG) console.log('SPVTL[' + a + ']', p2i, p1i);\n\n let dx;\n let dy;\n\n if (!a) {\n dx = p1.x - p2.x;\n dy = p1.y - p2.y;\n } else {\n dx = p2.y - p1.y;\n dy = p1.x - p2.x;\n }\n\n state.pv = state.dpv = getUnitVector(dx, dy);\n}\n\n// SFVTL[a] Set Freedom Vector To Line\n// 0x08-0x09\nfunction SFVTL(a, state) {\n const stack = state.stack;\n const p2i = stack.pop();\n const p1i = stack.pop();\n const p2 = state.z2[p2i];\n const p1 = state.z1[p1i];\n\n if (exports.DEBUG) console.log('SFVTL[' + a + ']', p2i, p1i);\n\n let dx;\n let dy;\n\n if (!a) {\n dx = p1.x - p2.x;\n dy = p1.y - p2.y;\n } else {\n dx = p2.y - p1.y;\n dy = p1.x - p2.x;\n }\n\n state.fv = getUnitVector(dx, dy);\n}\n\n// SPVFS[] Set Projection Vector From Stack\n// 0x0A\nfunction SPVFS(state) {\n const stack = state.stack;\n const y = stack.pop();\n const x = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'SPVFS[]', y, x);\n\n state.pv = state.dpv = getUnitVector(x, y);\n}\n\n// SFVFS[] Set Freedom Vector From Stack\n// 0x0B\nfunction SFVFS(state) {\n const stack = state.stack;\n const y = stack.pop();\n const x = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'SPVFS[]', y, x);\n\n state.fv = getUnitVector(x, y);\n}\n\n// GPV[] Get Projection Vector\n// 0x0C\nfunction GPV(state) {\n const stack = state.stack;\n const pv = state.pv;\n\n if (exports.DEBUG) console.log(state.step, 'GPV[]');\n\n stack.push(pv.x * 0x4000);\n stack.push(pv.y * 0x4000);\n}\n\n// GFV[] Get Freedom Vector\n// 0x0C\nfunction GFV(state) {\n const stack = state.stack;\n const fv = state.fv;\n\n if (exports.DEBUG) console.log(state.step, 'GFV[]');\n\n stack.push(fv.x * 0x4000);\n stack.push(fv.y * 0x4000);\n}\n\n// SFVTPV[] Set Freedom Vector To Projection Vector\n// 0x0E\nfunction SFVTPV(state) {\n state.fv = state.pv;\n\n if (exports.DEBUG) console.log(state.step, 'SFVTPV[]');\n}\n\n// ISECT[] moves point p to the InterSECTion of two lines\n// 0x0F\nfunction ISECT(state)\n{\n const stack = state.stack;\n const pa0i = stack.pop();\n const pa1i = stack.pop();\n const pb0i = stack.pop();\n const pb1i = stack.pop();\n const pi = stack.pop();\n const z0 = state.z0;\n const z1 = state.z1;\n const pa0 = z0[pa0i];\n const pa1 = z0[pa1i];\n const pb0 = z1[pb0i];\n const pb1 = z1[pb1i];\n const p = state.z2[pi];\n\n if (exports.DEBUG) console.log('ISECT[], ', pa0i, pa1i, pb0i, pb1i, pi);\n\n // math from\n // en.wikipedia.org/wiki/Line%E2%80%93line_intersection#Given_two_points_on_each_line\n\n const x1 = pa0.x;\n const y1 = pa0.y;\n const x2 = pa1.x;\n const y2 = pa1.y;\n const x3 = pb0.x;\n const y3 = pb0.y;\n const x4 = pb1.x;\n const y4 = pb1.y;\n\n const div = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4);\n const f1 = x1 * y2 - y1 * x2;\n const f2 = x3 * y4 - y3 * x4;\n\n p.x = (f1 * (x3 - x4) - f2 * (x1 - x2)) / div;\n p.y = (f1 * (y3 - y4) - f2 * (y1 - y2)) / div;\n}\n\n// SRP0[] Set Reference Point 0\n// 0x10\nfunction SRP0(state) {\n state.rp0 = state.stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'SRP0[]', state.rp0);\n}\n\n// SRP1[] Set Reference Point 1\n// 0x11\nfunction SRP1(state) {\n state.rp1 = state.stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'SRP1[]', state.rp1);\n}\n\n// SRP1[] Set Reference Point 2\n// 0x12\nfunction SRP2(state) {\n state.rp2 = state.stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'SRP2[]', state.rp2);\n}\n\n// SZP0[] Set Zone Pointer 0\n// 0x13\nfunction SZP0(state) {\n const n = state.stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'SZP0[]', n);\n\n state.zp0 = n;\n\n switch (n) {\n case 0:\n if (!state.tZone) initTZone(state);\n state.z0 = state.tZone;\n break;\n case 1 :\n state.z0 = state.gZone;\n break;\n default :\n throw new Error('Invalid zone pointer');\n }\n}\n\n// SZP1[] Set Zone Pointer 1\n// 0x14\nfunction SZP1(state) {\n const n = state.stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'SZP1[]', n);\n\n state.zp1 = n;\n\n switch (n) {\n case 0:\n if (!state.tZone) initTZone(state);\n state.z1 = state.tZone;\n break;\n case 1 :\n state.z1 = state.gZone;\n break;\n default :\n throw new Error('Invalid zone pointer');\n }\n}\n\n// SZP2[] Set Zone Pointer 2\n// 0x15\nfunction SZP2(state) {\n const n = state.stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'SZP2[]', n);\n\n state.zp2 = n;\n\n switch (n) {\n case 0:\n if (!state.tZone) initTZone(state);\n state.z2 = state.tZone;\n break;\n case 1 :\n state.z2 = state.gZone;\n break;\n default :\n throw new Error('Invalid zone pointer');\n }\n}\n\n// SZPS[] Set Zone PointerS\n// 0x16\nfunction SZPS(state) {\n const n = state.stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'SZPS[]', n);\n\n state.zp0 = state.zp1 = state.zp2 = n;\n\n switch (n) {\n case 0:\n if (!state.tZone) initTZone(state);\n state.z0 = state.z1 = state.z2 = state.tZone;\n break;\n case 1 :\n state.z0 = state.z1 = state.z2 = state.gZone;\n break;\n default :\n throw new Error('Invalid zone pointer');\n }\n}\n\n// SLOOP[] Set LOOP variable\n// 0x17\nfunction SLOOP(state) {\n state.loop = state.stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'SLOOP[]', state.loop);\n}\n\n// RTG[] Round To Grid\n// 0x18\nfunction RTG(state) {\n if (exports.DEBUG) console.log(state.step, 'RTG[]');\n\n state.round = roundToGrid;\n}\n\n// RTHG[] Round To Half Grid\n// 0x19\nfunction RTHG(state) {\n if (exports.DEBUG) console.log(state.step, 'RTHG[]');\n\n state.round = roundToHalfGrid;\n}\n\n// SMD[] Set Minimum Distance\n// 0x1A\nfunction SMD(state) {\n const d = state.stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'SMD[]', d);\n\n state.minDis = d / 0x40;\n}\n\n// ELSE[] ELSE clause\n// 0x1B\nfunction ELSE(state) {\n // This instruction has been reached by executing a then branch\n // so it just skips ahead until matching EIF.\n //\n // In case the IF was negative the IF[] instruction already\n // skipped forward over the ELSE[]\n\n if (exports.DEBUG) console.log(state.step, 'ELSE[]');\n\n skip(state, false);\n}\n\n// JMPR[] JuMP Relative\n// 0x1C\nfunction JMPR(state) {\n const o = state.stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'JMPR[]', o);\n\n // A jump by 1 would do nothing.\n state.ip += o - 1;\n}\n\n// SCVTCI[] Set Control Value Table Cut-In\n// 0x1D\nfunction SCVTCI(state) {\n const n = state.stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'SCVTCI[]', n);\n\n state.cvCutIn = n / 0x40;\n}\n\n// DUP[] DUPlicate top stack element\n// 0x20\nfunction DUP(state) {\n const stack = state.stack;\n\n if (exports.DEBUG) console.log(state.step, 'DUP[]');\n\n stack.push(stack[stack.length - 1]);\n}\n\n// POP[] POP top stack element\n// 0x21\nfunction POP(state) {\n if (exports.DEBUG) console.log(state.step, 'POP[]');\n\n state.stack.pop();\n}\n\n// CLEAR[] CLEAR the stack\n// 0x22\nfunction CLEAR(state) {\n if (exports.DEBUG) console.log(state.step, 'CLEAR[]');\n\n state.stack.length = 0;\n}\n\n// SWAP[] SWAP the top two elements on the stack\n// 0x23\nfunction SWAP(state) {\n const stack = state.stack;\n\n const a = stack.pop();\n const b = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'SWAP[]');\n\n stack.push(a);\n stack.push(b);\n}\n\n// DEPTH[] DEPTH of the stack\n// 0x24\nfunction DEPTH(state) {\n const stack = state.stack;\n\n if (exports.DEBUG) console.log(state.step, 'DEPTH[]');\n\n stack.push(stack.length);\n}\n\n// LOOPCALL[] LOOPCALL function\n// 0x2A\nfunction LOOPCALL(state) {\n const stack = state.stack;\n const fn = stack.pop();\n const c = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'LOOPCALL[]', fn, c);\n\n // saves callers program\n const cip = state.ip;\n const cprog = state.prog;\n\n state.prog = state.funcs[fn];\n\n // executes the function\n for (let i = 0; i < c; i++) {\n exec(state);\n\n if (exports.DEBUG) console.log(\n ++state.step,\n i + 1 < c ? 'next loopcall' : 'done loopcall',\n i\n );\n }\n\n // restores the callers program\n state.ip = cip;\n state.prog = cprog;\n}\n\n// CALL[] CALL function\n// 0x2B\nfunction CALL(state) {\n const fn = state.stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'CALL[]', fn);\n\n // saves callers program\n const cip = state.ip;\n const cprog = state.prog;\n\n state.prog = state.funcs[fn];\n\n // executes the function\n exec(state);\n\n // restores the callers program\n state.ip = cip;\n state.prog = cprog;\n\n if (exports.DEBUG) console.log(++state.step, 'returning from', fn);\n}\n\n// CINDEX[] Copy the INDEXed element to the top of the stack\n// 0x25\nfunction CINDEX(state) {\n const stack = state.stack;\n const k = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'CINDEX[]', k);\n\n // In case of k == 1, it copies the last element after popping\n // thus stack.length - k.\n stack.push(stack[stack.length - k]);\n}\n\n// MINDEX[] Move the INDEXed element to the top of the stack\n// 0x26\nfunction MINDEX(state) {\n const stack = state.stack;\n const k = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'MINDEX[]', k);\n\n stack.push(stack.splice(stack.length - k, 1)[0]);\n}\n\n// FDEF[] Function DEFinition\n// 0x2C\nfunction FDEF(state) {\n if (state.env !== 'fpgm') throw new Error('FDEF not allowed here');\n const stack = state.stack;\n const prog = state.prog;\n let ip = state.ip;\n\n const fn = stack.pop();\n const ipBegin = ip;\n\n if (exports.DEBUG) console.log(state.step, 'FDEF[]', fn);\n\n while (prog[++ip] !== 0x2D);\n\n state.ip = ip;\n state.funcs[fn] = prog.slice(ipBegin + 1, ip);\n}\n\n// MDAP[a] Move Direct Absolute Point\n// 0x2E-0x2F\nfunction MDAP(round, state) {\n const pi = state.stack.pop();\n const p = state.z0[pi];\n const fv = state.fv;\n const pv = state.pv;\n\n if (exports.DEBUG) console.log(state.step, 'MDAP[' + round + ']', pi);\n\n let d = pv.distance(p, HPZero);\n\n if (round) d = state.round(d);\n\n fv.setRelative(p, HPZero, d, pv);\n fv.touch(p);\n\n state.rp0 = state.rp1 = pi;\n}\n\n// IUP[a] Interpolate Untouched Points through the outline\n// 0x30\nfunction IUP(v, state) {\n const z2 = state.z2;\n const pLen = z2.length - 2;\n let cp;\n let pp;\n let np;\n\n if (exports.DEBUG) console.log(state.step, 'IUP[' + v.axis + ']');\n\n for (let i = 0; i < pLen; i++) {\n cp = z2[i]; // current point\n\n // if this point has been touched go on\n if (v.touched(cp)) continue;\n\n pp = cp.prevTouched(v);\n\n // no point on the contour has been touched?\n if (pp === cp) continue;\n\n np = cp.nextTouched(v);\n\n if (pp === np) {\n // only one point on the contour has been touched\n // so simply moves the point like that\n\n v.setRelative(cp, cp, v.distance(pp, pp, false, true), v, true);\n }\n\n v.interpolate(cp, pp, np, v);\n }\n}\n\n// SHP[] SHift Point using reference point\n// 0x32-0x33\nfunction SHP(a, state) {\n const stack = state.stack;\n const rpi = a ? state.rp1 : state.rp2;\n const rp = (a ? state.z0 : state.z1)[rpi];\n const fv = state.fv;\n const pv = state.pv;\n let loop = state.loop;\n const z2 = state.z2;\n\n while (loop--)\n {\n const pi = stack.pop();\n const p = z2[pi];\n\n const d = pv.distance(rp, rp, false, true);\n fv.setRelative(p, p, d, pv);\n fv.touch(p);\n\n if (exports.DEBUG) {\n console.log(\n state.step,\n (state.loop > 1 ?\n 'loop ' + (state.loop - loop) + ': ' :\n ''\n ) +\n 'SHP[' + (a ? 'rp1' : 'rp2') + ']', pi\n );\n }\n }\n\n state.loop = 1;\n}\n\n// SHC[] SHift Contour using reference point\n// 0x36-0x37\nfunction SHC(a, state) {\n const stack = state.stack;\n const rpi = a ? state.rp1 : state.rp2;\n const rp = (a ? state.z0 : state.z1)[rpi];\n const fv = state.fv;\n const pv = state.pv;\n const ci = stack.pop();\n const sp = state.z2[state.contours[ci]];\n let p = sp;\n\n if (exports.DEBUG) console.log(state.step, 'SHC[' + a + ']', ci);\n\n const d = pv.distance(rp, rp, false, true);\n\n do {\n if (p !== rp) fv.setRelative(p, p, d, pv);\n p = p.nextPointOnContour;\n } while (p !== sp);\n}\n\n// SHZ[] SHift Zone using reference point\n// 0x36-0x37\nfunction SHZ(a, state) {\n const stack = state.stack;\n const rpi = a ? state.rp1 : state.rp2;\n const rp = (a ? state.z0 : state.z1)[rpi];\n const fv = state.fv;\n const pv = state.pv;\n\n const e = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'SHZ[' + a + ']', e);\n\n let z;\n switch (e) {\n case 0 : z = state.tZone; break;\n case 1 : z = state.gZone; break;\n default : throw new Error('Invalid zone');\n }\n\n let p;\n const d = pv.distance(rp, rp, false, true);\n const pLen = z.length - 2;\n for (let i = 0; i < pLen; i++)\n {\n p = z[i];\n fv.setRelative(p, p, d, pv);\n //if (p !== rp) fv.setRelative(p, p, d, pv);\n }\n}\n\n// SHPIX[] SHift point by a PIXel amount\n// 0x38\nfunction SHPIX(state) {\n const stack = state.stack;\n let loop = state.loop;\n const fv = state.fv;\n const d = stack.pop() / 0x40;\n const z2 = state.z2;\n\n while (loop--) {\n const pi = stack.pop();\n const p = z2[pi];\n\n if (exports.DEBUG) {\n console.log(\n state.step,\n (state.loop > 1 ? 'loop ' + (state.loop - loop) + ': ' : '') +\n 'SHPIX[]', pi, d\n );\n }\n\n fv.setRelative(p, p, d);\n fv.touch(p);\n }\n\n state.loop = 1;\n}\n\n// IP[] Interpolate Point\n// 0x39\nfunction IP(state) {\n const stack = state.stack;\n const rp1i = state.rp1;\n const rp2i = state.rp2;\n let loop = state.loop;\n const rp1 = state.z0[rp1i];\n const rp2 = state.z1[rp2i];\n const fv = state.fv;\n const pv = state.dpv;\n const z2 = state.z2;\n\n while (loop--) {\n const pi = stack.pop();\n const p = z2[pi];\n\n if (exports.DEBUG) {\n console.log(\n state.step,\n (state.loop > 1 ? 'loop ' + (state.loop - loop) + ': ' : '') +\n 'IP[]', pi, rp1i, '<->', rp2i\n );\n }\n\n fv.interpolate(p, rp1, rp2, pv);\n\n fv.touch(p);\n }\n\n state.loop = 1;\n}\n\n// MSIRP[a] Move Stack Indirect Relative Point\n// 0x3A-0x3B\nfunction MSIRP(a, state) {\n const stack = state.stack;\n const d = stack.pop() / 64;\n const pi = stack.pop();\n const p = state.z1[pi];\n const rp0 = state.z0[state.rp0];\n const fv = state.fv;\n const pv = state.pv;\n\n fv.setRelative(p, rp0, d, pv);\n fv.touch(p);\n\n if (exports.DEBUG) console.log(state.step, 'MSIRP[' + a + ']', d, pi);\n\n state.rp1 = state.rp0;\n state.rp2 = pi;\n if (a) state.rp0 = pi;\n}\n\n// ALIGNRP[] Align to reference point.\n// 0x3C\nfunction ALIGNRP(state) {\n const stack = state.stack;\n const rp0i = state.rp0;\n const rp0 = state.z0[rp0i];\n let loop = state.loop;\n const fv = state.fv;\n const pv = state.pv;\n const z1 = state.z1;\n\n while (loop--) {\n const pi = stack.pop();\n const p = z1[pi];\n\n if (exports.DEBUG) {\n console.log(\n state.step,\n (state.loop > 1 ? 'loop ' + (state.loop - loop) + ': ' : '') +\n 'ALIGNRP[]', pi\n );\n }\n\n fv.setRelative(p, rp0, 0, pv);\n fv.touch(p);\n }\n\n state.loop = 1;\n}\n\n// RTG[] Round To Double Grid\n// 0x3D\nfunction RTDG(state) {\n if (exports.DEBUG) console.log(state.step, 'RTDG[]');\n\n state.round = roundToDoubleGrid;\n}\n\n// MIAP[a] Move Indirect Absolute Point\n// 0x3E-0x3F\nfunction MIAP(round, state) {\n const stack = state.stack;\n const n = stack.pop();\n const pi = stack.pop();\n const p = state.z0[pi];\n const fv = state.fv;\n const pv = state.pv;\n let cv = state.cvt[n];\n\n if (exports.DEBUG) {\n console.log(\n state.step,\n 'MIAP[' + round + ']',\n n, '(', cv, ')', pi\n );\n }\n\n let d = pv.distance(p, HPZero);\n\n if (round) {\n if (Math.abs(d - cv) < state.cvCutIn) d = cv;\n\n d = state.round(d);\n }\n\n fv.setRelative(p, HPZero, d, pv);\n\n if (state.zp0 === 0) {\n p.xo = p.x;\n p.yo = p.y;\n }\n\n fv.touch(p);\n\n state.rp0 = state.rp1 = pi;\n}\n\n// NPUSB[] PUSH N Bytes\n// 0x40\nfunction NPUSHB(state) {\n const prog = state.prog;\n let ip = state.ip;\n const stack = state.stack;\n\n const n = prog[++ip];\n\n if (exports.DEBUG) console.log(state.step, 'NPUSHB[]', n);\n\n for (let i = 0; i < n; i++) stack.push(prog[++ip]);\n\n state.ip = ip;\n}\n\n// NPUSHW[] PUSH N Words\n// 0x41\nfunction NPUSHW(state) {\n let ip = state.ip;\n const prog = state.prog;\n const stack = state.stack;\n const n = prog[++ip];\n\n if (exports.DEBUG) console.log(state.step, 'NPUSHW[]', n);\n\n for (let i = 0; i < n; i++) {\n let w = (prog[++ip] << 8) | prog[++ip];\n if (w & 0x8000) w = -((w ^ 0xffff) + 1);\n stack.push(w);\n }\n\n state.ip = ip;\n}\n\n// WS[] Write Store\n// 0x42\nfunction WS(state) {\n const stack = state.stack;\n let store = state.store;\n\n if (!store) store = state.store = [];\n\n const v = stack.pop();\n const l = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'WS', v, l);\n\n store[l] = v;\n}\n\n// RS[] Read Store\n// 0x43\nfunction RS(state) {\n const stack = state.stack;\n const store = state.store;\n\n const l = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'RS', l);\n\n const v = (store && store[l]) || 0;\n\n stack.push(v);\n}\n\n// WCVTP[] Write Control Value Table in Pixel units\n// 0x44\nfunction WCVTP(state) {\n const stack = state.stack;\n\n const v = stack.pop();\n const l = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'WCVTP', v, l);\n\n state.cvt[l] = v / 0x40;\n}\n\n// RCVT[] Read Control Value Table entry\n// 0x45\nfunction RCVT(state) {\n const stack = state.stack;\n const cvte = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'RCVT', cvte);\n\n stack.push(state.cvt[cvte] * 0x40);\n}\n\n// GC[] Get Coordinate projected onto the projection vector\n// 0x46-0x47\nfunction GC(a, state) {\n const stack = state.stack;\n const pi = stack.pop();\n const p = state.z2[pi];\n\n if (exports.DEBUG) console.log(state.step, 'GC[' + a + ']', pi);\n\n stack.push(state.dpv.distance(p, HPZero, a, false) * 0x40);\n}\n\n// MD[a] Measure Distance\n// 0x49-0x4A\nfunction MD(a, state) {\n const stack = state.stack;\n const pi2 = stack.pop();\n const pi1 = stack.pop();\n const p2 = state.z1[pi2];\n const p1 = state.z0[pi1];\n const d = state.dpv.distance(p1, p2, a, a);\n\n if (exports.DEBUG) console.log(state.step, 'MD[' + a + ']', pi2, pi1, '->', d);\n\n state.stack.push(Math.round(d * 64));\n}\n\n// MPPEM[] Measure Pixels Per EM\n// 0x4B\nfunction MPPEM(state) {\n if (exports.DEBUG) console.log(state.step, 'MPPEM[]');\n state.stack.push(state.ppem);\n}\n\n// FLIPON[] set the auto FLIP Boolean to ON\n// 0x4D\nfunction FLIPON(state) {\n if (exports.DEBUG) console.log(state.step, 'FLIPON[]');\n state.autoFlip = true;\n}\n\n// LT[] Less Than\n// 0x50\nfunction LT(state) {\n const stack = state.stack;\n const e2 = stack.pop();\n const e1 = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'LT[]', e2, e1);\n\n stack.push(e1 < e2 ? 1 : 0);\n}\n\n// LTEQ[] Less Than or EQual\n// 0x53\nfunction LTEQ(state) {\n const stack = state.stack;\n const e2 = stack.pop();\n const e1 = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'LTEQ[]', e2, e1);\n\n stack.push(e1 <= e2 ? 1 : 0);\n}\n\n// GTEQ[] Greater Than\n// 0x52\nfunction GT(state) {\n const stack = state.stack;\n const e2 = stack.pop();\n const e1 = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'GT[]', e2, e1);\n\n stack.push(e1 > e2 ? 1 : 0);\n}\n\n// GTEQ[] Greater Than or EQual\n// 0x53\nfunction GTEQ(state) {\n const stack = state.stack;\n const e2 = stack.pop();\n const e1 = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'GTEQ[]', e2, e1);\n\n stack.push(e1 >= e2 ? 1 : 0);\n}\n\n// EQ[] EQual\n// 0x54\nfunction EQ(state) {\n const stack = state.stack;\n const e2 = stack.pop();\n const e1 = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'EQ[]', e2, e1);\n\n stack.push(e2 === e1 ? 1 : 0);\n}\n\n// NEQ[] Not EQual\n// 0x55\nfunction NEQ(state) {\n const stack = state.stack;\n const e2 = stack.pop();\n const e1 = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'NEQ[]', e2, e1);\n\n stack.push(e2 !== e1 ? 1 : 0);\n}\n\n// ODD[] ODD\n// 0x56\nfunction ODD(state) {\n const stack = state.stack;\n const n = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'ODD[]', n);\n\n stack.push(Math.trunc(n) % 2 ? 1 : 0);\n}\n\n// EVEN[] EVEN\n// 0x57\nfunction EVEN(state) {\n const stack = state.stack;\n const n = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'EVEN[]', n);\n\n stack.push(Math.trunc(n) % 2 ? 0 : 1);\n}\n\n// IF[] IF test\n// 0x58\nfunction IF(state) {\n let test = state.stack.pop();\n let ins;\n\n if (exports.DEBUG) console.log(state.step, 'IF[]', test);\n\n // if test is true it just continues\n // if not the ip is skipped until matching ELSE or EIF\n if (!test) {\n skip(state, true);\n\n if (exports.DEBUG) console.log(state.step, ins === 0x1B ? 'ELSE[]' : 'EIF[]');\n }\n}\n\n// EIF[] End IF\n// 0x59\nfunction EIF(state) {\n // this can be reached normally when\n // executing an else branch.\n // -> just ignore it\n\n if (exports.DEBUG) console.log(state.step, 'EIF[]');\n}\n\n// AND[] logical AND\n// 0x5A\nfunction AND(state) {\n const stack = state.stack;\n const e2 = stack.pop();\n const e1 = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'AND[]', e2, e1);\n\n stack.push(e2 && e1 ? 1 : 0);\n}\n\n// OR[] logical OR\n// 0x5B\nfunction OR(state) {\n const stack = state.stack;\n const e2 = stack.pop();\n const e1 = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'OR[]', e2, e1);\n\n stack.push(e2 || e1 ? 1 : 0);\n}\n\n// NOT[] logical NOT\n// 0x5C\nfunction NOT(state) {\n const stack = state.stack;\n const e = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'NOT[]', e);\n\n stack.push(e ? 0 : 1);\n}\n\n// DELTAP1[] DELTA exception P1\n// DELTAP2[] DELTA exception P2\n// DELTAP3[] DELTA exception P3\n// 0x5D, 0x71, 0x72\nfunction DELTAP123(b, state) {\n const stack = state.stack;\n const n = stack.pop();\n const fv = state.fv;\n const pv = state.pv;\n const ppem = state.ppem;\n const base = state.deltaBase + (b - 1) * 16;\n const ds = state.deltaShift;\n const z0 = state.z0;\n\n if (exports.DEBUG) console.log(state.step, 'DELTAP[' + b + ']', n, stack);\n\n for (let i = 0; i < n; i++) {\n const pi = stack.pop();\n const arg = stack.pop();\n const appem = base + ((arg & 0xF0) >> 4);\n if (appem !== ppem) continue;\n\n let mag = (arg & 0x0F) - 8;\n if (mag >= 0) mag++;\n if (exports.DEBUG) console.log(state.step, 'DELTAPFIX', pi, 'by', mag * ds);\n\n const p = z0[pi];\n fv.setRelative(p, p, mag * ds, pv);\n }\n}\n\n// SDB[] Set Delta Base in the graphics state\n// 0x5E\nfunction SDB(state) {\n const stack = state.stack;\n const n = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'SDB[]', n);\n\n state.deltaBase = n;\n}\n\n// SDS[] Set Delta Shift in the graphics state\n// 0x5F\nfunction SDS(state) {\n const stack = state.stack;\n const n = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'SDS[]', n);\n\n state.deltaShift = Math.pow(0.5, n);\n}\n\n// ADD[] ADD\n// 0x60\nfunction ADD(state) {\n const stack = state.stack;\n const n2 = stack.pop();\n const n1 = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'ADD[]', n2, n1);\n\n stack.push(n1 + n2);\n}\n\n// SUB[] SUB\n// 0x61\nfunction SUB(state) {\n const stack = state.stack;\n const n2 = stack.pop();\n const n1 = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'SUB[]', n2, n1);\n\n stack.push(n1 - n2);\n}\n\n// DIV[] DIV\n// 0x62\nfunction DIV(state) {\n const stack = state.stack;\n const n2 = stack.pop();\n const n1 = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'DIV[]', n2, n1);\n\n stack.push(n1 * 64 / n2);\n}\n\n// MUL[] MUL\n// 0x63\nfunction MUL(state) {\n const stack = state.stack;\n const n2 = stack.pop();\n const n1 = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'MUL[]', n2, n1);\n\n stack.push(n1 * n2 / 64);\n}\n\n// ABS[] ABSolute value\n// 0x64\nfunction ABS(state) {\n const stack = state.stack;\n const n = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'ABS[]', n);\n\n stack.push(Math.abs(n));\n}\n\n// NEG[] NEGate\n// 0x65\nfunction NEG(state) {\n const stack = state.stack;\n let n = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'NEG[]', n);\n\n stack.push(-n);\n}\n\n// FLOOR[] FLOOR\n// 0x66\nfunction FLOOR(state) {\n const stack = state.stack;\n const n = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'FLOOR[]', n);\n\n stack.push(Math.floor(n / 0x40) * 0x40);\n}\n\n// CEILING[] CEILING\n// 0x67\nfunction CEILING(state) {\n const stack = state.stack;\n const n = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'CEILING[]', n);\n\n stack.push(Math.ceil(n / 0x40) * 0x40);\n}\n\n// ROUND[ab] ROUND value\n// 0x68-0x6B\nfunction ROUND(dt, state) {\n const stack = state.stack;\n const n = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'ROUND[]');\n\n stack.push(state.round(n / 0x40) * 0x40);\n}\n\n// WCVTF[] Write Control Value Table in Funits\n// 0x70\nfunction WCVTF(state) {\n const stack = state.stack;\n const v = stack.pop();\n const l = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'WCVTF[]', v, l);\n\n state.cvt[l] = v * state.ppem / state.font.unitsPerEm;\n}\n\n// DELTAC1[] DELTA exception C1\n// DELTAC2[] DELTA exception C2\n// DELTAC3[] DELTA exception C3\n// 0x73, 0x74, 0x75\nfunction DELTAC123(b, state) {\n const stack = state.stack;\n const n = stack.pop();\n const ppem = state.ppem;\n const base = state.deltaBase + (b - 1) * 16;\n const ds = state.deltaShift;\n\n if (exports.DEBUG) console.log(state.step, 'DELTAC[' + b + ']', n, stack);\n\n for (let i = 0; i < n; i++) {\n const c = stack.pop();\n const arg = stack.pop();\n const appem = base + ((arg & 0xF0) >> 4);\n if (appem !== ppem) continue;\n\n let mag = (arg & 0x0F) - 8;\n if (mag >= 0) mag++;\n\n const delta = mag * ds;\n\n if (exports.DEBUG) console.log(state.step, 'DELTACFIX', c, 'by', delta);\n\n state.cvt[c] += delta;\n }\n}\n\n// SROUND[] Super ROUND\n// 0x76\nfunction SROUND(state) {\n let n = state.stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'SROUND[]', n);\n\n state.round = roundSuper;\n\n let period;\n\n switch (n & 0xC0) {\n case 0x00:\n period = 0.5;\n break;\n case 0x40:\n period = 1;\n break;\n case 0x80:\n period = 2;\n break;\n default:\n throw new Error('invalid SROUND value');\n }\n\n state.srPeriod = period;\n\n switch (n & 0x30) {\n case 0x00:\n state.srPhase = 0;\n break;\n case 0x10:\n state.srPhase = 0.25 * period;\n break;\n case 0x20:\n state.srPhase = 0.5 * period;\n break;\n case 0x30:\n state.srPhase = 0.75 * period;\n break;\n default: throw new Error('invalid SROUND value');\n }\n\n n &= 0x0F;\n\n if (n === 0) state.srThreshold = 0;\n else state.srThreshold = (n / 8 - 0.5) * period;\n}\n\n// S45ROUND[] Super ROUND 45 degrees\n// 0x77\nfunction S45ROUND(state) {\n let n = state.stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'S45ROUND[]', n);\n\n state.round = roundSuper;\n\n let period;\n\n switch (n & 0xC0) {\n case 0x00:\n period = Math.sqrt(2) / 2;\n break;\n case 0x40:\n period = Math.sqrt(2);\n break;\n case 0x80:\n period = 2 * Math.sqrt(2);\n break;\n default:\n throw new Error('invalid S45ROUND value');\n }\n\n state.srPeriod = period;\n\n switch (n & 0x30) {\n case 0x00:\n state.srPhase = 0;\n break;\n case 0x10:\n state.srPhase = 0.25 * period;\n break;\n case 0x20:\n state.srPhase = 0.5 * period;\n break;\n case 0x30:\n state.srPhase = 0.75 * period;\n break;\n default:\n throw new Error('invalid S45ROUND value');\n }\n\n n &= 0x0F;\n\n if (n === 0) state.srThreshold = 0;\n else state.srThreshold = (n / 8 - 0.5) * period;\n}\n\n// ROFF[] Round Off\n// 0x7A\nfunction ROFF(state) {\n if (exports.DEBUG) console.log(state.step, 'ROFF[]');\n\n state.round = roundOff;\n}\n\n// RUTG[] Round Up To Grid\n// 0x7C\nfunction RUTG(state) {\n if (exports.DEBUG) console.log(state.step, 'RUTG[]');\n\n state.round = roundUpToGrid;\n}\n\n// RDTG[] Round Down To Grid\n// 0x7D\nfunction RDTG(state) {\n if (exports.DEBUG) console.log(state.step, 'RDTG[]');\n\n state.round = roundDownToGrid;\n}\n\n// SCANCTRL[] SCAN conversion ConTRoL\n// 0x85\nfunction SCANCTRL(state) {\n const n = state.stack.pop();\n\n // ignored by opentype.js\n\n if (exports.DEBUG) console.log(state.step, 'SCANCTRL[]', n);\n}\n\n// SDPVTL[a] Set Dual Projection Vector To Line\n// 0x86-0x87\nfunction SDPVTL(a, state) {\n const stack = state.stack;\n const p2i = stack.pop();\n const p1i = stack.pop();\n const p2 = state.z2[p2i];\n const p1 = state.z1[p1i];\n\n if (exports.DEBUG) console.log(state.step, 'SDPVTL[' + a + ']', p2i, p1i);\n\n let dx;\n let dy;\n\n if (!a) {\n dx = p1.x - p2.x;\n dy = p1.y - p2.y;\n } else {\n dx = p2.y - p1.y;\n dy = p1.x - p2.x;\n }\n\n state.dpv = getUnitVector(dx, dy);\n}\n\n// GETINFO[] GET INFOrmation\n// 0x88\nfunction GETINFO(state) {\n const stack = state.stack;\n const sel = stack.pop();\n let r = 0;\n\n if (exports.DEBUG) console.log(state.step, 'GETINFO[]', sel);\n\n // v35 as in no subpixel hinting\n if (sel & 0x01) r = 35;\n\n // TODO rotation and stretch currently not supported\n // and thus those GETINFO are always 0.\n\n // opentype.js is always gray scaling\n if (sel & 0x20) r |= 0x1000;\n\n stack.push(r);\n}\n\n// ROLL[] ROLL the top three stack elements\n// 0x8A\nfunction ROLL(state) {\n const stack = state.stack;\n const a = stack.pop();\n const b = stack.pop();\n const c = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'ROLL[]');\n\n stack.push(b);\n stack.push(a);\n stack.push(c);\n}\n\n// MAX[] MAXimum of top two stack elements\n// 0x8B\nfunction MAX(state) {\n const stack = state.stack;\n const e2 = stack.pop();\n const e1 = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'MAX[]', e2, e1);\n\n stack.push(Math.max(e1, e2));\n}\n\n// MIN[] MINimum of top two stack elements\n// 0x8C\nfunction MIN(state) {\n const stack = state.stack;\n const e2 = stack.pop();\n const e1 = stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'MIN[]', e2, e1);\n\n stack.push(Math.min(e1, e2));\n}\n\n// SCANTYPE[] SCANTYPE\n// 0x8D\nfunction SCANTYPE(state) {\n const n = state.stack.pop();\n // ignored by opentype.js\n if (exports.DEBUG) console.log(state.step, 'SCANTYPE[]', n);\n}\n\n// INSTCTRL[] INSTCTRL\n// 0x8D\nfunction INSTCTRL(state) {\n const s = state.stack.pop();\n let v = state.stack.pop();\n\n if (exports.DEBUG) console.log(state.step, 'INSTCTRL[]', s, v);\n\n switch (s) {\n case 1 : state.inhibitGridFit = !!v; return;\n case 2 : state.ignoreCvt = !!v; return;\n default: throw new Error('invalid INSTCTRL[] selector');\n }\n}\n\n// PUSHB[abc] PUSH Bytes\n// 0xB0-0xB7\nfunction PUSHB(n, state) {\n const stack = state.stack;\n const prog = state.prog;\n let ip = state.ip;\n\n if (exports.DEBUG) console.log(state.step, 'PUSHB[' + n + ']');\n\n for (let i = 0; i < n; i++) stack.push(prog[++ip]);\n\n state.ip = ip;\n}\n\n// PUSHW[abc] PUSH Words\n// 0xB8-0xBF\nfunction PUSHW(n, state) {\n let ip = state.ip;\n const prog = state.prog;\n const stack = state.stack;\n\n if (exports.DEBUG) console.log(state.ip, 'PUSHW[' + n + ']');\n\n for (let i = 0; i < n; i++) {\n let w = (prog[++ip] << 8) | prog[++ip];\n if (w & 0x8000) w = -((w ^ 0xffff) + 1);\n stack.push(w);\n }\n\n state.ip = ip;\n}\n\n// MDRP[abcde] Move Direct Relative Point\n// 0xD0-0xEF\n// (if indirect is 0)\n//\n// and\n//\n// MIRP[abcde] Move Indirect Relative Point\n// 0xE0-0xFF\n// (if indirect is 1)\n\nfunction MDRP_MIRP(indirect, setRp0, keepD, ro, dt, state) {\n const stack = state.stack;\n const cvte = indirect && stack.pop();\n const pi = stack.pop();\n const rp0i = state.rp0;\n const rp = state.z0[rp0i];\n const p = state.z1[pi];\n\n const md = state.minDis;\n const fv = state.fv;\n const pv = state.dpv;\n let od; // original distance\n let d; // moving distance\n let sign; // sign of distance\n let cv;\n\n d = od = pv.distance(p, rp, true, true);\n sign = d >= 0 ? 1 : -1; // Math.sign would be 0 in case of 0\n\n // TODO consider autoFlip\n d = Math.abs(d);\n\n if (indirect) {\n cv = state.cvt[cvte];\n\n if (ro && Math.abs(d - cv) < state.cvCutIn) d = cv;\n }\n\n if (keepD && d < md) d = md;\n\n if (ro) d = state.round(d);\n\n fv.setRelative(p, rp, sign * d, pv);\n fv.touch(p);\n\n if (exports.DEBUG) {\n console.log(\n state.step,\n (indirect ? 'MIRP[' : 'MDRP[') +\n (setRp0 ? 'M' : 'm') +\n (keepD ? '>' : '_') +\n (ro ? 'R' : '_') +\n (dt === 0 ? 'Gr' : (dt === 1 ? 'Bl' : (dt === 2 ? 'Wh' : ''))) +\n ']',\n indirect ?\n cvte + '(' + state.cvt[cvte] + ',' + cv + ')' :\n '',\n pi,\n '(d =', od, '->', sign * d, ')'\n );\n }\n\n state.rp1 = state.rp0;\n state.rp2 = pi;\n if (setRp0) state.rp0 = pi;\n}\n\n/*\n* The instruction table.\n*/\ninstructionTable = [\n /* 0x00 */ SVTCA.bind(undefined, yUnitVector),\n /* 0x01 */ SVTCA.bind(undefined, xUnitVector),\n /* 0x02 */ SPVTCA.bind(undefined, yUnitVector),\n /* 0x03 */ SPVTCA.bind(undefined, xUnitVector),\n /* 0x04 */ SFVTCA.bind(undefined, yUnitVector),\n /* 0x05 */ SFVTCA.bind(undefined, xUnitVector),\n /* 0x06 */ SPVTL.bind(undefined, 0),\n /* 0x07 */ SPVTL.bind(undefined, 1),\n /* 0x08 */ SFVTL.bind(undefined, 0),\n /* 0x09 */ SFVTL.bind(undefined, 1),\n /* 0x0A */ SPVFS,\n /* 0x0B */ SFVFS,\n /* 0x0C */ GPV,\n /* 0x0D */ GFV,\n /* 0x0E */ SFVTPV,\n /* 0x0F */ ISECT,\n /* 0x10 */ SRP0,\n /* 0x11 */ SRP1,\n /* 0x12 */ SRP2,\n /* 0x13 */ SZP0,\n /* 0x14 */ SZP1,\n /* 0x15 */ SZP2,\n /* 0x16 */ SZPS,\n /* 0x17 */ SLOOP,\n /* 0x18 */ RTG,\n /* 0x19 */ RTHG,\n /* 0x1A */ SMD,\n /* 0x1B */ ELSE,\n /* 0x1C */ JMPR,\n /* 0x1D */ SCVTCI,\n /* 0x1E */ undefined, // TODO SSWCI\n /* 0x1F */ undefined, // TODO SSW\n /* 0x20 */ DUP,\n /* 0x21 */ POP,\n /* 0x22 */ CLEAR,\n /* 0x23 */ SWAP,\n /* 0x24 */ DEPTH,\n /* 0x25 */ CINDEX,\n /* 0x26 */ MINDEX,\n /* 0x27 */ undefined, // TODO ALIGNPTS\n /* 0x28 */ undefined,\n /* 0x29 */ undefined, // TODO UTP\n /* 0x2A */ LOOPCALL,\n /* 0x2B */ CALL,\n /* 0x2C */ FDEF,\n /* 0x2D */ undefined, // ENDF (eaten by FDEF)\n /* 0x2E */ MDAP.bind(undefined, 0),\n /* 0x2F */ MDAP.bind(undefined, 1),\n /* 0x30 */ IUP.bind(undefined, yUnitVector),\n /* 0x31 */ IUP.bind(undefined, xUnitVector),\n /* 0x32 */ SHP.bind(undefined, 0),\n /* 0x33 */ SHP.bind(undefined, 1),\n /* 0x34 */ SHC.bind(undefined, 0),\n /* 0x35 */ SHC.bind(undefined, 1),\n /* 0x36 */ SHZ.bind(undefined, 0),\n /* 0x37 */ SHZ.bind(undefined, 1),\n /* 0x38 */ SHPIX,\n /* 0x39 */ IP,\n /* 0x3A */ MSIRP.bind(undefined, 0),\n /* 0x3B */ MSIRP.bind(undefined, 1),\n /* 0x3C */ ALIGNRP,\n /* 0x3D */ RTDG,\n /* 0x3E */ MIAP.bind(undefined, 0),\n /* 0x3F */ MIAP.bind(undefined, 1),\n /* 0x40 */ NPUSHB,\n /* 0x41 */ NPUSHW,\n /* 0x42 */ WS,\n /* 0x43 */ RS,\n /* 0x44 */ WCVTP,\n /* 0x45 */ RCVT,\n /* 0x46 */ GC.bind(undefined, 0),\n /* 0x47 */ GC.bind(undefined, 1),\n /* 0x48 */ undefined, // TODO SCFS\n /* 0x49 */ MD.bind(undefined, 0),\n /* 0x4A */ MD.bind(undefined, 1),\n /* 0x4B */ MPPEM,\n /* 0x4C */ undefined, // TODO MPS\n /* 0x4D */ FLIPON,\n /* 0x4E */ undefined, // TODO FLIPOFF\n /* 0x4F */ undefined, // TODO DEBUG\n /* 0x50 */ LT,\n /* 0x51 */ LTEQ,\n /* 0x52 */ GT,\n /* 0x53 */ GTEQ,\n /* 0x54 */ EQ,\n /* 0x55 */ NEQ,\n /* 0x56 */ ODD,\n /* 0x57 */ EVEN,\n /* 0x58 */ IF,\n /* 0x59 */ EIF,\n /* 0x5A */ AND,\n /* 0x5B */ OR,\n /* 0x5C */ NOT,\n /* 0x5D */ DELTAP123.bind(undefined, 1),\n /* 0x5E */ SDB,\n /* 0x5F */ SDS,\n /* 0x60 */ ADD,\n /* 0x61 */ SUB,\n /* 0x62 */ DIV,\n /* 0x63 */ MUL,\n /* 0x64 */ ABS,\n /* 0x65 */ NEG,\n /* 0x66 */ FLOOR,\n /* 0x67 */ CEILING,\n /* 0x68 */ ROUND.bind(undefined, 0),\n /* 0x69 */ ROUND.bind(undefined, 1),\n /* 0x6A */ ROUND.bind(undefined, 2),\n /* 0x6B */ ROUND.bind(undefined, 3),\n /* 0x6C */ undefined, // TODO NROUND[ab]\n /* 0x6D */ undefined, // TODO NROUND[ab]\n /* 0x6E */ undefined, // TODO NROUND[ab]\n /* 0x6F */ undefined, // TODO NROUND[ab]\n /* 0x70 */ WCVTF,\n /* 0x71 */ DELTAP123.bind(undefined, 2),\n /* 0x72 */ DELTAP123.bind(undefined, 3),\n /* 0x73 */ DELTAC123.bind(undefined, 1),\n /* 0x74 */ DELTAC123.bind(undefined, 2),\n /* 0x75 */ DELTAC123.bind(undefined, 3),\n /* 0x76 */ SROUND,\n /* 0x77 */ S45ROUND,\n /* 0x78 */ undefined, // TODO JROT[]\n /* 0x79 */ undefined, // TODO JROF[]\n /* 0x7A */ ROFF,\n /* 0x7B */ undefined,\n /* 0x7C */ RUTG,\n /* 0x7D */ RDTG,\n /* 0x7E */ POP, // actually SANGW, supposed to do only a pop though\n /* 0x7F */ POP, // actually AA, supposed to do only a pop though\n /* 0x80 */ undefined, // TODO FLIPPT\n /* 0x81 */ undefined, // TODO FLIPRGON\n /* 0x82 */ undefined, // TODO FLIPRGOFF\n /* 0x83 */ undefined,\n /* 0x84 */ undefined,\n /* 0x85 */ SCANCTRL,\n /* 0x86 */ SDPVTL.bind(undefined, 0),\n /* 0x87 */ SDPVTL.bind(undefined, 1),\n /* 0x88 */ GETINFO,\n /* 0x89 */ undefined, // TODO IDEF\n /* 0x8A */ ROLL,\n /* 0x8B */ MAX,\n /* 0x8C */ MIN,\n /* 0x8D */ SCANTYPE,\n /* 0x8E */ INSTCTRL,\n /* 0x8F */ undefined,\n /* 0x90 */ undefined,\n /* 0x91 */ undefined,\n /* 0x92 */ undefined,\n /* 0x93 */ undefined,\n /* 0x94 */ undefined,\n /* 0x95 */ undefined,\n /* 0x96 */ undefined,\n /* 0x97 */ undefined,\n /* 0x98 */ undefined,\n /* 0x99 */ undefined,\n /* 0x9A */ undefined,\n /* 0x9B */ undefined,\n /* 0x9C */ undefined,\n /* 0x9D */ undefined,\n /* 0x9E */ undefined,\n /* 0x9F */ undefined,\n /* 0xA0 */ undefined,\n /* 0xA1 */ undefined,\n /* 0xA2 */ undefined,\n /* 0xA3 */ undefined,\n /* 0xA4 */ undefined,\n /* 0xA5 */ undefined,\n /* 0xA6 */ undefined,\n /* 0xA7 */ undefined,\n /* 0xA8 */ undefined,\n /* 0xA9 */ undefined,\n /* 0xAA */ undefined,\n /* 0xAB */ undefined,\n /* 0xAC */ undefined,\n /* 0xAD */ undefined,\n /* 0xAE */ undefined,\n /* 0xAF */ undefined,\n /* 0xB0 */ PUSHB.bind(undefined, 1),\n /* 0xB1 */ PUSHB.bind(undefined, 2),\n /* 0xB2 */ PUSHB.bind(undefined, 3),\n /* 0xB3 */ PUSHB.bind(undefined, 4),\n /* 0xB4 */ PUSHB.bind(undefined, 5),\n /* 0xB5 */ PUSHB.bind(undefined, 6),\n /* 0xB6 */ PUSHB.bind(undefined, 7),\n /* 0xB7 */ PUSHB.bind(undefined, 8),\n /* 0xB8 */ PUSHW.bind(undefined, 1),\n /* 0xB9 */ PUSHW.bind(undefined, 2),\n /* 0xBA */ PUSHW.bind(undefined, 3),\n /* 0xBB */ PUSHW.bind(undefined, 4),\n /* 0xBC */ PUSHW.bind(undefined, 5),\n /* 0xBD */ PUSHW.bind(undefined, 6),\n /* 0xBE */ PUSHW.bind(undefined, 7),\n /* 0xBF */ PUSHW.bind(undefined, 8),\n /* 0xC0 */ MDRP_MIRP.bind(undefined, 0, 0, 0, 0, 0),\n /* 0xC1 */ MDRP_MIRP.bind(undefined, 0, 0, 0, 0, 1),\n /* 0xC2 */ MDRP_MIRP.bind(undefined, 0, 0, 0, 0, 2),\n /* 0xC3 */ MDRP_MIRP.bind(undefined, 0, 0, 0, 0, 3),\n /* 0xC4 */ MDRP_MIRP.bind(undefined, 0, 0, 0, 1, 0),\n /* 0xC5 */ MDRP_MIRP.bind(undefined, 0, 0, 0, 1, 1),\n /* 0xC6 */ MDRP_MIRP.bind(undefined, 0, 0, 0, 1, 2),\n /* 0xC7 */ MDRP_MIRP.bind(undefined, 0, 0, 0, 1, 3),\n /* 0xC8 */ MDRP_MIRP.bind(undefined, 0, 0, 1, 0, 0),\n /* 0xC9 */ MDRP_MIRP.bind(undefined, 0, 0, 1, 0, 1),\n /* 0xCA */ MDRP_MIRP.bind(undefined, 0, 0, 1, 0, 2),\n /* 0xCB */ MDRP_MIRP.bind(undefined, 0, 0, 1, 0, 3),\n /* 0xCC */ MDRP_MIRP.bind(undefined, 0, 0, 1, 1, 0),\n /* 0xCD */ MDRP_MIRP.bind(undefined, 0, 0, 1, 1, 1),\n /* 0xCE */ MDRP_MIRP.bind(undefined, 0, 0, 1, 1, 2),\n /* 0xCF */ MDRP_MIRP.bind(undefined, 0, 0, 1, 1, 3),\n /* 0xD0 */ MDRP_MIRP.bind(undefined, 0, 1, 0, 0, 0),\n /* 0xD1 */ MDRP_MIRP.bind(undefined, 0, 1, 0, 0, 1),\n /* 0xD2 */ MDRP_MIRP.bind(undefined, 0, 1, 0, 0, 2),\n /* 0xD3 */ MDRP_MIRP.bind(undefined, 0, 1, 0, 0, 3),\n /* 0xD4 */ MDRP_MIRP.bind(undefined, 0, 1, 0, 1, 0),\n /* 0xD5 */ MDRP_MIRP.bind(undefined, 0, 1, 0, 1, 1),\n /* 0xD6 */ MDRP_MIRP.bind(undefined, 0, 1, 0, 1, 2),\n /* 0xD7 */ MDRP_MIRP.bind(undefined, 0, 1, 0, 1, 3),\n /* 0xD8 */ MDRP_MIRP.bind(undefined, 0, 1, 1, 0, 0),\n /* 0xD9 */ MDRP_MIRP.bind(undefined, 0, 1, 1, 0, 1),\n /* 0xDA */ MDRP_MIRP.bind(undefined, 0, 1, 1, 0, 2),\n /* 0xDB */ MDRP_MIRP.bind(undefined, 0, 1, 1, 0, 3),\n /* 0xDC */ MDRP_MIRP.bind(undefined, 0, 1, 1, 1, 0),\n /* 0xDD */ MDRP_MIRP.bind(undefined, 0, 1, 1, 1, 1),\n /* 0xDE */ MDRP_MIRP.bind(undefined, 0, 1, 1, 1, 2),\n /* 0xDF */ MDRP_MIRP.bind(undefined, 0, 1, 1, 1, 3),\n /* 0xE0 */ MDRP_MIRP.bind(undefined, 1, 0, 0, 0, 0),\n /* 0xE1 */ MDRP_MIRP.bind(undefined, 1, 0, 0, 0, 1),\n /* 0xE2 */ MDRP_MIRP.bind(undefined, 1, 0, 0, 0, 2),\n /* 0xE3 */ MDRP_MIRP.bind(undefined, 1, 0, 0, 0, 3),\n /* 0xE4 */ MDRP_MIRP.bind(undefined, 1, 0, 0, 1, 0),\n /* 0xE5 */ MDRP_MIRP.bind(undefined, 1, 0, 0, 1, 1),\n /* 0xE6 */ MDRP_MIRP.bind(undefined, 1, 0, 0, 1, 2),\n /* 0xE7 */ MDRP_MIRP.bind(undefined, 1, 0, 0, 1, 3),\n /* 0xE8 */ MDRP_MIRP.bind(undefined, 1, 0, 1, 0, 0),\n /* 0xE9 */ MDRP_MIRP.bind(undefined, 1, 0, 1, 0, 1),\n /* 0xEA */ MDRP_MIRP.bind(undefined, 1, 0, 1, 0, 2),\n /* 0xEB */ MDRP_MIRP.bind(undefined, 1, 0, 1, 0, 3),\n /* 0xEC */ MDRP_MIRP.bind(undefined, 1, 0, 1, 1, 0),\n /* 0xED */ MDRP_MIRP.bind(undefined, 1, 0, 1, 1, 1),\n /* 0xEE */ MDRP_MIRP.bind(undefined, 1, 0, 1, 1, 2),\n /* 0xEF */ MDRP_MIRP.bind(undefined, 1, 0, 1, 1, 3),\n /* 0xF0 */ MDRP_MIRP.bind(undefined, 1, 1, 0, 0, 0),\n /* 0xF1 */ MDRP_MIRP.bind(undefined, 1, 1, 0, 0, 1),\n /* 0xF2 */ MDRP_MIRP.bind(undefined, 1, 1, 0, 0, 2),\n /* 0xF3 */ MDRP_MIRP.bind(undefined, 1, 1, 0, 0, 3),\n /* 0xF4 */ MDRP_MIRP.bind(undefined, 1, 1, 0, 1, 0),\n /* 0xF5 */ MDRP_MIRP.bind(undefined, 1, 1, 0, 1, 1),\n /* 0xF6 */ MDRP_MIRP.bind(undefined, 1, 1, 0, 1, 2),\n /* 0xF7 */ MDRP_MIRP.bind(undefined, 1, 1, 0, 1, 3),\n /* 0xF8 */ MDRP_MIRP.bind(undefined, 1, 1, 1, 0, 0),\n /* 0xF9 */ MDRP_MIRP.bind(undefined, 1, 1, 1, 0, 1),\n /* 0xFA */ MDRP_MIRP.bind(undefined, 1, 1, 1, 0, 2),\n /* 0xFB */ MDRP_MIRP.bind(undefined, 1, 1, 1, 0, 3),\n /* 0xFC */ MDRP_MIRP.bind(undefined, 1, 1, 1, 1, 0),\n /* 0xFD */ MDRP_MIRP.bind(undefined, 1, 1, 1, 1, 1),\n /* 0xFE */ MDRP_MIRP.bind(undefined, 1, 1, 1, 1, 2),\n /* 0xFF */ MDRP_MIRP.bind(undefined, 1, 1, 1, 1, 3)\n];\n\nexport default Hinting;\n\n/*****************************\n Mathematical Considerations\n******************************\n\nfv ... refers to freedom vector\npv ... refers to projection vector\nrp ... refers to reference point\np ... refers to to point being operated on\nd ... refers to distance\n\nSETRELATIVE:\n============\n\ncase freedom vector == x-axis:\n------------------------------\n\n (pv)\n .-'\n rpd .-'\n .-*\n d .-'90°'\n .-' '\n .-' '\n *-' ' b\n rp '\n '\n '\n p *----------*-------------- (fv)\n pm\n\n rpdx = rpx + d * pv.x\n rpdy = rpy + d * pv.y\n\n equation of line b\n\n y - rpdy = pvns * (x- rpdx)\n\n y = p.y\n\n x = rpdx + ( p.y - rpdy ) / pvns\n\n\ncase freedom vector == y-axis:\n------------------------------\n\n * pm\n |\\\n | \\\n | \\\n | \\\n | \\\n | \\\n | \\\n | \\\n | \\\n | \\ b\n | \\\n | \\\n | \\ .-' (pv)\n | 90° \\.-'\n | .-'* rpd\n | .-'\n * *-' d\n p rp\n\n rpdx = rpx + d * pv.x\n rpdy = rpy + d * pv.y\n\n equation of line b:\n pvns ... normal slope to pv\n\n y - rpdy = pvns * (x - rpdx)\n\n x = p.x\n\n y = rpdy + pvns * (p.x - rpdx)\n\n\n\ngeneric case:\n-------------\n\n\n .'(fv)\n .'\n .* pm\n .' !\n .' .\n .' !\n .' . b\n .' !\n * .\n p !\n 90° . ... (pv)\n ...-*-'''\n ...---''' rpd\n ...---''' d\n *--'''\n rp\n\n rpdx = rpx + d * pv.x\n rpdy = rpy + d * pv.y\n\n equation of line b:\n pvns... normal slope to pv\n\n y - rpdy = pvns * (x - rpdx)\n\n equation of freedom vector line:\n fvs ... slope of freedom vector (=fy/fx)\n\n y - py = fvs * (x - px)\n\n\n on pm both equations are true for same x/y\n\n y - rpdy = pvns * (x - rpdx)\n\n y - py = fvs * (x - px)\n\n form to y and set equal:\n\n pvns * (x - rpdx) + rpdy = fvs * (x - px) + py\n\n expand:\n\n pvns * x - pvns * rpdx + rpdy = fvs * x - fvs * px + py\n\n switch:\n\n fvs * x - fvs * px + py = pvns * x - pvns * rpdx + rpdy\n\n solve for x:\n\n fvs * x - pvns * x = fvs * px - pvns * rpdx - py + rpdy\n\n\n\n fvs * px - pvns * rpdx + rpdy - py\n x = -----------------------------------\n fvs - pvns\n\n and:\n\n y = fvs * (x - px) + py\n\n\n\nINTERPOLATE:\n============\n\nExamples of point interpolation.\n\nThe weight of the movement of the reference point gets bigger\nthe further the other reference point is away, thus the safest\noption (that is avoiding 0/0 divisions) is to weight the\noriginal distance of the other point by the sum of both distances.\n\nIf the sum of both distances is 0, then move the point by the\narithmetic average of the movement of both reference points.\n\n\n\n\n (+6)\n rp1o *---->*rp1\n . . (+12)\n . . rp2o *---------->* rp2\n . . . .\n . . . .\n . 10 20 . .\n |.........|...................| .\n . . .\n . . (+8) .\n po *------>*p .\n . . .\n . 12 . 24 .\n |...........|.......................|\n 36\n\n\n-------\n\n\n\n (+10)\n rp1o *-------->*rp1\n . . (-10)\n . . rp2 *<---------* rpo2\n . . . .\n . . . .\n . 10 . 30 . .\n |.........|.............................|\n . .\n . (+5) .\n po *--->* p .\n . . .\n . . 20 .\n |....|..............|\n 5 15\n\n\n-------\n\n\n (+10)\n rp1o *-------->*rp1\n . .\n . .\n rp2o *-------->*rp2\n\n\n (+10)\n po *-------->* p\n\n-------\n\n\n (+10)\n rp1o *-------->*rp1\n . .\n . .(+30)\n rp2o *---------------------------->*rp2\n\n\n (+25)\n po *----------------------->* p\n\n\n\nvim: set ts=4 sw=4 expandtab:\n*****/\n","/**\n * Converts a string into a list of tokens.\n */\n\n/**\n * Create a new token\n * @param {string} char a single char\n */\nfunction Token(char) {\n this.char = char;\n this.state = {};\n this.activeState = null;\n}\n\n/**\n * Create a new context range\n * @param {number} startIndex range start index\n * @param {number} endOffset range end index offset\n * @param {string} contextName owner context name\n */\nfunction ContextRange(startIndex, endOffset, contextName) {\n this.contextName = contextName;\n this.startIndex = startIndex;\n this.endOffset = endOffset;\n}\n\n/**\n * Check context start and end\n * @param {string} contextName a unique context name\n * @param {function} checkStart a predicate function the indicates a context's start\n * @param {function} checkEnd a predicate function the indicates a context's end\n */\nfunction ContextChecker(contextName, checkStart, checkEnd) {\n this.contextName = contextName;\n this.openRange = null;\n this.ranges = [];\n this.checkStart = checkStart;\n this.checkEnd = checkEnd;\n}\n\n/**\n * @typedef ContextParams\n * @type Object\n * @property {array} context context items\n * @property {number} currentIndex current item index\n */\n\n/**\n * Create a context params\n * @param {array} context a list of items\n * @param {number} currentIndex current item index\n */\nfunction ContextParams(context, currentIndex) {\n this.context = context;\n this.index = currentIndex;\n this.length = context.length;\n this.current = context[currentIndex];\n this.backtrack = context.slice(0, currentIndex);\n this.lookahead = context.slice(currentIndex + 1);\n}\n\n/**\n * Create an event instance\n * @param {string} eventId event unique id\n */\nfunction Event(eventId) {\n this.eventId = eventId;\n this.subscribers = [];\n}\n\n/**\n * Initialize a core events and auto subscribe required event handlers\n * @param {any} events an object that enlists core events handlers\n */\nfunction initializeCoreEvents(events) {\n const coreEvents = [\n 'start', 'end', 'next', 'newToken', 'contextStart',\n 'contextEnd', 'insertToken', 'removeToken', 'removeRange',\n 'replaceToken', 'replaceRange', 'composeRUD', 'updateContextsRanges'\n ];\n\n coreEvents.forEach(eventId => {\n Object.defineProperty(this.events, eventId, {\n value: new Event(eventId)\n });\n });\n\n if (!!events) {\n coreEvents.forEach(eventId => {\n const event = events[eventId];\n if (typeof event === 'function') {\n this.events[eventId].subscribe(event);\n }\n });\n }\n const requiresContextUpdate = [\n 'insertToken', 'removeToken', 'removeRange',\n 'replaceToken', 'replaceRange', 'composeRUD'\n ];\n requiresContextUpdate.forEach(eventId => {\n this.events[eventId].subscribe(\n this.updateContextsRanges\n );\n });\n}\n\n/**\n * Converts a string into a list of tokens\n * @param {any} events tokenizer core events\n */\nfunction Tokenizer(events) {\n this.tokens = [];\n this.registeredContexts = {};\n this.contextCheckers = [];\n this.events = {};\n this.registeredModifiers = [];\n\n initializeCoreEvents.call(this, events);\n}\n\n/**\n * Sets the state of a token, usually called by a state modifier.\n * @param {string} key state item key\n * @param {any} value state item value\n */\nToken.prototype.setState = function(key, value) {\n this.state[key] = value;\n this.activeState = { key, value: this.state[key] };\n return this.activeState;\n};\n\nToken.prototype.getState = function (stateId) {\n return this.state[stateId] || null;\n};\n\n/**\n * Checks if an index exists in the tokens list.\n * @param {number} index token index\n */\nTokenizer.prototype.inboundIndex = function(index) {\n return index >= 0 && index < this.tokens.length;\n};\n\n/**\n * Compose and apply a list of operations (replace, update, delete)\n * @param {array} RUDs replace, update and delete operations\n * TODO: Perf. Optimization (lengthBefore === lengthAfter ? dispatch once)\n */\nTokenizer.prototype.composeRUD = function (RUDs) {\n const silent = true;\n const state = RUDs.map(RUD => (\n this[RUD[0]].apply(this, RUD.slice(1).concat(silent))\n ));\n const hasFAILObject = obj => (\n typeof obj === 'object' &&\n obj.hasOwnProperty('FAIL')\n );\n if (state.every(hasFAILObject)) {\n return {\n FAIL: `composeRUD: one or more operations hasn't completed successfully`,\n report: state.filter(hasFAILObject)\n };\n }\n this.dispatch('composeRUD', [state.filter(op => !hasFAILObject(op))]);\n};\n\n/**\n * Replace a range of tokens with a list of tokens\n * @param {number} startIndex range start index\n * @param {number} offset range offset\n * @param {token} tokens a list of tokens to replace\n * @param {boolean} silent dispatch events and update context ranges\n */\nTokenizer.prototype.replaceRange = function (startIndex, offset, tokens, silent) {\n offset = offset !== null ? offset : this.tokens.length;\n const isTokenType = tokens.every(token => token instanceof Token);\n if (!isNaN(startIndex) && this.inboundIndex(startIndex) && isTokenType) {\n const replaced = this.tokens.splice.apply(\n this.tokens, [startIndex, offset].concat(tokens)\n );\n if (!silent) this.dispatch('replaceToken', [startIndex, offset, tokens]);\n return [replaced, tokens];\n } else {\n return { FAIL: 'replaceRange: invalid tokens or startIndex.' };\n }\n};\n\n/**\n * Replace a token with another token\n * @param {number} index token index\n * @param {token} token a token to replace\n * @param {boolean} silent dispatch events and update context ranges\n */\nTokenizer.prototype.replaceToken = function (index, token, silent) {\n if (!isNaN(index) && this.inboundIndex(index) && token instanceof Token) {\n const replaced = this.tokens.splice(index, 1, token);\n if (!silent) this.dispatch('replaceToken', [index, token]);\n return [replaced[0], token];\n } else {\n return { FAIL: 'replaceToken: invalid token or index.' };\n }\n};\n\n/**\n * Removes a range of tokens\n * @param {number} startIndex range start index\n * @param {number} offset range offset\n * @param {boolean} silent dispatch events and update context ranges\n */\nTokenizer.prototype.removeRange = function(startIndex, offset, silent) {\n offset = !isNaN(offset) ? offset : this.tokens.length;\n const tokens = this.tokens.splice(startIndex, offset);\n if (!silent) this.dispatch('removeRange', [tokens, startIndex, offset]);\n return tokens;\n};\n\n/**\n * Remove a token at a certain index\n * @param {number} index token index\n * @param {boolean} silent dispatch events and update context ranges\n */\nTokenizer.prototype.removeToken = function(index, silent) {\n if (!isNaN(index) && this.inboundIndex(index)) {\n const token = this.tokens.splice(index, 1);\n if (!silent) this.dispatch('removeToken', [token, index]);\n return token;\n } else {\n return { FAIL: 'removeToken: invalid token index.' };\n }\n};\n\n/**\n * Insert a list of tokens at a certain index\n * @param {array} tokens a list of tokens to insert\n * @param {number} index insert the list of tokens at index\n * @param {boolean} silent dispatch events and update context ranges\n */\nTokenizer.prototype.insertToken = function (tokens, index, silent) {\n const tokenType = tokens.every(\n token => token instanceof Token\n );\n if (tokenType) {\n this.tokens.splice.apply(\n this.tokens, [index, 0].concat(tokens)\n );\n if (!silent) this.dispatch('insertToken', [tokens, index]);\n return tokens;\n } else {\n return { FAIL: 'insertToken: invalid token(s).' };\n }\n};\n\n/**\n * A state modifier that is called on 'newToken' event\n * @param {string} modifierId state modifier id\n * @param {function} condition a predicate function that returns true or false\n * @param {function} modifier a function to update token state\n */\nTokenizer.prototype.registerModifier = function(modifierId, condition, modifier) {\n this.events.newToken.subscribe(function(token, contextParams) {\n const conditionParams = [token, contextParams];\n const canApplyModifier = (\n condition === null ||\n condition.apply(this, conditionParams) === true\n );\n const modifierParams = [token, contextParams];\n if (canApplyModifier) {\n let newStateValue = modifier.apply(this, modifierParams);\n token.setState(modifierId, newStateValue);\n }\n });\n this.registeredModifiers.push(modifierId);\n};\n\n/**\n * Subscribe a handler to an event\n * @param {function} eventHandler an event handler function\n */\nEvent.prototype.subscribe = function (eventHandler) {\n if (typeof eventHandler === 'function') {\n return ((this.subscribers.push(eventHandler)) - 1);\n } else {\n return { FAIL: `invalid '${this.eventId}' event handler`};\n }\n};\n\n/**\n * Unsubscribe an event handler\n * @param {string} subsId subscription id\n */\nEvent.prototype.unsubscribe = function (subsId) {\n this.subscribers.splice(subsId, 1);\n};\n\n/**\n * Sets context params current value index\n * @param {number} index context params current value index\n */\nContextParams.prototype.setCurrentIndex = function(index) {\n this.index = index;\n this.current = this.context[index];\n this.backtrack = this.context.slice(0, index);\n this.lookahead = this.context.slice(index + 1);\n};\n\n/**\n * Get an item at an offset from the current value\n * example (current value is 3):\n * 1 2 [3] 4 5 | items values\n * -2 -1 0 1 2 | offset values\n * @param {number} offset an offset from current value index\n */\nContextParams.prototype.get = function (offset) {\n switch (true) {\n case (offset === 0):\n return this.current;\n case (offset < 0 && Math.abs(offset) <= this.backtrack.length):\n return this.backtrack.slice(offset)[0];\n case (offset > 0 && offset <= this.lookahead.length):\n return this.lookahead[offset - 1];\n default:\n return null;\n }\n};\n\n/**\n * Converts a context range into a string value\n * @param {contextRange} range a context range\n */\nTokenizer.prototype.rangeToText = function (range) {\n if (range instanceof ContextRange) {\n return (\n this.getRangeTokens(range)\n .map(token => token.char).join('')\n );\n }\n};\n\n/**\n * Converts all tokens into a string\n */\nTokenizer.prototype.getText = function () {\n return this.tokens.map(token => token.char).join('');\n};\n\n/**\n * Get a context by name\n * @param {string} contextName context name to get\n */\nTokenizer.prototype.getContext = function (contextName) {\n let context = this.registeredContexts[contextName];\n return !!context ? context : null;\n};\n\n/**\n * Subscribes a new event handler to an event\n * @param {string} eventName event name to subscribe to\n * @param {function} eventHandler a function to be invoked on event\n */\nTokenizer.prototype.on = function(eventName, eventHandler) {\n const event = this.events[eventName];\n if (!!event) {\n return event.subscribe(eventHandler);\n } else {\n return null;\n }\n};\n\n/**\n * Dispatches an event\n * @param {string} eventName event name\n * @param {any} args event handler arguments\n */\nTokenizer.prototype.dispatch = function(eventName, args) {\n const event = this.events[eventName];\n if (event instanceof Event) {\n event.subscribers.forEach(subscriber => {\n subscriber.apply(this, args || []);\n });\n }\n};\n\n/**\n * Register a new context checker\n * @param {string} contextName a unique context name\n * @param {function} contextStartCheck a predicate function that returns true on context start\n * @param {function} contextEndCheck a predicate function that returns true on context end\n * TODO: call tokenize on registration to update context ranges with the new context.\n */\nTokenizer.prototype.registerContextChecker = function(contextName, contextStartCheck, contextEndCheck) {\n if (!!this.getContext(contextName)) return {\n FAIL:\n `context name '${contextName}' is already registered.`\n };\n if (typeof contextStartCheck !== 'function') return {\n FAIL:\n `missing context start check.`\n };\n if (typeof contextEndCheck !== 'function') return {\n FAIL:\n `missing context end check.`\n };\n const contextCheckers = new ContextChecker(\n contextName, contextStartCheck, contextEndCheck\n );\n this.registeredContexts[contextName] = contextCheckers;\n this.contextCheckers.push(contextCheckers);\n return contextCheckers;\n};\n\n/**\n * Gets a context range tokens\n * @param {contextRange} range a context range\n */\nTokenizer.prototype.getRangeTokens = function(range) {\n const endIndex = range.startIndex + range.endOffset;\n return [].concat(\n this.tokens\n .slice(range.startIndex, endIndex)\n );\n};\n\n/**\n * Gets the ranges of a context\n * @param {string} contextName context name\n */\nTokenizer.prototype.getContextRanges = function(contextName) {\n const context = this.getContext(contextName);\n if (!!context) {\n return context.ranges;\n } else {\n return { FAIL: `context checker '${contextName}' is not registered.` };\n }\n};\n\n/**\n * Resets context ranges to run context update\n */\nTokenizer.prototype.resetContextsRanges = function () {\n const registeredContexts = this.registeredContexts;\n for (const contextName in registeredContexts) {\n if (registeredContexts.hasOwnProperty(contextName)) {\n const context = registeredContexts[contextName];\n context.ranges = [];\n }\n }\n};\n\n/**\n * Updates context ranges\n */\nTokenizer.prototype.updateContextsRanges = function () {\n this.resetContextsRanges();\n const chars = this.tokens.map(token => token.char);\n for (let i = 0; i < chars.length; i++) {\n const contextParams = new ContextParams(chars, i);\n this.runContextCheck(contextParams);\n }\n this.dispatch('updateContextsRanges', [this.registeredContexts]);\n};\n\n/**\n * Sets the end offset of an open range\n * @param {number} offset range end offset\n * @param {string} contextName context name\n */\nTokenizer.prototype.setEndOffset = function (offset, contextName) {\n const startIndex = this.getContext(contextName).openRange.startIndex;\n let range = new ContextRange(startIndex, offset, contextName);\n const ranges = this.getContext(contextName).ranges;\n range.rangeId = `${contextName}.${ranges.length}`;\n ranges.push(range);\n this.getContext(contextName).openRange = null;\n return range;\n};\n\n/**\n * Runs a context check on the current context\n * @param {contextParams} contextParams current context params\n */\nTokenizer.prototype.runContextCheck = function(contextParams) {\n const index = contextParams.index;\n this.contextCheckers.forEach(contextChecker => {\n let contextName = contextChecker.contextName;\n let openRange = this.getContext(contextName).openRange;\n if (!openRange && contextChecker.checkStart(contextParams)) {\n openRange = new ContextRange(index, null, contextName);\n this.getContext(contextName).openRange = openRange;\n this.dispatch('contextStart', [contextName, index]);\n }\n if (!!openRange && contextChecker.checkEnd(contextParams)) {\n const offset = (index - openRange.startIndex) + 1;\n const range = this.setEndOffset(offset, contextName);\n this.dispatch('contextEnd', [contextName, range]);\n }\n });\n};\n\n/**\n * Converts a text into a list of tokens\n * @param {string} text a text to tokenize\n */\nTokenizer.prototype.tokenize = function (text) {\n this.tokens = [];\n this.resetContextsRanges();\n let chars = Array.from(text);\n this.dispatch('start');\n for (let i = 0; i < chars.length; i++) {\n const char = chars[i];\n const contextParams = new ContextParams(chars, i);\n this.dispatch('next', [contextParams]);\n this.runContextCheck(contextParams);\n let token = new Token(char);\n this.tokens.push(token);\n this.dispatch('newToken', [token, contextParams]);\n }\n this.dispatch('end', [this.tokens]);\n return this.tokens;\n};\n\nexport default Tokenizer;\nexport { Token, Event, ContextRange, ContextParams };\n","// ╭─┄┄┄────────────────────────┄─────────────────────────────────────────────╮\n// ┊ Character Class Assertions ┊ Checks if a char belongs to a certain class ┊\n// ╰─╾──────────────────────────┄─────────────────────────────────────────────╯\n// jscs:disable maximumLineLength\n/**\n * Check if a char is Arabic\n * @param {string} c a single char\n */\nexport function isArabicChar(c) {\n return /[\\u0600-\\u065F\\u066A-\\u06D2\\u06FA-\\u06FF]/.test(c);\n}\n\n/**\n * Check if a char is an isolated arabic char\n * @param {string} c a single char\n */\nexport function isIsolatedArabicChar(char) {\n return /[\\u0630\\u0690\\u0621\\u0631\\u0661\\u0671\\u0622\\u0632\\u0672\\u0692\\u06C2\\u0623\\u0673\\u0693\\u06C3\\u0624\\u0694\\u06C4\\u0625\\u0675\\u0695\\u06C5\\u06E5\\u0676\\u0696\\u06C6\\u0627\\u0677\\u0697\\u06C7\\u0648\\u0688\\u0698\\u06C8\\u0689\\u0699\\u06C9\\u068A\\u06CA\\u066B\\u068B\\u06CB\\u068C\\u068D\\u06CD\\u06FD\\u068E\\u06EE\\u06FE\\u062F\\u068F\\u06CF\\u06EF]/.test(char);\n}\n\n/**\n * Check if a char is an Arabic Tashkeel char\n * @param {string} c a single char\n */\nexport function isTashkeelArabicChar(char) {\n return /[\\u0600-\\u0605\\u060C-\\u060E\\u0610-\\u061B\\u061E\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED]/.test(char);\n}\n\n/**\n * Check if a char is Latin\n * @param {string} c a single char\n */\nexport function isLatinChar(c) {\n return /[A-z]/.test(c);\n}\n\n/**\n * Check if a char is whitespace char\n * @param {string} c a single char\n */\nexport function isWhiteSpace(c) {\n return /\\s/.test(c);\n}\n","/**\n * Query a feature by some of it's properties to lookup a glyph substitution.\n */\n\nimport { ContextParams } from '../tokenizer';\nimport { isTashkeelArabicChar } from '../char';\n\n/**\n * Create feature query instance\n * @param {Font} font opentype font instance\n */\nfunction FeatureQuery(font) {\n this.font = font;\n this.features = {};\n}\n\n/**\n * @typedef SubstitutionAction\n * @type Object\n * @property {number} id substitution type\n * @property {string} tag feature tag\n * @property {any} substitution substitution value(s)\n */\n\n/**\n * Create a substitution action instance\n * @param {SubstitutionAction} action\n */\nfunction SubstitutionAction(action) {\n this.id = action.id;\n this.tag = action.tag;\n this.substitution = action.substitution;\n}\n\n/**\n * Lookup a coverage table\n * @param {number} glyphIndex glyph index\n * @param {CoverageTable} coverage coverage table\n */\nfunction lookupCoverage(glyphIndex, coverage) {\n if (!glyphIndex) return -1;\n switch (coverage.format) {\n case 1:\n return coverage.glyphs.indexOf(glyphIndex);\n\n case 2:\n let ranges = coverage.ranges;\n for (let i = 0; i < ranges.length; i++) {\n const range = ranges[i];\n if (glyphIndex >= range.start && glyphIndex <= range.end) {\n let offset = glyphIndex - range.start;\n return range.index + offset;\n }\n }\n break;\n default:\n return -1; // not found\n }\n return -1;\n}\n\n/**\n * Handle a single substitution - format 1\n * @param {ContextParams} contextParams context params to lookup\n */\nfunction singleSubstitutionFormat1(glyphIndex, subtable) {\n let substituteIndex = lookupCoverage(glyphIndex, subtable.coverage);\n if (substituteIndex === -1) return null;\n return glyphIndex + subtable.deltaGlyphId;\n}\n\n/**\n * Handle a single substitution - format 2\n * @param {ContextParams} contextParams context params to lookup\n */\nfunction singleSubstitutionFormat2(glyphIndex, subtable) {\n let substituteIndex = lookupCoverage(glyphIndex, subtable.coverage);\n if (substituteIndex === -1) return null;\n return subtable.substitute[substituteIndex];\n}\n\n/**\n * Lookup a list of coverage tables\n * @param {any} coverageList a list of coverage tables\n * @param {ContextParams} contextParams context params to lookup\n */\nfunction lookupCoverageList(coverageList, contextParams) {\n let lookupList = [];\n for (let i = 0; i < coverageList.length; i++) {\n const coverage = coverageList[i];\n let glyphIndex = contextParams.current;\n glyphIndex = Array.isArray(glyphIndex) ? glyphIndex[0] : glyphIndex;\n const lookupIndex = lookupCoverage(glyphIndex, coverage);\n if (lookupIndex !== -1) {\n lookupList.push(lookupIndex);\n }\n }\n if (lookupList.length !== coverageList.length) return -1;\n return lookupList;\n}\n\n/**\n * Handle chaining context substitution - format 3\n * @param {ContextParams} contextParams context params to lookup\n */\nfunction chainingSubstitutionFormat3(contextParams, subtable) {\n const lookupsCount = (\n subtable.inputCoverage.length +\n subtable.lookaheadCoverage.length +\n subtable.backtrackCoverage.length\n );\n if (contextParams.context.length < lookupsCount) return [];\n // INPUT LOOKUP //\n let inputLookups = lookupCoverageList(\n subtable.inputCoverage, contextParams\n );\n if (inputLookups === -1) return [];\n // LOOKAHEAD LOOKUP //\n const lookaheadOffset = subtable.inputCoverage.length - 1;\n if (contextParams.lookahead.length < subtable.lookaheadCoverage.length) return [];\n let lookaheadContext = contextParams.lookahead.slice(lookaheadOffset);\n while (lookaheadContext.length && isTashkeelArabicChar(lookaheadContext[0].char)) {\n lookaheadContext.shift();\n }\n const lookaheadParams = new ContextParams(lookaheadContext, 0);\n let lookaheadLookups = lookupCoverageList(\n subtable.lookaheadCoverage, lookaheadParams\n );\n // BACKTRACK LOOKUP //\n let backtrackContext = [].concat(contextParams.backtrack);\n backtrackContext.reverse();\n while (backtrackContext.length && isTashkeelArabicChar(backtrackContext[0].char)) {\n backtrackContext.shift();\n }\n if (backtrackContext.length < subtable.backtrackCoverage.length) return [];\n const backtrackParams = new ContextParams(backtrackContext, 0);\n let backtrackLookups = lookupCoverageList(\n subtable.backtrackCoverage, backtrackParams\n );\n const contextRulesMatch = (\n inputLookups.length === subtable.inputCoverage.length &&\n lookaheadLookups.length === subtable.lookaheadCoverage.length &&\n backtrackLookups.length === subtable.backtrackCoverage.length\n );\n let substitutions = [];\n if (contextRulesMatch) {\n for (let i = 0; i < subtable.lookupRecords.length; i++) {\n const lookupRecord = subtable.lookupRecords[i];\n const lookupListIndex = lookupRecord.lookupListIndex;\n const lookupTable = this.getLookupByIndex(lookupListIndex);\n for (let s = 0; s < lookupTable.subtables.length; s++) {\n const subtable = lookupTable.subtables[s];\n const lookup = this.getLookupMethod(lookupTable, subtable);\n const substitutionType = this.getSubstitutionType(lookupTable, subtable);\n if (substitutionType === '12') {\n for (let n = 0; n < inputLookups.length; n++) {\n const glyphIndex = contextParams.get(n);\n const substitution = lookup(glyphIndex);\n if (substitution) substitutions.push(substitution);\n }\n }\n }\n }\n }\n return substitutions;\n}\n\n/**\n * Handle ligature substitution - format 1\n * @param {ContextParams} contextParams context params to lookup\n */\nfunction ligatureSubstitutionFormat1(contextParams, subtable) {\n // COVERAGE LOOKUP //\n let glyphIndex = contextParams.current;\n let ligSetIndex = lookupCoverage(glyphIndex, subtable.coverage);\n if (ligSetIndex === -1) return null;\n // COMPONENTS LOOKUP\n // (!) note, components are ordered in the written direction.\n let ligature;\n let ligatureSet = subtable.ligatureSets[ligSetIndex];\n for (let s = 0; s < ligatureSet.length; s++) {\n ligature = ligatureSet[s];\n for (let l = 0; l < ligature.components.length; l++) {\n const lookaheadItem = contextParams.lookahead[l];\n const component = ligature.components[l];\n if (lookaheadItem !== component) break;\n if (l === ligature.components.length - 1) return ligature;\n }\n }\n return null;\n}\n\n/**\n * Handle decomposition substitution - format 1\n * @param {number} glyphIndex glyph index\n * @param {any} subtable subtable\n */\nfunction decompositionSubstitutionFormat1(glyphIndex, subtable) {\n let substituteIndex = lookupCoverage(glyphIndex, subtable.coverage);\n if (substituteIndex === -1) return null;\n return subtable.sequences[substituteIndex];\n}\n\n/**\n * Get default script features indexes\n */\nFeatureQuery.prototype.getDefaultScriptFeaturesIndexes = function () {\n const scripts = this.font.tables.gsub.scripts;\n for (let s = 0; s < scripts.length; s++) {\n const script = scripts[s];\n if (script.tag === 'DFLT') return (\n script.script.defaultLangSys.featureIndexes\n );\n }\n return [];\n};\n\n/**\n * Get feature indexes of a specific script\n * @param {string} scriptTag script tag\n */\nFeatureQuery.prototype.getScriptFeaturesIndexes = function(scriptTag) {\n const tables = this.font.tables;\n if (!tables.gsub) return [];\n if (!scriptTag) return this.getDefaultScriptFeaturesIndexes();\n const scripts = this.font.tables.gsub.scripts;\n for (let i = 0; i < scripts.length; i++) {\n const script = scripts[i];\n if (script.tag === scriptTag && script.script.defaultLangSys) {\n return script.script.defaultLangSys.featureIndexes;\n } else {\n let langSysRecords = script.langSysRecords;\n if (!!langSysRecords) {\n for (let j = 0; j < langSysRecords.length; j++) {\n const langSysRecord = langSysRecords[j];\n if (langSysRecord.tag === scriptTag) {\n let langSys = langSysRecord.langSys;\n return langSys.featureIndexes;\n }\n }\n }\n }\n }\n return this.getDefaultScriptFeaturesIndexes();\n};\n\n/**\n * Map a feature tag to a gsub feature\n * @param {any} features gsub features\n * @param {string} scriptTag script tag\n */\nFeatureQuery.prototype.mapTagsToFeatures = function (features, scriptTag) {\n let tags = {};\n for (let i = 0; i < features.length; i++) {\n const tag = features[i].tag;\n const feature = features[i].feature;\n tags[tag] = feature;\n }\n this.features[scriptTag].tags = tags;\n};\n\n/**\n * Get features of a specific script\n * @param {string} scriptTag script tag\n */\nFeatureQuery.prototype.getScriptFeatures = function (scriptTag) {\n let features = this.features[scriptTag];\n if (this.features.hasOwnProperty(scriptTag)) return features;\n const featuresIndexes = this.getScriptFeaturesIndexes(scriptTag);\n if (!featuresIndexes) return null;\n const gsub = this.font.tables.gsub;\n features = featuresIndexes.map(index => gsub.features[index]);\n this.features[scriptTag] = features;\n this.mapTagsToFeatures(features, scriptTag);\n return features;\n};\n\n/**\n * Get substitution type\n * @param {any} lookupTable lookup table\n * @param {any} subtable subtable\n */\nFeatureQuery.prototype.getSubstitutionType = function(lookupTable, subtable) {\n const lookupType = lookupTable.lookupType.toString();\n const substFormat = subtable.substFormat.toString();\n return lookupType + substFormat;\n};\n\n/**\n * Get lookup method\n * @param {any} lookupTable lookup table\n * @param {any} subtable subtable\n */\nFeatureQuery.prototype.getLookupMethod = function(lookupTable, subtable) {\n let substitutionType = this.getSubstitutionType(lookupTable, subtable);\n switch (substitutionType) {\n case '11':\n return glyphIndex => singleSubstitutionFormat1.apply(\n this, [glyphIndex, subtable]\n );\n case '12':\n return glyphIndex => singleSubstitutionFormat2.apply(\n this, [glyphIndex, subtable]\n );\n case '63':\n return contextParams => chainingSubstitutionFormat3.apply(\n this, [contextParams, subtable]\n );\n case '41':\n return contextParams => ligatureSubstitutionFormat1.apply(\n this, [contextParams, subtable]\n );\n case '21':\n return glyphIndex => decompositionSubstitutionFormat1.apply(\n this, [glyphIndex, subtable]\n );\n default:\n throw new Error(\n `lookupType: ${lookupTable.lookupType} - ` +\n `substFormat: ${subtable.substFormat} ` +\n `is not yet supported`\n );\n }\n};\n\n/**\n * [ LOOKUP TYPES ]\n * -------------------------------\n * Single 1;\n * Multiple 2;\n * Alternate 3;\n * Ligature 4;\n * Context 5;\n * ChainingContext 6;\n * ExtensionSubstitution 7;\n * ReverseChainingContext 8;\n * -------------------------------\n *\n */\n\n/**\n * @typedef FQuery\n * @type Object\n * @param {string} tag feature tag\n * @param {string} script feature script\n * @param {ContextParams} contextParams context params\n */\n\n/**\n * Lookup a feature using a query parameters\n * @param {FQuery} query feature query\n */\nFeatureQuery.prototype.lookupFeature = function (query) {\n let contextParams = query.contextParams;\n let currentIndex = contextParams.index;\n const feature = this.getFeature({\n tag: query.tag, script: query.script\n });\n if (!feature) return new Error(\n `font '${this.font.names.fullName.en}' ` +\n `doesn't support feature '${query.tag}' ` +\n `for script '${query.script}'.`\n );\n const lookups = this.getFeatureLookups(feature);\n const substitutions = [].concat(contextParams.context);\n for (let l = 0; l < lookups.length; l++) {\n const lookupTable = lookups[l];\n const subtables = this.getLookupSubtables(lookupTable);\n for (let s = 0; s < subtables.length; s++) {\n const subtable = subtables[s];\n const substType = this.getSubstitutionType(lookupTable, subtable);\n const lookup = this.getLookupMethod(lookupTable, subtable);\n let substitution;\n switch (substType) {\n case '11':\n substitution = lookup(contextParams.current);\n if (substitution) {\n substitutions.splice(currentIndex, 1, new SubstitutionAction({\n id: 11, tag: query.tag, substitution\n }));\n }\n break;\n case '12':\n substitution = lookup(contextParams.current);\n if (substitution) {\n substitutions.splice(currentIndex, 1, new SubstitutionAction({\n id: 12, tag: query.tag, substitution\n }));\n }\n break;\n case '63':\n substitution = lookup(contextParams);\n if (Array.isArray(substitution) && substitution.length) {\n substitutions.splice(currentIndex, 1, new SubstitutionAction({\n id: 63, tag: query.tag, substitution\n }));\n }\n break;\n case '41':\n substitution = lookup(contextParams);\n if (substitution) {\n substitutions.splice(currentIndex, 1, new SubstitutionAction({\n id: 41, tag: query.tag, substitution\n }));\n }\n break;\n case '21':\n substitution = lookup(contextParams.current);\n if (substitution) {\n substitutions.splice(currentIndex, 1, new SubstitutionAction({\n id: 21, tag: query.tag, substitution\n }));\n }\n break;\n }\n contextParams = new ContextParams(substitutions, currentIndex);\n if (Array.isArray(substitution) && !substitution.length) continue;\n substitution = null;\n }\n }\n return substitutions.length ? substitutions : null;\n};\n\n/**\n * Checks if a font supports a specific features\n * @param {FQuery} query feature query object\n */\nFeatureQuery.prototype.supports = function (query) {\n if (!query.script) return false;\n this.getScriptFeatures(query.script);\n const supportedScript = this.features.hasOwnProperty(query.script);\n if (!query.tag) return supportedScript;\n const supportedFeature = (\n this.features[query.script].some(feature => feature.tag === query.tag)\n );\n return supportedScript && supportedFeature;\n};\n\n/**\n * Get lookup table subtables\n * @param {any} lookupTable lookup table\n */\nFeatureQuery.prototype.getLookupSubtables = function (lookupTable) {\n return lookupTable.subtables || null;\n};\n\n/**\n * Get lookup table by index\n * @param {number} index lookup table index\n */\nFeatureQuery.prototype.getLookupByIndex = function (index) {\n const lookups = this.font.tables.gsub.lookups;\n return lookups[index] || null;\n};\n\n/**\n * Get lookup tables for a feature\n * @param {string} feature\n */\nFeatureQuery.prototype.getFeatureLookups = function (feature) {\n // TODO: memoize\n return feature.lookupListIndexes.map(this.getLookupByIndex.bind(this));\n};\n\n/**\n * Query a feature by it's properties\n * @param {any} query an object that describes the properties of a query\n */\nFeatureQuery.prototype.getFeature = function getFeature(query) {\n if (!this.font) return { FAIL: `No font was found`};\n if (!this.features.hasOwnProperty(query.script)) {\n this.getScriptFeatures(query.script);\n }\n const scriptFeatures = this.features[query.script];\n if (!scriptFeatures) return (\n { FAIL: `No feature for script ${query.script}`}\n );\n if (!scriptFeatures.tags[query.tag]) return null;\n return this.features[query.script].tags[query.tag];\n};\n\nexport default FeatureQuery;\nexport { FeatureQuery, SubstitutionAction };\n","/**\n * Arabic word context checkers\n */\n\nimport { isArabicChar } from '../../../char';\n\nfunction arabicWordStartCheck(contextParams) {\n const char = contextParams.current;\n const prevChar = contextParams.get(-1);\n return (\n // ? arabic first char\n (prevChar === null && isArabicChar(char)) ||\n // ? arabic char preceded with a non arabic char\n (!isArabicChar(prevChar) && isArabicChar(char))\n );\n}\n\nfunction arabicWordEndCheck(contextParams) {\n const nextChar = contextParams.get(1);\n return (\n // ? last arabic char\n (nextChar === null) ||\n // ? next char is not arabic\n (!isArabicChar(nextChar))\n );\n}\n\nexport default {\n startCheck: arabicWordStartCheck,\n endCheck: arabicWordEndCheck\n};\n","/**\n * Arabic sentence context checkers\n */\n\nimport { isArabicChar, isWhiteSpace, isTashkeelArabicChar } from '../../../char';\n\nfunction arabicSentenceStartCheck(contextParams) {\n const char = contextParams.current;\n const prevChar = contextParams.get(-1);\n return (\n // ? an arabic char preceded with a non arabic char\n (isArabicChar(char) || isTashkeelArabicChar(char)) &&\n !isArabicChar(prevChar)\n );\n}\n\nfunction arabicSentenceEndCheck(contextParams) {\n const nextChar = contextParams.get(1);\n switch (true) {\n case nextChar === null:\n return true;\n case (!isArabicChar(nextChar) && !isTashkeelArabicChar(nextChar)):\n const nextIsWhitespace = isWhiteSpace(nextChar);\n if (!nextIsWhitespace) return true;\n if (nextIsWhitespace) {\n let arabicCharAhead = false;\n arabicCharAhead = (\n contextParams.lookahead.some(\n c => isArabicChar(c) || isTashkeelArabicChar(c)\n )\n );\n if (!arabicCharAhead) return true;\n }\n break;\n default:\n return false;\n }\n}\n\nexport default {\n startCheck: arabicSentenceStartCheck,\n endCheck: arabicSentenceEndCheck\n};\n","import { SubstitutionAction } from './featureQuery';\n\n/**\n * Apply single substitution format 1\n * @param {Array} substitutions substitutions\n * @param {any} tokens a list of tokens\n * @param {number} index token index\n */\nfunction singleSubstitutionFormat1(action, tokens, index) {\n tokens[index].setState(action.tag, action.substitution);\n}\n\n/**\n * Apply single substitution format 2\n * @param {Array} substitutions substitutions\n * @param {any} tokens a list of tokens\n * @param {number} index token index\n */\nfunction singleSubstitutionFormat2(action, tokens, index) {\n tokens[index].setState(action.tag, action.substitution);\n}\n\n/**\n * Apply chaining context substitution format 3\n * @param {Array} substitutions substitutions\n * @param {any} tokens a list of tokens\n * @param {number} index token index\n */\nfunction chainingSubstitutionFormat3(action, tokens, index) {\n action.substitution.forEach((subst, offset) => {\n const token = tokens[index + offset];\n token.setState(action.tag, subst);\n });\n}\n\n/**\n * Apply ligature substitution format 1\n * @param {Array} substitutions substitutions\n * @param {any} tokens a list of tokens\n * @param {number} index token index\n */\nfunction ligatureSubstitutionFormat1(action, tokens, index) {\n let token = tokens[index];\n token.setState(action.tag, action.substitution.ligGlyph);\n const compsCount = action.substitution.components.length;\n for (let i = 0; i < compsCount; i++) {\n token = tokens[index + i + 1];\n token.setState('deleted', true);\n }\n}\n\n/**\n * Supported substitutions\n */\nconst SUBSTITUTIONS = {\n 11: singleSubstitutionFormat1,\n 12: singleSubstitutionFormat2,\n 63: chainingSubstitutionFormat3,\n 41: ligatureSubstitutionFormat1\n};\n\n/**\n * Apply substitutions to a list of tokens\n * @param {Array} substitutions substitutions\n * @param {any} tokens a list of tokens\n * @param {number} index token index\n */\nfunction applySubstitution(action, tokens, index) {\n if (action instanceof SubstitutionAction && SUBSTITUTIONS[action.id]) {\n SUBSTITUTIONS[action.id](action, tokens, index);\n }\n}\n\nexport default applySubstitution;\n","/**\n * Apply Arabic presentation forms to a range of tokens\n */\n\nimport { ContextParams } from '../../tokenizer';\nimport { isIsolatedArabicChar, isTashkeelArabicChar } from '../../char';\nimport { SubstitutionAction } from '../featureQuery';\nimport applySubstitution from '../applySubstitution';\n\n/**\n * Check if a char can be connected to it's preceding char\n * @param {ContextParams} charContextParams context params of a char\n */\nfunction willConnectPrev(charContextParams) {\n let backtrack = [].concat(charContextParams.backtrack);\n for (let i = backtrack.length - 1; i >= 0; i--) {\n const prevChar = backtrack[i];\n const isolated = isIsolatedArabicChar(prevChar);\n const tashkeel = isTashkeelArabicChar(prevChar);\n if (!isolated && !tashkeel) return true;\n if (isolated) return false;\n }\n return false;\n}\n\n/**\n * Check if a char can be connected to it's proceeding char\n * @param {ContextParams} charContextParams context params of a char\n */\nfunction willConnectNext(charContextParams) {\n if (isIsolatedArabicChar(charContextParams.current)) return false;\n for (let i = 0; i < charContextParams.lookahead.length; i++) {\n const nextChar = charContextParams.lookahead[i];\n const tashkeel = isTashkeelArabicChar(nextChar);\n if (!tashkeel) return true;\n }\n return false;\n}\n\n/**\n * Apply arabic presentation forms to a list of tokens\n * @param {ContextRange} range a range of tokens\n */\nfunction arabicPresentationForms(range) {\n const script = 'arab';\n const tags = this.featuresTags[script];\n const tokens = this.tokenizer.getRangeTokens(range);\n if (tokens.length === 1) return;\n let contextParams = new ContextParams(\n tokens.map(token => token.getState('glyphIndex')\n ), 0);\n const charContextParams = new ContextParams(\n tokens.map(token => token.char\n ), 0);\n tokens.forEach((token, index) => {\n if (isTashkeelArabicChar(token.char)) return;\n contextParams.setCurrentIndex(index);\n charContextParams.setCurrentIndex(index);\n let CONNECT = 0; // 2 bits 00 (10: can connect next) (01: can connect prev)\n if (willConnectPrev(charContextParams)) CONNECT |= 1;\n if (willConnectNext(charContextParams)) CONNECT |= 2;\n let tag;\n switch (CONNECT) {\n case 1: (tag = 'fina'); break;\n case 2: (tag = 'init'); break;\n case 3: (tag = 'medi'); break;\n }\n if (tags.indexOf(tag) === -1) return;\n let substitutions = this.query.lookupFeature({\n tag, script, contextParams\n });\n if (substitutions instanceof Error) return console.info(substitutions.message);\n substitutions.forEach((action, index) => {\n if (action instanceof SubstitutionAction) {\n applySubstitution(action, tokens, index);\n contextParams.context[index] = action.substitution;\n }\n });\n });\n}\n\nexport default arabicPresentationForms;\nexport { arabicPresentationForms };\n","/**\n * Apply Arabic required ligatures feature to a range of tokens\n */\n\nimport { ContextParams } from '../../tokenizer';\nimport applySubstitution from '../applySubstitution';\n\n/**\n * Update context params\n * @param {any} tokens a list of tokens\n * @param {number} index current item index\n */\nfunction getContextParams(tokens, index) {\n const context = tokens.map(token => token.activeState.value);\n return new ContextParams(context, index || 0);\n}\n\n/**\n * Apply Arabic required ligatures to a context range\n * @param {ContextRange} range a range of tokens\n */\nfunction arabicRequiredLigatures(range) {\n const script = 'arab';\n let tokens = this.tokenizer.getRangeTokens(range);\n let contextParams = getContextParams(tokens);\n contextParams.context.forEach((glyphIndex, index) => {\n contextParams.setCurrentIndex(index);\n let substitutions = this.query.lookupFeature({\n tag: 'rlig', script, contextParams\n });\n if (substitutions.length) {\n substitutions.forEach(\n action => applySubstitution(action, tokens, index)\n );\n contextParams = getContextParams(tokens);\n }\n });\n}\n\nexport default arabicRequiredLigatures;\nexport { arabicRequiredLigatures };\n","/**\n * Latin word context checkers\n */\n\nimport { isLatinChar } from '../../../char';\n\nfunction latinWordStartCheck(contextParams) {\n const char = contextParams.current;\n const prevChar = contextParams.get(-1);\n return (\n // ? latin first char\n (prevChar === null && isLatinChar(char)) ||\n // ? latin char preceded with a non latin char\n (!isLatinChar(prevChar) && isLatinChar(char))\n );\n}\n\nfunction latinWordEndCheck(contextParams) {\n const nextChar = contextParams.get(1);\n return (\n // ? last latin char\n (nextChar === null) ||\n // ? next char is not latin\n (!isLatinChar(nextChar))\n );\n}\n\nexport default {\n startCheck: latinWordStartCheck,\n endCheck: latinWordEndCheck\n};\n","/**\n * Apply Latin ligature feature to a range of tokens\n */\n\nimport { ContextParams } from '../../tokenizer';\nimport applySubstitution from '../applySubstitution';\n\n/**\n * Update context params\n * @param {any} tokens a list of tokens\n * @param {number} index current item index\n */\nfunction getContextParams(tokens, index) {\n const context = tokens.map(token => token.activeState.value);\n return new ContextParams(context, index || 0);\n}\n\n/**\n * Apply Arabic required ligatures to a context range\n * @param {ContextRange} range a range of tokens\n */\nfunction latinLigature(range) {\n const script = 'latn';\n let tokens = this.tokenizer.getRangeTokens(range);\n let contextParams = getContextParams(tokens);\n contextParams.context.forEach((glyphIndex, index) => {\n contextParams.setCurrentIndex(index);\n let substitutions = this.query.lookupFeature({\n tag: 'liga', script, contextParams\n });\n if (substitutions.length) {\n substitutions.forEach(\n action => applySubstitution(action, tokens, index)\n );\n contextParams = getContextParams(tokens);\n }\n });\n}\n\nexport default latinLigature;\n","/**\n * Infer bidirectional properties for a given text and apply\n * the corresponding layout rules.\n */\n\nimport Tokenizer from './tokenizer';\nimport FeatureQuery from './features/featureQuery';\nimport arabicWordCheck from './features/arab/contextCheck/arabicWord';\nimport arabicSentenceCheck from './features/arab/contextCheck/arabicSentence';\nimport arabicPresentationForms from './features/arab/arabicPresentationForms';\nimport arabicRequiredLigatures from './features/arab/arabicRequiredLigatures';\nimport latinWordCheck from './features/latn/contextCheck/latinWord';\nimport latinLigature from './features/latn/latinLigatures';\n\n/**\n * Create Bidi. features\n * @param {string} baseDir text base direction. value either 'ltr' or 'rtl'\n */\nfunction Bidi(baseDir) {\n this.baseDir = baseDir || 'ltr';\n this.tokenizer = new Tokenizer();\n this.featuresTags = {};\n}\n\n/**\n * Sets Bidi text\n * @param {string} text a text input\n */\nBidi.prototype.setText = function (text) {\n this.text = text;\n};\n\n/**\n * Store essential context checks:\n * arabic word check for applying gsub features\n * arabic sentence check for adjusting arabic layout\n */\nBidi.prototype.contextChecks = ({\n latinWordCheck,\n arabicWordCheck,\n arabicSentenceCheck\n});\n\n/**\n * Register arabic word check\n */\nfunction registerContextChecker(checkId) {\n const check = this.contextChecks[`${checkId}Check`];\n return this.tokenizer.registerContextChecker(\n checkId, check.startCheck, check.endCheck\n );\n}\n\n/**\n * Perform pre tokenization procedure then\n * tokenize text input\n */\nfunction tokenizeText() {\n registerContextChecker.call(this, 'latinWord');\n registerContextChecker.call(this, 'arabicWord');\n registerContextChecker.call(this, 'arabicSentence');\n return this.tokenizer.tokenize(this.text);\n}\n\n/**\n * Reverse arabic sentence layout\n * TODO: check base dir before applying adjustments - priority low\n */\nfunction reverseArabicSentences() {\n const ranges = this.tokenizer.getContextRanges('arabicSentence');\n ranges.forEach(range => {\n let rangeTokens = this.tokenizer.getRangeTokens(range);\n this.tokenizer.replaceRange(\n range.startIndex,\n range.endOffset,\n rangeTokens.reverse()\n );\n });\n}\n\n/**\n * Register supported features tags\n * @param {script} script script tag\n * @param {Array} tags features tags list\n */\nBidi.prototype.registerFeatures = function (script, tags) {\n const supportedTags = tags.filter(\n tag => this.query.supports({script, tag})\n );\n if (!this.featuresTags.hasOwnProperty(script)) {\n this.featuresTags[script] = supportedTags;\n } else {\n this.featuresTags[script] =\n this.featuresTags[script].concat(supportedTags);\n }\n};\n\n/**\n * Apply GSUB features\n * @param {Array} tagsList a list of features tags\n * @param {string} script a script tag\n * @param {Font} font opentype font instance\n */\nBidi.prototype.applyFeatures = function (font, features) {\n if (!font) throw new Error(\n 'No valid font was provided to apply features'\n );\n if (!this.query) this.query = new FeatureQuery(font);\n for (let f = 0; f < features.length; f++) {\n const feature = features[f];\n if (!this.query.supports({script: feature.script})) continue;\n this.registerFeatures(feature.script, feature.tags);\n }\n};\n\n/**\n * Register a state modifier\n * @param {string} modifierId state modifier id\n * @param {function} condition a predicate function that returns true or false\n * @param {function} modifier a modifier function to set token state\n */\nBidi.prototype.registerModifier = function (modifierId, condition, modifier) {\n this.tokenizer.registerModifier(modifierId, condition, modifier);\n};\n\n/**\n * Check if 'glyphIndex' is registered\n */\nfunction checkGlyphIndexStatus() {\n if (this.tokenizer.registeredModifiers.indexOf('glyphIndex') === -1) {\n throw new Error(\n 'glyphIndex modifier is required to apply ' +\n 'arabic presentation features.'\n );\n }\n}\n\n/**\n * Apply arabic presentation forms features\n */\nfunction applyArabicPresentationForms() {\n const script = 'arab';\n if (!this.featuresTags.hasOwnProperty(script)) return;\n checkGlyphIndexStatus.call(this);\n const ranges = this.tokenizer.getContextRanges('arabicWord');\n ranges.forEach(range => {\n arabicPresentationForms.call(this, range);\n });\n}\n\n/**\n * Apply required arabic ligatures\n */\nfunction applyArabicRequireLigatures() {\n const script = 'arab';\n if (!this.featuresTags.hasOwnProperty(script)) return;\n const tags = this.featuresTags[script];\n if (tags.indexOf('rlig') === -1) return;\n checkGlyphIndexStatus.call(this);\n const ranges = this.tokenizer.getContextRanges('arabicWord');\n ranges.forEach(range => {\n arabicRequiredLigatures.call(this, range);\n });\n}\n\n/**\n * Apply required arabic ligatures\n */\nfunction applyLatinLigatures() {\n const script = 'latn';\n if (!this.featuresTags.hasOwnProperty(script)) return;\n const tags = this.featuresTags[script];\n if (tags.indexOf('liga') === -1) return;\n checkGlyphIndexStatus.call(this);\n const ranges = this.tokenizer.getContextRanges('latinWord');\n ranges.forEach(range => {\n latinLigature.call(this, range);\n });\n}\n\n/**\n * Check if a context is registered\n * @param {string} contextId context id\n */\nBidi.prototype.checkContextReady = function (contextId) {\n return !!this.tokenizer.getContext(contextId);\n};\n\n/**\n * Apply features to registered contexts\n */\nBidi.prototype.applyFeaturesToContexts = function () {\n if (this.checkContextReady('arabicWord')) {\n applyArabicPresentationForms.call(this);\n applyArabicRequireLigatures.call(this);\n }\n if (this.checkContextReady('latinWord')) {\n applyLatinLigatures.call(this);\n }\n if (this.checkContextReady('arabicSentence')) {\n reverseArabicSentences.call(this);\n }\n};\n\n/**\n * process text input\n * @param {string} text an input text\n */\nBidi.prototype.processText = function(text) {\n if (!this.text || this.text !== text) {\n this.setText(text);\n tokenizeText.call(this);\n this.applyFeaturesToContexts();\n }\n};\n\n/**\n * Process a string of text to identify and adjust\n * bidirectional text entities.\n * @param {string} text input text\n */\nBidi.prototype.getBidiText = function (text) {\n this.processText(text);\n return this.tokenizer.getText();\n};\n\n/**\n * Get the current state index of each token\n * @param {text} text an input text\n */\nBidi.prototype.getTextGlyphs = function (text) {\n this.processText(text);\n let indexes = [];\n for (let i = 0; i < this.tokenizer.tokens.length; i++) {\n const token = this.tokenizer.tokens[i];\n if (token.state.deleted) continue;\n const index = token.activeState.value;\n indexes.push(Array.isArray(index) ? index[0] : index);\n }\n return indexes;\n};\n\nexport default Bidi;\n","// The Font object\n\nimport Path from './path';\nimport { DefaultEncoding } from './encoding';\nimport glyphset from './glyphset';\nimport Position from './position';\nimport Substitution from './substitution';\nimport { checkArgument } from './util';\nimport HintingTrueType from './hintingtt';\nimport Bidi from './bidi';\n\n/**\n * @typedef FontOptions\n * @type Object\n * @property {Boolean} empty - whether to create a new empty font\n * @property {string} familyName\n * @property {string} styleName\n * @property {string=} fullName\n * @property {string=} postScriptName\n * @property {string=} designer\n * @property {string=} designerURL\n * @property {string=} manufacturer\n * @property {string=} manufacturerURL\n * @property {string=} license\n * @property {string=} licenseURL\n * @property {string=} version\n * @property {string=} description\n * @property {string=} copyright\n * @property {string=} trademark\n * @property {Number} unitsPerEm\n * @property {Number} ascender\n * @property {Number} descender\n * @property {Number} createdTimestamp\n * @property {string=} weightClass\n * @property {string=} widthClass\n * @property {string=} fsSelection\n */\n\n/**\n * A Font represents a loaded OpenType font file.\n * It contains a set of glyphs and methods to draw text on a drawing context,\n * or to get a path representing the text.\n * @exports opentype.Font\n * @class\n * @param {FontOptions}\n * @constructor\n */\nfunction Font(options) {\n options = options || {};\n options.tables = options.tables || {};\n\n if (!options.empty) {\n // Check that we've provided the minimum set of names.\n checkArgument(\n options.familyName,\n 'When creating a new Font object, familyName is required.'\n );\n checkArgument(\n options.styleName,\n 'When creating a new Font object, styleName is required.'\n );\n checkArgument(\n options.unitsPerEm,\n 'When creating a new Font object, unitsPerEm is required.'\n );\n checkArgument(\n options.ascender,\n 'When creating a new Font object, ascender is required.'\n );\n checkArgument(\n options.descender <= 0,\n 'When creating a new Font object, negative descender value is required.'\n );\n\n this.unitsPerEm = options.unitsPerEm || 1000;\n this.ascender = options.ascender;\n this.descender = options.descender;\n this.createdTimestamp = options.createdTimestamp;\n this.tables = Object.assign(options.tables, {\n os2: Object.assign(\n {\n usWeightClass:\n options.weightClass || this.usWeightClasses.MEDIUM,\n usWidthClass:\n options.widthClass || this.usWidthClasses.MEDIUM,\n fsSelection:\n options.fsSelection || this.fsSelectionValues.REGULAR,\n },\n options.tables.os2\n ),\n });\n }\n\n this.supported = true; // Deprecated: parseBuffer will throw an error if font is not supported.\n this.glyphs = new glyphset.GlyphSet(this, options.glyphs || []);\n this.encoding = new DefaultEncoding(this);\n this.position = new Position(this);\n this.substitution = new Substitution(this);\n this.tables = this.tables || {};\n\n // needed for low memory mode only.\n this._push = null;\n this._hmtxTableData = {};\n\n Object.defineProperty(this, 'hinting', {\n get: function () {\n if (this._hinting) return this._hinting;\n if (this.outlinesFormat === 'truetype') {\n return (this._hinting = new HintingTrueType(this));\n }\n },\n });\n}\n\n/**\n * Check if the font has a glyph for the given character.\n * @param {string}\n * @return {Boolean}\n */\nFont.prototype.hasChar = function (c) {\n return this.encoding.charToGlyphIndex(c) !== null;\n};\n\n/**\n * Convert the given character to a single glyph index.\n * Note that this function assumes that there is a one-to-one mapping between\n * the given character and a glyph; for complex scripts this might not be the case.\n * @param {string}\n * @return {Number}\n */\nFont.prototype.charToGlyphIndex = function (s) {\n return this.encoding.charToGlyphIndex(s);\n};\n\n/**\n * Convert the given character to a single Glyph object.\n * Note that this function assumes that there is a one-to-one mapping between\n * the given character and a glyph; for complex scripts this might not be the case.\n * @param {string}\n * @return {opentype.Glyph}\n */\nFont.prototype.charToGlyph = function (c) {\n const glyphIndex = this.charToGlyphIndex(c);\n let glyph = this.glyphs.get(glyphIndex);\n if (!glyph) {\n // .notdef\n glyph = this.glyphs.get(0);\n }\n\n return glyph;\n};\n\n/**\n * Update features\n * @param {any} options features options\n */\nFont.prototype.updateFeatures = function (options) {\n // TODO: update all features options not only 'latn'.\n return this.defaultRenderOptions.features.map((feature) => {\n if (feature.script === 'latn') {\n return {\n script: 'latn',\n tags: feature.tags.filter((tag) => options[tag]),\n };\n } else {\n return feature;\n }\n });\n};\n\n/**\n * Convert the given text to a list of Glyph objects.\n * Note that there is no strict one-to-one mapping between characters and\n * glyphs, so the list of returned glyphs can be larger or smaller than the\n * length of the given string.\n * @param {string}\n * @param {GlyphRenderOptions} [options]\n * @return {opentype.Glyph[]}\n */\nFont.prototype.stringToGlyphs = function (s, options) {\n const bidi = new Bidi();\n\n // Create and register 'glyphIndex' state modifier\n const charToGlyphIndexMod = (token) => this.charToGlyphIndex(token.char);\n bidi.registerModifier('glyphIndex', null, charToGlyphIndexMod);\n\n // roll-back to default features\n let features = options\n ? this.updateFeatures(options.features)\n : this.defaultRenderOptions.features;\n\n bidi.applyFeatures(this, features);\n\n const indexes = bidi.getTextGlyphs(s);\n\n let length = indexes.length;\n\n // convert glyph indexes to glyph objects\n const glyphs = new Array(length);\n const notdef = this.glyphs.get(0);\n for (let i = 0; i < length; i += 1) {\n glyphs[i] = this.glyphs.get(indexes[i]) || notdef;\n }\n return glyphs;\n};\n\n/**\n * Retrieve the value of the kerning pair between the left glyph (or its index)\n * and the right glyph (or its index). If no kerning pair is found, return 0.\n * The kerning value gets added to the advance width when calculating the spacing\n * between glyphs.\n * For GPOS kerning, this method uses the default script and language, which covers\n * most use cases. To have greater control, use font.position.getKerningValue .\n * @param {opentype.Glyph} leftGlyph\n * @param {opentype.Glyph} rightGlyph\n * @return {Number}\n */\nFont.prototype.getKerningValue = function (leftGlyph, rightGlyph) {\n leftGlyph = leftGlyph.index || leftGlyph;\n rightGlyph = rightGlyph.index || rightGlyph;\n const gposKerning = this.position.defaultKerningTables;\n if (gposKerning) {\n return this.position.getKerningValue(\n gposKerning,\n leftGlyph,\n rightGlyph\n );\n }\n // \"kern\" table\n return this.kerningPairs[leftGlyph + ',' + rightGlyph] || 0;\n};\n\n/**\n * @typedef GlyphRenderOptions\n * @type Object\n * @property {string} [script] - script used to determine which features to apply. By default, 'DFLT' or 'latn' is used.\n * See https://www.microsoft.com/typography/otspec/scripttags.htm\n * @property {string} [language='dflt'] - language system used to determine which features to apply.\n * See https://www.microsoft.com/typography/developers/opentype/languagetags.aspx\n * @property {boolean} [kerning=true] - whether to include kerning values\n * @property {object} [features] - OpenType Layout feature tags. Used to enable or disable the features of the given script/language system.\n * See https://www.microsoft.com/typography/otspec/featuretags.htm\n */\nFont.prototype.defaultRenderOptions = {\n kerning: true,\n features: [\n /**\n * these 4 features are required to render Arabic text properly\n * and shouldn't be turned off when rendering arabic text.\n */\n { script: 'arab', tags: ['init', 'medi', 'fina', 'rlig'] },\n { script: 'latn', tags: ['liga', 'rlig'] },\n ],\n};\n\n/**\n * Helper function that invokes the given callback for each glyph in the given text.\n * The callback gets `(glyph, x, y, fontSize, options)`.* @param {string} text\n * @param {string} text - The text to apply.\n * @param {number} [x=0] - Horizontal position of the beginning of the text.\n * @param {number} [y=0] - Vertical position of the *baseline* of the text.\n * @param {number} [fontSize=72] - Font size in pixels. We scale the glyph units by `1 / unitsPerEm * fontSize`.\n * @param {GlyphRenderOptions=} options\n * @param {Function} callback\n */\nFont.prototype.forEachGlyph = function (\n text,\n x,\n y,\n fontSize,\n options,\n callback\n) {\n x = x !== undefined ? x : 0;\n y = y !== undefined ? y : 0;\n fontSize = fontSize !== undefined ? fontSize : 72;\n options = Object.assign({}, this.defaultRenderOptions, options);\n const fontScale = (1 / this.unitsPerEm) * fontSize;\n const glyphs = this.stringToGlyphs(text, options);\n let kerningLookups;\n if (options.kerning) {\n const script = options.script || this.position.getDefaultScriptName();\n kerningLookups = this.position.getKerningTables(\n script,\n options.language\n );\n }\n for (let i = 0; i < glyphs.length; i += 1) {\n const glyph = glyphs[i];\n callback.call(this, glyph, x, y, fontSize, options);\n if (glyph.advanceWidth) {\n x += glyph.advanceWidth * fontScale;\n }\n\n if (options.kerning && i < glyphs.length - 1) {\n // We should apply position adjustment lookups in a more generic way.\n // Here we only use the xAdvance value.\n const kerningValue = kerningLookups\n ? this.position.getKerningValue(\n kerningLookups,\n glyph.index,\n glyphs[i + 1].index\n )\n : this.getKerningValue(glyph, glyphs[i + 1]);\n x += kerningValue * fontScale;\n }\n\n if (options.letterSpacing) {\n x += options.letterSpacing * fontSize;\n } else if (options.tracking) {\n x += (options.tracking / 1000) * fontSize;\n }\n }\n return x;\n};\n\n/**\n * Create a Path object that represents the given text.\n * @param {string} text - The text to create.\n * @param {number} [x=0] - Horizontal position of the beginning of the text.\n * @param {number} [y=0] - Vertical position of the *baseline* of the text.\n * @param {number} [fontSize=72] - Font size in pixels. We scale the glyph units by `1 / unitsPerEm * fontSize`.\n * @param {GlyphRenderOptions=} options\n * @return {opentype.Path}\n */\nFont.prototype.getPath = function (text, x, y, fontSize, options) {\n const fullPath = new Path();\n this.forEachGlyph(\n text,\n x,\n y,\n fontSize,\n options,\n function (glyph, gX, gY, gFontSize) {\n const glyphPath = glyph.getPath(gX, gY, gFontSize, options, this);\n fullPath.extend(glyphPath);\n }\n );\n return fullPath;\n};\n\n/**\n * Create an array of Path objects that represent the glyphs of a given text.\n * @param {string} text - The text to create.\n * @param {number} [x=0] - Horizontal position of the beginning of the text.\n * @param {number} [y=0] - Vertical position of the *baseline* of the text.\n * @param {number} [fontSize=72] - Font size in pixels. We scale the glyph units by `1 / unitsPerEm * fontSize`.\n * @param {GlyphRenderOptions=} options\n * @return {opentype.Path[]}\n */\nFont.prototype.getPaths = function (text, x, y, fontSize, options) {\n const glyphPaths = [];\n this.forEachGlyph(\n text,\n x,\n y,\n fontSize,\n options,\n function (glyph, gX, gY, gFontSize) {\n const glyphPath = glyph.getPath(gX, gY, gFontSize, options, this);\n glyphPaths.push(glyphPath);\n }\n );\n\n return glyphPaths;\n};\n\n/**\n * Returns the advance width of a text.\n *\n * This is something different than Path.getBoundingBox() as for example a\n * suffixed whitespace increases the advanceWidth but not the bounding box\n * or an overhanging letter like a calligraphic 'f' might have a quite larger\n * bounding box than its advance width.\n *\n * This corresponds to canvas2dContext.measureText(text).width\n *\n * @param {string} text - The text to create.\n * @param {number} [fontSize=72] - Font size in pixels. We scale the glyph units by `1 / unitsPerEm * fontSize`.\n * @param {GlyphRenderOptions=} options\n * @return advance width\n */\nFont.prototype.getAdvanceWidth = function (text, fontSize, options) {\n return this.forEachGlyph(text, 0, 0, fontSize, options, function () {});\n};\n\n/**\n * @private\n */\nFont.prototype.fsSelectionValues = {\n ITALIC: 0x001, //1\n UNDERSCORE: 0x002, //2\n NEGATIVE: 0x004, //4\n OUTLINED: 0x008, //8\n STRIKEOUT: 0x010, //16\n BOLD: 0x020, //32\n REGULAR: 0x040, //64\n USER_TYPO_METRICS: 0x080, //128\n WWS: 0x100, //256\n OBLIQUE: 0x200, //512\n};\n\n/**\n * @private\n */\nFont.prototype.usWidthClasses = {\n ULTRA_CONDENSED: 1,\n EXTRA_CONDENSED: 2,\n CONDENSED: 3,\n SEMI_CONDENSED: 4,\n MEDIUM: 5,\n SEMI_EXPANDED: 6,\n EXPANDED: 7,\n EXTRA_EXPANDED: 8,\n ULTRA_EXPANDED: 9,\n};\n\n/**\n * @private\n */\nFont.prototype.usWeightClasses = {\n THIN: 100,\n EXTRA_LIGHT: 200,\n LIGHT: 300,\n NORMAL: 400,\n MEDIUM: 500,\n SEMI_BOLD: 600,\n BOLD: 700,\n EXTRA_BOLD: 800,\n BLACK: 900,\n};\n\nexport default Font;\n","// The `cmap` table stores the mappings from characters to glyphs.\n// https://www.microsoft.com/typography/OTSPEC/cmap.htm\n\nimport check from '../check';\nimport parse from '../parse';\n\nfunction parseCmapTableFormat12(cmap, p) {\n //Skip reserved.\n p.parseUShort();\n\n // Length in bytes of the sub-tables.\n cmap.length = p.parseULong();\n cmap.language = p.parseULong();\n\n let groupCount;\n cmap.groupCount = groupCount = p.parseULong();\n cmap.glyphIndexMap = {};\n\n for (let i = 0; i < groupCount; i += 1) {\n const startCharCode = p.parseULong();\n const endCharCode = p.parseULong();\n let startGlyphId = p.parseULong();\n\n for (let c = startCharCode; c <= endCharCode; c += 1) {\n cmap.glyphIndexMap[c] = startGlyphId;\n startGlyphId++;\n }\n }\n}\n\nfunction parseCmapTableFormat4(cmap, p, data, start, offset) {\n // Length in bytes of the sub-tables.\n cmap.length = p.parseUShort();\n cmap.language = p.parseUShort();\n\n // segCount is stored x 2.\n let segCount;\n cmap.segCount = segCount = p.parseUShort() >> 1;\n\n // Skip searchRange, entrySelector, rangeShift.\n p.skip('uShort', 3);\n\n // The \"unrolled\" mapping from character codes to glyph indices.\n cmap.glyphIndexMap = {};\n const endCountParser = new parse.Parser(data, start + offset + 14);\n const startCountParser = new parse.Parser(\n data,\n start + offset + 16 + segCount * 2\n );\n const idDeltaParser = new parse.Parser(\n data,\n start + offset + 16 + segCount * 4\n );\n const idRangeOffsetParser = new parse.Parser(\n data,\n start + offset + 16 + segCount * 6\n );\n let glyphIndexOffset = start + offset + 16 + segCount * 8;\n for (let i = 0; i < segCount - 1; i += 1) {\n let glyphIndex;\n const endCount = endCountParser.parseUShort();\n const startCount = startCountParser.parseUShort();\n const idDelta = idDeltaParser.parseShort();\n const idRangeOffset = idRangeOffsetParser.parseUShort();\n for (let c = startCount; c <= endCount; c += 1) {\n if (idRangeOffset !== 0) {\n // The idRangeOffset is relative to the current position in the idRangeOffset array.\n // Take the current offset in the idRangeOffset array.\n glyphIndexOffset =\n idRangeOffsetParser.offset +\n idRangeOffsetParser.relativeOffset -\n 2;\n\n // Add the value of the idRangeOffset, which will move us into the glyphIndex array.\n glyphIndexOffset += idRangeOffset;\n\n // Then add the character index of the current segment, multiplied by 2 for USHORTs.\n glyphIndexOffset += (c - startCount) * 2;\n glyphIndex = parse.getUShort(data, glyphIndexOffset);\n if (glyphIndex !== 0) {\n glyphIndex = (glyphIndex + idDelta) & 0xffff;\n }\n } else {\n glyphIndex = (c + idDelta) & 0xffff;\n }\n\n cmap.glyphIndexMap[c] = glyphIndex;\n }\n }\n}\n\n// Parse the `cmap` table. This table stores the mappings from characters to glyphs.\n// There are many available formats, but we only support the Windows format 4 and 12.\n// This function returns a `CmapEncoding` object or null if no supported format could be found.\nfunction parseCmapTable(data, start) {\n const cmap = {};\n cmap.version = parse.getUShort(data, start);\n check.argument(cmap.version === 0, 'cmap table version should be 0.');\n\n // The cmap table can contain many sub-tables, each with their own format.\n // We're only interested in a \"platform 0\" (Unicode format) and \"platform 3\" (Windows format) table.\n cmap.numTables = parse.getUShort(data, start + 2);\n let offset = -1;\n for (let i = cmap.numTables - 1; i >= 0; i -= 1) {\n const platformId = parse.getUShort(data, start + 4 + i * 8);\n const encodingId = parse.getUShort(data, start + 4 + i * 8 + 2);\n if (\n (platformId === 3 &&\n (encodingId === 0 || encodingId === 1 || encodingId === 10)) ||\n (platformId === 0 &&\n (encodingId === 0 ||\n encodingId === 1 ||\n encodingId === 2 ||\n encodingId === 3 ||\n encodingId === 4))\n ) {\n offset = parse.getULong(data, start + 4 + i * 8 + 4);\n break;\n }\n }\n\n if (offset === -1) {\n // There is no cmap table in the font that we support.\n throw new Error('No valid cmap sub-tables found.');\n }\n\n const p = new parse.Parser(data, start + offset);\n cmap.format = p.parseUShort();\n\n if (cmap.format === 12) {\n parseCmapTableFormat12(cmap, p);\n } else if (cmap.format === 4) {\n parseCmapTableFormat4(cmap, p, data, start, offset);\n } else {\n throw new Error(\n 'Only format 4 and 12 cmap tables are supported (found format ' +\n cmap.format +\n ').'\n );\n }\n\n return cmap;\n}\n\nexport default { parse: parseCmapTable };\n","// The `CFF` table contains the glyph outlines in PostScript format.\n// https://www.microsoft.com/typography/OTSPEC/cff.htm\n// http://download.microsoft.com/download/8/0/1/801a191c-029d-4af3-9642-555f6fe514ee/cff.pdf\n// http://download.microsoft.com/download/8/0/1/801a191c-029d-4af3-9642-555f6fe514ee/type2.pdf\n\nimport {\n CffEncoding,\n cffStandardEncoding,\n cffExpertEncoding,\n cffStandardStrings,\n} from '../encoding';\nimport glyphset from '../glyphset';\nimport parse from '../parse';\nimport Path from '../path';\n\n// Subroutines are encoded using the negative half of the number space.\n// See type 2 chapter 4.7 \"Subroutine operators\".\nfunction calcCFFSubroutineBias(subrs) {\n let bias;\n if (subrs.length < 1240) {\n bias = 107;\n } else if (subrs.length < 33900) {\n bias = 1131;\n } else {\n bias = 32768;\n }\n\n return bias;\n}\n\n// Parse a `CFF` INDEX array.\n// An index array consists of a list of offsets, then a list of objects at those offsets.\nfunction parseCFFIndex(data, start, conversionFn) {\n const offsets = [];\n const objects = [];\n const count = parse.getCard16(data, start);\n let objectOffset;\n let endOffset;\n if (count !== 0) {\n const offsetSize = parse.getByte(data, start + 2);\n objectOffset = start + (count + 1) * offsetSize + 2;\n let pos = start + 3;\n for (let i = 0; i < count + 1; i += 1) {\n offsets.push(parse.getOffset(data, pos, offsetSize));\n pos += offsetSize;\n }\n\n // The total size of the index array is 4 header bytes + the value of the last offset.\n endOffset = objectOffset + offsets[count];\n } else {\n endOffset = start + 2;\n }\n\n for (let i = 0; i < offsets.length - 1; i += 1) {\n let value = parse.getBytes(\n data,\n objectOffset + offsets[i],\n objectOffset + offsets[i + 1]\n );\n if (conversionFn) {\n value = conversionFn(value);\n }\n\n objects.push(value);\n }\n\n return { objects: objects, startOffset: start, endOffset: endOffset };\n}\n\nfunction parseCFFIndexLowMemory(data, start) {\n const offsets = [];\n const count = parse.getCard16(data, start);\n let objectOffset;\n let endOffset;\n if (count !== 0) {\n const offsetSize = parse.getByte(data, start + 2);\n objectOffset = start + (count + 1) * offsetSize + 2;\n let pos = start + 3;\n for (let i = 0; i < count + 1; i += 1) {\n offsets.push(parse.getOffset(data, pos, offsetSize));\n pos += offsetSize;\n }\n\n // The total size of the index array is 4 header bytes + the value of the last offset.\n endOffset = objectOffset + offsets[count];\n } else {\n endOffset = start + 2;\n }\n\n return { offsets: offsets, startOffset: start, endOffset: endOffset };\n}\nfunction getCffIndexObject(i, offsets, data, start, conversionFn) {\n const count = parse.getCard16(data, start);\n let objectOffset = 0;\n if (count !== 0) {\n const offsetSize = parse.getByte(data, start + 2);\n objectOffset = start + (count + 1) * offsetSize + 2;\n }\n\n let value = parse.getBytes(\n data,\n objectOffset + offsets[i],\n objectOffset + offsets[i + 1]\n );\n if (conversionFn) {\n value = conversionFn(value);\n }\n return value;\n}\n\n// Parse a `CFF` DICT real value.\nfunction parseFloatOperand(parser) {\n let s = '';\n const eof = 15;\n const lookup = [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9',\n '.',\n 'E',\n 'E-',\n null,\n '-',\n ];\n while (true) {\n const b = parser.parseByte();\n const n1 = b >> 4;\n const n2 = b & 15;\n\n if (n1 === eof) {\n break;\n }\n\n s += lookup[n1];\n\n if (n2 === eof) {\n break;\n }\n\n s += lookup[n2];\n }\n\n return parseFloat(s);\n}\n\n// Parse a `CFF` DICT operand.\nfunction parseOperand(parser, b0) {\n let b1;\n let b2;\n let b3;\n let b4;\n if (b0 === 28) {\n b1 = parser.parseByte();\n b2 = parser.parseByte();\n return (b1 << 8) | b2;\n }\n\n if (b0 === 29) {\n b1 = parser.parseByte();\n b2 = parser.parseByte();\n b3 = parser.parseByte();\n b4 = parser.parseByte();\n return (b1 << 24) | (b2 << 16) | (b3 << 8) | b4;\n }\n\n if (b0 === 30) {\n return parseFloatOperand(parser);\n }\n\n if (b0 >= 32 && b0 <= 246) {\n return b0 - 139;\n }\n\n if (b0 >= 247 && b0 <= 250) {\n b1 = parser.parseByte();\n return (b0 - 247) * 256 + b1 + 108;\n }\n\n if (b0 >= 251 && b0 <= 254) {\n b1 = parser.parseByte();\n return -(b0 - 251) * 256 - b1 - 108;\n }\n\n throw new Error('Invalid b0 ' + b0);\n}\n\n// Convert the entries returned by `parseDict` to a proper dictionary.\n// If a value is a list of one, it is unpacked.\nfunction entriesToObject(entries) {\n const o = {};\n for (let i = 0; i < entries.length; i += 1) {\n const key = entries[i][0];\n const values = entries[i][1];\n let value;\n if (values.length === 1) {\n value = values[0];\n } else {\n value = values;\n }\n\n if (o.hasOwnProperty(key) && !isNaN(o[key])) {\n throw new Error('Object ' + o + ' already has key ' + key);\n }\n\n o[key] = value;\n }\n\n return o;\n}\n\n// Parse a `CFF` DICT object.\n// A dictionary contains key-value pairs in a compact tokenized format.\nfunction parseCFFDict(data, start, size) {\n start = start !== undefined ? start : 0;\n const parser = new parse.Parser(data, start);\n const entries = [];\n let operands = [];\n size = size !== undefined ? size : data.length;\n\n while (parser.relativeOffset < size) {\n let op = parser.parseByte();\n\n // The first byte for each dict item distinguishes between operator (key) and operand (value).\n // Values <= 21 are operators.\n if (op <= 21) {\n // Two-byte operators have an initial escape byte of 12.\n if (op === 12) {\n op = 1200 + parser.parseByte();\n }\n\n entries.push([op, operands]);\n operands = [];\n } else {\n // Since the operands (values) come before the operators (keys), we store all operands in a list\n // until we encounter an operator.\n operands.push(parseOperand(parser, op));\n }\n }\n\n return entriesToObject(entries);\n}\n\n// Given a String Index (SID), return the value of the string.\n// Strings below index 392 are standard CFF strings and are not encoded in the font.\nfunction getCFFString(strings, index) {\n if (index <= 390) {\n index = cffStandardStrings[index];\n } else {\n index = strings[index - 391];\n }\n\n return index;\n}\n\n// Interpret a dictionary and return a new dictionary with readable keys and values for missing entries.\n// This function takes `meta` which is a list of objects containing `operand`, `name` and `default`.\nfunction interpretDict(dict, meta, strings) {\n const newDict = {};\n let value;\n\n // Because we also want to include missing values, we start out from the meta list\n // and lookup values in the dict.\n for (let i = 0; i < meta.length; i += 1) {\n const m = meta[i];\n\n if (Array.isArray(m.type)) {\n const values = [];\n values.length = m.type.length;\n for (let j = 0; j < m.type.length; j++) {\n value = dict[m.op] !== undefined ? dict[m.op][j] : undefined;\n if (value === undefined) {\n value =\n m.value !== undefined && m.value[j] !== undefined\n ? m.value[j]\n : null;\n }\n if (m.type[j] === 'SID') {\n value = getCFFString(strings, value);\n }\n values[j] = value;\n }\n newDict[m.name] = values;\n } else {\n value = dict[m.op];\n if (value === undefined) {\n value = m.value !== undefined ? m.value : null;\n }\n\n if (m.type === 'SID') {\n value = getCFFString(strings, value);\n }\n newDict[m.name] = value;\n }\n }\n\n return newDict;\n}\n\n// Parse the CFF header.\nfunction parseCFFHeader(data, start) {\n const header = {};\n header.formatMajor = parse.getCard8(data, start);\n header.formatMinor = parse.getCard8(data, start + 1);\n header.size = parse.getCard8(data, start + 2);\n header.offsetSize = parse.getCard8(data, start + 3);\n header.startOffset = start;\n header.endOffset = start + 4;\n return header;\n}\n\nconst TOP_DICT_META = [\n { name: 'version', op: 0, type: 'SID' },\n { name: 'notice', op: 1, type: 'SID' },\n { name: 'copyright', op: 1200, type: 'SID' },\n { name: 'fullName', op: 2, type: 'SID' },\n { name: 'familyName', op: 3, type: 'SID' },\n { name: 'weight', op: 4, type: 'SID' },\n { name: 'isFixedPitch', op: 1201, type: 'number', value: 0 },\n { name: 'italicAngle', op: 1202, type: 'number', value: 0 },\n { name: 'underlinePosition', op: 1203, type: 'number', value: -100 },\n { name: 'underlineThickness', op: 1204, type: 'number', value: 50 },\n { name: 'paintType', op: 1205, type: 'number', value: 0 },\n { name: 'charstringType', op: 1206, type: 'number', value: 2 },\n {\n name: 'fontMatrix',\n op: 1207,\n type: ['real', 'real', 'real', 'real', 'real', 'real'],\n value: [0.001, 0, 0, 0.001, 0, 0],\n },\n { name: 'uniqueId', op: 13, type: 'number' },\n {\n name: 'fontBBox',\n op: 5,\n type: ['number', 'number', 'number', 'number'],\n value: [0, 0, 0, 0],\n },\n { name: 'strokeWidth', op: 1208, type: 'number', value: 0 },\n { name: 'xuid', op: 14, type: [], value: null },\n { name: 'charset', op: 15, type: 'offset', value: 0 },\n { name: 'encoding', op: 16, type: 'offset', value: 0 },\n { name: 'charStrings', op: 17, type: 'offset', value: 0 },\n { name: 'private', op: 18, type: ['number', 'offset'], value: [0, 0] },\n { name: 'ros', op: 1230, type: ['SID', 'SID', 'number'] },\n { name: 'cidFontVersion', op: 1231, type: 'number', value: 0 },\n { name: 'cidFontRevision', op: 1232, type: 'number', value: 0 },\n { name: 'cidFontType', op: 1233, type: 'number', value: 0 },\n { name: 'cidCount', op: 1234, type: 'number', value: 8720 },\n { name: 'uidBase', op: 1235, type: 'number' },\n { name: 'fdArray', op: 1236, type: 'offset' },\n { name: 'fdSelect', op: 1237, type: 'offset' },\n { name: 'fontName', op: 1238, type: 'SID' },\n];\n\nconst PRIVATE_DICT_META = [\n { name: 'subrs', op: 19, type: 'offset', value: 0 },\n { name: 'defaultWidthX', op: 20, type: 'number', value: 0 },\n { name: 'nominalWidthX', op: 21, type: 'number', value: 0 },\n];\n\n// Parse the CFF top dictionary. A CFF table can contain multiple fonts, each with their own top dictionary.\n// The top dictionary contains the essential metadata for the font, together with the private dictionary.\nfunction parseCFFTopDict(data, strings) {\n const dict = parseCFFDict(data, 0, data.byteLength);\n return interpretDict(dict, TOP_DICT_META, strings);\n}\n\n// Parse the CFF private dictionary. We don't fully parse out all the values, only the ones we need.\nfunction parseCFFPrivateDict(data, start, size, strings) {\n const dict = parseCFFDict(data, start, size);\n return interpretDict(dict, PRIVATE_DICT_META, strings);\n}\n\n// Returns a list of \"Top DICT\"s found using an INDEX list.\n// Used to read both the usual high-level Top DICTs and also the FDArray\n// discovered inside CID-keyed fonts. When a Top DICT has a reference to\n// a Private DICT that is read and saved into the Top DICT.\n//\n// In addition to the expected/optional values as outlined in TOP_DICT_META\n// the following values might be saved into the Top DICT.\n//\n// _subrs [] array of local CFF subroutines from Private DICT\n// _subrsBias bias value computed from number of subroutines\n// (see calcCFFSubroutineBias() and parseCFFCharstring())\n// _defaultWidthX default widths for CFF characters\n// _nominalWidthX bias added to width embedded within glyph description\n//\n// _privateDict saved copy of parsed Private DICT from Top DICT\nfunction gatherCFFTopDicts(data, start, cffIndex, strings) {\n const topDictArray = [];\n for (let iTopDict = 0; iTopDict < cffIndex.length; iTopDict += 1) {\n const topDictData = new DataView(\n new Uint8Array(cffIndex[iTopDict]).buffer\n );\n const topDict = parseCFFTopDict(topDictData, strings);\n topDict._subrs = [];\n topDict._subrsBias = 0;\n topDict._defaultWidthX = 0;\n topDict._nominalWidthX = 0;\n const privateSize = topDict.private[0];\n const privateOffset = topDict.private[1];\n if (privateSize !== 0 && privateOffset !== 0) {\n const privateDict = parseCFFPrivateDict(\n data,\n privateOffset + start,\n privateSize,\n strings\n );\n topDict._defaultWidthX = privateDict.defaultWidthX;\n topDict._nominalWidthX = privateDict.nominalWidthX;\n if (privateDict.subrs !== 0) {\n const subrOffset = privateOffset + privateDict.subrs;\n const subrIndex = parseCFFIndex(data, subrOffset + start);\n topDict._subrs = subrIndex.objects;\n topDict._subrsBias = calcCFFSubroutineBias(topDict._subrs);\n }\n topDict._privateDict = privateDict;\n }\n topDictArray.push(topDict);\n }\n return topDictArray;\n}\n\n// Parse the CFF charset table, which contains internal names for all the glyphs.\n// This function will return a list of glyph names.\n// See Adobe TN #5176 chapter 13, \"Charsets\".\nfunction parseCFFCharset(data, start, nGlyphs, strings) {\n let sid;\n let count;\n const parser = new parse.Parser(data, start);\n\n // The .notdef glyph is not included, so subtract 1.\n nGlyphs -= 1;\n const charset = ['.notdef'];\n\n const format = parser.parseCard8();\n if (format === 0) {\n for (let i = 0; i < nGlyphs; i += 1) {\n sid = parser.parseSID();\n charset.push(getCFFString(strings, sid));\n }\n } else if (format === 1) {\n while (charset.length <= nGlyphs) {\n sid = parser.parseSID();\n count = parser.parseCard8();\n for (let i = 0; i <= count; i += 1) {\n charset.push(getCFFString(strings, sid));\n sid += 1;\n }\n }\n } else if (format === 2) {\n while (charset.length <= nGlyphs) {\n sid = parser.parseSID();\n count = parser.parseCard16();\n for (let i = 0; i <= count; i += 1) {\n charset.push(getCFFString(strings, sid));\n sid += 1;\n }\n }\n } else {\n throw new Error('Unknown charset format ' + format);\n }\n\n return charset;\n}\n\n// Parse the CFF encoding data. Only one encoding can be specified per font.\n// See Adobe TN #5176 chapter 12, \"Encodings\".\nfunction parseCFFEncoding(data, start, charset) {\n let code;\n const enc = {};\n const parser = new parse.Parser(data, start);\n const format = parser.parseCard8();\n if (format === 0) {\n const nCodes = parser.parseCard8();\n for (let i = 0; i < nCodes; i += 1) {\n code = parser.parseCard8();\n enc[code] = i;\n }\n } else if (format === 1) {\n const nRanges = parser.parseCard8();\n code = 1;\n for (let i = 0; i < nRanges; i += 1) {\n const first = parser.parseCard8();\n const nLeft = parser.parseCard8();\n for (let j = first; j <= first + nLeft; j += 1) {\n enc[j] = code;\n code += 1;\n }\n }\n } else {\n throw new Error('Unknown encoding format ' + format);\n }\n\n return new CffEncoding(enc, charset);\n}\n\n// Take in charstring code and return a Glyph object.\n// The encoding is described in the Type 2 Charstring Format\n// https://www.microsoft.com/typography/OTSPEC/charstr2.htm\nfunction parseCFFCharstring(font, glyph, code) {\n let c1x;\n let c1y;\n let c2x;\n let c2y;\n const p = new Path();\n const stack = [];\n let nStems = 0;\n let haveWidth = false;\n let open = false;\n let x = 0;\n let y = 0;\n let subrs;\n let subrsBias;\n let defaultWidthX;\n let nominalWidthX;\n if (font.isCIDFont) {\n const fdIndex = font.tables.cff.topDict._fdSelect[glyph.index];\n const fdDict = font.tables.cff.topDict._fdArray[fdIndex];\n subrs = fdDict._subrs;\n subrsBias = fdDict._subrsBias;\n defaultWidthX = fdDict._defaultWidthX;\n nominalWidthX = fdDict._nominalWidthX;\n } else {\n subrs = font.tables.cff.topDict._subrs;\n subrsBias = font.tables.cff.topDict._subrsBias;\n defaultWidthX = font.tables.cff.topDict._defaultWidthX;\n nominalWidthX = font.tables.cff.topDict._nominalWidthX;\n }\n let width = defaultWidthX;\n\n function newContour(x, y) {\n if (open) {\n p.closePath();\n }\n\n p.moveTo(x, y);\n open = true;\n }\n\n function parseStems() {\n let hasWidthArg;\n\n // The number of stem operators on the stack is always even.\n // If the value is uneven, that means a width is specified.\n hasWidthArg = stack.length % 2 !== 0;\n if (hasWidthArg && !haveWidth) {\n width = stack.shift() + nominalWidthX;\n }\n\n nStems += stack.length >> 1;\n stack.length = 0;\n haveWidth = true;\n }\n\n function parse(code) {\n let b1;\n let b2;\n let b3;\n let b4;\n let codeIndex;\n let subrCode;\n let jpx;\n let jpy;\n let c3x;\n let c3y;\n let c4x;\n let c4y;\n\n let i = 0;\n while (i < code.length) {\n let v = code[i];\n i += 1;\n switch (v) {\n case 1: // hstem\n parseStems();\n break;\n case 3: // vstem\n parseStems();\n break;\n case 4: // vmoveto\n if (stack.length > 1 && !haveWidth) {\n width = stack.shift() + nominalWidthX;\n haveWidth = true;\n }\n\n y += stack.pop();\n newContour(x, y);\n break;\n case 5: // rlineto\n while (stack.length > 0) {\n x += stack.shift();\n y += stack.shift();\n p.lineTo(x, y);\n }\n\n break;\n case 6: // hlineto\n while (stack.length > 0) {\n x += stack.shift();\n p.lineTo(x, y);\n if (stack.length === 0) {\n break;\n }\n\n y += stack.shift();\n p.lineTo(x, y);\n }\n\n break;\n case 7: // vlineto\n while (stack.length > 0) {\n y += stack.shift();\n p.lineTo(x, y);\n if (stack.length === 0) {\n break;\n }\n\n x += stack.shift();\n p.lineTo(x, y);\n }\n\n break;\n case 8: // rrcurveto\n while (stack.length > 0) {\n c1x = x + stack.shift();\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y + stack.shift();\n p.curveTo(c1x, c1y, c2x, c2y, x, y);\n }\n\n break;\n case 10: // callsubr\n codeIndex = stack.pop() + subrsBias;\n subrCode = subrs[codeIndex];\n if (subrCode) {\n parse(subrCode);\n }\n\n break;\n case 11: // return\n return;\n case 12: // flex operators\n v = code[i];\n i += 1;\n switch (v) {\n case 35: // flex\n // |- dx1 dy1 dx2 dy2 dx3 dy3 dx4 dy4 dx5 dy5 dx6 dy6 fd flex (12 35) |-\n c1x = x + stack.shift(); // dx1\n c1y = y + stack.shift(); // dy1\n c2x = c1x + stack.shift(); // dx2\n c2y = c1y + stack.shift(); // dy2\n jpx = c2x + stack.shift(); // dx3\n jpy = c2y + stack.shift(); // dy3\n c3x = jpx + stack.shift(); // dx4\n c3y = jpy + stack.shift(); // dy4\n c4x = c3x + stack.shift(); // dx5\n c4y = c3y + stack.shift(); // dy5\n x = c4x + stack.shift(); // dx6\n y = c4y + stack.shift(); // dy6\n stack.shift(); // flex depth\n p.curveTo(c1x, c1y, c2x, c2y, jpx, jpy);\n p.curveTo(c3x, c3y, c4x, c4y, x, y);\n break;\n case 34: // hflex\n // |- dx1 dx2 dy2 dx3 dx4 dx5 dx6 hflex (12 34) |-\n c1x = x + stack.shift(); // dx1\n c1y = y; // dy1\n c2x = c1x + stack.shift(); // dx2\n c2y = c1y + stack.shift(); // dy2\n jpx = c2x + stack.shift(); // dx3\n jpy = c2y; // dy3\n c3x = jpx + stack.shift(); // dx4\n c3y = c2y; // dy4\n c4x = c3x + stack.shift(); // dx5\n c4y = y; // dy5\n x = c4x + stack.shift(); // dx6\n p.curveTo(c1x, c1y, c2x, c2y, jpx, jpy);\n p.curveTo(c3x, c3y, c4x, c4y, x, y);\n break;\n case 36: // hflex1\n // |- dx1 dy1 dx2 dy2 dx3 dx4 dx5 dy5 dx6 hflex1 (12 36) |-\n c1x = x + stack.shift(); // dx1\n c1y = y + stack.shift(); // dy1\n c2x = c1x + stack.shift(); // dx2\n c2y = c1y + stack.shift(); // dy2\n jpx = c2x + stack.shift(); // dx3\n jpy = c2y; // dy3\n c3x = jpx + stack.shift(); // dx4\n c3y = c2y; // dy4\n c4x = c3x + stack.shift(); // dx5\n c4y = c3y + stack.shift(); // dy5\n x = c4x + stack.shift(); // dx6\n p.curveTo(c1x, c1y, c2x, c2y, jpx, jpy);\n p.curveTo(c3x, c3y, c4x, c4y, x, y);\n break;\n case 37: // flex1\n // |- dx1 dy1 dx2 dy2 dx3 dy3 dx4 dy4 dx5 dy5 d6 flex1 (12 37) |-\n c1x = x + stack.shift(); // dx1\n c1y = y + stack.shift(); // dy1\n c2x = c1x + stack.shift(); // dx2\n c2y = c1y + stack.shift(); // dy2\n jpx = c2x + stack.shift(); // dx3\n jpy = c2y + stack.shift(); // dy3\n c3x = jpx + stack.shift(); // dx4\n c3y = jpy + stack.shift(); // dy4\n c4x = c3x + stack.shift(); // dx5\n c4y = c3y + stack.shift(); // dy5\n if (Math.abs(c4x - x) > Math.abs(c4y - y)) {\n x = c4x + stack.shift();\n } else {\n y = c4y + stack.shift();\n }\n\n p.curveTo(c1x, c1y, c2x, c2y, jpx, jpy);\n p.curveTo(c3x, c3y, c4x, c4y, x, y);\n break;\n default:\n console.log(\n 'Glyph ' +\n glyph.index +\n ': unknown operator ' +\n 1200 +\n v\n );\n stack.length = 0;\n }\n break;\n case 14: // endchar\n if (stack.length > 0 && !haveWidth) {\n width = stack.shift() + nominalWidthX;\n haveWidth = true;\n }\n\n if (open) {\n p.closePath();\n open = false;\n }\n\n break;\n case 18: // hstemhm\n parseStems();\n break;\n case 19: // hintmask\n case 20: // cntrmask\n parseStems();\n i += (nStems + 7) >> 3;\n break;\n case 21: // rmoveto\n if (stack.length > 2 && !haveWidth) {\n width = stack.shift() + nominalWidthX;\n haveWidth = true;\n }\n\n y += stack.pop();\n x += stack.pop();\n newContour(x, y);\n break;\n case 22: // hmoveto\n if (stack.length > 1 && !haveWidth) {\n width = stack.shift() + nominalWidthX;\n haveWidth = true;\n }\n\n x += stack.pop();\n newContour(x, y);\n break;\n case 23: // vstemhm\n parseStems();\n break;\n case 24: // rcurveline\n while (stack.length > 2) {\n c1x = x + stack.shift();\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y + stack.shift();\n p.curveTo(c1x, c1y, c2x, c2y, x, y);\n }\n\n x += stack.shift();\n y += stack.shift();\n p.lineTo(x, y);\n break;\n case 25: // rlinecurve\n while (stack.length > 6) {\n x += stack.shift();\n y += stack.shift();\n p.lineTo(x, y);\n }\n\n c1x = x + stack.shift();\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y + stack.shift();\n p.curveTo(c1x, c1y, c2x, c2y, x, y);\n break;\n case 26: // vvcurveto\n if (stack.length % 2) {\n x += stack.shift();\n }\n\n while (stack.length > 0) {\n c1x = x;\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x;\n y = c2y + stack.shift();\n p.curveTo(c1x, c1y, c2x, c2y, x, y);\n }\n\n break;\n case 27: // hhcurveto\n if (stack.length % 2) {\n y += stack.shift();\n }\n\n while (stack.length > 0) {\n c1x = x + stack.shift();\n c1y = y;\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y;\n p.curveTo(c1x, c1y, c2x, c2y, x, y);\n }\n\n break;\n case 28: // shortint\n b1 = code[i];\n b2 = code[i + 1];\n stack.push(((b1 << 24) | (b2 << 16)) >> 16);\n i += 2;\n break;\n case 29: // callgsubr\n codeIndex = stack.pop() + font.gsubrsBias;\n subrCode = font.gsubrs[codeIndex];\n if (subrCode) {\n parse(subrCode);\n }\n\n break;\n case 30: // vhcurveto\n while (stack.length > 0) {\n c1x = x;\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y + (stack.length === 1 ? stack.shift() : 0);\n p.curveTo(c1x, c1y, c2x, c2y, x, y);\n if (stack.length === 0) {\n break;\n }\n\n c1x = x + stack.shift();\n c1y = y;\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n y = c2y + stack.shift();\n x = c2x + (stack.length === 1 ? stack.shift() : 0);\n p.curveTo(c1x, c1y, c2x, c2y, x, y);\n }\n\n break;\n case 31: // hvcurveto\n while (stack.length > 0) {\n c1x = x + stack.shift();\n c1y = y;\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n y = c2y + stack.shift();\n x = c2x + (stack.length === 1 ? stack.shift() : 0);\n p.curveTo(c1x, c1y, c2x, c2y, x, y);\n if (stack.length === 0) {\n break;\n }\n\n c1x = x;\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y + (stack.length === 1 ? stack.shift() : 0);\n p.curveTo(c1x, c1y, c2x, c2y, x, y);\n }\n\n break;\n default:\n if (v < 32) {\n console.log(\n 'Glyph ' + glyph.index + ': unknown operator ' + v\n );\n } else if (v < 247) {\n stack.push(v - 139);\n } else if (v < 251) {\n b1 = code[i];\n i += 1;\n stack.push((v - 247) * 256 + b1 + 108);\n } else if (v < 255) {\n b1 = code[i];\n i += 1;\n stack.push(-(v - 251) * 256 - b1 - 108);\n } else {\n b1 = code[i];\n b2 = code[i + 1];\n b3 = code[i + 2];\n b4 = code[i + 3];\n i += 4;\n stack.push(\n ((b1 << 24) | (b2 << 16) | (b3 << 8) | b4) / 65536\n );\n }\n }\n }\n }\n\n parse(code);\n\n glyph.advanceWidth = width;\n return p;\n}\n\nfunction parseCFFFDSelect(data, start, nGlyphs, fdArrayCount) {\n const fdSelect = [];\n let fdIndex;\n const parser = new parse.Parser(data, start);\n const format = parser.parseCard8();\n if (format === 0) {\n // Simple list of nGlyphs elements\n for (let iGid = 0; iGid < nGlyphs; iGid++) {\n fdIndex = parser.parseCard8();\n if (fdIndex >= fdArrayCount) {\n throw new Error(\n 'CFF table CID Font FDSelect has bad FD index value ' +\n fdIndex +\n ' (FD count ' +\n fdArrayCount +\n ')'\n );\n }\n fdSelect.push(fdIndex);\n }\n } else if (format === 3) {\n // Ranges\n const nRanges = parser.parseCard16();\n let first = parser.parseCard16();\n if (first !== 0) {\n throw new Error(\n 'CFF Table CID Font FDSelect format 3 range has bad initial GID ' +\n first\n );\n }\n let next;\n for (let iRange = 0; iRange < nRanges; iRange++) {\n fdIndex = parser.parseCard8();\n next = parser.parseCard16();\n if (fdIndex >= fdArrayCount) {\n throw new Error(\n 'CFF table CID Font FDSelect has bad FD index value ' +\n fdIndex +\n ' (FD count ' +\n fdArrayCount +\n ')'\n );\n }\n if (next > nGlyphs) {\n throw new Error(\n 'CFF Table CID Font FDSelect format 3 range has bad GID ' +\n next\n );\n }\n for (; first < next; first++) {\n fdSelect.push(fdIndex);\n }\n first = next;\n }\n if (next !== nGlyphs) {\n throw new Error(\n 'CFF Table CID Font FDSelect format 3 range has bad final GID ' +\n next\n );\n }\n } else {\n throw new Error(\n 'CFF Table CID Font FDSelect table has unsupported format ' + format\n );\n }\n return fdSelect;\n}\n\n// Parse the `CFF` table, which contains the glyph outlines in PostScript format.\nfunction parseCFFTable(data, start, font, opt) {\n font.tables.cff = {};\n const header = parseCFFHeader(data, start);\n const nameIndex = parseCFFIndex(\n data,\n header.endOffset,\n parse.bytesToString\n );\n const topDictIndex = parseCFFIndex(data, nameIndex.endOffset);\n const stringIndex = parseCFFIndex(\n data,\n topDictIndex.endOffset,\n parse.bytesToString\n );\n const globalSubrIndex = parseCFFIndex(data, stringIndex.endOffset);\n font.gsubrs = globalSubrIndex.objects;\n font.gsubrsBias = calcCFFSubroutineBias(font.gsubrs);\n\n const topDictArray = gatherCFFTopDicts(\n data,\n start,\n topDictIndex.objects,\n stringIndex.objects\n );\n if (topDictArray.length !== 1) {\n throw new Error(\n \"CFF table has too many fonts in 'FontSet' - count of fonts NameIndex.length = \" +\n topDictArray.length\n );\n }\n\n const topDict = topDictArray[0];\n font.tables.cff.topDict = topDict;\n\n if (topDict._privateDict) {\n font.defaultWidthX = topDict._privateDict.defaultWidthX;\n font.nominalWidthX = topDict._privateDict.nominalWidthX;\n }\n\n if (topDict.ros[0] !== undefined && topDict.ros[1] !== undefined) {\n font.isCIDFont = true;\n }\n\n if (font.isCIDFont) {\n let fdArrayOffset = topDict.fdArray;\n let fdSelectOffset = topDict.fdSelect;\n if (fdArrayOffset === 0 || fdSelectOffset === 0) {\n throw new Error(\n 'Font is marked as a CID font, but FDArray and/or FDSelect information is missing'\n );\n }\n fdArrayOffset += start;\n const fdArrayIndex = parseCFFIndex(data, fdArrayOffset);\n const fdArray = gatherCFFTopDicts(\n data,\n start,\n fdArrayIndex.objects,\n stringIndex.objects\n );\n topDict._fdArray = fdArray;\n fdSelectOffset += start;\n topDict._fdSelect = parseCFFFDSelect(\n data,\n fdSelectOffset,\n font.numGlyphs,\n fdArray.length\n );\n }\n\n const privateDictOffset = start + topDict.private[1];\n const privateDict = parseCFFPrivateDict(\n data,\n privateDictOffset,\n topDict.private[0],\n stringIndex.objects\n );\n font.defaultWidthX = privateDict.defaultWidthX;\n font.nominalWidthX = privateDict.nominalWidthX;\n\n if (privateDict.subrs !== 0) {\n const subrOffset = privateDictOffset + privateDict.subrs;\n const subrIndex = parseCFFIndex(data, subrOffset);\n font.subrs = subrIndex.objects;\n font.subrsBias = calcCFFSubroutineBias(font.subrs);\n } else {\n font.subrs = [];\n font.subrsBias = 0;\n }\n\n // Offsets in the top dict are relative to the beginning of the CFF data, so add the CFF start offset.\n let charStringsIndex;\n if (opt.lowMemory) {\n charStringsIndex = parseCFFIndexLowMemory(\n data,\n start + topDict.charStrings\n );\n font.nGlyphs = charStringsIndex.offsets.length;\n } else {\n charStringsIndex = parseCFFIndex(data, start + topDict.charStrings);\n font.nGlyphs = charStringsIndex.objects.length;\n }\n\n const charset = parseCFFCharset(\n data,\n start + topDict.charset,\n font.nGlyphs,\n stringIndex.objects\n );\n if (topDict.encoding === 0) {\n // Standard encoding\n font.cffEncoding = new CffEncoding(cffStandardEncoding, charset);\n } else if (topDict.encoding === 1) {\n // Expert encoding\n font.cffEncoding = new CffEncoding(cffExpertEncoding, charset);\n } else {\n font.cffEncoding = parseCFFEncoding(\n data,\n start + topDict.encoding,\n charset\n );\n }\n\n // Prefer the CMAP encoding to the CFF encoding.\n font.encoding = font.encoding || font.cffEncoding;\n\n font.glyphs = new glyphset.GlyphSet(font);\n if (opt.lowMemory) {\n font._push = function (i) {\n const charString = getCffIndexObject(\n i,\n charStringsIndex.offsets,\n data,\n start + topDict.charStrings\n );\n font.glyphs.push(\n i,\n glyphset.cffGlyphLoader(font, i, parseCFFCharstring, charString)\n );\n };\n } else {\n for (let i = 0; i < font.nGlyphs; i += 1) {\n const charString = charStringsIndex.objects[i];\n font.glyphs.push(\n i,\n glyphset.cffGlyphLoader(font, i, parseCFFCharstring, charString)\n );\n }\n }\n}\n\nexport default { parse: parseCFFTable };\n","// The `fvar` table stores font variation axes and instances.\n// https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6fvar.html\n\nimport check from '../check';\nimport parse from '../parse';\n\nfunction parseFvarAxis(data, start, names) {\n const axis = {};\n const p = new parse.Parser(data, start);\n axis.tag = p.parseTag();\n axis.minValue = p.parseFixed();\n axis.defaultValue = p.parseFixed();\n axis.maxValue = p.parseFixed();\n p.skip('uShort', 1); // reserved for flags; no values defined\n axis.name = names[p.parseUShort()] || {};\n return axis;\n}\n\nfunction parseFvarInstance(data, start, axes, names) {\n const inst = {};\n const p = new parse.Parser(data, start);\n inst.name = names[p.parseUShort()] || {};\n p.skip('uShort', 1); // reserved for flags; no values defined\n\n inst.coordinates = {};\n for (let i = 0; i < axes.length; ++i) {\n inst.coordinates[axes[i].tag] = p.parseFixed();\n }\n\n return inst;\n}\n\nfunction parseFvarTable(data, start, names) {\n const p = new parse.Parser(data, start);\n const tableVersion = p.parseULong();\n check.argument(\n tableVersion === 0x00010000,\n 'Unsupported fvar table version.'\n );\n const offsetToData = p.parseOffset16();\n // Skip countSizePairs.\n p.skip('uShort', 1);\n const axisCount = p.parseUShort();\n const axisSize = p.parseUShort();\n const instanceCount = p.parseUShort();\n const instanceSize = p.parseUShort();\n\n const axes = [];\n for (let i = 0; i < axisCount; i++) {\n axes.push(\n parseFvarAxis(data, start + offsetToData + i * axisSize, names)\n );\n }\n\n const instances = [];\n const instanceStart = start + offsetToData + axisCount * axisSize;\n for (let j = 0; j < instanceCount; j++) {\n instances.push(\n parseFvarInstance(\n data,\n instanceStart + j * instanceSize,\n axes,\n names\n )\n );\n }\n\n return { axes: axes, instances: instances };\n}\n\nexport default { parse: parseFvarTable };\n","// The `GDEF` table contains various glyph properties\n// https://docs.microsoft.com/en-us/typography/opentype/spec/gdef\n\nimport check from '../check';\nimport { Parser } from '../parse';\n\nvar attachList = function() {\n return {\n coverage: this.parsePointer(Parser.coverage),\n attachPoints: this.parseList(Parser.pointer(Parser.uShortList))\n };\n};\n\nvar caretValue = function() {\n var format = this.parseUShort();\n check.argument(format === 1 || format === 2 || format === 3,\n 'Unsupported CaretValue table version.');\n if (format === 1) {\n return { coordinate: this.parseShort() };\n } else if (format === 2) {\n return { pointindex: this.parseShort() };\n } else if (format === 3) {\n // Device / Variation Index tables unsupported\n return { coordinate: this.parseShort() };\n }\n};\n\nvar ligGlyph = function() {\n return this.parseList(Parser.pointer(caretValue));\n};\n\nvar ligCaretList = function() {\n return {\n coverage: this.parsePointer(Parser.coverage),\n ligGlyphs: this.parseList(Parser.pointer(ligGlyph))\n };\n};\n\nvar markGlyphSets = function() {\n this.parseUShort(); // Version\n return this.parseList(Parser.pointer(Parser.coverage));\n};\n\nfunction parseGDEFTable(data, start) {\n start = start || 0;\n const p = new Parser(data, start);\n const tableVersion = p.parseVersion(1);\n check.argument(tableVersion === 1 || tableVersion === 1.2 || tableVersion === 1.3,\n 'Unsupported GDEF table version.');\n var gdef = {\n version: tableVersion,\n classDef: p.parsePointer(Parser.classDef),\n attachList: p.parsePointer(attachList),\n ligCaretList: p.parsePointer(ligCaretList),\n markAttachClassDef: p.parsePointer(Parser.classDef)\n };\n if (tableVersion >= 1.2) {\n gdef.markGlyphSets = p.parsePointer(markGlyphSets);\n }\n return gdef;\n}\nexport default { parse: parseGDEFTable };\n","// The `GPOS` table contains kerning pairs, among other things.\n// https://docs.microsoft.com/en-us/typography/opentype/spec/gpos\n\nimport check from '../check';\nimport { Parser } from '../parse';\n\nconst subtableParsers = new Array(10); // subtableParsers[0] is unused\n\n// https://docs.microsoft.com/en-us/typography/opentype/spec/gpos#lookup-type-1-single-adjustment-positioning-subtable\n// this = Parser instance\nsubtableParsers[1] = function parseLookup1() {\n const start = this.offset + this.relativeOffset;\n const posformat = this.parseUShort();\n if (posformat === 1) {\n return {\n posFormat: 1,\n coverage: this.parsePointer(Parser.coverage),\n value: this.parseValueRecord(),\n };\n } else if (posformat === 2) {\n return {\n posFormat: 2,\n coverage: this.parsePointer(Parser.coverage),\n values: this.parseValueRecordList(),\n };\n }\n check.assert(\n false,\n '0x' +\n start.toString(16) +\n ': GPOS lookup type 1 format must be 1 or 2.'\n );\n};\n\n// https://docs.microsoft.com/en-us/typography/opentype/spec/gpos#lookup-type-2-pair-adjustment-positioning-subtable\nsubtableParsers[2] = function parseLookup2() {\n const start = this.offset + this.relativeOffset;\n const posFormat = this.parseUShort();\n check.assert(\n posFormat === 1 || posFormat === 2,\n '0x' +\n start.toString(16) +\n ': GPOS lookup type 2 format must be 1 or 2.'\n );\n const coverage = this.parsePointer(Parser.coverage);\n const valueFormat1 = this.parseUShort();\n const valueFormat2 = this.parseUShort();\n if (posFormat === 1) {\n // Adjustments for Glyph Pairs\n return {\n posFormat: posFormat,\n coverage: coverage,\n valueFormat1: valueFormat1,\n valueFormat2: valueFormat2,\n pairSets: this.parseList(\n Parser.pointer(\n Parser.list(function () {\n return {\n // pairValueRecord\n secondGlyph: this.parseUShort(),\n value1: this.parseValueRecord(valueFormat1),\n value2: this.parseValueRecord(valueFormat2),\n };\n })\n )\n ),\n };\n } else if (posFormat === 2) {\n const classDef1 = this.parsePointer(Parser.classDef);\n const classDef2 = this.parsePointer(Parser.classDef);\n const class1Count = this.parseUShort();\n const class2Count = this.parseUShort();\n return {\n // Class Pair Adjustment\n posFormat: posFormat,\n coverage: coverage,\n valueFormat1: valueFormat1,\n valueFormat2: valueFormat2,\n classDef1: classDef1,\n classDef2: classDef2,\n class1Count: class1Count,\n class2Count: class2Count,\n classRecords: this.parseList(\n class1Count,\n Parser.list(class2Count, function () {\n return {\n value1: this.parseValueRecord(valueFormat1),\n value2: this.parseValueRecord(valueFormat2),\n };\n })\n ),\n };\n }\n};\n\nsubtableParsers[3] = function parseLookup3() {\n return { error: 'GPOS Lookup 3 not supported' };\n};\nsubtableParsers[4] = function parseLookup4() {\n return { error: 'GPOS Lookup 4 not supported' };\n};\nsubtableParsers[5] = function parseLookup5() {\n return { error: 'GPOS Lookup 5 not supported' };\n};\nsubtableParsers[6] = function parseLookup6() {\n return { error: 'GPOS Lookup 6 not supported' };\n};\nsubtableParsers[7] = function parseLookup7() {\n return { error: 'GPOS Lookup 7 not supported' };\n};\nsubtableParsers[8] = function parseLookup8() {\n return { error: 'GPOS Lookup 8 not supported' };\n};\nsubtableParsers[9] = function parseLookup9() {\n return { error: 'GPOS Lookup 9 not supported' };\n};\n\n// https://docs.microsoft.com/en-us/typography/opentype/spec/gpos\nfunction parseGposTable(data, start) {\n start = start || 0;\n const p = new Parser(data, start);\n const tableVersion = p.parseVersion(1);\n check.argument(\n tableVersion === 1 || tableVersion === 1.1,\n 'Unsupported GPOS table version ' + tableVersion\n );\n\n if (tableVersion === 1) {\n return {\n version: tableVersion,\n scripts: p.parseScriptList(),\n features: p.parseFeatureList(),\n lookups: p.parseLookupList(subtableParsers),\n };\n } else {\n return {\n version: tableVersion,\n scripts: p.parseScriptList(),\n features: p.parseFeatureList(),\n lookups: p.parseLookupList(subtableParsers),\n variations: p.parseFeatureVariationsList(),\n };\n }\n}\n\nexport default { parse: parseGposTable };\n","// The `GSUB` table contains ligatures, among other things.\n// https://www.microsoft.com/typography/OTSPEC/gsub.htm\n\nimport check from '../check';\nimport { Parser } from '../parse';\n\nconst subtableParsers = new Array(9); // subtableParsers[0] is unused\n\n// https://www.microsoft.com/typography/OTSPEC/GSUB.htm#SS\nsubtableParsers[1] = function parseLookup1() {\n const start = this.offset + this.relativeOffset;\n const substFormat = this.parseUShort();\n if (substFormat === 1) {\n return {\n substFormat: 1,\n coverage: this.parsePointer(Parser.coverage),\n deltaGlyphId: this.parseUShort(),\n };\n } else if (substFormat === 2) {\n return {\n substFormat: 2,\n coverage: this.parsePointer(Parser.coverage),\n substitute: this.parseOffset16List(),\n };\n }\n check.assert(\n false,\n '0x' + start.toString(16) + ': lookup type 1 format must be 1 or 2.'\n );\n};\n\n// https://www.microsoft.com/typography/OTSPEC/GSUB.htm#MS\nsubtableParsers[2] = function parseLookup2() {\n const substFormat = this.parseUShort();\n check.argument(\n substFormat === 1,\n 'GSUB Multiple Substitution Subtable identifier-format must be 1'\n );\n return {\n substFormat: substFormat,\n coverage: this.parsePointer(Parser.coverage),\n sequences: this.parseListOfLists(),\n };\n};\n\n// https://www.microsoft.com/typography/OTSPEC/GSUB.htm#AS\nsubtableParsers[3] = function parseLookup3() {\n const substFormat = this.parseUShort();\n check.argument(\n substFormat === 1,\n 'GSUB Alternate Substitution Subtable identifier-format must be 1'\n );\n return {\n substFormat: substFormat,\n coverage: this.parsePointer(Parser.coverage),\n alternateSets: this.parseListOfLists(),\n };\n};\n\n// https://www.microsoft.com/typography/OTSPEC/GSUB.htm#LS\nsubtableParsers[4] = function parseLookup4() {\n const substFormat = this.parseUShort();\n check.argument(\n substFormat === 1,\n 'GSUB ligature table identifier-format must be 1'\n );\n return {\n substFormat: substFormat,\n coverage: this.parsePointer(Parser.coverage),\n ligatureSets: this.parseListOfLists(function () {\n return {\n ligGlyph: this.parseUShort(),\n components: this.parseUShortList(this.parseUShort() - 1),\n };\n }),\n };\n};\n\nconst lookupRecordDesc = {\n sequenceIndex: Parser.uShort,\n lookupListIndex: Parser.uShort,\n};\n\n// https://www.microsoft.com/typography/OTSPEC/GSUB.htm#CSF\nsubtableParsers[5] = function parseLookup5() {\n const start = this.offset + this.relativeOffset;\n const substFormat = this.parseUShort();\n\n if (substFormat === 1) {\n return {\n substFormat: substFormat,\n coverage: this.parsePointer(Parser.coverage),\n ruleSets: this.parseListOfLists(function () {\n const glyphCount = this.parseUShort();\n const substCount = this.parseUShort();\n return {\n input: this.parseUShortList(glyphCount - 1),\n lookupRecords: this.parseRecordList(\n substCount,\n lookupRecordDesc\n ),\n };\n }),\n };\n } else if (substFormat === 2) {\n return {\n substFormat: substFormat,\n coverage: this.parsePointer(Parser.coverage),\n classDef: this.parsePointer(Parser.classDef),\n classSets: this.parseListOfLists(function () {\n const glyphCount = this.parseUShort();\n const substCount = this.parseUShort();\n return {\n classes: this.parseUShortList(glyphCount - 1),\n lookupRecords: this.parseRecordList(\n substCount,\n lookupRecordDesc\n ),\n };\n }),\n };\n } else if (substFormat === 3) {\n const glyphCount = this.parseUShort();\n const substCount = this.parseUShort();\n return {\n substFormat: substFormat,\n coverages: this.parseList(\n glyphCount,\n Parser.pointer(Parser.coverage)\n ),\n lookupRecords: this.parseRecordList(substCount, lookupRecordDesc),\n };\n }\n check.assert(\n false,\n '0x' + start.toString(16) + ': lookup type 5 format must be 1, 2 or 3.'\n );\n};\n\n// https://www.microsoft.com/typography/OTSPEC/GSUB.htm#CC\nsubtableParsers[6] = function parseLookup6() {\n const start = this.offset + this.relativeOffset;\n const substFormat = this.parseUShort();\n if (substFormat === 1) {\n return {\n substFormat: 1,\n coverage: this.parsePointer(Parser.coverage),\n chainRuleSets: this.parseListOfLists(function () {\n return {\n backtrack: this.parseUShortList(),\n input: this.parseUShortList(this.parseShort() - 1),\n lookahead: this.parseUShortList(),\n lookupRecords: this.parseRecordList(lookupRecordDesc),\n };\n }),\n };\n } else if (substFormat === 2) {\n return {\n substFormat: 2,\n coverage: this.parsePointer(Parser.coverage),\n backtrackClassDef: this.parsePointer(Parser.classDef),\n inputClassDef: this.parsePointer(Parser.classDef),\n lookaheadClassDef: this.parsePointer(Parser.classDef),\n chainClassSet: this.parseListOfLists(function () {\n return {\n backtrack: this.parseUShortList(),\n input: this.parseUShortList(this.parseShort() - 1),\n lookahead: this.parseUShortList(),\n lookupRecords: this.parseRecordList(lookupRecordDesc),\n };\n }),\n };\n } else if (substFormat === 3) {\n return {\n substFormat: 3,\n backtrackCoverage: this.parseList(Parser.pointer(Parser.coverage)),\n inputCoverage: this.parseList(Parser.pointer(Parser.coverage)),\n lookaheadCoverage: this.parseList(Parser.pointer(Parser.coverage)),\n lookupRecords: this.parseRecordList(lookupRecordDesc),\n };\n }\n check.assert(\n false,\n '0x' + start.toString(16) + ': lookup type 6 format must be 1, 2 or 3.'\n );\n};\n\n// https://www.microsoft.com/typography/OTSPEC/GSUB.htm#ES\nsubtableParsers[7] = function parseLookup7() {\n // Extension Substitution subtable\n const substFormat = this.parseUShort();\n check.argument(\n substFormat === 1,\n 'GSUB Extension Substitution subtable identifier-format must be 1'\n );\n const extensionLookupType = this.parseUShort();\n const extensionParser = new Parser(\n this.data,\n this.offset + this.parseULong()\n );\n return {\n substFormat: 1,\n lookupType: extensionLookupType,\n extension: subtableParsers[extensionLookupType].call(extensionParser),\n };\n};\n\n// https://www.microsoft.com/typography/OTSPEC/GSUB.htm#RCCS\nsubtableParsers[8] = function parseLookup8() {\n const substFormat = this.parseUShort();\n check.argument(\n substFormat === 1,\n 'GSUB Reverse Chaining Contextual Single Substitution Subtable identifier-format must be 1'\n );\n return {\n substFormat: substFormat,\n coverage: this.parsePointer(Parser.coverage),\n backtrackCoverage: this.parseList(Parser.pointer(Parser.coverage)),\n lookaheadCoverage: this.parseList(Parser.pointer(Parser.coverage)),\n substitutes: this.parseUShortList(),\n };\n};\n\n// https://www.microsoft.com/typography/OTSPEC/gsub.htm\nfunction parseGsubTable(data, start) {\n start = start || 0;\n const p = new Parser(data, start);\n const tableVersion = p.parseVersion(1);\n check.argument(\n tableVersion === 1 || tableVersion === 1.1,\n 'Unsupported GSUB table version.'\n );\n if (tableVersion === 1) {\n return {\n version: tableVersion,\n scripts: p.parseScriptList(),\n features: p.parseFeatureList(),\n lookups: p.parseLookupList(subtableParsers),\n };\n } else {\n return {\n version: tableVersion,\n scripts: p.parseScriptList(),\n features: p.parseFeatureList(),\n lookups: p.parseLookupList(subtableParsers),\n variations: p.parseFeatureVariationsList(),\n };\n }\n}\n\nexport default { parse: parseGsubTable };\n","// The `head` table contains global information about the font.\n// https://www.microsoft.com/typography/OTSPEC/head.htm\n\nimport check from '../check';\nimport parse from '../parse';\n\n// Parse the header `head` table\nfunction parseHeadTable(data, start) {\n const head = {};\n const p = new parse.Parser(data, start);\n head.version = p.parseVersion();\n head.fontRevision = Math.round(p.parseFixed() * 1000) / 1000;\n head.checkSumAdjustment = p.parseULong();\n head.magicNumber = p.parseULong();\n check.argument(\n head.magicNumber === 0x5f0f3cf5,\n 'Font header has wrong magic number.'\n );\n head.flags = p.parseUShort();\n head.unitsPerEm = p.parseUShort();\n head.created = p.parseLongDateTime();\n head.modified = p.parseLongDateTime();\n head.xMin = p.parseShort();\n head.yMin = p.parseShort();\n head.xMax = p.parseShort();\n head.yMax = p.parseShort();\n head.macStyle = p.parseUShort();\n head.lowestRecPPEM = p.parseUShort();\n head.fontDirectionHint = p.parseShort();\n head.indexToLocFormat = p.parseShort();\n head.glyphDataFormat = p.parseShort();\n return head;\n}\n\nexport default { parse: parseHeadTable };\n","// The `hhea` table contains information for horizontal layout.\n// https://www.microsoft.com/typography/OTSPEC/hhea.htm\n\nimport parse from '../parse';\n\n// Parse the horizontal header `hhea` table\nfunction parseHheaTable(data, start) {\n const hhea = {};\n const p = new parse.Parser(data, start);\n hhea.version = p.parseVersion();\n hhea.ascender = p.parseShort();\n hhea.descender = p.parseShort();\n hhea.lineGap = p.parseShort();\n hhea.advanceWidthMax = p.parseUShort();\n hhea.minLeftSideBearing = p.parseShort();\n hhea.minRightSideBearing = p.parseShort();\n hhea.xMaxExtent = p.parseShort();\n hhea.caretSlopeRise = p.parseShort();\n hhea.caretSlopeRun = p.parseShort();\n hhea.caretOffset = p.parseShort();\n p.relativeOffset += 8;\n hhea.metricDataFormat = p.parseShort();\n hhea.numberOfHMetrics = p.parseUShort();\n return hhea;\n}\n\nexport default { parse: parseHheaTable };\n","// The `hmtx` table contains the horizontal metrics for all glyphs.\n// https://www.microsoft.com/typography/OTSPEC/hmtx.htm\n\nimport parse from '../parse';\n\nfunction parseHmtxTableAll(data, start, numMetrics, numGlyphs, glyphs) {\n let advanceWidth;\n let leftSideBearing;\n const p = new parse.Parser(data, start);\n for (let i = 0; i < numGlyphs; i += 1) {\n // If the font is monospaced, only one entry is needed. This last entry applies to all subsequent glyphs.\n if (i < numMetrics) {\n advanceWidth = p.parseUShort();\n leftSideBearing = p.parseShort();\n }\n\n const glyph = glyphs.get(i);\n glyph.advanceWidth = advanceWidth;\n glyph.leftSideBearing = leftSideBearing;\n }\n}\n\nfunction parseHmtxTableOnLowMemory(font, data, start, numMetrics, numGlyphs) {\n font._hmtxTableData = {};\n\n let advanceWidth;\n let leftSideBearing;\n const p = new parse.Parser(data, start);\n for (let i = 0; i < numGlyphs; i += 1) {\n // If the font is monospaced, only one entry is needed. This last entry applies to all subsequent glyphs.\n if (i < numMetrics) {\n advanceWidth = p.parseUShort();\n leftSideBearing = p.parseShort();\n }\n\n font._hmtxTableData[i] = {\n advanceWidth: advanceWidth,\n leftSideBearing: leftSideBearing,\n };\n }\n}\n\n// Parse the `hmtx` table, which contains the horizontal metrics for all glyphs.\n// This function augments the glyph array, adding the advanceWidth and leftSideBearing to each glyph.\nfunction parseHmtxTable(font, data, start, numMetrics, numGlyphs, glyphs, opt) {\n if (opt.lowMemory)\n parseHmtxTableOnLowMemory(font, data, start, numMetrics, numGlyphs);\n else parseHmtxTableAll(data, start, numMetrics, numGlyphs, glyphs);\n}\n\nexport default { parse: parseHmtxTable };\n","// The `kern` table contains kerning pairs.\n// Note that some fonts use the GPOS OpenType layout table to specify kerning.\n// https://www.microsoft.com/typography/OTSPEC/kern.htm\n\nimport check from '../check';\nimport parse from '../parse';\n\nfunction parseWindowsKernTable(p) {\n const pairs = {};\n // Skip nTables.\n p.skip('uShort');\n const subtableVersion = p.parseUShort();\n check.argument(subtableVersion === 0, 'Unsupported kern sub-table version.');\n // Skip subtableLength, subtableCoverage\n p.skip('uShort', 2);\n const nPairs = p.parseUShort();\n // Skip searchRange, entrySelector, rangeShift.\n p.skip('uShort', 3);\n for (let i = 0; i < nPairs; i += 1) {\n const leftIndex = p.parseUShort();\n const rightIndex = p.parseUShort();\n const value = p.parseShort();\n pairs[leftIndex + ',' + rightIndex] = value;\n }\n return pairs;\n}\n\nfunction parseMacKernTable(p) {\n const pairs = {};\n // The Mac kern table stores the version as a fixed (32 bits) but we only loaded the first 16 bits.\n // Skip the rest.\n p.skip('uShort');\n const nTables = p.parseULong();\n //check.argument(nTables === 1, 'Only 1 subtable is supported (got ' + nTables + ').');\n if (nTables > 1) {\n console.warn('Only the first kern subtable is supported.');\n }\n p.skip('uLong');\n const coverage = p.parseUShort();\n const subtableVersion = coverage & 0xFF;\n p.skip('uShort');\n if (subtableVersion === 0) {\n const nPairs = p.parseUShort();\n // Skip searchRange, entrySelector, rangeShift.\n p.skip('uShort', 3);\n for (let i = 0; i < nPairs; i += 1) {\n const leftIndex = p.parseUShort();\n const rightIndex = p.parseUShort();\n const value = p.parseShort();\n pairs[leftIndex + ',' + rightIndex] = value;\n }\n }\n return pairs;\n}\n\n// Parse the `kern` table which contains kerning pairs.\nfunction parseKernTable(data, start) {\n const p = new parse.Parser(data, start);\n const tableVersion = p.parseUShort();\n if (tableVersion === 0) {\n return parseWindowsKernTable(p);\n } else if (tableVersion === 1) {\n return parseMacKernTable(p);\n } else {\n throw new Error('Unsupported kern table version (' + tableVersion + ').');\n }\n}\n\nexport default { parse: parseKernTable };\n","// The `ltag` table stores IETF BCP-47 language tags. It allows supporting\n// languages for which TrueType does not assign a numeric code.\n// https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6ltag.html\n// http://www.w3.org/International/articles/language-tags/\n// http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry\n\nimport check from '../check';\nimport parse from '../parse';\n\nfunction parseLtagTable(data, start) {\n const p = new parse.Parser(data, start);\n const tableVersion = p.parseULong();\n check.argument(tableVersion === 1, 'Unsupported ltag table version.');\n // The 'ltag' specification does not define any flags; skip the field.\n p.skip('uLong', 1);\n const numTags = p.parseULong();\n\n const tags = [];\n for (let i = 0; i < numTags; i++) {\n let tag = '';\n const offset = start + p.parseUShort();\n const length = p.parseUShort();\n for (let j = offset; j < offset + length; ++j) {\n tag += String.fromCharCode(data.getInt8(j));\n }\n\n tags.push(tag);\n }\n\n return tags;\n}\n\nexport default { parse: parseLtagTable };\n","// The `loca` table stores the offsets to the locations of the glyphs in the font.\n// https://www.microsoft.com/typography/OTSPEC/loca.htm\n\nimport parse from '../parse';\n\n// Parse the `loca` table. This table stores the offsets to the locations of the glyphs in the font,\n// relative to the beginning of the glyphData table.\n// The number of glyphs stored in the `loca` table is specified in the `maxp` table (under numGlyphs)\n// The loca table has two versions: a short version where offsets are stored as uShorts, and a long\n// version where offsets are stored as uLongs. The `head` table specifies which version to use\n// (under indexToLocFormat).\nfunction parseLocaTable(data, start, numGlyphs, shortVersion) {\n const p = new parse.Parser(data, start);\n const parseFn = shortVersion ? p.parseUShort : p.parseULong;\n // There is an extra entry after the last index element to compute the length of the last glyph.\n // That's why we use numGlyphs + 1.\n const glyphOffsets = [];\n for (let i = 0; i < numGlyphs + 1; i += 1) {\n let glyphOffset = parseFn.call(p);\n if (shortVersion) {\n // The short table version stores the actual offset divided by 2.\n glyphOffset *= 2;\n }\n\n glyphOffsets.push(glyphOffset);\n }\n\n return glyphOffsets;\n}\n\nexport default { parse: parseLocaTable };\n","// The `maxp` table establishes the memory requirements for the font.\n// We need it just to get the number of glyphs in the font.\n// https://www.microsoft.com/typography/OTSPEC/maxp.htm\n\nimport parse from '../parse';\n\n// Parse the maximum profile `maxp` table.\nfunction parseMaxpTable(data, start) {\n const maxp = {};\n const p = new parse.Parser(data, start);\n maxp.version = p.parseVersion();\n maxp.numGlyphs = p.parseUShort();\n if (maxp.version === 1.0) {\n maxp.maxPoints = p.parseUShort();\n maxp.maxContours = p.parseUShort();\n maxp.maxCompositePoints = p.parseUShort();\n maxp.maxCompositeContours = p.parseUShort();\n maxp.maxZones = p.parseUShort();\n maxp.maxTwilightPoints = p.parseUShort();\n maxp.maxStorage = p.parseUShort();\n maxp.maxFunctionDefs = p.parseUShort();\n maxp.maxInstructionDefs = p.parseUShort();\n maxp.maxStackElements = p.parseUShort();\n maxp.maxSizeOfInstructions = p.parseUShort();\n maxp.maxComponentElements = p.parseUShort();\n maxp.maxComponentDepth = p.parseUShort();\n }\n\n return maxp;\n}\n\nexport default { parse: parseMaxpTable };\n","// The `OS/2` table contains metrics required in OpenType fonts.\n// https://www.microsoft.com/typography/OTSPEC/os2.htm\n\nimport parse from '../parse';\n\n// Parse the OS/2 and Windows metrics `OS/2` table\nfunction parseOS2Table(data, start) {\n const os2 = {};\n const p = new parse.Parser(data, start);\n os2.version = p.parseUShort();\n os2.xAvgCharWidth = p.parseShort();\n os2.usWeightClass = p.parseUShort();\n os2.usWidthClass = p.parseUShort();\n os2.fsType = p.parseUShort();\n os2.ySubscriptXSize = p.parseShort();\n os2.ySubscriptYSize = p.parseShort();\n os2.ySubscriptXOffset = p.parseShort();\n os2.ySubscriptYOffset = p.parseShort();\n os2.ySuperscriptXSize = p.parseShort();\n os2.ySuperscriptYSize = p.parseShort();\n os2.ySuperscriptXOffset = p.parseShort();\n os2.ySuperscriptYOffset = p.parseShort();\n os2.yStrikeoutSize = p.parseShort();\n os2.yStrikeoutPosition = p.parseShort();\n os2.sFamilyClass = p.parseShort();\n os2.panose = [];\n for (let i = 0; i < 10; i++) {\n os2.panose[i] = p.parseByte();\n }\n\n os2.ulUnicodeRange1 = p.parseULong();\n os2.ulUnicodeRange2 = p.parseULong();\n os2.ulUnicodeRange3 = p.parseULong();\n os2.ulUnicodeRange4 = p.parseULong();\n os2.achVendID = String.fromCharCode(\n p.parseByte(),\n p.parseByte(),\n p.parseByte(),\n p.parseByte()\n );\n os2.fsSelection = p.parseUShort();\n os2.usFirstCharIndex = p.parseUShort();\n os2.usLastCharIndex = p.parseUShort();\n os2.sTypoAscender = p.parseShort();\n os2.sTypoDescender = p.parseShort();\n os2.sTypoLineGap = p.parseShort();\n os2.usWinAscent = p.parseUShort();\n os2.usWinDescent = p.parseUShort();\n if (os2.version >= 1) {\n os2.ulCodePageRange1 = p.parseULong();\n os2.ulCodePageRange2 = p.parseULong();\n }\n\n if (os2.version >= 2) {\n os2.sxHeight = p.parseShort();\n os2.sCapHeight = p.parseShort();\n os2.usDefaultChar = p.parseUShort();\n os2.usBreakChar = p.parseUShort();\n os2.usMaxContent = p.parseUShort();\n }\n\n return os2;\n}\n\nexport default { parse: parseOS2Table };\n","// The `post` table stores additional PostScript information, such as glyph names.\n// https://www.microsoft.com/typography/OTSPEC/post.htm\n\nimport parse from '../parse';\n\n// Parse the PostScript `post` table\nfunction parsePostTable(data, start) {\n const post = {};\n const p = new parse.Parser(data, start);\n post.version = p.parseVersion();\n post.italicAngle = p.parseFixed();\n post.underlinePosition = p.parseShort();\n post.underlineThickness = p.parseShort();\n post.isFixedPitch = p.parseULong();\n post.minMemType42 = p.parseULong();\n post.maxMemType42 = p.parseULong();\n post.minMemType1 = p.parseULong();\n post.maxMemType1 = p.parseULong();\n post.names = [];\n switch (post.version) {\n case 1:\n break;\n case 2:\n post.numberOfGlyphs = p.parseUShort();\n post.glyphNameIndex = new Array(post.numberOfGlyphs);\n for (let i = 0; i < post.numberOfGlyphs; i++) {\n post.glyphNameIndex[i] = p.parseUShort();\n }\n break;\n case 2.5:\n post.numberOfGlyphs = p.parseUShort();\n post.offset = new Array(post.numberOfGlyphs);\n for (let i = 0; i < post.numberOfGlyphs; i++) {\n post.offset[i] = p.parseChar();\n }\n break;\n }\n return post;\n}\n\nexport default { parse: parsePostTable };\n","// Data types used in the OpenType font file.\n// All OpenType fonts use Motorola-style byte ordering (Big Endian)\n\nimport check from './check';\n\nconst LIMIT16 = 32768; // The limit at which a 16-bit number switches signs == 2^15\nconst LIMIT32 = 2147483648; // The limit at which a 32-bit number switches signs == 2 ^ 31\n\n/**\n * @exports opentype.decode\n * @class\n */\nconst decode = {};\n/**\n * @exports opentype.encode\n * @class\n */\nconst encode = {};\n/**\n * @exports opentype.sizeOf\n * @class\n */\nconst sizeOf = {};\n\n// Return a function that always returns the same value.\nfunction constant(v) {\n return function() {\n return v;\n };\n}\n\n// OpenType data types //////////////////////////////////////////////////////\n\n/**\n * Convert an 8-bit unsigned integer to a list of 1 byte.\n * @param {number}\n * @returns {Array}\n */\nencode.BYTE = function(v) {\n check.argument(v >= 0 && v <= 255, 'Byte value should be between 0 and 255.');\n return [v];\n};\n/**\n * @constant\n * @type {number}\n */\nsizeOf.BYTE = constant(1);\n\n/**\n * Convert a 8-bit signed integer to a list of 1 byte.\n * @param {string}\n * @returns {Array}\n */\nencode.CHAR = function(v) {\n return [v.charCodeAt(0)];\n};\n\n/**\n * @constant\n * @type {number}\n */\nsizeOf.CHAR = constant(1);\n\n/**\n * Convert an ASCII string to a list of bytes.\n * @param {string}\n * @returns {Array}\n */\nencode.CHARARRAY = function(v) {\n if (typeof v === 'undefined') {\n v = '';\n console.warn('Undefined CHARARRAY encountered and treated as an empty string. This is probably caused by a missing glyph name.');\n }\n const b = [];\n for (let i = 0; i < v.length; i += 1) {\n b[i] = v.charCodeAt(i);\n }\n\n return b;\n};\n\n/**\n * @param {Array}\n * @returns {number}\n */\nsizeOf.CHARARRAY = function(v) {\n if (typeof v === 'undefined') {\n return 0;\n }\n return v.length;\n};\n\n/**\n * Convert a 16-bit unsigned integer to a list of 2 bytes.\n * @param {number}\n * @returns {Array}\n */\nencode.USHORT = function(v) {\n return [(v >> 8) & 0xFF, v & 0xFF];\n};\n\n/**\n * @constant\n * @type {number}\n */\nsizeOf.USHORT = constant(2);\n\n/**\n * Convert a 16-bit signed integer to a list of 2 bytes.\n * @param {number}\n * @returns {Array}\n */\nencode.SHORT = function(v) {\n // Two's complement\n if (v >= LIMIT16) {\n v = -(2 * LIMIT16 - v);\n }\n\n return [(v >> 8) & 0xFF, v & 0xFF];\n};\n\n/**\n * @constant\n * @type {number}\n */\nsizeOf.SHORT = constant(2);\n\n/**\n * Convert a 24-bit unsigned integer to a list of 3 bytes.\n * @param {number}\n * @returns {Array}\n */\nencode.UINT24 = function(v) {\n return [(v >> 16) & 0xFF, (v >> 8) & 0xFF, v & 0xFF];\n};\n\n/**\n * @constant\n * @type {number}\n */\nsizeOf.UINT24 = constant(3);\n\n/**\n * Convert a 32-bit unsigned integer to a list of 4 bytes.\n * @param {number}\n * @returns {Array}\n */\nencode.ULONG = function(v) {\n return [(v >> 24) & 0xFF, (v >> 16) & 0xFF, (v >> 8) & 0xFF, v & 0xFF];\n};\n\n/**\n * @constant\n * @type {number}\n */\nsizeOf.ULONG = constant(4);\n\n/**\n * Convert a 32-bit unsigned integer to a list of 4 bytes.\n * @param {number}\n * @returns {Array}\n */\nencode.LONG = function(v) {\n // Two's complement\n if (v >= LIMIT32) {\n v = -(2 * LIMIT32 - v);\n }\n\n return [(v >> 24) & 0xFF, (v >> 16) & 0xFF, (v >> 8) & 0xFF, v & 0xFF];\n};\n\n/**\n * @constant\n * @type {number}\n */\nsizeOf.LONG = constant(4);\n\nencode.FIXED = encode.ULONG;\nsizeOf.FIXED = sizeOf.ULONG;\n\nencode.FWORD = encode.SHORT;\nsizeOf.FWORD = sizeOf.SHORT;\n\nencode.UFWORD = encode.USHORT;\nsizeOf.UFWORD = sizeOf.USHORT;\n\n/**\n * Convert a 32-bit Apple Mac timestamp integer to a list of 8 bytes, 64-bit timestamp.\n * @param {number}\n * @returns {Array}\n */\nencode.LONGDATETIME = function(v) {\n return [0, 0, 0, 0, (v >> 24) & 0xFF, (v >> 16) & 0xFF, (v >> 8) & 0xFF, v & 0xFF];\n};\n\n/**\n * @constant\n * @type {number}\n */\nsizeOf.LONGDATETIME = constant(8);\n\n/**\n * Convert a 4-char tag to a list of 4 bytes.\n * @param {string}\n * @returns {Array}\n */\nencode.TAG = function(v) {\n check.argument(v.length === 4, 'Tag should be exactly 4 ASCII characters.');\n return [v.charCodeAt(0),\n v.charCodeAt(1),\n v.charCodeAt(2),\n v.charCodeAt(3)];\n};\n\n/**\n * @constant\n * @type {number}\n */\nsizeOf.TAG = constant(4);\n\n// CFF data types ///////////////////////////////////////////////////////////\n\nencode.Card8 = encode.BYTE;\nsizeOf.Card8 = sizeOf.BYTE;\n\nencode.Card16 = encode.USHORT;\nsizeOf.Card16 = sizeOf.USHORT;\n\nencode.OffSize = encode.BYTE;\nsizeOf.OffSize = sizeOf.BYTE;\n\nencode.SID = encode.USHORT;\nsizeOf.SID = sizeOf.USHORT;\n\n// Convert a numeric operand or charstring number to a variable-size list of bytes.\n/**\n * Convert a numeric operand or charstring number to a variable-size list of bytes.\n * @param {number}\n * @returns {Array}\n */\nencode.NUMBER = function(v) {\n if (v >= -107 && v <= 107) {\n return [v + 139];\n } else if (v >= 108 && v <= 1131) {\n v = v - 108;\n return [(v >> 8) + 247, v & 0xFF];\n } else if (v >= -1131 && v <= -108) {\n v = -v - 108;\n return [(v >> 8) + 251, v & 0xFF];\n } else if (v >= -32768 && v <= 32767) {\n return encode.NUMBER16(v);\n } else {\n return encode.NUMBER32(v);\n }\n};\n\n/**\n * @param {number}\n * @returns {number}\n */\nsizeOf.NUMBER = function(v) {\n return encode.NUMBER(v).length;\n};\n\n/**\n * Convert a signed number between -32768 and +32767 to a three-byte value.\n * This ensures we always use three bytes, but is not the most compact format.\n * @param {number}\n * @returns {Array}\n */\nencode.NUMBER16 = function(v) {\n return [28, (v >> 8) & 0xFF, v & 0xFF];\n};\n\n/**\n * @constant\n * @type {number}\n */\nsizeOf.NUMBER16 = constant(3);\n\n/**\n * Convert a signed number between -(2^31) and +(2^31-1) to a five-byte value.\n * This is useful if you want to be sure you always use four bytes,\n * at the expense of wasting a few bytes for smaller numbers.\n * @param {number}\n * @returns {Array}\n */\nencode.NUMBER32 = function(v) {\n return [29, (v >> 24) & 0xFF, (v >> 16) & 0xFF, (v >> 8) & 0xFF, v & 0xFF];\n};\n\n/**\n * @constant\n * @type {number}\n */\nsizeOf.NUMBER32 = constant(5);\n\n/**\n * @param {number}\n * @returns {Array}\n */\nencode.REAL = function(v) {\n let value = v.toString();\n\n // Some numbers use an epsilon to encode the value. (e.g. JavaScript will store 0.0000001 as 1e-7)\n // This code converts it back to a number without the epsilon.\n const m = /\\.(\\d*?)(?:9{5,20}|0{5,20})\\d{0,2}(?:e(.+)|$)/.exec(value);\n if (m) {\n const epsilon = parseFloat('1e' + ((m[2] ? +m[2] : 0) + m[1].length));\n value = (Math.round(v * epsilon) / epsilon).toString();\n }\n\n let nibbles = '';\n for (let i = 0, ii = value.length; i < ii; i += 1) {\n const c = value[i];\n if (c === 'e') {\n nibbles += value[++i] === '-' ? 'c' : 'b';\n } else if (c === '.') {\n nibbles += 'a';\n } else if (c === '-') {\n nibbles += 'e';\n } else {\n nibbles += c;\n }\n }\n\n nibbles += (nibbles.length & 1) ? 'f' : 'ff';\n const out = [30];\n for (let i = 0, ii = nibbles.length; i < ii; i += 2) {\n out.push(parseInt(nibbles.substr(i, 2), 16));\n }\n\n return out;\n};\n\n/**\n * @param {number}\n * @returns {number}\n */\nsizeOf.REAL = function(v) {\n return encode.REAL(v).length;\n};\n\nencode.NAME = encode.CHARARRAY;\nsizeOf.NAME = sizeOf.CHARARRAY;\n\nencode.STRING = encode.CHARARRAY;\nsizeOf.STRING = sizeOf.CHARARRAY;\n\n/**\n * @param {DataView} data\n * @param {number} offset\n * @param {number} numBytes\n * @returns {string}\n */\ndecode.UTF8 = function(data, offset, numBytes) {\n const codePoints = [];\n const numChars = numBytes;\n for (let j = 0; j < numChars; j++, offset += 1) {\n codePoints[j] = data.getUint8(offset);\n }\n\n return String.fromCharCode.apply(null, codePoints);\n};\n\n/**\n * @param {DataView} data\n * @param {number} offset\n * @param {number} numBytes\n * @returns {string}\n */\ndecode.UTF16 = function(data, offset, numBytes) {\n const codePoints = [];\n const numChars = numBytes / 2;\n for (let j = 0; j < numChars; j++, offset += 2) {\n codePoints[j] = data.getUint16(offset);\n }\n\n return String.fromCharCode.apply(null, codePoints);\n};\n\n/**\n * Convert a JavaScript string to UTF16-BE.\n * @param {string}\n * @returns {Array}\n */\nencode.UTF16 = function(v) {\n const b = [];\n for (let i = 0; i < v.length; i += 1) {\n const codepoint = v.charCodeAt(i);\n b[b.length] = (codepoint >> 8) & 0xFF;\n b[b.length] = codepoint & 0xFF;\n }\n\n return b;\n};\n\n/**\n * @param {string}\n * @returns {number}\n */\nsizeOf.UTF16 = function(v) {\n return v.length * 2;\n};\n\n// Data for converting old eight-bit Macintosh encodings to Unicode.\n// This representation is optimized for decoding; encoding is slower\n// and needs more memory. The assumption is that all opentype.js users\n// want to open fonts, but saving a font will be comparatively rare\n// so it can be more expensive. Keyed by IANA character set name.\n//\n// Python script for generating these strings:\n//\n// s = u''.join([chr(c).decode('mac_greek') for c in range(128, 256)])\n// print(s.encode('utf-8'))\n/**\n * @private\n */\nconst eightBitMacEncodings = {\n 'x-mac-croatian': // Python: 'mac_croatian'\n 'ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®Š™´¨≠ŽØ∞±≤≥∆µ∂∑∏š∫ªºΩžø' +\n '¿¡¬√ƒ≈ƫȅ ÀÃÕŒœĐ—“”‘’÷◊©⁄€‹›Æ»–·‚„‰ÂćÁčÈÍÎÏÌÓÔđÒÚÛÙıˆ˜¯πË˚¸Êæˇ',\n 'x-mac-cyrillic': // Python: 'mac_cyrillic'\n 'АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°Ґ£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµґЈЄєЇїЉљЊњ' +\n 'јЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю',\n 'x-mac-gaelic': // http://unicode.org/Public/MAPPINGS/VENDORS/APPLE/GAELIC.TXT\n 'ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØḂ±≤≥ḃĊċḊḋḞḟĠġṀæø' +\n 'ṁṖṗɼƒſṠ«»… ÀÃÕŒœ–—“”‘’ṡẛÿŸṪ€‹›Ŷŷṫ·Ỳỳ⁊ÂÊÁËÈÍÎÏÌÓÔ♣ÒÚÛÙıÝýŴŵẄẅẀẁẂẃ',\n 'x-mac-greek': // Python: 'mac_greek'\n 'Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦€ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩ' +\n 'άΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ\\u00AD',\n 'x-mac-icelandic': // Python: 'mac_iceland'\n 'ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüݰ¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø' +\n '¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ',\n 'x-mac-inuit': // http://unicode.org/Public/MAPPINGS/VENDORS/APPLE/INUIT.TXT\n 'ᐃᐄᐅᐆᐊᐋᐱᐲᐳᐴᐸᐹᑉᑎᑏᑐᑑᑕᑖᑦᑭᑮᑯᑰᑲᑳᒃᒋᒌᒍᒎᒐᒑ°ᒡᒥᒦ•¶ᒧ®©™ᒨᒪᒫᒻᓂᓃᓄᓅᓇᓈᓐᓯᓰᓱᓲᓴᓵᔅᓕᓖᓗ' +\n 'ᓘᓚᓛᓪᔨᔩᔪᔫᔭ… ᔮᔾᕕᕖᕗ–—“”‘’ᕘᕙᕚᕝᕆᕇᕈᕉᕋᕌᕐᕿᖀᖁᖂᖃᖄᖅᖏᖐᖑᖒᖓᖔᖕᙱᙲᙳᙴᙵᙶᖖᖠᖡᖢᖣᖤᖥᖦᕼŁł',\n 'x-mac-ce': // Python: 'mac_latin2'\n 'ÄĀāÉĄÖÜáąČäčĆć鏟ĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅ' +\n 'ņѬ√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ',\n macintosh: // Python: 'mac_roman'\n 'ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø' +\n '¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ',\n 'x-mac-romanian': // Python: 'mac_romanian'\n 'ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ĂȘ∞±≤≥¥µ∂∑∏π∫ªºΩăș' +\n '¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€‹›Țț‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ',\n 'x-mac-turkish': // Python: 'mac_turkish'\n 'ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø' +\n '¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙˆ˜¯˘˙˚¸˝˛ˇ'\n};\n\n/**\n * Decodes an old-style Macintosh string. Returns either a Unicode JavaScript\n * string, or 'undefined' if the encoding is unsupported. For example, we do\n * not support Chinese, Japanese or Korean because these would need large\n * mapping tables.\n * @param {DataView} dataView\n * @param {number} offset\n * @param {number} dataLength\n * @param {string} encoding\n * @returns {string}\n */\ndecode.MACSTRING = function(dataView, offset, dataLength, encoding) {\n const table = eightBitMacEncodings[encoding];\n if (table === undefined) {\n return undefined;\n }\n\n let result = '';\n for (let i = 0; i < dataLength; i++) {\n const c = dataView.getUint8(offset + i);\n // In all eight-bit Mac encodings, the characters 0x00..0x7F are\n // mapped to U+0000..U+007F; we only need to look up the others.\n if (c <= 0x7F) {\n result += String.fromCharCode(c);\n } else {\n result += table[c & 0x7F];\n }\n }\n\n return result;\n};\n\n// Helper function for encode.MACSTRING. Returns a dictionary for mapping\n// Unicode character codes to their 8-bit MacOS equivalent. This table\n// is not exactly a super cheap data structure, but we do not care because\n// encoding Macintosh strings is only rarely needed in typical applications.\nconst macEncodingTableCache = typeof WeakMap === 'function' && new WeakMap();\nlet macEncodingCacheKeys;\nconst getMacEncodingTable = function (encoding) {\n // Since we use encoding as a cache key for WeakMap, it has to be\n // a String object and not a literal. And at least on NodeJS 2.10.1,\n // WeakMap requires that the same String instance is passed for cache hits.\n if (!macEncodingCacheKeys) {\n macEncodingCacheKeys = {};\n for (let e in eightBitMacEncodings) {\n /*jshint -W053 */ // Suppress \"Do not use String as a constructor.\"\n macEncodingCacheKeys[e] = new String(e);\n }\n }\n\n const cacheKey = macEncodingCacheKeys[encoding];\n if (cacheKey === undefined) {\n return undefined;\n }\n\n // We can't do \"if (cache.has(key)) {return cache.get(key)}\" here:\n // since garbage collection may run at any time, it could also kick in\n // between the calls to cache.has() and cache.get(). In that case,\n // we would return 'undefined' even though we do support the encoding.\n if (macEncodingTableCache) {\n const cachedTable = macEncodingTableCache.get(cacheKey);\n if (cachedTable !== undefined) {\n return cachedTable;\n }\n }\n\n const decodingTable = eightBitMacEncodings[encoding];\n if (decodingTable === undefined) {\n return undefined;\n }\n\n const encodingTable = {};\n for (let i = 0; i < decodingTable.length; i++) {\n encodingTable[decodingTable.charCodeAt(i)] = i + 0x80;\n }\n\n if (macEncodingTableCache) {\n macEncodingTableCache.set(cacheKey, encodingTable);\n }\n\n return encodingTable;\n};\n\n/**\n * Encodes an old-style Macintosh string. Returns a byte array upon success.\n * If the requested encoding is unsupported, or if the input string contains\n * a character that cannot be expressed in the encoding, the function returns\n * 'undefined'.\n * @param {string} str\n * @param {string} encoding\n * @returns {Array}\n */\nencode.MACSTRING = function(str, encoding) {\n const table = getMacEncodingTable(encoding);\n if (table === undefined) {\n return undefined;\n }\n\n const result = [];\n for (let i = 0; i < str.length; i++) {\n let c = str.charCodeAt(i);\n\n // In all eight-bit Mac encodings, the characters 0x00..0x7F are\n // mapped to U+0000..U+007F; we only need to look up the others.\n if (c >= 0x80) {\n c = table[c];\n if (c === undefined) {\n // str contains a Unicode character that cannot be encoded\n // in the requested encoding.\n return undefined;\n }\n }\n result[i] = c;\n // result.push(c);\n }\n\n return result;\n};\n\n/**\n * @param {string} str\n * @param {string} encoding\n * @returns {number}\n */\nsizeOf.MACSTRING = function(str, encoding) {\n const b = encode.MACSTRING(str, encoding);\n if (b !== undefined) {\n return b.length;\n } else {\n return 0;\n }\n};\n\n// Helper for encode.VARDELTAS\nfunction isByteEncodable(value) {\n return value >= -128 && value <= 127;\n}\n\n// Helper for encode.VARDELTAS\nfunction encodeVarDeltaRunAsZeroes(deltas, pos, result) {\n let runLength = 0;\n const numDeltas = deltas.length;\n while (pos < numDeltas && runLength < 64 && deltas[pos] === 0) {\n ++pos;\n ++runLength;\n }\n result.push(0x80 | (runLength - 1));\n return pos;\n}\n\n// Helper for encode.VARDELTAS\nfunction encodeVarDeltaRunAsBytes(deltas, offset, result) {\n let runLength = 0;\n const numDeltas = deltas.length;\n let pos = offset;\n while (pos < numDeltas && runLength < 64) {\n const value = deltas[pos];\n if (!isByteEncodable(value)) {\n break;\n }\n\n // Within a byte-encoded run of deltas, a single zero is best\n // stored literally as 0x00 value. However, if we have two or\n // more zeroes in a sequence, it is better to start a new run.\n // Fore example, the sequence of deltas [15, 15, 0, 15, 15]\n // becomes 6 bytes (04 0F 0F 00 0F 0F) when storing the zero\n // within the current run, but 7 bytes (01 0F 0F 80 01 0F 0F)\n // when starting a new run.\n if (value === 0 && pos + 1 < numDeltas && deltas[pos + 1] === 0) {\n break;\n }\n\n ++pos;\n ++runLength;\n }\n result.push(runLength - 1);\n for (let i = offset; i < pos; ++i) {\n result.push((deltas[i] + 256) & 0xff);\n }\n return pos;\n}\n\n// Helper for encode.VARDELTAS\nfunction encodeVarDeltaRunAsWords(deltas, offset, result) {\n let runLength = 0;\n const numDeltas = deltas.length;\n let pos = offset;\n while (pos < numDeltas && runLength < 64) {\n const value = deltas[pos];\n\n // Within a word-encoded run of deltas, it is easiest to start\n // a new run (with a different encoding) whenever we encounter\n // a zero value. For example, the sequence [0x6666, 0, 0x7777]\n // needs 7 bytes when storing the zero inside the current run\n // (42 66 66 00 00 77 77), and equally 7 bytes when starting a\n // new run (40 66 66 80 40 77 77).\n if (value === 0) {\n break;\n }\n\n // Within a word-encoded run of deltas, a single value in the\n // range (-128..127) should be encoded within the current run\n // because it is more compact. For example, the sequence\n // [0x6666, 2, 0x7777] becomes 7 bytes when storing the value\n // literally (42 66 66 00 02 77 77), but 8 bytes when starting\n // a new run (40 66 66 00 02 40 77 77).\n if (isByteEncodable(value) && pos + 1 < numDeltas && isByteEncodable(deltas[pos + 1])) {\n break;\n }\n\n ++pos;\n ++runLength;\n }\n result.push(0x40 | (runLength - 1));\n for (let i = offset; i < pos; ++i) {\n const val = deltas[i];\n result.push(((val + 0x10000) >> 8) & 0xff, (val + 0x100) & 0xff);\n }\n return pos;\n}\n\n/**\n * Encode a list of variation adjustment deltas.\n *\n * Variation adjustment deltas are used in ‘gvar’ and ‘cvar’ tables.\n * They indicate how points (in ‘gvar’) or values (in ‘cvar’) get adjusted\n * when generating instances of variation fonts.\n *\n * @see https://www.microsoft.com/typography/otspec/gvar.htm\n * @see https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6gvar.html\n * @param {Array}\n * @return {Array}\n */\nencode.VARDELTAS = function(deltas) {\n let pos = 0;\n const result = [];\n while (pos < deltas.length) {\n const value = deltas[pos];\n if (value === 0) {\n pos = encodeVarDeltaRunAsZeroes(deltas, pos, result);\n } else if (value >= -128 && value <= 127) {\n pos = encodeVarDeltaRunAsBytes(deltas, pos, result);\n } else {\n pos = encodeVarDeltaRunAsWords(deltas, pos, result);\n }\n }\n return result;\n};\n\n// Convert a list of values to a CFF INDEX structure.\n// The values should be objects containing name / type / value.\n/**\n * @param {Array} l\n * @returns {Array}\n */\nencode.INDEX = function(l) {\n //var offset, offsets, offsetEncoder, encodedOffsets, encodedOffset, data,\n // i, v;\n // Because we have to know which data type to use to encode the offsets,\n // we have to go through the values twice: once to encode the data and\n // calculate the offsets, then again to encode the offsets using the fitting data type.\n let offset = 1; // First offset is always 1.\n const offsets = [offset];\n const data = [];\n for (let i = 0; i < l.length; i += 1) {\n const v = encode.OBJECT(l[i]);\n Array.prototype.push.apply(data, v);\n offset += v.length;\n offsets.push(offset);\n }\n\n if (data.length === 0) {\n return [0, 0];\n }\n\n const encodedOffsets = [];\n const offSize = (1 + Math.floor(Math.log(offset) / Math.log(2)) / 8) | 0;\n const offsetEncoder = [undefined, encode.BYTE, encode.USHORT, encode.UINT24, encode.ULONG][offSize];\n for (let i = 0; i < offsets.length; i += 1) {\n const encodedOffset = offsetEncoder(offsets[i]);\n Array.prototype.push.apply(encodedOffsets, encodedOffset);\n }\n\n return Array.prototype.concat(encode.Card16(l.length),\n encode.OffSize(offSize),\n encodedOffsets,\n data);\n};\n\n/**\n * @param {Array}\n * @returns {number}\n */\nsizeOf.INDEX = function(v) {\n return encode.INDEX(v).length;\n};\n\n/**\n * Convert an object to a CFF DICT structure.\n * The keys should be numeric.\n * The values should be objects containing name / type / value.\n * @param {Object} m\n * @returns {Array}\n */\nencode.DICT = function(m) {\n let d = [];\n const keys = Object.keys(m);\n const length = keys.length;\n\n for (let i = 0; i < length; i += 1) {\n // Object.keys() return string keys, but our keys are always numeric.\n const k = parseInt(keys[i], 0);\n const v = m[k];\n // Value comes before the key.\n d = d.concat(encode.OPERAND(v.value, v.type));\n d = d.concat(encode.OPERATOR(k));\n }\n\n return d;\n};\n\n/**\n * @param {Object}\n * @returns {number}\n */\nsizeOf.DICT = function(m) {\n return encode.DICT(m).length;\n};\n\n/**\n * @param {number}\n * @returns {Array}\n */\nencode.OPERATOR = function(v) {\n if (v < 1200) {\n return [v];\n } else {\n return [12, v - 1200];\n }\n};\n\n/**\n * @param {Array} v\n * @param {string}\n * @returns {Array}\n */\nencode.OPERAND = function(v, type) {\n let d = [];\n if (Array.isArray(type)) {\n for (let i = 0; i < type.length; i += 1) {\n check.argument(v.length === type.length, 'Not enough arguments given for type' + type);\n d = d.concat(encode.OPERAND(v[i], type[i]));\n }\n } else {\n if (type === 'SID') {\n d = d.concat(encode.NUMBER(v));\n } else if (type === 'offset') {\n // We make it easy for ourselves and always encode offsets as\n // 4 bytes. This makes offset calculation for the top dict easier.\n d = d.concat(encode.NUMBER32(v));\n } else if (type === 'number') {\n d = d.concat(encode.NUMBER(v));\n } else if (type === 'real') {\n d = d.concat(encode.REAL(v));\n } else {\n throw new Error('Unknown operand type ' + type);\n // FIXME Add support for booleans\n }\n }\n\n return d;\n};\n\nencode.OP = encode.BYTE;\nsizeOf.OP = sizeOf.BYTE;\n\n// memoize charstring encoding using WeakMap if available\nconst wmm = typeof WeakMap === 'function' && new WeakMap();\n\n/**\n * Convert a list of CharString operations to bytes.\n * @param {Array}\n * @returns {Array}\n */\nencode.CHARSTRING = function(ops) {\n // See encode.MACSTRING for why we don't do \"if (wmm && wmm.has(ops))\".\n if (wmm) {\n const cachedValue = wmm.get(ops);\n if (cachedValue !== undefined) {\n return cachedValue;\n }\n }\n\n let d = [];\n const length = ops.length;\n\n for (let i = 0; i < length; i += 1) {\n const op = ops[i];\n d = d.concat(encode[op.type](op.value));\n }\n\n if (wmm) {\n wmm.set(ops, d);\n }\n\n return d;\n};\n\n/**\n * @param {Array}\n * @returns {number}\n */\nsizeOf.CHARSTRING = function(ops) {\n return encode.CHARSTRING(ops).length;\n};\n\n// Utility functions ////////////////////////////////////////////////////////\n\n/**\n * Convert an object containing name / type / value to bytes.\n * @param {Object}\n * @returns {Array}\n */\nencode.OBJECT = function(v) {\n const encodingFunction = encode[v.type];\n check.argument(encodingFunction !== undefined, 'No encoding function for type ' + v.type);\n return encodingFunction(v.value);\n};\n\n/**\n * @param {Object}\n * @returns {number}\n */\nsizeOf.OBJECT = function(v) {\n const sizeOfFunction = sizeOf[v.type];\n check.argument(sizeOfFunction !== undefined, 'No sizeOf function for type ' + v.type);\n return sizeOfFunction(v.value);\n};\n\n/**\n * Convert a table object to bytes.\n * A table contains a list of fields containing the metadata (name, type and default value).\n * The table itself has the field values set as attributes.\n * @param {opentype.Table}\n * @returns {Array}\n */\nencode.TABLE = function(table) {\n let d = [];\n const length = table.fields.length;\n const subtables = [];\n const subtableOffsets = [];\n\n for (let i = 0; i < length; i += 1) {\n const field = table.fields[i];\n const encodingFunction = encode[field.type];\n check.argument(encodingFunction !== undefined, 'No encoding function for field type ' + field.type + ' (' + field.name + ')');\n let value = table[field.name];\n if (value === undefined) {\n value = field.value;\n }\n\n const bytes = encodingFunction(value);\n\n if (field.type === 'TABLE') {\n subtableOffsets.push(d.length);\n d = d.concat([0, 0]);\n subtables.push(bytes);\n } else {\n d = d.concat(bytes);\n }\n }\n\n for (let i = 0; i < subtables.length; i += 1) {\n const o = subtableOffsets[i];\n const offset = d.length;\n check.argument(offset < 65536, 'Table ' + table.tableName + ' too big.');\n d[o] = offset >> 8;\n d[o + 1] = offset & 0xff;\n d = d.concat(subtables[i]);\n }\n\n return d;\n};\n\n/**\n * @param {opentype.Table}\n * @returns {number}\n */\nsizeOf.TABLE = function(table) {\n let numBytes = 0;\n const length = table.fields.length;\n\n for (let i = 0; i < length; i += 1) {\n const field = table.fields[i];\n const sizeOfFunction = sizeOf[field.type];\n check.argument(sizeOfFunction !== undefined, 'No sizeOf function for field type ' + field.type + ' (' + field.name + ')');\n let value = table[field.name];\n if (value === undefined) {\n value = field.value;\n }\n\n numBytes += sizeOfFunction(value);\n\n // Subtables take 2 more bytes for offsets.\n if (field.type === 'TABLE') {\n numBytes += 2;\n }\n }\n\n return numBytes;\n};\n\nencode.RECORD = encode.TABLE;\nsizeOf.RECORD = sizeOf.TABLE;\n\n// Merge in a list of bytes.\nencode.LITERAL = function(v) {\n return v;\n};\n\nsizeOf.LITERAL = function(v) {\n return v.length;\n};\n\nexport { decode, encode, sizeOf };\n","// The `GPOS` table contains kerning pairs, among other things.\n// https://www.microsoft.com/typography/OTSPEC/gpos.htm\n\nimport check from '../check';\nimport { decode } from '../types';\nimport parse from '../parse';\n\n// Parse the metadata `meta` table.\n// https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6meta.html\nfunction parseMetaTable(data, start) {\n const p = new parse.Parser(data, start);\n const tableVersion = p.parseULong();\n check.argument(tableVersion === 1, 'Unsupported META table version.');\n p.parseULong(); // flags - currently unused and set to 0\n p.parseULong(); // tableOffset\n const numDataMaps = p.parseULong();\n\n const tags = {};\n for (let i = 0; i < numDataMaps; i++) {\n const tag = p.parseTag();\n const dataOffset = p.parseULong();\n const dataLength = p.parseULong();\n const text = decode.UTF8(data, start + dataOffset, dataLength);\n\n tags[tag] = text;\n }\n return tags;\n}\n\nexport default { parse: parseMetaTable };\n","// opentype.js\n// https://github.com/opentypejs/opentype.js\n// (c) 2015 Frederik De Bleser\n// opentype.js may be freely distributed under the MIT license.\n\n/* global DataView, Uint8Array */\n\nimport { inflateSync } from 'fflate';\nimport Font from './font';\nimport Glyph from './glyph';\nimport { CmapEncoding, addGlyphNames } from './encoding';\nimport parse from './parse';\nimport Path from './path';\nimport cmap from './tables/cmap';\nimport cff from './tables/cff';\nimport fvar from './tables/fvar';\nimport glyf from './tables/glyf';\nimport gdef from './tables/gdef';\nimport gpos from './tables/gpos';\nimport gsub from './tables/gsub';\nimport head from './tables/head';\nimport hhea from './tables/hhea';\nimport hmtx from './tables/hmtx';\nimport kern from './tables/kern';\nimport ltag from './tables/ltag';\nimport loca from './tables/loca';\nimport maxp from './tables/maxp';\nimport os2 from './tables/os2';\nimport post from './tables/post';\nimport meta from './tables/meta';\n\n/**\n * The opentype library.\n * @namespace opentype\n */\n\n// Table Directory Entries //////////////////////////////////////////////\n/**\n * Parses OpenType table entries.\n * @param {DataView}\n * @param {Number}\n * @return {Object[]}\n */\nfunction parseOpenTypeTableEntries(data, numTables) {\n const tableEntries = [];\n let p = 12;\n for (let i = 0; i < numTables; i += 1) {\n const tag = parse.getTag(data, p);\n const checksum = parse.getULong(data, p + 4);\n const offset = parse.getULong(data, p + 8);\n const length = parse.getULong(data, p + 12);\n tableEntries.push({\n tag: tag,\n checksum: checksum,\n offset: offset,\n length: length,\n compression: false,\n });\n p += 16;\n }\n\n return tableEntries;\n}\n\n/**\n * Parses WOFF table entries.\n * @param {DataView}\n * @param {Number}\n * @return {Object[]}\n */\nfunction parseWOFFTableEntries(data, numTables) {\n const tableEntries = [];\n let p = 44; // offset to the first table directory entry.\n for (let i = 0; i < numTables; i += 1) {\n const tag = parse.getTag(data, p);\n const offset = parse.getULong(data, p + 4);\n const compLength = parse.getULong(data, p + 8);\n const origLength = parse.getULong(data, p + 12);\n let compression;\n if (compLength < origLength) {\n compression = 'WOFF';\n } else {\n compression = false;\n }\n\n tableEntries.push({\n tag: tag,\n offset: offset,\n compression: compression,\n compressedLength: compLength,\n length: origLength,\n });\n p += 20;\n }\n\n return tableEntries;\n}\n\n/**\n * @typedef TableData\n * @type Object\n * @property {DataView} data - The DataView\n * @property {number} offset - The data offset.\n */\n\n/**\n * @param {DataView}\n * @param {Object}\n * @return {TableData}\n */\nfunction uncompressTable(data, tableEntry) {\n if (tableEntry.compression === 'WOFF') {\n const inBuffer = new Uint8Array(\n data.buffer,\n tableEntry.offset + 2,\n tableEntry.compressedLength - 2\n );\n const outBuffer = new Uint8Array(tableEntry.length);\n inflateSync(inBuffer, outBuffer);\n if (outBuffer.byteLength !== tableEntry.length) {\n throw new Error(\n 'Decompression error: ' +\n tableEntry.tag +\n ` decompressed length doesn't match recorded length`\n );\n }\n\n const view = new DataView(outBuffer.buffer, 0);\n return { data: view, offset: 0 };\n } else {\n return { data: data, offset: tableEntry.offset };\n }\n}\n\n// Public API ///////////////////////////////////////////////////////////\n\n/**\n * Parse the OpenType file data (as an ArrayBuffer) and return a Font object.\n * Throws an error if the font could not be parsed.\n * @param {ArrayBuffer}\n * @param {Object} opt - options for parsing\n * @return {opentype.Font}\n */\nfunction parseBuffer(buffer, opt) {\n opt = opt === undefined || opt === null ? {} : opt;\n\n let indexToLocFormat;\n\n // Since the constructor can also be called to create new fonts from scratch, we indicate this\n // should be an empty font that we'll fill with our own data.\n const font = new Font({ empty: true });\n\n // OpenType fonts use big endian byte ordering.\n // We can't rely on typed array view types, because they operate with the endianness of the host computer.\n // Instead we use DataViews where we can specify endianness.\n const data = new DataView(buffer, 0);\n let numTables;\n let tableEntries = [];\n const signature = parse.getTag(data, 0);\n if (\n signature === String.fromCharCode(0, 1, 0, 0) ||\n signature === 'true' ||\n signature === 'typ1'\n ) {\n font.outlinesFormat = 'truetype';\n numTables = parse.getUShort(data, 4);\n tableEntries = parseOpenTypeTableEntries(data, numTables);\n } else if (signature === 'OTTO') {\n font.outlinesFormat = 'cff';\n numTables = parse.getUShort(data, 4);\n tableEntries = parseOpenTypeTableEntries(data, numTables);\n } else if (signature === 'wOFF') {\n const flavor = parse.getTag(data, 4);\n if (flavor === String.fromCharCode(0, 1, 0, 0)) {\n font.outlinesFormat = 'truetype';\n } else if (flavor === 'OTTO') {\n font.outlinesFormat = 'cff';\n } else {\n throw new Error('Unsupported OpenType flavor ' + signature);\n }\n\n numTables = parse.getUShort(data, 12);\n tableEntries = parseWOFFTableEntries(data, numTables);\n } else {\n throw new Error('Unsupported OpenType signature ' + signature);\n }\n\n let cffTableEntry;\n let fvarTableEntry;\n let glyfTableEntry;\n let gdefTableEntry;\n let gposTableEntry;\n let gsubTableEntry;\n let hmtxTableEntry;\n let kernTableEntry;\n let locaTableEntry;\n let metaTableEntry;\n let p;\n\n for (let i = 0; i < numTables; i += 1) {\n const tableEntry = tableEntries[i];\n let table;\n switch (tableEntry.tag) {\n case 'cmap':\n table = uncompressTable(data, tableEntry);\n font.tables.cmap = cmap.parse(table.data, table.offset);\n font.encoding = new CmapEncoding(font.tables.cmap);\n break;\n case 'cvt ':\n table = uncompressTable(data, tableEntry);\n p = new parse.Parser(table.data, table.offset);\n font.tables.cvt = p.parseShortList(tableEntry.length / 2);\n break;\n case 'fvar':\n fvarTableEntry = tableEntry;\n break;\n case 'fpgm':\n table = uncompressTable(data, tableEntry);\n p = new parse.Parser(table.data, table.offset);\n font.tables.fpgm = p.parseByteList(tableEntry.length);\n break;\n case 'head':\n table = uncompressTable(data, tableEntry);\n font.tables.head = head.parse(table.data, table.offset);\n font.unitsPerEm = font.tables.head.unitsPerEm;\n indexToLocFormat = font.tables.head.indexToLocFormat;\n break;\n case 'hhea':\n table = uncompressTable(data, tableEntry);\n font.tables.hhea = hhea.parse(table.data, table.offset);\n font.ascender = font.tables.hhea.ascender;\n font.descender = font.tables.hhea.descender;\n font.numberOfHMetrics = font.tables.hhea.numberOfHMetrics;\n break;\n case 'hmtx':\n hmtxTableEntry = tableEntry;\n break;\n case 'ltag':\n table = uncompressTable(data, tableEntry);\n ltagTable = ltag.parse(table.data, table.offset);\n break;\n case 'maxp':\n table = uncompressTable(data, tableEntry);\n font.tables.maxp = maxp.parse(table.data, table.offset);\n font.numGlyphs = font.tables.maxp.numGlyphs;\n break;\n case 'OS/2':\n table = uncompressTable(data, tableEntry);\n font.tables.os2 = os2.parse(table.data, table.offset);\n break;\n case 'post':\n table = uncompressTable(data, tableEntry);\n font.tables.post = post.parse(table.data, table.offset);\n break;\n case 'prep':\n table = uncompressTable(data, tableEntry);\n p = new parse.Parser(table.data, table.offset);\n font.tables.prep = p.parseByteList(tableEntry.length);\n break;\n case 'glyf':\n glyfTableEntry = tableEntry;\n break;\n case 'loca':\n locaTableEntry = tableEntry;\n break;\n case 'CFF ':\n cffTableEntry = tableEntry;\n break;\n case 'kern':\n kernTableEntry = tableEntry;\n break;\n case 'GDEF':\n gdefTableEntry = tableEntry;\n break;\n case 'GPOS':\n gposTableEntry = tableEntry;\n break;\n case 'GSUB':\n gsubTableEntry = tableEntry;\n break;\n case 'meta':\n metaTableEntry = tableEntry;\n break;\n }\n }\n\n if (glyfTableEntry && locaTableEntry) {\n const shortVersion = indexToLocFormat === 0;\n const locaTable = uncompressTable(data, locaTableEntry);\n const locaOffsets = loca.parse(\n locaTable.data,\n locaTable.offset,\n font.numGlyphs,\n shortVersion\n );\n const glyfTable = uncompressTable(data, glyfTableEntry);\n font.glyphs = glyf.parse(\n glyfTable.data,\n glyfTable.offset,\n locaOffsets,\n font,\n opt\n );\n } else if (cffTableEntry) {\n const cffTable = uncompressTable(data, cffTableEntry);\n cff.parse(cffTable.data, cffTable.offset, font, opt);\n } else {\n throw new Error(`Font doesn't contain TrueType or CFF outlines.`);\n }\n\n const hmtxTable = uncompressTable(data, hmtxTableEntry);\n hmtx.parse(\n font,\n hmtxTable.data,\n hmtxTable.offset,\n font.numberOfHMetrics,\n font.numGlyphs,\n font.glyphs,\n opt\n );\n addGlyphNames(font, opt);\n\n if (kernTableEntry) {\n const kernTable = uncompressTable(data, kernTableEntry);\n font.kerningPairs = kern.parse(kernTable.data, kernTable.offset);\n } else {\n font.kerningPairs = {};\n }\n\n if (gdefTableEntry) {\n const gdefTable = uncompressTable(data, gdefTableEntry);\n font.tables.gdef = gdef.parse(gdefTable.data, gdefTable.offset);\n }\n\n if (gposTableEntry) {\n const gposTable = uncompressTable(data, gposTableEntry);\n font.tables.gpos = gpos.parse(gposTable.data, gposTable.offset);\n font.position.init();\n }\n\n if (gsubTableEntry) {\n const gsubTable = uncompressTable(data, gsubTableEntry);\n font.tables.gsub = gsub.parse(gsubTable.data, gsubTable.offset);\n }\n\n if (fvarTableEntry) {\n const fvarTable = uncompressTable(data, fvarTableEntry);\n font.tables.fvar = fvar.parse(\n fvarTable.data,\n fvarTable.offset,\n font.names\n );\n }\n\n if (metaTableEntry) {\n const metaTable = uncompressTable(data, metaTableEntry);\n font.tables.meta = meta.parse(metaTable.data, metaTable.offset);\n font.metas = font.tables.meta;\n }\n\n return font;\n}\n\nfunction load() {}\nfunction loadSync() {}\n\nexport {\n Font,\n Glyph,\n Path,\n parse as _parse,\n parseBuffer as parse,\n load,\n loadSync,\n};\n","export async function getYogaModule() {\n const { default: initYoga } = await import('yoga-wasm-web/asm')\n return initYoga()\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: ()=>_default\n});\nfunction _default(value) {\n value = `${value}`;\n if (value === \"0\") {\n return \"0\";\n }\n // Flip sign of numbers\n if (/^[+-]?(\\d+|\\d*\\.\\d+)(e[+-]?\\d+)?(%|\\w+)?$/.test(value)) {\n return value.replace(/^[+-]?/, (sign)=>sign === \"-\" ? \"\" : \"-\");\n }\n if (value.includes(\"var(\") || value.includes(\"calc(\")) {\n return `calc(${value} * -1)`;\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: ()=>_default\n});\nconst _default = [\n \"preflight\",\n \"container\",\n \"accessibility\",\n \"pointerEvents\",\n \"visibility\",\n \"position\",\n \"inset\",\n \"isolation\",\n \"zIndex\",\n \"order\",\n \"gridColumn\",\n \"gridColumnStart\",\n \"gridColumnEnd\",\n \"gridRow\",\n \"gridRowStart\",\n \"gridRowEnd\",\n \"float\",\n \"clear\",\n \"margin\",\n \"boxSizing\",\n \"display\",\n \"aspectRatio\",\n \"height\",\n \"maxHeight\",\n \"minHeight\",\n \"width\",\n \"minWidth\",\n \"maxWidth\",\n \"flex\",\n \"flexShrink\",\n \"flexGrow\",\n \"flexBasis\",\n \"tableLayout\",\n \"borderCollapse\",\n \"borderSpacing\",\n \"transformOrigin\",\n \"translate\",\n \"rotate\",\n \"skew\",\n \"scale\",\n \"transform\",\n \"animation\",\n \"cursor\",\n \"touchAction\",\n \"userSelect\",\n \"resize\",\n \"scrollSnapType\",\n \"scrollSnapAlign\",\n \"scrollSnapStop\",\n \"scrollMargin\",\n \"scrollPadding\",\n \"listStylePosition\",\n \"listStyleType\",\n \"appearance\",\n \"columns\",\n \"breakBefore\",\n \"breakInside\",\n \"breakAfter\",\n \"gridAutoColumns\",\n \"gridAutoFlow\",\n \"gridAutoRows\",\n \"gridTemplateColumns\",\n \"gridTemplateRows\",\n \"flexDirection\",\n \"flexWrap\",\n \"placeContent\",\n \"placeItems\",\n \"alignContent\",\n \"alignItems\",\n \"justifyContent\",\n \"justifyItems\",\n \"gap\",\n \"space\",\n \"divideWidth\",\n \"divideStyle\",\n \"divideColor\",\n \"divideOpacity\",\n \"placeSelf\",\n \"alignSelf\",\n \"justifySelf\",\n \"overflow\",\n \"overscrollBehavior\",\n \"scrollBehavior\",\n \"textOverflow\",\n \"whitespace\",\n \"wordBreak\",\n \"borderRadius\",\n \"borderWidth\",\n \"borderStyle\",\n \"borderColor\",\n \"borderOpacity\",\n \"backgroundColor\",\n \"backgroundOpacity\",\n \"backgroundImage\",\n \"gradientColorStops\",\n \"boxDecorationBreak\",\n \"backgroundSize\",\n \"backgroundAttachment\",\n \"backgroundClip\",\n \"backgroundPosition\",\n \"backgroundRepeat\",\n \"backgroundOrigin\",\n \"fill\",\n \"stroke\",\n \"strokeWidth\",\n \"objectFit\",\n \"objectPosition\",\n \"padding\",\n \"textAlign\",\n \"textIndent\",\n \"verticalAlign\",\n \"fontFamily\",\n \"fontSize\",\n \"fontWeight\",\n \"textTransform\",\n \"fontStyle\",\n \"fontVariantNumeric\",\n \"lineHeight\",\n \"letterSpacing\",\n \"textColor\",\n \"textOpacity\",\n \"textDecoration\",\n \"textDecorationColor\",\n \"textDecorationStyle\",\n \"textDecorationThickness\",\n \"textUnderlineOffset\",\n \"fontSmoothing\",\n \"placeholderColor\",\n \"placeholderOpacity\",\n \"caretColor\",\n \"accentColor\",\n \"opacity\",\n \"backgroundBlendMode\",\n \"mixBlendMode\",\n \"boxShadow\",\n \"boxShadowColor\",\n \"outlineStyle\",\n \"outlineWidth\",\n \"outlineOffset\",\n \"outlineColor\",\n \"ringWidth\",\n \"ringColor\",\n \"ringOpacity\",\n \"ringOffsetWidth\",\n \"ringOffsetColor\",\n \"blur\",\n \"brightness\",\n \"contrast\",\n \"dropShadow\",\n \"grayscale\",\n \"hueRotate\",\n \"invert\",\n \"saturate\",\n \"sepia\",\n \"filter\",\n \"backdropBlur\",\n \"backdropBrightness\",\n \"backdropContrast\",\n \"backdropGrayscale\",\n \"backdropHueRotate\",\n \"backdropInvert\",\n \"backdropOpacity\",\n \"backdropSaturate\",\n \"backdropSepia\",\n \"backdropFilter\",\n \"transitionProperty\",\n \"transitionDelay\",\n \"transitionDuration\",\n \"transitionTimingFunction\",\n \"willChange\",\n \"content\"\n];\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: ()=>_default\n});\nfunction _default(pluginConfig, plugins) {\n if (pluginConfig === undefined) {\n return plugins;\n }\n const pluginNames = Array.isArray(pluginConfig) ? pluginConfig : [\n ...new Set(plugins.filter((pluginName)=>{\n return pluginConfig !== false && pluginConfig[pluginName] !== false;\n }).concat(Object.keys(pluginConfig).filter((pluginName)=>{\n return pluginConfig[pluginName] !== false;\n }))), \n ];\n return pluginNames;\n}\n","/** @type {import('tailwindcss').Config} */\nmodule.exports = {\n content: [],\n presets: [],\n darkMode: 'media', // or 'class'\n theme: {\n screens: {\n sm: '640px',\n md: '768px',\n lg: '1024px',\n xl: '1280px',\n '2xl': '1536px',\n },\n colors: ({ colors }) => ({\n inherit: colors.inherit,\n current: colors.current,\n transparent: colors.transparent,\n black: colors.black,\n white: colors.white,\n slate: colors.slate,\n gray: colors.gray,\n zinc: colors.zinc,\n neutral: colors.neutral,\n stone: colors.stone,\n red: colors.red,\n orange: colors.orange,\n amber: colors.amber,\n yellow: colors.yellow,\n lime: colors.lime,\n green: colors.green,\n emerald: colors.emerald,\n teal: colors.teal,\n cyan: colors.cyan,\n sky: colors.sky,\n blue: colors.blue,\n indigo: colors.indigo,\n violet: colors.violet,\n purple: colors.purple,\n fuchsia: colors.fuchsia,\n pink: colors.pink,\n rose: colors.rose,\n }),\n columns: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n '3xs': '16rem',\n '2xs': '18rem',\n xs: '20rem',\n sm: '24rem',\n md: '28rem',\n lg: '32rem',\n xl: '36rem',\n '2xl': '42rem',\n '3xl': '48rem',\n '4xl': '56rem',\n '5xl': '64rem',\n '6xl': '72rem',\n '7xl': '80rem',\n },\n spacing: {\n px: '1px',\n 0: '0px',\n 0.5: '0.125rem',\n 1: '0.25rem',\n 1.5: '0.375rem',\n 2: '0.5rem',\n 2.5: '0.625rem',\n 3: '0.75rem',\n 3.5: '0.875rem',\n 4: '1rem',\n 5: '1.25rem',\n 6: '1.5rem',\n 7: '1.75rem',\n 8: '2rem',\n 9: '2.25rem',\n 10: '2.5rem',\n 11: '2.75rem',\n 12: '3rem',\n 14: '3.5rem',\n 16: '4rem',\n 20: '5rem',\n 24: '6rem',\n 28: '7rem',\n 32: '8rem',\n 36: '9rem',\n 40: '10rem',\n 44: '11rem',\n 48: '12rem',\n 52: '13rem',\n 56: '14rem',\n 60: '15rem',\n 64: '16rem',\n 72: '18rem',\n 80: '20rem',\n 96: '24rem',\n },\n animation: {\n none: 'none',\n spin: 'spin 1s linear infinite',\n ping: 'ping 1s cubic-bezier(0, 0, 0.2, 1) infinite',\n pulse: 'pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite',\n bounce: 'bounce 1s infinite',\n },\n aspectRatio: {\n auto: 'auto',\n square: '1 / 1',\n video: '16 / 9',\n },\n backdropBlur: ({ theme }) => theme('blur'),\n backdropBrightness: ({ theme }) => theme('brightness'),\n backdropContrast: ({ theme }) => theme('contrast'),\n backdropGrayscale: ({ theme }) => theme('grayscale'),\n backdropHueRotate: ({ theme }) => theme('hueRotate'),\n backdropInvert: ({ theme }) => theme('invert'),\n backdropOpacity: ({ theme }) => theme('opacity'),\n backdropSaturate: ({ theme }) => theme('saturate'),\n backdropSepia: ({ theme }) => theme('sepia'),\n backgroundColor: ({ theme }) => theme('colors'),\n backgroundImage: {\n none: 'none',\n 'gradient-to-t': 'linear-gradient(to top, var(--tw-gradient-stops))',\n 'gradient-to-tr': 'linear-gradient(to top right, var(--tw-gradient-stops))',\n 'gradient-to-r': 'linear-gradient(to right, var(--tw-gradient-stops))',\n 'gradient-to-br': 'linear-gradient(to bottom right, var(--tw-gradient-stops))',\n 'gradient-to-b': 'linear-gradient(to bottom, var(--tw-gradient-stops))',\n 'gradient-to-bl': 'linear-gradient(to bottom left, var(--tw-gradient-stops))',\n 'gradient-to-l': 'linear-gradient(to left, var(--tw-gradient-stops))',\n 'gradient-to-tl': 'linear-gradient(to top left, var(--tw-gradient-stops))',\n },\n backgroundOpacity: ({ theme }) => theme('opacity'),\n backgroundPosition: {\n bottom: 'bottom',\n center: 'center',\n left: 'left',\n 'left-bottom': 'left bottom',\n 'left-top': 'left top',\n right: 'right',\n 'right-bottom': 'right bottom',\n 'right-top': 'right top',\n top: 'top',\n },\n backgroundSize: {\n auto: 'auto',\n cover: 'cover',\n contain: 'contain',\n },\n blur: {\n 0: '0',\n none: '0',\n sm: '4px',\n DEFAULT: '8px',\n md: '12px',\n lg: '16px',\n xl: '24px',\n '2xl': '40px',\n '3xl': '64px',\n },\n brightness: {\n 0: '0',\n 50: '.5',\n 75: '.75',\n 90: '.9',\n 95: '.95',\n 100: '1',\n 105: '1.05',\n 110: '1.1',\n 125: '1.25',\n 150: '1.5',\n 200: '2',\n },\n borderColor: ({ theme }) => ({\n ...theme('colors'),\n DEFAULT: theme('colors.gray.200', 'currentColor'),\n }),\n borderOpacity: ({ theme }) => theme('opacity'),\n borderRadius: {\n none: '0px',\n sm: '0.125rem',\n DEFAULT: '0.25rem',\n md: '0.375rem',\n lg: '0.5rem',\n xl: '0.75rem',\n '2xl': '1rem',\n '3xl': '1.5rem',\n full: '9999px',\n },\n borderSpacing: ({ theme }) => ({\n ...theme('spacing'),\n }),\n borderWidth: {\n DEFAULT: '1px',\n 0: '0px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n boxShadow: {\n sm: '0 1px 2px 0 rgb(0 0 0 / 0.05)',\n DEFAULT: '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',\n md: '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',\n lg: '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',\n xl: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\n '2xl': '0 25px 50px -12px rgb(0 0 0 / 0.25)',\n inner: 'inset 0 2px 4px 0 rgb(0 0 0 / 0.05)',\n none: 'none',\n },\n boxShadowColor: ({ theme }) => theme('colors'),\n caretColor: ({ theme }) => theme('colors'),\n accentColor: ({ theme }) => ({\n ...theme('colors'),\n auto: 'auto',\n }),\n contrast: {\n 0: '0',\n 50: '.5',\n 75: '.75',\n 100: '1',\n 125: '1.25',\n 150: '1.5',\n 200: '2',\n },\n container: {},\n content: {\n none: 'none',\n },\n cursor: {\n auto: 'auto',\n default: 'default',\n pointer: 'pointer',\n wait: 'wait',\n text: 'text',\n move: 'move',\n help: 'help',\n 'not-allowed': 'not-allowed',\n none: 'none',\n 'context-menu': 'context-menu',\n progress: 'progress',\n cell: 'cell',\n crosshair: 'crosshair',\n 'vertical-text': 'vertical-text',\n alias: 'alias',\n copy: 'copy',\n 'no-drop': 'no-drop',\n grab: 'grab',\n grabbing: 'grabbing',\n 'all-scroll': 'all-scroll',\n 'col-resize': 'col-resize',\n 'row-resize': 'row-resize',\n 'n-resize': 'n-resize',\n 'e-resize': 'e-resize',\n 's-resize': 's-resize',\n 'w-resize': 'w-resize',\n 'ne-resize': 'ne-resize',\n 'nw-resize': 'nw-resize',\n 'se-resize': 'se-resize',\n 'sw-resize': 'sw-resize',\n 'ew-resize': 'ew-resize',\n 'ns-resize': 'ns-resize',\n 'nesw-resize': 'nesw-resize',\n 'nwse-resize': 'nwse-resize',\n 'zoom-in': 'zoom-in',\n 'zoom-out': 'zoom-out',\n },\n divideColor: ({ theme }) => theme('borderColor'),\n divideOpacity: ({ theme }) => theme('borderOpacity'),\n divideWidth: ({ theme }) => theme('borderWidth'),\n dropShadow: {\n sm: '0 1px 1px rgb(0 0 0 / 0.05)',\n DEFAULT: ['0 1px 2px rgb(0 0 0 / 0.1)', '0 1px 1px rgb(0 0 0 / 0.06)'],\n md: ['0 4px 3px rgb(0 0 0 / 0.07)', '0 2px 2px rgb(0 0 0 / 0.06)'],\n lg: ['0 10px 8px rgb(0 0 0 / 0.04)', '0 4px 3px rgb(0 0 0 / 0.1)'],\n xl: ['0 20px 13px rgb(0 0 0 / 0.03)', '0 8px 5px rgb(0 0 0 / 0.08)'],\n '2xl': '0 25px 25px rgb(0 0 0 / 0.15)',\n none: '0 0 #0000',\n },\n fill: ({ theme }) => theme('colors'),\n grayscale: {\n 0: '0',\n DEFAULT: '100%',\n },\n hueRotate: {\n 0: '0deg',\n 15: '15deg',\n 30: '30deg',\n 60: '60deg',\n 90: '90deg',\n 180: '180deg',\n },\n invert: {\n 0: '0',\n DEFAULT: '100%',\n },\n flex: {\n 1: '1 1 0%',\n auto: '1 1 auto',\n initial: '0 1 auto',\n none: 'none',\n },\n flexBasis: ({ theme }) => ({\n auto: 'auto',\n ...theme('spacing'),\n '1/2': '50%',\n '1/3': '33.333333%',\n '2/3': '66.666667%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n '1/5': '20%',\n '2/5': '40%',\n '3/5': '60%',\n '4/5': '80%',\n '1/6': '16.666667%',\n '2/6': '33.333333%',\n '3/6': '50%',\n '4/6': '66.666667%',\n '5/6': '83.333333%',\n '1/12': '8.333333%',\n '2/12': '16.666667%',\n '3/12': '25%',\n '4/12': '33.333333%',\n '5/12': '41.666667%',\n '6/12': '50%',\n '7/12': '58.333333%',\n '8/12': '66.666667%',\n '9/12': '75%',\n '10/12': '83.333333%',\n '11/12': '91.666667%',\n full: '100%',\n }),\n flexGrow: {\n 0: '0',\n DEFAULT: '1',\n },\n flexShrink: {\n 0: '0',\n DEFAULT: '1',\n },\n fontFamily: {\n sans: [\n 'ui-sans-serif',\n 'system-ui',\n '-apple-system',\n 'BlinkMacSystemFont',\n '\"Segoe UI\"',\n 'Roboto',\n '\"Helvetica Neue\"',\n 'Arial',\n '\"Noto Sans\"',\n 'sans-serif',\n '\"Apple Color Emoji\"',\n '\"Segoe UI Emoji\"',\n '\"Segoe UI Symbol\"',\n '\"Noto Color Emoji\"',\n ],\n serif: ['ui-serif', 'Georgia', 'Cambria', '\"Times New Roman\"', 'Times', 'serif'],\n mono: [\n 'ui-monospace',\n 'SFMono-Regular',\n 'Menlo',\n 'Monaco',\n 'Consolas',\n '\"Liberation Mono\"',\n '\"Courier New\"',\n 'monospace',\n ],\n },\n fontSize: {\n xs: ['0.75rem', { lineHeight: '1rem' }],\n sm: ['0.875rem', { lineHeight: '1.25rem' }],\n base: ['1rem', { lineHeight: '1.5rem' }],\n lg: ['1.125rem', { lineHeight: '1.75rem' }],\n xl: ['1.25rem', { lineHeight: '1.75rem' }],\n '2xl': ['1.5rem', { lineHeight: '2rem' }],\n '3xl': ['1.875rem', { lineHeight: '2.25rem' }],\n '4xl': ['2.25rem', { lineHeight: '2.5rem' }],\n '5xl': ['3rem', { lineHeight: '1' }],\n '6xl': ['3.75rem', { lineHeight: '1' }],\n '7xl': ['4.5rem', { lineHeight: '1' }],\n '8xl': ['6rem', { lineHeight: '1' }],\n '9xl': ['8rem', { lineHeight: '1' }],\n },\n fontWeight: {\n thin: '100',\n extralight: '200',\n light: '300',\n normal: '400',\n medium: '500',\n semibold: '600',\n bold: '700',\n extrabold: '800',\n black: '900',\n },\n gap: ({ theme }) => theme('spacing'),\n gradientColorStops: ({ theme }) => theme('colors'),\n gridAutoColumns: {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n },\n gridAutoRows: {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n },\n gridColumn: {\n auto: 'auto',\n 'span-1': 'span 1 / span 1',\n 'span-2': 'span 2 / span 2',\n 'span-3': 'span 3 / span 3',\n 'span-4': 'span 4 / span 4',\n 'span-5': 'span 5 / span 5',\n 'span-6': 'span 6 / span 6',\n 'span-7': 'span 7 / span 7',\n 'span-8': 'span 8 / span 8',\n 'span-9': 'span 9 / span 9',\n 'span-10': 'span 10 / span 10',\n 'span-11': 'span 11 / span 11',\n 'span-12': 'span 12 / span 12',\n 'span-full': '1 / -1',\n },\n gridColumnEnd: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n 13: '13',\n },\n gridColumnStart: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n 13: '13',\n },\n gridRow: {\n auto: 'auto',\n 'span-1': 'span 1 / span 1',\n 'span-2': 'span 2 / span 2',\n 'span-3': 'span 3 / span 3',\n 'span-4': 'span 4 / span 4',\n 'span-5': 'span 5 / span 5',\n 'span-6': 'span 6 / span 6',\n 'span-full': '1 / -1',\n },\n gridRowStart: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n },\n gridRowEnd: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n },\n gridTemplateColumns: {\n none: 'none',\n 1: 'repeat(1, minmax(0, 1fr))',\n 2: 'repeat(2, minmax(0, 1fr))',\n 3: 'repeat(3, minmax(0, 1fr))',\n 4: 'repeat(4, minmax(0, 1fr))',\n 5: 'repeat(5, minmax(0, 1fr))',\n 6: 'repeat(6, minmax(0, 1fr))',\n 7: 'repeat(7, minmax(0, 1fr))',\n 8: 'repeat(8, minmax(0, 1fr))',\n 9: 'repeat(9, minmax(0, 1fr))',\n 10: 'repeat(10, minmax(0, 1fr))',\n 11: 'repeat(11, minmax(0, 1fr))',\n 12: 'repeat(12, minmax(0, 1fr))',\n },\n gridTemplateRows: {\n none: 'none',\n 1: 'repeat(1, minmax(0, 1fr))',\n 2: 'repeat(2, minmax(0, 1fr))',\n 3: 'repeat(3, minmax(0, 1fr))',\n 4: 'repeat(4, minmax(0, 1fr))',\n 5: 'repeat(5, minmax(0, 1fr))',\n 6: 'repeat(6, minmax(0, 1fr))',\n },\n height: ({ theme }) => ({\n auto: 'auto',\n ...theme('spacing'),\n '1/2': '50%',\n '1/3': '33.333333%',\n '2/3': '66.666667%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n '1/5': '20%',\n '2/5': '40%',\n '3/5': '60%',\n '4/5': '80%',\n '1/6': '16.666667%',\n '2/6': '33.333333%',\n '3/6': '50%',\n '4/6': '66.666667%',\n '5/6': '83.333333%',\n full: '100%',\n screen: '100vh',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n }),\n inset: ({ theme }) => ({\n auto: 'auto',\n ...theme('spacing'),\n '1/2': '50%',\n '1/3': '33.333333%',\n '2/3': '66.666667%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n full: '100%',\n }),\n keyframes: {\n spin: {\n to: {\n transform: 'rotate(360deg)',\n },\n },\n ping: {\n '75%, 100%': {\n transform: 'scale(2)',\n opacity: '0',\n },\n },\n pulse: {\n '50%': {\n opacity: '.5',\n },\n },\n bounce: {\n '0%, 100%': {\n transform: 'translateY(-25%)',\n animationTimingFunction: 'cubic-bezier(0.8,0,1,1)',\n },\n '50%': {\n transform: 'none',\n animationTimingFunction: 'cubic-bezier(0,0,0.2,1)',\n },\n },\n },\n letterSpacing: {\n tighter: '-0.05em',\n tight: '-0.025em',\n normal: '0em',\n wide: '0.025em',\n wider: '0.05em',\n widest: '0.1em',\n },\n lineHeight: {\n none: '1',\n tight: '1.25',\n snug: '1.375',\n normal: '1.5',\n relaxed: '1.625',\n loose: '2',\n 3: '.75rem',\n 4: '1rem',\n 5: '1.25rem',\n 6: '1.5rem',\n 7: '1.75rem',\n 8: '2rem',\n 9: '2.25rem',\n 10: '2.5rem',\n },\n listStyleType: {\n none: 'none',\n disc: 'disc',\n decimal: 'decimal',\n },\n margin: ({ theme }) => ({\n auto: 'auto',\n ...theme('spacing'),\n }),\n maxHeight: ({ theme }) => ({\n ...theme('spacing'),\n full: '100%',\n screen: '100vh',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n }),\n maxWidth: ({ theme, breakpoints }) => ({\n none: 'none',\n 0: '0rem',\n xs: '20rem',\n sm: '24rem',\n md: '28rem',\n lg: '32rem',\n xl: '36rem',\n '2xl': '42rem',\n '3xl': '48rem',\n '4xl': '56rem',\n '5xl': '64rem',\n '6xl': '72rem',\n '7xl': '80rem',\n full: '100%',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n prose: '65ch',\n ...breakpoints(theme('screens')),\n }),\n minHeight: {\n 0: '0px',\n full: '100%',\n screen: '100vh',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n },\n minWidth: {\n 0: '0px',\n full: '100%',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n },\n objectPosition: {\n bottom: 'bottom',\n center: 'center',\n left: 'left',\n 'left-bottom': 'left bottom',\n 'left-top': 'left top',\n right: 'right',\n 'right-bottom': 'right bottom',\n 'right-top': 'right top',\n top: 'top',\n },\n opacity: {\n 0: '0',\n 5: '0.05',\n 10: '0.1',\n 20: '0.2',\n 25: '0.25',\n 30: '0.3',\n 40: '0.4',\n 50: '0.5',\n 60: '0.6',\n 70: '0.7',\n 75: '0.75',\n 80: '0.8',\n 90: '0.9',\n 95: '0.95',\n 100: '1',\n },\n order: {\n first: '-9999',\n last: '9999',\n none: '0',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n },\n padding: ({ theme }) => theme('spacing'),\n placeholderColor: ({ theme }) => theme('colors'),\n placeholderOpacity: ({ theme }) => theme('opacity'),\n outlineColor: ({ theme }) => theme('colors'),\n outlineOffset: {\n 0: '0px',\n 1: '1px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n outlineWidth: {\n 0: '0px',\n 1: '1px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n ringColor: ({ theme }) => ({\n DEFAULT: theme(`colors.blue.500`, '#3b82f6'),\n ...theme('colors'),\n }),\n ringOffsetColor: ({ theme }) => theme('colors'),\n ringOffsetWidth: {\n 0: '0px',\n 1: '1px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n ringOpacity: ({ theme }) => ({\n DEFAULT: '0.5',\n ...theme('opacity'),\n }),\n ringWidth: {\n DEFAULT: '3px',\n 0: '0px',\n 1: '1px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n rotate: {\n 0: '0deg',\n 1: '1deg',\n 2: '2deg',\n 3: '3deg',\n 6: '6deg',\n 12: '12deg',\n 45: '45deg',\n 90: '90deg',\n 180: '180deg',\n },\n saturate: {\n 0: '0',\n 50: '.5',\n 100: '1',\n 150: '1.5',\n 200: '2',\n },\n scale: {\n 0: '0',\n 50: '.5',\n 75: '.75',\n 90: '.9',\n 95: '.95',\n 100: '1',\n 105: '1.05',\n 110: '1.1',\n 125: '1.25',\n 150: '1.5',\n },\n scrollMargin: ({ theme }) => ({\n ...theme('spacing'),\n }),\n scrollPadding: ({ theme }) => theme('spacing'),\n sepia: {\n 0: '0',\n DEFAULT: '100%',\n },\n skew: {\n 0: '0deg',\n 1: '1deg',\n 2: '2deg',\n 3: '3deg',\n 6: '6deg',\n 12: '12deg',\n },\n space: ({ theme }) => ({\n ...theme('spacing'),\n }),\n stroke: ({ theme }) => theme('colors'),\n strokeWidth: {\n 0: '0',\n 1: '1',\n 2: '2',\n },\n textColor: ({ theme }) => theme('colors'),\n textDecorationColor: ({ theme }) => theme('colors'),\n textDecorationThickness: {\n auto: 'auto',\n 'from-font': 'from-font',\n 0: '0px',\n 1: '1px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n textUnderlineOffset: {\n auto: 'auto',\n 0: '0px',\n 1: '1px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n textIndent: ({ theme }) => ({\n ...theme('spacing'),\n }),\n textOpacity: ({ theme }) => theme('opacity'),\n transformOrigin: {\n center: 'center',\n top: 'top',\n 'top-right': 'top right',\n right: 'right',\n 'bottom-right': 'bottom right',\n bottom: 'bottom',\n 'bottom-left': 'bottom left',\n left: 'left',\n 'top-left': 'top left',\n },\n transitionDelay: {\n 75: '75ms',\n 100: '100ms',\n 150: '150ms',\n 200: '200ms',\n 300: '300ms',\n 500: '500ms',\n 700: '700ms',\n 1000: '1000ms',\n },\n transitionDuration: {\n DEFAULT: '150ms',\n 75: '75ms',\n 100: '100ms',\n 150: '150ms',\n 200: '200ms',\n 300: '300ms',\n 500: '500ms',\n 700: '700ms',\n 1000: '1000ms',\n },\n transitionProperty: {\n none: 'none',\n all: 'all',\n DEFAULT:\n 'color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter',\n colors: 'color, background-color, border-color, text-decoration-color, fill, stroke',\n opacity: 'opacity',\n shadow: 'box-shadow',\n transform: 'transform',\n },\n transitionTimingFunction: {\n DEFAULT: 'cubic-bezier(0.4, 0, 0.2, 1)',\n linear: 'linear',\n in: 'cubic-bezier(0.4, 0, 1, 1)',\n out: 'cubic-bezier(0, 0, 0.2, 1)',\n 'in-out': 'cubic-bezier(0.4, 0, 0.2, 1)',\n },\n translate: ({ theme }) => ({\n ...theme('spacing'),\n '1/2': '50%',\n '1/3': '33.333333%',\n '2/3': '66.666667%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n full: '100%',\n }),\n width: ({ theme }) => ({\n auto: 'auto',\n ...theme('spacing'),\n '1/2': '50%',\n '1/3': '33.333333%',\n '2/3': '66.666667%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n '1/5': '20%',\n '2/5': '40%',\n '3/5': '60%',\n '4/5': '80%',\n '1/6': '16.666667%',\n '2/6': '33.333333%',\n '3/6': '50%',\n '4/6': '66.666667%',\n '5/6': '83.333333%',\n '1/12': '8.333333%',\n '2/12': '16.666667%',\n '3/12': '25%',\n '4/12': '33.333333%',\n '5/12': '41.666667%',\n '6/12': '50%',\n '7/12': '58.333333%',\n '8/12': '66.666667%',\n '9/12': '75%',\n '10/12': '83.333333%',\n '11/12': '91.666667%',\n full: '100%',\n screen: '100vw',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n }),\n willChange: {\n auto: 'auto',\n scroll: 'scroll-position',\n contents: 'contents',\n transform: 'transform',\n },\n zIndex: {\n auto: 'auto',\n 0: '0',\n 10: '10',\n 20: '20',\n 30: '30',\n 40: '40',\n 50: '50',\n },\n },\n variantOrder: [\n 'first',\n 'last',\n 'odd',\n 'even',\n 'visited',\n 'checked',\n 'empty',\n 'read-only',\n 'group-hover',\n 'group-focus',\n 'focus-within',\n 'hover',\n 'focus',\n 'focus-visible',\n 'active',\n 'disabled',\n ],\n plugins: [],\n}\n","export default {\n info(key, messages) {\n console.info(...(Array.isArray(key) ? [key] : [messages, key]))\n },\n warn(key, messages) {\n console.warn(...(Array.isArray(key) ? [key] : [messages, key]))\n },\n risk(key, messages) {\n console.error(...(Array.isArray(key) ? [key] : [messages, key]))\n },\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: ()=>_default\n});\nconst _log = /*#__PURE__*/ _interopRequireDefault(require(\"../util/log\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction warn({ version , from , to }) {\n _log.default.warn(`${from}-color-renamed`, [\n `As of Tailwind CSS ${version}, \\`${from}\\` has been renamed to \\`${to}\\`.`,\n \"Update your configuration file to silence this warning.\", \n ]);\n}\nconst _default = {\n inherit: \"inherit\",\n current: \"currentColor\",\n transparent: \"transparent\",\n black: \"#000\",\n white: \"#fff\",\n slate: {\n 50: \"#f8fafc\",\n 100: \"#f1f5f9\",\n 200: \"#e2e8f0\",\n 300: \"#cbd5e1\",\n 400: \"#94a3b8\",\n 500: \"#64748b\",\n 600: \"#475569\",\n 700: \"#334155\",\n 800: \"#1e293b\",\n 900: \"#0f172a\"\n },\n gray: {\n 50: \"#f9fafb\",\n 100: \"#f3f4f6\",\n 200: \"#e5e7eb\",\n 300: \"#d1d5db\",\n 400: \"#9ca3af\",\n 500: \"#6b7280\",\n 600: \"#4b5563\",\n 700: \"#374151\",\n 800: \"#1f2937\",\n 900: \"#111827\"\n },\n zinc: {\n 50: \"#fafafa\",\n 100: \"#f4f4f5\",\n 200: \"#e4e4e7\",\n 300: \"#d4d4d8\",\n 400: \"#a1a1aa\",\n 500: \"#71717a\",\n 600: \"#52525b\",\n 700: \"#3f3f46\",\n 800: \"#27272a\",\n 900: \"#18181b\"\n },\n neutral: {\n 50: \"#fafafa\",\n 100: \"#f5f5f5\",\n 200: \"#e5e5e5\",\n 300: \"#d4d4d4\",\n 400: \"#a3a3a3\",\n 500: \"#737373\",\n 600: \"#525252\",\n 700: \"#404040\",\n 800: \"#262626\",\n 900: \"#171717\"\n },\n stone: {\n 50: \"#fafaf9\",\n 100: \"#f5f5f4\",\n 200: \"#e7e5e4\",\n 300: \"#d6d3d1\",\n 400: \"#a8a29e\",\n 500: \"#78716c\",\n 600: \"#57534e\",\n 700: \"#44403c\",\n 800: \"#292524\",\n 900: \"#1c1917\"\n },\n red: {\n 50: \"#fef2f2\",\n 100: \"#fee2e2\",\n 200: \"#fecaca\",\n 300: \"#fca5a5\",\n 400: \"#f87171\",\n 500: \"#ef4444\",\n 600: \"#dc2626\",\n 700: \"#b91c1c\",\n 800: \"#991b1b\",\n 900: \"#7f1d1d\"\n },\n orange: {\n 50: \"#fff7ed\",\n 100: \"#ffedd5\",\n 200: \"#fed7aa\",\n 300: \"#fdba74\",\n 400: \"#fb923c\",\n 500: \"#f97316\",\n 600: \"#ea580c\",\n 700: \"#c2410c\",\n 800: \"#9a3412\",\n 900: \"#7c2d12\"\n },\n amber: {\n 50: \"#fffbeb\",\n 100: \"#fef3c7\",\n 200: \"#fde68a\",\n 300: \"#fcd34d\",\n 400: \"#fbbf24\",\n 500: \"#f59e0b\",\n 600: \"#d97706\",\n 700: \"#b45309\",\n 800: \"#92400e\",\n 900: \"#78350f\"\n },\n yellow: {\n 50: \"#fefce8\",\n 100: \"#fef9c3\",\n 200: \"#fef08a\",\n 300: \"#fde047\",\n 400: \"#facc15\",\n 500: \"#eab308\",\n 600: \"#ca8a04\",\n 700: \"#a16207\",\n 800: \"#854d0e\",\n 900: \"#713f12\"\n },\n lime: {\n 50: \"#f7fee7\",\n 100: \"#ecfccb\",\n 200: \"#d9f99d\",\n 300: \"#bef264\",\n 400: \"#a3e635\",\n 500: \"#84cc16\",\n 600: \"#65a30d\",\n 700: \"#4d7c0f\",\n 800: \"#3f6212\",\n 900: \"#365314\"\n },\n green: {\n 50: \"#f0fdf4\",\n 100: \"#dcfce7\",\n 200: \"#bbf7d0\",\n 300: \"#86efac\",\n 400: \"#4ade80\",\n 500: \"#22c55e\",\n 600: \"#16a34a\",\n 700: \"#15803d\",\n 800: \"#166534\",\n 900: \"#14532d\"\n },\n emerald: {\n 50: \"#ecfdf5\",\n 100: \"#d1fae5\",\n 200: \"#a7f3d0\",\n 300: \"#6ee7b7\",\n 400: \"#34d399\",\n 500: \"#10b981\",\n 600: \"#059669\",\n 700: \"#047857\",\n 800: \"#065f46\",\n 900: \"#064e3b\"\n },\n teal: {\n 50: \"#f0fdfa\",\n 100: \"#ccfbf1\",\n 200: \"#99f6e4\",\n 300: \"#5eead4\",\n 400: \"#2dd4bf\",\n 500: \"#14b8a6\",\n 600: \"#0d9488\",\n 700: \"#0f766e\",\n 800: \"#115e59\",\n 900: \"#134e4a\"\n },\n cyan: {\n 50: \"#ecfeff\",\n 100: \"#cffafe\",\n 200: \"#a5f3fc\",\n 300: \"#67e8f9\",\n 400: \"#22d3ee\",\n 500: \"#06b6d4\",\n 600: \"#0891b2\",\n 700: \"#0e7490\",\n 800: \"#155e75\",\n 900: \"#164e63\"\n },\n sky: {\n 50: \"#f0f9ff\",\n 100: \"#e0f2fe\",\n 200: \"#bae6fd\",\n 300: \"#7dd3fc\",\n 400: \"#38bdf8\",\n 500: \"#0ea5e9\",\n 600: \"#0284c7\",\n 700: \"#0369a1\",\n 800: \"#075985\",\n 900: \"#0c4a6e\"\n },\n blue: {\n 50: \"#eff6ff\",\n 100: \"#dbeafe\",\n 200: \"#bfdbfe\",\n 300: \"#93c5fd\",\n 400: \"#60a5fa\",\n 500: \"#3b82f6\",\n 600: \"#2563eb\",\n 700: \"#1d4ed8\",\n 800: \"#1e40af\",\n 900: \"#1e3a8a\"\n },\n indigo: {\n 50: \"#eef2ff\",\n 100: \"#e0e7ff\",\n 200: \"#c7d2fe\",\n 300: \"#a5b4fc\",\n 400: \"#818cf8\",\n 500: \"#6366f1\",\n 600: \"#4f46e5\",\n 700: \"#4338ca\",\n 800: \"#3730a3\",\n 900: \"#312e81\"\n },\n violet: {\n 50: \"#f5f3ff\",\n 100: \"#ede9fe\",\n 200: \"#ddd6fe\",\n 300: \"#c4b5fd\",\n 400: \"#a78bfa\",\n 500: \"#8b5cf6\",\n 600: \"#7c3aed\",\n 700: \"#6d28d9\",\n 800: \"#5b21b6\",\n 900: \"#4c1d95\"\n },\n purple: {\n 50: \"#faf5ff\",\n 100: \"#f3e8ff\",\n 200: \"#e9d5ff\",\n 300: \"#d8b4fe\",\n 400: \"#c084fc\",\n 500: \"#a855f7\",\n 600: \"#9333ea\",\n 700: \"#7e22ce\",\n 800: \"#6b21a8\",\n 900: \"#581c87\"\n },\n fuchsia: {\n 50: \"#fdf4ff\",\n 100: \"#fae8ff\",\n 200: \"#f5d0fe\",\n 300: \"#f0abfc\",\n 400: \"#e879f9\",\n 500: \"#d946ef\",\n 600: \"#c026d3\",\n 700: \"#a21caf\",\n 800: \"#86198f\",\n 900: \"#701a75\"\n },\n pink: {\n 50: \"#fdf2f8\",\n 100: \"#fce7f3\",\n 200: \"#fbcfe8\",\n 300: \"#f9a8d4\",\n 400: \"#f472b6\",\n 500: \"#ec4899\",\n 600: \"#db2777\",\n 700: \"#be185d\",\n 800: \"#9d174d\",\n 900: \"#831843\"\n },\n rose: {\n 50: \"#fff1f2\",\n 100: \"#ffe4e6\",\n 200: \"#fecdd3\",\n 300: \"#fda4af\",\n 400: \"#fb7185\",\n 500: \"#f43f5e\",\n 600: \"#e11d48\",\n 700: \"#be123c\",\n 800: \"#9f1239\",\n 900: \"#881337\"\n },\n get lightBlue () {\n warn({\n version: \"v2.2\",\n from: \"lightBlue\",\n to: \"sky\"\n });\n return this.sky;\n },\n get warmGray () {\n warn({\n version: \"v3.0\",\n from: \"warmGray\",\n to: \"stone\"\n });\n return this.stone;\n },\n get trueGray () {\n warn({\n version: \"v3.0\",\n from: \"trueGray\",\n to: \"neutral\"\n });\n return this.neutral;\n },\n get coolGray () {\n warn({\n version: \"v3.0\",\n from: \"coolGray\",\n to: \"gray\"\n });\n return this.gray;\n },\n get blueGray () {\n warn({\n version: \"v3.0\",\n from: \"blueGray\",\n to: \"slate\"\n });\n return this.slate;\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"defaults\", {\n enumerable: true,\n get: ()=>defaults\n});\nfunction defaults(target, ...sources) {\n for (let source of sources){\n for(let k in source){\n var ref;\n if (!(target === null || target === void 0 ? void 0 : (ref = target.hasOwnProperty) === null || ref === void 0 ? void 0 : ref.call(target, k))) {\n target[k] = source[k];\n }\n }\n for (let k1 of Object.getOwnPropertySymbols(source)){\n var ref1;\n if (!(target === null || target === void 0 ? void 0 : (ref1 = target.hasOwnProperty) === null || ref1 === void 0 ? void 0 : ref1.call(target, k1))) {\n target[k1] = source[k1];\n }\n }\n }\n return target;\n}\n","/**\n * Parse a path string into an array of path segments.\n *\n * Square bracket notation `a[b]` may be used to \"escape\" dots that would otherwise be interpreted as path separators.\n *\n * Example:\n * a -> ['a']\n * a.b.c -> ['a', 'b', 'c']\n * a[b].c -> ['a', 'b', 'c']\n * a[b.c].e.f -> ['a', 'b.c', 'e', 'f']\n * a[b][c][d] -> ['a', 'b', 'c', 'd']\n *\n * @param {string|string[]} path\n **/ \"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"toPath\", {\n enumerable: true,\n get: ()=>toPath\n});\nfunction toPath(path) {\n if (Array.isArray(path)) return path;\n let openBrackets = path.split(\"[\").length - 1;\n let closedBrackets = path.split(\"]\").length - 1;\n if (openBrackets !== closedBrackets) {\n throw new Error(`Path is invalid. Has unbalanced brackets: ${path}`);\n }\n return path.split(/\\.(?![^\\[]*\\])|[\\[\\]]/g).filter(Boolean);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"normalizeConfig\", {\n enumerable: true,\n get: ()=>normalizeConfig\n});\nconst _log = /*#__PURE__*/ _interopRequireWildcard(require(\"./log\"));\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction normalizeConfig(config) {\n // Quick structure validation\n /**\n * type FilePath = string\n * type RawFile = { raw: string, extension?: string }\n * type ExtractorFn = (content: string) => Array\n * type TransformerFn = (content: string) => string\n *\n * type Content =\n * | Array\n * | {\n * files: Array,\n * extract?: ExtractorFn | { [extension: string]: ExtractorFn }\n * transform?: TransformerFn | { [extension: string]: TransformerFn }\n * }\n */ let valid = (()=>{\n // `config.purge` should not exist anymore\n if (config.purge) {\n return false;\n }\n // `config.content` should exist\n if (!config.content) {\n return false;\n }\n // `config.content` should be an object or an array\n if (!Array.isArray(config.content) && !(typeof config.content === \"object\" && config.content !== null)) {\n return false;\n }\n // When `config.content` is an array, it should consist of FilePaths or RawFiles\n if (Array.isArray(config.content)) {\n return config.content.every((path)=>{\n // `path` can be a string\n if (typeof path === \"string\") return true;\n // `path` can be an object { raw: string, extension?: string }\n // `raw` must be a string\n if (typeof (path === null || path === void 0 ? void 0 : path.raw) !== \"string\") return false;\n // `extension` (if provided) should also be a string\n if ((path === null || path === void 0 ? void 0 : path.extension) && typeof (path === null || path === void 0 ? void 0 : path.extension) !== \"string\") {\n return false;\n }\n return true;\n });\n }\n // When `config.content` is an object\n if (typeof config.content === \"object\" && config.content !== null) {\n // Only `files`, `extract` and `transform` can exist in `config.content`\n if (Object.keys(config.content).some((key)=>![\n \"files\",\n \"extract\",\n \"transform\"\n ].includes(key))) {\n return false;\n }\n // `config.content.files` should exist of FilePaths or RawFiles\n if (Array.isArray(config.content.files)) {\n if (!config.content.files.every((path)=>{\n // `path` can be a string\n if (typeof path === \"string\") return true;\n // `path` can be an object { raw: string, extension?: string }\n // `raw` must be a string\n if (typeof (path === null || path === void 0 ? void 0 : path.raw) !== \"string\") return false;\n // `extension` (if provided) should also be a string\n if ((path === null || path === void 0 ? void 0 : path.extension) && typeof (path === null || path === void 0 ? void 0 : path.extension) !== \"string\") {\n return false;\n }\n return true;\n })) {\n return false;\n }\n // `config.content.extract` is optional, and can be a Function or a Record\n if (typeof config.content.extract === \"object\") {\n for (let value of Object.values(config.content.extract)){\n if (typeof value !== \"function\") {\n return false;\n }\n }\n } else if (!(config.content.extract === undefined || typeof config.content.extract === \"function\")) {\n return false;\n }\n // `config.content.transform` is optional, and can be a Function or a Record\n if (typeof config.content.transform === \"object\") {\n for (let value1 of Object.values(config.content.transform)){\n if (typeof value1 !== \"function\") {\n return false;\n }\n }\n } else if (!(config.content.transform === undefined || typeof config.content.transform === \"function\")) {\n return false;\n }\n }\n return true;\n }\n return false;\n })();\n if (!valid) {\n _log.default.warn(\"purge-deprecation\", [\n \"The `purge`/`content` options have changed in Tailwind CSS v3.0.\",\n \"Update your configuration file to eliminate this warning.\",\n \"https://tailwindcss.com/docs/upgrade-guide#configure-content-sources\", \n ]);\n }\n // Normalize the `safelist`\n config.safelist = (()=>{\n var ref;\n let { content , purge , safelist } = config;\n if (Array.isArray(safelist)) return safelist;\n if (Array.isArray(content === null || content === void 0 ? void 0 : content.safelist)) return content.safelist;\n if (Array.isArray(purge === null || purge === void 0 ? void 0 : purge.safelist)) return purge.safelist;\n if (Array.isArray(purge === null || purge === void 0 ? void 0 : (ref = purge.options) === null || ref === void 0 ? void 0 : ref.safelist)) return purge.options.safelist;\n return [];\n })();\n // Normalize prefix option\n if (typeof config.prefix === \"function\") {\n _log.default.warn(\"prefix-function\", [\n \"As of Tailwind CSS v3.0, `prefix` cannot be a function.\",\n \"Update `prefix` in your configuration to be a string to eliminate this warning.\",\n \"https://tailwindcss.com/docs/upgrade-guide#prefix-cannot-be-a-function\", \n ]);\n config.prefix = \"\";\n } else {\n var _prefix;\n config.prefix = (_prefix = config.prefix) !== null && _prefix !== void 0 ? _prefix : \"\";\n }\n // Normalize the `content`\n config.content = {\n files: (()=>{\n let { content , purge } = config;\n if (Array.isArray(purge)) return purge;\n if (Array.isArray(purge === null || purge === void 0 ? void 0 : purge.content)) return purge.content;\n if (Array.isArray(content)) return content;\n if (Array.isArray(content === null || content === void 0 ? void 0 : content.content)) return content.content;\n if (Array.isArray(content === null || content === void 0 ? void 0 : content.files)) return content.files;\n return [];\n })(),\n extract: (()=>{\n let extract = (()=>{\n var ref, ref1, ref2, ref3, ref4, ref5, ref6, ref7, ref8, ref9;\n if ((ref = config.purge) === null || ref === void 0 ? void 0 : ref.extract) return config.purge.extract;\n if ((ref1 = config.content) === null || ref1 === void 0 ? void 0 : ref1.extract) return config.content.extract;\n if ((ref2 = config.purge) === null || ref2 === void 0 ? void 0 : (ref3 = ref2.extract) === null || ref3 === void 0 ? void 0 : ref3.DEFAULT) return config.purge.extract.DEFAULT;\n if ((ref4 = config.content) === null || ref4 === void 0 ? void 0 : (ref5 = ref4.extract) === null || ref5 === void 0 ? void 0 : ref5.DEFAULT) return config.content.extract.DEFAULT;\n if ((ref6 = config.purge) === null || ref6 === void 0 ? void 0 : (ref7 = ref6.options) === null || ref7 === void 0 ? void 0 : ref7.extractors) return config.purge.options.extractors;\n if ((ref8 = config.content) === null || ref8 === void 0 ? void 0 : (ref9 = ref8.options) === null || ref9 === void 0 ? void 0 : ref9.extractors) return config.content.options.extractors;\n return {};\n })();\n let extractors = {};\n let defaultExtractor = (()=>{\n var ref, ref1, ref2, ref3;\n if ((ref = config.purge) === null || ref === void 0 ? void 0 : (ref1 = ref.options) === null || ref1 === void 0 ? void 0 : ref1.defaultExtractor) {\n return config.purge.options.defaultExtractor;\n }\n if ((ref2 = config.content) === null || ref2 === void 0 ? void 0 : (ref3 = ref2.options) === null || ref3 === void 0 ? void 0 : ref3.defaultExtractor) {\n return config.content.options.defaultExtractor;\n }\n return undefined;\n })();\n if (defaultExtractor !== undefined) {\n extractors.DEFAULT = defaultExtractor;\n }\n // Functions\n if (typeof extract === \"function\") {\n extractors.DEFAULT = extract;\n } else if (Array.isArray(extract)) {\n for (let { extensions , extractor } of extract !== null && extract !== void 0 ? extract : []){\n for (let extension of extensions){\n extractors[extension] = extractor;\n }\n }\n } else if (typeof extract === \"object\" && extract !== null) {\n Object.assign(extractors, extract);\n }\n return extractors;\n })(),\n transform: (()=>{\n let transform = (()=>{\n var ref, ref1, ref2, ref3, ref4, ref5;\n if ((ref = config.purge) === null || ref === void 0 ? void 0 : ref.transform) return config.purge.transform;\n if ((ref1 = config.content) === null || ref1 === void 0 ? void 0 : ref1.transform) return config.content.transform;\n if ((ref2 = config.purge) === null || ref2 === void 0 ? void 0 : (ref3 = ref2.transform) === null || ref3 === void 0 ? void 0 : ref3.DEFAULT) return config.purge.transform.DEFAULT;\n if ((ref4 = config.content) === null || ref4 === void 0 ? void 0 : (ref5 = ref4.transform) === null || ref5 === void 0 ? void 0 : ref5.DEFAULT) return config.content.transform.DEFAULT;\n return {};\n })();\n let transformers = {};\n if (typeof transform === \"function\") {\n transformers.DEFAULT = transform;\n }\n if (typeof transform === \"object\" && transform !== null) {\n Object.assign(transformers, transform);\n }\n return transformers;\n })()\n };\n // Validate globs to prevent bogus globs.\n // E.g.: `./src/*.{html}` is invalid, the `{html}` should just be `html`\n for (let file of config.content.files){\n if (typeof file === \"string\" && /{([^,]*?)}/g.test(file)) {\n _log.default.warn(\"invalid-glob-braces\", [\n `The glob pattern ${(0, _log.dim)(file)} in your Tailwind CSS configuration is invalid.`,\n `Update it to ${(0, _log.dim)(file.replace(/{([^,]*?)}/g, \"$1\"))} to silence this warning.`\n ]);\n break;\n }\n }\n return config;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: ()=>isPlainObject\n});\nfunction isPlainObject(value) {\n if (Object.prototype.toString.call(value) !== \"[object Object]\") {\n return false;\n }\n const prototype = Object.getPrototypeOf(value);\n return prototype === null || prototype === Object.prototype;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"cloneDeep\", {\n enumerable: true,\n get: ()=>cloneDeep\n});\nfunction cloneDeep(value) {\n if (Array.isArray(value)) {\n return value.map((child)=>cloneDeep(child));\n }\n if (typeof value === \"object\" && value !== null) {\n return Object.fromEntries(Object.entries(value).map(([k, v])=>[\n k,\n cloneDeep(v)\n ]));\n }\n return value;\n}\n","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = unesc;\n\n// Many thanks for this post which made this migration much easier.\n// https://mathiasbynens.be/notes/css-escapes\n\n/**\n * \n * @param {string} str \n * @returns {[string, number]|undefined}\n */\nfunction gobbleHex(str) {\n var lower = str.toLowerCase();\n var hex = '';\n var spaceTerminated = false;\n\n for (var i = 0; i < 6 && lower[i] !== undefined; i++) {\n var code = lower.charCodeAt(i); // check to see if we are dealing with a valid hex char [a-f|0-9]\n\n var valid = code >= 97 && code <= 102 || code >= 48 && code <= 57; // https://drafts.csswg.org/css-syntax/#consume-escaped-code-point\n\n spaceTerminated = code === 32;\n\n if (!valid) {\n break;\n }\n\n hex += lower[i];\n }\n\n if (hex.length === 0) {\n return undefined;\n }\n\n var codePoint = parseInt(hex, 16);\n var isSurrogate = codePoint >= 0xD800 && codePoint <= 0xDFFF; // Add special case for\n // \"If this number is zero, or is for a surrogate, or is greater than the maximum allowed code point\"\n // https://drafts.csswg.org/css-syntax/#maximum-allowed-code-point\n\n if (isSurrogate || codePoint === 0x0000 || codePoint > 0x10FFFF) {\n return [\"\\uFFFD\", hex.length + (spaceTerminated ? 1 : 0)];\n }\n\n return [String.fromCodePoint(codePoint), hex.length + (spaceTerminated ? 1 : 0)];\n}\n\nvar CONTAINS_ESCAPE = /\\\\/;\n\nfunction unesc(str) {\n var needToProcess = CONTAINS_ESCAPE.test(str);\n\n if (!needToProcess) {\n return str;\n }\n\n var ret = \"\";\n\n for (var i = 0; i < str.length; i++) {\n if (str[i] === \"\\\\\") {\n var gobbled = gobbleHex(str.slice(i + 1, i + 7));\n\n if (gobbled !== undefined) {\n ret += gobbled[0];\n i += gobbled[1];\n continue;\n } // Retain a pair of \\\\ if double escaped `\\\\\\\\`\n // https://github.com/postcss/postcss-selector-parser/commit/268c9a7656fb53f543dc620aa5b73a30ec3ff20e\n\n\n if (str[i + 1] === \"\\\\\") {\n ret += \"\\\\\";\n i++;\n continue;\n } // if \\\\ is at the end of the string retain it\n // https://github.com/postcss/postcss-selector-parser/commit/01a6b346e3612ce1ab20219acc26abdc259ccefb\n\n\n if (str.length === i + 1) {\n ret += str[i];\n }\n\n continue;\n }\n\n ret += str[i];\n }\n\n return ret;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = getProp;\n\nfunction getProp(obj) {\n for (var _len = arguments.length, props = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n props[_key - 1] = arguments[_key];\n }\n\n while (props.length > 0) {\n var prop = props.shift();\n\n if (!obj[prop]) {\n return undefined;\n }\n\n obj = obj[prop];\n }\n\n return obj;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = ensureObject;\n\nfunction ensureObject(obj) {\n for (var _len = arguments.length, props = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n props[_key - 1] = arguments[_key];\n }\n\n while (props.length > 0) {\n var prop = props.shift();\n\n if (!obj[prop]) {\n obj[prop] = {};\n }\n\n obj = obj[prop];\n }\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = stripComments;\n\nfunction stripComments(str) {\n var s = \"\";\n var commentStart = str.indexOf(\"/*\");\n var lastEnd = 0;\n\n while (commentStart >= 0) {\n s = s + str.slice(lastEnd, commentStart);\n var commentEnd = str.indexOf(\"*/\", commentStart + 2);\n\n if (commentEnd < 0) {\n return s;\n }\n\n lastEnd = commentEnd + 2;\n commentStart = str.indexOf(\"/*\", lastEnd);\n }\n\n s = s + str.slice(lastEnd);\n return s;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.stripComments = exports.ensureObject = exports.getProp = exports.unesc = void 0;\n\nvar _unesc = _interopRequireDefault(require(\"./unesc\"));\n\nexports.unesc = _unesc[\"default\"];\n\nvar _getProp = _interopRequireDefault(require(\"./getProp\"));\n\nexports.getProp = _getProp[\"default\"];\n\nvar _ensureObject = _interopRequireDefault(require(\"./ensureObject\"));\n\nexports.ensureObject = _ensureObject[\"default\"];\n\nvar _stripComments = _interopRequireDefault(require(\"./stripComments\"));\n\nexports.stripComments = _stripComments[\"default\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _util = require(\"../util\");\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar cloneNode = function cloneNode(obj, parent) {\n if (typeof obj !== 'object' || obj === null) {\n return obj;\n }\n\n var cloned = new obj.constructor();\n\n for (var i in obj) {\n if (!obj.hasOwnProperty(i)) {\n continue;\n }\n\n var value = obj[i];\n var type = typeof value;\n\n if (i === 'parent' && type === 'object') {\n if (parent) {\n cloned[i] = parent;\n }\n } else if (value instanceof Array) {\n cloned[i] = value.map(function (j) {\n return cloneNode(j, cloned);\n });\n } else {\n cloned[i] = cloneNode(value, cloned);\n }\n }\n\n return cloned;\n};\n\nvar Node = /*#__PURE__*/function () {\n function Node(opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n Object.assign(this, opts);\n this.spaces = this.spaces || {};\n this.spaces.before = this.spaces.before || '';\n this.spaces.after = this.spaces.after || '';\n }\n\n var _proto = Node.prototype;\n\n _proto.remove = function remove() {\n if (this.parent) {\n this.parent.removeChild(this);\n }\n\n this.parent = undefined;\n return this;\n };\n\n _proto.replaceWith = function replaceWith() {\n if (this.parent) {\n for (var index in arguments) {\n this.parent.insertBefore(this, arguments[index]);\n }\n\n this.remove();\n }\n\n return this;\n };\n\n _proto.next = function next() {\n return this.parent.at(this.parent.index(this) + 1);\n };\n\n _proto.prev = function prev() {\n return this.parent.at(this.parent.index(this) - 1);\n };\n\n _proto.clone = function clone(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n\n var cloned = cloneNode(this);\n\n for (var name in overrides) {\n cloned[name] = overrides[name];\n }\n\n return cloned;\n }\n /**\n * Some non-standard syntax doesn't follow normal escaping rules for css.\n * This allows non standard syntax to be appended to an existing property\n * by specifying the escaped value. By specifying the escaped value,\n * illegal characters are allowed to be directly inserted into css output.\n * @param {string} name the property to set\n * @param {any} value the unescaped value of the property\n * @param {string} valueEscaped optional. the escaped value of the property.\n */\n ;\n\n _proto.appendToPropertyAndEscape = function appendToPropertyAndEscape(name, value, valueEscaped) {\n if (!this.raws) {\n this.raws = {};\n }\n\n var originalValue = this[name];\n var originalEscaped = this.raws[name];\n this[name] = originalValue + value; // this may trigger a setter that updates raws, so it has to be set first.\n\n if (originalEscaped || valueEscaped !== value) {\n this.raws[name] = (originalEscaped || originalValue) + valueEscaped;\n } else {\n delete this.raws[name]; // delete any escaped value that was created by the setter.\n }\n }\n /**\n * Some non-standard syntax doesn't follow normal escaping rules for css.\n * This allows the escaped value to be specified directly, allowing illegal\n * characters to be directly inserted into css output.\n * @param {string} name the property to set\n * @param {any} value the unescaped value of the property\n * @param {string} valueEscaped the escaped value of the property.\n */\n ;\n\n _proto.setPropertyAndEscape = function setPropertyAndEscape(name, value, valueEscaped) {\n if (!this.raws) {\n this.raws = {};\n }\n\n this[name] = value; // this may trigger a setter that updates raws, so it has to be set first.\n\n this.raws[name] = valueEscaped;\n }\n /**\n * When you want a value to passed through to CSS directly. This method\n * deletes the corresponding raw value causing the stringifier to fallback\n * to the unescaped value.\n * @param {string} name the property to set.\n * @param {any} value The value that is both escaped and unescaped.\n */\n ;\n\n _proto.setPropertyWithoutEscape = function setPropertyWithoutEscape(name, value) {\n this[name] = value; // this may trigger a setter that updates raws, so it has to be set first.\n\n if (this.raws) {\n delete this.raws[name];\n }\n }\n /**\n *\n * @param {number} line The number (starting with 1)\n * @param {number} column The column number (starting with 1)\n */\n ;\n\n _proto.isAtPosition = function isAtPosition(line, column) {\n if (this.source && this.source.start && this.source.end) {\n if (this.source.start.line > line) {\n return false;\n }\n\n if (this.source.end.line < line) {\n return false;\n }\n\n if (this.source.start.line === line && this.source.start.column > column) {\n return false;\n }\n\n if (this.source.end.line === line && this.source.end.column < column) {\n return false;\n }\n\n return true;\n }\n\n return undefined;\n };\n\n _proto.stringifyProperty = function stringifyProperty(name) {\n return this.raws && this.raws[name] || this[name];\n };\n\n _proto.valueToString = function valueToString() {\n return String(this.stringifyProperty(\"value\"));\n };\n\n _proto.toString = function toString() {\n return [this.rawSpaceBefore, this.valueToString(), this.rawSpaceAfter].join('');\n };\n\n _createClass(Node, [{\n key: \"rawSpaceBefore\",\n get: function get() {\n var rawSpace = this.raws && this.raws.spaces && this.raws.spaces.before;\n\n if (rawSpace === undefined) {\n rawSpace = this.spaces && this.spaces.before;\n }\n\n return rawSpace || \"\";\n },\n set: function set(raw) {\n (0, _util.ensureObject)(this, \"raws\", \"spaces\");\n this.raws.spaces.before = raw;\n }\n }, {\n key: \"rawSpaceAfter\",\n get: function get() {\n var rawSpace = this.raws && this.raws.spaces && this.raws.spaces.after;\n\n if (rawSpace === undefined) {\n rawSpace = this.spaces.after;\n }\n\n return rawSpace || \"\";\n },\n set: function set(raw) {\n (0, _util.ensureObject)(this, \"raws\", \"spaces\");\n this.raws.spaces.after = raw;\n }\n }]);\n\n return Node;\n}();\n\nexports[\"default\"] = Node;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.UNIVERSAL = exports.ATTRIBUTE = exports.CLASS = exports.COMBINATOR = exports.COMMENT = exports.ID = exports.NESTING = exports.PSEUDO = exports.ROOT = exports.SELECTOR = exports.STRING = exports.TAG = void 0;\nvar TAG = 'tag';\nexports.TAG = TAG;\nvar STRING = 'string';\nexports.STRING = STRING;\nvar SELECTOR = 'selector';\nexports.SELECTOR = SELECTOR;\nvar ROOT = 'root';\nexports.ROOT = ROOT;\nvar PSEUDO = 'pseudo';\nexports.PSEUDO = PSEUDO;\nvar NESTING = 'nesting';\nexports.NESTING = NESTING;\nvar ID = 'id';\nexports.ID = ID;\nvar COMMENT = 'comment';\nexports.COMMENT = COMMENT;\nvar COMBINATOR = 'combinator';\nexports.COMBINATOR = COMBINATOR;\nvar CLASS = 'class';\nexports.CLASS = CLASS;\nvar ATTRIBUTE = 'attribute';\nexports.ATTRIBUTE = ATTRIBUTE;\nvar UNIVERSAL = 'universal';\nexports.UNIVERSAL = UNIVERSAL;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nvar types = _interopRequireWildcard(require(\"./types\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Container = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Container, _Node);\n\n function Container(opts) {\n var _this;\n\n _this = _Node.call(this, opts) || this;\n\n if (!_this.nodes) {\n _this.nodes = [];\n }\n\n return _this;\n }\n\n var _proto = Container.prototype;\n\n _proto.append = function append(selector) {\n selector.parent = this;\n this.nodes.push(selector);\n return this;\n };\n\n _proto.prepend = function prepend(selector) {\n selector.parent = this;\n this.nodes.unshift(selector);\n return this;\n };\n\n _proto.at = function at(index) {\n return this.nodes[index];\n };\n\n _proto.index = function index(child) {\n if (typeof child === 'number') {\n return child;\n }\n\n return this.nodes.indexOf(child);\n };\n\n _proto.removeChild = function removeChild(child) {\n child = this.index(child);\n this.at(child).parent = undefined;\n this.nodes.splice(child, 1);\n var index;\n\n for (var id in this.indexes) {\n index = this.indexes[id];\n\n if (index >= child) {\n this.indexes[id] = index - 1;\n }\n }\n\n return this;\n };\n\n _proto.removeAll = function removeAll() {\n for (var _iterator = _createForOfIteratorHelperLoose(this.nodes), _step; !(_step = _iterator()).done;) {\n var node = _step.value;\n node.parent = undefined;\n }\n\n this.nodes = [];\n return this;\n };\n\n _proto.empty = function empty() {\n return this.removeAll();\n };\n\n _proto.insertAfter = function insertAfter(oldNode, newNode) {\n newNode.parent = this;\n var oldIndex = this.index(oldNode);\n this.nodes.splice(oldIndex + 1, 0, newNode);\n newNode.parent = this;\n var index;\n\n for (var id in this.indexes) {\n index = this.indexes[id];\n\n if (oldIndex <= index) {\n this.indexes[id] = index + 1;\n }\n }\n\n return this;\n };\n\n _proto.insertBefore = function insertBefore(oldNode, newNode) {\n newNode.parent = this;\n var oldIndex = this.index(oldNode);\n this.nodes.splice(oldIndex, 0, newNode);\n newNode.parent = this;\n var index;\n\n for (var id in this.indexes) {\n index = this.indexes[id];\n\n if (index <= oldIndex) {\n this.indexes[id] = index + 1;\n }\n }\n\n return this;\n };\n\n _proto._findChildAtPosition = function _findChildAtPosition(line, col) {\n var found = undefined;\n this.each(function (node) {\n if (node.atPosition) {\n var foundChild = node.atPosition(line, col);\n\n if (foundChild) {\n found = foundChild;\n return false;\n }\n } else if (node.isAtPosition(line, col)) {\n found = node;\n return false;\n }\n });\n return found;\n }\n /**\n * Return the most specific node at the line and column number given.\n * The source location is based on the original parsed location, locations aren't\n * updated as selector nodes are mutated.\n * \n * Note that this location is relative to the location of the first character\n * of the selector, and not the location of the selector in the overall document\n * when used in conjunction with postcss.\n *\n * If not found, returns undefined.\n * @param {number} line The line number of the node to find. (1-based index)\n * @param {number} col The column number of the node to find. (1-based index)\n */\n ;\n\n _proto.atPosition = function atPosition(line, col) {\n if (this.isAtPosition(line, col)) {\n return this._findChildAtPosition(line, col) || this;\n } else {\n return undefined;\n }\n };\n\n _proto._inferEndPosition = function _inferEndPosition() {\n if (this.last && this.last.source && this.last.source.end) {\n this.source = this.source || {};\n this.source.end = this.source.end || {};\n Object.assign(this.source.end, this.last.source.end);\n }\n };\n\n _proto.each = function each(callback) {\n if (!this.lastEach) {\n this.lastEach = 0;\n }\n\n if (!this.indexes) {\n this.indexes = {};\n }\n\n this.lastEach++;\n var id = this.lastEach;\n this.indexes[id] = 0;\n\n if (!this.length) {\n return undefined;\n }\n\n var index, result;\n\n while (this.indexes[id] < this.length) {\n index = this.indexes[id];\n result = callback(this.at(index), index);\n\n if (result === false) {\n break;\n }\n\n this.indexes[id] += 1;\n }\n\n delete this.indexes[id];\n\n if (result === false) {\n return false;\n }\n };\n\n _proto.walk = function walk(callback) {\n return this.each(function (node, i) {\n var result = callback(node, i);\n\n if (result !== false && node.length) {\n result = node.walk(callback);\n }\n\n if (result === false) {\n return false;\n }\n });\n };\n\n _proto.walkAttributes = function walkAttributes(callback) {\n var _this2 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.ATTRIBUTE) {\n return callback.call(_this2, selector);\n }\n });\n };\n\n _proto.walkClasses = function walkClasses(callback) {\n var _this3 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.CLASS) {\n return callback.call(_this3, selector);\n }\n });\n };\n\n _proto.walkCombinators = function walkCombinators(callback) {\n var _this4 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.COMBINATOR) {\n return callback.call(_this4, selector);\n }\n });\n };\n\n _proto.walkComments = function walkComments(callback) {\n var _this5 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.COMMENT) {\n return callback.call(_this5, selector);\n }\n });\n };\n\n _proto.walkIds = function walkIds(callback) {\n var _this6 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.ID) {\n return callback.call(_this6, selector);\n }\n });\n };\n\n _proto.walkNesting = function walkNesting(callback) {\n var _this7 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.NESTING) {\n return callback.call(_this7, selector);\n }\n });\n };\n\n _proto.walkPseudos = function walkPseudos(callback) {\n var _this8 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.PSEUDO) {\n return callback.call(_this8, selector);\n }\n });\n };\n\n _proto.walkTags = function walkTags(callback) {\n var _this9 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.TAG) {\n return callback.call(_this9, selector);\n }\n });\n };\n\n _proto.walkUniversals = function walkUniversals(callback) {\n var _this10 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.UNIVERSAL) {\n return callback.call(_this10, selector);\n }\n });\n };\n\n _proto.split = function split(callback) {\n var _this11 = this;\n\n var current = [];\n return this.reduce(function (memo, node, index) {\n var split = callback.call(_this11, node);\n current.push(node);\n\n if (split) {\n memo.push(current);\n current = [];\n } else if (index === _this11.length - 1) {\n memo.push(current);\n }\n\n return memo;\n }, []);\n };\n\n _proto.map = function map(callback) {\n return this.nodes.map(callback);\n };\n\n _proto.reduce = function reduce(callback, memo) {\n return this.nodes.reduce(callback, memo);\n };\n\n _proto.every = function every(callback) {\n return this.nodes.every(callback);\n };\n\n _proto.some = function some(callback) {\n return this.nodes.some(callback);\n };\n\n _proto.filter = function filter(callback) {\n return this.nodes.filter(callback);\n };\n\n _proto.sort = function sort(callback) {\n return this.nodes.sort(callback);\n };\n\n _proto.toString = function toString() {\n return this.map(String).join('');\n };\n\n _createClass(Container, [{\n key: \"first\",\n get: function get() {\n return this.at(0);\n }\n }, {\n key: \"last\",\n get: function get() {\n return this.at(this.length - 1);\n }\n }, {\n key: \"length\",\n get: function get() {\n return this.nodes.length;\n }\n }]);\n\n return Container;\n}(_node[\"default\"]);\n\nexports[\"default\"] = Container;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _container = _interopRequireDefault(require(\"./container\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Root = /*#__PURE__*/function (_Container) {\n _inheritsLoose(Root, _Container);\n\n function Root(opts) {\n var _this;\n\n _this = _Container.call(this, opts) || this;\n _this.type = _types.ROOT;\n return _this;\n }\n\n var _proto = Root.prototype;\n\n _proto.toString = function toString() {\n var str = this.reduce(function (memo, selector) {\n memo.push(String(selector));\n return memo;\n }, []).join(',');\n return this.trailingComma ? str + ',' : str;\n };\n\n _proto.error = function error(message, options) {\n if (this._error) {\n return this._error(message, options);\n } else {\n return new Error(message);\n }\n };\n\n _createClass(Root, [{\n key: \"errorGenerator\",\n set: function set(handler) {\n this._error = handler;\n }\n }]);\n\n return Root;\n}(_container[\"default\"]);\n\nexports[\"default\"] = Root;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _container = _interopRequireDefault(require(\"./container\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Selector = /*#__PURE__*/function (_Container) {\n _inheritsLoose(Selector, _Container);\n\n function Selector(opts) {\n var _this;\n\n _this = _Container.call(this, opts) || this;\n _this.type = _types.SELECTOR;\n return _this;\n }\n\n return Selector;\n}(_container[\"default\"]);\n\nexports[\"default\"] = Selector;\nmodule.exports = exports.default;","/*! https://mths.be/cssesc v3.0.0 by @mathias */\n'use strict';\n\nvar object = {};\nvar hasOwnProperty = object.hasOwnProperty;\nvar merge = function merge(options, defaults) {\n\tif (!options) {\n\t\treturn defaults;\n\t}\n\tvar result = {};\n\tfor (var key in defaults) {\n\t\t// `if (defaults.hasOwnProperty(key) { … }` is not needed here, since\n\t\t// only recognized option names are used.\n\t\tresult[key] = hasOwnProperty.call(options, key) ? options[key] : defaults[key];\n\t}\n\treturn result;\n};\n\nvar regexAnySingleEscape = /[ -,\\.\\/:-@\\[-\\^`\\{-~]/;\nvar regexSingleEscape = /[ -,\\.\\/:-@\\[\\]\\^`\\{-~]/;\nvar regexAlwaysEscape = /['\"\\\\]/;\nvar regexExcessiveSpaces = /(^|\\\\+)?(\\\\[A-F0-9]{1,6})\\x20(?![a-fA-F0-9\\x20])/g;\n\n// https://mathiasbynens.be/notes/css-escapes#css\nvar cssesc = function cssesc(string, options) {\n\toptions = merge(options, cssesc.options);\n\tif (options.quotes != 'single' && options.quotes != 'double') {\n\t\toptions.quotes = 'single';\n\t}\n\tvar quote = options.quotes == 'double' ? '\"' : '\\'';\n\tvar isIdentifier = options.isIdentifier;\n\n\tvar firstChar = string.charAt(0);\n\tvar output = '';\n\tvar counter = 0;\n\tvar length = string.length;\n\twhile (counter < length) {\n\t\tvar character = string.charAt(counter++);\n\t\tvar codePoint = character.charCodeAt();\n\t\tvar value = void 0;\n\t\t// If it’s not a printable ASCII character…\n\t\tif (codePoint < 0x20 || codePoint > 0x7E) {\n\t\t\tif (codePoint >= 0xD800 && codePoint <= 0xDBFF && counter < length) {\n\t\t\t\t// It’s a high surrogate, and there is a next character.\n\t\t\t\tvar extra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) {\n\t\t\t\t\t// next character is low surrogate\n\t\t\t\t\tcodePoint = ((codePoint & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000;\n\t\t\t\t} else {\n\t\t\t\t\t// It’s an unmatched surrogate; only append this code unit, in case\n\t\t\t\t\t// the next code unit is the high surrogate of a surrogate pair.\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t}\n\t\t\tvalue = '\\\\' + codePoint.toString(16).toUpperCase() + ' ';\n\t\t} else {\n\t\t\tif (options.escapeEverything) {\n\t\t\t\tif (regexAnySingleEscape.test(character)) {\n\t\t\t\t\tvalue = '\\\\' + character;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = '\\\\' + codePoint.toString(16).toUpperCase() + ' ';\n\t\t\t\t}\n\t\t\t} else if (/[\\t\\n\\f\\r\\x0B]/.test(character)) {\n\t\t\t\tvalue = '\\\\' + codePoint.toString(16).toUpperCase() + ' ';\n\t\t\t} else if (character == '\\\\' || !isIdentifier && (character == '\"' && quote == character || character == '\\'' && quote == character) || isIdentifier && regexSingleEscape.test(character)) {\n\t\t\t\tvalue = '\\\\' + character;\n\t\t\t} else {\n\t\t\t\tvalue = character;\n\t\t\t}\n\t\t}\n\t\toutput += value;\n\t}\n\n\tif (isIdentifier) {\n\t\tif (/^-[-\\d]/.test(output)) {\n\t\t\toutput = '\\\\-' + output.slice(1);\n\t\t} else if (/\\d/.test(firstChar)) {\n\t\t\toutput = '\\\\3' + firstChar + ' ' + output.slice(1);\n\t\t}\n\t}\n\n\t// Remove spaces after `\\HEX` escapes that are not followed by a hex digit,\n\t// since they’re redundant. Note that this is only possible if the escape\n\t// sequence isn’t preceded by an odd number of backslashes.\n\toutput = output.replace(regexExcessiveSpaces, function ($0, $1, $2) {\n\t\tif ($1 && $1.length % 2) {\n\t\t\t// It’s not safe to remove the space, so don’t.\n\t\t\treturn $0;\n\t\t}\n\t\t// Strip the space.\n\t\treturn ($1 || '') + $2;\n\t});\n\n\tif (!isIdentifier && options.wrap) {\n\t\treturn quote + output + quote;\n\t}\n\treturn output;\n};\n\n// Expose default options (so they can be overridden globally).\ncssesc.options = {\n\t'escapeEverything': false,\n\t'isIdentifier': false,\n\t'quotes': 'single',\n\t'wrap': false\n};\n\ncssesc.version = '3.0.0';\n\nmodule.exports = cssesc;\n","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _cssesc = _interopRequireDefault(require(\"cssesc\"));\n\nvar _util = require(\"../util\");\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar ClassName = /*#__PURE__*/function (_Node) {\n _inheritsLoose(ClassName, _Node);\n\n function ClassName(opts) {\n var _this;\n\n _this = _Node.call(this, opts) || this;\n _this.type = _types.CLASS;\n _this._constructed = true;\n return _this;\n }\n\n var _proto = ClassName.prototype;\n\n _proto.valueToString = function valueToString() {\n return '.' + _Node.prototype.valueToString.call(this);\n };\n\n _createClass(ClassName, [{\n key: \"value\",\n get: function get() {\n return this._value;\n },\n set: function set(v) {\n if (this._constructed) {\n var escaped = (0, _cssesc[\"default\"])(v, {\n isIdentifier: true\n });\n\n if (escaped !== v) {\n (0, _util.ensureObject)(this, \"raws\");\n this.raws.value = escaped;\n } else if (this.raws) {\n delete this.raws.value;\n }\n }\n\n this._value = v;\n }\n }]);\n\n return ClassName;\n}(_node[\"default\"]);\n\nexports[\"default\"] = ClassName;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Comment = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Comment, _Node);\n\n function Comment(opts) {\n var _this;\n\n _this = _Node.call(this, opts) || this;\n _this.type = _types.COMMENT;\n return _this;\n }\n\n return Comment;\n}(_node[\"default\"]);\n\nexports[\"default\"] = Comment;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar ID = /*#__PURE__*/function (_Node) {\n _inheritsLoose(ID, _Node);\n\n function ID(opts) {\n var _this;\n\n _this = _Node.call(this, opts) || this;\n _this.type = _types.ID;\n return _this;\n }\n\n var _proto = ID.prototype;\n\n _proto.valueToString = function valueToString() {\n return '#' + _Node.prototype.valueToString.call(this);\n };\n\n return ID;\n}(_node[\"default\"]);\n\nexports[\"default\"] = ID;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _cssesc = _interopRequireDefault(require(\"cssesc\"));\n\nvar _util = require(\"../util\");\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Namespace = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Namespace, _Node);\n\n function Namespace() {\n return _Node.apply(this, arguments) || this;\n }\n\n var _proto = Namespace.prototype;\n\n _proto.qualifiedName = function qualifiedName(value) {\n if (this.namespace) {\n return this.namespaceString + \"|\" + value;\n } else {\n return value;\n }\n };\n\n _proto.valueToString = function valueToString() {\n return this.qualifiedName(_Node.prototype.valueToString.call(this));\n };\n\n _createClass(Namespace, [{\n key: \"namespace\",\n get: function get() {\n return this._namespace;\n },\n set: function set(namespace) {\n if (namespace === true || namespace === \"*\" || namespace === \"&\") {\n this._namespace = namespace;\n\n if (this.raws) {\n delete this.raws.namespace;\n }\n\n return;\n }\n\n var escaped = (0, _cssesc[\"default\"])(namespace, {\n isIdentifier: true\n });\n this._namespace = namespace;\n\n if (escaped !== namespace) {\n (0, _util.ensureObject)(this, \"raws\");\n this.raws.namespace = escaped;\n } else if (this.raws) {\n delete this.raws.namespace;\n }\n }\n }, {\n key: \"ns\",\n get: function get() {\n return this._namespace;\n },\n set: function set(namespace) {\n this.namespace = namespace;\n }\n }, {\n key: \"namespaceString\",\n get: function get() {\n if (this.namespace) {\n var ns = this.stringifyProperty(\"namespace\");\n\n if (ns === true) {\n return '';\n } else {\n return ns;\n }\n } else {\n return '';\n }\n }\n }]);\n\n return Namespace;\n}(_node[\"default\"]);\n\nexports[\"default\"] = Namespace;\n;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _namespace = _interopRequireDefault(require(\"./namespace\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Tag = /*#__PURE__*/function (_Namespace) {\n _inheritsLoose(Tag, _Namespace);\n\n function Tag(opts) {\n var _this;\n\n _this = _Namespace.call(this, opts) || this;\n _this.type = _types.TAG;\n return _this;\n }\n\n return Tag;\n}(_namespace[\"default\"]);\n\nexports[\"default\"] = Tag;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar String = /*#__PURE__*/function (_Node) {\n _inheritsLoose(String, _Node);\n\n function String(opts) {\n var _this;\n\n _this = _Node.call(this, opts) || this;\n _this.type = _types.STRING;\n return _this;\n }\n\n return String;\n}(_node[\"default\"]);\n\nexports[\"default\"] = String;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _container = _interopRequireDefault(require(\"./container\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Pseudo = /*#__PURE__*/function (_Container) {\n _inheritsLoose(Pseudo, _Container);\n\n function Pseudo(opts) {\n var _this;\n\n _this = _Container.call(this, opts) || this;\n _this.type = _types.PSEUDO;\n return _this;\n }\n\n var _proto = Pseudo.prototype;\n\n _proto.toString = function toString() {\n var params = this.length ? '(' + this.map(String).join(',') + ')' : '';\n return [this.rawSpaceBefore, this.stringifyProperty(\"value\"), params, this.rawSpaceAfter].join('');\n };\n\n return Pseudo;\n}(_container[\"default\"]);\n\nexports[\"default\"] = Pseudo;\nmodule.exports = exports.default;","module.exports = function deprecate(fn, message) {\n return function (...args) {\n console.warn(message)\n return fn(...args)\n }\n}\n","\"use strict\";\n\nexports.__esModule = true;\nexports.unescapeValue = unescapeValue;\nexports[\"default\"] = void 0;\n\nvar _cssesc = _interopRequireDefault(require(\"cssesc\"));\n\nvar _unesc = _interopRequireDefault(require(\"../util/unesc\"));\n\nvar _namespace = _interopRequireDefault(require(\"./namespace\"));\n\nvar _types = require(\"./types\");\n\nvar _CSSESC_QUOTE_OPTIONS;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar deprecate = require(\"util-deprecate\");\n\nvar WRAPPED_IN_QUOTES = /^('|\")([^]*)\\1$/;\nvar warnOfDeprecatedValueAssignment = deprecate(function () {}, \"Assigning an attribute a value containing characters that might need to be escaped is deprecated. \" + \"Call attribute.setValue() instead.\");\nvar warnOfDeprecatedQuotedAssignment = deprecate(function () {}, \"Assigning attr.quoted is deprecated and has no effect. Assign to attr.quoteMark instead.\");\nvar warnOfDeprecatedConstructor = deprecate(function () {}, \"Constructing an Attribute selector with a value without specifying quoteMark is deprecated. Note: The value should be unescaped now.\");\n\nfunction unescapeValue(value) {\n var deprecatedUsage = false;\n var quoteMark = null;\n var unescaped = value;\n var m = unescaped.match(WRAPPED_IN_QUOTES);\n\n if (m) {\n quoteMark = m[1];\n unescaped = m[2];\n }\n\n unescaped = (0, _unesc[\"default\"])(unescaped);\n\n if (unescaped !== value) {\n deprecatedUsage = true;\n }\n\n return {\n deprecatedUsage: deprecatedUsage,\n unescaped: unescaped,\n quoteMark: quoteMark\n };\n}\n\nfunction handleDeprecatedContructorOpts(opts) {\n if (opts.quoteMark !== undefined) {\n return opts;\n }\n\n if (opts.value === undefined) {\n return opts;\n }\n\n warnOfDeprecatedConstructor();\n\n var _unescapeValue = unescapeValue(opts.value),\n quoteMark = _unescapeValue.quoteMark,\n unescaped = _unescapeValue.unescaped;\n\n if (!opts.raws) {\n opts.raws = {};\n }\n\n if (opts.raws.value === undefined) {\n opts.raws.value = opts.value;\n }\n\n opts.value = unescaped;\n opts.quoteMark = quoteMark;\n return opts;\n}\n\nvar Attribute = /*#__PURE__*/function (_Namespace) {\n _inheritsLoose(Attribute, _Namespace);\n\n function Attribute(opts) {\n var _this;\n\n if (opts === void 0) {\n opts = {};\n }\n\n _this = _Namespace.call(this, handleDeprecatedContructorOpts(opts)) || this;\n _this.type = _types.ATTRIBUTE;\n _this.raws = _this.raws || {};\n Object.defineProperty(_this.raws, 'unquoted', {\n get: deprecate(function () {\n return _this.value;\n }, \"attr.raws.unquoted is deprecated. Call attr.value instead.\"),\n set: deprecate(function () {\n return _this.value;\n }, \"Setting attr.raws.unquoted is deprecated and has no effect. attr.value is unescaped by default now.\")\n });\n _this._constructed = true;\n return _this;\n }\n /**\n * Returns the Attribute's value quoted such that it would be legal to use\n * in the value of a css file. The original value's quotation setting\n * used for stringification is left unchanged. See `setValue(value, options)`\n * if you want to control the quote settings of a new value for the attribute.\n *\n * You can also change the quotation used for the current value by setting quoteMark.\n *\n * Options:\n * * quoteMark {'\"' | \"'\" | null} - Use this value to quote the value. If this\n * option is not set, the original value for quoteMark will be used. If\n * indeterminate, a double quote is used. The legal values are:\n * * `null` - the value will be unquoted and characters will be escaped as necessary.\n * * `'` - the value will be quoted with a single quote and single quotes are escaped.\n * * `\"` - the value will be quoted with a double quote and double quotes are escaped.\n * * preferCurrentQuoteMark {boolean} - if true, prefer the source quote mark\n * over the quoteMark option value.\n * * smart {boolean} - if true, will select a quote mark based on the value\n * and the other options specified here. See the `smartQuoteMark()`\n * method.\n **/\n\n\n var _proto = Attribute.prototype;\n\n _proto.getQuotedValue = function getQuotedValue(options) {\n if (options === void 0) {\n options = {};\n }\n\n var quoteMark = this._determineQuoteMark(options);\n\n var cssescopts = CSSESC_QUOTE_OPTIONS[quoteMark];\n var escaped = (0, _cssesc[\"default\"])(this._value, cssescopts);\n return escaped;\n };\n\n _proto._determineQuoteMark = function _determineQuoteMark(options) {\n return options.smart ? this.smartQuoteMark(options) : this.preferredQuoteMark(options);\n }\n /**\n * Set the unescaped value with the specified quotation options. The value\n * provided must not include any wrapping quote marks -- those quotes will\n * be interpreted as part of the value and escaped accordingly.\n */\n ;\n\n _proto.setValue = function setValue(value, options) {\n if (options === void 0) {\n options = {};\n }\n\n this._value = value;\n this._quoteMark = this._determineQuoteMark(options);\n\n this._syncRawValue();\n }\n /**\n * Intelligently select a quoteMark value based on the value's contents. If\n * the value is a legal CSS ident, it will not be quoted. Otherwise a quote\n * mark will be picked that minimizes the number of escapes.\n *\n * If there's no clear winner, the quote mark from these options is used,\n * then the source quote mark (this is inverted if `preferCurrentQuoteMark` is\n * true). If the quoteMark is unspecified, a double quote is used.\n *\n * @param options This takes the quoteMark and preferCurrentQuoteMark options\n * from the quoteValue method.\n */\n ;\n\n _proto.smartQuoteMark = function smartQuoteMark(options) {\n var v = this.value;\n var numSingleQuotes = v.replace(/[^']/g, '').length;\n var numDoubleQuotes = v.replace(/[^\"]/g, '').length;\n\n if (numSingleQuotes + numDoubleQuotes === 0) {\n var escaped = (0, _cssesc[\"default\"])(v, {\n isIdentifier: true\n });\n\n if (escaped === v) {\n return Attribute.NO_QUOTE;\n } else {\n var pref = this.preferredQuoteMark(options);\n\n if (pref === Attribute.NO_QUOTE) {\n // pick a quote mark that isn't none and see if it's smaller\n var quote = this.quoteMark || options.quoteMark || Attribute.DOUBLE_QUOTE;\n var opts = CSSESC_QUOTE_OPTIONS[quote];\n var quoteValue = (0, _cssesc[\"default\"])(v, opts);\n\n if (quoteValue.length < escaped.length) {\n return quote;\n }\n }\n\n return pref;\n }\n } else if (numDoubleQuotes === numSingleQuotes) {\n return this.preferredQuoteMark(options);\n } else if (numDoubleQuotes < numSingleQuotes) {\n return Attribute.DOUBLE_QUOTE;\n } else {\n return Attribute.SINGLE_QUOTE;\n }\n }\n /**\n * Selects the preferred quote mark based on the options and the current quote mark value.\n * If you want the quote mark to depend on the attribute value, call `smartQuoteMark(opts)`\n * instead.\n */\n ;\n\n _proto.preferredQuoteMark = function preferredQuoteMark(options) {\n var quoteMark = options.preferCurrentQuoteMark ? this.quoteMark : options.quoteMark;\n\n if (quoteMark === undefined) {\n quoteMark = options.preferCurrentQuoteMark ? options.quoteMark : this.quoteMark;\n }\n\n if (quoteMark === undefined) {\n quoteMark = Attribute.DOUBLE_QUOTE;\n }\n\n return quoteMark;\n };\n\n _proto._syncRawValue = function _syncRawValue() {\n var rawValue = (0, _cssesc[\"default\"])(this._value, CSSESC_QUOTE_OPTIONS[this.quoteMark]);\n\n if (rawValue === this._value) {\n if (this.raws) {\n delete this.raws.value;\n }\n } else {\n this.raws.value = rawValue;\n }\n };\n\n _proto._handleEscapes = function _handleEscapes(prop, value) {\n if (this._constructed) {\n var escaped = (0, _cssesc[\"default\"])(value, {\n isIdentifier: true\n });\n\n if (escaped !== value) {\n this.raws[prop] = escaped;\n } else {\n delete this.raws[prop];\n }\n }\n };\n\n _proto._spacesFor = function _spacesFor(name) {\n var attrSpaces = {\n before: '',\n after: ''\n };\n var spaces = this.spaces[name] || {};\n var rawSpaces = this.raws.spaces && this.raws.spaces[name] || {};\n return Object.assign(attrSpaces, spaces, rawSpaces);\n };\n\n _proto._stringFor = function _stringFor(name, spaceName, concat) {\n if (spaceName === void 0) {\n spaceName = name;\n }\n\n if (concat === void 0) {\n concat = defaultAttrConcat;\n }\n\n var attrSpaces = this._spacesFor(spaceName);\n\n return concat(this.stringifyProperty(name), attrSpaces);\n }\n /**\n * returns the offset of the attribute part specified relative to the\n * start of the node of the output string.\n *\n * * \"ns\" - alias for \"namespace\"\n * * \"namespace\" - the namespace if it exists.\n * * \"attribute\" - the attribute name\n * * \"attributeNS\" - the start of the attribute or its namespace\n * * \"operator\" - the match operator of the attribute\n * * \"value\" - The value (string or identifier)\n * * \"insensitive\" - the case insensitivity flag;\n * @param part One of the possible values inside an attribute.\n * @returns -1 if the name is invalid or the value doesn't exist in this attribute.\n */\n ;\n\n _proto.offsetOf = function offsetOf(name) {\n var count = 1;\n\n var attributeSpaces = this._spacesFor(\"attribute\");\n\n count += attributeSpaces.before.length;\n\n if (name === \"namespace\" || name === \"ns\") {\n return this.namespace ? count : -1;\n }\n\n if (name === \"attributeNS\") {\n return count;\n }\n\n count += this.namespaceString.length;\n\n if (this.namespace) {\n count += 1;\n }\n\n if (name === \"attribute\") {\n return count;\n }\n\n count += this.stringifyProperty(\"attribute\").length;\n count += attributeSpaces.after.length;\n\n var operatorSpaces = this._spacesFor(\"operator\");\n\n count += operatorSpaces.before.length;\n var operator = this.stringifyProperty(\"operator\");\n\n if (name === \"operator\") {\n return operator ? count : -1;\n }\n\n count += operator.length;\n count += operatorSpaces.after.length;\n\n var valueSpaces = this._spacesFor(\"value\");\n\n count += valueSpaces.before.length;\n var value = this.stringifyProperty(\"value\");\n\n if (name === \"value\") {\n return value ? count : -1;\n }\n\n count += value.length;\n count += valueSpaces.after.length;\n\n var insensitiveSpaces = this._spacesFor(\"insensitive\");\n\n count += insensitiveSpaces.before.length;\n\n if (name === \"insensitive\") {\n return this.insensitive ? count : -1;\n }\n\n return -1;\n };\n\n _proto.toString = function toString() {\n var _this2 = this;\n\n var selector = [this.rawSpaceBefore, '['];\n selector.push(this._stringFor('qualifiedAttribute', 'attribute'));\n\n if (this.operator && (this.value || this.value === '')) {\n selector.push(this._stringFor('operator'));\n selector.push(this._stringFor('value'));\n selector.push(this._stringFor('insensitiveFlag', 'insensitive', function (attrValue, attrSpaces) {\n if (attrValue.length > 0 && !_this2.quoted && attrSpaces.before.length === 0 && !(_this2.spaces.value && _this2.spaces.value.after)) {\n attrSpaces.before = \" \";\n }\n\n return defaultAttrConcat(attrValue, attrSpaces);\n }));\n }\n\n selector.push(']');\n selector.push(this.rawSpaceAfter);\n return selector.join('');\n };\n\n _createClass(Attribute, [{\n key: \"quoted\",\n get: function get() {\n var qm = this.quoteMark;\n return qm === \"'\" || qm === '\"';\n },\n set: function set(value) {\n warnOfDeprecatedQuotedAssignment();\n }\n /**\n * returns a single (`'`) or double (`\"`) quote character if the value is quoted.\n * returns `null` if the value is not quoted.\n * returns `undefined` if the quotation state is unknown (this can happen when\n * the attribute is constructed without specifying a quote mark.)\n */\n\n }, {\n key: \"quoteMark\",\n get: function get() {\n return this._quoteMark;\n }\n /**\n * Set the quote mark to be used by this attribute's value.\n * If the quote mark changes, the raw (escaped) value at `attr.raws.value` of the attribute\n * value is updated accordingly.\n *\n * @param {\"'\" | '\"' | null} quoteMark The quote mark or `null` if the value should be unquoted.\n */\n ,\n set: function set(quoteMark) {\n if (!this._constructed) {\n this._quoteMark = quoteMark;\n return;\n }\n\n if (this._quoteMark !== quoteMark) {\n this._quoteMark = quoteMark;\n\n this._syncRawValue();\n }\n }\n }, {\n key: \"qualifiedAttribute\",\n get: function get() {\n return this.qualifiedName(this.raws.attribute || this.attribute);\n }\n }, {\n key: \"insensitiveFlag\",\n get: function get() {\n return this.insensitive ? 'i' : '';\n }\n }, {\n key: \"value\",\n get: function get() {\n return this._value;\n }\n /**\n * Before 3.0, the value had to be set to an escaped value including any wrapped\n * quote marks. In 3.0, the semantics of `Attribute.value` changed so that the value\n * is unescaped during parsing and any quote marks are removed.\n *\n * Because the ambiguity of this semantic change, if you set `attr.value = newValue`,\n * a deprecation warning is raised when the new value contains any characters that would\n * require escaping (including if it contains wrapped quotes).\n *\n * Instead, you should call `attr.setValue(newValue, opts)` and pass options that describe\n * how the new value is quoted.\n */\n ,\n set: function set(v) {\n if (this._constructed) {\n var _unescapeValue2 = unescapeValue(v),\n deprecatedUsage = _unescapeValue2.deprecatedUsage,\n unescaped = _unescapeValue2.unescaped,\n quoteMark = _unescapeValue2.quoteMark;\n\n if (deprecatedUsage) {\n warnOfDeprecatedValueAssignment();\n }\n\n if (unescaped === this._value && quoteMark === this._quoteMark) {\n return;\n }\n\n this._value = unescaped;\n this._quoteMark = quoteMark;\n\n this._syncRawValue();\n } else {\n this._value = v;\n }\n }\n }, {\n key: \"attribute\",\n get: function get() {\n return this._attribute;\n },\n set: function set(name) {\n this._handleEscapes(\"attribute\", name);\n\n this._attribute = name;\n }\n }]);\n\n return Attribute;\n}(_namespace[\"default\"]);\n\nexports[\"default\"] = Attribute;\nAttribute.NO_QUOTE = null;\nAttribute.SINGLE_QUOTE = \"'\";\nAttribute.DOUBLE_QUOTE = '\"';\nvar CSSESC_QUOTE_OPTIONS = (_CSSESC_QUOTE_OPTIONS = {\n \"'\": {\n quotes: 'single',\n wrap: true\n },\n '\"': {\n quotes: 'double',\n wrap: true\n }\n}, _CSSESC_QUOTE_OPTIONS[null] = {\n isIdentifier: true\n}, _CSSESC_QUOTE_OPTIONS);\n\nfunction defaultAttrConcat(attrValue, attrSpaces) {\n return \"\" + attrSpaces.before + attrValue + attrSpaces.after;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _namespace = _interopRequireDefault(require(\"./namespace\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Universal = /*#__PURE__*/function (_Namespace) {\n _inheritsLoose(Universal, _Namespace);\n\n function Universal(opts) {\n var _this;\n\n _this = _Namespace.call(this, opts) || this;\n _this.type = _types.UNIVERSAL;\n _this.value = '*';\n return _this;\n }\n\n return Universal;\n}(_namespace[\"default\"]);\n\nexports[\"default\"] = Universal;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Combinator = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Combinator, _Node);\n\n function Combinator(opts) {\n var _this;\n\n _this = _Node.call(this, opts) || this;\n _this.type = _types.COMBINATOR;\n return _this;\n }\n\n return Combinator;\n}(_node[\"default\"]);\n\nexports[\"default\"] = Combinator;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Nesting = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Nesting, _Node);\n\n function Nesting(opts) {\n var _this;\n\n _this = _Node.call(this, opts) || this;\n _this.type = _types.NESTING;\n _this.value = '&';\n return _this;\n }\n\n return Nesting;\n}(_node[\"default\"]);\n\nexports[\"default\"] = Nesting;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = sortAscending;\n\nfunction sortAscending(list) {\n return list.sort(function (a, b) {\n return a - b;\n });\n}\n\n;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.combinator = exports.word = exports.comment = exports.str = exports.tab = exports.newline = exports.feed = exports.cr = exports.backslash = exports.bang = exports.slash = exports.doubleQuote = exports.singleQuote = exports.space = exports.greaterThan = exports.pipe = exports.equals = exports.plus = exports.caret = exports.tilde = exports.dollar = exports.closeSquare = exports.openSquare = exports.closeParenthesis = exports.openParenthesis = exports.semicolon = exports.colon = exports.comma = exports.at = exports.asterisk = exports.ampersand = void 0;\nvar ampersand = 38; // `&`.charCodeAt(0);\n\nexports.ampersand = ampersand;\nvar asterisk = 42; // `*`.charCodeAt(0);\n\nexports.asterisk = asterisk;\nvar at = 64; // `@`.charCodeAt(0);\n\nexports.at = at;\nvar comma = 44; // `,`.charCodeAt(0);\n\nexports.comma = comma;\nvar colon = 58; // `:`.charCodeAt(0);\n\nexports.colon = colon;\nvar semicolon = 59; // `;`.charCodeAt(0);\n\nexports.semicolon = semicolon;\nvar openParenthesis = 40; // `(`.charCodeAt(0);\n\nexports.openParenthesis = openParenthesis;\nvar closeParenthesis = 41; // `)`.charCodeAt(0);\n\nexports.closeParenthesis = closeParenthesis;\nvar openSquare = 91; // `[`.charCodeAt(0);\n\nexports.openSquare = openSquare;\nvar closeSquare = 93; // `]`.charCodeAt(0);\n\nexports.closeSquare = closeSquare;\nvar dollar = 36; // `$`.charCodeAt(0);\n\nexports.dollar = dollar;\nvar tilde = 126; // `~`.charCodeAt(0);\n\nexports.tilde = tilde;\nvar caret = 94; // `^`.charCodeAt(0);\n\nexports.caret = caret;\nvar plus = 43; // `+`.charCodeAt(0);\n\nexports.plus = plus;\nvar equals = 61; // `=`.charCodeAt(0);\n\nexports.equals = equals;\nvar pipe = 124; // `|`.charCodeAt(0);\n\nexports.pipe = pipe;\nvar greaterThan = 62; // `>`.charCodeAt(0);\n\nexports.greaterThan = greaterThan;\nvar space = 32; // ` `.charCodeAt(0);\n\nexports.space = space;\nvar singleQuote = 39; // `'`.charCodeAt(0);\n\nexports.singleQuote = singleQuote;\nvar doubleQuote = 34; // `\"`.charCodeAt(0);\n\nexports.doubleQuote = doubleQuote;\nvar slash = 47; // `/`.charCodeAt(0);\n\nexports.slash = slash;\nvar bang = 33; // `!`.charCodeAt(0);\n\nexports.bang = bang;\nvar backslash = 92; // '\\\\'.charCodeAt(0);\n\nexports.backslash = backslash;\nvar cr = 13; // '\\r'.charCodeAt(0);\n\nexports.cr = cr;\nvar feed = 12; // '\\f'.charCodeAt(0);\n\nexports.feed = feed;\nvar newline = 10; // '\\n'.charCodeAt(0);\n\nexports.newline = newline;\nvar tab = 9; // '\\t'.charCodeAt(0);\n// Expose aliases primarily for readability.\n\nexports.tab = tab;\nvar str = singleQuote; // No good single character representation!\n\nexports.str = str;\nvar comment = -1;\nexports.comment = comment;\nvar word = -2;\nexports.word = word;\nvar combinator = -3;\nexports.combinator = combinator;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = tokenize;\nexports.FIELDS = void 0;\n\nvar t = _interopRequireWildcard(require(\"./tokenTypes\"));\n\nvar _unescapable, _wordDelimiters;\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar unescapable = (_unescapable = {}, _unescapable[t.tab] = true, _unescapable[t.newline] = true, _unescapable[t.cr] = true, _unescapable[t.feed] = true, _unescapable);\nvar wordDelimiters = (_wordDelimiters = {}, _wordDelimiters[t.space] = true, _wordDelimiters[t.tab] = true, _wordDelimiters[t.newline] = true, _wordDelimiters[t.cr] = true, _wordDelimiters[t.feed] = true, _wordDelimiters[t.ampersand] = true, _wordDelimiters[t.asterisk] = true, _wordDelimiters[t.bang] = true, _wordDelimiters[t.comma] = true, _wordDelimiters[t.colon] = true, _wordDelimiters[t.semicolon] = true, _wordDelimiters[t.openParenthesis] = true, _wordDelimiters[t.closeParenthesis] = true, _wordDelimiters[t.openSquare] = true, _wordDelimiters[t.closeSquare] = true, _wordDelimiters[t.singleQuote] = true, _wordDelimiters[t.doubleQuote] = true, _wordDelimiters[t.plus] = true, _wordDelimiters[t.pipe] = true, _wordDelimiters[t.tilde] = true, _wordDelimiters[t.greaterThan] = true, _wordDelimiters[t.equals] = true, _wordDelimiters[t.dollar] = true, _wordDelimiters[t.caret] = true, _wordDelimiters[t.slash] = true, _wordDelimiters);\nvar hex = {};\nvar hexChars = \"0123456789abcdefABCDEF\";\n\nfor (var i = 0; i < hexChars.length; i++) {\n hex[hexChars.charCodeAt(i)] = true;\n}\n/**\n * Returns the last index of the bar css word\n * @param {string} css The string in which the word begins\n * @param {number} start The index into the string where word's first letter occurs\n */\n\n\nfunction consumeWord(css, start) {\n var next = start;\n var code;\n\n do {\n code = css.charCodeAt(next);\n\n if (wordDelimiters[code]) {\n return next - 1;\n } else if (code === t.backslash) {\n next = consumeEscape(css, next) + 1;\n } else {\n // All other characters are part of the word\n next++;\n }\n } while (next < css.length);\n\n return next - 1;\n}\n/**\n * Returns the last index of the escape sequence\n * @param {string} css The string in which the sequence begins\n * @param {number} start The index into the string where escape character (`\\`) occurs.\n */\n\n\nfunction consumeEscape(css, start) {\n var next = start;\n var code = css.charCodeAt(next + 1);\n\n if (unescapable[code]) {// just consume the escape char\n } else if (hex[code]) {\n var hexDigits = 0; // consume up to 6 hex chars\n\n do {\n next++;\n hexDigits++;\n code = css.charCodeAt(next + 1);\n } while (hex[code] && hexDigits < 6); // if fewer than 6 hex chars, a trailing space ends the escape\n\n\n if (hexDigits < 6 && code === t.space) {\n next++;\n }\n } else {\n // the next char is part of the current word\n next++;\n }\n\n return next;\n}\n\nvar FIELDS = {\n TYPE: 0,\n START_LINE: 1,\n START_COL: 2,\n END_LINE: 3,\n END_COL: 4,\n START_POS: 5,\n END_POS: 6\n};\nexports.FIELDS = FIELDS;\n\nfunction tokenize(input) {\n var tokens = [];\n var css = input.css.valueOf();\n var _css = css,\n length = _css.length;\n var offset = -1;\n var line = 1;\n var start = 0;\n var end = 0;\n var code, content, endColumn, endLine, escaped, escapePos, last, lines, next, nextLine, nextOffset, quote, tokenType;\n\n function unclosed(what, fix) {\n if (input.safe) {\n // fyi: this is never set to true.\n css += fix;\n next = css.length - 1;\n } else {\n throw input.error('Unclosed ' + what, line, start - offset, start);\n }\n }\n\n while (start < length) {\n code = css.charCodeAt(start);\n\n if (code === t.newline) {\n offset = start;\n line += 1;\n }\n\n switch (code) {\n case t.space:\n case t.tab:\n case t.newline:\n case t.cr:\n case t.feed:\n next = start;\n\n do {\n next += 1;\n code = css.charCodeAt(next);\n\n if (code === t.newline) {\n offset = next;\n line += 1;\n }\n } while (code === t.space || code === t.newline || code === t.tab || code === t.cr || code === t.feed);\n\n tokenType = t.space;\n endLine = line;\n endColumn = next - offset - 1;\n end = next;\n break;\n\n case t.plus:\n case t.greaterThan:\n case t.tilde:\n case t.pipe:\n next = start;\n\n do {\n next += 1;\n code = css.charCodeAt(next);\n } while (code === t.plus || code === t.greaterThan || code === t.tilde || code === t.pipe);\n\n tokenType = t.combinator;\n endLine = line;\n endColumn = start - offset;\n end = next;\n break;\n // Consume these characters as single tokens.\n\n case t.asterisk:\n case t.ampersand:\n case t.bang:\n case t.comma:\n case t.equals:\n case t.dollar:\n case t.caret:\n case t.openSquare:\n case t.closeSquare:\n case t.colon:\n case t.semicolon:\n case t.openParenthesis:\n case t.closeParenthesis:\n next = start;\n tokenType = code;\n endLine = line;\n endColumn = start - offset;\n end = next + 1;\n break;\n\n case t.singleQuote:\n case t.doubleQuote:\n quote = code === t.singleQuote ? \"'\" : '\"';\n next = start;\n\n do {\n escaped = false;\n next = css.indexOf(quote, next + 1);\n\n if (next === -1) {\n unclosed('quote', quote);\n }\n\n escapePos = next;\n\n while (css.charCodeAt(escapePos - 1) === t.backslash) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n\n tokenType = t.str;\n endLine = line;\n endColumn = start - offset;\n end = next + 1;\n break;\n\n default:\n if (code === t.slash && css.charCodeAt(start + 1) === t.asterisk) {\n next = css.indexOf('*/', start + 2) + 1;\n\n if (next === 0) {\n unclosed('comment', '*/');\n }\n\n content = css.slice(start, next + 1);\n lines = content.split('\\n');\n last = lines.length - 1;\n\n if (last > 0) {\n nextLine = line + last;\n nextOffset = next - lines[last].length;\n } else {\n nextLine = line;\n nextOffset = offset;\n }\n\n tokenType = t.comment;\n line = nextLine;\n endLine = nextLine;\n endColumn = next - nextOffset;\n } else if (code === t.slash) {\n next = start;\n tokenType = code;\n endLine = line;\n endColumn = start - offset;\n end = next + 1;\n } else {\n next = consumeWord(css, start);\n tokenType = t.word;\n endLine = line;\n endColumn = next - offset;\n }\n\n end = next + 1;\n break;\n } // Ensure that the token structure remains consistent\n\n\n tokens.push([tokenType, // [0] Token type\n line, // [1] Starting line\n start - offset, // [2] Starting column\n endLine, // [3] Ending line\n endColumn, // [4] Ending column\n start, // [5] Start position / Source index\n end // [6] End position\n ]); // Reset offset for the next token\n\n if (nextOffset) {\n offset = nextOffset;\n nextOffset = null;\n }\n\n start = end;\n }\n\n return tokens;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _root = _interopRequireDefault(require(\"./selectors/root\"));\n\nvar _selector = _interopRequireDefault(require(\"./selectors/selector\"));\n\nvar _className = _interopRequireDefault(require(\"./selectors/className\"));\n\nvar _comment = _interopRequireDefault(require(\"./selectors/comment\"));\n\nvar _id = _interopRequireDefault(require(\"./selectors/id\"));\n\nvar _tag = _interopRequireDefault(require(\"./selectors/tag\"));\n\nvar _string = _interopRequireDefault(require(\"./selectors/string\"));\n\nvar _pseudo = _interopRequireDefault(require(\"./selectors/pseudo\"));\n\nvar _attribute = _interopRequireWildcard(require(\"./selectors/attribute\"));\n\nvar _universal = _interopRequireDefault(require(\"./selectors/universal\"));\n\nvar _combinator = _interopRequireDefault(require(\"./selectors/combinator\"));\n\nvar _nesting = _interopRequireDefault(require(\"./selectors/nesting\"));\n\nvar _sortAscending = _interopRequireDefault(require(\"./sortAscending\"));\n\nvar _tokenize = _interopRequireWildcard(require(\"./tokenize\"));\n\nvar tokens = _interopRequireWildcard(require(\"./tokenTypes\"));\n\nvar types = _interopRequireWildcard(require(\"./selectors/types\"));\n\nvar _util = require(\"./util\");\n\nvar _WHITESPACE_TOKENS, _Object$assign;\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar WHITESPACE_TOKENS = (_WHITESPACE_TOKENS = {}, _WHITESPACE_TOKENS[tokens.space] = true, _WHITESPACE_TOKENS[tokens.cr] = true, _WHITESPACE_TOKENS[tokens.feed] = true, _WHITESPACE_TOKENS[tokens.newline] = true, _WHITESPACE_TOKENS[tokens.tab] = true, _WHITESPACE_TOKENS);\nvar WHITESPACE_EQUIV_TOKENS = Object.assign({}, WHITESPACE_TOKENS, (_Object$assign = {}, _Object$assign[tokens.comment] = true, _Object$assign));\n\nfunction tokenStart(token) {\n return {\n line: token[_tokenize.FIELDS.START_LINE],\n column: token[_tokenize.FIELDS.START_COL]\n };\n}\n\nfunction tokenEnd(token) {\n return {\n line: token[_tokenize.FIELDS.END_LINE],\n column: token[_tokenize.FIELDS.END_COL]\n };\n}\n\nfunction getSource(startLine, startColumn, endLine, endColumn) {\n return {\n start: {\n line: startLine,\n column: startColumn\n },\n end: {\n line: endLine,\n column: endColumn\n }\n };\n}\n\nfunction getTokenSource(token) {\n return getSource(token[_tokenize.FIELDS.START_LINE], token[_tokenize.FIELDS.START_COL], token[_tokenize.FIELDS.END_LINE], token[_tokenize.FIELDS.END_COL]);\n}\n\nfunction getTokenSourceSpan(startToken, endToken) {\n if (!startToken) {\n return undefined;\n }\n\n return getSource(startToken[_tokenize.FIELDS.START_LINE], startToken[_tokenize.FIELDS.START_COL], endToken[_tokenize.FIELDS.END_LINE], endToken[_tokenize.FIELDS.END_COL]);\n}\n\nfunction unescapeProp(node, prop) {\n var value = node[prop];\n\n if (typeof value !== \"string\") {\n return;\n }\n\n if (value.indexOf(\"\\\\\") !== -1) {\n (0, _util.ensureObject)(node, 'raws');\n node[prop] = (0, _util.unesc)(value);\n\n if (node.raws[prop] === undefined) {\n node.raws[prop] = value;\n }\n }\n\n return node;\n}\n\nfunction indexesOf(array, item) {\n var i = -1;\n var indexes = [];\n\n while ((i = array.indexOf(item, i + 1)) !== -1) {\n indexes.push(i);\n }\n\n return indexes;\n}\n\nfunction uniqs() {\n var list = Array.prototype.concat.apply([], arguments);\n return list.filter(function (item, i) {\n return i === list.indexOf(item);\n });\n}\n\nvar Parser = /*#__PURE__*/function () {\n function Parser(rule, options) {\n if (options === void 0) {\n options = {};\n }\n\n this.rule = rule;\n this.options = Object.assign({\n lossy: false,\n safe: false\n }, options);\n this.position = 0;\n this.css = typeof this.rule === 'string' ? this.rule : this.rule.selector;\n this.tokens = (0, _tokenize[\"default\"])({\n css: this.css,\n error: this._errorGenerator(),\n safe: this.options.safe\n });\n var rootSource = getTokenSourceSpan(this.tokens[0], this.tokens[this.tokens.length - 1]);\n this.root = new _root[\"default\"]({\n source: rootSource\n });\n this.root.errorGenerator = this._errorGenerator();\n var selector = new _selector[\"default\"]({\n source: {\n start: {\n line: 1,\n column: 1\n }\n }\n });\n this.root.append(selector);\n this.current = selector;\n this.loop();\n }\n\n var _proto = Parser.prototype;\n\n _proto._errorGenerator = function _errorGenerator() {\n var _this = this;\n\n return function (message, errorOptions) {\n if (typeof _this.rule === 'string') {\n return new Error(message);\n }\n\n return _this.rule.error(message, errorOptions);\n };\n };\n\n _proto.attribute = function attribute() {\n var attr = [];\n var startingToken = this.currToken;\n this.position++;\n\n while (this.position < this.tokens.length && this.currToken[_tokenize.FIELDS.TYPE] !== tokens.closeSquare) {\n attr.push(this.currToken);\n this.position++;\n }\n\n if (this.currToken[_tokenize.FIELDS.TYPE] !== tokens.closeSquare) {\n return this.expected('closing square bracket', this.currToken[_tokenize.FIELDS.START_POS]);\n }\n\n var len = attr.length;\n var node = {\n source: getSource(startingToken[1], startingToken[2], this.currToken[3], this.currToken[4]),\n sourceIndex: startingToken[_tokenize.FIELDS.START_POS]\n };\n\n if (len === 1 && !~[tokens.word].indexOf(attr[0][_tokenize.FIELDS.TYPE])) {\n return this.expected('attribute', attr[0][_tokenize.FIELDS.START_POS]);\n }\n\n var pos = 0;\n var spaceBefore = '';\n var commentBefore = '';\n var lastAdded = null;\n var spaceAfterMeaningfulToken = false;\n\n while (pos < len) {\n var token = attr[pos];\n var content = this.content(token);\n var next = attr[pos + 1];\n\n switch (token[_tokenize.FIELDS.TYPE]) {\n case tokens.space:\n // if (\n // len === 1 ||\n // pos === 0 && this.content(next) === '|'\n // ) {\n // return this.expected('attribute', token[TOKEN.START_POS], content);\n // }\n spaceAfterMeaningfulToken = true;\n\n if (this.options.lossy) {\n break;\n }\n\n if (lastAdded) {\n (0, _util.ensureObject)(node, 'spaces', lastAdded);\n var prevContent = node.spaces[lastAdded].after || '';\n node.spaces[lastAdded].after = prevContent + content;\n var existingComment = (0, _util.getProp)(node, 'raws', 'spaces', lastAdded, 'after') || null;\n\n if (existingComment) {\n node.raws.spaces[lastAdded].after = existingComment + content;\n }\n } else {\n spaceBefore = spaceBefore + content;\n commentBefore = commentBefore + content;\n }\n\n break;\n\n case tokens.asterisk:\n if (next[_tokenize.FIELDS.TYPE] === tokens.equals) {\n node.operator = content;\n lastAdded = 'operator';\n } else if ((!node.namespace || lastAdded === \"namespace\" && !spaceAfterMeaningfulToken) && next) {\n if (spaceBefore) {\n (0, _util.ensureObject)(node, 'spaces', 'attribute');\n node.spaces.attribute.before = spaceBefore;\n spaceBefore = '';\n }\n\n if (commentBefore) {\n (0, _util.ensureObject)(node, 'raws', 'spaces', 'attribute');\n node.raws.spaces.attribute.before = spaceBefore;\n commentBefore = '';\n }\n\n node.namespace = (node.namespace || \"\") + content;\n var rawValue = (0, _util.getProp)(node, 'raws', 'namespace') || null;\n\n if (rawValue) {\n node.raws.namespace += content;\n }\n\n lastAdded = 'namespace';\n }\n\n spaceAfterMeaningfulToken = false;\n break;\n\n case tokens.dollar:\n if (lastAdded === \"value\") {\n var oldRawValue = (0, _util.getProp)(node, 'raws', 'value');\n node.value += \"$\";\n\n if (oldRawValue) {\n node.raws.value = oldRawValue + \"$\";\n }\n\n break;\n }\n\n // Falls through\n\n case tokens.caret:\n if (next[_tokenize.FIELDS.TYPE] === tokens.equals) {\n node.operator = content;\n lastAdded = 'operator';\n }\n\n spaceAfterMeaningfulToken = false;\n break;\n\n case tokens.combinator:\n if (content === '~' && next[_tokenize.FIELDS.TYPE] === tokens.equals) {\n node.operator = content;\n lastAdded = 'operator';\n }\n\n if (content !== '|') {\n spaceAfterMeaningfulToken = false;\n break;\n }\n\n if (next[_tokenize.FIELDS.TYPE] === tokens.equals) {\n node.operator = content;\n lastAdded = 'operator';\n } else if (!node.namespace && !node.attribute) {\n node.namespace = true;\n }\n\n spaceAfterMeaningfulToken = false;\n break;\n\n case tokens.word:\n if (next && this.content(next) === '|' && attr[pos + 2] && attr[pos + 2][_tokenize.FIELDS.TYPE] !== tokens.equals && // this look-ahead probably fails with comment nodes involved.\n !node.operator && !node.namespace) {\n node.namespace = content;\n lastAdded = 'namespace';\n } else if (!node.attribute || lastAdded === \"attribute\" && !spaceAfterMeaningfulToken) {\n if (spaceBefore) {\n (0, _util.ensureObject)(node, 'spaces', 'attribute');\n node.spaces.attribute.before = spaceBefore;\n spaceBefore = '';\n }\n\n if (commentBefore) {\n (0, _util.ensureObject)(node, 'raws', 'spaces', 'attribute');\n node.raws.spaces.attribute.before = commentBefore;\n commentBefore = '';\n }\n\n node.attribute = (node.attribute || \"\") + content;\n\n var _rawValue = (0, _util.getProp)(node, 'raws', 'attribute') || null;\n\n if (_rawValue) {\n node.raws.attribute += content;\n }\n\n lastAdded = 'attribute';\n } else if (!node.value && node.value !== \"\" || lastAdded === \"value\" && !spaceAfterMeaningfulToken) {\n var _unescaped = (0, _util.unesc)(content);\n\n var _oldRawValue = (0, _util.getProp)(node, 'raws', 'value') || '';\n\n var oldValue = node.value || '';\n node.value = oldValue + _unescaped;\n node.quoteMark = null;\n\n if (_unescaped !== content || _oldRawValue) {\n (0, _util.ensureObject)(node, 'raws');\n node.raws.value = (_oldRawValue || oldValue) + content;\n }\n\n lastAdded = 'value';\n } else {\n var insensitive = content === 'i' || content === \"I\";\n\n if ((node.value || node.value === '') && (node.quoteMark || spaceAfterMeaningfulToken)) {\n node.insensitive = insensitive;\n\n if (!insensitive || content === \"I\") {\n (0, _util.ensureObject)(node, 'raws');\n node.raws.insensitiveFlag = content;\n }\n\n lastAdded = 'insensitive';\n\n if (spaceBefore) {\n (0, _util.ensureObject)(node, 'spaces', 'insensitive');\n node.spaces.insensitive.before = spaceBefore;\n spaceBefore = '';\n }\n\n if (commentBefore) {\n (0, _util.ensureObject)(node, 'raws', 'spaces', 'insensitive');\n node.raws.spaces.insensitive.before = commentBefore;\n commentBefore = '';\n }\n } else if (node.value || node.value === '') {\n lastAdded = 'value';\n node.value += content;\n\n if (node.raws.value) {\n node.raws.value += content;\n }\n }\n }\n\n spaceAfterMeaningfulToken = false;\n break;\n\n case tokens.str:\n if (!node.attribute || !node.operator) {\n return this.error(\"Expected an attribute followed by an operator preceding the string.\", {\n index: token[_tokenize.FIELDS.START_POS]\n });\n }\n\n var _unescapeValue = (0, _attribute.unescapeValue)(content),\n unescaped = _unescapeValue.unescaped,\n quoteMark = _unescapeValue.quoteMark;\n\n node.value = unescaped;\n node.quoteMark = quoteMark;\n lastAdded = 'value';\n (0, _util.ensureObject)(node, 'raws');\n node.raws.value = content;\n spaceAfterMeaningfulToken = false;\n break;\n\n case tokens.equals:\n if (!node.attribute) {\n return this.expected('attribute', token[_tokenize.FIELDS.START_POS], content);\n }\n\n if (node.value) {\n return this.error('Unexpected \"=\" found; an operator was already defined.', {\n index: token[_tokenize.FIELDS.START_POS]\n });\n }\n\n node.operator = node.operator ? node.operator + content : content;\n lastAdded = 'operator';\n spaceAfterMeaningfulToken = false;\n break;\n\n case tokens.comment:\n if (lastAdded) {\n if (spaceAfterMeaningfulToken || next && next[_tokenize.FIELDS.TYPE] === tokens.space || lastAdded === 'insensitive') {\n var lastComment = (0, _util.getProp)(node, 'spaces', lastAdded, 'after') || '';\n var rawLastComment = (0, _util.getProp)(node, 'raws', 'spaces', lastAdded, 'after') || lastComment;\n (0, _util.ensureObject)(node, 'raws', 'spaces', lastAdded);\n node.raws.spaces[lastAdded].after = rawLastComment + content;\n } else {\n var lastValue = node[lastAdded] || '';\n var rawLastValue = (0, _util.getProp)(node, 'raws', lastAdded) || lastValue;\n (0, _util.ensureObject)(node, 'raws');\n node.raws[lastAdded] = rawLastValue + content;\n }\n } else {\n commentBefore = commentBefore + content;\n }\n\n break;\n\n default:\n return this.error(\"Unexpected \\\"\" + content + \"\\\" found.\", {\n index: token[_tokenize.FIELDS.START_POS]\n });\n }\n\n pos++;\n }\n\n unescapeProp(node, \"attribute\");\n unescapeProp(node, \"namespace\");\n this.newNode(new _attribute[\"default\"](node));\n this.position++;\n }\n /**\n * return a node containing meaningless garbage up to (but not including) the specified token position.\n * if the token position is negative, all remaining tokens are consumed.\n *\n * This returns an array containing a single string node if all whitespace,\n * otherwise an array of comment nodes with space before and after.\n *\n * These tokens are not added to the current selector, the caller can add them or use them to amend\n * a previous node's space metadata.\n *\n * In lossy mode, this returns only comments.\n */\n ;\n\n _proto.parseWhitespaceEquivalentTokens = function parseWhitespaceEquivalentTokens(stopPosition) {\n if (stopPosition < 0) {\n stopPosition = this.tokens.length;\n }\n\n var startPosition = this.position;\n var nodes = [];\n var space = \"\";\n var lastComment = undefined;\n\n do {\n if (WHITESPACE_TOKENS[this.currToken[_tokenize.FIELDS.TYPE]]) {\n if (!this.options.lossy) {\n space += this.content();\n }\n } else if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.comment) {\n var spaces = {};\n\n if (space) {\n spaces.before = space;\n space = \"\";\n }\n\n lastComment = new _comment[\"default\"]({\n value: this.content(),\n source: getTokenSource(this.currToken),\n sourceIndex: this.currToken[_tokenize.FIELDS.START_POS],\n spaces: spaces\n });\n nodes.push(lastComment);\n }\n } while (++this.position < stopPosition);\n\n if (space) {\n if (lastComment) {\n lastComment.spaces.after = space;\n } else if (!this.options.lossy) {\n var firstToken = this.tokens[startPosition];\n var lastToken = this.tokens[this.position - 1];\n nodes.push(new _string[\"default\"]({\n value: '',\n source: getSource(firstToken[_tokenize.FIELDS.START_LINE], firstToken[_tokenize.FIELDS.START_COL], lastToken[_tokenize.FIELDS.END_LINE], lastToken[_tokenize.FIELDS.END_COL]),\n sourceIndex: firstToken[_tokenize.FIELDS.START_POS],\n spaces: {\n before: space,\n after: ''\n }\n }));\n }\n }\n\n return nodes;\n }\n /**\n * \n * @param {*} nodes \n */\n ;\n\n _proto.convertWhitespaceNodesToSpace = function convertWhitespaceNodesToSpace(nodes, requiredSpace) {\n var _this2 = this;\n\n if (requiredSpace === void 0) {\n requiredSpace = false;\n }\n\n var space = \"\";\n var rawSpace = \"\";\n nodes.forEach(function (n) {\n var spaceBefore = _this2.lossySpace(n.spaces.before, requiredSpace);\n\n var rawSpaceBefore = _this2.lossySpace(n.rawSpaceBefore, requiredSpace);\n\n space += spaceBefore + _this2.lossySpace(n.spaces.after, requiredSpace && spaceBefore.length === 0);\n rawSpace += spaceBefore + n.value + _this2.lossySpace(n.rawSpaceAfter, requiredSpace && rawSpaceBefore.length === 0);\n });\n\n if (rawSpace === space) {\n rawSpace = undefined;\n }\n\n var result = {\n space: space,\n rawSpace: rawSpace\n };\n return result;\n };\n\n _proto.isNamedCombinator = function isNamedCombinator(position) {\n if (position === void 0) {\n position = this.position;\n }\n\n return this.tokens[position + 0] && this.tokens[position + 0][_tokenize.FIELDS.TYPE] === tokens.slash && this.tokens[position + 1] && this.tokens[position + 1][_tokenize.FIELDS.TYPE] === tokens.word && this.tokens[position + 2] && this.tokens[position + 2][_tokenize.FIELDS.TYPE] === tokens.slash;\n };\n\n _proto.namedCombinator = function namedCombinator() {\n if (this.isNamedCombinator()) {\n var nameRaw = this.content(this.tokens[this.position + 1]);\n var name = (0, _util.unesc)(nameRaw).toLowerCase();\n var raws = {};\n\n if (name !== nameRaw) {\n raws.value = \"/\" + nameRaw + \"/\";\n }\n\n var node = new _combinator[\"default\"]({\n value: \"/\" + name + \"/\",\n source: getSource(this.currToken[_tokenize.FIELDS.START_LINE], this.currToken[_tokenize.FIELDS.START_COL], this.tokens[this.position + 2][_tokenize.FIELDS.END_LINE], this.tokens[this.position + 2][_tokenize.FIELDS.END_COL]),\n sourceIndex: this.currToken[_tokenize.FIELDS.START_POS],\n raws: raws\n });\n this.position = this.position + 3;\n return node;\n } else {\n this.unexpected();\n }\n };\n\n _proto.combinator = function combinator() {\n var _this3 = this;\n\n if (this.content() === '|') {\n return this.namespace();\n } // We need to decide between a space that's a descendant combinator and meaningless whitespace at the end of a selector.\n\n\n var nextSigTokenPos = this.locateNextMeaningfulToken(this.position);\n\n if (nextSigTokenPos < 0 || this.tokens[nextSigTokenPos][_tokenize.FIELDS.TYPE] === tokens.comma) {\n var nodes = this.parseWhitespaceEquivalentTokens(nextSigTokenPos);\n\n if (nodes.length > 0) {\n var last = this.current.last;\n\n if (last) {\n var _this$convertWhitespa = this.convertWhitespaceNodesToSpace(nodes),\n space = _this$convertWhitespa.space,\n rawSpace = _this$convertWhitespa.rawSpace;\n\n if (rawSpace !== undefined) {\n last.rawSpaceAfter += rawSpace;\n }\n\n last.spaces.after += space;\n } else {\n nodes.forEach(function (n) {\n return _this3.newNode(n);\n });\n }\n }\n\n return;\n }\n\n var firstToken = this.currToken;\n var spaceOrDescendantSelectorNodes = undefined;\n\n if (nextSigTokenPos > this.position) {\n spaceOrDescendantSelectorNodes = this.parseWhitespaceEquivalentTokens(nextSigTokenPos);\n }\n\n var node;\n\n if (this.isNamedCombinator()) {\n node = this.namedCombinator();\n } else if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.combinator) {\n node = new _combinator[\"default\"]({\n value: this.content(),\n source: getTokenSource(this.currToken),\n sourceIndex: this.currToken[_tokenize.FIELDS.START_POS]\n });\n this.position++;\n } else if (WHITESPACE_TOKENS[this.currToken[_tokenize.FIELDS.TYPE]]) {// pass\n } else if (!spaceOrDescendantSelectorNodes) {\n this.unexpected();\n }\n\n if (node) {\n if (spaceOrDescendantSelectorNodes) {\n var _this$convertWhitespa2 = this.convertWhitespaceNodesToSpace(spaceOrDescendantSelectorNodes),\n _space = _this$convertWhitespa2.space,\n _rawSpace = _this$convertWhitespa2.rawSpace;\n\n node.spaces.before = _space;\n node.rawSpaceBefore = _rawSpace;\n }\n } else {\n // descendant combinator\n var _this$convertWhitespa3 = this.convertWhitespaceNodesToSpace(spaceOrDescendantSelectorNodes, true),\n _space2 = _this$convertWhitespa3.space,\n _rawSpace2 = _this$convertWhitespa3.rawSpace;\n\n if (!_rawSpace2) {\n _rawSpace2 = _space2;\n }\n\n var spaces = {};\n var raws = {\n spaces: {}\n };\n\n if (_space2.endsWith(' ') && _rawSpace2.endsWith(' ')) {\n spaces.before = _space2.slice(0, _space2.length - 1);\n raws.spaces.before = _rawSpace2.slice(0, _rawSpace2.length - 1);\n } else if (_space2.startsWith(' ') && _rawSpace2.startsWith(' ')) {\n spaces.after = _space2.slice(1);\n raws.spaces.after = _rawSpace2.slice(1);\n } else {\n raws.value = _rawSpace2;\n }\n\n node = new _combinator[\"default\"]({\n value: ' ',\n source: getTokenSourceSpan(firstToken, this.tokens[this.position - 1]),\n sourceIndex: firstToken[_tokenize.FIELDS.START_POS],\n spaces: spaces,\n raws: raws\n });\n }\n\n if (this.currToken && this.currToken[_tokenize.FIELDS.TYPE] === tokens.space) {\n node.spaces.after = this.optionalSpace(this.content());\n this.position++;\n }\n\n return this.newNode(node);\n };\n\n _proto.comma = function comma() {\n if (this.position === this.tokens.length - 1) {\n this.root.trailingComma = true;\n this.position++;\n return;\n }\n\n this.current._inferEndPosition();\n\n var selector = new _selector[\"default\"]({\n source: {\n start: tokenStart(this.tokens[this.position + 1])\n }\n });\n this.current.parent.append(selector);\n this.current = selector;\n this.position++;\n };\n\n _proto.comment = function comment() {\n var current = this.currToken;\n this.newNode(new _comment[\"default\"]({\n value: this.content(),\n source: getTokenSource(current),\n sourceIndex: current[_tokenize.FIELDS.START_POS]\n }));\n this.position++;\n };\n\n _proto.error = function error(message, opts) {\n throw this.root.error(message, opts);\n };\n\n _proto.missingBackslash = function missingBackslash() {\n return this.error('Expected a backslash preceding the semicolon.', {\n index: this.currToken[_tokenize.FIELDS.START_POS]\n });\n };\n\n _proto.missingParenthesis = function missingParenthesis() {\n return this.expected('opening parenthesis', this.currToken[_tokenize.FIELDS.START_POS]);\n };\n\n _proto.missingSquareBracket = function missingSquareBracket() {\n return this.expected('opening square bracket', this.currToken[_tokenize.FIELDS.START_POS]);\n };\n\n _proto.unexpected = function unexpected() {\n return this.error(\"Unexpected '\" + this.content() + \"'. Escaping special characters with \\\\ may help.\", this.currToken[_tokenize.FIELDS.START_POS]);\n };\n\n _proto.namespace = function namespace() {\n var before = this.prevToken && this.content(this.prevToken) || true;\n\n if (this.nextToken[_tokenize.FIELDS.TYPE] === tokens.word) {\n this.position++;\n return this.word(before);\n } else if (this.nextToken[_tokenize.FIELDS.TYPE] === tokens.asterisk) {\n this.position++;\n return this.universal(before);\n }\n };\n\n _proto.nesting = function nesting() {\n if (this.nextToken) {\n var nextContent = this.content(this.nextToken);\n\n if (nextContent === \"|\") {\n this.position++;\n return;\n }\n }\n\n var current = this.currToken;\n this.newNode(new _nesting[\"default\"]({\n value: this.content(),\n source: getTokenSource(current),\n sourceIndex: current[_tokenize.FIELDS.START_POS]\n }));\n this.position++;\n };\n\n _proto.parentheses = function parentheses() {\n var last = this.current.last;\n var unbalanced = 1;\n this.position++;\n\n if (last && last.type === types.PSEUDO) {\n var selector = new _selector[\"default\"]({\n source: {\n start: tokenStart(this.tokens[this.position - 1])\n }\n });\n var cache = this.current;\n last.append(selector);\n this.current = selector;\n\n while (this.position < this.tokens.length && unbalanced) {\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis) {\n unbalanced++;\n }\n\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) {\n unbalanced--;\n }\n\n if (unbalanced) {\n this.parse();\n } else {\n this.current.source.end = tokenEnd(this.currToken);\n this.current.parent.source.end = tokenEnd(this.currToken);\n this.position++;\n }\n }\n\n this.current = cache;\n } else {\n // I think this case should be an error. It's used to implement a basic parse of media queries\n // but I don't think it's a good idea.\n var parenStart = this.currToken;\n var parenValue = \"(\";\n var parenEnd;\n\n while (this.position < this.tokens.length && unbalanced) {\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis) {\n unbalanced++;\n }\n\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) {\n unbalanced--;\n }\n\n parenEnd = this.currToken;\n parenValue += this.parseParenthesisToken(this.currToken);\n this.position++;\n }\n\n if (last) {\n last.appendToPropertyAndEscape(\"value\", parenValue, parenValue);\n } else {\n this.newNode(new _string[\"default\"]({\n value: parenValue,\n source: getSource(parenStart[_tokenize.FIELDS.START_LINE], parenStart[_tokenize.FIELDS.START_COL], parenEnd[_tokenize.FIELDS.END_LINE], parenEnd[_tokenize.FIELDS.END_COL]),\n sourceIndex: parenStart[_tokenize.FIELDS.START_POS]\n }));\n }\n }\n\n if (unbalanced) {\n return this.expected('closing parenthesis', this.currToken[_tokenize.FIELDS.START_POS]);\n }\n };\n\n _proto.pseudo = function pseudo() {\n var _this4 = this;\n\n var pseudoStr = '';\n var startingToken = this.currToken;\n\n while (this.currToken && this.currToken[_tokenize.FIELDS.TYPE] === tokens.colon) {\n pseudoStr += this.content();\n this.position++;\n }\n\n if (!this.currToken) {\n return this.expected(['pseudo-class', 'pseudo-element'], this.position - 1);\n }\n\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.word) {\n this.splitWord(false, function (first, length) {\n pseudoStr += first;\n\n _this4.newNode(new _pseudo[\"default\"]({\n value: pseudoStr,\n source: getTokenSourceSpan(startingToken, _this4.currToken),\n sourceIndex: startingToken[_tokenize.FIELDS.START_POS]\n }));\n\n if (length > 1 && _this4.nextToken && _this4.nextToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis) {\n _this4.error('Misplaced parenthesis.', {\n index: _this4.nextToken[_tokenize.FIELDS.START_POS]\n });\n }\n });\n } else {\n return this.expected(['pseudo-class', 'pseudo-element'], this.currToken[_tokenize.FIELDS.START_POS]);\n }\n };\n\n _proto.space = function space() {\n var content = this.content(); // Handle space before and after the selector\n\n if (this.position === 0 || this.prevToken[_tokenize.FIELDS.TYPE] === tokens.comma || this.prevToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis || this.current.nodes.every(function (node) {\n return node.type === 'comment';\n })) {\n this.spaces = this.optionalSpace(content);\n this.position++;\n } else if (this.position === this.tokens.length - 1 || this.nextToken[_tokenize.FIELDS.TYPE] === tokens.comma || this.nextToken[_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) {\n this.current.last.spaces.after = this.optionalSpace(content);\n this.position++;\n } else {\n this.combinator();\n }\n };\n\n _proto.string = function string() {\n var current = this.currToken;\n this.newNode(new _string[\"default\"]({\n value: this.content(),\n source: getTokenSource(current),\n sourceIndex: current[_tokenize.FIELDS.START_POS]\n }));\n this.position++;\n };\n\n _proto.universal = function universal(namespace) {\n var nextToken = this.nextToken;\n\n if (nextToken && this.content(nextToken) === '|') {\n this.position++;\n return this.namespace();\n }\n\n var current = this.currToken;\n this.newNode(new _universal[\"default\"]({\n value: this.content(),\n source: getTokenSource(current),\n sourceIndex: current[_tokenize.FIELDS.START_POS]\n }), namespace);\n this.position++;\n };\n\n _proto.splitWord = function splitWord(namespace, firstCallback) {\n var _this5 = this;\n\n var nextToken = this.nextToken;\n var word = this.content();\n\n while (nextToken && ~[tokens.dollar, tokens.caret, tokens.equals, tokens.word].indexOf(nextToken[_tokenize.FIELDS.TYPE])) {\n this.position++;\n var current = this.content();\n word += current;\n\n if (current.lastIndexOf('\\\\') === current.length - 1) {\n var next = this.nextToken;\n\n if (next && next[_tokenize.FIELDS.TYPE] === tokens.space) {\n word += this.requiredSpace(this.content(next));\n this.position++;\n }\n }\n\n nextToken = this.nextToken;\n }\n\n var hasClass = indexesOf(word, '.').filter(function (i) {\n // Allow escaped dot within class name\n var escapedDot = word[i - 1] === '\\\\'; // Allow decimal numbers percent in @keyframes\n\n var isKeyframesPercent = /^\\d+\\.\\d+%$/.test(word);\n return !escapedDot && !isKeyframesPercent;\n });\n var hasId = indexesOf(word, '#').filter(function (i) {\n return word[i - 1] !== '\\\\';\n }); // Eliminate Sass interpolations from the list of id indexes\n\n var interpolations = indexesOf(word, '#{');\n\n if (interpolations.length) {\n hasId = hasId.filter(function (hashIndex) {\n return !~interpolations.indexOf(hashIndex);\n });\n }\n\n var indices = (0, _sortAscending[\"default\"])(uniqs([0].concat(hasClass, hasId)));\n indices.forEach(function (ind, i) {\n var index = indices[i + 1] || word.length;\n var value = word.slice(ind, index);\n\n if (i === 0 && firstCallback) {\n return firstCallback.call(_this5, value, indices.length);\n }\n\n var node;\n var current = _this5.currToken;\n var sourceIndex = current[_tokenize.FIELDS.START_POS] + indices[i];\n var source = getSource(current[1], current[2] + ind, current[3], current[2] + (index - 1));\n\n if (~hasClass.indexOf(ind)) {\n var classNameOpts = {\n value: value.slice(1),\n source: source,\n sourceIndex: sourceIndex\n };\n node = new _className[\"default\"](unescapeProp(classNameOpts, \"value\"));\n } else if (~hasId.indexOf(ind)) {\n var idOpts = {\n value: value.slice(1),\n source: source,\n sourceIndex: sourceIndex\n };\n node = new _id[\"default\"](unescapeProp(idOpts, \"value\"));\n } else {\n var tagOpts = {\n value: value,\n source: source,\n sourceIndex: sourceIndex\n };\n unescapeProp(tagOpts, \"value\");\n node = new _tag[\"default\"](tagOpts);\n }\n\n _this5.newNode(node, namespace); // Ensure that the namespace is used only once\n\n\n namespace = null;\n });\n this.position++;\n };\n\n _proto.word = function word(namespace) {\n var nextToken = this.nextToken;\n\n if (nextToken && this.content(nextToken) === '|') {\n this.position++;\n return this.namespace();\n }\n\n return this.splitWord(namespace);\n };\n\n _proto.loop = function loop() {\n while (this.position < this.tokens.length) {\n this.parse(true);\n }\n\n this.current._inferEndPosition();\n\n return this.root;\n };\n\n _proto.parse = function parse(throwOnParenthesis) {\n switch (this.currToken[_tokenize.FIELDS.TYPE]) {\n case tokens.space:\n this.space();\n break;\n\n case tokens.comment:\n this.comment();\n break;\n\n case tokens.openParenthesis:\n this.parentheses();\n break;\n\n case tokens.closeParenthesis:\n if (throwOnParenthesis) {\n this.missingParenthesis();\n }\n\n break;\n\n case tokens.openSquare:\n this.attribute();\n break;\n\n case tokens.dollar:\n case tokens.caret:\n case tokens.equals:\n case tokens.word:\n this.word();\n break;\n\n case tokens.colon:\n this.pseudo();\n break;\n\n case tokens.comma:\n this.comma();\n break;\n\n case tokens.asterisk:\n this.universal();\n break;\n\n case tokens.ampersand:\n this.nesting();\n break;\n\n case tokens.slash:\n case tokens.combinator:\n this.combinator();\n break;\n\n case tokens.str:\n this.string();\n break;\n // These cases throw; no break needed.\n\n case tokens.closeSquare:\n this.missingSquareBracket();\n\n case tokens.semicolon:\n this.missingBackslash();\n\n default:\n this.unexpected();\n }\n }\n /**\n * Helpers\n */\n ;\n\n _proto.expected = function expected(description, index, found) {\n if (Array.isArray(description)) {\n var last = description.pop();\n description = description.join(', ') + \" or \" + last;\n }\n\n var an = /^[aeiou]/.test(description[0]) ? 'an' : 'a';\n\n if (!found) {\n return this.error(\"Expected \" + an + \" \" + description + \".\", {\n index: index\n });\n }\n\n return this.error(\"Expected \" + an + \" \" + description + \", found \\\"\" + found + \"\\\" instead.\", {\n index: index\n });\n };\n\n _proto.requiredSpace = function requiredSpace(space) {\n return this.options.lossy ? ' ' : space;\n };\n\n _proto.optionalSpace = function optionalSpace(space) {\n return this.options.lossy ? '' : space;\n };\n\n _proto.lossySpace = function lossySpace(space, required) {\n if (this.options.lossy) {\n return required ? ' ' : '';\n } else {\n return space;\n }\n };\n\n _proto.parseParenthesisToken = function parseParenthesisToken(token) {\n var content = this.content(token);\n\n if (token[_tokenize.FIELDS.TYPE] === tokens.space) {\n return this.requiredSpace(content);\n } else {\n return content;\n }\n };\n\n _proto.newNode = function newNode(node, namespace) {\n if (namespace) {\n if (/^ +$/.test(namespace)) {\n if (!this.options.lossy) {\n this.spaces = (this.spaces || '') + namespace;\n }\n\n namespace = true;\n }\n\n node.namespace = namespace;\n unescapeProp(node, \"namespace\");\n }\n\n if (this.spaces) {\n node.spaces.before = this.spaces;\n this.spaces = '';\n }\n\n return this.current.append(node);\n };\n\n _proto.content = function content(token) {\n if (token === void 0) {\n token = this.currToken;\n }\n\n return this.css.slice(token[_tokenize.FIELDS.START_POS], token[_tokenize.FIELDS.END_POS]);\n };\n\n /**\n * returns the index of the next non-whitespace, non-comment token.\n * returns -1 if no meaningful token is found.\n */\n _proto.locateNextMeaningfulToken = function locateNextMeaningfulToken(startPosition) {\n if (startPosition === void 0) {\n startPosition = this.position + 1;\n }\n\n var searchPosition = startPosition;\n\n while (searchPosition < this.tokens.length) {\n if (WHITESPACE_EQUIV_TOKENS[this.tokens[searchPosition][_tokenize.FIELDS.TYPE]]) {\n searchPosition++;\n continue;\n } else {\n return searchPosition;\n }\n }\n\n return -1;\n };\n\n _createClass(Parser, [{\n key: \"currToken\",\n get: function get() {\n return this.tokens[this.position];\n }\n }, {\n key: \"nextToken\",\n get: function get() {\n return this.tokens[this.position + 1];\n }\n }, {\n key: \"prevToken\",\n get: function get() {\n return this.tokens[this.position - 1];\n }\n }]);\n\n return Parser;\n}();\n\nexports[\"default\"] = Parser;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _parser = _interopRequireDefault(require(\"./parser\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar Processor = /*#__PURE__*/function () {\n function Processor(func, options) {\n this.func = func || function noop() {};\n\n this.funcRes = null;\n this.options = options;\n }\n\n var _proto = Processor.prototype;\n\n _proto._shouldUpdateSelector = function _shouldUpdateSelector(rule, options) {\n if (options === void 0) {\n options = {};\n }\n\n var merged = Object.assign({}, this.options, options);\n\n if (merged.updateSelector === false) {\n return false;\n } else {\n return typeof rule !== \"string\";\n }\n };\n\n _proto._isLossy = function _isLossy(options) {\n if (options === void 0) {\n options = {};\n }\n\n var merged = Object.assign({}, this.options, options);\n\n if (merged.lossless === false) {\n return true;\n } else {\n return false;\n }\n };\n\n _proto._root = function _root(rule, options) {\n if (options === void 0) {\n options = {};\n }\n\n var parser = new _parser[\"default\"](rule, this._parseOptions(options));\n return parser.root;\n };\n\n _proto._parseOptions = function _parseOptions(options) {\n return {\n lossy: this._isLossy(options)\n };\n };\n\n _proto._run = function _run(rule, options) {\n var _this = this;\n\n if (options === void 0) {\n options = {};\n }\n\n return new Promise(function (resolve, reject) {\n try {\n var root = _this._root(rule, options);\n\n Promise.resolve(_this.func(root)).then(function (transform) {\n var string = undefined;\n\n if (_this._shouldUpdateSelector(rule, options)) {\n string = root.toString();\n rule.selector = string;\n }\n\n return {\n transform: transform,\n root: root,\n string: string\n };\n }).then(resolve, reject);\n } catch (e) {\n reject(e);\n return;\n }\n });\n };\n\n _proto._runSync = function _runSync(rule, options) {\n if (options === void 0) {\n options = {};\n }\n\n var root = this._root(rule, options);\n\n var transform = this.func(root);\n\n if (transform && typeof transform.then === \"function\") {\n throw new Error(\"Selector processor returned a promise to a synchronous call.\");\n }\n\n var string = undefined;\n\n if (options.updateSelector && typeof rule !== \"string\") {\n string = root.toString();\n rule.selector = string;\n }\n\n return {\n transform: transform,\n root: root,\n string: string\n };\n }\n /**\n * Process rule into a selector AST.\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {Promise} The AST of the selector after processing it.\n */\n ;\n\n _proto.ast = function ast(rule, options) {\n return this._run(rule, options).then(function (result) {\n return result.root;\n });\n }\n /**\n * Process rule into a selector AST synchronously.\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {parser.Root} The AST of the selector after processing it.\n */\n ;\n\n _proto.astSync = function astSync(rule, options) {\n return this._runSync(rule, options).root;\n }\n /**\n * Process a selector into a transformed value asynchronously\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {Promise} The value returned by the processor.\n */\n ;\n\n _proto.transform = function transform(rule, options) {\n return this._run(rule, options).then(function (result) {\n return result.transform;\n });\n }\n /**\n * Process a selector into a transformed value synchronously.\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {any} The value returned by the processor.\n */\n ;\n\n _proto.transformSync = function transformSync(rule, options) {\n return this._runSync(rule, options).transform;\n }\n /**\n * Process a selector into a new selector string asynchronously.\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {string} the selector after processing.\n */\n ;\n\n _proto.process = function process(rule, options) {\n return this._run(rule, options).then(function (result) {\n return result.string || result.root.toString();\n });\n }\n /**\n * Process a selector into a new selector string synchronously.\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {string} the selector after processing.\n */\n ;\n\n _proto.processSync = function processSync(rule, options) {\n var result = this._runSync(rule, options);\n\n return result.string || result.root.toString();\n };\n\n return Processor;\n}();\n\nexports[\"default\"] = Processor;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.universal = exports.tag = exports.string = exports.selector = exports.root = exports.pseudo = exports.nesting = exports.id = exports.comment = exports.combinator = exports.className = exports.attribute = void 0;\n\nvar _attribute = _interopRequireDefault(require(\"./attribute\"));\n\nvar _className = _interopRequireDefault(require(\"./className\"));\n\nvar _combinator = _interopRequireDefault(require(\"./combinator\"));\n\nvar _comment = _interopRequireDefault(require(\"./comment\"));\n\nvar _id = _interopRequireDefault(require(\"./id\"));\n\nvar _nesting = _interopRequireDefault(require(\"./nesting\"));\n\nvar _pseudo = _interopRequireDefault(require(\"./pseudo\"));\n\nvar _root = _interopRequireDefault(require(\"./root\"));\n\nvar _selector = _interopRequireDefault(require(\"./selector\"));\n\nvar _string = _interopRequireDefault(require(\"./string\"));\n\nvar _tag = _interopRequireDefault(require(\"./tag\"));\n\nvar _universal = _interopRequireDefault(require(\"./universal\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar attribute = function attribute(opts) {\n return new _attribute[\"default\"](opts);\n};\n\nexports.attribute = attribute;\n\nvar className = function className(opts) {\n return new _className[\"default\"](opts);\n};\n\nexports.className = className;\n\nvar combinator = function combinator(opts) {\n return new _combinator[\"default\"](opts);\n};\n\nexports.combinator = combinator;\n\nvar comment = function comment(opts) {\n return new _comment[\"default\"](opts);\n};\n\nexports.comment = comment;\n\nvar id = function id(opts) {\n return new _id[\"default\"](opts);\n};\n\nexports.id = id;\n\nvar nesting = function nesting(opts) {\n return new _nesting[\"default\"](opts);\n};\n\nexports.nesting = nesting;\n\nvar pseudo = function pseudo(opts) {\n return new _pseudo[\"default\"](opts);\n};\n\nexports.pseudo = pseudo;\n\nvar root = function root(opts) {\n return new _root[\"default\"](opts);\n};\n\nexports.root = root;\n\nvar selector = function selector(opts) {\n return new _selector[\"default\"](opts);\n};\n\nexports.selector = selector;\n\nvar string = function string(opts) {\n return new _string[\"default\"](opts);\n};\n\nexports.string = string;\n\nvar tag = function tag(opts) {\n return new _tag[\"default\"](opts);\n};\n\nexports.tag = tag;\n\nvar universal = function universal(opts) {\n return new _universal[\"default\"](opts);\n};\n\nexports.universal = universal;","\"use strict\";\n\nexports.__esModule = true;\nexports.isNode = isNode;\nexports.isPseudoElement = isPseudoElement;\nexports.isPseudoClass = isPseudoClass;\nexports.isContainer = isContainer;\nexports.isNamespace = isNamespace;\nexports.isUniversal = exports.isTag = exports.isString = exports.isSelector = exports.isRoot = exports.isPseudo = exports.isNesting = exports.isIdentifier = exports.isComment = exports.isCombinator = exports.isClassName = exports.isAttribute = void 0;\n\nvar _types = require(\"./types\");\n\nvar _IS_TYPE;\n\nvar IS_TYPE = (_IS_TYPE = {}, _IS_TYPE[_types.ATTRIBUTE] = true, _IS_TYPE[_types.CLASS] = true, _IS_TYPE[_types.COMBINATOR] = true, _IS_TYPE[_types.COMMENT] = true, _IS_TYPE[_types.ID] = true, _IS_TYPE[_types.NESTING] = true, _IS_TYPE[_types.PSEUDO] = true, _IS_TYPE[_types.ROOT] = true, _IS_TYPE[_types.SELECTOR] = true, _IS_TYPE[_types.STRING] = true, _IS_TYPE[_types.TAG] = true, _IS_TYPE[_types.UNIVERSAL] = true, _IS_TYPE);\n\nfunction isNode(node) {\n return typeof node === \"object\" && IS_TYPE[node.type];\n}\n\nfunction isNodeType(type, node) {\n return isNode(node) && node.type === type;\n}\n\nvar isAttribute = isNodeType.bind(null, _types.ATTRIBUTE);\nexports.isAttribute = isAttribute;\nvar isClassName = isNodeType.bind(null, _types.CLASS);\nexports.isClassName = isClassName;\nvar isCombinator = isNodeType.bind(null, _types.COMBINATOR);\nexports.isCombinator = isCombinator;\nvar isComment = isNodeType.bind(null, _types.COMMENT);\nexports.isComment = isComment;\nvar isIdentifier = isNodeType.bind(null, _types.ID);\nexports.isIdentifier = isIdentifier;\nvar isNesting = isNodeType.bind(null, _types.NESTING);\nexports.isNesting = isNesting;\nvar isPseudo = isNodeType.bind(null, _types.PSEUDO);\nexports.isPseudo = isPseudo;\nvar isRoot = isNodeType.bind(null, _types.ROOT);\nexports.isRoot = isRoot;\nvar isSelector = isNodeType.bind(null, _types.SELECTOR);\nexports.isSelector = isSelector;\nvar isString = isNodeType.bind(null, _types.STRING);\nexports.isString = isString;\nvar isTag = isNodeType.bind(null, _types.TAG);\nexports.isTag = isTag;\nvar isUniversal = isNodeType.bind(null, _types.UNIVERSAL);\nexports.isUniversal = isUniversal;\n\nfunction isPseudoElement(node) {\n return isPseudo(node) && node.value && (node.value.startsWith(\"::\") || node.value.toLowerCase() === \":before\" || node.value.toLowerCase() === \":after\" || node.value.toLowerCase() === \":first-letter\" || node.value.toLowerCase() === \":first-line\");\n}\n\nfunction isPseudoClass(node) {\n return isPseudo(node) && !isPseudoElement(node);\n}\n\nfunction isContainer(node) {\n return !!(isNode(node) && node.walk);\n}\n\nfunction isNamespace(node) {\n return isAttribute(node) || isTag(node);\n}","\"use strict\";\n\nexports.__esModule = true;\n\nvar _types = require(\"./types\");\n\nObject.keys(_types).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _types[key]) return;\n exports[key] = _types[key];\n});\n\nvar _constructors = require(\"./constructors\");\n\nObject.keys(_constructors).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _constructors[key]) return;\n exports[key] = _constructors[key];\n});\n\nvar _guards = require(\"./guards\");\n\nObject.keys(_guards).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _guards[key]) return;\n exports[key] = _guards[key];\n});","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _processor = _interopRequireDefault(require(\"./processor\"));\n\nvar selectors = _interopRequireWildcard(require(\"./selectors\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar parser = function parser(processor) {\n return new _processor[\"default\"](processor);\n};\n\nObject.assign(parser, selectors);\ndelete parser.__esModule;\nvar _default = parser;\nexports[\"default\"] = _default;\nmodule.exports = exports.default;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: ()=>escapeCommas\n});\nfunction escapeCommas(className) {\n return className.replace(/\\\\,/g, \"\\\\2c \");\n}\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n parseColor: ()=>parseColor,\n formatColor: ()=>formatColor\n});\nconst _colorName = /*#__PURE__*/ _interopRequireDefault(require(\"color-name\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nlet HEX = /^#([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})?$/i;\nlet SHORT_HEX = /^#([a-f\\d])([a-f\\d])([a-f\\d])([a-f\\d])?$/i;\nlet VALUE = /(?:\\d+|\\d*\\.\\d+)%?/;\nlet SEP = /(?:\\s*,\\s*|\\s+)/;\nlet ALPHA_SEP = /\\s*[,/]\\s*/;\nlet CUSTOM_PROPERTY = /var\\(--(?:[^ )]*?)\\)/;\nlet RGB = new RegExp(`^(rgb)a?\\\\(\\\\s*(${VALUE.source}|${CUSTOM_PROPERTY.source})(?:${SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?(?:${SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?(?:${ALPHA_SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?\\\\s*\\\\)$`);\nlet HSL = new RegExp(`^(hsl)a?\\\\(\\\\s*((?:${VALUE.source})(?:deg|rad|grad|turn)?|${CUSTOM_PROPERTY.source})(?:${SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?(?:${SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?(?:${ALPHA_SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?\\\\s*\\\\)$`);\nfunction parseColor(value, { loose =false } = {}) {\n var ref, ref1;\n if (typeof value !== \"string\") {\n return null;\n }\n value = value.trim();\n if (value === \"transparent\") {\n return {\n mode: \"rgb\",\n color: [\n \"0\",\n \"0\",\n \"0\"\n ],\n alpha: \"0\"\n };\n }\n if (value in _colorName.default) {\n return {\n mode: \"rgb\",\n color: _colorName.default[value].map((v)=>v.toString())\n };\n }\n let hex = value.replace(SHORT_HEX, (_, r, g, b, a)=>[\n \"#\",\n r,\n r,\n g,\n g,\n b,\n b,\n a ? a + a : \"\"\n ].join(\"\")).match(HEX);\n if (hex !== null) {\n return {\n mode: \"rgb\",\n color: [\n parseInt(hex[1], 16),\n parseInt(hex[2], 16),\n parseInt(hex[3], 16)\n ].map((v)=>v.toString()),\n alpha: hex[4] ? (parseInt(hex[4], 16) / 255).toString() : undefined\n };\n }\n var ref2;\n let match = (ref2 = value.match(RGB)) !== null && ref2 !== void 0 ? ref2 : value.match(HSL);\n if (match === null) {\n return null;\n }\n let color = [\n match[2],\n match[3],\n match[4]\n ].filter(Boolean).map((v)=>v.toString());\n if (!loose && color.length !== 3) {\n return null;\n }\n if (color.length < 3 && !color.some((part)=>/^var\\(.*?\\)$/.test(part))) {\n return null;\n }\n return {\n mode: match[1],\n color,\n alpha: (ref = match[5]) === null || ref === void 0 ? void 0 : (ref1 = ref.toString) === null || ref1 === void 0 ? void 0 : ref1.call(ref)\n };\n}\nfunction formatColor({ mode , color , alpha }) {\n let hasAlpha = alpha !== undefined;\n return `${mode}(${color.join(\" \")}${hasAlpha ? ` / ${alpha}` : \"\"})`;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n withAlphaValue: ()=>withAlphaValue,\n default: ()=>withAlphaVariable\n});\nconst _color = require(\"./color\");\nfunction withAlphaValue(color, alphaValue, defaultValue) {\n if (typeof color === \"function\") {\n return color({\n opacityValue: alphaValue\n });\n }\n let parsed = (0, _color.parseColor)(color, {\n loose: true\n });\n if (parsed === null) {\n return defaultValue;\n }\n return (0, _color.formatColor)({\n ...parsed,\n alpha: alphaValue\n });\n}\nfunction withAlphaVariable({ color , property , variable }) {\n let properties = [].concat(property);\n if (typeof color === \"function\") {\n return {\n [variable]: \"1\",\n ...Object.fromEntries(properties.map((p)=>{\n return [\n p,\n color({\n opacityVariable: variable,\n opacityValue: `var(${variable})`\n })\n ];\n }))\n };\n }\n const parsed = (0, _color.parseColor)(color);\n if (parsed === null) {\n return Object.fromEntries(properties.map((p)=>[\n p,\n color\n ]));\n }\n if (parsed.alpha !== undefined) {\n // Has an alpha value, return color as-is\n return Object.fromEntries(properties.map((p)=>[\n p,\n color\n ]));\n }\n return {\n [variable]: \"1\",\n ...Object.fromEntries(properties.map((p)=>{\n return [\n p,\n (0, _color.formatColor)({\n ...parsed,\n alpha: `var(${variable})`\n })\n ];\n }))\n };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n pattern: ()=>pattern,\n withoutCapturing: ()=>withoutCapturing,\n any: ()=>any,\n optional: ()=>optional,\n zeroOrMore: ()=>zeroOrMore,\n nestedBrackets: ()=>nestedBrackets,\n escape: ()=>escape\n});\nconst REGEX_SPECIAL = /[\\\\^$.*+?()[\\]{}|]/g;\nconst REGEX_HAS_SPECIAL = RegExp(REGEX_SPECIAL.source);\n/**\n * @param {string|RegExp|Array} source\n */ function toSource(source) {\n source = Array.isArray(source) ? source : [\n source\n ];\n source = source.map((item)=>item instanceof RegExp ? item.source : item);\n return source.join(\"\");\n}\nfunction pattern(source) {\n return new RegExp(toSource(source), \"g\");\n}\nfunction withoutCapturing(source) {\n return new RegExp(`(?:${toSource(source)})`, \"g\");\n}\nfunction any(sources) {\n return `(?:${sources.map(toSource).join(\"|\")})`;\n}\nfunction optional(source) {\n return `(?:${toSource(source)})?`;\n}\nfunction zeroOrMore(source) {\n return `(?:${toSource(source)})*`;\n}\nfunction nestedBrackets(open, close, depth = 1) {\n return withoutCapturing([\n escape(open),\n /[^\\s]*/,\n depth === 1 ? `[^${escape(open)}${escape(close)}\\s]*` : any([\n `[^${escape(open)}${escape(close)}\\s]*`,\n nestedBrackets(open, close, depth - 1)\n ]),\n /[^\\s]*/,\n escape(close), \n ]);\n}\nfunction escape(string) {\n return string && REGEX_HAS_SPECIAL.test(string) ? string.replace(REGEX_SPECIAL, \"\\\\$&\") : string || \"\";\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"splitAtTopLevelOnly\", {\n enumerable: true,\n get: ()=>splitAtTopLevelOnly\n});\nconst _regex = /*#__PURE__*/ _interopRequireWildcard(require(\"../lib/regex\"));\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction* splitAtTopLevelOnly(input, separator) {\n let SPECIALS = new RegExp(`[(){}\\\\[\\\\]${_regex.escape(separator)}]`, \"g\");\n let depth = 0;\n let lastIndex = 0;\n let found = false;\n let separatorIndex = 0;\n let separatorStart = 0;\n let separatorLength = separator.length;\n // Find all paren-like things & character\n // And only split on commas if they're top-level\n for (let match of input.matchAll(SPECIALS)){\n let matchesSeparator = match[0] === separator[separatorIndex];\n let atEndOfSeparator = separatorIndex === separatorLength - 1;\n let matchesFullSeparator = matchesSeparator && atEndOfSeparator;\n if (match[0] === \"(\") depth++;\n if (match[0] === \")\") depth--;\n if (match[0] === \"[\") depth++;\n if (match[0] === \"]\") depth--;\n if (match[0] === \"{\") depth++;\n if (match[0] === \"}\") depth--;\n if (matchesSeparator && depth === 0) {\n if (separatorStart === 0) {\n separatorStart = match.index;\n }\n separatorIndex++;\n }\n if (matchesFullSeparator && depth === 0) {\n found = true;\n yield input.substring(lastIndex, separatorStart);\n lastIndex = separatorStart + separatorLength;\n }\n if (separatorIndex === separatorLength) {\n separatorIndex = 0;\n separatorStart = 0;\n }\n }\n // Provide the last segment of the string if available\n // Otherwise the whole string since no `char`s were found\n // This mirrors the behavior of string.split()\n if (found) {\n yield input.substring(lastIndex);\n } else {\n yield input;\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n parseBoxShadowValue: ()=>parseBoxShadowValue,\n formatBoxShadowValue: ()=>formatBoxShadowValue\n});\nconst _splitAtTopLevelOnly = require(\"./splitAtTopLevelOnly\");\nlet KEYWORDS = new Set([\n \"inset\",\n \"inherit\",\n \"initial\",\n \"revert\",\n \"unset\"\n]);\nlet SPACE = /\\ +(?![^(]*\\))/g // Similar to the one above, but with spaces instead.\n;\nlet LENGTH = /^-?(\\d+|\\.\\d+)(.*?)$/g;\nfunction parseBoxShadowValue(input) {\n let shadows = Array.from((0, _splitAtTopLevelOnly.splitAtTopLevelOnly)(input, \",\"));\n return shadows.map((shadow)=>{\n let value = shadow.trim();\n let result = {\n raw: value\n };\n let parts = value.split(SPACE);\n let seen = new Set();\n for (let part of parts){\n // Reset index, since the regex is stateful.\n LENGTH.lastIndex = 0;\n // Keyword\n if (!seen.has(\"KEYWORD\") && KEYWORDS.has(part)) {\n result.keyword = part;\n seen.add(\"KEYWORD\");\n } else if (LENGTH.test(part)) {\n if (!seen.has(\"X\")) {\n result.x = part;\n seen.add(\"X\");\n } else if (!seen.has(\"Y\")) {\n result.y = part;\n seen.add(\"Y\");\n } else if (!seen.has(\"BLUR\")) {\n result.blur = part;\n seen.add(\"BLUR\");\n } else if (!seen.has(\"SPREAD\")) {\n result.spread = part;\n seen.add(\"SPREAD\");\n }\n } else {\n if (!result.color) {\n result.color = part;\n } else {\n if (!result.unknown) result.unknown = [];\n result.unknown.push(part);\n }\n }\n }\n // Check if valid\n result.valid = result.x !== undefined && result.y !== undefined;\n return result;\n });\n}\nfunction formatBoxShadowValue(shadows) {\n return shadows.map((shadow)=>{\n if (!shadow.valid) {\n return shadow.raw;\n }\n return [\n shadow.keyword,\n shadow.x,\n shadow.y,\n shadow.blur,\n shadow.spread,\n shadow.color\n ].filter(Boolean).join(\" \");\n }).join(\", \");\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n normalize: ()=>normalize,\n url: ()=>url,\n number: ()=>number,\n percentage: ()=>percentage,\n length: ()=>length,\n lineWidth: ()=>lineWidth,\n shadow: ()=>shadow,\n color: ()=>color,\n image: ()=>image,\n gradient: ()=>gradient,\n position: ()=>position,\n familyName: ()=>familyName,\n genericName: ()=>genericName,\n absoluteSize: ()=>absoluteSize,\n relativeSize: ()=>relativeSize\n});\nconst _color = require(\"./color\");\nconst _parseBoxShadowValue = require(\"./parseBoxShadowValue\");\nlet cssFunctions = [\n \"min\",\n \"max\",\n \"clamp\",\n \"calc\"\n];\n// Ref: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Types\nlet COMMA = /,(?![^(]*\\))/g // Comma separator that is not located between brackets. E.g.: `cubiz-bezier(a, b, c)` these don't count.\n;\nlet UNDERSCORE = /_(?![^(]*\\))/g // Underscore separator that is not located between brackets. E.g.: `rgba(255,_255,_255)_black` these don't count.\n;\nfunction normalize(value, isRoot = true) {\n // Keep raw strings if it starts with `url(`\n if (value.includes(\"url(\")) {\n return value.split(/(url\\(.*?\\))/g).filter(Boolean).map((part)=>{\n if (/^url\\(.*?\\)$/.test(part)) {\n return part;\n }\n return normalize(part, false);\n }).join(\"\");\n }\n // Convert `_` to ` `, except for escaped underscores `\\_`\n value = value.replace(/([^\\\\])_+/g, (fullMatch, characterBefore)=>characterBefore + \" \".repeat(fullMatch.length - 1)).replace(/^_/g, \" \").replace(/\\\\_/g, \"_\");\n // Remove leftover whitespace\n if (isRoot) {\n value = value.trim();\n }\n // Add spaces around operators inside math functions like calc() that do not follow an operator\n // or '('.\n value = value.replace(/(calc|min|max|clamp)\\(.+\\)/g, (match)=>{\n return match.replace(/(-?\\d*\\.?\\d(?!\\b-.+[,)](?![^+\\-/*])\\D)(?:%|[a-z]+)?|\\))([+\\-/*])/g, \"$1 $2 \");\n });\n return value;\n}\nfunction url(value) {\n return value.startsWith(\"url(\");\n}\nfunction number(value) {\n return !isNaN(Number(value)) || cssFunctions.some((fn)=>new RegExp(`^${fn}\\\\(.+?`).test(value));\n}\nfunction percentage(value) {\n return value.split(UNDERSCORE).every((part)=>{\n return /%$/g.test(part) || cssFunctions.some((fn)=>new RegExp(`^${fn}\\\\(.+?%`).test(part));\n });\n}\nlet lengthUnits = [\n \"cm\",\n \"mm\",\n \"Q\",\n \"in\",\n \"pc\",\n \"pt\",\n \"px\",\n \"em\",\n \"ex\",\n \"ch\",\n \"rem\",\n \"lh\",\n \"vw\",\n \"vh\",\n \"vmin\",\n \"vmax\", \n];\nlet lengthUnitsPattern = `(?:${lengthUnits.join(\"|\")})`;\nfunction length(value) {\n return value.split(UNDERSCORE).every((part)=>{\n return part === \"0\" || new RegExp(`${lengthUnitsPattern}$`).test(part) || cssFunctions.some((fn)=>new RegExp(`^${fn}\\\\(.+?${lengthUnitsPattern}`).test(part));\n });\n}\nlet lineWidths = new Set([\n \"thin\",\n \"medium\",\n \"thick\"\n]);\nfunction lineWidth(value) {\n return lineWidths.has(value);\n}\nfunction shadow(value) {\n let parsedShadows = (0, _parseBoxShadowValue.parseBoxShadowValue)(normalize(value));\n for (let parsedShadow of parsedShadows){\n if (!parsedShadow.valid) {\n return false;\n }\n }\n return true;\n}\nfunction color(value) {\n let colors = 0;\n let result = value.split(UNDERSCORE).every((part)=>{\n part = normalize(part);\n if (part.startsWith(\"var(\")) return true;\n if ((0, _color.parseColor)(part, {\n loose: true\n }) !== null) return colors++, true;\n return false;\n });\n if (!result) return false;\n return colors > 0;\n}\nfunction image(value) {\n let images = 0;\n let result = value.split(COMMA).every((part)=>{\n part = normalize(part);\n if (part.startsWith(\"var(\")) return true;\n if (url(part) || gradient(part) || [\n \"element(\",\n \"image(\",\n \"cross-fade(\",\n \"image-set(\"\n ].some((fn)=>part.startsWith(fn))) {\n images++;\n return true;\n }\n return false;\n });\n if (!result) return false;\n return images > 0;\n}\nlet gradientTypes = new Set([\n \"linear-gradient\",\n \"radial-gradient\",\n \"repeating-linear-gradient\",\n \"repeating-radial-gradient\",\n \"conic-gradient\", \n]);\nfunction gradient(value) {\n value = normalize(value);\n for (let type of gradientTypes){\n if (value.startsWith(`${type}(`)) {\n return true;\n }\n }\n return false;\n}\nlet validPositions = new Set([\n \"center\",\n \"top\",\n \"right\",\n \"bottom\",\n \"left\"\n]);\nfunction position(value) {\n let positions = 0;\n let result = value.split(UNDERSCORE).every((part)=>{\n part = normalize(part);\n if (part.startsWith(\"var(\")) return true;\n if (validPositions.has(part) || length(part) || percentage(part)) {\n positions++;\n return true;\n }\n return false;\n });\n if (!result) return false;\n return positions > 0;\n}\nfunction familyName(value) {\n let fonts = 0;\n let result = value.split(COMMA).every((part)=>{\n part = normalize(part);\n if (part.startsWith(\"var(\")) return true;\n // If it contains spaces, then it should be quoted\n if (part.includes(\" \")) {\n if (!/(['\"])([^\"']+)\\1/g.test(part)) {\n return false;\n }\n }\n // If it starts with a number, it's invalid\n if (/^\\d/g.test(part)) {\n return false;\n }\n fonts++;\n return true;\n });\n if (!result) return false;\n return fonts > 0;\n}\nlet genericNames = new Set([\n \"serif\",\n \"sans-serif\",\n \"monospace\",\n \"cursive\",\n \"fantasy\",\n \"system-ui\",\n \"ui-serif\",\n \"ui-sans-serif\",\n \"ui-monospace\",\n \"ui-rounded\",\n \"math\",\n \"emoji\",\n \"fangsong\", \n]);\nfunction genericName(value) {\n return genericNames.has(value);\n}\nlet absoluteSizes = new Set([\n \"xx-small\",\n \"x-small\",\n \"small\",\n \"medium\",\n \"large\",\n \"x-large\",\n \"x-large\",\n \"xxx-large\", \n]);\nfunction absoluteSize(value) {\n return absoluteSizes.has(value);\n}\nlet relativeSizes = new Set([\n \"larger\",\n \"smaller\"\n]);\nfunction relativeSize(value) {\n return relativeSizes.has(value);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n updateAllClasses: ()=>updateAllClasses,\n asValue: ()=>asValue,\n parseColorFormat: ()=>parseColorFormat,\n asColor: ()=>asColor,\n asLookupValue: ()=>asLookupValue,\n coerceValue: ()=>coerceValue\n});\nconst _postcssSelectorParser = /*#__PURE__*/ _interopRequireDefault(require(\"postcss-selector-parser\"));\nconst _escapeCommas = /*#__PURE__*/ _interopRequireDefault(require(\"./escapeCommas\"));\nconst _withAlphaVariable = require(\"./withAlphaVariable\");\nconst _dataTypes = require(\"./dataTypes\");\nconst _negateValue = /*#__PURE__*/ _interopRequireDefault(require(\"./negateValue\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction updateAllClasses(selectors, updateClass) {\n let parser = (0, _postcssSelectorParser.default)((selectors)=>{\n selectors.walkClasses((sel)=>{\n let updatedClass = updateClass(sel.value);\n sel.value = updatedClass;\n if (sel.raws && sel.raws.value) {\n sel.raws.value = (0, _escapeCommas.default)(sel.raws.value);\n }\n });\n });\n let result = parser.processSync(selectors);\n return result;\n}\nfunction resolveArbitraryValue(modifier, validate) {\n if (!isArbitraryValue(modifier)) {\n return undefined;\n }\n let value = modifier.slice(1, -1);\n if (!validate(value)) {\n return undefined;\n }\n return (0, _dataTypes.normalize)(value);\n}\nfunction asNegativeValue(modifier, lookup = {}, validate) {\n let positiveValue = lookup[modifier];\n if (positiveValue !== undefined) {\n return (0, _negateValue.default)(positiveValue);\n }\n if (isArbitraryValue(modifier)) {\n let resolved = resolveArbitraryValue(modifier, validate);\n if (resolved === undefined) {\n return undefined;\n }\n return (0, _negateValue.default)(resolved);\n }\n}\nfunction asValue(modifier, options = {}, { validate =()=>true } = {}) {\n var ref;\n let value = (ref = options.values) === null || ref === void 0 ? void 0 : ref[modifier];\n if (value !== undefined) {\n return value;\n }\n if (options.supportsNegativeValues && modifier.startsWith(\"-\")) {\n return asNegativeValue(modifier.slice(1), options.values, validate);\n }\n return resolveArbitraryValue(modifier, validate);\n}\nfunction isArbitraryValue(input) {\n return input.startsWith(\"[\") && input.endsWith(\"]\");\n}\nfunction splitAlpha(modifier) {\n let slashIdx = modifier.lastIndexOf(\"/\");\n if (slashIdx === -1 || slashIdx === modifier.length - 1) {\n return [\n modifier\n ];\n }\n return [\n modifier.slice(0, slashIdx),\n modifier.slice(slashIdx + 1)\n ];\n}\nfunction parseColorFormat(value) {\n if (typeof value === \"string\" && value.includes(\"\")) {\n let oldValue = value;\n return ({ opacityValue =1 })=>oldValue.replace(\"\", opacityValue);\n }\n return value;\n}\nfunction asColor(modifier, options = {}, { tailwindConfig ={} } = {}) {\n var ref;\n if (((ref = options.values) === null || ref === void 0 ? void 0 : ref[modifier]) !== undefined) {\n var ref1;\n return parseColorFormat((ref1 = options.values) === null || ref1 === void 0 ? void 0 : ref1[modifier]);\n }\n let [color, alpha] = splitAlpha(modifier);\n if (alpha !== undefined) {\n var ref2, ref3, ref4;\n var ref5;\n let normalizedColor = (ref5 = (ref2 = options.values) === null || ref2 === void 0 ? void 0 : ref2[color]) !== null && ref5 !== void 0 ? ref5 : isArbitraryValue(color) ? color.slice(1, -1) : undefined;\n if (normalizedColor === undefined) {\n return undefined;\n }\n normalizedColor = parseColorFormat(normalizedColor);\n if (isArbitraryValue(alpha)) {\n return (0, _withAlphaVariable.withAlphaValue)(normalizedColor, alpha.slice(1, -1));\n }\n if (((ref3 = tailwindConfig.theme) === null || ref3 === void 0 ? void 0 : (ref4 = ref3.opacity) === null || ref4 === void 0 ? void 0 : ref4[alpha]) === undefined) {\n return undefined;\n }\n return (0, _withAlphaVariable.withAlphaValue)(normalizedColor, tailwindConfig.theme.opacity[alpha]);\n }\n return asValue(modifier, options, {\n validate: _dataTypes.color\n });\n}\nfunction asLookupValue(modifier, options = {}) {\n var ref;\n return (ref = options.values) === null || ref === void 0 ? void 0 : ref[modifier];\n}\nfunction guess(validate) {\n return (modifier, options)=>{\n return asValue(modifier, options, {\n validate\n });\n };\n}\nlet typeMap = {\n any: asValue,\n color: asColor,\n url: guess(_dataTypes.url),\n image: guess(_dataTypes.image),\n length: guess(_dataTypes.length),\n percentage: guess(_dataTypes.percentage),\n position: guess(_dataTypes.position),\n lookup: asLookupValue,\n \"generic-name\": guess(_dataTypes.genericName),\n \"family-name\": guess(_dataTypes.familyName),\n number: guess(_dataTypes.number),\n \"line-width\": guess(_dataTypes.lineWidth),\n \"absolute-size\": guess(_dataTypes.absoluteSize),\n \"relative-size\": guess(_dataTypes.relativeSize),\n shadow: guess(_dataTypes.shadow)\n};\nlet supportedTypes = Object.keys(typeMap);\nfunction splitAtFirst(input, delim) {\n let idx = input.indexOf(delim);\n if (idx === -1) return [\n undefined,\n input\n ];\n return [\n input.slice(0, idx),\n input.slice(idx + 1)\n ];\n}\nfunction coerceValue(types, modifier, options, tailwindConfig) {\n if (isArbitraryValue(modifier)) {\n let arbitraryValue = modifier.slice(1, -1);\n let [explicitType, value] = splitAtFirst(arbitraryValue, \":\");\n // It could be that this resolves to `url(https` which is not a valid\n // identifier. We currently only support \"simple\" words with dashes or\n // underscores. E.g.: family-name\n if (!/^[\\w-_]+$/g.test(explicitType)) {\n value = arbitraryValue;\n } else if (explicitType !== undefined && !supportedTypes.includes(explicitType)) {\n return [];\n }\n if (value.length > 0 && supportedTypes.includes(explicitType)) {\n return [\n asValue(`[${value}]`, options),\n explicitType\n ];\n }\n }\n // Find first matching type\n for (let type of [].concat(types)){\n let result = typeMap[type](modifier, options, {\n tailwindConfig\n });\n if (result !== undefined) return [\n result,\n type\n ];\n }\n return [];\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: ()=>toColorValue\n});\nfunction toColorValue(maybeFunction) {\n return typeof maybeFunction === \"function\" ? maybeFunction({}) : maybeFunction;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: ()=>resolveConfig\n});\nconst _negateValue = /*#__PURE__*/ _interopRequireDefault(require(\"./negateValue\"));\nconst _corePluginList = /*#__PURE__*/ _interopRequireDefault(require(\"../corePluginList\"));\nconst _configurePlugins = /*#__PURE__*/ _interopRequireDefault(require(\"./configurePlugins\"));\nconst _defaultConfigStub = /*#__PURE__*/ _interopRequireDefault(require(\"../../stubs/defaultConfig.stub\"));\nconst _colors = /*#__PURE__*/ _interopRequireDefault(require(\"../public/colors\"));\nconst _defaults = require(\"./defaults\");\nconst _toPath = require(\"./toPath\");\nconst _normalizeConfig = require(\"./normalizeConfig\");\nconst _isPlainObject = /*#__PURE__*/ _interopRequireDefault(require(\"./isPlainObject\"));\nconst _cloneDeep = require(\"./cloneDeep\");\nconst _pluginUtils = require(\"./pluginUtils\");\nconst _withAlphaVariable = require(\"./withAlphaVariable\");\nconst _toColorValue = /*#__PURE__*/ _interopRequireDefault(require(\"./toColorValue\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction isFunction(input) {\n return typeof input === \"function\";\n}\nfunction isObject(input) {\n return typeof input === \"object\" && input !== null;\n}\nfunction mergeWith(target, ...sources) {\n let customizer = sources.pop();\n for (let source of sources){\n for(let k in source){\n let merged = customizer(target[k], source[k]);\n if (merged === undefined) {\n if (isObject(target[k]) && isObject(source[k])) {\n target[k] = mergeWith(target[k], source[k], customizer);\n } else {\n target[k] = source[k];\n }\n } else {\n target[k] = merged;\n }\n }\n }\n return target;\n}\nconst configUtils = {\n colors: _colors.default,\n negative (scale) {\n // TODO: Log that this function isn't really needed anymore?\n return Object.keys(scale).filter((key)=>scale[key] !== \"0\").reduce((negativeScale, key)=>{\n let negativeValue = (0, _negateValue.default)(scale[key]);\n if (negativeValue !== undefined) {\n negativeScale[`-${key}`] = negativeValue;\n }\n return negativeScale;\n }, {});\n },\n breakpoints (screens) {\n return Object.keys(screens).filter((key)=>typeof screens[key] === \"string\").reduce((breakpoints, key)=>({\n ...breakpoints,\n [`screen-${key}`]: screens[key]\n }), {});\n }\n};\nfunction value(valueToResolve, ...args) {\n return isFunction(valueToResolve) ? valueToResolve(...args) : valueToResolve;\n}\nfunction collectExtends(items) {\n return items.reduce((merged, { extend })=>{\n return mergeWith(merged, extend, (mergedValue, extendValue)=>{\n if (mergedValue === undefined) {\n return [\n extendValue\n ];\n }\n if (Array.isArray(mergedValue)) {\n return [\n extendValue,\n ...mergedValue\n ];\n }\n return [\n extendValue,\n mergedValue\n ];\n });\n }, {});\n}\nfunction mergeThemes(themes) {\n return {\n ...themes.reduce((merged, theme)=>(0, _defaults.defaults)(merged, theme), {}),\n // In order to resolve n config objects, we combine all of their `extend` properties\n // into arrays instead of objects so they aren't overridden.\n extend: collectExtends(themes)\n };\n}\nfunction mergeExtensionCustomizer(merged, value) {\n // When we have an array of objects, we do want to merge it\n if (Array.isArray(merged) && isObject(merged[0])) {\n return merged.concat(value);\n }\n // When the incoming value is an array, and the existing config is an object, prepend the existing object\n if (Array.isArray(value) && isObject(value[0]) && isObject(merged)) {\n return [\n merged,\n ...value\n ];\n }\n // Override arrays (for example for font-families, box-shadows, ...)\n if (Array.isArray(value)) {\n return value;\n }\n // Execute default behaviour\n return undefined;\n}\nfunction mergeExtensions({ extend , ...theme }) {\n return mergeWith(theme, extend, (themeValue, extensions)=>{\n // The `extend` property is an array, so we need to check if it contains any functions\n if (!isFunction(themeValue) && !extensions.some(isFunction)) {\n return mergeWith({}, themeValue, ...extensions, mergeExtensionCustomizer);\n }\n return (resolveThemePath, utils)=>mergeWith({}, ...[\n themeValue,\n ...extensions\n ].map((e)=>value(e, resolveThemePath, utils)), mergeExtensionCustomizer);\n });\n}\n/**\n *\n * @param {string} key\n * @return {Iterable}\n */ function* toPaths(key) {\n let path = (0, _toPath.toPath)(key);\n if (path.length === 0) {\n return;\n }\n yield path;\n if (Array.isArray(key)) {\n return;\n }\n let pattern = /^(.*?)\\s*\\/\\s*([^/]+)$/;\n let matches = key.match(pattern);\n if (matches !== null) {\n let [, prefix, alpha] = matches;\n let newPath = (0, _toPath.toPath)(prefix);\n newPath.alpha = alpha;\n yield newPath;\n }\n}\nfunction resolveFunctionKeys(object) {\n // theme('colors.red.500 / 0.5') -> ['colors', 'red', '500 / 0', '5]\n const resolvePath = (key, defaultValue)=>{\n for (const path of toPaths(key)){\n let index = 0;\n let val = object;\n while(val !== undefined && val !== null && index < path.length){\n val = val[path[index++]];\n let shouldResolveAsFn = isFunction(val) && (path.alpha === undefined || index <= path.length - 1);\n val = shouldResolveAsFn ? val(resolvePath, configUtils) : val;\n }\n if (val !== undefined) {\n if (path.alpha !== undefined) {\n let normalized = (0, _pluginUtils.parseColorFormat)(val);\n return (0, _withAlphaVariable.withAlphaValue)(normalized, path.alpha, (0, _toColorValue.default)(normalized));\n }\n if ((0, _isPlainObject.default)(val)) {\n return (0, _cloneDeep.cloneDeep)(val);\n }\n return val;\n }\n }\n return defaultValue;\n };\n Object.assign(resolvePath, {\n theme: resolvePath,\n ...configUtils\n });\n return Object.keys(object).reduce((resolved, key)=>{\n resolved[key] = isFunction(object[key]) ? object[key](resolvePath, configUtils) : object[key];\n return resolved;\n }, {});\n}\nfunction extractPluginConfigs(configs) {\n let allConfigs = [];\n configs.forEach((config)=>{\n allConfigs = [\n ...allConfigs,\n config\n ];\n var ref;\n const plugins = (ref = config === null || config === void 0 ? void 0 : config.plugins) !== null && ref !== void 0 ? ref : [];\n if (plugins.length === 0) {\n return;\n }\n plugins.forEach((plugin)=>{\n if (plugin.__isOptionsFunction) {\n plugin = plugin();\n }\n var ref;\n allConfigs = [\n ...allConfigs,\n ...extractPluginConfigs([\n (ref = plugin === null || plugin === void 0 ? void 0 : plugin.config) !== null && ref !== void 0 ? ref : {}\n ])\n ];\n });\n });\n return allConfigs;\n}\nfunction resolveCorePlugins(corePluginConfigs) {\n const result = [\n ...corePluginConfigs\n ].reduceRight((resolved, corePluginConfig)=>{\n if (isFunction(corePluginConfig)) {\n return corePluginConfig({\n corePlugins: resolved\n });\n }\n return (0, _configurePlugins.default)(corePluginConfig, resolved);\n }, _corePluginList.default);\n return result;\n}\nfunction resolvePluginLists(pluginLists) {\n const result = [\n ...pluginLists\n ].reduceRight((resolved, pluginList)=>{\n return [\n ...resolved,\n ...pluginList\n ];\n }, []);\n return result;\n}\nfunction resolveConfig(configs) {\n let allConfigs = [\n ...extractPluginConfigs(configs),\n {\n prefix: \"\",\n important: false,\n separator: \":\",\n variantOrder: _defaultConfigStub.default.variantOrder\n }, \n ];\n var ref, ref1;\n return (0, _normalizeConfig.normalizeConfig)((0, _defaults.defaults)({\n theme: resolveFunctionKeys(mergeExtensions(mergeThemes(allConfigs.map((t)=>{\n return (ref = t === null || t === void 0 ? void 0 : t.theme) !== null && ref !== void 0 ? ref : {};\n })))),\n corePlugins: resolveCorePlugins(allConfigs.map((c)=>c.corePlugins)),\n plugins: resolvePluginLists(configs.map((c)=>{\n return (ref1 = c === null || c === void 0 ? void 0 : c.plugins) !== null && ref1 !== void 0 ? ref1 : [];\n }))\n }, ...allConfigs));\n}\n","export default {\n yellow: (s) => s,\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n flagEnabled: ()=>flagEnabled,\n issueFlagNotices: ()=>issueFlagNotices,\n default: ()=>_default\n});\nconst _picocolors = /*#__PURE__*/ _interopRequireDefault(require(\"picocolors\"));\nconst _log = /*#__PURE__*/ _interopRequireDefault(require(\"./util/log\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nlet defaults = {\n optimizeUniversalDefaults: false\n};\nlet featureFlags = {\n future: [\n \"hoverOnlyWhenSupported\",\n \"respectDefaultRingColorOpacity\"\n ],\n experimental: [\n \"optimizeUniversalDefaults\",\n \"matchVariant\" /* , 'variantGrouping' */ \n ]\n};\nfunction flagEnabled(config, flag) {\n if (featureFlags.future.includes(flag)) {\n var ref;\n var ref1, ref2;\n return config.future === \"all\" || ((ref2 = (ref1 = config === null || config === void 0 ? void 0 : (ref = config.future) === null || ref === void 0 ? void 0 : ref[flag]) !== null && ref1 !== void 0 ? ref1 : defaults[flag]) !== null && ref2 !== void 0 ? ref2 : false);\n }\n if (featureFlags.experimental.includes(flag)) {\n var ref3;\n var ref4, ref5;\n return config.experimental === \"all\" || ((ref5 = (ref4 = config === null || config === void 0 ? void 0 : (ref3 = config.experimental) === null || ref3 === void 0 ? void 0 : ref3[flag]) !== null && ref4 !== void 0 ? ref4 : defaults[flag]) !== null && ref5 !== void 0 ? ref5 : false);\n }\n return false;\n}\nfunction experimentalFlagsEnabled(config) {\n if (config.experimental === \"all\") {\n return featureFlags.experimental;\n }\n var ref;\n return Object.keys((ref = config === null || config === void 0 ? void 0 : config.experimental) !== null && ref !== void 0 ? ref : {}).filter((flag)=>featureFlags.experimental.includes(flag) && config.experimental[flag]);\n}\nfunction issueFlagNotices(config) {\n if (process.env.JEST_WORKER_ID !== undefined) {\n return;\n }\n if (experimentalFlagsEnabled(config).length > 0) {\n let changes = experimentalFlagsEnabled(config).map((s)=>_picocolors.default.yellow(s)).join(\", \");\n _log.default.warn(\"experimental-flags-enabled\", [\n `You have enabled experimental features: ${changes}`,\n \"Experimental features in Tailwind CSS are not covered by semver, may introduce breaking changes, and can change at any time.\", \n ]);\n }\n}\nconst _default = featureFlags;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: ()=>getAllConfigs\n});\nconst _defaultConfigStubJs = /*#__PURE__*/ _interopRequireDefault(require(\"../../stubs/defaultConfig.stub.js\"));\nconst _featureFlags = require(\"../featureFlags\");\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction getAllConfigs(config) {\n var ref;\n const configs = ((ref = config === null || config === void 0 ? void 0 : config.presets) !== null && ref !== void 0 ? ref : [\n _defaultConfigStubJs.default\n ]).slice().reverse().flatMap((preset)=>getAllConfigs(typeof preset === \"function\" ? preset() : preset));\n const features = {\n // Add experimental configs here...\n respectDefaultRingColorOpacity: {\n theme: {\n ringColor: {\n DEFAULT: \"#3b82f67f\"\n }\n }\n }\n };\n const experimentals = Object.keys(features).filter((feature)=>(0, _featureFlags.flagEnabled)(config, feature)).map((feature)=>features[feature]);\n return [\n config,\n ...experimentals,\n ...configs\n ];\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: ()=>resolveConfig\n});\nconst _resolveConfig = /*#__PURE__*/ _interopRequireDefault(require(\"../util/resolveConfig\"));\nconst _getAllConfigs = /*#__PURE__*/ _interopRequireDefault(require(\"../util/getAllConfigs\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction resolveConfig(...configs) {\n let [, ...defaultConfigs] = (0, _getAllConfigs.default)(configs[0]);\n return (0, _resolveConfig.default)([\n ...configs,\n ...defaultConfigs\n ]);\n}\n","let resolveConfig = require('./lib/public/resolve-config')\nmodule.exports = (resolveConfig.__esModule ? resolveConfig : { default: resolveConfig }).default\n","import type { Yoga } from 'yoga-wasm-web'\n\nlet yogaInstance: Yoga\n\nexport function init(yoga: Yoga) {\n yogaInstance = yoga\n}\n\nlet initializationPromise = null\n\nexport default async function getYoga(): Promise {\n if (yogaInstance) return yogaInstance\n\n if (initializationPromise) {\n await initializationPromise\n return yogaInstance\n }\n\n initializationPromise = import('@yoga')\n .then((mod) => mod.getYogaModule())\n .then((yoga) => (yogaInstance = yoga))\n\n await initializationPromise\n initializationPromise = null\n\n return yogaInstance\n}\n","var e=(t,r)=>()=>(r||t((r={exports:{}}).exports,r),r.exports);var u=e((k,g)=>{g.exports=[\"em\",\"ex\",\"ch\",\"rem\",\"vh\",\"vw\",\"vmin\",\"vmax\",\"px\",\"mm\",\"cm\",\"in\",\"pt\",\"pc\",\"mozmm\"]});var a=e((z,v)=>{v.exports=[\"deg\",\"grad\",\"rad\",\"turn\"]});var c=e((L,w)=>{w.exports=[\"dpi\",\"dpcm\",\"dppx\"]});var h=e(($,y)=>{y.exports=[\"Hz\",\"kHz\"]});var m=e((j,b)=>{b.exports=[\"s\",\"ms\"]});var q=u(),f=a(),p=c(),l=h(),d=m();function s(t){if(/\\.\\D?$/.test(t))throw new Error(\"The dot should be followed by a number\");if(/^[+-]{2}/.test(t))throw new Error(\"Only one leading +/- is allowed\");if(x(t)>1)throw new Error(\"Only one dot is allowed\");if(/%$/.test(t)){this.type=\"percentage\",this.value=o(t),this.unit=\"%\";return}var r=O(t);if(!r){this.type=\"number\",this.value=o(t);return}this.type=F(r),this.value=o(t.substr(0,t.length-r.length)),this.unit=r}s.prototype.valueOf=function(){return this.value};s.prototype.toString=function(){return this.value+(this.unit||\"\")};function U(t){return new s(t)}function x(t){var r=t.match(/\\./g);return r?r.length:0}function o(t){var r=parseFloat(t);if(isNaN(r))throw new Error(\"Invalid number: \"+t);return r}var E=[].concat(f,l,q,p,d);function O(t){var r=t.match(/\\D+$/),n=r&&r[0];if(n&&E.indexOf(n)===-1)throw new Error(\"Invalid unit: \"+n);return n}var D=Object.assign(i(f,\"angle\"),i(l,\"frequency\"),i(p,\"resolution\"),i(d,\"time\"));function i(t,r){return Object.fromEntries(t.map(n=>[n,r]))}function F(t){return D[t]||\"length\"}export{U as default};\n","import type { ReactNode, ReactElement } from 'react'\n\nimport CssDimension from './vendor/parse-css-dimension/index.js'\nimport LineBreaker from 'linebreak'\n\nexport function isReactElement(node: ReactNode): node is ReactElement {\n const type = typeof node\n if (\n type === 'number' ||\n type === 'bigint' ||\n type === 'string' ||\n type === 'boolean'\n ) {\n return false\n }\n return true\n}\n\nexport function isClass(f: Function) {\n return /^class\\s/.test(f.toString())\n}\n\nexport function hasDangerouslySetInnerHTMLProp(props: any) {\n return 'dangerouslySetInnerHTML' in props\n}\n\nexport function normalizeChildren(children: any) {\n const flattend =\n typeof children === 'undefined' ? [] : [].concat(children).flat(Infinity)\n\n const res = []\n for (let i = 0; i < flattend.length; i++) {\n let value = flattend[i]\n if (\n typeof value === 'undefined' ||\n typeof value === 'boolean' ||\n value === null\n ) {\n continue\n }\n if (typeof value === 'number') {\n value = String(value)\n }\n if (\n typeof value === 'string' &&\n res.length &&\n typeof res[res.length - 1] === 'string'\n ) {\n res[res.length - 1] += value\n } else {\n res.push(value)\n }\n }\n return res\n}\n\nexport function lengthToNumber(\n length: string | number,\n baseFontSize: number,\n baseLength: number,\n inheritedStyle: Record,\n percentage = false\n): number | undefined {\n if (typeof length === 'number') return length\n\n // Convert em and rem values to number (px), convert rad to deg.\n try {\n length = length.trim()\n\n // Not length: `1px/2px`, `1px 2px`, `1px, 2px`, `calc(1px)`.\n if (/[ /\\(,]/.test(length)) return\n\n // Just a number as string: '100'\n if (length === String(+length)) return +length\n\n const parsed = new CssDimension(length)\n if (parsed.type === 'length') {\n switch (parsed.unit) {\n case 'em':\n return parsed.value * baseFontSize\n case 'rem':\n return parsed.value * 16\n case 'vw':\n return ~~(\n (parsed.value * (inheritedStyle._viewportWidth as number)) /\n 100\n )\n case 'vh':\n return ~~(\n (parsed.value * (inheritedStyle._viewportHeight as number)) /\n 100\n )\n default:\n return parsed.value\n }\n } else if (parsed.type === 'angle') {\n return calcDegree(length)\n } else if (parsed.type === 'percentage') {\n if (percentage) {\n return (parsed.value / 100) * baseLength\n }\n }\n } catch {\n // Not a length unit, silently ignore.\n }\n}\n\nexport function calcDegree(deg: string) {\n const parsed = new CssDimension(deg)\n\n switch (parsed.unit) {\n case 'deg':\n return parsed.value\n case 'rad':\n return (parsed.value * 180) / Math.PI\n case 'turn':\n return parsed.value * 360\n case 'grad':\n return 0.9 * parsed.value\n }\n}\n\n// Multiplies two 2d transform matrices.\nexport function multiply(m1: number[], m2: number[]) {\n return [\n m1[0] * m2[0] + m1[2] * m2[1],\n m1[1] * m2[0] + m1[3] * m2[1],\n m1[0] * m2[2] + m1[2] * m2[3],\n m1[1] * m2[2] + m1[3] * m2[3],\n m1[0] * m2[4] + m1[2] * m2[5] + m1[4],\n m1[1] * m2[4] + m1[3] * m2[5] + m1[5],\n ]\n}\n\nexport function v(\n field: string | number | undefined,\n map: Record,\n fallback: any,\n errorIfNotAllowedForProperty?: string\n) {\n let value = map[field]\n if (typeof value === 'undefined') {\n if (errorIfNotAllowedForProperty && typeof field !== 'undefined') {\n throw new Error(\n `Invalid value for CSS property \"${errorIfNotAllowedForProperty}\". Allowed values: ${Object.keys(\n map\n )\n .map((_v) => `\"${_v}\"`)\n .join(' | ')}. Received: \"${field}\".`\n )\n }\n value = fallback\n }\n return value\n}\n\nlet wordSegmenter\nlet graphemeSegmenter\n\n// Implementation modified from\n// https://github.com/niklasvh/html2canvas/blob/6521a487d78172f7179f7c973c1a3af40eb92009/src/css/layout/text.ts\n// https://drafts.csswg.org/css-text/#word-separator\nexport const wordSeparators = [\n 0x0020, 0x00a0, 0x1361, 0x10100, 0x10101, 0x1039, 0x1091, 0xa,\n].map((point) => String.fromCodePoint(point))\n\nexport function segment(\n content: string,\n granularity: 'word' | 'grapheme',\n locale?: string\n): string[] {\n if (!wordSegmenter || !graphemeSegmenter) {\n if (!(typeof Intl !== 'undefined' && 'Segmenter' in Intl)) {\n // https://caniuse.com/mdn-javascript_builtins_intl_segments\n throw new Error(\n 'Intl.Segmenter does not exist, please use import a polyfill.'\n )\n }\n\n wordSegmenter = new Intl.Segmenter(locale, { granularity: 'word' })\n graphemeSegmenter = new Intl.Segmenter(locale, {\n granularity: 'grapheme',\n })\n }\n\n if (granularity === 'grapheme') {\n return [...graphemeSegmenter.segment(content)].map((seg) => seg.segment)\n } else {\n const segmented = [...wordSegmenter.segment(content)].map(\n (seg) => seg.segment\n ) as string[]\n\n const output = []\n\n let i = 0\n // When there is a non-breaking space, join the previous and next words together.\n // This change causes them to be treated as a single segment.\n while (i < segmented.length) {\n const s = segmented[i]\n\n if (s == '\\u00a0') {\n const previousWord = i === 0 ? '' : output.pop()\n const nextWord = i === segmented.length - 1 ? '' : segmented[i + 1]\n\n output.push(previousWord + '\\u00a0' + nextWord)\n i += 2\n } else {\n output.push(s)\n i++\n }\n }\n\n return output\n }\n}\n\nexport function buildXMLString(\n type: string,\n attrs: Record,\n children?: string\n) {\n let attrString = ''\n\n for (const [k, _v] of Object.entries(attrs)) {\n if (typeof _v !== 'undefined') {\n attrString += ` ${k}=\"${_v}\"`\n }\n }\n\n if (children) {\n return `<${type}${attrString}>${children}`\n }\n return `<${type}${attrString}/>`\n}\n\nexport function createLRU(max = 20) {\n const store: Map = new Map()\n function set(key: string, value: T) {\n if (store.size >= max) {\n const keyToDelete = store.keys().next().value\n store.delete(keyToDelete)\n }\n store.set(key, value)\n }\n function get(key: string): T | undefined {\n const hasKey = store.has(key)\n if (!hasKey) return undefined\n\n const entry = store.get(key)!\n store.delete(key)\n store.set(key, entry)\n return entry\n }\n function clear() {\n store.clear()\n }\n\n return {\n set,\n get,\n clear,\n }\n}\n\nexport function parseViewBox(viewBox?: string | null | undefined) {\n return viewBox ? viewBox.split(/[, ]/).filter(Boolean).map(Number) : null\n}\n\nexport function toString(x: unknown): string {\n return Object.prototype.toString.call(x)\n}\n\nexport function isString(x: unknown): x is string {\n return typeof x === 'string'\n}\n\nexport function isNumber(x: unknown): x is number {\n return typeof x === 'number'\n}\n\nexport function isUndefined(x: unknown): x is undefined {\n return toString(x) === '[object Undefined]'\n}\n\nexport function splitByBreakOpportunities(\n content: string,\n wordBreak: string\n): {\n words: string[]\n requiredBreaks: boolean[]\n} {\n if (wordBreak === 'break-all') {\n return { words: segment(content, 'grapheme'), requiredBreaks: [] }\n }\n\n if (wordBreak === 'keep-all') {\n return { words: segment(content, 'word'), requiredBreaks: [] }\n }\n\n const breaker = new LineBreaker(content)\n let last = 0\n let bk = breaker.nextBreak()\n const words = []\n const requiredBreaks = [false]\n\n while (bk) {\n const word = content.slice(last, bk.position)\n words.push(word)\n\n if (bk.required) {\n requiredBreaks.push(true)\n } else {\n requiredBreaks.push(false)\n }\n\n last = bk.position\n bk = breaker.nextBreak()\n }\n\n return { words, requiredBreaks }\n}\n\nexport const midline = (s: string) => {\n return s.replaceAll(\n /([A-Z])/g,\n (_, letter: string) => `-${letter.toLowerCase()}`\n )\n}\n\nexport function splitEffects(\n input: string,\n separator: string | RegExp = ','\n): string[] {\n const result = []\n let l = 0\n let parenCount = 0\n separator = new RegExp(separator)\n\n for (let i = 0; i < input.length; i++) {\n if (input[i] === '(') {\n parenCount++\n } else if (input[i] === ')') {\n parenCount--\n }\n\n if (parenCount === 0 && separator.test(input[i])) {\n result.push(input.slice(l, i).trim())\n l = i + 1\n }\n }\n\n result.push(input.slice(l).trim())\n\n return result\n}\n","/**\n * This module is used to fetch image from the given URL and resolve it as\n * base64 inlined data URI, so the toolchain can process it.\n * The image data will be cached in a LRU so we don't need to fetch it again\n * in new render processes. But to invalidate the cache the workaround is to\n * add a random query string to the URL.\n * TODO: We might want another option to disable image caching by default.\n */\n\nconst AVIF = 'image/avif'\nconst WEBP = 'image/webp'\nconst APNG = 'image/apng'\nconst PNG = 'image/png'\nconst JPEG = 'image/jpeg'\nconst GIF = 'image/gif'\nconst SVG = 'image/svg+xml'\n\nfunction parseJPEG(buf: ArrayBuffer) {\n const view = new DataView(buf)\n\n // Skip magic bytes\n let offset = 4\n\n const len = view.byteLength\n while (offset < len) {\n const i = view.getUint16(offset, false)\n\n if (i > len) {\n throw new TypeError('Invalid JPEG')\n }\n\n const next = view.getUint8(i + 1 + offset)\n if (next === 0xc0 || next === 0xc1 || next === 0xc2) {\n return [\n view.getUint16(i + 7 + offset, false),\n view.getUint16(i + 5 + offset, false),\n ] as [number, number]\n }\n\n // TODO: Support orientations from EXIF.\n\n offset += i + 2\n }\n\n throw new TypeError('Invalid JPEG')\n}\n\nfunction parseGIF(buf: ArrayBuffer) {\n const view = new Uint8Array(buf.slice(6, 10))\n return [view[0] | (view[1] << 8), view[2] | (view[3] << 8)] as [\n number,\n number\n ]\n}\n\nfunction parsePNG(buf: ArrayBuffer) {\n const v = new DataView(buf)\n return [v.getUint16(18, false), v.getUint16(22, false)] as [number, number]\n}\n\nimport { createLRU, parseViewBox } from '../utils.js'\n\ntype ResolvedImageData = [string, number?, number?] | readonly []\nexport const cache = createLRU(100)\nexport const inflightRequests = new Map>()\n\nconst ALLOWED_IMAGE_TYPES = [PNG, APNG, JPEG, GIF, SVG]\n\nfunction arrayBufferToBase64(buffer) {\n let binary = ''\n const bytes = new Uint8Array(buffer)\n for (let i = 0; i < bytes.byteLength; i++) {\n binary += String.fromCharCode(bytes[i])\n }\n return btoa(binary)\n}\n\nfunction base64ToArrayBuffer(base64: string): ArrayBuffer {\n let binaryString = atob(base64)\n let len = binaryString.length\n let bytes = new Uint8Array(len)\n for (let i = 0; i < len; i++) {\n bytes[i] = binaryString.charCodeAt(i)\n }\n return bytes.buffer\n}\n\nfunction parseSvgImageSize(src: string, data: string) {\n // Parse the SVG image size\n const svgTag = data.match(/]*>/)[0]\n\n const viewBoxStr = svgTag.match(/viewBox=['\"](.+)['\"]/)\n let viewBox = viewBoxStr ? parseViewBox(viewBoxStr[1]) : null\n\n const width = svgTag.match(/width=['\"](\\d*\\.\\d+|\\d+)['\"]/)\n const height = svgTag.match(/height=['\"](\\d*\\.\\d+|\\d+)['\"]/)\n\n if (!viewBox && (!width || !height)) {\n throw new Error(`Failed to parse SVG from ${src}: missing \"viewBox\"`)\n }\n\n const size = viewBox ? [viewBox[2], viewBox[3]] : [+width[1], +height[1]]\n\n const ratio = size[0] / size[1]\n const imageSize: [number, number] =\n width && height\n ? [+width[1], +height[1]]\n : width\n ? [+width[1], +width[1] / ratio]\n : height\n ? [+height[1] * ratio, +height[1]]\n : [size[0], size[1]]\n\n return imageSize\n}\n\nfunction arrayBufferToDataUri(data: ArrayBuffer) {\n let imageSize: [number, number]\n\n const imageType = detectContentType(new Uint8Array(data))\n\n switch (imageType) {\n case PNG:\n case APNG:\n imageSize = parsePNG(data)\n break\n case GIF:\n imageSize = parseGIF(data)\n break\n case JPEG:\n imageSize = parseJPEG(data)\n break\n }\n\n if (!ALLOWED_IMAGE_TYPES.includes(imageType)) {\n throw new Error(`Unsupported image type: ${imageType || 'unknown'}`)\n }\n return [\n `data:${imageType};base64,${arrayBufferToBase64(data)}`,\n imageSize,\n ] as const\n}\n\nexport async function resolveImageData(\n src: string | ArrayBuffer\n): Promise {\n if (!src) {\n throw new Error('Image source is not provided.')\n }\n\n // ArrayBuffer\n if (typeof src === 'object') {\n const [newSrc, imageSize] = arrayBufferToDataUri(src)\n return [newSrc, ...imageSize] as ResolvedImageData\n }\n\n if (\n (src.startsWith('\"') && src.endsWith('\"')) ||\n (src.startsWith(\"'\") && src.endsWith(\"'\"))\n ) {\n src = src.slice(1, -1)\n }\n\n // Throw error if the image source is not an absolute URL in server environment\n // Should be after slicing quotes to avoid throwing error too early\n if (typeof window === 'undefined') {\n if (!src.startsWith('http') && !src.startsWith('data:')) {\n throw new Error(`Image source must be an absolute URL: ${src}`)\n }\n }\n\n if (src.startsWith('data:')) {\n let decodedURI: { imageType; encodingType; dataString }\n\n try {\n decodedURI =\n /data:(?[a-z/+]+)(;[^;=]+=[^;=]+)*?(;(?[^;,]+))?,(?.*)/g.exec(\n src\n ).groups as typeof decodedURI\n } catch (err) {\n console.warn('Image data URI resolved without size:' + src)\n return [src]\n }\n\n const { imageType, encodingType, dataString } = decodedURI\n if (imageType === SVG) {\n const utf8Src =\n encodingType === 'base64'\n ? atob(dataString)\n : decodeURIComponent(dataString.replace(/ /g, '%20'))\n const base64Src =\n encodingType === 'base64'\n ? src\n : `data:image/svg+xml;base64,${btoa(utf8Src)}`\n let imageSize = parseSvgImageSize(src, utf8Src)\n cache.set(src, [base64Src, ...imageSize])\n return [base64Src, ...imageSize]\n } else if (encodingType === 'base64') {\n let imageSize: [number, number]\n const data = base64ToArrayBuffer(dataString)\n switch (imageType) {\n case PNG:\n case APNG:\n imageSize = parsePNG(data)\n break\n case GIF:\n imageSize = parseGIF(data)\n break\n case JPEG:\n imageSize = parseJPEG(data)\n break\n }\n cache.set(src, [src, ...imageSize])\n return [src, ...imageSize]\n } else {\n console.warn('Image data URI resolved without size:' + src)\n cache.set(src, [src])\n return [src]\n }\n }\n\n if (!globalThis.fetch) {\n throw new Error('`fetch` is required to be polyfilled to load images.')\n }\n\n if (inflightRequests.has(src)) {\n return inflightRequests.get(src)\n }\n const cached = cache.get(src)\n if (cached) {\n return cached\n }\n\n const url = src\n const promise = fetch(url)\n .then((res): Promise => {\n const type = res.headers.get('content-type')\n\n // Handle SVG specially\n if (type === 'image/svg+xml' || type === 'application/svg+xml') {\n return res.text()\n }\n\n return res.arrayBuffer()\n })\n .then((data) => {\n if (typeof data === 'string') {\n try {\n const newSrc = `data:image/svg+xml;base64,${btoa(data)}`\n // Parse the SVG image size\n const imageSize = parseSvgImageSize(url, data)\n return [newSrc, ...imageSize] as ResolvedImageData\n } catch (e) {\n throw new Error(`Failed to parse SVG image: ${e.message}`)\n }\n }\n\n const [newSrc, imageSize] = arrayBufferToDataUri(data)\n return [newSrc, ...imageSize] as ResolvedImageData\n })\n .then((result) => {\n cache.set(url, result)\n return result\n })\n .catch((err) => {\n console.error(`Can't load image ${url}: ` + err.message)\n cache.set(url, [])\n return [] as const\n })\n\n inflightRequests.set(url, promise)\n return promise\n}\n\n/**\n * Inspects the first few bytes of a buffer to determine if\n * it matches the \"magic number\" of known file signatures.\n * https://en.wikipedia.org/wiki/List_of_file_signatures\n */\nfunction detectContentType(buffer: Uint8Array) {\n if ([0xff, 0xd8, 0xff].every((b, i) => buffer[i] === b)) {\n return JPEG\n }\n if (\n [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a].every(\n (b, i) => buffer[i] === b\n )\n ) {\n if (detectAPNG(buffer)) {\n return APNG\n }\n return PNG\n }\n if ([0x47, 0x49, 0x46, 0x38].every((b, i) => buffer[i] === b)) {\n return GIF\n }\n if (\n [0x52, 0x49, 0x46, 0x46, 0, 0, 0, 0, 0x57, 0x45, 0x42, 0x50].every(\n (b, i) => !b || buffer[i] === b\n )\n ) {\n return WEBP\n }\n if ([0x3c, 0x3f, 0x78, 0x6d, 0x6c].every((b, i) => buffer[i] === b)) {\n return SVG\n }\n if (\n [0, 0, 0, 0, 0x66, 0x74, 0x79, 0x70, 0x61, 0x76, 0x69, 0x66].every(\n (b, i) => !b || buffer[i] === b\n )\n ) {\n return AVIF\n }\n return null\n}\n\nfunction detectAPNG(bytes: Uint8Array) {\n const dv = new DataView(bytes.buffer)\n let type: string,\n length: number,\n off = 8,\n isAPNG = false\n while (!isAPNG && type !== 'IEND' && off < bytes.length) {\n length = dv.getUint32(off)\n const chars = bytes.subarray(off + 4, off + 8)\n type = String.fromCharCode(...chars)\n isAPNG = type === 'acTL'\n off += 12 + length\n }\n return isAPNG\n}\n","import type { ReactElement, ReactNode } from 'react'\nimport { resolveImageData, cache } from './image.js'\nimport { isReactElement, parseViewBox, midline } from '../utils.js'\n\n// Based on\n// https://raw.githubusercontent.com/facebook/react/master/packages/react-dom/src/shared/possibleStandardNames.js\nconst ATTRIBUTE_MAPPING = {\n accentHeight: 'accent-height',\n alignmentBaseline: 'alignment-baseline',\n arabicForm: 'arabic-form',\n baselineShift: 'baseline-shift',\n capHeight: 'cap-height',\n clipPath: 'clip-path',\n clipRule: 'clip-rule',\n colorInterpolation: 'color-interpolation',\n colorInterpolationFilters: 'color-interpolation-filters',\n colorProfile: 'color-profile',\n colorRendering: 'color-rendering',\n dominantBaseline: 'dominant-baseline',\n enableBackground: 'enable-background',\n fillOpacity: 'fill-opacity',\n fillRule: 'fill-rule',\n floodColor: 'flood-color',\n floodOpacity: 'flood-opacity',\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontSizeAdjust: 'font-size-adjust',\n fontStretch: 'font-stretch',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n href: 'href',\n imageRendering: 'image-rendering',\n letterSpacing: 'letter-spacing',\n lightingColor: 'lighting-color',\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pointerEvents: 'pointer-events',\n renderingIntent: 'rendering-intent',\n shapeRendering: 'shape-rendering',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strikethroughPosition: 'strikethrough-position',\n strikethroughThickness: 'strikethrough-thickness',\n strokeDasharray: 'stroke-dasharray',\n strokeDashoffset: 'stroke-dashoffset',\n strokeLinecap: 'stroke-linecap',\n strokeLinejoin: 'stroke-linejoin',\n strokeMiterlimit: 'stroke-miterlimit',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n vectorEffect: 'vector-effect',\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n xHeight: 'x-height',\n xlinkActuate: 'xlink:actuate',\n xlinkArcrole: 'xlink:arcrole',\n xlinkHref: 'xlink:href',\n xlinkRole: 'xlink:role',\n xlinkShow: 'xlink:show',\n xlinkTitle: 'xlink:title',\n xlinkType: 'xlink:type',\n xmlBase: 'xml:base',\n xmlLang: 'xml:lang',\n xmlSpace: 'xml:space',\n xmlnsXlink: 'xmlns:xlink',\n} as const\n\n// From https://github.com/yoksel/url-encoder/blob/master/src/js/script.js\nconst SVGSymbols = /[\\r\\n%#()<>?[\\\\\\]^`{|}\"']/g\n\nfunction translateSVGNodeToSVGString(\n node: ReactElement | string | (ReactElement | string)[],\n inheritedColor: string\n): string {\n if (!node) return ''\n if (Array.isArray(node)) {\n return node\n .map((n) => translateSVGNodeToSVGString(n, inheritedColor))\n .join('')\n }\n if (typeof node !== 'object') return String(node)\n\n const type = node.type\n if (type === 'text') {\n throw new Error(\n ' nodes are not currently supported, please convert them to '\n )\n }\n\n const { children, style, ...restProps } = node.props || {}\n const currentColor = style?.color || inheritedColor\n\n const attrs = `${Object.entries(restProps)\n .map(([k, _v]) => {\n if (typeof _v === 'string' && _v.toLowerCase() === 'currentcolor') {\n _v = currentColor\n }\n\n if (k === 'href' && type === 'image') {\n return ` ${ATTRIBUTE_MAPPING[k] || k}=\"${cache.get(_v as string)[0]}\"`\n }\n return ` ${ATTRIBUTE_MAPPING[k] || k}=\"${_v}\"`\n })\n .join('')}`\n\n const styles = style\n ? ` style=\"${Object.entries(style)\n .map(([k, _v]) => `${midline(k)}:${_v}`)\n .join(';')}\"`\n : ''\n\n return `<${type}${attrs}${styles}>${translateSVGNodeToSVGString(\n children,\n currentColor\n )}`\n}\n/**\n * pre process node and resolve absolute link to img data for image element\n * @param node ReactNode\n * @returns\n */\nexport async function preProcessNode(node: ReactNode) {\n const set = new Set()\n const walk = (_node: ReactNode) => {\n if (!_node) return\n if (!isReactElement(_node)) return\n\n if (Array.isArray(_node)) {\n _node.forEach((v) => walk(v))\n return\n } else if (typeof _node === 'object') {\n if (_node.type === 'image') {\n if (set.has(_node.props.href)) {\n // do nothing\n } else {\n set.add(_node.props.href)\n }\n } else if (_node.type === 'img') {\n if (set.has(_node.props.src)) {\n // do nothing\n } else {\n set.add(_node.props.src)\n }\n } else {\n // do nothing\n }\n }\n\n Array.isArray(_node.props.children)\n ? _node.props.children.map((c) => walk(c))\n : walk(_node.props.children)\n }\n\n walk(node)\n\n return Promise.all(Array.from(set).map((s) => resolveImageData(s)))\n}\n\nexport async function SVGNodeToImage(\n node: ReactElement,\n inheritedColor: string\n): Promise {\n let {\n viewBox,\n viewbox,\n width,\n height,\n className,\n style,\n children,\n ...restProps\n } = node.props || {}\n\n viewBox ||= viewbox\n\n // We directly assign the xmlns attribute here to deduplicate.\n restProps.xmlns = 'http://www.w3.org/2000/svg'\n\n const currentColor = style?.color || inheritedColor\n const viewBoxSize = parseViewBox(viewBox)\n\n // ratio = height / width\n const ratio = viewBoxSize ? viewBoxSize[3] / viewBoxSize[2] : null\n width = width || (ratio && height) ? height / ratio : null\n height = height || (ratio && width) ? width * ratio : null\n\n restProps.width = width\n restProps.height = height\n if (viewBox) restProps.viewBox = viewBox\n\n return `data:image/svg+xml;utf8,${` {\n if (typeof _v === 'string' && _v.toLowerCase() === 'currentcolor') {\n _v = currentColor\n }\n return ` ${ATTRIBUTE_MAPPING[k] || k}=\"${_v}\"`\n })\n .join('')}>${translateSVGNodeToSVGString(\n children,\n currentColor\n )}`.replace(SVGSymbols, encodeURIComponent)}`\n}\n","/**\n * Pre-defined styles for elements. Here we hand pick some from Chromium's\n * default styles:\n * https://chromium.googlesource.com/chromium/blink/+/master/Source/core/css/html.css\n *\n * We try to only include commonly used, styling elements rather than semantic elements.\n */\n\nconst DEFAULT_DISPLAY = 'flex'\n\nexport default {\n // Generic block-level elements\n p: {\n display: DEFAULT_DISPLAY,\n marginTop: '1em',\n marginBottom: '1em',\n },\n div: {\n display: DEFAULT_DISPLAY,\n },\n blockquote: {\n display: DEFAULT_DISPLAY,\n marginTop: '1em',\n marginBottom: '1em',\n marginLeft: 40,\n marginRight: 40,\n },\n center: {\n display: DEFAULT_DISPLAY,\n textAlign: 'center',\n },\n hr: {\n display: DEFAULT_DISPLAY,\n marginTop: '0.5em',\n marginBottom: '0.5em',\n marginLeft: 'auto',\n marginRight: 'auto',\n borderWidth: 1,\n // We don't have `inset`\n borderStyle: 'solid',\n },\n // Heading elements\n h1: {\n display: DEFAULT_DISPLAY,\n fontSize: '2em',\n marginTop: '0.67em',\n marginBottom: '0.67em',\n marginLeft: 0,\n marginRight: 0,\n fontWeight: 'bold',\n },\n h2: {\n display: DEFAULT_DISPLAY,\n fontSize: '1.5em',\n marginTop: '0.83em',\n marginBottom: '0.83em',\n marginLeft: 0,\n marginRight: 0,\n fontWeight: 'bold',\n },\n h3: {\n display: DEFAULT_DISPLAY,\n fontSize: '1.17em',\n marginTop: '1em',\n marginBottom: '1em',\n marginLeft: 0,\n marginRight: 0,\n fontWeight: 'bold',\n },\n h4: {\n display: DEFAULT_DISPLAY,\n marginTop: '1.33em',\n marginBottom: '1.33em',\n marginLeft: 0,\n marginRight: 0,\n fontWeight: 'bold',\n },\n h5: {\n display: DEFAULT_DISPLAY,\n fontSize: '0.83em',\n marginTop: '1.67em',\n marginBottom: '1.67em',\n marginLeft: 0,\n marginRight: 0,\n fontWeight: 'bold',\n },\n h6: {\n display: DEFAULT_DISPLAY,\n fontSize: '0.67em',\n marginTop: '2.33em',\n marginBottom: '2.33em',\n marginLeft: 0,\n marginRight: 0,\n fontWeight: 'bold',\n },\n // Tables\n // Lists\n // Form elements\n // Inline elements\n u: {\n textDecoration: 'underline',\n },\n strong: {\n fontWeight: 'bold',\n },\n b: {\n fontWeight: 'bold',\n },\n i: {\n fontStyle: 'italic',\n },\n em: {\n fontStyle: 'italic',\n },\n code: {\n fontFamily: 'monospace',\n },\n kbd: {\n fontFamily: 'monospace',\n },\n pre: {\n display: DEFAULT_DISPLAY,\n fontFamily: 'monospace',\n whiteSpace: 'pre',\n marginTop: '1em',\n marginBottom: '1em',\n },\n mark: {\n backgroundColor: 'yellow',\n color: 'black',\n },\n big: {\n fontSize: 'larger',\n },\n small: {\n fontSize: 'smaller',\n },\n s: {\n textDecoration: 'line-through',\n },\n}\n","import { SerializedStyle } from './expand.js'\n\nconst list = new Set([\n 'color',\n 'font',\n 'fontFamily',\n 'fontSize',\n 'fontStyle',\n 'fontWeight',\n 'letterSpacing',\n 'lineHeight',\n 'textAlign',\n 'textTransform',\n 'textShadowOffset',\n 'textShadowColor',\n 'textShadowRadius',\n 'WebkitTextStrokeWidth',\n 'WebkitTextStrokeColor',\n 'textDecorationLine',\n 'textDecorationStyle',\n 'textDecorationColor',\n 'whiteSpace',\n 'transform',\n 'wordBreak',\n 'tabSize',\n\n // Special case: SVG doesn't apply these to children elements so we need to\n // make it inheritable here.\n 'opacity',\n 'filter',\n\n // Special properties of Satori:\n '_viewportWidth',\n '_viewportHeight',\n '_inheritedClipPathId',\n '_inheritedMaskId',\n '_inheritedBackgroundClipTextPath',\n])\n\nexport default function inheritable(style: SerializedStyle): SerializedStyle {\n const inheritedStyle: SerializedStyle = {}\n for (const prop in style) {\n if (list.has(prop)) {\n inheritedStyle[prop] = style[prop]\n }\n }\n return inheritedStyle\n}\n","/**\n * Handler to update the Yoga node properties with the given element type and\n * style. Each supported element has its own preset styles, so this function\n * also returns the inherited style for children of the element.\n */\n\nimport type { Node as YogaNode } from 'yoga-wasm-web'\n\nimport getYoga from '../yoga/index.js'\nimport presets from './presets.js'\nimport inheritable from './inheritable.js'\nimport expand, { SerializedStyle } from './expand.js'\nimport { lengthToNumber, parseViewBox, v } from '../utils.js'\nimport { resolveImageData } from './image.js'\n\ntype SatoriElement = keyof typeof presets\n\nexport default async function compute(\n node: YogaNode,\n type: SatoriElement | string,\n inheritedStyle: SerializedStyle,\n definedStyle: Record,\n props: Record\n): Promise<[SerializedStyle, SerializedStyle]> {\n const Yoga = await getYoga()\n\n // Extend the default style with defined and inherited styles.\n const style: SerializedStyle = {\n ...inheritedStyle,\n ...expand(presets[type], inheritedStyle),\n ...expand(definedStyle, inheritedStyle),\n }\n\n if (type === 'img') {\n let [resolvedSrc, imageWidth, imageHeight] = await resolveImageData(\n props.src\n )\n\n // Cannot parse the image size (e.g. base64 data URI).\n if (imageWidth === undefined && imageHeight === undefined) {\n if (props.width === undefined || props.height === undefined) {\n throw new Error(\n 'Image size cannot be determined. Please provide the width and height of the image.'\n )\n }\n imageWidth = parseInt(props.width)\n imageHeight = parseInt(props.height)\n }\n const r = imageHeight / imageWidth\n\n // Before calculating the missing width or height based on the image ratio,\n // we must subtract the padding and border due to how box model works.\n // TODO: Ensure these are absolute length values, not relative values.\n let extraHorizontal =\n (style.borderLeftWidth || 0) +\n (style.borderRightWidth || 0) +\n (style.paddingLeft || 0) +\n (style.paddingRight || 0)\n let extraVertical =\n (style.borderTopWidth || 0) +\n (style.borderBottomWidth || 0) +\n (style.paddingTop || 0) +\n (style.paddingBottom || 0)\n\n let contentBoxWidth = style.width || props.width\n let contentBoxHeight = style.height || props.height\n\n const isAbsoluteContentSize =\n typeof contentBoxWidth === 'number' &&\n typeof contentBoxHeight === 'number'\n\n if (isAbsoluteContentSize) {\n contentBoxWidth -= extraHorizontal\n contentBoxHeight -= extraVertical\n }\n\n // When no content size is defined, we use the image size as the content size.\n if (contentBoxWidth === undefined && contentBoxHeight === undefined) {\n contentBoxWidth = '100%'\n node.setAspectRatio(1 / r)\n } else {\n // If only one sisde is not defined, we can calculate the other one.\n if (contentBoxWidth === undefined) {\n if (typeof contentBoxHeight === 'number') {\n contentBoxWidth = contentBoxHeight / r\n } else {\n // If it uses a relative value (e.g. 50%), we can rely on aspect ratio.\n // Note: this doesn't work well if there are paddings or borders.\n node.setAspectRatio(1 / r)\n }\n } else if (contentBoxHeight === undefined) {\n if (typeof contentBoxWidth === 'number') {\n contentBoxHeight = contentBoxWidth * r\n } else {\n // If it uses a relative value (e.g. 50%), we can rely on aspect ratio.\n // Note: this doesn't work well if there are paddings or borders.\n node.setAspectRatio(1 / r)\n }\n }\n }\n\n style.width = isAbsoluteContentSize\n ? (contentBoxWidth as number) + extraHorizontal\n : contentBoxWidth\n style.height = isAbsoluteContentSize\n ? (contentBoxHeight as number) + extraVertical\n : contentBoxHeight\n style.__src = resolvedSrc\n }\n\n if (type === 'svg') {\n const viewBox = props.viewBox || props.viewbox\n const viewBoxSize = parseViewBox(viewBox)\n const ratio = viewBoxSize ? viewBoxSize[3] / viewBoxSize[2] : null\n\n let { width, height } = props\n if (typeof width === 'undefined' && height) {\n if (ratio == null) {\n width = 0\n } else if (typeof height === 'string' && height.endsWith('%')) {\n width = parseInt(height) / ratio + '%'\n } else {\n height = lengthToNumber(\n height,\n inheritedStyle.fontSize,\n 1,\n inheritedStyle\n )\n width = height / ratio\n }\n } else if (typeof height === 'undefined' && width) {\n if (ratio == null) {\n width = 0\n } else if (typeof width === 'string' && width.endsWith('%')) {\n height = parseInt(width) * ratio + '%'\n } else {\n width = lengthToNumber(\n width,\n inheritedStyle.fontSize,\n 1,\n inheritedStyle\n )\n height = width * ratio\n }\n } else {\n if (typeof width !== 'undefined') {\n width =\n lengthToNumber(width, inheritedStyle.fontSize, 1, inheritedStyle) ||\n width\n }\n if (typeof height !== 'undefined') {\n height =\n lengthToNumber(height, inheritedStyle.fontSize, 1, inheritedStyle) ||\n height\n }\n width ||= viewBoxSize?.[2]\n height ||= viewBoxSize?.[3]\n }\n\n if (!style.width && width) style.width = width\n if (!style.height && height) style.height = height\n }\n\n // Set properties for Yoga.\n node.setDisplay(\n v(\n style.display,\n {\n flex: Yoga.DISPLAY_FLEX,\n block: Yoga.DISPLAY_FLEX,\n none: Yoga.DISPLAY_NONE,\n '-webkit-box': Yoga.DISPLAY_FLEX,\n },\n Yoga.DISPLAY_FLEX,\n 'display'\n )\n )\n\n node.setAlignContent(\n v(\n style.alignContent,\n {\n stretch: Yoga.ALIGN_STRETCH,\n center: Yoga.ALIGN_CENTER,\n 'flex-start': Yoga.ALIGN_FLEX_START,\n 'flex-end': Yoga.ALIGN_FLEX_END,\n 'space-between': Yoga.ALIGN_SPACE_BETWEEN,\n 'space-around': Yoga.ALIGN_SPACE_AROUND,\n baseline: Yoga.ALIGN_BASELINE,\n normal: Yoga.ALIGN_AUTO,\n },\n Yoga.ALIGN_AUTO,\n 'alignContent'\n )\n )\n\n node.setAlignItems(\n v(\n style.alignItems,\n {\n stretch: Yoga.ALIGN_STRETCH,\n center: Yoga.ALIGN_CENTER,\n 'flex-start': Yoga.ALIGN_FLEX_START,\n 'flex-end': Yoga.ALIGN_FLEX_END,\n baseline: Yoga.ALIGN_BASELINE,\n normal: Yoga.ALIGN_AUTO,\n },\n Yoga.ALIGN_STRETCH,\n 'alignItems'\n )\n )\n node.setAlignSelf(\n v(\n style.alignSelf,\n {\n stretch: Yoga.ALIGN_STRETCH,\n center: Yoga.ALIGN_CENTER,\n 'flex-start': Yoga.ALIGN_FLEX_START,\n 'flex-end': Yoga.ALIGN_FLEX_END,\n baseline: Yoga.ALIGN_BASELINE,\n normal: Yoga.ALIGN_AUTO,\n },\n Yoga.ALIGN_AUTO,\n 'alignSelf'\n )\n )\n node.setJustifyContent(\n v(\n style.justifyContent,\n {\n center: Yoga.JUSTIFY_CENTER,\n 'flex-start': Yoga.JUSTIFY_FLEX_START,\n 'flex-end': Yoga.JUSTIFY_FLEX_END,\n 'space-between': Yoga.JUSTIFY_SPACE_BETWEEN,\n 'space-around': Yoga.JUSTIFY_SPACE_AROUND,\n },\n Yoga.JUSTIFY_FLEX_START,\n 'justifyContent'\n )\n )\n // @TODO: node.setAspectRatio\n\n node.setFlexDirection(\n v(\n style.flexDirection,\n {\n row: Yoga.FLEX_DIRECTION_ROW,\n column: Yoga.FLEX_DIRECTION_COLUMN,\n 'row-reverse': Yoga.FLEX_DIRECTION_ROW_REVERSE,\n 'column-reverse': Yoga.FLEX_DIRECTION_COLUMN_REVERSE,\n },\n Yoga.FLEX_DIRECTION_ROW,\n 'flexDirection'\n )\n )\n node.setFlexWrap(\n v(\n style.flexWrap,\n {\n wrap: Yoga.WRAP_WRAP,\n nowrap: Yoga.WRAP_NO_WRAP,\n 'wrap-reverse': Yoga.WRAP_WRAP_REVERSE,\n },\n Yoga.WRAP_NO_WRAP,\n 'flexWrap'\n )\n )\n\n if (typeof style.gap !== 'undefined') {\n node.setGap(Yoga.GUTTER_ALL, style.gap)\n }\n\n if (typeof style.rowGap !== 'undefined') {\n node.setGap(Yoga.GUTTER_ROW, style.rowGap)\n }\n\n if (typeof style.columnGap !== 'undefined') {\n node.setGap(Yoga.GUTTER_COLUMN, style.columnGap)\n }\n\n // @TODO: node.setFlex\n\n if (typeof style.flexBasis !== 'undefined') {\n node.setFlexBasis(style.flexBasis)\n }\n node.setFlexGrow(typeof style.flexGrow === 'undefined' ? 0 : style.flexGrow)\n node.setFlexShrink(\n typeof style.flexShrink === 'undefined' ? 0 : style.flexShrink\n )\n\n if (typeof style.maxHeight !== 'undefined') {\n node.setMaxHeight(style.maxHeight)\n }\n if (typeof style.maxWidth !== 'undefined') {\n node.setMaxWidth(style.maxWidth)\n }\n if (typeof style.minHeight !== 'undefined') {\n node.setMinHeight(style.minHeight)\n }\n if (typeof style.minWidth !== 'undefined') {\n node.setMinWidth(style.minWidth)\n }\n\n node.setOverflow(\n v(\n style.overflow,\n {\n visible: Yoga.OVERFLOW_VISIBLE,\n hidden: Yoga.OVERFLOW_HIDDEN,\n },\n Yoga.OVERFLOW_VISIBLE,\n 'overflow'\n )\n )\n\n node.setMargin(Yoga.EDGE_TOP, style.marginTop || 0)\n node.setMargin(Yoga.EDGE_BOTTOM, style.marginBottom || 0)\n node.setMargin(Yoga.EDGE_LEFT, style.marginLeft || 0)\n node.setMargin(Yoga.EDGE_RIGHT, style.marginRight || 0)\n\n node.setBorder(Yoga.EDGE_TOP, style.borderTopWidth || 0)\n node.setBorder(Yoga.EDGE_BOTTOM, style.borderBottomWidth || 0)\n node.setBorder(Yoga.EDGE_LEFT, style.borderLeftWidth || 0)\n node.setBorder(Yoga.EDGE_RIGHT, style.borderRightWidth || 0)\n\n node.setPadding(Yoga.EDGE_TOP, style.paddingTop || 0)\n node.setPadding(Yoga.EDGE_BOTTOM, style.paddingBottom || 0)\n node.setPadding(Yoga.EDGE_LEFT, style.paddingLeft || 0)\n node.setPadding(Yoga.EDGE_RIGHT, style.paddingRight || 0)\n\n node.setPositionType(\n v(\n style.position,\n {\n absolute: Yoga.POSITION_TYPE_ABSOLUTE,\n relative: Yoga.POSITION_TYPE_RELATIVE,\n },\n Yoga.POSITION_TYPE_RELATIVE,\n 'position'\n )\n )\n\n if (typeof style.top !== 'undefined') {\n node.setPosition(Yoga.EDGE_TOP, style.top)\n }\n if (typeof style.bottom !== 'undefined') {\n node.setPosition(Yoga.EDGE_BOTTOM, style.bottom)\n }\n if (typeof style.left !== 'undefined') {\n node.setPosition(Yoga.EDGE_LEFT, style.left)\n }\n if (typeof style.right !== 'undefined') {\n node.setPosition(Yoga.EDGE_RIGHT, style.right)\n }\n\n if (typeof style.height !== 'undefined') {\n node.setHeight(style.height)\n } else {\n node.setHeightAuto()\n }\n if (typeof style.width !== 'undefined') {\n node.setWidth(style.width)\n } else {\n node.setWidthAuto()\n }\n\n return [style, inheritable(style)]\n}\n","import { multiply } from '../utils.js'\nimport type { ParsedTransformOrigin } from '../transform-origin.js'\n\nconst baseMatrix = [1, 0, 0, 1, 0, 0]\n\n// Mutate the array in place.\nfunction resolveTransforms(transforms: any[], width: number, height: number) {\n let matrix = [...baseMatrix]\n\n // Handle CSS transforms To make it easier, we convert different transform\n // types directly to a matrix and apply it recursively to all its children.\n // Transforms are applied from right to left.\n // eslint-disable-next-line @typescript-eslint/no-shadow\n for (const transform of transforms) {\n const type = Object.keys(transform)[0]\n let v = transform[type]\n\n // Resolve percentages based on the element's final size.\n if (typeof v === 'string') {\n if (type === 'translateX') {\n v = (parseFloat(v) / 100) * width\n // Override the original object.\n transform[type] = v\n } else if (type === 'translateY') {\n v = (parseFloat(v) / 100) * height\n transform[type] = v\n } else {\n throw new Error(`Invalid transform: \"${type}: ${v}\".`)\n }\n }\n\n let len = v as number\n\n const transformMatrix = [...baseMatrix]\n switch (type) {\n case 'translateX':\n transformMatrix[4] = len\n break\n case 'translateY':\n transformMatrix[5] = len\n break\n case 'scale':\n transformMatrix[0] = len\n transformMatrix[3] = len\n break\n case 'scaleX':\n transformMatrix[0] = len\n break\n case 'scaleY':\n transformMatrix[3] = len\n break\n case 'rotate': {\n const rad = (len * Math.PI) / 180\n const c = Math.cos(rad)\n const s = Math.sin(rad)\n transformMatrix[0] = c\n transformMatrix[1] = s\n transformMatrix[2] = -s\n transformMatrix[3] = c\n break\n }\n case 'skewX':\n transformMatrix[2] = Math.tan((len * Math.PI) / 180)\n break\n case 'skewY':\n transformMatrix[1] = Math.tan((len * Math.PI) / 180)\n break\n }\n matrix = multiply(transformMatrix, matrix)\n }\n\n transforms.splice(0, transforms.length)\n transforms.push(...matrix)\n ;(transforms as any).__resolved = true\n}\n\nexport default function transform(\n {\n left,\n top,\n width,\n height,\n }: {\n left: number\n top: number\n width: number\n height: number\n },\n transforms: number[],\n isInheritingTransform: boolean,\n transformOrigin?: ParsedTransformOrigin\n) {\n let result: number[]\n\n if (!(transforms as any).__resolved) {\n resolveTransforms(transforms, width, height)\n }\n\n let matrix = transforms\n\n // Calculate the transform origin.\n if (isInheritingTransform) {\n result = matrix\n } else {\n const xOrigin =\n transformOrigin?.xAbsolute ??\n ((transformOrigin?.xRelative ?? 50) * width) / 100\n const yOrigin =\n transformOrigin?.yAbsolute ??\n ((transformOrigin?.yRelative ?? 50) * height) / 100\n\n // If this element is the transform target, we attach the origin coordinates\n // to this matrix.\n const x = left + xOrigin\n const y = top + yOrigin\n\n // Due to the different coordinate systems, we need to move the shape to the\n // origin first, then apply the matrix, then move it back.\n result = multiply(\n [1, 0, 0, 1, x, y],\n multiply(matrix, [1, 0, 0, 1, -x, -y])\n )\n\n // And we need to apply its parent transform if it has one.\n if ((matrix as any).__parent) {\n result = multiply((matrix as any).__parent, result)\n }\n\n // Mutate self.\n matrix.splice(0, 6, ...result)\n }\n\n return `matrix(${result.map((v) => v.toFixed(2)).join(',')})`\n}\n","// @TODO: It seems that SVG filters are pretty expensive for resvg, PNG\n// generation time 10x'd when adding this filter (WASM in browser).\n// https://drafts.fxtf.org/filter-effects/#feGaussianBlurElement\n\nimport { buildXMLString } from '../utils.js'\n\nfunction shiftPath(path: string, dx: number, dy: number) {\n return path.replace(\n /([MA])([0-9.-]+),([0-9.-]+)/g,\n function (_, command, x, y) {\n return command + (parseFloat(x) + dx) + ',' + (parseFloat(y) + dy)\n }\n )\n}\n\n// The scale is used to make the filter area larger than the bounding box,\n// because usually the given measured text bounding is larger than the path\n// bounding.\n// The text bounding box is measured via the font metrics, which is not the same\n// as the actual content. For example, the text bounding box of \"A\" is larger\n// than the actual \"a\" path but they have the same font metrics.\n// This scale can be adjusted to prevent the filter from cutting off the text.\nconst SCALE = 1.1\n\nexport function buildDropShadow(\n { id, width, height }: { id: string; width: number; height: number },\n style: {\n shadowColor: string[]\n shadowOffset: {\n width: number\n height: number\n }[]\n shadowRadius: number[]\n }\n) {\n if (\n !style.shadowColor ||\n !style.shadowOffset ||\n typeof style.shadowRadius === 'undefined'\n ) {\n return ''\n }\n\n const shadowCount = style.shadowColor.length\n let effects = ''\n let merge = ''\n\n // There could be multiple shadows, we need to get the maximum bounding box\n // and use `feMerge` to merge them together.\n let left = 0\n let right = width\n let top = 0\n let bottom = height\n for (let i = 0; i < shadowCount; i++) {\n // Expand the area for the filter to prevent it from cutting off.\n const grow = (style.shadowRadius[i] * style.shadowRadius[i]) / 4\n left = Math.min(style.shadowOffset[i].width - grow, left)\n right = Math.max(style.shadowOffset[i].width + grow + width, right)\n top = Math.min(style.shadowOffset[i].height - grow, top)\n bottom = Math.max(style.shadowOffset[i].height + grow + height, bottom)\n\n effects += buildXMLString('feDropShadow', {\n dx: style.shadowOffset[i].width,\n dy: style.shadowOffset[i].height,\n stdDeviation:\n // According to the spec, we use the half of the blur radius as the standard\n // deviation for the filter.\n // > the image that would be generated by applying to the shadow a Gaussian\n // > blur with a standard deviation equal to half the blur radius\n // > https://www.w3.org/TR/css-backgrounds-3/#shadow-blur\n style.shadowRadius[i] / 2,\n 'flood-color': style.shadowColor[i],\n 'flood-opacity': 1,\n ...(shadowCount > 1\n ? {\n in: 'SourceGraphic',\n result: `satori_s-${id}-result-${i}`,\n }\n : {}),\n })\n\n if (shadowCount > 1) {\n // Merge needs to be in reverse order.\n merge =\n buildXMLString('feMergeNode', {\n in: `satori_s-${id}-result-${i}`,\n }) + merge\n }\n }\n\n return buildXMLString(\n 'filter',\n {\n id: `satori_s-${id}`,\n x: ((left / width) * 100 * SCALE).toFixed(2) + '%',\n y: ((top / height) * 100 * SCALE).toFixed(2) + '%',\n width: (((right - left) / width) * 100 * SCALE).toFixed(2) + '%',\n height: (((bottom - top) / height) * 100 * SCALE).toFixed(2) + '%',\n },\n effects + (merge ? buildXMLString('feMerge', {}, merge) : '')\n )\n}\n\nexport function boxShadow(\n {\n width,\n height,\n shape,\n opacity,\n id,\n }: {\n width: number\n height: number\n shape: string\n opacity: number\n id: string\n },\n style: Record\n) {\n if (!style.boxShadow) return null\n\n let shadow = ''\n let innerShadow = ''\n\n for (let i = style.boxShadow.length - 1; i >= 0; i--) {\n let s = ''\n\n const shadowStyle = style.boxShadow[i]\n\n if (shadowStyle.spreadRadius && shadowStyle.inset) {\n shadowStyle.spreadRadius = -shadowStyle.spreadRadius\n }\n\n // Expand the area for the filter to prevent it from cutting off.\n const grow =\n (shadowStyle.blurRadius * shadowStyle.blurRadius) / 4 +\n (shadowStyle.spreadRadius || 0)\n\n const left = Math.min(\n -grow - (shadowStyle.inset ? shadowStyle.offsetX : 0),\n 0\n )\n const right = Math.max(\n grow + width - (shadowStyle.inset ? shadowStyle.offsetX : 0),\n width\n )\n const top = Math.min(\n -grow - (shadowStyle.inset ? shadowStyle.offsetY : 0),\n 0\n )\n const bottom = Math.max(\n grow + height - (shadowStyle.inset ? shadowStyle.offsetY : 0),\n height\n )\n\n const sid = `satori_s-${id}-${i}`\n const maskId = `satori_ms-${id}-${i}`\n const shapeWithSpread = shadowStyle.spreadRadius\n ? shape.replace(\n 'stroke-width=\"0\"',\n `stroke-width=\"${shadowStyle.spreadRadius * 2}\"`\n )\n : shape\n\n s += buildXMLString(\n 'mask',\n {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n },\n buildXMLString('rect', {\n x: 0,\n y: 0,\n width: style._viewportWidth || '100%',\n height: style._viewportHeight || '100%',\n fill: shadowStyle.inset ? '#000' : '#fff',\n }) +\n shapeWithSpread\n .replace(\n 'fill=\"#fff\"',\n shadowStyle.inset ? 'fill=\"#fff\"' : 'fill=\"#000\"'\n )\n .replace('stroke=\"#fff\"', '')\n )\n\n let finalShape = shapeWithSpread\n .replace(/d=\"([^\"]+)\"/, (_, path) => {\n return (\n 'd=\"' +\n shiftPath(path, shadowStyle.offsetX, shadowStyle.offsetY) +\n '\"'\n )\n })\n .replace(/x=\"([^\"]+)\"/, (_, x) => {\n return 'x=\"' + (parseFloat(x) + shadowStyle.offsetX) + '\"'\n })\n .replace(/y=\"([^\"]+)\"/, (_, y) => {\n return 'y=\"' + (parseFloat(y) + shadowStyle.offsetY) + '\"'\n })\n\n // Negative spread radius, we need another mask here.\n if (shadowStyle.spreadRadius && shadowStyle.spreadRadius < 0) {\n s += buildXMLString(\n 'mask',\n {\n id: maskId + '-neg',\n maskUnits: 'userSpaceOnUse',\n },\n finalShape\n .replace('stroke=\"#fff\"', 'stroke=\"#000\"')\n .replace(\n /stroke-width=\"[^\"]+\"/,\n `stroke-width=\"${-shadowStyle.spreadRadius * 2}\"`\n )\n )\n }\n\n if (shadowStyle.spreadRadius && shadowStyle.spreadRadius < 0) {\n finalShape = buildXMLString(\n 'g',\n {\n mask: `url(#${maskId}-neg)`,\n },\n finalShape\n )\n }\n\n s +=\n buildXMLString(\n 'defs',\n {},\n buildXMLString(\n 'filter',\n {\n id: sid,\n x: `${(left / width) * 100}%`,\n y: `${(top / height) * 100}%`,\n width: `${((right - left) / width) * 100}%`,\n height: `${((bottom - top) / height) * 100}%`,\n },\n buildXMLString('feGaussianBlur', {\n // According to the spec, we use the half of the blur radius as the standard\n // deviation for the filter.\n // > the image that would be generated by applying to the shadow a Gaussian\n // > blur with a standard deviation equal to half the blur radius\n // > https://www.w3.org/TR/css-backgrounds-3/#shadow-blur\n stdDeviation: shadowStyle.blurRadius / 2,\n result: 'b',\n }) +\n buildXMLString('feFlood', {\n 'flood-color': shadowStyle.color,\n in: 'SourceGraphic',\n result: 'f',\n }) +\n buildXMLString('feComposite', {\n in: 'f',\n in2: 'b',\n operator: shadowStyle.inset ? 'out' : 'in',\n })\n )\n ) +\n buildXMLString(\n 'g',\n {\n mask: `url(#${maskId})`,\n filter: `url(#${sid})`,\n opacity: opacity,\n },\n finalShape\n )\n\n if (shadowStyle.inset) {\n innerShadow += s\n } else {\n shadow += s\n }\n }\n\n return [shadow, innerShadow]\n}\n","import { buildXMLString } from '../utils.js'\n\nexport default function buildDecoration(\n {\n width,\n left,\n top,\n ascender,\n clipPathId,\n matrix,\n }: {\n width: number\n left: number\n top: number\n ascender: number\n clipPathId?: string\n matrix?: string\n },\n style: Record\n) {\n const {\n textDecorationColor,\n textDecorationStyle,\n textDecorationLine,\n fontSize,\n color,\n } = style\n if (!textDecorationLine || textDecorationLine === 'none') return ''\n\n // The UA should use such font-based information when choosing auto line thicknesses wherever appropriate.\n // https://drafts.csswg.org/css-text-decor-4/#text-decoration-thickness\n const height = Math.max(1, fontSize * 0.1)\n\n const y =\n textDecorationLine === 'line-through'\n ? top + ascender * 0.7\n : textDecorationLine === 'underline'\n ? top + ascender * 1.1\n : top\n\n const dasharray =\n textDecorationStyle === 'dashed'\n ? `${height * 1.2} ${height * 2}`\n : textDecorationStyle === 'dotted'\n ? `0 ${height * 2}`\n : undefined\n\n return (\n (clipPathId ? `` : '') +\n buildXMLString('line', {\n x1: left,\n y1: y,\n x2: left + width,\n y2: y,\n stroke: textDecorationColor || color,\n 'stroke-width': height,\n 'stroke-dasharray': dasharray,\n 'stroke-linecap': textDecorationStyle === 'dotted' ? 'round' : 'square',\n transform: matrix,\n }) +\n (clipPathId ? '' : '')\n )\n}\n","export function stringFromCode(code: string): string {\n code = code.replace('U+', '0x')\n\n return String.fromCodePoint(Number(code))\n}\n\nexport const Space = stringFromCode('U+0020')\nexport const Tab = stringFromCode('U+0009')\nexport const HorizontalEllipsis = stringFromCode('U+2026')\n","import { FontEngine } from '../font.js'\nimport { segment } from '../utils.js'\n\nexport function genMeasurer(\n engine: FontEngine,\n isImage: (grapheme: string) => boolean,\n style: {\n fontSize: number\n letterSpacing: number\n }\n): {\n measureGrapheme: (grapheme: string) => number\n measureGraphemeArray: (graphemes: string[]) => number\n measureText: (text: string) => number\n} {\n const { fontSize, letterSpacing } = style\n\n const cache = new Map()\n\n function measureGrapheme(grapheme: string): number {\n if (cache.has(grapheme)) {\n return cache.get(grapheme)\n }\n\n const width = engine.measure(grapheme, { fontSize, letterSpacing })\n cache.set(grapheme, width)\n\n return width\n }\n\n function measureGraphemeArray(graphemes: string[]): number {\n let width = 0\n\n for (const grapheme of graphemes) {\n if (isImage(grapheme)) {\n width += fontSize\n } else {\n width += measureGrapheme(grapheme)\n }\n }\n\n return width\n }\n\n function measureText(text: string): number {\n return measureGraphemeArray(segment(text, 'grapheme'))\n }\n\n return {\n measureGrapheme,\n measureGraphemeArray,\n measureText,\n }\n}\n","import { Locale } from '../language.js'\nimport { isNumber, segment, splitByBreakOpportunities } from '../utils.js'\nimport { HorizontalEllipsis, Space } from './characters.js'\nimport { SerializedStyle } from '../handler/expand.js'\n\nexport function preprocess(\n content: string,\n style: SerializedStyle,\n locale?: Locale\n): {\n words: string[]\n requiredBreaks: boolean[]\n allowSoftWrap: boolean\n allowBreakWord: boolean\n processedContent: string\n shouldCollapseTabsAndSpaces: boolean\n lineLimit: number\n blockEllipsis: string\n} {\n const { textTransform, whiteSpace, wordBreak } = style\n\n content = processTextTransform(content, textTransform, locale)\n\n const {\n content: processedContent,\n shouldCollapseTabsAndSpaces,\n allowSoftWrap,\n } = processWhiteSpace(content, whiteSpace)\n\n const { words, requiredBreaks, allowBreakWord } = processWordBreak(\n processedContent,\n wordBreak\n )\n\n const [lineLimit, blockEllipsis] = processTextOverflow(style, allowSoftWrap)\n\n return {\n words,\n requiredBreaks,\n allowSoftWrap,\n allowBreakWord,\n processedContent,\n shouldCollapseTabsAndSpaces,\n lineLimit,\n blockEllipsis,\n }\n}\n\nfunction processTextTransform(\n content: string,\n textTransform: string,\n locale?: Locale\n): string {\n if (textTransform === 'uppercase') {\n content = content.toLocaleUpperCase(locale)\n } else if (textTransform === 'lowercase') {\n content = content.toLocaleLowerCase(locale)\n } else if (textTransform === 'capitalize') {\n content = segment(content, 'word', locale)\n // For each word...\n .map((word) => {\n // ...split into graphemes...\n return segment(word, 'grapheme', locale)\n .map((grapheme, index) => {\n // ...and make the first grapheme uppercase\n return index === 0 ? grapheme.toLocaleUpperCase(locale) : grapheme\n })\n .join('')\n })\n .join('')\n }\n\n return content\n}\n\nfunction processTextOverflow(\n style: SerializedStyle,\n allowSoftWrap: boolean\n): [number, string?] {\n const {\n textOverflow,\n lineClamp,\n WebkitLineClamp,\n WebkitBoxOrient,\n overflow,\n display,\n } = style\n\n if (display === 'block' && lineClamp) {\n const [lineLimit, blockEllipsis = HorizontalEllipsis] =\n parseLineClamp(lineClamp)\n if (lineLimit) {\n return [lineLimit, blockEllipsis]\n }\n }\n\n if (\n textOverflow === 'ellipsis' &&\n display === '-webkit-box' &&\n WebkitBoxOrient === 'vertical' &&\n isNumber(WebkitLineClamp) &&\n WebkitLineClamp > 0\n ) {\n return [WebkitLineClamp, HorizontalEllipsis]\n }\n\n if (textOverflow === 'ellipsis' && overflow === 'hidden' && !allowSoftWrap) {\n return [1, HorizontalEllipsis]\n }\n\n return [Infinity]\n}\n\nfunction processWordBreak(\n content,\n wordBreak: string\n): { words: string[]; requiredBreaks: boolean[]; allowBreakWord: boolean } {\n const allowBreakWord = ['break-all', 'break-word'].includes(wordBreak)\n\n const { words, requiredBreaks } = splitByBreakOpportunities(\n content,\n wordBreak\n )\n\n return { words, requiredBreaks, allowBreakWord }\n}\n\nfunction processWhiteSpace(\n content: string,\n whiteSpace: string\n): {\n content: string\n shouldCollapseTabsAndSpaces: boolean\n allowSoftWrap: boolean\n} {\n const shouldKeepLinebreak = ['pre', 'pre-wrap', 'pre-line'].includes(\n whiteSpace\n )\n\n const shouldCollapseTabsAndSpaces = ['normal', 'nowrap', 'pre-line'].includes(\n whiteSpace\n )\n\n const allowSoftWrap = !['pre', 'nowrap'].includes(whiteSpace)\n\n if (!shouldKeepLinebreak) {\n content = content.replace(/\\n/g, Space)\n }\n\n if (shouldCollapseTabsAndSpaces) {\n content = content.replace(/([ ]|\\t)+/g, Space).replace(/^[ ]|[ ]$/g, '')\n }\n\n return { content, shouldCollapseTabsAndSpaces, allowSoftWrap }\n}\n\nfunction parseLineClamp(input: number | string): [number?, string?] {\n if (typeof input === 'number') return [input]\n\n const regex1 = /^(\\d+)\\s*\"(.*)\"$/\n const regex2 = /^(\\d+)\\s*'(.*)'$/\n const match1 = regex1.exec(input)\n const match2 = regex2.exec(input)\n\n if (match1) {\n const number = +match1[1]\n const text = match1[2]\n\n return [number, text]\n } else if (match2) {\n const number = +match2[1]\n const text = match2[2]\n\n return [number, text]\n }\n\n return []\n}\n","/**\n * This module calculates the layout of a text string. Currently the only\n * supported inline node is text. All other nodes are using block layout.\n */\nimport type { LayoutContext } from '../layout.js'\nimport type { Yoga } from 'yoga-wasm-web'\nimport getYoga from '../yoga/index.js'\nimport {\n v,\n segment,\n wordSeparators,\n buildXMLString,\n isUndefined,\n isString,\n lengthToNumber,\n} from '../utils.js'\nimport buildText, { container } from '../builder/text.js'\nimport { buildDropShadow } from '../builder/shadow.js'\nimport buildDecoration from '../builder/text-decoration.js'\nimport { Locale } from '../language.js'\nimport { HorizontalEllipsis, Space, Tab } from './characters.js'\nimport { genMeasurer } from './measurer.js'\nimport { preprocess } from './processor.js'\n\nconst skippedWordWhenFindingMissingFont = new Set([Tab])\n\nfunction shouldSkipWhenFindingMissingFont(word: string): boolean {\n return skippedWordWhenFindingMissingFont.has(word)\n}\n\nexport default async function* buildTextNodes(\n content: string,\n context: LayoutContext\n): AsyncGenerator<{ word: string; locale?: Locale }[], string, [any, any]> {\n const Yoga = await getYoga()\n\n const {\n parentStyle,\n inheritedStyle,\n parent,\n font,\n id,\n isInheritingTransform,\n debug,\n embedFont,\n graphemeImages,\n locale,\n canLoadAdditionalAssets,\n } = context\n\n const {\n textAlign,\n lineHeight,\n textWrap,\n fontSize,\n filter: cssFilter,\n tabSize = 8,\n letterSpacing,\n _inheritedBackgroundClipTextPath,\n flexShrink,\n } = parentStyle\n\n const {\n words,\n requiredBreaks,\n allowSoftWrap,\n allowBreakWord,\n processedContent,\n shouldCollapseTabsAndSpaces,\n lineLimit,\n blockEllipsis,\n } = preprocess(content, parentStyle, locale)\n\n const textContainer = createTextContainerNode(Yoga, textAlign)\n parent.insertChild(textContainer, parent.getChildCount())\n\n if (isUndefined(flexShrink)) {\n parent.setFlexShrink(1)\n }\n\n // Get the correct font according to the container style.\n // https://www.w3.org/TR/CSS2/visudet.html\n let engine = font.getEngine(fontSize, lineHeight, parentStyle, locale)\n\n // Yield segments that are missing a font.\n const wordsMissingFont = canLoadAdditionalAssets\n ? segment(processedContent, 'grapheme').filter(\n (word) => !shouldSkipWhenFindingMissingFont(word) && !engine.has(word)\n )\n : []\n\n yield wordsMissingFont.map((word) => {\n return {\n word,\n locale,\n }\n })\n\n if (wordsMissingFont.length) {\n // Reload the engine with additional fonts.\n engine = font.getEngine(fontSize, lineHeight, parentStyle, locale)\n }\n\n function isImage(s: string): boolean {\n return !!(graphemeImages && graphemeImages[s])\n }\n\n const { measureGrapheme, measureGraphemeArray, measureText } = genMeasurer(\n engine,\n isImage,\n {\n fontSize,\n letterSpacing,\n }\n )\n\n const tabWidth = isString(tabSize)\n ? lengthToNumber(tabSize, fontSize, 1, parentStyle)\n : measureGrapheme(Space) * tabSize\n\n const calc = (\n text: string,\n currentWidth: number\n ): {\n originWidth: number\n endingSpacesWidth: number\n text: string\n } => {\n if (text.length === 0) {\n return {\n originWidth: 0,\n endingSpacesWidth: 0,\n text,\n }\n }\n\n const { index, tabCount } = detectTabs(text)\n\n let originWidth = 0\n\n if (tabCount > 0) {\n const textBeforeTab = text.slice(0, index)\n const textAfterTab = text.slice(index + tabCount)\n const textWidthBeforeTab = measureText(textBeforeTab)\n const offsetBeforeTab = textWidthBeforeTab + currentWidth\n const tabMoveDistance =\n tabWidth === 0\n ? textWidthBeforeTab\n : (Math.floor(offsetBeforeTab / tabWidth) + tabCount) * tabWidth\n originWidth = tabMoveDistance + measureText(textAfterTab)\n } else {\n originWidth = measureText(text)\n }\n\n const afterTrimEndWidth =\n text.trimEnd() === text ? originWidth : measureText(text.trimEnd())\n\n return {\n originWidth,\n endingSpacesWidth: originWidth - afterTrimEndWidth,\n text,\n }\n }\n\n // Global variables used to compute the text layout.\n // @TODO: Use segments instead of words to properly support kerning.\n let lineWidths = []\n let baselines = []\n let lineSegmentNumber = []\n let texts: string[] = []\n let wordPositionInLayout: (null | {\n x: number\n y: number\n width: number\n line: number\n lineIndex: number\n isImage: boolean\n })[] = []\n\n // With the given container width, compute the text layout.\n function flow(width: number) {\n let lines = 0\n let maxWidth = 0\n let lineIndex = -1\n let height = 0\n let currentWidth = 0\n let currentLineHeight = 0\n let currentBaselineOffset = 0\n\n lineWidths = []\n lineSegmentNumber = [0]\n texts = []\n wordPositionInLayout = []\n\n // We naively implement the width calculation without proper kerning.\n // @TODO: Support different writing modes.\n // @TODO: Support RTL languages.\n let i = 0\n let prevLineEndingSpacesWidth = 0\n while (i < words.length && lines < lineLimit) {\n let word = words[i]\n const forceBreak = requiredBreaks[i]\n\n let w = 0\n\n const {\n originWidth,\n endingSpacesWidth,\n text: _word,\n } = calc(word, currentWidth)\n word = _word\n\n w = originWidth\n const lineEndingSpacesWidth = endingSpacesWidth\n\n // When starting a new line from an empty line, we should push one extra\n // line height.\n if (forceBreak && currentLineHeight === 0) {\n currentLineHeight = engine.height(word)\n }\n\n const allowedToPutAtBeginning = ',.!?:-@)>]}%#'.indexOf(word[0]) < 0\n const allowedToJustify = !currentWidth\n\n const willWrap =\n i &&\n allowedToPutAtBeginning &&\n // When determining whether a line break is necessary, the width of the\n // trailing spaces is not included in the calculation, as the end boundary\n // can be closely adjacent to the last non-space character.\n // e.g.\n // 'aaa bbb ccc'\n // When the break line happens at the end of the `bbb`, what we see looks like this\n // |aaa bbb|\n // |ccc |\n currentWidth + w > width + lineEndingSpacesWidth &&\n allowSoftWrap\n\n // Need to break the word if:\n // - we have break-word\n // - the word is wider than the container width\n // - the word will be put at the beginning of the line\n const needToBreakWord =\n allowBreakWord && w > width && (!currentWidth || willWrap || forceBreak)\n\n if (needToBreakWord) {\n // Break the word into multiple segments and continue the loop.\n const chars = segment(word, 'grapheme')\n words.splice(i, 1, ...chars)\n if (currentWidth > 0) {\n // Start a new line, spaces can be ignored.\n lineWidths.push(currentWidth - prevLineEndingSpacesWidth)\n baselines.push(currentBaselineOffset)\n lines++\n height += currentLineHeight\n currentWidth = 0\n currentLineHeight = 0\n currentBaselineOffset = 0\n lineSegmentNumber.push(1)\n lineIndex = -1\n }\n prevLineEndingSpacesWidth = lineEndingSpacesWidth\n continue\n }\n if (forceBreak || willWrap) {\n // Start a new line, spaces can be ignored.\n if (shouldCollapseTabsAndSpaces && word === Space) {\n w = 0\n }\n\n lineWidths.push(currentWidth - prevLineEndingSpacesWidth)\n baselines.push(currentBaselineOffset)\n lines++\n height += currentLineHeight\n currentWidth = w\n currentLineHeight = w ? engine.height(word) : 0\n currentBaselineOffset = w ? engine.baseline(word) : 0\n lineSegmentNumber.push(1)\n lineIndex = -1\n\n // If it's naturally broken, we update the max width.\n // Since if there are multiple lines, the width should fit the\n // container.\n if (!forceBreak) {\n maxWidth = Math.max(maxWidth, width)\n }\n } else {\n // It fits into the current line.\n currentWidth += w\n const glyphHeight = engine.height(word)\n if (glyphHeight > currentLineHeight) {\n // Use the baseline of the highest segment as the baseline of the line.\n currentLineHeight = glyphHeight\n currentBaselineOffset = engine.baseline(word)\n }\n if (allowedToJustify) {\n lineSegmentNumber[lineSegmentNumber.length - 1]++\n }\n }\n\n if (allowedToJustify) {\n lineIndex++\n }\n\n maxWidth = Math.max(maxWidth, currentWidth)\n\n let x = currentWidth - w\n\n if (w === 0) {\n wordPositionInLayout.push({\n y: height,\n x,\n width: 0,\n line: lines,\n lineIndex,\n isImage: false,\n })\n } else {\n const _texts = segment(word, 'word')\n\n for (let j = 0; j < _texts.length; j++) {\n const _text = _texts[j]\n let _width = 0\n let _isImage = false\n\n if (isImage(_text)) {\n _width = fontSize\n _isImage = true\n } else {\n _width = measureGrapheme(_text)\n }\n\n texts.push(_text)\n wordPositionInLayout.push({\n y: height,\n x,\n width: _width,\n line: lines,\n lineIndex,\n isImage: _isImage,\n })\n\n x += _width\n }\n }\n\n i++\n prevLineEndingSpacesWidth = lineEndingSpacesWidth\n }\n\n if (currentWidth) {\n if (lines < lineLimit) {\n height += currentLineHeight\n }\n lines++\n lineWidths.push(currentWidth)\n baselines.push(currentBaselineOffset)\n }\n\n // @TODO: Support `line-height`.\n return { width: maxWidth, height }\n }\n\n // It's possible that the text's measured size is different from the container's\n // size, because the container might have a fixed width or height or being\n // expanded by its parent.\n let measuredTextSize = { width: 0, height: 0 }\n textContainer.setMeasureFunc((containerWidth) => {\n const { width, height } = flow(containerWidth)\n\n // When doing `text-wrap: balance`, we reflow the text multiple times\n // using binary search to find the best width.\n // https://www.w3.org/TR/css-text-4/#valdef-text-wrap-balance\n if (textWrap === 'balance') {\n let l = width / 2\n let r = width\n let m: number = width\n while (l + 1 < r) {\n m = (l + r) / 2\n const { height: mHeight } = flow(m)\n if (mHeight > height) {\n l = m\n } else {\n r = m\n }\n }\n flow(r)\n const _width = Math.ceil(r)\n measuredTextSize = { width: _width, height }\n return { width: _width, height }\n }\n const _width = Math.ceil(width)\n measuredTextSize = { width: _width, height }\n // This may be a temporary fix, I didn't dig deep into yoga.\n // But when the return value of width here doesn't change (assuming the value of width is 216.9),\n // when we later get the width through `parent.getComputedWidth()`, sometimes it returns 216 and sometimes 217.\n // I'm not sure if this is a yoga bug, but it seems related to the entire page width.\n // So I use Math.ceil.\n return { width: _width, height }\n })\n\n const [x, y] = yield\n\n let result = ''\n let backgroundClipDef = ''\n\n const clipPathId = inheritedStyle._inheritedClipPathId as string | undefined\n const overflowMaskId = inheritedStyle._inheritedMaskId as number | undefined\n\n const {\n left: containerLeft,\n top: containerTop,\n width: containerWidth,\n height: containerHeight,\n } = textContainer.getComputedLayout()\n\n const parentContainerInnerWidth =\n parent.getComputedWidth() -\n parent.getComputedPadding(Yoga.EDGE_LEFT) -\n parent.getComputedPadding(Yoga.EDGE_RIGHT) -\n parent.getComputedBorder(Yoga.EDGE_LEFT) -\n parent.getComputedBorder(Yoga.EDGE_RIGHT)\n\n // Attach offset to the current node.\n const left = x + containerLeft\n const top = y + containerTop\n\n const { matrix, opacity } = container(\n {\n left: containerLeft,\n top: containerTop,\n width: containerWidth,\n height: containerHeight,\n isInheritingTransform,\n },\n parentStyle\n )\n\n let filter = ''\n if (parentStyle.textShadowOffset) {\n const { textShadowColor, textShadowOffset, textShadowRadius } = parentStyle\n\n filter = buildDropShadow(\n {\n width: measuredTextSize.width,\n height: measuredTextSize.height,\n id,\n },\n {\n shadowColor: textShadowColor,\n shadowOffset: textShadowOffset,\n shadowRadius: textShadowRadius,\n }\n )\n\n filter = buildXMLString('defs', {}, filter)\n }\n\n let decorationShape = ''\n let mergedPath = ''\n let extra = ''\n let skippedLine = -1\n let decorationLines: Record = {}\n let wordBuffer: string | null = null\n let bufferedOffset = 0\n\n for (let i = 0; i < texts.length; i++) {\n // Skip whitespace and empty characters.\n const layout = wordPositionInLayout[i]\n const nextLayout = wordPositionInLayout[i + 1]\n\n if (!layout) continue\n\n let text = texts[i]\n let path: string | null = null\n let isLastDisplayedBeforeEllipsis = false\n\n const image = graphemeImages ? graphemeImages[text] : null\n\n let topOffset = layout.y\n let leftOffset = layout.x\n const width = layout.width\n const line = layout.line\n\n if (line === skippedLine) {\n continue\n }\n\n // When `text-align` is `justify`, the width of the line will be adjusted.\n let extendedWidth = false\n\n if (lineWidths.length > 1) {\n // Calculate alignment. Note that for Flexbox, there is only text\n // alignment when the container is multi-line.\n const remainingWidth = containerWidth - lineWidths[line]\n if (textAlign === 'right' || textAlign === 'end') {\n leftOffset += remainingWidth\n } else if (textAlign === 'center') {\n leftOffset += remainingWidth / 2\n } else if (textAlign === 'justify') {\n // Don't justify the last line.\n if (line < lineWidths.length - 1) {\n const segments = lineSegmentNumber[line]\n const gutter = segments > 1 ? remainingWidth / (segments - 1) : 0\n leftOffset += gutter * layout.lineIndex\n extendedWidth = true\n }\n }\n }\n\n const baselineOfLine = baselines[line]\n const baselineOfWord = engine.baseline(text)\n const heightOfWord = engine.height(text)\n const baselineDelta = baselineOfLine - baselineOfWord\n\n if (!decorationLines[line]) {\n decorationLines[line] = [\n leftOffset,\n top + topOffset + baselineDelta,\n baselineOfWord,\n extendedWidth ? containerWidth : lineWidths[line],\n ]\n }\n\n if (lineLimit !== Infinity) {\n let _blockEllipsis = blockEllipsis\n let ellipsisWidth = measureGrapheme(blockEllipsis)\n if (ellipsisWidth > parentContainerInnerWidth) {\n _blockEllipsis = HorizontalEllipsis\n ellipsisWidth = measureGrapheme(_blockEllipsis)\n }\n const spaceWidth = measureGrapheme(Space)\n const isNotLastLine = line < lineWidths.length - 1\n const isLastAllowedLine = line + 1 === lineLimit\n\n function calcEllipsis(baseWidth: number, _text: string) {\n const chars = segment(_text, 'grapheme', locale)\n\n let subset = ''\n let resolvedWidth = 0\n\n for (const char of chars) {\n const w = baseWidth + measureGraphemeArray([subset + char])\n if (\n // Keep at least one character:\n // > The first character or atomic inline-level element on a line\n // must be clipped rather than ellipsed.\n // https://drafts.csswg.org/css-overflow/#text-overflow\n subset &&\n w + ellipsisWidth > parentContainerInnerWidth\n ) {\n break\n }\n subset += char\n resolvedWidth = w\n }\n\n return {\n subset,\n resolvedWidth,\n }\n }\n\n if (\n isLastAllowedLine &&\n (isNotLastLine || lineWidths[line] > parentContainerInnerWidth)\n ) {\n if (\n leftOffset + width + ellipsisWidth + spaceWidth >\n parentContainerInnerWidth\n ) {\n const { subset, resolvedWidth } = calcEllipsis(leftOffset, text)\n\n text = subset + _blockEllipsis\n skippedLine = line\n decorationLines[line][2] = resolvedWidth\n isLastDisplayedBeforeEllipsis = true\n } else if (nextLayout && nextLayout.line !== line) {\n if (textAlign === 'center') {\n const { subset, resolvedWidth } = calcEllipsis(leftOffset, text)\n\n text = subset + _blockEllipsis\n skippedLine = line\n decorationLines[line][2] = resolvedWidth\n isLastDisplayedBeforeEllipsis = true\n } else {\n const nextLineText = texts[i + 1]\n\n const { subset, resolvedWidth } = calcEllipsis(\n width + leftOffset,\n nextLineText\n )\n\n text = text + subset + _blockEllipsis\n skippedLine = line\n decorationLines[line][2] = resolvedWidth\n isLastDisplayedBeforeEllipsis = true\n }\n }\n }\n }\n\n if (image) {\n // For images, we remove the baseline offset.\n topOffset += 0\n } else if (embedFont) {\n // If the current word and the next word are on the same line, we try to\n // merge them together to better handle the kerning.\n if (\n !text.includes(Tab) &&\n !wordSeparators.includes(text) &&\n texts[i + 1] &&\n nextLayout &&\n !nextLayout.isImage &&\n topOffset === nextLayout.y &&\n !isLastDisplayedBeforeEllipsis\n ) {\n if (wordBuffer === null) {\n bufferedOffset = leftOffset\n }\n wordBuffer = wordBuffer === null ? text : wordBuffer + text\n continue\n }\n\n const finalizedSegment = wordBuffer === null ? text : wordBuffer + text\n const finalizedLeftOffset =\n wordBuffer === null ? leftOffset : bufferedOffset\n const finalizedWidth = layout.width + leftOffset - finalizedLeftOffset\n\n path = engine.getSVG(finalizedSegment.replace(/(\\t)+/g, ''), {\n fontSize,\n left: left + finalizedLeftOffset,\n // Since we need to pass the baseline position, add the ascender to the top.\n top: top + topOffset + baselineOfWord + baselineDelta,\n letterSpacing,\n })\n\n wordBuffer = null\n\n if (debug) {\n extra +=\n // Glyph\n buildXMLString('rect', {\n x: left + finalizedLeftOffset,\n y: top + topOffset + baselineDelta,\n width: finalizedWidth,\n height: heightOfWord,\n fill: 'transparent',\n stroke: '#575eff',\n 'stroke-width': 1,\n transform: matrix ? matrix : undefined,\n 'clip-path': clipPathId ? `url(#${clipPathId})` : undefined,\n }) +\n // Baseline\n buildXMLString('line', {\n x1: left + leftOffset,\n x2: left + leftOffset + layout.width,\n y1: top + topOffset + baselineDelta + baselineOfWord,\n y2: top + topOffset + baselineDelta + baselineOfWord,\n stroke: '#14c000',\n 'stroke-width': 1,\n transform: matrix ? matrix : undefined,\n 'clip-path': clipPathId ? `url(#${clipPathId})` : undefined,\n })\n }\n } else {\n // We need manually add the font ascender height to ensure it starts\n // at the baseline because 's alignment baseline is set to `hanging`\n // by default and supported to change in SVG 1.1.\n topOffset += baselineOfWord + baselineDelta\n }\n\n // Get the decoration shape.\n if (parentStyle.textDecorationLine) {\n const deco = decorationLines[line]\n if (deco && !deco[4]) {\n decorationShape += buildDecoration(\n {\n left: left + deco[0],\n top: deco[1],\n width: deco[3],\n ascender: deco[2],\n clipPathId,\n matrix,\n },\n parentStyle\n )\n deco[4] = 1\n }\n }\n\n if (path !== null) {\n mergedPath += path + ' '\n } else {\n const [t, shape] = buildText(\n {\n content: text,\n filter,\n id,\n left: left + leftOffset,\n top: top + topOffset,\n width,\n height: heightOfWord,\n matrix,\n opacity,\n image,\n clipPathId,\n debug,\n shape: !!_inheritedBackgroundClipTextPath,\n decorationShape,\n },\n parentStyle\n )\n result += t\n backgroundClipDef += shape\n decorationShape = ''\n }\n\n if (isLastDisplayedBeforeEllipsis) {\n break\n }\n }\n\n // Embed the font as path.\n if (mergedPath) {\n const p =\n parentStyle.color !== 'transparent' && opacity !== 0\n ? buildXMLString('path', {\n fill: parentStyle.color,\n d: mergedPath,\n transform: matrix ? matrix : undefined,\n opacity: opacity !== 1 ? opacity : undefined,\n 'clip-path': clipPathId ? `url(#${clipPathId})` : undefined,\n mask: overflowMaskId ? `url(#${overflowMaskId})` : undefined,\n\n style: cssFilter ? `filter:${cssFilter}` : undefined,\n 'stroke-width': inheritedStyle.WebkitTextStrokeWidth\n ? `${inheritedStyle.WebkitTextStrokeWidth}px`\n : undefined,\n stroke: inheritedStyle.WebkitTextStrokeWidth\n ? inheritedStyle.WebkitTextStrokeColor\n : undefined,\n 'stroke-linejoin': inheritedStyle.WebkitTextStrokeWidth\n ? 'round'\n : undefined,\n 'paint-order': inheritedStyle.WebkitTextStrokeWidth\n ? 'stroke'\n : undefined,\n })\n : ''\n\n if (_inheritedBackgroundClipTextPath) {\n backgroundClipDef = buildXMLString('path', {\n d: mergedPath,\n transform: matrix ? matrix : undefined,\n })\n }\n\n result +=\n (filter\n ? filter +\n buildXMLString(\n 'g',\n { filter: `url(#satori_s-${id})` },\n p + decorationShape\n )\n : p + decorationShape) + extra\n }\n\n // Attach information to the parent node.\n if (backgroundClipDef) {\n ;(parentStyle._inheritedBackgroundClipTextPath as any).value +=\n backgroundClipDef\n }\n\n return result\n}\n\nfunction createTextContainerNode(\n Yoga: Yoga,\n textAlign: string\n): ReturnType {\n // Create a container node for this text fragment.\n const textContainer = Yoga.Node.create()\n textContainer.setAlignItems(Yoga.ALIGN_BASELINE)\n textContainer.setJustifyContent(\n v(\n textAlign,\n {\n left: Yoga.JUSTIFY_FLEX_START,\n right: Yoga.JUSTIFY_FLEX_END,\n center: Yoga.JUSTIFY_CENTER,\n justify: Yoga.JUSTIFY_SPACE_BETWEEN,\n // We don't have other writing modes yet.\n start: Yoga.JUSTIFY_FLEX_START,\n end: Yoga.JUSTIFY_FLEX_END,\n },\n Yoga.JUSTIFY_FLEX_START,\n 'textAlign'\n )\n )\n\n return textContainer\n}\n\nfunction detectTabs(text: string):\n | {\n index: null\n tabCount: 0\n }\n | {\n index: number\n tabCount: number\n } {\n const result = /(\\t)+/.exec(text)\n return result\n ? {\n index: result.index,\n tabCount: result[0].length,\n }\n : {\n index: null,\n tabCount: 0,\n }\n}\n","import { lengthToNumber } from '../../utils.js'\nimport cssColorParse from 'parse-css-color'\nimport type { ColorStop } from 'css-gradient-parser'\n\ninterface Stop {\n color: string\n offset?: number\n}\n\nexport function normalizeStops(\n totalLength: number,\n colorStops: ColorStop[],\n inheritedStyle: Record,\n repeating: boolean,\n from?: 'background' | 'mask'\n) {\n // Resolve the color stops based on the spec:\n // https://drafts.csswg.org/css-images/#color-stop-syntax\n const stops: Stop[] = []\n for (const stop of colorStops) {\n const { color } = stop\n if (!stops.length) {\n // First stop, ensure it's at the start.\n stops.push({\n offset: 0,\n color,\n })\n\n if (!stop.offset) continue\n if (stop.offset.value === '0') continue\n }\n\n // All offsets are relative values (0-1) in SVG.\n const offset =\n typeof stop.offset === 'undefined'\n ? undefined\n : stop.offset.unit === '%'\n ? +stop.offset.value / 100\n : Number(\n lengthToNumber(\n `${stop.offset.value}${stop.offset.unit}`,\n inheritedStyle.fontSize as number,\n totalLength,\n inheritedStyle,\n true\n )\n ) / totalLength\n\n stops.push({\n offset,\n color,\n })\n }\n if (!stops.length) {\n stops.push({\n offset: 0,\n color: 'transparent',\n })\n }\n // Last stop, ensure it's at the end.\n const lastStop = stops[stops.length - 1]\n if (lastStop.offset !== 1) {\n if (typeof lastStop.offset === 'undefined') {\n lastStop.offset = 1\n } else if (repeating) {\n stops[stops.length - 1] = {\n offset: 1,\n color: lastStop.color,\n }\n } else {\n stops.push({\n offset: 1,\n color: lastStop.color,\n })\n }\n }\n\n let previousStop = 0\n let nextStop = 1\n // Evenly distribute the missing stop offsets.\n for (let i = 0; i < stops.length; i++) {\n if (typeof stops[i].offset === 'undefined') {\n // Find the next stop that has an offset.\n if (nextStop < i) nextStop = i\n while (typeof stops[nextStop].offset === 'undefined') nextStop++\n\n stops[i].offset =\n ((stops[nextStop].offset - stops[previousStop].offset) /\n (nextStop - previousStop)) *\n (i - previousStop) +\n stops[previousStop].offset\n } else {\n previousStop = i\n }\n }\n\n if (from === 'mask') {\n return stops.map((stop) => {\n const color = cssColorParse(stop.color)\n if (!color) return stop\n if (color.alpha === 0) {\n return { ...stop, color: `rgba(0, 0, 0, 1)` }\n } else {\n return { ...stop, color: `rgba(255, 255, 255, ${color.alpha})` }\n }\n })\n }\n\n return stops\n}\n","import { parseLinearGradient, ColorStop } from 'css-gradient-parser'\nimport { normalizeStops } from './utils.js'\nimport { buildXMLString, calcDegree, lengthToNumber } from '../../utils.js'\n\nexport function buildLinearGradient(\n {\n id,\n width,\n height,\n repeatX,\n repeatY,\n }: {\n id: string\n width: number\n height: number\n repeatX: boolean\n repeatY: boolean\n },\n image: string,\n dimensions: number[],\n offsets: number[],\n inheritableStyle: Record,\n from?: 'background' | 'mask'\n) {\n const parsed = parseLinearGradient(image)\n const [imageWidth, imageHeight] = dimensions\n const repeating = image.startsWith('repeating')\n\n // Calculate the direction.\n let points, length, xys\n\n if (parsed.orientation.type === 'directional') {\n points = resolveXYFromDirection(parsed.orientation.value)\n\n length = Math.sqrt(\n Math.pow((points.x2 - points.x1) * imageWidth, 2) +\n Math.pow((points.y2 - points.y1) * imageHeight, 2)\n )\n } else if (parsed.orientation.type === 'angular') {\n const { length: l, ...p } = calcNormalPoint(\n (calcDegree(\n `${parsed.orientation.value.value}${parsed.orientation.value.unit}`\n ) /\n 180) *\n Math.PI,\n imageWidth,\n imageHeight\n )\n\n length = l\n points = p\n }\n\n xys = repeating\n ? calcPercentage(parsed.stops, length, points, inheritableStyle)\n : points\n\n const stops = normalizeStops(\n repeating ? resolveRepeatingCycle(parsed.stops, length) : length,\n parsed.stops,\n inheritableStyle,\n repeating,\n from\n )\n\n const gradientId = `satori_bi${id}`\n const patternId = `satori_pattern_${id}`\n\n const defs = buildXMLString(\n 'pattern',\n {\n id: patternId,\n x: offsets[0] / width,\n y: offsets[1] / height,\n width: repeatX ? imageWidth / width : '1',\n height: repeatY ? imageHeight / height : '1',\n patternUnits: 'objectBoundingBox',\n },\n buildXMLString(\n 'linearGradient',\n {\n id: gradientId,\n ...xys,\n spreadMethod: repeating ? 'repeat' : 'pad',\n },\n stops\n .map((stop) =>\n buildXMLString('stop', {\n offset: (stop.offset ?? 0) * 100 + '%',\n 'stop-color': stop.color,\n })\n )\n .join('')\n ) +\n buildXMLString('rect', {\n x: 0,\n y: 0,\n width: imageWidth,\n height: imageHeight,\n fill: `url(#${gradientId})`,\n })\n )\n return [patternId, defs]\n}\n\nfunction resolveRepeatingCycle(stops: ColorStop[], length: number) {\n const last = stops[stops.length - 1]\n const { offset } = last\n if (!offset) return length\n\n if (offset.unit === '%') return (Number(offset.value) / 100) * length\n\n return Number(offset.value)\n}\n\nfunction resolveXYFromDirection(dir: string) {\n let x1 = 0,\n y1 = 0,\n x2 = 0,\n y2 = 0\n\n if (dir.includes('top')) {\n y1 = 1\n } else if (dir.includes('bottom')) {\n y2 = 1\n }\n\n if (dir.includes('left')) {\n x1 = 1\n } else if (dir.includes('right')) {\n x2 = 1\n }\n\n if (!x1 && !x2 && !y1 && !y2) {\n y1 = 1\n }\n\n return { x1, y1, x2, y2 }\n}\n\n/**\n * calc start point and end point of linear gradient\n */\nfunction calcNormalPoint(v: number, w: number, h: number) {\n const r = Math.pow(h / w, 2)\n\n // make sure angle is 0 <= angle <= 360\n v = ((v % (Math.PI * 2)) + Math.PI * 2) % (Math.PI * 2)\n\n let x1, y1, x2, y2, length, tmp, a, b\n\n const dfs = (angle: number) => {\n if (angle === 0) {\n x1 = 0\n y1 = h\n x2 = 0\n y2 = 0\n length = h\n return\n } else if (angle === Math.PI / 2) {\n x1 = 0\n y1 = 0\n x2 = w\n y2 = 0\n length = w\n return\n }\n if (angle > 0 && angle < Math.PI / 2) {\n x1 =\n ((r * w) / 2 / Math.tan(angle) - h / 2) /\n (Math.tan(angle) + r / Math.tan(angle))\n y1 = Math.tan(angle) * x1 + h\n x2 = Math.abs(w / 2 - x1) + w / 2\n y2 = h / 2 - Math.abs(y1 - h / 2)\n length = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2))\n // y = -1 / tan * x = h / 2 +1 / tan * w/2\n // y = tan * x + h\n a =\n (w / 2 / Math.tan(angle) - h / 2) /\n (Math.tan(angle) + 1 / Math.tan(angle))\n b = Math.tan(angle) * a + h\n length = 2 * Math.sqrt(Math.pow(w / 2 - a, 2) + Math.pow(h / 2 - b, 2))\n return\n } else if (angle > Math.PI / 2 && angle < Math.PI) {\n x1 =\n (h / 2 + (r * w) / 2 / Math.tan(angle)) /\n (Math.tan(angle) + r / Math.tan(angle))\n y1 = Math.tan(angle) * x1\n x2 = Math.abs(w / 2 - x1) + w / 2\n y2 = h / 2 + Math.abs(y1 - h / 2)\n // y = -1 / tan * x + h / 2 + 1 / tan * w / 2\n // y = tan * x\n a =\n (w / 2 / Math.tan(angle) + h / 2) /\n (Math.tan(angle) + 1 / Math.tan(angle))\n b = Math.tan(angle) * a\n length = 2 * Math.sqrt(Math.pow(w / 2 - a, 2) + Math.pow(h / 2 - b, 2))\n return\n } else if (angle >= Math.PI) {\n dfs(angle - Math.PI)\n\n tmp = x1\n x1 = x2\n x2 = tmp\n tmp = y1\n y1 = y2\n y2 = tmp\n }\n }\n\n dfs(v)\n\n return {\n x1: x1 / w,\n y1: y1 / h,\n x2: x2 / w,\n y2: y2 / h,\n length,\n }\n}\n\nfunction calcPercentage(\n stops: ColorStop[],\n length: number,\n points: {\n x1: number\n y1: number\n x2: number\n y2: number\n },\n inheritableStyle: Record\n) {\n const { x1, x2, y1, y2 } = points\n const p1 = !stops[0].offset\n ? 0\n : stops[0].offset.unit === '%'\n ? Number(stops[0].offset.value) / 100\n : lengthToNumber(\n `${stops[0].offset.value}${stops[0].offset.unit}`,\n inheritableStyle.fontSize as number,\n length,\n inheritableStyle,\n true\n ) / length\n const p2 = !stops.at(-1).offset\n ? 1\n : stops.at(-1).offset.unit === '%'\n ? Number(stops.at(-1).offset.value) / 100\n : lengthToNumber(\n `${stops.at(-1).offset.value}${stops.at(-1).offset.unit}`,\n inheritableStyle.fontSize as number,\n length,\n inheritableStyle,\n true\n ) / length\n\n const sx = (x2 - x1) * p1 + x1\n const sy = (y2 - y1) * p1 + y1\n const ex = (x2 - x1) * p2 + x1\n const ey = (y2 - y1) * p2 + y1\n\n return {\n x1: sx,\n y1: sy,\n x2: ex,\n y2: ey,\n }\n}\n","import {\n parseRadialGradient,\n RadialResult,\n RadialPropertyValue,\n} from 'css-gradient-parser'\nimport { buildXMLString, lengthToNumber } from '../../utils.js'\nimport { normalizeStops } from './utils.js'\n\nexport function buildRadialGradient(\n {\n id,\n width,\n height,\n repeatX,\n repeatY,\n }: {\n id: string\n width: number\n height: number\n repeatX: boolean\n repeatY: boolean\n },\n image: string,\n dimensions: number[],\n offsets: number[],\n inheritableStyle: Record,\n from?: 'background' | 'mask'\n) {\n const {\n shape,\n stops: colorStops,\n position,\n size,\n } = parseRadialGradient(image)\n const [xDelta, yDelta] = dimensions\n\n let cx: number = xDelta / 2\n let cy: number = yDelta / 2\n\n const pos = calcRadialGradient(\n position.x,\n position.y,\n xDelta,\n yDelta,\n inheritableStyle.fontSize as number,\n inheritableStyle\n )\n cx = pos.x\n cy = pos.y\n\n const stops = normalizeStops(width, colorStops, inheritableStyle, false, from)\n\n const gradientId = `satori_radial_${id}`\n const patternId = `satori_pattern_${id}`\n const maskId = `satori_mask_${id}`\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/gradient/radial-gradient()#values\n const spread = calcRadius(\n shape as Shape,\n size,\n inheritableStyle.fontSize as number,\n { x: cx, y: cy },\n [xDelta, yDelta],\n inheritableStyle\n )\n\n // TODO: check for repeat-x/repeat-y\n const defs = buildXMLString(\n 'pattern',\n {\n id: patternId,\n x: offsets[0] / width,\n y: offsets[1] / height,\n width: repeatX ? xDelta / width : '1',\n height: repeatY ? yDelta / height : '1',\n patternUnits: 'objectBoundingBox',\n },\n buildXMLString(\n 'radialGradient',\n {\n id: gradientId,\n },\n stops\n .map((stop) =>\n buildXMLString('stop', {\n offset: stop.offset || 0,\n 'stop-color': stop.color,\n })\n )\n .join('')\n ) +\n buildXMLString(\n 'mask',\n {\n id: maskId,\n },\n buildXMLString('rect', {\n x: 0,\n y: 0,\n width: xDelta,\n height: yDelta,\n fill: '#fff',\n })\n ) +\n buildXMLString('rect', {\n x: 0,\n y: 0,\n width: xDelta,\n height: yDelta,\n fill: stops.at(-1)?.color || 'transparent',\n }) +\n buildXMLString(shape, {\n cx: cx,\n cy: cy,\n width: xDelta,\n height: yDelta,\n ...spread,\n fill: `url(#${gradientId})`,\n mask: `url(#${maskId})`,\n })\n )\n\n const result = [patternId, defs]\n return result\n}\n\ninterface Position {\n type: 'keyword' | 'length'\n value: string\n}\n\ntype PositionKeyWord = 'center' | 'left' | 'right' | 'top' | 'bottom'\n\nfunction calcRadialGradient(\n cx: RadialPropertyValue,\n cy: RadialPropertyValue,\n xDelta: number,\n yDelta: number,\n baseFontSize: number,\n style: Record\n) {\n const pos: { x: number; y: number } = { x: xDelta / 2, y: yDelta / 2 }\n if (cx.type === 'keyword') {\n Object.assign(\n pos,\n calcPos(cx.value as PositionKeyWord, xDelta, yDelta, 'x')\n )\n } else {\n pos.x =\n lengthToNumber(\n `${cx.value.value}${cx.value.unit}`,\n baseFontSize,\n xDelta,\n style,\n true\n ) || xDelta / 2\n }\n\n if (cy.type === 'keyword') {\n Object.assign(\n pos,\n calcPos(cy.value as PositionKeyWord, xDelta, yDelta, 'y')\n )\n } else {\n pos.y =\n lengthToNumber(\n `${cy.value.value}${cy.value.unit}`,\n baseFontSize,\n yDelta,\n style,\n true\n ) || yDelta / 2\n }\n\n return pos\n}\n\nfunction calcPos(\n key: PositionKeyWord,\n xDelta: number,\n yDelta: number,\n dir: 'x' | 'y'\n) {\n switch (key) {\n case 'center':\n return { [dir]: dir === 'x' ? xDelta / 2 : yDelta / 2 }\n case 'left':\n return { x: 0 }\n case 'top':\n return { y: 0 }\n case 'right':\n return { x: xDelta }\n case 'bottom':\n return { y: yDelta }\n }\n}\n\ntype Shape = 'circle' | 'ellipse'\nfunction calcRadius(\n shape: Shape,\n endingShape: RadialResult['size'],\n baseFontSize: number,\n centerAxis: { x: number; y: number },\n length: [number, number],\n inheritableStyle: Record\n) {\n const [xDelta, yDelta] = length\n const { x: cx, y: cy } = centerAxis\n const spread: Record = {}\n let fx = 0\n let fy = 0\n\n if (isSizeAllLength(endingShape)) {\n if (endingShape.some((v) => v.value.value.startsWith('-'))) {\n throw new Error(\n 'disallow setting negative values to the size of the shape. Check https://w3c.github.io/csswg-drafts/css-images/#valdef-rg-size-length-0'\n )\n }\n if (shape === 'circle') {\n return {\n r: Number(\n lengthToNumber(\n `${endingShape[0].value.value}${endingShape[0].value.unit}`,\n baseFontSize,\n xDelta,\n inheritableStyle,\n true\n )\n ),\n }\n } else {\n return {\n rx: Number(\n lengthToNumber(\n `${endingShape[0].value.value}${endingShape[0].value.unit}`,\n baseFontSize,\n xDelta,\n inheritableStyle,\n true\n )\n ),\n ry: Number(\n lengthToNumber(\n `${endingShape[1].value.value}${endingShape[1].value.unit}`,\n baseFontSize,\n yDelta,\n inheritableStyle,\n true\n )\n ),\n }\n }\n }\n\n switch (endingShape[0].value) {\n case 'farthest-corner':\n fx = Math.max(Math.abs(xDelta - cx), Math.abs(cx))\n fy = Math.max(Math.abs(yDelta - cy), Math.abs(cy))\n break\n case 'closest-corner':\n fx = Math.min(Math.abs(xDelta - cx), Math.abs(cx))\n fy = Math.min(Math.abs(yDelta - cy), Math.abs(cy))\n break\n case 'farthest-side':\n if (shape === 'circle') {\n spread.r = Math.max(\n Math.abs(xDelta - cx),\n Math.abs(cx),\n Math.abs(yDelta - cy),\n Math.abs(cy)\n )\n } else {\n spread.rx = Math.max(Math.abs(xDelta - cx), Math.abs(cx))\n spread.ry = Math.max(Math.abs(yDelta - cy), Math.abs(cy))\n }\n return spread\n case 'closest-side':\n if (shape === 'circle') {\n spread.r = Math.min(\n Math.abs(xDelta - cx),\n Math.abs(cx),\n Math.abs(yDelta - cy),\n Math.abs(cy)\n )\n } else {\n spread.rx = Math.min(Math.abs(xDelta - cx), Math.abs(cx))\n spread.ry = Math.min(Math.abs(yDelta - cy), Math.abs(cy))\n }\n\n return spread\n }\n if (shape === 'circle') {\n spread.r = Math.sqrt(fx * fx + fy * fy)\n } else {\n // Spec: https://drafts.csswg.org/css-images/#typedef-size\n // Get the aspect ratio of the closest-side size.\n const ratio = fy !== 0 ? fx / fy : 1\n\n if (fx === 0) {\n spread.rx = 0\n spread.ry = 0\n } else {\n // fx^2/a^2 + fy^2/b^2 = 1\n // fx^2/(b*ratio)^2 + fy^2/b^2 = 1\n // (fx^2+fy^2*ratio^2) = (b*ratio)^2\n // b = sqrt(fx^2+fy^2*ratio^2)/ratio\n\n spread.ry = Math.sqrt(fx * fx + fy * fy * ratio * ratio) / ratio\n spread.rx = spread.ry * ratio\n }\n }\n\n return spread\n}\n\nfunction isSizeAllLength(v: RadialPropertyValue[]): v is Array<{\n type: 'length'\n value: {\n unit: string\n value: string\n }\n}> {\n return !v.some((s) => s.type === 'keyword')\n}\n","import CssDimension from '../vendor/parse-css-dimension/index.js'\nimport { buildXMLString } from '../utils.js'\n\nimport { resolveImageData } from '../handler/image.js'\nimport { buildLinearGradient } from './gradient/linear.js'\nimport { buildRadialGradient } from './gradient/radial.js'\n\ninterface Background {\n attachment?: string\n color?: string\n clip: string\n image: string\n origin?: string\n position: string\n size: string\n repeat: string\n}\n\nfunction toAbsoluteValue(v: string | number, base: number) {\n if (typeof v === 'string' && v.endsWith('%')) {\n return (base * parseFloat(v)) / 100\n }\n return +v\n}\n\nfunction parseLengthPairs(\n str: string,\n {\n x,\n y,\n defaultX,\n defaultY,\n }: {\n x: number\n y: number\n defaultX: number | string\n defaultY: number | string\n }\n) {\n return (\n str\n ? str\n .split(' ')\n .map((value) => {\n try {\n const parsed = new CssDimension(value)\n return parsed.type === 'length' || parsed.type === 'number'\n ? parsed.value\n : parsed.value + parsed.unit\n } catch (e) {\n return null\n }\n })\n .filter((v) => v !== null)\n : [defaultX, defaultY]\n ).map((v, index) => toAbsoluteValue(v, [x, y][index]))\n}\n\nexport default async function backgroundImage(\n {\n id,\n width,\n height,\n left,\n top,\n }: { id: string; width: number; height: number; left: number; top: number },\n { image, size, position, repeat }: Background,\n inheritableStyle: Record,\n from?: 'background' | 'mask'\n): Promise {\n // Default to `repeat`.\n repeat = repeat || 'repeat'\n from = from || 'background'\n\n const repeatX = repeat === 'repeat-x' || repeat === 'repeat'\n const repeatY = repeat === 'repeat-y' || repeat === 'repeat'\n\n const dimensions = parseLengthPairs(size, {\n x: width,\n y: height,\n defaultX: width,\n defaultY: height,\n })\n const offsets = parseLengthPairs(position, {\n x: width,\n y: height,\n defaultX: 0,\n defaultY: 0,\n })\n\n if (\n image.startsWith('linear-gradient(') ||\n image.startsWith('repeating-linear-gradient(')\n ) {\n return buildLinearGradient(\n { id, width, height, repeatX, repeatY },\n image,\n dimensions,\n offsets,\n inheritableStyle,\n from\n )\n }\n\n if (image.startsWith('radial-gradient(')) {\n return buildRadialGradient(\n { id, width, height, repeatX, repeatY },\n image,\n dimensions,\n offsets,\n inheritableStyle,\n from\n )\n }\n\n if (image.startsWith('url(')) {\n const dimensionsWithoutFallback = parseLengthPairs(size, {\n x: width,\n y: height,\n defaultX: 0,\n defaultY: 0,\n })\n const [src, imageWidth, imageHeight] = await resolveImageData(\n image.slice(4, -1)\n )\n const resolvedWidth =\n from === 'mask'\n ? imageWidth || dimensionsWithoutFallback[0]\n : dimensionsWithoutFallback[0] || imageWidth\n const resolvedHeight =\n from === 'mask'\n ? imageHeight || dimensionsWithoutFallback[1]\n : dimensionsWithoutFallback[1] || imageHeight\n\n return [\n `satori_bi${id}`,\n buildXMLString(\n 'pattern',\n {\n id: `satori_bi${id}`,\n patternContentUnits: 'userSpaceOnUse',\n patternUnits: 'userSpaceOnUse',\n x: offsets[0] + left,\n y: offsets[1] + top,\n width: repeatX ? resolvedWidth : '100%',\n height: repeatY ? resolvedHeight : '100%',\n },\n buildXMLString('image', {\n x: 0,\n y: 0,\n width: resolvedWidth,\n height: resolvedHeight,\n preserveAspectRatio: 'none',\n href: src,\n })\n ),\n ]\n }\n\n throw new Error(`Invalid background image: \"${image}\"`)\n}\n","/**\n * CSS border radius to SVG path.\n */\n\n// TODO: Support the `border-radius: 10px / 20px` syntax.\n// https://developer.mozilla.org/en-US/docs/Web/CSS/border-radius\n\nimport { buildXMLString, lengthToNumber } from '../utils.js'\n\n// Getting the intersection of a 45deg ray with the elliptical arc x^2/rx^2 + y^2/ry^2 = 1.\n// Reference:\n// https://www.w3.org/TR/SVG/implnote.html#ArcConversionEndpointToCenter\nfunction svgArcCenterOffset([rx, ry]: number[]) {\n if (Math.round(rx * 1000) === 0 && Math.round(ry * 1000) === 0) {\n return 0\n }\n return Math.round(((rx * ry) / Math.sqrt(rx * rx + ry * ry)) * 1000) / 1000\n}\n\nfunction resolveSize(a: number, b: number, limit: number) {\n if (limit < a + b) {\n if (limit / 2 < a && limit / 2 < b) {\n a = b = limit / 2\n } else if (limit / 2 < a) {\n a = limit - b\n } else if (limit / 2 < b) {\n b = limit - a\n }\n }\n return [a, b]\n}\n\nfunction makeSmaller(arr: [number, number]) {\n arr[0] = arr[1] = Math.min(arr[0], arr[1])\n}\n\n// Each corner can have 2 values, the first is the horizontal radius, the second is the vertical radius.\nfunction resolveRadius(\n v: number | string | undefined,\n width: number,\n height: number,\n fontSize: number,\n style: any\n): [boolean, undefined | [number, number]] {\n if (typeof v === 'string') {\n const sides = v.split(' ').map((s) => s.trim())\n const singleValue = !sides[1] && !sides[0].endsWith('%')\n sides[1] = sides[1] || sides[0]\n return [\n singleValue,\n [\n Math.min(lengthToNumber(sides[0], fontSize, width, style, true), width),\n Math.min(\n lengthToNumber(sides[1], fontSize, height, style, true),\n height\n ),\n ],\n ]\n }\n if (typeof v === 'number') {\n return [true, [Math.min(v, width), Math.min(v, height)]]\n }\n return [true, undefined]\n}\n\nconst radiusZeroOrNull = (_radius?: [number, number]) =>\n _radius && _radius[0] !== 0 && _radius[1] !== 0\n\nexport function getBorderRadiusClipPath(\n {\n id,\n borderRadiusPath,\n borderType,\n left,\n top,\n width,\n height,\n }: {\n id: string\n borderRadiusPath?: string\n borderType?: 'rect' | 'path'\n left: number\n top: number\n width: number\n height: number\n },\n style: Record\n) {\n const rectClipId = `satori_brc-${id}`\n const defs = buildXMLString(\n 'clipPath',\n {\n id: rectClipId,\n },\n buildXMLString(borderType, {\n x: left,\n y: top,\n width,\n height,\n d: borderRadiusPath ? borderRadiusPath : undefined,\n })\n )\n\n return [defs, rectClipId]\n}\n\nexport default function radius(\n {\n left,\n top,\n width,\n height,\n }: {\n left: number\n top: number\n width: number\n height: number\n },\n style: Record,\n partialSides?: boolean[]\n) {\n let {\n borderTopLeftRadius,\n borderTopRightRadius,\n borderBottomLeftRadius,\n borderBottomRightRadius,\n fontSize,\n } = style\n\n let singleAbsValueTopLeftCorner\n let singleAbsValueTopRightCorner\n let singleAbsValueBottomLeftCorner\n let singleAbsValueBottomRightCorner\n ;[singleAbsValueTopLeftCorner, borderTopLeftRadius] = resolveRadius(\n borderTopLeftRadius,\n width,\n height,\n fontSize,\n style\n )\n ;[singleAbsValueTopRightCorner, borderTopRightRadius] = resolveRadius(\n borderTopRightRadius,\n width,\n height,\n fontSize,\n style\n )\n ;[singleAbsValueBottomLeftCorner, borderBottomLeftRadius] = resolveRadius(\n borderBottomLeftRadius,\n width,\n height,\n fontSize,\n style\n )\n ;[singleAbsValueBottomRightCorner, borderBottomRightRadius] = resolveRadius(\n borderBottomRightRadius,\n width,\n height,\n fontSize,\n style\n )\n\n if (\n !partialSides &&\n !radiusZeroOrNull(borderTopLeftRadius) &&\n !radiusZeroOrNull(borderTopRightRadius) &&\n !radiusZeroOrNull(borderBottomLeftRadius) &&\n !radiusZeroOrNull(borderBottomRightRadius)\n ) {\n return ''\n }\n borderTopLeftRadius ||= [0, 0]\n borderTopRightRadius ||= [0, 0]\n borderBottomLeftRadius ||= [0, 0]\n borderBottomRightRadius ||= [0, 0]\n\n // Limit the radius sizes of each edge to make sure they will never overlap.\n\n // Top\n ;[borderTopLeftRadius[0], borderTopRightRadius[0]] = resolveSize(\n borderTopLeftRadius[0],\n borderTopRightRadius[0],\n width\n )\n // Bottom\n ;[borderBottomLeftRadius[0], borderBottomRightRadius[0]] = resolveSize(\n borderBottomLeftRadius[0],\n borderBottomRightRadius[0],\n width\n )\n // Left\n ;[borderTopLeftRadius[1], borderBottomLeftRadius[1]] = resolveSize(\n borderTopLeftRadius[1],\n borderBottomLeftRadius[1],\n height\n )\n // Right\n ;[borderTopRightRadius[1], borderBottomRightRadius[1]] = resolveSize(\n borderTopRightRadius[1],\n borderBottomRightRadius[1],\n height\n )\n\n // If the specified border radius is a single value (e.g. 10px or 10em), we take\n // the minimum of the resolved horizontal and vertical radius and apply to both.\n if (singleAbsValueTopLeftCorner) {\n makeSmaller(borderTopLeftRadius)\n }\n if (singleAbsValueTopRightCorner) {\n makeSmaller(borderTopRightRadius)\n }\n if (singleAbsValueBottomLeftCorner) {\n makeSmaller(borderBottomLeftRadius)\n }\n if (singleAbsValueBottomRightCorner) {\n makeSmaller(borderBottomRightRadius)\n }\n\n type Arc = [[number, number], [number, number]]\n const p: Arc[] = []\n p[0] = [borderTopRightRadius, borderTopRightRadius]\n p[1] = [\n borderBottomRightRadius,\n [-borderBottomRightRadius[0], borderBottomRightRadius[1]],\n ]\n p[2] = [\n borderBottomLeftRadius,\n [-borderBottomLeftRadius[0], -borderBottomLeftRadius[1]],\n ]\n p[3] = [\n borderTopLeftRadius,\n [borderTopLeftRadius[0], -borderTopLeftRadius[1]],\n ]\n\n const T = `h${width - borderTopLeftRadius[0] - borderTopRightRadius[0]} a${\n p[0][0]\n } 0 0 1 ${p[0][1]}`\n const R = `v${\n height - borderTopRightRadius[1] - borderBottomRightRadius[1]\n } a${p[1][0]} 0 0 1 ${p[1][1]}`\n const B = `h${\n borderBottomRightRadius[0] + borderBottomLeftRadius[0] - width\n } a${p[2][0]} 0 0 1 ${p[2][1]}`\n const L = `v${borderBottomLeftRadius[1] + borderTopLeftRadius[1] - height} a${\n p[3][0]\n } 0 0 1 ${p[3][1]}`\n\n if (partialSides) {\n // \"However it is not defined what these transitions look like or what function maps from this ratio to a point on the curve.\"\n // https://w3c.github.io/csswg-drafts/css-backgrounds-3/#corner-transitions\n let start = partialSides.indexOf(false)\n\n if (!partialSides.includes(true)) throw new Error('Invalid `partialSides`.')\n\n if (start === -1) {\n start = 0\n } else {\n while (!partialSides[start]) {\n start = (start + 1) % 4\n }\n }\n\n function getArc(i: number) {\n const c0 = svgArcCenterOffset(\n [\n borderTopLeftRadius,\n borderTopRightRadius,\n borderBottomRightRadius,\n borderBottomLeftRadius,\n ][i]\n )\n return i === 0\n ? [\n [\n left + borderTopLeftRadius[0] - c0,\n top + borderTopLeftRadius[1] - c0,\n ],\n [left + borderTopLeftRadius[0], top],\n ]\n : i === 1\n ? [\n [\n left + width - borderTopRightRadius[0] + c0,\n top + borderTopRightRadius[1] - c0,\n ],\n [left + width, top + borderTopRightRadius[1]],\n ]\n : i === 2\n ? [\n [\n left + width - borderBottomRightRadius[0] + c0,\n top + height - borderBottomRightRadius[1] + c0,\n ],\n [left + width - borderBottomRightRadius[0], top + height],\n ]\n : [\n [\n left + borderBottomLeftRadius[0] - c0,\n top + height - borderBottomLeftRadius[1] + c0,\n ],\n [left, top + height - borderBottomLeftRadius[1]],\n ]\n }\n\n let result = ''\n\n const arc0 = getArc(start)\n\n let l = `M${arc0[0]} A${p[(start + 3) % 4][0]} 0 0 1 ${arc0[1]}`\n\n let len = 0\n for (; len < 4 && partialSides[(start + len) % 4]; len++) {\n result += l + ' '\n l = [T, R, B, L][(start + len) % 4]\n }\n const end = (start + len) % 4\n\n // For the last segment, we skip the full arc and add the half arc.\n result += l.split(' ')[0]\n\n const arc1 = getArc(end)\n result += ` A${p[(end + 3) % 4][0]} 0 0 1 ${arc1[0]}`\n\n return result\n }\n\n // Generate the path\n return `M${left + borderTopLeftRadius[0]},${top} ${T} ${R} ${B} ${L}`\n}\n","import { buildXMLString } from '../utils.js'\nimport radius from './border-radius.js'\n\nfunction compareBorderDirections(a: string, b: string, style: any) {\n return (\n style[a + 'Width'] === style[b + 'Width'] &&\n style[a + 'Style'] === style[b + 'Style'] &&\n style[a + 'Color'] === style[b + 'Color']\n )\n}\n\nexport function getBorderClipPath(\n {\n id,\n // Can be `overflow: hidden` from parent containers.\n currentClipPathId,\n borderPath,\n borderType,\n left,\n top,\n width,\n height,\n }: {\n id: string\n currentClipPathId?: string | number\n borderPath?: string\n borderType?: 'rect' | 'path'\n left: number\n top: number\n width: number\n height: number\n },\n style: Record\n) {\n const hasBorder =\n style.borderTopWidth ||\n style.borderRightWidth ||\n style.borderBottomWidth ||\n style.borderLeftWidth\n\n if (!hasBorder) return null\n\n // In SVG, stroke is always centered on the path and there is no\n // existing property to make it behave like CSS border. So here we\n // 2x the border width and introduce another clip path to clip the\n // overflowed part.\n const rectClipId = `satori_bc-${id}`\n const defs = buildXMLString(\n 'clipPath',\n {\n id: rectClipId,\n 'clip-path': currentClipPathId ? `url(#${currentClipPathId})` : undefined,\n },\n buildXMLString(borderType, {\n x: left,\n y: top,\n width,\n height,\n d: borderPath ? borderPath : undefined,\n })\n )\n\n return [defs, rectClipId]\n}\n\nexport default function border(\n {\n left,\n top,\n width,\n height,\n props,\n asContentMask,\n maskBorderOnly,\n }: {\n left: number\n top: number\n width: number\n height: number\n props: any\n asContentMask?: boolean\n maskBorderOnly?: boolean\n },\n style: Record\n) {\n const directions = ['borderTop', 'borderRight', 'borderBottom', 'borderLeft']\n\n // No border\n if (\n !asContentMask &&\n !directions.some((direction) => style[direction + 'Width'])\n )\n return ''\n\n let fullBorder = ''\n\n let start = 0\n while (\n start > 0 &&\n compareBorderDirections(\n directions[start],\n directions[(start + 3) % 4],\n style\n )\n ) {\n start = (start + 3) % 4\n }\n\n let partialSides = [false, false, false, false]\n let currentStyle = []\n for (let _i = 0; _i < 4; _i++) {\n const i = (start + _i) % 4\n const ni = (start + _i + 1) % 4\n\n const d = directions[i]\n const nd = directions[ni]\n\n partialSides[i] = true\n currentStyle = [\n style[d + 'Width'],\n style[d + 'Style'],\n style[d + 'Color'],\n d,\n ]\n\n if (!compareBorderDirections(d, nd, style)) {\n const w =\n (currentStyle[0] || 0) +\n (asContentMask && !maskBorderOnly\n ? style[d.replace('border', 'padding')] || 0\n : 0)\n if (w) {\n fullBorder += buildXMLString('path', {\n width,\n height,\n ...props,\n fill: 'none',\n stroke: asContentMask ? '#000' : currentStyle[2],\n 'stroke-width': w * 2,\n 'stroke-dasharray':\n !asContentMask && currentStyle[1] === 'dashed'\n ? w * 2 + ' ' + w\n : undefined,\n d: radius(\n { left, top, width, height },\n style as Record,\n partialSides\n ),\n })\n }\n partialSides = [false, false, false, false]\n }\n }\n\n if (partialSides.some(Boolean)) {\n const w =\n (currentStyle[0] || 0) +\n (asContentMask && !maskBorderOnly\n ? style[currentStyle[3].replace('border', 'padding')] || 0\n : 0)\n if (w) {\n fullBorder += buildXMLString('path', {\n width,\n height,\n ...props,\n fill: 'none',\n stroke: asContentMask ? '#000' : currentStyle[2],\n 'stroke-width': w * 2,\n 'stroke-dasharray':\n !asContentMask && currentStyle[1] === 'dashed'\n ? w * 2 + ' ' + w\n : undefined,\n d: radius(\n { left, top, width, height },\n style as Record,\n partialSides\n ),\n })\n }\n }\n\n return fullBorder\n}\n","/**\n * When there is border radius, the content area should be clipped by the\n * inner path of border + padding. This applies to element as well as any\n * child element inside a `overflow: hidden` container.\n */\n\nimport { buildXMLString } from '../utils.js'\nimport border from './border.js'\n\nexport default function contentMask(\n {\n id,\n left,\n top,\n width,\n height,\n matrix,\n borderOnly,\n }: {\n id: string\n left: number\n top: number\n width: number\n height: number\n matrix: string | undefined\n borderOnly?: boolean\n },\n style: Record\n) {\n const offsetLeft =\n ((style.borderLeftWidth as number) || 0) +\n (borderOnly ? 0 : (style.paddingLeft as number) || 0)\n const offsetTop =\n ((style.borderTopWidth as number) || 0) +\n (borderOnly ? 0 : (style.paddingTop as number) || 0)\n const offsetRight =\n ((style.borderRightWidth as number) || 0) +\n (borderOnly ? 0 : (style.paddingRight as number) || 0)\n const offsetBottom =\n ((style.borderBottomWidth as number) || 0) +\n (borderOnly ? 0 : (style.paddingBottom as number) || 0)\n\n const contentArea = {\n x: left + offsetLeft,\n y: top + offsetTop,\n width: width - offsetLeft - offsetRight,\n height: height - offsetTop - offsetBottom,\n }\n\n const _contentMask = buildXMLString(\n 'mask',\n { id },\n buildXMLString('rect', {\n ...contentArea,\n fill: '#fff',\n // add transformation matrix to mask if overflow is hidden AND a\n // transformation style is defined, otherwise children will be clipped\n // incorrectly\n transform:\n style.overflow === 'hidden' && style.transform && matrix\n ? matrix\n : undefined,\n mask: style._inheritedMaskId\n ? `url(#${style._inheritedMaskId})`\n : undefined,\n }) +\n border(\n {\n left,\n top,\n width,\n height,\n props: {\n transform: matrix ? matrix : undefined,\n },\n asContentMask: true,\n maskBorderOnly: borderOnly,\n },\n style\n )\n )\n\n return _contentMask\n}\n","import { buildXMLString } from '../utils.js'\nimport { createShapeParser } from '../parser/shape.js'\n\nexport function genClipPathId(id: string) {\n return `satori_cp-${id}`\n}\nexport function genClipPath(id: string) {\n return `url(#${genClipPathId(id)})`\n}\n\nexport function buildClipPath(\n v: {\n left: number\n top: number\n width: number\n height: number\n path: string\n matrix: string | undefined\n id: string\n currentClipPath: string | string\n src?: string\n },\n style: Record,\n inheritedStyle: Record\n) {\n if (style.clipPath === 'none') return ''\n\n const parser = createShapeParser(v, style, inheritedStyle)\n const clipPath = style.clipPath as string\n\n let tmp: { type: string; [p: string]: string | number } = { type: '' }\n\n for (const k of Object.keys(parser)) {\n tmp = parser[k](clipPath)\n if (tmp) break\n }\n\n if (tmp) {\n const { type, ...rest } = tmp\n return buildXMLString(\n 'clipPath',\n {\n id: genClipPathId(v.id),\n 'clip-path': v.currentClipPath,\n transform: `translate(${v.left}, ${v.top})`,\n },\n buildXMLString(type, rest)\n )\n }\n return ''\n}\n","/**\n * Generate clip path for the given element.\n */\n\nimport { buildXMLString } from '../utils.js'\nimport mask from './content-mask.js'\nimport { buildClipPath, genClipPathId } from './clip-path.js'\n\nexport default function overflow(\n {\n left,\n top,\n width,\n height,\n path,\n matrix,\n id,\n currentClipPath,\n src,\n }: {\n left: number\n top: number\n width: number\n height: number\n path: string\n matrix: string | undefined\n id: string\n currentClipPath: string | string\n src?: string\n },\n style: Record,\n inheritableStyle: Record\n) {\n let overflowClipPath = ''\n const clipPath =\n style.clipPath && style.clipPath !== 'none'\n ? buildClipPath(\n { left, top, width, height, path, id, matrix, currentClipPath, src },\n style as Record,\n inheritableStyle\n )\n : ''\n\n if (style.overflow !== 'hidden' && !src) {\n overflowClipPath = ''\n } else {\n const _id = clipPath ? `satori_ocp-${id}` : genClipPathId(id)\n\n overflowClipPath = buildXMLString(\n 'clipPath',\n {\n id: _id,\n 'clip-path': currentClipPath,\n },\n buildXMLString(path ? 'path' : 'rect', {\n x: left,\n y: top,\n width,\n height,\n d: path ? path : undefined,\n // add transformation matrix to clip path if overflow is hidden AND a\n // transformation style is defined, otherwise children will be clipped\n // relative to the parent's original plane instead of the transformed\n // plane\n transform:\n style.overflow === 'hidden' && style.transform && matrix\n ? matrix\n : undefined,\n })\n )\n }\n\n const contentMask = mask(\n {\n id: `satori_om-${id}`,\n left,\n top,\n width,\n height,\n matrix,\n borderOnly: src ? false : true,\n },\n style\n )\n\n return clipPath + overflowClipPath + contentMask\n}\n","import { buildXMLString } from '../utils.js'\nimport buildBackgroundImage from './background-image.js'\nimport type { MaskProperty } from '../parser/mask.js'\n\nconst genMaskImageId = (id: string) => `satori_mi-${id}`\n\nexport default async function buildMaskImage(\n v: {\n id: string\n left: number\n top: number\n width: number\n height: number\n },\n style: Record,\n inheritedStyle: Record\n): Promise<[string, string]> {\n if (!style.maskImage) return ['', '']\n const { left, top, width, height, id } = v\n const maskImage = style.maskImage as unknown as MaskProperty[]\n const length = maskImage.length\n if (!length) return ['', '']\n const miId = genMaskImageId(id)\n\n let mask = ''\n\n for (let i = 0; i < length; i++) {\n const m = maskImage[i]\n\n const [_id, def] = await buildBackgroundImage(\n { id: `${miId}-${i}`, left, top, width, height },\n m,\n inheritedStyle,\n 'mask'\n )\n\n mask +=\n def +\n buildXMLString('rect', {\n x: left,\n y: top,\n width,\n height,\n fill: `url(#${_id})`,\n })\n }\n\n mask = buildXMLString('mask', { id: miId }, mask)\n\n return [miId, mask]\n}\n","import type { ParsedTransformOrigin } from '../transform-origin.js'\n\nimport backgroundImage from './background-image.js'\nimport radius, { getBorderRadiusClipPath } from './border-radius.js'\nimport { boxShadow } from './shadow.js'\nimport transform from './transform.js'\nimport overflow from './overflow.js'\nimport { buildXMLString } from '../utils.js'\nimport border, { getBorderClipPath } from './border.js'\nimport { genClipPath } from './clip-path.js'\nimport buildMaskImage from './mask-image.js'\n\nexport default async function rect(\n {\n id,\n left,\n top,\n width,\n height,\n isInheritingTransform,\n src,\n debug,\n }: {\n id: string\n left: number\n top: number\n width: number\n height: number\n isInheritingTransform: boolean\n src?: string\n debug?: boolean\n },\n style: Record,\n inheritableStyle: Record\n) {\n if (style.display === 'none') return ''\n\n const isImage = !!src\n\n let type: 'rect' | 'path' = 'rect'\n let matrix = ''\n let defs = ''\n let fills: string[] = []\n let opacity = 1\n let extra = ''\n\n if (style.backgroundColor) {\n fills.push(style.backgroundColor as string)\n }\n\n if (style.opacity !== undefined) {\n opacity = +style.opacity\n }\n\n if (style.transform) {\n matrix = transform(\n {\n left,\n top,\n width,\n height,\n },\n style.transform as unknown as number[],\n isInheritingTransform,\n style.transformOrigin as ParsedTransformOrigin | undefined\n )\n }\n\n let backgroundShapes = ''\n if (style.backgroundImage) {\n const backgrounds: string[][] = []\n\n for (\n let index = 0;\n index < (style.backgroundImage as any).length;\n index++\n ) {\n const background = (style.backgroundImage as any)[index]\n const image = await backgroundImage(\n { id: id + '_' + index, width, height, left, top },\n background,\n inheritableStyle\n )\n if (image) {\n // Background images that come first in the array are rendered last.\n backgrounds.unshift(image)\n }\n }\n\n for (const background of backgrounds) {\n fills.push(`url(#${background[0]})`)\n defs += background[1]\n if (background[2]) {\n backgroundShapes += background[2]\n }\n }\n }\n\n const [miId, mi] = await buildMaskImage(\n { id, left, top, width, height },\n style,\n inheritableStyle\n )\n\n defs += mi\n const maskId = miId\n ? `url(#${miId})`\n : style._inheritedMaskId\n ? `url(#${style._inheritedMaskId})`\n : undefined\n\n const path = radius(\n { left, top, width, height },\n style as Record\n )\n if (path) {\n type = 'path'\n }\n\n const clipPathId = style._inheritedClipPathId as number | undefined\n\n if (debug) {\n extra = buildXMLString('rect', {\n x: left,\n y: top,\n width,\n height,\n fill: 'transparent',\n stroke: '#ff5757',\n 'stroke-width': 1,\n transform: matrix || undefined,\n 'clip-path': clipPathId ? `url(#${clipPathId})` : undefined,\n })\n }\n\n const { backgroundClip, filter: cssFilter } = style\n\n const currentClipPath =\n backgroundClip === 'text'\n ? `url(#satori_bct-${id})`\n : clipPathId\n ? `url(#${clipPathId})`\n : style.clipPath\n ? genClipPath(id)\n : undefined\n\n const clip = overflow(\n { left, top, width, height, path, id, matrix, currentClipPath, src },\n style as Record,\n inheritableStyle\n )\n\n // Each background generates a new rectangle.\n // @TODO: Not sure if this is the best way to do it, maybe with\n // multiple s is better.\n let shape = fills\n .map((fill) =>\n buildXMLString(type, {\n x: left,\n y: top,\n width,\n height,\n fill,\n d: path ? path : undefined,\n transform: matrix ? matrix : undefined,\n 'clip-path': style.transform ? undefined : currentClipPath,\n style: cssFilter ? `filter:${cssFilter}` : undefined,\n mask: style.transform ? undefined : maskId,\n })\n )\n .join('')\n\n const borderClip = getBorderClipPath(\n {\n id,\n left,\n top,\n width,\n height,\n currentClipPathId: clipPathId,\n borderPath: path,\n borderType: type,\n },\n style\n )\n\n // border radius for images with transform property\n let imageBorderRadius = undefined\n\n // If it's an image () tag, we add an extra layer of the image itself.\n if (isImage) {\n // We need to subtract the border and padding sizes from the image size.\n const offsetLeft =\n ((style.borderLeftWidth as number) || 0) +\n ((style.paddingLeft as number) || 0)\n const offsetTop =\n ((style.borderTopWidth as number) || 0) +\n ((style.paddingTop as number) || 0)\n const offsetRight =\n ((style.borderRightWidth as number) || 0) +\n ((style.paddingRight as number) || 0)\n const offsetBottom =\n ((style.borderBottomWidth as number) || 0) +\n ((style.paddingBottom as number) || 0)\n\n const preserveAspectRatio =\n style.objectFit === 'contain'\n ? 'xMidYMid'\n : style.objectFit === 'cover'\n ? 'xMidYMid slice'\n : 'none'\n\n if (style.transform) {\n imageBorderRadius = getBorderRadiusClipPath(\n {\n id,\n borderRadiusPath: path,\n borderType: type,\n left,\n top,\n width,\n height,\n },\n style\n )\n }\n\n shape += buildXMLString('image', {\n x: left + offsetLeft,\n y: top + offsetTop,\n width: width - offsetLeft - offsetRight,\n height: height - offsetTop - offsetBottom,\n href: src,\n preserveAspectRatio,\n transform: matrix ? matrix : undefined,\n style: cssFilter ? `filter:${cssFilter}` : undefined,\n 'clip-path': style.transform\n ? imageBorderRadius\n ? `url(#${imageBorderRadius[1]})`\n : undefined\n : `url(#satori_cp-${id})`,\n mask: style.transform\n ? undefined\n : miId\n ? `url(#${miId})`\n : `url(#satori_om-${id})`,\n })\n }\n\n if (borderClip) {\n defs += borderClip[0]\n const rectClipId = borderClip[1]\n\n shape += border(\n {\n left,\n top,\n width,\n height,\n props: {\n transform: matrix ? matrix : undefined,\n // When using `background-clip: text`, we need to draw the extra border because\n // it shouldn't be clipped by the clip path, so we are not using currentClipPath here.\n 'clip-path': `url(#${rectClipId})`,\n },\n },\n style\n )\n }\n\n // box-shadow.\n const shadow = boxShadow(\n {\n width,\n height,\n id,\n opacity,\n shape: buildXMLString(type, {\n x: left,\n y: top,\n width,\n height,\n fill: '#fff',\n stroke: '#fff',\n 'stroke-width': 0,\n d: path ? path : undefined,\n transform: matrix ? matrix : undefined,\n 'clip-path': currentClipPath,\n mask: maskId,\n }),\n },\n style\n )\n\n return (\n (defs ? buildXMLString('defs', {}, defs) : '') +\n (shadow ? shadow[0] : '') +\n (imageBorderRadius ? imageBorderRadius[0] : '') +\n clip +\n (opacity !== 1 ? `` : '') +\n (style.transform && (currentClipPath || maskId)\n ? ``\n : '') +\n (backgroundShapes || shape) +\n (style.transform && (currentClipPath || maskId) ? '' : '') +\n (opacity !== 1 ? `` : '') +\n (shadow ? shadow[1] : '') +\n extra\n )\n}\n","export default () => {\n\t// https://mths.be/emoji\n\treturn /[#*0-9]\\uFE0F?\\u20E3|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26AA\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C8\\u26CF\\u26D1\\u26D3\\u26E9\\u26F0-\\u26F5\\u26F7\\u26F8\\u26FA\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2757\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B55\\u3030\\u303D\\u3297\\u3299]\\uFE0F?|[\\u261D\\u270C\\u270D](?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?|[\\u270A\\u270B](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u2693\\u26A1\\u26AB\\u26C5\\u26CE\\u26D4\\u26EA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2795-\\u2797\\u27B0\\u27BF\\u2B50]|\\u26F9(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\u2764\\uFE0F?(?:\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79))?|\\uD83C(?:[\\uDC04\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]\\uFE0F?|[\\uDF85\\uDFC2\\uDFC7](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDFC3\\uDFC4\\uDFCA](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDFCB\\uDFCC](?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uDDE6\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF]|\\uDDE7\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF]|\\uDDE8\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF]|\\uDDE9\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF]|\\uDDEA\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA]|\\uDDEB\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7]|\\uDDEC\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE]|\\uDDED\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA]|\\uDDEE\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9]|\\uDDEF\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5]|\\uDDF0\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF]|\\uDDF1\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE]|\\uDDF2\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF]|\\uDDF3\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF]|\\uDDF4\\uD83C\\uDDF2|\\uDDF5\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE]|\\uDDF6\\uD83C\\uDDE6|\\uDDF7\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC]|\\uDDF8\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF]|\\uDDF9\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF]|\\uDDFA\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF]|\\uDDFB\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA]|\\uDDFC\\uD83C[\\uDDEB\\uDDF8]|\\uDDFD\\uD83C\\uDDF0|\\uDDFE\\uD83C[\\uDDEA\\uDDF9]|\\uDDFF\\uD83C[\\uDDE6\\uDDF2\\uDDFC]|\\uDFF3\\uFE0F?(?:\\u200D(?:\\u26A7\\uFE0F?|\\uD83C\\uDF08))?|\\uDFF4(?:\\u200D\\u2620\\uFE0F?|\\uDB40\\uDC67\\uDB40\\uDC62\\uDB40(?:\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F)?)|\\uD83D(?:[\\uDC08\\uDC26](?:\\u200D\\u2B1B)?|[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3]\\uFE0F?|[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD74\\uDD90](?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC25\\uDC27-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEDC-\\uDEDF\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|\\uDC41\\uFE0F?(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?))|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC6F(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDD75(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDE2E(?:\\u200D\\uD83D\\uDCA8)?|\\uDE35(?:\\u200D\\uD83D\\uDCAB)?|\\uDE36(?:\\u200D\\uD83C\\uDF2B\\uFE0F?)?)|\\uD83E(?:[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5\\uDEC3-\\uDEC5\\uDEF0\\uDEF2-\\uDEF8](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCC\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE7C\\uDE80-\\uDE88\\uDE90-\\uDEBD\\uDEBF-\\uDEC2\\uDECE-\\uDEDB\\uDEE0-\\uDEE8]|\\uDD3C(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF])?|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83E\\uDDD1))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?))?|\\uDEF1(?:\\uD83C(?:\\uDFFB(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFC-\\uDFFF])?|\\uDFFC(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])?|\\uDFFD(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])?|\\uDFFE(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])?|\\uDFFF(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFE])?))?)/g;\n};\n","// This function guesses the human language (writing system) of the given\n// JavaScript string, using the Unicode Alias in extended RegExp.\n//\n// You can learn more about this in:\n// - https://en.wikipedia.org/wiki/Script_(Unicode)\n// - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions/Unicode_Property_Escapes\n// - https://unicode.org/reports/tr18/#General_Category_Property\n// - https://tc39.es/ecma262/multipage/text-processing.html#table-unicode-script-values\n\nimport createEmojiRegex from 'emoji-regex'\n\n// Remove the \"g\" flag\nconst emojiRegex = new RegExp(createEmojiRegex(), '')\n\n// Supported languages. The order matters.\n// Usually, this is only for \"special cases\" like CJKV languages as latin\n// characters are usually included in the base font, and can be safely fallback\n// to the Noto Sans font. A list of special cases we want to support can be\n// found here (sort by popularity):\n// - https://fonts.google.com/noto/fonts?sort=popularity¬o.query=sans\n//\n// We can't tell if a hanzi(kanji) is Chinese or Japanese by regular expressions.\n// - https://unicode.org/faq/han_cjk.html\n\nconst specialCode = {\n emoji: emojiRegex,\n symbol: /\\p{Symbol}/u,\n math: /\\p{Math}/u,\n} as const\n\nconst code = {\n 'ja-JP': /\\p{scx=Hira}|\\p{scx=Kana}|\\p{scx=Han}|[\\u3000]|[\\uFF00-\\uFFEF]/u,\n 'ko-KR': /\\p{scx=Hangul}/u,\n 'zh-CN': /\\p{scx=Han}/u,\n 'zh-TW': /\\p{scx=Han}/u,\n 'zh-HK': /\\p{scx=Han}/u,\n 'th-TH': /\\p{scx=Thai}/u,\n 'bn-IN': /\\p{scx=Bengali}/u,\n 'ar-AR': /\\p{scx=Arabic}/u,\n 'ta-IN': /\\p{scx=Tamil}/u,\n 'ml-IN': /\\p{scx=Malayalam}/u,\n 'he-IL': /\\p{scx=Hebrew}/u,\n 'te-IN': /\\p{scx=Telugu}/u,\n devanagari: /\\p{scx=Devanagari}/u,\n kannada: /\\p{scx=Kannada}/u,\n} as const\n\ntype SpecialCodeKey = keyof typeof specialCode\ntype CodeKey = keyof typeof specialCode | keyof typeof code\nexport type Locale = keyof typeof code\nexport type LangCode = CodeKey | 'unknown'\n\nexport const locales = Object.keys({ ...code, ...specialCode }) as Locale[]\nexport function isValidLocale(x: any): x is Locale {\n return locales.includes(x)\n}\n\nexport function detectLanguageCode(\n segment: string,\n locale?: Locale\n): Array | ['unknown'] | [SpecialCodeKey] {\n for (const c of Object.keys(specialCode) as SpecialCodeKey[]) {\n if (specialCode[c].test(segment)) {\n return [c]\n }\n }\n\n const languages = Object.keys(code).filter((lang) =>\n code[lang].test(segment)\n ) as Locale[]\n\n if (languages.length === 0) {\n return ['unknown']\n }\n\n if (locale) {\n const index = languages.findIndex((lang) => lang === locale)\n if (index !== -1) {\n languages.splice(index, 1)\n languages.unshift(locale)\n }\n }\n\n return languages\n}\n\nexport function normalizeLocale(locale?: string): Locale | undefined {\n if (locale) {\n return locales.find((l) => l.toLowerCase().startsWith(locale.toLowerCase()))\n }\n}\n","/**\n * This module is used to calculate the layout of the current sub-tree.\n */\n\nimport type { ReactNode } from 'react'\nimport type { Node as YogaNode } from 'yoga-wasm-web'\n\nimport getYoga from './yoga/index.js'\nimport {\n isReactElement,\n isClass,\n buildXMLString,\n normalizeChildren,\n hasDangerouslySetInnerHTMLProp,\n} from './utils.js'\nimport { SVGNodeToImage } from './handler/preprocess.js'\nimport computeStyle from './handler/compute.js'\nimport FontLoader from './font.js'\nimport buildTextNodes from './text/index.js'\nimport rect from './builder/rect.js'\nimport { Locale, normalizeLocale } from './language.js'\nimport { SerializedStyle } from './handler/expand.js'\n\nexport interface LayoutContext {\n id: string\n parentStyle: SerializedStyle\n inheritedStyle: SerializedStyle\n isInheritingTransform?: boolean\n parent: YogaNode\n font: FontLoader\n embedFont: boolean\n debug?: boolean\n graphemeImages?: Record\n canLoadAdditionalAssets: boolean\n locale?: Locale\n getTwStyles: (tw: string, style: any) => any\n onNodeDetected?: (node: SatoriNode) => void\n}\n\nexport interface SatoriNode {\n // Layout information.\n left: number\n top: number\n width: number\n height: number\n type: string\n key?: string | number\n props: Record\n textContent?: string\n}\n\nexport default async function* layout(\n element: ReactNode,\n context: LayoutContext\n): AsyncGenerator<\n { word: string; locale?: string }[],\n string,\n [number, number]\n> {\n const Yoga = await getYoga()\n const {\n id,\n inheritedStyle,\n parent,\n font,\n debug,\n locale,\n embedFont = true,\n graphemeImages,\n canLoadAdditionalAssets,\n getTwStyles,\n } = context\n\n // 1. Pre-process the node.\n if (element === null || typeof element === 'undefined') {\n yield\n yield\n return ''\n }\n\n // Not a regular element.\n if (!isReactElement(element) || typeof element.type === 'function') {\n let iter: ReturnType\n\n if (!isReactElement(element)) {\n // Process as text node.\n iter = buildTextNodes(String(element), context)\n yield (await iter.next()).value as { word: string; locale?: Locale }[]\n } else {\n if (isClass(element.type as Function)) {\n throw new Error('Class component is not supported.')\n }\n // If it's a custom component, Satori strictly requires it to be pure,\n // stateless, and not relying on any React APIs such as hooks or suspense.\n // So we can safely evaluate it to render. Otherwise, an error will be\n // thrown by React.\n iter = layout((element.type as Function)(element.props), context)\n yield (await iter.next()).value as { word: string; locale?: string }[]\n }\n\n await iter.next()\n const offset = yield\n return (await iter.next(offset)).value as string\n }\n\n // Process as element.\n const { type, props } = element\n if (props && hasDangerouslySetInnerHTMLProp(props)) {\n throw new Error(\n 'dangerouslySetInnerHTML property is not supported. See documentation for more information https://github.com/vercel/satori#jsx.'\n )\n }\n let { style, children, tw, lang: _newLocale = locale } = props || {}\n const newLocale = normalizeLocale(_newLocale)\n\n // Extend Tailwind styles.\n if (tw) {\n const twStyles = getTwStyles(tw, style)\n style = Object.assign(twStyles, style)\n }\n\n const node = Yoga.Node.create()\n parent.insertChild(node, parent.getChildCount())\n\n const [computedStyle, newInheritableStyle] = await computeStyle(\n node,\n type,\n inheritedStyle,\n style,\n props\n )\n // Post-process styles to attach inheritable properties for Satori.\n\n // If the element is inheriting the parent `transform`, or applying its own.\n // This affects the coordinate system.\n const isInheritingTransform =\n computedStyle.transform === inheritedStyle.transform\n if (!isInheritingTransform) {\n ;(computedStyle.transform as any).__parent = inheritedStyle.transform\n }\n\n // If the element has `overflow` set to `hidden` or clip-path is set, we need to create a clip\n // path and use it in all its children.\n if (\n computedStyle.overflow === 'hidden' ||\n (computedStyle.clipPath && computedStyle.clipPath !== 'none')\n ) {\n newInheritableStyle._inheritedClipPathId = `satori_cp-${id}`\n newInheritableStyle._inheritedMaskId = `satori_om-${id}`\n }\n\n if (computedStyle.maskImage) {\n newInheritableStyle._inheritedMaskId = `satori_mi-${id}`\n }\n\n // If the element has `background-clip: text` set, we need to create a clip\n // path and use it in all its children.\n if (computedStyle.backgroundClip === 'text') {\n const mutateRefValue = { value: '' } as any\n newInheritableStyle._inheritedBackgroundClipTextPath = mutateRefValue\n computedStyle._inheritedBackgroundClipTextPath = mutateRefValue\n }\n\n // 2. Do layout recursively for its children.\n const normalizedChildren = normalizeChildren(children)\n const iterators: ReturnType[] = []\n\n let i = 0\n const segmentsMissingFont: { word: string; locale?: string }[] = []\n for (const child of normalizedChildren) {\n const iter = layout(child, {\n id: id + '-' + i++,\n parentStyle: computedStyle,\n inheritedStyle: newInheritableStyle,\n isInheritingTransform: true,\n parent: node,\n font,\n embedFont,\n debug,\n graphemeImages,\n canLoadAdditionalAssets,\n locale: newLocale,\n getTwStyles,\n onNodeDetected: context.onNodeDetected,\n })\n if (canLoadAdditionalAssets) {\n segmentsMissingFont.push(...(((await iter.next()).value as any) || []))\n } else {\n await iter.next()\n }\n iterators.push(iter)\n }\n yield segmentsMissingFont\n for (const iter of iterators) await iter.next()\n\n // 3. Post-process the node.\n const [x, y] = yield\n let { left, top, width, height } = node.getComputedLayout()\n // Attach offset to the current node.\n left += x\n top += y\n\n let childrenRenderResult = ''\n let baseRenderResult = ''\n let depsRenderResult = ''\n\n // Emit event for the current node. We don't pass the children prop to the\n // event handler because everything is already flattened, unless it's a text\n // node.\n const { children: childrenNode, ...restProps } = props\n context.onNodeDetected?.({\n left,\n top,\n width,\n height,\n type,\n props: restProps,\n key: element.key,\n textContent: isReactElement(childrenNode) ? undefined : childrenNode,\n })\n\n // Generate the rendered markup for the current node.\n if (type === 'img') {\n const src = computedStyle.__src as string\n baseRenderResult = await rect(\n {\n id,\n left,\n top,\n width,\n height,\n src,\n isInheritingTransform,\n debug,\n },\n computedStyle,\n newInheritableStyle\n )\n } else if (type === 'svg') {\n // When entering a node, we need to convert it to a with the\n // SVG data URL embedded.\n const currentColor = computedStyle.color\n const src = await SVGNodeToImage(element, currentColor)\n baseRenderResult = await rect(\n {\n id,\n left,\n top,\n width,\n height,\n src,\n isInheritingTransform,\n debug,\n },\n computedStyle,\n newInheritableStyle\n )\n } else {\n const display = style?.display\n if (\n type === 'div' &&\n children &&\n typeof children !== 'string' &&\n display !== 'flex' &&\n display !== 'none'\n ) {\n throw new Error(\n `Expected
to have explicit \"display: flex\" or \"display: none\" if it has more than one child node.`\n )\n }\n baseRenderResult = await rect(\n { id, left, top, width, height, isInheritingTransform, debug },\n computedStyle,\n newInheritableStyle\n )\n }\n\n // Generate the rendered markup for the children.\n for (const iter of iterators) {\n childrenRenderResult += (await iter.next([left, top])).value\n }\n\n // An extra pass to generate the special background-clip shape collected from\n // children.\n if (computedStyle._inheritedBackgroundClipTextPath) {\n depsRenderResult += buildXMLString(\n 'clipPath',\n {\n id: `satori_bct-${id}`,\n 'clip-path': computedStyle._inheritedClipPathId\n ? `url(#${computedStyle._inheritedClipPathId})`\n : undefined,\n },\n (computedStyle._inheritedBackgroundClipTextPath as any).value\n )\n }\n\n return depsRenderResult + baseRenderResult + childrenRenderResult\n}\n","/**\n * This class handles everything related to fonts.\n */\nimport opentype from '@shuding/opentype.js'\nimport { Locale, locales, isValidLocale } from './language.js'\n\nexport type Weight = 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900\nexport type WeightName = 'normal' | 'bold'\nexport type FontWeight = Weight | WeightName\nexport type FontStyle = 'normal' | 'italic'\nconst SUFFIX_WHEN_LANG_NOT_SET = 'unknown'\n\nexport interface FontOptions {\n data: Buffer | ArrayBuffer\n name: string\n weight?: Weight\n style?: FontStyle\n lang?: string\n}\n\nexport type FontEngine = {\n has: (s: string) => boolean\n baseline: (s?: string, resolvedFont?: any) => number\n height: (s?: string, resolvedFont?: any) => number\n measure: (\n s: string,\n style: {\n fontSize: number\n letterSpacing: number\n }\n ) => number\n getSVG: (\n s: string,\n style: {\n fontSize: number\n top: number\n left: number\n letterSpacing: number\n }\n ) => string\n}\n\nfunction compareFont(\n weight,\n style,\n [matchedWeight, matchedStyle],\n [nextWeight, nextStyle]\n) {\n if (matchedWeight !== nextWeight) {\n // Put the defined weight first.\n if (!matchedWeight) return 1\n if (!nextWeight) return -1\n\n // Exact match.\n if (matchedWeight === weight) return -1\n if (nextWeight === weight) return 1\n\n // 400 and 500.\n if (weight === 400 && matchedWeight === 500) return -1\n if (weight === 500 && matchedWeight === 400) return -1\n if (weight === 400 && nextWeight === 500) return 1\n if (weight === 500 && nextWeight === 400) return 1\n\n // Less than 400.\n if (weight < 400) {\n if (matchedWeight < weight && nextWeight < weight)\n return nextWeight - matchedWeight\n if (matchedWeight < weight) return -1\n if (nextWeight < weight) return 1\n return matchedWeight - nextWeight\n }\n\n // Greater than 500.\n if (weight < matchedWeight && weight < nextWeight)\n return matchedWeight - nextWeight\n if (weight < matchedWeight) return -1\n if (weight < nextWeight) return 1\n return nextWeight - matchedWeight\n }\n\n if (matchedStyle !== nextStyle) {\n // Exact match.\n if (matchedStyle === style) return -1\n if (nextStyle === style) return 1\n }\n\n return -1\n}\n\nexport default class FontLoader {\n defaultFont: opentype.Font\n fonts = new Map()\n constructor(fontOptions: FontOptions[]) {\n this.addFonts(fontOptions)\n }\n\n // Get font by name and weight.\n private get({\n name,\n weight,\n style,\n }: {\n name: string\n weight: Weight | WeightName\n style: FontStyle\n }) {\n if (!this.fonts.has(name)) {\n return null\n }\n\n if (weight === 'normal') weight = 400\n if (weight === 'bold') weight = 700\n if (typeof weight === 'string')\n weight = Number.parseInt(weight, 10) as Weight\n\n const fonts = [...this.fonts.get(name)]\n\n let matchedFont = fonts[0]\n\n // Fallback to the closest weight and style according to the strategy here:\n // https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight#fallback_weights\n for (let i = 1; i < fonts.length; i++) {\n const [, weight1, style1] = matchedFont\n const [, weight2, style2] = fonts[i]\n if (\n compareFont(weight, style, [weight1, style1], [weight2, style2]) > 0\n ) {\n matchedFont = fonts[i]\n }\n }\n\n return matchedFont[0]\n }\n\n public addFonts(fontOptions: FontOptions[]) {\n for (const fontOption of fontOptions) {\n const { name, data, lang } = fontOption\n if (lang && !isValidLocale(lang)) {\n throw new Error(\n `Invalid value for props \\`lang\\`: \"${lang}\". The value must be one of the following: ${locales.join(\n ', '\n )}.`\n )\n }\n const _lang = lang ?? SUFFIX_WHEN_LANG_NOT_SET\n const font = opentype.parse(\n // Buffer to ArrayBuffer.\n 'buffer' in data\n ? data.buffer.slice(\n data.byteOffset,\n data.byteOffset + data.byteLength\n )\n : data,\n // @ts-ignore\n { lowMemory: true }\n )\n\n // Modify the `charToGlyphIndex` method, so we can know which char is\n // being mapped to which glyph.\n const originalCharToGlyphIndex = font.charToGlyphIndex\n font.charToGlyphIndex = (char) => {\n const index = originalCharToGlyphIndex.call(font, char)\n if (index === 0) {\n // The current requested char is missing a glyph.\n if ((font as any)._trackBrokenChars) {\n ;(font as any)._trackBrokenChars.push(char)\n }\n }\n return index\n }\n\n // We use the first font as the default font fallback.\n if (!this.defaultFont) this.defaultFont = font\n\n const _name = `${name.toLowerCase()}_${_lang}`\n\n if (!this.fonts.has(_name)) {\n this.fonts.set(_name, [])\n }\n this.fonts.get(_name).push([font, fontOption.weight, fontOption.style])\n }\n }\n\n public getEngine(\n fontSize = 16,\n lineHeight: number | string = 'normal',\n {\n fontFamily = 'sans-serif',\n fontWeight = 400,\n fontStyle = 'normal',\n }: {\n fontFamily?: string | string[]\n fontWeight?: FontWeight\n fontStyle?: FontStyle\n },\n locale: Locale | undefined\n ): FontEngine {\n if (!this.fonts.size) {\n throw new Error(\n 'No fonts are loaded. At least one font is required to calculate the layout.'\n )\n }\n\n fontFamily = (Array.isArray(fontFamily) ? fontFamily : [fontFamily]).map(\n (name) => name.toLowerCase()\n )\n const fonts = []\n fontFamily.forEach((face) => {\n const getNormal = this.get({\n name: face,\n weight: fontWeight,\n style: fontStyle,\n })\n if (getNormal) {\n fonts.push(getNormal)\n return\n }\n\n const getUnknown = this.get({\n name: face + '_unknown',\n weight: fontWeight,\n style: fontStyle,\n })\n\n if (getUnknown) {\n fonts.push(getUnknown)\n return\n }\n })\n\n // Add additional fonts as the fallback.\n const keys = Array.from(this.fonts.keys())\n const specifiedLangFonts = []\n const nonSpecifiedLangFonts = []\n const additionalFonts = []\n for (const name of keys) {\n if (fontFamily.includes(name)) continue\n if (locale) {\n const lang = getLangFromFontName(name)\n if (lang) {\n if (lang === locale) {\n specifiedLangFonts.push(\n this.get({\n name,\n weight: fontWeight,\n style: fontStyle,\n })\n )\n } else {\n nonSpecifiedLangFonts.push(\n this.get({\n name,\n weight: fontWeight,\n style: fontStyle,\n })\n )\n }\n } else {\n additionalFonts.push(\n this.get({\n name,\n weight: fontWeight,\n style: fontStyle,\n })\n )\n }\n } else {\n additionalFonts.push(\n this.get({\n name,\n weight: fontWeight,\n style: fontStyle,\n })\n )\n }\n }\n\n const cachedFontResolver = new Map()\n const resolveFont = (word: string, fallback = true) => {\n const _fonts = [\n ...fonts,\n ...additionalFonts,\n ...specifiedLangFonts,\n ...(fallback ? nonSpecifiedLangFonts : []),\n ]\n\n if (typeof word === 'undefined') {\n if (fallback) {\n return _fonts[_fonts.length - 1]\n }\n return undefined\n }\n\n const code = word.charCodeAt(0)\n if (cachedFontResolver.has(code)) return cachedFontResolver.get(code)\n\n const font = _fonts.find((_font, index) => {\n return (\n !!_font.charToGlyphIndex(word) ||\n (fallback && index === _fonts.length - 1)\n )\n })\n\n if (font) {\n cachedFontResolver.set(code, font)\n }\n\n return font\n }\n\n const ascender = (resolvedFont: opentype.Font, useOS2Table = false) => {\n const _ascender =\n (useOS2Table ? resolvedFont.tables?.os2?.sTypoAscender : 0) ||\n resolvedFont.ascender\n return (_ascender / resolvedFont.unitsPerEm) * fontSize\n }\n\n const descender = (resolvedFont: opentype.Font, useOS2Table = false) => {\n const _descender =\n (useOS2Table ? resolvedFont.tables?.os2?.sTypoDescender : 0) ||\n resolvedFont.descender\n return (_descender / resolvedFont.unitsPerEm) * fontSize\n }\n\n const height = (resolvedFont: opentype.Font, useOS2Table = false) => {\n if ('string' === typeof lineHeight && 'normal' === lineHeight) {\n const _lineGap =\n (useOS2Table ? resolvedFont.tables?.os2?.sTypoLineGap : 0) || 0\n return (\n ascender(resolvedFont, useOS2Table) -\n descender(resolvedFont, useOS2Table) +\n (_lineGap / resolvedFont.unitsPerEm) * fontSize\n )\n } else if ('number' === typeof lineHeight) {\n return fontSize * lineHeight\n }\n }\n\n const resolve = (s: string) => {\n return resolveFont(s, false)\n }\n\n const engine = {\n has: (s: string) => {\n if (s === '\\n') return true\n const font = resolve(s)\n if (!font) return false\n ;(font as any)._trackBrokenChars = []\n font.stringToGlyphs(s)\n if (!(font as any)._trackBrokenChars.length) return true\n ;(font as any)._trackBrokenChars = undefined\n return false\n },\n baseline: (\n s?: string,\n resolvedFont = typeof s === 'undefined' ? fonts[0] : resolveFont(s)\n ) => {\n const asc = ascender(resolvedFont)\n const desc = descender(resolvedFont)\n const contentHeight = asc - desc\n\n return asc + (height(resolvedFont) - contentHeight) / 2\n },\n height: (\n s?: string,\n resolvedFont = typeof s === 'undefined' ? fonts[0] : resolveFont(s)\n ) => {\n return height(resolvedFont)\n },\n measure: (\n s: string,\n style: {\n fontSize: number\n letterSpacing: number\n }\n ) => {\n return this.measure(resolveFont, s, style)\n },\n getSVG: (\n s: string,\n style: {\n fontSize: number\n top: number\n left: number\n letterSpacing: number\n }\n ) => {\n return this.getSVG(resolveFont, s, style)\n },\n }\n\n return engine\n }\n\n private patchFontFallbackResolver(\n font: opentype.Font,\n resolveFont: (word: string, fallback?: boolean) => opentype.Font\n ) {\n const brokenChars = []\n ;(font as any)._trackBrokenChars = brokenChars\n\n const originalStringToGlyphs = font.stringToGlyphs\n font.stringToGlyphs = (s: string, ...args: any) => {\n const glyphs = originalStringToGlyphs.call(font, s, ...args)\n\n for (let i = 0; i < glyphs.length; i++) {\n // Hitting an undefined glyph. We have to try to resolve it from other\n // fonts.\n // @TODO: This affects the kerning resolution but should be fine for now.\n if (glyphs[i].unicode === undefined) {\n const char = brokenChars.shift()\n const anotherFont = resolveFont(char)\n if (anotherFont !== font) {\n const glyph = anotherFont.charToGlyph(char)\n // Scale the glyph to match the current units per em.\n const scale = font.unitsPerEm / anotherFont.unitsPerEm\n const p = new opentype.Path()\n p.unitsPerEm = font.unitsPerEm\n p.commands = glyph.path.commands.map((command) => {\n const scaledCommand = { ...command }\n for (let k in scaledCommand) {\n if (typeof scaledCommand[k] === 'number') {\n scaledCommand[k] *= scale\n }\n }\n return scaledCommand\n })\n const g = new opentype.Glyph({\n ...glyph,\n advanceWidth: glyph.advanceWidth * scale,\n xMin: glyph.xMin * scale,\n xMax: glyph.xMax * scale,\n yMin: glyph.yMin * scale,\n yMax: glyph.yMax * scale,\n path: p,\n })\n\n glyphs[i] = g\n }\n }\n }\n\n return glyphs\n }\n\n return () => {\n font.stringToGlyphs = originalStringToGlyphs\n ;(font as any)._trackBrokenChars = undefined\n }\n }\n\n private measure(\n resolveFont: (word: string, fallback?: boolean) => opentype.Font,\n content: string,\n {\n fontSize,\n letterSpacing = 0,\n }: {\n fontSize: number\n letterSpacing: number\n }\n ) {\n const font = resolveFont(content)\n const unpatch = this.patchFontFallbackResolver(font, resolveFont)\n\n try {\n return font.getAdvanceWidth(content, fontSize, {\n letterSpacing: letterSpacing / fontSize,\n })\n } finally {\n unpatch()\n }\n }\n\n private getSVG(\n resolveFont: (word: string, fallback?: boolean) => opentype.Font,\n content: string,\n {\n fontSize,\n top,\n left,\n letterSpacing = 0,\n }: {\n fontSize: number\n top: number\n left: number\n letterSpacing: number\n }\n ) {\n const font = resolveFont(content)\n const unpatch = this.patchFontFallbackResolver(font, resolveFont)\n\n try {\n if (fontSize === 0) {\n return ''\n }\n return font\n .getPath(content.replace(/\\n/g, ''), left, top, fontSize, {\n letterSpacing: letterSpacing / fontSize,\n })\n .toPathData(1)\n } finally {\n unpatch()\n }\n }\n}\n\nfunction getLangFromFontName(name: string): Locale | undefined {\n const arr = name.split('_')\n const lang = arr[arr.length - 1]\n\n return lang === SUFFIX_WHEN_LANG_NOT_SET ? undefined : (lang as Locale)\n}\n","import { buildXMLString } from '../utils.js'\n\nexport default function svg({\n width,\n height,\n content,\n}: {\n width: number\n height: number\n content: string\n}) {\n return buildXMLString(\n 'svg',\n {\n width,\n height,\n viewBox: `0 0 ${width} ${height}`,\n xmlns: 'http://www.w3.org/2000/svg',\n },\n content\n )\n}\n","import resolveConfig from 'tailwindcss/resolveConfig';\nimport Cache from './cache';\nimport ClassParser from './ClassParser';\nimport { parseInputs } from './parse-inputs';\nimport { complete, warn } from './helpers';\nimport { getAddedUtilities } from './plugin';\nimport { removeOpacityHelpers } from './resolve/color';\nexport function create(customConfig, platform) {\n const config = resolveConfig(withContent(customConfig));\n const device = {};\n const pluginUtils = getAddedUtilities(config.plugins);\n const customStringUtils = {};\n const customStyleUtils = Object.entries(pluginUtils)\n .map(([util, style]) => {\n if (typeof style === `string`) {\n // mutating while mapping, i know - bad form, but for performance sake... ¯\\_(ツ)_/¯\n customStringUtils[util] = style;\n return [util, { kind: `null` }];\n }\n return [util, complete(style)];\n })\n .filter(([, ir]) => ir.kind !== `null`);\n function deriveCacheGroup() {\n return ([\n device.windowDimensions ? `w${device.windowDimensions.width}` : false,\n device.windowDimensions ? `h${device.windowDimensions.height}` : false,\n device.fontScale ? `fs${device.fontScale}` : false,\n device.colorScheme === `dark` ? `dark` : false,\n device.pixelDensity === 2 ? `retina` : false,\n ]\n .filter(Boolean)\n .join(`--`) || `default`);\n }\n let cacheGroup = deriveCacheGroup();\n const contextCaches = {};\n function getCache() {\n const existing = contextCaches[cacheGroup];\n if (existing) {\n return existing;\n }\n const cache = new Cache(customStyleUtils);\n contextCaches[cacheGroup] = cache;\n return cache;\n }\n function style(...inputs) {\n const cache = getCache();\n let resolved = {};\n const dependents = [];\n const ordered = [];\n const [utilities, userStyle] = parseInputs(inputs);\n // check if we've seen this full set of classes before\n // if we have a cached copy, we can skip examining each utility\n const joined = utilities.join(` `);\n const cached = cache.getStyle(joined);\n if (cached) {\n return { ...cached, ...(userStyle ? userStyle : {}) };\n }\n for (const utility of utilities) {\n let styleIr = cache.getIr(utility);\n if (!styleIr && utility in customStringUtils) {\n const customStyle = style(customStringUtils[utility]);\n cache.setIr(utility, complete(customStyle));\n resolved = { ...resolved, ...customStyle };\n continue;\n }\n const parser = new ClassParser(utility, config, cache, device, platform);\n styleIr = parser.parse();\n switch (styleIr.kind) {\n case `complete`:\n resolved = { ...resolved, ...styleIr.style };\n cache.setIr(utility, styleIr);\n break;\n case `dependent`:\n dependents.push(styleIr);\n break;\n case `ordered`:\n ordered.push(styleIr);\n break;\n case `null`:\n cache.setIr(utility, styleIr);\n break;\n }\n }\n if (ordered.length > 0) {\n ordered.sort((a, b) => a.order - b.order);\n for (const orderedStyle of ordered) {\n switch (orderedStyle.styleIr.kind) {\n case `complete`:\n resolved = { ...resolved, ...orderedStyle.styleIr.style };\n break;\n case `dependent`:\n dependents.push(orderedStyle.styleIr);\n break;\n }\n }\n }\n if (dependents.length > 0) {\n for (const dependent of dependents) {\n const error = dependent.complete(resolved);\n if (error) {\n warn(error);\n }\n }\n removeOpacityHelpers(resolved);\n }\n // cache the full set of classes for future re-renders\n // it's important we cache BEFORE merging in userStyle below\n if (joined !== ``) {\n cache.setStyle(joined, resolved);\n }\n if (userStyle) {\n resolved = { ...resolved, ...userStyle };\n }\n return resolved;\n }\n function color(utils) {\n const styleObj = style(utils\n .split(/\\s+/g)\n .map((util) => util.replace(/^(bg|text|border)-/, ``))\n .map((util) => `bg-${util}`)\n .join(` `));\n return typeof styleObj.backgroundColor === `string`\n ? styleObj.backgroundColor\n : undefined;\n }\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n const tailwindFn = (strings, ...values) => {\n let str = ``;\n strings.forEach((string, i) => {\n var _a;\n str += string + ((_a = values[i]) !== null && _a !== void 0 ? _a : ``);\n });\n return style(str);\n };\n tailwindFn.style = style;\n tailwindFn.color = color;\n tailwindFn.prefixMatch = (...prefixes) => {\n const joined = prefixes.sort().join(`:`);\n const cache = getCache();\n const cached = cache.getPrefixMatch(joined);\n if (cached !== undefined) {\n return cached;\n }\n const parser = new ClassParser(`${joined}:flex`, config, cache, device, platform);\n const ir = parser.parse();\n const prefixMatches = ir.kind !== `null`;\n cache.setPrefixMatch(joined, prefixMatches);\n return prefixMatches;\n };\n tailwindFn.setWindowDimensions = (newDimensions) => {\n device.windowDimensions = newDimensions;\n cacheGroup = deriveCacheGroup();\n };\n tailwindFn.setFontScale = (newFontScale) => {\n device.fontScale = newFontScale;\n cacheGroup = deriveCacheGroup();\n };\n tailwindFn.setPixelDensity = (newPixelDensity) => {\n device.pixelDensity = newPixelDensity;\n cacheGroup = deriveCacheGroup();\n };\n tailwindFn.setColorScheme = (newColorScheme) => {\n device.colorScheme = newColorScheme;\n cacheGroup = deriveCacheGroup();\n };\n return tailwindFn;\n}\nexport default create;\nfunction withContent(config) {\n return {\n ...config,\n // prevent warnings from tailwind about not having a `content` prop\n // we don't need one because we have our own jit parser which\n // does not rely on knowing content paths to search\n content: [`_no_warnings_please`],\n };\n}\n","export const PLATFORMS = [`ios`, `android`, `windows`, `macos`, `web`];\nexport function isPlatform(x) {\n return PLATFORMS.includes(x);\n}\nexport const ORIENTATIONS = [`portrait`, `landscape`];\nexport function isOrientation(x) {\n return ORIENTATIONS.includes(x);\n}\nexport var ConfigType;\n(function (ConfigType) {\n ConfigType[\"fontSize\"] = \"fontSize\";\n ConfigType[\"lineHeight\"] = \"lineHeight\";\n})(ConfigType || (ConfigType = {}));\nexport var Unit;\n(function (Unit) {\n Unit[\"rem\"] = \"rem\";\n Unit[\"em\"] = \"em\";\n Unit[\"px\"] = \"px\";\n Unit[\"percent\"] = \"%\";\n Unit[\"vw\"] = \"vw\";\n Unit[\"vh\"] = \"vh\";\n Unit[\"none\"] = \"\";\n})(Unit || (Unit = {}));\nexport function isString(value) {\n return typeof value === `string`;\n}\nexport function isObject(value) {\n return typeof value === `object`;\n}\n","var _a;\nimport { Unit } from './types';\nexport function complete(style) {\n return { kind: `complete`, style };\n}\nexport function parseNumericValue(value, context = {}) {\n const { fractions } = context;\n if (fractions && value.includes(`/`)) {\n const [numerator = ``, denominator = ``] = value.split(`/`, 2);\n const parsedNumerator = parseNumericValue(numerator);\n const parsedDenominator = parseNumericValue(denominator);\n if (!parsedNumerator || !parsedDenominator) {\n return null;\n }\n return [parsedNumerator[0] / parsedDenominator[0], parsedDenominator[1]];\n }\n const number = parseFloat(value);\n if (Number.isNaN(number)) {\n return null;\n }\n const match = value.match(/(([a-z]{2,}|%))$/);\n if (!match) {\n return [number, Unit.none];\n }\n switch (match === null || match === void 0 ? void 0 : match[1]) {\n case `rem`:\n return [number, Unit.rem];\n case `px`:\n return [number, Unit.px];\n case `em`:\n return [number, Unit.em];\n case `%`:\n return [number, Unit.percent];\n case `vw`:\n return [number, Unit.vw];\n case `vh`:\n return [number, Unit.vh];\n default:\n return null;\n }\n}\nexport function getCompleteStyle(prop, value, context = {}) {\n const styleVal = parseStyleVal(value, context);\n return styleVal === null ? null : complete({ [prop]: styleVal });\n}\nexport function mergeStyle(prop, value, style) {\n const styleVal = parseStyleVal(value);\n if (styleVal !== null) {\n style[prop] = styleVal;\n }\n return style;\n}\nexport function getStyle(prop, value) {\n const styleVal = parseStyleVal(value);\n return styleVal === null ? null : { [prop]: styleVal };\n}\nexport function parseStyleVal(value, context = {}) {\n if (value === undefined) {\n return null;\n }\n const parsed = parseNumericValue(String(value), context);\n if (parsed) {\n return toStyleVal(...parsed, context);\n }\n else {\n return null;\n }\n}\nexport function toStyleVal(number, unit, context = {}) {\n const { isNegative, device } = context;\n switch (unit) {\n case Unit.rem:\n return number * 16 * (isNegative ? -1 : 1);\n case Unit.px:\n return number * (isNegative ? -1 : 1);\n case Unit.percent:\n return `${isNegative ? `-` : ``}${number}%`;\n case Unit.none:\n return number * (isNegative ? -1 : 1);\n case Unit.vw:\n if (!(device === null || device === void 0 ? void 0 : device.windowDimensions)) {\n warn(`\\`vw\\` CSS unit requires configuration with \\`useDeviceContext()\\``);\n return null;\n }\n return device.windowDimensions.width * (number / 100);\n case Unit.vh:\n if (!(device === null || device === void 0 ? void 0 : device.windowDimensions)) {\n warn(`\\`vh\\` CSS unit requires configuration with \\`useDeviceContext()\\``);\n return null;\n }\n return device.windowDimensions.height * (number / 100);\n default:\n return null;\n }\n}\nexport function toPx(value) {\n const parsed = parseNumericValue(value);\n if (!parsed) {\n return null;\n }\n const [number, unit] = parsed;\n switch (unit) {\n case Unit.rem:\n return number * 16;\n case Unit.px:\n return number;\n default:\n return null;\n }\n}\nconst DIR_MAP = {\n t: `Top`,\n tr: `TopRight`,\n tl: `TopLeft`,\n b: `Bottom`,\n br: `BottomRight`,\n bl: `BottomLeft`,\n l: `Left`,\n r: `Right`,\n x: `Horizontal`,\n y: `Vertical`,\n};\nexport function getDirection(string) {\n return DIR_MAP[string !== null && string !== void 0 ? string : ``] || `All`;\n}\nexport function parseAndConsumeDirection(utilityFragment) {\n let direction = `All`;\n const consumed = utilityFragment.replace(/^-(t|b|r|l|tr|tl|br|bl)(-|$)/, (_, dir) => {\n direction = getDirection(dir);\n return ``;\n });\n return [consumed, direction];\n}\nexport function parseUnconfigged(value, context = {}) {\n if (value.includes(`/`)) {\n const style = unconfiggedStyleVal(value, { ...context, fractions: true });\n if (style)\n return style;\n }\n if (value[0] === `[`) {\n value = value.slice(1, -1);\n }\n return unconfiggedStyleVal(value, context);\n}\nexport function unconfiggedStyle(prop, value, context = {}) {\n const styleVal = parseUnconfigged(value, context);\n if (styleVal === null) {\n return null;\n }\n return complete({ [prop]: styleVal });\n}\nfunction unconfiggedStyleVal(value, context = {}) {\n if (value === `px`) {\n return 1;\n }\n const parsed = parseNumericValue(value, context);\n if (!parsed) {\n return null;\n }\n let [number, unit] = parsed;\n if (context.fractions) {\n unit = Unit.percent;\n number *= 100;\n }\n // not sure if this is the right approach, but this allows arbitrary\n // non-bracket numbers, like top-73 and it INFERS the meaning to be\n // tailwind's default scale for spacing, which is 1 = 0.25rem\n if (unit === Unit.none) {\n number = number / 4;\n unit = Unit.rem;\n }\n return toStyleVal(number, unit, context);\n}\nfunction consoleWarn(...args) {\n console.warn(...args);\n}\nfunction noopWarn(..._) {\n // ¯\\_(ツ)_/¯\n}\nexport const warn = typeof process === `undefined` || ((_a = process === null || process === void 0 ? void 0 : process.env) === null || _a === void 0 ? void 0 : _a.JEST_WORKER_ID) === undefined\n ? consoleWarn\n : noopWarn;\n","import { complete } from './helpers';\nconst defaultStyles = [\n [`aspect-square`, complete({ aspectRatio: 1 })],\n [`aspect-video`, complete({ aspectRatio: 16 / 9 })],\n [`items-center`, complete({ alignItems: `center` })],\n [`items-start`, complete({ alignItems: `flex-start` })],\n [`items-end`, complete({ alignItems: `flex-end` })],\n [`items-baseline`, complete({ alignItems: `baseline` })],\n [`items-stretch`, complete({ alignItems: `stretch` })],\n [`justify-start`, complete({ justifyContent: `flex-start` })],\n [`justify-end`, complete({ justifyContent: `flex-end` })],\n [`justify-center`, complete({ justifyContent: `center` })],\n [`justify-between`, complete({ justifyContent: `space-between` })],\n [`justify-around`, complete({ justifyContent: `space-around` })],\n [`justify-evenly`, complete({ justifyContent: `space-evenly` })],\n [`content-start`, complete({ alignContent: `flex-start` })],\n [`content-end`, complete({ alignContent: `flex-end` })],\n [`content-between`, complete({ alignContent: `space-between` })],\n [`content-around`, complete({ alignContent: `space-around` })],\n [`content-stretch`, complete({ alignContent: `stretch` })],\n [`content-center`, complete({ alignContent: `center` })],\n [`self-auto`, complete({ alignSelf: `auto` })],\n [`self-start`, complete({ alignSelf: `flex-start` })],\n [`self-end`, complete({ alignSelf: `flex-end` })],\n [`self-center`, complete({ alignSelf: `center` })],\n [`self-stretch`, complete({ alignSelf: `stretch` })],\n [`self-baseline`, complete({ alignSelf: `baseline` })],\n [`direction-inherit`, complete({ direction: `inherit` })],\n [`direction-ltr`, complete({ direction: `ltr` })],\n [`direction-rtl`, complete({ direction: `rtl` })],\n [`hidden`, complete({ display: `none` })],\n [`flex`, complete({ display: `flex` })],\n [`flex-row`, complete({ flexDirection: `row` })],\n [`flex-row-reverse`, complete({ flexDirection: `row-reverse` })],\n [`flex-col`, complete({ flexDirection: `column` })],\n [`flex-col-reverse`, complete({ flexDirection: `column-reverse` })],\n [`flex-wrap`, complete({ flexWrap: `wrap` })],\n [`flex-wrap-reverse`, complete({ flexWrap: `wrap-reverse` })],\n [`flex-nowrap`, complete({ flexWrap: `nowrap` })],\n [`flex-auto`, complete({ flexGrow: 1, flexShrink: 1, flexBasis: `auto` })],\n [`flex-initial`, complete({ flexGrow: 0, flexShrink: 1, flexBasis: `auto` })],\n [`flex-none`, complete({ flexGrow: 0, flexShrink: 0, flexBasis: `auto` })],\n [`overflow-hidden`, complete({ overflow: `hidden` })],\n [`overflow-visible`, complete({ overflow: `visible` })],\n [`overflow-scroll`, complete({ overflow: `scroll` })],\n [`absolute`, complete({ position: `absolute` })],\n [`relative`, complete({ position: `relative` })],\n [`italic`, complete({ fontStyle: `italic` })],\n [`not-italic`, complete({ fontStyle: `normal` })],\n [`oldstyle-nums`, fontVariant(`oldstyle-nums`)],\n [`small-caps`, fontVariant(`small-caps`)],\n [`lining-nums`, fontVariant(`lining-nums`)],\n [`tabular-nums`, fontVariant(`tabular-nums`)],\n [`proportional-nums`, fontVariant(`proportional-nums`)],\n [`font-thin`, complete({ fontWeight: `100` })],\n [`font-100`, complete({ fontWeight: `100` })],\n [`font-extralight`, complete({ fontWeight: `200` })],\n [`font-200`, complete({ fontWeight: `200` })],\n [`font-light`, complete({ fontWeight: `300` })],\n [`font-300`, complete({ fontWeight: `300` })],\n [`font-normal`, complete({ fontWeight: `normal` })],\n [`font-400`, complete({ fontWeight: `400` })],\n [`font-medium`, complete({ fontWeight: `500` })],\n [`font-500`, complete({ fontWeight: `500` })],\n [`font-semibold`, complete({ fontWeight: `600` })],\n [`font-600`, complete({ fontWeight: `600` })],\n [`font-bold`, complete({ fontWeight: `bold` })],\n [`font-700`, complete({ fontWeight: `700` })],\n [`font-extrabold`, complete({ fontWeight: `800` })],\n [`font-800`, complete({ fontWeight: `800` })],\n [`font-black`, complete({ fontWeight: `900` })],\n [`font-900`, complete({ fontWeight: `900` })],\n [`include-font-padding`, complete({ includeFontPadding: true })],\n [`remove-font-padding`, complete({ includeFontPadding: false })],\n // not sure if RN supports `max-width: none;`, but this should be equivalent\n [`max-w-none`, complete({ maxWidth: `99999%` })],\n [`text-left`, complete({ textAlign: `left` })],\n [`text-center`, complete({ textAlign: `center` })],\n [`text-right`, complete({ textAlign: `right` })],\n [`text-justify`, complete({ textAlign: `justify` })],\n [`text-auto`, complete({ textAlign: `auto` })],\n [`underline`, complete({ textDecorationLine: `underline` })],\n [`line-through`, complete({ textDecorationLine: `line-through` })],\n [`no-underline`, complete({ textDecorationLine: `none` })],\n [`uppercase`, complete({ textTransform: `uppercase` })],\n [`lowercase`, complete({ textTransform: `lowercase` })],\n [`capitalize`, complete({ textTransform: `capitalize` })],\n [`normal-case`, complete({ textTransform: `none` })],\n [`w-auto`, complete({ width: `auto` })],\n [`h-auto`, complete({ height: `auto` })],\n // default box-shadow implementations\n [\n `shadow-sm`,\n complete({\n shadowOffset: { width: 1, height: 1 },\n shadowColor: `#000`,\n shadowRadius: 1,\n shadowOpacity: 0.025,\n elevation: 1,\n }),\n ],\n [\n `shadow`,\n complete({\n shadowOffset: { width: 1, height: 1 },\n shadowColor: `#000`,\n shadowRadius: 1,\n shadowOpacity: 0.075,\n elevation: 2,\n }),\n ],\n [\n `shadow-md`,\n complete({\n shadowOffset: { width: 1, height: 1 },\n shadowColor: `#000`,\n shadowRadius: 3,\n shadowOpacity: 0.125,\n elevation: 3,\n }),\n ],\n [\n `shadow-lg`,\n complete({\n shadowOffset: { width: 1, height: 1 },\n shadowColor: `#000`,\n shadowOpacity: 0.15,\n shadowRadius: 8,\n elevation: 8,\n }),\n ],\n [\n `shadow-xl`,\n complete({\n shadowOffset: { width: 1, height: 1 },\n shadowColor: `#000`,\n shadowOpacity: 0.19,\n shadowRadius: 20,\n elevation: 12,\n }),\n ],\n [\n `shadow-2xl`,\n complete({\n shadowOffset: { width: 1, height: 1 },\n shadowColor: `#000`,\n shadowOpacity: 0.25,\n shadowRadius: 30,\n elevation: 16,\n }),\n ],\n [\n `shadow-none`,\n complete({\n shadowOffset: { width: 0, height: 0 },\n shadowColor: `#000`,\n shadowRadius: 0,\n shadowOpacity: 0,\n elevation: 0,\n }),\n ],\n];\nexport default defaultStyles;\nfunction fontVariant(type) {\n return {\n kind: `dependent`,\n complete(style) {\n if (!style.fontVariant || !Array.isArray(style.fontVariant)) {\n style.fontVariant = [];\n }\n style.fontVariant.push(type);\n },\n };\n}\n","import defaultStyles from './styles';\nexport default class Cache {\n constructor(customStyles) {\n this.ir = new Map(defaultStyles);\n this.styles = new Map();\n this.prefixes = new Map();\n this.ir = new Map([...defaultStyles, ...(customStyles !== null && customStyles !== void 0 ? customStyles : [])]);\n }\n getStyle(key) {\n return this.styles.get(key);\n }\n setStyle(key, style) {\n this.styles.set(key, style);\n }\n getIr(key) {\n return this.ir.get(key);\n }\n setIr(key, ir) {\n this.ir.set(key, ir);\n }\n getPrefixMatch(key) {\n return this.prefixes.get(key);\n }\n setPrefixMatch(key, value) {\n this.prefixes.set(key, value);\n }\n}\n","import { Unit } from '../types';\nimport { getCompleteStyle, complete, getStyle, mergeStyle, parseNumericValue, unconfiggedStyle, } from '../helpers';\nexport default function fontSize(value, config, context = {}) {\n const configValue = config === null || config === void 0 ? void 0 : config[value];\n if (!configValue) {\n return unconfiggedStyle(`fontSize`, value, context);\n }\n if (typeof configValue === `string`) {\n return getCompleteStyle(`fontSize`, configValue);\n }\n let style = {};\n const [fontSize, rest] = configValue;\n const fontSizeStyle = getStyle(`fontSize`, fontSize);\n if (fontSizeStyle) {\n style = fontSizeStyle;\n }\n if (typeof rest === `string`) {\n return complete(mergeStyle(`lineHeight`, calculateLineHeight(rest, style), style));\n }\n const { lineHeight, letterSpacing } = rest;\n if (lineHeight) {\n mergeStyle(`lineHeight`, calculateLineHeight(lineHeight, style), style);\n }\n if (letterSpacing) {\n mergeStyle(`letterSpacing`, letterSpacing, style);\n }\n return complete(style);\n}\n// calculates line-height for relative units\nfunction calculateLineHeight(lineHeight, style) {\n const parsed = parseNumericValue(lineHeight);\n if (parsed) {\n const [number, unit] = parsed;\n if ((unit === Unit.none || unit === Unit.em) && typeof style.fontSize === `number`) {\n return style.fontSize * number;\n }\n }\n return lineHeight;\n}\n","import { Unit } from '../types';\nimport { parseNumericValue, complete, toStyleVal } from '../helpers';\nexport default function lineHeight(value, config) {\n var _a;\n const parseValue = (_a = config === null || config === void 0 ? void 0 : config[value]) !== null && _a !== void 0 ? _a : (value.startsWith(`[`) ? value.slice(1, -1) : value);\n const parsed = parseNumericValue(parseValue);\n if (!parsed) {\n return null;\n }\n const [number, unit] = parsed;\n if (unit === Unit.none) {\n // we have a relative line-height like `2` for `leading-loose`\n return {\n kind: `dependent`,\n complete(style) {\n if (typeof style.fontSize !== `number`) {\n return `relative line-height utilities require that font-size be set`;\n }\n style.lineHeight = style.fontSize * number;\n },\n };\n }\n const styleVal = toStyleVal(number, unit);\n return styleVal !== null ? complete({ lineHeight: styleVal }) : null;\n}\n","import { Unit } from '../types';\nimport { parseNumericValue, parseUnconfigged, toStyleVal } from '../helpers';\nexport default function spacing(type, direction, isNegative, value, config) {\n let numericValue = ``;\n if (value[0] === `[`) {\n numericValue = value.slice(1, -1);\n }\n else {\n const configValue = config === null || config === void 0 ? void 0 : config[value];\n if (!configValue) {\n const unconfigged = parseUnconfigged(value);\n if (unconfigged && typeof unconfigged === `number`) {\n return spacingStyle(unconfigged, Unit.px, direction, type);\n }\n return null;\n }\n else {\n numericValue = configValue;\n }\n }\n if (numericValue === `auto`) {\n return expand(direction, type, `auto`);\n }\n const parsed = parseNumericValue(numericValue);\n if (!parsed) {\n return null;\n }\n let [number, unit] = parsed;\n if (isNegative) {\n number = -number;\n }\n return spacingStyle(number, unit, direction, type);\n}\nfunction spacingStyle(number, unit, direction, type) {\n const pixels = toStyleVal(number, unit);\n if (pixels === null) {\n return null;\n }\n return expand(direction, type, pixels);\n}\nfunction expand(direction, type, value) {\n switch (direction) {\n case `All`:\n return {\n kind: `complete`,\n style: {\n [`${type}Top`]: value,\n [`${type}Right`]: value,\n [`${type}Bottom`]: value,\n [`${type}Left`]: value,\n },\n };\n case `Bottom`:\n case `Top`:\n case `Left`:\n case `Right`:\n return {\n kind: `complete`,\n style: {\n [`${type}${direction}`]: value,\n },\n };\n case `Vertical`:\n return {\n kind: `complete`,\n style: {\n [`${type}Top`]: value,\n [`${type}Bottom`]: value,\n },\n };\n case `Horizontal`:\n return {\n kind: `complete`,\n style: {\n [`${type}Left`]: value,\n [`${type}Right`]: value,\n },\n };\n default:\n return null;\n }\n}\n","import { toPx, warn } from './helpers';\nexport default function screens(input) {\n if (!input) {\n return {};\n }\n const screenData = Object.entries(input).reduce((acc, [screen, value]) => {\n const data = [0, Infinity, 0];\n const values = typeof value === `string` ? { min: value } : value;\n const minPx = values.min ? toPx(values.min) : 0;\n if (minPx === null) {\n warn(`invalid screen config value: ${screen}->min: ${values.min}`);\n }\n else {\n data[0] = minPx;\n }\n const maxPx = values.max ? toPx(values.max) : Infinity;\n if (maxPx === null) {\n warn(`invalid screen config value: ${screen}->max: ${values.max}`);\n }\n else {\n data[1] = maxPx;\n }\n acc[screen] = data;\n return acc;\n }, {});\n const values = Object.values(screenData);\n values.sort((a, b) => {\n const [minA, maxA] = a;\n const [minB, maxB] = b;\n if (maxA === Infinity || maxB === Infinity) {\n return minA - minB;\n }\n return maxA - maxB;\n });\n let order = 0;\n values.forEach((value) => (value[2] = order++));\n return screenData;\n}\n","import { complete } from '../helpers';\nexport default function fontFamily(value, config) {\n const configValue = config === null || config === void 0 ? void 0 : config[value];\n if (!configValue) {\n return null;\n }\n if (typeof configValue === `string`) {\n return complete({ fontFamily: configValue });\n }\n const firstFamily = configValue[0];\n if (!firstFamily) {\n return null;\n }\n return complete({ fontFamily: firstFamily });\n}\n","import { isObject, isString } from '../types';\nimport { warn, complete } from '../helpers';\nexport function color(type, value, config) {\n if (!config) {\n return null;\n }\n // support opacity shorthand: `bg-red-200/50`\n let shorthandOpacity = undefined;\n if (value.includes(`/`)) {\n [value = ``, shorthandOpacity] = value.split(`/`, 2);\n }\n let color = ``;\n // for arbitrary support: `bg-[#eaeaea]`, `text-[rgba(1, 1, 1, 0.5)]`\n if (value.startsWith(`[#`) || value.startsWith(`[rgb`)) {\n color = value.slice(1, -1);\n // search for color in config\n }\n else {\n color = findColorInConfigRecursive(value, config);\n }\n if (!color) {\n return null;\n }\n if (shorthandOpacity) {\n const opacity = Number(shorthandOpacity);\n if (!Number.isNaN(opacity)) {\n color = addOpacity(color, opacity / 100);\n return complete({ [STYLE_PROPS[type].color]: color });\n }\n }\n // return a dependent style to support merging of classes\n // like `bg-red-800 bg-opacity-75`\n return {\n kind: `dependent`,\n complete(style) {\n const opacityProp = STYLE_PROPS[type].opacity;\n const opacity = style[opacityProp];\n if (typeof opacity === `number`) {\n color = addOpacity(color, opacity);\n }\n style[STYLE_PROPS[type].color] = color;\n },\n };\n}\nexport function colorOpacity(type, value) {\n const percentage = parseInt(value, 10);\n if (Number.isNaN(percentage)) {\n return null;\n }\n const opacity = percentage / 100;\n const style = { [STYLE_PROPS[type].opacity]: opacity };\n return { kind: `complete`, style };\n}\nfunction addOpacity(color, opacity) {\n if (color.startsWith(`#`)) {\n color = hexToRgba(color);\n }\n else if (color.startsWith(`rgb(`)) {\n color = color.replace(/^rgb\\(/, `rgba(`).replace(/\\)$/, `, 1)`);\n }\n // @TODO: support hls/hlsa if anyone opens an issue...\n return color.replace(/, ?\\d*\\.?(\\d+)\\)$/, `, ${opacity})`);\n}\nexport function removeOpacityHelpers(style) {\n for (const key in style) {\n if (key.startsWith(`__opacity_`)) {\n delete style[key];\n }\n }\n}\nconst STYLE_PROPS = {\n bg: { opacity: `__opacity_bg`, color: `backgroundColor` },\n text: { opacity: `__opacity_text`, color: `color` },\n border: { opacity: `__opacity_border`, color: `borderColor` },\n borderTop: { opacity: `__opacity_border`, color: `borderTopColor` },\n borderBottom: { opacity: `__opacity_border`, color: `borderBottomColor` },\n borderLeft: { opacity: `__opacity_border`, color: `borderLeftColor` },\n borderRight: { opacity: `__opacity_border`, color: `borderRightColor` },\n shadow: { opacity: `__opacity_shadow`, color: `shadowColor` },\n tint: { opacity: `__opacity_tint`, color: `tintColor` },\n};\nfunction hexToRgba(hex) {\n const orig = hex;\n hex = hex.replace(MATCH_SHORT_HEX, (_, r, g, b) => r + r + g + g + b + b);\n const result = MATCH_FULL_HEX.exec(hex);\n if (!result) {\n warn(`invalid config hex color value: ${orig}`);\n return `rgba(0, 0, 0, 1)`;\n }\n const r = parseInt(result[1], 16);\n const g = parseInt(result[2], 16);\n const b = parseInt(result[3], 16);\n return `rgba(${r}, ${g}, ${b}, 1)`;\n}\nfunction findColorInConfigRecursive(colorName, config) {\n const configColor = config[colorName];\n // the color is found at the current config level\n if (isString(configColor)) {\n return configColor;\n }\n else if (isObject(configColor) && isString(configColor.DEFAULT)) {\n return configColor.DEFAULT;\n }\n // search for a matching sub-string at the current config level\n let [colorNameStart = ``, ...colorNameRest] = colorName.split(`-`);\n while (colorNameStart !== colorName) {\n const subConfig = config[colorNameStart];\n if (isObject(subConfig)) {\n return findColorInConfigRecursive(colorNameRest.join(`-`), subConfig);\n }\n else if (colorNameRest.length === 0) {\n return ``;\n }\n colorNameStart = `${colorNameStart}-${colorNameRest.shift()}`;\n }\n return ``;\n}\nconst MATCH_SHORT_HEX = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\nconst MATCH_FULL_HEX = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i;\n","import { parseAndConsumeDirection, complete, getCompleteStyle, unconfiggedStyle, } from '../helpers';\nimport { color } from './color';\nexport function border(value, theme) {\n let [rest, direction] = parseAndConsumeDirection(value);\n const widthUtilityMatch = rest.match(/^(-?(\\d)+)?$/);\n if (widthUtilityMatch) {\n return borderWidth(rest, direction, theme === null || theme === void 0 ? void 0 : theme.borderWidth);\n }\n rest = rest.replace(/^-/, ``);\n if ([`dashed`, `solid`, `dotted`].includes(rest)) {\n return complete({ borderStyle: rest });\n }\n let colorType = `border`;\n switch (direction) {\n case `Bottom`:\n colorType = `borderBottom`;\n break;\n case `Top`:\n colorType = `borderTop`;\n break;\n case `Left`:\n colorType = `borderLeft`;\n break;\n case `Right`:\n colorType = `borderRight`;\n break;\n }\n const colorStyle = color(colorType, rest, theme === null || theme === void 0 ? void 0 : theme.borderColor);\n if (colorStyle) {\n return colorStyle;\n }\n // Finally Handling Arbitrary Width Case\n // border-[20px] or border-[2.5rem]\n const prop = `border${direction === `All` ? `` : direction}Width`;\n rest = rest.replace(/^-/, ``);\n const numericValue = rest.slice(1, -1);\n const arbitraryWidth = unconfiggedStyle(prop, numericValue);\n // can't use % for border-radius in RN\n if (typeof (arbitraryWidth === null || arbitraryWidth === void 0 ? void 0 : arbitraryWidth.style[prop]) !== `number`) {\n return null;\n }\n return arbitraryWidth;\n}\nfunction borderWidth(value, direction, config) {\n if (!config) {\n return null;\n }\n value = value.replace(/^-/, ``);\n const key = value === `` ? `DEFAULT` : value;\n const configValue = config[key];\n if (configValue === undefined) {\n return null;\n }\n const prop = `border${direction === `All` ? `` : direction}Width`;\n return getCompleteStyle(prop, configValue);\n}\nexport function borderRadius(value, config) {\n if (!config) {\n return null;\n }\n let [rest, direction] = parseAndConsumeDirection(value);\n rest = rest.replace(/^-/, ``);\n if (rest === ``) {\n rest = `DEFAULT`;\n }\n const prop = `border${direction === `All` ? `` : direction}Radius`;\n const configValue = config[rest];\n if (configValue) {\n return expand(getCompleteStyle(prop, configValue));\n }\n const arbitrary = unconfiggedStyle(prop, rest);\n // can't use % for border-radius in RN\n if (typeof (arbitrary === null || arbitrary === void 0 ? void 0 : arbitrary.style[prop]) !== `number`) {\n return null;\n }\n return expand(arbitrary);\n}\n// RN only supports `borderRadius` + `border(top|bottom)(left|right)Radius`\nfunction expand(ir) {\n if ((ir === null || ir === void 0 ? void 0 : ir.kind) !== `complete`)\n return ir;\n const top = ir.style.borderTopRadius;\n if (top !== undefined) {\n ir.style.borderTopLeftRadius = top;\n ir.style.borderTopRightRadius = top;\n delete ir.style.borderTopRadius;\n }\n const bottom = ir.style.borderBottomRadius;\n if (bottom !== undefined) {\n ir.style.borderBottomLeftRadius = bottom;\n ir.style.borderBottomRightRadius = bottom;\n delete ir.style.borderBottomRadius;\n }\n const left = ir.style.borderLeftRadius;\n if (left !== undefined) {\n ir.style.borderBottomLeftRadius = left;\n ir.style.borderTopLeftRadius = left;\n delete ir.style.borderLeftRadius;\n }\n const right = ir.style.borderRightRadius;\n if (right !== undefined) {\n ir.style.borderBottomRightRadius = right;\n ir.style.borderTopRightRadius = right;\n delete ir.style.borderRightRadius;\n }\n return ir;\n}\n","import { complete, parseStyleVal, parseUnconfigged } from '../helpers';\nexport function inset(type, value, isNegative, config) {\n let insetDir = null;\n if (type === `inset`) {\n value = value.replace(/^(x|y)-/, (_, dir) => {\n insetDir = dir === `x` ? `x` : `y`;\n return ``;\n });\n }\n const configValue = config === null || config === void 0 ? void 0 : config[value];\n if (configValue) {\n const styleVal = parseStyleVal(configValue, { isNegative });\n if (styleVal !== null) {\n return insetStyle(type, insetDir, styleVal);\n }\n }\n const unconfigged = parseUnconfigged(value, { isNegative });\n if (unconfigged !== null) {\n return insetStyle(type, insetDir, unconfigged);\n }\n return null;\n}\nfunction insetStyle(type, dir, styleVal) {\n if (type !== `inset`) {\n return complete({ [type]: styleVal });\n }\n switch (dir) {\n case null:\n return complete({\n top: styleVal,\n left: styleVal,\n right: styleVal,\n bottom: styleVal,\n });\n case `y`:\n return complete({\n top: styleVal,\n bottom: styleVal,\n });\n case `x`:\n return complete({\n left: styleVal,\n right: styleVal,\n });\n }\n}\n","import { complete, parseStyleVal } from '../helpers';\nexport function flexGrowShrink(type, value, config) {\n var _a;\n value = value.replace(/^-/, ``);\n const configKey = value === `` ? `DEFAULT` : value;\n const numericValue = Number((_a = config === null || config === void 0 ? void 0 : config[configKey]) !== null && _a !== void 0 ? _a : value);\n if (!Number.isNaN(numericValue)) {\n return complete({ [`flex${type}`]: numericValue });\n }\n return null;\n}\nexport function flex(value, config) {\n var _a, _b;\n value = (config === null || config === void 0 ? void 0 : config[value]) || value;\n if ([`min-content`, `revert`, `unset`].includes(value)) {\n // unsupported\n return null;\n }\n // @see https://developer.mozilla.org/en-US/docs/Web/CSS/flex\n // MDN: One value, unitless number: flex-grow flex-basis is then equal to 0.\n if (value.match(/^\\d+(\\.\\d+)?$/)) {\n return complete({\n flexGrow: Number(value),\n flexBasis: `0%`,\n });\n }\n // MDN: Two values (both integers): flex-grow | flex-basis\n let match = value.match(/^(\\d+)\\s+(\\d+)$/);\n if (match) {\n return complete({\n flexGrow: Number(match[1]),\n flexShrink: Number(match[2]),\n });\n }\n // MDN: Two values: flex-grow | flex-basis\n match = value.match(/^(\\d+)\\s+([^ ]+)$/);\n if (match) {\n const flexBasis = parseStyleVal((_a = match[2]) !== null && _a !== void 0 ? _a : ``);\n if (!flexBasis) {\n return null;\n }\n return complete({\n flexGrow: Number(match[1]),\n flexBasis,\n });\n }\n // MDN: Three values: flex-grow | flex-shrink | flex-basis\n match = value.match(/^(\\d+)\\s+(\\d+)\\s+(.+)$/);\n if (match) {\n const flexBasis = parseStyleVal((_b = match[3]) !== null && _b !== void 0 ? _b : ``);\n if (!flexBasis) {\n return null;\n }\n return complete({\n flexGrow: Number(match[1]),\n flexShrink: Number(match[2]),\n flexBasis,\n });\n }\n return null;\n}\n","import { getCompleteStyle, complete, parseStyleVal, unconfiggedStyle } from '../helpers';\nexport function widthHeight(type, value, context = {}, config) {\n const configValue = config === null || config === void 0 ? void 0 : config[value];\n if (configValue !== undefined) {\n return getCompleteStyle(type, configValue, context);\n }\n return unconfiggedStyle(type, value, context);\n}\nexport function minMaxWidthHeight(type, value, context = {}, config) {\n const styleVal = parseStyleVal(config === null || config === void 0 ? void 0 : config[value], context);\n if (styleVal) {\n return complete({ [type]: styleVal });\n }\n if (value === `screen`) {\n value = type.includes(`Width`) ? `100vw` : `100vh`;\n }\n return unconfiggedStyle(type, value, context);\n}\n","import { Unit } from '../types';\nimport { parseNumericValue, complete, toStyleVal, unconfiggedStyle, warn, } from '../helpers';\nexport function letterSpacing(value, isNegative, config) {\n const configValue = config === null || config === void 0 ? void 0 : config[value];\n if (configValue) {\n const parsed = parseNumericValue(configValue, { isNegative });\n if (!parsed) {\n return null;\n }\n const [number, unit] = parsed;\n if (unit === Unit.em) {\n return relativeLetterSpacing(number);\n }\n // @TODO, if we get a percentage based config value, theoretically we could\n // make a font-size dependent style as well, wait for someone to raise an issue\n if (unit === Unit.percent) {\n warn(`percentage-based letter-spacing configuration currently unsupported, switch to \\`em\\`s, or open an issue if you'd like to see support added.`);\n return null;\n }\n const styleVal = toStyleVal(number, unit, { isNegative });\n if (styleVal !== null) {\n return complete({ letterSpacing: styleVal });\n }\n return null;\n }\n return unconfiggedStyle(`letterSpacing`, value, { isNegative });\n}\nfunction relativeLetterSpacing(ems) {\n return {\n kind: `dependent`,\n complete(style) {\n const fontSize = style.fontSize;\n if (typeof fontSize !== `number` || Number.isNaN(fontSize)) {\n return `tracking-X relative letter spacing classes require font-size to be set`;\n }\n style.letterSpacing = Math.round((ems * fontSize + Number.EPSILON) * 100) / 100;\n },\n };\n}\n","import { parseNumericValue, complete } from '../helpers';\nexport function opacity(value, config) {\n const configValue = config === null || config === void 0 ? void 0 : config[value];\n if (configValue) {\n const parsedConfig = parseNumericValue(String(configValue));\n if (parsedConfig) {\n return complete({ opacity: parsedConfig[0] });\n }\n }\n const parsedArbitrary = parseNumericValue(value);\n if (parsedArbitrary) {\n return complete({ opacity: parsedArbitrary[0] / 100 });\n }\n return null;\n}\n","import { parseUnconfigged } from '../helpers';\nexport function shadowOpacity(value) {\n const percentage = parseInt(value, 10);\n if (Number.isNaN(percentage)) {\n return null;\n }\n return {\n kind: `complete`,\n style: { shadowOpacity: percentage / 100 },\n };\n}\nexport function shadowOffset(value) {\n if (value.includes(`/`)) {\n const [widthStr = ``, heightStr = ``] = value.split(`/`, 2);\n const width = offsetValue(widthStr);\n const height = offsetValue(heightStr);\n if (width === null || height === null) {\n return null;\n }\n return {\n kind: `complete`,\n style: {\n shadowOffset: {\n width,\n height,\n },\n },\n };\n }\n const number = offsetValue(value);\n if (number === null) {\n return null;\n }\n return {\n kind: `complete`,\n style: {\n shadowOffset: {\n width: number,\n height: number,\n },\n },\n };\n}\nfunction offsetValue(value) {\n const parsed = parseUnconfigged(value);\n return typeof parsed === `number` ? parsed : null;\n}\n","import fontSize from './resolve/font-size';\nimport lineHeight from './resolve/line-height';\nimport spacing from './resolve/spacing';\nimport screens from './screens';\nimport { isOrientation, isPlatform, } from './types';\nimport fontFamily from './resolve/font-family';\nimport { color, colorOpacity } from './resolve/color';\nimport { border, borderRadius } from './resolve/borders';\nimport { getCompleteStyle, getDirection, unconfiggedStyle, warn, complete, parseNumericValue, } from './helpers';\nimport { inset } from './resolve/inset';\nimport { flexGrowShrink, flex } from './resolve/flex';\nimport { widthHeight, minMaxWidthHeight } from './resolve/width-height';\nimport { letterSpacing } from './resolve/letter-spacing';\nimport { opacity } from './resolve/opacity';\nimport { shadowOpacity, shadowOffset } from './resolve/shadow';\nexport default class ClassParser {\n constructor(input, config = {}, cache, device, platform) {\n var _a, _b, _c, _d, _e, _f;\n this.config = config;\n this.cache = cache;\n this.position = 0;\n this.isNull = false;\n this.isNegative = false;\n this.context = {};\n this.context.device = device;\n const parts = input.trim().split(`:`);\n let prefixes = [];\n if (parts.length === 1) {\n this.string = input;\n }\n else {\n this.string = (_a = parts.pop()) !== null && _a !== void 0 ? _a : ``;\n prefixes = parts;\n }\n this.char = this.string[0];\n const widthBreakpoints = screens((_b = this.config.theme) === null || _b === void 0 ? void 0 : _b.screens);\n // loop through the prefixes ONE time, extracting useful info\n for (const prefix of prefixes) {\n if (widthBreakpoints[prefix]) {\n const breakpointOrder = (_c = widthBreakpoints[prefix]) === null || _c === void 0 ? void 0 : _c[2];\n if (breakpointOrder !== undefined) {\n this.order = ((_d = this.order) !== null && _d !== void 0 ? _d : 0) + breakpointOrder;\n }\n const windowWidth = (_e = device.windowDimensions) === null || _e === void 0 ? void 0 : _e.width;\n if (windowWidth) {\n const [min, max] = (_f = widthBreakpoints[prefix]) !== null && _f !== void 0 ? _f : [0, 0];\n if (windowWidth <= min || windowWidth > max) {\n // breakpoint does not match\n this.isNull = true;\n }\n }\n else {\n this.isNull = true;\n }\n }\n else if (isPlatform(prefix)) {\n this.isNull = prefix !== platform;\n }\n else if (isOrientation(prefix)) {\n if (!device.windowDimensions) {\n this.isNull = true;\n }\n else {\n const deviceOrientation = device.windowDimensions.width > device.windowDimensions.height\n ? `landscape`\n : `portrait`;\n if (deviceOrientation !== prefix) {\n this.isNull = true;\n }\n else {\n this.incrementOrder();\n }\n }\n }\n else if (prefix === `retina`) {\n if (device.pixelDensity === 2) {\n this.incrementOrder();\n }\n else {\n this.isNull = true;\n }\n }\n else if (prefix === `dark`) {\n if (device.colorScheme !== `dark`) {\n this.isNull = true;\n }\n else {\n this.incrementOrder();\n }\n }\n else if (!this.handlePossibleArbitraryBreakpointPrefix(prefix)) {\n this.isNull = true;\n }\n }\n }\n parse() {\n if (this.isNull) {\n return { kind: `null` };\n }\n // resolve things like ios:hidden, after prefix removed\n const cached = this.cache.getIr(this.rest);\n if (cached) {\n return cached;\n }\n this.parseIsNegative();\n const ir = this.parseUtility();\n if (!ir) {\n return { kind: `null` };\n }\n if (this.order !== undefined) {\n return { kind: `ordered`, order: this.order, styleIr: ir };\n }\n return ir;\n }\n parseUtility() {\n var _a, _b, _c, _d, _e;\n const theme = this.config.theme;\n let style = null;\n switch (this.char) {\n case `m`:\n case `p`: {\n const match = this.peekSlice(1, 3).match(/^(t|b|r|l|x|y)?-/);\n if (match) {\n const prop = this.char === `m` ? `margin` : `padding`;\n this.advance(((_b = (_a = match[0]) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) + 1);\n const spacingDirection = getDirection(match[1]);\n const style = spacing(prop, spacingDirection, this.isNegative, this.rest, (_c = this.config.theme) === null || _c === void 0 ? void 0 : _c[prop]);\n if (style)\n return style;\n }\n }\n }\n if (this.consumePeeked(`h-`)) {\n style = widthHeight(`height`, this.rest, this.context, theme === null || theme === void 0 ? void 0 : theme.height);\n if (style)\n return style;\n }\n if (this.consumePeeked(`w-`)) {\n style = widthHeight(`width`, this.rest, this.context, theme === null || theme === void 0 ? void 0 : theme.width);\n if (style)\n return style;\n }\n if (this.consumePeeked(`min-w-`)) {\n style = minMaxWidthHeight(`minWidth`, this.rest, this.context, theme === null || theme === void 0 ? void 0 : theme.minWidth);\n if (style)\n return style;\n }\n if (this.consumePeeked(`min-h-`)) {\n style = minMaxWidthHeight(`minHeight`, this.rest, this.context, theme === null || theme === void 0 ? void 0 : theme.minHeight);\n if (style)\n return style;\n }\n if (this.consumePeeked(`max-w-`)) {\n style = minMaxWidthHeight(`maxWidth`, this.rest, this.context, theme === null || theme === void 0 ? void 0 : theme.maxWidth);\n if (style)\n return style;\n }\n if (this.consumePeeked(`max-h-`)) {\n style = minMaxWidthHeight(`maxHeight`, this.rest, this.context, theme === null || theme === void 0 ? void 0 : theme.maxHeight);\n if (style)\n return style;\n }\n if (this.consumePeeked(`leading-`)) {\n style = lineHeight(this.rest, theme === null || theme === void 0 ? void 0 : theme.lineHeight);\n if (style)\n return style;\n }\n if (this.consumePeeked(`text-`)) {\n style = fontSize(this.rest, theme === null || theme === void 0 ? void 0 : theme.fontSize, this.context);\n if (style)\n return style;\n style = color(`text`, this.rest, theme === null || theme === void 0 ? void 0 : theme.textColor);\n if (style)\n return style;\n if (this.consumePeeked(`opacity-`)) {\n style = colorOpacity(`text`, this.rest);\n if (style)\n return style;\n }\n }\n if (this.consumePeeked(`font-`)) {\n style = fontFamily(this.rest, theme === null || theme === void 0 ? void 0 : theme.fontFamily);\n if (style)\n return style;\n }\n if (this.consumePeeked(`aspect-`)) {\n if (this.consumePeeked(`ratio-`)) {\n warn(`\\`aspect-ratio-{ratio}\\` is deprecated, use \\`aspect-{ratio}\\` instead`);\n }\n style = getCompleteStyle(`aspectRatio`, this.rest, { fractions: true });\n if (style)\n return style;\n }\n if (this.consumePeeked(`tint-`)) {\n style = color(`tint`, this.rest, theme === null || theme === void 0 ? void 0 : theme.colors);\n if (style)\n return style;\n }\n if (this.consumePeeked(`bg-`)) {\n style = color(`bg`, this.rest, theme === null || theme === void 0 ? void 0 : theme.backgroundColor);\n if (style)\n return style;\n if (this.consumePeeked(`opacity-`)) {\n style = colorOpacity(`bg`, this.rest);\n if (style)\n return style;\n }\n }\n if (this.consumePeeked(`border`)) {\n style = border(this.rest, theme);\n if (style)\n return style;\n if (this.consumePeeked(`-opacity-`)) {\n style = colorOpacity(`border`, this.rest);\n if (style)\n return style;\n }\n }\n if (this.consumePeeked(`rounded`)) {\n style = borderRadius(this.rest, theme === null || theme === void 0 ? void 0 : theme.borderRadius);\n if (style)\n return style;\n }\n if (this.consumePeeked(`bottom-`)) {\n style = inset(`bottom`, this.rest, this.isNegative, theme === null || theme === void 0 ? void 0 : theme.inset);\n if (style)\n return style;\n }\n if (this.consumePeeked(`top-`)) {\n style = inset(`top`, this.rest, this.isNegative, theme === null || theme === void 0 ? void 0 : theme.inset);\n if (style)\n return style;\n }\n if (this.consumePeeked(`left-`)) {\n style = inset(`left`, this.rest, this.isNegative, theme === null || theme === void 0 ? void 0 : theme.inset);\n if (style)\n return style;\n }\n if (this.consumePeeked(`right-`)) {\n style = inset(`right`, this.rest, this.isNegative, theme === null || theme === void 0 ? void 0 : theme.inset);\n if (style)\n return style;\n }\n if (this.consumePeeked(`inset-`)) {\n style = inset(`inset`, this.rest, this.isNegative, theme === null || theme === void 0 ? void 0 : theme.inset);\n if (style)\n return style;\n }\n if (this.consumePeeked(`flex-`)) {\n if (this.consumePeeked(`grow`)) {\n style = flexGrowShrink(`Grow`, this.rest, theme === null || theme === void 0 ? void 0 : theme.flexGrow);\n }\n else if (this.consumePeeked(`shrink`)) {\n style = flexGrowShrink(`Shrink`, this.rest, theme === null || theme === void 0 ? void 0 : theme.flexShrink);\n }\n else {\n style = flex(this.rest, theme === null || theme === void 0 ? void 0 : theme.flex);\n }\n if (style)\n return style;\n }\n if (this.consumePeeked(`grow`)) {\n style = flexGrowShrink(`Grow`, this.rest, theme === null || theme === void 0 ? void 0 : theme.flexGrow);\n if (style)\n return style;\n }\n if (this.consumePeeked(`shrink`)) {\n style = flexGrowShrink(`Shrink`, this.rest, theme === null || theme === void 0 ? void 0 : theme.flexShrink);\n if (style)\n return style;\n }\n if (this.consumePeeked(`shadow-color-opacity-`)) {\n style = colorOpacity(`shadow`, this.rest);\n if (style)\n return style;\n }\n if (this.consumePeeked(`shadow-opacity-`)) {\n style = shadowOpacity(this.rest);\n if (style)\n return style;\n }\n if (this.consumePeeked(`shadow-offset-`)) {\n style = shadowOffset(this.rest);\n if (style)\n return style;\n }\n if (this.consumePeeked(`shadow-radius-`)) {\n style = unconfiggedStyle(`shadowRadius`, this.rest);\n if (style)\n return style;\n }\n if (this.consumePeeked(`shadow-`)) {\n style = color(`shadow`, this.rest, theme === null || theme === void 0 ? void 0 : theme.colors);\n if (style)\n return style;\n }\n if (this.consumePeeked(`elevation-`)) {\n const elevation = parseInt(this.rest, 10);\n if (!Number.isNaN(elevation)) {\n return complete({ elevation });\n }\n }\n if (this.consumePeeked(`opacity-`)) {\n style = opacity(this.rest, theme === null || theme === void 0 ? void 0 : theme.opacity);\n if (style)\n return style;\n }\n if (this.consumePeeked(`tracking-`)) {\n style = letterSpacing(this.rest, this.isNegative, theme === null || theme === void 0 ? void 0 : theme.letterSpacing);\n if (style)\n return style;\n }\n if (this.consumePeeked(`z-`)) {\n const zIndex = Number((_e = (_d = theme === null || theme === void 0 ? void 0 : theme.zIndex) === null || _d === void 0 ? void 0 : _d[this.rest]) !== null && _e !== void 0 ? _e : this.rest);\n if (!Number.isNaN(zIndex)) {\n return complete({ zIndex });\n }\n }\n warn(`\\`${this.rest}\\` unknown or invalid utility`);\n return null;\n }\n handlePossibleArbitraryBreakpointPrefix(prefix) {\n var _a;\n // save the expense of running the regex with a quick sniff test\n if (prefix[0] !== `m`)\n return false;\n const match = prefix.match(/^(min|max)-(w|h)-\\[([^\\]]+)\\]$/);\n if (!match)\n return false;\n if (!((_a = this.context.device) === null || _a === void 0 ? void 0 : _a.windowDimensions)) {\n this.isNull = true;\n return true;\n }\n const windowDims = this.context.device.windowDimensions;\n const [, type = ``, dir = ``, amount = ``] = match;\n const checkDimension = dir === `w` ? windowDims.width : windowDims.height;\n const parsedAmount = parseNumericValue(amount, this.context);\n if (parsedAmount === null) {\n this.isNull = true;\n return true;\n }\n const [bound, unit] = parsedAmount;\n if (unit !== `px`) {\n this.isNull = true;\n }\n if (type === `min` ? checkDimension >= bound : checkDimension <= bound) {\n this.incrementOrder();\n }\n else {\n this.isNull = true;\n }\n return true;\n }\n advance(amount = 1) {\n this.position += amount;\n this.char = this.string[this.position];\n }\n get rest() {\n return this.peekSlice(0, this.string.length);\n }\n peekSlice(begin, end) {\n return this.string.slice(this.position + begin, this.position + end);\n }\n consumePeeked(string) {\n if (this.peekSlice(0, string.length) === string) {\n this.advance(string.length);\n return true;\n }\n return false;\n }\n parseIsNegative() {\n if (this.char === `-`) {\n this.advance();\n this.isNegative = true;\n this.context.isNegative = true;\n }\n }\n incrementOrder() {\n var _a;\n this.order = ((_a = this.order) !== null && _a !== void 0 ? _a : 0) + 1;\n }\n}\n","export function parseInputs(inputs) {\n let classNames = [];\n let styles = null;\n inputs.forEach((input) => {\n if (typeof input === `string`) {\n classNames = [...classNames, ...split(input)];\n }\n else if (Array.isArray(input)) {\n classNames = [...classNames, ...input.flatMap(split)];\n }\n else if (typeof input === `object` && input !== null) {\n for (const [key, value] of Object.entries(input)) {\n if (typeof value === `boolean`) {\n classNames = [...classNames, ...(value ? split(key) : [])];\n }\n else if (styles) {\n styles[key] = value;\n }\n else {\n styles = { [key]: value };\n }\n }\n }\n });\n return [classNames.filter(Boolean).filter(unique), styles];\n}\nfunction split(str) {\n return str.trim().split(/\\s+/);\n}\nfunction unique(className, index, classes) {\n return classes.indexOf(className) === index;\n}\n","const plugin = (handler) => {\n return { handler, config: undefined };\n};\nexport default plugin;\nexport function getAddedUtilities(plugins) {\n var _a;\n return ((_a = plugins === null || plugins === void 0 ? void 0 : plugins.reduce((utils, plugin) => ({ ...utils, ...callPluginFunction(plugin.handler) }), {})) !== null && _a !== void 0 ? _a : {});\n}\nfunction callPluginFunction(pluginFn) {\n let added = {};\n pluginFn({\n addUtilities: (utilities) => {\n added = utilities;\n },\n ...core,\n });\n return added;\n}\nfunction notImplemented(fn) {\n throw new Error(`tailwindcss plugin function argument object prop \"${fn}\" not implemented`);\n}\nconst core = {\n addComponents: notImplemented,\n addBase: notImplemented,\n addVariant: notImplemented,\n e: notImplemented,\n prefix: notImplemented,\n theme: notImplemented,\n variants: notImplemented,\n config: notImplemented,\n corePlugins: notImplemented,\n matchUtilities: notImplemented,\n postcss: null,\n};\n","import type { TwConfig } from 'twrnc'\n\nimport * as twrnc from 'twrnc/create'\n\ntype TwPlugin = TwConfig['plugins'][number]\n\nconst defaultShadows: TwPlugin = {\n handler: ({ addUtilities }) => {\n const presets = {\n 'shadow-sm': { boxShadow: '0 1px 2px 0 rgb(0 0 0 / 0.05)' },\n shadow: {\n boxShadow:\n '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',\n },\n 'shadow-md': {\n boxShadow:\n '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',\n },\n 'shadow-lg': {\n boxShadow:\n '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',\n },\n 'shadow-xl': {\n boxShadow:\n '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\n },\n 'shadow-2xl': {\n boxShadow: '0 25px 50px -12px rgb(0 0 0 / 0.25)',\n },\n 'shadow-inner': {\n boxShadow: 'inset 0 2px 4px 0 rgb(0 0 0 / 0.05)',\n },\n 'shadow-none': { boxShadow: '0 0 #0000' },\n }\n\n addUtilities(presets)\n },\n}\n\nfunction createTw(config?: TwConfig) {\n return twrnc.create(\n {\n ...config,\n plugins: [...(config?.plugins ?? []), defaultShadows],\n },\n 'web'\n )\n}\n\nlet tw\nexport default function getTw({\n width,\n height,\n config,\n}: {\n width: number\n height: number\n config?: TwConfig\n}) {\n if (!tw) {\n tw = createTw(config)\n }\n tw.setWindowDimensions({ width: +width, height: +height })\n return tw\n}\n","import type { ReactNode } from 'react'\nimport type { TwConfig } from 'twrnc'\nimport type { SatoriNode } from './layout.js'\n\nimport getYoga, { init } from './yoga/index.js'\nimport layout from './layout.js'\nimport FontLoader, { FontOptions } from './font.js'\nimport svg from './builder/svg.js'\nimport { segment } from './utils.js'\nimport { detectLanguageCode, LangCode, Locale } from './language.js'\nimport getTw from './handler/tailwind.js'\nimport { preProcessNode } from './handler/preprocess.js'\nimport { cache, inflightRequests } from './handler/image.js'\n\n// We don't need to initialize the opentype instances every time.\nconst fontCache = new WeakMap()\n\nexport type SatoriOptions = (\n | {\n width: number\n height: number\n }\n | {\n width: number\n }\n | {\n height: number\n }\n) & {\n fonts: FontOptions[]\n embedFont?: boolean\n debug?: boolean\n graphemeImages?: Record\n loadAdditionalAsset?: (\n languageCode: string,\n segment: string\n ) => Promise>\n tailwindConfig?: TwConfig\n onNodeDetected?: (node: SatoriNode) => void\n}\nexport type { SatoriNode }\n\nexport { init }\n\nexport default async function satori(\n element: ReactNode,\n options: SatoriOptions\n): Promise {\n const Yoga = await getYoga()\n if (!Yoga || !Yoga.Node) {\n throw new Error(\n 'Satori is not initialized: expect `yoga` to be loaded, got ' + Yoga\n )\n }\n options.fonts = options.fonts || []\n\n let font: FontLoader\n if (fontCache.has(options.fonts)) {\n font = fontCache.get(options.fonts)\n } else {\n fontCache.set(options.fonts, (font = new FontLoader(options.fonts)))\n }\n\n const definedWidth = 'width' in options ? options.width : undefined\n const definedHeight = 'height' in options ? options.height : undefined\n\n const root = Yoga.Node.create()\n if (definedWidth) root.setWidth(definedWidth)\n if (definedHeight) root.setHeight(definedHeight)\n root.setFlexDirection(Yoga.FLEX_DIRECTION_ROW)\n root.setFlexWrap(Yoga.WRAP_WRAP)\n root.setAlignContent(Yoga.ALIGN_AUTO)\n root.setAlignItems(Yoga.ALIGN_FLEX_START)\n root.setJustifyContent(Yoga.JUSTIFY_FLEX_START)\n root.setOverflow(Yoga.OVERFLOW_HIDDEN)\n\n const graphemeImages = { ...options.graphemeImages }\n // Some Chinese characters have different glyphs in Chinese and\n // Japanese, but their Unicode is the same. If the user needs to display\n // the Chinese and Japanese characters simultaneously correctly, the user\n // needs to download the Chinese and Japanese fonts, respectively.\n // Assuming that the user has downloaded the corresponding Japanese font,\n // to let the program realize that the font has not been downloaded in Chinese,\n // we need to prohibit Japanese as the fallback when executing `engine.has`.\n //\n // This causes a problem. Consider a scenario where we need to display Chinese\n // correctly under tags with `lang=\"ja\"` set. `engine.has` will repeatedly treat\n // the Chinese as missing font because we have removed the Chinese as a fallback.\n // To address this situation, we may need to add `processedWordsMissingFont`\n const processedWordsMissingFonts = new Set()\n\n cache.clear()\n inflightRequests.clear()\n await preProcessNode(element)\n\n const handler = layout(element, {\n id: 'id',\n parentStyle: {},\n inheritedStyle: {\n fontSize: 16,\n fontWeight: 'normal',\n fontFamily: 'serif',\n fontStyle: 'normal',\n lineHeight: 'normal',\n color: 'black',\n opacity: 1,\n whiteSpace: 'normal',\n\n // Special style properties:\n _viewportWidth: definedWidth,\n _viewportHeight: definedHeight,\n },\n parent: root,\n font,\n embedFont: options.embedFont,\n debug: options.debug,\n graphemeImages,\n canLoadAdditionalAssets: !!options.loadAdditionalAsset,\n onNodeDetected: options.onNodeDetected,\n getTwStyles: (tw, style) => {\n const twToStyles = getTw({\n width: definedWidth,\n height: definedHeight,\n config: options.tailwindConfig,\n })\n const twStyles = { ...twToStyles([tw] as any) }\n if (typeof twStyles.lineHeight === 'number') {\n twStyles.lineHeight =\n twStyles.lineHeight / (+twStyles.fontSize || style.fontSize || 16)\n }\n if (twStyles.shadowColor && twStyles.boxShadow) {\n twStyles.boxShadow = (twStyles.boxShadow as string).replace(\n /rgba?\\([^)]+\\)/,\n twStyles.shadowColor as string\n )\n }\n return twStyles\n },\n })\n\n const segmentsMissingFont = (await handler.next()).value as {\n word: string\n locale?: Locale\n }[]\n\n if (options.loadAdditionalAsset) {\n if (segmentsMissingFont.length) {\n const languageCodes = convertToLanguageCodes(segmentsMissingFont)\n const fonts: FontOptions[] = []\n const images: Record = {}\n\n await Promise.all(\n Object.entries(languageCodes).flatMap(([code, segments]) =>\n segments.map((_segment) => {\n const key = `${code}_${_segment}`\n if (processedWordsMissingFonts.has(key)) {\n return null\n }\n processedWordsMissingFonts.add(key)\n\n return options\n .loadAdditionalAsset(code, _segment)\n .then((asset: any) => {\n if (typeof asset === 'string') {\n images[_segment] = asset\n } else if (asset) {\n if (Array.isArray(asset)) {\n fonts.push(...asset)\n } else {\n fonts.push(asset)\n }\n }\n })\n })\n )\n )\n\n // Directly mutate the font provider and the grapheme map.\n font.addFonts(fonts)\n Object.assign(graphemeImages, images)\n }\n }\n\n await handler.next()\n root.calculateLayout(definedWidth, definedHeight, Yoga.DIRECTION_LTR)\n\n const content = (await handler.next([0, 0])).value as string\n\n const computedWidth = root.getComputedWidth()\n const computedHeight = root.getComputedHeight()\n\n root.freeRecursive()\n\n return svg({ width: computedWidth, height: computedHeight, content })\n}\n\nfunction convertToLanguageCodes(\n segmentsMissingFont: { word: string; locale?: Locale }[]\n): Partial> {\n const languageCodes = {}\n let wordsByCode = {}\n\n for (const { word, locale } of segmentsMissingFont) {\n const code = detectLanguageCode(word, locale).join('|')\n wordsByCode[code] = wordsByCode[code] || ''\n wordsByCode[code] += word\n }\n\n Object.keys(wordsByCode).forEach((code: LangCode) => {\n languageCodes[code] = languageCodes[code] || []\n if (code === 'emoji') {\n languageCodes[code].push(\n ...unique(segment(wordsByCode[code], 'grapheme'))\n )\n } else {\n languageCodes[code][0] = languageCodes[code][0] || ''\n languageCodes[code][0] += unique(\n segment(\n wordsByCode[code],\n 'grapheme',\n code === 'unknown' ? undefined : code\n )\n ).join('')\n }\n })\n\n return languageCodes\n}\n\nfunction unique(arr: T[]): T[] {\n return Array.from(new Set(arr))\n}\n","import path from \"node:path\";\nimport fs from \"node:fs/promises\";\nimport type { Readable } from \"node:stream\";\nimport { styleText } from \"node:util\";\nimport satori, { type FontWeight, type SatoriOptions } from \"satori\";\nimport sharp from \"sharp\";\nimport readingTime from \"reading-time\";\nimport type {\n QuartzEmitterPlugin,\n BuildCtx,\n FilePath,\n FullSlug,\n GlobalConfiguration,\n QuartzPluginData,\n} from \"@quartz-community/types\";\nimport { joinSegments } from \"@quartz-community/types\";\nimport { unescapeHTML } from \"@quartz-community/utils\";\nimport { getDate } from \"@quartz-community/utils/sort\";\nimport type { JSX } from \"preact\";\nimport { type ThemeKey } from \"@quartz-community/types\";\nimport { getIconCode } from \"@quartz-community/utils/emoji\";\nimport { type FontSpecification, type Theme, getFontSpecificationName } from \"./theme.js\";\nimport { loadEmoji } from \"./emoji.js\";\n\nconst QUARTZ = \"quartz\";\n\ntype Frontmatter = {\n title?: string;\n description?: string;\n socialDescription?: string;\n socialImage?: string;\n tags?: string[];\n} & Record;\n\n/**\n * Page data passed to user-provided `imageStructure` callbacks.\n *\n * This is deliberately narrower than `@quartz-community/types`'\n * `QuartzPluginData`: it documents exactly which fields the og-image\n * emitter promises to populate before invoking `imageStructure`. The\n * extra `text?` field is synthesised by this plugin from the page's\n * rendered content prior to the callback.\n *\n * Do NOT replace this with `QuartzPluginData`: doing so would advertise\n * fields (e.g. `htmlAst`) that this emitter does not pass through.\n */\nexport type SocialImageFileData = {\n slug?: FullSlug;\n frontmatter?: Frontmatter;\n description?: string;\n text?: string;\n filePath?: string;\n dates?: Record;\n};\n\nconst defaultHeaderWeight = [700];\nconst defaultBodyWeight = [400];\n\nconst write = async (args: {\n ctx: BuildCtx;\n content: string | Buffer | Readable;\n slug: FullSlug;\n ext: string;\n}): Promise => {\n const pathToPage = joinSegments(args.ctx.argv.output, args.slug + args.ext) as FilePath;\n const dir = path.dirname(pathToPage);\n await fs.mkdir(dir, { recursive: true });\n await fs.writeFile(pathToPage, args.content);\n return pathToPage;\n};\n\nfunction getFileExtension(path: string): string | undefined {\n return path.match(/\\.([^./?#]+)(?:[?#]|$)/)?.[1];\n}\n\nfunction isAbsoluteURL(url: string): boolean {\n return /^https?:\\/\\//.test(url);\n}\n\nfunction formatDate(d: Date, locale: string = \"en-US\"): string {\n return d.toLocaleDateString(locale, {\n year: \"numeric\",\n month: \"short\",\n day: \"2-digit\",\n });\n}\n\nexport async function getSatoriFonts(headerFont: FontSpecification, bodyFont: FontSpecification) {\n const headerWeights: FontWeight[] = (\n typeof headerFont === \"string\"\n ? defaultHeaderWeight\n : (headerFont.weights ?? defaultHeaderWeight)\n ) as FontWeight[];\n const bodyWeights: FontWeight[] = (\n typeof bodyFont === \"string\" ? defaultBodyWeight : (bodyFont.weights ?? defaultBodyWeight)\n ) as FontWeight[];\n\n const headerFontName = typeof headerFont === \"string\" ? headerFont : headerFont.name;\n const bodyFontName = typeof bodyFont === \"string\" ? bodyFont : bodyFont.name;\n\n const headerFontPromises = headerWeights.map(async (weight) => {\n const data = await fetchTtf(headerFontName, weight);\n if (!data) return null;\n return {\n name: headerFontName,\n data,\n weight,\n style: \"normal\" as const,\n };\n });\n\n const bodyFontPromises = bodyWeights.map(async (weight) => {\n const data = await fetchTtf(bodyFontName, weight);\n if (!data) return null;\n return {\n name: bodyFontName,\n data,\n weight,\n style: \"normal\" as const,\n };\n });\n\n const [headerFonts, bodyFonts] = await Promise.all([\n Promise.all(headerFontPromises),\n Promise.all(bodyFontPromises),\n ]);\n\n const fonts: SatoriOptions[\"fonts\"] = [\n ...headerFonts.filter((font): font is NonNullable => font !== null),\n ...bodyFonts.filter((font): font is NonNullable => font !== null),\n ];\n\n return fonts;\n}\n\nexport async function fetchTtf(\n rawFontName: string,\n weight: FontWeight,\n): Promise {\n const fontName = rawFontName.replaceAll(\" \", \"+\");\n const cacheKey = `${fontName}-${weight}`;\n const cacheDir = path.join(QUARTZ, \".quartz-cache\", \"fonts\");\n const cachePath = path.join(cacheDir, cacheKey);\n\n try {\n await fs.access(cachePath);\n return fs.readFile(cachePath);\n } catch {\n /* file not cached, will fetch below */\n }\n\n const cssResponse = await fetch(\n `https://fonts.googleapis.com/css2?family=${fontName}:wght@${weight}`,\n );\n const css = await cssResponse.text();\n\n const urlRegex = /url\\((https:\\/\\/fonts.gstatic.com\\/s\\/.*?.ttf)\\)/g;\n const match = urlRegex.exec(css);\n\n if (!match) {\n console.log(\n styleText(\n \"yellow\",\n `\\nWarning: Failed to fetch font ${rawFontName} with weight ${weight}, got ${cssResponse.statusText}`,\n ),\n );\n return;\n }\n\n const fontUrl = match[1];\n if (!fontUrl) {\n return;\n }\n const fontResponse = await fetch(fontUrl);\n const fontData = Buffer.from(await fontResponse.arrayBuffer());\n await fs.mkdir(cacheDir, { recursive: true });\n await fs.writeFile(cachePath, fontData);\n\n return fontData;\n}\n\nexport type SocialImageOptions = {\n colorScheme: ThemeKey;\n height: number;\n width: number;\n excludeRoot: boolean;\n defaultTitle?: string;\n defaultDescription?: string;\n readingTimeText?: (minutes: number) => string;\n imageStructure: (\n options: ImageOptions & {\n userOpts: UserOpts;\n iconBase64?: string;\n },\n ) => JSX.Element;\n};\n\nexport type UserOpts = Omit;\n\nexport type ImageOptions = {\n title: string;\n description: string;\n fonts: SatoriOptions[\"fonts\"];\n cfg: GlobalConfiguration;\n fileData: SocialImageFileData;\n};\n\nexport const defaultImage: SocialImageOptions[\"imageStructure\"] = ({\n cfg,\n userOpts,\n title,\n description,\n fileData,\n iconBase64,\n}) => {\n const { colorScheme } = userOpts;\n const theme = cfg.theme as Theme;\n const fontBreakPoint = 32;\n const useSmallerFont = title.length > fontBreakPoint;\n\n const rawDate = getDate(fileData as QuartzPluginData);\n const date = rawDate ? formatDate(rawDate, cfg.locale) : null;\n\n const { minutes } = readingTime(fileData.text ?? \"\");\n const readingTimeText = (userOpts.readingTimeText ?? ((time) => `${time} min read`))(\n Math.ceil(minutes),\n );\n\n const tags = fileData.frontmatter?.tags ?? [];\n const bodyFont = getFontSpecificationName(theme.typography.body);\n const headerFont = getFontSpecificationName(theme.typography.header);\n\n return (\n \n \n {iconBase64 && (\n \n )}\n \n {cfg.baseUrl}\n
\n
\n\n \n \n {title}\n \n \n\n \n \n {description}\n

\n \n\n \n \n {date && (\n
\n \n \n \n \n \n \n {date}\n
\n )}\n
\n \n \n \n \n {readingTimeText}\n
\n \n\n \n {tags.slice(0, 3).map((tag) => (\n \n #{tag}\n \n ))}\n \n \n \n );\n};\n\nconst defaultOptions: SocialImageOptions = {\n colorScheme: \"lightMode\",\n width: 1200,\n height: 630,\n imageStructure: defaultImage,\n excludeRoot: false,\n defaultTitle: \"Untitled\",\n defaultDescription: \"No description provided\",\n readingTimeText: (minutes) => `${minutes} min read`,\n};\n\nasync function generateSocialImage(\n { cfg, description, fonts, title, fileData }: ImageOptions,\n userOpts: SocialImageOptions,\n): Promise {\n const { width, height } = userOpts;\n const iconPath = joinSegments(QUARTZ, \"static\", \"icon.png\");\n let iconBase64: string | undefined = undefined;\n\n try {\n const iconData = await fs.readFile(iconPath);\n iconBase64 = `data:image/png;base64,${iconData.toString(\"base64\")}`;\n } catch {\n console.warn(styleText(\"yellow\", `Warning: Could not find icon at ${iconPath}`));\n }\n\n const imageComponent = userOpts.imageStructure({\n cfg,\n userOpts,\n title,\n description,\n fonts,\n fileData,\n iconBase64,\n });\n\n const svg = await satori(imageComponent as Parameters[0], {\n width,\n height,\n fonts,\n loadAdditionalAsset: async (languageCode: string, segment: string) => {\n if (languageCode === \"emoji\") {\n return await loadEmoji(getIconCode(segment));\n }\n\n return languageCode;\n },\n });\n\n return sharp(Buffer.from(svg)).webp({ quality: 40 });\n}\n\nasync function processOgImage(\n ctx: BuildCtx,\n fileData: QuartzPluginData,\n fonts: SatoriOptions[\"fonts\"],\n fullOptions: SocialImageOptions,\n) {\n const cfg = ctx.cfg.configuration;\n const slug = fileData.slug!;\n const titleSuffix = cfg.pageTitleSuffix ?? \"\";\n const frontmatter = fileData.frontmatter;\n const title = (frontmatter?.title ?? fullOptions.defaultTitle ?? \"\") + titleSuffix;\n const description =\n frontmatter?.socialDescription ??\n frontmatter?.description ??\n unescapeHTML(fileData.description?.trim() ?? fullOptions.defaultDescription ?? \"\");\n\n const stream = await generateSocialImage(\n {\n title,\n description,\n fonts,\n cfg,\n fileData,\n },\n fullOptions,\n );\n\n return write({\n ctx,\n content: stream,\n slug: `${slug}-og-image` as FullSlug,\n ext: \".webp\",\n });\n}\n\nexport const CustomOgImagesEmitterName = \"CustomOgImages\";\nexport const CustomOgImages: QuartzEmitterPlugin> = (userOpts) => {\n const fullOptions = { ...defaultOptions, ...userOpts };\n\n return {\n name: CustomOgImagesEmitterName,\n getQuartzComponents() {\n return [];\n },\n async *emit(ctx, content, _resources) {\n const cfg = ctx.cfg.configuration;\n const theme = cfg.theme as Theme;\n const headerFont = theme.typography.header;\n const bodyFont = theme.typography.body;\n const fonts = await getSatoriFonts(headerFont, bodyFont);\n\n for (const [_tree, vfile] of content) {\n const data = vfile.data as QuartzPluginData;\n if (data.frontmatter?.socialImage !== undefined) continue;\n yield processOgImage(ctx, data, fonts, fullOptions);\n }\n },\n async *partialEmit(ctx, _content, _resources, changeEvents) {\n const cfg = ctx.cfg.configuration;\n const theme = cfg.theme as Theme;\n const headerFont = theme.typography.header;\n const bodyFont = theme.typography.body;\n const fonts = await getSatoriFonts(headerFont, bodyFont);\n\n for (const changeEvent of changeEvents) {\n if (!changeEvent.file) continue;\n const data = changeEvent.file.data as QuartzPluginData;\n if (data.frontmatter?.socialImage !== undefined) continue;\n if (changeEvent.type === \"add\" || changeEvent.type === \"change\") {\n yield processOgImage(ctx, data, fonts, fullOptions);\n }\n }\n },\n externalResources: (ctx) => {\n if (!ctx.cfg.configuration.baseUrl) {\n return {};\n }\n\n const baseUrl = ctx.cfg.configuration.baseUrl;\n return {\n additionalHead: [\n (pageData: QuartzPluginData) => {\n const isRealFile = pageData.filePath !== undefined;\n let userDefinedOgImagePath = pageData.frontmatter?.socialImage;\n\n if (userDefinedOgImagePath) {\n userDefinedOgImagePath = isAbsoluteURL(userDefinedOgImagePath)\n ? userDefinedOgImagePath\n : `https://${baseUrl}/static/${userDefinedOgImagePath}`;\n }\n\n const generatedOgImagePath = isRealFile\n ? `https://${baseUrl}/${pageData.slug!}-og-image.webp`\n : undefined;\n const defaultOgImagePath = `https://${baseUrl}/static/og-image.png`;\n const ogImagePath =\n userDefinedOgImagePath ?? generatedOgImagePath ?? defaultOgImagePath;\n const ogImageMimeType = `image/${getFileExtension(ogImagePath) ?? \"png\"}`;\n return (\n <>\n {!userDefinedOgImagePath && (\n <>\n \n \n \n )}\n \n \n \n \n \n );\n },\n ],\n };\n },\n };\n};\n","import type { Root as HtmlRoot } from \"hast\";\nimport type { Root as MdRoot } from \"mdast\";\nimport type { Data, VFile } from \"vfile\";\nimport type { PluggableList } from \"unified\";\n\n// ============================================================================\n// Path Types - Branded string types for type-safe file paths\n// ============================================================================\n\nexport type FilePath = string & { _brand: \"FilePath\" };\nexport type FullSlug = string & { _brand: \"FullSlug\" };\nexport type SimpleSlug = string & { _brand: \"SimpleSlug\" };\n\nexport function joinSegments(...segments: string[]): FilePath {\n return segments\n .filter((segment) => segment.length > 0)\n .join(\"/\")\n .replace(/\\/+/g, \"/\") as FilePath;\n}\n\n// ============================================================================\n// Resource Types - CSS/JS resources that plugins can inject\n// ============================================================================\n\nexport type JSResource =\n | {\n loadTime: \"beforeDOMReady\" | \"afterDOMReady\";\n moduleType?: \"module\";\n spaPreserve?: boolean;\n src: string;\n contentType: \"external\";\n }\n | {\n loadTime: \"beforeDOMReady\" | \"afterDOMReady\";\n moduleType?: \"module\";\n spaPreserve?: boolean;\n script: string;\n contentType: \"inline\";\n };\n\nexport type CSSResource = {\n content: string;\n inline?: boolean;\n spaPreserve?: boolean;\n};\n\nexport interface StaticResources {\n css: CSSResource[];\n js: JSResource[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n additionalHead: any[];\n}\n\n// ============================================================================\n// Config Types - Quartz configuration\n// ============================================================================\n\n/**\n * Flat configuration object that components receive as `cfg` prop.\n * This matches Quartz's `GlobalConfiguration` — the resolved config\n * passed to components at render time (i.e. `ctx.cfg.configuration`).\n */\nexport interface GlobalConfiguration {\n pageTitle?: string;\n pageTitleSuffix?: string;\n enableSPA?: boolean;\n enablePopovers?: boolean;\n analytics?: unknown;\n ignorePatterns?: string[];\n defaultDateType?: string;\n baseUrl?: string;\n theme?: unknown;\n locale?: string;\n}\n\n/**\n * Full Quartz config with nested `configuration` property.\n * This is what `BuildCtx.cfg` holds — used in plugin hooks\n * (transformers, filters, emitters), NOT in component props.\n */\nexport interface QuartzConfig {\n configuration: GlobalConfiguration;\n plugins?: unknown;\n externalPlugins?: unknown;\n}\n\n// ============================================================================\n// Context Types - Build context passed to plugin hooks\n// ============================================================================\n\nexport interface Argv {\n directory: string;\n verbose: boolean;\n output: string;\n serve: boolean;\n watch: boolean;\n port: number;\n wsPort: number;\n remoteDevHost?: string;\n concurrency?: number;\n}\n\nexport interface BuildCtx {\n buildId: string;\n argv: Argv;\n cfg: QuartzConfig;\n allSlugs: FullSlug[];\n allFiles: FilePath[];\n incremental: boolean;\n}\n\n// ============================================================================\n// VFile Types - Content data types\n// ============================================================================\n\nexport type QuartzPluginData = Data;\nexport type MarkdownContent = [MdRoot, VFile];\nexport type ProcessedContent = [HtmlRoot, VFile];\n\n// ============================================================================\n// Core Component Types - The contract between Quartz and plugins\n// ============================================================================\n\nexport type QuartzComponentProps = {\n ctx: unknown;\n externalResources: StaticResources;\n fileData: QuartzPluginData & Record;\n cfg: GlobalConfiguration;\n children: unknown;\n tree: unknown;\n allFiles: (QuartzPluginData & Record)[];\n displayClass?: \"mobile-only\" | \"desktop-only\";\n [key: string]: unknown;\n};\n\nexport type QuartzComponent = ((props: QuartzComponentProps) => unknown) & {\n css?: string | string[] | undefined;\n beforeDOMLoaded?: string | string[] | undefined;\n afterDOMLoaded?: string | string[] | undefined;\n};\n\nexport type QuartzComponentConstructor<\n Options extends object | undefined = undefined,\n> = (opts?: Options) => QuartzComponent;\n\nexport type StringResource = string | string[];\n\n// ============================================================================\n// Plugin Types - What Quartz expects from plugins\n// ============================================================================\n\ntype OptionType = object | undefined;\ntype ExternalResourcesFn = (\n ctx: BuildCtx,\n) => Partial | undefined;\n\nexport type { ExternalResourcesFn };\n\nexport interface PluginTypes {\n transformers: QuartzTransformerPluginInstance[];\n filters: QuartzFilterPluginInstance[];\n emitters: QuartzEmitterPluginInstance[];\n pageTypes: QuartzPageTypePluginInstance[];\n}\n\nexport type QuartzTransformerPlugin = (\n opts?: Options,\n) => QuartzTransformerPluginInstance;\n\nexport type QuartzTransformerPluginInstance = {\n name: string;\n textTransform?: (ctx: BuildCtx, src: string) => string;\n markdownPlugins?: (ctx: BuildCtx) => PluggableList;\n htmlPlugins?: (ctx: BuildCtx) => PluggableList;\n externalResources?: ExternalResourcesFn;\n};\n\nexport type QuartzFilterPlugin = (\n opts?: Options,\n) => QuartzFilterPluginInstance;\n\nexport type QuartzFilterPluginInstance = {\n name: string;\n shouldPublish(ctx: BuildCtx, content: ProcessedContent): boolean;\n};\n\nexport type ChangeEvent = {\n type: \"add\" | \"change\" | \"delete\";\n path: FilePath;\n file?: VFile;\n};\n\nexport type QuartzEmitterPlugin = (\n opts?: Options,\n) => QuartzEmitterPluginInstance;\n\nexport type QuartzEmitterPluginInstance = {\n name: string;\n emit: (\n ctx: BuildCtx,\n content: ProcessedContent[],\n resources: StaticResources,\n ) => Promise | AsyncGenerator;\n partialEmit?: (\n ctx: BuildCtx,\n content: ProcessedContent[],\n resources: StaticResources,\n changeEvents: ChangeEvent[],\n ) => Promise | AsyncGenerator | null;\n getQuartzComponents?: (ctx: BuildCtx) => QuartzComponent[];\n externalResources?: ExternalResourcesFn;\n};\n\n// ============================================================================\n// PageType Plugin Types - Declarative page rendering plugins\n// ============================================================================\n\n/**\n * Matcher function: determines if a source file belongs to a page type.\n * Returns true if the page type should own this file.\n */\nexport type PageMatcher = (args: {\n slug: FullSlug;\n fileData: QuartzPluginData & Record;\n cfg: GlobalConfiguration;\n}) => boolean;\n\n/**\n * Virtual page descriptor for page types that generate pages\n * from aggregated data (e.g., tag indexes, folder listings).\n */\nexport interface VirtualPage {\n slug: FullSlug;\n title: string;\n data: Partial & Record;\n}\n\n/**\n * Generator function: produces virtual pages from all processed content.\n * Used by page types that don't match source files but instead create\n * synthetic pages (e.g., one page per tag, one page per folder).\n */\nexport type PageGenerator = (args: {\n content: ProcessedContent[];\n cfg: GlobalConfiguration;\n ctx: BuildCtx;\n}) => VirtualPage[];\n\n/** A function that mutates a HAST tree at render time, when allFiles is available. */\nexport type TreeTransform = (\n root: HtmlRoot,\n slug: FullSlug,\n componentData: QuartzComponentProps,\n) => void;\n\n/**\n * A PageType plugin definition.\n *\n * PageTypes are a declarative abstraction over page-rendering emitters.\n * Each PageType declares which files it owns (via `match`), optionally\n * generates virtual pages (via `generate`), and provides a body component\n * and layout reference for rendering.\n */\nexport type QuartzPageTypePlugin = (\n opts?: Options,\n) => QuartzPageTypePluginInstance;\n\nexport type QuartzPageTypePluginInstance = {\n name: string;\n /** Higher priority wins when multiple page types match the same file. Default: 0. */\n priority?: number;\n /** File extensions this page type handles (e.g. [\".canvas\"]). Files with these extensions are excluded from the default asset emitter and processed by generate() instead. */\n fileExtensions?: string[];\n /** Determines which source files this page type owns. */\n match: PageMatcher;\n /** Produces virtual pages from aggregated content data. */\n generate?: PageGenerator;\n /** Layout key — references a key in `layout.byPageType`. */\n layout: string;\n /** Optional page frame name (e.g. \"default\", \"full-width\", \"canvas\"). Defaults to \"default\". */\n frame?: string;\n /** The body component constructor for this page type. */\n body: QuartzComponentConstructor;\n /** Optional render-time HAST tree transforms (e.g. resolving inline codeblocks). */\n treeTransforms?: (ctx: BuildCtx) => TreeTransform[];\n};\n\n// ============================================================================\n// PageFrame Types — Custom page layout frames\n// ============================================================================\n\n/**\n * Props passed to a PageFrame's render function.\n * Contains the resolved layout components and the shared component data.\n */\nexport interface PageFrameProps {\n /** Component data shared across all components on the page */\n componentData: QuartzComponentProps;\n /** The Head component (rendered in ) — NOT used by frames, included for completeness */\n head: QuartzComponent;\n /** Header slot components (rendered inside
) */\n header: QuartzComponent[];\n /** Components rendered before the page body */\n beforeBody: QuartzComponent[];\n /** The page body component (Content) */\n pageBody: QuartzComponent;\n /** Components rendered after the page body */\n afterBody: QuartzComponent[];\n /** Left sidebar components */\n left: QuartzComponent[];\n /** Right sidebar components */\n right: QuartzComponent[];\n /** Footer component */\n footer: QuartzComponent;\n}\n\n/**\n * A PageFrame defines the inner HTML structure of a page inside the\n * `
` shell. Different frames can produce completely\n * different layouts (e.g. with/without sidebars, horizontal scroll, etc.)\n * while the outer shell (html, head, body, quartz-root) remains stable\n * for SPA navigation.\n *\n * The `render` function returns `unknown` to avoid coupling to a specific\n * JSX runtime (Preact, React, etc.). Quartz core casts this to JSX.Element.\n */\nexport interface PageFrame {\n /** Unique name for this frame (e.g. \"default\", \"full-width\", \"canvas\") */\n name: string;\n /** Render the inner page structure. Returns a JSX tree to be placed inside Body > #quartz-body. */\n render: (props: PageFrameProps) => unknown;\n /** Optional CSS string to include when this frame is active */\n css?: string;\n}\n\nexport type HTMLAttributes = Record<\n string,\n string | number | boolean | undefined\n>;\n\nexport type EventHandler = (event: Event) => void;\n\nexport type CleanupFunction = () => void;\n\nexport type ClassValue =\n | string\n | number\n | boolean\n | undefined\n | null\n | ClassValue[];\n\n// ============================================================================\n// Content Index Types - Data shape for contentIndex.json\n// ============================================================================\n\nexport type ContentDetails = {\n slug: FullSlug;\n filePath: FilePath;\n title: string;\n links: string[];\n tags: string[];\n content: string;\n richContent?: string;\n date?: Date;\n description?: string;\n};\n\nexport type ContentIndex = Record;\n\n// ============================================================================\n// Sort & Theme Types\n// ============================================================================\n\nexport type SortFn = (f1: QuartzPluginData, f2: QuartzPluginData) => number;\n\nexport type ThemeKey = \"lightMode\" | \"darkMode\";\n\nexport type ValidDateType = \"created\" | \"modified\" | \"published\";\n\n// ============================================================================\n// VFile DataMap Augmentation — canonical vfile shape for Quartz\n// ============================================================================\n\ndeclare module \"vfile\" {\n interface DataMap {\n slug: FullSlug;\n filePath: FilePath;\n relativePath: FilePath;\n description: string;\n text: string;\n links: SimpleSlug[];\n toc: { depth: number; text: string; slug: string }[];\n collapseToc: boolean;\n blocks: Record;\n htmlAst: import(\"hast\").Root;\n hasMermaidDiagram: boolean | undefined;\n frontmatter: { [key: string]: unknown } & {\n title: string;\n } & Partial<{\n tags: string[];\n aliases: string[];\n modified: string;\n created: string;\n published: string;\n description: string;\n socialDescription: string;\n publish: boolean | string;\n draft: boolean | string;\n lang: string;\n enableToc: string;\n cssclasses: string[];\n socialImage: string;\n comments: boolean | string;\n }>;\n dates: {\n created: Date;\n modified: Date;\n published: Date;\n };\n defaultDateType?: ValidDateType;\n }\n}\n","const U200D = String.fromCharCode(8205);\nconst UFE0Fg = /\\uFE0F/g;\n\nexport function getIconCode(char: string): string {\n return toCodePoint(char.indexOf(U200D) < 0 ? char.replace(UFE0Fg, \"\") : char);\n}\n\nfunction toCodePoint(unicodeSurrogates: string): string {\n const r: string[] = [];\n let c = 0,\n p = 0,\n i = 0;\n\n while (i < unicodeSurrogates.length) {\n c = unicodeSurrogates.charCodeAt(i++);\n if (p) {\n r.push((65536 + ((p - 55296) << 10) + (c - 56320)).toString(16));\n p = 0;\n } else if (55296 <= c && c <= 56319) {\n p = c;\n } else {\n r.push(c.toString(16));\n }\n }\n return r.join(\"-\");\n}\n","import type { QuartzPluginData, ValidDateType, SortFn } from \"@quartz-community/types\";\n\nexport function getDate(data: QuartzPluginData): Date | undefined {\n const defaultDateType = data.defaultDateType as ValidDateType | undefined;\n if (!defaultDateType) {\n return undefined;\n }\n const dates = data.dates as Record | undefined;\n return dates?.[defaultDateType];\n}\n\nexport function byDateAndAlphabetical(): SortFn {\n return (f1, f2) => {\n const f1Date = getDate(f1);\n const f2Date = getDate(f2);\n if (f1Date && f2Date) {\n return f2Date.getTime() - f1Date.getTime();\n } else if (f1Date && !f2Date) {\n return -1;\n } else if (!f1Date && f2Date) {\n return 1;\n }\n\n const f1Title = (\n ((f1.frontmatter as Record)?.title as string) ?? \"\"\n ).toLowerCase();\n const f2Title = (\n ((f2.frontmatter as Record)?.title as string) ?? \"\"\n ).toLowerCase();\n return f1Title.localeCompare(f2Title);\n };\n}\n","export interface ColorScheme {\n light: string;\n lightgray: string;\n gray: string;\n darkgray: string;\n dark: string;\n secondary: string;\n tertiary: string;\n highlight: string;\n textHighlight: string;\n}\n\ninterface Colors {\n lightMode: ColorScheme;\n darkMode: ColorScheme;\n}\n\nexport type FontSpecification =\n | string\n | {\n name: string;\n weights?: number[];\n includeItalic?: boolean;\n };\n\nexport interface Theme {\n typography: {\n title?: FontSpecification;\n header: FontSpecification;\n body: FontSpecification;\n code: FontSpecification;\n };\n cdnCaching: boolean;\n colors: Colors;\n fontOrigin: \"googleFonts\" | \"local\";\n}\n\nexport type ThemeKey = keyof Colors;\n\nexport function getFontSpecificationName(spec: FontSpecification): string {\n if (typeof spec === \"string\") {\n return spec;\n }\n return spec.name;\n}\n","type EmojiMap = {\n codePointToName: Record;\n nameToBase64: Record;\n};\n\nlet emojimap: EmojiMap | undefined = undefined;\nexport async function loadEmoji(code: string) {\n if (!emojimap) {\n const path = await import(\"node:path\");\n const fs = await import(\"node:fs/promises\");\n const mapPath = path.join(\"quartz\", \"util\", \"emojimap.json\");\n const data = JSON.parse(await fs.readFile(mapPath, \"utf-8\"));\n emojimap = data;\n }\n\n const name = emojimap!.codePointToName[`${code.toUpperCase()}`];\n if (!name) throw new Error(`codepoint ${code} not found in map`);\n\n const b64 = emojimap!.nameToBase64[name];\n if (!b64) throw new Error(`name ${name} not found in map`);\n\n return b64;\n}\n"]} \ No newline at end of file diff --git a/tsup.config.ts b/tsup.config.ts index 3948652..cec8e5d 100644 --- a/tsup.config.ts +++ b/tsup.config.ts @@ -1,18 +1,6 @@ import { defineConfig } from "tsup"; import type { BuildOptions } from "esbuild"; -const SINGLETON_EXTERNALS = [ - "preact", - "preact/hooks", - "preact/jsx-runtime", - "preact/compat", - "@jackyzha0/quartz", - "@jackyzha0/quartz/*", - "vfile", - "vfile/*", - "unified", -]; - export default defineConfig({ entry: { index: "src/index.ts", @@ -24,13 +12,9 @@ export default defineConfig({ treeshake: true, target: "es2022", splitting: false, - noExternal: [/.*/], + noExternal: ["@quartz-community/types", "@quartz-community/utils"], outDir: "dist", platform: "node", - external: SINGLETON_EXTERNALS, - banner: { - js: 'import { createRequire } from "module"; const require = createRequire(import.meta.url);', - }, esbuildOptions(options: BuildOptions) { options.jsx = "automatic"; options.jsxImportSource = "preact";