| @@ -1,28 +1,28 @@ | ||
| 1 | 1 | /*! |
| 2 | - * html2canvas 1.4.1 <https://html2canvas.hertzen.com> | |
| 3 | - * Copyright (c) 2022 Niklas von Hertzen <https://hertzen.com> | |
| 2 | + * html2canvas 1.0.0-rc.7 <https://html2canvas.hertzen.com> | |
| 3 | + * Copyright (c) 2020 Niklas von Hertzen <https://hertzen.com> | |
| 4 | 4 | * Released under MIT License |
| 5 | 5 | */ |
| 6 | 6 | (function (global, factory) { |
| 7 | 7 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : |
| 8 | - typeof define === 'function' && define.amd ? define(factory) : | |
| 9 | - (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.html2canvas = factory()); | |
| 10 | -}(this, (function () { 'use strict'; | |
| 8 | + typeof define === 'function' && define.amd ? define(factory) : | |
| 9 | + (global = global || self, global.html2canvas = factory()); | |
| 10 | +}(this, function () { 'use strict'; | |
| 11 | 11 | |
| 12 | 12 | /*! ***************************************************************************** |
| 13 | - Copyright (c) Microsoft Corporation. | |
| 13 | + Copyright (c) Microsoft Corporation. All rights reserved. | |
| 14 | + Licensed under the Apache License, Version 2.0 (the "License"); you may not use | |
| 15 | + this file except in compliance with the License. You may obtain a copy of the | |
| 16 | + License at http://www.apache.org/licenses/LICENSE-2.0 | |
| 14 | 17 | |
| 15 | - Permission to use, copy, modify, and/or distribute this software for any | |
| 16 | - purpose with or without fee is hereby granted. | |
| 18 | + THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
| 19 | + KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED | |
| 20 | + WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, | |
| 21 | + MERCHANTABLITY OR NON-INFRINGEMENT. | |
| 17 | 22 | |
| 18 | - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH | |
| 19 | - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY | |
| 20 | - AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, | |
| 21 | - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM | |
| 22 | - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR | |
| 23 | - OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR | |
| 24 | - PERFORMANCE OF THIS SOFTWARE. | |
| 23 | + See the Apache Version 2.0 License for specific language governing permissions | |
| 24 | + and limitations under the License. | |
| 25 | 25 | ***************************************************************************** */ |
| 26 | 26 | /* global Reflect, Promise */ |
| 27 | 27 | |
| 28 | 28 | var extendStatics = function(d, b) { |
| @@ -27,15 +27,13 @@ | ||
| 27 | 27 | |
| 28 | 28 | var extendStatics = function(d, b) { |
| 29 | 29 | extendStatics = Object.setPrototypeOf || |
| 30 | 30 | ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || |
| 31 | - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; | |
| 31 | + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; | |
| 32 | 32 | return extendStatics(d, b); |
| 33 | 33 | }; |
| 34 | 34 | |
| 35 | 35 | function __extends(d, b) { |
| 36 | - if (typeof b !== "function" && b !== null) | |
| 37 | - throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); | |
| 38 | 36 | extendStatics(d, b); |
| 39 | 37 | function __() { this.constructor = d; } |
| 40 | 38 | d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); |
| 41 | 39 | } |
| @@ -51,13 +49,12 @@ | ||
| 51 | 49 | return __assign.apply(this, arguments); |
| 52 | 50 | }; |
| 53 | 51 | |
| 54 | 52 | function __awaiter(thisArg, _arguments, P, generator) { |
| 55 | - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } | |
| 56 | 53 | return new (P || (P = Promise))(function (resolve, reject) { |
| 57 | 54 | function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } |
| 58 | 55 | function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } |
| 59 | - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } | |
| 56 | + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } | |
| 60 | 57 | step((generator = generator.apply(thisArg, _arguments || [])).next()); |
| 61 | 58 | }); |
| 62 | 59 | } |
| 63 | 60 | |
| @@ -88,42 +85,25 @@ | ||
| 88 | 85 | if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; |
| 89 | 86 | } |
| 90 | 87 | } |
| 91 | 88 | |
| 92 | - function __spreadArray(to, from, pack) { | |
| 93 | - if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { | |
| 94 | - if (ar || !(i in from)) { | |
| 95 | - if (!ar) ar = Array.prototype.slice.call(from, 0, i); | |
| 96 | - ar[i] = from[i]; | |
| 97 | - } | |
| 98 | - } | |
| 99 | - return to.concat(ar || from); | |
| 100 | - } | |
| 101 | - | |
| 102 | 89 | var Bounds = /** @class */ (function () { |
| 103 | - function Bounds(left, top, width, height) { | |
| 104 | - this.left = left; | |
| 105 | - this.top = top; | |
| 106 | - this.width = width; | |
| 107 | - this.height = height; | |
| 90 | + function Bounds(x, y, w, h) { | |
| 91 | + this.left = x; | |
| 92 | + this.top = y; | |
| 93 | + this.width = w; | |
| 94 | + this.height = h; | |
| 108 | 95 | } |
| 109 | 96 | Bounds.prototype.add = function (x, y, w, h) { |
| 110 | 97 | return new Bounds(this.left + x, this.top + y, this.width + w, this.height + h); |
| 111 | 98 | }; |
| 112 | - Bounds.fromClientRect = function (context, clientRect) { | |
| 113 | - return new Bounds(clientRect.left + context.windowBounds.left, clientRect.top + context.windowBounds.top, clientRect.width, clientRect.height); | |
| 99 | + Bounds.fromClientRect = function (clientRect) { | |
| 100 | + return new Bounds(clientRect.left, clientRect.top, clientRect.width, clientRect.height); | |
| 114 | 101 | }; |
| 115 | - Bounds.fromDOMRectList = function (context, domRectList) { | |
| 116 | - var domRect = Array.from(domRectList).find(function (rect) { return rect.width !== 0; }); | |
| 117 | - return domRect | |
| 118 | - ? new Bounds(domRect.left + context.windowBounds.left, domRect.top + context.windowBounds.top, domRect.width, domRect.height) | |
| 119 | - : Bounds.EMPTY; | |
| 120 | - }; | |
| 121 | - Bounds.EMPTY = new Bounds(0, 0, 0, 0); | |
| 122 | 102 | return Bounds; |
| 123 | 103 | }()); |
| 124 | - var parseBounds = function (context, node) { | |
| 125 | - return Bounds.fromClientRect(context, node.getBoundingClientRect()); | |
| 104 | + var parseBounds = function (node) { | |
| 105 | + return Bounds.fromClientRect(node.getBoundingClientRect()); | |
| 126 | 106 | }; |
| 127 | 107 | var parseDocumentSize = function (document) { |
| 128 | 108 | var body = document.body; |
| 129 | 109 | var documentElement = document.documentElement; |
| @@ -135,13 +115,13 @@ | ||
| 135 | 115 | return new Bounds(0, 0, width, height); |
| 136 | 116 | }; |
| 137 | 117 | |
| 138 | 118 | /* |
| 139 | - * css-line-break 2.1.0 <https://github.com/niklasvh/css-line-break#readme> | |
| 140 | - * Copyright (c) 2022 Niklas von Hertzen <https://hertzen.com> | |
| 119 | + * css-line-break 1.1.1 <https://github.com/niklasvh/css-line-break#readme> | |
| 120 | + * Copyright (c) 2019 Niklas von Hertzen <https://hertzen.com> | |
| 141 | 121 | * Released under MIT License |
| 142 | 122 | */ |
| 143 | - var toCodePoints$1 = function (str) { | |
| 123 | + var toCodePoints = function (str) { | |
| 144 | 124 | var codePoints = []; |
| 145 | 125 | var i = 0; |
| 146 | 126 | var length = str.length; |
| 147 | 127 | while (i < length) { |
| @@ -161,9 +141,9 @@ | ||
| 161 | 141 | } |
| 162 | 142 | } |
| 163 | 143 | return codePoints; |
| 164 | 144 | }; |
| 165 | - var fromCodePoint$1 = function () { | |
| 145 | + var fromCodePoint = function () { | |
| 166 | 146 | var codePoints = []; |
| 167 | 147 | for (var _i = 0; _i < arguments.length; _i++) { |
| 168 | 148 | codePoints[_i] = arguments[_i]; |
| 169 | 149 | } |
| @@ -183,9 +163,9 @@ | ||
| 183 | 163 | codeUnits.push(codePoint); |
| 184 | 164 | } |
| 185 | 165 | else { |
| 186 | 166 | codePoint -= 0x10000; |
| 187 | - codeUnits.push((codePoint >> 10) + 0xd800, (codePoint % 0x400) + 0xdc00); | |
| 167 | + codeUnits.push((codePoint >> 10) + 0xd800, codePoint % 0x400 + 0xdc00); | |
| 188 | 168 | } |
| 189 | 169 | if (index + 1 === length || codeUnits.length > 0x4000) { |
| 190 | 170 | result += String.fromCharCode.apply(String, codeUnits); |
| 191 | 171 | codeUnits.length = 0; |
| @@ -192,27 +172,15 @@ | ||
| 192 | 172 | } |
| 193 | 173 | } |
| 194 | 174 | return result; |
| 195 | 175 | }; |
| 196 | - var chars$2 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; | |
| 176 | + var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; | |
| 197 | 177 | // Use a lookup table to find the index. |
| 198 | - var lookup$2 = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256); | |
| 199 | - for (var i$2 = 0; i$2 < chars$2.length; i$2++) { | |
| 200 | - lookup$2[chars$2.charCodeAt(i$2)] = i$2; | |
| 178 | + var lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256); | |
| 179 | + for (var i = 0; i < chars.length; i++) { | |
| 180 | + lookup[chars.charCodeAt(i)] = i; | |
| 201 | 181 | } |
| 202 | - | |
| 203 | - /* | |
| 204 | - * utrie 1.0.2 <https://github.com/niklasvh/utrie> | |
| 205 | - * Copyright (c) 2022 Niklas von Hertzen <https://hertzen.com> | |
| 206 | - * Released under MIT License | |
| 207 | - */ | |
| 208 | - var chars$1$1 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; | |
| 209 | - // Use a lookup table to find the index. | |
| 210 | - var lookup$1$1 = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256); | |
| 211 | - for (var i$1$1 = 0; i$1$1 < chars$1$1.length; i$1$1++) { | |
| 212 | - lookup$1$1[chars$1$1.charCodeAt(i$1$1)] = i$1$1; | |
| 213 | - } | |
| 214 | - var decode$1 = function (base64) { | |
| 182 | + var decode = function (base64) { | |
| 215 | 183 | var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4; |
| 216 | 184 | if (base64[base64.length - 1] === '=') { |
| 217 | 185 | bufferLength--; |
| 218 | 186 | if (base64[base64.length - 2] === '=') { |
| @@ -219,18 +187,18 @@ | ||
| 219 | 187 | bufferLength--; |
| 220 | 188 | } |
| 221 | 189 | } |
| 222 | 190 | var buffer = typeof ArrayBuffer !== 'undefined' && |
| 223 | - typeof Uint8Array !== 'undefined' && | |
| 224 | - typeof Uint8Array.prototype.slice !== 'undefined' | |
| 191 | + typeof Uint8Array !== 'undefined' && | |
| 192 | + typeof Uint8Array.prototype.slice !== 'undefined' | |
| 225 | 193 | ? new ArrayBuffer(bufferLength) |
| 226 | 194 | : new Array(bufferLength); |
| 227 | 195 | var bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer); |
| 228 | 196 | for (i = 0; i < len; i += 4) { |
| 229 | - encoded1 = lookup$1$1[base64.charCodeAt(i)]; | |
| 230 | - encoded2 = lookup$1$1[base64.charCodeAt(i + 1)]; | |
| 231 | - encoded3 = lookup$1$1[base64.charCodeAt(i + 2)]; | |
| 232 | - encoded4 = lookup$1$1[base64.charCodeAt(i + 3)]; | |
| 197 | + encoded1 = lookup[base64.charCodeAt(i)]; | |
| 198 | + encoded2 = lookup[base64.charCodeAt(i + 1)]; | |
| 199 | + encoded3 = lookup[base64.charCodeAt(i + 2)]; | |
| 200 | + encoded4 = lookup[base64.charCodeAt(i + 3)]; | |
| 233 | 201 | bytes[p++] = (encoded1 << 2) | (encoded2 >> 4); |
| 234 | 202 | bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2); |
| 235 | 203 | bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63); |
| 236 | 204 | } |
| @@ -235,9 +203,9 @@ | ||
| 235 | 203 | bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63); |
| 236 | 204 | } |
| 237 | 205 | return buffer; |
| 238 | 206 | }; |
| 239 | - var polyUint16Array$1 = function (buffer) { | |
| 207 | + var polyUint16Array = function (buffer) { | |
| 240 | 208 | var length = buffer.length; |
| 241 | 209 | var bytes = []; |
| 242 | 210 | for (var i = 0; i < length; i += 2) { |
| 243 | 211 | bytes.push((buffer[i + 1] << 8) | buffer[i]); |
| @@ -243,9 +211,9 @@ | ||
| 243 | 211 | bytes.push((buffer[i + 1] << 8) | buffer[i]); |
| 244 | 212 | } |
| 245 | 213 | return bytes; |
| 246 | 214 | }; |
| 247 | - var polyUint32Array$1 = function (buffer) { | |
| 215 | + var polyUint32Array = function (buffer) { | |
| 248 | 216 | var length = buffer.length; |
| 249 | 217 | var bytes = []; |
| 250 | 218 | for (var i = 0; i < length; i += 4) { |
| 251 | 219 | bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]); |
| @@ -253,11 +221,11 @@ | ||
| 253 | 221 | return bytes; |
| 254 | 222 | }; |
| 255 | 223 | |
| 256 | 224 | /** Shift size for getting the index-2 table offset. */ |
| 257 | - var UTRIE2_SHIFT_2$1 = 5; | |
| 225 | + var UTRIE2_SHIFT_2 = 5; | |
| 258 | 226 | /** Shift size for getting the index-1 table offset. */ |
| 259 | - var UTRIE2_SHIFT_1$1 = 6 + 5; | |
| 227 | + var UTRIE2_SHIFT_1 = 6 + 5; | |
| 260 | 228 | /** |
| 261 | 229 | * Shift size for shifting left the index array values. |
| 262 | 230 | * Increases possible data size with 16-bit index values at the cost |
| 263 | 231 | * of compactability. |
| @@ -262,14 +230,14 @@ | ||
| 262 | 230 | * Increases possible data size with 16-bit index values at the cost |
| 263 | 231 | * of compactability. |
| 264 | 232 | * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY. |
| 265 | 233 | */ |
| 266 | - var UTRIE2_INDEX_SHIFT$1 = 2; | |
| 234 | + var UTRIE2_INDEX_SHIFT = 2; | |
| 267 | 235 | /** |
| 268 | 236 | * Difference between the two shift sizes, |
| 269 | 237 | * for getting an index-1 offset from an index-2 offset. 6=11-5 |
| 270 | 238 | */ |
| 271 | - var UTRIE2_SHIFT_1_2$1 = UTRIE2_SHIFT_1$1 - UTRIE2_SHIFT_2$1; | |
| 239 | + var UTRIE2_SHIFT_1_2 = UTRIE2_SHIFT_1 - UTRIE2_SHIFT_2; | |
| 272 | 240 | /** |
| 273 | 241 | * The part of the index-2 table for U+D800..U+DBFF stores values for |
| 274 | 242 | * lead surrogate code _units_ not code _points_. |
| 275 | 243 | * Values for lead surrogate code _points_ are indexed with this portion of the table. |
| @@ -274,22 +242,22 @@ | ||
| 274 | 242 | * lead surrogate code _units_ not code _points_. |
| 275 | 243 | * Values for lead surrogate code _points_ are indexed with this portion of the table. |
| 276 | 244 | * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.) |
| 277 | 245 | */ |
| 278 | - var UTRIE2_LSCP_INDEX_2_OFFSET$1 = 0x10000 >> UTRIE2_SHIFT_2$1; | |
| 246 | + var UTRIE2_LSCP_INDEX_2_OFFSET = 0x10000 >> UTRIE2_SHIFT_2; | |
| 279 | 247 | /** Number of entries in a data block. 32=0x20 */ |
| 280 | - var UTRIE2_DATA_BLOCK_LENGTH$1 = 1 << UTRIE2_SHIFT_2$1; | |
| 248 | + var UTRIE2_DATA_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_2; | |
| 281 | 249 | /** Mask for getting the lower bits for the in-data-block offset. */ |
| 282 | - var UTRIE2_DATA_MASK$1 = UTRIE2_DATA_BLOCK_LENGTH$1 - 1; | |
| 283 | - var UTRIE2_LSCP_INDEX_2_LENGTH$1 = 0x400 >> UTRIE2_SHIFT_2$1; | |
| 250 | + var UTRIE2_DATA_MASK = UTRIE2_DATA_BLOCK_LENGTH - 1; | |
| 251 | + var UTRIE2_LSCP_INDEX_2_LENGTH = 0x400 >> UTRIE2_SHIFT_2; | |
| 284 | 252 | /** Count the lengths of both BMP pieces. 2080=0x820 */ |
| 285 | - var UTRIE2_INDEX_2_BMP_LENGTH$1 = UTRIE2_LSCP_INDEX_2_OFFSET$1 + UTRIE2_LSCP_INDEX_2_LENGTH$1; | |
| 253 | + var UTRIE2_INDEX_2_BMP_LENGTH = UTRIE2_LSCP_INDEX_2_OFFSET + UTRIE2_LSCP_INDEX_2_LENGTH; | |
| 286 | 254 | /** |
| 287 | 255 | * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820. |
| 288 | 256 | * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2. |
| 289 | 257 | */ |
| 290 | - var UTRIE2_UTF8_2B_INDEX_2_OFFSET$1 = UTRIE2_INDEX_2_BMP_LENGTH$1; | |
| 291 | - var UTRIE2_UTF8_2B_INDEX_2_LENGTH$1 = 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */ | |
| 258 | + var UTRIE2_UTF8_2B_INDEX_2_OFFSET = UTRIE2_INDEX_2_BMP_LENGTH; | |
| 259 | + var UTRIE2_UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */ | |
| 292 | 260 | /** |
| 293 | 261 | * The index-1 table, only used for supplementary code points, at offset 2112=0x840. |
| 294 | 262 | * Variable length, for code points up to highStart, where the last single-value range starts. |
| 295 | 263 | * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1. |
| @@ -300,42 +268,42 @@ | ||
| 300 | 268 | * |
| 301 | 269 | * Both the index-1 table and the following part of the index-2 table |
| 302 | 270 | * are omitted completely if there is only BMP data. |
| 303 | 271 | */ |
| 304 | - var UTRIE2_INDEX_1_OFFSET$1 = UTRIE2_UTF8_2B_INDEX_2_OFFSET$1 + UTRIE2_UTF8_2B_INDEX_2_LENGTH$1; | |
| 272 | + var UTRIE2_INDEX_1_OFFSET = UTRIE2_UTF8_2B_INDEX_2_OFFSET + UTRIE2_UTF8_2B_INDEX_2_LENGTH; | |
| 305 | 273 | /** |
| 306 | 274 | * Number of index-1 entries for the BMP. 32=0x20 |
| 307 | 275 | * This part of the index-1 table is omitted from the serialized form. |
| 308 | 276 | */ |
| 309 | - var UTRIE2_OMITTED_BMP_INDEX_1_LENGTH$1 = 0x10000 >> UTRIE2_SHIFT_1$1; | |
| 277 | + var UTRIE2_OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> UTRIE2_SHIFT_1; | |
| 310 | 278 | /** Number of entries in an index-2 block. 64=0x40 */ |
| 311 | - var UTRIE2_INDEX_2_BLOCK_LENGTH$1 = 1 << UTRIE2_SHIFT_1_2$1; | |
| 279 | + var UTRIE2_INDEX_2_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_1_2; | |
| 312 | 280 | /** Mask for getting the lower bits for the in-index-2-block offset. */ |
| 313 | - var UTRIE2_INDEX_2_MASK$1 = UTRIE2_INDEX_2_BLOCK_LENGTH$1 - 1; | |
| 314 | - var slice16$1 = function (view, start, end) { | |
| 281 | + var UTRIE2_INDEX_2_MASK = UTRIE2_INDEX_2_BLOCK_LENGTH - 1; | |
| 282 | + var slice16 = function (view, start, end) { | |
| 315 | 283 | if (view.slice) { |
| 316 | 284 | return view.slice(start, end); |
| 317 | 285 | } |
| 318 | 286 | return new Uint16Array(Array.prototype.slice.call(view, start, end)); |
| 319 | 287 | }; |
| 320 | - var slice32$1 = function (view, start, end) { | |
| 288 | + var slice32 = function (view, start, end) { | |
| 321 | 289 | if (view.slice) { |
| 322 | 290 | return view.slice(start, end); |
| 323 | 291 | } |
| 324 | 292 | return new Uint32Array(Array.prototype.slice.call(view, start, end)); |
| 325 | 293 | }; |
| 326 | - var createTrieFromBase64$1 = function (base64, _byteLength) { | |
| 327 | - var buffer = decode$1(base64); | |
| 328 | - var view32 = Array.isArray(buffer) ? polyUint32Array$1(buffer) : new Uint32Array(buffer); | |
| 329 | - var view16 = Array.isArray(buffer) ? polyUint16Array$1(buffer) : new Uint16Array(buffer); | |
| 294 | + var createTrieFromBase64 = function (base64) { | |
| 295 | + var buffer = decode(base64); | |
| 296 | + var view32 = Array.isArray(buffer) ? polyUint32Array(buffer) : new Uint32Array(buffer); | |
| 297 | + var view16 = Array.isArray(buffer) ? polyUint16Array(buffer) : new Uint16Array(buffer); | |
| 330 | 298 | var headerLength = 24; |
| 331 | - var index = slice16$1(view16, headerLength / 2, view32[4] / 2); | |
| 299 | + var index = slice16(view16, headerLength / 2, view32[4] / 2); | |
| 332 | 300 | var data = view32[5] === 2 |
| 333 | - ? slice16$1(view16, (headerLength + view32[4]) / 2) | |
| 334 | - : slice32$1(view32, Math.ceil((headerLength + view32[4]) / 4)); | |
| 335 | - return new Trie$1(view32[0], view32[1], view32[2], view32[3], index, data); | |
| 301 | + ? slice16(view16, (headerLength + view32[4]) / 2) | |
| 302 | + : slice32(view32, Math.ceil((headerLength + view32[4]) / 4)); | |
| 303 | + return new Trie(view32[0], view32[1], view32[2], view32[3], index, data); | |
| 336 | 304 | }; |
| 337 | - var Trie$1 = /** @class */ (function () { | |
| 305 | + var Trie = /** @class */ (function () { | |
| 338 | 306 | function Trie(initialValue, errorValue, highStart, highValueIndex, index, data) { |
| 339 | 307 | this.initialValue = initialValue; |
| 340 | 308 | this.errorValue = errorValue; |
| 341 | 309 | this.highStart = highStart; |
| @@ -355,10 +323,10 @@ | ||
| 355 | 323 | if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) { |
| 356 | 324 | // Ordinary BMP code point, excluding leading surrogates. |
| 357 | 325 | // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index. |
| 358 | 326 | // 16 bit data is stored in the index array itself. |
| 359 | - ix = this.index[codePoint >> UTRIE2_SHIFT_2$1]; | |
| 360 | - ix = (ix << UTRIE2_INDEX_SHIFT$1) + (codePoint & UTRIE2_DATA_MASK$1); | |
| 327 | + ix = this.index[codePoint >> UTRIE2_SHIFT_2]; | |
| 328 | + ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK); | |
| 361 | 329 | return this.data[ix]; |
| 362 | 330 | } |
| 363 | 331 | if (codePoint <= 0xffff) { |
| 364 | 332 | // Lead Surrogate Code Point. A Separate index section is stored for |
| @@ -366,19 +334,19 @@ | ||
| 366 | 334 | // The main index has the code unit data. |
| 367 | 335 | // For this function, we need the code point data. |
| 368 | 336 | // Note: this expression could be refactored for slightly improved efficiency, but |
| 369 | 337 | // surrogate code points will be so rare in practice that it's not worth it. |
| 370 | - ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET$1 + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2$1)]; | |
| 371 | - ix = (ix << UTRIE2_INDEX_SHIFT$1) + (codePoint & UTRIE2_DATA_MASK$1); | |
| 338 | + ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2)]; | |
| 339 | + ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK); | |
| 372 | 340 | return this.data[ix]; |
| 373 | 341 | } |
| 374 | 342 | if (codePoint < this.highStart) { |
| 375 | 343 | // Supplemental code point, use two-level lookup. |
| 376 | - ix = UTRIE2_INDEX_1_OFFSET$1 - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH$1 + (codePoint >> UTRIE2_SHIFT_1$1); | |
| 344 | + ix = UTRIE2_INDEX_1_OFFSET - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH + (codePoint >> UTRIE2_SHIFT_1); | |
| 377 | 345 | ix = this.index[ix]; |
| 378 | - ix += (codePoint >> UTRIE2_SHIFT_2$1) & UTRIE2_INDEX_2_MASK$1; | |
| 346 | + ix += (codePoint >> UTRIE2_SHIFT_2) & UTRIE2_INDEX_2_MASK; | |
| 379 | 347 | ix = this.index[ix]; |
| 380 | - ix = (ix << UTRIE2_INDEX_SHIFT$1) + (codePoint & UTRIE2_DATA_MASK$1); | |
| 348 | + ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK); | |
| 381 | 349 | return this.data[ix]; |
| 382 | 350 | } |
| 383 | 351 | if (codePoint <= 0x10ffff) { |
| 384 | 352 | return this.data[this.highValueIndex]; |
| @@ -389,27 +357,16 @@ | ||
| 389 | 357 | }; |
| 390 | 358 | return Trie; |
| 391 | 359 | }()); |
| 392 | 360 | |
| 393 | - /* | |
| 394 | - * base64-arraybuffer 1.0.2 <https://github.com/niklasvh/base64-arraybuffer> | |
| 395 | - * Copyright (c) 2022 Niklas von Hertzen <https://hertzen.com> | |
| 396 | - * Released under MIT License | |
| 397 | - */ | |
| 398 | - var chars$3 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; | |
| 399 | - // Use a lookup table to find the index. | |
| 400 | - var lookup$3 = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256); | |
| 401 | - for (var i$3 = 0; i$3 < chars$3.length; i$3++) { | |
| 402 | - lookup$3[chars$3.charCodeAt(i$3)] = i$3; | |
| 403 | - } | |
| 361 | + var base64 = 'KwAAAAAAAAAACA4AIDoAAPAfAAACAAAAAAAIABAAGABAAEgAUABYAF4AZgBeAGYAYABoAHAAeABeAGYAfACEAIAAiACQAJgAoACoAK0AtQC9AMUAXgBmAF4AZgBeAGYAzQDVAF4AZgDRANkA3gDmAOwA9AD8AAQBDAEUARoBIgGAAIgAJwEvATcBPwFFAU0BTAFUAVwBZAFsAXMBewGDATAAiwGTAZsBogGkAawBtAG8AcIBygHSAdoB4AHoAfAB+AH+AQYCDgIWAv4BHgImAi4CNgI+AkUCTQJTAlsCYwJrAnECeQKBAk0CiQKRApkCoQKoArACuALAAsQCzAIwANQC3ALkAjAA7AL0AvwCAQMJAxADGAMwACADJgMuAzYDPgOAAEYDSgNSA1IDUgNaA1oDYANiA2IDgACAAGoDgAByA3YDfgOAAIQDgACKA5IDmgOAAIAAogOqA4AAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAK8DtwOAAIAAvwPHA88D1wPfAyAD5wPsA/QD/AOAAIAABAQMBBIEgAAWBB4EJgQuBDMEIAM7BEEEXgBJBCADUQRZBGEEaQQwADAAcQQ+AXkEgQSJBJEEgACYBIAAoASoBK8EtwQwAL8ExQSAAIAAgACAAIAAgACgAM0EXgBeAF4AXgBeAF4AXgBeANUEXgDZBOEEXgDpBPEE+QQBBQkFEQUZBSEFKQUxBTUFPQVFBUwFVAVcBV4AYwVeAGsFcwV7BYMFiwWSBV4AmgWgBacFXgBeAF4AXgBeAKsFXgCyBbEFugW7BcIFwgXIBcIFwgXQBdQF3AXkBesF8wX7BQMGCwYTBhsGIwYrBjMGOwZeAD8GRwZNBl4AVAZbBl4AXgBeAF4AXgBeAF4AXgBeAF4AXgBeAGMGXgBqBnEGXgBeAF4AXgBeAF4AXgBeAF4AXgB5BoAG4wSGBo4GkwaAAIADHgR5AF4AXgBeAJsGgABGA4AAowarBrMGswagALsGwwbLBjAA0wbaBtoG3QbaBtoG2gbaBtoG2gblBusG8wb7BgMHCwcTBxsHCwcjBysHMAc1BzUHOgdCB9oGSgdSB1oHYAfaBloHaAfaBlIH2gbaBtoG2gbaBtoG2gbaBjUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHbQdeAF4ANQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQd1B30HNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1B4MH2gaKB68EgACAAIAAgACAAIAAgACAAI8HlwdeAJ8HpweAAIAArwe3B14AXgC/B8UHygcwANAH2AfgB4AA6AfwBz4B+AcACFwBCAgPCBcIogEYAR8IJwiAAC8INwg/CCADRwhPCFcIXwhnCEoDGgSAAIAAgABvCHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIhAiLCI4IMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAANQc1BzUHNQc1BzUHNQc1BzUHNQc1B54INQc1B6II2gaqCLIIugiAAIAAvgjGCIAAgACAAIAAgACAAIAAgACAAIAAywiHAYAA0wiAANkI3QjlCO0I9Aj8CIAAgACAAAIJCgkSCRoJIgknCTYHLwk3CZYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiAAIAAAAFAAXgBeAGAAcABeAHwAQACQAKAArQC9AJ4AXgBeAE0A3gBRAN4A7AD8AMwBGgEAAKcBNwEFAUwBXAF4QkhCmEKnArcCgAHHAsABz4LAAcABwAHAAd+C6ABoAG+C/4LAAcABwAHAAc+DF4MAAcAB54M3gweDV4Nng3eDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEeDqABVg6WDqABoQ6gAaABoAHXDvcONw/3DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DncPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB7cPPwlGCU4JMACAAIAAgABWCV4JYQmAAGkJcAl4CXwJgAkwADAAMAAwAIgJgACLCZMJgACZCZ8JowmrCYAAswkwAF4AXgB8AIAAuwkABMMJyQmAAM4JgADVCTAAMAAwADAAgACAAIAAgACAAIAAgACAAIAAqwYWBNkIMAAwADAAMADdCeAJ6AnuCR4E9gkwAP4JBQoNCjAAMACAABUK0wiAAB0KJAosCjQKgAAwADwKQwqAAEsKvQmdCVMKWwowADAAgACAALcEMACAAGMKgABrCjAAMAAwADAAMAAwADAAMAAwADAAMAAeBDAAMAAwADAAMAAwADAAMAAwADAAMAAwAIkEPQFzCnoKiQSCCooKkAqJBJgKoAqkCokEGAGsCrQKvArBCjAAMADJCtEKFQHZCuEK/gHpCvEKMAAwADAAMACAAIwE+QowAIAAPwEBCzAAMAAwADAAMACAAAkLEQswAIAAPwEZCyELgAAOCCkLMAAxCzkLMAAwADAAMAAwADAAXgBeAEELMAAwADAAMAAwADAAMAAwAEkLTQtVC4AAXAtkC4AAiQkwADAAMAAwADAAMAAwADAAbAtxC3kLgAuFC4sLMAAwAJMLlwufCzAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAApwswADAAMACAAIAAgACvC4AAgACAAIAAgACAALcLMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAvwuAAMcLgACAAIAAgACAAIAAyguAAIAAgACAAIAA0QswADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAANkLgACAAIAA4AswADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACJCR4E6AswADAAhwHwC4AA+AsADAgMEAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMACAAIAAGAwdDCUMMAAwAC0MNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQw1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHPQwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADUHNQc1BzUHNQc1BzUHNQc2BzAAMAA5DDUHNQc1BzUHNQc1BzUHNQc1BzUHNQdFDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAgACAAIAATQxSDFoMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAF4AXgBeAF4AXgBeAF4AYgxeAGoMXgBxDHkMfwxeAIUMXgBeAI0MMAAwADAAMAAwAF4AXgCVDJ0MMAAwADAAMABeAF4ApQxeAKsMswy7DF4Awgy9DMoMXgBeAF4AXgBeAF4AXgBeAF4AXgDRDNkMeQBqCeAM3Ax8AOYM7Az0DPgMXgBeAF4AXgBeAF4AXgBeAF4AXgBeAF4AXgBeAF4AXgCgAAANoAAHDQ4NFg0wADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAeDSYNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIAAgACAAIAAgACAAC4NMABeAF4ANg0wADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAD4NRg1ODVYNXg1mDTAAbQ0wADAAMAAwADAAMAAwADAA2gbaBtoG2gbaBtoG2gbaBnUNeg3CBYANwgWFDdoGjA3aBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gaUDZwNpA2oDdoG2gawDbcNvw3HDdoG2gbPDdYN3A3fDeYN2gbsDfMN2gbaBvoN/g3aBgYODg7aBl4AXgBeABYOXgBeACUG2gYeDl4AJA5eACwO2w3aBtoGMQ45DtoG2gbaBtoGQQ7aBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gZJDjUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1B1EO2gY1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQdZDjUHNQc1BzUHNQc1B2EONQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHaA41BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1B3AO2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gY1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1B2EO2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gZJDtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBkkOeA6gAKAAoAAwADAAMAAwAKAAoACgAKAAoACgAKAAgA4wADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAD//wQABAAEAAQABAAEAAQABAAEAA0AAwABAAEAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAKABMAFwAeABsAGgAeABcAFgASAB4AGwAYAA8AGAAcAEsASwBLAEsASwBLAEsASwBLAEsAGAAYAB4AHgAeABMAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAFgAbABIAHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYADQARAB4ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkAFgAaABsAGwAbAB4AHQAdAB4ATwAXAB4ADQAeAB4AGgAbAE8ATwAOAFAAHQAdAB0ATwBPABcATwBPAE8AFgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwArAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAAQABAANAA0ASwBLAEsASwBLAEsASwBLAEsASwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUAArACsABABQAAQABAAEAAQABAAEAAQAKwArAAQABAArACsABAAEAAQAUAArACsAKwArACsAKwArACsABAArACsAKwArAFAAUAArAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAGgAaAFAAUABQAFAAUABMAB4AGwBQAB4AKwArACsABAAEAAQAKwBQAFAAUABQAFAAUAArACsAKwArAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUAArAFAAUAArACsABAArAAQABAAEAAQABAArACsAKwArAAQABAArACsABAAEAAQAKwArACsABAArACsAKwArACsAKwArAFAAUABQAFAAKwBQACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwAEAAQAUABQAFAABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUAArACsABABQAAQABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQAKwArAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwAeABsAKwArACsAKwArACsAKwBQAAQABAAEAAQABAAEACsABAAEAAQAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwArAAQABAArACsABAAEAAQAKwArACsAKwArACsAKwArAAQABAArACsAKwArAFAAUAArAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwAeAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwAEAFAAKwBQAFAAUABQAFAAUAArACsAKwBQAFAAUAArAFAAUABQAFAAKwArACsAUABQACsAUAArAFAAUAArACsAKwBQAFAAKwArACsAUABQAFAAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQAKwArACsABAAEAAQAKwAEAAQABAAEACsAKwBQACsAKwArACsAKwArAAQAKwArACsAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAB4AHgAeAB4AHgAeABsAHgArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABAArACsAKwArACsAKwArAAQABAArAFAAUABQACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAB4AUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABAArACsAKwArACsAKwArAAQABAArACsAKwArACsAKwArAFAAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwArAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAKwBcAFwAKwBcACsAKwBcACsAKwArACsAKwArAFwAXABcAFwAKwBcAFwAXABcAFwAXABcACsAXABcAFwAKwBcACsAXAArACsAXABcACsAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgArACoAKgBcACsAKwBcAFwAXABcAFwAKwBcACsAKgAqACoAKgAqACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAFwAXABcAFwAUAAOAA4ADgAOAB4ADgAOAAkADgAOAA0ACQATABMAEwATABMACQAeABMAHgAeAB4ABAAEAB4AHgAeAB4AHgAeAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUAANAAQAHgAEAB4ABAAWABEAFgARAAQABABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAAQABAAEAAQABAANAAQABABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsADQANAB4AHgAeAB4AHgAeAAQAHgAeAB4AHgAeAB4AKwAeAB4ADgAOAA0ADgAeAB4AHgAeAB4ACQAJACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgAeAB4AHgBcAFwAXABcAFwAXAAqACoAKgAqAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAKgAqACoAKgAqACoAKgBcAFwAXAAqACoAKgAqAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAXAAqAEsASwBLAEsASwBLAEsASwBLAEsAKgAqACoAKgAqACoAUABQAFAAUABQAFAAKwBQACsAKwArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQACsAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwAEAAQABAAeAA0AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAEQArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAADQANAA0AUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAA0ADQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQACsABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoADQANABUAXAANAB4ADQAbAFwAKgArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAB4AHgATABMADQANAA4AHgATABMAHgAEAAQABAAJACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAUABQAFAAUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwAeACsAKwArABMAEwBLAEsASwBLAEsASwBLAEsASwBLAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwBcAFwAXABcAFwAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcACsAKwArACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwAeAB4AXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgArACsABABLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKgAqACoAKgAqACoAKgBcACoAKgAqACoAKgAqACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAUABQAFAAUABQAFAAUAArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4ADQANAA0ADQAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAHgAeAB4AHgBQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwANAA0ADQANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwBQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsABAAEAAQAHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAABABQAFAAUABQAAQABAAEAFAAUAAEAAQABAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAKwBQACsAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAKwArAB4AHgAeAB4AHgAeACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAUABQAFAAKwAeAB4AHgAeAB4AHgAeAA4AHgArAA0ADQANAA0ADQANAA0ACQANAA0ADQAIAAQACwAEAAQADQAJAA0ADQAMAB0AHQAeABcAFwAWABcAFwAXABYAFwAdAB0AHgAeABQAFAAUAA0AAQABAAQABAAEAAQABAAJABoAGgAaABoAGgAaABoAGgAeABcAFwAdABUAFQAeAB4AHgAeAB4AHgAYABYAEQAVABUAFQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgANAB4ADQANAA0ADQAeAA0ADQANAAcAHgAeAB4AHgArAAQABAAEAAQABAAEAAQABAAEAAQAUABQACsAKwBPAFAAUABQAFAAUAAeAB4AHgAWABEATwBQAE8ATwBPAE8AUABQAFAAUABQAB4AHgAeABYAEQArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAGwAbABsAGwAbABsAGwAaABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAaABsAGwAbABsAGgAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgBQABoAHgAdAB4AUAAeABoAHgAeAB4AHgAeAB4AHgAeAB4ATwAeAFAAGwAeAB4AUABQAFAAUABQAB4AHgAeAB0AHQAeAFAAHgBQAB4AUAAeAFAATwBQAFAAHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AUABQAFAAUABPAE8AUABQAFAAUABQAE8AUABQAE8AUABPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAE8ATwBPAE8ATwBPAE8ATwBPAE8AUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAATwAeAB4AKwArACsAKwAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB0AHQAeAB4AHgAdAB0AHgAeAB0AHgAeAB4AHQAeAB0AGwAbAB4AHQAeAB4AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB0AHgAdAB4AHQAdAB0AHQAdAB0AHgAdAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAdAB0AHQAdAB4AHgAdAB0AHgAeAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABQAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAlACUAHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBQAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAeAB4AHgAeAB0AHQAeAB4AHgAeAB0AHQAdAB4AHgAdAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB0AHQAeAB4AHQAeAB4AHgAeAB0AHQAeAB4AHgAeACUAJQAdAB0AJQAeACUAJQAlACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAHgAeAB4AHgAdAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHQAdAB0AHgAdACUAHQAdAB4AHQAdAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHQAdAB0AHQAlAB4AJQAlACUAHQAlACUAHQAdAB0AJQAlAB0AHQAlAB0AHQAlACUAJQAeAB0AHgAeAB4AHgAdAB0AJQAdAB0AHQAdAB0AHQAlACUAJQAlACUAHQAlACUAIAAlAB0AHQAlACUAJQAlACUAJQAlACUAHgAeAB4AJQAlACAAIAAgACAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeABcAFwAXABcAFwAXAB4AEwATACUAHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwArACUAJQBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAKwArACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAE8ATwBPAE8ATwBPAE8ATwAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeACsAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUAArACsAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQBQAFAAUABQACsAKwArACsAUABQAFAAUABQAFAAUABQAA0AUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQACsAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgBQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAABAAEAAQAKwAEAAQAKwArACsAKwArAAQABAAEAAQAUABQAFAAUAArAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsABAAEAAQAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsADQANAA0ADQANAA0ADQANAB4AKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AUABQAFAAUABQAFAAUABQAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAUABQAFAAUABQAA0ADQANAA0ADQANABQAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwANAA0ADQANAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAeAAQABAAEAB4AKwArAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLACsADQArAB4AKwArAAQABAAEAAQAUABQAB4AUAArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwAEAAQABAAEAAQABAAEAAQABAAOAA0ADQATABMAHgAeAB4ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0AUABQAFAAUAAEAAQAKwArAAQADQANAB4AUAArACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXABcAA0ADQANACoASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUAArACsAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANACsADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEcARwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQACsAKwAeAAQABAANAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAEAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUAArACsAUAArACsAUABQACsAKwBQAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AKwArAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAeAB4ADQANAA0ADQAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAArAAQABAArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAEAAQABAAEAAQABAAEACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAFgAWAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAKwBQACsAKwArACsAKwArAFAAKwArACsAKwBQACsAUAArAFAAKwBQAFAAUAArAFAAUAArAFAAKwArAFAAKwBQACsAUAArAFAAKwBQACsAUABQACsAUAArACsAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAUABQAFAAUAArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUAArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAlACUAJQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeACUAJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeACUAJQAlACUAJQAeACUAJQAlACUAJQAgACAAIAAlACUAIAAlACUAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIQAhACEAIQAhACUAJQAgACAAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIAAgACAAIAAlACUAJQAlACAAJQAgACAAIAAgACAAIAAgACAAIAAlACUAJQAgACUAJQAlACUAIAAgACAAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeACUAHgAlAB4AJQAlACUAJQAlACAAJQAlACUAJQAeACUAHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIAAgACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIAAlACUAJQAlACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAIAAgACAAJQAlACUAIAAgACAAIAAgAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFwAXABcAFQAVABUAHgAeAB4AHgAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIAAgACAAJQAlACUAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAlACAAIAAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsA'; | |
| 404 | 362 | |
| 405 | - var base64$1 = 'KwAAAAAAAAAACA4AUD0AADAgAAACAAAAAAAIABAAGABAAEgAUABYAGAAaABgAGgAYgBqAF8AZwBgAGgAcQB5AHUAfQCFAI0AlQCdAKIAqgCyALoAYABoAGAAaABgAGgAwgDKAGAAaADGAM4A0wDbAOEA6QDxAPkAAQEJAQ8BFwF1AH0AHAEkASwBNAE6AUIBQQFJAVEBWQFhAWgBcAF4ATAAgAGGAY4BlQGXAZ8BpwGvAbUBvQHFAc0B0wHbAeMB6wHxAfkBAQIJAvEBEQIZAiECKQIxAjgCQAJGAk4CVgJeAmQCbAJ0AnwCgQKJApECmQKgAqgCsAK4ArwCxAIwAMwC0wLbAjAA4wLrAvMC+AIAAwcDDwMwABcDHQMlAy0DNQN1AD0DQQNJA0kDSQNRA1EDVwNZA1kDdQB1AGEDdQBpA20DdQN1AHsDdQCBA4kDkQN1AHUAmQOhA3UAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AKYDrgN1AHUAtgO+A8YDzgPWAxcD3gPjA+sD8wN1AHUA+wMDBAkEdQANBBUEHQQlBCoEFwMyBDgEYABABBcDSARQBFgEYARoBDAAcAQzAXgEgASIBJAEdQCXBHUAnwSnBK4EtgS6BMIEyAR1AHUAdQB1AHUAdQCVANAEYABgAGAAYABgAGAAYABgANgEYADcBOQEYADsBPQE/AQEBQwFFAUcBSQFLAU0BWQEPAVEBUsFUwVbBWAAYgVgAGoFcgV6BYIFigWRBWAAmQWfBaYFYABgAGAAYABgAKoFYACxBbAFuQW6BcEFwQXHBcEFwQXPBdMF2wXjBeoF8gX6BQIGCgYSBhoGIgYqBjIGOgZgAD4GRgZMBmAAUwZaBmAAYABgAGAAYABgAGAAYABgAGAAYABgAGIGYABpBnAGYABgAGAAYABgAGAAYABgAGAAYAB4Bn8GhQZgAGAAYAB1AHcDFQSLBmAAYABgAJMGdQA9A3UAmwajBqsGqwaVALMGuwbDBjAAywbSBtIG1QbSBtIG0gbSBtIG0gbdBuMG6wbzBvsGAwcLBxMHAwcbByMHJwcsBywHMQcsB9IGOAdAB0gHTgfSBkgHVgfSBtIG0gbSBtIG0gbSBtIG0gbSBiwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdgAGAALAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdbB2MHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB2kH0gZwB64EdQB1AHUAdQB1AHUAdQB1AHUHfQdgAIUHjQd1AHUAlQedB2AAYAClB6sHYACzB7YHvgfGB3UAzgfWBzMB3gfmB1EB7gf1B/0HlQENAQUIDQh1ABUIHQglCBcDLQg1CD0IRQhNCEEDUwh1AHUAdQBbCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIcAh3CHoIMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIgggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAALAcsBywHLAcsBywHLAcsBywHLAcsB4oILAcsB44I0gaWCJ4Ipgh1AHUAqgiyCHUAdQB1AHUAdQB1AHUAdQB1AHUAtwh8AXUAvwh1AMUIyQjRCNkI4AjoCHUAdQB1AO4I9gj+CAYJDgkTCS0HGwkjCYIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiAAIAAAAFAAYABgAGIAXwBgAHEAdQBFAJUAogCyAKAAYABgAEIA4ABGANMA4QDxAMEBDwE1AFwBLAE6AQEBUQF4QkhCmEKoQrhCgAHIQsAB0MLAAcABwAHAAeDC6ABoAHDCwMMAAcABwAHAAdDDGMMAAcAB6MM4wwjDWMNow3jDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEjDqABWw6bDqABpg6gAaABoAHcDvwOPA+gAaABfA/8DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DpcPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB9cPKwkyCToJMAB1AHUAdQBCCUoJTQl1AFUJXAljCWcJawkwADAAMAAwAHMJdQB2CX4JdQCECYoJjgmWCXUAngkwAGAAYABxAHUApgn3A64JtAl1ALkJdQDACTAAMAAwADAAdQB1AHUAdQB1AHUAdQB1AHUAowYNBMUIMAAwADAAMADICcsJ0wnZCRUE4QkwAOkJ8An4CTAAMAB1AAAKvwh1AAgKDwoXCh8KdQAwACcKLgp1ADYKqAmICT4KRgowADAAdQB1AE4KMAB1AFYKdQBeCnUAZQowADAAMAAwADAAMAAwADAAMAAVBHUAbQowADAAdQC5CXUKMAAwAHwBxAijBogEMgF9CoQKiASMCpQKmgqIBKIKqgquCogEDQG2Cr4KxgrLCjAAMADTCtsKCgHjCusK8Qr5CgELMAAwADAAMAB1AIsECQsRC3UANAEZCzAAMAAwADAAMAB1ACELKQswAHUANAExCzkLdQBBC0kLMABRC1kLMAAwADAAMAAwADAAdQBhCzAAMAAwAGAAYABpC3ELdwt/CzAAMACHC4sLkwubC58Lpwt1AK4Ltgt1APsDMAAwADAAMAAwADAAMAAwAL4LwwvLC9IL1wvdCzAAMADlC+kL8Qv5C/8LSQswADAAMAAwADAAMAAwADAAMAAHDDAAMAAwADAAMAAODBYMHgx1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1ACYMMAAwADAAdQB1AHUALgx1AHUAdQB1AHUAdQA2DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AD4MdQBGDHUAdQB1AHUAdQB1AEkMdQB1AHUAdQB1AFAMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQBYDHUAdQB1AF8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUA+wMVBGcMMAAwAHwBbwx1AHcMfwyHDI8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAYABgAJcMMAAwADAAdQB1AJ8MlQClDDAAMACtDCwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB7UMLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AA0EMAC9DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAsBywHLAcsBywHLAcsBywHLQcwAMEMyAwsBywHLAcsBywHLAcsBywHLAcsBywHzAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1ANQM2QzhDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMABgAGAAYABgAGAAYABgAOkMYADxDGAA+AwADQYNYABhCWAAYAAODTAAMAAwADAAFg1gAGAAHg37AzAAMAAwADAAYABgACYNYAAsDTQNPA1gAEMNPg1LDWAAYABgAGAAYABgAGAAYABgAGAAUg1aDYsGVglhDV0NcQBnDW0NdQ15DWAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAlQCBDZUAiA2PDZcNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAnw2nDTAAMAAwADAAMAAwAHUArw23DTAAMAAwADAAMAAwADAAMAAwADAAMAB1AL8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQDHDTAAYABgAM8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA1w11ANwNMAAwAD0B5A0wADAAMAAwADAAMADsDfQN/A0EDgwOFA4wABsOMAAwADAAMAAwADAAMAAwANIG0gbSBtIG0gbSBtIG0gYjDigOwQUuDsEFMw7SBjoO0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGQg5KDlIOVg7SBtIGXg5lDm0OdQ7SBtIGfQ6EDooOjQ6UDtIGmg6hDtIG0gaoDqwO0ga0DrwO0gZgAGAAYADEDmAAYAAkBtIGzA5gANIOYADaDokO0gbSBt8O5w7SBu8O0gb1DvwO0gZgAGAAxA7SBtIG0gbSBtIGYABgAGAAYAAED2AAsAUMD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHJA8sBywHLAcsBywHLAccDywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywPLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAc0D9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHPA/SBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gYUD0QPlQCVAJUAMAAwADAAMACVAJUAlQCVAJUAlQCVAEwPMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA//8EAAQABAAEAAQABAAEAAQABAANAAMAAQABAAIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACgATABcAHgAbABoAHgAXABYAEgAeABsAGAAPABgAHABLAEsASwBLAEsASwBLAEsASwBLABgAGAAeAB4AHgATAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAGwASAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWAA0AEQAeAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAFAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJABYAGgAbABsAGwAeAB0AHQAeAE8AFwAeAA0AHgAeABoAGwBPAE8ADgBQAB0AHQAdAE8ATwAXAE8ATwBPABYAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwBWAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsABAAbABsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEAA0ADQBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABABQACsAKwArACsAKwArACsAKwAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUAAaABoAUABQAFAAUABQAEwAHgAbAFAAHgAEACsAKwAEAAQABAArAFAAUABQAFAAUABQACsAKwArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQACsAUABQACsAKwAEACsABAAEAAQABAAEACsAKwArACsABAAEACsAKwAEAAQABAArACsAKwAEACsAKwArACsAKwArACsAUABQAFAAUAArAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAAQABABQAFAAUAAEAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAArACsAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AGwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAKwArACsAKwArAAQABAAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAAQAUAArAFAAUABQAFAAUABQACsAKwArAFAAUABQACsAUABQAFAAUAArACsAKwBQAFAAKwBQACsAUABQACsAKwArAFAAUAArACsAKwBQAFAAUAArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAArACsAKwAEAAQABAArAAQABAAEAAQAKwArAFAAKwArACsAKwArACsABAArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAHgAeAB4AHgAeAB4AGwAeACsAKwArACsAKwAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAUABQAFAAKwArACsAKwArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwAOAFAAUABQAFAAUABQAFAAHgBQAAQABAAEAA4AUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAKwArAAQAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAKwArACsAKwArACsAUAArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAXABcAFwAXABcACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAXAArAFwAXABcAFwAXABcAFwAXABcAFwAKgBcAFwAKgAqACoAKgAqACoAKgAqACoAXAArACsAXABcAFwAXABcACsAXAArACoAKgAqACoAKgAqACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwBcAFwAXABcAFAADgAOAA4ADgAeAA4ADgAJAA4ADgANAAkAEwATABMAEwATAAkAHgATAB4AHgAeAAQABAAeAB4AHgAeAB4AHgBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAADQAEAB4ABAAeAAQAFgARABYAEQAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAAQABAAEAAQADQAEAAQAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAA0ADQAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeACsAHgAeAA4ADgANAA4AHgAeAB4AHgAeAAkACQArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgBcAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4AHgAeAB4AXABcAFwAXABcAFwAKgAqACoAKgBcAFwAXABcACoAKgAqAFwAKgAqACoAXABcACoAKgAqACoAKgAqACoAXABcAFwAKgAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwAKgBLAEsASwBLAEsASwBLAEsASwBLACoAKgAqACoAKgAqAFAAUABQAFAAUABQACsAUAArACsAKwArACsAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAKwBQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsABAAEAAQAHgANAB4AHgAeAB4AHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUAArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWABEAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAANAA0AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUAArAAQABAArACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAA0ADQAVAFwADQAeAA0AGwBcACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwAeAB4AEwATAA0ADQAOAB4AEwATAB4ABAAEAAQACQArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAHgArACsAKwATABMASwBLAEsASwBLAEsASwBLAEsASwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAXABcAFwAXABcACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXAArACsAKwAqACoAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsAHgAeAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKwArAAQASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACoAKgAqACoAKgAqACoAXAAqACoAKgAqACoAKgArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABABQAFAAUABQAFAAUABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgANAA0ADQANAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwAeAB4AHgAeAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArAA0ADQANAA0ADQBLAEsASwBLAEsASwBLAEsASwBLACsAKwArAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUAAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAAQAUABQAFAAUABQAFAABABQAFAABAAEAAQAUAArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQACsAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQACsAKwAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQACsAHgAeAB4AHgAeAB4AHgAOAB4AKwANAA0ADQANAA0ADQANAAkADQANAA0ACAAEAAsABAAEAA0ACQANAA0ADAAdAB0AHgAXABcAFgAXABcAFwAWABcAHQAdAB4AHgAUABQAFAANAAEAAQAEAAQABAAEAAQACQAaABoAGgAaABoAGgAaABoAHgAXABcAHQAVABUAHgAeAB4AHgAeAB4AGAAWABEAFQAVABUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ADQAeAA0ADQANAA0AHgANAA0ADQAHAB4AHgAeAB4AKwAEAAQABAAEAAQABAAEAAQABAAEAFAAUAArACsATwBQAFAAUABQAFAAHgAeAB4AFgARAE8AUABPAE8ATwBPAFAAUABQAFAAUAAeAB4AHgAWABEAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArABsAGwAbABsAGwAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGgAbABsAGwAbABoAGwAbABoAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAFAAGgAeAB0AHgBQAB4AGgAeAB4AHgAeAB4AHgAeAB4AHgBPAB4AUAAbAB4AHgBQAFAAUABQAFAAHgAeAB4AHQAdAB4AUAAeAFAAHgBQAB4AUABPAFAAUAAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgBQAFAAUABQAE8ATwBQAFAAUABQAFAATwBQAFAATwBQAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAUABQAFAATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABPAB4AHgArACsAKwArAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAdAB4AHgAeAB0AHQAeAB4AHQAeAB4AHgAdAB4AHQAbABsAHgAdAB4AHgAeAB4AHQAeAB4AHQAdAB0AHQAeAB4AHQAeAB0AHgAdAB0AHQAdAB0AHQAeAB0AHgAeAB4AHgAeAB0AHQAdAB0AHgAeAB4AHgAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB0AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAdAB0AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHQAdAB0AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHQAdAB4AHgAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AJQAlAB0AHQAlAB4AJQAlACUAIAAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAeAB0AJQAdAB0AHgAdAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAdAB0AHQAdACUAHgAlACUAJQAdACUAJQAdAB0AHQAlACUAHQAdACUAHQAdACUAJQAlAB4AHQAeAB4AHgAeAB0AHQAlAB0AHQAdAB0AHQAdACUAJQAlACUAJQAdACUAJQAgACUAHQAdACUAJQAlACUAJQAlACUAJQAeAB4AHgAlACUAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AFwAXABcAFwAXABcAHgATABMAJQAeAB4AHgAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARABYAEQAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANAA0AHgANAB4ADQANAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwAlACUAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACsAKwArACsAKwArACsAKwArACsAKwArAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBPAE8ATwBPAE8ATwBPAE8AJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeAAQAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUABQAAQAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAUABQAFAAUABQAAQABAAEACsABAAEACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAKwBQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAA0ADQANAA0ADQANAA0ADQAeACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAArACsAKwArAFAAUABQAFAAUAANAA0ADQANAA0ADQAUACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQANAA0ADQANAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAANACsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAB4AHgAeAB4AHgArACsAKwArACsAKwAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANAFAABAAEAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAEAAQABAAEAB4ABAAEAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsABAAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLAA0ADQArAB4ABABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUAAeAFAAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAAEAAQADgANAA0AEwATAB4AHgAeAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAFAAUABQAFAABAAEACsAKwAEAA0ADQAeAFAAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcAFwADQANAA0AKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQAKwAEAAQAKwArAAQABAAEAAQAUAAEAFAABAAEAA0ADQANACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABABQAA4AUAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANAFAADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAaABoAGgAaAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAJAAkACQAJAAkACQAJABYAEQArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AHgAeACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAARwBHABUARwAJACsAKwArACsAKwArACsAKwArACsAKwAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAKwArACsAKwArACsAKwArACsAKwArACsAKwBRAFEAUQBRACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAHgAEAAQADQAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAeAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQAHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAKwArAFAAKwArAFAAUAArACsAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAHgAeAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeACsAKwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4ABAAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAHgAeAA0ADQANAA0AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArAAQABAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwBQAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArABsAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAB4AHgAeAB4ABAAEAAQABAAEAAQABABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArABYAFgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAGgBQAFAAUAAaAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUAArACsAKwArACsAKwBQACsAKwArACsAUAArAFAAKwBQACsAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUAArAFAAKwBQACsAUAArAFAAUAArAFAAKwArAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAKwBQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeACUAJQAlAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAHgAlACUAJQAlACUAIAAgACAAJQAlACAAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACEAIQAhACEAIQAlACUAIAAgACUAJQAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAlACUAJQAlACAAIAAgACUAIAAgACAAJQAlACUAJQAlACUAJQAgACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAlAB4AJQAeACUAJQAlACUAJQAgACUAJQAlACUAHgAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACAAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABcAFwAXABUAFQAVAB4AHgAeAB4AJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAgACUAJQAgACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAIAAgACUAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACAAIAAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACAAIAAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAA=='; | |
| 406 | - | |
| 363 | + /* @flow */ | |
| 407 | 364 | var LETTER_NUMBER_MODIFIER = 50; |
| 408 | 365 | // Non-tailorable Line Breaking Classes |
| 409 | 366 | var BK = 1; // Cause a line break (after) |
| 410 | - var CR$1 = 2; // Cause a line break (after), except between CR and LF | |
| 411 | - var LF$1 = 3; // Cause a line break (after) | |
| 367 | + var CR = 2; // Cause a line break (after), except between CR and LF | |
| 368 | + var LF = 3; // Cause a line break (after) | |
| 412 | 369 | var CM = 4; // Prohibit a line break between the character and the preceding character |
| 413 | 370 | var NL = 5; // Cause a line break (after) |
| 414 | 371 | var WJ = 7; // Prohibit line breaks before and after |
| 415 | 372 | var ZW = 8; // Provide a break opportunity |
| @@ -414,9 +371,9 @@ | ||
| 414 | 371 | var WJ = 7; // Prohibit line breaks before and after |
| 415 | 372 | var ZW = 8; // Provide a break opportunity |
| 416 | 373 | var GL = 9; // Prohibit line breaks before and after |
| 417 | 374 | var SP = 10; // Enable indirect line breaks |
| 418 | - var ZWJ$1 = 11; // Prohibit line breaks within joiner sequences | |
| 375 | + var ZWJ = 11; // Prohibit line breaks within joiner sequences | |
| 419 | 376 | // Break Opportunities |
| 420 | 377 | var B2 = 12; // Provide a line break opportunity before and after the character |
| 421 | 378 | var BA = 13; // Generally provide a line break opportunity after the character |
| 422 | 379 | var BB = 14; // Generally provide a line break opportunity before the character |
| @@ -448,30 +405,29 @@ | ||
| 448 | 405 | var ID = 37; // Break before or after; except in some numeric context |
| 449 | 406 | var JL = 38; // Form Korean syllable blocks |
| 450 | 407 | var JV = 39; // Form Korean syllable blocks |
| 451 | 408 | var JT = 40; // Form Korean syllable blocks |
| 452 | - var RI$1 = 41; // Keep pairs together. For pairs; break before and after other classes | |
| 409 | + var RI = 41; // Keep pairs together. For pairs; break before and after other classes | |
| 453 | 410 | var SA = 42; // Provide a line break opportunity contingent on additional, language-specific context analysis |
| 454 | 411 | var XX = 43; // Have as yet unknown line breaking behavior or unassigned code positions |
| 455 | - var ea_OP = [0x2329, 0xff08]; | |
| 456 | 412 | var BREAK_MANDATORY = '!'; |
| 457 | - var BREAK_NOT_ALLOWED$1 = '×'; | |
| 458 | - var BREAK_ALLOWED$1 = '÷'; | |
| 459 | - var UnicodeTrie$1 = createTrieFromBase64$1(base64$1); | |
| 413 | + var BREAK_NOT_ALLOWED = '×'; | |
| 414 | + var BREAK_ALLOWED = '÷'; | |
| 415 | + var UnicodeTrie = createTrieFromBase64(base64); | |
| 460 | 416 | var ALPHABETICS = [AL, HL]; |
| 461 | - var HARD_LINE_BREAKS = [BK, CR$1, LF$1, NL]; | |
| 462 | - var SPACE$1 = [SP, ZW]; | |
| 417 | + var HARD_LINE_BREAKS = [BK, CR, LF, NL]; | |
| 418 | + var SPACE = [SP, ZW]; | |
| 463 | 419 | var PREFIX_POSTFIX = [PR, PO]; |
| 464 | - var LINE_BREAKS = HARD_LINE_BREAKS.concat(SPACE$1); | |
| 420 | + var LINE_BREAKS = HARD_LINE_BREAKS.concat(SPACE); | |
| 465 | 421 | var KOREAN_SYLLABLE_BLOCK = [JL, JV, JT, H2, H3]; |
| 466 | 422 | var HYPHEN = [HY, BA]; |
| 467 | 423 | var codePointsToCharacterClasses = function (codePoints, lineBreak) { |
| 468 | 424 | if (lineBreak === void 0) { lineBreak = 'strict'; } |
| 469 | 425 | var types = []; |
| 470 | - var indices = []; | |
| 426 | + var indicies = []; | |
| 471 | 427 | var categories = []; |
| 472 | 428 | codePoints.forEach(function (codePoint, index) { |
| 473 | - var classType = UnicodeTrie$1.get(codePoint); | |
| 429 | + var classType = UnicodeTrie.get(codePoint); | |
| 474 | 430 | if (classType > LETTER_NUMBER_MODIFIER) { |
| 475 | 431 | categories.push(true); |
| 476 | 432 | classType -= LETTER_NUMBER_MODIFIER; |
| 477 | 433 | } |
| @@ -480,16 +436,16 @@ | ||
| 480 | 436 | } |
| 481 | 437 | if (['normal', 'auto', 'loose'].indexOf(lineBreak) !== -1) { |
| 482 | 438 | // U+2010, – U+2013, 〜 U+301C, ゠ U+30A0 |
| 483 | 439 | if ([0x2010, 0x2013, 0x301c, 0x30a0].indexOf(codePoint) !== -1) { |
| 484 | - indices.push(index); | |
| 440 | + indicies.push(index); | |
| 485 | 441 | return types.push(CB); |
| 486 | 442 | } |
| 487 | 443 | } |
| 488 | - if (classType === CM || classType === ZWJ$1) { | |
| 444 | + if (classType === CM || classType === ZWJ) { | |
| 489 | 445 | // LB10 Treat any remaining combining mark or ZWJ as AL. |
| 490 | 446 | if (index === 0) { |
| 491 | - indices.push(index); | |
| 447 | + indicies.push(index); | |
| 492 | 448 | return types.push(AL); |
| 493 | 449 | } |
| 494 | 450 | // LB9 Do not break a combining character sequence; treat it as if it has the line breaking class of |
| 495 | 451 | // the base character in all of the following rules. Treat ZWJ as if it were CM. |
| @@ -494,15 +450,15 @@ | ||
| 494 | 450 | // LB9 Do not break a combining character sequence; treat it as if it has the line breaking class of |
| 495 | 451 | // the base character in all of the following rules. Treat ZWJ as if it were CM. |
| 496 | 452 | var prev = types[index - 1]; |
| 497 | 453 | if (LINE_BREAKS.indexOf(prev) === -1) { |
| 498 | - indices.push(indices[index - 1]); | |
| 454 | + indicies.push(indicies[index - 1]); | |
| 499 | 455 | return types.push(prev); |
| 500 | 456 | } |
| 501 | - indices.push(index); | |
| 457 | + indicies.push(index); | |
| 502 | 458 | return types.push(AL); |
| 503 | 459 | } |
| 504 | - indices.push(index); | |
| 460 | + indicies.push(index); | |
| 505 | 461 | if (classType === CJ) { |
| 506 | 462 | return types.push(lineBreak === 'strict' ? NS : ID); |
| 507 | 463 | } |
| 508 | 464 | if (classType === SA) { |
| @@ -523,9 +479,9 @@ | ||
| 523 | 479 | } |
| 524 | 480 | } |
| 525 | 481 | types.push(classType); |
| 526 | 482 | }); |
| 527 | - return [indices, types, categories]; | |
| 483 | + return [indicies, types, categories]; | |
| 528 | 484 | }; |
| 529 | 485 | var isAdjacentWithSpaceIgnored = function (a, b, currentIndex, classTypes) { |
| 530 | 486 | var current = classTypes[currentIndex]; |
| 531 | 487 | if (Array.isArray(a) ? a.indexOf(current) !== -1 : a === current) { |
| @@ -580,13 +536,13 @@ | ||
| 580 | 536 | return 0; |
| 581 | 537 | }; |
| 582 | 538 | var _lineBreakAtIndex = function (codePoints, classTypes, indicies, index, forbiddenBreaks) { |
| 583 | 539 | if (indicies[index] === 0) { |
| 584 | - return BREAK_NOT_ALLOWED$1; | |
| 540 | + return BREAK_NOT_ALLOWED; | |
| 585 | 541 | } |
| 586 | 542 | var currentIndex = index - 1; |
| 587 | 543 | if (Array.isArray(forbiddenBreaks) && forbiddenBreaks[currentIndex] === true) { |
| 588 | - return BREAK_NOT_ALLOWED$1; | |
| 544 | + return BREAK_NOT_ALLOWED; | |
| 589 | 545 | } |
| 590 | 546 | var beforeIndex = currentIndex - 1; |
| 591 | 547 | var afterIndex = currentIndex + 1; |
| 592 | 548 | var current = classTypes[currentIndex]; |
| @@ -593,10 +549,10 @@ | ||
| 593 | 549 | // LB4 Always break after hard line breaks. |
| 594 | 550 | // LB5 Treat CR followed by LF, as well as CR, LF, and NL as hard line breaks. |
| 595 | 551 | var before = beforeIndex >= 0 ? classTypes[beforeIndex] : 0; |
| 596 | 552 | var next = classTypes[afterIndex]; |
| 597 | - if (current === CR$1 && next === LF$1) { | |
| 598 | - return BREAK_NOT_ALLOWED$1; | |
| 553 | + if (current === CR && next === LF) { | |
| 554 | + return BREAK_NOT_ALLOWED; | |
| 599 | 555 | } |
| 600 | 556 | if (HARD_LINE_BREAKS.indexOf(current) !== -1) { |
| 601 | 557 | return BREAK_MANDATORY; |
| 602 | 558 | } |
| @@ -601,110 +557,106 @@ | ||
| 601 | 557 | return BREAK_MANDATORY; |
| 602 | 558 | } |
| 603 | 559 | // LB6 Do not break before hard line breaks. |
| 604 | 560 | if (HARD_LINE_BREAKS.indexOf(next) !== -1) { |
| 605 | - return BREAK_NOT_ALLOWED$1; | |
| 561 | + return BREAK_NOT_ALLOWED; | |
| 606 | 562 | } |
| 607 | 563 | // LB7 Do not break before spaces or zero width space. |
| 608 | - if (SPACE$1.indexOf(next) !== -1) { | |
| 609 | - return BREAK_NOT_ALLOWED$1; | |
| 564 | + if (SPACE.indexOf(next) !== -1) { | |
| 565 | + return BREAK_NOT_ALLOWED; | |
| 610 | 566 | } |
| 611 | 567 | // LB8 Break before any character following a zero-width space, even if one or more spaces intervene. |
| 612 | 568 | if (previousNonSpaceClassType(currentIndex, classTypes) === ZW) { |
| 613 | - return BREAK_ALLOWED$1; | |
| 569 | + return BREAK_ALLOWED; | |
| 614 | 570 | } |
| 615 | - // LB8a Do not break after a zero width joiner. | |
| 616 | - if (UnicodeTrie$1.get(codePoints[currentIndex]) === ZWJ$1) { | |
| 617 | - return BREAK_NOT_ALLOWED$1; | |
| 571 | + // LB8a Do not break between a zero width joiner and an ideograph, emoji base or emoji modifier. | |
| 572 | + if (UnicodeTrie.get(codePoints[currentIndex]) === ZWJ && (next === ID || next === EB || next === EM)) { | |
| 573 | + return BREAK_NOT_ALLOWED; | |
| 618 | 574 | } |
| 619 | - // zwj emojis | |
| 620 | - if ((current === EB || current === EM) && UnicodeTrie$1.get(codePoints[afterIndex]) === ZWJ$1) { | |
| 621 | - return BREAK_NOT_ALLOWED$1; | |
| 622 | - } | |
| 623 | 575 | // LB11 Do not break before or after Word joiner and related characters. |
| 624 | 576 | if (current === WJ || next === WJ) { |
| 625 | - return BREAK_NOT_ALLOWED$1; | |
| 577 | + return BREAK_NOT_ALLOWED; | |
| 626 | 578 | } |
| 627 | 579 | // LB12 Do not break after NBSP and related characters. |
| 628 | 580 | if (current === GL) { |
| 629 | - return BREAK_NOT_ALLOWED$1; | |
| 581 | + return BREAK_NOT_ALLOWED; | |
| 630 | 582 | } |
| 631 | 583 | // LB12a Do not break before NBSP and related characters, except after spaces and hyphens. |
| 632 | 584 | if ([SP, BA, HY].indexOf(current) === -1 && next === GL) { |
| 633 | - return BREAK_NOT_ALLOWED$1; | |
| 585 | + return BREAK_NOT_ALLOWED; | |
| 634 | 586 | } |
| 635 | 587 | // LB13 Do not break before ‘]’ or ‘!’ or ‘;’ or ‘/’, even after spaces. |
| 636 | 588 | if ([CL, CP, EX, IS, SY].indexOf(next) !== -1) { |
| 637 | - return BREAK_NOT_ALLOWED$1; | |
| 589 | + return BREAK_NOT_ALLOWED; | |
| 638 | 590 | } |
| 639 | 591 | // LB14 Do not break after ‘[’, even after spaces. |
| 640 | 592 | if (previousNonSpaceClassType(currentIndex, classTypes) === OP) { |
| 641 | - return BREAK_NOT_ALLOWED$1; | |
| 593 | + return BREAK_NOT_ALLOWED; | |
| 642 | 594 | } |
| 643 | 595 | // LB15 Do not break within ‘”[’, even with intervening spaces. |
| 644 | 596 | if (isAdjacentWithSpaceIgnored(QU, OP, currentIndex, classTypes)) { |
| 645 | - return BREAK_NOT_ALLOWED$1; | |
| 597 | + return BREAK_NOT_ALLOWED; | |
| 646 | 598 | } |
| 647 | 599 | // LB16 Do not break between closing punctuation and a nonstarter (lb=NS), even with intervening spaces. |
| 648 | 600 | if (isAdjacentWithSpaceIgnored([CL, CP], NS, currentIndex, classTypes)) { |
| 649 | - return BREAK_NOT_ALLOWED$1; | |
| 601 | + return BREAK_NOT_ALLOWED; | |
| 650 | 602 | } |
| 651 | 603 | // LB17 Do not break within ‘——’, even with intervening spaces. |
| 652 | 604 | if (isAdjacentWithSpaceIgnored(B2, B2, currentIndex, classTypes)) { |
| 653 | - return BREAK_NOT_ALLOWED$1; | |
| 605 | + return BREAK_NOT_ALLOWED; | |
| 654 | 606 | } |
| 655 | 607 | // LB18 Break after spaces. |
| 656 | 608 | if (current === SP) { |
| 657 | - return BREAK_ALLOWED$1; | |
| 609 | + return BREAK_ALLOWED; | |
| 658 | 610 | } |
| 659 | 611 | // LB19 Do not break before or after quotation marks, such as ‘ ” ’. |
| 660 | 612 | if (current === QU || next === QU) { |
| 661 | - return BREAK_NOT_ALLOWED$1; | |
| 613 | + return BREAK_NOT_ALLOWED; | |
| 662 | 614 | } |
| 663 | 615 | // LB20 Break before and after unresolved CB. |
| 664 | 616 | if (next === CB || current === CB) { |
| 665 | - return BREAK_ALLOWED$1; | |
| 617 | + return BREAK_ALLOWED; | |
| 666 | 618 | } |
| 667 | 619 | // LB21 Do not break before hyphen-minus, other hyphens, fixed-width spaces, small kana, and other non-starters, or after acute accents. |
| 668 | 620 | if ([BA, HY, NS].indexOf(next) !== -1 || current === BB) { |
| 669 | - return BREAK_NOT_ALLOWED$1; | |
| 621 | + return BREAK_NOT_ALLOWED; | |
| 670 | 622 | } |
| 671 | 623 | // LB21a Don't break after Hebrew + Hyphen. |
| 672 | 624 | if (before === HL && HYPHEN.indexOf(current) !== -1) { |
| 673 | - return BREAK_NOT_ALLOWED$1; | |
| 625 | + return BREAK_NOT_ALLOWED; | |
| 674 | 626 | } |
| 675 | 627 | // LB21b Don’t break between Solidus and Hebrew letters. |
| 676 | 628 | if (current === SY && next === HL) { |
| 677 | - return BREAK_NOT_ALLOWED$1; | |
| 629 | + return BREAK_NOT_ALLOWED; | |
| 678 | 630 | } |
| 679 | - // LB22 Do not break before ellipsis. | |
| 680 | - if (next === IN) { | |
| 681 | - return BREAK_NOT_ALLOWED$1; | |
| 631 | + // LB22 Do not break between two ellipses, or between letters, numbers or exclamations and ellipsis. | |
| 632 | + if (next === IN && ALPHABETICS.concat(IN, EX, NU, ID, EB, EM).indexOf(current) !== -1) { | |
| 633 | + return BREAK_NOT_ALLOWED; | |
| 682 | 634 | } |
| 683 | 635 | // LB23 Do not break between digits and letters. |
| 684 | 636 | if ((ALPHABETICS.indexOf(next) !== -1 && current === NU) || (ALPHABETICS.indexOf(current) !== -1 && next === NU)) { |
| 685 | - return BREAK_NOT_ALLOWED$1; | |
| 637 | + return BREAK_NOT_ALLOWED; | |
| 686 | 638 | } |
| 687 | 639 | // LB23a Do not break between numeric prefixes and ideographs, or between ideographs and numeric postfixes. |
| 688 | 640 | if ((current === PR && [ID, EB, EM].indexOf(next) !== -1) || |
| 689 | 641 | ([ID, EB, EM].indexOf(current) !== -1 && next === PO)) { |
| 690 | - return BREAK_NOT_ALLOWED$1; | |
| 642 | + return BREAK_NOT_ALLOWED; | |
| 691 | 643 | } |
| 692 | 644 | // LB24 Do not break between numeric prefix/postfix and letters, or between letters and prefix/postfix. |
| 693 | 645 | if ((ALPHABETICS.indexOf(current) !== -1 && PREFIX_POSTFIX.indexOf(next) !== -1) || |
| 694 | 646 | (PREFIX_POSTFIX.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1)) { |
| 695 | - return BREAK_NOT_ALLOWED$1; | |
| 647 | + return BREAK_NOT_ALLOWED; | |
| 696 | 648 | } |
| 697 | 649 | // LB25 Do not break between the following pairs of classes relevant to numbers: |
| 698 | 650 | if ( |
| 699 | - // (PR | PO) × ( OP | HY )? NU | |
| 700 | - ([PR, PO].indexOf(current) !== -1 && | |
| 701 | - (next === NU || ([OP, HY].indexOf(next) !== -1 && classTypes[afterIndex + 1] === NU))) || | |
| 651 | + // (PR | PO) × ( OP | HY )? NU | |
| 652 | + ([PR, PO].indexOf(current) !== -1 && | |
| 653 | + (next === NU || ([OP, HY].indexOf(next) !== -1 && classTypes[afterIndex + 1] === NU))) || | |
| 702 | 654 | // ( OP | HY ) × NU |
| 703 | 655 | ([OP, HY].indexOf(current) !== -1 && next === NU) || |
| 704 | 656 | // NU × (NU | SY | IS) |
| 705 | 657 | (current === NU && [NU, SY, IS].indexOf(next) !== -1)) { |
| 706 | - return BREAK_NOT_ALLOWED$1; | |
| 658 | + return BREAK_NOT_ALLOWED; | |
| 707 | 659 | } |
| 708 | 660 | // NU (NU | SY | IS)* × (NU | SY | IS | CL | CP) |
| 709 | 661 | if ([NU, SY, IS, CL, CP].indexOf(next) !== -1) { |
| 710 | 662 | var prevIndex = currentIndex; |
| @@ -710,9 +662,9 @@ | ||
| 710 | 662 | var prevIndex = currentIndex; |
| 711 | 663 | while (prevIndex >= 0) { |
| 712 | 664 | var type = classTypes[prevIndex]; |
| 713 | 665 | if (type === NU) { |
| 714 | - return BREAK_NOT_ALLOWED$1; | |
| 666 | + return BREAK_NOT_ALLOWED; | |
| 715 | 667 | } |
| 716 | 668 | else if ([SY, IS].indexOf(type) !== -1) { |
| 717 | 669 | prevIndex--; |
| 718 | 670 | } |
| @@ -726,9 +678,9 @@ | ||
| 726 | 678 | var prevIndex = [CL, CP].indexOf(current) !== -1 ? beforeIndex : currentIndex; |
| 727 | 679 | while (prevIndex >= 0) { |
| 728 | 680 | var type = classTypes[prevIndex]; |
| 729 | 681 | if (type === NU) { |
| 730 | - return BREAK_NOT_ALLOWED$1; | |
| 682 | + return BREAK_NOT_ALLOWED; | |
| 731 | 683 | } |
| 732 | 684 | else if ([SY, IS].indexOf(type) !== -1) { |
| 733 | 685 | prevIndex--; |
| 734 | 686 | } |
| @@ -740,38 +692,36 @@ | ||
| 740 | 692 | // LB26 Do not break a Korean syllable. |
| 741 | 693 | if ((JL === current && [JL, JV, H2, H3].indexOf(next) !== -1) || |
| 742 | 694 | ([JV, H2].indexOf(current) !== -1 && [JV, JT].indexOf(next) !== -1) || |
| 743 | 695 | ([JT, H3].indexOf(current) !== -1 && next === JT)) { |
| 744 | - return BREAK_NOT_ALLOWED$1; | |
| 696 | + return BREAK_NOT_ALLOWED; | |
| 745 | 697 | } |
| 746 | 698 | // LB27 Treat a Korean Syllable Block the same as ID. |
| 747 | 699 | if ((KOREAN_SYLLABLE_BLOCK.indexOf(current) !== -1 && [IN, PO].indexOf(next) !== -1) || |
| 748 | 700 | (KOREAN_SYLLABLE_BLOCK.indexOf(next) !== -1 && current === PR)) { |
| 749 | - return BREAK_NOT_ALLOWED$1; | |
| 701 | + return BREAK_NOT_ALLOWED; | |
| 750 | 702 | } |
| 751 | 703 | // LB28 Do not break between alphabetics (“at”). |
| 752 | 704 | if (ALPHABETICS.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1) { |
| 753 | - return BREAK_NOT_ALLOWED$1; | |
| 705 | + return BREAK_NOT_ALLOWED; | |
| 754 | 706 | } |
| 755 | 707 | // LB29 Do not break between numeric punctuation and alphabetics (“e.g.”). |
| 756 | 708 | if (current === IS && ALPHABETICS.indexOf(next) !== -1) { |
| 757 | - return BREAK_NOT_ALLOWED$1; | |
| 709 | + return BREAK_NOT_ALLOWED; | |
| 758 | 710 | } |
| 759 | 711 | // LB30 Do not break between letters, numbers, or ordinary symbols and opening or closing parentheses. |
| 760 | - if ((ALPHABETICS.concat(NU).indexOf(current) !== -1 && | |
| 761 | - next === OP && | |
| 762 | - ea_OP.indexOf(codePoints[afterIndex]) === -1) || | |
| 712 | + if ((ALPHABETICS.concat(NU).indexOf(current) !== -1 && next === OP) || | |
| 763 | 713 | (ALPHABETICS.concat(NU).indexOf(next) !== -1 && current === CP)) { |
| 764 | - return BREAK_NOT_ALLOWED$1; | |
| 714 | + return BREAK_NOT_ALLOWED; | |
| 765 | 715 | } |
| 766 | 716 | // LB30a Break between two regional indicator symbols if and only if there are an even number of regional |
| 767 | 717 | // indicators preceding the position of the break. |
| 768 | - if (current === RI$1 && next === RI$1) { | |
| 718 | + if (current === RI && next === RI) { | |
| 769 | 719 | var i = indicies[currentIndex]; |
| 770 | 720 | var count = 1; |
| 771 | 721 | while (i > 0) { |
| 772 | 722 | i--; |
| 773 | - if (classTypes[i] === RI$1) { | |
| 723 | + if (classTypes[i] === RI) { | |
| 774 | 724 | count++; |
| 775 | 725 | } |
| 776 | 726 | else { |
| 777 | 727 | break; |
| @@ -777,16 +727,16 @@ | ||
| 777 | 727 | break; |
| 778 | 728 | } |
| 779 | 729 | } |
| 780 | 730 | if (count % 2 !== 0) { |
| 781 | - return BREAK_NOT_ALLOWED$1; | |
| 731 | + return BREAK_NOT_ALLOWED; | |
| 782 | 732 | } |
| 783 | 733 | } |
| 784 | 734 | // LB30b Do not break between an emoji base and an emoji modifier. |
| 785 | 735 | if (current === EB && next === EM) { |
| 786 | - return BREAK_NOT_ALLOWED$1; | |
| 736 | + return BREAK_NOT_ALLOWED; | |
| 787 | 737 | } |
| 788 | - return BREAK_ALLOWED$1; | |
| 738 | + return BREAK_ALLOWED; | |
| 789 | 739 | }; |
| 790 | 740 | var cssFormattedClasses = function (codePoints, options) { |
| 791 | 741 | if (!options) { |
| 792 | 742 | options = { lineBreak: 'normal', wordBreak: 'normal' }; |
| @@ -809,14 +759,14 @@ | ||
| 809 | 759 | this.start = start; |
| 810 | 760 | this.end = end; |
| 811 | 761 | } |
| 812 | 762 | Break.prototype.slice = function () { |
| 813 | - return fromCodePoint$1.apply(void 0, this.codePoints.slice(this.start, this.end)); | |
| 763 | + return fromCodePoint.apply(void 0, this.codePoints.slice(this.start, this.end)); | |
| 814 | 764 | }; |
| 815 | 765 | return Break; |
| 816 | 766 | }()); |
| 817 | 767 | var LineBreaker = function (str, options) { |
| 818 | - var codePoints = toCodePoints$1(str); | |
| 768 | + var codePoints = toCodePoints(str); | |
| 819 | 769 | var _a = cssFormattedClasses(codePoints, options), indicies = _a[0], classTypes = _a[1], forbiddenBreakpoints = _a[2]; |
| 820 | 770 | var length = codePoints.length; |
| 821 | 771 | var lastEnd = 0; |
| 822 | 772 | var nextIndex = 0; |
| @@ -824,13 +774,13 @@ | ||
| 824 | 774 | next: function () { |
| 825 | 775 | if (nextIndex >= length) { |
| 826 | 776 | return { done: true, value: null }; |
| 827 | 777 | } |
| 828 | - var lineBreak = BREAK_NOT_ALLOWED$1; | |
| 778 | + var lineBreak = BREAK_NOT_ALLOWED; | |
| 829 | 779 | while (nextIndex < length && |
| 830 | - (lineBreak = _lineBreakAtIndex(codePoints, classTypes, indicies, ++nextIndex, forbiddenBreakpoints)) === | |
| 831 | - BREAK_NOT_ALLOWED$1) { } | |
| 832 | - if (lineBreak !== BREAK_NOT_ALLOWED$1 || nextIndex === length) { | |
| 780 | + (lineBreak = _lineBreakAtIndex(codePoints, classTypes, indicies, ++nextIndex, forbiddenBreakpoints)) === | |
| 781 | + BREAK_NOT_ALLOWED) { } | |
| 782 | + if (lineBreak !== BREAK_NOT_ALLOWED || nextIndex === length) { | |
| 833 | 783 | var value = new Break(codePoints, lineBreak, lastEnd, nextIndex); |
| 834 | 784 | lastEnd = nextIndex; |
| 835 | 785 | return { value: value, done: false }; |
| 836 | 786 | } |
| @@ -839,8 +789,44 @@ | ||
| 839 | 789 | }; |
| 840 | 790 | }; |
| 841 | 791 | |
| 842 | 792 | // https://www.w3.org/TR/css-syntax-3 |
| 793 | + var TokenType; | |
| 794 | + (function (TokenType) { | |
| 795 | + TokenType[TokenType["STRING_TOKEN"] = 0] = "STRING_TOKEN"; | |
| 796 | + TokenType[TokenType["BAD_STRING_TOKEN"] = 1] = "BAD_STRING_TOKEN"; | |
| 797 | + TokenType[TokenType["LEFT_PARENTHESIS_TOKEN"] = 2] = "LEFT_PARENTHESIS_TOKEN"; | |
| 798 | + TokenType[TokenType["RIGHT_PARENTHESIS_TOKEN"] = 3] = "RIGHT_PARENTHESIS_TOKEN"; | |
| 799 | + TokenType[TokenType["COMMA_TOKEN"] = 4] = "COMMA_TOKEN"; | |
| 800 | + TokenType[TokenType["HASH_TOKEN"] = 5] = "HASH_TOKEN"; | |
| 801 | + TokenType[TokenType["DELIM_TOKEN"] = 6] = "DELIM_TOKEN"; | |
| 802 | + TokenType[TokenType["AT_KEYWORD_TOKEN"] = 7] = "AT_KEYWORD_TOKEN"; | |
| 803 | + TokenType[TokenType["PREFIX_MATCH_TOKEN"] = 8] = "PREFIX_MATCH_TOKEN"; | |
| 804 | + TokenType[TokenType["DASH_MATCH_TOKEN"] = 9] = "DASH_MATCH_TOKEN"; | |
| 805 | + TokenType[TokenType["INCLUDE_MATCH_TOKEN"] = 10] = "INCLUDE_MATCH_TOKEN"; | |
| 806 | + TokenType[TokenType["LEFT_CURLY_BRACKET_TOKEN"] = 11] = "LEFT_CURLY_BRACKET_TOKEN"; | |
| 807 | + TokenType[TokenType["RIGHT_CURLY_BRACKET_TOKEN"] = 12] = "RIGHT_CURLY_BRACKET_TOKEN"; | |
| 808 | + TokenType[TokenType["SUFFIX_MATCH_TOKEN"] = 13] = "SUFFIX_MATCH_TOKEN"; | |
| 809 | + TokenType[TokenType["SUBSTRING_MATCH_TOKEN"] = 14] = "SUBSTRING_MATCH_TOKEN"; | |
| 810 | + TokenType[TokenType["DIMENSION_TOKEN"] = 15] = "DIMENSION_TOKEN"; | |
| 811 | + TokenType[TokenType["PERCENTAGE_TOKEN"] = 16] = "PERCENTAGE_TOKEN"; | |
| 812 | + TokenType[TokenType["NUMBER_TOKEN"] = 17] = "NUMBER_TOKEN"; | |
| 813 | + TokenType[TokenType["FUNCTION"] = 18] = "FUNCTION"; | |
| 814 | + TokenType[TokenType["FUNCTION_TOKEN"] = 19] = "FUNCTION_TOKEN"; | |
| 815 | + TokenType[TokenType["IDENT_TOKEN"] = 20] = "IDENT_TOKEN"; | |
| 816 | + TokenType[TokenType["COLUMN_TOKEN"] = 21] = "COLUMN_TOKEN"; | |
| 817 | + TokenType[TokenType["URL_TOKEN"] = 22] = "URL_TOKEN"; | |
| 818 | + TokenType[TokenType["BAD_URL_TOKEN"] = 23] = "BAD_URL_TOKEN"; | |
| 819 | + TokenType[TokenType["CDC_TOKEN"] = 24] = "CDC_TOKEN"; | |
| 820 | + TokenType[TokenType["CDO_TOKEN"] = 25] = "CDO_TOKEN"; | |
| 821 | + TokenType[TokenType["COLON_TOKEN"] = 26] = "COLON_TOKEN"; | |
| 822 | + TokenType[TokenType["SEMICOLON_TOKEN"] = 27] = "SEMICOLON_TOKEN"; | |
| 823 | + TokenType[TokenType["LEFT_SQUARE_BRACKET_TOKEN"] = 28] = "LEFT_SQUARE_BRACKET_TOKEN"; | |
| 824 | + TokenType[TokenType["RIGHT_SQUARE_BRACKET_TOKEN"] = 29] = "RIGHT_SQUARE_BRACKET_TOKEN"; | |
| 825 | + TokenType[TokenType["UNICODE_RANGE_TOKEN"] = 30] = "UNICODE_RANGE_TOKEN"; | |
| 826 | + TokenType[TokenType["WHITESPACE_TOKEN"] = 31] = "WHITESPACE_TOKEN"; | |
| 827 | + TokenType[TokenType["EOF_TOKEN"] = 32] = "EOF_TOKEN"; | |
| 828 | + })(TokenType || (TokenType = {})); | |
| 843 | 829 | var FLAG_UNRESTRICTED = 1 << 0; |
| 844 | 830 | var FLAG_ID = 1 << 1; |
| 845 | 831 | var FLAG_INTEGER = 1 << 2; |
| 846 | 832 | var FLAG_NUMBER = 1 << 3; |
| @@ -847,9 +833,9 @@ | ||
| 847 | 833 | var LINE_FEED = 0x000a; |
| 848 | 834 | var SOLIDUS = 0x002f; |
| 849 | 835 | var REVERSE_SOLIDUS = 0x005c; |
| 850 | 836 | var CHARACTER_TABULATION = 0x0009; |
| 851 | - var SPACE = 0x0020; | |
| 837 | + var SPACE$1 = 0x0020; | |
| 852 | 838 | var QUOTATION_MARK = 0x0022; |
| 853 | 839 | var EQUALS_SIGN = 0x003d; |
| 854 | 840 | var NUMBER_SIGN = 0x0023; |
| 855 | 841 | var DOLLAR_SIGN = 0x0024; |
| @@ -906,9 +892,9 @@ | ||
| 906 | 892 | var isUpperCaseLetter = function (codePoint) { return codePoint >= A && codePoint <= Z; }; |
| 907 | 893 | var isLetter = function (codePoint) { return isLowerCaseLetter(codePoint) || isUpperCaseLetter(codePoint); }; |
| 908 | 894 | var isNonASCIICodePoint = function (codePoint) { return codePoint >= CONTROL; }; |
| 909 | 895 | var isWhiteSpace = function (codePoint) { |
| 910 | - return codePoint === LINE_FEED || codePoint === CHARACTER_TABULATION || codePoint === SPACE; | |
| 896 | + return codePoint === LINE_FEED || codePoint === CHARACTER_TABULATION || codePoint === SPACE$1; | |
| 911 | 897 | }; |
| 912 | 898 | var isNameStartCodePoint = function (codePoint) { |
| 913 | 899 | return isLetter(codePoint) || isNonASCIICodePoint(codePoint) || codePoint === LOW_LINE; |
| 914 | 900 | }; |
| @@ -963,9 +949,9 @@ | ||
| 963 | 949 | var integers = []; |
| 964 | 950 | while (isDigit(codePoints[c])) { |
| 965 | 951 | integers.push(codePoints[c++]); |
| 966 | 952 | } |
| 967 | - var int = integers.length ? parseInt(fromCodePoint$1.apply(void 0, integers), 10) : 0; | |
| 953 | + var int = integers.length ? parseInt(fromCodePoint.apply(void 0, integers), 10) : 0; | |
| 968 | 954 | if (codePoints[c] === FULL_STOP) { |
| 969 | 955 | c++; |
| 970 | 956 | } |
| 971 | 957 | var fraction = []; |
| @@ -972,9 +958,9 @@ | ||
| 972 | 958 | while (isDigit(codePoints[c])) { |
| 973 | 959 | fraction.push(codePoints[c++]); |
| 974 | 960 | } |
| 975 | 961 | var fracd = fraction.length; |
| 976 | - var frac = fracd ? parseInt(fromCodePoint$1.apply(void 0, fraction), 10) : 0; | |
| 962 | + var frac = fracd ? parseInt(fromCodePoint.apply(void 0, fraction), 10) : 0; | |
| 977 | 963 | if (codePoints[c] === E || codePoints[c] === e) { |
| 978 | 964 | c++; |
| 979 | 965 | } |
| 980 | 966 | var expsign = 1; |
| @@ -987,50 +973,50 @@ | ||
| 987 | 973 | var exponent = []; |
| 988 | 974 | while (isDigit(codePoints[c])) { |
| 989 | 975 | exponent.push(codePoints[c++]); |
| 990 | 976 | } |
| 991 | - var exp = exponent.length ? parseInt(fromCodePoint$1.apply(void 0, exponent), 10) : 0; | |
| 977 | + var exp = exponent.length ? parseInt(fromCodePoint.apply(void 0, exponent), 10) : 0; | |
| 992 | 978 | return sign * (int + frac * Math.pow(10, -fracd)) * Math.pow(10, expsign * exp); |
| 993 | 979 | }; |
| 994 | 980 | var LEFT_PARENTHESIS_TOKEN = { |
| 995 | - type: 2 /* LEFT_PARENTHESIS_TOKEN */ | |
| 981 | + type: TokenType.LEFT_PARENTHESIS_TOKEN | |
| 996 | 982 | }; |
| 997 | 983 | var RIGHT_PARENTHESIS_TOKEN = { |
| 998 | - type: 3 /* RIGHT_PARENTHESIS_TOKEN */ | |
| 984 | + type: TokenType.RIGHT_PARENTHESIS_TOKEN | |
| 999 | 985 | }; |
| 1000 | - var COMMA_TOKEN = { type: 4 /* COMMA_TOKEN */ }; | |
| 1001 | - var SUFFIX_MATCH_TOKEN = { type: 13 /* SUFFIX_MATCH_TOKEN */ }; | |
| 1002 | - var PREFIX_MATCH_TOKEN = { type: 8 /* PREFIX_MATCH_TOKEN */ }; | |
| 1003 | - var COLUMN_TOKEN = { type: 21 /* COLUMN_TOKEN */ }; | |
| 1004 | - var DASH_MATCH_TOKEN = { type: 9 /* DASH_MATCH_TOKEN */ }; | |
| 1005 | - var INCLUDE_MATCH_TOKEN = { type: 10 /* INCLUDE_MATCH_TOKEN */ }; | |
| 986 | + var COMMA_TOKEN = { type: TokenType.COMMA_TOKEN }; | |
| 987 | + var SUFFIX_MATCH_TOKEN = { type: TokenType.SUFFIX_MATCH_TOKEN }; | |
| 988 | + var PREFIX_MATCH_TOKEN = { type: TokenType.PREFIX_MATCH_TOKEN }; | |
| 989 | + var COLUMN_TOKEN = { type: TokenType.COLUMN_TOKEN }; | |
| 990 | + var DASH_MATCH_TOKEN = { type: TokenType.DASH_MATCH_TOKEN }; | |
| 991 | + var INCLUDE_MATCH_TOKEN = { type: TokenType.INCLUDE_MATCH_TOKEN }; | |
| 1006 | 992 | var LEFT_CURLY_BRACKET_TOKEN = { |
| 1007 | - type: 11 /* LEFT_CURLY_BRACKET_TOKEN */ | |
| 993 | + type: TokenType.LEFT_CURLY_BRACKET_TOKEN | |
| 1008 | 994 | }; |
| 1009 | 995 | var RIGHT_CURLY_BRACKET_TOKEN = { |
| 1010 | - type: 12 /* RIGHT_CURLY_BRACKET_TOKEN */ | |
| 996 | + type: TokenType.RIGHT_CURLY_BRACKET_TOKEN | |
| 1011 | 997 | }; |
| 1012 | - var SUBSTRING_MATCH_TOKEN = { type: 14 /* SUBSTRING_MATCH_TOKEN */ }; | |
| 1013 | - var BAD_URL_TOKEN = { type: 23 /* BAD_URL_TOKEN */ }; | |
| 1014 | - var BAD_STRING_TOKEN = { type: 1 /* BAD_STRING_TOKEN */ }; | |
| 1015 | - var CDO_TOKEN = { type: 25 /* CDO_TOKEN */ }; | |
| 1016 | - var CDC_TOKEN = { type: 24 /* CDC_TOKEN */ }; | |
| 1017 | - var COLON_TOKEN = { type: 26 /* COLON_TOKEN */ }; | |
| 1018 | - var SEMICOLON_TOKEN = { type: 27 /* SEMICOLON_TOKEN */ }; | |
| 998 | + var SUBSTRING_MATCH_TOKEN = { type: TokenType.SUBSTRING_MATCH_TOKEN }; | |
| 999 | + var BAD_URL_TOKEN = { type: TokenType.BAD_URL_TOKEN }; | |
| 1000 | + var BAD_STRING_TOKEN = { type: TokenType.BAD_STRING_TOKEN }; | |
| 1001 | + var CDO_TOKEN = { type: TokenType.CDO_TOKEN }; | |
| 1002 | + var CDC_TOKEN = { type: TokenType.CDC_TOKEN }; | |
| 1003 | + var COLON_TOKEN = { type: TokenType.COLON_TOKEN }; | |
| 1004 | + var SEMICOLON_TOKEN = { type: TokenType.SEMICOLON_TOKEN }; | |
| 1019 | 1005 | var LEFT_SQUARE_BRACKET_TOKEN = { |
| 1020 | - type: 28 /* LEFT_SQUARE_BRACKET_TOKEN */ | |
| 1006 | + type: TokenType.LEFT_SQUARE_BRACKET_TOKEN | |
| 1021 | 1007 | }; |
| 1022 | 1008 | var RIGHT_SQUARE_BRACKET_TOKEN = { |
| 1023 | - type: 29 /* RIGHT_SQUARE_BRACKET_TOKEN */ | |
| 1009 | + type: TokenType.RIGHT_SQUARE_BRACKET_TOKEN | |
| 1024 | 1010 | }; |
| 1025 | - var WHITESPACE_TOKEN = { type: 31 /* WHITESPACE_TOKEN */ }; | |
| 1026 | - var EOF_TOKEN = { type: 32 /* EOF_TOKEN */ }; | |
| 1011 | + var WHITESPACE_TOKEN = { type: TokenType.WHITESPACE_TOKEN }; | |
| 1012 | + var EOF_TOKEN = { type: TokenType.EOF_TOKEN }; | |
| 1027 | 1013 | var Tokenizer = /** @class */ (function () { |
| 1028 | 1014 | function Tokenizer() { |
| 1029 | 1015 | this._value = []; |
| 1030 | 1016 | } |
| 1031 | 1017 | Tokenizer.prototype.write = function (chunk) { |
| 1032 | - this._value = this._value.concat(toCodePoints$1(chunk)); | |
| 1018 | + this._value = this._value.concat(toCodePoints(chunk)); | |
| 1033 | 1019 | }; |
| 1034 | 1020 | Tokenizer.prototype.read = function () { |
| 1035 | 1021 | var tokens = []; |
| 1036 | 1022 | var token = this.consumeToken(); |
| @@ -1051,9 +1037,9 @@ | ||
| 1051 | 1037 | var c3 = this.peekCodePoint(2); |
| 1052 | 1038 | if (isNameCodePoint(c1) || isValidEscape(c2, c3)) { |
| 1053 | 1039 | var flags = isIdentifierStart(c1, c2, c3) ? FLAG_ID : FLAG_UNRESTRICTED; |
| 1054 | 1040 | var value = this.consumeName(); |
| 1055 | - return { type: 5 /* HASH_TOKEN */, value: value, flags: flags }; | |
| 1041 | + return { type: TokenType.HASH_TOKEN, value: value, flags: flags }; | |
| 1056 | 1042 | } |
| 1057 | 1043 | break; |
| 1058 | 1044 | case DOLLAR_SIGN: |
| 1059 | 1045 | if (this.peekCodePoint(0) === EQUALS_SIGN) { |
| @@ -1140,9 +1126,9 @@ | ||
| 1140 | 1126 | var a2 = this.peekCodePoint(1); |
| 1141 | 1127 | var a3 = this.peekCodePoint(2); |
| 1142 | 1128 | if (isIdentifierStart(a1, a2, a3)) { |
| 1143 | 1129 | var value = this.consumeName(); |
| 1144 | - return { type: 7 /* AT_KEYWORD_TOKEN */, value: value }; | |
| 1130 | + return { type: TokenType.AT_KEYWORD_TOKEN, value: value }; | |
| 1145 | 1131 | } |
| 1146 | 1132 | break; |
| 1147 | 1133 | case LEFT_SQUARE_BRACKET: |
| 1148 | 1134 | return LEFT_SQUARE_BRACKET_TOKEN; |
| @@ -1204,9 +1190,9 @@ | ||
| 1204 | 1190 | if (isNameStartCodePoint(codePoint)) { |
| 1205 | 1191 | this.reconsumeCodePoint(codePoint); |
| 1206 | 1192 | return this.consumeIdentLikeToken(); |
| 1207 | 1193 | } |
| 1208 | - return { type: 6 /* DELIM_TOKEN */, value: fromCodePoint$1(codePoint) }; | |
| 1194 | + return { type: TokenType.DELIM_TOKEN, value: fromCodePoint(codePoint) }; | |
| 1209 | 1195 | }; |
| 1210 | 1196 | Tokenizer.prototype.consumeCodePoint = function () { |
| 1211 | 1197 | var value = this._value.shift(); |
| 1212 | 1198 | return typeof value === 'undefined' ? -1 : value; |
| @@ -1233,13 +1219,13 @@ | ||
| 1233 | 1219 | codePoint = this.consumeCodePoint(); |
| 1234 | 1220 | questionMarks = true; |
| 1235 | 1221 | } |
| 1236 | 1222 | if (questionMarks) { |
| 1237 | - var start_1 = parseInt(fromCodePoint$1.apply(void 0, digits.map(function (digit) { return (digit === QUESTION_MARK ? ZERO : digit); })), 16); | |
| 1238 | - var end = parseInt(fromCodePoint$1.apply(void 0, digits.map(function (digit) { return (digit === QUESTION_MARK ? F : digit); })), 16); | |
| 1239 | - return { type: 30 /* UNICODE_RANGE_TOKEN */, start: start_1, end: end }; | |
| 1223 | + var start_1 = parseInt(fromCodePoint.apply(void 0, digits.map(function (digit) { return (digit === QUESTION_MARK ? ZERO : digit); })), 16); | |
| 1224 | + var end = parseInt(fromCodePoint.apply(void 0, digits.map(function (digit) { return (digit === QUESTION_MARK ? F : digit); })), 16); | |
| 1225 | + return { type: TokenType.UNICODE_RANGE_TOKEN, start: start_1, end: end }; | |
| 1240 | 1226 | } |
| 1241 | - var start = parseInt(fromCodePoint$1.apply(void 0, digits), 16); | |
| 1227 | + var start = parseInt(fromCodePoint.apply(void 0, digits), 16); | |
| 1242 | 1228 | if (this.peekCodePoint(0) === HYPHEN_MINUS && isHex(this.peekCodePoint(1))) { |
| 1243 | 1229 | this.consumeCodePoint(); |
| 1244 | 1230 | codePoint = this.consumeCodePoint(); |
| 1245 | 1231 | var endDigits = []; |
| @@ -1246,13 +1232,13 @@ | ||
| 1246 | 1232 | while (isHex(codePoint) && endDigits.length < 6) { |
| 1247 | 1233 | endDigits.push(codePoint); |
| 1248 | 1234 | codePoint = this.consumeCodePoint(); |
| 1249 | 1235 | } |
| 1250 | - var end = parseInt(fromCodePoint$1.apply(void 0, endDigits), 16); | |
| 1251 | - return { type: 30 /* UNICODE_RANGE_TOKEN */, start: start, end: end }; | |
| 1236 | + var end = parseInt(fromCodePoint.apply(void 0, endDigits), 16); | |
| 1237 | + return { type: TokenType.UNICODE_RANGE_TOKEN, start: start, end: end }; | |
| 1252 | 1238 | } |
| 1253 | 1239 | else { |
| 1254 | - return { type: 30 /* UNICODE_RANGE_TOKEN */, start: start, end: start }; | |
| 1240 | + return { type: TokenType.UNICODE_RANGE_TOKEN, start: start, end: start }; | |
| 1255 | 1241 | } |
| 1256 | 1242 | }; |
| 1257 | 1243 | Tokenizer.prototype.consumeIdentLikeToken = function () { |
| 1258 | 1244 | var value = this.consumeName(); |
| @@ -1261,26 +1247,26 @@ | ||
| 1261 | 1247 | return this.consumeUrlToken(); |
| 1262 | 1248 | } |
| 1263 | 1249 | else if (this.peekCodePoint(0) === LEFT_PARENTHESIS) { |
| 1264 | 1250 | this.consumeCodePoint(); |
| 1265 | - return { type: 19 /* FUNCTION_TOKEN */, value: value }; | |
| 1251 | + return { type: TokenType.FUNCTION_TOKEN, value: value }; | |
| 1266 | 1252 | } |
| 1267 | - return { type: 20 /* IDENT_TOKEN */, value: value }; | |
| 1253 | + return { type: TokenType.IDENT_TOKEN, value: value }; | |
| 1268 | 1254 | }; |
| 1269 | 1255 | Tokenizer.prototype.consumeUrlToken = function () { |
| 1270 | 1256 | var value = []; |
| 1271 | 1257 | this.consumeWhiteSpace(); |
| 1272 | 1258 | if (this.peekCodePoint(0) === EOF) { |
| 1273 | - return { type: 22 /* URL_TOKEN */, value: '' }; | |
| 1259 | + return { type: TokenType.URL_TOKEN, value: '' }; | |
| 1274 | 1260 | } |
| 1275 | 1261 | var next = this.peekCodePoint(0); |
| 1276 | 1262 | if (next === APOSTROPHE || next === QUOTATION_MARK) { |
| 1277 | 1263 | var stringToken = this.consumeStringToken(this.consumeCodePoint()); |
| 1278 | - if (stringToken.type === 0 /* STRING_TOKEN */) { | |
| 1264 | + if (stringToken.type === TokenType.STRING_TOKEN) { | |
| 1279 | 1265 | this.consumeWhiteSpace(); |
| 1280 | 1266 | if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) { |
| 1281 | 1267 | this.consumeCodePoint(); |
| 1282 | - return { type: 22 /* URL_TOKEN */, value: stringToken.value }; | |
| 1268 | + return { type: TokenType.URL_TOKEN, value: stringToken.value }; | |
| 1283 | 1269 | } |
| 1284 | 1270 | } |
| 1285 | 1271 | this.consumeBadUrlRemnants(); |
| 1286 | 1272 | return BAD_URL_TOKEN; |
| @@ -1287,15 +1273,15 @@ | ||
| 1287 | 1273 | } |
| 1288 | 1274 | while (true) { |
| 1289 | 1275 | var codePoint = this.consumeCodePoint(); |
| 1290 | 1276 | if (codePoint === EOF || codePoint === RIGHT_PARENTHESIS) { |
| 1291 | - return { type: 22 /* URL_TOKEN */, value: fromCodePoint$1.apply(void 0, value) }; | |
| 1277 | + return { type: TokenType.URL_TOKEN, value: fromCodePoint.apply(void 0, value) }; | |
| 1292 | 1278 | } |
| 1293 | 1279 | else if (isWhiteSpace(codePoint)) { |
| 1294 | 1280 | this.consumeWhiteSpace(); |
| 1295 | 1281 | if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) { |
| 1296 | 1282 | this.consumeCodePoint(); |
| 1297 | - return { type: 22 /* URL_TOKEN */, value: fromCodePoint$1.apply(void 0, value) }; | |
| 1283 | + return { type: TokenType.URL_TOKEN, value: fromCodePoint.apply(void 0, value) }; | |
| 1298 | 1284 | } |
| 1299 | 1285 | this.consumeBadUrlRemnants(); |
| 1300 | 1286 | return BAD_URL_TOKEN; |
| 1301 | 1287 | } |
| @@ -1336,13 +1322,13 @@ | ||
| 1336 | 1322 | } |
| 1337 | 1323 | } |
| 1338 | 1324 | }; |
| 1339 | 1325 | Tokenizer.prototype.consumeStringSlice = function (count) { |
| 1340 | - var SLICE_STACK_SIZE = 50000; | |
| 1326 | + var SLICE_STACK_SIZE = 60000; | |
| 1341 | 1327 | var value = ''; |
| 1342 | 1328 | while (count > 0) { |
| 1343 | 1329 | var amount = Math.min(SLICE_STACK_SIZE, count); |
| 1344 | - value += fromCodePoint$1.apply(void 0, this._value.splice(0, amount)); | |
| 1330 | + value += fromCodePoint.apply(void 0, this._value.splice(0, amount)); | |
| 1345 | 1331 | count -= amount; |
| 1346 | 1332 | } |
| 1347 | 1333 | this._value.shift(); |
| 1348 | 1334 | return value; |
| @@ -1353,9 +1339,9 @@ | ||
| 1353 | 1339 | do { |
| 1354 | 1340 | var codePoint = this._value[i]; |
| 1355 | 1341 | if (codePoint === EOF || codePoint === undefined || codePoint === endingCodePoint) { |
| 1356 | 1342 | value += this.consumeStringSlice(i); |
| 1357 | - return { type: 0 /* STRING_TOKEN */, value: value }; | |
| 1343 | + return { type: TokenType.STRING_TOKEN, value: value }; | |
| 1358 | 1344 | } |
| 1359 | 1345 | if (codePoint === LINE_FEED) { |
| 1360 | 1346 | this._value.splice(0, i); |
| 1361 | 1347 | return BAD_STRING_TOKEN; |
| @@ -1369,9 +1355,9 @@ | ||
| 1369 | 1355 | this._value.shift(); |
| 1370 | 1356 | } |
| 1371 | 1357 | else if (isValidEscape(codePoint, next)) { |
| 1372 | 1358 | value += this.consumeStringSlice(i); |
| 1373 | - value += fromCodePoint$1(this.consumeEscapedCodePoint()); | |
| 1359 | + value += fromCodePoint(this.consumeEscapedCodePoint()); | |
| 1374 | 1360 | i = -1; |
| 1375 | 1361 | } |
| 1376 | 1362 | } |
| 1377 | 1363 | } |
| @@ -1415,22 +1401,22 @@ | ||
| 1415 | 1401 | var c2 = this.peekCodePoint(1); |
| 1416 | 1402 | var c3 = this.peekCodePoint(2); |
| 1417 | 1403 | if (isIdentifierStart(c1, c2, c3)) { |
| 1418 | 1404 | var unit = this.consumeName(); |
| 1419 | - return { type: 15 /* DIMENSION_TOKEN */, number: number, flags: flags, unit: unit }; | |
| 1405 | + return { type: TokenType.DIMENSION_TOKEN, number: number, flags: flags, unit: unit }; | |
| 1420 | 1406 | } |
| 1421 | 1407 | if (c1 === PERCENTAGE_SIGN) { |
| 1422 | 1408 | this.consumeCodePoint(); |
| 1423 | - return { type: 16 /* PERCENTAGE_TOKEN */, number: number, flags: flags }; | |
| 1409 | + return { type: TokenType.PERCENTAGE_TOKEN, number: number, flags: flags }; | |
| 1424 | 1410 | } |
| 1425 | - return { type: 17 /* NUMBER_TOKEN */, number: number, flags: flags }; | |
| 1411 | + return { type: TokenType.NUMBER_TOKEN, number: number, flags: flags }; | |
| 1426 | 1412 | }; |
| 1427 | 1413 | Tokenizer.prototype.consumeEscapedCodePoint = function () { |
| 1428 | 1414 | var codePoint = this.consumeCodePoint(); |
| 1429 | 1415 | if (isHex(codePoint)) { |
| 1430 | - var hex = fromCodePoint$1(codePoint); | |
| 1416 | + var hex = fromCodePoint(codePoint); | |
| 1431 | 1417 | while (isHex(this.peekCodePoint(0)) && hex.length < 6) { |
| 1432 | - hex += fromCodePoint$1(this.consumeCodePoint()); | |
| 1418 | + hex += fromCodePoint(this.consumeCodePoint()); | |
| 1433 | 1419 | } |
| 1434 | 1420 | if (isWhiteSpace(this.peekCodePoint(0))) { |
| 1435 | 1421 | this.consumeCodePoint(); |
| 1436 | 1422 | } |
| @@ -1449,12 +1435,12 @@ | ||
| 1449 | 1435 | var result = ''; |
| 1450 | 1436 | while (true) { |
| 1451 | 1437 | var codePoint = this.consumeCodePoint(); |
| 1452 | 1438 | if (isNameCodePoint(codePoint)) { |
| 1453 | - result += fromCodePoint$1(codePoint); | |
| 1439 | + result += fromCodePoint(codePoint); | |
| 1454 | 1440 | } |
| 1455 | 1441 | else if (isValidEscape(codePoint, this.peekCodePoint(0))) { |
| 1456 | - result += fromCodePoint$1(this.consumeEscapedCodePoint()); | |
| 1442 | + result += fromCodePoint(this.consumeEscapedCodePoint()); | |
| 1457 | 1443 | } |
| 1458 | 1444 | else { |
| 1459 | 1445 | this.reconsumeCodePoint(codePoint); |
| 1460 | 1446 | return result; |
| @@ -1480,12 +1466,12 @@ | ||
| 1480 | 1466 | return Parser.create(value).parseComponentValues(); |
| 1481 | 1467 | }; |
| 1482 | 1468 | Parser.prototype.parseComponentValue = function () { |
| 1483 | 1469 | var token = this.consumeToken(); |
| 1484 | - while (token.type === 31 /* WHITESPACE_TOKEN */) { | |
| 1470 | + while (token.type === TokenType.WHITESPACE_TOKEN) { | |
| 1485 | 1471 | token = this.consumeToken(); |
| 1486 | 1472 | } |
| 1487 | - if (token.type === 32 /* EOF_TOKEN */) { | |
| 1473 | + if (token.type === TokenType.EOF_TOKEN) { | |
| 1488 | 1474 | throw new SyntaxError("Error parsing CSS component value, unexpected EOF"); |
| 1489 | 1475 | } |
| 1490 | 1476 | this.reconsumeToken(token); |
| 1491 | 1477 | var value = this.consumeComponentValue(); |
| @@ -1490,10 +1476,10 @@ | ||
| 1490 | 1476 | this.reconsumeToken(token); |
| 1491 | 1477 | var value = this.consumeComponentValue(); |
| 1492 | 1478 | do { |
| 1493 | 1479 | token = this.consumeToken(); |
| 1494 | - } while (token.type === 31 /* WHITESPACE_TOKEN */); | |
| 1495 | - if (token.type === 32 /* EOF_TOKEN */) { | |
| 1480 | + } while (token.type === TokenType.WHITESPACE_TOKEN); | |
| 1481 | + if (token.type === TokenType.EOF_TOKEN) { | |
| 1496 | 1482 | return value; |
| 1497 | 1483 | } |
| 1498 | 1484 | throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one"); |
| 1499 | 1485 | }; |
| @@ -1500,9 +1486,9 @@ | ||
| 1500 | 1486 | Parser.prototype.parseComponentValues = function () { |
| 1501 | 1487 | var values = []; |
| 1502 | 1488 | while (true) { |
| 1503 | 1489 | var value = this.consumeComponentValue(); |
| 1504 | - if (value.type === 32 /* EOF_TOKEN */) { | |
| 1490 | + if (value.type === TokenType.EOF_TOKEN) { | |
| 1505 | 1491 | return values; |
| 1506 | 1492 | } |
| 1507 | 1493 | values.push(value); |
| 1508 | 1494 | values.push(); |
| @@ -1510,13 +1496,13 @@ | ||
| 1510 | 1496 | }; |
| 1511 | 1497 | Parser.prototype.consumeComponentValue = function () { |
| 1512 | 1498 | var token = this.consumeToken(); |
| 1513 | 1499 | switch (token.type) { |
| 1514 | - case 11 /* LEFT_CURLY_BRACKET_TOKEN */: | |
| 1515 | - case 28 /* LEFT_SQUARE_BRACKET_TOKEN */: | |
| 1516 | - case 2 /* LEFT_PARENTHESIS_TOKEN */: | |
| 1500 | + case TokenType.LEFT_CURLY_BRACKET_TOKEN: | |
| 1501 | + case TokenType.LEFT_SQUARE_BRACKET_TOKEN: | |
| 1502 | + case TokenType.LEFT_PARENTHESIS_TOKEN: | |
| 1517 | 1503 | return this.consumeSimpleBlock(token.type); |
| 1518 | - case 19 /* FUNCTION_TOKEN */: | |
| 1504 | + case TokenType.FUNCTION_TOKEN: | |
| 1519 | 1505 | return this.consumeFunction(token); |
| 1520 | 1506 | } |
| 1521 | 1507 | return token; |
| 1522 | 1508 | }; |
| @@ -1523,9 +1509,9 @@ | ||
| 1523 | 1509 | Parser.prototype.consumeSimpleBlock = function (type) { |
| 1524 | 1510 | var block = { type: type, values: [] }; |
| 1525 | 1511 | var token = this.consumeToken(); |
| 1526 | 1512 | while (true) { |
| 1527 | - if (token.type === 32 /* EOF_TOKEN */ || isEndingTokenFor(token, type)) { | |
| 1513 | + if (token.type === TokenType.EOF_TOKEN || isEndingTokenFor(token, type)) { | |
| 1528 | 1514 | return block; |
| 1529 | 1515 | } |
| 1530 | 1516 | this.reconsumeToken(token); |
| 1531 | 1517 | block.values.push(this.consumeComponentValue()); |
| @@ -1535,13 +1521,13 @@ | ||
| 1535 | 1521 | Parser.prototype.consumeFunction = function (functionToken) { |
| 1536 | 1522 | var cssFunction = { |
| 1537 | 1523 | name: functionToken.value, |
| 1538 | 1524 | values: [], |
| 1539 | - type: 18 /* FUNCTION */ | |
| 1525 | + type: TokenType.FUNCTION | |
| 1540 | 1526 | }; |
| 1541 | 1527 | while (true) { |
| 1542 | 1528 | var token = this.consumeToken(); |
| 1543 | - if (token.type === 32 /* EOF_TOKEN */ || token.type === 3 /* RIGHT_PARENTHESIS_TOKEN */) { | |
| 1529 | + if (token.type === TokenType.EOF_TOKEN || token.type === TokenType.RIGHT_PARENTHESIS_TOKEN) { | |
| 1544 | 1530 | return cssFunction; |
| 1545 | 1531 | } |
| 1546 | 1532 | this.reconsumeToken(token); |
| 1547 | 1533 | cssFunction.values.push(this.consumeComponentValue()); |
| @@ -1555,24 +1541,24 @@ | ||
| 1555 | 1541 | this._tokens.unshift(token); |
| 1556 | 1542 | }; |
| 1557 | 1543 | return Parser; |
| 1558 | 1544 | }()); |
| 1559 | - var isDimensionToken = function (token) { return token.type === 15 /* DIMENSION_TOKEN */; }; | |
| 1560 | - var isNumberToken = function (token) { return token.type === 17 /* NUMBER_TOKEN */; }; | |
| 1561 | - var isIdentToken = function (token) { return token.type === 20 /* IDENT_TOKEN */; }; | |
| 1562 | - var isStringToken = function (token) { return token.type === 0 /* STRING_TOKEN */; }; | |
| 1545 | + var isDimensionToken = function (token) { return token.type === TokenType.DIMENSION_TOKEN; }; | |
| 1546 | + var isNumberToken = function (token) { return token.type === TokenType.NUMBER_TOKEN; }; | |
| 1547 | + var isIdentToken = function (token) { return token.type === TokenType.IDENT_TOKEN; }; | |
| 1548 | + var isStringToken = function (token) { return token.type === TokenType.STRING_TOKEN; }; | |
| 1563 | 1549 | var isIdentWithValue = function (token, value) { |
| 1564 | 1550 | return isIdentToken(token) && token.value === value; |
| 1565 | 1551 | }; |
| 1566 | - var nonWhiteSpace = function (token) { return token.type !== 31 /* WHITESPACE_TOKEN */; }; | |
| 1552 | + var nonWhiteSpace = function (token) { return token.type !== TokenType.WHITESPACE_TOKEN; }; | |
| 1567 | 1553 | var nonFunctionArgSeparator = function (token) { |
| 1568 | - return token.type !== 31 /* WHITESPACE_TOKEN */ && token.type !== 4 /* COMMA_TOKEN */; | |
| 1554 | + return token.type !== TokenType.WHITESPACE_TOKEN && token.type !== TokenType.COMMA_TOKEN; | |
| 1569 | 1555 | }; |
| 1570 | 1556 | var parseFunctionArgs = function (tokens) { |
| 1571 | 1557 | var args = []; |
| 1572 | 1558 | var arg = []; |
| 1573 | 1559 | tokens.forEach(function (token) { |
| 1574 | - if (token.type === 4 /* COMMA_TOKEN */) { | |
| 1560 | + if (token.type === TokenType.COMMA_TOKEN) { | |
| 1575 | 1561 | if (arg.length === 0) { |
| 1576 | 1562 | throw new Error("Error parsing function args, zero tokens for arg"); |
| 1577 | 1563 | } |
| 1578 | 1564 | args.push(arg); |
| @@ -1578,9 +1564,9 @@ | ||
| 1578 | 1564 | args.push(arg); |
| 1579 | 1565 | arg = []; |
| 1580 | 1566 | return; |
| 1581 | 1567 | } |
| 1582 | - if (token.type !== 31 /* WHITESPACE_TOKEN */) { | |
| 1568 | + if (token.type !== TokenType.WHITESPACE_TOKEN) { | |
| 1583 | 1569 | arg.push(token); |
| 1584 | 1570 | } |
| 1585 | 1571 | }); |
| 1586 | 1572 | if (arg.length) { |
| @@ -1588,39 +1574,39 @@ | ||
| 1588 | 1574 | } |
| 1589 | 1575 | return args; |
| 1590 | 1576 | }; |
| 1591 | 1577 | var isEndingTokenFor = function (token, type) { |
| 1592 | - if (type === 11 /* LEFT_CURLY_BRACKET_TOKEN */ && token.type === 12 /* RIGHT_CURLY_BRACKET_TOKEN */) { | |
| 1578 | + if (type === TokenType.LEFT_CURLY_BRACKET_TOKEN && token.type === TokenType.RIGHT_CURLY_BRACKET_TOKEN) { | |
| 1593 | 1579 | return true; |
| 1594 | 1580 | } |
| 1595 | - if (type === 28 /* LEFT_SQUARE_BRACKET_TOKEN */ && token.type === 29 /* RIGHT_SQUARE_BRACKET_TOKEN */) { | |
| 1581 | + if (type === TokenType.LEFT_SQUARE_BRACKET_TOKEN && token.type === TokenType.RIGHT_SQUARE_BRACKET_TOKEN) { | |
| 1596 | 1582 | return true; |
| 1597 | 1583 | } |
| 1598 | - return type === 2 /* LEFT_PARENTHESIS_TOKEN */ && token.type === 3 /* RIGHT_PARENTHESIS_TOKEN */; | |
| 1584 | + return type === TokenType.LEFT_PARENTHESIS_TOKEN && token.type === TokenType.RIGHT_PARENTHESIS_TOKEN; | |
| 1599 | 1585 | }; |
| 1600 | 1586 | |
| 1601 | 1587 | var isLength = function (token) { |
| 1602 | - return token.type === 17 /* NUMBER_TOKEN */ || token.type === 15 /* DIMENSION_TOKEN */; | |
| 1588 | + return token.type === TokenType.NUMBER_TOKEN || token.type === TokenType.DIMENSION_TOKEN; | |
| 1603 | 1589 | }; |
| 1604 | 1590 | |
| 1605 | 1591 | var isLengthPercentage = function (token) { |
| 1606 | - return token.type === 16 /* PERCENTAGE_TOKEN */ || isLength(token); | |
| 1592 | + return token.type === TokenType.PERCENTAGE_TOKEN || isLength(token); | |
| 1607 | 1593 | }; |
| 1608 | 1594 | var parseLengthPercentageTuple = function (tokens) { |
| 1609 | 1595 | return tokens.length > 1 ? [tokens[0], tokens[1]] : [tokens[0]]; |
| 1610 | 1596 | }; |
| 1611 | 1597 | var ZERO_LENGTH = { |
| 1612 | - type: 17 /* NUMBER_TOKEN */, | |
| 1598 | + type: TokenType.NUMBER_TOKEN, | |
| 1613 | 1599 | number: 0, |
| 1614 | 1600 | flags: FLAG_INTEGER |
| 1615 | 1601 | }; |
| 1616 | 1602 | var FIFTY_PERCENT = { |
| 1617 | - type: 16 /* PERCENTAGE_TOKEN */, | |
| 1603 | + type: TokenType.PERCENTAGE_TOKEN, | |
| 1618 | 1604 | number: 50, |
| 1619 | 1605 | flags: FLAG_INTEGER |
| 1620 | 1606 | }; |
| 1621 | 1607 | var HUNDRED_PERCENT = { |
| 1622 | - type: 16 /* PERCENTAGE_TOKEN */, | |
| 1608 | + type: TokenType.PERCENTAGE_TOKEN, | |
| 1623 | 1609 | number: 100, |
| 1624 | 1610 | flags: FLAG_INTEGER |
| 1625 | 1611 | }; |
| 1626 | 1612 | var getAbsoluteValueForTuple = function (tuple, width, height) { |
| @@ -1627,9 +1613,9 @@ | ||
| 1627 | 1613 | var x = tuple[0], y = tuple[1]; |
| 1628 | 1614 | return [getAbsoluteValue(x, width), getAbsoluteValue(typeof y !== 'undefined' ? y : x, height)]; |
| 1629 | 1615 | }; |
| 1630 | 1616 | var getAbsoluteValue = function (token, parent) { |
| 1631 | - if (token.type === 16 /* PERCENTAGE_TOKEN */) { | |
| 1617 | + if (token.type === TokenType.PERCENTAGE_TOKEN) { | |
| 1632 | 1618 | return (token.number / 100) * parent; |
| 1633 | 1619 | } |
| 1634 | 1620 | if (isDimensionToken(token)) { |
| 1635 | 1621 | switch (token.unit) { |
| @@ -1649,10 +1635,10 @@ | ||
| 1649 | 1635 | var RAD = 'rad'; |
| 1650 | 1636 | var TURN = 'turn'; |
| 1651 | 1637 | var angle = { |
| 1652 | 1638 | name: 'angle', |
| 1653 | - parse: function (_context, value) { | |
| 1654 | - if (value.type === 15 /* DIMENSION_TOKEN */) { | |
| 1639 | + parse: function (value) { | |
| 1640 | + if (value.type === TokenType.DIMENSION_TOKEN) { | |
| 1655 | 1641 | switch (value.unit) { |
| 1656 | 1642 | case DEG: |
| 1657 | 1643 | return (Math.PI * value.number) / 180; |
| 1658 | 1644 | case GRAD: |
| @@ -1666,9 +1652,9 @@ | ||
| 1666 | 1652 | throw new Error("Unsupported angle type"); |
| 1667 | 1653 | } |
| 1668 | 1654 | }; |
| 1669 | 1655 | var isAngle = function (value) { |
| 1670 | - if (value.type === 15 /* DIMENSION_TOKEN */) { | |
| 1656 | + if (value.type === TokenType.DIMENSION_TOKEN) { | |
| 1671 | 1657 | if (value.unit === DEG || value.unit === GRAD || value.unit === RAD || value.unit === TURN) { |
| 1672 | 1658 | return true; |
| 1673 | 1659 | } |
| 1674 | 1660 | } |
| @@ -1716,19 +1702,19 @@ | ||
| 1716 | 1702 | return 0; |
| 1717 | 1703 | }; |
| 1718 | 1704 | var deg = function (deg) { return (Math.PI * deg) / 180; }; |
| 1719 | 1705 | |
| 1720 | - var color$1 = { | |
| 1706 | + var color = { | |
| 1721 | 1707 | name: 'color', |
| 1722 | - parse: function (context, value) { | |
| 1723 | - if (value.type === 18 /* FUNCTION */) { | |
| 1708 | + parse: function (value) { | |
| 1709 | + if (value.type === TokenType.FUNCTION) { | |
| 1724 | 1710 | var colorFunction = SUPPORTED_COLOR_FUNCTIONS[value.name]; |
| 1725 | 1711 | if (typeof colorFunction === 'undefined') { |
| 1726 | 1712 | throw new Error("Attempting to parse an unsupported color function \"" + value.name + "\""); |
| 1727 | 1713 | } |
| 1728 | - return colorFunction(context, value.values); | |
| 1714 | + return colorFunction(value.values); | |
| 1729 | 1715 | } |
| 1730 | - if (value.type === 5 /* HASH_TOKEN */) { | |
| 1716 | + if (value.type === TokenType.HASH_TOKEN) { | |
| 1731 | 1717 | if (value.value.length === 3) { |
| 1732 | 1718 | var r = value.value.substring(0, 1); |
| 1733 | 1719 | var g = value.value.substring(1, 2); |
| 1734 | 1720 | var b = value.value.substring(2, 3); |
| @@ -1754,9 +1740,9 @@ | ||
| 1754 | 1740 | var a = value.value.substring(6, 8); |
| 1755 | 1741 | return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), parseInt(a, 16) / 255); |
| 1756 | 1742 | } |
| 1757 | 1743 | } |
| 1758 | - if (value.type === 20 /* IDENT_TOKEN */) { | |
| 1744 | + if (value.type === TokenType.IDENT_TOKEN) { | |
| 1759 | 1745 | var namedColor = COLORS[value.value.toUpperCase()]; |
| 1760 | 1746 | if (typeof namedColor !== 'undefined') { |
| 1761 | 1747 | return namedColor; |
| 1762 | 1748 | } |
| @@ -1775,18 +1761,18 @@ | ||
| 1775 | 1761 | var pack = function (r, g, b, a) { |
| 1776 | 1762 | return ((r << 24) | (g << 16) | (b << 8) | (Math.round(a * 255) << 0)) >>> 0; |
| 1777 | 1763 | }; |
| 1778 | 1764 | var getTokenColorValue = function (token, i) { |
| 1779 | - if (token.type === 17 /* NUMBER_TOKEN */) { | |
| 1765 | + if (token.type === TokenType.NUMBER_TOKEN) { | |
| 1780 | 1766 | return token.number; |
| 1781 | 1767 | } |
| 1782 | - if (token.type === 16 /* PERCENTAGE_TOKEN */) { | |
| 1768 | + if (token.type === TokenType.PERCENTAGE_TOKEN) { | |
| 1783 | 1769 | var max = i === 3 ? 1 : 255; |
| 1784 | 1770 | return i === 3 ? (token.number / 100) * max : Math.round((token.number / 100) * max); |
| 1785 | 1771 | } |
| 1786 | 1772 | return 0; |
| 1787 | 1773 | }; |
| 1788 | - var rgb = function (_context, args) { | |
| 1774 | + var rgb = function (args) { | |
| 1789 | 1775 | var tokens = args.filter(nonFunctionArgSeparator); |
| 1790 | 1776 | if (tokens.length === 3) { |
| 1791 | 1777 | var _a = tokens.map(getTokenColorValue), r = _a[0], g = _a[1], b = _a[2]; |
| 1792 | 1778 | return pack(r, g, b, 1); |
| @@ -1816,12 +1802,12 @@ | ||
| 1816 | 1802 | else { |
| 1817 | 1803 | return t1; |
| 1818 | 1804 | } |
| 1819 | 1805 | } |
| 1820 | - var hsl = function (context, args) { | |
| 1806 | + var hsl = function (args) { | |
| 1821 | 1807 | var tokens = args.filter(nonFunctionArgSeparator); |
| 1822 | 1808 | var hue = tokens[0], saturation = tokens[1], lightness = tokens[2], alpha = tokens[3]; |
| 1823 | - var h = (hue.type === 17 /* NUMBER_TOKEN */ ? deg(hue.number) : angle.parse(context, hue)) / (Math.PI * 2); | |
| 1809 | + var h = (hue.type === TokenType.NUMBER_TOKEN ? deg(hue.number) : angle.parse(hue)) / (Math.PI * 2); | |
| 1824 | 1810 | var s = isLengthPercentage(saturation) ? saturation.number / 100 : 0; |
| 1825 | 1811 | var l = isLengthPercentage(lightness) ? lightness.number / 100 : 0; |
| 1826 | 1812 | var a = typeof alpha !== 'undefined' && isLengthPercentage(alpha) ? getAbsoluteValue(alpha, 1) : 1; |
| 1827 | 1813 | if (s === 0) { |
| @@ -1839,11 +1825,8 @@ | ||
| 1839 | 1825 | hsla: hsl, |
| 1840 | 1826 | rgb: rgb, |
| 1841 | 1827 | rgba: rgb |
| 1842 | 1828 | }; |
| 1843 | - var parseColor = function (context, value) { | |
| 1844 | - return color$1.parse(context, Parser.create(value).parseComponentValue()); | |
| 1845 | - }; | |
| 1846 | 1829 | var COLORS = { |
| 1847 | 1830 | ALICEBLUE: 0xf0f8ffff, |
| 1848 | 1831 | ANTIQUEWHITE: 0xfaebd7ff, |
| 1849 | 1832 | AQUA: 0x00ffffff, |
| @@ -1994,24 +1977,39 @@ | ||
| 1994 | 1977 | YELLOW: 0xffff00ff, |
| 1995 | 1978 | YELLOWGREEN: 0x9acd32ff |
| 1996 | 1979 | }; |
| 1997 | 1980 | |
| 1981 | + var PropertyDescriptorParsingType; | |
| 1982 | + (function (PropertyDescriptorParsingType) { | |
| 1983 | + PropertyDescriptorParsingType[PropertyDescriptorParsingType["VALUE"] = 0] = "VALUE"; | |
| 1984 | + PropertyDescriptorParsingType[PropertyDescriptorParsingType["LIST"] = 1] = "LIST"; | |
| 1985 | + PropertyDescriptorParsingType[PropertyDescriptorParsingType["IDENT_VALUE"] = 2] = "IDENT_VALUE"; | |
| 1986 | + PropertyDescriptorParsingType[PropertyDescriptorParsingType["TYPE_VALUE"] = 3] = "TYPE_VALUE"; | |
| 1987 | + PropertyDescriptorParsingType[PropertyDescriptorParsingType["TOKEN_VALUE"] = 4] = "TOKEN_VALUE"; | |
| 1988 | + })(PropertyDescriptorParsingType || (PropertyDescriptorParsingType = {})); | |
| 1989 | + | |
| 1990 | + var BACKGROUND_CLIP; | |
| 1991 | + (function (BACKGROUND_CLIP) { | |
| 1992 | + BACKGROUND_CLIP[BACKGROUND_CLIP["BORDER_BOX"] = 0] = "BORDER_BOX"; | |
| 1993 | + BACKGROUND_CLIP[BACKGROUND_CLIP["PADDING_BOX"] = 1] = "PADDING_BOX"; | |
| 1994 | + BACKGROUND_CLIP[BACKGROUND_CLIP["CONTENT_BOX"] = 2] = "CONTENT_BOX"; | |
| 1995 | + })(BACKGROUND_CLIP || (BACKGROUND_CLIP = {})); | |
| 1998 | 1996 | var backgroundClip = { |
| 1999 | 1997 | name: 'background-clip', |
| 2000 | 1998 | initialValue: 'border-box', |
| 2001 | 1999 | prefix: false, |
| 2002 | - type: 1 /* LIST */, | |
| 2003 | - parse: function (_context, tokens) { | |
| 2000 | + type: PropertyDescriptorParsingType.LIST, | |
| 2001 | + parse: function (tokens) { | |
| 2004 | 2002 | return tokens.map(function (token) { |
| 2005 | 2003 | if (isIdentToken(token)) { |
| 2006 | 2004 | switch (token.value) { |
| 2007 | 2005 | case 'padding-box': |
| 2008 | - return 1 /* PADDING_BOX */; | |
| 2006 | + return BACKGROUND_CLIP.PADDING_BOX; | |
| 2009 | 2007 | case 'content-box': |
| 2010 | - return 2 /* CONTENT_BOX */; | |
| 2008 | + return BACKGROUND_CLIP.CONTENT_BOX; | |
| 2011 | 2009 | } |
| 2012 | 2010 | } |
| 2013 | - return 0 /* BORDER_BOX */; | |
| 2011 | + return BACKGROUND_CLIP.BORDER_BOX; | |
| 2014 | 2012 | }); |
| 2015 | 2013 | } |
| 2016 | 2014 | }; |
| 2017 | 2015 | |
| @@ -2018,16 +2016,16 @@ | ||
| 2018 | 2016 | var backgroundColor = { |
| 2019 | 2017 | name: "background-color", |
| 2020 | 2018 | initialValue: 'transparent', |
| 2021 | 2019 | prefix: false, |
| 2022 | - type: 3 /* TYPE_VALUE */, | |
| 2020 | + type: PropertyDescriptorParsingType.TYPE_VALUE, | |
| 2023 | 2021 | format: 'color' |
| 2024 | 2022 | }; |
| 2025 | 2023 | |
| 2026 | - var parseColorStop = function (context, args) { | |
| 2027 | - var color = color$1.parse(context, args[0]); | |
| 2024 | + var parseColorStop = function (args) { | |
| 2025 | + var color$1 = color.parse(args[0]); | |
| 2028 | 2026 | var stop = args[1]; |
| 2029 | - return stop && isLengthPercentage(stop) ? { color: color, stop: stop } : { color: color, stop: null }; | |
| 2027 | + return stop && isLengthPercentage(stop) ? { color: color$1, stop: stop } : { color: color$1, stop: null }; | |
| 2030 | 2028 | }; |
| 2031 | 2029 | var processColorStops = function (stops, lineLength) { |
| 2032 | 2030 | var first = stops[0]; |
| 2033 | 2031 | var last = stops[stops.length - 1]; |
| @@ -2096,14 +2094,9 @@ | ||
| 2096 | 2094 | return [lineLength, halfWidth - xDiff, halfWidth + xDiff, halfHeight - yDiff, halfHeight + yDiff]; |
| 2097 | 2095 | }; |
| 2098 | 2096 | var distance = function (a, b) { return Math.sqrt(a * a + b * b); }; |
| 2099 | 2097 | var findCorner = function (width, height, x, y, closest) { |
| 2100 | - var corners = [ | |
| 2101 | - [0, 0], | |
| 2102 | - [0, height], | |
| 2103 | - [width, 0], | |
| 2104 | - [width, height] | |
| 2105 | - ]; | |
| 2098 | + var corners = [[0, 0], [0, height], [width, 0], [width, height]]; | |
| 2106 | 2099 | return corners.reduce(function (stat, corner) { |
| 2107 | 2100 | var cx = corner[0], cy = corner[1]; |
| 2108 | 2101 | var d = distance(x - cx, y - cy); |
| 2109 | 2102 | if (closest ? d < stat.optimumDistance : d > stat.optimumDistance) { |
| @@ -2121,26 +2114,26 @@ | ||
| 2121 | 2114 | var calculateRadius = function (gradient, x, y, width, height) { |
| 2122 | 2115 | var rx = 0; |
| 2123 | 2116 | var ry = 0; |
| 2124 | 2117 | switch (gradient.size) { |
| 2125 | - case 0 /* CLOSEST_SIDE */: | |
| 2118 | + case CSSRadialExtent.CLOSEST_SIDE: | |
| 2126 | 2119 | // The ending shape is sized so that that it exactly meets the side of the gradient box closest to the gradient’s center. |
| 2127 | 2120 | // If the shape is an ellipse, it exactly meets the closest side in each dimension. |
| 2128 | - if (gradient.shape === 0 /* CIRCLE */) { | |
| 2121 | + if (gradient.shape === CSSRadialShape.CIRCLE) { | |
| 2129 | 2122 | rx = ry = Math.min(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height)); |
| 2130 | 2123 | } |
| 2131 | - else if (gradient.shape === 1 /* ELLIPSE */) { | |
| 2124 | + else if (gradient.shape === CSSRadialShape.ELLIPSE) { | |
| 2132 | 2125 | rx = Math.min(Math.abs(x), Math.abs(x - width)); |
| 2133 | 2126 | ry = Math.min(Math.abs(y), Math.abs(y - height)); |
| 2134 | 2127 | } |
| 2135 | 2128 | break; |
| 2136 | - case 2 /* CLOSEST_CORNER */: | |
| 2129 | + case CSSRadialExtent.CLOSEST_CORNER: | |
| 2137 | 2130 | // The ending shape is sized so that that it passes through the corner of the gradient box closest to the gradient’s center. |
| 2138 | 2131 | // If the shape is an ellipse, the ending shape is given the same aspect-ratio it would have if closest-side were specified. |
| 2139 | - if (gradient.shape === 0 /* CIRCLE */) { | |
| 2132 | + if (gradient.shape === CSSRadialShape.CIRCLE) { | |
| 2140 | 2133 | rx = ry = Math.min(distance(x, y), distance(x, y - height), distance(x - width, y), distance(x - width, y - height)); |
| 2141 | 2134 | } |
| 2142 | - else if (gradient.shape === 1 /* ELLIPSE */) { | |
| 2135 | + else if (gradient.shape === CSSRadialShape.ELLIPSE) { | |
| 2143 | 2136 | // Compute the ratio ry/rx (which is to be the same as for "closest-side") |
| 2144 | 2137 | var c = Math.min(Math.abs(y), Math.abs(y - height)) / Math.min(Math.abs(x), Math.abs(x - width)); |
| 2145 | 2138 | var _a = findCorner(width, height, x, y, true), cx = _a[0], cy = _a[1]; |
| 2146 | 2139 | rx = distance(cx - x, (cy - y) / c); |
| @@ -2146,25 +2139,25 @@ | ||
| 2146 | 2139 | rx = distance(cx - x, (cy - y) / c); |
| 2147 | 2140 | ry = c * rx; |
| 2148 | 2141 | } |
| 2149 | 2142 | break; |
| 2150 | - case 1 /* FARTHEST_SIDE */: | |
| 2143 | + case CSSRadialExtent.FARTHEST_SIDE: | |
| 2151 | 2144 | // Same as closest-side, except the ending shape is sized based on the farthest side(s) |
| 2152 | - if (gradient.shape === 0 /* CIRCLE */) { | |
| 2145 | + if (gradient.shape === CSSRadialShape.CIRCLE) { | |
| 2153 | 2146 | rx = ry = Math.max(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height)); |
| 2154 | 2147 | } |
| 2155 | - else if (gradient.shape === 1 /* ELLIPSE */) { | |
| 2148 | + else if (gradient.shape === CSSRadialShape.ELLIPSE) { | |
| 2156 | 2149 | rx = Math.max(Math.abs(x), Math.abs(x - width)); |
| 2157 | 2150 | ry = Math.max(Math.abs(y), Math.abs(y - height)); |
| 2158 | 2151 | } |
| 2159 | 2152 | break; |
| 2160 | - case 3 /* FARTHEST_CORNER */: | |
| 2153 | + case CSSRadialExtent.FARTHEST_CORNER: | |
| 2161 | 2154 | // Same as closest-corner, except the ending shape is sized based on the farthest corner. |
| 2162 | 2155 | // If the shape is an ellipse, the ending shape is given the same aspect ratio it would have if farthest-side were specified. |
| 2163 | - if (gradient.shape === 0 /* CIRCLE */) { | |
| 2156 | + if (gradient.shape === CSSRadialShape.CIRCLE) { | |
| 2164 | 2157 | rx = ry = Math.max(distance(x, y), distance(x, y - height), distance(x - width, y), distance(x - width, y - height)); |
| 2165 | 2158 | } |
| 2166 | - else if (gradient.shape === 1 /* ELLIPSE */) { | |
| 2159 | + else if (gradient.shape === CSSRadialShape.ELLIPSE) { | |
| 2167 | 2160 | // Compute the ratio ry/rx (which is to be the same as for "farthest-side") |
| 2168 | 2161 | var c = Math.max(Math.abs(y), Math.abs(y - height)) / Math.max(Math.abs(x), Math.abs(x - width)); |
| 2169 | 2162 | var _b = findCorner(width, height, x, y, false), cx = _b[0], cy = _b[1]; |
| 2170 | 2163 | rx = distance(cx - x, (cy - y) / c); |
| @@ -2178,92 +2171,479 @@ | ||
| 2178 | 2171 | } |
| 2179 | 2172 | return [rx, ry]; |
| 2180 | 2173 | }; |
| 2181 | 2174 | |
| 2182 | - var linearGradient = function (context, tokens) { | |
| 2175 | + var linearGradient = function (tokens) { | |
| 2183 | 2176 | var angle$1 = deg(180); |
| 2184 | 2177 | var stops = []; |
| 2185 | 2178 | parseFunctionArgs(tokens).forEach(function (arg, i) { |
| 2186 | 2179 | if (i === 0) { |
| 2187 | 2180 | var firstToken = arg[0]; |
| 2188 | - if (firstToken.type === 20 /* IDENT_TOKEN */ && firstToken.value === 'to') { | |
| 2181 | + if (firstToken.type === TokenType.IDENT_TOKEN && firstToken.value === 'to') { | |
| 2189 | 2182 | angle$1 = parseNamedSide(arg); |
| 2190 | 2183 | return; |
| 2191 | 2184 | } |
| 2192 | 2185 | else if (isAngle(firstToken)) { |
| 2193 | - angle$1 = angle.parse(context, firstToken); | |
| 2186 | + angle$1 = angle.parse(firstToken); | |
| 2194 | 2187 | return; |
| 2195 | 2188 | } |
| 2196 | 2189 | } |
| 2197 | - var colorStop = parseColorStop(context, arg); | |
| 2190 | + var colorStop = parseColorStop(arg); | |
| 2198 | 2191 | stops.push(colorStop); |
| 2199 | 2192 | }); |
| 2200 | - return { angle: angle$1, stops: stops, type: 1 /* LINEAR_GRADIENT */ }; | |
| 2193 | + return { angle: angle$1, stops: stops, type: CSSImageType.LINEAR_GRADIENT }; | |
| 2201 | 2194 | }; |
| 2202 | 2195 | |
| 2203 | - var prefixLinearGradient = function (context, tokens) { | |
| 2196 | + var prefixLinearGradient = function (tokens) { | |
| 2204 | 2197 | var angle$1 = deg(180); |
| 2205 | 2198 | var stops = []; |
| 2206 | 2199 | parseFunctionArgs(tokens).forEach(function (arg, i) { |
| 2207 | 2200 | if (i === 0) { |
| 2208 | 2201 | var firstToken = arg[0]; |
| 2209 | - if (firstToken.type === 20 /* IDENT_TOKEN */ && | |
| 2202 | + if (firstToken.type === TokenType.IDENT_TOKEN && | |
| 2210 | 2203 | ['top', 'left', 'right', 'bottom'].indexOf(firstToken.value) !== -1) { |
| 2211 | 2204 | angle$1 = parseNamedSide(arg); |
| 2212 | 2205 | return; |
| 2213 | 2206 | } |
| 2214 | 2207 | else if (isAngle(firstToken)) { |
| 2215 | - angle$1 = (angle.parse(context, firstToken) + deg(270)) % deg(360); | |
| 2208 | + angle$1 = (angle.parse(firstToken) + deg(270)) % deg(360); | |
| 2216 | 2209 | return; |
| 2217 | 2210 | } |
| 2218 | 2211 | } |
| 2219 | - var colorStop = parseColorStop(context, arg); | |
| 2212 | + var colorStop = parseColorStop(arg); | |
| 2220 | 2213 | stops.push(colorStop); |
| 2221 | 2214 | }); |
| 2222 | 2215 | return { |
| 2223 | 2216 | angle: angle$1, |
| 2224 | 2217 | stops: stops, |
| 2225 | - type: 1 /* LINEAR_GRADIENT */ | |
| 2218 | + type: CSSImageType.LINEAR_GRADIENT | |
| 2226 | 2219 | }; |
| 2227 | 2220 | }; |
| 2228 | 2221 | |
| 2229 | - var webkitGradient = function (context, tokens) { | |
| 2222 | + var testRangeBounds = function (document) { | |
| 2223 | + var TEST_HEIGHT = 123; | |
| 2224 | + if (document.createRange) { | |
| 2225 | + var range = document.createRange(); | |
| 2226 | + if (range.getBoundingClientRect) { | |
| 2227 | + var testElement = document.createElement('boundtest'); | |
| 2228 | + testElement.style.height = TEST_HEIGHT + "px"; | |
| 2229 | + testElement.style.display = 'block'; | |
| 2230 | + document.body.appendChild(testElement); | |
| 2231 | + range.selectNode(testElement); | |
| 2232 | + var rangeBounds = range.getBoundingClientRect(); | |
| 2233 | + var rangeHeight = Math.round(rangeBounds.height); | |
| 2234 | + document.body.removeChild(testElement); | |
| 2235 | + if (rangeHeight === TEST_HEIGHT) { | |
| 2236 | + return true; | |
| 2237 | + } | |
| 2238 | + } | |
| 2239 | + } | |
| 2240 | + return false; | |
| 2241 | + }; | |
| 2242 | + var testCORS = function () { return typeof new Image().crossOrigin !== 'undefined'; }; | |
| 2243 | + var testResponseType = function () { return typeof new XMLHttpRequest().responseType === 'string'; }; | |
| 2244 | + var testSVG = function (document) { | |
| 2245 | + var img = new Image(); | |
| 2246 | + var canvas = document.createElement('canvas'); | |
| 2247 | + var ctx = canvas.getContext('2d'); | |
| 2248 | + if (!ctx) { | |
| 2249 | + return false; | |
| 2250 | + } | |
| 2251 | + img.src = "data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg'></svg>"; | |
| 2252 | + try { | |
| 2253 | + ctx.drawImage(img, 0, 0); | |
| 2254 | + canvas.toDataURL(); | |
| 2255 | + } | |
| 2256 | + catch (e) { | |
| 2257 | + return false; | |
| 2258 | + } | |
| 2259 | + return true; | |
| 2260 | + }; | |
| 2261 | + var isGreenPixel = function (data) { | |
| 2262 | + return data[0] === 0 && data[1] === 255 && data[2] === 0 && data[3] === 255; | |
| 2263 | + }; | |
| 2264 | + var testForeignObject = function (document) { | |
| 2265 | + var canvas = document.createElement('canvas'); | |
| 2266 | + var size = 100; | |
| 2267 | + canvas.width = size; | |
| 2268 | + canvas.height = size; | |
| 2269 | + var ctx = canvas.getContext('2d'); | |
| 2270 | + if (!ctx) { | |
| 2271 | + return Promise.reject(false); | |
| 2272 | + } | |
| 2273 | + ctx.fillStyle = 'rgb(0, 255, 0)'; | |
| 2274 | + ctx.fillRect(0, 0, size, size); | |
| 2275 | + var img = new Image(); | |
| 2276 | + var greenImageSrc = canvas.toDataURL(); | |
| 2277 | + img.src = greenImageSrc; | |
| 2278 | + var svg = createForeignObjectSVG(size, size, 0, 0, img); | |
| 2279 | + ctx.fillStyle = 'red'; | |
| 2280 | + ctx.fillRect(0, 0, size, size); | |
| 2281 | + return loadSerializedSVG(svg) | |
| 2282 | + .then(function (img) { | |
| 2283 | + ctx.drawImage(img, 0, 0); | |
| 2284 | + var data = ctx.getImageData(0, 0, size, size).data; | |
| 2285 | + ctx.fillStyle = 'red'; | |
| 2286 | + ctx.fillRect(0, 0, size, size); | |
| 2287 | + var node = document.createElement('div'); | |
| 2288 | + node.style.backgroundImage = "url(" + greenImageSrc + ")"; | |
| 2289 | + node.style.height = size + "px"; | |
| 2290 | + // Firefox 55 does not render inline <img /> tags | |
| 2291 | + return isGreenPixel(data) | |
| 2292 | + ? loadSerializedSVG(createForeignObjectSVG(size, size, 0, 0, node)) | |
| 2293 | + : Promise.reject(false); | |
| 2294 | + }) | |
| 2295 | + .then(function (img) { | |
| 2296 | + ctx.drawImage(img, 0, 0); | |
| 2297 | + // Edge does not render background-images | |
| 2298 | + return isGreenPixel(ctx.getImageData(0, 0, size, size).data); | |
| 2299 | + }) | |
| 2300 | + .catch(function () { return false; }); | |
| 2301 | + }; | |
| 2302 | + var createForeignObjectSVG = function (width, height, x, y, node) { | |
| 2303 | + var xmlns = 'http://www.w3.org/2000/svg'; | |
| 2304 | + var svg = document.createElementNS(xmlns, 'svg'); | |
| 2305 | + var foreignObject = document.createElementNS(xmlns, 'foreignObject'); | |
| 2306 | + svg.setAttributeNS(null, 'width', width.toString()); | |
| 2307 | + svg.setAttributeNS(null, 'height', height.toString()); | |
| 2308 | + foreignObject.setAttributeNS(null, 'width', '100%'); | |
| 2309 | + foreignObject.setAttributeNS(null, 'height', '100%'); | |
| 2310 | + foreignObject.setAttributeNS(null, 'x', x.toString()); | |
| 2311 | + foreignObject.setAttributeNS(null, 'y', y.toString()); | |
| 2312 | + foreignObject.setAttributeNS(null, 'externalResourcesRequired', 'true'); | |
| 2313 | + svg.appendChild(foreignObject); | |
| 2314 | + foreignObject.appendChild(node); | |
| 2315 | + return svg; | |
| 2316 | + }; | |
| 2317 | + var loadSerializedSVG = function (svg) { | |
| 2318 | + return new Promise(function (resolve, reject) { | |
| 2319 | + var img = new Image(); | |
| 2320 | + img.onload = function () { return resolve(img); }; | |
| 2321 | + img.onerror = reject; | |
| 2322 | + img.src = "data:image/svg+xml;charset=utf-8," + encodeURIComponent(new XMLSerializer().serializeToString(svg)); | |
| 2323 | + }); | |
| 2324 | + }; | |
| 2325 | + var FEATURES = { | |
| 2326 | + get SUPPORT_RANGE_BOUNDS() { | |
| 2327 | + var value = testRangeBounds(document); | |
| 2328 | + Object.defineProperty(FEATURES, 'SUPPORT_RANGE_BOUNDS', { value: value }); | |
| 2329 | + return value; | |
| 2330 | + }, | |
| 2331 | + get SUPPORT_SVG_DRAWING() { | |
| 2332 | + var value = testSVG(document); | |
| 2333 | + Object.defineProperty(FEATURES, 'SUPPORT_SVG_DRAWING', { value: value }); | |
| 2334 | + return value; | |
| 2335 | + }, | |
| 2336 | + get SUPPORT_FOREIGNOBJECT_DRAWING() { | |
| 2337 | + var value = typeof Array.from === 'function' && typeof window.fetch === 'function' | |
| 2338 | + ? testForeignObject(document) | |
| 2339 | + : Promise.resolve(false); | |
| 2340 | + Object.defineProperty(FEATURES, 'SUPPORT_FOREIGNOBJECT_DRAWING', { value: value }); | |
| 2341 | + return value; | |
| 2342 | + }, | |
| 2343 | + get SUPPORT_CORS_IMAGES() { | |
| 2344 | + var value = testCORS(); | |
| 2345 | + Object.defineProperty(FEATURES, 'SUPPORT_CORS_IMAGES', { value: value }); | |
| 2346 | + return value; | |
| 2347 | + }, | |
| 2348 | + get SUPPORT_RESPONSE_TYPE() { | |
| 2349 | + var value = testResponseType(); | |
| 2350 | + Object.defineProperty(FEATURES, 'SUPPORT_RESPONSE_TYPE', { value: value }); | |
| 2351 | + return value; | |
| 2352 | + }, | |
| 2353 | + get SUPPORT_CORS_XHR() { | |
| 2354 | + var value = 'withCredentials' in new XMLHttpRequest(); | |
| 2355 | + Object.defineProperty(FEATURES, 'SUPPORT_CORS_XHR', { value: value }); | |
| 2356 | + return value; | |
| 2357 | + } | |
| 2358 | + }; | |
| 2359 | + | |
| 2360 | + var Logger = /** @class */ (function () { | |
| 2361 | + function Logger(_a) { | |
| 2362 | + var id = _a.id, enabled = _a.enabled; | |
| 2363 | + this.id = id; | |
| 2364 | + this.enabled = enabled; | |
| 2365 | + this.start = Date.now(); | |
| 2366 | + } | |
| 2367 | + // eslint-disable-next-line @typescript-eslint/no-explicit-any | |
| 2368 | + Logger.prototype.debug = function () { | |
| 2369 | + var args = []; | |
| 2370 | + for (var _i = 0; _i < arguments.length; _i++) { | |
| 2371 | + args[_i] = arguments[_i]; | |
| 2372 | + } | |
| 2373 | + if (this.enabled) { | |
| 2374 | + // eslint-disable-next-line no-console | |
| 2375 | + if (typeof window !== 'undefined' && window.console && typeof console.debug === 'function') { | |
| 2376 | + // eslint-disable-next-line no-console | |
| 2377 | + console.debug.apply(console, [this.id, this.getTime() + "ms"].concat(args)); | |
| 2378 | + } | |
| 2379 | + else { | |
| 2380 | + this.info.apply(this, args); | |
| 2381 | + } | |
| 2382 | + } | |
| 2383 | + }; | |
| 2384 | + Logger.prototype.getTime = function () { | |
| 2385 | + return Date.now() - this.start; | |
| 2386 | + }; | |
| 2387 | + Logger.create = function (options) { | |
| 2388 | + Logger.instances[options.id] = new Logger(options); | |
| 2389 | + }; | |
| 2390 | + Logger.destroy = function (id) { | |
| 2391 | + delete Logger.instances[id]; | |
| 2392 | + }; | |
| 2393 | + Logger.getInstance = function (id) { | |
| 2394 | + var instance = Logger.instances[id]; | |
| 2395 | + if (typeof instance === 'undefined') { | |
| 2396 | + throw new Error("No logger instance found with id " + id); | |
| 2397 | + } | |
| 2398 | + return instance; | |
| 2399 | + }; | |
| 2400 | + // eslint-disable-next-line @typescript-eslint/no-explicit-any | |
| 2401 | + Logger.prototype.info = function () { | |
| 2402 | + var args = []; | |
| 2403 | + for (var _i = 0; _i < arguments.length; _i++) { | |
| 2404 | + args[_i] = arguments[_i]; | |
| 2405 | + } | |
| 2406 | + if (this.enabled) { | |
| 2407 | + // eslint-disable-next-line no-console | |
| 2408 | + if (typeof window !== 'undefined' && window.console && typeof console.info === 'function') { | |
| 2409 | + // eslint-disable-next-line no-console | |
| 2410 | + console.info.apply(console, [this.id, this.getTime() + "ms"].concat(args)); | |
| 2411 | + } | |
| 2412 | + } | |
| 2413 | + }; | |
| 2414 | + // eslint-disable-next-line @typescript-eslint/no-explicit-any | |
| 2415 | + Logger.prototype.error = function () { | |
| 2416 | + var args = []; | |
| 2417 | + for (var _i = 0; _i < arguments.length; _i++) { | |
| 2418 | + args[_i] = arguments[_i]; | |
| 2419 | + } | |
| 2420 | + if (this.enabled) { | |
| 2421 | + // eslint-disable-next-line no-console | |
| 2422 | + if (typeof window !== 'undefined' && window.console && typeof console.error === 'function') { | |
| 2423 | + // eslint-disable-next-line no-console | |
| 2424 | + console.error.apply(console, [this.id, this.getTime() + "ms"].concat(args)); | |
| 2425 | + } | |
| 2426 | + else { | |
| 2427 | + this.info.apply(this, args); | |
| 2428 | + } | |
| 2429 | + } | |
| 2430 | + }; | |
| 2431 | + Logger.instances = {}; | |
| 2432 | + return Logger; | |
| 2433 | + }()); | |
| 2434 | + | |
| 2435 | + var CacheStorage = /** @class */ (function () { | |
| 2436 | + function CacheStorage() { | |
| 2437 | + } | |
| 2438 | + CacheStorage.create = function (name, options) { | |
| 2439 | + return (CacheStorage._caches[name] = new Cache(name, options)); | |
| 2440 | + }; | |
| 2441 | + CacheStorage.destroy = function (name) { | |
| 2442 | + delete CacheStorage._caches[name]; | |
| 2443 | + }; | |
| 2444 | + CacheStorage.open = function (name) { | |
| 2445 | + var cache = CacheStorage._caches[name]; | |
| 2446 | + if (typeof cache !== 'undefined') { | |
| 2447 | + return cache; | |
| 2448 | + } | |
| 2449 | + throw new Error("Cache with key \"" + name + "\" not found"); | |
| 2450 | + }; | |
| 2451 | + CacheStorage.getOrigin = function (url) { | |
| 2452 | + var link = CacheStorage._link; | |
| 2453 | + if (!link) { | |
| 2454 | + return 'about:blank'; | |
| 2455 | + } | |
| 2456 | + link.href = url; | |
| 2457 | + link.href = link.href; // IE9, LOL! - http://jsfiddle.net/niklasvh/2e48b/ | |
| 2458 | + return link.protocol + link.hostname + link.port; | |
| 2459 | + }; | |
| 2460 | + CacheStorage.isSameOrigin = function (src) { | |
| 2461 | + return CacheStorage.getOrigin(src) === CacheStorage._origin; | |
| 2462 | + }; | |
| 2463 | + CacheStorage.setContext = function (window) { | |
| 2464 | + CacheStorage._link = window.document.createElement('a'); | |
| 2465 | + CacheStorage._origin = CacheStorage.getOrigin(window.location.href); | |
| 2466 | + }; | |
| 2467 | + CacheStorage.getInstance = function () { | |
| 2468 | + var current = CacheStorage._current; | |
| 2469 | + if (current === null) { | |
| 2470 | + throw new Error("No cache instance attached"); | |
| 2471 | + } | |
| 2472 | + return current; | |
| 2473 | + }; | |
| 2474 | + CacheStorage.attachInstance = function (cache) { | |
| 2475 | + CacheStorage._current = cache; | |
| 2476 | + }; | |
| 2477 | + CacheStorage.detachInstance = function () { | |
| 2478 | + CacheStorage._current = null; | |
| 2479 | + }; | |
| 2480 | + CacheStorage._caches = {}; | |
| 2481 | + CacheStorage._origin = 'about:blank'; | |
| 2482 | + CacheStorage._current = null; | |
| 2483 | + return CacheStorage; | |
| 2484 | + }()); | |
| 2485 | + var Cache = /** @class */ (function () { | |
| 2486 | + function Cache(id, options) { | |
| 2487 | + this.id = id; | |
| 2488 | + this._options = options; | |
| 2489 | + this._cache = {}; | |
| 2490 | + } | |
| 2491 | + Cache.prototype.addImage = function (src) { | |
| 2492 | + var result = Promise.resolve(); | |
| 2493 | + if (this.has(src)) { | |
| 2494 | + return result; | |
| 2495 | + } | |
| 2496 | + if (isBlobImage(src) || isRenderable(src)) { | |
| 2497 | + this._cache[src] = this.loadImage(src); | |
| 2498 | + return result; | |
| 2499 | + } | |
| 2500 | + return result; | |
| 2501 | + }; | |
| 2502 | + // eslint-disable-next-line @typescript-eslint/no-explicit-any | |
| 2503 | + Cache.prototype.match = function (src) { | |
| 2504 | + return this._cache[src]; | |
| 2505 | + }; | |
| 2506 | + Cache.prototype.loadImage = function (key) { | |
| 2507 | + return __awaiter(this, void 0, void 0, function () { | |
| 2508 | + var isSameOrigin, useCORS, useProxy, src; | |
| 2509 | + var _this = this; | |
| 2510 | + return __generator(this, function (_a) { | |
| 2511 | + switch (_a.label) { | |
| 2512 | + case 0: | |
| 2513 | + isSameOrigin = CacheStorage.isSameOrigin(key); | |
| 2514 | + useCORS = !isInlineImage(key) && this._options.useCORS === true && FEATURES.SUPPORT_CORS_IMAGES && !isSameOrigin; | |
| 2515 | + useProxy = !isInlineImage(key) && | |
| 2516 | + !isSameOrigin && | |
| 2517 | + typeof this._options.proxy === 'string' && | |
| 2518 | + FEATURES.SUPPORT_CORS_XHR && | |
| 2519 | + !useCORS; | |
| 2520 | + if (!isSameOrigin && this._options.allowTaint === false && !isInlineImage(key) && !useProxy && !useCORS) { | |
| 2521 | + return [2 /*return*/]; | |
| 2522 | + } | |
| 2523 | + src = key; | |
| 2524 | + if (!useProxy) return [3 /*break*/, 2]; | |
| 2525 | + return [4 /*yield*/, this.proxy(src)]; | |
| 2526 | + case 1: | |
| 2527 | + src = _a.sent(); | |
| 2528 | + _a.label = 2; | |
| 2529 | + case 2: | |
| 2530 | + Logger.getInstance(this.id).debug("Added image " + key.substring(0, 256)); | |
| 2531 | + return [4 /*yield*/, new Promise(function (resolve, reject) { | |
| 2532 | + var img = new Image(); | |
| 2533 | + img.onload = function () { return resolve(img); }; | |
| 2534 | + img.onerror = reject; | |
| 2535 | + //ios safari 10.3 taints canvas with data urls unless crossOrigin is set to anonymous | |
| 2536 | + if (isInlineBase64Image(src) || useCORS) { | |
| 2537 | + img.crossOrigin = 'anonymous'; | |
| 2538 | + } | |
| 2539 | + img.src = src; | |
| 2540 | + if (img.complete === true) { | |
| 2541 | + // Inline XML images may fail to parse, throwing an Error later on | |
| 2542 | + setTimeout(function () { return resolve(img); }, 500); | |
| 2543 | + } | |
| 2544 | + if (_this._options.imageTimeout > 0) { | |
| 2545 | + setTimeout(function () { return reject("Timed out (" + _this._options.imageTimeout + "ms) loading image"); }, _this._options.imageTimeout); | |
| 2546 | + } | |
| 2547 | + })]; | |
| 2548 | + case 3: return [2 /*return*/, _a.sent()]; | |
| 2549 | + } | |
| 2550 | + }); | |
| 2551 | + }); | |
| 2552 | + }; | |
| 2553 | + Cache.prototype.has = function (key) { | |
| 2554 | + return typeof this._cache[key] !== 'undefined'; | |
| 2555 | + }; | |
| 2556 | + Cache.prototype.keys = function () { | |
| 2557 | + return Promise.resolve(Object.keys(this._cache)); | |
| 2558 | + }; | |
| 2559 | + Cache.prototype.proxy = function (src) { | |
| 2560 | + var _this = this; | |
| 2561 | + var proxy = this._options.proxy; | |
| 2562 | + if (!proxy) { | |
| 2563 | + throw new Error('No proxy defined'); | |
| 2564 | + } | |
| 2565 | + var key = src.substring(0, 256); | |
| 2566 | + return new Promise(function (resolve, reject) { | |
| 2567 | + var responseType = FEATURES.SUPPORT_RESPONSE_TYPE ? 'blob' : 'text'; | |
| 2568 | + var xhr = new XMLHttpRequest(); | |
| 2569 | + xhr.onload = function () { | |
| 2570 | + if (xhr.status === 200) { | |
| 2571 | + if (responseType === 'text') { | |
| 2572 | + resolve(xhr.response); | |
| 2573 | + } | |
| 2574 | + else { | |
| 2575 | + var reader_1 = new FileReader(); | |
| 2576 | + reader_1.addEventListener('load', function () { return resolve(reader_1.result); }, false); | |
| 2577 | + reader_1.addEventListener('error', function (e) { return reject(e); }, false); | |
| 2578 | + reader_1.readAsDataURL(xhr.response); | |
| 2579 | + } | |
| 2580 | + } | |
| 2581 | + else { | |
| 2582 | + reject("Failed to proxy resource " + key + " with status code " + xhr.status); | |
| 2583 | + } | |
| 2584 | + }; | |
| 2585 | + xhr.onerror = reject; | |
| 2586 | + xhr.open('GET', proxy + "?url=" + encodeURIComponent(src) + "&responseType=" + responseType); | |
| 2587 | + if (responseType !== 'text' && xhr instanceof XMLHttpRequest) { | |
| 2588 | + xhr.responseType = responseType; | |
| 2589 | + } | |
| 2590 | + if (_this._options.imageTimeout) { | |
| 2591 | + var timeout_1 = _this._options.imageTimeout; | |
| 2592 | + xhr.timeout = timeout_1; | |
| 2593 | + xhr.ontimeout = function () { return reject("Timed out (" + timeout_1 + "ms) proxying " + key); }; | |
| 2594 | + } | |
| 2595 | + xhr.send(); | |
| 2596 | + }); | |
| 2597 | + }; | |
| 2598 | + return Cache; | |
| 2599 | + }()); | |
| 2600 | + var INLINE_SVG = /^data:image\/svg\+xml/i; | |
| 2601 | + var INLINE_BASE64 = /^data:image\/.*;base64,/i; | |
| 2602 | + var INLINE_IMG = /^data:image\/.*/i; | |
| 2603 | + var isRenderable = function (src) { return FEATURES.SUPPORT_SVG_DRAWING || !isSVG(src); }; | |
| 2604 | + var isInlineImage = function (src) { return INLINE_IMG.test(src); }; | |
| 2605 | + var isInlineBase64Image = function (src) { return INLINE_BASE64.test(src); }; | |
| 2606 | + var isBlobImage = function (src) { return src.substr(0, 4) === 'blob'; }; | |
| 2607 | + var isSVG = function (src) { return src.substr(-3).toLowerCase() === 'svg' || INLINE_SVG.test(src); }; | |
| 2608 | + | |
| 2609 | + var webkitGradient = function (tokens) { | |
| 2230 | 2610 | var angle = deg(180); |
| 2231 | 2611 | var stops = []; |
| 2232 | - var type = 1 /* LINEAR_GRADIENT */; | |
| 2233 | - var shape = 0 /* CIRCLE */; | |
| 2234 | - var size = 3 /* FARTHEST_CORNER */; | |
| 2612 | + var type = CSSImageType.LINEAR_GRADIENT; | |
| 2613 | + var shape = CSSRadialShape.CIRCLE; | |
| 2614 | + var size = CSSRadialExtent.FARTHEST_CORNER; | |
| 2235 | 2615 | var position = []; |
| 2236 | 2616 | parseFunctionArgs(tokens).forEach(function (arg, i) { |
| 2237 | 2617 | var firstToken = arg[0]; |
| 2238 | 2618 | if (i === 0) { |
| 2239 | 2619 | if (isIdentToken(firstToken) && firstToken.value === 'linear') { |
| 2240 | - type = 1 /* LINEAR_GRADIENT */; | |
| 2620 | + type = CSSImageType.LINEAR_GRADIENT; | |
| 2241 | 2621 | return; |
| 2242 | 2622 | } |
| 2243 | 2623 | else if (isIdentToken(firstToken) && firstToken.value === 'radial') { |
| 2244 | - type = 2 /* RADIAL_GRADIENT */; | |
| 2624 | + type = CSSImageType.RADIAL_GRADIENT; | |
| 2245 | 2625 | return; |
| 2246 | 2626 | } |
| 2247 | 2627 | } |
| 2248 | - if (firstToken.type === 18 /* FUNCTION */) { | |
| 2628 | + if (firstToken.type === TokenType.FUNCTION) { | |
| 2249 | 2629 | if (firstToken.name === 'from') { |
| 2250 | - var color = color$1.parse(context, firstToken.values[0]); | |
| 2251 | - stops.push({ stop: ZERO_LENGTH, color: color }); | |
| 2630 | + var color$1 = color.parse(firstToken.values[0]); | |
| 2631 | + stops.push({ stop: ZERO_LENGTH, color: color$1 }); | |
| 2252 | 2632 | } |
| 2253 | 2633 | else if (firstToken.name === 'to') { |
| 2254 | - var color = color$1.parse(context, firstToken.values[0]); | |
| 2255 | - stops.push({ stop: HUNDRED_PERCENT, color: color }); | |
| 2634 | + var color$1 = color.parse(firstToken.values[0]); | |
| 2635 | + stops.push({ stop: HUNDRED_PERCENT, color: color$1 }); | |
| 2256 | 2636 | } |
| 2257 | 2637 | else if (firstToken.name === 'color-stop') { |
| 2258 | 2638 | var values = firstToken.values.filter(nonFunctionArgSeparator); |
| 2259 | 2639 | if (values.length === 2) { |
| 2260 | - var color = color$1.parse(context, values[1]); | |
| 2640 | + var color$1 = color.parse(values[1]); | |
| 2261 | 2641 | var stop_1 = values[0]; |
| 2262 | 2642 | if (isNumberToken(stop_1)) { |
| 2263 | 2643 | stops.push({ |
| 2264 | - stop: { type: 16 /* PERCENTAGE_TOKEN */, number: stop_1.number * 100, flags: stop_1.flags }, | |
| 2265 | - color: color | |
| 2644 | + stop: { type: TokenType.PERCENTAGE_TOKEN, number: stop_1.number * 100, flags: stop_1.flags }, | |
| 2645 | + color: color$1 | |
| 2266 | 2646 | }); |
| 2267 | 2647 | } |
| 2268 | 2648 | } |
| 2269 | 2649 | } |
| @@ -2268,9 +2648,9 @@ | ||
| 2268 | 2648 | } |
| 2269 | 2649 | } |
| 2270 | 2650 | } |
| 2271 | 2651 | }); |
| 2272 | - return type === 1 /* LINEAR_GRADIENT */ | |
| 2652 | + return type === CSSImageType.LINEAR_GRADIENT | |
| 2273 | 2653 | ? { |
| 2274 | 2654 | angle: (angle + deg(180)) % deg(360), |
| 2275 | 2655 | stops: stops, |
| 2276 | 2656 | type: type |
| @@ -2285,11 +2665,11 @@ | ||
| 2285 | 2665 | var CIRCLE = 'circle'; |
| 2286 | 2666 | var ELLIPSE = 'ellipse'; |
| 2287 | 2667 | var COVER = 'cover'; |
| 2288 | 2668 | var CONTAIN = 'contain'; |
| 2289 | - var radialGradient = function (context, tokens) { | |
| 2290 | - var shape = 0 /* CIRCLE */; | |
| 2291 | - var size = 3 /* FARTHEST_CORNER */; | |
| 2669 | + var radialGradient = function (tokens) { | |
| 2670 | + var shape = CSSRadialShape.CIRCLE; | |
| 2671 | + var size = CSSRadialExtent.FARTHEST_CORNER; | |
| 2292 | 2672 | var stops = []; |
| 2293 | 2673 | var position = []; |
| 2294 | 2674 | parseFunctionArgs(tokens).forEach(function (arg, i) { |
| 2295 | 2675 | var isColorStop = true; |
| @@ -2318,29 +2698,29 @@ | ||
| 2318 | 2698 | } |
| 2319 | 2699 | else if (isIdentToken(token)) { |
| 2320 | 2700 | switch (token.value) { |
| 2321 | 2701 | case CIRCLE: |
| 2322 | - shape = 0 /* CIRCLE */; | |
| 2702 | + shape = CSSRadialShape.CIRCLE; | |
| 2323 | 2703 | return false; |
| 2324 | 2704 | case ELLIPSE: |
| 2325 | - shape = 1 /* ELLIPSE */; | |
| 2705 | + shape = CSSRadialShape.ELLIPSE; | |
| 2326 | 2706 | return false; |
| 2327 | 2707 | case 'at': |
| 2328 | 2708 | isAtPosition_1 = true; |
| 2329 | 2709 | return false; |
| 2330 | 2710 | case CLOSEST_SIDE: |
| 2331 | - size = 0 /* CLOSEST_SIDE */; | |
| 2711 | + size = CSSRadialExtent.CLOSEST_SIDE; | |
| 2332 | 2712 | return false; |
| 2333 | 2713 | case COVER: |
| 2334 | 2714 | case FARTHEST_SIDE: |
| 2335 | - size = 1 /* FARTHEST_SIDE */; | |
| 2715 | + size = CSSRadialExtent.FARTHEST_SIDE; | |
| 2336 | 2716 | return false; |
| 2337 | 2717 | case CONTAIN: |
| 2338 | 2718 | case CLOSEST_CORNER: |
| 2339 | - size = 2 /* CLOSEST_CORNER */; | |
| 2719 | + size = CSSRadialExtent.CLOSEST_CORNER; | |
| 2340 | 2720 | return false; |
| 2341 | 2721 | case FARTHEST_CORNER: |
| 2342 | - size = 3 /* FARTHEST_CORNER */; | |
| 2722 | + size = CSSRadialExtent.FARTHEST_CORNER; | |
| 2343 | 2723 | return false; |
| 2344 | 2724 | } |
| 2345 | 2725 | } |
| 2346 | 2726 | else if (isLength(token) || isLengthPercentage(token)) { |
| @@ -2353,18 +2733,18 @@ | ||
| 2353 | 2733 | return acc; |
| 2354 | 2734 | }, isColorStop); |
| 2355 | 2735 | } |
| 2356 | 2736 | if (isColorStop) { |
| 2357 | - var colorStop = parseColorStop(context, arg); | |
| 2737 | + var colorStop = parseColorStop(arg); | |
| 2358 | 2738 | stops.push(colorStop); |
| 2359 | 2739 | } |
| 2360 | 2740 | }); |
| 2361 | - return { size: size, shape: shape, stops: stops, position: position, type: 2 /* RADIAL_GRADIENT */ }; | |
| 2741 | + return { size: size, shape: shape, stops: stops, position: position, type: CSSImageType.RADIAL_GRADIENT }; | |
| 2362 | 2742 | }; |
| 2363 | 2743 | |
| 2364 | - var prefixRadialGradient = function (context, tokens) { | |
| 2365 | - var shape = 0 /* CIRCLE */; | |
| 2366 | - var size = 3 /* FARTHEST_CORNER */; | |
| 2744 | + var prefixRadialGradient = function (tokens) { | |
| 2745 | + var shape = CSSRadialShape.CIRCLE; | |
| 2746 | + var size = CSSRadialExtent.FARTHEST_CORNER; | |
| 2367 | 2747 | var stops = []; |
| 2368 | 2748 | var position = []; |
| 2369 | 2749 | parseFunctionArgs(tokens).forEach(function (arg, i) { |
| 2370 | 2750 | var isColorStop = true; |
| @@ -2396,26 +2776,26 @@ | ||
| 2396 | 2776 | isColorStop = arg.reduce(function (acc, token) { |
| 2397 | 2777 | if (isIdentToken(token)) { |
| 2398 | 2778 | switch (token.value) { |
| 2399 | 2779 | case CIRCLE: |
| 2400 | - shape = 0 /* CIRCLE */; | |
| 2780 | + shape = CSSRadialShape.CIRCLE; | |
| 2401 | 2781 | return false; |
| 2402 | 2782 | case ELLIPSE: |
| 2403 | - shape = 1 /* ELLIPSE */; | |
| 2783 | + shape = CSSRadialShape.ELLIPSE; | |
| 2404 | 2784 | return false; |
| 2405 | 2785 | case CONTAIN: |
| 2406 | 2786 | case CLOSEST_SIDE: |
| 2407 | - size = 0 /* CLOSEST_SIDE */; | |
| 2787 | + size = CSSRadialExtent.CLOSEST_SIDE; | |
| 2408 | 2788 | return false; |
| 2409 | 2789 | case FARTHEST_SIDE: |
| 2410 | - size = 1 /* FARTHEST_SIDE */; | |
| 2790 | + size = CSSRadialExtent.FARTHEST_SIDE; | |
| 2411 | 2791 | return false; |
| 2412 | 2792 | case CLOSEST_CORNER: |
| 2413 | - size = 2 /* CLOSEST_CORNER */; | |
| 2793 | + size = CSSRadialExtent.CLOSEST_CORNER; | |
| 2414 | 2794 | return false; |
| 2415 | 2795 | case COVER: |
| 2416 | 2796 | case FARTHEST_CORNER: |
| 2417 | - size = 3 /* FARTHEST_CORNER */; | |
| 2797 | + size = CSSRadialExtent.FARTHEST_CORNER; | |
| 2418 | 2798 | return false; |
| 2419 | 2799 | } |
| 2420 | 2800 | } |
| 2421 | 2801 | else if (isLength(token) || isLengthPercentage(token)) { |
| @@ -2428,42 +2808,59 @@ | ||
| 2428 | 2808 | return acc; |
| 2429 | 2809 | }, isColorStop); |
| 2430 | 2810 | } |
| 2431 | 2811 | if (isColorStop) { |
| 2432 | - var colorStop = parseColorStop(context, arg); | |
| 2812 | + var colorStop = parseColorStop(arg); | |
| 2433 | 2813 | stops.push(colorStop); |
| 2434 | 2814 | } |
| 2435 | 2815 | }); |
| 2436 | - return { size: size, shape: shape, stops: stops, position: position, type: 2 /* RADIAL_GRADIENT */ }; | |
| 2816 | + return { size: size, shape: shape, stops: stops, position: position, type: CSSImageType.RADIAL_GRADIENT }; | |
| 2437 | 2817 | }; |
| 2438 | 2818 | |
| 2819 | + var CSSImageType; | |
| 2820 | + (function (CSSImageType) { | |
| 2821 | + CSSImageType[CSSImageType["URL"] = 0] = "URL"; | |
| 2822 | + CSSImageType[CSSImageType["LINEAR_GRADIENT"] = 1] = "LINEAR_GRADIENT"; | |
| 2823 | + CSSImageType[CSSImageType["RADIAL_GRADIENT"] = 2] = "RADIAL_GRADIENT"; | |
| 2824 | + })(CSSImageType || (CSSImageType = {})); | |
| 2439 | 2825 | var isLinearGradient = function (background) { |
| 2440 | - return background.type === 1 /* LINEAR_GRADIENT */; | |
| 2826 | + return background.type === CSSImageType.LINEAR_GRADIENT; | |
| 2441 | 2827 | }; |
| 2442 | 2828 | var isRadialGradient = function (background) { |
| 2443 | - return background.type === 2 /* RADIAL_GRADIENT */; | |
| 2829 | + return background.type === CSSImageType.RADIAL_GRADIENT; | |
| 2444 | 2830 | }; |
| 2831 | + var CSSRadialShape; | |
| 2832 | + (function (CSSRadialShape) { | |
| 2833 | + CSSRadialShape[CSSRadialShape["CIRCLE"] = 0] = "CIRCLE"; | |
| 2834 | + CSSRadialShape[CSSRadialShape["ELLIPSE"] = 1] = "ELLIPSE"; | |
| 2835 | + })(CSSRadialShape || (CSSRadialShape = {})); | |
| 2836 | + var CSSRadialExtent; | |
| 2837 | + (function (CSSRadialExtent) { | |
| 2838 | + CSSRadialExtent[CSSRadialExtent["CLOSEST_SIDE"] = 0] = "CLOSEST_SIDE"; | |
| 2839 | + CSSRadialExtent[CSSRadialExtent["FARTHEST_SIDE"] = 1] = "FARTHEST_SIDE"; | |
| 2840 | + CSSRadialExtent[CSSRadialExtent["CLOSEST_CORNER"] = 2] = "CLOSEST_CORNER"; | |
| 2841 | + CSSRadialExtent[CSSRadialExtent["FARTHEST_CORNER"] = 3] = "FARTHEST_CORNER"; | |
| 2842 | + })(CSSRadialExtent || (CSSRadialExtent = {})); | |
| 2445 | 2843 | var image = { |
| 2446 | 2844 | name: 'image', |
| 2447 | - parse: function (context, value) { | |
| 2448 | - if (value.type === 22 /* URL_TOKEN */) { | |
| 2449 | - var image_1 = { url: value.value, type: 0 /* URL */ }; | |
| 2450 | - context.cache.addImage(value.value); | |
| 2845 | + parse: function (value) { | |
| 2846 | + if (value.type === TokenType.URL_TOKEN) { | |
| 2847 | + var image_1 = { url: value.value, type: CSSImageType.URL }; | |
| 2848 | + CacheStorage.getInstance().addImage(value.value); | |
| 2451 | 2849 | return image_1; |
| 2452 | 2850 | } |
| 2453 | - if (value.type === 18 /* FUNCTION */) { | |
| 2851 | + if (value.type === TokenType.FUNCTION) { | |
| 2454 | 2852 | var imageFunction = SUPPORTED_IMAGE_FUNCTIONS[value.name]; |
| 2455 | 2853 | if (typeof imageFunction === 'undefined') { |
| 2456 | 2854 | throw new Error("Attempting to parse an unsupported image function \"" + value.name + "\""); |
| 2457 | 2855 | } |
| 2458 | - return imageFunction(context, value.values); | |
| 2856 | + return imageFunction(value.values); | |
| 2459 | 2857 | } |
| 2460 | - throw new Error("Unsupported image type " + value.type); | |
| 2858 | + throw new Error("Unsupported image type"); | |
| 2461 | 2859 | } |
| 2462 | 2860 | }; |
| 2463 | 2861 | function isSupportedImage(value) { |
| 2464 | - return (!(value.type === 20 /* IDENT_TOKEN */ && value.value === 'none') && | |
| 2465 | - (value.type !== 18 /* FUNCTION */ || !!SUPPORTED_IMAGE_FUNCTIONS[value.name])); | |
| 2862 | + return value.type !== TokenType.FUNCTION || SUPPORTED_IMAGE_FUNCTIONS[value.name]; | |
| 2466 | 2863 | } |
| 2467 | 2864 | var SUPPORTED_IMAGE_FUNCTIONS = { |
| 2468 | 2865 | 'linear-gradient': linearGradient, |
| 2469 | 2866 | '-moz-linear-gradient': prefixLinearGradient, |
| @@ -2480,21 +2877,19 @@ | ||
| 2480 | 2877 | |
| 2481 | 2878 | var backgroundImage = { |
| 2482 | 2879 | name: 'background-image', |
| 2483 | 2880 | initialValue: 'none', |
| 2484 | - type: 1 /* LIST */, | |
| 2881 | + type: PropertyDescriptorParsingType.LIST, | |
| 2485 | 2882 | prefix: false, |
| 2486 | - parse: function (context, tokens) { | |
| 2883 | + parse: function (tokens) { | |
| 2487 | 2884 | if (tokens.length === 0) { |
| 2488 | 2885 | return []; |
| 2489 | 2886 | } |
| 2490 | 2887 | var first = tokens[0]; |
| 2491 | - if (first.type === 20 /* IDENT_TOKEN */ && first.value === 'none') { | |
| 2888 | + if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') { | |
| 2492 | 2889 | return []; |
| 2493 | 2890 | } |
| 2494 | - return tokens | |
| 2495 | - .filter(function (value) { return nonFunctionArgSeparator(value) && isSupportedImage(value); }) | |
| 2496 | - .map(function (value) { return image.parse(context, value); }); | |
| 2891 | + return tokens.filter(function (value) { return nonFunctionArgSeparator(value) && isSupportedImage(value); }).map(image.parse); | |
| 2497 | 2892 | } |
| 2498 | 2893 | }; |
| 2499 | 2894 | |
| 2500 | 2895 | var backgroundOrigin = { |
| @@ -2500,10 +2895,10 @@ | ||
| 2500 | 2895 | var backgroundOrigin = { |
| 2501 | 2896 | name: 'background-origin', |
| 2502 | 2897 | initialValue: 'border-box', |
| 2503 | 2898 | prefix: false, |
| 2504 | - type: 1 /* LIST */, | |
| 2505 | - parse: function (_context, tokens) { | |
| 2899 | + type: PropertyDescriptorParsingType.LIST, | |
| 2900 | + parse: function (tokens) { | |
| 2506 | 2901 | return tokens.map(function (token) { |
| 2507 | 2902 | if (isIdentToken(token)) { |
| 2508 | 2903 | switch (token.value) { |
| 2509 | 2904 | case 'padding-box': |
| @@ -2519,11 +2914,11 @@ | ||
| 2519 | 2914 | |
| 2520 | 2915 | var backgroundPosition = { |
| 2521 | 2916 | name: 'background-position', |
| 2522 | 2917 | initialValue: '0% 0%', |
| 2523 | - type: 1 /* LIST */, | |
| 2918 | + type: PropertyDescriptorParsingType.LIST, | |
| 2524 | 2919 | prefix: false, |
| 2525 | - parse: function (_context, tokens) { | |
| 2920 | + parse: function (tokens) { | |
| 2526 | 2921 | return parseFunctionArgs(tokens) |
| 2527 | 2922 | .map(function (values) { return values.filter(isLengthPercentage); }) |
| 2528 | 2923 | .map(parseLengthPercentageTuple); |
| 2529 | 2924 | } |
| @@ -2528,21 +2923,28 @@ | ||
| 2528 | 2923 | .map(parseLengthPercentageTuple); |
| 2529 | 2924 | } |
| 2530 | 2925 | }; |
| 2531 | 2926 | |
| 2927 | + var BACKGROUND_REPEAT; | |
| 2928 | + (function (BACKGROUND_REPEAT) { | |
| 2929 | + BACKGROUND_REPEAT[BACKGROUND_REPEAT["REPEAT"] = 0] = "REPEAT"; | |
| 2930 | + BACKGROUND_REPEAT[BACKGROUND_REPEAT["NO_REPEAT"] = 1] = "NO_REPEAT"; | |
| 2931 | + BACKGROUND_REPEAT[BACKGROUND_REPEAT["REPEAT_X"] = 2] = "REPEAT_X"; | |
| 2932 | + BACKGROUND_REPEAT[BACKGROUND_REPEAT["REPEAT_Y"] = 3] = "REPEAT_Y"; | |
| 2933 | + })(BACKGROUND_REPEAT || (BACKGROUND_REPEAT = {})); | |
| 2532 | 2934 | var backgroundRepeat = { |
| 2533 | 2935 | name: 'background-repeat', |
| 2534 | 2936 | initialValue: 'repeat', |
| 2535 | 2937 | prefix: false, |
| 2536 | - type: 1 /* LIST */, | |
| 2537 | - parse: function (_context, tokens) { | |
| 2938 | + type: PropertyDescriptorParsingType.LIST, | |
| 2939 | + parse: function (tokens) { | |
| 2538 | 2940 | return parseFunctionArgs(tokens) |
| 2539 | 2941 | .map(function (values) { |
| 2540 | - return values | |
| 2541 | - .filter(isIdentToken) | |
| 2542 | - .map(function (token) { return token.value; }) | |
| 2543 | - .join(' '); | |
| 2544 | - }) | |
| 2942 | + return values | |
| 2943 | + .filter(isIdentToken) | |
| 2944 | + .map(function (token) { return token.value; }) | |
| 2945 | + .join(' '); | |
| 2946 | + }) | |
| 2545 | 2947 | .map(parseBackgroundRepeat); |
| 2546 | 2948 | } |
| 2547 | 2949 | }; |
| 2548 | 2950 | var parseBackgroundRepeat = function (value) { |
| @@ -2547,18 +2949,18 @@ | ||
| 2547 | 2949 | }; |
| 2548 | 2950 | var parseBackgroundRepeat = function (value) { |
| 2549 | 2951 | switch (value) { |
| 2550 | 2952 | case 'no-repeat': |
| 2551 | - return 1 /* NO_REPEAT */; | |
| 2953 | + return BACKGROUND_REPEAT.NO_REPEAT; | |
| 2552 | 2954 | case 'repeat-x': |
| 2553 | 2955 | case 'repeat no-repeat': |
| 2554 | - return 2 /* REPEAT_X */; | |
| 2956 | + return BACKGROUND_REPEAT.REPEAT_X; | |
| 2555 | 2957 | case 'repeat-y': |
| 2556 | 2958 | case 'no-repeat repeat': |
| 2557 | - return 3 /* REPEAT_Y */; | |
| 2959 | + return BACKGROUND_REPEAT.REPEAT_Y; | |
| 2558 | 2960 | case 'repeat': |
| 2559 | 2961 | default: |
| 2560 | - return 0 /* REPEAT */; | |
| 2962 | + return BACKGROUND_REPEAT.REPEAT; | |
| 2561 | 2963 | } |
| 2562 | 2964 | }; |
| 2563 | 2965 | |
| 2564 | 2966 | var BACKGROUND_SIZE; |
| @@ -2570,10 +2972,10 @@ | ||
| 2570 | 2972 | var backgroundSize = { |
| 2571 | 2973 | name: 'background-size', |
| 2572 | 2974 | initialValue: '0', |
| 2573 | 2975 | prefix: false, |
| 2574 | - type: 1 /* LIST */, | |
| 2575 | - parse: function (_context, tokens) { | |
| 2976 | + type: PropertyDescriptorParsingType.LIST, | |
| 2977 | + parse: function (tokens) { | |
| 2576 | 2978 | return parseFunctionArgs(tokens).map(function (values) { return values.filter(isBackgroundSizeInfoToken); }); |
| 2577 | 2979 | } |
| 2578 | 2980 | }; |
| 2579 | 2981 | var isBackgroundSizeInfoToken = function (value) { |
| @@ -2583,9 +2985,9 @@ | ||
| 2583 | 2985 | var borderColorForSide = function (side) { return ({ |
| 2584 | 2986 | name: "border-" + side + "-color", |
| 2585 | 2987 | initialValue: 'transparent', |
| 2586 | 2988 | prefix: false, |
| 2587 | - type: 3 /* TYPE_VALUE */, | |
| 2989 | + type: PropertyDescriptorParsingType.TYPE_VALUE, | |
| 2588 | 2990 | format: 'color' |
| 2589 | 2991 | }); }; |
| 2590 | 2992 | var borderTopColor = borderColorForSide('top'); |
| 2591 | 2993 | var borderRightColor = borderColorForSide('right'); |
| @@ -2595,12 +2997,10 @@ | ||
| 2595 | 2997 | var borderRadiusForSide = function (side) { return ({ |
| 2596 | 2998 | name: "border-radius-" + side, |
| 2597 | 2999 | initialValue: '0 0', |
| 2598 | 3000 | prefix: false, |
| 2599 | - type: 1 /* LIST */, | |
| 2600 | - parse: function (_context, tokens) { | |
| 2601 | - return parseLengthPercentageTuple(tokens.filter(isLengthPercentage)); | |
| 2602 | - } | |
| 3001 | + type: PropertyDescriptorParsingType.LIST, | |
| 3002 | + parse: function (tokens) { return parseLengthPercentageTuple(tokens.filter(isLengthPercentage)); } | |
| 2603 | 3003 | }); }; |
| 2604 | 3004 | var borderTopLeftRadius = borderRadiusForSide('top-left'); |
| 2605 | 3005 | var borderTopRightRadius = borderRadiusForSide('top-right'); |
| 2606 | 3006 | var borderBottomRightRadius = borderRadiusForSide('bottom-right'); |
| @@ -2605,25 +3005,24 @@ | ||
| 2605 | 3005 | var borderTopRightRadius = borderRadiusForSide('top-right'); |
| 2606 | 3006 | var borderBottomRightRadius = borderRadiusForSide('bottom-right'); |
| 2607 | 3007 | var borderBottomLeftRadius = borderRadiusForSide('bottom-left'); |
| 2608 | 3008 | |
| 3009 | + var BORDER_STYLE; | |
| 3010 | + (function (BORDER_STYLE) { | |
| 3011 | + BORDER_STYLE[BORDER_STYLE["NONE"] = 0] = "NONE"; | |
| 3012 | + BORDER_STYLE[BORDER_STYLE["SOLID"] = 1] = "SOLID"; | |
| 3013 | + })(BORDER_STYLE || (BORDER_STYLE = {})); | |
| 2609 | 3014 | var borderStyleForSide = function (side) { return ({ |
| 2610 | 3015 | name: "border-" + side + "-style", |
| 2611 | 3016 | initialValue: 'solid', |
| 2612 | 3017 | prefix: false, |
| 2613 | - type: 2 /* IDENT_VALUE */, | |
| 2614 | - parse: function (_context, style) { | |
| 3018 | + type: PropertyDescriptorParsingType.IDENT_VALUE, | |
| 3019 | + parse: function (style) { | |
| 2615 | 3020 | switch (style) { |
| 2616 | 3021 | case 'none': |
| 2617 | - return 0 /* NONE */; | |
| 2618 | - case 'dashed': | |
| 2619 | - return 2 /* DASHED */; | |
| 2620 | - case 'dotted': | |
| 2621 | - return 3 /* DOTTED */; | |
| 2622 | - case 'double': | |
| 2623 | - return 4 /* DOUBLE */; | |
| 3022 | + return BORDER_STYLE.NONE; | |
| 2624 | 3023 | } |
| 2625 | - return 1 /* SOLID */; | |
| 3024 | + return BORDER_STYLE.SOLID; | |
| 2626 | 3025 | } |
| 2627 | 3026 | }); }; |
| 2628 | 3027 | var borderTopStyle = borderStyleForSide('top'); |
| 2629 | 3028 | var borderRightStyle = borderStyleForSide('right'); |
| @@ -2632,11 +3031,11 @@ | ||
| 2632 | 3031 | |
| 2633 | 3032 | var borderWidthForSide = function (side) { return ({ |
| 2634 | 3033 | name: "border-" + side + "-width", |
| 2635 | 3034 | initialValue: '0', |
| 2636 | - type: 0 /* VALUE */, | |
| 3035 | + type: PropertyDescriptorParsingType.VALUE, | |
| 2637 | 3036 | prefix: false, |
| 2638 | - parse: function (_context, token) { | |
| 3037 | + parse: function (token) { | |
| 2639 | 3038 | if (isDimensionToken(token)) { |
| 2640 | 3039 | return token.number; |
| 2641 | 3040 | } |
| 2642 | 3041 | return 0; |
| @@ -2646,38 +3045,22 @@ | ||
| 2646 | 3045 | var borderRightWidth = borderWidthForSide('right'); |
| 2647 | 3046 | var borderBottomWidth = borderWidthForSide('bottom'); |
| 2648 | 3047 | var borderLeftWidth = borderWidthForSide('left'); |
| 2649 | 3048 | |
| 2650 | - var color = { | |
| 3049 | + var color$1 = { | |
| 2651 | 3050 | name: "color", |
| 2652 | 3051 | initialValue: 'transparent', |
| 2653 | 3052 | prefix: false, |
| 2654 | - type: 3 /* TYPE_VALUE */, | |
| 3053 | + type: PropertyDescriptorParsingType.TYPE_VALUE, | |
| 2655 | 3054 | format: 'color' |
| 2656 | 3055 | }; |
| 2657 | 3056 | |
| 2658 | - var direction = { | |
| 2659 | - name: 'direction', | |
| 2660 | - initialValue: 'ltr', | |
| 2661 | - prefix: false, | |
| 2662 | - type: 2 /* IDENT_VALUE */, | |
| 2663 | - parse: function (_context, direction) { | |
| 2664 | - switch (direction) { | |
| 2665 | - case 'rtl': | |
| 2666 | - return 1 /* RTL */; | |
| 2667 | - case 'ltr': | |
| 2668 | - default: | |
| 2669 | - return 0 /* LTR */; | |
| 2670 | - } | |
| 2671 | - } | |
| 2672 | - }; | |
| 2673 | - | |
| 2674 | 3057 | var display = { |
| 2675 | 3058 | name: 'display', |
| 2676 | 3059 | initialValue: 'inline-block', |
| 2677 | 3060 | prefix: false, |
| 2678 | - type: 1 /* LIST */, | |
| 2679 | - parse: function (_context, tokens) { | |
| 3061 | + type: PropertyDescriptorParsingType.LIST, | |
| 3062 | + parse: function (tokens) { | |
| 2680 | 3063 | return tokens.filter(isIdentToken).reduce(function (bit, token) { |
| 2681 | 3064 | return bit | parseDisplayValue(token.value); |
| 2682 | 3065 | }, 0 /* NONE */); |
| 2683 | 3066 | } |
| @@ -2684,9 +3067,8 @@ | ||
| 2684 | 3067 | }; |
| 2685 | 3068 | var parseDisplayValue = function (display) { |
| 2686 | 3069 | switch (display) { |
| 2687 | 3070 | case 'block': |
| 2688 | - case '-webkit-box': | |
| 2689 | 3071 | return 2 /* BLOCK */; |
| 2690 | 3072 | case 'inline': |
| 2691 | 3073 | return 4 /* INLINE */; |
| 2692 | 3074 | case 'run-in': |
| @@ -2748,25 +3130,33 @@ | ||
| 2748 | 3130 | } |
| 2749 | 3131 | return 0 /* NONE */; |
| 2750 | 3132 | }; |
| 2751 | 3133 | |
| 3134 | + var FLOAT; | |
| 3135 | + (function (FLOAT) { | |
| 3136 | + FLOAT[FLOAT["NONE"] = 0] = "NONE"; | |
| 3137 | + FLOAT[FLOAT["LEFT"] = 1] = "LEFT"; | |
| 3138 | + FLOAT[FLOAT["RIGHT"] = 2] = "RIGHT"; | |
| 3139 | + FLOAT[FLOAT["INLINE_START"] = 3] = "INLINE_START"; | |
| 3140 | + FLOAT[FLOAT["INLINE_END"] = 4] = "INLINE_END"; | |
| 3141 | + })(FLOAT || (FLOAT = {})); | |
| 2752 | 3142 | var float = { |
| 2753 | 3143 | name: 'float', |
| 2754 | 3144 | initialValue: 'none', |
| 2755 | 3145 | prefix: false, |
| 2756 | - type: 2 /* IDENT_VALUE */, | |
| 2757 | - parse: function (_context, float) { | |
| 3146 | + type: PropertyDescriptorParsingType.IDENT_VALUE, | |
| 3147 | + parse: function (float) { | |
| 2758 | 3148 | switch (float) { |
| 2759 | 3149 | case 'left': |
| 2760 | - return 1 /* LEFT */; | |
| 3150 | + return FLOAT.LEFT; | |
| 2761 | 3151 | case 'right': |
| 2762 | - return 2 /* RIGHT */; | |
| 3152 | + return FLOAT.RIGHT; | |
| 2763 | 3153 | case 'inline-start': |
| 2764 | - return 3 /* INLINE_START */; | |
| 3154 | + return FLOAT.INLINE_START; | |
| 2765 | 3155 | case 'inline-end': |
| 2766 | - return 4 /* INLINE_END */; | |
| 3156 | + return FLOAT.INLINE_END; | |
| 2767 | 3157 | } |
| 2768 | - return 0 /* NONE */; | |
| 3158 | + return FLOAT.NONE; | |
| 2769 | 3159 | } |
| 2770 | 3160 | }; |
| 2771 | 3161 | |
| 2772 | 3162 | var letterSpacing = { |
| @@ -2772,17 +3162,17 @@ | ||
| 2772 | 3162 | var letterSpacing = { |
| 2773 | 3163 | name: 'letter-spacing', |
| 2774 | 3164 | initialValue: '0', |
| 2775 | 3165 | prefix: false, |
| 2776 | - type: 0 /* VALUE */, | |
| 2777 | - parse: function (_context, token) { | |
| 2778 | - if (token.type === 20 /* IDENT_TOKEN */ && token.value === 'normal') { | |
| 3166 | + type: PropertyDescriptorParsingType.VALUE, | |
| 3167 | + parse: function (token) { | |
| 3168 | + if (token.type === TokenType.IDENT_TOKEN && token.value === 'normal') { | |
| 2779 | 3169 | return 0; |
| 2780 | 3170 | } |
| 2781 | - if (token.type === 17 /* NUMBER_TOKEN */) { | |
| 3171 | + if (token.type === TokenType.NUMBER_TOKEN) { | |
| 2782 | 3172 | return token.number; |
| 2783 | 3173 | } |
| 2784 | - if (token.type === 15 /* DIMENSION_TOKEN */) { | |
| 3174 | + if (token.type === TokenType.DIMENSION_TOKEN) { | |
| 2785 | 3175 | return token.number; |
| 2786 | 3176 | } |
| 2787 | 3177 | return 0; |
| 2788 | 3178 | } |
| @@ -2796,10 +3186,10 @@ | ||
| 2796 | 3186 | var lineBreak = { |
| 2797 | 3187 | name: 'line-break', |
| 2798 | 3188 | initialValue: 'normal', |
| 2799 | 3189 | prefix: false, |
| 2800 | - type: 2 /* IDENT_VALUE */, | |
| 2801 | - parse: function (_context, lineBreak) { | |
| 3190 | + type: PropertyDescriptorParsingType.IDENT_VALUE, | |
| 3191 | + parse: function (lineBreak) { | |
| 2802 | 3192 | switch (lineBreak) { |
| 2803 | 3193 | case 'strict': |
| 2804 | 3194 | return LINE_BREAK.STRICT; |
| 2805 | 3195 | case 'normal': |
| @@ -2812,15 +3202,15 @@ | ||
| 2812 | 3202 | var lineHeight = { |
| 2813 | 3203 | name: 'line-height', |
| 2814 | 3204 | initialValue: 'normal', |
| 2815 | 3205 | prefix: false, |
| 2816 | - type: 4 /* TOKEN_VALUE */ | |
| 3206 | + type: PropertyDescriptorParsingType.TOKEN_VALUE | |
| 2817 | 3207 | }; |
| 2818 | 3208 | var computeLineHeight = function (token, fontSize) { |
| 2819 | 3209 | if (isIdentToken(token) && token.value === 'normal') { |
| 2820 | 3210 | return 1.2 * fontSize; |
| 2821 | 3211 | } |
| 2822 | - else if (token.type === 17 /* NUMBER_TOKEN */) { | |
| 3212 | + else if (token.type === TokenType.NUMBER_TOKEN) { | |
| 2823 | 3213 | return fontSize * token.number; |
| 2824 | 3214 | } |
| 2825 | 3215 | else if (isLengthPercentage(token)) { |
| 2826 | 3216 | return getAbsoluteValue(token, fontSize); |
| @@ -2830,150 +3220,212 @@ | ||
| 2830 | 3220 | |
| 2831 | 3221 | var listStyleImage = { |
| 2832 | 3222 | name: 'list-style-image', |
| 2833 | 3223 | initialValue: 'none', |
| 2834 | - type: 0 /* VALUE */, | |
| 3224 | + type: PropertyDescriptorParsingType.VALUE, | |
| 2835 | 3225 | prefix: false, |
| 2836 | - parse: function (context, token) { | |
| 2837 | - if (token.type === 20 /* IDENT_TOKEN */ && token.value === 'none') { | |
| 3226 | + parse: function (token) { | |
| 3227 | + if (token.type === TokenType.IDENT_TOKEN && token.value === 'none') { | |
| 2838 | 3228 | return null; |
| 2839 | 3229 | } |
| 2840 | - return image.parse(context, token); | |
| 3230 | + return image.parse(token); | |
| 2841 | 3231 | } |
| 2842 | 3232 | }; |
| 2843 | 3233 | |
| 3234 | + var LIST_STYLE_POSITION; | |
| 3235 | + (function (LIST_STYLE_POSITION) { | |
| 3236 | + LIST_STYLE_POSITION[LIST_STYLE_POSITION["INSIDE"] = 0] = "INSIDE"; | |
| 3237 | + LIST_STYLE_POSITION[LIST_STYLE_POSITION["OUTSIDE"] = 1] = "OUTSIDE"; | |
| 3238 | + })(LIST_STYLE_POSITION || (LIST_STYLE_POSITION = {})); | |
| 2844 | 3239 | var listStylePosition = { |
| 2845 | 3240 | name: 'list-style-position', |
| 2846 | 3241 | initialValue: 'outside', |
| 2847 | 3242 | prefix: false, |
| 2848 | - type: 2 /* IDENT_VALUE */, | |
| 2849 | - parse: function (_context, position) { | |
| 3243 | + type: PropertyDescriptorParsingType.IDENT_VALUE, | |
| 3244 | + parse: function (position) { | |
| 2850 | 3245 | switch (position) { |
| 2851 | 3246 | case 'inside': |
| 2852 | - return 0 /* INSIDE */; | |
| 3247 | + return LIST_STYLE_POSITION.INSIDE; | |
| 2853 | 3248 | case 'outside': |
| 2854 | 3249 | default: |
| 2855 | - return 1 /* OUTSIDE */; | |
| 3250 | + return LIST_STYLE_POSITION.OUTSIDE; | |
| 2856 | 3251 | } |
| 2857 | 3252 | } |
| 2858 | 3253 | }; |
| 2859 | 3254 | |
| 3255 | + var LIST_STYLE_TYPE; | |
| 3256 | + (function (LIST_STYLE_TYPE) { | |
| 3257 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["NONE"] = -1] = "NONE"; | |
| 3258 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["DISC"] = 0] = "DISC"; | |
| 3259 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["CIRCLE"] = 1] = "CIRCLE"; | |
| 3260 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["SQUARE"] = 2] = "SQUARE"; | |
| 3261 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["DECIMAL"] = 3] = "DECIMAL"; | |
| 3262 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["CJK_DECIMAL"] = 4] = "CJK_DECIMAL"; | |
| 3263 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["DECIMAL_LEADING_ZERO"] = 5] = "DECIMAL_LEADING_ZERO"; | |
| 3264 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["LOWER_ROMAN"] = 6] = "LOWER_ROMAN"; | |
| 3265 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["UPPER_ROMAN"] = 7] = "UPPER_ROMAN"; | |
| 3266 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["LOWER_GREEK"] = 8] = "LOWER_GREEK"; | |
| 3267 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["LOWER_ALPHA"] = 9] = "LOWER_ALPHA"; | |
| 3268 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["UPPER_ALPHA"] = 10] = "UPPER_ALPHA"; | |
| 3269 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["ARABIC_INDIC"] = 11] = "ARABIC_INDIC"; | |
| 3270 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["ARMENIAN"] = 12] = "ARMENIAN"; | |
| 3271 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["BENGALI"] = 13] = "BENGALI"; | |
| 3272 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["CAMBODIAN"] = 14] = "CAMBODIAN"; | |
| 3273 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["CJK_EARTHLY_BRANCH"] = 15] = "CJK_EARTHLY_BRANCH"; | |
| 3274 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["CJK_HEAVENLY_STEM"] = 16] = "CJK_HEAVENLY_STEM"; | |
| 3275 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["CJK_IDEOGRAPHIC"] = 17] = "CJK_IDEOGRAPHIC"; | |
| 3276 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["DEVANAGARI"] = 18] = "DEVANAGARI"; | |
| 3277 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["ETHIOPIC_NUMERIC"] = 19] = "ETHIOPIC_NUMERIC"; | |
| 3278 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["GEORGIAN"] = 20] = "GEORGIAN"; | |
| 3279 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["GUJARATI"] = 21] = "GUJARATI"; | |
| 3280 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["GURMUKHI"] = 22] = "GURMUKHI"; | |
| 3281 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["HEBREW"] = 22] = "HEBREW"; | |
| 3282 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["HIRAGANA"] = 23] = "HIRAGANA"; | |
| 3283 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["HIRAGANA_IROHA"] = 24] = "HIRAGANA_IROHA"; | |
| 3284 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["JAPANESE_FORMAL"] = 25] = "JAPANESE_FORMAL"; | |
| 3285 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["JAPANESE_INFORMAL"] = 26] = "JAPANESE_INFORMAL"; | |
| 3286 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["KANNADA"] = 27] = "KANNADA"; | |
| 3287 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["KATAKANA"] = 28] = "KATAKANA"; | |
| 3288 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["KATAKANA_IROHA"] = 29] = "KATAKANA_IROHA"; | |
| 3289 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["KHMER"] = 30] = "KHMER"; | |
| 3290 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["KOREAN_HANGUL_FORMAL"] = 31] = "KOREAN_HANGUL_FORMAL"; | |
| 3291 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["KOREAN_HANJA_FORMAL"] = 32] = "KOREAN_HANJA_FORMAL"; | |
| 3292 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["KOREAN_HANJA_INFORMAL"] = 33] = "KOREAN_HANJA_INFORMAL"; | |
| 3293 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["LAO"] = 34] = "LAO"; | |
| 3294 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["LOWER_ARMENIAN"] = 35] = "LOWER_ARMENIAN"; | |
| 3295 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["MALAYALAM"] = 36] = "MALAYALAM"; | |
| 3296 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["MONGOLIAN"] = 37] = "MONGOLIAN"; | |
| 3297 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["MYANMAR"] = 38] = "MYANMAR"; | |
| 3298 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["ORIYA"] = 39] = "ORIYA"; | |
| 3299 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["PERSIAN"] = 40] = "PERSIAN"; | |
| 3300 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["SIMP_CHINESE_FORMAL"] = 41] = "SIMP_CHINESE_FORMAL"; | |
| 3301 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["SIMP_CHINESE_INFORMAL"] = 42] = "SIMP_CHINESE_INFORMAL"; | |
| 3302 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["TAMIL"] = 43] = "TAMIL"; | |
| 3303 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["TELUGU"] = 44] = "TELUGU"; | |
| 3304 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["THAI"] = 45] = "THAI"; | |
| 3305 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["TIBETAN"] = 46] = "TIBETAN"; | |
| 3306 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["TRAD_CHINESE_FORMAL"] = 47] = "TRAD_CHINESE_FORMAL"; | |
| 3307 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["TRAD_CHINESE_INFORMAL"] = 48] = "TRAD_CHINESE_INFORMAL"; | |
| 3308 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["UPPER_ARMENIAN"] = 49] = "UPPER_ARMENIAN"; | |
| 3309 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["DISCLOSURE_OPEN"] = 50] = "DISCLOSURE_OPEN"; | |
| 3310 | + LIST_STYLE_TYPE[LIST_STYLE_TYPE["DISCLOSURE_CLOSED"] = 51] = "DISCLOSURE_CLOSED"; | |
| 3311 | + })(LIST_STYLE_TYPE || (LIST_STYLE_TYPE = {})); | |
| 2860 | 3312 | var listStyleType = { |
| 2861 | 3313 | name: 'list-style-type', |
| 2862 | 3314 | initialValue: 'none', |
| 2863 | 3315 | prefix: false, |
| 2864 | - type: 2 /* IDENT_VALUE */, | |
| 2865 | - parse: function (_context, type) { | |
| 3316 | + type: PropertyDescriptorParsingType.IDENT_VALUE, | |
| 3317 | + parse: function (type) { | |
| 2866 | 3318 | switch (type) { |
| 2867 | 3319 | case 'disc': |
| 2868 | - return 0 /* DISC */; | |
| 3320 | + return LIST_STYLE_TYPE.DISC; | |
| 2869 | 3321 | case 'circle': |
| 2870 | - return 1 /* CIRCLE */; | |
| 3322 | + return LIST_STYLE_TYPE.CIRCLE; | |
| 2871 | 3323 | case 'square': |
| 2872 | - return 2 /* SQUARE */; | |
| 3324 | + return LIST_STYLE_TYPE.SQUARE; | |
| 2873 | 3325 | case 'decimal': |
| 2874 | - return 3 /* DECIMAL */; | |
| 3326 | + return LIST_STYLE_TYPE.DECIMAL; | |
| 2875 | 3327 | case 'cjk-decimal': |
| 2876 | - return 4 /* CJK_DECIMAL */; | |
| 3328 | + return LIST_STYLE_TYPE.CJK_DECIMAL; | |
| 2877 | 3329 | case 'decimal-leading-zero': |
| 2878 | - return 5 /* DECIMAL_LEADING_ZERO */; | |
| 3330 | + return LIST_STYLE_TYPE.DECIMAL_LEADING_ZERO; | |
| 2879 | 3331 | case 'lower-roman': |
| 2880 | - return 6 /* LOWER_ROMAN */; | |
| 3332 | + return LIST_STYLE_TYPE.LOWER_ROMAN; | |
| 2881 | 3333 | case 'upper-roman': |
| 2882 | - return 7 /* UPPER_ROMAN */; | |
| 3334 | + return LIST_STYLE_TYPE.UPPER_ROMAN; | |
| 2883 | 3335 | case 'lower-greek': |
| 2884 | - return 8 /* LOWER_GREEK */; | |
| 3336 | + return LIST_STYLE_TYPE.LOWER_GREEK; | |
| 2885 | 3337 | case 'lower-alpha': |
| 2886 | - return 9 /* LOWER_ALPHA */; | |
| 3338 | + return LIST_STYLE_TYPE.LOWER_ALPHA; | |
| 2887 | 3339 | case 'upper-alpha': |
| 2888 | - return 10 /* UPPER_ALPHA */; | |
| 3340 | + return LIST_STYLE_TYPE.UPPER_ALPHA; | |
| 2889 | 3341 | case 'arabic-indic': |
| 2890 | - return 11 /* ARABIC_INDIC */; | |
| 3342 | + return LIST_STYLE_TYPE.ARABIC_INDIC; | |
| 2891 | 3343 | case 'armenian': |
| 2892 | - return 12 /* ARMENIAN */; | |
| 3344 | + return LIST_STYLE_TYPE.ARMENIAN; | |
| 2893 | 3345 | case 'bengali': |
| 2894 | - return 13 /* BENGALI */; | |
| 3346 | + return LIST_STYLE_TYPE.BENGALI; | |
| 2895 | 3347 | case 'cambodian': |
| 2896 | - return 14 /* CAMBODIAN */; | |
| 3348 | + return LIST_STYLE_TYPE.CAMBODIAN; | |
| 2897 | 3349 | case 'cjk-earthly-branch': |
| 2898 | - return 15 /* CJK_EARTHLY_BRANCH */; | |
| 3350 | + return LIST_STYLE_TYPE.CJK_EARTHLY_BRANCH; | |
| 2899 | 3351 | case 'cjk-heavenly-stem': |
| 2900 | - return 16 /* CJK_HEAVENLY_STEM */; | |
| 3352 | + return LIST_STYLE_TYPE.CJK_HEAVENLY_STEM; | |
| 2901 | 3353 | case 'cjk-ideographic': |
| 2902 | - return 17 /* CJK_IDEOGRAPHIC */; | |
| 3354 | + return LIST_STYLE_TYPE.CJK_IDEOGRAPHIC; | |
| 2903 | 3355 | case 'devanagari': |
| 2904 | - return 18 /* DEVANAGARI */; | |
| 3356 | + return LIST_STYLE_TYPE.DEVANAGARI; | |
| 2905 | 3357 | case 'ethiopic-numeric': |
| 2906 | - return 19 /* ETHIOPIC_NUMERIC */; | |
| 3358 | + return LIST_STYLE_TYPE.ETHIOPIC_NUMERIC; | |
| 2907 | 3359 | case 'georgian': |
| 2908 | - return 20 /* GEORGIAN */; | |
| 3360 | + return LIST_STYLE_TYPE.GEORGIAN; | |
| 2909 | 3361 | case 'gujarati': |
| 2910 | - return 21 /* GUJARATI */; | |
| 3362 | + return LIST_STYLE_TYPE.GUJARATI; | |
| 2911 | 3363 | case 'gurmukhi': |
| 2912 | - return 22 /* GURMUKHI */; | |
| 3364 | + return LIST_STYLE_TYPE.GURMUKHI; | |
| 2913 | 3365 | case 'hebrew': |
| 2914 | - return 22 /* HEBREW */; | |
| 3366 | + return LIST_STYLE_TYPE.HEBREW; | |
| 2915 | 3367 | case 'hiragana': |
| 2916 | - return 23 /* HIRAGANA */; | |
| 3368 | + return LIST_STYLE_TYPE.HIRAGANA; | |
| 2917 | 3369 | case 'hiragana-iroha': |
| 2918 | - return 24 /* HIRAGANA_IROHA */; | |
| 3370 | + return LIST_STYLE_TYPE.HIRAGANA_IROHA; | |
| 2919 | 3371 | case 'japanese-formal': |
| 2920 | - return 25 /* JAPANESE_FORMAL */; | |
| 3372 | + return LIST_STYLE_TYPE.JAPANESE_FORMAL; | |
| 2921 | 3373 | case 'japanese-informal': |
| 2922 | - return 26 /* JAPANESE_INFORMAL */; | |
| 3374 | + return LIST_STYLE_TYPE.JAPANESE_INFORMAL; | |
| 2923 | 3375 | case 'kannada': |
| 2924 | - return 27 /* KANNADA */; | |
| 3376 | + return LIST_STYLE_TYPE.KANNADA; | |
| 2925 | 3377 | case 'katakana': |
| 2926 | - return 28 /* KATAKANA */; | |
| 3378 | + return LIST_STYLE_TYPE.KATAKANA; | |
| 2927 | 3379 | case 'katakana-iroha': |
| 2928 | - return 29 /* KATAKANA_IROHA */; | |
| 3380 | + return LIST_STYLE_TYPE.KATAKANA_IROHA; | |
| 2929 | 3381 | case 'khmer': |
| 2930 | - return 30 /* KHMER */; | |
| 3382 | + return LIST_STYLE_TYPE.KHMER; | |
| 2931 | 3383 | case 'korean-hangul-formal': |
| 2932 | - return 31 /* KOREAN_HANGUL_FORMAL */; | |
| 3384 | + return LIST_STYLE_TYPE.KOREAN_HANGUL_FORMAL; | |
| 2933 | 3385 | case 'korean-hanja-formal': |
| 2934 | - return 32 /* KOREAN_HANJA_FORMAL */; | |
| 3386 | + return LIST_STYLE_TYPE.KOREAN_HANJA_FORMAL; | |
| 2935 | 3387 | case 'korean-hanja-informal': |
| 2936 | - return 33 /* KOREAN_HANJA_INFORMAL */; | |
| 3388 | + return LIST_STYLE_TYPE.KOREAN_HANJA_INFORMAL; | |
| 2937 | 3389 | case 'lao': |
| 2938 | - return 34 /* LAO */; | |
| 3390 | + return LIST_STYLE_TYPE.LAO; | |
| 2939 | 3391 | case 'lower-armenian': |
| 2940 | - return 35 /* LOWER_ARMENIAN */; | |
| 3392 | + return LIST_STYLE_TYPE.LOWER_ARMENIAN; | |
| 2941 | 3393 | case 'malayalam': |
| 2942 | - return 36 /* MALAYALAM */; | |
| 3394 | + return LIST_STYLE_TYPE.MALAYALAM; | |
| 2943 | 3395 | case 'mongolian': |
| 2944 | - return 37 /* MONGOLIAN */; | |
| 3396 | + return LIST_STYLE_TYPE.MONGOLIAN; | |
| 2945 | 3397 | case 'myanmar': |
| 2946 | - return 38 /* MYANMAR */; | |
| 3398 | + return LIST_STYLE_TYPE.MYANMAR; | |
| 2947 | 3399 | case 'oriya': |
| 2948 | - return 39 /* ORIYA */; | |
| 3400 | + return LIST_STYLE_TYPE.ORIYA; | |
| 2949 | 3401 | case 'persian': |
| 2950 | - return 40 /* PERSIAN */; | |
| 3402 | + return LIST_STYLE_TYPE.PERSIAN; | |
| 2951 | 3403 | case 'simp-chinese-formal': |
| 2952 | - return 41 /* SIMP_CHINESE_FORMAL */; | |
| 3404 | + return LIST_STYLE_TYPE.SIMP_CHINESE_FORMAL; | |
| 2953 | 3405 | case 'simp-chinese-informal': |
| 2954 | - return 42 /* SIMP_CHINESE_INFORMAL */; | |
| 3406 | + return LIST_STYLE_TYPE.SIMP_CHINESE_INFORMAL; | |
| 2955 | 3407 | case 'tamil': |
| 2956 | - return 43 /* TAMIL */; | |
| 3408 | + return LIST_STYLE_TYPE.TAMIL; | |
| 2957 | 3409 | case 'telugu': |
| 2958 | - return 44 /* TELUGU */; | |
| 3410 | + return LIST_STYLE_TYPE.TELUGU; | |
| 2959 | 3411 | case 'thai': |
| 2960 | - return 45 /* THAI */; | |
| 3412 | + return LIST_STYLE_TYPE.THAI; | |
| 2961 | 3413 | case 'tibetan': |
| 2962 | - return 46 /* TIBETAN */; | |
| 3414 | + return LIST_STYLE_TYPE.TIBETAN; | |
| 2963 | 3415 | case 'trad-chinese-formal': |
| 2964 | - return 47 /* TRAD_CHINESE_FORMAL */; | |
| 3416 | + return LIST_STYLE_TYPE.TRAD_CHINESE_FORMAL; | |
| 2965 | 3417 | case 'trad-chinese-informal': |
| 2966 | - return 48 /* TRAD_CHINESE_INFORMAL */; | |
| 3418 | + return LIST_STYLE_TYPE.TRAD_CHINESE_INFORMAL; | |
| 2967 | 3419 | case 'upper-armenian': |
| 2968 | - return 49 /* UPPER_ARMENIAN */; | |
| 3420 | + return LIST_STYLE_TYPE.UPPER_ARMENIAN; | |
| 2969 | 3421 | case 'disclosure-open': |
| 2970 | - return 50 /* DISCLOSURE_OPEN */; | |
| 3422 | + return LIST_STYLE_TYPE.DISCLOSURE_OPEN; | |
| 2971 | 3423 | case 'disclosure-closed': |
| 2972 | - return 51 /* DISCLOSURE_CLOSED */; | |
| 3424 | + return LIST_STYLE_TYPE.DISCLOSURE_CLOSED; | |
| 2973 | 3425 | case 'none': |
| 2974 | 3426 | default: |
| 2975 | - return -1 /* NONE */; | |
| 3427 | + return LIST_STYLE_TYPE.NONE; | |
| 2976 | 3428 | } |
| 2977 | 3429 | } |
| 2978 | 3430 | }; |
| 2979 | 3431 | |
| @@ -2980,9 +3432,9 @@ | ||
| 2980 | 3432 | var marginForSide = function (side) { return ({ |
| 2981 | 3433 | name: "margin-" + side, |
| 2982 | 3434 | initialValue: '0', |
| 2983 | 3435 | prefix: false, |
| 2984 | - type: 4 /* TOKEN_VALUE */ | |
| 3436 | + type: PropertyDescriptorParsingType.TOKEN_VALUE | |
| 2985 | 3437 | }); }; |
| 2986 | 3438 | var marginTop = marginForSide('top'); |
| 2987 | 3439 | var marginRight = marginForSide('right'); |
| 2988 | 3440 | var marginBottom = marginForSide('bottom'); |
| @@ -2987,44 +3439,54 @@ | ||
| 2987 | 3439 | var marginRight = marginForSide('right'); |
| 2988 | 3440 | var marginBottom = marginForSide('bottom'); |
| 2989 | 3441 | var marginLeft = marginForSide('left'); |
| 2990 | 3442 | |
| 3443 | + var OVERFLOW; | |
| 3444 | + (function (OVERFLOW) { | |
| 3445 | + OVERFLOW[OVERFLOW["VISIBLE"] = 0] = "VISIBLE"; | |
| 3446 | + OVERFLOW[OVERFLOW["HIDDEN"] = 1] = "HIDDEN"; | |
| 3447 | + OVERFLOW[OVERFLOW["SCROLL"] = 2] = "SCROLL"; | |
| 3448 | + OVERFLOW[OVERFLOW["AUTO"] = 3] = "AUTO"; | |
| 3449 | + })(OVERFLOW || (OVERFLOW = {})); | |
| 2991 | 3450 | var overflow = { |
| 2992 | 3451 | name: 'overflow', |
| 2993 | 3452 | initialValue: 'visible', |
| 2994 | 3453 | prefix: false, |
| 2995 | - type: 1 /* LIST */, | |
| 2996 | - parse: function (_context, tokens) { | |
| 3454 | + type: PropertyDescriptorParsingType.LIST, | |
| 3455 | + parse: function (tokens) { | |
| 2997 | 3456 | return tokens.filter(isIdentToken).map(function (overflow) { |
| 2998 | 3457 | switch (overflow.value) { |
| 2999 | 3458 | case 'hidden': |
| 3000 | - return 1 /* HIDDEN */; | |
| 3459 | + return OVERFLOW.HIDDEN; | |
| 3001 | 3460 | case 'scroll': |
| 3002 | - return 2 /* SCROLL */; | |
| 3003 | - case 'clip': | |
| 3004 | - return 3 /* CLIP */; | |
| 3461 | + return OVERFLOW.SCROLL; | |
| 3005 | 3462 | case 'auto': |
| 3006 | - return 4 /* AUTO */; | |
| 3463 | + return OVERFLOW.AUTO; | |
| 3007 | 3464 | case 'visible': |
| 3008 | 3465 | default: |
| 3009 | - return 0 /* VISIBLE */; | |
| 3466 | + return OVERFLOW.VISIBLE; | |
| 3010 | 3467 | } |
| 3011 | 3468 | }); |
| 3012 | 3469 | } |
| 3013 | 3470 | }; |
| 3014 | 3471 | |
| 3472 | + var OVERFLOW_WRAP; | |
| 3473 | + (function (OVERFLOW_WRAP) { | |
| 3474 | + OVERFLOW_WRAP["NORMAL"] = "normal"; | |
| 3475 | + OVERFLOW_WRAP["BREAK_WORD"] = "break-word"; | |
| 3476 | + })(OVERFLOW_WRAP || (OVERFLOW_WRAP = {})); | |
| 3015 | 3477 | var overflowWrap = { |
| 3016 | 3478 | name: 'overflow-wrap', |
| 3017 | 3479 | initialValue: 'normal', |
| 3018 | 3480 | prefix: false, |
| 3019 | - type: 2 /* IDENT_VALUE */, | |
| 3020 | - parse: function (_context, overflow) { | |
| 3481 | + type: PropertyDescriptorParsingType.IDENT_VALUE, | |
| 3482 | + parse: function (overflow) { | |
| 3021 | 3483 | switch (overflow) { |
| 3022 | 3484 | case 'break-word': |
| 3023 | - return "break-word" /* BREAK_WORD */; | |
| 3485 | + return OVERFLOW_WRAP.BREAK_WORD; | |
| 3024 | 3486 | case 'normal': |
| 3025 | 3487 | default: |
| 3026 | - return "normal" /* NORMAL */; | |
| 3488 | + return OVERFLOW_WRAP.NORMAL; | |
| 3027 | 3489 | } |
| 3028 | 3490 | } |
| 3029 | 3491 | }; |
| 3030 | 3492 | |
| @@ -3031,9 +3493,9 @@ | ||
| 3031 | 3493 | var paddingForSide = function (side) { return ({ |
| 3032 | 3494 | name: "padding-" + side, |
| 3033 | 3495 | initialValue: '0', |
| 3034 | 3496 | prefix: false, |
| 3035 | - type: 3 /* TYPE_VALUE */, | |
| 3497 | + type: PropertyDescriptorParsingType.TYPE_VALUE, | |
| 3036 | 3498 | format: 'length-percentage' |
| 3037 | 3499 | }); }; |
| 3038 | 3500 | var paddingTop = paddingForSide('top'); |
| 3039 | 3501 | var paddingRight = paddingForSide('right'); |
| @@ -3039,44 +3501,58 @@ | ||
| 3039 | 3501 | var paddingRight = paddingForSide('right'); |
| 3040 | 3502 | var paddingBottom = paddingForSide('bottom'); |
| 3041 | 3503 | var paddingLeft = paddingForSide('left'); |
| 3042 | 3504 | |
| 3505 | + var TEXT_ALIGN; | |
| 3506 | + (function (TEXT_ALIGN) { | |
| 3507 | + TEXT_ALIGN[TEXT_ALIGN["LEFT"] = 0] = "LEFT"; | |
| 3508 | + TEXT_ALIGN[TEXT_ALIGN["CENTER"] = 1] = "CENTER"; | |
| 3509 | + TEXT_ALIGN[TEXT_ALIGN["RIGHT"] = 2] = "RIGHT"; | |
| 3510 | + })(TEXT_ALIGN || (TEXT_ALIGN = {})); | |
| 3043 | 3511 | var textAlign = { |
| 3044 | 3512 | name: 'text-align', |
| 3045 | 3513 | initialValue: 'left', |
| 3046 | 3514 | prefix: false, |
| 3047 | - type: 2 /* IDENT_VALUE */, | |
| 3048 | - parse: function (_context, textAlign) { | |
| 3515 | + type: PropertyDescriptorParsingType.IDENT_VALUE, | |
| 3516 | + parse: function (textAlign) { | |
| 3049 | 3517 | switch (textAlign) { |
| 3050 | 3518 | case 'right': |
| 3051 | - return 2 /* RIGHT */; | |
| 3519 | + return TEXT_ALIGN.RIGHT; | |
| 3052 | 3520 | case 'center': |
| 3053 | 3521 | case 'justify': |
| 3054 | - return 1 /* CENTER */; | |
| 3522 | + return TEXT_ALIGN.CENTER; | |
| 3055 | 3523 | case 'left': |
| 3056 | 3524 | default: |
| 3057 | - return 0 /* LEFT */; | |
| 3525 | + return TEXT_ALIGN.LEFT; | |
| 3058 | 3526 | } |
| 3059 | 3527 | } |
| 3060 | 3528 | }; |
| 3061 | 3529 | |
| 3530 | + var POSITION; | |
| 3531 | + (function (POSITION) { | |
| 3532 | + POSITION[POSITION["STATIC"] = 0] = "STATIC"; | |
| 3533 | + POSITION[POSITION["RELATIVE"] = 1] = "RELATIVE"; | |
| 3534 | + POSITION[POSITION["ABSOLUTE"] = 2] = "ABSOLUTE"; | |
| 3535 | + POSITION[POSITION["FIXED"] = 3] = "FIXED"; | |
| 3536 | + POSITION[POSITION["STICKY"] = 4] = "STICKY"; | |
| 3537 | + })(POSITION || (POSITION = {})); | |
| 3062 | 3538 | var position = { |
| 3063 | 3539 | name: 'position', |
| 3064 | 3540 | initialValue: 'static', |
| 3065 | 3541 | prefix: false, |
| 3066 | - type: 2 /* IDENT_VALUE */, | |
| 3067 | - parse: function (_context, position) { | |
| 3542 | + type: PropertyDescriptorParsingType.IDENT_VALUE, | |
| 3543 | + parse: function (position) { | |
| 3068 | 3544 | switch (position) { |
| 3069 | 3545 | case 'relative': |
| 3070 | - return 1 /* RELATIVE */; | |
| 3546 | + return POSITION.RELATIVE; | |
| 3071 | 3547 | case 'absolute': |
| 3072 | - return 2 /* ABSOLUTE */; | |
| 3548 | + return POSITION.ABSOLUTE; | |
| 3073 | 3549 | case 'fixed': |
| 3074 | - return 3 /* FIXED */; | |
| 3550 | + return POSITION.FIXED; | |
| 3075 | 3551 | case 'sticky': |
| 3076 | - return 4 /* STICKY */; | |
| 3552 | + return POSITION.STICKY; | |
| 3077 | 3553 | } |
| 3078 | - return 0 /* STATIC */; | |
| 3554 | + return POSITION.STATIC; | |
| 3079 | 3555 | } |
| 3080 | 3556 | }; |
| 3081 | 3557 | |
| 3082 | 3558 | var textShadow = { |
| @@ -3081,11 +3557,11 @@ | ||
| 3081 | 3557 | |
| 3082 | 3558 | var textShadow = { |
| 3083 | 3559 | name: 'text-shadow', |
| 3084 | 3560 | initialValue: 'none', |
| 3085 | - type: 1 /* LIST */, | |
| 3561 | + type: PropertyDescriptorParsingType.LIST, | |
| 3086 | 3562 | prefix: false, |
| 3087 | - parse: function (context, tokens) { | |
| 3563 | + parse: function (tokens) { | |
| 3088 | 3564 | if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) { |
| 3089 | 3565 | return []; |
| 3090 | 3566 | } |
| 3091 | 3567 | return parseFunctionArgs(tokens).map(function (values) { |
| @@ -3110,9 +3586,9 @@ | ||
| 3110 | 3586 | } |
| 3111 | 3587 | c++; |
| 3112 | 3588 | } |
| 3113 | 3589 | else { |
| 3114 | - shadow.color = color$1.parse(context, token); | |
| 3590 | + shadow.color = color.parse(token); | |
| 3115 | 3591 | } |
| 3116 | 3592 | } |
| 3117 | 3593 | return shadow; |
| 3118 | 3594 | }); |
| @@ -3118,36 +3594,43 @@ | ||
| 3118 | 3594 | }); |
| 3119 | 3595 | } |
| 3120 | 3596 | }; |
| 3121 | 3597 | |
| 3598 | + var TEXT_TRANSFORM; | |
| 3599 | + (function (TEXT_TRANSFORM) { | |
| 3600 | + TEXT_TRANSFORM[TEXT_TRANSFORM["NONE"] = 0] = "NONE"; | |
| 3601 | + TEXT_TRANSFORM[TEXT_TRANSFORM["LOWERCASE"] = 1] = "LOWERCASE"; | |
| 3602 | + TEXT_TRANSFORM[TEXT_TRANSFORM["UPPERCASE"] = 2] = "UPPERCASE"; | |
| 3603 | + TEXT_TRANSFORM[TEXT_TRANSFORM["CAPITALIZE"] = 3] = "CAPITALIZE"; | |
| 3604 | + })(TEXT_TRANSFORM || (TEXT_TRANSFORM = {})); | |
| 3122 | 3605 | var textTransform = { |
| 3123 | 3606 | name: 'text-transform', |
| 3124 | 3607 | initialValue: 'none', |
| 3125 | 3608 | prefix: false, |
| 3126 | - type: 2 /* IDENT_VALUE */, | |
| 3127 | - parse: function (_context, textTransform) { | |
| 3609 | + type: PropertyDescriptorParsingType.IDENT_VALUE, | |
| 3610 | + parse: function (textTransform) { | |
| 3128 | 3611 | switch (textTransform) { |
| 3129 | 3612 | case 'uppercase': |
| 3130 | - return 2 /* UPPERCASE */; | |
| 3613 | + return TEXT_TRANSFORM.UPPERCASE; | |
| 3131 | 3614 | case 'lowercase': |
| 3132 | - return 1 /* LOWERCASE */; | |
| 3615 | + return TEXT_TRANSFORM.LOWERCASE; | |
| 3133 | 3616 | case 'capitalize': |
| 3134 | - return 3 /* CAPITALIZE */; | |
| 3617 | + return TEXT_TRANSFORM.CAPITALIZE; | |
| 3135 | 3618 | } |
| 3136 | - return 0 /* NONE */; | |
| 3619 | + return TEXT_TRANSFORM.NONE; | |
| 3137 | 3620 | } |
| 3138 | 3621 | }; |
| 3139 | 3622 | |
| 3140 | - var transform$1 = { | |
| 3623 | + var transform = { | |
| 3141 | 3624 | name: 'transform', |
| 3142 | 3625 | initialValue: 'none', |
| 3143 | 3626 | prefix: true, |
| 3144 | - type: 0 /* VALUE */, | |
| 3145 | - parse: function (_context, token) { | |
| 3146 | - if (token.type === 20 /* IDENT_TOKEN */ && token.value === 'none') { | |
| 3627 | + type: PropertyDescriptorParsingType.VALUE, | |
| 3628 | + parse: function (token) { | |
| 3629 | + if (token.type === TokenType.IDENT_TOKEN && token.value === 'none') { | |
| 3147 | 3630 | return null; |
| 3148 | 3631 | } |
| 3149 | - if (token.type === 18 /* FUNCTION */) { | |
| 3632 | + if (token.type === TokenType.FUNCTION) { | |
| 3150 | 3633 | var transformFunction = SUPPORTED_TRANSFORM_FUNCTIONS[token.name]; |
| 3151 | 3634 | if (typeof transformFunction === 'undefined') { |
| 3152 | 3635 | throw new Error("Attempting to parse an unsupported transform function \"" + token.name + "\""); |
| 3153 | 3636 | } |
| @@ -3156,15 +3639,15 @@ | ||
| 3156 | 3639 | return null; |
| 3157 | 3640 | } |
| 3158 | 3641 | }; |
| 3159 | 3642 | var matrix = function (args) { |
| 3160 | - var values = args.filter(function (arg) { return arg.type === 17 /* NUMBER_TOKEN */; }).map(function (arg) { return arg.number; }); | |
| 3643 | + var values = args.filter(function (arg) { return arg.type === TokenType.NUMBER_TOKEN; }).map(function (arg) { return arg.number; }); | |
| 3161 | 3644 | return values.length === 6 ? values : null; |
| 3162 | 3645 | }; |
| 3163 | 3646 | // doesn't support 3D transforms at the moment |
| 3164 | 3647 | var matrix3d = function (args) { |
| 3165 | - var values = args.filter(function (arg) { return arg.type === 17 /* NUMBER_TOKEN */; }).map(function (arg) { return arg.number; }); | |
| 3166 | - var a1 = values[0], b1 = values[1]; values[2]; values[3]; var a2 = values[4], b2 = values[5]; values[6]; values[7]; values[8]; values[9]; values[10]; values[11]; var a4 = values[12], b4 = values[13]; values[14]; values[15]; | |
| 3648 | + var values = args.filter(function (arg) { return arg.type === TokenType.NUMBER_TOKEN; }).map(function (arg) { return arg.number; }); | |
| 3649 | + var a1 = values[0], b1 = values[1], _a = values[2], _b = values[3], a2 = values[4], b2 = values[5], _c = values[6], _d = values[7], _e = values[8], _f = values[9], _g = values[10], _h = values[11], a4 = values[12], b4 = values[13], _j = values[14], _k = values[15]; | |
| 3167 | 3650 | return values.length === 16 ? [a1, b1, a2, b2, a4, b4] : null; |
| 3168 | 3651 | }; |
| 3169 | 3652 | var SUPPORTED_TRANSFORM_FUNCTIONS = { |
| 3170 | 3653 | matrix: matrix, |
| @@ -3171,9 +3654,9 @@ | ||
| 3171 | 3654 | matrix3d: matrix3d |
| 3172 | 3655 | }; |
| 3173 | 3656 | |
| 3174 | 3657 | var DEFAULT_VALUE = { |
| 3175 | - type: 16 /* PERCENTAGE_TOKEN */, | |
| 3658 | + type: TokenType.PERCENTAGE_TOKEN, | |
| 3176 | 3659 | number: 50, |
| 3177 | 3660 | flags: FLAG_INTEGER |
| 3178 | 3661 | }; |
| 3179 | 3662 | var DEFAULT = [DEFAULT_VALUE, DEFAULT_VALUE]; |
| @@ -3180,10 +3663,10 @@ | ||
| 3180 | 3663 | var transformOrigin = { |
| 3181 | 3664 | name: 'transform-origin', |
| 3182 | 3665 | initialValue: '50% 50%', |
| 3183 | 3666 | prefix: true, |
| 3184 | - type: 1 /* LIST */, | |
| 3185 | - parse: function (_context, tokens) { | |
| 3667 | + type: PropertyDescriptorParsingType.LIST, | |
| 3668 | + parse: function (tokens) { | |
| 3186 | 3669 | var origins = tokens.filter(isLengthPercentage); |
| 3187 | 3670 | if (origins.length !== 2) { |
| 3188 | 3671 | return DEFAULT; |
| 3189 | 3672 | } |
| @@ -3190,22 +3673,28 @@ | ||
| 3190 | 3673 | return [origins[0], origins[1]]; |
| 3191 | 3674 | } |
| 3192 | 3675 | }; |
| 3193 | 3676 | |
| 3677 | + var VISIBILITY; | |
| 3678 | + (function (VISIBILITY) { | |
| 3679 | + VISIBILITY[VISIBILITY["VISIBLE"] = 0] = "VISIBLE"; | |
| 3680 | + VISIBILITY[VISIBILITY["HIDDEN"] = 1] = "HIDDEN"; | |
| 3681 | + VISIBILITY[VISIBILITY["COLLAPSE"] = 2] = "COLLAPSE"; | |
| 3682 | + })(VISIBILITY || (VISIBILITY = {})); | |
| 3194 | 3683 | var visibility = { |
| 3195 | 3684 | name: 'visible', |
| 3196 | 3685 | initialValue: 'none', |
| 3197 | 3686 | prefix: false, |
| 3198 | - type: 2 /* IDENT_VALUE */, | |
| 3199 | - parse: function (_context, visibility) { | |
| 3687 | + type: PropertyDescriptorParsingType.IDENT_VALUE, | |
| 3688 | + parse: function (visibility) { | |
| 3200 | 3689 | switch (visibility) { |
| 3201 | 3690 | case 'hidden': |
| 3202 | - return 1 /* HIDDEN */; | |
| 3691 | + return VISIBILITY.HIDDEN; | |
| 3203 | 3692 | case 'collapse': |
| 3204 | - return 2 /* COLLAPSE */; | |
| 3693 | + return VISIBILITY.COLLAPSE; | |
| 3205 | 3694 | case 'visible': |
| 3206 | 3695 | default: |
| 3207 | - return 0 /* VISIBLE */; | |
| 3696 | + return VISIBILITY.VISIBLE; | |
| 3208 | 3697 | } |
| 3209 | 3698 | } |
| 3210 | 3699 | }; |
| 3211 | 3700 | |
| @@ -3218,10 +3707,10 @@ | ||
| 3218 | 3707 | var wordBreak = { |
| 3219 | 3708 | name: 'word-break', |
| 3220 | 3709 | initialValue: 'normal', |
| 3221 | 3710 | prefix: false, |
| 3222 | - type: 2 /* IDENT_VALUE */, | |
| 3223 | - parse: function (_context, wordBreak) { | |
| 3711 | + type: PropertyDescriptorParsingType.IDENT_VALUE, | |
| 3712 | + parse: function (wordBreak) { | |
| 3224 | 3713 | switch (wordBreak) { |
| 3225 | 3714 | case 'break-all': |
| 3226 | 3715 | return WORD_BREAK.BREAK_ALL; |
| 3227 | 3716 | case 'keep-all': |
| @@ -3236,11 +3725,11 @@ | ||
| 3236 | 3725 | var zIndex = { |
| 3237 | 3726 | name: 'z-index', |
| 3238 | 3727 | initialValue: 'auto', |
| 3239 | 3728 | prefix: false, |
| 3240 | - type: 0 /* VALUE */, | |
| 3241 | - parse: function (_context, token) { | |
| 3242 | - if (token.type === 20 /* IDENT_TOKEN */) { | |
| 3729 | + type: PropertyDescriptorParsingType.VALUE, | |
| 3730 | + parse: function (token) { | |
| 3731 | + if (token.type === TokenType.IDENT_TOKEN) { | |
| 3243 | 3732 | return { auto: true, order: 0 }; |
| 3244 | 3733 | } |
| 3245 | 3734 | if (isNumberToken(token)) { |
| 3246 | 3735 | return { auto: false, order: token.number }; |
| @@ -3248,29 +3737,14 @@ | ||
| 3248 | 3737 | throw new Error("Invalid z-index number parsed"); |
| 3249 | 3738 | } |
| 3250 | 3739 | }; |
| 3251 | 3740 | |
| 3252 | - var time = { | |
| 3253 | - name: 'time', | |
| 3254 | - parse: function (_context, value) { | |
| 3255 | - if (value.type === 15 /* DIMENSION_TOKEN */) { | |
| 3256 | - switch (value.unit.toLowerCase()) { | |
| 3257 | - case 's': | |
| 3258 | - return 1000 * value.number; | |
| 3259 | - case 'ms': | |
| 3260 | - return value.number; | |
| 3261 | - } | |
| 3262 | - } | |
| 3263 | - throw new Error("Unsupported time type"); | |
| 3264 | - } | |
| 3265 | - }; | |
| 3266 | - | |
| 3267 | 3741 | var opacity = { |
| 3268 | 3742 | name: 'opacity', |
| 3269 | 3743 | initialValue: '1', |
| 3270 | - type: 0 /* VALUE */, | |
| 3744 | + type: PropertyDescriptorParsingType.VALUE, | |
| 3271 | 3745 | prefix: false, |
| 3272 | - parse: function (_context, token) { | |
| 3746 | + parse: function (token) { | |
| 3273 | 3747 | if (isNumberToken(token)) { |
| 3274 | 3748 | return token.number; |
| 3275 | 3749 | } |
| 3276 | 3750 | return 1; |
| @@ -3280,9 +3754,9 @@ | ||
| 3280 | 3754 | var textDecorationColor = { |
| 3281 | 3755 | name: "text-decoration-color", |
| 3282 | 3756 | initialValue: 'transparent', |
| 3283 | 3757 | prefix: false, |
| 3284 | - type: 3 /* TYPE_VALUE */, | |
| 3758 | + type: PropertyDescriptorParsingType.TYPE_VALUE, | |
| 3285 | 3759 | format: 'color' |
| 3286 | 3760 | }; |
| 3287 | 3761 | |
| 3288 | 3762 | var textDecorationLine = { |
| @@ -3288,25 +3762,25 @@ | ||
| 3288 | 3762 | var textDecorationLine = { |
| 3289 | 3763 | name: 'text-decoration-line', |
| 3290 | 3764 | initialValue: 'none', |
| 3291 | 3765 | prefix: false, |
| 3292 | - type: 1 /* LIST */, | |
| 3293 | - parse: function (_context, tokens) { | |
| 3766 | + type: PropertyDescriptorParsingType.LIST, | |
| 3767 | + parse: function (tokens) { | |
| 3294 | 3768 | return tokens |
| 3295 | 3769 | .filter(isIdentToken) |
| 3296 | 3770 | .map(function (token) { |
| 3297 | - switch (token.value) { | |
| 3298 | - case 'underline': | |
| 3299 | - return 1 /* UNDERLINE */; | |
| 3300 | - case 'overline': | |
| 3301 | - return 2 /* OVERLINE */; | |
| 3302 | - case 'line-through': | |
| 3303 | - return 3 /* LINE_THROUGH */; | |
| 3304 | - case 'none': | |
| 3305 | - return 4 /* BLINK */; | |
| 3306 | - } | |
| 3307 | - return 0 /* NONE */; | |
| 3308 | - }) | |
| 3771 | + switch (token.value) { | |
| 3772 | + case 'underline': | |
| 3773 | + return 1 /* UNDERLINE */; | |
| 3774 | + case 'overline': | |
| 3775 | + return 2 /* OVERLINE */; | |
| 3776 | + case 'line-through': | |
| 3777 | + return 3 /* LINE_THROUGH */; | |
| 3778 | + case 'none': | |
| 3779 | + return 4 /* BLINK */; | |
| 3780 | + } | |
| 3781 | + return 0 /* NONE */; | |
| 3782 | + }) | |
| 3309 | 3783 | .filter(function (line) { return line !== 0 /* NONE */; }); |
| 3310 | 3784 | } |
| 3311 | 3785 | }; |
| 3312 | 3786 | |
| @@ -3313,22 +3787,22 @@ | ||
| 3313 | 3787 | var fontFamily = { |
| 3314 | 3788 | name: "font-family", |
| 3315 | 3789 | initialValue: '', |
| 3316 | 3790 | prefix: false, |
| 3317 | - type: 1 /* LIST */, | |
| 3318 | - parse: function (_context, tokens) { | |
| 3791 | + type: PropertyDescriptorParsingType.LIST, | |
| 3792 | + parse: function (tokens) { | |
| 3319 | 3793 | var accumulator = []; |
| 3320 | 3794 | var results = []; |
| 3321 | 3795 | tokens.forEach(function (token) { |
| 3322 | 3796 | switch (token.type) { |
| 3323 | - case 20 /* IDENT_TOKEN */: | |
| 3324 | - case 0 /* STRING_TOKEN */: | |
| 3797 | + case TokenType.IDENT_TOKEN: | |
| 3798 | + case TokenType.STRING_TOKEN: | |
| 3325 | 3799 | accumulator.push(token.value); |
| 3326 | 3800 | break; |
| 3327 | - case 17 /* NUMBER_TOKEN */: | |
| 3801 | + case TokenType.NUMBER_TOKEN: | |
| 3328 | 3802 | accumulator.push(token.number.toString()); |
| 3329 | 3803 | break; |
| 3330 | - case 4 /* COMMA_TOKEN */: | |
| 3804 | + case TokenType.COMMA_TOKEN: | |
| 3331 | 3805 | results.push(accumulator.join(' ')); |
| 3332 | 3806 | accumulator.length = 0; |
| 3333 | 3807 | break; |
| 3334 | 3808 | } |
| @@ -3343,9 +3817,9 @@ | ||
| 3343 | 3817 | var fontSize = { |
| 3344 | 3818 | name: "font-size", |
| 3345 | 3819 | initialValue: '0', |
| 3346 | 3820 | prefix: false, |
| 3347 | - type: 3 /* TYPE_VALUE */, | |
| 3821 | + type: PropertyDescriptorParsingType.TYPE_VALUE, | |
| 3348 | 3822 | format: 'length' |
| 3349 | 3823 | }; |
| 3350 | 3824 | |
| 3351 | 3825 | var fontWeight = { |
| @@ -3350,11 +3824,11 @@ | ||
| 3350 | 3824 | |
| 3351 | 3825 | var fontWeight = { |
| 3352 | 3826 | name: 'font-weight', |
| 3353 | 3827 | initialValue: 'normal', |
| 3354 | - type: 0 /* VALUE */, | |
| 3828 | + type: PropertyDescriptorParsingType.VALUE, | |
| 3355 | 3829 | prefix: false, |
| 3356 | - parse: function (_context, token) { | |
| 3830 | + parse: function (token) { | |
| 3357 | 3831 | if (isNumberToken(token)) { |
| 3358 | 3832 | return token.number; |
| 3359 | 3833 | } |
| 3360 | 3834 | if (isIdentToken(token)) { |
| @@ -3372,29 +3846,35 @@ | ||
| 3372 | 3846 | |
| 3373 | 3847 | var fontVariant = { |
| 3374 | 3848 | name: 'font-variant', |
| 3375 | 3849 | initialValue: 'none', |
| 3376 | - type: 1 /* LIST */, | |
| 3850 | + type: PropertyDescriptorParsingType.LIST, | |
| 3377 | 3851 | prefix: false, |
| 3378 | - parse: function (_context, tokens) { | |
| 3852 | + parse: function (tokens) { | |
| 3379 | 3853 | return tokens.filter(isIdentToken).map(function (token) { return token.value; }); |
| 3380 | 3854 | } |
| 3381 | 3855 | }; |
| 3382 | 3856 | |
| 3857 | + var FONT_STYLE; | |
| 3858 | + (function (FONT_STYLE) { | |
| 3859 | + FONT_STYLE["NORMAL"] = "normal"; | |
| 3860 | + FONT_STYLE["ITALIC"] = "italic"; | |
| 3861 | + FONT_STYLE["OBLIQUE"] = "oblique"; | |
| 3862 | + })(FONT_STYLE || (FONT_STYLE = {})); | |
| 3383 | 3863 | var fontStyle = { |
| 3384 | 3864 | name: 'font-style', |
| 3385 | 3865 | initialValue: 'normal', |
| 3386 | 3866 | prefix: false, |
| 3387 | - type: 2 /* IDENT_VALUE */, | |
| 3388 | - parse: function (_context, overflow) { | |
| 3867 | + type: PropertyDescriptorParsingType.IDENT_VALUE, | |
| 3868 | + parse: function (overflow) { | |
| 3389 | 3869 | switch (overflow) { |
| 3390 | 3870 | case 'oblique': |
| 3391 | - return "oblique" /* OBLIQUE */; | |
| 3871 | + return FONT_STYLE.OBLIQUE; | |
| 3392 | 3872 | case 'italic': |
| 3393 | - return "italic" /* ITALIC */; | |
| 3873 | + return FONT_STYLE.ITALIC; | |
| 3394 | 3874 | case 'normal': |
| 3395 | 3875 | default: |
| 3396 | - return "normal" /* NORMAL */; | |
| 3876 | + return FONT_STYLE.NORMAL; | |
| 3397 | 3877 | } |
| 3398 | 3878 | } |
| 3399 | 3879 | }; |
| 3400 | 3880 | |
| @@ -3402,16 +3882,16 @@ | ||
| 3402 | 3882 | |
| 3403 | 3883 | var content = { |
| 3404 | 3884 | name: 'content', |
| 3405 | 3885 | initialValue: 'none', |
| 3406 | - type: 1 /* LIST */, | |
| 3886 | + type: PropertyDescriptorParsingType.LIST, | |
| 3407 | 3887 | prefix: false, |
| 3408 | - parse: function (_context, tokens) { | |
| 3888 | + parse: function (tokens) { | |
| 3409 | 3889 | if (tokens.length === 0) { |
| 3410 | 3890 | return []; |
| 3411 | 3891 | } |
| 3412 | 3892 | var first = tokens[0]; |
| 3413 | - if (first.type === 20 /* IDENT_TOKEN */ && first.value === 'none') { | |
| 3893 | + if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') { | |
| 3414 | 3894 | return []; |
| 3415 | 3895 | } |
| 3416 | 3896 | return tokens; |
| 3417 | 3897 | } |
| @@ -3420,15 +3900,15 @@ | ||
| 3420 | 3900 | var counterIncrement = { |
| 3421 | 3901 | name: 'counter-increment', |
| 3422 | 3902 | initialValue: 'none', |
| 3423 | 3903 | prefix: true, |
| 3424 | - type: 1 /* LIST */, | |
| 3425 | - parse: function (_context, tokens) { | |
| 3904 | + type: PropertyDescriptorParsingType.LIST, | |
| 3905 | + parse: function (tokens) { | |
| 3426 | 3906 | if (tokens.length === 0) { |
| 3427 | 3907 | return null; |
| 3428 | 3908 | } |
| 3429 | 3909 | var first = tokens[0]; |
| 3430 | - if (first.type === 20 /* IDENT_TOKEN */ && first.value === 'none') { | |
| 3910 | + if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') { | |
| 3431 | 3911 | return null; |
| 3432 | 3912 | } |
| 3433 | 3913 | var increments = []; |
| 3434 | 3914 | var filtered = tokens.filter(nonWhiteSpace); |
| @@ -3434,9 +3914,9 @@ | ||
| 3434 | 3914 | var filtered = tokens.filter(nonWhiteSpace); |
| 3435 | 3915 | for (var i = 0; i < filtered.length; i++) { |
| 3436 | 3916 | var counter = filtered[i]; |
| 3437 | 3917 | var next = filtered[i + 1]; |
| 3438 | - if (counter.type === 20 /* IDENT_TOKEN */) { | |
| 3918 | + if (counter.type === TokenType.IDENT_TOKEN) { | |
| 3439 | 3919 | var increment = next && isNumberToken(next) ? next.number : 1; |
| 3440 | 3920 | increments.push({ counter: counter.value, increment: increment }); |
| 3441 | 3921 | } |
| 3442 | 3922 | } |
| @@ -3447,10 +3927,10 @@ | ||
| 3447 | 3927 | var counterReset = { |
| 3448 | 3928 | name: 'counter-reset', |
| 3449 | 3929 | initialValue: 'none', |
| 3450 | 3930 | prefix: true, |
| 3451 | - type: 1 /* LIST */, | |
| 3452 | - parse: function (_context, tokens) { | |
| 3931 | + type: PropertyDescriptorParsingType.LIST, | |
| 3932 | + parse: function (tokens) { | |
| 3453 | 3933 | if (tokens.length === 0) { |
| 3454 | 3934 | return []; |
| 3455 | 3935 | } |
| 3456 | 3936 | var resets = []; |
| @@ -3466,29 +3946,19 @@ | ||
| 3466 | 3946 | return resets; |
| 3467 | 3947 | } |
| 3468 | 3948 | }; |
| 3469 | 3949 | |
| 3470 | - var duration = { | |
| 3471 | - name: 'duration', | |
| 3472 | - initialValue: '0s', | |
| 3473 | - prefix: false, | |
| 3474 | - type: 1 /* LIST */, | |
| 3475 | - parse: function (context, tokens) { | |
| 3476 | - return tokens.filter(isDimensionToken).map(function (token) { return time.parse(context, token); }); | |
| 3477 | - } | |
| 3478 | - }; | |
| 3479 | - | |
| 3480 | 3950 | var quotes = { |
| 3481 | 3951 | name: 'quotes', |
| 3482 | 3952 | initialValue: 'none', |
| 3483 | 3953 | prefix: true, |
| 3484 | - type: 1 /* LIST */, | |
| 3485 | - parse: function (_context, tokens) { | |
| 3954 | + type: PropertyDescriptorParsingType.LIST, | |
| 3955 | + parse: function (tokens) { | |
| 3486 | 3956 | if (tokens.length === 0) { |
| 3487 | 3957 | return null; |
| 3488 | 3958 | } |
| 3489 | 3959 | var first = tokens[0]; |
| 3490 | - if (first.type === 20 /* IDENT_TOKEN */ && first.value === 'none') { | |
| 3960 | + if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') { | |
| 3491 | 3961 | return null; |
| 3492 | 3962 | } |
| 3493 | 3963 | var quotes = []; |
| 3494 | 3964 | var filtered = tokens.filter(isStringToken); |
| @@ -3516,11 +3986,11 @@ | ||
| 3516 | 3986 | |
| 3517 | 3987 | var boxShadow = { |
| 3518 | 3988 | name: 'box-shadow', |
| 3519 | 3989 | initialValue: 'none', |
| 3520 | - type: 1 /* LIST */, | |
| 3990 | + type: PropertyDescriptorParsingType.LIST, | |
| 3521 | 3991 | prefix: false, |
| 3522 | - parse: function (context, tokens) { | |
| 3992 | + parse: function (tokens) { | |
| 3523 | 3993 | if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) { |
| 3524 | 3994 | return []; |
| 3525 | 3995 | } |
| 3526 | 3996 | return parseFunctionArgs(tokens).map(function (values) { |
| @@ -3553,9 +4023,9 @@ | ||
| 3553 | 4023 | } |
| 3554 | 4024 | c++; |
| 3555 | 4025 | } |
| 3556 | 4026 | else { |
| 3557 | - shadow.color = color$1.parse(context, token); | |
| 4027 | + shadow.color = color.parse(token); | |
| 3558 | 4028 | } |
| 3559 | 4029 | } |
| 3560 | 4030 | return shadow; |
| 3561 | 4031 | }); |
| @@ -3561,132 +4031,75 @@ | ||
| 3561 | 4031 | }); |
| 3562 | 4032 | } |
| 3563 | 4033 | }; |
| 3564 | 4034 | |
| 3565 | - var paintOrder = { | |
| 3566 | - name: 'paint-order', | |
| 3567 | - initialValue: 'normal', | |
| 3568 | - prefix: false, | |
| 3569 | - type: 1 /* LIST */, | |
| 3570 | - parse: function (_context, tokens) { | |
| 3571 | - var DEFAULT_VALUE = [0 /* FILL */, 1 /* STROKE */, 2 /* MARKERS */]; | |
| 3572 | - var layers = []; | |
| 3573 | - tokens.filter(isIdentToken).forEach(function (token) { | |
| 3574 | - switch (token.value) { | |
| 3575 | - case 'stroke': | |
| 3576 | - layers.push(1 /* STROKE */); | |
| 3577 | - break; | |
| 3578 | - case 'fill': | |
| 3579 | - layers.push(0 /* FILL */); | |
| 3580 | - break; | |
| 3581 | - case 'markers': | |
| 3582 | - layers.push(2 /* MARKERS */); | |
| 3583 | - break; | |
| 3584 | - } | |
| 3585 | - }); | |
| 3586 | - DEFAULT_VALUE.forEach(function (value) { | |
| 3587 | - if (layers.indexOf(value) === -1) { | |
| 3588 | - layers.push(value); | |
| 3589 | - } | |
| 3590 | - }); | |
| 3591 | - return layers; | |
| 3592 | - } | |
| 3593 | - }; | |
| 3594 | - | |
| 3595 | - var webkitTextStrokeColor = { | |
| 3596 | - name: "-webkit-text-stroke-color", | |
| 3597 | - initialValue: 'currentcolor', | |
| 3598 | - prefix: false, | |
| 3599 | - type: 3 /* TYPE_VALUE */, | |
| 3600 | - format: 'color' | |
| 3601 | - }; | |
| 3602 | - | |
| 3603 | - var webkitTextStrokeWidth = { | |
| 3604 | - name: "-webkit-text-stroke-width", | |
| 3605 | - initialValue: '0', | |
| 3606 | - type: 0 /* VALUE */, | |
| 3607 | - prefix: false, | |
| 3608 | - parse: function (_context, token) { | |
| 3609 | - if (isDimensionToken(token)) { | |
| 3610 | - return token.number; | |
| 3611 | - } | |
| 3612 | - return 0; | |
| 3613 | - } | |
| 3614 | - }; | |
| 3615 | - | |
| 3616 | 4035 | var CSSParsedDeclaration = /** @class */ (function () { |
| 3617 | - function CSSParsedDeclaration(context, declaration) { | |
| 3618 | - var _a, _b; | |
| 3619 | - this.animationDuration = parse(context, duration, declaration.animationDuration); | |
| 3620 | - this.backgroundClip = parse(context, backgroundClip, declaration.backgroundClip); | |
| 3621 | - this.backgroundColor = parse(context, backgroundColor, declaration.backgroundColor); | |
| 3622 | - this.backgroundImage = parse(context, backgroundImage, declaration.backgroundImage); | |
| 3623 | - this.backgroundOrigin = parse(context, backgroundOrigin, declaration.backgroundOrigin); | |
| 3624 | - this.backgroundPosition = parse(context, backgroundPosition, declaration.backgroundPosition); | |
| 3625 | - this.backgroundRepeat = parse(context, backgroundRepeat, declaration.backgroundRepeat); | |
| 3626 | - this.backgroundSize = parse(context, backgroundSize, declaration.backgroundSize); | |
| 3627 | - this.borderTopColor = parse(context, borderTopColor, declaration.borderTopColor); | |
| 3628 | - this.borderRightColor = parse(context, borderRightColor, declaration.borderRightColor); | |
| 3629 | - this.borderBottomColor = parse(context, borderBottomColor, declaration.borderBottomColor); | |
| 3630 | - this.borderLeftColor = parse(context, borderLeftColor, declaration.borderLeftColor); | |
| 3631 | - this.borderTopLeftRadius = parse(context, borderTopLeftRadius, declaration.borderTopLeftRadius); | |
| 3632 | - this.borderTopRightRadius = parse(context, borderTopRightRadius, declaration.borderTopRightRadius); | |
| 3633 | - this.borderBottomRightRadius = parse(context, borderBottomRightRadius, declaration.borderBottomRightRadius); | |
| 3634 | - this.borderBottomLeftRadius = parse(context, borderBottomLeftRadius, declaration.borderBottomLeftRadius); | |
| 3635 | - this.borderTopStyle = parse(context, borderTopStyle, declaration.borderTopStyle); | |
| 3636 | - this.borderRightStyle = parse(context, borderRightStyle, declaration.borderRightStyle); | |
| 3637 | - this.borderBottomStyle = parse(context, borderBottomStyle, declaration.borderBottomStyle); | |
| 3638 | - this.borderLeftStyle = parse(context, borderLeftStyle, declaration.borderLeftStyle); | |
| 3639 | - this.borderTopWidth = parse(context, borderTopWidth, declaration.borderTopWidth); | |
| 3640 | - this.borderRightWidth = parse(context, borderRightWidth, declaration.borderRightWidth); | |
| 3641 | - this.borderBottomWidth = parse(context, borderBottomWidth, declaration.borderBottomWidth); | |
| 3642 | - this.borderLeftWidth = parse(context, borderLeftWidth, declaration.borderLeftWidth); | |
| 3643 | - this.boxShadow = parse(context, boxShadow, declaration.boxShadow); | |
| 3644 | - this.color = parse(context, color, declaration.color); | |
| 3645 | - this.direction = parse(context, direction, declaration.direction); | |
| 3646 | - this.display = parse(context, display, declaration.display); | |
| 3647 | - this.float = parse(context, float, declaration.cssFloat); | |
| 3648 | - this.fontFamily = parse(context, fontFamily, declaration.fontFamily); | |
| 3649 | - this.fontSize = parse(context, fontSize, declaration.fontSize); | |
| 3650 | - this.fontStyle = parse(context, fontStyle, declaration.fontStyle); | |
| 3651 | - this.fontVariant = parse(context, fontVariant, declaration.fontVariant); | |
| 3652 | - this.fontWeight = parse(context, fontWeight, declaration.fontWeight); | |
| 3653 | - this.letterSpacing = parse(context, letterSpacing, declaration.letterSpacing); | |
| 3654 | - this.lineBreak = parse(context, lineBreak, declaration.lineBreak); | |
| 3655 | - this.lineHeight = parse(context, lineHeight, declaration.lineHeight); | |
| 3656 | - this.listStyleImage = parse(context, listStyleImage, declaration.listStyleImage); | |
| 3657 | - this.listStylePosition = parse(context, listStylePosition, declaration.listStylePosition); | |
| 3658 | - this.listStyleType = parse(context, listStyleType, declaration.listStyleType); | |
| 3659 | - this.marginTop = parse(context, marginTop, declaration.marginTop); | |
| 3660 | - this.marginRight = parse(context, marginRight, declaration.marginRight); | |
| 3661 | - this.marginBottom = parse(context, marginBottom, declaration.marginBottom); | |
| 3662 | - this.marginLeft = parse(context, marginLeft, declaration.marginLeft); | |
| 3663 | - this.opacity = parse(context, opacity, declaration.opacity); | |
| 3664 | - var overflowTuple = parse(context, overflow, declaration.overflow); | |
| 4036 | + function CSSParsedDeclaration(declaration) { | |
| 4037 | + this.backgroundClip = parse(backgroundClip, declaration.backgroundClip); | |
| 4038 | + this.backgroundColor = parse(backgroundColor, declaration.backgroundColor); | |
| 4039 | + this.backgroundImage = parse(backgroundImage, declaration.backgroundImage); | |
| 4040 | + this.backgroundOrigin = parse(backgroundOrigin, declaration.backgroundOrigin); | |
| 4041 | + this.backgroundPosition = parse(backgroundPosition, declaration.backgroundPosition); | |
| 4042 | + this.backgroundRepeat = parse(backgroundRepeat, declaration.backgroundRepeat); | |
| 4043 | + this.backgroundSize = parse(backgroundSize, declaration.backgroundSize); | |
| 4044 | + this.borderTopColor = parse(borderTopColor, declaration.borderTopColor); | |
| 4045 | + this.borderRightColor = parse(borderRightColor, declaration.borderRightColor); | |
| 4046 | + this.borderBottomColor = parse(borderBottomColor, declaration.borderBottomColor); | |
| 4047 | + this.borderLeftColor = parse(borderLeftColor, declaration.borderLeftColor); | |
| 4048 | + this.borderTopLeftRadius = parse(borderTopLeftRadius, declaration.borderTopLeftRadius); | |
| 4049 | + this.borderTopRightRadius = parse(borderTopRightRadius, declaration.borderTopRightRadius); | |
| 4050 | + this.borderBottomRightRadius = parse(borderBottomRightRadius, declaration.borderBottomRightRadius); | |
| 4051 | + this.borderBottomLeftRadius = parse(borderBottomLeftRadius, declaration.borderBottomLeftRadius); | |
| 4052 | + this.borderTopStyle = parse(borderTopStyle, declaration.borderTopStyle); | |
| 4053 | + this.borderRightStyle = parse(borderRightStyle, declaration.borderRightStyle); | |
| 4054 | + this.borderBottomStyle = parse(borderBottomStyle, declaration.borderBottomStyle); | |
| 4055 | + this.borderLeftStyle = parse(borderLeftStyle, declaration.borderLeftStyle); | |
| 4056 | + this.borderTopWidth = parse(borderTopWidth, declaration.borderTopWidth); | |
| 4057 | + this.borderRightWidth = parse(borderRightWidth, declaration.borderRightWidth); | |
| 4058 | + this.borderBottomWidth = parse(borderBottomWidth, declaration.borderBottomWidth); | |
| 4059 | + this.borderLeftWidth = parse(borderLeftWidth, declaration.borderLeftWidth); | |
| 4060 | + this.boxShadow = parse(boxShadow, declaration.boxShadow); | |
| 4061 | + this.color = parse(color$1, declaration.color); | |
| 4062 | + this.display = parse(display, declaration.display); | |
| 4063 | + this.float = parse(float, declaration.cssFloat); | |
| 4064 | + this.fontFamily = parse(fontFamily, declaration.fontFamily); | |
| 4065 | + this.fontSize = parse(fontSize, declaration.fontSize); | |
| 4066 | + this.fontStyle = parse(fontStyle, declaration.fontStyle); | |
| 4067 | + this.fontVariant = parse(fontVariant, declaration.fontVariant); | |
| 4068 | + this.fontWeight = parse(fontWeight, declaration.fontWeight); | |
| 4069 | + this.letterSpacing = parse(letterSpacing, declaration.letterSpacing); | |
| 4070 | + this.lineBreak = parse(lineBreak, declaration.lineBreak); | |
| 4071 | + this.lineHeight = parse(lineHeight, declaration.lineHeight); | |
| 4072 | + this.listStyleImage = parse(listStyleImage, declaration.listStyleImage); | |
| 4073 | + this.listStylePosition = parse(listStylePosition, declaration.listStylePosition); | |
| 4074 | + this.listStyleType = parse(listStyleType, declaration.listStyleType); | |
| 4075 | + this.marginTop = parse(marginTop, declaration.marginTop); | |
| 4076 | + this.marginRight = parse(marginRight, declaration.marginRight); | |
| 4077 | + this.marginBottom = parse(marginBottom, declaration.marginBottom); | |
| 4078 | + this.marginLeft = parse(marginLeft, declaration.marginLeft); | |
| 4079 | + this.opacity = parse(opacity, declaration.opacity); | |
| 4080 | + var overflowTuple = parse(overflow, declaration.overflow); | |
| 3665 | 4081 | this.overflowX = overflowTuple[0]; |
| 3666 | 4082 | this.overflowY = overflowTuple[overflowTuple.length > 1 ? 1 : 0]; |
| 3667 | - this.overflowWrap = parse(context, overflowWrap, declaration.overflowWrap); | |
| 3668 | - this.paddingTop = parse(context, paddingTop, declaration.paddingTop); | |
| 3669 | - this.paddingRight = parse(context, paddingRight, declaration.paddingRight); | |
| 3670 | - this.paddingBottom = parse(context, paddingBottom, declaration.paddingBottom); | |
| 3671 | - this.paddingLeft = parse(context, paddingLeft, declaration.paddingLeft); | |
| 3672 | - this.paintOrder = parse(context, paintOrder, declaration.paintOrder); | |
| 3673 | - this.position = parse(context, position, declaration.position); | |
| 3674 | - this.textAlign = parse(context, textAlign, declaration.textAlign); | |
| 3675 | - this.textDecorationColor = parse(context, textDecorationColor, (_a = declaration.textDecorationColor) !== null && _a !== void 0 ? _a : declaration.color); | |
| 3676 | - this.textDecorationLine = parse(context, textDecorationLine, (_b = declaration.textDecorationLine) !== null && _b !== void 0 ? _b : declaration.textDecoration); | |
| 3677 | - this.textShadow = parse(context, textShadow, declaration.textShadow); | |
| 3678 | - this.textTransform = parse(context, textTransform, declaration.textTransform); | |
| 3679 | - this.transform = parse(context, transform$1, declaration.transform); | |
| 3680 | - this.transformOrigin = parse(context, transformOrigin, declaration.transformOrigin); | |
| 3681 | - this.visibility = parse(context, visibility, declaration.visibility); | |
| 3682 | - this.webkitTextStrokeColor = parse(context, webkitTextStrokeColor, declaration.webkitTextStrokeColor); | |
| 3683 | - this.webkitTextStrokeWidth = parse(context, webkitTextStrokeWidth, declaration.webkitTextStrokeWidth); | |
| 3684 | - this.wordBreak = parse(context, wordBreak, declaration.wordBreak); | |
| 3685 | - this.zIndex = parse(context, zIndex, declaration.zIndex); | |
| 4083 | + this.overflowWrap = parse(overflowWrap, declaration.overflowWrap); | |
| 4084 | + this.paddingTop = parse(paddingTop, declaration.paddingTop); | |
| 4085 | + this.paddingRight = parse(paddingRight, declaration.paddingRight); | |
| 4086 | + this.paddingBottom = parse(paddingBottom, declaration.paddingBottom); | |
| 4087 | + this.paddingLeft = parse(paddingLeft, declaration.paddingLeft); | |
| 4088 | + this.position = parse(position, declaration.position); | |
| 4089 | + this.textAlign = parse(textAlign, declaration.textAlign); | |
| 4090 | + this.textDecorationColor = parse(textDecorationColor, declaration.textDecorationColor || declaration.color); | |
| 4091 | + this.textDecorationLine = parse(textDecorationLine, declaration.textDecorationLine); | |
| 4092 | + this.textShadow = parse(textShadow, declaration.textShadow); | |
| 4093 | + this.textTransform = parse(textTransform, declaration.textTransform); | |
| 4094 | + this.transform = parse(transform, declaration.transform); | |
| 4095 | + this.transformOrigin = parse(transformOrigin, declaration.transformOrigin); | |
| 4096 | + this.visibility = parse(visibility, declaration.visibility); | |
| 4097 | + this.wordBreak = parse(wordBreak, declaration.wordBreak); | |
| 4098 | + this.zIndex = parse(zIndex, declaration.zIndex); | |
| 3686 | 4099 | } |
| 3687 | 4100 | CSSParsedDeclaration.prototype.isVisible = function () { |
| 3688 | - return this.display > 0 && this.opacity > 0 && this.visibility === 0 /* VISIBLE */; | |
| 4101 | + return this.display > 0 && this.opacity > 0 && this.visibility === VISIBILITY.VISIBLE; | |
| 3689 | 4102 | }; |
| 3690 | 4103 | CSSParsedDeclaration.prototype.isTransparent = function () { |
| 3691 | 4104 | return isTransparent(this.backgroundColor); |
| 3692 | 4105 | }; |
| @@ -3693,15 +4106,15 @@ | ||
| 3693 | 4106 | CSSParsedDeclaration.prototype.isTransformed = function () { |
| 3694 | 4107 | return this.transform !== null; |
| 3695 | 4108 | }; |
| 3696 | 4109 | CSSParsedDeclaration.prototype.isPositioned = function () { |
| 3697 | - return this.position !== 0 /* STATIC */; | |
| 4110 | + return this.position !== POSITION.STATIC; | |
| 3698 | 4111 | }; |
| 3699 | 4112 | CSSParsedDeclaration.prototype.isPositionedWithZIndex = function () { |
| 3700 | 4113 | return this.isPositioned() && !this.zIndex.auto; |
| 3701 | 4114 | }; |
| 3702 | 4115 | CSSParsedDeclaration.prototype.isFloating = function () { |
| 3703 | - return this.float !== 0 /* NONE */; | |
| 4116 | + return this.float !== FLOAT.NONE; | |
| 3704 | 4117 | }; |
| 3705 | 4118 | CSSParsedDeclaration.prototype.isInlineLevel = function () { |
| 3706 | 4119 | return (contains(this.display, 4 /* INLINE */) || |
| 3707 | 4120 | contains(this.display, 33554432 /* INLINE_BLOCK */) || |
| @@ -3712,45 +4125,45 @@ | ||
| 3712 | 4125 | }; |
| 3713 | 4126 | return CSSParsedDeclaration; |
| 3714 | 4127 | }()); |
| 3715 | 4128 | var CSSParsedPseudoDeclaration = /** @class */ (function () { |
| 3716 | - function CSSParsedPseudoDeclaration(context, declaration) { | |
| 3717 | - this.content = parse(context, content, declaration.content); | |
| 3718 | - this.quotes = parse(context, quotes, declaration.quotes); | |
| 4129 | + function CSSParsedPseudoDeclaration(declaration) { | |
| 4130 | + this.content = parse(content, declaration.content); | |
| 4131 | + this.quotes = parse(quotes, declaration.quotes); | |
| 3719 | 4132 | } |
| 3720 | 4133 | return CSSParsedPseudoDeclaration; |
| 3721 | 4134 | }()); |
| 3722 | 4135 | var CSSParsedCounterDeclaration = /** @class */ (function () { |
| 3723 | - function CSSParsedCounterDeclaration(context, declaration) { | |
| 3724 | - this.counterIncrement = parse(context, counterIncrement, declaration.counterIncrement); | |
| 3725 | - this.counterReset = parse(context, counterReset, declaration.counterReset); | |
| 4136 | + function CSSParsedCounterDeclaration(declaration) { | |
| 4137 | + this.counterIncrement = parse(counterIncrement, declaration.counterIncrement); | |
| 4138 | + this.counterReset = parse(counterReset, declaration.counterReset); | |
| 3726 | 4139 | } |
| 3727 | 4140 | return CSSParsedCounterDeclaration; |
| 3728 | 4141 | }()); |
| 3729 | 4142 | // eslint-disable-next-line @typescript-eslint/no-explicit-any |
| 3730 | - var parse = function (context, descriptor, style) { | |
| 4143 | + var parse = function (descriptor, style) { | |
| 3731 | 4144 | var tokenizer = new Tokenizer(); |
| 3732 | 4145 | var value = style !== null && typeof style !== 'undefined' ? style.toString() : descriptor.initialValue; |
| 3733 | 4146 | tokenizer.write(value); |
| 3734 | 4147 | var parser = new Parser(tokenizer.read()); |
| 3735 | 4148 | switch (descriptor.type) { |
| 3736 | - case 2 /* IDENT_VALUE */: | |
| 4149 | + case PropertyDescriptorParsingType.IDENT_VALUE: | |
| 3737 | 4150 | var token = parser.parseComponentValue(); |
| 3738 | - return descriptor.parse(context, isIdentToken(token) ? token.value : descriptor.initialValue); | |
| 3739 | - case 0 /* VALUE */: | |
| 3740 | - return descriptor.parse(context, parser.parseComponentValue()); | |
| 3741 | - case 1 /* LIST */: | |
| 3742 | - return descriptor.parse(context, parser.parseComponentValues()); | |
| 3743 | - case 4 /* TOKEN_VALUE */: | |
| 4151 | + return descriptor.parse(isIdentToken(token) ? token.value : descriptor.initialValue); | |
| 4152 | + case PropertyDescriptorParsingType.VALUE: | |
| 4153 | + return descriptor.parse(parser.parseComponentValue()); | |
| 4154 | + case PropertyDescriptorParsingType.LIST: | |
| 4155 | + return descriptor.parse(parser.parseComponentValues()); | |
| 4156 | + case PropertyDescriptorParsingType.TOKEN_VALUE: | |
| 3744 | 4157 | return parser.parseComponentValue(); |
| 3745 | - case 3 /* TYPE_VALUE */: | |
| 4158 | + case PropertyDescriptorParsingType.TYPE_VALUE: | |
| 3746 | 4159 | switch (descriptor.format) { |
| 3747 | 4160 | case 'angle': |
| 3748 | - return angle.parse(context, parser.parseComponentValue()); | |
| 4161 | + return angle.parse(parser.parseComponentValue()); | |
| 3749 | 4162 | case 'color': |
| 3750 | - return color$1.parse(context, parser.parseComponentValue()); | |
| 4163 | + return color.parse(parser.parseComponentValue()); | |
| 3751 | 4164 | case 'image': |
| 3752 | - return image.parse(context, parser.parseComponentValue()); | |
| 4165 | + return image.parse(parser.parseComponentValue()); | |
| 3753 | 4166 | case 'length': |
| 3754 | 4167 | var length_1 = parser.parseComponentValue(); |
| 3755 | 4168 | return isLength(length_1) ? length_1 : ZERO_LENGTH; |
| 3756 | 4169 | case 'length-percentage': |
| @@ -3755,624 +4168,28 @@ | ||
| 3755 | 4168 | return isLength(length_1) ? length_1 : ZERO_LENGTH; |
| 3756 | 4169 | case 'length-percentage': |
| 3757 | 4170 | var value_1 = parser.parseComponentValue(); |
| 3758 | 4171 | return isLengthPercentage(value_1) ? value_1 : ZERO_LENGTH; |
| 3759 | - case 'time': | |
| 3760 | - return time.parse(context, parser.parseComponentValue()); | |
| 3761 | 4172 | } |
| 3762 | - break; | |
| 3763 | 4173 | } |
| 4174 | + throw new Error("Attempting to parse unsupported css format type " + descriptor.format); | |
| 3764 | 4175 | }; |
| 3765 | 4176 | |
| 3766 | - var elementDebuggerAttribute = 'data-html2canvas-debug'; | |
| 3767 | - var getElementDebugType = function (element) { | |
| 3768 | - var attribute = element.getAttribute(elementDebuggerAttribute); | |
| 3769 | - switch (attribute) { | |
| 3770 | - case 'all': | |
| 3771 | - return 1 /* ALL */; | |
| 3772 | - case 'clone': | |
| 3773 | - return 2 /* CLONE */; | |
| 3774 | - case 'parse': | |
| 3775 | - return 3 /* PARSE */; | |
| 3776 | - case 'render': | |
| 3777 | - return 4 /* RENDER */; | |
| 3778 | - default: | |
| 3779 | - return 0 /* NONE */; | |
| 3780 | - } | |
| 3781 | - }; | |
| 3782 | - var isDebugging = function (element, type) { | |
| 3783 | - var elementType = getElementDebugType(element); | |
| 3784 | - return elementType === 1 /* ALL */ || type === elementType; | |
| 3785 | - }; | |
| 3786 | - | |
| 3787 | 4177 | var ElementContainer = /** @class */ (function () { |
| 3788 | - function ElementContainer(context, element) { | |
| 3789 | - this.context = context; | |
| 4178 | + function ElementContainer(element) { | |
| 4179 | + this.styles = new CSSParsedDeclaration(window.getComputedStyle(element, null)); | |
| 3790 | 4180 | this.textNodes = []; |
| 3791 | 4181 | this.elements = []; |
| 4182 | + if (this.styles.transform !== null && isHTMLElementNode(element)) { | |
| 4183 | + // getBoundingClientRect takes transforms into account | |
| 4184 | + element.style.transform = 'none'; | |
| 4185 | + } | |
| 4186 | + this.bounds = parseBounds(element); | |
| 3792 | 4187 | this.flags = 0; |
| 3793 | - if (isDebugging(element, 3 /* PARSE */)) { | |
| 3794 | - debugger; | |
| 3795 | - } | |
| 3796 | - this.styles = new CSSParsedDeclaration(context, window.getComputedStyle(element, null)); | |
| 3797 | - if (isHTMLElementNode(element)) { | |
| 3798 | - if (this.styles.animationDuration.some(function (duration) { return duration > 0; })) { | |
| 3799 | - element.style.animationDuration = '0s'; | |
| 3800 | - } | |
| 3801 | - if (this.styles.transform !== null) { | |
| 3802 | - // getBoundingClientRect takes transforms into account | |
| 3803 | - element.style.transform = 'none'; | |
| 3804 | - } | |
| 3805 | - } | |
| 3806 | - this.bounds = parseBounds(this.context, element); | |
| 3807 | - if (isDebugging(element, 4 /* RENDER */)) { | |
| 3808 | - this.flags |= 16 /* DEBUG_RENDER */; | |
| 3809 | - } | |
| 3810 | 4188 | } |
| 3811 | 4189 | return ElementContainer; |
| 3812 | 4190 | }()); |
| 3813 | 4191 | |
| 3814 | - /* | |
| 3815 | - * text-segmentation 1.0.3 <https://github.com/niklasvh/text-segmentation> | |
| 3816 | - * Copyright (c) 2022 Niklas von Hertzen <https://hertzen.com> | |
| 3817 | - * Released under MIT License | |
| 3818 | - */ | |
| 3819 | - var base64 = 'AAAAAAAAAAAAEA4AGBkAAFAaAAACAAAAAAAIABAAGAAwADgACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAAQABIAEQATAAIABAACAAQAAgAEAAIABAAVABcAAgAEAAIABAACAAQAGAAaABwAHgAgACIAI4AlgAIABAAmwCjAKgAsAC2AL4AvQDFAMoA0gBPAVYBWgEIAAgACACMANoAYgFkAWwBdAF8AX0BhQGNAZUBlgGeAaMBlQGWAasBswF8AbsBwwF0AcsBYwHTAQgA2wG/AOMBdAF8AekB8QF0AfkB+wHiAHQBfAEIAAMC5gQIAAsCEgIIAAgAFgIeAggAIgIpAggAMQI5AkACygEIAAgASAJQAlgCYAIIAAgACAAKBQoFCgUTBRMFGQUrBSsFCAAIAAgACAAIAAgACAAIAAgACABdAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABoAmgCrwGvAQgAbgJ2AggAHgEIAAgACADnAXsCCAAIAAgAgwIIAAgACAAIAAgACACKAggAkQKZAggAPADJAAgAoQKkAqwCsgK6AsICCADJAggA0AIIAAgACAAIANYC3gIIAAgACAAIAAgACABAAOYCCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAkASoB+QIEAAgACAA8AEMCCABCBQgACABJBVAFCAAIAAgACAAIAAgACAAIAAgACABTBVoFCAAIAFoFCABfBWUFCAAIAAgACAAIAAgAbQUIAAgACAAIAAgACABzBXsFfQWFBYoFigWKBZEFigWKBYoFmAWfBaYFrgWxBbkFCAAIAAgACAAIAAgACAAIAAgACAAIAMEFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAMgFCADQBQgACAAIAAgACAAIAAgACAAIAAgACAAIAO4CCAAIAAgAiQAIAAgACABAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAD0AggACAD8AggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIANYFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAMDvwAIAAgAJAIIAAgACAAIAAgACAAIAAgACwMTAwgACAB9BOsEGwMjAwgAKwMyAwsFYgE3A/MEPwMIAEUDTQNRAwgAWQOsAGEDCAAIAAgACAAIAAgACABpAzQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFIQUoBSwFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABtAwgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABMAEwACAAIAAgACAAIABgACAAIAAgACAC/AAgACAAyAQgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACAAIAAwAAgACAAIAAgACAAIAAgACAAIAAAARABIAAgACAAIABQASAAIAAgAIABwAEAAjgCIABsAqAC2AL0AigDQAtwC+IJIQqVAZUBWQqVAZUBlQGVAZUBlQGrC5UBlQGVAZUBlQGVAZUBlQGVAXsKlQGVAbAK6wsrDGUMpQzlDJUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAfAKAAuZA64AtwCJALoC6ADwAAgAuACgA/oEpgO6AqsD+AAIAAgAswMIAAgACAAIAIkAuwP5AfsBwwPLAwgACAAIAAgACADRA9kDCAAIAOED6QMIAAgACAAIAAgACADuA/YDCAAIAP4DyQAIAAgABgQIAAgAXQAOBAgACAAIAAgACAAIABMECAAIAAgACAAIAAgACAD8AAQBCAAIAAgAGgQiBCoECAExBAgAEAEIAAgACAAIAAgACAAIAAgACAAIAAgACAA4BAgACABABEYECAAIAAgATAQYAQgAVAQIAAgACAAIAAgACAAIAAgACAAIAFoECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAOQEIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAB+BAcACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEABhgSMBAgACAAIAAgAlAQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAwAEAAQABAADAAMAAwADAAQABAAEAAQABAAEAAQABHATAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAdQMIAAgACAAIAAgACAAIAMkACAAIAAgAfQMIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACFA4kDCAAIAAgACAAIAOcBCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAIcDCAAIAAgACAAIAAgACAAIAAgACAAIAJEDCAAIAAgACADFAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABgBAgAZgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAbAQCBXIECAAIAHkECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAJwEQACjBKoEsgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAC6BMIECAAIAAgACAAIAAgACABmBAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAxwQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAGYECAAIAAgAzgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBd0FXwUIAOIF6gXxBYoF3gT5BQAGCAaKBYoFigWKBYoFigWKBYoFigWKBYoFigXWBIoFigWKBYoFigWKBYoFigWKBYsFEAaKBYoFigWKBYoFigWKBRQGCACKBYoFigWKBQgACAAIANEECAAIABgGigUgBggAJgYIAC4GMwaKBYoF0wQ3Bj4GigWKBYoFigWKBYoFigWKBYoFigWKBYoFigUIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWLBf///////wQABAAEAAQABAAEAAQABAAEAAQAAwAEAAQAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAQADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUAAAAFAAUAAAAFAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAQAAAAUABQAFAAUABQAFAAAAAAAFAAUAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAFAAUAAQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAAABwAHAAcAAAAHAAcABwAFAAEAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAcABwAFAAUAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQABAAAAAAAAAAAAAAAFAAUABQAFAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAHAAcAAAAHAAcAAAAAAAUABQAHAAUAAQAHAAEABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwABAAUABQAFAAUAAAAAAAAAAAAAAAEAAQABAAEAAQABAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABQANAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAABQAHAAUABQAFAAAAAAAAAAcABQAFAAUABQAFAAQABAAEAAQABAAEAAQABAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUAAAAFAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAUAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAcABwAFAAcABwAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUABwAHAAUABQAFAAUAAAAAAAcABwAAAAAABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAAAAAAAAAAABQAFAAAAAAAFAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAFAAUABQAFAAUAAAAFAAUABwAAAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABwAFAAUABQAFAAAAAAAHAAcAAAAAAAcABwAFAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAAAAAAAAAHAAcABwAAAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAUABQAFAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAHAAcABQAHAAcAAAAFAAcABwAAAAcABwAFAAUAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAFAAcABwAFAAUABQAAAAUAAAAHAAcABwAHAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAHAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAUAAAAFAAUAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABwAFAAUABQAFAAUABQAAAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABQAFAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAFAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAHAAUABQAFAAUABQAFAAUABwAHAAcABwAHAAcABwAHAAUABwAHAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABwAHAAcABwAFAAUABwAHAAcAAAAAAAAAAAAHAAcABQAHAAcABwAHAAcABwAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAUABQAFAAUABQAFAAUAAAAFAAAABQAAAAAABQAFAAUABQAFAAUABQAFAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAUABQAFAAUABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABwAFAAcABwAHAAcABwAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAUABQAFAAUABwAHAAUABQAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABQAFAAcABwAHAAUABwAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAcABQAFAAUABQAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAAAAAABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAUABQAHAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAFAAUABQAFAAcABwAFAAUABwAHAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAcABwAFAAUABwAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABQAAAAAABQAFAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAcABwAAAAAAAAAAAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAcABwAFAAcABwAAAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAFAAUABQAAAAUABQAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABwAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAHAAcABQAHAAUABQAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAAABwAHAAAAAAAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAFAAUABwAFAAcABwAFAAcABQAFAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAAAAAABwAHAAcABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAFAAcABwAFAAUABQAFAAUABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAUABQAFAAcABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABQAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAAAAAAFAAUABwAHAAcABwAFAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAHAAUABQAFAAUABQAFAAUABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAABQAAAAUABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAHAAcAAAAFAAUAAAAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABQAFAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAABQAFAAUABQAFAAUABQAAAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAFAAUABQAFAAUADgAOAA4ADgAOAA4ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAMAAwADAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAAAAAAAAAAAAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAAAAAAAAAAAAsADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwACwAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAADgAOAA4AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAAAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4AAAAOAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAAAAAAAA4AAAAOAAAAAAAAAAAADgAOAA4AAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAA='; | |
| 3820 | - | |
| 3821 | - /* | |
| 3822 | - * utrie 1.0.2 <https://github.com/niklasvh/utrie> | |
| 3823 | - * Copyright (c) 2022 Niklas von Hertzen <https://hertzen.com> | |
| 3824 | - * Released under MIT License | |
| 3825 | - */ | |
| 3826 | - var chars$1 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; | |
| 3827 | - // Use a lookup table to find the index. | |
| 3828 | - var lookup$1 = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256); | |
| 3829 | - for (var i$1 = 0; i$1 < chars$1.length; i$1++) { | |
| 3830 | - lookup$1[chars$1.charCodeAt(i$1)] = i$1; | |
| 3831 | - } | |
| 3832 | - var decode = function (base64) { | |
| 3833 | - var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4; | |
| 3834 | - if (base64[base64.length - 1] === '=') { | |
| 3835 | - bufferLength--; | |
| 3836 | - if (base64[base64.length - 2] === '=') { | |
| 3837 | - bufferLength--; | |
| 3838 | - } | |
| 3839 | - } | |
| 3840 | - var buffer = typeof ArrayBuffer !== 'undefined' && | |
| 3841 | - typeof Uint8Array !== 'undefined' && | |
| 3842 | - typeof Uint8Array.prototype.slice !== 'undefined' | |
| 3843 | - ? new ArrayBuffer(bufferLength) | |
| 3844 | - : new Array(bufferLength); | |
| 3845 | - var bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer); | |
| 3846 | - for (i = 0; i < len; i += 4) { | |
| 3847 | - encoded1 = lookup$1[base64.charCodeAt(i)]; | |
| 3848 | - encoded2 = lookup$1[base64.charCodeAt(i + 1)]; | |
| 3849 | - encoded3 = lookup$1[base64.charCodeAt(i + 2)]; | |
| 3850 | - encoded4 = lookup$1[base64.charCodeAt(i + 3)]; | |
| 3851 | - bytes[p++] = (encoded1 << 2) | (encoded2 >> 4); | |
| 3852 | - bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2); | |
| 3853 | - bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63); | |
| 3854 | - } | |
| 3855 | - return buffer; | |
| 3856 | - }; | |
| 3857 | - var polyUint16Array = function (buffer) { | |
| 3858 | - var length = buffer.length; | |
| 3859 | - var bytes = []; | |
| 3860 | - for (var i = 0; i < length; i += 2) { | |
| 3861 | - bytes.push((buffer[i + 1] << 8) | buffer[i]); | |
| 3862 | - } | |
| 3863 | - return bytes; | |
| 3864 | - }; | |
| 3865 | - var polyUint32Array = function (buffer) { | |
| 3866 | - var length = buffer.length; | |
| 3867 | - var bytes = []; | |
| 3868 | - for (var i = 0; i < length; i += 4) { | |
| 3869 | - bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]); | |
| 3870 | - } | |
| 3871 | - return bytes; | |
| 3872 | - }; | |
| 3873 | - | |
| 3874 | - /** Shift size for getting the index-2 table offset. */ | |
| 3875 | - var UTRIE2_SHIFT_2 = 5; | |
| 3876 | - /** Shift size for getting the index-1 table offset. */ | |
| 3877 | - var UTRIE2_SHIFT_1 = 6 + 5; | |
| 3878 | - /** | |
| 3879 | - * Shift size for shifting left the index array values. | |
| 3880 | - * Increases possible data size with 16-bit index values at the cost | |
| 3881 | - * of compactability. | |
| 3882 | - * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY. | |
| 3883 | - */ | |
| 3884 | - var UTRIE2_INDEX_SHIFT = 2; | |
| 3885 | - /** | |
| 3886 | - * Difference between the two shift sizes, | |
| 3887 | - * for getting an index-1 offset from an index-2 offset. 6=11-5 | |
| 3888 | - */ | |
| 3889 | - var UTRIE2_SHIFT_1_2 = UTRIE2_SHIFT_1 - UTRIE2_SHIFT_2; | |
| 3890 | - /** | |
| 3891 | - * The part of the index-2 table for U+D800..U+DBFF stores values for | |
| 3892 | - * lead surrogate code _units_ not code _points_. | |
| 3893 | - * Values for lead surrogate code _points_ are indexed with this portion of the table. | |
| 3894 | - * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.) | |
| 3895 | - */ | |
| 3896 | - var UTRIE2_LSCP_INDEX_2_OFFSET = 0x10000 >> UTRIE2_SHIFT_2; | |
| 3897 | - /** Number of entries in a data block. 32=0x20 */ | |
| 3898 | - var UTRIE2_DATA_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_2; | |
| 3899 | - /** Mask for getting the lower bits for the in-data-block offset. */ | |
| 3900 | - var UTRIE2_DATA_MASK = UTRIE2_DATA_BLOCK_LENGTH - 1; | |
| 3901 | - var UTRIE2_LSCP_INDEX_2_LENGTH = 0x400 >> UTRIE2_SHIFT_2; | |
| 3902 | - /** Count the lengths of both BMP pieces. 2080=0x820 */ | |
| 3903 | - var UTRIE2_INDEX_2_BMP_LENGTH = UTRIE2_LSCP_INDEX_2_OFFSET + UTRIE2_LSCP_INDEX_2_LENGTH; | |
| 3904 | - /** | |
| 3905 | - * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820. | |
| 3906 | - * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2. | |
| 3907 | - */ | |
| 3908 | - var UTRIE2_UTF8_2B_INDEX_2_OFFSET = UTRIE2_INDEX_2_BMP_LENGTH; | |
| 3909 | - var UTRIE2_UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */ | |
| 3910 | - /** | |
| 3911 | - * The index-1 table, only used for supplementary code points, at offset 2112=0x840. | |
| 3912 | - * Variable length, for code points up to highStart, where the last single-value range starts. | |
| 3913 | - * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1. | |
| 3914 | - * (For 0x100000 supplementary code points U+10000..U+10ffff.) | |
| 3915 | - * | |
| 3916 | - * The part of the index-2 table for supplementary code points starts | |
| 3917 | - * after this index-1 table. | |
| 3918 | - * | |
| 3919 | - * Both the index-1 table and the following part of the index-2 table | |
| 3920 | - * are omitted completely if there is only BMP data. | |
| 3921 | - */ | |
| 3922 | - var UTRIE2_INDEX_1_OFFSET = UTRIE2_UTF8_2B_INDEX_2_OFFSET + UTRIE2_UTF8_2B_INDEX_2_LENGTH; | |
| 3923 | - /** | |
| 3924 | - * Number of index-1 entries for the BMP. 32=0x20 | |
| 3925 | - * This part of the index-1 table is omitted from the serialized form. | |
| 3926 | - */ | |
| 3927 | - var UTRIE2_OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> UTRIE2_SHIFT_1; | |
| 3928 | - /** Number of entries in an index-2 block. 64=0x40 */ | |
| 3929 | - var UTRIE2_INDEX_2_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_1_2; | |
| 3930 | - /** Mask for getting the lower bits for the in-index-2-block offset. */ | |
| 3931 | - var UTRIE2_INDEX_2_MASK = UTRIE2_INDEX_2_BLOCK_LENGTH - 1; | |
| 3932 | - var slice16 = function (view, start, end) { | |
| 3933 | - if (view.slice) { | |
| 3934 | - return view.slice(start, end); | |
| 3935 | - } | |
| 3936 | - return new Uint16Array(Array.prototype.slice.call(view, start, end)); | |
| 3937 | - }; | |
| 3938 | - var slice32 = function (view, start, end) { | |
| 3939 | - if (view.slice) { | |
| 3940 | - return view.slice(start, end); | |
| 3941 | - } | |
| 3942 | - return new Uint32Array(Array.prototype.slice.call(view, start, end)); | |
| 3943 | - }; | |
| 3944 | - var createTrieFromBase64 = function (base64, _byteLength) { | |
| 3945 | - var buffer = decode(base64); | |
| 3946 | - var view32 = Array.isArray(buffer) ? polyUint32Array(buffer) : new Uint32Array(buffer); | |
| 3947 | - var view16 = Array.isArray(buffer) ? polyUint16Array(buffer) : new Uint16Array(buffer); | |
| 3948 | - var headerLength = 24; | |
| 3949 | - var index = slice16(view16, headerLength / 2, view32[4] / 2); | |
| 3950 | - var data = view32[5] === 2 | |
| 3951 | - ? slice16(view16, (headerLength + view32[4]) / 2) | |
| 3952 | - : slice32(view32, Math.ceil((headerLength + view32[4]) / 4)); | |
| 3953 | - return new Trie(view32[0], view32[1], view32[2], view32[3], index, data); | |
| 3954 | - }; | |
| 3955 | - var Trie = /** @class */ (function () { | |
| 3956 | - function Trie(initialValue, errorValue, highStart, highValueIndex, index, data) { | |
| 3957 | - this.initialValue = initialValue; | |
| 3958 | - this.errorValue = errorValue; | |
| 3959 | - this.highStart = highStart; | |
| 3960 | - this.highValueIndex = highValueIndex; | |
| 3961 | - this.index = index; | |
| 3962 | - this.data = data; | |
| 3963 | - } | |
| 3964 | - /** | |
| 3965 | - * Get the value for a code point as stored in the Trie. | |
| 3966 | - * | |
| 3967 | - * @param codePoint the code point | |
| 3968 | - * @return the value | |
| 3969 | - */ | |
| 3970 | - Trie.prototype.get = function (codePoint) { | |
| 3971 | - var ix; | |
| 3972 | - if (codePoint >= 0) { | |
| 3973 | - if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) { | |
| 3974 | - // Ordinary BMP code point, excluding leading surrogates. | |
| 3975 | - // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index. | |
| 3976 | - // 16 bit data is stored in the index array itself. | |
| 3977 | - ix = this.index[codePoint >> UTRIE2_SHIFT_2]; | |
| 3978 | - ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK); | |
| 3979 | - return this.data[ix]; | |
| 3980 | - } | |
| 3981 | - if (codePoint <= 0xffff) { | |
| 3982 | - // Lead Surrogate Code Point. A Separate index section is stored for | |
| 3983 | - // lead surrogate code units and code points. | |
| 3984 | - // The main index has the code unit data. | |
| 3985 | - // For this function, we need the code point data. | |
| 3986 | - // Note: this expression could be refactored for slightly improved efficiency, but | |
| 3987 | - // surrogate code points will be so rare in practice that it's not worth it. | |
| 3988 | - ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2)]; | |
| 3989 | - ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK); | |
| 3990 | - return this.data[ix]; | |
| 3991 | - } | |
| 3992 | - if (codePoint < this.highStart) { | |
| 3993 | - // Supplemental code point, use two-level lookup. | |
| 3994 | - ix = UTRIE2_INDEX_1_OFFSET - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH + (codePoint >> UTRIE2_SHIFT_1); | |
| 3995 | - ix = this.index[ix]; | |
| 3996 | - ix += (codePoint >> UTRIE2_SHIFT_2) & UTRIE2_INDEX_2_MASK; | |
| 3997 | - ix = this.index[ix]; | |
| 3998 | - ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK); | |
| 3999 | - return this.data[ix]; | |
| 4000 | - } | |
| 4001 | - if (codePoint <= 0x10ffff) { | |
| 4002 | - return this.data[this.highValueIndex]; | |
| 4003 | - } | |
| 4004 | - } | |
| 4005 | - // Fall through. The code point is outside of the legal range of 0..0x10ffff. | |
| 4006 | - return this.errorValue; | |
| 4007 | - }; | |
| 4008 | - return Trie; | |
| 4009 | - }()); | |
| 4010 | - | |
| 4011 | - /* | |
| 4012 | - * base64-arraybuffer 1.0.2 <https://github.com/niklasvh/base64-arraybuffer> | |
| 4013 | - * Copyright (c) 2022 Niklas von Hertzen <https://hertzen.com> | |
| 4014 | - * Released under MIT License | |
| 4015 | - */ | |
| 4016 | - var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; | |
| 4017 | - // Use a lookup table to find the index. | |
| 4018 | - var lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256); | |
| 4019 | - for (var i = 0; i < chars.length; i++) { | |
| 4020 | - lookup[chars.charCodeAt(i)] = i; | |
| 4021 | - } | |
| 4022 | - | |
| 4023 | - var Prepend = 1; | |
| 4024 | - var CR = 2; | |
| 4025 | - var LF = 3; | |
| 4026 | - var Control = 4; | |
| 4027 | - var Extend = 5; | |
| 4028 | - var SpacingMark = 7; | |
| 4029 | - var L = 8; | |
| 4030 | - var V = 9; | |
| 4031 | - var T = 10; | |
| 4032 | - var LV = 11; | |
| 4033 | - var LVT = 12; | |
| 4034 | - var ZWJ = 13; | |
| 4035 | - var Extended_Pictographic = 14; | |
| 4036 | - var RI = 15; | |
| 4037 | - var toCodePoints = function (str) { | |
| 4038 | - var codePoints = []; | |
| 4039 | - var i = 0; | |
| 4040 | - var length = str.length; | |
| 4041 | - while (i < length) { | |
| 4042 | - var value = str.charCodeAt(i++); | |
| 4043 | - if (value >= 0xd800 && value <= 0xdbff && i < length) { | |
| 4044 | - var extra = str.charCodeAt(i++); | |
| 4045 | - if ((extra & 0xfc00) === 0xdc00) { | |
| 4046 | - codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000); | |
| 4047 | - } | |
| 4048 | - else { | |
| 4049 | - codePoints.push(value); | |
| 4050 | - i--; | |
| 4051 | - } | |
| 4052 | - } | |
| 4053 | - else { | |
| 4054 | - codePoints.push(value); | |
| 4055 | - } | |
| 4056 | - } | |
| 4057 | - return codePoints; | |
| 4058 | - }; | |
| 4059 | - var fromCodePoint = function () { | |
| 4060 | - var codePoints = []; | |
| 4061 | - for (var _i = 0; _i < arguments.length; _i++) { | |
| 4062 | - codePoints[_i] = arguments[_i]; | |
| 4063 | - } | |
| 4064 | - if (String.fromCodePoint) { | |
| 4065 | - return String.fromCodePoint.apply(String, codePoints); | |
| 4066 | - } | |
| 4067 | - var length = codePoints.length; | |
| 4068 | - if (!length) { | |
| 4069 | - return ''; | |
| 4070 | - } | |
| 4071 | - var codeUnits = []; | |
| 4072 | - var index = -1; | |
| 4073 | - var result = ''; | |
| 4074 | - while (++index < length) { | |
| 4075 | - var codePoint = codePoints[index]; | |
| 4076 | - if (codePoint <= 0xffff) { | |
| 4077 | - codeUnits.push(codePoint); | |
| 4078 | - } | |
| 4079 | - else { | |
| 4080 | - codePoint -= 0x10000; | |
| 4081 | - codeUnits.push((codePoint >> 10) + 0xd800, (codePoint % 0x400) + 0xdc00); | |
| 4082 | - } | |
| 4083 | - if (index + 1 === length || codeUnits.length > 0x4000) { | |
| 4084 | - result += String.fromCharCode.apply(String, codeUnits); | |
| 4085 | - codeUnits.length = 0; | |
| 4086 | - } | |
| 4087 | - } | |
| 4088 | - return result; | |
| 4089 | - }; | |
| 4090 | - var UnicodeTrie = createTrieFromBase64(base64); | |
| 4091 | - var BREAK_NOT_ALLOWED = '×'; | |
| 4092 | - var BREAK_ALLOWED = '÷'; | |
| 4093 | - var codePointToClass = function (codePoint) { return UnicodeTrie.get(codePoint); }; | |
| 4094 | - var _graphemeBreakAtIndex = function (_codePoints, classTypes, index) { | |
| 4095 | - var prevIndex = index - 2; | |
| 4096 | - var prev = classTypes[prevIndex]; | |
| 4097 | - var current = classTypes[index - 1]; | |
| 4098 | - var next = classTypes[index]; | |
| 4099 | - // GB3 Do not break between a CR and LF | |
| 4100 | - if (current === CR && next === LF) { | |
| 4101 | - return BREAK_NOT_ALLOWED; | |
| 4102 | - } | |
| 4103 | - // GB4 Otherwise, break before and after controls. | |
| 4104 | - if (current === CR || current === LF || current === Control) { | |
| 4105 | - return BREAK_ALLOWED; | |
| 4106 | - } | |
| 4107 | - // GB5 | |
| 4108 | - if (next === CR || next === LF || next === Control) { | |
| 4109 | - return BREAK_ALLOWED; | |
| 4110 | - } | |
| 4111 | - // Do not break Hangul syllable sequences. | |
| 4112 | - // GB6 | |
| 4113 | - if (current === L && [L, V, LV, LVT].indexOf(next) !== -1) { | |
| 4114 | - return BREAK_NOT_ALLOWED; | |
| 4115 | - } | |
| 4116 | - // GB7 | |
| 4117 | - if ((current === LV || current === V) && (next === V || next === T)) { | |
| 4118 | - return BREAK_NOT_ALLOWED; | |
| 4119 | - } | |
| 4120 | - // GB8 | |
| 4121 | - if ((current === LVT || current === T) && next === T) { | |
| 4122 | - return BREAK_NOT_ALLOWED; | |
| 4123 | - } | |
| 4124 | - // GB9 Do not break before extending characters or ZWJ. | |
| 4125 | - if (next === ZWJ || next === Extend) { | |
| 4126 | - return BREAK_NOT_ALLOWED; | |
| 4127 | - } | |
| 4128 | - // Do not break before SpacingMarks, or after Prepend characters. | |
| 4129 | - // GB9a | |
| 4130 | - if (next === SpacingMark) { | |
| 4131 | - return BREAK_NOT_ALLOWED; | |
| 4132 | - } | |
| 4133 | - // GB9a | |
| 4134 | - if (current === Prepend) { | |
| 4135 | - return BREAK_NOT_ALLOWED; | |
| 4136 | - } | |
| 4137 | - // GB11 Do not break within emoji modifier sequences or emoji zwj sequences. | |
| 4138 | - if (current === ZWJ && next === Extended_Pictographic) { | |
| 4139 | - while (prev === Extend) { | |
| 4140 | - prev = classTypes[--prevIndex]; | |
| 4141 | - } | |
| 4142 | - if (prev === Extended_Pictographic) { | |
| 4143 | - return BREAK_NOT_ALLOWED; | |
| 4144 | - } | |
| 4145 | - } | |
| 4146 | - // GB12 Do not break within emoji flag sequences. | |
| 4147 | - // That is, do not break between regional indicator (RI) symbols | |
| 4148 | - // if there is an odd number of RI characters before the break point. | |
| 4149 | - if (current === RI && next === RI) { | |
| 4150 | - var countRI = 0; | |
| 4151 | - while (prev === RI) { | |
| 4152 | - countRI++; | |
| 4153 | - prev = classTypes[--prevIndex]; | |
| 4154 | - } | |
| 4155 | - if (countRI % 2 === 0) { | |
| 4156 | - return BREAK_NOT_ALLOWED; | |
| 4157 | - } | |
| 4158 | - } | |
| 4159 | - return BREAK_ALLOWED; | |
| 4160 | - }; | |
| 4161 | - var GraphemeBreaker = function (str) { | |
| 4162 | - var codePoints = toCodePoints(str); | |
| 4163 | - var length = codePoints.length; | |
| 4164 | - var index = 0; | |
| 4165 | - var lastEnd = 0; | |
| 4166 | - var classTypes = codePoints.map(codePointToClass); | |
| 4167 | - return { | |
| 4168 | - next: function () { | |
| 4169 | - if (index >= length) { | |
| 4170 | - return { done: true, value: null }; | |
| 4171 | - } | |
| 4172 | - var graphemeBreak = BREAK_NOT_ALLOWED; | |
| 4173 | - while (index < length && | |
| 4174 | - (graphemeBreak = _graphemeBreakAtIndex(codePoints, classTypes, ++index)) === BREAK_NOT_ALLOWED) { } | |
| 4175 | - if (graphemeBreak !== BREAK_NOT_ALLOWED || index === length) { | |
| 4176 | - var value = fromCodePoint.apply(null, codePoints.slice(lastEnd, index)); | |
| 4177 | - lastEnd = index; | |
| 4178 | - return { value: value, done: false }; | |
| 4179 | - } | |
| 4180 | - return { done: true, value: null }; | |
| 4181 | - }, | |
| 4182 | - }; | |
| 4183 | - }; | |
| 4184 | - var splitGraphemes = function (str) { | |
| 4185 | - var breaker = GraphemeBreaker(str); | |
| 4186 | - var graphemes = []; | |
| 4187 | - var bk; | |
| 4188 | - while (!(bk = breaker.next()).done) { | |
| 4189 | - if (bk.value) { | |
| 4190 | - graphemes.push(bk.value.slice()); | |
| 4191 | - } | |
| 4192 | - } | |
| 4193 | - return graphemes; | |
| 4194 | - }; | |
| 4195 | - | |
| 4196 | - var testRangeBounds = function (document) { | |
| 4197 | - var TEST_HEIGHT = 123; | |
| 4198 | - if (document.createRange) { | |
| 4199 | - var range = document.createRange(); | |
| 4200 | - if (range.getBoundingClientRect) { | |
| 4201 | - var testElement = document.createElement('boundtest'); | |
| 4202 | - testElement.style.height = TEST_HEIGHT + "px"; | |
| 4203 | - testElement.style.display = 'block'; | |
| 4204 | - document.body.appendChild(testElement); | |
| 4205 | - range.selectNode(testElement); | |
| 4206 | - var rangeBounds = range.getBoundingClientRect(); | |
| 4207 | - var rangeHeight = Math.round(rangeBounds.height); | |
| 4208 | - document.body.removeChild(testElement); | |
| 4209 | - if (rangeHeight === TEST_HEIGHT) { | |
| 4210 | - return true; | |
| 4211 | - } | |
| 4212 | - } | |
| 4213 | - } | |
| 4214 | - return false; | |
| 4215 | - }; | |
| 4216 | - var testIOSLineBreak = function (document) { | |
| 4217 | - var testElement = document.createElement('boundtest'); | |
| 4218 | - testElement.style.width = '50px'; | |
| 4219 | - testElement.style.display = 'block'; | |
| 4220 | - testElement.style.fontSize = '12px'; | |
| 4221 | - testElement.style.letterSpacing = '0px'; | |
| 4222 | - testElement.style.wordSpacing = '0px'; | |
| 4223 | - document.body.appendChild(testElement); | |
| 4224 | - var range = document.createRange(); | |
| 4225 | - testElement.innerHTML = typeof ''.repeat === 'function' ? '👨'.repeat(10) : ''; | |
| 4226 | - var node = testElement.firstChild; | |
| 4227 | - var textList = toCodePoints$1(node.data).map(function (i) { return fromCodePoint$1(i); }); | |
| 4228 | - var offset = 0; | |
| 4229 | - var prev = {}; | |
| 4230 | - // ios 13 does not handle range getBoundingClientRect line changes correctly #2177 | |
| 4231 | - var supports = textList.every(function (text, i) { | |
| 4232 | - range.setStart(node, offset); | |
| 4233 | - range.setEnd(node, offset + text.length); | |
| 4234 | - var rect = range.getBoundingClientRect(); | |
| 4235 | - offset += text.length; | |
| 4236 | - var boundAhead = rect.x > prev.x || rect.y > prev.y; | |
| 4237 | - prev = rect; | |
| 4238 | - if (i === 0) { | |
| 4239 | - return true; | |
| 4240 | - } | |
| 4241 | - return boundAhead; | |
| 4242 | - }); | |
| 4243 | - document.body.removeChild(testElement); | |
| 4244 | - return supports; | |
| 4245 | - }; | |
| 4246 | - var testCORS = function () { return typeof new Image().crossOrigin !== 'undefined'; }; | |
| 4247 | - var testResponseType = function () { return typeof new XMLHttpRequest().responseType === 'string'; }; | |
| 4248 | - var testSVG = function (document) { | |
| 4249 | - var img = new Image(); | |
| 4250 | - var canvas = document.createElement('canvas'); | |
| 4251 | - var ctx = canvas.getContext('2d'); | |
| 4252 | - if (!ctx) { | |
| 4253 | - return false; | |
| 4254 | - } | |
| 4255 | - img.src = "data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg'></svg>"; | |
| 4256 | - try { | |
| 4257 | - ctx.drawImage(img, 0, 0); | |
| 4258 | - canvas.toDataURL(); | |
| 4259 | - } | |
| 4260 | - catch (e) { | |
| 4261 | - return false; | |
| 4262 | - } | |
| 4263 | - return true; | |
| 4264 | - }; | |
| 4265 | - var isGreenPixel = function (data) { | |
| 4266 | - return data[0] === 0 && data[1] === 255 && data[2] === 0 && data[3] === 255; | |
| 4267 | - }; | |
| 4268 | - var testForeignObject = function (document) { | |
| 4269 | - var canvas = document.createElement('canvas'); | |
| 4270 | - var size = 100; | |
| 4271 | - canvas.width = size; | |
| 4272 | - canvas.height = size; | |
| 4273 | - var ctx = canvas.getContext('2d'); | |
| 4274 | - if (!ctx) { | |
| 4275 | - return Promise.reject(false); | |
| 4276 | - } | |
| 4277 | - ctx.fillStyle = 'rgb(0, 255, 0)'; | |
| 4278 | - ctx.fillRect(0, 0, size, size); | |
| 4279 | - var img = new Image(); | |
| 4280 | - var greenImageSrc = canvas.toDataURL(); | |
| 4281 | - img.src = greenImageSrc; | |
| 4282 | - var svg = createForeignObjectSVG(size, size, 0, 0, img); | |
| 4283 | - ctx.fillStyle = 'red'; | |
| 4284 | - ctx.fillRect(0, 0, size, size); | |
| 4285 | - return loadSerializedSVG$1(svg) | |
| 4286 | - .then(function (img) { | |
| 4287 | - ctx.drawImage(img, 0, 0); | |
| 4288 | - var data = ctx.getImageData(0, 0, size, size).data; | |
| 4289 | - ctx.fillStyle = 'red'; | |
| 4290 | - ctx.fillRect(0, 0, size, size); | |
| 4291 | - var node = document.createElement('div'); | |
| 4292 | - node.style.backgroundImage = "url(" + greenImageSrc + ")"; | |
| 4293 | - node.style.height = size + "px"; | |
| 4294 | - // Firefox 55 does not render inline <img /> tags | |
| 4295 | - return isGreenPixel(data) | |
| 4296 | - ? loadSerializedSVG$1(createForeignObjectSVG(size, size, 0, 0, node)) | |
| 4297 | - : Promise.reject(false); | |
| 4298 | - }) | |
| 4299 | - .then(function (img) { | |
| 4300 | - ctx.drawImage(img, 0, 0); | |
| 4301 | - // Edge does not render background-images | |
| 4302 | - return isGreenPixel(ctx.getImageData(0, 0, size, size).data); | |
| 4303 | - }) | |
| 4304 | - .catch(function () { return false; }); | |
| 4305 | - }; | |
| 4306 | - var createForeignObjectSVG = function (width, height, x, y, node) { | |
| 4307 | - var xmlns = 'http://www.w3.org/2000/svg'; | |
| 4308 | - var svg = document.createElementNS(xmlns, 'svg'); | |
| 4309 | - var foreignObject = document.createElementNS(xmlns, 'foreignObject'); | |
| 4310 | - svg.setAttributeNS(null, 'width', width.toString()); | |
| 4311 | - svg.setAttributeNS(null, 'height', height.toString()); | |
| 4312 | - foreignObject.setAttributeNS(null, 'width', '100%'); | |
| 4313 | - foreignObject.setAttributeNS(null, 'height', '100%'); | |
| 4314 | - foreignObject.setAttributeNS(null, 'x', x.toString()); | |
| 4315 | - foreignObject.setAttributeNS(null, 'y', y.toString()); | |
| 4316 | - foreignObject.setAttributeNS(null, 'externalResourcesRequired', 'true'); | |
| 4317 | - svg.appendChild(foreignObject); | |
| 4318 | - foreignObject.appendChild(node); | |
| 4319 | - return svg; | |
| 4320 | - }; | |
| 4321 | - var loadSerializedSVG$1 = function (svg) { | |
| 4322 | - return new Promise(function (resolve, reject) { | |
| 4323 | - var img = new Image(); | |
| 4324 | - img.onload = function () { return resolve(img); }; | |
| 4325 | - img.onerror = reject; | |
| 4326 | - img.src = "data:image/svg+xml;charset=utf-8," + encodeURIComponent(new XMLSerializer().serializeToString(svg)); | |
| 4327 | - }); | |
| 4328 | - }; | |
| 4329 | - var FEATURES = { | |
| 4330 | - get SUPPORT_RANGE_BOUNDS() { | |
| 4331 | - var value = testRangeBounds(document); | |
| 4332 | - Object.defineProperty(FEATURES, 'SUPPORT_RANGE_BOUNDS', { value: value }); | |
| 4333 | - return value; | |
| 4334 | - }, | |
| 4335 | - get SUPPORT_WORD_BREAKING() { | |
| 4336 | - var value = FEATURES.SUPPORT_RANGE_BOUNDS && testIOSLineBreak(document); | |
| 4337 | - Object.defineProperty(FEATURES, 'SUPPORT_WORD_BREAKING', { value: value }); | |
| 4338 | - return value; | |
| 4339 | - }, | |
| 4340 | - get SUPPORT_SVG_DRAWING() { | |
| 4341 | - var value = testSVG(document); | |
| 4342 | - Object.defineProperty(FEATURES, 'SUPPORT_SVG_DRAWING', { value: value }); | |
| 4343 | - return value; | |
| 4344 | - }, | |
| 4345 | - get SUPPORT_FOREIGNOBJECT_DRAWING() { | |
| 4346 | - var value = typeof Array.from === 'function' && typeof window.fetch === 'function' | |
| 4347 | - ? testForeignObject(document) | |
| 4348 | - : Promise.resolve(false); | |
| 4349 | - Object.defineProperty(FEATURES, 'SUPPORT_FOREIGNOBJECT_DRAWING', { value: value }); | |
| 4350 | - return value; | |
| 4351 | - }, | |
| 4352 | - get SUPPORT_CORS_IMAGES() { | |
| 4353 | - var value = testCORS(); | |
| 4354 | - Object.defineProperty(FEATURES, 'SUPPORT_CORS_IMAGES', { value: value }); | |
| 4355 | - return value; | |
| 4356 | - }, | |
| 4357 | - get SUPPORT_RESPONSE_TYPE() { | |
| 4358 | - var value = testResponseType(); | |
| 4359 | - Object.defineProperty(FEATURES, 'SUPPORT_RESPONSE_TYPE', { value: value }); | |
| 4360 | - return value; | |
| 4361 | - }, | |
| 4362 | - get SUPPORT_CORS_XHR() { | |
| 4363 | - var value = 'withCredentials' in new XMLHttpRequest(); | |
| 4364 | - Object.defineProperty(FEATURES, 'SUPPORT_CORS_XHR', { value: value }); | |
| 4365 | - return value; | |
| 4366 | - }, | |
| 4367 | - get SUPPORT_NATIVE_TEXT_SEGMENTATION() { | |
| 4368 | - // eslint-disable-next-line @typescript-eslint/no-explicit-any | |
| 4369 | - var value = !!(typeof Intl !== 'undefined' && Intl.Segmenter); | |
| 4370 | - Object.defineProperty(FEATURES, 'SUPPORT_NATIVE_TEXT_SEGMENTATION', { value: value }); | |
| 4371 | - return value; | |
| 4372 | - } | |
| 4373 | - }; | |
| 4374 | - | |
| 4375 | 4192 | var TextBounds = /** @class */ (function () { |
| 4376 | 4193 | function TextBounds(text, bounds) { |
| 4377 | 4194 | this.text = text; |
| 4378 | 4195 | this.bounds = bounds; |
| @@ -4378,9 +4195,9 @@ | ||
| 4378 | 4195 | this.bounds = bounds; |
| 4379 | 4196 | } |
| 4380 | 4197 | return TextBounds; |
| 4381 | 4198 | }()); |
| 4382 | - var parseTextBounds = function (context, value, styles, node) { | |
| 4199 | + var parseTextBounds = function (value, styles, node) { | |
| 4383 | 4200 | var textList = breakText(value, styles); |
| 4384 | 4201 | var textBounds = []; |
| 4385 | 4202 | var offset = 0; |
| 4386 | 4203 | textList.forEach(function (text) { |
| @@ -4385,24 +4202,13 @@ | ||
| 4385 | 4202 | var offset = 0; |
| 4386 | 4203 | textList.forEach(function (text) { |
| 4387 | 4204 | if (styles.textDecorationLine.length || text.trim().length > 0) { |
| 4388 | 4205 | if (FEATURES.SUPPORT_RANGE_BOUNDS) { |
| 4389 | - var clientRects = createRange(node, offset, text.length).getClientRects(); | |
| 4390 | - if (clientRects.length > 1) { | |
| 4391 | - var subSegments = segmentGraphemes(text); | |
| 4392 | - var subOffset_1 = 0; | |
| 4393 | - subSegments.forEach(function (subSegment) { | |
| 4394 | - textBounds.push(new TextBounds(subSegment, Bounds.fromDOMRectList(context, createRange(node, subOffset_1 + offset, subSegment.length).getClientRects()))); | |
| 4395 | - subOffset_1 += subSegment.length; | |
| 4396 | - }); | |
| 4397 | - } | |
| 4398 | - else { | |
| 4399 | - textBounds.push(new TextBounds(text, Bounds.fromDOMRectList(context, clientRects))); | |
| 4400 | - } | |
| 4206 | + textBounds.push(new TextBounds(text, getRangeBounds(node, offset, text.length))); | |
| 4401 | 4207 | } |
| 4402 | 4208 | else { |
| 4403 | 4209 | var replacementNode = node.splitText(text.length); |
| 4404 | - textBounds.push(new TextBounds(text, getWrapperBounds(context, node))); | |
| 4210 | + textBounds.push(new TextBounds(text, getWrapperBounds(node))); | |
| 4405 | 4211 | node = replacementNode; |
| 4406 | 4212 | } |
| 4407 | 4213 | } |
| 4408 | 4214 | else if (!FEATURES.SUPPORT_RANGE_BOUNDS) { |
| @@ -4411,9 +4217,9 @@ | ||
| 4411 | 4217 | offset += text.length; |
| 4412 | 4218 | }); |
| 4413 | 4219 | return textBounds; |
| 4414 | 4220 | }; |
| 4415 | - var getWrapperBounds = function (context, node) { | |
| 4221 | + var getWrapperBounds = function (node) { | |
| 4416 | 4222 | var ownerDocument = node.ownerDocument; |
| 4417 | 4223 | if (ownerDocument) { |
| 4418 | 4224 | var wrapper = ownerDocument.createElement('html2canvaswrapper'); |
| 4419 | 4225 | wrapper.appendChild(node.cloneNode(true)); |
| @@ -4419,9 +4225,9 @@ | ||
| 4419 | 4225 | wrapper.appendChild(node.cloneNode(true)); |
| 4420 | 4226 | var parentNode = node.parentNode; |
| 4421 | 4227 | if (parentNode) { |
| 4422 | 4228 | parentNode.replaceChild(wrapper, node); |
| 4423 | - var bounds = parseBounds(context, wrapper); | |
| 4229 | + var bounds = parseBounds(wrapper); | |
| 4424 | 4230 | if (wrapper.firstChild) { |
| 4425 | 4231 | parentNode.replaceChild(wrapper.firstChild, wrapper); |
| 4426 | 4232 | } |
| 4427 | 4233 | return bounds; |
| @@ -4426,11 +4232,11 @@ | ||
| 4426 | 4232 | } |
| 4427 | 4233 | return bounds; |
| 4428 | 4234 | } |
| 4429 | 4235 | } |
| 4430 | - return Bounds.EMPTY; | |
| 4236 | + return new Bounds(0, 0, 0, 0); | |
| 4431 | 4237 | }; |
| 4432 | - var createRange = function (node, offset, length) { | |
| 4238 | + var getRangeBounds = function (node, offset, length) { | |
| 4433 | 4239 | var ownerDocument = node.ownerDocument; |
| 4434 | 4240 | if (!ownerDocument) { |
| 4435 | 4241 | throw new Error('Node has no owner document'); |
| 4436 | 4242 | } |
| @@ -4436,84 +4242,42 @@ | ||
| 4436 | 4242 | } |
| 4437 | 4243 | var range = ownerDocument.createRange(); |
| 4438 | 4244 | range.setStart(node, offset); |
| 4439 | 4245 | range.setEnd(node, offset + length); |
| 4440 | - return range; | |
| 4246 | + return Bounds.fromClientRect(range.getBoundingClientRect()); | |
| 4441 | 4247 | }; |
| 4442 | - var segmentGraphemes = function (value) { | |
| 4443 | - if (FEATURES.SUPPORT_NATIVE_TEXT_SEGMENTATION) { | |
| 4444 | - // eslint-disable-next-line @typescript-eslint/no-explicit-any | |
| 4445 | - var segmenter = new Intl.Segmenter(void 0, { granularity: 'grapheme' }); | |
| 4446 | - // eslint-disable-next-line @typescript-eslint/no-explicit-any | |
| 4447 | - return Array.from(segmenter.segment(value)).map(function (segment) { return segment.segment; }); | |
| 4448 | - } | |
| 4449 | - return splitGraphemes(value); | |
| 4450 | - }; | |
| 4451 | - var segmentWords = function (value, styles) { | |
| 4452 | - if (FEATURES.SUPPORT_NATIVE_TEXT_SEGMENTATION) { | |
| 4453 | - // eslint-disable-next-line @typescript-eslint/no-explicit-any | |
| 4454 | - var segmenter = new Intl.Segmenter(void 0, { | |
| 4455 | - granularity: 'word' | |
| 4456 | - }); | |
| 4457 | - // eslint-disable-next-line @typescript-eslint/no-explicit-any | |
| 4458 | - return Array.from(segmenter.segment(value)).map(function (segment) { return segment.segment; }); | |
| 4459 | - } | |
| 4460 | - return breakWords(value, styles); | |
| 4461 | - }; | |
| 4462 | 4248 | var breakText = function (value, styles) { |
| 4463 | - return styles.letterSpacing !== 0 ? segmentGraphemes(value) : segmentWords(value, styles); | |
| 4249 | + return styles.letterSpacing !== 0 ? toCodePoints(value).map(function (i) { return fromCodePoint(i); }) : breakWords(value, styles); | |
| 4464 | 4250 | }; |
| 4465 | - // https://drafts.csswg.org/css-text/#word-separator | |
| 4466 | - var wordSeparators = [0x0020, 0x00a0, 0x1361, 0x10100, 0x10101, 0x1039, 0x1091]; | |
| 4467 | 4251 | var breakWords = function (str, styles) { |
| 4468 | 4252 | var breaker = LineBreaker(str, { |
| 4469 | 4253 | lineBreak: styles.lineBreak, |
| 4470 | - wordBreak: styles.overflowWrap === "break-word" /* BREAK_WORD */ ? 'break-word' : styles.wordBreak | |
| 4254 | + wordBreak: styles.overflowWrap === OVERFLOW_WRAP.BREAK_WORD ? 'break-word' : styles.wordBreak | |
| 4471 | 4255 | }); |
| 4472 | 4256 | var words = []; |
| 4473 | 4257 | var bk; |
| 4474 | - var _loop_1 = function () { | |
| 4258 | + while (!(bk = breaker.next()).done) { | |
| 4475 | 4259 | if (bk.value) { |
| 4476 | - var value = bk.value.slice(); | |
| 4477 | - var codePoints = toCodePoints$1(value); | |
| 4478 | - var word_1 = ''; | |
| 4479 | - codePoints.forEach(function (codePoint) { | |
| 4480 | - if (wordSeparators.indexOf(codePoint) === -1) { | |
| 4481 | - word_1 += fromCodePoint$1(codePoint); | |
| 4482 | - } | |
| 4483 | - else { | |
| 4484 | - if (word_1.length) { | |
| 4485 | - words.push(word_1); | |
| 4486 | - } | |
| 4487 | - words.push(fromCodePoint$1(codePoint)); | |
| 4488 | - word_1 = ''; | |
| 4489 | - } | |
| 4490 | - }); | |
| 4491 | - if (word_1.length) { | |
| 4492 | - words.push(word_1); | |
| 4493 | - } | |
| 4260 | + words.push(bk.value.slice()); | |
| 4494 | 4261 | } |
| 4495 | - }; | |
| 4496 | - while (!(bk = breaker.next()).done) { | |
| 4497 | - _loop_1(); | |
| 4498 | 4262 | } |
| 4499 | 4263 | return words; |
| 4500 | 4264 | }; |
| 4501 | 4265 | |
| 4502 | 4266 | var TextContainer = /** @class */ (function () { |
| 4503 | - function TextContainer(context, node, styles) { | |
| 4504 | - this.text = transform(node.data, styles.textTransform); | |
| 4505 | - this.textBounds = parseTextBounds(context, this.text, styles, node); | |
| 4267 | + function TextContainer(node, styles) { | |
| 4268 | + this.text = transform$1(node.data, styles.textTransform); | |
| 4269 | + this.textBounds = parseTextBounds(this.text, styles, node); | |
| 4506 | 4270 | } |
| 4507 | 4271 | return TextContainer; |
| 4508 | 4272 | }()); |
| 4509 | - var transform = function (text, transform) { | |
| 4273 | + var transform$1 = function (text, transform) { | |
| 4510 | 4274 | switch (transform) { |
| 4511 | - case 1 /* LOWERCASE */: | |
| 4275 | + case TEXT_TRANSFORM.LOWERCASE: | |
| 4512 | 4276 | return text.toLowerCase(); |
| 4513 | - case 3 /* CAPITALIZE */: | |
| 4277 | + case TEXT_TRANSFORM.CAPITALIZE: | |
| 4514 | 4278 | return text.replace(CAPITALIZE, capitalize); |
| 4515 | - case 2 /* UPPERCASE */: | |
| 4279 | + case TEXT_TRANSFORM.UPPERCASE: | |
| 4516 | 4280 | return text.toUpperCase(); |
| 4517 | 4281 | default: |
| 4518 | 4282 | return text; |
| 4519 | 4283 | } |
| @@ -4527,14 +4291,14 @@ | ||
| 4527 | 4291 | }; |
| 4528 | 4292 | |
| 4529 | 4293 | var ImageElementContainer = /** @class */ (function (_super) { |
| 4530 | 4294 | __extends(ImageElementContainer, _super); |
| 4531 | - function ImageElementContainer(context, img) { | |
| 4532 | - var _this = _super.call(this, context, img) || this; | |
| 4295 | + function ImageElementContainer(img) { | |
| 4296 | + var _this = _super.call(this, img) || this; | |
| 4533 | 4297 | _this.src = img.currentSrc || img.src; |
| 4534 | 4298 | _this.intrinsicWidth = img.naturalWidth; |
| 4535 | 4299 | _this.intrinsicHeight = img.naturalHeight; |
| 4536 | - _this.context.cache.addImage(_this.src); | |
| 4300 | + CacheStorage.getInstance().addImage(_this.src); | |
| 4537 | 4301 | return _this; |
| 4538 | 4302 | } |
| 4539 | 4303 | return ImageElementContainer; |
| 4540 | 4304 | }(ElementContainer)); |
| @@ -4540,10 +4304,10 @@ | ||
| 4540 | 4304 | }(ElementContainer)); |
| 4541 | 4305 | |
| 4542 | 4306 | var CanvasElementContainer = /** @class */ (function (_super) { |
| 4543 | 4307 | __extends(CanvasElementContainer, _super); |
| 4544 | - function CanvasElementContainer(context, canvas) { | |
| 4545 | - var _this = _super.call(this, context, canvas) || this; | |
| 4308 | + function CanvasElementContainer(canvas) { | |
| 4309 | + var _this = _super.call(this, canvas) || this; | |
| 4546 | 4310 | _this.canvas = canvas; |
| 4547 | 4311 | _this.intrinsicWidth = canvas.width; |
| 4548 | 4312 | _this.intrinsicHeight = canvas.height; |
| 4549 | 4313 | return _this; |
| @@ -4552,18 +4316,15 @@ | ||
| 4552 | 4316 | }(ElementContainer)); |
| 4553 | 4317 | |
| 4554 | 4318 | var SVGElementContainer = /** @class */ (function (_super) { |
| 4555 | 4319 | __extends(SVGElementContainer, _super); |
| 4556 | - function SVGElementContainer(context, img) { | |
| 4557 | - var _this = _super.call(this, context, img) || this; | |
| 4320 | + function SVGElementContainer(img) { | |
| 4321 | + var _this = _super.call(this, img) || this; | |
| 4558 | 4322 | var s = new XMLSerializer(); |
| 4559 | - var bounds = parseBounds(context, img); | |
| 4560 | - img.setAttribute('width', bounds.width + "px"); | |
| 4561 | - img.setAttribute('height', bounds.height + "px"); | |
| 4562 | 4323 | _this.svg = "data:image/svg+xml," + encodeURIComponent(s.serializeToString(img)); |
| 4563 | 4324 | _this.intrinsicWidth = img.width.baseVal.value; |
| 4564 | 4325 | _this.intrinsicHeight = img.height.baseVal.value; |
| 4565 | - _this.context.cache.addImage(_this.svg); | |
| 4326 | + CacheStorage.getInstance().addImage(_this.svg); | |
| 4566 | 4327 | return _this; |
| 4567 | 4328 | } |
| 4568 | 4329 | return SVGElementContainer; |
| 4569 | 4330 | }(ElementContainer)); |
| @@ -4569,10 +4330,10 @@ | ||
| 4569 | 4330 | }(ElementContainer)); |
| 4570 | 4331 | |
| 4571 | 4332 | var LIElementContainer = /** @class */ (function (_super) { |
| 4572 | 4333 | __extends(LIElementContainer, _super); |
| 4573 | - function LIElementContainer(context, element) { | |
| 4574 | - var _this = _super.call(this, context, element) || this; | |
| 4334 | + function LIElementContainer(element) { | |
| 4335 | + var _this = _super.call(this, element) || this; | |
| 4575 | 4336 | _this.value = element.value; |
| 4576 | 4337 | return _this; |
| 4577 | 4338 | } |
| 4578 | 4339 | return LIElementContainer; |
| @@ -4579,10 +4340,10 @@ | ||
| 4579 | 4340 | }(ElementContainer)); |
| 4580 | 4341 | |
| 4581 | 4342 | var OLElementContainer = /** @class */ (function (_super) { |
| 4582 | 4343 | __extends(OLElementContainer, _super); |
| 4583 | - function OLElementContainer(context, element) { | |
| 4584 | - var _this = _super.call(this, context, element) || this; | |
| 4344 | + function OLElementContainer(element) { | |
| 4345 | + var _this = _super.call(this, element) || this; | |
| 4585 | 4346 | _this.start = element.start; |
| 4586 | 4347 | _this.reversed = typeof element.reversed === 'boolean' && element.reversed === true; |
| 4587 | 4348 | return _this; |
| 4588 | 4349 | } |
| @@ -4590,9 +4351,9 @@ | ||
| 4590 | 4351 | }(ElementContainer)); |
| 4591 | 4352 | |
| 4592 | 4353 | var CHECKBOX_BORDER_RADIUS = [ |
| 4593 | 4354 | { |
| 4594 | - type: 15 /* DIMENSION_TOKEN */, | |
| 4355 | + type: TokenType.DIMENSION_TOKEN, | |
| 4595 | 4356 | flags: 0, |
| 4596 | 4357 | unit: 'px', |
| 4597 | 4358 | number: 3 |
| 4598 | 4359 | } |
| @@ -4598,9 +4359,9 @@ | ||
| 4598 | 4359 | } |
| 4599 | 4360 | ]; |
| 4600 | 4361 | var RADIO_BORDER_RADIUS = [ |
| 4601 | 4362 | { |
| 4602 | - type: 16 /* PERCENTAGE_TOKEN */, | |
| 4363 | + type: TokenType.PERCENTAGE_TOKEN, | |
| 4603 | 4364 | flags: 0, |
| 4604 | 4365 | number: 50 |
| 4605 | 4366 | } |
| 4606 | 4367 | ]; |
| @@ -4622,48 +4383,29 @@ | ||
| 4622 | 4383 | var PASSWORD = 'password'; |
| 4623 | 4384 | var INPUT_COLOR = 0x2a2a2aff; |
| 4624 | 4385 | var InputElementContainer = /** @class */ (function (_super) { |
| 4625 | 4386 | __extends(InputElementContainer, _super); |
| 4626 | - function InputElementContainer(context, input) { | |
| 4627 | - var _this = _super.call(this, context, input) || this; | |
| 4387 | + function InputElementContainer(input) { | |
| 4388 | + var _this = _super.call(this, input) || this; | |
| 4628 | 4389 | _this.type = input.type.toLowerCase(); |
| 4629 | 4390 | _this.checked = input.checked; |
| 4630 | 4391 | _this.value = getInputValue(input); |
| 4631 | 4392 | if (_this.type === CHECKBOX || _this.type === RADIO) { |
| 4632 | 4393 | _this.styles.backgroundColor = 0xdededeff; |
| 4633 | - _this.styles.borderTopColor = | |
| 4634 | - _this.styles.borderRightColor = | |
| 4635 | - _this.styles.borderBottomColor = | |
| 4636 | - _this.styles.borderLeftColor = | |
| 4637 | - 0xa5a5a5ff; | |
| 4638 | - _this.styles.borderTopWidth = | |
| 4639 | - _this.styles.borderRightWidth = | |
| 4640 | - _this.styles.borderBottomWidth = | |
| 4641 | - _this.styles.borderLeftWidth = | |
| 4642 | - 1; | |
| 4643 | - _this.styles.borderTopStyle = | |
| 4644 | - _this.styles.borderRightStyle = | |
| 4645 | - _this.styles.borderBottomStyle = | |
| 4646 | - _this.styles.borderLeftStyle = | |
| 4647 | - 1 /* SOLID */; | |
| 4648 | - _this.styles.backgroundClip = [0 /* BORDER_BOX */]; | |
| 4394 | + _this.styles.borderTopColor = _this.styles.borderRightColor = _this.styles.borderBottomColor = _this.styles.borderLeftColor = 0xa5a5a5ff; | |
| 4395 | + _this.styles.borderTopWidth = _this.styles.borderRightWidth = _this.styles.borderBottomWidth = _this.styles.borderLeftWidth = 1; | |
| 4396 | + _this.styles.borderTopStyle = _this.styles.borderRightStyle = _this.styles.borderBottomStyle = _this.styles.borderLeftStyle = | |
| 4397 | + BORDER_STYLE.SOLID; | |
| 4398 | + _this.styles.backgroundClip = [BACKGROUND_CLIP.BORDER_BOX]; | |
| 4649 | 4399 | _this.styles.backgroundOrigin = [0 /* BORDER_BOX */]; |
| 4650 | 4400 | _this.bounds = reformatInputBounds(_this.bounds); |
| 4651 | 4401 | } |
| 4652 | 4402 | switch (_this.type) { |
| 4653 | 4403 | case CHECKBOX: |
| 4654 | - _this.styles.borderTopRightRadius = | |
| 4655 | - _this.styles.borderTopLeftRadius = | |
| 4656 | - _this.styles.borderBottomRightRadius = | |
| 4657 | - _this.styles.borderBottomLeftRadius = | |
| 4658 | - CHECKBOX_BORDER_RADIUS; | |
| 4404 | + _this.styles.borderTopRightRadius = _this.styles.borderTopLeftRadius = _this.styles.borderBottomRightRadius = _this.styles.borderBottomLeftRadius = CHECKBOX_BORDER_RADIUS; | |
| 4659 | 4405 | break; |
| 4660 | 4406 | case RADIO: |
| 4661 | - _this.styles.borderTopRightRadius = | |
| 4662 | - _this.styles.borderTopLeftRadius = | |
| 4663 | - _this.styles.borderBottomRightRadius = | |
| 4664 | - _this.styles.borderBottomLeftRadius = | |
| 4665 | - RADIO_BORDER_RADIUS; | |
| 4407 | + _this.styles.borderTopRightRadius = _this.styles.borderTopLeftRadius = _this.styles.borderBottomRightRadius = _this.styles.borderBottomLeftRadius = RADIO_BORDER_RADIUS; | |
| 4666 | 4408 | break; |
| 4667 | 4409 | } |
| 4668 | 4410 | return _this; |
| 4669 | 4411 | } |
| @@ -4671,10 +4413,10 @@ | ||
| 4671 | 4413 | }(ElementContainer)); |
| 4672 | 4414 | |
| 4673 | 4415 | var SelectElementContainer = /** @class */ (function (_super) { |
| 4674 | 4416 | __extends(SelectElementContainer, _super); |
| 4675 | - function SelectElementContainer(context, element) { | |
| 4676 | - var _this = _super.call(this, context, element) || this; | |
| 4417 | + function SelectElementContainer(element) { | |
| 4418 | + var _this = _super.call(this, element) || this; | |
| 4677 | 4419 | var option = element.options[element.selectedIndex || 0]; |
| 4678 | 4420 | _this.value = option ? option.text || '' : ''; |
| 4679 | 4421 | return _this; |
| 4680 | 4422 | } |
| @@ -4682,10 +4424,10 @@ | ||
| 4682 | 4424 | }(ElementContainer)); |
| 4683 | 4425 | |
| 4684 | 4426 | var TextareaElementContainer = /** @class */ (function (_super) { |
| 4685 | 4427 | __extends(TextareaElementContainer, _super); |
| 4686 | - function TextareaElementContainer(context, element) { | |
| 4687 | - var _this = _super.call(this, context, element) || this; | |
| 4428 | + function TextareaElementContainer(element) { | |
| 4429 | + var _this = _super.call(this, element) || this; | |
| 4688 | 4430 | _this.value = element.value; |
| 4689 | 4431 | return _this; |
| 4690 | 4432 | } |
| 4691 | 4433 | return TextareaElementContainer; |
| @@ -4690,12 +4432,13 @@ | ||
| 4690 | 4432 | } |
| 4691 | 4433 | return TextareaElementContainer; |
| 4692 | 4434 | }(ElementContainer)); |
| 4693 | 4435 | |
| 4436 | + var parseColor = function (value) { return color.parse(Parser.create(value).parseComponentValue()); }; | |
| 4694 | 4437 | var IFrameElementContainer = /** @class */ (function (_super) { |
| 4695 | 4438 | __extends(IFrameElementContainer, _super); |
| 4696 | - function IFrameElementContainer(context, iframe) { | |
| 4697 | - var _this = _super.call(this, context, iframe) || this; | |
| 4439 | + function IFrameElementContainer(iframe) { | |
| 4440 | + var _this = _super.call(this, iframe) || this; | |
| 4698 | 4441 | _this.src = iframe.src; |
| 4699 | 4442 | _this.width = parseInt(iframe.width, 10) || 0; |
| 4700 | 4443 | _this.height = parseInt(iframe.height, 10) || 0; |
| 4701 | 4444 | _this.backgroundColor = _this.styles.backgroundColor; |
| @@ -4702,15 +4445,16 @@ | ||
| 4702 | 4445 | try { |
| 4703 | 4446 | if (iframe.contentWindow && |
| 4704 | 4447 | iframe.contentWindow.document && |
| 4705 | 4448 | iframe.contentWindow.document.documentElement) { |
| 4706 | - _this.tree = parseTree(context, iframe.contentWindow.document.documentElement); | |
| 4449 | + _this.tree = parseTree(iframe.contentWindow.document.documentElement); | |
| 4707 | 4450 | // http://www.w3.org/TR/css3-background/#special-backgrounds |
| 4708 | 4451 | var documentBackgroundColor = iframe.contentWindow.document.documentElement |
| 4709 | - ? parseColor(context, getComputedStyle(iframe.contentWindow.document.documentElement).backgroundColor) | |
| 4452 | + ? parseColor(getComputedStyle(iframe.contentWindow.document.documentElement) | |
| 4453 | + .backgroundColor) | |
| 4710 | 4454 | : COLORS.TRANSPARENT; |
| 4711 | 4455 | var bodyBackgroundColor = iframe.contentWindow.document.body |
| 4712 | - ? parseColor(context, getComputedStyle(iframe.contentWindow.document.body).backgroundColor) | |
| 4456 | + ? parseColor(getComputedStyle(iframe.contentWindow.document.body).backgroundColor) | |
| 4713 | 4457 | : COLORS.TRANSPARENT; |
| 4714 | 4458 | _this.backgroundColor = isTransparent(documentBackgroundColor) |
| 4715 | 4459 | ? isTransparent(bodyBackgroundColor) |
| 4716 | 4460 | ? _this.styles.backgroundColor |
| @@ -4724,79 +4468,68 @@ | ||
| 4724 | 4468 | return IFrameElementContainer; |
| 4725 | 4469 | }(ElementContainer)); |
| 4726 | 4470 | |
| 4727 | 4471 | var LIST_OWNERS = ['OL', 'UL', 'MENU']; |
| 4728 | - var parseNodeTree = function (context, node, parent, root) { | |
| 4472 | + var parseNodeTree = function (node, parent, root) { | |
| 4729 | 4473 | for (var childNode = node.firstChild, nextNode = void 0; childNode; childNode = nextNode) { |
| 4730 | 4474 | nextNode = childNode.nextSibling; |
| 4731 | 4475 | if (isTextNode(childNode) && childNode.data.trim().length > 0) { |
| 4732 | - parent.textNodes.push(new TextContainer(context, childNode, parent.styles)); | |
| 4476 | + parent.textNodes.push(new TextContainer(childNode, parent.styles)); | |
| 4733 | 4477 | } |
| 4734 | 4478 | else if (isElementNode(childNode)) { |
| 4735 | - if (isSlotElement(childNode) && childNode.assignedNodes) { | |
| 4736 | - childNode.assignedNodes().forEach(function (childNode) { return parseNodeTree(context, childNode, parent, root); }); | |
| 4737 | - } | |
| 4738 | - else { | |
| 4739 | - var container = createContainer(context, childNode); | |
| 4740 | - if (container.styles.isVisible()) { | |
| 4741 | - if (createsRealStackingContext(childNode, container, root)) { | |
| 4742 | - container.flags |= 4 /* CREATES_REAL_STACKING_CONTEXT */; | |
| 4743 | - } | |
| 4744 | - else if (createsStackingContext(container.styles)) { | |
| 4745 | - container.flags |= 2 /* CREATES_STACKING_CONTEXT */; | |
| 4746 | - } | |
| 4747 | - if (LIST_OWNERS.indexOf(childNode.tagName) !== -1) { | |
| 4748 | - container.flags |= 8 /* IS_LIST_OWNER */; | |
| 4749 | - } | |
| 4750 | - parent.elements.push(container); | |
| 4751 | - childNode.slot; | |
| 4752 | - if (childNode.shadowRoot) { | |
| 4753 | - parseNodeTree(context, childNode.shadowRoot, container, root); | |
| 4754 | - } | |
| 4755 | - else if (!isTextareaElement(childNode) && | |
| 4756 | - !isSVGElement(childNode) && | |
| 4757 | - !isSelectElement(childNode)) { | |
| 4758 | - parseNodeTree(context, childNode, container, root); | |
| 4759 | - } | |
| 4479 | + var container = createContainer(childNode); | |
| 4480 | + if (container.styles.isVisible()) { | |
| 4481 | + if (createsRealStackingContext(childNode, container, root)) { | |
| 4482 | + container.flags |= 4 /* CREATES_REAL_STACKING_CONTEXT */; | |
| 4760 | 4483 | } |
| 4484 | + else if (createsStackingContext(container.styles)) { | |
| 4485 | + container.flags |= 2 /* CREATES_STACKING_CONTEXT */; | |
| 4486 | + } | |
| 4487 | + if (LIST_OWNERS.indexOf(childNode.tagName) !== -1) { | |
| 4488 | + container.flags |= 8 /* IS_LIST_OWNER */; | |
| 4489 | + } | |
| 4490 | + parent.elements.push(container); | |
| 4491 | + if (!isTextareaElement(childNode) && !isSVGElement(childNode) && !isSelectElement(childNode)) { | |
| 4492 | + parseNodeTree(childNode, container, root); | |
| 4493 | + } | |
| 4761 | 4494 | } |
| 4762 | 4495 | } |
| 4763 | 4496 | } |
| 4764 | 4497 | }; |
| 4765 | - var createContainer = function (context, element) { | |
| 4498 | + var createContainer = function (element) { | |
| 4766 | 4499 | if (isImageElement(element)) { |
| 4767 | - return new ImageElementContainer(context, element); | |
| 4500 | + return new ImageElementContainer(element); | |
| 4768 | 4501 | } |
| 4769 | 4502 | if (isCanvasElement(element)) { |
| 4770 | - return new CanvasElementContainer(context, element); | |
| 4503 | + return new CanvasElementContainer(element); | |
| 4771 | 4504 | } |
| 4772 | 4505 | if (isSVGElement(element)) { |
| 4773 | - return new SVGElementContainer(context, element); | |
| 4506 | + return new SVGElementContainer(element); | |
| 4774 | 4507 | } |
| 4775 | 4508 | if (isLIElement(element)) { |
| 4776 | - return new LIElementContainer(context, element); | |
| 4509 | + return new LIElementContainer(element); | |
| 4777 | 4510 | } |
| 4778 | 4511 | if (isOLElement(element)) { |
| 4779 | - return new OLElementContainer(context, element); | |
| 4512 | + return new OLElementContainer(element); | |
| 4780 | 4513 | } |
| 4781 | 4514 | if (isInputElement(element)) { |
| 4782 | - return new InputElementContainer(context, element); | |
| 4515 | + return new InputElementContainer(element); | |
| 4783 | 4516 | } |
| 4784 | 4517 | if (isSelectElement(element)) { |
| 4785 | - return new SelectElementContainer(context, element); | |
| 4518 | + return new SelectElementContainer(element); | |
| 4786 | 4519 | } |
| 4787 | 4520 | if (isTextareaElement(element)) { |
| 4788 | - return new TextareaElementContainer(context, element); | |
| 4521 | + return new TextareaElementContainer(element); | |
| 4789 | 4522 | } |
| 4790 | 4523 | if (isIFrameElement(element)) { |
| 4791 | - return new IFrameElementContainer(context, element); | |
| 4524 | + return new IFrameElementContainer(element); | |
| 4792 | 4525 | } |
| 4793 | - return new ElementContainer(context, element); | |
| 4526 | + return new ElementContainer(element); | |
| 4794 | 4527 | }; |
| 4795 | - var parseTree = function (context, element) { | |
| 4796 | - var container = createContainer(context, element); | |
| 4528 | + var parseTree = function (element) { | |
| 4529 | + var container = createContainer(element); | |
| 4797 | 4530 | container.flags |= 4 /* CREATES_REAL_STACKING_CONTEXT */; |
| 4798 | - parseNodeTree(context, element, container, container); | |
| 4531 | + parseNodeTree(element, container, container); | |
| 4799 | 4532 | return container; |
| 4800 | 4533 | }; |
| 4801 | 4534 | var createsRealStackingContext = function (node, container, root) { |
| 4802 | 4535 | return (container.styles.isPositionedWithZIndex() || |
| @@ -4819,9 +4552,8 @@ | ||
| 4819 | 4552 | var isHTMLElement = function (node) { return node.tagName === 'HTML'; }; |
| 4820 | 4553 | var isSVGElement = function (node) { return node.tagName === 'svg'; }; |
| 4821 | 4554 | var isBodyElement = function (node) { return node.tagName === 'BODY'; }; |
| 4822 | 4555 | var isCanvasElement = function (node) { return node.tagName === 'CANVAS'; }; |
| 4823 | - var isVideoElement = function (node) { return node.tagName === 'VIDEO'; }; | |
| 4824 | 4556 | var isImageElement = function (node) { return node.tagName === 'IMG'; }; |
| 4825 | 4557 | var isIFrameElement = function (node) { return node.tagName === 'IFRAME'; }; |
| 4826 | 4558 | var isStyleElement = function (node) { return node.tagName === 'STYLE'; }; |
| 4827 | 4559 | var isScriptElement = function (node) { return node.tagName === 'SCRIPT'; }; |
| @@ -4826,11 +4558,8 @@ | ||
| 4826 | 4558 | var isStyleElement = function (node) { return node.tagName === 'STYLE'; }; |
| 4827 | 4559 | var isScriptElement = function (node) { return node.tagName === 'SCRIPT'; }; |
| 4828 | 4560 | var isTextareaElement = function (node) { return node.tagName === 'TEXTAREA'; }; |
| 4829 | 4561 | var isSelectElement = function (node) { return node.tagName === 'SELECT'; }; |
| 4830 | - var isSlotElement = function (node) { return node.tagName === 'SLOT'; }; | |
| 4831 | - // https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name | |
| 4832 | - var isCustomElement = function (node) { return node.tagName.indexOf('-') > 0; }; | |
| 4833 | 4562 | |
| 4834 | 4563 | var CounterState = /** @class */ (function () { |
| 4835 | 4564 | function CounterState() { |
| 4836 | 4565 | this.counters = {}; |
| @@ -4859,11 +4588,8 @@ | ||
| 4859 | 4588 | counterIncrement.forEach(function (entry) { |
| 4860 | 4589 | var counter = _this.counters[entry.counter]; |
| 4861 | 4590 | if (counter && entry.increment !== 0) { |
| 4862 | 4591 | canReset = false; |
| 4863 | - if (!counter.length) { | |
| 4864 | - counter.push(1); | |
| 4865 | - } | |
| 4866 | 4592 | counter[Math.max(0, counter.length - 1)] += entry.increment; |
| 4867 | 4593 | } |
| 4868 | 4594 | }); |
| 4869 | 4595 | } |
| @@ -4887,10 +4613,44 @@ | ||
| 4887 | 4613 | values: ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I'] |
| 4888 | 4614 | }; |
| 4889 | 4615 | var ARMENIAN = { |
| 4890 | 4616 | integers: [ |
| 4891 | - 9000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1000, 900, 800, 700, 600, 500, 400, 300, 200, 100, 90, 80, 70, | |
| 4892 | - 60, 50, 40, 30, 20, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 | |
| 4617 | + 9000, | |
| 4618 | + 8000, | |
| 4619 | + 7000, | |
| 4620 | + 6000, | |
| 4621 | + 5000, | |
| 4622 | + 4000, | |
| 4623 | + 3000, | |
| 4624 | + 2000, | |
| 4625 | + 1000, | |
| 4626 | + 900, | |
| 4627 | + 800, | |
| 4628 | + 700, | |
| 4629 | + 600, | |
| 4630 | + 500, | |
| 4631 | + 400, | |
| 4632 | + 300, | |
| 4633 | + 200, | |
| 4634 | + 100, | |
| 4635 | + 90, | |
| 4636 | + 80, | |
| 4637 | + 70, | |
| 4638 | + 60, | |
| 4639 | + 50, | |
| 4640 | + 40, | |
| 4641 | + 30, | |
| 4642 | + 20, | |
| 4643 | + 10, | |
| 4644 | + 9, | |
| 4645 | + 8, | |
| 4646 | + 7, | |
| 4647 | + 6, | |
| 4648 | + 5, | |
| 4649 | + 4, | |
| 4650 | + 3, | |
| 4651 | + 2, | |
| 4652 | + 1 | |
| 4893 | 4653 | ], |
| 4894 | 4654 | values: [ |
| 4895 | 4655 | 'Ք', |
| 4896 | 4656 | 'Փ', |
| @@ -4931,10 +4691,45 @@ | ||
| 4931 | 4691 | ] |
| 4932 | 4692 | }; |
| 4933 | 4693 | var HEBREW = { |
| 4934 | 4694 | integers: [ |
| 4935 | - 10000, 9000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1000, 400, 300, 200, 100, 90, 80, 70, 60, 50, 40, 30, 20, | |
| 4936 | - 19, 18, 17, 16, 15, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 | |
| 4695 | + 10000, | |
| 4696 | + 9000, | |
| 4697 | + 8000, | |
| 4698 | + 7000, | |
| 4699 | + 6000, | |
| 4700 | + 5000, | |
| 4701 | + 4000, | |
| 4702 | + 3000, | |
| 4703 | + 2000, | |
| 4704 | + 1000, | |
| 4705 | + 400, | |
| 4706 | + 300, | |
| 4707 | + 200, | |
| 4708 | + 100, | |
| 4709 | + 90, | |
| 4710 | + 80, | |
| 4711 | + 70, | |
| 4712 | + 60, | |
| 4713 | + 50, | |
| 4714 | + 40, | |
| 4715 | + 30, | |
| 4716 | + 20, | |
| 4717 | + 19, | |
| 4718 | + 18, | |
| 4719 | + 17, | |
| 4720 | + 16, | |
| 4721 | + 15, | |
| 4722 | + 10, | |
| 4723 | + 9, | |
| 4724 | + 8, | |
| 4725 | + 7, | |
| 4726 | + 6, | |
| 4727 | + 5, | |
| 4728 | + 4, | |
| 4729 | + 3, | |
| 4730 | + 2, | |
| 4731 | + 1 | |
| 4937 | 4732 | ], |
| 4938 | 4733 | values: [ |
| 4939 | 4734 | 'י׳', |
| 4940 | 4735 | 'ט׳', |
| @@ -4976,10 +4771,45 @@ | ||
| 4976 | 4771 | ] |
| 4977 | 4772 | }; |
| 4978 | 4773 | var GEORGIAN = { |
| 4979 | 4774 | integers: [ |
| 4980 | - 10000, 9000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1000, 900, 800, 700, 600, 500, 400, 300, 200, 100, 90, | |
| 4981 | - 80, 70, 60, 50, 40, 30, 20, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 | |
| 4775 | + 10000, | |
| 4776 | + 9000, | |
| 4777 | + 8000, | |
| 4778 | + 7000, | |
| 4779 | + 6000, | |
| 4780 | + 5000, | |
| 4781 | + 4000, | |
| 4782 | + 3000, | |
| 4783 | + 2000, | |
| 4784 | + 1000, | |
| 4785 | + 900, | |
| 4786 | + 800, | |
| 4787 | + 700, | |
| 4788 | + 600, | |
| 4789 | + 500, | |
| 4790 | + 400, | |
| 4791 | + 300, | |
| 4792 | + 200, | |
| 4793 | + 100, | |
| 4794 | + 90, | |
| 4795 | + 80, | |
| 4796 | + 70, | |
| 4797 | + 60, | |
| 4798 | + 50, | |
| 4799 | + 40, | |
| 4800 | + 30, | |
| 4801 | + 20, | |
| 4802 | + 10, | |
| 4803 | + 9, | |
| 4804 | + 8, | |
| 4805 | + 7, | |
| 4806 | + 6, | |
| 4807 | + 5, | |
| 4808 | + 4, | |
| 4809 | + 3, | |
| 4810 | + 2, | |
| 4811 | + 1 | |
| 4982 | 4812 | ], |
| 4983 | 4813 | values: [ |
| 4984 | 4814 | 'ჵ', |
| 4985 | 4815 | 'ჰ', |
| @@ -5046,10 +4876,10 @@ | ||
| 5046 | 4876 | var createCounterStyleFromRange = function (value, codePointRangeStart, codePointRangeEnd, isNumeric, suffix) { |
| 5047 | 4877 | var codePointRangeLength = codePointRangeEnd - codePointRangeStart + 1; |
| 5048 | 4878 | return ((value < 0 ? '-' : '') + |
| 5049 | 4879 | (createCounterStyleWithSymbolResolver(Math.abs(value), codePointRangeLength, isNumeric, function (codePoint) { |
| 5050 | - return fromCodePoint$1(Math.floor(codePoint % codePointRangeLength) + codePointRangeStart); | |
| 5051 | - }) + | |
| 4880 | + return fromCodePoint(Math.floor(codePoint % codePointRangeLength) + codePointRangeStart); | |
| 4881 | + }) + | |
| 5052 | 4882 | suffix)); |
| 5053 | 4883 | }; |
| 5054 | 4884 | var createCounterStyleFromSymbols = function (value, symbols, suffix) { |
| 5055 | 4885 | if (suffix === void 0) { suffix = '. '; } |
| @@ -5061,9 +4891,9 @@ | ||
| 5061 | 4891 | var CJK_TEN_HIGH_COEFFICIENTS = 1 << 2; |
| 5062 | 4892 | var CJK_HUNDRED_COEFFICIENTS = 1 << 3; |
| 5063 | 4893 | var createCJKCounter = function (value, numbers, multipliers, negativeSign, suffix, flags) { |
| 5064 | 4894 | if (value < -9999 || value > 9999) { |
| 5065 | - return createCounterText(value, 4 /* CJK_DECIMAL */, suffix.length > 0); | |
| 4895 | + return createCounterText(value, LIST_STYLE_TYPE.CJK_DECIMAL, suffix.length > 0); | |
| 5066 | 4896 | } |
| 5067 | 4897 | var tmp = Math.abs(value); |
| 5068 | 4898 | var string = suffix; |
| 5069 | 4899 | if (tmp === 0) { |
| @@ -5097,103 +4927,103 @@ | ||
| 5097 | 4927 | var cjkSuffix = appendSuffix ? '、' : ''; |
| 5098 | 4928 | var koreanSuffix = appendSuffix ? ', ' : ''; |
| 5099 | 4929 | var spaceSuffix = appendSuffix ? ' ' : ''; |
| 5100 | 4930 | switch (type) { |
| 5101 | - case 0 /* DISC */: | |
| 4931 | + case LIST_STYLE_TYPE.DISC: | |
| 5102 | 4932 | return '•' + spaceSuffix; |
| 5103 | - case 1 /* CIRCLE */: | |
| 4933 | + case LIST_STYLE_TYPE.CIRCLE: | |
| 5104 | 4934 | return '◦' + spaceSuffix; |
| 5105 | - case 2 /* SQUARE */: | |
| 4935 | + case LIST_STYLE_TYPE.SQUARE: | |
| 5106 | 4936 | return '◾' + spaceSuffix; |
| 5107 | - case 5 /* DECIMAL_LEADING_ZERO */: | |
| 4937 | + case LIST_STYLE_TYPE.DECIMAL_LEADING_ZERO: | |
| 5108 | 4938 | var string = createCounterStyleFromRange(value, 48, 57, true, defaultSuffix); |
| 5109 | 4939 | return string.length < 4 ? "0" + string : string; |
| 5110 | - case 4 /* CJK_DECIMAL */: | |
| 4940 | + case LIST_STYLE_TYPE.CJK_DECIMAL: | |
| 5111 | 4941 | return createCounterStyleFromSymbols(value, '〇一二三四五六七八九', cjkSuffix); |
| 5112 | - case 6 /* LOWER_ROMAN */: | |
| 5113 | - return createAdditiveCounter(value, 1, 3999, ROMAN_UPPER, 3 /* DECIMAL */, defaultSuffix).toLowerCase(); | |
| 5114 | - case 7 /* UPPER_ROMAN */: | |
| 5115 | - return createAdditiveCounter(value, 1, 3999, ROMAN_UPPER, 3 /* DECIMAL */, defaultSuffix); | |
| 5116 | - case 8 /* LOWER_GREEK */: | |
| 4942 | + case LIST_STYLE_TYPE.LOWER_ROMAN: | |
| 4943 | + return createAdditiveCounter(value, 1, 3999, ROMAN_UPPER, LIST_STYLE_TYPE.DECIMAL, defaultSuffix).toLowerCase(); | |
| 4944 | + case LIST_STYLE_TYPE.UPPER_ROMAN: | |
| 4945 | + return createAdditiveCounter(value, 1, 3999, ROMAN_UPPER, LIST_STYLE_TYPE.DECIMAL, defaultSuffix); | |
| 4946 | + case LIST_STYLE_TYPE.LOWER_GREEK: | |
| 5117 | 4947 | return createCounterStyleFromRange(value, 945, 969, false, defaultSuffix); |
| 5118 | - case 9 /* LOWER_ALPHA */: | |
| 4948 | + case LIST_STYLE_TYPE.LOWER_ALPHA: | |
| 5119 | 4949 | return createCounterStyleFromRange(value, 97, 122, false, defaultSuffix); |
| 5120 | - case 10 /* UPPER_ALPHA */: | |
| 4950 | + case LIST_STYLE_TYPE.UPPER_ALPHA: | |
| 5121 | 4951 | return createCounterStyleFromRange(value, 65, 90, false, defaultSuffix); |
| 5122 | - case 11 /* ARABIC_INDIC */: | |
| 4952 | + case LIST_STYLE_TYPE.ARABIC_INDIC: | |
| 5123 | 4953 | return createCounterStyleFromRange(value, 1632, 1641, true, defaultSuffix); |
| 5124 | - case 12 /* ARMENIAN */: | |
| 5125 | - case 49 /* UPPER_ARMENIAN */: | |
| 5126 | - return createAdditiveCounter(value, 1, 9999, ARMENIAN, 3 /* DECIMAL */, defaultSuffix); | |
| 5127 | - case 35 /* LOWER_ARMENIAN */: | |
| 5128 | - return createAdditiveCounter(value, 1, 9999, ARMENIAN, 3 /* DECIMAL */, defaultSuffix).toLowerCase(); | |
| 5129 | - case 13 /* BENGALI */: | |
| 4954 | + case LIST_STYLE_TYPE.ARMENIAN: | |
| 4955 | + case LIST_STYLE_TYPE.UPPER_ARMENIAN: | |
| 4956 | + return createAdditiveCounter(value, 1, 9999, ARMENIAN, LIST_STYLE_TYPE.DECIMAL, defaultSuffix); | |
| 4957 | + case LIST_STYLE_TYPE.LOWER_ARMENIAN: | |
| 4958 | + return createAdditiveCounter(value, 1, 9999, ARMENIAN, LIST_STYLE_TYPE.DECIMAL, defaultSuffix).toLowerCase(); | |
| 4959 | + case LIST_STYLE_TYPE.BENGALI: | |
| 5130 | 4960 | return createCounterStyleFromRange(value, 2534, 2543, true, defaultSuffix); |
| 5131 | - case 14 /* CAMBODIAN */: | |
| 5132 | - case 30 /* KHMER */: | |
| 4961 | + case LIST_STYLE_TYPE.CAMBODIAN: | |
| 4962 | + case LIST_STYLE_TYPE.KHMER: | |
| 5133 | 4963 | return createCounterStyleFromRange(value, 6112, 6121, true, defaultSuffix); |
| 5134 | - case 15 /* CJK_EARTHLY_BRANCH */: | |
| 4964 | + case LIST_STYLE_TYPE.CJK_EARTHLY_BRANCH: | |
| 5135 | 4965 | return createCounterStyleFromSymbols(value, '子丑寅卯辰巳午未申酉戌亥', cjkSuffix); |
| 5136 | - case 16 /* CJK_HEAVENLY_STEM */: | |
| 4966 | + case LIST_STYLE_TYPE.CJK_HEAVENLY_STEM: | |
| 5137 | 4967 | return createCounterStyleFromSymbols(value, '甲乙丙丁戊己庚辛壬癸', cjkSuffix); |
| 5138 | - case 17 /* CJK_IDEOGRAPHIC */: | |
| 5139 | - case 48 /* TRAD_CHINESE_INFORMAL */: | |
| 4968 | + case LIST_STYLE_TYPE.CJK_IDEOGRAPHIC: | |
| 4969 | + case LIST_STYLE_TYPE.TRAD_CHINESE_INFORMAL: | |
| 5140 | 4970 | return createCJKCounter(value, '零一二三四五六七八九', CHINESE_INFORMAL_MULTIPLIERS, '負', cjkSuffix, CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS); |
| 5141 | - case 47 /* TRAD_CHINESE_FORMAL */: | |
| 4971 | + case LIST_STYLE_TYPE.TRAD_CHINESE_FORMAL: | |
| 5142 | 4972 | return createCJKCounter(value, '零壹貳參肆伍陸柒捌玖', CHINESE_FORMAL_MULTIPLIERS, '負', cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS); |
| 5143 | - case 42 /* SIMP_CHINESE_INFORMAL */: | |
| 4973 | + case LIST_STYLE_TYPE.SIMP_CHINESE_INFORMAL: | |
| 5144 | 4974 | return createCJKCounter(value, '零一二三四五六七八九', CHINESE_INFORMAL_MULTIPLIERS, '负', cjkSuffix, CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS); |
| 5145 | - case 41 /* SIMP_CHINESE_FORMAL */: | |
| 4975 | + case LIST_STYLE_TYPE.SIMP_CHINESE_FORMAL: | |
| 5146 | 4976 | return createCJKCounter(value, '零壹贰叁肆伍陆柒捌玖', CHINESE_FORMAL_MULTIPLIERS, '负', cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS); |
| 5147 | - case 26 /* JAPANESE_INFORMAL */: | |
| 4977 | + case LIST_STYLE_TYPE.JAPANESE_INFORMAL: | |
| 5148 | 4978 | return createCJKCounter(value, '〇一二三四五六七八九', '十百千万', JAPANESE_NEGATIVE, cjkSuffix, 0); |
| 5149 | - case 25 /* JAPANESE_FORMAL */: | |
| 4979 | + case LIST_STYLE_TYPE.JAPANESE_FORMAL: | |
| 5150 | 4980 | return createCJKCounter(value, '零壱弐参四伍六七八九', '拾百千万', JAPANESE_NEGATIVE, cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS); |
| 5151 | - case 31 /* KOREAN_HANGUL_FORMAL */: | |
| 4981 | + case LIST_STYLE_TYPE.KOREAN_HANGUL_FORMAL: | |
| 5152 | 4982 | return createCJKCounter(value, '영일이삼사오육칠팔구', '십백천만', KOREAN_NEGATIVE, koreanSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS); |
| 5153 | - case 33 /* KOREAN_HANJA_INFORMAL */: | |
| 4983 | + case LIST_STYLE_TYPE.KOREAN_HANJA_INFORMAL: | |
| 5154 | 4984 | return createCJKCounter(value, '零一二三四五六七八九', '十百千萬', KOREAN_NEGATIVE, koreanSuffix, 0); |
| 5155 | - case 32 /* KOREAN_HANJA_FORMAL */: | |
| 4985 | + case LIST_STYLE_TYPE.KOREAN_HANJA_FORMAL: | |
| 5156 | 4986 | return createCJKCounter(value, '零壹貳參四五六七八九', '拾百千', KOREAN_NEGATIVE, koreanSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS); |
| 5157 | - case 18 /* DEVANAGARI */: | |
| 4987 | + case LIST_STYLE_TYPE.DEVANAGARI: | |
| 5158 | 4988 | return createCounterStyleFromRange(value, 0x966, 0x96f, true, defaultSuffix); |
| 5159 | - case 20 /* GEORGIAN */: | |
| 5160 | - return createAdditiveCounter(value, 1, 19999, GEORGIAN, 3 /* DECIMAL */, defaultSuffix); | |
| 5161 | - case 21 /* GUJARATI */: | |
| 4989 | + case LIST_STYLE_TYPE.GEORGIAN: | |
| 4990 | + return createAdditiveCounter(value, 1, 19999, GEORGIAN, LIST_STYLE_TYPE.DECIMAL, defaultSuffix); | |
| 4991 | + case LIST_STYLE_TYPE.GUJARATI: | |
| 5162 | 4992 | return createCounterStyleFromRange(value, 0xae6, 0xaef, true, defaultSuffix); |
| 5163 | - case 22 /* GURMUKHI */: | |
| 4993 | + case LIST_STYLE_TYPE.GURMUKHI: | |
| 5164 | 4994 | return createCounterStyleFromRange(value, 0xa66, 0xa6f, true, defaultSuffix); |
| 5165 | - case 22 /* HEBREW */: | |
| 5166 | - return createAdditiveCounter(value, 1, 10999, HEBREW, 3 /* DECIMAL */, defaultSuffix); | |
| 5167 | - case 23 /* HIRAGANA */: | |
| 4995 | + case LIST_STYLE_TYPE.HEBREW: | |
| 4996 | + return createAdditiveCounter(value, 1, 10999, HEBREW, LIST_STYLE_TYPE.DECIMAL, defaultSuffix); | |
| 4997 | + case LIST_STYLE_TYPE.HIRAGANA: | |
| 5168 | 4998 | return createCounterStyleFromSymbols(value, 'あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん'); |
| 5169 | - case 24 /* HIRAGANA_IROHA */: | |
| 4999 | + case LIST_STYLE_TYPE.HIRAGANA_IROHA: | |
| 5170 | 5000 | return createCounterStyleFromSymbols(value, 'いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす'); |
| 5171 | - case 27 /* KANNADA */: | |
| 5001 | + case LIST_STYLE_TYPE.KANNADA: | |
| 5172 | 5002 | return createCounterStyleFromRange(value, 0xce6, 0xcef, true, defaultSuffix); |
| 5173 | - case 28 /* KATAKANA */: | |
| 5003 | + case LIST_STYLE_TYPE.KATAKANA: | |
| 5174 | 5004 | return createCounterStyleFromSymbols(value, 'アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン', cjkSuffix); |
| 5175 | - case 29 /* KATAKANA_IROHA */: | |
| 5005 | + case LIST_STYLE_TYPE.KATAKANA_IROHA: | |
| 5176 | 5006 | return createCounterStyleFromSymbols(value, 'イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス', cjkSuffix); |
| 5177 | - case 34 /* LAO */: | |
| 5007 | + case LIST_STYLE_TYPE.LAO: | |
| 5178 | 5008 | return createCounterStyleFromRange(value, 0xed0, 0xed9, true, defaultSuffix); |
| 5179 | - case 37 /* MONGOLIAN */: | |
| 5009 | + case LIST_STYLE_TYPE.MONGOLIAN: | |
| 5180 | 5010 | return createCounterStyleFromRange(value, 0x1810, 0x1819, true, defaultSuffix); |
| 5181 | - case 38 /* MYANMAR */: | |
| 5011 | + case LIST_STYLE_TYPE.MYANMAR: | |
| 5182 | 5012 | return createCounterStyleFromRange(value, 0x1040, 0x1049, true, defaultSuffix); |
| 5183 | - case 39 /* ORIYA */: | |
| 5013 | + case LIST_STYLE_TYPE.ORIYA: | |
| 5184 | 5014 | return createCounterStyleFromRange(value, 0xb66, 0xb6f, true, defaultSuffix); |
| 5185 | - case 40 /* PERSIAN */: | |
| 5015 | + case LIST_STYLE_TYPE.PERSIAN: | |
| 5186 | 5016 | return createCounterStyleFromRange(value, 0x6f0, 0x6f9, true, defaultSuffix); |
| 5187 | - case 43 /* TAMIL */: | |
| 5017 | + case LIST_STYLE_TYPE.TAMIL: | |
| 5188 | 5018 | return createCounterStyleFromRange(value, 0xbe6, 0xbef, true, defaultSuffix); |
| 5189 | - case 44 /* TELUGU */: | |
| 5019 | + case LIST_STYLE_TYPE.TELUGU: | |
| 5190 | 5020 | return createCounterStyleFromRange(value, 0xc66, 0xc6f, true, defaultSuffix); |
| 5191 | - case 45 /* THAI */: | |
| 5021 | + case LIST_STYLE_TYPE.THAI: | |
| 5192 | 5022 | return createCounterStyleFromRange(value, 0xe50, 0xe59, true, defaultSuffix); |
| 5193 | - case 46 /* TIBETAN */: | |
| 5023 | + case LIST_STYLE_TYPE.TIBETAN: | |
| 5194 | 5024 | return createCounterStyleFromRange(value, 0xf20, 0xf29, true, defaultSuffix); |
| 5195 | - case 3 /* DECIMAL */: | |
| 5025 | + case LIST_STYLE_TYPE.DECIMAL: | |
| 5196 | 5026 | default: |
| 5197 | 5027 | return createCounterStyleFromRange(value, 48, 57, true, defaultSuffix); |
| 5198 | 5028 | } |
| 5199 | 5029 | }; |
| @@ -5199,10 +5029,9 @@ | ||
| 5199 | 5029 | }; |
| 5200 | 5030 | |
| 5201 | 5031 | var IGNORE_ATTRIBUTE = 'data-html2canvas-ignore'; |
| 5202 | 5032 | var DocumentCloner = /** @class */ (function () { |
| 5203 | - function DocumentCloner(context, element, options) { | |
| 5204 | - this.context = context; | |
| 5033 | + function DocumentCloner(element, options) { | |
| 5205 | 5034 | this.options = options; |
| 5206 | 5035 | this.scrolledElements = []; |
| 5207 | 5036 | this.referenceElement = element; |
| 5208 | 5037 | this.counters = new CounterState(); |
| @@ -5209,9 +5038,9 @@ | ||
| 5209 | 5038 | this.quoteDepth = 0; |
| 5210 | 5039 | if (!element.ownerDocument) { |
| 5211 | 5040 | throw new Error('Cloned element does not have an owner document'); |
| 5212 | 5041 | } |
| 5213 | - this.documentElement = this.cloneNode(element.ownerDocument.documentElement, false); | |
| 5042 | + this.documentElement = this.cloneNode(element.ownerDocument.documentElement); | |
| 5214 | 5043 | } |
| 5215 | 5044 | DocumentCloner.prototype.toIFrame = function (ownerDocument, windowSize) { |
| 5216 | 5045 | var _this = this; |
| 5217 | 5046 | var iframe = createIFrameContainer(ownerDocument, windowSize); |
| @@ -5225,9 +5054,9 @@ | ||
| 5225 | 5054 | /* Chrome doesn't detect relative background-images assigned in inline <style> sheets when fetched through getComputedStyle |
| 5226 | 5055 | if window url is about:blank, we can assign the url to current by writing onto the document |
| 5227 | 5056 | */ |
| 5228 | 5057 | var iframeLoad = iframeLoader(iframe).then(function () { return __awaiter(_this, void 0, void 0, function () { |
| 5229 | - var onclone, referenceElement; | |
| 5058 | + var onclone; | |
| 5230 | 5059 | return __generator(this, function (_a) { |
| 5231 | 5060 | switch (_a.label) { |
| 5232 | 5061 | case 0: |
| 5233 | 5062 | this.scrolledElements.forEach(restoreNodeScroll); |
| @@ -5234,15 +5063,15 @@ | ||
| 5234 | 5063 | if (cloneWindow) { |
| 5235 | 5064 | cloneWindow.scrollTo(windowSize.left, windowSize.top); |
| 5236 | 5065 | if (/(iPad|iPhone|iPod)/g.test(navigator.userAgent) && |
| 5237 | 5066 | (cloneWindow.scrollY !== windowSize.top || cloneWindow.scrollX !== windowSize.left)) { |
| 5238 | - this.context.logger.warn('Unable to restore scroll position for cloned document'); | |
| 5239 | - this.context.windowBounds = this.context.windowBounds.add(cloneWindow.scrollX - windowSize.left, cloneWindow.scrollY - windowSize.top, 0, 0); | |
| 5067 | + documentClone.documentElement.style.top = -windowSize.top + 'px'; | |
| 5068 | + documentClone.documentElement.style.left = -windowSize.left + 'px'; | |
| 5069 | + documentClone.documentElement.style.position = 'absolute'; | |
| 5240 | 5070 | } |
| 5241 | 5071 | } |
| 5242 | 5072 | onclone = this.options.onclone; |
| 5243 | - referenceElement = this.clonedReferenceElement; | |
| 5244 | - if (typeof referenceElement === 'undefined') { | |
| 5073 | + if (typeof this.clonedReferenceElement === 'undefined') { | |
| 5245 | 5074 | return [2 /*return*/, Promise.reject("Error finding the " + this.referenceElement.nodeName + " in the cloned document")]; |
| 5246 | 5075 | } |
| 5247 | 5076 | if (!(documentClone.fonts && documentClone.fonts.ready)) return [3 /*break*/, 2]; |
| 5248 | 5077 | return [4 /*yield*/, documentClone.fonts.ready]; |
| @@ -5249,18 +5078,12 @@ | ||
| 5249 | 5078 | case 1: |
| 5250 | 5079 | _a.sent(); |
| 5251 | 5080 | _a.label = 2; |
| 5252 | 5081 | case 2: |
| 5253 | - if (!/(AppleWebKit)/g.test(navigator.userAgent)) return [3 /*break*/, 4]; | |
| 5254 | - return [4 /*yield*/, imagesReady(documentClone)]; | |
| 5255 | - case 3: | |
| 5256 | - _a.sent(); | |
| 5257 | - _a.label = 4; | |
| 5258 | - case 4: | |
| 5259 | 5082 | if (typeof onclone === 'function') { |
| 5260 | 5083 | return [2 /*return*/, Promise.resolve() |
| 5261 | - .then(function () { return onclone(documentClone, referenceElement); }) | |
| 5262 | - .then(function () { return iframe; })]; | |
| 5084 | + .then(function () { return onclone(documentClone); }) | |
| 5085 | + .then(function () { return iframe; })]; | |
| 5263 | 5086 | } |
| 5264 | 5087 | return [2 /*return*/, iframe]; |
| 5265 | 5088 | } |
| 5266 | 5089 | }); |
| @@ -5273,40 +5096,27 @@ | ||
| 5273 | 5096 | documentClone.close(); |
| 5274 | 5097 | return iframeLoad; |
| 5275 | 5098 | }; |
| 5276 | 5099 | DocumentCloner.prototype.createElementClone = function (node) { |
| 5277 | - if (isDebugging(node, 2 /* CLONE */)) { | |
| 5278 | - debugger; | |
| 5279 | - } | |
| 5280 | 5100 | if (isCanvasElement(node)) { |
| 5281 | 5101 | return this.createCanvasClone(node); |
| 5282 | 5102 | } |
| 5283 | - if (isVideoElement(node)) { | |
| 5284 | - return this.createVideoClone(node); | |
| 5103 | + /* | |
| 5104 | + if (isIFrameElement(node)) { | |
| 5105 | + return this.createIFrameClone(node); | |
| 5285 | 5106 | } |
| 5107 | + */ | |
| 5286 | 5108 | if (isStyleElement(node)) { |
| 5287 | 5109 | return this.createStyleClone(node); |
| 5288 | 5110 | } |
| 5289 | 5111 | var clone = node.cloneNode(false); |
| 5290 | - if (isImageElement(clone)) { | |
| 5291 | - if (isImageElement(node) && node.currentSrc && node.currentSrc !== node.src) { | |
| 5292 | - clone.src = node.currentSrc; | |
| 5293 | - clone.srcset = ''; | |
| 5294 | - } | |
| 5295 | - if (clone.loading === 'lazy') { | |
| 5296 | - clone.loading = 'eager'; | |
| 5297 | - } | |
| 5112 | + // @ts-ignore | |
| 5113 | + if (isImageElement(clone) && clone.loading === 'lazy') { | |
| 5114 | + // @ts-ignore | |
| 5115 | + clone.loading = 'eager'; | |
| 5298 | 5116 | } |
| 5299 | - if (isCustomElement(clone)) { | |
| 5300 | - return this.createCustomElementClone(clone); | |
| 5301 | - } | |
| 5302 | 5117 | return clone; |
| 5303 | 5118 | }; |
| 5304 | - DocumentCloner.prototype.createCustomElementClone = function (node) { | |
| 5305 | - var clone = document.createElement('html2canvascustomelement'); | |
| 5306 | - copyCSSStyles(node.style, clone); | |
| 5307 | - return clone; | |
| 5308 | - }; | |
| 5309 | 5119 | DocumentCloner.prototype.createStyleClone = function (node) { |
| 5310 | 5120 | try { |
| 5311 | 5121 | var sheet = node.sheet; |
| 5312 | 5122 | if (sheet && sheet.cssRules) { |
| @@ -5322,9 +5132,9 @@ | ||
| 5322 | 5132 | } |
| 5323 | 5133 | } |
| 5324 | 5134 | catch (e) { |
| 5325 | 5135 | // accessing node.sheet.cssRules throws a DOMException |
| 5326 | - this.context.logger.error('Unable to access cssRules property', e); | |
| 5136 | + Logger.getInstance(this.options.id).error('Unable to access cssRules property', e); | |
| 5327 | 5137 | if (e.name !== 'SecurityError') { |
| 5328 | 5138 | throw e; |
| 5329 | 5139 | } |
| 5330 | 5140 | } |
| @@ -5330,9 +5140,8 @@ | ||
| 5330 | 5140 | } |
| 5331 | 5141 | return node.cloneNode(false); |
| 5332 | 5142 | }; |
| 5333 | 5143 | DocumentCloner.prototype.createCanvasClone = function (canvas) { |
| 5334 | - var _a; | |
| 5335 | 5144 | if (this.options.inlineImages && canvas.ownerDocument) { |
| 5336 | 5145 | var img = canvas.ownerDocument.createElement('img'); |
| 5337 | 5146 | try { |
| 5338 | 5147 | img.src = canvas.toDataURL(); |
| @@ -5338,9 +5147,9 @@ | ||
| 5338 | 5147 | img.src = canvas.toDataURL(); |
| 5339 | 5148 | return img; |
| 5340 | 5149 | } |
| 5341 | 5150 | catch (e) { |
| 5342 | - this.context.logger.info("Unable to inline canvas contents, canvas is tainted", canvas); | |
| 5151 | + Logger.getInstance(this.options.id).info("Unable to clone canvas contents, canvas is tainted"); | |
| 5343 | 5152 | } |
| 5344 | 5153 | } |
| 5345 | 5154 | var clonedCanvas = canvas.cloneNode(false); |
| 5346 | 5155 | try { |
| @@ -5348,76 +5157,82 @@ | ||
| 5348 | 5157 | clonedCanvas.height = canvas.height; |
| 5349 | 5158 | var ctx = canvas.getContext('2d'); |
| 5350 | 5159 | var clonedCtx = clonedCanvas.getContext('2d'); |
| 5351 | 5160 | if (clonedCtx) { |
| 5352 | - if (!this.options.allowTaint && ctx) { | |
| 5161 | + if (ctx) { | |
| 5353 | 5162 | clonedCtx.putImageData(ctx.getImageData(0, 0, canvas.width, canvas.height), 0, 0); |
| 5354 | 5163 | } |
| 5355 | 5164 | else { |
| 5356 | - var gl = (_a = canvas.getContext('webgl2')) !== null && _a !== void 0 ? _a : canvas.getContext('webgl'); | |
| 5357 | - if (gl) { | |
| 5358 | - var attribs = gl.getContextAttributes(); | |
| 5359 | - if ((attribs === null || attribs === void 0 ? void 0 : attribs.preserveDrawingBuffer) === false) { | |
| 5360 | - this.context.logger.warn('Unable to clone WebGL context as it has preserveDrawingBuffer=false', canvas); | |
| 5361 | - } | |
| 5362 | - } | |
| 5363 | 5165 | clonedCtx.drawImage(canvas, 0, 0); |
| 5364 | 5166 | } |
| 5365 | 5167 | } |
| 5366 | 5168 | return clonedCanvas; |
| 5367 | 5169 | } |
| 5368 | - catch (e) { | |
| 5369 | - this.context.logger.info("Unable to clone canvas as it is tainted", canvas); | |
| 5370 | - } | |
| 5170 | + catch (e) { } | |
| 5371 | 5171 | return clonedCanvas; |
| 5372 | 5172 | }; |
| 5373 | - DocumentCloner.prototype.createVideoClone = function (video) { | |
| 5374 | - var canvas = video.ownerDocument.createElement('canvas'); | |
| 5375 | - canvas.width = video.offsetWidth; | |
| 5376 | - canvas.height = video.offsetHeight; | |
| 5377 | - var ctx = canvas.getContext('2d'); | |
| 5378 | - try { | |
| 5379 | - if (ctx) { | |
| 5380 | - ctx.drawImage(video, 0, 0, canvas.width, canvas.height); | |
| 5381 | - if (!this.options.allowTaint) { | |
| 5382 | - ctx.getImageData(0, 0, canvas.width, canvas.height); | |
| 5383 | - } | |
| 5384 | - } | |
| 5385 | - return canvas; | |
| 5386 | - } | |
| 5387 | - catch (e) { | |
| 5388 | - this.context.logger.info("Unable to clone video as it is tainted", video); | |
| 5389 | - } | |
| 5390 | - var blankCanvas = video.ownerDocument.createElement('canvas'); | |
| 5391 | - blankCanvas.width = video.offsetWidth; | |
| 5392 | - blankCanvas.height = video.offsetHeight; | |
| 5393 | - return blankCanvas; | |
| 5394 | - }; | |
| 5395 | - DocumentCloner.prototype.appendChildNode = function (clone, child, copyStyles) { | |
| 5396 | - if (!isElementNode(child) || | |
| 5397 | - (!isScriptElement(child) && | |
| 5398 | - !child.hasAttribute(IGNORE_ATTRIBUTE) && | |
| 5399 | - (typeof this.options.ignoreElements !== 'function' || !this.options.ignoreElements(child)))) { | |
| 5400 | - if (!this.options.copyStyles || !isElementNode(child) || !isStyleElement(child)) { | |
| 5401 | - clone.appendChild(this.cloneNode(child, copyStyles)); | |
| 5402 | - } | |
| 5403 | - } | |
| 5404 | - }; | |
| 5405 | - DocumentCloner.prototype.cloneChildNodes = function (node, clone, copyStyles) { | |
| 5406 | - var _this = this; | |
| 5407 | - for (var child = node.shadowRoot ? node.shadowRoot.firstChild : node.firstChild; child; child = child.nextSibling) { | |
| 5408 | - if (isElementNode(child) && isSlotElement(child) && typeof child.assignedNodes === 'function') { | |
| 5409 | - var assignedNodes = child.assignedNodes(); | |
| 5410 | - if (assignedNodes.length) { | |
| 5411 | - assignedNodes.forEach(function (assignedNode) { return _this.appendChildNode(clone, assignedNode, copyStyles); }); | |
| 5412 | - } | |
| 5413 | - } | |
| 5414 | - else { | |
| 5415 | - this.appendChildNode(clone, child, copyStyles); | |
| 5416 | - } | |
| 5417 | - } | |
| 5418 | - }; | |
| 5419 | - DocumentCloner.prototype.cloneNode = function (node, copyStyles) { | |
| 5173 | + /* | |
| 5174 | + createIFrameClone(iframe: HTMLIFrameElement) { | |
| 5175 | + const tempIframe = <HTMLIFrameElement>iframe.cloneNode(false); | |
| 5176 | + const iframeKey = generateIframeKey(); | |
| 5177 | + tempIframe.setAttribute('data-html2canvas-internal-iframe-key', iframeKey); | |
| 5178 | + | |
| 5179 | + const {width, height} = parseBounds(iframe); | |
| 5180 | + | |
| 5181 | + this.resourceLoader.cache[iframeKey] = getIframeDocumentElement(iframe, this.options) | |
| 5182 | + .then(documentElement => { | |
| 5183 | + return this.renderer( | |
| 5184 | + documentElement, | |
| 5185 | + { | |
| 5186 | + allowTaint: this.options.allowTaint, | |
| 5187 | + backgroundColor: '#ffffff', | |
| 5188 | + canvas: null, | |
| 5189 | + imageTimeout: this.options.imageTimeout, | |
| 5190 | + logging: this.options.logging, | |
| 5191 | + proxy: this.options.proxy, | |
| 5192 | + removeContainer: this.options.removeContainer, | |
| 5193 | + scale: this.options.scale, | |
| 5194 | + foreignObjectRendering: this.options.foreignObjectRendering, | |
| 5195 | + useCORS: this.options.useCORS, | |
| 5196 | + target: new CanvasRenderer(), | |
| 5197 | + width, | |
| 5198 | + height, | |
| 5199 | + x: 0, | |
| 5200 | + y: 0, | |
| 5201 | + windowWidth: documentElement.ownerDocument.defaultView.innerWidth, | |
| 5202 | + windowHeight: documentElement.ownerDocument.defaultView.innerHeight, | |
| 5203 | + scrollX: documentElement.ownerDocument.defaultView.pageXOffset, | |
| 5204 | + scrollY: documentElement.ownerDocument.defaultView.pageYOffset | |
| 5205 | + }, | |
| 5206 | + ); | |
| 5207 | + }) | |
| 5208 | + .then( | |
| 5209 | + (canvas: HTMLCanvasElement) => | |
| 5210 | + new Promise((resolve, reject) => { | |
| 5211 | + const iframeCanvas = document.createElement('img'); | |
| 5212 | + iframeCanvas.onload = () => resolve(canvas); | |
| 5213 | + iframeCanvas.onerror = (event) => { | |
| 5214 | + // Empty iframes may result in empty "data:," URLs, which are invalid from the <img>'s point of view | |
| 5215 | + // and instead of `onload` cause `onerror` and unhandled rejection warnings | |
| 5216 | + // https://github.com/niklasvh/html2canvas/issues/1502 | |
| 5217 | + iframeCanvas.src == 'data:,' ? resolve(canvas) : reject(event); | |
| 5218 | + }; | |
| 5219 | + iframeCanvas.src = canvas.toDataURL(); | |
| 5220 | + if (tempIframe.parentNode && iframe.ownerDocument && iframe.ownerDocument.defaultView) { | |
| 5221 | + tempIframe.parentNode.replaceChild( | |
| 5222 | + copyCSSStyles( | |
| 5223 | + iframe.ownerDocument.defaultView.getComputedStyle(iframe), | |
| 5224 | + iframeCanvas | |
| 5225 | + ), | |
| 5226 | + tempIframe | |
| 5227 | + ); | |
| 5228 | + } | |
| 5229 | + }) | |
| 5230 | + ); | |
| 5231 | + return tempIframe; | |
| 5232 | + } | |
| 5233 | + */ | |
| 5234 | + DocumentCloner.prototype.cloneNode = function (node) { | |
| 5420 | 5235 | if (isTextNode(node)) { |
| 5421 | 5236 | return document.createTextNode(node.data); |
| 5422 | 5237 | } |
| 5423 | 5238 | if (!node.ownerDocument) { |
| @@ -5425,9 +5240,8 @@ | ||
| 5425 | 5240 | } |
| 5426 | 5241 | var window = node.ownerDocument.defaultView; |
| 5427 | 5242 | if (window && isElementNode(node) && (isHTMLElementNode(node) || isSVGElementNode(node))) { |
| 5428 | 5243 | var clone = this.createElementClone(node); |
| 5429 | - clone.style.transitionProperty = 'none'; | |
| 5430 | 5244 | var style = window.getComputedStyle(node); |
| 5431 | 5245 | var styleBefore = window.getComputedStyle(node, ':before'); |
| 5432 | 5246 | var styleAfter = window.getComputedStyle(node, ':after'); |
| 5433 | 5247 | if (this.referenceElement === node && isHTMLElementNode(clone)) { |
| @@ -5435,16 +5249,20 @@ | ||
| 5435 | 5249 | } |
| 5436 | 5250 | if (isBodyElement(clone)) { |
| 5437 | 5251 | createPseudoHideStyles(clone); |
| 5438 | 5252 | } |
| 5439 | - var counters = this.counters.parse(new CSSParsedCounterDeclaration(this.context, style)); | |
| 5253 | + var counters = this.counters.parse(new CSSParsedCounterDeclaration(style)); | |
| 5440 | 5254 | var before = this.resolvePseudoContent(node, clone, styleBefore, PseudoElementType.BEFORE); |
| 5441 | - if (isCustomElement(node)) { | |
| 5442 | - copyStyles = true; | |
| 5255 | + for (var child = node.firstChild; child; child = child.nextSibling) { | |
| 5256 | + if (!isElementNode(child) || | |
| 5257 | + (!isScriptElement(child) && | |
| 5258 | + !child.hasAttribute(IGNORE_ATTRIBUTE) && | |
| 5259 | + (typeof this.options.ignoreElements !== 'function' || !this.options.ignoreElements(child)))) { | |
| 5260 | + if (!this.options.copyStyles || !isElementNode(child) || !isStyleElement(child)) { | |
| 5261 | + clone.appendChild(this.cloneNode(child)); | |
| 5262 | + } | |
| 5263 | + } | |
| 5443 | 5264 | } |
| 5444 | - if (!isVideoElement(node)) { | |
| 5445 | - this.cloneChildNodes(node, clone, copyStyles); | |
| 5446 | - } | |
| 5447 | 5265 | if (before) { |
| 5448 | 5266 | clone.insertBefore(before, clone.firstChild); |
| 5449 | 5267 | } |
| 5450 | 5268 | var after = this.resolvePseudoContent(node, clone, styleAfter, PseudoElementType.AFTER); |
| @@ -5451,12 +5269,12 @@ | ||
| 5451 | 5269 | if (after) { |
| 5452 | 5270 | clone.appendChild(after); |
| 5453 | 5271 | } |
| 5454 | 5272 | this.counters.pop(counters); |
| 5455 | - if ((style && (this.options.copyStyles || isSVGElementNode(node)) && !isIFrameElement(node)) || | |
| 5456 | - copyStyles) { | |
| 5273 | + if (style && (this.options.copyStyles || isSVGElementNode(node)) && !isIFrameElement(node)) { | |
| 5457 | 5274 | copyCSSStyles(style, clone); |
| 5458 | 5275 | } |
| 5276 | + //this.inlineAllImages(clone); | |
| 5459 | 5277 | if (node.scrollTop !== 0 || node.scrollLeft !== 0) { |
| 5460 | 5278 | this.scrolledElements.push([clone, node.scrollLeft, node.scrollTop]); |
| 5461 | 5279 | } |
| 5462 | 5280 | if ((isTextareaElement(node) || isSelectElement(node)) && |
| @@ -5476,23 +5294,23 @@ | ||
| 5476 | 5294 | var document = clone.ownerDocument; |
| 5477 | 5295 | if (!document || !value || value === 'none' || value === '-moz-alt-content' || style.display === 'none') { |
| 5478 | 5296 | return; |
| 5479 | 5297 | } |
| 5480 | - this.counters.parse(new CSSParsedCounterDeclaration(this.context, style)); | |
| 5481 | - var declaration = new CSSParsedPseudoDeclaration(this.context, style); | |
| 5298 | + this.counters.parse(new CSSParsedCounterDeclaration(style)); | |
| 5299 | + var declaration = new CSSParsedPseudoDeclaration(style); | |
| 5482 | 5300 | var anonymousReplacedElement = document.createElement('html2canvaspseudoelement'); |
| 5483 | 5301 | copyCSSStyles(style, anonymousReplacedElement); |
| 5484 | 5302 | declaration.content.forEach(function (token) { |
| 5485 | - if (token.type === 0 /* STRING_TOKEN */) { | |
| 5303 | + if (token.type === TokenType.STRING_TOKEN) { | |
| 5486 | 5304 | anonymousReplacedElement.appendChild(document.createTextNode(token.value)); |
| 5487 | 5305 | } |
| 5488 | - else if (token.type === 22 /* URL_TOKEN */) { | |
| 5306 | + else if (token.type === TokenType.URL_TOKEN) { | |
| 5489 | 5307 | var img = document.createElement('img'); |
| 5490 | 5308 | img.src = token.value; |
| 5491 | 5309 | img.style.opacity = '1'; |
| 5492 | 5310 | anonymousReplacedElement.appendChild(img); |
| 5493 | 5311 | } |
| 5494 | - else if (token.type === 18 /* FUNCTION */) { | |
| 5312 | + else if (token.type === TokenType.FUNCTION) { | |
| 5495 | 5313 | if (token.name === 'attr') { |
| 5496 | 5314 | var attr = token.values.filter(isIdentToken); |
| 5497 | 5315 | if (attr.length) { |
| 5498 | 5316 | anonymousReplacedElement.appendChild(document.createTextNode(node.getAttribute(attr[0].value) || '')); |
| @@ -5502,10 +5320,10 @@ | ||
| 5502 | 5320 | var _a = token.values.filter(nonFunctionArgSeparator), counter = _a[0], counterStyle = _a[1]; |
| 5503 | 5321 | if (counter && isIdentToken(counter)) { |
| 5504 | 5322 | var counterState = _this.counters.getCounterValue(counter.value); |
| 5505 | 5323 | var counterType = counterStyle && isIdentToken(counterStyle) |
| 5506 | - ? listStyleType.parse(_this.context, counterStyle.value) | |
| 5507 | - : 3 /* DECIMAL */; | |
| 5324 | + ? listStyleType.parse(counterStyle.value) | |
| 5325 | + : LIST_STYLE_TYPE.DECIMAL; | |
| 5508 | 5326 | anonymousReplacedElement.appendChild(document.createTextNode(createCounterText(counterState, counterType, false))); |
| 5509 | 5327 | } |
| 5510 | 5328 | } |
| 5511 | 5329 | else if (token.name === 'counters') { |
| @@ -5512,11 +5330,11 @@ | ||
| 5512 | 5330 | var _b = token.values.filter(nonFunctionArgSeparator), counter = _b[0], delim = _b[1], counterStyle = _b[2]; |
| 5513 | 5331 | if (counter && isIdentToken(counter)) { |
| 5514 | 5332 | var counterStates = _this.counters.getCounterValues(counter.value); |
| 5515 | 5333 | var counterType_1 = counterStyle && isIdentToken(counterStyle) |
| 5516 | - ? listStyleType.parse(_this.context, counterStyle.value) | |
| 5517 | - : 3 /* DECIMAL */; | |
| 5518 | - var separator = delim && delim.type === 0 /* STRING_TOKEN */ ? delim.value : ''; | |
| 5334 | + ? listStyleType.parse(counterStyle.value) | |
| 5335 | + : LIST_STYLE_TYPE.DECIMAL; | |
| 5336 | + var separator = delim && delim.type === TokenType.STRING_TOKEN ? delim.value : ''; | |
| 5519 | 5337 | var text = counterStates |
| 5520 | 5338 | .map(function (value) { return createCounterText(value, counterType_1, false); }) |
| 5521 | 5339 | .join(separator); |
| 5522 | 5340 | anonymousReplacedElement.appendChild(document.createTextNode(text)); |
| @@ -5521,11 +5339,10 @@ | ||
| 5521 | 5339 | .join(separator); |
| 5522 | 5340 | anonymousReplacedElement.appendChild(document.createTextNode(text)); |
| 5523 | 5341 | } |
| 5524 | 5342 | } |
| 5525 | - else ; | |
| 5526 | 5343 | } |
| 5527 | - else if (token.type === 20 /* IDENT_TOKEN */) { | |
| 5344 | + else if (token.type === TokenType.IDENT_TOKEN) { | |
| 5528 | 5345 | switch (token.value) { |
| 5529 | 5346 | case 'open-quote': |
| 5530 | 5347 | anonymousReplacedElement.appendChild(document.createTextNode(getQuote(declaration.quotes, _this.quoteDepth++, true))); |
| 5531 | 5348 | break; |
| @@ -5578,25 +5395,8 @@ | ||
| 5578 | 5395 | cloneIframeContainer.setAttribute(IGNORE_ATTRIBUTE, 'true'); |
| 5579 | 5396 | ownerDocument.body.appendChild(cloneIframeContainer); |
| 5580 | 5397 | return cloneIframeContainer; |
| 5581 | 5398 | }; |
| 5582 | - var imageReady = function (img) { | |
| 5583 | - return new Promise(function (resolve) { | |
| 5584 | - if (img.complete) { | |
| 5585 | - resolve(); | |
| 5586 | - return; | |
| 5587 | - } | |
| 5588 | - if (!img.src) { | |
| 5589 | - resolve(); | |
| 5590 | - return; | |
| 5591 | - } | |
| 5592 | - img.onload = resolve; | |
| 5593 | - img.onerror = resolve; | |
| 5594 | - }); | |
| 5595 | - }; | |
| 5596 | - var imagesReady = function (document) { | |
| 5597 | - return Promise.all([].slice.call(document.images, 0).map(imageReady)); | |
| 5598 | - }; | |
| 5599 | 5399 | var iframeLoader = function (iframe) { |
| 5600 | 5400 | return new Promise(function (resolve, reject) { |
| 5601 | 5401 | var cloneWindow = iframe.contentWindow; |
| 5602 | 5402 | if (!cloneWindow) { |
| @@ -5602,10 +5402,10 @@ | ||
| 5602 | 5402 | if (!cloneWindow) { |
| 5603 | 5403 | return reject("No window assigned for iframe"); |
| 5604 | 5404 | } |
| 5605 | 5405 | var documentClone = cloneWindow.document; |
| 5606 | - cloneWindow.onload = iframe.onload = function () { | |
| 5607 | - cloneWindow.onload = iframe.onload = null; | |
| 5406 | + cloneWindow.onload = iframe.onload = documentClone.onreadystatechange = function () { | |
| 5407 | + cloneWindow.onload = iframe.onload = documentClone.onreadystatechange = null; | |
| 5608 | 5408 | var interval = setInterval(function () { |
| 5609 | 5409 | if (documentClone.body.childNodes.length > 0 && documentClone.readyState === 'complete') { |
| 5610 | 5410 | clearInterval(interval); |
| 5611 | 5411 | resolve(iframe); |
| @@ -5613,18 +5413,14 @@ | ||
| 5613 | 5413 | }, 50); |
| 5614 | 5414 | }; |
| 5615 | 5415 | }); |
| 5616 | 5416 | }; |
| 5617 | - var ignoredStyleProperties = [ | |
| 5618 | - 'all', | |
| 5619 | - 'd', | |
| 5620 | - 'content' // Safari shows pseudoelements if content is set | |
| 5621 | - ]; | |
| 5622 | 5417 | var copyCSSStyles = function (style, target) { |
| 5623 | 5418 | // Edge does not provide value for cssText |
| 5624 | 5419 | for (var i = style.length - 1; i >= 0; i--) { |
| 5625 | 5420 | var property = style.item(i); |
| 5626 | - if (ignoredStyleProperties.indexOf(property) === -1) { | |
| 5421 | + // Safari shows pseudoelements if content is set | |
| 5422 | + if (property !== 'content') { | |
| 5627 | 5423 | target.style.setProperty(property, style.getPropertyValue(property)); |
| 5628 | 5424 | } |
| 5629 | 5425 | } |
| 5630 | 5426 | return target; |
| @@ -5677,167 +5473,38 @@ | ||
| 5677 | 5473 | body.appendChild(style); |
| 5678 | 5474 | } |
| 5679 | 5475 | }; |
| 5680 | 5476 | |
| 5681 | - var CacheStorage = /** @class */ (function () { | |
| 5682 | - function CacheStorage() { | |
| 5477 | + var PathType; | |
| 5478 | + (function (PathType) { | |
| 5479 | + PathType[PathType["VECTOR"] = 0] = "VECTOR"; | |
| 5480 | + PathType[PathType["BEZIER_CURVE"] = 1] = "BEZIER_CURVE"; | |
| 5481 | + })(PathType || (PathType = {})); | |
| 5482 | + var equalPath = function (a, b) { | |
| 5483 | + if (a.length === b.length) { | |
| 5484 | + return a.some(function (v, i) { return v === b[i]; }); | |
| 5683 | 5485 | } |
| 5684 | - CacheStorage.getOrigin = function (url) { | |
| 5685 | - var link = CacheStorage._link; | |
| 5686 | - if (!link) { | |
| 5687 | - return 'about:blank'; | |
| 5486 | + return false; | |
| 5487 | + }; | |
| 5488 | + var transformPath = function (path, deltaX, deltaY, deltaW, deltaH) { | |
| 5489 | + return path.map(function (point, index) { | |
| 5490 | + switch (index) { | |
| 5491 | + case 0: | |
| 5492 | + return point.add(deltaX, deltaY); | |
| 5493 | + case 1: | |
| 5494 | + return point.add(deltaX + deltaW, deltaY); | |
| 5495 | + case 2: | |
| 5496 | + return point.add(deltaX + deltaW, deltaY + deltaH); | |
| 5497 | + case 3: | |
| 5498 | + return point.add(deltaX, deltaY + deltaH); | |
| 5688 | 5499 | } |
| 5689 | - link.href = url; | |
| 5690 | - link.href = link.href; // IE9, LOL! - http://jsfiddle.net/niklasvh/2e48b/ | |
| 5691 | - return link.protocol + link.hostname + link.port; | |
| 5692 | - }; | |
| 5693 | - CacheStorage.isSameOrigin = function (src) { | |
| 5694 | - return CacheStorage.getOrigin(src) === CacheStorage._origin; | |
| 5695 | - }; | |
| 5696 | - CacheStorage.setContext = function (window) { | |
| 5697 | - CacheStorage._link = window.document.createElement('a'); | |
| 5698 | - CacheStorage._origin = CacheStorage.getOrigin(window.location.href); | |
| 5699 | - }; | |
| 5700 | - CacheStorage._origin = 'about:blank'; | |
| 5701 | - return CacheStorage; | |
| 5702 | - }()); | |
| 5703 | - var Cache = /** @class */ (function () { | |
| 5704 | - function Cache(context, _options) { | |
| 5705 | - this.context = context; | |
| 5706 | - this._options = _options; | |
| 5707 | - // eslint-disable-next-line @typescript-eslint/no-explicit-any | |
| 5708 | - this._cache = {}; | |
| 5709 | - } | |
| 5710 | - Cache.prototype.addImage = function (src) { | |
| 5711 | - var result = Promise.resolve(); | |
| 5712 | - if (this.has(src)) { | |
| 5713 | - return result; | |
| 5714 | - } | |
| 5715 | - if (isBlobImage(src) || isRenderable(src)) { | |
| 5716 | - (this._cache[src] = this.loadImage(src)).catch(function () { | |
| 5717 | - // prevent unhandled rejection | |
| 5718 | - }); | |
| 5719 | - return result; | |
| 5720 | - } | |
| 5721 | - return result; | |
| 5722 | - }; | |
| 5723 | - // eslint-disable-next-line @typescript-eslint/no-explicit-any | |
| 5724 | - Cache.prototype.match = function (src) { | |
| 5725 | - return this._cache[src]; | |
| 5726 | - }; | |
| 5727 | - Cache.prototype.loadImage = function (key) { | |
| 5728 | - return __awaiter(this, void 0, void 0, function () { | |
| 5729 | - var isSameOrigin, useCORS, useProxy, src; | |
| 5730 | - var _this = this; | |
| 5731 | - return __generator(this, function (_a) { | |
| 5732 | - switch (_a.label) { | |
| 5733 | - case 0: | |
| 5734 | - isSameOrigin = CacheStorage.isSameOrigin(key); | |
| 5735 | - useCORS = !isInlineImage(key) && this._options.useCORS === true && FEATURES.SUPPORT_CORS_IMAGES && !isSameOrigin; | |
| 5736 | - useProxy = !isInlineImage(key) && | |
| 5737 | - !isSameOrigin && | |
| 5738 | - !isBlobImage(key) && | |
| 5739 | - typeof this._options.proxy === 'string' && | |
| 5740 | - FEATURES.SUPPORT_CORS_XHR && | |
| 5741 | - !useCORS; | |
| 5742 | - if (!isSameOrigin && | |
| 5743 | - this._options.allowTaint === false && | |
| 5744 | - !isInlineImage(key) && | |
| 5745 | - !isBlobImage(key) && | |
| 5746 | - !useProxy && | |
| 5747 | - !useCORS) { | |
| 5748 | - return [2 /*return*/]; | |
| 5749 | - } | |
| 5750 | - src = key; | |
| 5751 | - if (!useProxy) return [3 /*break*/, 2]; | |
| 5752 | - return [4 /*yield*/, this.proxy(src)]; | |
| 5753 | - case 1: | |
| 5754 | - src = _a.sent(); | |
| 5755 | - _a.label = 2; | |
| 5756 | - case 2: | |
| 5757 | - this.context.logger.debug("Added image " + key.substring(0, 256)); | |
| 5758 | - return [4 /*yield*/, new Promise(function (resolve, reject) { | |
| 5759 | - var img = new Image(); | |
| 5760 | - img.onload = function () { return resolve(img); }; | |
| 5761 | - img.onerror = reject; | |
| 5762 | - //ios safari 10.3 taints canvas with data urls unless crossOrigin is set to anonymous | |
| 5763 | - if (isInlineBase64Image(src) || useCORS) { | |
| 5764 | - img.crossOrigin = 'anonymous'; | |
| 5765 | - } | |
| 5766 | - img.src = src; | |
| 5767 | - if (img.complete === true) { | |
| 5768 | - // Inline XML images may fail to parse, throwing an Error later on | |
| 5769 | - setTimeout(function () { return resolve(img); }, 500); | |
| 5770 | - } | |
| 5771 | - if (_this._options.imageTimeout > 0) { | |
| 5772 | - setTimeout(function () { return reject("Timed out (" + _this._options.imageTimeout + "ms) loading image"); }, _this._options.imageTimeout); | |
| 5773 | - } | |
| 5774 | - })]; | |
| 5775 | - case 3: return [2 /*return*/, _a.sent()]; | |
| 5776 | - } | |
| 5777 | - }); | |
| 5778 | - }); | |
| 5779 | - }; | |
| 5780 | - Cache.prototype.has = function (key) { | |
| 5781 | - return typeof this._cache[key] !== 'undefined'; | |
| 5782 | - }; | |
| 5783 | - Cache.prototype.keys = function () { | |
| 5784 | - return Promise.resolve(Object.keys(this._cache)); | |
| 5785 | - }; | |
| 5786 | - Cache.prototype.proxy = function (src) { | |
| 5787 | - var _this = this; | |
| 5788 | - var proxy = this._options.proxy; | |
| 5789 | - if (!proxy) { | |
| 5790 | - throw new Error('No proxy defined'); | |
| 5791 | - } | |
| 5792 | - var key = src.substring(0, 256); | |
| 5793 | - return new Promise(function (resolve, reject) { | |
| 5794 | - var responseType = FEATURES.SUPPORT_RESPONSE_TYPE ? 'blob' : 'text'; | |
| 5795 | - var xhr = new XMLHttpRequest(); | |
| 5796 | - xhr.onload = function () { | |
| 5797 | - if (xhr.status === 200) { | |
| 5798 | - if (responseType === 'text') { | |
| 5799 | - resolve(xhr.response); | |
| 5800 | - } | |
| 5801 | - else { | |
| 5802 | - var reader_1 = new FileReader(); | |
| 5803 | - reader_1.addEventListener('load', function () { return resolve(reader_1.result); }, false); | |
| 5804 | - reader_1.addEventListener('error', function (e) { return reject(e); }, false); | |
| 5805 | - reader_1.readAsDataURL(xhr.response); | |
| 5806 | - } | |
| 5807 | - } | |
| 5808 | - else { | |
| 5809 | - reject("Failed to proxy resource " + key + " with status code " + xhr.status); | |
| 5810 | - } | |
| 5811 | - }; | |
| 5812 | - xhr.onerror = reject; | |
| 5813 | - var queryString = proxy.indexOf('?') > -1 ? '&' : '?'; | |
| 5814 | - xhr.open('GET', "" + proxy + queryString + "url=" + encodeURIComponent(src) + "&responseType=" + responseType); | |
| 5815 | - if (responseType !== 'text' && xhr instanceof XMLHttpRequest) { | |
| 5816 | - xhr.responseType = responseType; | |
| 5817 | - } | |
| 5818 | - if (_this._options.imageTimeout) { | |
| 5819 | - var timeout_1 = _this._options.imageTimeout; | |
| 5820 | - xhr.timeout = timeout_1; | |
| 5821 | - xhr.ontimeout = function () { return reject("Timed out (" + timeout_1 + "ms) proxying " + key); }; | |
| 5822 | - } | |
| 5823 | - xhr.send(); | |
| 5824 | - }); | |
| 5825 | - }; | |
| 5826 | - return Cache; | |
| 5827 | - }()); | |
| 5828 | - var INLINE_SVG = /^data:image\/svg\+xml/i; | |
| 5829 | - var INLINE_BASE64 = /^data:image\/.*;base64,/i; | |
| 5830 | - var INLINE_IMG = /^data:image\/.*/i; | |
| 5831 | - var isRenderable = function (src) { return FEATURES.SUPPORT_SVG_DRAWING || !isSVG(src); }; | |
| 5832 | - var isInlineImage = function (src) { return INLINE_IMG.test(src); }; | |
| 5833 | - var isInlineBase64Image = function (src) { return INLINE_BASE64.test(src); }; | |
| 5834 | - var isBlobImage = function (src) { return src.substr(0, 4) === 'blob'; }; | |
| 5835 | - var isSVG = function (src) { return src.substr(-3).toLowerCase() === 'svg' || INLINE_SVG.test(src); }; | |
| 5500 | + return point; | |
| 5501 | + }); | |
| 5502 | + }; | |
| 5836 | 5503 | |
| 5837 | 5504 | var Vector = /** @class */ (function () { |
| 5838 | 5505 | function Vector(x, y) { |
| 5839 | - this.type = 0 /* VECTOR */; | |
| 5506 | + this.type = PathType.VECTOR; | |
| 5840 | 5507 | this.x = x; |
| 5841 | 5508 | this.y = y; |
| 5842 | 5509 | } |
| 5843 | 5510 | Vector.prototype.add = function (deltaX, deltaY) { |
| @@ -5850,9 +5517,9 @@ | ||
| 5850 | 5517 | return new Vector(a.x + (b.x - a.x) * t, a.y + (b.y - a.y) * t); |
| 5851 | 5518 | }; |
| 5852 | 5519 | var BezierCurve = /** @class */ (function () { |
| 5853 | 5520 | function BezierCurve(start, startControl, endControl, end) { |
| 5854 | - this.type = 1 /* BEZIER_CURVE */; | |
| 5521 | + this.type = PathType.BEZIER_CURVE; | |
| 5855 | 5522 | this.start = start; |
| 5856 | 5523 | this.startControl = startControl; |
| 5857 | 5524 | this.endControl = endControl; |
| 5858 | 5525 | this.end = end; |
| @@ -5873,9 +5540,9 @@ | ||
| 5873 | 5540 | return new BezierCurve(this.end, this.endControl, this.startControl, this.start); |
| 5874 | 5541 | }; |
| 5875 | 5542 | return BezierCurve; |
| 5876 | 5543 | }()); |
| 5877 | - var isBezierCurve = function (path) { return path.type === 1 /* BEZIER_CURVE */; }; | |
| 5544 | + var isBezierCurve = function (path) { return path.type === PathType.BEZIER_CURVE; }; | |
| 5878 | 5545 | |
| 5879 | 5546 | var BoundCurves = /** @class */ (function () { |
| 5880 | 5547 | function BoundCurves(element) { |
| 5881 | 5548 | var styles = element.styles; |
| @@ -5911,56 +5578,8 @@ | ||
| 5911 | 5578 | var paddingTop = getAbsoluteValue(styles.paddingTop, element.bounds.width); |
| 5912 | 5579 | var paddingRight = getAbsoluteValue(styles.paddingRight, element.bounds.width); |
| 5913 | 5580 | var paddingBottom = getAbsoluteValue(styles.paddingBottom, element.bounds.width); |
| 5914 | 5581 | var paddingLeft = getAbsoluteValue(styles.paddingLeft, element.bounds.width); |
| 5915 | - this.topLeftBorderDoubleOuterBox = | |
| 5916 | - tlh > 0 || tlv > 0 | |
| 5917 | - ? getCurvePoints(bounds.left + borderLeftWidth / 3, bounds.top + borderTopWidth / 3, tlh - borderLeftWidth / 3, tlv - borderTopWidth / 3, CORNER.TOP_LEFT) | |
| 5918 | - : new Vector(bounds.left + borderLeftWidth / 3, bounds.top + borderTopWidth / 3); | |
| 5919 | - this.topRightBorderDoubleOuterBox = | |
| 5920 | - tlh > 0 || tlv > 0 | |
| 5921 | - ? getCurvePoints(bounds.left + topWidth, bounds.top + borderTopWidth / 3, trh - borderRightWidth / 3, trv - borderTopWidth / 3, CORNER.TOP_RIGHT) | |
| 5922 | - : new Vector(bounds.left + bounds.width - borderRightWidth / 3, bounds.top + borderTopWidth / 3); | |
| 5923 | - this.bottomRightBorderDoubleOuterBox = | |
| 5924 | - brh > 0 || brv > 0 | |
| 5925 | - ? getCurvePoints(bounds.left + bottomWidth, bounds.top + rightHeight, brh - borderRightWidth / 3, brv - borderBottomWidth / 3, CORNER.BOTTOM_RIGHT) | |
| 5926 | - : new Vector(bounds.left + bounds.width - borderRightWidth / 3, bounds.top + bounds.height - borderBottomWidth / 3); | |
| 5927 | - this.bottomLeftBorderDoubleOuterBox = | |
| 5928 | - blh > 0 || blv > 0 | |
| 5929 | - ? getCurvePoints(bounds.left + borderLeftWidth / 3, bounds.top + leftHeight, blh - borderLeftWidth / 3, blv - borderBottomWidth / 3, CORNER.BOTTOM_LEFT) | |
| 5930 | - : new Vector(bounds.left + borderLeftWidth / 3, bounds.top + bounds.height - borderBottomWidth / 3); | |
| 5931 | - this.topLeftBorderDoubleInnerBox = | |
| 5932 | - tlh > 0 || tlv > 0 | |
| 5933 | - ? getCurvePoints(bounds.left + (borderLeftWidth * 2) / 3, bounds.top + (borderTopWidth * 2) / 3, tlh - (borderLeftWidth * 2) / 3, tlv - (borderTopWidth * 2) / 3, CORNER.TOP_LEFT) | |
| 5934 | - : new Vector(bounds.left + (borderLeftWidth * 2) / 3, bounds.top + (borderTopWidth * 2) / 3); | |
| 5935 | - this.topRightBorderDoubleInnerBox = | |
| 5936 | - tlh > 0 || tlv > 0 | |
| 5937 | - ? getCurvePoints(bounds.left + topWidth, bounds.top + (borderTopWidth * 2) / 3, trh - (borderRightWidth * 2) / 3, trv - (borderTopWidth * 2) / 3, CORNER.TOP_RIGHT) | |
| 5938 | - : new Vector(bounds.left + bounds.width - (borderRightWidth * 2) / 3, bounds.top + (borderTopWidth * 2) / 3); | |
| 5939 | - this.bottomRightBorderDoubleInnerBox = | |
| 5940 | - brh > 0 || brv > 0 | |
| 5941 | - ? getCurvePoints(bounds.left + bottomWidth, bounds.top + rightHeight, brh - (borderRightWidth * 2) / 3, brv - (borderBottomWidth * 2) / 3, CORNER.BOTTOM_RIGHT) | |
| 5942 | - : new Vector(bounds.left + bounds.width - (borderRightWidth * 2) / 3, bounds.top + bounds.height - (borderBottomWidth * 2) / 3); | |
| 5943 | - this.bottomLeftBorderDoubleInnerBox = | |
| 5944 | - blh > 0 || blv > 0 | |
| 5945 | - ? getCurvePoints(bounds.left + (borderLeftWidth * 2) / 3, bounds.top + leftHeight, blh - (borderLeftWidth * 2) / 3, blv - (borderBottomWidth * 2) / 3, CORNER.BOTTOM_LEFT) | |
| 5946 | - : new Vector(bounds.left + (borderLeftWidth * 2) / 3, bounds.top + bounds.height - (borderBottomWidth * 2) / 3); | |
| 5947 | - this.topLeftBorderStroke = | |
| 5948 | - tlh > 0 || tlv > 0 | |
| 5949 | - ? getCurvePoints(bounds.left + borderLeftWidth / 2, bounds.top + borderTopWidth / 2, tlh - borderLeftWidth / 2, tlv - borderTopWidth / 2, CORNER.TOP_LEFT) | |
| 5950 | - : new Vector(bounds.left + borderLeftWidth / 2, bounds.top + borderTopWidth / 2); | |
| 5951 | - this.topRightBorderStroke = | |
| 5952 | - tlh > 0 || tlv > 0 | |
| 5953 | - ? getCurvePoints(bounds.left + topWidth, bounds.top + borderTopWidth / 2, trh - borderRightWidth / 2, trv - borderTopWidth / 2, CORNER.TOP_RIGHT) | |
| 5954 | - : new Vector(bounds.left + bounds.width - borderRightWidth / 2, bounds.top + borderTopWidth / 2); | |
| 5955 | - this.bottomRightBorderStroke = | |
| 5956 | - brh > 0 || brv > 0 | |
| 5957 | - ? getCurvePoints(bounds.left + bottomWidth, bounds.top + rightHeight, brh - borderRightWidth / 2, brv - borderBottomWidth / 2, CORNER.BOTTOM_RIGHT) | |
| 5958 | - : new Vector(bounds.left + bounds.width - borderRightWidth / 2, bounds.top + bounds.height - borderBottomWidth / 2); | |
| 5959 | - this.bottomLeftBorderStroke = | |
| 5960 | - blh > 0 || blv > 0 | |
| 5961 | - ? getCurvePoints(bounds.left + borderLeftWidth / 2, bounds.top + leftHeight, blh - borderLeftWidth / 2, blv - borderBottomWidth / 2, CORNER.BOTTOM_LEFT) | |
| 5962 | - : new Vector(bounds.left + borderLeftWidth / 2, bounds.top + bounds.height - borderBottomWidth / 2); | |
| 5963 | 5582 | this.topLeftBorderBox = |
| 5964 | 5583 | tlh > 0 || tlv > 0 |
| 5965 | 5584 | ? getCurvePoints(bounds.left, bounds.top, tlh, tlv, CORNER.TOP_LEFT) |
| 5966 | 5585 | : new Vector(bounds.left, bounds.top); |
| @@ -5981,17 +5600,17 @@ | ||
| 5981 | 5600 | ? getCurvePoints(bounds.left + borderLeftWidth, bounds.top + borderTopWidth, Math.max(0, tlh - borderLeftWidth), Math.max(0, tlv - borderTopWidth), CORNER.TOP_LEFT) |
| 5982 | 5601 | : new Vector(bounds.left + borderLeftWidth, bounds.top + borderTopWidth); |
| 5983 | 5602 | this.topRightPaddingBox = |
| 5984 | 5603 | trh > 0 || trv > 0 |
| 5985 | - ? getCurvePoints(bounds.left + Math.min(topWidth, bounds.width - borderRightWidth), bounds.top + borderTopWidth, topWidth > bounds.width + borderRightWidth ? 0 : Math.max(0, trh - borderRightWidth), Math.max(0, trv - borderTopWidth), CORNER.TOP_RIGHT) | |
| 5604 | + ? getCurvePoints(bounds.left + Math.min(topWidth, bounds.width + borderLeftWidth), bounds.top + borderTopWidth, topWidth > bounds.width + borderLeftWidth ? 0 : trh - borderLeftWidth, trv - borderTopWidth, CORNER.TOP_RIGHT) | |
| 5986 | 5605 | : new Vector(bounds.left + bounds.width - borderRightWidth, bounds.top + borderTopWidth); |
| 5987 | 5606 | this.bottomRightPaddingBox = |
| 5988 | 5607 | brh > 0 || brv > 0 |
| 5989 | - ? getCurvePoints(bounds.left + Math.min(bottomWidth, bounds.width - borderLeftWidth), bounds.top + Math.min(rightHeight, bounds.height - borderBottomWidth), Math.max(0, brh - borderRightWidth), Math.max(0, brv - borderBottomWidth), CORNER.BOTTOM_RIGHT) | |
| 5608 | + ? getCurvePoints(bounds.left + Math.min(bottomWidth, bounds.width - borderLeftWidth), bounds.top + Math.min(rightHeight, bounds.height + borderTopWidth), Math.max(0, brh - borderRightWidth), brv - borderBottomWidth, CORNER.BOTTOM_RIGHT) | |
| 5990 | 5609 | : new Vector(bounds.left + bounds.width - borderRightWidth, bounds.top + bounds.height - borderBottomWidth); |
| 5991 | 5610 | this.bottomLeftPaddingBox = |
| 5992 | 5611 | blh > 0 || blv > 0 |
| 5993 | - ? getCurvePoints(bounds.left + borderLeftWidth, bounds.top + Math.min(leftHeight, bounds.height - borderBottomWidth), Math.max(0, blh - borderLeftWidth), Math.max(0, blv - borderBottomWidth), CORNER.BOTTOM_LEFT) | |
| 5612 | + ? getCurvePoints(bounds.left + borderLeftWidth, bounds.top + leftHeight, Math.max(0, blh - borderLeftWidth), blv - borderBottomWidth, CORNER.BOTTOM_LEFT) | |
| 5994 | 5613 | : new Vector(bounds.left + borderLeftWidth, bounds.top + bounds.height - borderBottomWidth); |
| 5995 | 5614 | this.topLeftContentBox = |
| 5996 | 5615 | tlh > 0 || tlv > 0 |
| 5997 | 5616 | ? getCurvePoints(bounds.left + borderLeftWidth + paddingLeft, bounds.top + borderTopWidth + paddingTop, Math.max(0, tlh - (borderLeftWidth + paddingLeft)), Math.max(0, tlv - (borderTopWidth + paddingTop)), CORNER.TOP_LEFT) |
| @@ -6057,29 +5676,29 @@ | ||
| 6057 | 5676 | }; |
| 6058 | 5677 | |
| 6059 | 5678 | var TransformEffect = /** @class */ (function () { |
| 6060 | 5679 | function TransformEffect(offsetX, offsetY, matrix) { |
| 5680 | + this.type = 0 /* TRANSFORM */; | |
| 5681 | + this.target = 2 /* BACKGROUND_BORDERS */ | 4 /* CONTENT */; | |
| 6061 | 5682 | this.offsetX = offsetX; |
| 6062 | 5683 | this.offsetY = offsetY; |
| 6063 | 5684 | this.matrix = matrix; |
| 6064 | - this.type = 0 /* TRANSFORM */; | |
| 6065 | - this.target = 2 /* BACKGROUND_BORDERS */ | 4 /* CONTENT */; | |
| 6066 | 5685 | } |
| 6067 | 5686 | return TransformEffect; |
| 6068 | 5687 | }()); |
| 6069 | 5688 | var ClipEffect = /** @class */ (function () { |
| 6070 | 5689 | function ClipEffect(path, target) { |
| 5690 | + this.type = 1 /* CLIP */; | |
| 5691 | + this.target = target; | |
| 6071 | 5692 | this.path = path; |
| 6072 | - this.target = target; | |
| 6073 | - this.type = 1 /* CLIP */; | |
| 6074 | 5693 | } |
| 6075 | 5694 | return ClipEffect; |
| 6076 | 5695 | }()); |
| 6077 | 5696 | var OpacityEffect = /** @class */ (function () { |
| 6078 | 5697 | function OpacityEffect(opacity) { |
| 6079 | - this.opacity = opacity; | |
| 6080 | 5698 | this.type = 2 /* OPACITY */; |
| 6081 | 5699 | this.target = 2 /* BACKGROUND_BORDERS */ | 4 /* CONTENT */; |
| 5700 | + this.opacity = opacity; | |
| 6082 | 5701 | } |
| 6083 | 5702 | return OpacityEffect; |
| 6084 | 5703 | }()); |
| 6085 | 5704 | var isTransformEffect = function (effect) { |
| @@ -6087,30 +5706,8 @@ | ||
| 6087 | 5706 | }; |
| 6088 | 5707 | var isClipEffect = function (effect) { return effect.type === 1 /* CLIP */; }; |
| 6089 | 5708 | var isOpacityEffect = function (effect) { return effect.type === 2 /* OPACITY */; }; |
| 6090 | 5709 | |
| 6091 | - var equalPath = function (a, b) { | |
| 6092 | - if (a.length === b.length) { | |
| 6093 | - return a.some(function (v, i) { return v === b[i]; }); | |
| 6094 | - } | |
| 6095 | - return false; | |
| 6096 | - }; | |
| 6097 | - var transformPath = function (path, deltaX, deltaY, deltaW, deltaH) { | |
| 6098 | - return path.map(function (point, index) { | |
| 6099 | - switch (index) { | |
| 6100 | - case 0: | |
| 6101 | - return point.add(deltaX, deltaY); | |
| 6102 | - case 1: | |
| 6103 | - return point.add(deltaX + deltaW, deltaY); | |
| 6104 | - case 2: | |
| 6105 | - return point.add(deltaX + deltaW, deltaY + deltaH); | |
| 6106 | - case 3: | |
| 6107 | - return point.add(deltaX, deltaY + deltaH); | |
| 6108 | - } | |
| 6109 | - return point; | |
| 6110 | - }); | |
| 6111 | - }; | |
| 6112 | - | |
| 6113 | 5710 | var StackingContext = /** @class */ (function () { |
| 6114 | 5711 | function StackingContext(container) { |
| 6115 | 5712 | this.element = container; |
| 6116 | 5713 | this.inlineLevel = []; |
| @@ -6123,23 +5720,22 @@ | ||
| 6123 | 5720 | } |
| 6124 | 5721 | return StackingContext; |
| 6125 | 5722 | }()); |
| 6126 | 5723 | var ElementPaint = /** @class */ (function () { |
| 6127 | - function ElementPaint(container, parent) { | |
| 6128 | - this.container = container; | |
| 6129 | - this.parent = parent; | |
| 6130 | - this.effects = []; | |
| 6131 | - this.curves = new BoundCurves(this.container); | |
| 6132 | - if (this.container.styles.opacity < 1) { | |
| 6133 | - this.effects.push(new OpacityEffect(this.container.styles.opacity)); | |
| 5724 | + function ElementPaint(element, parentStack) { | |
| 5725 | + this.container = element; | |
| 5726 | + this.effects = parentStack.slice(0); | |
| 5727 | + this.curves = new BoundCurves(element); | |
| 5728 | + if (element.styles.opacity < 1) { | |
| 5729 | + this.effects.push(new OpacityEffect(element.styles.opacity)); | |
| 6134 | 5730 | } |
| 6135 | - if (this.container.styles.transform !== null) { | |
| 6136 | - var offsetX = this.container.bounds.left + this.container.styles.transformOrigin[0].number; | |
| 6137 | - var offsetY = this.container.bounds.top + this.container.styles.transformOrigin[1].number; | |
| 6138 | - var matrix = this.container.styles.transform; | |
| 5731 | + if (element.styles.transform !== null) { | |
| 5732 | + var offsetX = element.bounds.left + element.styles.transformOrigin[0].number; | |
| 5733 | + var offsetY = element.bounds.top + element.styles.transformOrigin[1].number; | |
| 5734 | + var matrix = element.styles.transform; | |
| 6139 | 5735 | this.effects.push(new TransformEffect(offsetX, offsetY, matrix)); |
| 6140 | 5736 | } |
| 6141 | - if (this.container.styles.overflowX !== 0 /* VISIBLE */) { | |
| 5737 | + if (element.styles.overflowX !== OVERFLOW.VISIBLE) { | |
| 6142 | 5738 | var borderBox = calculateBorderBoxPath(this.curves); |
| 6143 | 5739 | var paddingBox = calculatePaddingBoxPath(this.curves); |
| 6144 | 5740 | if (equalPath(borderBox, paddingBox)) { |
| 6145 | 5741 | this.effects.push(new ClipEffect(borderBox, 2 /* BACKGROUND_BORDERS */ | 4 /* CONTENT */)); |
| @@ -6149,31 +5745,18 @@ | ||
| 6149 | 5745 | this.effects.push(new ClipEffect(paddingBox, 4 /* CONTENT */)); |
| 6150 | 5746 | } |
| 6151 | 5747 | } |
| 6152 | 5748 | } |
| 6153 | - ElementPaint.prototype.getEffects = function (target) { | |
| 6154 | - var inFlow = [2 /* ABSOLUTE */, 3 /* FIXED */].indexOf(this.container.styles.position) === -1; | |
| 6155 | - var parent = this.parent; | |
| 5749 | + ElementPaint.prototype.getParentEffects = function () { | |
| 6156 | 5750 | var effects = this.effects.slice(0); |
| 6157 | - while (parent) { | |
| 6158 | - var croplessEffects = parent.effects.filter(function (effect) { return !isClipEffect(effect); }); | |
| 6159 | - if (inFlow || parent.container.styles.position !== 0 /* STATIC */ || !parent.parent) { | |
| 6160 | - effects.unshift.apply(effects, croplessEffects); | |
| 6161 | - inFlow = [2 /* ABSOLUTE */, 3 /* FIXED */].indexOf(parent.container.styles.position) === -1; | |
| 6162 | - if (parent.container.styles.overflowX !== 0 /* VISIBLE */) { | |
| 6163 | - var borderBox = calculateBorderBoxPath(parent.curves); | |
| 6164 | - var paddingBox = calculatePaddingBoxPath(parent.curves); | |
| 6165 | - if (!equalPath(borderBox, paddingBox)) { | |
| 6166 | - effects.unshift(new ClipEffect(paddingBox, 2 /* BACKGROUND_BORDERS */ | 4 /* CONTENT */)); | |
| 6167 | - } | |
| 6168 | - } | |
| 5751 | + if (this.container.styles.overflowX !== OVERFLOW.VISIBLE) { | |
| 5752 | + var borderBox = calculateBorderBoxPath(this.curves); | |
| 5753 | + var paddingBox = calculatePaddingBoxPath(this.curves); | |
| 5754 | + if (!equalPath(borderBox, paddingBox)) { | |
| 5755 | + effects.push(new ClipEffect(paddingBox, 2 /* BACKGROUND_BORDERS */ | 4 /* CONTENT */)); | |
| 6169 | 5756 | } |
| 6170 | - else { | |
| 6171 | - effects.unshift.apply(effects, croplessEffects); | |
| 6172 | - } | |
| 6173 | - parent = parent.parent; | |
| 6174 | 5757 | } |
| 6175 | - return effects.filter(function (effect) { return contains(effect.target, target); }); | |
| 5758 | + return effects; | |
| 6176 | 5759 | }; |
| 6177 | 5760 | return ElementPaint; |
| 6178 | 5761 | }()); |
| 6179 | 5762 | var parseStackTree = function (parent, stackingContext, realStackingContext, listItems) { |
| @@ -6179,9 +5762,9 @@ | ||
| 6179 | 5762 | var parseStackTree = function (parent, stackingContext, realStackingContext, listItems) { |
| 6180 | 5763 | parent.container.elements.forEach(function (child) { |
| 6181 | 5764 | var treatAsRealStackingContext = contains(child.flags, 4 /* CREATES_REAL_STACKING_CONTEXT */); |
| 6182 | 5765 | var createsStackingContext = contains(child.flags, 2 /* CREATES_STACKING_CONTEXT */); |
| 6183 | - var paintContainer = new ElementPaint(child, parent); | |
| 5766 | + var paintContainer = new ElementPaint(child, parent.getParentEffects()); | |
| 6184 | 5767 | if (contains(child.styles.display, 2048 /* LIST_ITEM */)) { |
| 6185 | 5768 | listItems.push(paintContainer); |
| 6186 | 5769 | } |
| 6187 | 5770 | var listOwnerItems = contains(child.flags, 8 /* IS_LIST_OWNER */) ? [] : listItems; |
| @@ -6260,9 +5843,9 @@ | ||
| 6260 | 5843 | numbering += reversed ? -1 : 1; |
| 6261 | 5844 | } |
| 6262 | 5845 | }; |
| 6263 | 5846 | var parseStackingContexts = function (container) { |
| 6264 | - var paintContainer = new ElementPaint(container, null); | |
| 5847 | + var paintContainer = new ElementPaint(container, []); | |
| 6265 | 5848 | var root = new StackingContext(paintContainer); |
| 6266 | 5849 | var listItems = []; |
| 6267 | 5850 | parseStackTree(paintContainer, root, root, listItems); |
| 6268 | 5851 | processListItems(paintContainer.container, listItems); |
| @@ -6281,63 +5864,8 @@ | ||
| 6281 | 5864 | default: |
| 6282 | 5865 | return createPathFromCurves(curves.bottomLeftBorderBox, curves.bottomLeftPaddingBox, curves.topLeftBorderBox, curves.topLeftPaddingBox); |
| 6283 | 5866 | } |
| 6284 | 5867 | }; |
| 6285 | - var parsePathForBorderDoubleOuter = function (curves, borderSide) { | |
| 6286 | - switch (borderSide) { | |
| 6287 | - case 0: | |
| 6288 | - return createPathFromCurves(curves.topLeftBorderBox, curves.topLeftBorderDoubleOuterBox, curves.topRightBorderBox, curves.topRightBorderDoubleOuterBox); | |
| 6289 | - case 1: | |
| 6290 | - return createPathFromCurves(curves.topRightBorderBox, curves.topRightBorderDoubleOuterBox, curves.bottomRightBorderBox, curves.bottomRightBorderDoubleOuterBox); | |
| 6291 | - case 2: | |
| 6292 | - return createPathFromCurves(curves.bottomRightBorderBox, curves.bottomRightBorderDoubleOuterBox, curves.bottomLeftBorderBox, curves.bottomLeftBorderDoubleOuterBox); | |
| 6293 | - case 3: | |
| 6294 | - default: | |
| 6295 | - return createPathFromCurves(curves.bottomLeftBorderBox, curves.bottomLeftBorderDoubleOuterBox, curves.topLeftBorderBox, curves.topLeftBorderDoubleOuterBox); | |
| 6296 | - } | |
| 6297 | - }; | |
| 6298 | - var parsePathForBorderDoubleInner = function (curves, borderSide) { | |
| 6299 | - switch (borderSide) { | |
| 6300 | - case 0: | |
| 6301 | - return createPathFromCurves(curves.topLeftBorderDoubleInnerBox, curves.topLeftPaddingBox, curves.topRightBorderDoubleInnerBox, curves.topRightPaddingBox); | |
| 6302 | - case 1: | |
| 6303 | - return createPathFromCurves(curves.topRightBorderDoubleInnerBox, curves.topRightPaddingBox, curves.bottomRightBorderDoubleInnerBox, curves.bottomRightPaddingBox); | |
| 6304 | - case 2: | |
| 6305 | - return createPathFromCurves(curves.bottomRightBorderDoubleInnerBox, curves.bottomRightPaddingBox, curves.bottomLeftBorderDoubleInnerBox, curves.bottomLeftPaddingBox); | |
| 6306 | - case 3: | |
| 6307 | - default: | |
| 6308 | - return createPathFromCurves(curves.bottomLeftBorderDoubleInnerBox, curves.bottomLeftPaddingBox, curves.topLeftBorderDoubleInnerBox, curves.topLeftPaddingBox); | |
| 6309 | - } | |
| 6310 | - }; | |
| 6311 | - var parsePathForBorderStroke = function (curves, borderSide) { | |
| 6312 | - switch (borderSide) { | |
| 6313 | - case 0: | |
| 6314 | - return createStrokePathFromCurves(curves.topLeftBorderStroke, curves.topRightBorderStroke); | |
| 6315 | - case 1: | |
| 6316 | - return createStrokePathFromCurves(curves.topRightBorderStroke, curves.bottomRightBorderStroke); | |
| 6317 | - case 2: | |
| 6318 | - return createStrokePathFromCurves(curves.bottomRightBorderStroke, curves.bottomLeftBorderStroke); | |
| 6319 | - case 3: | |
| 6320 | - default: | |
| 6321 | - return createStrokePathFromCurves(curves.bottomLeftBorderStroke, curves.topLeftBorderStroke); | |
| 6322 | - } | |
| 6323 | - }; | |
| 6324 | - var createStrokePathFromCurves = function (outer1, outer2) { | |
| 6325 | - var path = []; | |
| 6326 | - if (isBezierCurve(outer1)) { | |
| 6327 | - path.push(outer1.subdivide(0.5, false)); | |
| 6328 | - } | |
| 6329 | - else { | |
| 6330 | - path.push(outer1); | |
| 6331 | - } | |
| 6332 | - if (isBezierCurve(outer2)) { | |
| 6333 | - path.push(outer2.subdivide(0.5, true)); | |
| 6334 | - } | |
| 6335 | - else { | |
| 6336 | - path.push(outer2); | |
| 6337 | - } | |
| 6338 | - return path; | |
| 6339 | - }; | |
| 6340 | 5868 | var createPathFromCurves = function (outer1, inner1, outer2, inner2) { |
| 6341 | 5869 | var path = []; |
| 6342 | 5870 | if (isBezierCurve(outer1)) { |
| 6343 | 5871 | path.push(outer1.subdivide(0.5, false)); |
| @@ -6390,12 +5918,12 @@ | ||
| 6390 | 5918 | } |
| 6391 | 5919 | return paddingBox(element); |
| 6392 | 5920 | }; |
| 6393 | 5921 | var calculateBackgroundPaintingArea = function (backgroundClip, element) { |
| 6394 | - if (backgroundClip === 0 /* BORDER_BOX */) { | |
| 5922 | + if (backgroundClip === BACKGROUND_CLIP.BORDER_BOX) { | |
| 6395 | 5923 | return element.bounds; |
| 6396 | 5924 | } |
| 6397 | - if (backgroundClip === 2 /* CONTENT_BOX */) { | |
| 5925 | + if (backgroundClip === BACKGROUND_CLIP.CONTENT_BOX) { | |
| 6398 | 5926 | return contentBox(element); |
| 6399 | 5927 | } |
| 6400 | 5928 | return paddingBox(element); |
| 6401 | 5929 | }; |
| @@ -6414,11 +5942,8 @@ | ||
| 6414 | 5942 | var hasIntrinsicValue = function (value) { return typeof value === 'number'; }; |
| 6415 | 5943 | var calculateBackgroundSize = function (size, _a, bounds) { |
| 6416 | 5944 | var intrinsicWidth = _a[0], intrinsicHeight = _a[1], intrinsicProportion = _a[2]; |
| 6417 | 5945 | var first = size[0], second = size[1]; |
| 6418 | - if (!first) { | |
| 6419 | - return [0, 0]; | |
| 6420 | - } | |
| 6421 | 5946 | if (isLengthPercentage(first) && second && isLengthPercentage(second)) { |
| 6422 | 5947 | return [getAbsoluteValue(first, bounds.width), getAbsoluteValue(second, bounds.height)]; |
| 6423 | 5948 | } |
| 6424 | 5949 | var hasIntrinsicProportion = hasIntrinsicValue(intrinsicProportion); |
| @@ -6521,9 +6046,9 @@ | ||
| 6521 | 6046 | var calculateBackgroundRepeatPath = function (repeat, _a, _b, backgroundPositioningArea, backgroundPaintingArea) { |
| 6522 | 6047 | var x = _a[0], y = _a[1]; |
| 6523 | 6048 | var width = _b[0], height = _b[1]; |
| 6524 | 6049 | switch (repeat) { |
| 6525 | - case 2 /* REPEAT_X */: | |
| 6050 | + case BACKGROUND_REPEAT.REPEAT_X: | |
| 6526 | 6051 | return [ |
| 6527 | 6052 | new Vector(Math.round(backgroundPositioningArea.left), Math.round(backgroundPositioningArea.top + y)), |
| 6528 | 6053 | new Vector(Math.round(backgroundPositioningArea.left + backgroundPositioningArea.width), Math.round(backgroundPositioningArea.top + y)), |
| 6529 | 6054 | new Vector(Math.round(backgroundPositioningArea.left + backgroundPositioningArea.width), Math.round(height + backgroundPositioningArea.top + y)), |
| @@ -6528,9 +6053,9 @@ | ||
| 6528 | 6053 | new Vector(Math.round(backgroundPositioningArea.left + backgroundPositioningArea.width), Math.round(backgroundPositioningArea.top + y)), |
| 6529 | 6054 | new Vector(Math.round(backgroundPositioningArea.left + backgroundPositioningArea.width), Math.round(height + backgroundPositioningArea.top + y)), |
| 6530 | 6055 | new Vector(Math.round(backgroundPositioningArea.left), Math.round(height + backgroundPositioningArea.top + y)) |
| 6531 | 6056 | ]; |
| 6532 | - case 3 /* REPEAT_Y */: | |
| 6057 | + case BACKGROUND_REPEAT.REPEAT_Y: | |
| 6533 | 6058 | return [ |
| 6534 | 6059 | new Vector(Math.round(backgroundPositioningArea.left + x), Math.round(backgroundPositioningArea.top)), |
| 6535 | 6060 | new Vector(Math.round(backgroundPositioningArea.left + x + width), Math.round(backgroundPositioningArea.top)), |
| 6536 | 6061 | new Vector(Math.round(backgroundPositioningArea.left + x + width), Math.round(backgroundPositioningArea.height + backgroundPositioningArea.top)), |
| @@ -6535,9 +6060,9 @@ | ||
| 6535 | 6060 | new Vector(Math.round(backgroundPositioningArea.left + x + width), Math.round(backgroundPositioningArea.top)), |
| 6536 | 6061 | new Vector(Math.round(backgroundPositioningArea.left + x + width), Math.round(backgroundPositioningArea.height + backgroundPositioningArea.top)), |
| 6537 | 6062 | new Vector(Math.round(backgroundPositioningArea.left + x), Math.round(backgroundPositioningArea.height + backgroundPositioningArea.top)) |
| 6538 | 6063 | ]; |
| 6539 | - case 1 /* NO_REPEAT */: | |
| 6064 | + case BACKGROUND_REPEAT.NO_REPEAT: | |
| 6540 | 6065 | return [ |
| 6541 | 6066 | new Vector(Math.round(backgroundPositioningArea.left + x), Math.round(backgroundPositioningArea.top + y)), |
| 6542 | 6067 | new Vector(Math.round(backgroundPositioningArea.left + x + width), Math.round(backgroundPositioningArea.top + y)), |
| 6543 | 6068 | new Vector(Math.round(backgroundPositioningArea.left + x + width), Math.round(backgroundPositioningArea.top + y + height)), |
| @@ -6570,9 +6095,8 @@ | ||
| 6570 | 6095 | container.style.fontFamily = fontFamily; |
| 6571 | 6096 | container.style.fontSize = fontSize; |
| 6572 | 6097 | container.style.margin = '0'; |
| 6573 | 6098 | container.style.padding = '0'; |
| 6574 | - container.style.whiteSpace = 'nowrap'; | |
| 6575 | 6099 | body.appendChild(container); |
| 6576 | 6100 | img.src = SMALL_IMAGE; |
| 6577 | 6101 | img.width = 1; |
| 6578 | 6102 | img.height = 1; |
| @@ -6604,44 +6128,34 @@ | ||
| 6604 | 6128 | }; |
| 6605 | 6129 | return FontMetrics; |
| 6606 | 6130 | }()); |
| 6607 | 6131 | |
| 6608 | - var Renderer = /** @class */ (function () { | |
| 6609 | - function Renderer(context, options) { | |
| 6610 | - this.context = context; | |
| 6132 | + var MASK_OFFSET = 10000; | |
| 6133 | + var CanvasRenderer = /** @class */ (function () { | |
| 6134 | + function CanvasRenderer(options) { | |
| 6135 | + this._activeEffects = []; | |
| 6136 | + this.canvas = options.canvas ? options.canvas : document.createElement('canvas'); | |
| 6137 | + this.ctx = this.canvas.getContext('2d'); | |
| 6611 | 6138 | this.options = options; |
| 6612 | - } | |
| 6613 | - return Renderer; | |
| 6614 | - }()); | |
| 6615 | - | |
| 6616 | - var MASK_OFFSET = 10000; | |
| 6617 | - var CanvasRenderer = /** @class */ (function (_super) { | |
| 6618 | - __extends(CanvasRenderer, _super); | |
| 6619 | - function CanvasRenderer(context, options) { | |
| 6620 | - var _this = _super.call(this, context, options) || this; | |
| 6621 | - _this._activeEffects = []; | |
| 6622 | - _this.canvas = options.canvas ? options.canvas : document.createElement('canvas'); | |
| 6623 | - _this.ctx = _this.canvas.getContext('2d'); | |
| 6624 | 6139 | if (!options.canvas) { |
| 6625 | - _this.canvas.width = Math.floor(options.width * options.scale); | |
| 6626 | - _this.canvas.height = Math.floor(options.height * options.scale); | |
| 6627 | - _this.canvas.style.width = options.width + "px"; | |
| 6628 | - _this.canvas.style.height = options.height + "px"; | |
| 6140 | + this.canvas.width = Math.floor(options.width * options.scale); | |
| 6141 | + this.canvas.height = Math.floor(options.height * options.scale); | |
| 6142 | + this.canvas.style.width = options.width + "px"; | |
| 6143 | + this.canvas.style.height = options.height + "px"; | |
| 6629 | 6144 | } |
| 6630 | - _this.fontMetrics = new FontMetrics(document); | |
| 6631 | - _this.ctx.scale(_this.options.scale, _this.options.scale); | |
| 6632 | - _this.ctx.translate(-options.x, -options.y); | |
| 6633 | - _this.ctx.textBaseline = 'bottom'; | |
| 6634 | - _this._activeEffects = []; | |
| 6635 | - _this.context.logger.debug("Canvas renderer initialized (" + options.width + "x" + options.height + ") with scale " + options.scale); | |
| 6636 | - return _this; | |
| 6145 | + this.fontMetrics = new FontMetrics(document); | |
| 6146 | + this.ctx.scale(this.options.scale, this.options.scale); | |
| 6147 | + this.ctx.translate(-options.x + options.scrollX, -options.y + options.scrollY); | |
| 6148 | + this.ctx.textBaseline = 'bottom'; | |
| 6149 | + this._activeEffects = []; | |
| 6150 | + Logger.getInstance(options.id).debug("Canvas renderer initialized (" + options.width + "x" + options.height + " at " + options.x + "," + options.y + ") with scale " + options.scale); | |
| 6637 | 6151 | } |
| 6638 | - CanvasRenderer.prototype.applyEffects = function (effects) { | |
| 6152 | + CanvasRenderer.prototype.applyEffects = function (effects, target) { | |
| 6639 | 6153 | var _this = this; |
| 6640 | 6154 | while (this._activeEffects.length) { |
| 6641 | 6155 | this.popEffect(); |
| 6642 | 6156 | } |
| 6643 | - effects.forEach(function (effect) { return _this.applyEffect(effect); }); | |
| 6157 | + effects.filter(function (effect) { return contains(effect.target, target); }).forEach(function (effect) { return _this.applyEffect(effect); }); | |
| 6644 | 6158 | }; |
| 6645 | 6159 | CanvasRenderer.prototype.applyEffect = function (effect) { |
| 6646 | 6160 | this.ctx.save(); |
| 6647 | 6161 | if (isOpacityEffect(effect)) { |
| @@ -6683,11 +6197,8 @@ | ||
| 6683 | 6197 | return __awaiter(this, void 0, void 0, function () { |
| 6684 | 6198 | return __generator(this, function (_a) { |
| 6685 | 6199 | switch (_a.label) { |
| 6686 | 6200 | case 0: |
| 6687 | - if (contains(paint.container.flags, 16 /* DEBUG_RENDER */)) { | |
| 6688 | - debugger; | |
| 6689 | - } | |
| 6690 | 6201 | if (!paint.container.styles.isVisible()) return [3 /*break*/, 3]; |
| 6691 | 6202 | return [4 /*yield*/, this.renderNodeBackgroundAndBorders(paint)]; |
| 6692 | 6203 | case 1: |
| 6693 | 6204 | _a.sent(); |
| @@ -6699,17 +6210,17 @@ | ||
| 6699 | 6210 | } |
| 6700 | 6211 | }); |
| 6701 | 6212 | }); |
| 6702 | 6213 | }; |
| 6703 | - CanvasRenderer.prototype.renderTextWithLetterSpacing = function (text, letterSpacing, baseline) { | |
| 6214 | + CanvasRenderer.prototype.renderTextWithLetterSpacing = function (text, letterSpacing) { | |
| 6704 | 6215 | var _this = this; |
| 6705 | 6216 | if (letterSpacing === 0) { |
| 6706 | - this.ctx.fillText(text.text, text.bounds.left, text.bounds.top + baseline); | |
| 6217 | + this.ctx.fillText(text.text, text.bounds.left, text.bounds.top + text.bounds.height); | |
| 6707 | 6218 | } |
| 6708 | 6219 | else { |
| 6709 | - var letters = segmentGraphemes(text.text); | |
| 6220 | + var letters = toCodePoints(text.text).map(function (i) { return fromCodePoint(i); }); | |
| 6710 | 6221 | letters.reduce(function (left, letter) { |
| 6711 | - _this.ctx.fillText(letter, left, text.bounds.top + baseline); | |
| 6222 | + _this.ctx.fillText(letter, left, text.bounds.top + text.bounds.height); | |
| 6712 | 6223 | return left + _this.ctx.measureText(letter).width; |
| 6713 | 6224 | }, text.bounds.left); |
| 6714 | 6225 | } |
| 6715 | 6226 | }; |
| @@ -6716,9 +6227,9 @@ | ||
| 6716 | 6227 | CanvasRenderer.prototype.createFontStyle = function (styles) { |
| 6717 | 6228 | var fontVariant = styles.fontVariant |
| 6718 | 6229 | .filter(function (variant) { return variant === 'normal' || variant === 'small-caps'; }) |
| 6719 | 6230 | .join(''); |
| 6720 | - var fontFamily = fixIOSSystemFonts(styles.fontFamily).join(', '); | |
| 6231 | + var fontFamily = styles.fontFamily.join(', '); | |
| 6721 | 6232 | var fontSize = isDimensionToken(styles.fontSize) |
| 6722 | 6233 | ? "" + styles.fontSize.number + styles.fontSize.unit |
| 6723 | 6234 | : styles.fontSize.number + "px"; |
| 6724 | 6235 | return [ |
| @@ -6728,76 +6239,55 @@ | ||
| 6728 | 6239 | ]; |
| 6729 | 6240 | }; |
| 6730 | 6241 | CanvasRenderer.prototype.renderTextNode = function (text, styles) { |
| 6731 | 6242 | return __awaiter(this, void 0, void 0, function () { |
| 6732 | - var _a, font, fontFamily, fontSize, _b, baseline, middle, paintOrder; | |
| 6243 | + var _a, font, fontFamily, fontSize; | |
| 6733 | 6244 | var _this = this; |
| 6734 | - return __generator(this, function (_c) { | |
| 6245 | + return __generator(this, function (_b) { | |
| 6735 | 6246 | _a = this.createFontStyle(styles), font = _a[0], fontFamily = _a[1], fontSize = _a[2]; |
| 6736 | 6247 | this.ctx.font = font; |
| 6737 | - this.ctx.direction = styles.direction === 1 /* RTL */ ? 'rtl' : 'ltr'; | |
| 6738 | - this.ctx.textAlign = 'left'; | |
| 6739 | - this.ctx.textBaseline = 'alphabetic'; | |
| 6740 | - _b = this.fontMetrics.getMetrics(fontFamily, fontSize), baseline = _b.baseline, middle = _b.middle; | |
| 6741 | - paintOrder = styles.paintOrder; | |
| 6742 | 6248 | text.textBounds.forEach(function (text) { |
| 6743 | - paintOrder.forEach(function (paintOrderLayer) { | |
| 6744 | - switch (paintOrderLayer) { | |
| 6745 | - case 0 /* FILL */: | |
| 6746 | - _this.ctx.fillStyle = asString(styles.color); | |
| 6747 | - _this.renderTextWithLetterSpacing(text, styles.letterSpacing, baseline); | |
| 6748 | - var textShadows = styles.textShadow; | |
| 6749 | - if (textShadows.length && text.text.trim().length) { | |
| 6750 | - textShadows | |
| 6751 | - .slice(0) | |
| 6752 | - .reverse() | |
| 6753 | - .forEach(function (textShadow) { | |
| 6754 | - _this.ctx.shadowColor = asString(textShadow.color); | |
| 6755 | - _this.ctx.shadowOffsetX = textShadow.offsetX.number * _this.options.scale; | |
| 6756 | - _this.ctx.shadowOffsetY = textShadow.offsetY.number * _this.options.scale; | |
| 6757 | - _this.ctx.shadowBlur = textShadow.blur.number; | |
| 6758 | - _this.renderTextWithLetterSpacing(text, styles.letterSpacing, baseline); | |
| 6759 | - }); | |
| 6760 | - _this.ctx.shadowColor = ''; | |
| 6761 | - _this.ctx.shadowOffsetX = 0; | |
| 6762 | - _this.ctx.shadowOffsetY = 0; | |
| 6763 | - _this.ctx.shadowBlur = 0; | |
| 6764 | - } | |
| 6765 | - if (styles.textDecorationLine.length) { | |
| 6766 | - _this.ctx.fillStyle = asString(styles.textDecorationColor || styles.color); | |
| 6767 | - styles.textDecorationLine.forEach(function (textDecorationLine) { | |
| 6768 | - switch (textDecorationLine) { | |
| 6769 | - case 1 /* UNDERLINE */: | |
| 6770 | - // Draws a line at the baseline of the font | |
| 6771 | - // TODO As some browsers display the line as more than 1px if the font-size is big, | |
| 6772 | - // need to take that into account both in position and size | |
| 6773 | - _this.ctx.fillRect(text.bounds.left, Math.round(text.bounds.top + baseline), text.bounds.width, 1); | |
| 6774 | - break; | |
| 6775 | - case 2 /* OVERLINE */: | |
| 6776 | - _this.ctx.fillRect(text.bounds.left, Math.round(text.bounds.top), text.bounds.width, 1); | |
| 6777 | - break; | |
| 6778 | - case 3 /* LINE_THROUGH */: | |
| 6779 | - // TODO try and find exact position for line-through | |
| 6780 | - _this.ctx.fillRect(text.bounds.left, Math.ceil(text.bounds.top + middle), text.bounds.width, 1); | |
| 6781 | - break; | |
| 6782 | - } | |
| 6783 | - }); | |
| 6784 | - } | |
| 6785 | - break; | |
| 6786 | - case 1 /* STROKE */: | |
| 6787 | - if (styles.webkitTextStrokeWidth && text.text.trim().length) { | |
| 6788 | - _this.ctx.strokeStyle = asString(styles.webkitTextStrokeColor); | |
| 6789 | - _this.ctx.lineWidth = styles.webkitTextStrokeWidth; | |
| 6790 | - // eslint-disable-next-line @typescript-eslint/no-explicit-any | |
| 6791 | - _this.ctx.lineJoin = !!window.chrome ? 'miter' : 'round'; | |
| 6792 | - _this.ctx.strokeText(text.text, text.bounds.left, text.bounds.top + baseline); | |
| 6793 | - } | |
| 6794 | - _this.ctx.strokeStyle = ''; | |
| 6795 | - _this.ctx.lineWidth = 0; | |
| 6796 | - _this.ctx.lineJoin = 'miter'; | |
| 6797 | - break; | |
| 6798 | - } | |
| 6799 | - }); | |
| 6249 | + _this.ctx.fillStyle = asString(styles.color); | |
| 6250 | + _this.renderTextWithLetterSpacing(text, styles.letterSpacing); | |
| 6251 | + var textShadows = styles.textShadow; | |
| 6252 | + if (textShadows.length && text.text.trim().length) { | |
| 6253 | + textShadows | |
| 6254 | + .slice(0) | |
| 6255 | + .reverse() | |
| 6256 | + .forEach(function (textShadow) { | |
| 6257 | + _this.ctx.shadowColor = asString(textShadow.color); | |
| 6258 | + _this.ctx.shadowOffsetX = textShadow.offsetX.number * _this.options.scale; | |
| 6259 | + _this.ctx.shadowOffsetY = textShadow.offsetY.number * _this.options.scale; | |
| 6260 | + _this.ctx.shadowBlur = textShadow.blur.number; | |
| 6261 | + _this.ctx.fillText(text.text, text.bounds.left, text.bounds.top + text.bounds.height); | |
| 6262 | + }); | |
| 6263 | + _this.ctx.shadowColor = ''; | |
| 6264 | + _this.ctx.shadowOffsetX = 0; | |
| 6265 | + _this.ctx.shadowOffsetY = 0; | |
| 6266 | + _this.ctx.shadowBlur = 0; | |
| 6267 | + } | |
| 6268 | + if (styles.textDecorationLine.length) { | |
| 6269 | + _this.ctx.fillStyle = asString(styles.textDecorationColor || styles.color); | |
| 6270 | + styles.textDecorationLine.forEach(function (textDecorationLine) { | |
| 6271 | + switch (textDecorationLine) { | |
| 6272 | + case 1 /* UNDERLINE */: | |
| 6273 | + // Draws a line at the baseline of the font | |
| 6274 | + // TODO As some browsers display the line as more than 1px if the font-size is big, | |
| 6275 | + // need to take that into account both in position and size | |
| 6276 | + var baseline = _this.fontMetrics.getMetrics(fontFamily, fontSize).baseline; | |
| 6277 | + _this.ctx.fillRect(text.bounds.left, Math.round(text.bounds.top + baseline), text.bounds.width, 1); | |
| 6278 | + break; | |
| 6279 | + case 2 /* OVERLINE */: | |
| 6280 | + _this.ctx.fillRect(text.bounds.left, Math.round(text.bounds.top), text.bounds.width, 1); | |
| 6281 | + break; | |
| 6282 | + case 3 /* LINE_THROUGH */: | |
| 6283 | + // TODO try and find exact position for line-through | |
| 6284 | + var middle = _this.fontMetrics.getMetrics(fontFamily, fontSize).middle; | |
| 6285 | + _this.ctx.fillRect(text.bounds.left, Math.ceil(text.bounds.top + middle), text.bounds.width, 1); | |
| 6286 | + break; | |
| 6287 | + } | |
| 6288 | + }); | |
| 6289 | + } | |
| 6800 | 6290 | }); |
| 6801 | 6291 | return [2 /*return*/]; |
| 6802 | 6292 | }); |
| 6803 | 6293 | }); |
| @@ -6814,41 +6304,41 @@ | ||
| 6814 | 6304 | } |
| 6815 | 6305 | }; |
| 6816 | 6306 | CanvasRenderer.prototype.renderNodeContent = function (paint) { |
| 6817 | 6307 | return __awaiter(this, void 0, void 0, function () { |
| 6818 | - var container, curves, styles, _i, _a, child, image, image, iframeRenderer, canvas, size, _b, fontFamily, fontSize, baseline, bounds, x, textBounds, img, image, url, fontFamily, bounds; | |
| 6819 | - return __generator(this, function (_c) { | |
| 6820 | - switch (_c.label) { | |
| 6308 | + var container, curves, styles, _i, _a, child, image, e_1, image, e_2, iframeRenderer, canvas, size, bounds, x, textBounds, img, image, url, e_3, bounds; | |
| 6309 | + return __generator(this, function (_b) { | |
| 6310 | + switch (_b.label) { | |
| 6821 | 6311 | case 0: |
| 6822 | - this.applyEffects(paint.getEffects(4 /* CONTENT */)); | |
| 6312 | + this.applyEffects(paint.effects, 4 /* CONTENT */); | |
| 6823 | 6313 | container = paint.container; |
| 6824 | 6314 | curves = paint.curves; |
| 6825 | 6315 | styles = container.styles; |
| 6826 | 6316 | _i = 0, _a = container.textNodes; |
| 6827 | - _c.label = 1; | |
| 6317 | + _b.label = 1; | |
| 6828 | 6318 | case 1: |
| 6829 | 6319 | if (!(_i < _a.length)) return [3 /*break*/, 4]; |
| 6830 | 6320 | child = _a[_i]; |
| 6831 | 6321 | return [4 /*yield*/, this.renderTextNode(child, styles)]; |
| 6832 | 6322 | case 2: |
| 6833 | - _c.sent(); | |
| 6834 | - _c.label = 3; | |
| 6323 | + _b.sent(); | |
| 6324 | + _b.label = 3; | |
| 6835 | 6325 | case 3: |
| 6836 | 6326 | _i++; |
| 6837 | 6327 | return [3 /*break*/, 1]; |
| 6838 | 6328 | case 4: |
| 6839 | 6329 | if (!(container instanceof ImageElementContainer)) return [3 /*break*/, 8]; |
| 6840 | - _c.label = 5; | |
| 6330 | + _b.label = 5; | |
| 6841 | 6331 | case 5: |
| 6842 | - _c.trys.push([5, 7, , 8]); | |
| 6843 | - return [4 /*yield*/, this.context.cache.match(container.src)]; | |
| 6332 | + _b.trys.push([5, 7, , 8]); | |
| 6333 | + return [4 /*yield*/, this.options.cache.match(container.src)]; | |
| 6844 | 6334 | case 6: |
| 6845 | - image = _c.sent(); | |
| 6335 | + image = _b.sent(); | |
| 6846 | 6336 | this.renderReplacedElement(container, curves, image); |
| 6847 | 6337 | return [3 /*break*/, 8]; |
| 6848 | 6338 | case 7: |
| 6849 | - _c.sent(); | |
| 6850 | - this.context.logger.error("Error loading image " + container.src); | |
| 6339 | + e_1 = _b.sent(); | |
| 6340 | + Logger.getInstance(this.options.id).error("Error loading image " + container.src); | |
| 6851 | 6341 | return [3 /*break*/, 8]; |
| 6852 | 6342 | case 8: |
| 6853 | 6343 | if (container instanceof CanvasElementContainer) { |
| 6854 | 6344 | this.renderReplacedElement(container, curves, container.canvas); |
| @@ -6853,37 +6343,43 @@ | ||
| 6853 | 6343 | if (container instanceof CanvasElementContainer) { |
| 6854 | 6344 | this.renderReplacedElement(container, curves, container.canvas); |
| 6855 | 6345 | } |
| 6856 | 6346 | if (!(container instanceof SVGElementContainer)) return [3 /*break*/, 12]; |
| 6857 | - _c.label = 9; | |
| 6347 | + _b.label = 9; | |
| 6858 | 6348 | case 9: |
| 6859 | - _c.trys.push([9, 11, , 12]); | |
| 6860 | - return [4 /*yield*/, this.context.cache.match(container.svg)]; | |
| 6349 | + _b.trys.push([9, 11, , 12]); | |
| 6350 | + return [4 /*yield*/, this.options.cache.match(container.svg)]; | |
| 6861 | 6351 | case 10: |
| 6862 | - image = _c.sent(); | |
| 6352 | + image = _b.sent(); | |
| 6863 | 6353 | this.renderReplacedElement(container, curves, image); |
| 6864 | 6354 | return [3 /*break*/, 12]; |
| 6865 | 6355 | case 11: |
| 6866 | - _c.sent(); | |
| 6867 | - this.context.logger.error("Error loading svg " + container.svg.substring(0, 255)); | |
| 6356 | + e_2 = _b.sent(); | |
| 6357 | + Logger.getInstance(this.options.id).error("Error loading svg " + container.svg.substring(0, 255)); | |
| 6868 | 6358 | return [3 /*break*/, 12]; |
| 6869 | 6359 | case 12: |
| 6870 | 6360 | if (!(container instanceof IFrameElementContainer && container.tree)) return [3 /*break*/, 14]; |
| 6871 | - iframeRenderer = new CanvasRenderer(this.context, { | |
| 6361 | + iframeRenderer = new CanvasRenderer({ | |
| 6362 | + id: this.options.id, | |
| 6872 | 6363 | scale: this.options.scale, |
| 6873 | 6364 | backgroundColor: container.backgroundColor, |
| 6874 | 6365 | x: 0, |
| 6875 | 6366 | y: 0, |
| 6367 | + scrollX: 0, | |
| 6368 | + scrollY: 0, | |
| 6876 | 6369 | width: container.width, |
| 6877 | - height: container.height | |
| 6370 | + height: container.height, | |
| 6371 | + cache: this.options.cache, | |
| 6372 | + windowWidth: container.width, | |
| 6373 | + windowHeight: container.height | |
| 6878 | 6374 | }); |
| 6879 | 6375 | return [4 /*yield*/, iframeRenderer.render(container.tree)]; |
| 6880 | 6376 | case 13: |
| 6881 | - canvas = _c.sent(); | |
| 6377 | + canvas = _b.sent(); | |
| 6882 | 6378 | if (container.width && container.height) { |
| 6883 | 6379 | this.ctx.drawImage(canvas, 0, 0, container.width, container.height, container.bounds.left, container.bounds.top, container.bounds.width, container.bounds.height); |
| 6884 | 6380 | } |
| 6885 | - _c.label = 14; | |
| 6381 | + _b.label = 14; | |
| 6886 | 6382 | case 14: |
| 6887 | 6383 | if (container instanceof InputElementContainer) { |
| 6888 | 6384 | size = Math.min(container.bounds.width, container.bounds.height); |
| 6889 | 6385 | if (container.type === CHECKBOX) { |
| @@ -6914,21 +6410,19 @@ | ||
| 6914 | 6410 | } |
| 6915 | 6411 | } |
| 6916 | 6412 | } |
| 6917 | 6413 | if (isTextInputElement(container) && container.value.length) { |
| 6918 | - _b = this.createFontStyle(styles), fontFamily = _b[0], fontSize = _b[1]; | |
| 6919 | - baseline = this.fontMetrics.getMetrics(fontFamily, fontSize).baseline; | |
| 6920 | - this.ctx.font = fontFamily; | |
| 6414 | + this.ctx.font = this.createFontStyle(styles)[0]; | |
| 6921 | 6415 | this.ctx.fillStyle = asString(styles.color); |
| 6922 | - this.ctx.textBaseline = 'alphabetic'; | |
| 6416 | + this.ctx.textBaseline = 'middle'; | |
| 6923 | 6417 | this.ctx.textAlign = canvasTextAlign(container.styles.textAlign); |
| 6924 | 6418 | bounds = contentBox(container); |
| 6925 | 6419 | x = 0; |
| 6926 | 6420 | switch (container.styles.textAlign) { |
| 6927 | - case 1 /* CENTER */: | |
| 6421 | + case TEXT_ALIGN.CENTER: | |
| 6928 | 6422 | x += bounds.width / 2; |
| 6929 | 6423 | break; |
| 6930 | - case 2 /* RIGHT */: | |
| 6424 | + case TEXT_ALIGN.RIGHT: | |
| 6931 | 6425 | x += bounds.width; |
| 6932 | 6426 | break; |
| 6933 | 6427 | } |
| 6934 | 6428 | textBounds = bounds.add(x, 0, 0, -bounds.height / 2 + 1); |
| @@ -6939,45 +6433,44 @@ | ||
| 6939 | 6433 | new Vector(bounds.left + bounds.width, bounds.top + bounds.height), |
| 6940 | 6434 | new Vector(bounds.left, bounds.top + bounds.height) |
| 6941 | 6435 | ]); |
| 6942 | 6436 | this.ctx.clip(); |
| 6943 | - this.renderTextWithLetterSpacing(new TextBounds(container.value, textBounds), styles.letterSpacing, baseline); | |
| 6437 | + this.renderTextWithLetterSpacing(new TextBounds(container.value, textBounds), styles.letterSpacing); | |
| 6944 | 6438 | this.ctx.restore(); |
| 6945 | - this.ctx.textBaseline = 'alphabetic'; | |
| 6439 | + this.ctx.textBaseline = 'bottom'; | |
| 6946 | 6440 | this.ctx.textAlign = 'left'; |
| 6947 | 6441 | } |
| 6948 | 6442 | if (!contains(container.styles.display, 2048 /* LIST_ITEM */)) return [3 /*break*/, 20]; |
| 6949 | 6443 | if (!(container.styles.listStyleImage !== null)) return [3 /*break*/, 19]; |
| 6950 | 6444 | img = container.styles.listStyleImage; |
| 6951 | - if (!(img.type === 0 /* URL */)) return [3 /*break*/, 18]; | |
| 6445 | + if (!(img.type === CSSImageType.URL)) return [3 /*break*/, 18]; | |
| 6952 | 6446 | image = void 0; |
| 6953 | 6447 | url = img.url; |
| 6954 | - _c.label = 15; | |
| 6448 | + _b.label = 15; | |
| 6955 | 6449 | case 15: |
| 6956 | - _c.trys.push([15, 17, , 18]); | |
| 6957 | - return [4 /*yield*/, this.context.cache.match(url)]; | |
| 6450 | + _b.trys.push([15, 17, , 18]); | |
| 6451 | + return [4 /*yield*/, this.options.cache.match(url)]; | |
| 6958 | 6452 | case 16: |
| 6959 | - image = _c.sent(); | |
| 6453 | + image = _b.sent(); | |
| 6960 | 6454 | this.ctx.drawImage(image, container.bounds.left - (image.width + 10), container.bounds.top); |
| 6961 | 6455 | return [3 /*break*/, 18]; |
| 6962 | 6456 | case 17: |
| 6963 | - _c.sent(); | |
| 6964 | - this.context.logger.error("Error loading list-style-image " + url); | |
| 6457 | + e_3 = _b.sent(); | |
| 6458 | + Logger.getInstance(this.options.id).error("Error loading list-style-image " + url); | |
| 6965 | 6459 | return [3 /*break*/, 18]; |
| 6966 | 6460 | case 18: return [3 /*break*/, 20]; |
| 6967 | 6461 | case 19: |
| 6968 | - if (paint.listValue && container.styles.listStyleType !== -1 /* NONE */) { | |
| 6969 | - fontFamily = this.createFontStyle(styles)[0]; | |
| 6970 | - this.ctx.font = fontFamily; | |
| 6462 | + if (paint.listValue && container.styles.listStyleType !== LIST_STYLE_TYPE.NONE) { | |
| 6463 | + this.ctx.font = this.createFontStyle(styles)[0]; | |
| 6971 | 6464 | this.ctx.fillStyle = asString(styles.color); |
| 6972 | 6465 | this.ctx.textBaseline = 'middle'; |
| 6973 | 6466 | this.ctx.textAlign = 'right'; |
| 6974 | 6467 | bounds = new Bounds(container.bounds.left, container.bounds.top + getAbsoluteValue(container.styles.paddingTop, container.bounds.width), container.bounds.width, computeLineHeight(styles.lineHeight, styles.fontSize.number) / 2 + 1); |
| 6975 | - this.renderTextWithLetterSpacing(new TextBounds(paint.listValue, bounds), styles.letterSpacing, computeLineHeight(styles.lineHeight, styles.fontSize.number) / 2 + 2); | |
| 6468 | + this.renderTextWithLetterSpacing(new TextBounds(paint.listValue, bounds), styles.letterSpacing); | |
| 6976 | 6469 | this.ctx.textBaseline = 'bottom'; |
| 6977 | 6470 | this.ctx.textAlign = 'left'; |
| 6978 | 6471 | } |
| 6979 | - _c.label = 20; | |
| 6472 | + _b.label = 20; | |
| 6980 | 6473 | case 20: return [2 /*return*/]; |
| 6981 | 6474 | } |
| 6982 | 6475 | }); |
| 6983 | 6476 | }); |
| @@ -6987,11 +6480,8 @@ | ||
| 6987 | 6480 | var _i, _a, child, _b, _c, child, _d, _e, child, _f, _g, child, _h, _j, child, _k, _l, child, _m, _o, child; |
| 6988 | 6481 | return __generator(this, function (_p) { |
| 6989 | 6482 | switch (_p.label) { |
| 6990 | 6483 | case 0: |
| 6991 | - if (contains(stack.element.container.flags, 16 /* DEBUG_RENDER */)) { | |
| 6992 | - debugger; | |
| 6993 | - } | |
| 6994 | 6484 | // https://www.w3.org/TR/css-position-3/#painting-order |
| 6995 | 6485 | // 1. the background and borders of the element forming the stacking context. |
| 6996 | 6486 | return [4 /*yield*/, this.renderNodeBackgroundAndBorders(stack.element)]; |
| 6997 | 6487 | case 1: |
| @@ -7009,11 +6499,11 @@ | ||
| 7009 | 6499 | _p.label = 4; |
| 7010 | 6500 | case 4: |
| 7011 | 6501 | _i++; |
| 7012 | 6502 | return [3 /*break*/, 2]; |
| 7013 | - case 5: | |
| 7014 | - // 3. For all its in-flow, non-positioned, block-level descendants in tree order: | |
| 7015 | - return [4 /*yield*/, this.renderNodeContent(stack.element)]; | |
| 6503 | + case 5: | |
| 6504 | + // 3. For all its in-flow, non-positioned, block-level descendants in tree order: | |
| 6505 | + return [4 /*yield*/, this.renderNodeContent(stack.element)]; | |
| 7016 | 6506 | case 6: |
| 7017 | 6507 | // 3. For all its in-flow, non-positioned, block-level descendants in tree order: |
| 7018 | 6508 | _p.sent(); |
| 7019 | 6509 | _b = 0, _c = stack.nonInlineLevel; |
| @@ -7135,16 +6625,14 @@ | ||
| 7135 | 6625 | this.ctx.fill(); |
| 7136 | 6626 | this.ctx.translate(-offsetX, -offsetY); |
| 7137 | 6627 | }; |
| 7138 | 6628 | CanvasRenderer.prototype.resizeImage = function (image, width, height) { |
| 7139 | - var _a; | |
| 7140 | 6629 | if (image.width === width && image.height === height) { |
| 7141 | 6630 | return image; |
| 7142 | 6631 | } |
| 7143 | - var ownerDocument = (_a = this.canvas.ownerDocument) !== null && _a !== void 0 ? _a : document; | |
| 7144 | - var canvas = ownerDocument.createElement('canvas'); | |
| 7145 | - canvas.width = Math.max(1, width); | |
| 7146 | - canvas.height = Math.max(1, height); | |
| 6632 | + var canvas = this.canvas.ownerDocument.createElement('canvas'); | |
| 6633 | + canvas.width = width; | |
| 6634 | + canvas.height = height; | |
| 7147 | 6635 | var ctx = canvas.getContext('2d'); |
| 7148 | 6636 | ctx.drawImage(image, 0, 0, image.width, image.height, 0, 0, width, height); |
| 7149 | 6637 | return canvas; |
| 7150 | 6638 | }; |
| @@ -7155,33 +6643,33 @@ | ||
| 7155 | 6643 | switch (_b.label) { |
| 7156 | 6644 | case 0: |
| 7157 | 6645 | index = container.styles.backgroundImage.length - 1; |
| 7158 | 6646 | _loop_1 = function (backgroundImage) { |
| 7159 | - var image, url, _c, path, x, y, width, height, pattern, _d, path, x, y, width, height, _e, lineLength, x0, x1, y0, y1, canvas, ctx, gradient_1, pattern, _f, path, left, top_1, width, height, position, x, y, _g, rx, ry, radialGradient_1, midX, midY, f, invF; | |
| 7160 | - return __generator(this, function (_h) { | |
| 7161 | - switch (_h.label) { | |
| 6647 | + var image, url, e_4, _a, path, x, y, width, height, pattern, _b, path, x, y, width, height, _c, lineLength, x0, x1, y0, y1, canvas, ctx, gradient_1, pattern, _d, path, left, top_1, width, height, position, x, y, _e, rx, ry, radialGradient_1, midX, midY, f, invF; | |
| 6648 | + return __generator(this, function (_f) { | |
| 6649 | + switch (_f.label) { | |
| 7162 | 6650 | case 0: |
| 7163 | - if (!(backgroundImage.type === 0 /* URL */)) return [3 /*break*/, 5]; | |
| 6651 | + if (!(backgroundImage.type === CSSImageType.URL)) return [3 /*break*/, 5]; | |
| 7164 | 6652 | image = void 0; |
| 7165 | 6653 | url = backgroundImage.url; |
| 7166 | - _h.label = 1; | |
| 6654 | + _f.label = 1; | |
| 7167 | 6655 | case 1: |
| 7168 | - _h.trys.push([1, 3, , 4]); | |
| 7169 | - return [4 /*yield*/, this_1.context.cache.match(url)]; | |
| 6656 | + _f.trys.push([1, 3, , 4]); | |
| 6657 | + return [4 /*yield*/, this_1.options.cache.match(url)]; | |
| 7170 | 6658 | case 2: |
| 7171 | - image = _h.sent(); | |
| 6659 | + image = _f.sent(); | |
| 7172 | 6660 | return [3 /*break*/, 4]; |
| 7173 | 6661 | case 3: |
| 7174 | - _h.sent(); | |
| 7175 | - this_1.context.logger.error("Error loading background-image " + url); | |
| 6662 | + e_4 = _f.sent(); | |
| 6663 | + Logger.getInstance(this_1.options.id).error("Error loading background-image " + url); | |
| 7176 | 6664 | return [3 /*break*/, 4]; |
| 7177 | 6665 | case 4: |
| 7178 | 6666 | if (image) { |
| 7179 | - _c = calculateBackgroundRendering(container, index, [ | |
| 6667 | + _a = calculateBackgroundRendering(container, index, [ | |
| 7180 | 6668 | image.width, |
| 7181 | 6669 | image.height, |
| 7182 | 6670 | image.width / image.height |
| 7183 | - ]), path = _c[0], x = _c[1], y = _c[2], width = _c[3], height = _c[4]; | |
| 6671 | + ]), path = _a[0], x = _a[1], y = _a[2], width = _a[3], height = _a[4]; | |
| 7184 | 6672 | pattern = this_1.ctx.createPattern(this_1.resizeImage(image, width, height), 'repeat'); |
| 7185 | 6673 | this_1.renderRepeat(path, pattern, x, y); |
| 7186 | 6674 | } |
| 7187 | 6675 | return [3 /*break*/, 6]; |
| @@ -7186,10 +6674,10 @@ | ||
| 7186 | 6674 | } |
| 7187 | 6675 | return [3 /*break*/, 6]; |
| 7188 | 6676 | case 5: |
| 7189 | 6677 | if (isLinearGradient(backgroundImage)) { |
| 7190 | - _d = calculateBackgroundRendering(container, index, [null, null, null]), path = _d[0], x = _d[1], y = _d[2], width = _d[3], height = _d[4]; | |
| 7191 | - _e = calculateGradientDirection(backgroundImage.angle, width, height), lineLength = _e[0], x0 = _e[1], x1 = _e[2], y0 = _e[3], y1 = _e[4]; | |
| 6678 | + _b = calculateBackgroundRendering(container, index, [null, null, null]), path = _b[0], x = _b[1], y = _b[2], width = _b[3], height = _b[4]; | |
| 6679 | + _c = calculateGradientDirection(backgroundImage.angle, width, height), lineLength = _c[0], x0 = _c[1], x1 = _c[2], y0 = _c[3], y1 = _c[4]; | |
| 7192 | 6680 | canvas = document.createElement('canvas'); |
| 7193 | 6681 | canvas.width = width; |
| 7194 | 6682 | canvas.height = height; |
| 7195 | 6683 | ctx = canvas.getContext('2d'); |
| @@ -7204,18 +6692,18 @@ | ||
| 7204 | 6692 | this_1.renderRepeat(path, pattern, x, y); |
| 7205 | 6693 | } |
| 7206 | 6694 | } |
| 7207 | 6695 | else if (isRadialGradient(backgroundImage)) { |
| 7208 | - _f = calculateBackgroundRendering(container, index, [ | |
| 6696 | + _d = calculateBackgroundRendering(container, index, [ | |
| 7209 | 6697 | null, |
| 7210 | 6698 | null, |
| 7211 | 6699 | null |
| 7212 | - ]), path = _f[0], left = _f[1], top_1 = _f[2], width = _f[3], height = _f[4]; | |
| 6700 | + ]), path = _d[0], left = _d[1], top_1 = _d[2], width = _d[3], height = _d[4]; | |
| 7213 | 6701 | position = backgroundImage.position.length === 0 ? [FIFTY_PERCENT] : backgroundImage.position; |
| 7214 | 6702 | x = getAbsoluteValue(position[0], width); |
| 7215 | 6703 | y = getAbsoluteValue(position[position.length - 1], height); |
| 7216 | - _g = calculateRadius(backgroundImage, x, y, width, height), rx = _g[0], ry = _g[1]; | |
| 7217 | - if (rx > 0 && ry > 0) { | |
| 6704 | + _e = calculateRadius(backgroundImage, x, y, width, height), rx = _e[0], ry = _e[1]; | |
| 6705 | + if (rx > 0 && rx > 0) { | |
| 7218 | 6706 | radialGradient_1 = this_1.ctx.createRadialGradient(left + x, top_1 + y, 0, left + x, top_1 + y, rx); |
| 7219 | 6707 | processColorStops(backgroundImage.stops, rx * 2).forEach(function (colorStop) { |
| 7220 | 6708 | return radialGradient_1.addColorStop(colorStop.stop, asString(colorStop.color)); |
| 7221 | 6709 | }); |
| @@ -7237,9 +6725,9 @@ | ||
| 7237 | 6725 | this_1.ctx.fill(); |
| 7238 | 6726 | } |
| 7239 | 6727 | } |
| 7240 | 6728 | } |
| 7241 | - _h.label = 6; | |
| 6729 | + _f.label = 6; | |
| 7242 | 6730 | case 6: |
| 7243 | 6731 | index--; |
| 7244 | 6732 | return [2 /*return*/]; |
| 7245 | 6733 | } |
| @@ -7262,9 +6750,9 @@ | ||
| 7262 | 6750 | } |
| 7263 | 6751 | }); |
| 7264 | 6752 | }); |
| 7265 | 6753 | }; |
| 7266 | - CanvasRenderer.prototype.renderSolidBorder = function (color, side, curvePoints) { | |
| 6754 | + CanvasRenderer.prototype.renderBorder = function (color, side, curvePoints) { | |
| 7267 | 6755 | return __awaiter(this, void 0, void 0, function () { |
| 7268 | 6756 | return __generator(this, function (_a) { |
| 7269 | 6757 | this.path(parsePathForBorder(curvePoints, side)); |
| 7270 | 6758 | this.ctx.fillStyle = asString(color); |
| @@ -7272,32 +6760,8 @@ | ||
| 7272 | 6760 | return [2 /*return*/]; |
| 7273 | 6761 | }); |
| 7274 | 6762 | }); |
| 7275 | 6763 | }; |
| 7276 | - CanvasRenderer.prototype.renderDoubleBorder = function (color, width, side, curvePoints) { | |
| 7277 | - return __awaiter(this, void 0, void 0, function () { | |
| 7278 | - var outerPaths, innerPaths; | |
| 7279 | - return __generator(this, function (_a) { | |
| 7280 | - switch (_a.label) { | |
| 7281 | - case 0: | |
| 7282 | - if (!(width < 3)) return [3 /*break*/, 2]; | |
| 7283 | - return [4 /*yield*/, this.renderSolidBorder(color, side, curvePoints)]; | |
| 7284 | - case 1: | |
| 7285 | - _a.sent(); | |
| 7286 | - return [2 /*return*/]; | |
| 7287 | - case 2: | |
| 7288 | - outerPaths = parsePathForBorderDoubleOuter(curvePoints, side); | |
| 7289 | - this.path(outerPaths); | |
| 7290 | - this.ctx.fillStyle = asString(color); | |
| 7291 | - this.ctx.fill(); | |
| 7292 | - innerPaths = parsePathForBorderDoubleInner(curvePoints, side); | |
| 7293 | - this.path(innerPaths); | |
| 7294 | - this.ctx.fill(); | |
| 7295 | - return [2 /*return*/]; | |
| 7296 | - } | |
| 7297 | - }); | |
| 7298 | - }); | |
| 7299 | - }; | |
| 7300 | 6764 | CanvasRenderer.prototype.renderNodeBackgroundAndBorders = function (paint) { |
| 7301 | 6765 | return __awaiter(this, void 0, void 0, function () { |
| 7302 | 6766 | var styles, hasBackground, borders, backgroundPaintingArea, side, _i, borders_1, border; |
| 7303 | 6767 | var _this = this; |
| @@ -7303,16 +6767,16 @@ | ||
| 7303 | 6767 | var _this = this; |
| 7304 | 6768 | return __generator(this, function (_a) { |
| 7305 | 6769 | switch (_a.label) { |
| 7306 | 6770 | case 0: |
| 7307 | - this.applyEffects(paint.getEffects(2 /* BACKGROUND_BORDERS */)); | |
| 6771 | + this.applyEffects(paint.effects, 2 /* BACKGROUND_BORDERS */); | |
| 7308 | 6772 | styles = paint.container.styles; |
| 7309 | 6773 | hasBackground = !isTransparent(styles.backgroundColor) || styles.backgroundImage.length; |
| 7310 | 6774 | borders = [ |
| 7311 | - { style: styles.borderTopStyle, color: styles.borderTopColor, width: styles.borderTopWidth }, | |
| 7312 | - { style: styles.borderRightStyle, color: styles.borderRightColor, width: styles.borderRightWidth }, | |
| 7313 | - { style: styles.borderBottomStyle, color: styles.borderBottomColor, width: styles.borderBottomWidth }, | |
| 7314 | - { style: styles.borderLeftStyle, color: styles.borderLeftColor, width: styles.borderLeftWidth } | |
| 6775 | + { style: styles.borderTopStyle, color: styles.borderTopColor }, | |
| 6776 | + { style: styles.borderRightStyle, color: styles.borderRightColor }, | |
| 6777 | + { style: styles.borderBottomStyle, color: styles.borderBottomColor }, | |
| 6778 | + { style: styles.borderLeftStyle, color: styles.borderLeftColor } | |
| 7315 | 6779 | ]; |
| 7316 | 6780 | backgroundPaintingArea = calculateBackgroundCurvedPaintingArea(getBackgroundValueForIndex(styles.backgroundClip, 0), paint.curves); |
| 7317 | 6781 | if (!(hasBackground || styles.boxShadow.length)) return [3 /*break*/, 2]; |
| 7318 | 6782 | this.ctx.save(); |
| @@ -7329,30 +6793,30 @@ | ||
| 7329 | 6793 | styles.boxShadow |
| 7330 | 6794 | .slice(0) |
| 7331 | 6795 | .reverse() |
| 7332 | 6796 | .forEach(function (shadow) { |
| 7333 | - _this.ctx.save(); | |
| 7334 | - var borderBoxArea = calculateBorderBoxPath(paint.curves); | |
| 7335 | - var maskOffset = shadow.inset ? 0 : MASK_OFFSET; | |
| 7336 | - var shadowPaintingArea = transformPath(borderBoxArea, -maskOffset + (shadow.inset ? 1 : -1) * shadow.spread.number, (shadow.inset ? 1 : -1) * shadow.spread.number, shadow.spread.number * (shadow.inset ? -2 : 2), shadow.spread.number * (shadow.inset ? -2 : 2)); | |
| 7337 | - if (shadow.inset) { | |
| 7338 | - _this.path(borderBoxArea); | |
| 7339 | - _this.ctx.clip(); | |
| 7340 | - _this.mask(shadowPaintingArea); | |
| 7341 | - } | |
| 7342 | - else { | |
| 7343 | - _this.mask(borderBoxArea); | |
| 7344 | - _this.ctx.clip(); | |
| 7345 | - _this.path(shadowPaintingArea); | |
| 7346 | - } | |
| 7347 | - _this.ctx.shadowOffsetX = shadow.offsetX.number + maskOffset; | |
| 7348 | - _this.ctx.shadowOffsetY = shadow.offsetY.number; | |
| 7349 | - _this.ctx.shadowColor = asString(shadow.color); | |
| 7350 | - _this.ctx.shadowBlur = shadow.blur.number; | |
| 7351 | - _this.ctx.fillStyle = shadow.inset ? asString(shadow.color) : 'rgba(0,0,0,1)'; | |
| 7352 | - _this.ctx.fill(); | |
| 7353 | - _this.ctx.restore(); | |
| 7354 | - }); | |
| 6797 | + _this.ctx.save(); | |
| 6798 | + var borderBoxArea = calculateBorderBoxPath(paint.curves); | |
| 6799 | + var maskOffset = shadow.inset ? 0 : MASK_OFFSET; | |
| 6800 | + var shadowPaintingArea = transformPath(borderBoxArea, -maskOffset + (shadow.inset ? 1 : -1) * shadow.spread.number, (shadow.inset ? 1 : -1) * shadow.spread.number, shadow.spread.number * (shadow.inset ? -2 : 2), shadow.spread.number * (shadow.inset ? -2 : 2)); | |
| 6801 | + if (shadow.inset) { | |
| 6802 | + _this.path(borderBoxArea); | |
| 6803 | + _this.ctx.clip(); | |
| 6804 | + _this.mask(shadowPaintingArea); | |
| 6805 | + } | |
| 6806 | + else { | |
| 6807 | + _this.mask(borderBoxArea); | |
| 6808 | + _this.ctx.clip(); | |
| 6809 | + _this.path(shadowPaintingArea); | |
| 6810 | + } | |
| 6811 | + _this.ctx.shadowOffsetX = shadow.offsetX.number + maskOffset; | |
| 6812 | + _this.ctx.shadowOffsetY = shadow.offsetY.number; | |
| 6813 | + _this.ctx.shadowColor = asString(shadow.color); | |
| 6814 | + _this.ctx.shadowBlur = shadow.blur.number; | |
| 6815 | + _this.ctx.fillStyle = shadow.inset ? asString(shadow.color) : 'rgba(0,0,0,1)'; | |
| 6816 | + _this.ctx.fill(); | |
| 6817 | + _this.ctx.restore(); | |
| 6818 | + }); | |
| 7355 | 6819 | _a.label = 2; |
| 7356 | 6820 | case 2: |
| 7357 | 6821 | side = 0; |
| 7358 | 6822 | _i = 0, borders_1 = borders; |
| @@ -7357,147 +6821,26 @@ | ||
| 7357 | 6821 | side = 0; |
| 7358 | 6822 | _i = 0, borders_1 = borders; |
| 7359 | 6823 | _a.label = 3; |
| 7360 | 6824 | case 3: |
| 7361 | - if (!(_i < borders_1.length)) return [3 /*break*/, 13]; | |
| 6825 | + if (!(_i < borders_1.length)) return [3 /*break*/, 7]; | |
| 7362 | 6826 | border = borders_1[_i]; |
| 7363 | - if (!(border.style !== 0 /* NONE */ && !isTransparent(border.color) && border.width > 0)) return [3 /*break*/, 11]; | |
| 7364 | - if (!(border.style === 2 /* DASHED */)) return [3 /*break*/, 5]; | |
| 7365 | - return [4 /*yield*/, this.renderDashedDottedBorder(border.color, border.width, side, paint.curves, 2 /* DASHED */)]; | |
| 6827 | + if (!(border.style !== BORDER_STYLE.NONE && !isTransparent(border.color))) return [3 /*break*/, 5]; | |
| 6828 | + return [4 /*yield*/, this.renderBorder(border.color, side, paint.curves)]; | |
| 7366 | 6829 | case 4: |
| 7367 | 6830 | _a.sent(); |
| 7368 | - return [3 /*break*/, 11]; | |
| 6831 | + _a.label = 5; | |
| 7369 | 6832 | case 5: |
| 7370 | - if (!(border.style === 3 /* DOTTED */)) return [3 /*break*/, 7]; | |
| 7371 | - return [4 /*yield*/, this.renderDashedDottedBorder(border.color, border.width, side, paint.curves, 3 /* DOTTED */)]; | |
| 6833 | + side++; | |
| 6834 | + _a.label = 6; | |
| 7372 | 6835 | case 6: |
| 7373 | - _a.sent(); | |
| 7374 | - return [3 /*break*/, 11]; | |
| 7375 | - case 7: | |
| 7376 | - if (!(border.style === 4 /* DOUBLE */)) return [3 /*break*/, 9]; | |
| 7377 | - return [4 /*yield*/, this.renderDoubleBorder(border.color, border.width, side, paint.curves)]; | |
| 7378 | - case 8: | |
| 7379 | - _a.sent(); | |
| 7380 | - return [3 /*break*/, 11]; | |
| 7381 | - case 9: return [4 /*yield*/, this.renderSolidBorder(border.color, side, paint.curves)]; | |
| 7382 | - case 10: | |
| 7383 | - _a.sent(); | |
| 7384 | - _a.label = 11; | |
| 7385 | - case 11: | |
| 7386 | - side++; | |
| 7387 | - _a.label = 12; | |
| 7388 | - case 12: | |
| 7389 | 6836 | _i++; |
| 7390 | 6837 | return [3 /*break*/, 3]; |
| 7391 | - case 13: return [2 /*return*/]; | |
| 6838 | + case 7: return [2 /*return*/]; | |
| 7392 | 6839 | } |
| 7393 | 6840 | }); |
| 7394 | 6841 | }); |
| 7395 | 6842 | }; |
| 7396 | - CanvasRenderer.prototype.renderDashedDottedBorder = function (color, width, side, curvePoints, style) { | |
| 7397 | - return __awaiter(this, void 0, void 0, function () { | |
| 7398 | - var strokePaths, boxPaths, startX, startY, endX, endY, length, dashLength, spaceLength, useLineDash, multiplier, numberOfDashes, minSpace, maxSpace, path1, path2, path1, path2; | |
| 7399 | - return __generator(this, function (_a) { | |
| 7400 | - this.ctx.save(); | |
| 7401 | - strokePaths = parsePathForBorderStroke(curvePoints, side); | |
| 7402 | - boxPaths = parsePathForBorder(curvePoints, side); | |
| 7403 | - if (style === 2 /* DASHED */) { | |
| 7404 | - this.path(boxPaths); | |
| 7405 | - this.ctx.clip(); | |
| 7406 | - } | |
| 7407 | - if (isBezierCurve(boxPaths[0])) { | |
| 7408 | - startX = boxPaths[0].start.x; | |
| 7409 | - startY = boxPaths[0].start.y; | |
| 7410 | - } | |
| 7411 | - else { | |
| 7412 | - startX = boxPaths[0].x; | |
| 7413 | - startY = boxPaths[0].y; | |
| 7414 | - } | |
| 7415 | - if (isBezierCurve(boxPaths[1])) { | |
| 7416 | - endX = boxPaths[1].end.x; | |
| 7417 | - endY = boxPaths[1].end.y; | |
| 7418 | - } | |
| 7419 | - else { | |
| 7420 | - endX = boxPaths[1].x; | |
| 7421 | - endY = boxPaths[1].y; | |
| 7422 | - } | |
| 7423 | - if (side === 0 || side === 2) { | |
| 7424 | - length = Math.abs(startX - endX); | |
| 7425 | - } | |
| 7426 | - else { | |
| 7427 | - length = Math.abs(startY - endY); | |
| 7428 | - } | |
| 7429 | - this.ctx.beginPath(); | |
| 7430 | - if (style === 3 /* DOTTED */) { | |
| 7431 | - this.formatPath(strokePaths); | |
| 7432 | - } | |
| 7433 | - else { | |
| 7434 | - this.formatPath(boxPaths.slice(0, 2)); | |
| 7435 | - } | |
| 7436 | - dashLength = width < 3 ? width * 3 : width * 2; | |
| 7437 | - spaceLength = width < 3 ? width * 2 : width; | |
| 7438 | - if (style === 3 /* DOTTED */) { | |
| 7439 | - dashLength = width; | |
| 7440 | - spaceLength = width; | |
| 7441 | - } | |
| 7442 | - useLineDash = true; | |
| 7443 | - if (length <= dashLength * 2) { | |
| 7444 | - useLineDash = false; | |
| 7445 | - } | |
| 7446 | - else if (length <= dashLength * 2 + spaceLength) { | |
| 7447 | - multiplier = length / (2 * dashLength + spaceLength); | |
| 7448 | - dashLength *= multiplier; | |
| 7449 | - spaceLength *= multiplier; | |
| 7450 | - } | |
| 7451 | - else { | |
| 7452 | - numberOfDashes = Math.floor((length + spaceLength) / (dashLength + spaceLength)); | |
| 7453 | - minSpace = (length - numberOfDashes * dashLength) / (numberOfDashes - 1); | |
| 7454 | - maxSpace = (length - (numberOfDashes + 1) * dashLength) / numberOfDashes; | |
| 7455 | - spaceLength = | |
| 7456 | - maxSpace <= 0 || Math.abs(spaceLength - minSpace) < Math.abs(spaceLength - maxSpace) | |
| 7457 | - ? minSpace | |
| 7458 | - : maxSpace; | |
| 7459 | - } | |
| 7460 | - if (useLineDash) { | |
| 7461 | - if (style === 3 /* DOTTED */) { | |
| 7462 | - this.ctx.setLineDash([0, dashLength + spaceLength]); | |
| 7463 | - } | |
| 7464 | - else { | |
| 7465 | - this.ctx.setLineDash([dashLength, spaceLength]); | |
| 7466 | - } | |
| 7467 | - } | |
| 7468 | - if (style === 3 /* DOTTED */) { | |
| 7469 | - this.ctx.lineCap = 'round'; | |
| 7470 | - this.ctx.lineWidth = width; | |
| 7471 | - } | |
| 7472 | - else { | |
| 7473 | - this.ctx.lineWidth = width * 2 + 1.1; | |
| 7474 | - } | |
| 7475 | - this.ctx.strokeStyle = asString(color); | |
| 7476 | - this.ctx.stroke(); | |
| 7477 | - this.ctx.setLineDash([]); | |
| 7478 | - // dashed round edge gap | |
| 7479 | - if (style === 2 /* DASHED */) { | |
| 7480 | - if (isBezierCurve(boxPaths[0])) { | |
| 7481 | - path1 = boxPaths[3]; | |
| 7482 | - path2 = boxPaths[0]; | |
| 7483 | - this.ctx.beginPath(); | |
| 7484 | - this.formatPath([new Vector(path1.end.x, path1.end.y), new Vector(path2.start.x, path2.start.y)]); | |
| 7485 | - this.ctx.stroke(); | |
| 7486 | - } | |
| 7487 | - if (isBezierCurve(boxPaths[1])) { | |
| 7488 | - path1 = boxPaths[1]; | |
| 7489 | - path2 = boxPaths[2]; | |
| 7490 | - this.ctx.beginPath(); | |
| 7491 | - this.formatPath([new Vector(path1.end.x, path1.end.y), new Vector(path2.start.x, path2.start.y)]); | |
| 7492 | - this.ctx.stroke(); | |
| 7493 | - } | |
| 7494 | - } | |
| 7495 | - this.ctx.restore(); | |
| 7496 | - return [2 /*return*/]; | |
| 7497 | - }); | |
| 7498 | - }); | |
| 7499 | - }; | |
| 7500 | 6843 | CanvasRenderer.prototype.render = function (element) { |
| 7501 | 6844 | return __awaiter(this, void 0, void 0, function () { |
| 7502 | 6845 | var stack; |
| 7503 | 6846 | return __generator(this, function (_a) { |
| @@ -7504,15 +6847,15 @@ | ||
| 7504 | 6847 | switch (_a.label) { |
| 7505 | 6848 | case 0: |
| 7506 | 6849 | if (this.options.backgroundColor) { |
| 7507 | 6850 | this.ctx.fillStyle = asString(this.options.backgroundColor); |
| 7508 | - this.ctx.fillRect(this.options.x, this.options.y, this.options.width, this.options.height); | |
| 6851 | + this.ctx.fillRect(this.options.x - this.options.scrollX, this.options.y - this.options.scrollY, this.options.width, this.options.height); | |
| 7509 | 6852 | } |
| 7510 | 6853 | stack = parseStackingContexts(element); |
| 7511 | 6854 | return [4 /*yield*/, this.renderStack(stack)]; |
| 7512 | 6855 | case 1: |
| 7513 | 6856 | _a.sent(); |
| 7514 | - this.applyEffects([]); | |
| 6857 | + this.applyEffects([], 2 /* BACKGROUND_BORDERS */); | |
| 7515 | 6858 | return [2 /*return*/, this.canvas]; |
| 7516 | 6859 | } |
| 7517 | 6860 | }); |
| 7518 | 6861 | }); |
| @@ -7517,9 +6860,9 @@ | ||
| 7517 | 6860 | }); |
| 7518 | 6861 | }); |
| 7519 | 6862 | }; |
| 7520 | 6863 | return CanvasRenderer; |
| 7521 | - }(Renderer)); | |
| 6864 | + }()); | |
| 7522 | 6865 | var isTextInputElement = function (container) { |
| 7523 | 6866 | if (container instanceof TextareaElementContainer) { |
| 7524 | 6867 | return true; |
| 7525 | 6868 | } |
| @@ -7532,13 +6875,13 @@ | ||
| 7532 | 6875 | return false; |
| 7533 | 6876 | }; |
| 7534 | 6877 | var calculateBackgroundCurvedPaintingArea = function (clip, curves) { |
| 7535 | 6878 | switch (clip) { |
| 7536 | - case 0 /* BORDER_BOX */: | |
| 6879 | + case BACKGROUND_CLIP.BORDER_BOX: | |
| 7537 | 6880 | return calculateBorderBoxPath(curves); |
| 7538 | - case 2 /* CONTENT_BOX */: | |
| 6881 | + case BACKGROUND_CLIP.CONTENT_BOX: | |
| 7539 | 6882 | return calculateContentBoxPath(curves); |
| 7540 | - case 1 /* PADDING_BOX */: | |
| 6883 | + case BACKGROUND_CLIP.PADDING_BOX: | |
| 7541 | 6884 | default: |
| 7542 | 6885 | return calculatePaddingBoxPath(curves); |
| 7543 | 6886 | } |
| 7544 | 6887 | }; |
| @@ -7543,40 +6886,30 @@ | ||
| 7543 | 6886 | } |
| 7544 | 6887 | }; |
| 7545 | 6888 | var canvasTextAlign = function (textAlign) { |
| 7546 | 6889 | switch (textAlign) { |
| 7547 | - case 1 /* CENTER */: | |
| 6890 | + case TEXT_ALIGN.CENTER: | |
| 7548 | 6891 | return 'center'; |
| 7549 | - case 2 /* RIGHT */: | |
| 6892 | + case TEXT_ALIGN.RIGHT: | |
| 7550 | 6893 | return 'right'; |
| 7551 | - case 0 /* LEFT */: | |
| 6894 | + case TEXT_ALIGN.LEFT: | |
| 7552 | 6895 | default: |
| 7553 | 6896 | return 'left'; |
| 7554 | 6897 | } |
| 7555 | 6898 | }; |
| 7556 | - // see https://github.com/niklasvh/html2canvas/pull/2645 | |
| 7557 | - var iOSBrokenFonts = ['-apple-system', 'system-ui']; | |
| 7558 | - var fixIOSSystemFonts = function (fontFamilies) { | |
| 7559 | - return /iPhone OS 15_(0|1)/.test(window.navigator.userAgent) | |
| 7560 | - ? fontFamilies.filter(function (fontFamily) { return iOSBrokenFonts.indexOf(fontFamily) === -1; }) | |
| 7561 | - : fontFamilies; | |
| 7562 | - }; | |
| 7563 | 6899 | |
| 7564 | - var ForeignObjectRenderer = /** @class */ (function (_super) { | |
| 7565 | - __extends(ForeignObjectRenderer, _super); | |
| 7566 | - function ForeignObjectRenderer(context, options) { | |
| 7567 | - var _this = _super.call(this, context, options) || this; | |
| 7568 | - _this.canvas = options.canvas ? options.canvas : document.createElement('canvas'); | |
| 7569 | - _this.ctx = _this.canvas.getContext('2d'); | |
| 7570 | - _this.options = options; | |
| 7571 | - _this.canvas.width = Math.floor(options.width * options.scale); | |
| 7572 | - _this.canvas.height = Math.floor(options.height * options.scale); | |
| 7573 | - _this.canvas.style.width = options.width + "px"; | |
| 7574 | - _this.canvas.style.height = options.height + "px"; | |
| 7575 | - _this.ctx.scale(_this.options.scale, _this.options.scale); | |
| 7576 | - _this.ctx.translate(-options.x, -options.y); | |
| 7577 | - _this.context.logger.debug("EXPERIMENTAL ForeignObject renderer initialized (" + options.width + "x" + options.height + " at " + options.x + "," + options.y + ") with scale " + options.scale); | |
| 7578 | - return _this; | |
| 6900 | + var ForeignObjectRenderer = /** @class */ (function () { | |
| 6901 | + function ForeignObjectRenderer(options) { | |
| 6902 | + this.canvas = options.canvas ? options.canvas : document.createElement('canvas'); | |
| 6903 | + this.ctx = this.canvas.getContext('2d'); | |
| 6904 | + this.options = options; | |
| 6905 | + this.canvas.width = Math.floor(options.width * options.scale); | |
| 6906 | + this.canvas.height = Math.floor(options.height * options.scale); | |
| 6907 | + this.canvas.style.width = options.width + "px"; | |
| 6908 | + this.canvas.style.height = options.height + "px"; | |
| 6909 | + this.ctx.scale(this.options.scale, this.options.scale); | |
| 6910 | + this.ctx.translate(-options.x + options.scrollX, -options.y + options.scrollY); | |
| 6911 | + Logger.getInstance(options.id).debug("EXPERIMENTAL ForeignObject renderer initialized (" + options.width + "x" + options.height + " at " + options.x + "," + options.y + ") with scale " + options.scale); | |
| 7579 | 6912 | } |
| 7580 | 6913 | ForeignObjectRenderer.prototype.render = function (element) { |
| 7581 | 6914 | return __awaiter(this, void 0, void 0, function () { |
| 7582 | 6915 | var svg, img; |
| @@ -7582,10 +6915,10 @@ | ||
| 7582 | 6915 | var svg, img; |
| 7583 | 6916 | return __generator(this, function (_a) { |
| 7584 | 6917 | switch (_a.label) { |
| 7585 | 6918 | case 0: |
| 7586 | - svg = createForeignObjectSVG(this.options.width * this.options.scale, this.options.height * this.options.scale, this.options.scale, this.options.scale, element); | |
| 7587 | - return [4 /*yield*/, loadSerializedSVG(svg)]; | |
| 6919 | + svg = createForeignObjectSVG(Math.max(this.options.windowWidth, this.options.width) * this.options.scale, Math.max(this.options.windowHeight, this.options.height) * this.options.scale, this.options.scrollX * this.options.scale, this.options.scrollY * this.options.scale, element); | |
| 6920 | + return [4 /*yield*/, loadSerializedSVG$1(svg)]; | |
| 7588 | 6921 | case 1: |
| 7589 | 6922 | img = _a.sent(); |
| 7590 | 6923 | if (this.options.backgroundColor) { |
| 7591 | 6924 | this.ctx.fillStyle = asString(this.options.backgroundColor); |
| @@ -7597,10 +6930,10 @@ | ||
| 7597 | 6930 | }); |
| 7598 | 6931 | }); |
| 7599 | 6932 | }; |
| 7600 | 6933 | return ForeignObjectRenderer; |
| 7601 | - }(Renderer)); | |
| 7602 | - var loadSerializedSVG = function (svg) { | |
| 6934 | + }()); | |
| 6935 | + var loadSerializedSVG$1 = function (svg) { | |
| 7603 | 6936 | return new Promise(function (resolve, reject) { |
| 7604 | 6937 | var img = new Image(); |
| 7605 | 6938 | img.onload = function () { |
| 7606 | 6939 | resolve(img); |
| @@ -7609,99 +6942,10 @@ | ||
| 7609 | 6942 | img.src = "data:image/svg+xml;charset=utf-8," + encodeURIComponent(new XMLSerializer().serializeToString(svg)); |
| 7610 | 6943 | }); |
| 7611 | 6944 | }; |
| 7612 | 6945 | |
| 7613 | - var Logger = /** @class */ (function () { | |
| 7614 | - function Logger(_a) { | |
| 7615 | - var id = _a.id, enabled = _a.enabled; | |
| 7616 | - this.id = id; | |
| 7617 | - this.enabled = enabled; | |
| 7618 | - this.start = Date.now(); | |
| 7619 | - } | |
| 7620 | - // eslint-disable-next-line @typescript-eslint/no-explicit-any | |
| 7621 | - Logger.prototype.debug = function () { | |
| 7622 | - var args = []; | |
| 7623 | - for (var _i = 0; _i < arguments.length; _i++) { | |
| 7624 | - args[_i] = arguments[_i]; | |
| 7625 | - } | |
| 7626 | - if (this.enabled) { | |
| 7627 | - // eslint-disable-next-line no-console | |
| 7628 | - if (typeof window !== 'undefined' && window.console && typeof console.debug === 'function') { | |
| 7629 | - // eslint-disable-next-line no-console | |
| 7630 | - console.debug.apply(console, __spreadArray([this.id, this.getTime() + "ms"], args)); | |
| 7631 | - } | |
| 7632 | - else { | |
| 7633 | - this.info.apply(this, args); | |
| 7634 | - } | |
| 7635 | - } | |
| 7636 | - }; | |
| 7637 | - Logger.prototype.getTime = function () { | |
| 7638 | - return Date.now() - this.start; | |
| 7639 | - }; | |
| 7640 | - // eslint-disable-next-line @typescript-eslint/no-explicit-any | |
| 7641 | - Logger.prototype.info = function () { | |
| 7642 | - var args = []; | |
| 7643 | - for (var _i = 0; _i < arguments.length; _i++) { | |
| 7644 | - args[_i] = arguments[_i]; | |
| 7645 | - } | |
| 7646 | - if (this.enabled) { | |
| 7647 | - // eslint-disable-next-line no-console | |
| 7648 | - if (typeof window !== 'undefined' && window.console && typeof console.info === 'function') { | |
| 7649 | - // eslint-disable-next-line no-console | |
| 7650 | - console.info.apply(console, __spreadArray([this.id, this.getTime() + "ms"], args)); | |
| 7651 | - } | |
| 7652 | - } | |
| 7653 | - }; | |
| 7654 | - // eslint-disable-next-line @typescript-eslint/no-explicit-any | |
| 7655 | - Logger.prototype.warn = function () { | |
| 7656 | - var args = []; | |
| 7657 | - for (var _i = 0; _i < arguments.length; _i++) { | |
| 7658 | - args[_i] = arguments[_i]; | |
| 7659 | - } | |
| 7660 | - if (this.enabled) { | |
| 7661 | - // eslint-disable-next-line no-console | |
| 7662 | - if (typeof window !== 'undefined' && window.console && typeof console.warn === 'function') { | |
| 7663 | - // eslint-disable-next-line no-console | |
| 7664 | - console.warn.apply(console, __spreadArray([this.id, this.getTime() + "ms"], args)); | |
| 7665 | - } | |
| 7666 | - else { | |
| 7667 | - this.info.apply(this, args); | |
| 7668 | - } | |
| 7669 | - } | |
| 7670 | - }; | |
| 7671 | - // eslint-disable-next-line @typescript-eslint/no-explicit-any | |
| 7672 | - Logger.prototype.error = function () { | |
| 7673 | - var args = []; | |
| 7674 | - for (var _i = 0; _i < arguments.length; _i++) { | |
| 7675 | - args[_i] = arguments[_i]; | |
| 7676 | - } | |
| 7677 | - if (this.enabled) { | |
| 7678 | - // eslint-disable-next-line no-console | |
| 7679 | - if (typeof window !== 'undefined' && window.console && typeof console.error === 'function') { | |
| 7680 | - // eslint-disable-next-line no-console | |
| 7681 | - console.error.apply(console, __spreadArray([this.id, this.getTime() + "ms"], args)); | |
| 7682 | - } | |
| 7683 | - else { | |
| 7684 | - this.info.apply(this, args); | |
| 7685 | - } | |
| 7686 | - } | |
| 7687 | - }; | |
| 7688 | - Logger.instances = {}; | |
| 7689 | - return Logger; | |
| 7690 | - }()); | |
| 7691 | - | |
| 7692 | - var Context = /** @class */ (function () { | |
| 7693 | - function Context(options, windowBounds) { | |
| 7694 | - var _a; | |
| 7695 | - this.windowBounds = windowBounds; | |
| 7696 | - this.instanceName = "#" + Context.instanceCount++; | |
| 7697 | - this.logger = new Logger({ id: this.instanceName, enabled: options.logging }); | |
| 7698 | - this.cache = (_a = options.cache) !== null && _a !== void 0 ? _a : new Cache(this, options); | |
| 7699 | - } | |
| 7700 | - Context.instanceCount = 1; | |
| 7701 | - return Context; | |
| 7702 | - }()); | |
| 7703 | - | |
| 6946 | + var _this = undefined; | |
| 6947 | + var parseColor$1 = function (value) { return color.parse(Parser.create(value).parseComponentValue()); }; | |
| 7704 | 6948 | var html2canvas = function (element, options) { |
| 7705 | 6949 | if (options === void 0) { options = {}; } |
| 7706 | 6950 | return renderElement(element, options); |
| 7707 | 6951 | }; |
| @@ -7707,17 +6951,13 @@ | ||
| 7707 | 6951 | }; |
| 7708 | 6952 | if (typeof window !== 'undefined') { |
| 7709 | 6953 | CacheStorage.setContext(window); |
| 7710 | 6954 | } |
| 7711 | - var renderElement = function (element, opts) { return __awaiter(void 0, void 0, void 0, function () { | |
| 7712 | - var ownerDocument, defaultView, resourceOptions, contextOptions, windowOptions, windowBounds, context, foreignObjectRendering, cloneOptions, documentCloner, clonedElement, container, _a, width, height, left, top, backgroundColor, renderOptions, canvas, renderer, root, renderer; | |
| 7713 | - var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t; | |
| 7714 | - return __generator(this, function (_u) { | |
| 7715 | - switch (_u.label) { | |
| 6955 | + var renderElement = function (element, opts) { return __awaiter(_this, void 0, void 0, function () { | |
| 6956 | + var ownerDocument, defaultView, instanceName, _a, width, height, left, top, defaultResourceOptions, resourceOptions, defaultOptions, options, windowBounds, documentCloner, clonedElement, container, documentBackgroundColor, bodyBackgroundColor, bgColor, defaultBackgroundColor, backgroundColor, renderOptions, canvas, renderer, root, renderer; | |
| 6957 | + return __generator(this, function (_b) { | |
| 6958 | + switch (_b.label) { | |
| 7716 | 6959 | case 0: |
| 7717 | - if (!element || typeof element !== 'object') { | |
| 7718 | - return [2 /*return*/, Promise.reject('Invalid element provided as first argument')]; | |
| 7719 | - } | |
| 7720 | 6960 | ownerDocument = element.ownerDocument; |
| 7721 | 6961 | if (!ownerDocument) { |
| 7722 | 6962 | throw new Error("Element is not attached to a Document"); |
| 7723 | 6963 | } |
| @@ -7724,33 +6964,45 @@ | ||
| 7724 | 6964 | defaultView = ownerDocument.defaultView; |
| 7725 | 6965 | if (!defaultView) { |
| 7726 | 6966 | throw new Error("Document is not attached to a Window"); |
| 7727 | 6967 | } |
| 7728 | - resourceOptions = { | |
| 7729 | - allowTaint: (_b = opts.allowTaint) !== null && _b !== void 0 ? _b : false, | |
| 7730 | - imageTimeout: (_c = opts.imageTimeout) !== null && _c !== void 0 ? _c : 15000, | |
| 7731 | - proxy: opts.proxy, | |
| 7732 | - useCORS: (_d = opts.useCORS) !== null && _d !== void 0 ? _d : false | |
| 6968 | + instanceName = (Math.round(Math.random() * 1000) + Date.now()).toString(16); | |
| 6969 | + _a = isBodyElement(element) || isHTMLElement(element) ? parseDocumentSize(ownerDocument) : parseBounds(element), width = _a.width, height = _a.height, left = _a.left, top = _a.top; | |
| 6970 | + defaultResourceOptions = { | |
| 6971 | + allowTaint: false, | |
| 6972 | + imageTimeout: 15000, | |
| 6973 | + proxy: undefined, | |
| 6974 | + useCORS: false | |
| 7733 | 6975 | }; |
| 7734 | - contextOptions = __assign({ logging: (_e = opts.logging) !== null && _e !== void 0 ? _e : true, cache: opts.cache }, resourceOptions); | |
| 7735 | - windowOptions = { | |
| 7736 | - windowWidth: (_f = opts.windowWidth) !== null && _f !== void 0 ? _f : defaultView.innerWidth, | |
| 7737 | - windowHeight: (_g = opts.windowHeight) !== null && _g !== void 0 ? _g : defaultView.innerHeight, | |
| 7738 | - scrollX: (_h = opts.scrollX) !== null && _h !== void 0 ? _h : defaultView.pageXOffset, | |
| 7739 | - scrollY: (_j = opts.scrollY) !== null && _j !== void 0 ? _j : defaultView.pageYOffset | |
| 6976 | + resourceOptions = __assign({}, defaultResourceOptions, opts); | |
| 6977 | + defaultOptions = { | |
| 6978 | + backgroundColor: '#ffffff', | |
| 6979 | + cache: opts.cache ? opts.cache : CacheStorage.create(instanceName, resourceOptions), | |
| 6980 | + logging: true, | |
| 6981 | + removeContainer: true, | |
| 6982 | + foreignObjectRendering: false, | |
| 6983 | + scale: defaultView.devicePixelRatio || 1, | |
| 6984 | + windowWidth: defaultView.innerWidth, | |
| 6985 | + windowHeight: defaultView.innerHeight, | |
| 6986 | + scrollX: defaultView.pageXOffset, | |
| 6987 | + scrollY: defaultView.pageYOffset, | |
| 6988 | + x: left, | |
| 6989 | + y: top, | |
| 6990 | + width: Math.ceil(width), | |
| 6991 | + height: Math.ceil(height), | |
| 6992 | + id: instanceName | |
| 7740 | 6993 | }; |
| 7741 | - windowBounds = new Bounds(windowOptions.scrollX, windowOptions.scrollY, windowOptions.windowWidth, windowOptions.windowHeight); | |
| 7742 | - context = new Context(contextOptions, windowBounds); | |
| 7743 | - foreignObjectRendering = (_k = opts.foreignObjectRendering) !== null && _k !== void 0 ? _k : false; | |
| 7744 | - cloneOptions = { | |
| 7745 | - allowTaint: (_l = opts.allowTaint) !== null && _l !== void 0 ? _l : false, | |
| 7746 | - onclone: opts.onclone, | |
| 7747 | - ignoreElements: opts.ignoreElements, | |
| 7748 | - inlineImages: foreignObjectRendering, | |
| 7749 | - copyStyles: foreignObjectRendering | |
| 7750 | - }; | |
| 7751 | - context.logger.debug("Starting document clone with size " + windowBounds.width + "x" + windowBounds.height + " scrolled to " + -windowBounds.left + "," + -windowBounds.top); | |
| 7752 | - documentCloner = new DocumentCloner(context, element, cloneOptions); | |
| 6994 | + options = __assign({}, defaultOptions, resourceOptions, opts); | |
| 6995 | + windowBounds = new Bounds(options.scrollX, options.scrollY, options.windowWidth, options.windowHeight); | |
| 6996 | + Logger.create({ id: instanceName, enabled: options.logging }); | |
| 6997 | + Logger.getInstance(instanceName).debug("Starting document clone"); | |
| 6998 | + documentCloner = new DocumentCloner(element, { | |
| 6999 | + id: instanceName, | |
| 7000 | + onclone: options.onclone, | |
| 7001 | + ignoreElements: options.ignoreElements, | |
| 7002 | + inlineImages: options.foreignObjectRendering, | |
| 7003 | + copyStyles: options.foreignObjectRendering | |
| 7004 | + }); | |
| 7753 | 7005 | clonedElement = documentCloner.clonedReferenceElement; |
| 7754 | 7006 | if (!clonedElement) { |
| 7755 | 7007 | return [2 /*return*/, Promise.reject("Unable to find element in cloned iframe")]; |
| 7756 | 7008 | } |
| @@ -7755,76 +7007,75 @@ | ||
| 7755 | 7007 | return [2 /*return*/, Promise.reject("Unable to find element in cloned iframe")]; |
| 7756 | 7008 | } |
| 7757 | 7009 | return [4 /*yield*/, documentCloner.toIFrame(ownerDocument, windowBounds)]; |
| 7758 | 7010 | case 1: |
| 7759 | - container = _u.sent(); | |
| 7760 | - _a = isBodyElement(clonedElement) || isHTMLElement(clonedElement) | |
| 7761 | - ? parseDocumentSize(clonedElement.ownerDocument) | |
| 7762 | - : parseBounds(context, clonedElement), width = _a.width, height = _a.height, left = _a.left, top = _a.top; | |
| 7763 | - backgroundColor = parseBackgroundColor(context, clonedElement, opts.backgroundColor); | |
| 7011 | + container = _b.sent(); | |
| 7012 | + documentBackgroundColor = ownerDocument.documentElement | |
| 7013 | + ? parseColor$1(getComputedStyle(ownerDocument.documentElement).backgroundColor) | |
| 7014 | + : COLORS.TRANSPARENT; | |
| 7015 | + bodyBackgroundColor = ownerDocument.body | |
| 7016 | + ? parseColor$1(getComputedStyle(ownerDocument.body).backgroundColor) | |
| 7017 | + : COLORS.TRANSPARENT; | |
| 7018 | + bgColor = opts.backgroundColor; | |
| 7019 | + defaultBackgroundColor = typeof bgColor === 'string' ? parseColor$1(bgColor) : bgColor === null ? COLORS.TRANSPARENT : 0xffffffff; | |
| 7020 | + backgroundColor = element === ownerDocument.documentElement | |
| 7021 | + ? isTransparent(documentBackgroundColor) | |
| 7022 | + ? isTransparent(bodyBackgroundColor) | |
| 7023 | + ? defaultBackgroundColor | |
| 7024 | + : bodyBackgroundColor | |
| 7025 | + : documentBackgroundColor | |
| 7026 | + : defaultBackgroundColor; | |
| 7764 | 7027 | renderOptions = { |
| 7765 | - canvas: opts.canvas, | |
| 7028 | + id: instanceName, | |
| 7029 | + cache: options.cache, | |
| 7030 | + canvas: options.canvas, | |
| 7766 | 7031 | backgroundColor: backgroundColor, |
| 7767 | - scale: (_o = (_m = opts.scale) !== null && _m !== void 0 ? _m : defaultView.devicePixelRatio) !== null && _o !== void 0 ? _o : 1, | |
| 7768 | - x: ((_p = opts.x) !== null && _p !== void 0 ? _p : 0) + left, | |
| 7769 | - y: ((_q = opts.y) !== null && _q !== void 0 ? _q : 0) + top, | |
| 7770 | - width: (_r = opts.width) !== null && _r !== void 0 ? _r : Math.ceil(width), | |
| 7771 | - height: (_s = opts.height) !== null && _s !== void 0 ? _s : Math.ceil(height) | |
| 7032 | + scale: options.scale, | |
| 7033 | + x: options.x, | |
| 7034 | + y: options.y, | |
| 7035 | + scrollX: options.scrollX, | |
| 7036 | + scrollY: options.scrollY, | |
| 7037 | + width: options.width, | |
| 7038 | + height: options.height, | |
| 7039 | + windowWidth: options.windowWidth, | |
| 7040 | + windowHeight: options.windowHeight | |
| 7772 | 7041 | }; |
| 7773 | - if (!foreignObjectRendering) return [3 /*break*/, 3]; | |
| 7774 | - context.logger.debug("Document cloned, using foreign object rendering"); | |
| 7775 | - renderer = new ForeignObjectRenderer(context, renderOptions); | |
| 7042 | + if (!options.foreignObjectRendering) return [3 /*break*/, 3]; | |
| 7043 | + Logger.getInstance(instanceName).debug("Document cloned, using foreign object rendering"); | |
| 7044 | + renderer = new ForeignObjectRenderer(renderOptions); | |
| 7776 | 7045 | return [4 /*yield*/, renderer.render(clonedElement)]; |
| 7777 | 7046 | case 2: |
| 7778 | - canvas = _u.sent(); | |
| 7047 | + canvas = _b.sent(); | |
| 7779 | 7048 | return [3 /*break*/, 5]; |
| 7780 | 7049 | case 3: |
| 7781 | - context.logger.debug("Document cloned, element located at " + left + "," + top + " with size " + width + "x" + height + " using computed rendering"); | |
| 7782 | - context.logger.debug("Starting DOM parsing"); | |
| 7783 | - root = parseTree(context, clonedElement); | |
| 7050 | + Logger.getInstance(instanceName).debug("Document cloned, using computed rendering"); | |
| 7051 | + CacheStorage.attachInstance(options.cache); | |
| 7052 | + Logger.getInstance(instanceName).debug("Starting DOM parsing"); | |
| 7053 | + root = parseTree(clonedElement); | |
| 7054 | + CacheStorage.detachInstance(); | |
| 7784 | 7055 | if (backgroundColor === root.styles.backgroundColor) { |
| 7785 | 7056 | root.styles.backgroundColor = COLORS.TRANSPARENT; |
| 7786 | 7057 | } |
| 7787 | - context.logger.debug("Starting renderer for element at " + renderOptions.x + "," + renderOptions.y + " with size " + renderOptions.width + "x" + renderOptions.height); | |
| 7788 | - renderer = new CanvasRenderer(context, renderOptions); | |
| 7058 | + Logger.getInstance(instanceName).debug("Starting renderer"); | |
| 7059 | + renderer = new CanvasRenderer(renderOptions); | |
| 7789 | 7060 | return [4 /*yield*/, renderer.render(root)]; |
| 7790 | 7061 | case 4: |
| 7791 | - canvas = _u.sent(); | |
| 7792 | - _u.label = 5; | |
| 7062 | + canvas = _b.sent(); | |
| 7063 | + _b.label = 5; | |
| 7793 | 7064 | case 5: |
| 7794 | - if ((_t = opts.removeContainer) !== null && _t !== void 0 ? _t : true) { | |
| 7065 | + if (options.removeContainer === true) { | |
| 7795 | 7066 | if (!DocumentCloner.destroy(container)) { |
| 7796 | - context.logger.error("Cannot detach cloned iframe as it is not in the DOM anymore"); | |
| 7067 | + Logger.getInstance(instanceName).error("Cannot detach cloned iframe as it is not in the DOM anymore"); | |
| 7797 | 7068 | } |
| 7798 | 7069 | } |
| 7799 | - context.logger.debug("Finished rendering"); | |
| 7070 | + Logger.getInstance(instanceName).debug("Finished rendering"); | |
| 7071 | + Logger.destroy(instanceName); | |
| 7072 | + CacheStorage.destroy(instanceName); | |
| 7800 | 7073 | return [2 /*return*/, canvas]; |
| 7801 | 7074 | } |
| 7802 | 7075 | }); |
| 7803 | 7076 | }); }; |
| 7804 | - var parseBackgroundColor = function (context, element, backgroundColorOverride) { | |
| 7805 | - var ownerDocument = element.ownerDocument; | |
| 7806 | - // http://www.w3.org/TR/css3-background/#special-backgrounds | |
| 7807 | - var documentBackgroundColor = ownerDocument.documentElement | |
| 7808 | - ? parseColor(context, getComputedStyle(ownerDocument.documentElement).backgroundColor) | |
| 7809 | - : COLORS.TRANSPARENT; | |
| 7810 | - var bodyBackgroundColor = ownerDocument.body | |
| 7811 | - ? parseColor(context, getComputedStyle(ownerDocument.body).backgroundColor) | |
| 7812 | - : COLORS.TRANSPARENT; | |
| 7813 | - var defaultBackgroundColor = typeof backgroundColorOverride === 'string' | |
| 7814 | - ? parseColor(context, backgroundColorOverride) | |
| 7815 | - : backgroundColorOverride === null | |
| 7816 | - ? COLORS.TRANSPARENT | |
| 7817 | - : 0xffffffff; | |
| 7818 | - return element === ownerDocument.documentElement | |
| 7819 | - ? isTransparent(documentBackgroundColor) | |
| 7820 | - ? isTransparent(bodyBackgroundColor) | |
| 7821 | - ? defaultBackgroundColor | |
| 7822 | - : bodyBackgroundColor | |
| 7823 | - : documentBackgroundColor | |
| 7824 | - : defaultBackgroundColor; | |
| 7825 | - }; | |
| 7826 | 7077 | |
| 7827 | 7078 | return html2canvas; |
| 7828 | 7079 | |
| 7829 | -}))); | |
| 7830 | -//# sourceMappingURL=html2canvas.js.map | |
| 7080 | +})); | |
| 7081 | +//# sourceMappingURL=html2canvas.js.map | |